diff --git a/assets/index.4c53df7b.js b/assets/index.29de87b8.js similarity index 67% rename from assets/index.4c53df7b.js rename to assets/index.29de87b8.js index a4ed4422d..d937514a0 100644 --- a/assets/index.4c53df7b.js +++ b/assets/index.29de87b8.js @@ -1,4 +1,4 @@ -var Sr=Object.defineProperty,Cr=Object.defineProperties;var Or=Object.getOwnPropertyDescriptors;var _n=Object.getOwnPropertySymbols;var hr=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable;var ir=(a,e,s)=>e in a?Sr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[e]=s,Dt=(a,e)=>{for(var s in e||(e={}))hr.call(e,s)&&ir(a,s,e[s]);if(_n)for(var s of _n(e))dr.call(e,s)&&ir(a,s,e[s]);return a},kt=(a,e)=>Cr(a,Or(e));var dn=(a,e)=>{var s={};for(var o in a)hr.call(a,o)&&e.indexOf(o)<0&&(s[o]=a[o]);if(a!=null&&_n)for(var o of _n(a))e.indexOf(o)<0&&dr.call(a,o)&&(s[o]=a[o]);return s};var fr=(a,e,s)=>(ir(a,typeof e!="symbol"?e+"":e,s),s);function _mergeNamespaces(a,e){return e.forEach(function(s){s&&typeof s!="string"&&!Array.isArray(s)&&Object.keys(s).forEach(function(o){if(o!=="default"&&!(o in a)){var c=Object.getOwnPropertyDescriptor(s,o);Object.defineProperty(a,o,c.get?c:{enumerable:!0,get:function(){return s[o]}})}})}),Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}const p$3=function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))o(c);new MutationObserver(c=>{for(const d of c)if(d.type==="childList")for(const _ of d.addedNodes)_.tagName==="LINK"&&_.rel==="modulepreload"&&o(_)}).observe(document,{childList:!0,subtree:!0});function s(c){const d={};return c.integrity&&(d.integrity=c.integrity),c.referrerpolicy&&(d.referrerPolicy=c.referrerpolicy),c.crossorigin==="use-credentials"?d.credentials="include":c.crossorigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function o(c){if(c.ep)return;c.ep=!0;const d=s(c);fetch(c.href,d)}};p$3();var commonjsGlobal=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function getDefaultExportFromCjs(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}function getAugmentedNamespace(a){if(a.__esModule)return a;var e=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(a).forEach(function(s){var o=Object.getOwnPropertyDescriptor(a,s);Object.defineProperty(e,s,o.get?o:{enumerable:!0,get:function(){return a[s]}})}),e}var react={exports:{}},react_production_min={};/* +var vr=Object.defineProperty,Cr=Object.defineProperties;var Or=Object.getOwnPropertyDescriptors;var An=Object.getOwnPropertySymbols;var hr=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable;var ir=(a,e,s)=>e in a?vr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[e]=s,Dt=(a,e)=>{for(var s in e||(e={}))hr.call(e,s)&&ir(a,s,e[s]);if(An)for(var s of An(e))dr.call(e,s)&&ir(a,s,e[s]);return a},kt=(a,e)=>Cr(a,Or(e));var dn=(a,e)=>{var s={};for(var o in a)hr.call(a,o)&&e.indexOf(o)<0&&(s[o]=a[o]);if(a!=null&&An)for(var o of An(a))e.indexOf(o)<0&&dr.call(a,o)&&(s[o]=a[o]);return s};var fr=(a,e,s)=>(ir(a,typeof e!="symbol"?e+"":e,s),s);function _mergeNamespaces(a,e){return e.forEach(function(s){s&&typeof s!="string"&&!Array.isArray(s)&&Object.keys(s).forEach(function(o){if(o!=="default"&&!(o in a)){var c=Object.getOwnPropertyDescriptor(s,o);Object.defineProperty(a,o,c.get?c:{enumerable:!0,get:function(){return s[o]}})}})}),Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}const p$3=function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))o(c);new MutationObserver(c=>{for(const d of c)if(d.type==="childList")for(const _ of d.addedNodes)_.tagName==="LINK"&&_.rel==="modulepreload"&&o(_)}).observe(document,{childList:!0,subtree:!0});function s(c){const d={};return c.integrity&&(d.integrity=c.integrity),c.referrerpolicy&&(d.referrerPolicy=c.referrerpolicy),c.crossorigin==="use-credentials"?d.credentials="include":c.crossorigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function o(c){if(c.ep)return;c.ep=!0;const d=s(c);fetch(c.href,d)}};p$3();var commonjsGlobal=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function getDefaultExportFromCjs(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}function getAugmentedNamespace(a){if(a.__esModule)return a;var e=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(a).forEach(function(s){var o=Object.getOwnPropertyDescriptor(a,s);Object.defineProperty(e,s,o.get?o:{enumerable:!0,get:function(){return a[s]}})}),e}var react={exports:{}},react_production_min={};/* object-assign (c) Sindre Sorhus @license MIT @@ -16,7 +16,7 @@ object-assign * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(a){var e,s,o,c;if(typeof performance=="object"&&typeof performance.now=="function"){var d=performance;a.unstable_now=function(){return d.now()}}else{var _=Date,b=_.now();a.unstable_now=function(){return _.now()-b}}if(typeof window=="undefined"||typeof MessageChannel!="function"){var k=null,$=null,j=function(){if(k!==null)try{var vt=a.unstable_now();k(!0,vt),k=null}catch(bt){throw setTimeout(j,0),bt}};e=function(vt){k!==null?setTimeout(e,0,vt):(k=vt,setTimeout(j,0))},s=function(vt,bt){$=setTimeout(vt,bt)},o=function(){clearTimeout($)},a.unstable_shouldYield=function(){return!1},c=a.unstable_forceFrameRate=function(){}}else{var _e=window.setTimeout,et=window.clearTimeout;if(typeof console!="undefined"){var tt=window.cancelAnimationFrame;typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof tt!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var nt=!1,it=null,rt=-1,st=5,ot=0;a.unstable_shouldYield=function(){return a.unstable_now()>=ot},c=function(){},a.unstable_forceFrameRate=function(vt){0>vt||125>>1,$t=vt[Rt];if($t!==void 0&&0dt(Ft,xt))Qt!==void 0&&0>dt(Qt,Ft)?(vt[Rt]=Qt,vt[qt]=xt,Rt=qt):(vt[Rt]=Ft,vt[It]=xt,Rt=It);else if(Qt!==void 0&&0>dt(Qt,xt))vt[Rt]=Qt,vt[qt]=xt,Rt=qt;else break e}}return bt}return null}function dt(vt,bt){var xt=vt.sortIndex-bt.sortIndex;return xt!==0?xt:vt.id-bt.id}var ft=[],yt=[],_t=1,gt=null,Et=3,pt=!1,mt=!1,At=!1;function Ct(vt){for(var bt=ut(yt);bt!==null;){if(bt.callback===null)ct(yt);else if(bt.startTime<=vt)ct(yt),bt.sortIndex=bt.expirationTime,lt(ft,bt);else break;bt=ut(yt)}}function Ot(vt){if(At=!1,Ct(vt),!mt)if(ut(ft)!==null)mt=!0,e(St);else{var bt=ut(yt);bt!==null&&s(Ot,bt.startTime-vt)}}function St(vt,bt){mt=!1,At&&(At=!1,o()),pt=!0;var xt=Et;try{for(Ct(bt),gt=ut(ft);gt!==null&&(!(gt.expirationTime>bt)||vt&&!a.unstable_shouldYield());){var Rt=gt.callback;if(typeof Rt=="function"){gt.callback=null,Et=gt.priorityLevel;var $t=Rt(gt.expirationTime<=bt);bt=a.unstable_now(),typeof $t=="function"?gt.callback=$t:gt===ut(ft)&&ct(ft),Ct(bt)}else ct(ft);gt=ut(ft)}if(gt!==null)var It=!0;else{var Ft=ut(yt);Ft!==null&&s(Ot,Ft.startTime-bt),It=!1}return It}finally{gt=null,Et=xt,pt=!1}}var Tt=c;a.unstable_IdlePriority=5,a.unstable_ImmediatePriority=1,a.unstable_LowPriority=4,a.unstable_NormalPriority=3,a.unstable_Profiling=null,a.unstable_UserBlockingPriority=2,a.unstable_cancelCallback=function(vt){vt.callback=null},a.unstable_continueExecution=function(){mt||pt||(mt=!0,e(St))},a.unstable_getCurrentPriorityLevel=function(){return Et},a.unstable_getFirstCallbackNode=function(){return ut(ft)},a.unstable_next=function(vt){switch(Et){case 1:case 2:case 3:var bt=3;break;default:bt=Et}var xt=Et;Et=bt;try{return vt()}finally{Et=xt}},a.unstable_pauseExecution=function(){},a.unstable_requestPaint=Tt,a.unstable_runWithPriority=function(vt,bt){switch(vt){case 1:case 2:case 3:case 4:case 5:break;default:vt=3}var xt=Et;Et=vt;try{return bt()}finally{Et=xt}},a.unstable_scheduleCallback=function(vt,bt,xt){var Rt=a.unstable_now();switch(typeof xt=="object"&&xt!==null?(xt=xt.delay,xt=typeof xt=="number"&&0Rt?(vt.sortIndex=xt,lt(yt,vt),ut(ft)===null&&vt===ut(yt)&&(At?o():At=!0,s(Ot,xt-Rt))):(vt.sortIndex=$t,lt(ft,vt),mt||pt||(mt=!0,e(St))),vt},a.unstable_wrapCallback=function(vt){var bt=Et;return function(){var xt=Et;Et=bt;try{return vt.apply(this,arguments)}finally{Et=xt}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;/** @license React v17.0.2 + */(function(a){var e,s,o,c;if(typeof performance=="object"&&typeof performance.now=="function"){var d=performance;a.unstable_now=function(){return d.now()}}else{var _=Date,b=_.now();a.unstable_now=function(){return _.now()-b}}if(typeof window=="undefined"||typeof MessageChannel!="function"){var k=null,$=null,j=function(){if(k!==null)try{var _t=a.unstable_now();k(!0,_t),k=null}catch(bt){throw setTimeout(j,0),bt}};e=function(_t){k!==null?setTimeout(e,0,_t):(k=_t,setTimeout(j,0))},s=function(_t,bt){$=setTimeout(_t,bt)},o=function(){clearTimeout($)},a.unstable_shouldYield=function(){return!1},c=a.unstable_forceFrameRate=function(){}}else{var _e=window.setTimeout,et=window.clearTimeout;if(typeof console!="undefined"){var tt=window.cancelAnimationFrame;typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof tt!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var nt=!1,it=null,rt=-1,st=5,ot=0;a.unstable_shouldYield=function(){return a.unstable_now()>=ot},c=function(){},a.unstable_forceFrameRate=function(_t){0>_t||125<_t?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):st=0<_t?Math.floor(1e3/_t):5};var at=new MessageChannel,ht=at.port2;at.port1.onmessage=function(){if(it!==null){var _t=a.unstable_now();ot=_t+st;try{it(!0,_t)?ht.postMessage(null):(nt=!1,it=null)}catch(bt){throw ht.postMessage(null),bt}}else nt=!1},e=function(_t){it=_t,nt||(nt=!0,ht.postMessage(null))},s=function(_t,bt){rt=_e(function(){_t(a.unstable_now())},bt)},o=function(){et(rt),rt=-1}}function lt(_t,bt){var xt=_t.length;_t.push(bt);e:for(;;){var Rt=xt-1>>>1,$t=_t[Rt];if($t!==void 0&&0dt(Ft,xt))Qt!==void 0&&0>dt(Qt,Ft)?(_t[Rt]=Qt,_t[qt]=xt,Rt=qt):(_t[Rt]=Ft,_t[It]=xt,Rt=It);else if(Qt!==void 0&&0>dt(Qt,xt))_t[Rt]=Qt,_t[qt]=xt,Rt=qt;else break e}}return bt}return null}function dt(_t,bt){var xt=_t.sortIndex-bt.sortIndex;return xt!==0?xt:_t.id-bt.id}var ft=[],Et=[],yt=1,gt=null,St=3,pt=!1,mt=!1,At=!1;function Ot(_t){for(var bt=ut(Et);bt!==null;){if(bt.callback===null)ct(Et);else if(bt.startTime<=_t)ct(Et),bt.sortIndex=bt.expirationTime,lt(ft,bt);else break;bt=ut(Et)}}function vt(_t){if(At=!1,Ot(_t),!mt)if(ut(ft)!==null)mt=!0,e(Ct);else{var bt=ut(Et);bt!==null&&s(vt,bt.startTime-_t)}}function Ct(_t,bt){mt=!1,At&&(At=!1,o()),pt=!0;var xt=St;try{for(Ot(bt),gt=ut(ft);gt!==null&&(!(gt.expirationTime>bt)||_t&&!a.unstable_shouldYield());){var Rt=gt.callback;if(typeof Rt=="function"){gt.callback=null,St=gt.priorityLevel;var $t=Rt(gt.expirationTime<=bt);bt=a.unstable_now(),typeof $t=="function"?gt.callback=$t:gt===ut(ft)&&ct(ft),Ot(bt)}else ct(ft);gt=ut(ft)}if(gt!==null)var It=!0;else{var Ft=ut(Et);Ft!==null&&s(vt,Ft.startTime-bt),It=!1}return It}finally{gt=null,St=xt,pt=!1}}var Tt=c;a.unstable_IdlePriority=5,a.unstable_ImmediatePriority=1,a.unstable_LowPriority=4,a.unstable_NormalPriority=3,a.unstable_Profiling=null,a.unstable_UserBlockingPriority=2,a.unstable_cancelCallback=function(_t){_t.callback=null},a.unstable_continueExecution=function(){mt||pt||(mt=!0,e(Ct))},a.unstable_getCurrentPriorityLevel=function(){return St},a.unstable_getFirstCallbackNode=function(){return ut(ft)},a.unstable_next=function(_t){switch(St){case 1:case 2:case 3:var bt=3;break;default:bt=St}var xt=St;St=bt;try{return _t()}finally{St=xt}},a.unstable_pauseExecution=function(){},a.unstable_requestPaint=Tt,a.unstable_runWithPriority=function(_t,bt){switch(_t){case 1:case 2:case 3:case 4:case 5:break;default:_t=3}var xt=St;St=_t;try{return bt()}finally{St=xt}},a.unstable_scheduleCallback=function(_t,bt,xt){var Rt=a.unstable_now();switch(typeof xt=="object"&&xt!==null?(xt=xt.delay,xt=typeof xt=="number"&&0Rt?(_t.sortIndex=xt,lt(Et,_t),ut(ft)===null&&_t===ut(Et)&&(At?o():At=!0,s(vt,xt-Rt))):(_t.sortIndex=$t,lt(ft,_t),mt||pt||(mt=!0,e(Ct))),_t},a.unstable_wrapCallback=function(_t){var bt=St;return function(){var xt=St;St=bt;try{return _t.apply(this,arguments)}finally{St=xt}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;/** @license React v17.0.2 * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -27,7 +27,7 @@ object-assign `+Ma+a}var Oa=!1;function Pa(a,e){if(!a||Oa)return"";Oa=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(e)if(e=function(){throw Error()},Object.defineProperty(e.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(e,[])}catch(k){var o=k}Reflect.construct(a,[],e)}else{try{e.call()}catch(k){o=k}a.call(e.prototype)}else{try{throw Error()}catch(k){o=k}a()}}catch(k){if(k&&o&&typeof k.stack=="string"){for(var c=k.stack.split(` `),d=o.stack.split(` `),_=c.length-1,b=d.length-1;1<=_&&0<=b&&c[_]!==d[b];)b--;for(;1<=_&&0<=b;_--,b--)if(c[_]!==d[b]){if(_!==1||b!==1)do if(_--,b--,0>b||c[_]!==d[b])return` -`+c[_].replace(" at new "," at ");while(1<=_&&0<=b);break}}}finally{Oa=!1,Error.prepareStackTrace=s}return(a=a?a.displayName||a.name:"")?Na(a):""}function Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na("Lazy");case 13:return Na("Suspense");case 19:return Na("SuspenseList");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return""}}function Ra(a){if(a==null)return null;if(typeof a=="function")return a.displayName||a.name||null;if(typeof a=="string")return a;switch(a){case ua:return"Fragment";case ta:return"Portal";case xa:return"Profiler";case wa:return"StrictMode";case Ba:return"Suspense";case Ca:return"SuspenseList"}if(typeof a=="object")switch(a.$$typeof){case za:return(a.displayName||"Context")+".Consumer";case ya:return(a._context.displayName||"Context")+".Provider";case Aa:var e=a.render;return e=e.displayName||e.name||"",a.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:e=a._payload,a=a._init;try{return Ra(a(e))}catch{}}return null}function Sa(a){switch(typeof a){case"boolean":case"number":case"object":case"string":case"undefined":return a;default:return""}}function Ta(a){var e=a.type;return(a=a.nodeName)&&a.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function Ua(a){var e=Ta(a)?"checked":"value",s=Object.getOwnPropertyDescriptor(a.constructor.prototype,e),o=""+a[e];if(!a.hasOwnProperty(e)&&typeof s!="undefined"&&typeof s.get=="function"&&typeof s.set=="function"){var c=s.get,d=s.set;return Object.defineProperty(a,e,{configurable:!0,get:function(){return c.call(this)},set:function(_){o=""+_,d.call(this,_)}}),Object.defineProperty(a,e,{enumerable:s.enumerable}),{getValue:function(){return o},setValue:function(_){o=""+_},stopTracking:function(){a._valueTracker=null,delete a[e]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var e=a._valueTracker;if(!e)return!0;var s=e.getValue(),o="";return a&&(o=Ta(a)?a.checked?"true":"false":a.value),a=o,a!==s?(e.setValue(a),!0):!1}function Xa(a){if(a=a||(typeof document!="undefined"?document:void 0),typeof a=="undefined")return null;try{return a.activeElement||a.body}catch{return a.body}}function Ya(a,e){var s=e.checked;return m$1({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:s!=null?s:a._wrapperState.initialChecked})}function Za(a,e){var s=e.defaultValue==null?"":e.defaultValue,o=e.checked!=null?e.checked:e.defaultChecked;s=Sa(e.value!=null?e.value:s),a._wrapperState={initialChecked:o,initialValue:s,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function $a(a,e){e=e.checked,e!=null&&qa(a,"checked",e,!1)}function ab(a,e){$a(a,e);var s=Sa(e.value),o=e.type;if(s!=null)o==="number"?(s===0&&a.value===""||a.value!=s)&&(a.value=""+s):a.value!==""+s&&(a.value=""+s);else if(o==="submit"||o==="reset"){a.removeAttribute("value");return}e.hasOwnProperty("value")?bb(a,e.type,s):e.hasOwnProperty("defaultValue")&&bb(a,e.type,Sa(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(a.defaultChecked=!!e.defaultChecked)}function cb(a,e,s){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var o=e.type;if(!(o!=="submit"&&o!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+a._wrapperState.initialValue,s||e===a.value||(a.value=e),a.defaultValue=e}s=a.name,s!==""&&(a.name=""),a.defaultChecked=!!a._wrapperState.initialChecked,s!==""&&(a.name=s)}function bb(a,e,s){(e!=="number"||Xa(a.ownerDocument)!==a)&&(s==null?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+s&&(a.defaultValue=""+s))}function db(a){var e="";return aa.Children.forEach(a,function(s){s!=null&&(e+=s)}),e}function eb(a,e){return a=m$1({children:void 0},e),(e=db(e.children))&&(a.children=e),a}function fb(a,e,s,o){if(a=a.options,e){e={};for(var c=0;c=s.length))throw Error(y(93));s=s[0]}e=s}e==null&&(e=""),s=e}a._wrapperState={initialValue:Sa(s)}}function ib(a,e){var s=Sa(e.value),o=Sa(e.defaultValue);s!=null&&(s=""+s,s!==a.value&&(a.value=s),e.defaultValue==null&&a.defaultValue!==s&&(a.defaultValue=s)),o!=null&&(a.defaultValue=""+o)}function jb(a){var e=a.textContent;e===a._wrapperState.initialValue&&e!==""&&e!==null&&(a.value=e)}var kb={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function lb(a){switch(a){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function mb(a,e){return a==null||a==="http://www.w3.org/1999/xhtml"?lb(e):a==="http://www.w3.org/2000/svg"&&e==="foreignObject"?"http://www.w3.org/1999/xhtml":a}var nb,ob=function(a){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(e,s,o,c){MSApp.execUnsafeLocalFunction(function(){return a(e,s,o,c)})}:a}(function(a,e){if(a.namespaceURI!==kb.svg||"innerHTML"in a)a.innerHTML=e;else{for(nb=nb||document.createElement("div"),nb.innerHTML=""+e.valueOf().toString()+"",e=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;e.firstChild;)a.appendChild(e.firstChild)}});function pb(a,e){if(e){var s=a.firstChild;if(s&&s===a.lastChild&&s.nodeType===3){s.nodeValue=e;return}}a.textContent=e}var qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=["Webkit","ms","Moz","O"];Object.keys(qb).forEach(function(a){rb.forEach(function(e){e=e+a.charAt(0).toUpperCase()+a.substring(1),qb[e]=qb[a]})});function sb(a,e,s){return e==null||typeof e=="boolean"||e===""?"":s||typeof e!="number"||e===0||qb.hasOwnProperty(a)&&qb[a]?(""+e).trim():e+"px"}function tb(a,e){a=a.style;for(var s in e)if(e.hasOwnProperty(s)){var o=s.indexOf("--")===0,c=sb(s,e[s],o);s==="float"&&(s="cssFloat"),o?a.setProperty(s,c):a[s]=c}}var ub=m$1({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vb(a,e){if(e){if(ub[a]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(y(137,a));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(y(60));if(!(typeof e.dangerouslySetInnerHTML=="object"&&"__html"in e.dangerouslySetInnerHTML))throw Error(y(61))}if(e.style!=null&&typeof e.style!="object")throw Error(y(62))}}function wb(a,e){if(a.indexOf("-")===-1)return typeof e.is=="string";switch(a){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function xb(a){return a=a.target||a.srcElement||window,a.correspondingUseElement&&(a=a.correspondingUseElement),a.nodeType===3?a.parentNode:a}var yb=null,zb=null,Ab=null;function Bb(a){if(a=Cb(a)){if(typeof yb!="function")throw Error(y(280));var e=a.stateNode;e&&(e=Db(e),yb(a.stateNode,a.type,e))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,e=Ab;if(Ab=zb=null,Bb(a),e)for(a=0;ao?0:1<s;s++)e.push(a);return e}function $c(a,e,s){a.pendingLanes|=e;var o=e-1;a.suspendedLanes&=o,a.pingedLanes&=o,a=a.eventTimes,e=31-Vc(e),a[e]=s}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return a===0?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,e,s,o){Kb||Ib();var c=hd,d=Kb;Kb=!0;try{Hb(c,a,e,s,o)}finally{(Kb=d)||Mb()}}function id$2(a,e,s,o){ed(dd,hd.bind(null,a,e,s,o))}function hd(a,e,s,o){if(fd){var c;if((c=(e&4)===0)&&0=be),ee=String.fromCharCode(32),fe=!1;function ge(a,e){switch(a){case"keyup":return $d.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function he(a){return a=a.detail,typeof a=="object"&&"data"in a?a.data:null}var ie$2=!1;function je(a,e){switch(a){case"compositionend":return he(e);case"keypress":return e.which!==32?null:(fe=!0,ee);case"textInput":return a=e.data,a===ee&&fe?null:a;default:return null}}function ke(a,e){if(ie$2)return a==="compositionend"||!ae&&ge(a,e)?(a=nd(),md=ld=kd=null,ie$2=!1,a):null;switch(a){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:s,offset:e-a};a=o}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=Ke(s)}}function Me(a,e){return a&&e?a===e?!0:a&&a.nodeType===3?!1:e&&e.nodeType===3?Me(a,e.parentNode):"contains"in a?a.contains(e):a.compareDocumentPosition?!!(a.compareDocumentPosition(e)&16):!1:!1}function Ne(){for(var a=window,e=Xa();e instanceof a.HTMLIFrameElement;){try{var s=typeof e.contentWindow.location.href=="string"}catch{s=!1}if(s)a=e.contentWindow;else break;e=Xa(a.document)}return e}function Oe(a){var e=a&&a.nodeName&&a.nodeName.toLowerCase();return e&&(e==="input"&&(a.type==="text"||a.type==="search"||a.type==="tel"||a.type==="url"||a.type==="password")||e==="textarea"||a.contentEditable==="true")}var Pe=fa&&"documentMode"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;function Ue(a,e,s){var o=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Te||Qe==null||Qe!==Xa(o)||(o=Qe,"selectionStart"in o&&Oe(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),Se&&Je(Se,o)||(Se=o,o=oe(Re,"onSelect"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I$1(a,e){Af++,zf[Af]=a.current,a.current=e}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;function Ef(a,e){var s=a.type.contextTypes;if(!s)return Cf;var o=a.stateNode;if(o&&o.__reactInternalMemoizedUnmaskedChildContext===e)return o.__reactInternalMemoizedMaskedChildContext;var c={},d;for(d in s)c[d]=e[d];return o&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=c),c}function Ff(a){return a=a.childContextTypes,a!=null}function Gf(){H(N),H(M)}function Hf(a,e,s){if(M.current!==Cf)throw Error(y(168));I$1(M,e),I$1(N,s)}function If(a,e,s){var o=a.stateNode;if(a=e.childContextTypes,typeof o.getChildContext!="function")return s;o=o.getChildContext();for(var c in o)if(!(c in a))throw Error(y(108,Ra(e)||"Unknown",c));return m$1({},s,o)}function Jf(a){return a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf,Df=M.current,I$1(M,a),I$1(N,N.current),!0}function Kf(a,e,s){var o=a.stateNode;if(!o)throw Error(y(169));s?(a=If(a,e,Df),o.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I$1(M,a)):H(N),I$1(N,s)}var Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=Rf!==void 0?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1e4>dg?Sf:function(){return Sf()-dg};function eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332))}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332))}}function gg(a,e){return a=fg(a),Nf(a,e)}function hg(a,e,s){return a=fg(a),Of(a,e,s)}function ig(){if(bg!==null){var a=bg;bg=null,Pf(a)}jg()}function jg(){if(!cg&&ag!==null){cg=!0;var a=0;try{var e=ag;gg(99,function(){for(;act?(dt=ut,ut=null):dt=ut.sibling;var ft=et(rt,ut,ot[ct],at);if(ft===null){ut===null&&(ut=dt);break}a&&ut&&ft.alternate===null&&e(rt,ut),st=d(ft,st,ct),lt===null?ht=ft:lt.sibling=ft,lt=ft,ut=dt}if(ct===ot.length)return s(rt,ut),ht;if(ut===null){for(;ctct?(dt=ut,ut=null):dt=ut.sibling;var yt=et(rt,ut,ft.value,at);if(yt===null){ut===null&&(ut=dt);break}a&&ut&&yt.alternate===null&&e(rt,ut),st=d(yt,st,ct),lt===null?ht=yt:lt.sibling=yt,lt=yt,ut=dt}if(ft.done)return s(rt,ut),ht;if(ut===null){for(;!ft.done;ct++,ft=ot.next())ft=_e(rt,ft.value,at),ft!==null&&(st=d(ft,st,ct),lt===null?ht=ft:lt.sibling=ft,lt=ft);return ht}for(ut=o(rt,ut);!ft.done;ct++,ft=ot.next())ft=tt(ut,rt,ct,ft.value,at),ft!==null&&(a&&ft.alternate!==null&&ut.delete(ft.key===null?ct:ft.key),st=d(ft,st,ct),lt===null?ht=ft:lt.sibling=ft,lt=ft);return a&&ut.forEach(function(_t){return e(rt,_t)}),ht}return function(rt,st,ot,at){var ht=typeof ot=="object"&&ot!==null&&ot.type===ua&&ot.key===null;ht&&(ot=ot.props.children);var lt=typeof ot=="object"&&ot!==null;if(lt)switch(ot.$$typeof){case sa:e:{for(lt=ot.key,ht=st;ht!==null;){if(ht.key===lt){switch(ht.tag){case 7:if(ot.type===ua){s(rt,ht.sibling),st=c(ht,ot.props.children),st.return=rt,rt=st;break e}break;default:if(ht.elementType===ot.type){s(rt,ht.sibling),st=c(ht,ot.props),st.ref=Qg(rt,ht,ot),st.return=rt,rt=st;break e}}s(rt,ht);break}else e(rt,ht);ht=ht.sibling}ot.type===ua?(st=Xg(ot.props.children,rt.mode,at,ot.key),st.return=rt,rt=st):(at=Vg(ot.type,ot.key,ot.props,null,rt.mode,at),at.ref=Qg(rt,st,ot),at.return=rt,rt=at)}return _(rt);case ta:e:{for(ht=ot.key;st!==null;){if(st.key===ht)if(st.tag===4&&st.stateNode.containerInfo===ot.containerInfo&&st.stateNode.implementation===ot.implementation){s(rt,st.sibling),st=c(st,ot.children||[]),st.return=rt,rt=st;break e}else{s(rt,st);break}else e(rt,st);st=st.sibling}st=Wg(ot,rt.mode,at),st.return=rt,rt=st}return _(rt)}if(typeof ot=="string"||typeof ot=="number")return ot=""+ot,st!==null&&st.tag===6?(s(rt,st.sibling),st=c(st,ot),st.return=rt,rt=st):(s(rt,st),st=Ug(ot,rt.mode,at),st.return=rt,rt=st),_(rt);if(Pg(ot))return nt(rt,st,ot,at);if(La(ot))return it(rt,st,ot,at);if(lt&&Rg(rt,ot),typeof ot=="undefined"&&!ht)switch(rt.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(rt.type)||"Component"))}return s(rt,st)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);function dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,e){switch(I$1(ch,e),I$1(bh,a),I$1(ah,$g),a=e.nodeType,a){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:mb(null,"");break;default:a=a===8?e.parentNode:e,e=a.namespaceURI||null,a=a.tagName,e=mb(e,a)}H(ah),I$1(ah,e)}function fh(){H(ah),H(bh),H(ch)}function gh(a){dh(ch.current);var e=dh(ah.current),s=mb(e,a.type);e!==s&&(I$1(bh,a),I$1(ah,s))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);function ih(a){for(var e=a;e!==null;){if(e.tag===13){var s=e.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||s.data==="$?"||s.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if((e.flags&64)!==0)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===a)break;for(;e.sibling===null;){if(e.return===null||e.return===a)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var jh=null,kh=null,lh=!1;function mh(a,e){var s=nh(5,null,null,0);s.elementType="DELETED",s.type="DELETED",s.stateNode=e,s.return=a,s.flags=8,a.lastEffect!==null?(a.lastEffect.nextEffect=s,a.lastEffect=s):a.firstEffect=a.lastEffect=s}function oh(a,e){switch(a.tag){case 5:var s=a.type;return e=e.nodeType!==1||s.toLowerCase()!==e.nodeName.toLowerCase()?null:e,e!==null?(a.stateNode=e,!0):!1;case 6:return e=a.pendingProps===""||e.nodeType!==3?null:e,e!==null?(a.stateNode=e,!0):!1;case 13:return!1;default:return!1}}function ph(a){if(lh){var e=kh;if(e){var s=e;if(!oh(a,e)){if(e=rf(s.nextSibling),!e||!oh(a,e)){a.flags=a.flags&-1025|2,lh=!1,jh=a;return}mh(jh,s)}jh=a,kh=rf(e.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;a!==null&&a.tag!==5&&a.tag!==3&&a.tag!==13;)a=a.return;jh=a}function rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var e=a.type;if(a.tag!==5||e!=="head"&&e!=="body"&&!nf(e,a.memoizedProps))for(e=kh;e;)mh(a,e),e=rf(e.nextSibling);if(qh(a),a.tag===13){if(a=a.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(y(317));e:{for(a=a.nextSibling,e=0;a;){if(a.nodeType===8){var s=a.data;if(s==="/$"){if(e===0){kh=rf(a.nextSibling);break e}e--}else s!=="$"&&s!=="$!"&&s!=="$?"||e++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}function sh(){kh=jh=null,lh=!1}var th=[];function uh(){for(var a=0;ad))throw Error(y(301));d+=1,T$1=S=null,e.updateQueue=null,vh.current=Fh,a=s(o,c)}while(zh)}if(vh.current=Gh,e=S!==null&&S.next!==null,xh=0,T$1=S=R$1=null,yh=!1,e)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return T$1===null?R$1.memoizedState=T$1=a:T$1=T$1.next=a,T$1}function Ih(){if(S===null){var a=R$1.alternate;a=a!==null?a.memoizedState:null}else a=S.next;var e=T$1===null?R$1.memoizedState:T$1.next;if(e!==null)T$1=e,S=a;else{if(a===null)throw Error(y(310));S=a,a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null},T$1===null?R$1.memoizedState=T$1=a:T$1=T$1.next=a}return T$1}function Jh(a,e){return typeof e=="function"?e(a):e}function Kh(a){var e=Ih(),s=e.queue;if(s===null)throw Error(y(311));s.lastRenderedReducer=a;var o=S,c=o.baseQueue,d=s.pending;if(d!==null){if(c!==null){var _=c.next;c.next=d.next,d.next=_}o.baseQueue=c=d,s.pending=null}if(c!==null){c=c.next,o=o.baseState;var b=_=d=null,k=c;do{var $=k.lane;if((xh&$)===$)b!==null&&(b=b.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),o=k.eagerReducer===a?k.eagerState:a(o,k.action);else{var j={lane:$,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};b===null?(_=b=j,d=o):b=b.next=j,R$1.lanes|=$,Dg|=$}k=k.next}while(k!==null&&k!==c);b===null?d=o:b.next=_,He(o,e.memoizedState)||(ug=!0),e.memoizedState=o,e.baseState=d,e.baseQueue=b,s.lastRenderedState=o}return[e.memoizedState,s.dispatch]}function Lh(a){var e=Ih(),s=e.queue;if(s===null)throw Error(y(311));s.lastRenderedReducer=a;var o=s.dispatch,c=s.pending,d=e.memoizedState;if(c!==null){s.pending=null;var _=c=c.next;do d=a(d,_.action),_=_.next;while(_!==c);He(d,e.memoizedState)||(ug=!0),e.memoizedState=d,e.baseQueue===null&&(e.baseState=d),s.lastRenderedState=d}return[d,o]}function Mh(a,e,s){var o=e._getVersion;o=o(e._source);var c=e._workInProgressVersionPrimary;if(c!==null?a=c===o:(a=a.mutableReadLanes,(a=(xh&a)===a)&&(e._workInProgressVersionPrimary=o,th.push(e))),a)return s(e._source);throw th.push(e),Error(y(350))}function Nh(a,e,s,o){var c=U;if(c===null)throw Error(y(349));var d=e._getVersion,_=d(e._source),b=vh.current,k=b.useState(function(){return Mh(c,e,s)}),$=k[1],j=k[0];k=T$1;var _e=a.memoizedState,et=_e.refs,tt=et.getSnapshot,nt=_e.source;_e=_e.subscribe;var it=R$1;return a.memoizedState={refs:et,source:e,subscribe:o},b.useEffect(function(){et.getSnapshot=s,et.setSnapshot=$;var rt=d(e._source);if(!He(_,rt)){rt=s(e._source),He(j,rt)||($(rt),rt=Ig(it),c.mutableReadLanes|=rt&c.pendingLanes),rt=c.mutableReadLanes,c.entangledLanes|=rt;for(var st=c.entanglements,ot=rt;0s?98:s,function(){a(!0)}),gg(97<\/script>",a=a.removeChild(a.firstChild)):typeof o.is=="string"?a=_.createElement(s,{is:o.is}):(a=_.createElement(s),s==="select"&&(_=a,o.multiple?_.multiple=!0:o.size&&(_.size=o.size))):a=_.createElementNS(a,s),a[wf]=e,a[xf]=o,Bi(a,e,!1,!1),e.stateNode=a,_=wb(s,o),s){case"dialog":G("cancel",a),G("close",a),c=o;break;case"iframe":case"object":case"embed":G("load",a),c=o;break;case"video":case"audio":for(c=0;cJi&&(e.flags|=64,d=!0,Fi(o,!1),e.lanes=33554432)}else{if(!d)if(a=ih(_),a!==null){if(e.flags|=64,d=!0,s=a.updateQueue,s!==null&&(e.updateQueue=s,e.flags|=4),Fi(o,!0),o.tail===null&&o.tailMode==="hidden"&&!_.alternate&&!lh)return e=e.lastEffect=o.lastEffect,e!==null&&(e.nextEffect=null),null}else 2*O()-o.renderingStartTime>Ji&&s!==1073741824&&(e.flags|=64,d=!0,Fi(o,!1),e.lanes=33554432);o.isBackwards?(_.sibling=e.child,e.child=_):(s=o.last,s!==null?s.sibling=_:e.child=_,o.last=_)}return o.tail!==null?(s=o.tail,o.rendering=s,o.tail=s.sibling,o.lastEffect=e.lastEffect,o.renderingStartTime=O(),s.sibling=null,e=P.current,I$1(P,d?e&1|2:e&1),s):null;case 23:case 24:return Ki(),a!==null&&a.memoizedState!==null!=(e.memoizedState!==null)&&o.mode!=="unstable-defer-without-hiding"&&(e.flags|=4),null}throw Error(y(156,e.tag))}function Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var e=a.flags;return e&4096?(a.flags=e&-4097|64,a):null;case 3:if(fh(),H(N),H(M),uh(),e=a.flags,(e&64)!==0)throw Error(y(285));return a.flags=e&-4097|64,a;case 5:return hh(a),null;case 13:return H(P),e=a.flags,e&4096?(a.flags=e&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}function Mi(a,e){try{var s="",o=e;do s+=Qa(o),o=o.return;while(o);var c=s}catch(d){c=` +`+c[_].replace(" at new "," at ");while(1<=_&&0<=b);break}}}finally{Oa=!1,Error.prepareStackTrace=s}return(a=a?a.displayName||a.name:"")?Na(a):""}function Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na("Lazy");case 13:return Na("Suspense");case 19:return Na("SuspenseList");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return""}}function Ra(a){if(a==null)return null;if(typeof a=="function")return a.displayName||a.name||null;if(typeof a=="string")return a;switch(a){case ua:return"Fragment";case ta:return"Portal";case xa:return"Profiler";case wa:return"StrictMode";case Ba:return"Suspense";case Ca:return"SuspenseList"}if(typeof a=="object")switch(a.$$typeof){case za:return(a.displayName||"Context")+".Consumer";case ya:return(a._context.displayName||"Context")+".Provider";case Aa:var e=a.render;return e=e.displayName||e.name||"",a.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:e=a._payload,a=a._init;try{return Ra(a(e))}catch{}}return null}function Sa(a){switch(typeof a){case"boolean":case"number":case"object":case"string":case"undefined":return a;default:return""}}function Ta(a){var e=a.type;return(a=a.nodeName)&&a.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function Ua(a){var e=Ta(a)?"checked":"value",s=Object.getOwnPropertyDescriptor(a.constructor.prototype,e),o=""+a[e];if(!a.hasOwnProperty(e)&&typeof s!="undefined"&&typeof s.get=="function"&&typeof s.set=="function"){var c=s.get,d=s.set;return Object.defineProperty(a,e,{configurable:!0,get:function(){return c.call(this)},set:function(_){o=""+_,d.call(this,_)}}),Object.defineProperty(a,e,{enumerable:s.enumerable}),{getValue:function(){return o},setValue:function(_){o=""+_},stopTracking:function(){a._valueTracker=null,delete a[e]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var e=a._valueTracker;if(!e)return!0;var s=e.getValue(),o="";return a&&(o=Ta(a)?a.checked?"true":"false":a.value),a=o,a!==s?(e.setValue(a),!0):!1}function Xa(a){if(a=a||(typeof document!="undefined"?document:void 0),typeof a=="undefined")return null;try{return a.activeElement||a.body}catch{return a.body}}function Ya(a,e){var s=e.checked;return m$1({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:s!=null?s:a._wrapperState.initialChecked})}function Za(a,e){var s=e.defaultValue==null?"":e.defaultValue,o=e.checked!=null?e.checked:e.defaultChecked;s=Sa(e.value!=null?e.value:s),a._wrapperState={initialChecked:o,initialValue:s,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function $a(a,e){e=e.checked,e!=null&&qa(a,"checked",e,!1)}function ab(a,e){$a(a,e);var s=Sa(e.value),o=e.type;if(s!=null)o==="number"?(s===0&&a.value===""||a.value!=s)&&(a.value=""+s):a.value!==""+s&&(a.value=""+s);else if(o==="submit"||o==="reset"){a.removeAttribute("value");return}e.hasOwnProperty("value")?bb(a,e.type,s):e.hasOwnProperty("defaultValue")&&bb(a,e.type,Sa(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(a.defaultChecked=!!e.defaultChecked)}function cb(a,e,s){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var o=e.type;if(!(o!=="submit"&&o!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+a._wrapperState.initialValue,s||e===a.value||(a.value=e),a.defaultValue=e}s=a.name,s!==""&&(a.name=""),a.defaultChecked=!!a._wrapperState.initialChecked,s!==""&&(a.name=s)}function bb(a,e,s){(e!=="number"||Xa(a.ownerDocument)!==a)&&(s==null?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+s&&(a.defaultValue=""+s))}function db(a){var e="";return aa.Children.forEach(a,function(s){s!=null&&(e+=s)}),e}function eb(a,e){return a=m$1({children:void 0},e),(e=db(e.children))&&(a.children=e),a}function fb(a,e,s,o){if(a=a.options,e){e={};for(var c=0;c=s.length))throw Error(y(93));s=s[0]}e=s}e==null&&(e=""),s=e}a._wrapperState={initialValue:Sa(s)}}function ib(a,e){var s=Sa(e.value),o=Sa(e.defaultValue);s!=null&&(s=""+s,s!==a.value&&(a.value=s),e.defaultValue==null&&a.defaultValue!==s&&(a.defaultValue=s)),o!=null&&(a.defaultValue=""+o)}function jb(a){var e=a.textContent;e===a._wrapperState.initialValue&&e!==""&&e!==null&&(a.value=e)}var kb={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function lb(a){switch(a){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function mb(a,e){return a==null||a==="http://www.w3.org/1999/xhtml"?lb(e):a==="http://www.w3.org/2000/svg"&&e==="foreignObject"?"http://www.w3.org/1999/xhtml":a}var nb,ob=function(a){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(e,s,o,c){MSApp.execUnsafeLocalFunction(function(){return a(e,s,o,c)})}:a}(function(a,e){if(a.namespaceURI!==kb.svg||"innerHTML"in a)a.innerHTML=e;else{for(nb=nb||document.createElement("div"),nb.innerHTML=""+e.valueOf().toString()+"",e=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;e.firstChild;)a.appendChild(e.firstChild)}});function pb(a,e){if(e){var s=a.firstChild;if(s&&s===a.lastChild&&s.nodeType===3){s.nodeValue=e;return}}a.textContent=e}var qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=["Webkit","ms","Moz","O"];Object.keys(qb).forEach(function(a){rb.forEach(function(e){e=e+a.charAt(0).toUpperCase()+a.substring(1),qb[e]=qb[a]})});function sb(a,e,s){return e==null||typeof e=="boolean"||e===""?"":s||typeof e!="number"||e===0||qb.hasOwnProperty(a)&&qb[a]?(""+e).trim():e+"px"}function tb(a,e){a=a.style;for(var s in e)if(e.hasOwnProperty(s)){var o=s.indexOf("--")===0,c=sb(s,e[s],o);s==="float"&&(s="cssFloat"),o?a.setProperty(s,c):a[s]=c}}var ub=m$1({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vb(a,e){if(e){if(ub[a]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(y(137,a));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(y(60));if(!(typeof e.dangerouslySetInnerHTML=="object"&&"__html"in e.dangerouslySetInnerHTML))throw Error(y(61))}if(e.style!=null&&typeof e.style!="object")throw Error(y(62))}}function wb(a,e){if(a.indexOf("-")===-1)return typeof e.is=="string";switch(a){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function xb(a){return a=a.target||a.srcElement||window,a.correspondingUseElement&&(a=a.correspondingUseElement),a.nodeType===3?a.parentNode:a}var yb=null,zb=null,Ab=null;function Bb(a){if(a=Cb(a)){if(typeof yb!="function")throw Error(y(280));var e=a.stateNode;e&&(e=Db(e),yb(a.stateNode,a.type,e))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,e=Ab;if(Ab=zb=null,Bb(a),e)for(a=0;ao?0:1<s;s++)e.push(a);return e}function $c(a,e,s){a.pendingLanes|=e;var o=e-1;a.suspendedLanes&=o,a.pingedLanes&=o,a=a.eventTimes,e=31-Vc(e),a[e]=s}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return a===0?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,e,s,o){Kb||Ib();var c=hd,d=Kb;Kb=!0;try{Hb(c,a,e,s,o)}finally{(Kb=d)||Mb()}}function id$2(a,e,s,o){ed(dd,hd.bind(null,a,e,s,o))}function hd(a,e,s,o){if(fd){var c;if((c=(e&4)===0)&&0=be),ee=String.fromCharCode(32),fe=!1;function ge(a,e){switch(a){case"keyup":return $d.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function he(a){return a=a.detail,typeof a=="object"&&"data"in a?a.data:null}var ie$2=!1;function je(a,e){switch(a){case"compositionend":return he(e);case"keypress":return e.which!==32?null:(fe=!0,ee);case"textInput":return a=e.data,a===ee&&fe?null:a;default:return null}}function ke(a,e){if(ie$2)return a==="compositionend"||!ae&&ge(a,e)?(a=nd(),md=ld=kd=null,ie$2=!1,a):null;switch(a){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:s,offset:e-a};a=o}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=Ke(s)}}function Me(a,e){return a&&e?a===e?!0:a&&a.nodeType===3?!1:e&&e.nodeType===3?Me(a,e.parentNode):"contains"in a?a.contains(e):a.compareDocumentPosition?!!(a.compareDocumentPosition(e)&16):!1:!1}function Ne(){for(var a=window,e=Xa();e instanceof a.HTMLIFrameElement;){try{var s=typeof e.contentWindow.location.href=="string"}catch{s=!1}if(s)a=e.contentWindow;else break;e=Xa(a.document)}return e}function Oe(a){var e=a&&a.nodeName&&a.nodeName.toLowerCase();return e&&(e==="input"&&(a.type==="text"||a.type==="search"||a.type==="tel"||a.type==="url"||a.type==="password")||e==="textarea"||a.contentEditable==="true")}var Pe=fa&&"documentMode"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;function Ue(a,e,s){var o=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Te||Qe==null||Qe!==Xa(o)||(o=Qe,"selectionStart"in o&&Oe(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),Se&&Je(Se,o)||(Se=o,o=oe(Re,"onSelect"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I$1(a,e){Af++,zf[Af]=a.current,a.current=e}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;function Ef(a,e){var s=a.type.contextTypes;if(!s)return Cf;var o=a.stateNode;if(o&&o.__reactInternalMemoizedUnmaskedChildContext===e)return o.__reactInternalMemoizedMaskedChildContext;var c={},d;for(d in s)c[d]=e[d];return o&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=c),c}function Ff(a){return a=a.childContextTypes,a!=null}function Gf(){H(N),H(M)}function Hf(a,e,s){if(M.current!==Cf)throw Error(y(168));I$1(M,e),I$1(N,s)}function If(a,e,s){var o=a.stateNode;if(a=e.childContextTypes,typeof o.getChildContext!="function")return s;o=o.getChildContext();for(var c in o)if(!(c in a))throw Error(y(108,Ra(e)||"Unknown",c));return m$1({},s,o)}function Jf(a){return a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf,Df=M.current,I$1(M,a),I$1(N,N.current),!0}function Kf(a,e,s){var o=a.stateNode;if(!o)throw Error(y(169));s?(a=If(a,e,Df),o.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I$1(M,a)):H(N),I$1(N,s)}var Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=Rf!==void 0?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1e4>dg?Sf:function(){return Sf()-dg};function eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332))}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332))}}function gg(a,e){return a=fg(a),Nf(a,e)}function hg(a,e,s){return a=fg(a),Of(a,e,s)}function ig(){if(bg!==null){var a=bg;bg=null,Pf(a)}jg()}function jg(){if(!cg&&ag!==null){cg=!0;var a=0;try{var e=ag;gg(99,function(){for(;act?(dt=ut,ut=null):dt=ut.sibling;var ft=et(rt,ut,ot[ct],at);if(ft===null){ut===null&&(ut=dt);break}a&&ut&&ft.alternate===null&&e(rt,ut),st=d(ft,st,ct),lt===null?ht=ft:lt.sibling=ft,lt=ft,ut=dt}if(ct===ot.length)return s(rt,ut),ht;if(ut===null){for(;ctct?(dt=ut,ut=null):dt=ut.sibling;var Et=et(rt,ut,ft.value,at);if(Et===null){ut===null&&(ut=dt);break}a&&ut&&Et.alternate===null&&e(rt,ut),st=d(Et,st,ct),lt===null?ht=Et:lt.sibling=Et,lt=Et,ut=dt}if(ft.done)return s(rt,ut),ht;if(ut===null){for(;!ft.done;ct++,ft=ot.next())ft=_e(rt,ft.value,at),ft!==null&&(st=d(ft,st,ct),lt===null?ht=ft:lt.sibling=ft,lt=ft);return ht}for(ut=o(rt,ut);!ft.done;ct++,ft=ot.next())ft=tt(ut,rt,ct,ft.value,at),ft!==null&&(a&&ft.alternate!==null&&ut.delete(ft.key===null?ct:ft.key),st=d(ft,st,ct),lt===null?ht=ft:lt.sibling=ft,lt=ft);return a&&ut.forEach(function(yt){return e(rt,yt)}),ht}return function(rt,st,ot,at){var ht=typeof ot=="object"&&ot!==null&&ot.type===ua&&ot.key===null;ht&&(ot=ot.props.children);var lt=typeof ot=="object"&&ot!==null;if(lt)switch(ot.$$typeof){case sa:e:{for(lt=ot.key,ht=st;ht!==null;){if(ht.key===lt){switch(ht.tag){case 7:if(ot.type===ua){s(rt,ht.sibling),st=c(ht,ot.props.children),st.return=rt,rt=st;break e}break;default:if(ht.elementType===ot.type){s(rt,ht.sibling),st=c(ht,ot.props),st.ref=Qg(rt,ht,ot),st.return=rt,rt=st;break e}}s(rt,ht);break}else e(rt,ht);ht=ht.sibling}ot.type===ua?(st=Xg(ot.props.children,rt.mode,at,ot.key),st.return=rt,rt=st):(at=Vg(ot.type,ot.key,ot.props,null,rt.mode,at),at.ref=Qg(rt,st,ot),at.return=rt,rt=at)}return _(rt);case ta:e:{for(ht=ot.key;st!==null;){if(st.key===ht)if(st.tag===4&&st.stateNode.containerInfo===ot.containerInfo&&st.stateNode.implementation===ot.implementation){s(rt,st.sibling),st=c(st,ot.children||[]),st.return=rt,rt=st;break e}else{s(rt,st);break}else e(rt,st);st=st.sibling}st=Wg(ot,rt.mode,at),st.return=rt,rt=st}return _(rt)}if(typeof ot=="string"||typeof ot=="number")return ot=""+ot,st!==null&&st.tag===6?(s(rt,st.sibling),st=c(st,ot),st.return=rt,rt=st):(s(rt,st),st=Ug(ot,rt.mode,at),st.return=rt,rt=st),_(rt);if(Pg(ot))return nt(rt,st,ot,at);if(La(ot))return it(rt,st,ot,at);if(lt&&Rg(rt,ot),typeof ot=="undefined"&&!ht)switch(rt.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(rt.type)||"Component"))}return s(rt,st)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);function dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,e){switch(I$1(ch,e),I$1(bh,a),I$1(ah,$g),a=e.nodeType,a){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:mb(null,"");break;default:a=a===8?e.parentNode:e,e=a.namespaceURI||null,a=a.tagName,e=mb(e,a)}H(ah),I$1(ah,e)}function fh(){H(ah),H(bh),H(ch)}function gh(a){dh(ch.current);var e=dh(ah.current),s=mb(e,a.type);e!==s&&(I$1(bh,a),I$1(ah,s))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);function ih(a){for(var e=a;e!==null;){if(e.tag===13){var s=e.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||s.data==="$?"||s.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if((e.flags&64)!==0)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===a)break;for(;e.sibling===null;){if(e.return===null||e.return===a)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var jh=null,kh=null,lh=!1;function mh(a,e){var s=nh(5,null,null,0);s.elementType="DELETED",s.type="DELETED",s.stateNode=e,s.return=a,s.flags=8,a.lastEffect!==null?(a.lastEffect.nextEffect=s,a.lastEffect=s):a.firstEffect=a.lastEffect=s}function oh(a,e){switch(a.tag){case 5:var s=a.type;return e=e.nodeType!==1||s.toLowerCase()!==e.nodeName.toLowerCase()?null:e,e!==null?(a.stateNode=e,!0):!1;case 6:return e=a.pendingProps===""||e.nodeType!==3?null:e,e!==null?(a.stateNode=e,!0):!1;case 13:return!1;default:return!1}}function ph(a){if(lh){var e=kh;if(e){var s=e;if(!oh(a,e)){if(e=rf(s.nextSibling),!e||!oh(a,e)){a.flags=a.flags&-1025|2,lh=!1,jh=a;return}mh(jh,s)}jh=a,kh=rf(e.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;a!==null&&a.tag!==5&&a.tag!==3&&a.tag!==13;)a=a.return;jh=a}function rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var e=a.type;if(a.tag!==5||e!=="head"&&e!=="body"&&!nf(e,a.memoizedProps))for(e=kh;e;)mh(a,e),e=rf(e.nextSibling);if(qh(a),a.tag===13){if(a=a.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(y(317));e:{for(a=a.nextSibling,e=0;a;){if(a.nodeType===8){var s=a.data;if(s==="/$"){if(e===0){kh=rf(a.nextSibling);break e}e--}else s!=="$"&&s!=="$!"&&s!=="$?"||e++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}function sh(){kh=jh=null,lh=!1}var th=[];function uh(){for(var a=0;ad))throw Error(y(301));d+=1,T$1=S=null,e.updateQueue=null,vh.current=Fh,a=s(o,c)}while(zh)}if(vh.current=Gh,e=S!==null&&S.next!==null,xh=0,T$1=S=R$1=null,yh=!1,e)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return T$1===null?R$1.memoizedState=T$1=a:T$1=T$1.next=a,T$1}function Ih(){if(S===null){var a=R$1.alternate;a=a!==null?a.memoizedState:null}else a=S.next;var e=T$1===null?R$1.memoizedState:T$1.next;if(e!==null)T$1=e,S=a;else{if(a===null)throw Error(y(310));S=a,a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null},T$1===null?R$1.memoizedState=T$1=a:T$1=T$1.next=a}return T$1}function Jh(a,e){return typeof e=="function"?e(a):e}function Kh(a){var e=Ih(),s=e.queue;if(s===null)throw Error(y(311));s.lastRenderedReducer=a;var o=S,c=o.baseQueue,d=s.pending;if(d!==null){if(c!==null){var _=c.next;c.next=d.next,d.next=_}o.baseQueue=c=d,s.pending=null}if(c!==null){c=c.next,o=o.baseState;var b=_=d=null,k=c;do{var $=k.lane;if((xh&$)===$)b!==null&&(b=b.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),o=k.eagerReducer===a?k.eagerState:a(o,k.action);else{var j={lane:$,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};b===null?(_=b=j,d=o):b=b.next=j,R$1.lanes|=$,Dg|=$}k=k.next}while(k!==null&&k!==c);b===null?d=o:b.next=_,He(o,e.memoizedState)||(ug=!0),e.memoizedState=o,e.baseState=d,e.baseQueue=b,s.lastRenderedState=o}return[e.memoizedState,s.dispatch]}function Lh(a){var e=Ih(),s=e.queue;if(s===null)throw Error(y(311));s.lastRenderedReducer=a;var o=s.dispatch,c=s.pending,d=e.memoizedState;if(c!==null){s.pending=null;var _=c=c.next;do d=a(d,_.action),_=_.next;while(_!==c);He(d,e.memoizedState)||(ug=!0),e.memoizedState=d,e.baseQueue===null&&(e.baseState=d),s.lastRenderedState=d}return[d,o]}function Mh(a,e,s){var o=e._getVersion;o=o(e._source);var c=e._workInProgressVersionPrimary;if(c!==null?a=c===o:(a=a.mutableReadLanes,(a=(xh&a)===a)&&(e._workInProgressVersionPrimary=o,th.push(e))),a)return s(e._source);throw th.push(e),Error(y(350))}function Nh(a,e,s,o){var c=U;if(c===null)throw Error(y(349));var d=e._getVersion,_=d(e._source),b=vh.current,k=b.useState(function(){return Mh(c,e,s)}),$=k[1],j=k[0];k=T$1;var _e=a.memoizedState,et=_e.refs,tt=et.getSnapshot,nt=_e.source;_e=_e.subscribe;var it=R$1;return a.memoizedState={refs:et,source:e,subscribe:o},b.useEffect(function(){et.getSnapshot=s,et.setSnapshot=$;var rt=d(e._source);if(!He(_,rt)){rt=s(e._source),He(j,rt)||($(rt),rt=Ig(it),c.mutableReadLanes|=rt&c.pendingLanes),rt=c.mutableReadLanes,c.entangledLanes|=rt;for(var st=c.entanglements,ot=rt;0s?98:s,function(){a(!0)}),gg(97<\/script>",a=a.removeChild(a.firstChild)):typeof o.is=="string"?a=_.createElement(s,{is:o.is}):(a=_.createElement(s),s==="select"&&(_=a,o.multiple?_.multiple=!0:o.size&&(_.size=o.size))):a=_.createElementNS(a,s),a[wf]=e,a[xf]=o,Bi(a,e,!1,!1),e.stateNode=a,_=wb(s,o),s){case"dialog":G("cancel",a),G("close",a),c=o;break;case"iframe":case"object":case"embed":G("load",a),c=o;break;case"video":case"audio":for(c=0;cJi&&(e.flags|=64,d=!0,Fi(o,!1),e.lanes=33554432)}else{if(!d)if(a=ih(_),a!==null){if(e.flags|=64,d=!0,s=a.updateQueue,s!==null&&(e.updateQueue=s,e.flags|=4),Fi(o,!0),o.tail===null&&o.tailMode==="hidden"&&!_.alternate&&!lh)return e=e.lastEffect=o.lastEffect,e!==null&&(e.nextEffect=null),null}else 2*O()-o.renderingStartTime>Ji&&s!==1073741824&&(e.flags|=64,d=!0,Fi(o,!1),e.lanes=33554432);o.isBackwards?(_.sibling=e.child,e.child=_):(s=o.last,s!==null?s.sibling=_:e.child=_,o.last=_)}return o.tail!==null?(s=o.tail,o.rendering=s,o.tail=s.sibling,o.lastEffect=e.lastEffect,o.renderingStartTime=O(),s.sibling=null,e=P.current,I$1(P,d?e&1|2:e&1),s):null;case 23:case 24:return Ki(),a!==null&&a.memoizedState!==null!=(e.memoizedState!==null)&&o.mode!=="unstable-defer-without-hiding"&&(e.flags|=4),null}throw Error(y(156,e.tag))}function Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var e=a.flags;return e&4096?(a.flags=e&-4097|64,a):null;case 3:if(fh(),H(N),H(M),uh(),e=a.flags,(e&64)!==0)throw Error(y(285));return a.flags=e&-4097|64,a;case 5:return hh(a),null;case 13:return H(P),e=a.flags,e&4096?(a.flags=e&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}function Mi(a,e){try{var s="",o=e;do s+=Qa(o),o=o.return;while(o);var c=s}catch(d){c=` Error generating stack: `+d.message+` `+d.stack}return{value:a,source:e,stack:c}}function Ni(a,e){try{console.error(e.value)}catch(s){setTimeout(function(){throw s})}}var Oi=typeof WeakMap=="function"?WeakMap:Map;function Pi(a,e,s){s=zg(-1,s),s.tag=3,s.payload={element:null};var o=e.value;return s.callback=function(){Qi||(Qi=!0,Ri=o),Ni(a,e)},s}function Si(a,e,s){s=zg(-1,s),s.tag=3;var o=a.type.getDerivedStateFromError;if(typeof o=="function"){var c=e.value;s.payload=function(){return Ni(a,e),o(c)}}var d=a.stateNode;return d!==null&&typeof d.componentDidCatch=="function"&&(s.callback=function(){typeof o!="function"&&(Ti===null?Ti=new Set([this]):Ti.add(this),Ni(a,e));var _=e.stack;this.componentDidCatch(e.value,{componentStack:_!==null?_:""})}),s}var Ui=typeof WeakSet=="function"?WeakSet:Set;function Vi(a){var e=a.ref;if(e!==null)if(typeof e=="function")try{e(null)}catch(s){Wi(a,s)}else e.current=null}function Xi(a,e){switch(e.tag){case 0:case 11:case 15:case 22:return;case 1:if(e.flags&256&&a!==null){var s=a.memoizedProps,o=a.memoizedState;a=e.stateNode,e=a.getSnapshotBeforeUpdate(e.elementType===e.type?s:lg(e.type,s),o),a.__reactInternalSnapshotBeforeUpdate=e}return;case 3:e.flags&256&&qf(e.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163))}function Yi(a,e,s){switch(s.tag){case 0:case 11:case 15:case 22:if(e=s.updateQueue,e=e!==null?e.lastEffect:null,e!==null){a=e=e.next;do{if((a.tag&3)===3){var o=a.create;a.destroy=o()}a=a.next}while(a!==e)}if(e=s.updateQueue,e=e!==null?e.lastEffect:null,e!==null){a=e=e.next;do{var c=a;o=c.next,c=c.tag,(c&4)!==0&&(c&1)!==0&&(Zi(s,a),$i(s,a)),a=o}while(a!==e)}return;case 1:a=s.stateNode,s.flags&4&&(e===null?a.componentDidMount():(o=s.elementType===s.type?e.memoizedProps:lg(s.type,e.memoizedProps),a.componentDidUpdate(o,e.memoizedState,a.__reactInternalSnapshotBeforeUpdate))),e=s.updateQueue,e!==null&&Eg(s,e,a);return;case 3:if(e=s.updateQueue,e!==null){if(a=null,s.child!==null)switch(s.child.tag){case 5:a=s.child.stateNode;break;case 1:a=s.child.stateNode}Eg(s,e,a)}return;case 5:a=s.stateNode,e===null&&s.flags&4&&mf(s.type,s.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:s.memoizedState===null&&(s=s.alternate,s!==null&&(s=s.memoizedState,s!==null&&(s=s.dehydrated,s!==null&&Cc(s))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163))}function aj(a,e){for(var s=a;;){if(s.tag===5){var o=s.stateNode;if(e)o=o.style,typeof o.setProperty=="function"?o.setProperty("display","none","important"):o.display="none";else{o=s.stateNode;var c=s.memoizedProps.style;c=c!=null&&c.hasOwnProperty("display")?c.display:null,o.style.display=sb("display",c)}}else if(s.tag===6)s.stateNode.nodeValue=e?"":s.memoizedProps;else if((s.tag!==23&&s.tag!==24||s.memoizedState===null||s===a)&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===a)break;for(;s.sibling===null;){if(s.return===null||s.return===a)return;s=s.return}s.sibling.return=s.return,s=s.sibling}}function bj(a,e){if(Mf&&typeof Mf.onCommitFiberUnmount=="function")try{Mf.onCommitFiberUnmount(Lf,e)}catch{}switch(e.tag){case 0:case 11:case 14:case 15:case 22:if(a=e.updateQueue,a!==null&&(a=a.lastEffect,a!==null)){var s=a=a.next;do{var o=s,c=o.destroy;if(o=o.tag,c!==void 0)if((o&4)!==0)Zi(e,s);else{o=e;try{c()}catch(d){Wi(o,d)}}s=s.next}while(s!==a)}break;case 1:if(Vi(e),a=e.stateNode,typeof a.componentWillUnmount=="function")try{a.props=e.memoizedProps,a.state=e.memoizedState,a.componentWillUnmount()}catch(d){Wi(e,d)}break;case 5:Vi(e);break;case 4:cj(a,e)}}function dj(a){a.alternate=null,a.child=null,a.dependencies=null,a.firstEffect=null,a.lastEffect=null,a.memoizedProps=null,a.memoizedState=null,a.pendingProps=null,a.return=null,a.updateQueue=null}function ej(a){return a.tag===5||a.tag===3||a.tag===4}function fj(a){e:{for(var e=a.return;e!==null;){if(ej(e))break e;e=e.return}throw Error(y(160))}var s=e;switch(e=s.stateNode,s.tag){case 5:var o=!1;break;case 3:e=e.containerInfo,o=!0;break;case 4:e=e.containerInfo,o=!0;break;default:throw Error(y(161))}s.flags&16&&(pb(e,""),s.flags&=-17);e:t:for(s=a;;){for(;s.sibling===null;){if(s.return===null||ej(s.return)){s=null;break e}s=s.return}for(s.sibling.return=s.return,s=s.sibling;s.tag!==5&&s.tag!==6&&s.tag!==18;){if(s.flags&2||s.child===null||s.tag===4)continue t;s.child.return=s,s=s.child}if(!(s.flags&2)){s=s.stateNode;break e}}o?gj(a,s,e):hj(a,s,e)}function gj(a,e,s){var o=a.tag,c=o===5||o===6;if(c)a=c?a.stateNode:a.stateNode.instance,e?s.nodeType===8?s.parentNode.insertBefore(a,e):s.insertBefore(a,e):(s.nodeType===8?(e=s.parentNode,e.insertBefore(a,s)):(e=s,e.appendChild(a)),s=s._reactRootContainer,s!=null||e.onclick!==null||(e.onclick=jf));else if(o!==4&&(a=a.child,a!==null))for(gj(a,e,s),a=a.sibling;a!==null;)gj(a,e,s),a=a.sibling}function hj(a,e,s){var o=a.tag,c=o===5||o===6;if(c)a=c?a.stateNode:a.stateNode.instance,e?s.insertBefore(a,e):s.appendChild(a);else if(o!==4&&(a=a.child,a!==null))for(hj(a,e,s),a=a.sibling;a!==null;)hj(a,e,s),a=a.sibling}function cj(a,e){for(var s=e,o=!1,c,d;;){if(!o){o=s.return;e:for(;;){if(o===null)throw Error(y(160));switch(c=o.stateNode,o.tag){case 5:d=!1;break e;case 3:c=c.containerInfo,d=!0;break e;case 4:c=c.containerInfo,d=!0;break e}o=o.return}o=!0}if(s.tag===5||s.tag===6){e:for(var _=a,b=s,k=b;;)if(bj(_,k),k.child!==null&&k.tag!==4)k.child.return=k,k=k.child;else{if(k===b)break e;for(;k.sibling===null;){if(k.return===null||k.return===b)break e;k=k.return}k.sibling.return=k.return,k=k.sibling}d?(_=c,b=s.stateNode,_.nodeType===8?_.parentNode.removeChild(b):_.removeChild(b)):c.removeChild(s.stateNode)}else if(s.tag===4){if(s.child!==null){c=s.stateNode.containerInfo,d=!0,s.child.return=s,s=s.child;continue}}else if(bj(a,s),s.child!==null){s.child.return=s,s=s.child;continue}if(s===e)break;for(;s.sibling===null;){if(s.return===null||s.return===e)return;s=s.return,s.tag===4&&(o=!1)}s.sibling.return=s.return,s=s.sibling}}function ij(a,e){switch(e.tag){case 0:case 11:case 14:case 15:case 22:var s=e.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var o=s=s.next;do(o.tag&3)===3&&(a=o.destroy,o.destroy=void 0,a!==void 0&&a()),o=o.next;while(o!==s)}return;case 1:return;case 5:if(s=e.stateNode,s!=null){o=e.memoizedProps;var c=a!==null?a.memoizedProps:o;a=e.type;var d=e.updateQueue;if(e.updateQueue=null,d!==null){for(s[xf]=o,a==="input"&&o.type==="radio"&&o.name!=null&&$a(s,o),wb(a,c),e=wb(a,o),c=0;cc&&(c=_),s&=~d}if(s=c,s=O()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*nj(s/1960))-s,10 component higher in the tree to provide a loading * * Copyright (c) 2021, Robert Eisele (robert@xarg.org) * Dual licensed under the MIT or GPL Version 2 licenses. - **/(function(a,e){(function(s){var o=2e3,c={s:1,n:0,d:1};function d(nt,it){if(isNaN(nt=parseInt(nt,10)))throw tt.InvalidParameter;return nt*it}function _(nt,it){if(it===0)throw tt.DivisionByZero;var rt=Object.create(tt.prototype);rt.s=nt<0?-1:1,nt=nt<0?-nt:nt;var st=et(nt,it);return rt.n=nt/st,rt.d=it/st,rt}function b(nt){for(var it={},rt=nt,st=2,ot=4;ot<=rt;){for(;rt%st===0;)rt/=st,it[st]=(it[st]||0)+1;ot+=1+2*st++}return rt!==nt?rt>1&&(it[rt]=(it[rt]||0)+1):it[nt]=(it[nt]||0)+1,it}var k=function(nt,it){var rt=0,st=1,ot=1,at=0,ht=0,lt=0,ut=1,ct=1,dt=0,ft=1,yt=1,_t=1,gt=1e7,Et;if(nt!=null)if(it!==void 0){if(rt=nt,st=it,ot=rt*st,rt%1!==0||st%1!==0)throw tt.NonIntegerParameter}else switch(typeof nt){case"object":{if("d"in nt&&"n"in nt)rt=nt.n,st=nt.d,"s"in nt&&(rt*=nt.s);else if(0 in nt)rt=nt[0],1 in nt&&(st=nt[1]);else throw tt.InvalidParameter;ot=rt*st;break}case"number":{if(nt<0&&(ot=nt,nt=-nt),nt%1===0)rt=nt;else if(nt>0){for(nt>=1&&(ct=Math.pow(10,Math.floor(1+Math.log(nt)/Math.LN10)),nt/=ct);ft<=gt&&_t<=gt;)if(Et=(dt+yt)/(ft+_t),nt===Et){ft+_t<=gt?(rt=dt+yt,st=ft+_t):_t>ft?(rt=yt,st=_t):(rt=dt,st=ft);break}else nt>Et?(dt+=yt,ft+=_t):(yt+=dt,_t+=ft),ft>gt?(rt=yt,st=_t):(rt=dt,st=ft);rt*=ct}else(isNaN(nt)||isNaN(it))&&(st=rt=NaN);break}case"string":{if(ft=nt.match(/\d+|./g),ft===null)throw tt.InvalidParameter;if(ft[dt]==="-"?(ot=-1,dt++):ft[dt]==="+"&&dt++,ft.length===dt+1?ht=d(ft[dt++],ot):ft[dt+1]==="."||ft[dt]==="."?(ft[dt]!=="."&&(at=d(ft[dt++],ot)),dt++,(dt+1===ft.length||ft[dt+1]==="("&&ft[dt+3]===")"||ft[dt+1]==="'"&&ft[dt+3]==="'")&&(ht=d(ft[dt],ot),ut=Math.pow(10,ft[dt].length),dt++),(ft[dt]==="("&&ft[dt+2]===")"||ft[dt]==="'"&&ft[dt+2]==="'")&&(lt=d(ft[dt+1],ot),ct=Math.pow(10,ft[dt+1].length)-1,dt+=3)):ft[dt+1]==="/"||ft[dt+1]===":"?(ht=d(ft[dt],ot),ut=d(ft[dt+2],1),dt+=3):ft[dt+3]==="/"&&ft[dt+1]===" "&&(at=d(ft[dt],ot),ht=d(ft[dt+2],ot),ut=d(ft[dt+4],1),dt+=5),ft.length<=dt){st=ut*ct,ot=rt=lt+st*at+ct*ht;break}}default:throw tt.InvalidParameter}if(st===0)throw tt.DivisionByZero;c.s=ot<0?-1:1,c.n=Math.abs(rt),c.d=Math.abs(st)};function $(nt,it,rt){for(var st=1;it>0;nt=nt*nt%rt,it>>=1)it&1&&(st=st*nt%rt);return st}function j(nt,it){for(;it%2===0;it/=2);for(;it%5===0;it/=5);if(it===1)return 0;for(var rt=10%it,st=1;rt!==1;st++)if(rt=rt*10%it,st>o)return 0;return st}function _e(nt,it,rt){for(var st=1,ot=$(10,rt,it),at=0;at<300;at++){if(st===ot)return at;st=st*10%it,ot=ot*10%it}return 0}function et(nt,it){if(!nt)return it;if(!it)return nt;for(;;){if(nt%=it,!nt)return it;if(it%=nt,!it)return nt}}function tt(nt,it){if(k(nt,it),this instanceof tt)nt=et(c.d,c.n),this.s=c.s,this.n=c.n/nt,this.d=c.d/nt;else return _(c.s*c.n,c.d)}tt.DivisionByZero=new Error("Division by Zero"),tt.InvalidParameter=new Error("Invalid argument"),tt.NonIntegerParameter=new Error("Parameters must be integer"),tt.prototype={s:1,n:0,d:1,abs:function(){return _(this.n,this.d)},neg:function(){return _(-this.s*this.n,this.d)},add:function(nt,it){return k(nt,it),_(this.s*this.n*c.d+c.s*this.d*c.n,this.d*c.d)},sub:function(nt,it){return k(nt,it),_(this.s*this.n*c.d-c.s*this.d*c.n,this.d*c.d)},mul:function(nt,it){return k(nt,it),_(this.s*c.s*this.n*c.n,this.d*c.d)},div:function(nt,it){return k(nt,it),_(this.s*c.s*this.n*c.d,this.d*c.n)},clone:function(){return _(this.s*this.n,this.d)},mod:function(nt,it){if(isNaN(this.n)||isNaN(this.d))return new tt(NaN);if(nt===void 0)return _(this.s*this.n%this.d,1);if(k(nt,it),c.n===0&&this.d===0)throw tt.DivisionByZero;return _(this.s*(c.d*this.n)%(c.n*this.d),c.d*this.d)},gcd:function(nt,it){return k(nt,it),_(et(c.n,this.n)*et(c.d,this.d),c.d*this.d)},lcm:function(nt,it){return k(nt,it),c.n===0&&this.n===0?_(0,1):_(c.n*this.n,et(c.n,this.n)*et(c.d,this.d))},ceil:function(nt){return nt=Math.pow(10,nt||0),isNaN(this.n)||isNaN(this.d)?new tt(NaN):_(Math.ceil(nt*this.s*this.n/this.d),nt)},floor:function(nt){return nt=Math.pow(10,nt||0),isNaN(this.n)||isNaN(this.d)?new tt(NaN):_(Math.floor(nt*this.s*this.n/this.d),nt)},round:function(nt){return nt=Math.pow(10,nt||0),isNaN(this.n)||isNaN(this.d)?new tt(NaN):_(Math.round(nt*this.s*this.n/this.d),nt)},inverse:function(){return _(this.s*this.d,this.n)},pow:function(nt,it){if(k(nt,it),c.d===1)return c.s<0?_(Math.pow(this.s*this.d,c.n),Math.pow(this.n,c.n)):_(Math.pow(this.s*this.n,c.n),Math.pow(this.d,c.n));if(this.s<0)return null;var rt=b(this.n),st=b(this.d),ot=1,at=1;for(var ht in rt)if(ht!=="1"){if(ht==="0"){ot=0;break}if(rt[ht]*=c.n,rt[ht]%c.d===0)rt[ht]/=c.d;else return null;ot*=Math.pow(ht,rt[ht])}for(var ht in st)if(ht!=="1"){if(st[ht]*=c.n,st[ht]%c.d===0)st[ht]/=c.d;else return null;at*=Math.pow(ht,st[ht])}return c.s<0?_(at,ot):_(ot,at)},equals:function(nt,it){return k(nt,it),this.s*this.n*c.d===c.s*c.n*this.d},compare:function(nt,it){k(nt,it);var rt=this.s*this.n*c.d-c.s*c.n*this.d;return(0=0;at--)ot=ot.inverse().add(rt[at]);if(ot.sub(it).abs().valueOf()0&&(rt+=it,rt+=" ",st%=ot),rt+=st,rt+="/",rt+=ot),rt},toLatex:function(nt){var it,rt="",st=this.n,ot=this.d;return this.s<0&&(rt+="-"),ot===1?rt+=st:(nt&&(it=Math.floor(st/ot))>0&&(rt+=it,st%=ot),rt+="\\frac{",rt+=st,rt+="}{",rt+=ot,rt+="}"),rt},toContinued:function(){var nt,it=this.n,rt=this.d,st=[];if(isNaN(it)||isNaN(rt))return st;do st.push(Math.floor(it/rt)),nt=it%rt,it=rt,rt=nt;while(it!==1);return st},toString:function(nt){var it=this.n,rt=this.d;if(isNaN(it)||isNaN(rt))return"NaN";nt=nt||15;var st=j(it,rt),ot=_e(it,rt,st),at=this.s<0?"-":"";if(at+=it/rt|0,it%=rt,it*=10,it&&(at+="."),st){for(var ht=ot;ht--;)at+=it/rt|0,it%=rt,it*=10;at+="(";for(var ht=st;ht--;)at+=it/rt|0,it%=rt,it*=10;at+=")"}else for(var ht=nt;it&&ht--;)at+=it/rt|0,it%=rt,it*=10;return at}},Object.defineProperty(tt,"__esModule",{value:!0}),tt.default=tt,tt.Fraction=tt,a.exports=tt})()})(fraction$1);var Fraction=getDefaultExportFromCjs(fraction$1.exports);Fraction.prototype.sam=function(){return this.floor()};Fraction.prototype.nextSam=function(){return this.sam().add(1)};Fraction.prototype.wholeCycle=function(){return new TimeSpan$1(this.sam(),this.nextSam())};Fraction.prototype.cyclePos=function(){return this.sub(this.sam())};Fraction.prototype.lt=function(a){return this.compare(a)<0};Fraction.prototype.gt=function(a){return this.compare(a)>0};Fraction.prototype.lte=function(a){return this.compare(a)<=0};Fraction.prototype.gte=function(a){return this.compare(a)>=0};Fraction.prototype.eq=function(a){return this.compare(a)==0};Fraction.prototype.max=function(a){return this.gt(a)?this:a};Fraction.prototype.min=function(a){return this.lt(a)?this:a};Fraction.prototype.show=function(){return this.s*this.n+"/"+this.d};Fraction.prototype.or=function(a){return this.eq(0)?a:this};const fraction=a=>(typeof a=="number"&&(a=String(a)),Fraction(a)),gcd=(...a)=>a.reduce((e,s)=>e.gcd(s),fraction(1));fraction._original=Fraction;class TimeSpan$1{constructor(e,s){this.begin=fraction(e),this.end=fraction(s)}get spanCycles(){const e=[];var s=this.begin;const o=this.end,c=o.sam();for(;o.gt(s);){if(s.sam().equals(c)){e.push(new TimeSpan$1(s,this.end));break}const d=s.nextSam();e.push(new TimeSpan$1(s,d)),s=d}return e}get duration(){return this.end.sub(this.begin)}cycleArc(){const e=this.begin.cyclePos(),s=e.add(this.duration);return new TimeSpan$1(e,s)}withTime(e){return new TimeSpan$1(e(this.begin),e(this.end))}withEnd(e){return new TimeSpan$1(this.begin,e(this.end))}withCycle(e){const s=this.begin.sam(),o=s.add(e(this.begin.sub(s))),c=s.add(e(this.end.sub(s)));return new TimeSpan$1(o,c)}intersection(e){const s=this.begin.max(e.begin),o=this.end.min(e.end);if(!s.gt(o)&&!(s.equals(o)&&(s.equals(this.end)&&this.begin.lt(this.end)||s.equals(e.end)&&e.begin.lt(e.end))))return new TimeSpan$1(s,o)}intersection_e(e){const s=this.intersection(e);if(s==null)throw"TimeSpans do not intersect";return s}midpoint(){return this.begin.add(this.duration.div(fraction(2)))}equals(e){return this.begin.equals(e.begin)&&this.end.equals(e.end)}show(){return this.begin.show()+" -> "+this.end.show()}}class Hap{constructor(e,s,o,c={},d=!1){this.whole=e,this.part=s,this.value=o,this.context=c,this.stateful=d,d&&console.assert(typeof this.value=="function","Stateful values must be functions")}get duration(){return this.whole.end.sub(this.whole.begin)}wholeOrPart(){return this.whole?this.whole:this.part}withSpan(e){const s=this.whole?e(this.whole):void 0;return new Hap(s,e(this.part),this.value,this.context)}withValue(e){return new Hap(this.whole,this.part,e(this.value),this.context)}hasOnset(){return this.whole!=null&&this.whole.begin.equals(this.part.begin)}resolveState(e){if(this.stateful&&this.hasOnset()){console.log("stateful");const s=this.value,[o,c]=s(e);return[o,new Hap(this.whole,this.part,c,this.context,!1)]}return[e,this]}spanEquals(e){return this.whole==null&&e.whole==null||this.whole.equals(e.whole)}equals(e){return this.spanEquals(e)&&this.part.equals(e.part)&&this.value===e.value}show(){return"("+(this.whole==null?"~":this.whole.show())+", "+this.part.show()+", "+this.value+")"}showWhole(){return`${this.whole==null?"~":this.whole.show()}: ${typeof this.value=="object"?JSON.stringify(this.value):this.value}`}combineContext(e){const s=this;return kt(Dt(Dt({},s.context),e.context),{locations:(s.context.locations||[]).concat(e.context.locations||[])})}setContext(e){return new Hap(this.whole,this.part,this.value,e)}}class State$1{constructor(e,s={}){this.span=e,this.controls=s}setSpan(e){return new State$1(e,this.controls)}withSpan(e){return this.setSpan(e(this.span))}setControls(e){return new State$1(this.span,e)}}const isNote$3=a=>/^[a-gA-G][#b]*[0-9]$/.test(a),tokenizeNote=a=>{var c;if(typeof a!="string")return[];const[e,s="",o]=((c=a.match(/^([a-gA-G])([#bs]*)([0-9])?$/))==null?void 0:c.slice(1))||[];return e?[e,s,o?Number(o):void 0]:[]},toMidi$1=a=>{const[e,s,o]=tokenizeNote(a);if(!e)throw new Error('not a note: "'+a+'"');const c={c:0,d:2,e:4,f:5,g:7,a:9,b:11}[e.toLowerCase()],d=(s==null?void 0:s.split("").reduce((_,b)=>_+{"#":1,b:-1,s:1}[b],0))||0;return(Number(o)+1)*12+c+d},fromMidi=a=>Math.pow(2,(a-69)/12)*440,getFreq=a=>fromMidi(typeof a=="number"?a:toMidi$1(a)),midi2note=a=>{const e=Math.floor(a/12)-1;return["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"][a%12]+e},mod=(a,e)=>(a%e+e)%e,getPlayableNoteValue=a=>{let{value:e,context:s}=a;if(typeof e=="number"&&s.type!=="frequency")e=fromMidi(a.value);else if(typeof e=="string"&&!isNote$3(e))throw new Error("not a note: "+e);return e},getFrequency=a=>{let{value:e,context:s}=a;if(typeof e=="object"&&e.freq)return e.freq;if(typeof e=="number"&&s.type!=="frequency")e=fromMidi(a.value);else if(typeof e=="string"&&isNote$3(e))e=fromMidi(toMidi$1(a.value));else if(typeof e!="number")throw new Error("not a note or frequency:"+e);return e},rotate=(a,e)=>a.slice(e).concat(a.slice(0,e)),pipe=(...a)=>a.reduce((e,s)=>(...o)=>e(s(...o)),e=>e),compose=(...a)=>pipe(...a.reverse()),removeUndefineds=a=>a.filter(e=>e!=null),flatten$1=a=>[].concat(...a),id$1=a=>a,constant=(a,e)=>a,listRange=(a,e)=>Array.from({length:e-a+1},(s,o)=>o+a);function curry(a,e){const s=function o(...c){if(c.length>=a.length)return a.apply(this,c);{const d=function(..._){return o.apply(this,c.concat(_))};return e&&e(d,c),d}};return e&&e(s,[]),s}function unionWithObj(a,e,s){const o=Object.keys(a).filter(c=>Object.keys(e).includes(c));return Object.assign({},a,e,Object.fromEntries(o.map(c=>[c,s(a[c],e[c])])))}curry((a,e)=>a*e);curry((a,e)=>e.map(a));function drawLine(a,e=60){let s=0,o=fraction(0),c=[""],d="";for(;c[0].lengthj.hasOnset()).map(j=>j.duration),k=gcd(...b),$=k.inverse();c=c.map(j=>j+"|"),d+="|";for(let j=0;j<$;j++){const[_e,et]=[o,o.add(k)],tt=_.filter(it=>it.whole.begin.lte(_e)&&it.whole.end.gte(et)),nt=tt.length-c.length;nt>0&&(c=c.concat(Array(nt).fill(d))),c=c.map((it,rt)=>{const st=tt[rt];if(st){const at=st.whole.begin.eq(_e)?""+st.value:"-";return it+at}return it+"."}),d+=".",o=o.add(k)}s++}return c.join(` + **/(function(a,e){(function(s){var o=2e3,c={s:1,n:0,d:1};function d(nt,it){if(isNaN(nt=parseInt(nt,10)))throw tt.InvalidParameter;return nt*it}function _(nt,it){if(it===0)throw tt.DivisionByZero;var rt=Object.create(tt.prototype);rt.s=nt<0?-1:1,nt=nt<0?-nt:nt;var st=et(nt,it);return rt.n=nt/st,rt.d=it/st,rt}function b(nt){for(var it={},rt=nt,st=2,ot=4;ot<=rt;){for(;rt%st===0;)rt/=st,it[st]=(it[st]||0)+1;ot+=1+2*st++}return rt!==nt?rt>1&&(it[rt]=(it[rt]||0)+1):it[nt]=(it[nt]||0)+1,it}var k=function(nt,it){var rt=0,st=1,ot=1,at=0,ht=0,lt=0,ut=1,ct=1,dt=0,ft=1,Et=1,yt=1,gt=1e7,St;if(nt!=null)if(it!==void 0){if(rt=nt,st=it,ot=rt*st,rt%1!==0||st%1!==0)throw tt.NonIntegerParameter}else switch(typeof nt){case"object":{if("d"in nt&&"n"in nt)rt=nt.n,st=nt.d,"s"in nt&&(rt*=nt.s);else if(0 in nt)rt=nt[0],1 in nt&&(st=nt[1]);else throw tt.InvalidParameter;ot=rt*st;break}case"number":{if(nt<0&&(ot=nt,nt=-nt),nt%1===0)rt=nt;else if(nt>0){for(nt>=1&&(ct=Math.pow(10,Math.floor(1+Math.log(nt)/Math.LN10)),nt/=ct);ft<=gt&&yt<=gt;)if(St=(dt+Et)/(ft+yt),nt===St){ft+yt<=gt?(rt=dt+Et,st=ft+yt):yt>ft?(rt=Et,st=yt):(rt=dt,st=ft);break}else nt>St?(dt+=Et,ft+=yt):(Et+=dt,yt+=ft),ft>gt?(rt=Et,st=yt):(rt=dt,st=ft);rt*=ct}else(isNaN(nt)||isNaN(it))&&(st=rt=NaN);break}case"string":{if(ft=nt.match(/\d+|./g),ft===null)throw tt.InvalidParameter;if(ft[dt]==="-"?(ot=-1,dt++):ft[dt]==="+"&&dt++,ft.length===dt+1?ht=d(ft[dt++],ot):ft[dt+1]==="."||ft[dt]==="."?(ft[dt]!=="."&&(at=d(ft[dt++],ot)),dt++,(dt+1===ft.length||ft[dt+1]==="("&&ft[dt+3]===")"||ft[dt+1]==="'"&&ft[dt+3]==="'")&&(ht=d(ft[dt],ot),ut=Math.pow(10,ft[dt].length),dt++),(ft[dt]==="("&&ft[dt+2]===")"||ft[dt]==="'"&&ft[dt+2]==="'")&&(lt=d(ft[dt+1],ot),ct=Math.pow(10,ft[dt+1].length)-1,dt+=3)):ft[dt+1]==="/"||ft[dt+1]===":"?(ht=d(ft[dt],ot),ut=d(ft[dt+2],1),dt+=3):ft[dt+3]==="/"&&ft[dt+1]===" "&&(at=d(ft[dt],ot),ht=d(ft[dt+2],ot),ut=d(ft[dt+4],1),dt+=5),ft.length<=dt){st=ut*ct,ot=rt=lt+st*at+ct*ht;break}}default:throw tt.InvalidParameter}if(st===0)throw tt.DivisionByZero;c.s=ot<0?-1:1,c.n=Math.abs(rt),c.d=Math.abs(st)};function $(nt,it,rt){for(var st=1;it>0;nt=nt*nt%rt,it>>=1)it&1&&(st=st*nt%rt);return st}function j(nt,it){for(;it%2===0;it/=2);for(;it%5===0;it/=5);if(it===1)return 0;for(var rt=10%it,st=1;rt!==1;st++)if(rt=rt*10%it,st>o)return 0;return st}function _e(nt,it,rt){for(var st=1,ot=$(10,rt,it),at=0;at<300;at++){if(st===ot)return at;st=st*10%it,ot=ot*10%it}return 0}function et(nt,it){if(!nt)return it;if(!it)return nt;for(;;){if(nt%=it,!nt)return it;if(it%=nt,!it)return nt}}function tt(nt,it){if(k(nt,it),this instanceof tt)nt=et(c.d,c.n),this.s=c.s,this.n=c.n/nt,this.d=c.d/nt;else return _(c.s*c.n,c.d)}tt.DivisionByZero=new Error("Division by Zero"),tt.InvalidParameter=new Error("Invalid argument"),tt.NonIntegerParameter=new Error("Parameters must be integer"),tt.prototype={s:1,n:0,d:1,abs:function(){return _(this.n,this.d)},neg:function(){return _(-this.s*this.n,this.d)},add:function(nt,it){return k(nt,it),_(this.s*this.n*c.d+c.s*this.d*c.n,this.d*c.d)},sub:function(nt,it){return k(nt,it),_(this.s*this.n*c.d-c.s*this.d*c.n,this.d*c.d)},mul:function(nt,it){return k(nt,it),_(this.s*c.s*this.n*c.n,this.d*c.d)},div:function(nt,it){return k(nt,it),_(this.s*c.s*this.n*c.d,this.d*c.n)},clone:function(){return _(this.s*this.n,this.d)},mod:function(nt,it){if(isNaN(this.n)||isNaN(this.d))return new tt(NaN);if(nt===void 0)return _(this.s*this.n%this.d,1);if(k(nt,it),c.n===0&&this.d===0)throw tt.DivisionByZero;return _(this.s*(c.d*this.n)%(c.n*this.d),c.d*this.d)},gcd:function(nt,it){return k(nt,it),_(et(c.n,this.n)*et(c.d,this.d),c.d*this.d)},lcm:function(nt,it){return k(nt,it),c.n===0&&this.n===0?_(0,1):_(c.n*this.n,et(c.n,this.n)*et(c.d,this.d))},ceil:function(nt){return nt=Math.pow(10,nt||0),isNaN(this.n)||isNaN(this.d)?new tt(NaN):_(Math.ceil(nt*this.s*this.n/this.d),nt)},floor:function(nt){return nt=Math.pow(10,nt||0),isNaN(this.n)||isNaN(this.d)?new tt(NaN):_(Math.floor(nt*this.s*this.n/this.d),nt)},round:function(nt){return nt=Math.pow(10,nt||0),isNaN(this.n)||isNaN(this.d)?new tt(NaN):_(Math.round(nt*this.s*this.n/this.d),nt)},inverse:function(){return _(this.s*this.d,this.n)},pow:function(nt,it){if(k(nt,it),c.d===1)return c.s<0?_(Math.pow(this.s*this.d,c.n),Math.pow(this.n,c.n)):_(Math.pow(this.s*this.n,c.n),Math.pow(this.d,c.n));if(this.s<0)return null;var rt=b(this.n),st=b(this.d),ot=1,at=1;for(var ht in rt)if(ht!=="1"){if(ht==="0"){ot=0;break}if(rt[ht]*=c.n,rt[ht]%c.d===0)rt[ht]/=c.d;else return null;ot*=Math.pow(ht,rt[ht])}for(var ht in st)if(ht!=="1"){if(st[ht]*=c.n,st[ht]%c.d===0)st[ht]/=c.d;else return null;at*=Math.pow(ht,st[ht])}return c.s<0?_(at,ot):_(ot,at)},equals:function(nt,it){return k(nt,it),this.s*this.n*c.d===c.s*c.n*this.d},compare:function(nt,it){k(nt,it);var rt=this.s*this.n*c.d-c.s*c.n*this.d;return(0=0;at--)ot=ot.inverse().add(rt[at]);if(ot.sub(it).abs().valueOf()0&&(rt+=it,rt+=" ",st%=ot),rt+=st,rt+="/",rt+=ot),rt},toLatex:function(nt){var it,rt="",st=this.n,ot=this.d;return this.s<0&&(rt+="-"),ot===1?rt+=st:(nt&&(it=Math.floor(st/ot))>0&&(rt+=it,st%=ot),rt+="\\frac{",rt+=st,rt+="}{",rt+=ot,rt+="}"),rt},toContinued:function(){var nt,it=this.n,rt=this.d,st=[];if(isNaN(it)||isNaN(rt))return st;do st.push(Math.floor(it/rt)),nt=it%rt,it=rt,rt=nt;while(it!==1);return st},toString:function(nt){var it=this.n,rt=this.d;if(isNaN(it)||isNaN(rt))return"NaN";nt=nt||15;var st=j(it,rt),ot=_e(it,rt,st),at=this.s<0?"-":"";if(at+=it/rt|0,it%=rt,it*=10,it&&(at+="."),st){for(var ht=ot;ht--;)at+=it/rt|0,it%=rt,it*=10;at+="(";for(var ht=st;ht--;)at+=it/rt|0,it%=rt,it*=10;at+=")"}else for(var ht=nt;it&&ht--;)at+=it/rt|0,it%=rt,it*=10;return at}},Object.defineProperty(tt,"__esModule",{value:!0}),tt.default=tt,tt.Fraction=tt,a.exports=tt})()})(fraction$1);var Fraction=getDefaultExportFromCjs(fraction$1.exports);Fraction.prototype.sam=function(){return this.floor()};Fraction.prototype.nextSam=function(){return this.sam().add(1)};Fraction.prototype.wholeCycle=function(){return new TimeSpan$1(this.sam(),this.nextSam())};Fraction.prototype.cyclePos=function(){return this.sub(this.sam())};Fraction.prototype.lt=function(a){return this.compare(a)<0};Fraction.prototype.gt=function(a){return this.compare(a)>0};Fraction.prototype.lte=function(a){return this.compare(a)<=0};Fraction.prototype.gte=function(a){return this.compare(a)>=0};Fraction.prototype.eq=function(a){return this.compare(a)==0};Fraction.prototype.max=function(a){return this.gt(a)?this:a};Fraction.prototype.min=function(a){return this.lt(a)?this:a};Fraction.prototype.show=function(){return this.s*this.n+"/"+this.d};Fraction.prototype.or=function(a){return this.eq(0)?a:this};const fraction=a=>(typeof a=="number"&&(a=String(a)),Fraction(a)),gcd=(...a)=>a.reduce((e,s)=>e.gcd(s),fraction(1));fraction._original=Fraction;class TimeSpan$1{constructor(e,s){this.begin=fraction(e),this.end=fraction(s)}get spanCycles(){const e=[];var s=this.begin;const o=this.end,c=o.sam();for(;o.gt(s);){if(s.sam().equals(c)){e.push(new TimeSpan$1(s,this.end));break}const d=s.nextSam();e.push(new TimeSpan$1(s,d)),s=d}return e}get duration(){return this.end.sub(this.begin)}cycleArc(){const e=this.begin.cyclePos(),s=e.add(this.duration);return new TimeSpan$1(e,s)}withTime(e){return new TimeSpan$1(e(this.begin),e(this.end))}withEnd(e){return new TimeSpan$1(this.begin,e(this.end))}withCycle(e){const s=this.begin.sam(),o=s.add(e(this.begin.sub(s))),c=s.add(e(this.end.sub(s)));return new TimeSpan$1(o,c)}intersection(e){const s=this.begin.max(e.begin),o=this.end.min(e.end);if(!s.gt(o)&&!(s.equals(o)&&(s.equals(this.end)&&this.begin.lt(this.end)||s.equals(e.end)&&e.begin.lt(e.end))))return new TimeSpan$1(s,o)}intersection_e(e){const s=this.intersection(e);if(s==null)throw"TimeSpans do not intersect";return s}midpoint(){return this.begin.add(this.duration.div(fraction(2)))}equals(e){return this.begin.equals(e.begin)&&this.end.equals(e.end)}show(){return this.begin.show()+" -> "+this.end.show()}}class Hap{constructor(e,s,o,c={},d=!1){this.whole=e,this.part=s,this.value=o,this.context=c,this.stateful=d,d&&console.assert(typeof this.value=="function","Stateful values must be functions")}get duration(){return this.whole.end.sub(this.whole.begin)}wholeOrPart(){return this.whole?this.whole:this.part}withSpan(e){const s=this.whole?e(this.whole):void 0;return new Hap(s,e(this.part),this.value,this.context)}withValue(e){return new Hap(this.whole,this.part,e(this.value),this.context)}hasOnset(){return this.whole!=null&&this.whole.begin.equals(this.part.begin)}resolveState(e){if(this.stateful&&this.hasOnset()){console.log("stateful");const s=this.value,[o,c]=s(e);return[o,new Hap(this.whole,this.part,c,this.context,!1)]}return[e,this]}spanEquals(e){return this.whole==null&&e.whole==null||this.whole.equals(e.whole)}equals(e){return this.spanEquals(e)&&this.part.equals(e.part)&&this.value===e.value}show(){return"("+(this.whole==null?"~":this.whole.show())+", "+this.part.show()+", "+this.value+")"}showWhole(){return`${this.whole==null?"~":this.whole.show()}: ${typeof this.value=="object"?JSON.stringify(this.value):this.value}`}combineContext(e){const s=this;return kt(Dt(Dt({},s.context),e.context),{locations:(s.context.locations||[]).concat(e.context.locations||[])})}setContext(e){return new Hap(this.whole,this.part,this.value,e)}}class State$1{constructor(e,s={}){this.span=e,this.controls=s}setSpan(e){return new State$1(e,this.controls)}withSpan(e){return this.setSpan(e(this.span))}setControls(e){return new State$1(this.span,e)}}const isNote$3=a=>/^[a-gA-G][#b]*[0-9]$/.test(a),tokenizeNote=a=>{var c;if(typeof a!="string")return[];const[e,s="",o]=((c=a.match(/^([a-gA-G])([#bs]*)([0-9])?$/))==null?void 0:c.slice(1))||[];return e?[e,s,o?Number(o):void 0]:[]},toMidi$1=a=>{const[e,s,o]=tokenizeNote(a);if(!e)throw new Error('not a note: "'+a+'"');const c={c:0,d:2,e:4,f:5,g:7,a:9,b:11}[e.toLowerCase()],d=(s==null?void 0:s.split("").reduce((_,b)=>_+{"#":1,b:-1,s:1}[b],0))||0;return(Number(o)+1)*12+c+d},fromMidi=a=>Math.pow(2,(a-69)/12)*440,getFreq=a=>fromMidi(typeof a=="number"?a:toMidi$1(a)),midi2note=a=>{const e=Math.floor(a/12)-1;return["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"][a%12]+e},mod=(a,e)=>(a%e+e)%e,getPlayableNoteValue=a=>{let{value:e,context:s}=a;if(typeof e=="object"&&!Array.isArray(e)&&(e=e.note||e.n||e.value),typeof e=="number"&&s.type!=="frequency")e=fromMidi(a.value);else if(typeof e=="number"&&s.type==="frequency")e=a.value;else if(typeof e!="string"||!isNote$3(e))throw new Error("not a note: "+JSON.stringify(e));return e},getFrequency=a=>{let{value:e,context:s}=a;if(typeof e=="object"&&e.freq)return e.freq;if(typeof e=="number"&&s.type!=="frequency")e=fromMidi(a.value);else if(typeof e=="string"&&isNote$3(e))e=fromMidi(toMidi$1(a.value));else if(typeof e!="number")throw new Error("not a note or frequency:"+e);return e},rotate=(a,e)=>a.slice(e).concat(a.slice(0,e)),pipe=(...a)=>a.reduce((e,s)=>(...o)=>e(s(...o)),e=>e),compose=(...a)=>pipe(...a.reverse()),removeUndefineds=a=>a.filter(e=>e!=null),flatten$1=a=>[].concat(...a),id$1=a=>a,constant=(a,e)=>a,listRange=(a,e)=>Array.from({length:e-a+1},(s,o)=>o+a);function curry(a,e){const s=function o(...c){if(c.length>=a.length)return a.apply(this,c);{const d=function(..._){return o.apply(this,c.concat(_))};return e&&e(d,c),d}};return e&&e(s,[]),s}function unionWithObj(a,e,s){const o=Object.keys(a).filter(c=>Object.keys(e).includes(c));return Object.assign({},a,e,Object.fromEntries(o.map(c=>[c,s(a[c],e[c])])))}curry((a,e)=>a*e);curry((a,e)=>e.map(a));function drawLine(a,e=60){let s=0,o=fraction(0),c=[""],d="";for(;c[0].lengthj.hasOnset()).map(j=>j.duration),k=gcd(...b),$=k.inverse();c=c.map(j=>j+"|"),d+="|";for(let j=0;j<$;j++){const[_e,et]=[o,o.add(k)],tt=_.filter(it=>it.whole.begin.lte(_e)&&it.whole.end.gte(et)),nt=tt.length-c.length;nt>0&&(c=c.concat(Array(nt).fill(d))),c=c.map((it,rt)=>{const st=tt[rt];if(st){const at=st.whole.begin.eq(_e)?""+st.value:"-";return it+at}return it+"."}),d+=".",o=o.add(k)}s++}return c.join(` `)}class Pattern$5{constructor(e){fr(this,"_Pattern",!0);this.query=e}queryArc(e,s){return this.query(new State$1(new TimeSpan$1(e,s)))}_splitQueries(){const e=this,s=o=>flatten$1(o.span.spanCycles.map(c=>e.query(o.setSpan(c))));return new Pattern$5(s)}withQuerySpan(e){return new Pattern$5(s=>this.query(s.withSpan(e)))}withQueryTime(e){return new Pattern$5(s=>this.query(s.withSpan(o=>o.withTime(e))))}withHapSpan(e){return new Pattern$5(s=>this.query(s).map(o=>o.withSpan(e)))}withHapTime(e){return this.withHapSpan(s=>s.withTime(e))}_withHaps(e){return new Pattern$5(s=>e(this.query(s)))}_withHap(e){return this._withHaps(s=>s.map(e))}_setContext(e){return this._withHap(s=>s.setContext(e))}_withContext(e){return this._withHap(s=>s.setContext(e(s.context)))}_stripContext(){return this._withHap(e=>e.setContext({}))}withLocation(e,s){const o={start:{line:e[0],column:e[1],offset:e[2]},end:{line:s[0],column:s[1],offset:s[2]}};return this._withContext(c=>{const d=(c.locations||[]).concat([o]);return kt(Dt({},c),{locations:d})})}withMiniLocation(e,s){const o={start:{line:e[0],column:e[1],offset:e[2]},end:{line:s[0],column:s[1],offset:s[2]}};return this._withContext(c=>{let d=c.locations||[];return d=d.map(({start:_,end:b})=>{const k=_.line===1?o.start.column:0;return{start:kt(Dt({},_),{line:_.line-1+(o.start.line-1)+1,column:_.column-1+k}),end:kt(Dt({},b),{line:b.line-1+(o.start.line-1)+1,column:b.column-1+k})}}),kt(Dt({},c),{locations:d})})}withValue(e){return new Pattern$5(s=>this.query(s).map(o=>o.withValue(e)))}fmap(e){return this.withValue(e)}_filterHaps(e){return new Pattern$5(s=>this.query(s).filter(e))}_filterValues(e){return new Pattern$5(s=>this.query(s).filter(o=>e(o.value)))}_removeUndefineds(){return this._filterValues(e=>e!=null)}onsetsOnly(){return this._filterHaps(e=>e.hasOnset())}discreteOnly(){return this._filterHaps(e=>e.whole)}_appWhole(e,s){const o=this,c=function(d){const _=o.query(d),b=s.query(d),k=function($,j){const _e=$.part.intersection(j.part);if(_e!=null)return new Hap(e($.whole,j.whole),_e,$.value(j.value),j.combineContext($))};return flatten$1(_.map($=>removeUndefineds(b.map(j=>k($,j)))))};return new Pattern$5(c)}appBoth(e){const s=function(o,c){if(!(o==null||c==null))return o.intersection_e(c)};return this._appWhole(s,e)}appLeft(e){const s=this,o=function(c){const d=[];for(const _ of s.query(c)){const b=e.query(c.setSpan(_.wholeOrPart()));for(const k of b){const $=_.whole,j=_.part.intersection(k.part);if(j){const _e=_.value(k.value),et=k.combineContext(_),tt=new Hap($,j,_e,et);d.push(tt)}}}return d};return new Pattern$5(o)}appRight(e){const s=this,o=function(c){const d=[];for(const _ of e.query(c)){const b=s.query(c.setSpan(_.wholeOrPart()));for(const k of b){const $=_.whole,j=k.part.intersection(_.part);if(j){const _e=k.value(_.value),et=_.combineContext(k),tt=new Hap($,j,_e,et);d.push(tt)}}}return d};return new Pattern$5(o)}firstCycle(e=!1){var s=this;return e||(s=s._stripContext()),s.query(new State$1(new TimeSpan$1(fraction(0),fraction(1))))}get _firstCycleValues(){return this.firstCycle().map(e=>e.value)}get _showFirstCycle(){return this.firstCycle().map(e=>`${e.value}: ${e.whole.begin.toFraction()} - ${e.whole.end.toFraction()}`)}_sortHapsByPart(){return this._withHaps(e=>e.sort((s,o)=>s.part.begin.sub(o.part.begin).or(s.part.end.sub(o.part.end)).or(s.whole.begin.sub(o.whole.begin).or(s.whole.end.sub(o.whole.end)))))}_opIn(e,s){return this.fmap(s).appLeft(reify$1(e))}_opOut(e,s){return this.fmap(s).appRight(reify$1(e))}_opMix(e,s){return this.fmap(s).appBoth(reify$1(e))}_opSqueeze(e,s){const o=reify$1(e);return this.fmap(c=>o.fmap(d=>s(c)(d)))._squeezeJoin()}_opSqueezeOut(e,s){const o=this;return reify$1(e).fmap(d=>o.fmap(_=>s(_)(d)))._squeezeJoin()}_opTrig(e,s){return reify$1(e).fmap(c=>this.fmap(d=>s(d)(c)))._trigJoin()}_opTrigzero(e,s){return reify$1(e).fmap(c=>this.fmap(d=>s(d)(c)))._TrigzeroJoin()}_asNumber(e=!1,s=!1){return this._withHap(o=>{const c=Number(o.value);if(!isNaN(c))return o.withValue(()=>c);const d={e:Math.E,pi:Math.PI}[o.value];if(typeof d!="undefined")return o.withValue(()=>d);if(isNote$3(o.value))return new Hap(o.whole,o.part,toMidi$1(o.value),kt(Dt({},o.context),{type:"midi"}));if(!e){if(s)return o;throw new Error('cannot parse as number: "'+o.value+'"')}})}round(){return this._asNumber().fmap(e=>Math.round(e))}floor(){return this._asNumber().fmap(e=>Math.floor(e))}ceil(){return this._asNumber().fmap(e=>Math.ceil(e))}_toBipolar(){return this.fmap(e=>e*2-1)}_fromBipolar(){return this.fmap(e=>(e+1)/2)}range(e,s){return this.mul(s-e).add(e)}rangex(e,s){return this.range(Math.log(e),Math.log(s)).fmap(Math.exp)}range2(e,s){return this._fromBipolar().range(e,s)}_bindWhole(e,s){const o=this,c=function(d){const _=function(k,$){return new Hap(e(k.whole,$.whole),$.part,$.value,Object.assign({},k.context,$.context,{locations:(k.context.locations||[]).concat($.context.locations||[])}))},b=function(k){return s(k.value).query(d.setSpan(k.part)).map($=>_(k,$))};return flatten$1(o.query(d).map(k=>b(k)))};return new Pattern$5(c)}bind(e){const s=function(o,c){if(!(o==null||c==null))return o.intersection_e(c)};return this._bindWhole(s,e)}join(){return this.bind(id$1)}outerBind(e){return this._bindWhole((s,o)=>s,e)}outerJoin(){return this.outerBind(id$1)}innerBind(e){return this._bindWhole((s,o)=>o,e)}innerJoin(){return this.innerBind(id$1)}_trigJoin(e=!1){const s=this;return new Pattern$5(o=>s.discreteOnly().query(o).map(c=>c.value.late(e?c.whole.begin:c.whole.begin.cyclePos()).query(o).map(d=>new Hap(d.whole?d.whole.intersection(c.whole):void 0,d.part.intersection(c.part),d.value).setContext(c.combineContext(d))).filter(d=>d.part)).flat())}_TrigzeroJoin(){return this._trigJoin(!0)}_squeezeJoin(){const e=this;function s(o){const c=e.discreteOnly().query(o);function d(b){const $=b.value._compressSpan(b.wholeOrPart().cycleArc()).query(o.setSpan(b.part));function j(_e,et){let tt;if(et.whole&&_e.whole&&(tt=et.whole.intersection(_e.whole),!tt))return;const nt=et.part.intersection(_e.part);if(!nt)return;const it=et.combineContext(_e);return new Hap(tt,nt,et.value,it)}return $.map(_e=>j(b,_e))}return flatten$1(c.map(d)).filter(b=>b)}return new Pattern$5(s)}_squeezeBind(e){return this.fmap(e)._squeezeJoin()}_apply(e){return e(this)}layer(...e){return stack(...e.map(s=>s(this)))}_patternify(e){const s=this;return function(...c){return c=c.map(_=>isPattern$1(_)?_.fmap(b=>b.value||b):_),sequence(...c).fmap(_=>e.call(s,_)).innerJoin()}}_fastGap(e){const s=function(c){const d=c.begin.sam(),_=d.add(c.begin.sub(d).mul(e).min(1)),b=d.add(c.end.sub(d).mul(e).min(1));return new TimeSpan$1(_,b)},o=function(c){const d=c.begin.sam(),_=d.add(c.begin.sub(d).div(e).min(1)),b=d.add(c.end.sub(d).div(e).min(1));return new TimeSpan$1(_,b)};return this.withQuerySpan(s).withHapSpan(o)._splitQueries()}_compress(e,s){return e.gt(s)||e.gt(1)||s.gt(1)||e.lt(0)||s.lt(0)?silence:this._fastGap(fraction(1).div(s.sub(e)))._late(e)}_compressSpan(e){return this._compress(e.begin,e.end)}_fast(e){return this.withQueryTime(o=>o.mul(e)).withHapTime(o=>o.div(e))}_slow(e){return this._fast(fraction(1).div(e))}_inside(e,s){return s(this._slow(e))._fast(e)}_outside(e,s){return s(this._fast(e))._slow(e)}_ply(e){return this.fmap(s=>pure(s)._fast(e))._squeezeJoin()}_chop(e){const o=Array.from({length:e},(d,_)=>_).map(d=>({begin:d/e,end:(d+1)/e})),c=function(d){return sequence(o.map(_=>Object.assign({},d,_)))};return this._squeezeBind(c)}_striate(e){const o=Array.from({length:e},(d,_)=>_).map(d=>({begin:d/e,end:(d+1)/e})),c=slowcat(...o);return this.set(c)._fast(e)}_cpm(e){return this._fast(e/60)}_early(e){return e=fraction(e),this.withQueryTime(s=>s.add(e)).withHapTime(s=>s.sub(e))}_late(e){return e=fraction(e),this._early(fraction(0).sub(e))}_zoom(e,s){s=fraction(s),e=fraction(e);const o=s.sub(e);return this.withQuerySpan(c=>c.withCycle(d=>d.mul(o).add(e))).withHapSpan(c=>c.withCycle(d=>d.sub(e).div(o)))._splitQueries()}_zoomArc(e){return this.zoom(e.begin,e.end)}_linger(e){return e==0?silence:e<0?this._zoom(e.add(1),1)._slow(e):this._zoom(0,e)._slow(e)}_color(e){return this._withContext(s=>kt(Dt({},s),{color:e}))}log(){return this._withHap(e=>{var s;return e.setContext(kt(Dt({},e.context),{logs:(((s=e.context)==null?void 0:s.logs)||[]).concat([e.show()])}))})}drawLine(){return console.log(drawLine(this)),this}_segment(e){return this.struct(pure(!0)._fast(e))}invert(){return this.fmap(e=>!e)}inv(){return this.invert()}when(e,s){const o=e._filterValues(id$1),c=e._filterValues(b=>!b),d=o.fmap(b=>k=>k).appRight(s(this)),_=c.fmap(b=>k=>k).appRight(this);return stack(d,_)}off(e,s){return stack(this,s(this.late(e)))}every(e,s){const o=this,c=Array(e-1).fill(o);return c.unshift(s(o)),slowcatPrime(...c)}brak(){return this.when(slowcat(!1,!0),e=>fastcat(e,silence)._late(.25))}rev(){const e=this,s=function(o){const c=o.span,d=c.begin.sam(),_=c.begin.nextSam(),b=function($){const j=$.withTime(et=>d.add(_.sub(et))),_e=j.begin;return j.begin=j.end,j.end=_e,j};return e.query(o.setSpan(b(c))).map($=>$.withSpan(b))};return new Pattern$5(s)._splitQueries()}palindrome(){return this.every(2,rev)}juxBy(e,s){e/=2;const o=function(_,b,k){return b in _?_[b]:k},c=this.withValue(_=>Object.assign({},_,{pan:o(_,"pan",.5)-e})),d=this.withValue(_=>Object.assign({},_,{pan:o(_,"pan",.5)+e}));return stack(c,s(d))}_jux(e){return this.juxBy(1,e)}stack(...e){return stack(this,...e)}sequence(...e){return sequence(this,...e)}seq(...e){return sequence(this,...e)}cat(...e){return cat(this,...e)}fastcat(...e){return fastcat(this,...e)}slowcat(...e){return slowcat(this,...e)}superimpose(...e){return this.stack(...e.map(s=>s(this)))}stutWith(e,s,o){return stack(...listRange(0,e-1).map(c=>o(this.late(fraction(s).mul(c)),c)))}stut(e,s,o){return this.stutWith(e,o,(c,d)=>c.velocity(Math.pow(s,d)))}_echoWith(e,s,o){return stack(...listRange(0,e-1).map(c=>o(this.late(fraction(s).mul(c)),c)))}_echo(e,s,o){return this._echoWith(e,s,(c,d)=>c.velocity(Math.pow(o,d)))}iter(e,s=!1){return slowcat(...listRange(0,e-1).map(o=>s?this.late(o/e):this.early(o/e)))}iterBack(e){return this.iter(e,!0)}_chunk(e,s,o=!1){const c=Array(e-1).fill(!1);c.unshift(!0);const d=sequence(...c).iter(e,o);return this.when(d,s)}_chunkBack(e,s){return this._chunk(e,s,!0)}_bypass(e){return e=Boolean(parseInt(e)),e?silence:this}hush(){return silence}_duration(e){return this.withHapSpan(s=>new TimeSpan$1(s.begin,s.begin.add(e)))}_legato(e){return this.withHapSpan(s=>new TimeSpan$1(s.begin,s.begin.add(s.end.sub(s.begin).mul(e))))}_velocity(e){return this._withContext(s=>kt(Dt({},s),{velocity:(s.velocity||1)*e}))}_loopAt(e,s=1){return this.speed(1/e*s).unit("c").slow(e)}onTrigger(e){return this._withHap(s=>s.setContext(kt(Dt({},s.context),{onTrigger:e})))}log(e=id$1){return this._withHap(s=>s.setContext(kt(Dt({},s.context),{onTrigger:(...o)=>{s.context.onTrigger&&s.context.onTrigger(...o),console.log(e(...o))}})))}logValues(e=id$1){return this.log((s,o)=>e(o.value))}}function _composeOp(a,e,s){function o(c){return c instanceof Object&&!(c instanceof Function)}return o(a)||o(e)?(o(a)||(a={value:a}),o(e)||(e={value:e}),unionWithObj(a,e,s)):s(a,e)}(function(){const a=o=>o._asNumber(),s={set:[(o,c)=>c],keep:[(o,c)=>o],keepif:[(o,c)=>c?o:void 0],add:[(o,c)=>o+c,o=>o._asNumber(!1,!0)],sub:[(o,c)=>o-c,a],mul:[(o,c)=>o*c,a],div:[(o,c)=>o/c,a],mod:[mod,a],pow:[Math.pow,a],_and:[(o,c)=>o&c,a],_or:[(o,c)=>o|c,a],_xor:[(o,c)=>o^c,a],_lshift:[(o,c)=>o<o>>c,a],lt:[(o,c)=>oo>c],lte:[(o,c)=>o<=c],gte:[(o,c)=>o>=c],eq:[(o,c)=>o==c],eqt:[(o,c)=>o===c],ne:[(o,c)=>o!=c],net:[(o,c)=>o!==c],and:[(o,c)=>o&&c],or:[(o,c)=>o||c],func:[(o,c)=>c(o)]};for(const[o,[c,d]]of Object.entries(s))for(const _ of["In","Out","Mix","Squeeze","SqueezeOut","Trig","Trigzero"])Pattern$5.prototype[o+_]=function(...b){var k=this;b=sequence(b),d&&(k=d(k),b=d(b));var $=k["_op"+_](b,j=>_e=>_composeOp(j,_e,c));return o==="keepif"&&($=$._removeUndefineds()),$},_==="Squeeze"&&(Pattern$5.prototype[o+"SqueezeIn"]=Pattern$5.prototype[o+_]),_==="In"?Pattern$5.prototype[o]=Pattern$5.prototype[o+_]:o==="set"&&(Pattern$5.prototype[_.toLowerCase()]=Pattern$5.prototype[o+_]);Pattern$5.prototype.struct=Pattern$5.prototype.keepifOut,Pattern$5.prototype.structAll=Pattern$5.prototype.keepOut,Pattern$5.prototype.mask=Pattern$5.prototype.keepifIn,Pattern$5.prototype.maskAll=Pattern$5.prototype.keepIn,Pattern$5.prototype.reset=Pattern$5.prototype.keepifTrig,Pattern$5.prototype.resetAll=Pattern$5.prototype.keepTrig,Pattern$5.prototype.restart=Pattern$5.prototype.keepifTrigzero,Pattern$5.prototype.restartAll=Pattern$5.prototype.keepTrigzero})();Pattern$5.prototype.patternified=["apply","chop","color","cpm","duration","early","fast","jux","late","legato","linger","ply","segment","striate","slow","velocity"];Pattern$5.prototype.factories={pure,stack,slowcat,fastcat,cat,timeCat:timeCat$1,sequence,seq:seq$2,polymeter,pm,polyrhythm,pr};const silence=new Pattern$5(a=>[]);function pure(a){function e(s){return s.span.spanCycles.map(o=>new Hap(fraction(o.begin).wholeCycle(),o,a))}return new Pattern$5(e)}function isPattern$1(a){const e=a instanceof Pattern$5||a._Pattern;return!a instanceof Pattern$5&&console.warn(`Found Pattern that fails "instanceof Pattern" check. This may happen if you are using multiple versions of @strudel.cycles/core. - Please check by running "npm ls @strudel.cycles/core".`),e}function reify$1(a){return isPattern$1(a)?a:pure(a)}function stack(...a){a=a.map(s=>Array.isArray(s)?sequence(...s):reify$1(s));const e=s=>flatten$1(a.map(o=>o.query(s)));return new Pattern$5(e)}function slowcat(...a){a=a.map(s=>Array.isArray(s)?sequence(...s):reify$1(s));const e=function(s){const o=s.span,c=mod(o.begin.sam(),a.length),d=a[c];if(!d)return[];const _=o.begin.floor().sub(o.begin.div(a.length).floor());return d.withHapTime(b=>b.add(_)).query(s.setSpan(o.withTime(b=>b.sub(_))))};return new Pattern$5(e)._splitQueries()}function slowcatPrime(...a){a=a.map(reify$1);const e=function(s){const o=Math.floor(s.span.begin)%a.length;return a[o].query(s)};return new Pattern$5(e)._splitQueries()}function fastcat(...a){return slowcat(...a)._fast(a.length)}function cat(...a){return slowcat(...a)}function timeCat$1(...a){const e=a.map(c=>c[0]).reduce((c,d)=>c.add(d),fraction(0));let s=fraction(0);const o=[];for(const[c,d]of a){const _=s.add(c);o.push(reify$1(d)._compress(s.div(e),_.div(e))),s=_}return stack(...o)}function sequence(...a){return fastcat(...a)}function seq$2(...a){return fastcat(...a)}function _sequenceCount(a){return Array.isArray(a)?a.length==0?[silence,0]:a.length==1?_sequenceCount(a[0]):[fastcat(...a.map(e=>_sequenceCount(e)[0])),a.length]:[reify$1(a),1]}function polymeterSteps(a,...e){const s=e.map(c=>_sequenceCount(c));if(s.length==0)return silence;a==0&&(a=s[0][1]);const o=[];for(const c of s)c[1]==0&&next,a==c[1]?o.push(c[0]):o.push(c[0]._fast(fraction(a).div(fraction(c[1]))));return stack(...o)}function polymeter(...a){return polymeterSteps(0,...a)}function pm(...a){polymeter(...a)}function polyrhythm(...a){const e=a.map(s=>sequence(s));return e.length==0?silence:stack(...e)}function pr(a){polyrhythm(a)}const add$1=curry((a,e)=>e.add(a)),chop=curry((a,e)=>e.chop(a)),chunk=curry((a,e)=>e.chunk(a)),chunkBack=curry((a,e)=>e.chunkBack(a)),div=curry((a,e)=>e.div(a)),early=curry((a,e)=>e.early(a)),echo=curry((a,e,s,o)=>o.echo(a,e,s)),every=curry((a,e,s)=>s.every(a,e)),fast=curry((a,e)=>e.fast(a)),inv=a=>a.inv(),invert=a=>a.invert(),iter=curry((a,e)=>e.iter(a)),iterBack=curry((a,e)=>e.iter(a)),jux=curry((a,e)=>e.jux(a)),juxBy=curry((a,e,s)=>s.juxBy(a,e)),late=curry((a,e)=>e.late(a)),linger=curry((a,e)=>e.linger(a)),mask=curry((a,e)=>e.mask(a)),mul=curry((a,e)=>e.mul(a)),off=curry((a,e,s)=>s.off(a,e)),ply=curry((a,e)=>e.ply(a)),range$1=curry((a,e,s)=>s.range(a,e)),range2=curry((a,e,s)=>s.range2(a,e)),rev=a=>a.rev(),slow=curry((a,e)=>e.slow(a)),struct$1=curry((a,e)=>e.struct(a)),sub=curry((a,e)=>e.sub(a)),superimpose=curry((a,e)=>e.superimpose(...a)),set=curry((a,e)=>e.set(a)),when=curry((a,e,s)=>s.when(a,e));Pattern$5.prototype.composable={fast,slow,early,late,superimpose};function makeComposable(a){return Object.entries(Pattern$5.prototype.composable).forEach(([e,s])=>{a[e]=(...o)=>{const c=compose(a,s(...o));return makeComposable(c)}}),a}const patternify2=a=>(e,s,o)=>e.fmap(c=>d=>a.call(o,c,d)).appLeft(s).innerJoin(),patternify3=a=>(e,s,o,c)=>e.fmap(d=>_=>b=>a.call(c,d,_,b)).appLeft(s).appLeft(o).innerJoin(),patternify4=a=>(e,s,o,c,d)=>e.fmap(_=>b=>k=>$=>a.call(d,_,b,k,$)).appLeft(s).appLeft(o).appLeft(c).innerJoin();Pattern$5.prototype.echo=function(...a){return a=a.map(reify$1),patternify3(Pattern$5.prototype._echo)(...a,this)};Pattern$5.prototype.echoWith=function(...a){return a=a.map(reify$1),patternify3(Pattern$5.prototype._echoWith)(...a,this)};Pattern$5.prototype.chunk=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._chunk)(...a,this)};Pattern$5.prototype.chunkBack=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._chunkBack)(...a,this)};Pattern$5.prototype.loopAt=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._loopAt)(...a,this)};Pattern$5.prototype.zoom=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._zoom)(...a,this)};Pattern$5.prototype.compress=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._compress)(...a,this)};Pattern$5.prototype.outside=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._outside)(...a,this)};Pattern$5.prototype.inside=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._inside)(...a,this)};Pattern$5.prototype.bootstrap=function(){const a=Object.fromEntries(Object.entries(Pattern$5.prototype.composable).map(([e,s])=>(Pattern$5.prototype[e]&&(Pattern$5.prototype[e]=makeComposable(Pattern$5.prototype[e])),[e,curry(s,makeComposable)])));return this.patternified.forEach(e=>{Pattern$5.prototype[e]=function(...s){return this._patternify(Pattern$5.prototype["_"+e])(...s)}}),a};Pattern$5.prototype.define=(a,e,s={})=>{s.composable&&(Pattern$5.prototype.composable[a]=e),s.patternified&&(Pattern$5.prototype.patternified=Pattern$5.prototype.patternified.concat([a])),Pattern$5.prototype.bootstrap()};Pattern$5.prototype.define("hush",a=>a.hush(),{patternified:!1,composable:!0});Pattern$5.prototype.define("bypass",a=>a.bypass(on),{patternified:!0,composable:!0});const controls={},generic_params=[["s","s","sound"],["f","n","The note or sample number to choose for a synth or sampleset"],["f","note","The note or pitch to play a sound or synth with"],["f","accelerate","a pattern of numbers that speed up (or slow down) samples while they play."],["f","gain","a pattern of numbers that specify volume. Values less than 1 make the sound quieter. Values greater than 1 make the sound louder. For the linear equivalent, see @amp@."],["f","amp","like @gain@, but linear."],["f","attack","a pattern of numbers to specify the attack time (in seconds) of an envelope applied to each sample."],["f","decay",""],["f","sustain",""],["f","release","a pattern of numbers to specify the release time (in seconds) of an envelope applied to each sample."],["f","hold","a pattern of numbers to specify the hold time (in seconds) of an envelope applied to each sample. Only takes effect if `attack` and `release` are also specified."],["f","bandf","A pattern of numbers from 0 to 1. Sets the center frequency of the band-pass filter."],["f","bandq","a pattern of anumbers from 0 to 1. Sets the q-factor of the band-pass filter."],["f","begin","a pattern of numbers from 0 to 1. Skips the beginning of each sample, e.g. `0.25` to cut off the first quarter from each sample."],["f","end","the same as `begin`, but cuts the end off samples, shortening them; e.g. `0.75` to cut off the last quarter of each sample."],["f","loop","loops the sample (from `begin` to `end`) the specified number of times."],["f","legato","controls the amount of overlap between two adjacent sounds"],["f","crush","bit crushing, a pattern of numbers from 1 (for drastic reduction in bit-depth) to 16 (for barely no reduction)."],["f","coarse","fake-resampling, a pattern of numbers for lowering the sample rate, i.e. 1 for original 2 for half, 3 for a third and so on."],["i","channel","choose the channel the pattern is sent to in superdirt"],["i","cut","In the style of classic drum-machines, `cut` will stop a playing sample as soon as another samples with in same cutgroup is to be played. An example would be an open hi-hat followed by a closed one, essentially muting the open."],["f","cutoff","a pattern of numbers from 0 to 1. Applies the cutoff frequency of the low-pass filter."],["f","hcutoff","a pattern of numbers from 0 to 1. Applies the cutoff frequency of the high-pass filter. Also has alias @hpf@"],["f","hresonance","a pattern of numbers from 0 to 1. Applies the resonance of the high-pass filter. Has alias @hpq@"],["f","resonance","a pattern of numbers from 0 to 1. Specifies the resonance of the low-pass filter."],["f","djf","DJ filter, below 0.5 is low pass filter, above is high pass filter."],["f","delay","a pattern of numbers from 0 to 1. Sets the level of the delay signal."],["f","delayfeedback","a pattern of numbers from 0 to 1. Sets the amount of delay feedback."],["f","delaytime","a pattern of numbers from 0 to 1. Sets the length of the delay."],["f","lock","A pattern of numbers. Specifies whether delaytime is calculated relative to cps. When set to 1, delaytime is a direct multiple of a cycle."],["f","detune",""],["f","dry","when set to `1` will disable all reverb for this pattern. See `room` and `size` for more information about reverb."],["f","fadeTime","Used when using begin/end or chop/striate and friends, to change the fade out time of the 'grain' envelope."],["f","fadeInTime","As with fadeTime, but controls the fade in time of the grain envelope. Not used if the grain begins at position 0 in the sample."],["f","freq",""],["f","gate",""],["f","leslie",""],["f","lrate",""],["f","lsize",""],["f","degree",""],["f","mtranspose",""],["f","ctranspose",""],["f","harmonic",""],["f","stepsPerOctave",""],["f","octaveR",""],["f","nudge","Nudges events into the future by the specified number of seconds. Negative numbers work up to a point as well (due to internal latency)"],["i","octave",""],["f","offset",""],["i","orbit","a pattern of numbers. An `orbit` is a global parameter context for patterns. Patterns with the same orbit will share hardware output bus offset and global effects, e.g. reverb and delay. The maximum number of orbits is specified in the superdirt startup, numbers higher than maximum will wrap around."],["f","overgain",""],["f","overshape",""],["f","pan","a pattern of numbers between 0 and 1, from left to right (assuming stereo), once round a circle (assuming multichannel)"],["f","panspan","a pattern of numbers between -inf and inf, which controls how much multichannel output is fanned out (negative is backwards ordering)"],["f","pansplay","a pattern of numbers between 0.0 and 1.0, which controls the multichannel spread range (multichannel only)"],["f","panwidth","a pattern of numbers between 0.0 and inf, which controls how much each channel is distributed over neighbours (multichannel only)"],["f","panorient","a pattern of numbers between -1.0 and 1.0, which controls the relative position of the centre pan in a pair of adjacent speakers (multichannel only)"],["f","rate","used in SuperDirt softsynths as a control rate or 'speed'"],["f","slide",""],["f","semitone",""],["f","velocity",""],["f","voice",""],["f","room","a pattern of numbers from 0 to 1. Sets the level of reverb."],["f","size","a pattern of numbers from 0 to 1. Sets the perceptual size (reverb time) of the `room` to be used in reverb."],["f","shape","wave shaping distortion, a pattern of numbers from 0 for no distortion up to 1 for loads of distortion."],["f","speed","a pattern of numbers which changes the speed of sample playback, i.e. a cheap way of changing pitch. Negative values will play the sample backwards!"],["s","unit",'used in conjunction with `speed`, accepts values of "r" (rate, default behavior), "c" (cycles), or "s" (seconds). Using `unit "c"` means `speed` will be interpreted in units of cycles, e.g. `speed "1"` means samples will be stretched to fill a cycle. Using `unit "s"` means the playback speed will be adjusted so that the duration is the number of seconds specified by `speed`.'],["f","squiz",""],["f","stutterdepth",""],["f","stuttertime",""],["f","timescale",""],["f","timescalewin",""],["s","vowel","formant filter to make things sound like vowels, a pattern of either `a`, `e`, `i`, `o` or `u`. Use a rest (`~`) for no effect."],["f","waveloss",""],["f","dur",""],["f","expression",""],["f","sustainpedal",""],["f","tremolodepth","Tremolo Audio DSP effect | params are 'tremolorate' and 'tremolodepth'"],["f","tremolorate","Tremolo Audio DSP effect | params are 'tremolorate' and 'tremolodepth'"],["f","phaserdepth","Phaser Audio DSP effect | params are 'phaserrate' and 'phaserdepth'"],["f","phaserrate","Phaser Audio DSP effect | params are 'phaserrate' and 'phaserdepth'"],["f","fshift","frequency shifter"],["f","fshiftnote","frequency shifter"],["f","fshiftphase","frequency shifter"],["f","triode","tube distortion"],["f","krush","shape/bass enhancer"],["f","kcutoff",""],["f","octer","octaver effect"],["f","octersub","octaver effect"],["f","octersubsub","octaver effect"],["f","ring","ring modulation"],["f","ringf","ring modulation"],["f","ringdf","ring modulation"],["f","distort","noisy fuzzy distortion"],["f","freeze","Spectral freeze"],["f","xsdelay",""],["f","tsdelay",""],["f","real","Spectral conform"],["f","imag",""],["f","enhance","Spectral enhance"],["f","partials",""],["f","comb","Spectral comb"],["f","smear","Spectral smear"],["f","scram","Spectral scramble"],["f","binshift","Spectral binshift"],["f","hbrick","High pass sort of spectral filter"],["f","lbrick","Low pass sort of spectral filter"],["f","midichan",""],["f","control",""],["f","ccn",""],["f","ccv",""],["f","polyTouch",""],["f","midibend",""],["f","miditouch",""],["f","ctlNum",""],["f","frameRate",""],["f","frames",""],["f","hours",""],["s","midicmd",""],["f","minutes",""],["f","progNum",""],["f","seconds",""],["f","songPtr",""],["f","uid",""],["f","val",""],["f","cps",""],["f","clip",""]],_name=(a,...e)=>sequence(...e).withValue(s=>({[a]:s})),_setter=(a,e)=>function(...s){return s.length?this.set(a(...s)):this.fmap(o=>({[e]:o}))};generic_params.forEach(([a,e,s])=>{controls[e]=(...o)=>_name(e,...o),Pattern$5.prototype[e]=_setter(controls[e],e)});controls.createParam=a=>{const e=(...s)=>_name(a,...s);return Pattern$5.prototype[a]=_setter(e,a),(...s)=>_name(a,...s)};controls.createParams=(...a)=>a.reduce((e,s)=>Object.assign(e,{[s]:createParam(s)}),{});var dist$7={},tokenizer={},utils$1={},unicode$2={};Object.defineProperty(unicode$2,"__esModule",{value:!0});unicode$2.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];unicode$2.whitespaceBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!0,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1];unicode$2.idStartLargeRegex=/^[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]$/;unicode$2.idStartBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];unicode$2.idContinueLargeRegex=/^[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]$/;unicode$2.idContinueBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];Object.defineProperty(utils$1,"__esModule",{value:!0});utils$1.isStrictModeReservedWord=isStrictModeReservedWord;utils$1.isWhiteSpace=isWhiteSpace;utils$1.isLineTerminator=isLineTerminator;utils$1.isIdentifierStart=isIdentifierStart$1;utils$1.isIdentifierPart=isIdentifierPart$1;utils$1.isDecimalDigit=isDecimalDigit;utils$1.getHexValue=getHexValue;var _unicode$2=unicode$2,strictReservedWords=["null","true","false","implements","interface","package","private","protected","public","static","let","if","in","do","var","for","new","try","this","else","case","void","with","enum","while","break","catch","throw","const","yield","class","super","return","typeof","delete","switch","export","import","default","finally","extends","function","continue","debugger","instanceof"];function isStrictModeReservedWord(a){return strictReservedWords.indexOf(a)!==-1}function isWhiteSpace(a){return a<128?_unicode$2.whitespaceBool[a]:a===160||a>5759&&_unicode$2.whitespaceArray.indexOf(a)!==-1}function isLineTerminator(a){return a===10||a===13||a===8232||a===8233}function isIdentifierStart$1(a){return a<128?_unicode$2.idStartBool[a]:_unicode$2.idStartLargeRegex.test(String.fromCodePoint(a))}function isIdentifierPart$1(a){return a<128?_unicode$2.idContinueBool[a]:_unicode$2.idContinueLargeRegex.test(String.fromCodePoint(a))}function isDecimalDigit(a){return a>=48&&a<=57}function getHexValue(a){return a>="0"&&a<="9"?a.charCodeAt(0)-48:a>="a"&&a<="f"?a.charCodeAt(0)-87:a>="A"&&a<="F"?a.charCodeAt(0)-55:-1}var errors={};Object.defineProperty(errors,"__esModule",{value:!0});errors.ErrorMessages={UNEXPECTED_TOKEN:function(e){return"Unexpected token "+JSON.stringify(e)},UNEXPECTED_ILLEGAL_TOKEN:function(e){return"Unexpected "+JSON.stringify(e)},UNEXPECTED_ESCAPED_KEYWORD:"Unexpected escaped keyword",UNEXPECTED_NUMBER:"Unexpected number",UNEXPECTED_STRING:"Unexpected string",UNEXPECTED_IDENTIFIER:"Unexpected identifier",UNEXPECTED_RESERVED_WORD:"Unexpected reserved word",UNEXPECTED_TEMPLATE:"Unexpected template",UNEXPECTED_EOS:"Unexpected end of input",UNEXPECTED_LINE_TERMINATOR:"Unexpected line terminator",UNEXPECTED_COMMA_AFTER_REST:"Unexpected comma after rest",UNEXPECTED_REST_PARAMETERS_INITIALIZATION:"Rest parameter may not have a default initializer",NEWLINE_AFTER_THROW:"Illegal newline after throw",UNTERMINATED_REGEXP:"Invalid regular expression: missing /",INVALID_LAST_REST_PARAMETER:"Rest parameter must be last formal parameter",INVALID_REST_PARAMETERS_INITIALIZATION:"Rest parameter may not have a default initializer",INVALID_REGEXP_FLAGS:"Invalid regular expression flags",INVALID_REGEX:"Invalid regular expression",INVALID_LHS_IN_ASSIGNMENT:"Invalid left-hand side in assignment",INVALID_LHS_IN_BINDING:"Invalid left-hand side in binding",INVALID_LHS_IN_FOR_IN:"Invalid left-hand side in for-in",INVALID_LHS_IN_FOR_OF:"Invalid left-hand side in for-of",INVALID_LHS_IN_FOR_AWAIT:"Invalid left-hand side in for-await",INVALID_UPDATE_OPERAND:"Increment/decrement target must be an identifier or member expression",INVALID_EXPONENTIATION_LHS:"Unary expressions as the left operand of an exponentation expression must be disambiguated with parentheses",MULTIPLE_DEFAULTS_IN_SWITCH:"More than one default clause in switch statement",NO_CATCH_OR_FINALLY:"Missing catch or finally after try",ILLEGAL_RETURN:"Illegal return statement",ILLEGAL_ARROW_FUNCTION_PARAMS:"Illegal arrow function parameter list",INVALID_ASYNC_PARAMS:"Async function parameters must not contain await expressions",INVALID_VAR_INIT_FOR_IN:"Invalid variable declaration in for-in statement",INVALID_VAR_INIT_FOR_OF:"Invalid variable declaration in for-of statement",INVALID_VAR_INIT_FOR_AWAIT:"Invalid variable declaration in for-await statement",UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT:"Binding pattern appears without initializer in for statement init",ILLEGAL_PROPERTY:"Illegal property initializer",INVALID_ID_BINDING_STRICT_MODE:function(e){return"The identifier "+JSON.stringify(e)+" must not be in binding position in strict mode"},INVALID_ID_IN_LABEL_STRICT_MODE:function(e){return"The identifier "+JSON.stringify(e)+" must not be in label position in strict mode"},INVALID_ID_IN_EXPRESSION_STRICT_MODE:function(e){return"The identifier "+JSON.stringify(e)+" must not be in expression position in strict mode"},INVALID_CALL_TO_SUPER:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',INVALID_DELETE_STRICT_MODE:"Identifier expressions must not be deleted in strict mode",DUPLICATE_BINDING:function(e){return"Duplicate binding "+JSON.stringify(e)},ILLEGAL_ID_IN_LEXICAL_DECLARATION:function(e){return"Lexical declarations must not have a binding named "+JSON.stringify(e)},UNITIALIZED_CONST:"Constant lexical declarations must have an initialiser",ILLEGAL_LABEL_IN_BODY:function(e){return"The body of a "+e+" statement must not be a labeled function declaration"},ILLEGEAL_LABEL_IN_IF:"The consequent of an if statement must not be a labeled function declaration",ILLEGAL_LABEL_IN_ELSE:"The alternate of an if statement must not be a labeled function declaration",ILLEGAL_CONTINUE_WITHOUT_ITERATION_WITH_ID:function(e){return"Continue statement must be nested within an iteration statement with label "+JSON.stringify(e)},ILLEGAL_CONTINUE_WITHOUT_ITERATION:"Continue statement must be nested within an iteration statement",ILLEGAL_BREAK_WITHOUT_ITERATION_OR_SWITCH:"Break statement must be nested within an iteration statement or a switch statement",ILLEGAL_WITH_STRICT_MODE:"Strict mode code must not include a with statement",ILLEGAL_ACCESS_SUPER_MEMBER:"Member access on super must be in a method",ILLEGAL_SUPER_CALL:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',DUPLICATE_LABEL_DECLARATION:function(e){return"Label "+JSON.stringify(e)+" has already been declared"},ILLEGAL_BREAK_WITHIN_LABEL:function(e){return"Break statement must be nested within a statement with label "+JSON.stringify(e)},ILLEGAL_YIELD_EXPRESSIONS:function(e){return e+" parameters must not contain yield expressions"},ILLEGAL_YIELD_IDENTIFIER:'"yield" may not be used as an identifier in this context',ILLEGAL_AWAIT_IDENTIFIER:'"await" may not be used as an identifier in this context',DUPLICATE_CONSTRUCTOR:"Duplicate constructor method in class",ILLEGAL_CONSTRUCTORS:"Constructors cannot be async, generators, getters or setters",ILLEGAL_STATIC_CLASS_NAME:'Static class methods cannot be named "prototype"',NEW_TARGET_ERROR:"new.target must be within function (but not arrow expression) code",DUPLICATE_EXPORT:function(e){return"Duplicate export "+JSON.stringify(e)},UNDECLARED_BINDING:function(e){return"Exported binding "+JSON.stringify(e)+" is not declared"},DUPLICATE_PROPTO_PROP:"Duplicate __proto__ property in object literal not allowed",ILLEGAL_LABEL_FUNC_DECLARATION:"Labeled FunctionDeclarations are disallowed in strict mode",ILLEGAL_FUNC_DECL_IF:"FunctionDeclarations in IfStatements are disallowed in strict mode",ILLEGAL_USE_STRICT:'Functions with non-simple parameter lists may not contain a "use strict" directive',ILLEGAL_EXPORTED_NAME:"Names of variables used in an export specifier from the current module must be identifiers",NO_OCTALS_IN_TEMPLATES:"Template literals may not contain octal escape sequences",NO_AWAIT_IN_ASYNC_PARAMS:'Async arrow parameters may not contain "await"'};Object.defineProperty(tokenizer,"__esModule",{value:!0});tokenizer.JsError=tokenizer.TokenType=tokenizer.TokenClass=void 0;var _slicedToArray=function(){function a(e,s){var o=[],c=!0,d=!1,_=void 0;try{for(var b=e[Symbol.iterator](),k;!(c=(k=b.next()).done)&&(o.push(k.value),!(s&&o.length===s));c=!0);}catch($){d=!0,_=$}finally{try{!c&&b.return&&b.return()}finally{if(d)throw _}}return o}return function(e,s){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return a(e,s);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass$e=function(){function a(e,s){for(var o=0;o"},Ident:{name:"Identifier",isIdentifierName:!0},Keyword:{name:"Keyword",isIdentifierName:!0},NumericLiteral:{name:"Numeric"},TemplateElement:{name:"Template"},Punctuator:{name:"Punctuator"},StringLiteral:{name:"String"},RegularExpression:{name:"RegularExpression"},Illegal:{name:"Illegal"}},TokenType=tokenizer.TokenType={EOS:{klass:TokenClass.Eof,name:"EOS"},LPAREN:{klass:TokenClass.Punctuator,name:"("},RPAREN:{klass:TokenClass.Punctuator,name:")"},LBRACK:{klass:TokenClass.Punctuator,name:"["},RBRACK:{klass:TokenClass.Punctuator,name:"]"},LBRACE:{klass:TokenClass.Punctuator,name:"{"},RBRACE:{klass:TokenClass.Punctuator,name:"}"},COLON:{klass:TokenClass.Punctuator,name:":"},SEMICOLON:{klass:TokenClass.Punctuator,name:";"},PERIOD:{klass:TokenClass.Punctuator,name:"."},ELLIPSIS:{klass:TokenClass.Punctuator,name:"..."},ARROW:{klass:TokenClass.Punctuator,name:"=>"},CONDITIONAL:{klass:TokenClass.Punctuator,name:"?"},INC:{klass:TokenClass.Punctuator,name:"++"},DEC:{klass:TokenClass.Punctuator,name:"--"},ASSIGN:{klass:TokenClass.Punctuator,name:"="},ASSIGN_BIT_OR:{klass:TokenClass.Punctuator,name:"|="},ASSIGN_BIT_XOR:{klass:TokenClass.Punctuator,name:"^="},ASSIGN_BIT_AND:{klass:TokenClass.Punctuator,name:"&="},ASSIGN_SHL:{klass:TokenClass.Punctuator,name:"<<="},ASSIGN_SHR:{klass:TokenClass.Punctuator,name:">>="},ASSIGN_SHR_UNSIGNED:{klass:TokenClass.Punctuator,name:">>>="},ASSIGN_ADD:{klass:TokenClass.Punctuator,name:"+="},ASSIGN_SUB:{klass:TokenClass.Punctuator,name:"-="},ASSIGN_MUL:{klass:TokenClass.Punctuator,name:"*="},ASSIGN_DIV:{klass:TokenClass.Punctuator,name:"/="},ASSIGN_MOD:{klass:TokenClass.Punctuator,name:"%="},ASSIGN_EXP:{klass:TokenClass.Punctuator,name:"**="},COMMA:{klass:TokenClass.Punctuator,name:","},OR:{klass:TokenClass.Punctuator,name:"||"},AND:{klass:TokenClass.Punctuator,name:"&&"},BIT_OR:{klass:TokenClass.Punctuator,name:"|"},BIT_XOR:{klass:TokenClass.Punctuator,name:"^"},BIT_AND:{klass:TokenClass.Punctuator,name:"&"},SHL:{klass:TokenClass.Punctuator,name:"<<"},SHR:{klass:TokenClass.Punctuator,name:">>"},SHR_UNSIGNED:{klass:TokenClass.Punctuator,name:">>>"},ADD:{klass:TokenClass.Punctuator,name:"+"},SUB:{klass:TokenClass.Punctuator,name:"-"},MUL:{klass:TokenClass.Punctuator,name:"*"},DIV:{klass:TokenClass.Punctuator,name:"/"},MOD:{klass:TokenClass.Punctuator,name:"%"},EXP:{klass:TokenClass.Punctuator,name:"**"},EQ:{klass:TokenClass.Punctuator,name:"=="},NE:{klass:TokenClass.Punctuator,name:"!="},EQ_STRICT:{klass:TokenClass.Punctuator,name:"==="},NE_STRICT:{klass:TokenClass.Punctuator,name:"!=="},LT:{klass:TokenClass.Punctuator,name:"<"},GT:{klass:TokenClass.Punctuator,name:">"},LTE:{klass:TokenClass.Punctuator,name:"<="},GTE:{klass:TokenClass.Punctuator,name:">="},INSTANCEOF:{klass:TokenClass.Keyword,name:"instanceof"},IN:{klass:TokenClass.Keyword,name:"in"},NOT:{klass:TokenClass.Punctuator,name:"!"},BIT_NOT:{klass:TokenClass.Punctuator,name:"~"},ASYNC:{klass:TokenClass.Keyword,name:"async"},AWAIT:{klass:TokenClass.Keyword,name:"await"},ENUM:{klass:TokenClass.Keyword,name:"enum"},DELETE:{klass:TokenClass.Keyword,name:"delete"},TYPEOF:{klass:TokenClass.Keyword,name:"typeof"},VOID:{klass:TokenClass.Keyword,name:"void"},BREAK:{klass:TokenClass.Keyword,name:"break"},CASE:{klass:TokenClass.Keyword,name:"case"},CATCH:{klass:TokenClass.Keyword,name:"catch"},CLASS:{klass:TokenClass.Keyword,name:"class"},CONTINUE:{klass:TokenClass.Keyword,name:"continue"},DEBUGGER:{klass:TokenClass.Keyword,name:"debugger"},DEFAULT:{klass:TokenClass.Keyword,name:"default"},DO:{klass:TokenClass.Keyword,name:"do"},ELSE:{klass:TokenClass.Keyword,name:"else"},EXPORT:{klass:TokenClass.Keyword,name:"export"},EXTENDS:{klass:TokenClass.Keyword,name:"extends"},FINALLY:{klass:TokenClass.Keyword,name:"finally"},FOR:{klass:TokenClass.Keyword,name:"for"},FUNCTION:{klass:TokenClass.Keyword,name:"function"},IF:{klass:TokenClass.Keyword,name:"if"},IMPORT:{klass:TokenClass.Keyword,name:"import"},LET:{klass:TokenClass.Keyword,name:"let"},NEW:{klass:TokenClass.Keyword,name:"new"},RETURN:{klass:TokenClass.Keyword,name:"return"},SUPER:{klass:TokenClass.Keyword,name:"super"},SWITCH:{klass:TokenClass.Keyword,name:"switch"},THIS:{klass:TokenClass.Keyword,name:"this"},THROW:{klass:TokenClass.Keyword,name:"throw"},TRY:{klass:TokenClass.Keyword,name:"try"},VAR:{klass:TokenClass.Keyword,name:"var"},WHILE:{klass:TokenClass.Keyword,name:"while"},WITH:{klass:TokenClass.Keyword,name:"with"},NULL:{klass:TokenClass.Keyword,name:"null"},TRUE:{klass:TokenClass.Keyword,name:"true"},FALSE:{klass:TokenClass.Keyword,name:"false"},YIELD:{klass:TokenClass.Keyword,name:"yield"},NUMBER:{klass:TokenClass.NumericLiteral,name:""},STRING:{klass:TokenClass.StringLiteral,name:""},REGEXP:{klass:TokenClass.RegularExpression,name:""},IDENTIFIER:{klass:TokenClass.Ident,name:""},CONST:{klass:TokenClass.Keyword,name:"const"},TEMPLATE:{klass:TokenClass.TemplateElement,name:""},ESCAPED_KEYWORD:{klass:TokenClass.Keyword,name:""},ILLEGAL:{klass:TokenClass.Illegal,name:""}},TT=TokenType,I=TT.ILLEGAL,F=!1,T=!0,ONE_CHAR_PUNCTUATOR=[I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.NOT,I,I,I,TT.MOD,TT.BIT_AND,I,TT.LPAREN,TT.RPAREN,TT.MUL,TT.ADD,TT.COMMA,TT.SUB,TT.PERIOD,TT.DIV,I,I,I,I,I,I,I,I,I,I,TT.COLON,TT.SEMICOLON,TT.LT,TT.ASSIGN,TT.GT,TT.CONDITIONAL,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.LBRACK,I,TT.RBRACK,TT.BIT_XOR,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.LBRACE,TT.BIT_OR,TT.RBRACE,TT.BIT_NOT],PUNCTUATOR_START=[F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,F,F,F,T,T,F,T,T,T,T,T,T,F,T,F,F,F,F,F,F,F,F,F,F,T,T,T,T,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,F,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,T,T,T,F],JsError=tokenizer.JsError=function(a){_inherits$8(e,a);function e(s,o,c,d){_classCallCheck$i(this,e);var _=_possibleConstructorReturn$8(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,d));_.index=s;try{_.line=o,_.column=c}catch{}return _.parseErrorLine=o,_.parseErrorColumn=c,_.description=d,_.message="["+o+":"+c+"]: "+d,_}return e}(Error);function fromCodePoint$1(a){if(a<=65535)return String.fromCharCode(a);var e=String.fromCharCode(Math.floor((a-65536)/1024)+55296),s=String.fromCharCode((a-65536)%1024+56320);return e+s}function decodeUtf16(a,e){return(a-55296)*1024+(e-56320)+65536}var Tokenizer=function(){function a(e){_classCallCheck$i(this,a),this.source=e,this.index=0,this.line=0,this.lineStart=0,this.startIndex=0,this.startLine=0,this.startLineStart=0,this.lastIndex=0,this.lastLine=0,this.lastLineStart=0,this.hasLineTerminatorBeforeNext=!1,this.tokenIndex=0}return _createClass$e(a,[{key:"saveLexerState",value:function(){return{source:this.source,index:this.index,line:this.line,lineStart:this.lineStart,startIndex:this.startIndex,startLine:this.startLine,startLineStart:this.startLineStart,lastIndex:this.lastIndex,lastLine:this.lastLine,lastLineStart:this.lastLineStart,lookahead:this.lookahead,hasLineTerminatorBeforeNext:this.hasLineTerminatorBeforeNext,tokenIndex:this.tokenIndex}}},{key:"restoreLexerState",value:function(s){this.source=s.source,this.index=s.index,this.line=s.line,this.lineStart=s.lineStart,this.startIndex=s.startIndex,this.startLine=s.startLine,this.startLineStart=s.startLineStart,this.lastIndex=s.lastIndex,this.lastLine=s.lastLine,this.lastLineStart=s.lastLineStart,this.lookahead=s.lookahead,this.hasLineTerminatorBeforeNext=s.hasLineTerminatorBeforeNext,this.tokenIndex=s.tokenIndex}},{key:"createILLEGAL",value:function(){return this.startIndex=this.index,this.startLine=this.line,this.startLineStart=this.lineStart,this.index1?c-1:0),_=1;_10)return TokenType.IDENTIFIER;switch(s.length){case 2:switch(s.charAt(0)){case"i":switch(s.charAt(1)){case"f":return TokenType.IF;case"n":return TokenType.IN}break;case"d":if(s.charAt(1)==="o")return TokenType.DO;break}break;case 3:switch(s.charAt(0)){case"v":if(a.cse2(s,"a","r"))return TokenType.VAR;break;case"f":if(a.cse2(s,"o","r"))return TokenType.FOR;break;case"n":if(a.cse2(s,"e","w"))return TokenType.NEW;break;case"t":if(a.cse2(s,"r","y"))return TokenType.TRY;break;case"l":if(a.cse2(s,"e","t"))return TokenType.LET;break}break;case 4:switch(s.charAt(0)){case"t":if(a.cse3(s,"h","i","s"))return TokenType.THIS;if(a.cse3(s,"r","u","e"))return TokenType.TRUE;break;case"n":if(a.cse3(s,"u","l","l"))return TokenType.NULL;break;case"e":if(a.cse3(s,"l","s","e"))return TokenType.ELSE;if(a.cse3(s,"n","u","m"))return TokenType.ENUM;break;case"c":if(a.cse3(s,"a","s","e"))return TokenType.CASE;break;case"v":if(a.cse3(s,"o","i","d"))return TokenType.VOID;break;case"w":if(a.cse3(s,"i","t","h"))return TokenType.WITH;break}break;case 5:switch(s.charAt(0)){case"a":if(a.cse4(s,"s","y","n","c"))return TokenType.ASYNC;if(a.cse4(s,"w","a","i","t"))return TokenType.AWAIT;break;case"w":if(a.cse4(s,"h","i","l","e"))return TokenType.WHILE;break;case"b":if(a.cse4(s,"r","e","a","k"))return TokenType.BREAK;break;case"f":if(a.cse4(s,"a","l","s","e"))return TokenType.FALSE;break;case"c":if(a.cse4(s,"a","t","c","h"))return TokenType.CATCH;if(a.cse4(s,"o","n","s","t"))return TokenType.CONST;if(a.cse4(s,"l","a","s","s"))return TokenType.CLASS;break;case"t":if(a.cse4(s,"h","r","o","w"))return TokenType.THROW;break;case"y":if(a.cse4(s,"i","e","l","d"))return TokenType.YIELD;break;case"s":if(a.cse4(s,"u","p","e","r"))return TokenType.SUPER;break}break;case 6:switch(s.charAt(0)){case"r":if(a.cse5(s,"e","t","u","r","n"))return TokenType.RETURN;break;case"t":if(a.cse5(s,"y","p","e","o","f"))return TokenType.TYPEOF;break;case"d":if(a.cse5(s,"e","l","e","t","e"))return TokenType.DELETE;break;case"s":if(a.cse5(s,"w","i","t","c","h"))return TokenType.SWITCH;break;case"e":if(a.cse5(s,"x","p","o","r","t"))return TokenType.EXPORT;break;case"i":if(a.cse5(s,"m","p","o","r","t"))return TokenType.IMPORT;break}break;case 7:switch(s.charAt(0)){case"d":if(a.cse6(s,"e","f","a","u","l","t"))return TokenType.DEFAULT;break;case"f":if(a.cse6(s,"i","n","a","l","l","y"))return TokenType.FINALLY;break;case"e":if(a.cse6(s,"x","t","e","n","d","s"))return TokenType.EXTENDS;break}break;case 8:switch(s.charAt(0)){case"f":if(a.cse7(s,"u","n","c","t","i","o","n"))return TokenType.FUNCTION;break;case"c":if(a.cse7(s,"o","n","t","i","n","u","e"))return TokenType.CONTINUE;break;case"d":if(a.cse7(s,"e","b","u","g","g","e","r"))return TokenType.DEBUGGER;break}break;case 10:if(s==="instanceof")return TokenType.INSTANCEOF;break}return TokenType.IDENTIFIER}},{key:"skipSingleLineComment",value:function(s){for(this.index+=s;this.indexArray.isArray(s)?sequence(...s):reify$1(s));const e=s=>flatten$1(a.map(o=>o.query(s)));return new Pattern$5(e)}function slowcat(...a){a=a.map(s=>Array.isArray(s)?sequence(...s):reify$1(s));const e=function(s){const o=s.span,c=mod(o.begin.sam(),a.length),d=a[c];if(!d)return[];const _=o.begin.floor().sub(o.begin.div(a.length).floor());return d.withHapTime(b=>b.add(_)).query(s.setSpan(o.withTime(b=>b.sub(_))))};return new Pattern$5(e)._splitQueries()}function slowcatPrime(...a){a=a.map(reify$1);const e=function(s){const o=Math.floor(s.span.begin)%a.length,c=a[o];return(c==null?void 0:c.query(s))||[]};return new Pattern$5(e)._splitQueries()}function fastcat(...a){return slowcat(...a)._fast(a.length)}function cat(...a){return slowcat(...a)}function timeCat$1(...a){const e=a.map(c=>c[0]).reduce((c,d)=>c.add(d),fraction(0));let s=fraction(0);const o=[];for(const[c,d]of a){const _=s.add(c);o.push(reify$1(d)._compress(s.div(e),_.div(e))),s=_}return stack(...o)}function sequence(...a){return fastcat(...a)}function seq$2(...a){return fastcat(...a)}function _sequenceCount(a){return Array.isArray(a)?a.length==0?[silence,0]:a.length==1?_sequenceCount(a[0]):[fastcat(...a.map(e=>_sequenceCount(e)[0])),a.length]:[reify$1(a),1]}function polymeterSteps(a,...e){const s=e.map(c=>_sequenceCount(c));if(s.length==0)return silence;a==0&&(a=s[0][1]);const o=[];for(const c of s)c[1]==0&&next,a==c[1]?o.push(c[0]):o.push(c[0]._fast(fraction(a).div(fraction(c[1]))));return stack(...o)}function polymeter(...a){return polymeterSteps(0,...a)}function pm(...a){polymeter(...a)}function polyrhythm(...a){const e=a.map(s=>sequence(s));return e.length==0?silence:stack(...e)}function pr(a){polyrhythm(a)}const add$1=curry((a,e)=>e.add(a)),chop=curry((a,e)=>e.chop(a)),chunk=curry((a,e)=>e.chunk(a)),chunkBack=curry((a,e)=>e.chunkBack(a)),div=curry((a,e)=>e.div(a)),early=curry((a,e)=>e.early(a)),echo=curry((a,e,s,o)=>o.echo(a,e,s)),every=curry((a,e,s)=>s.every(a,e)),fast=curry((a,e)=>e.fast(a)),inv=a=>a.inv(),invert=a=>a.invert(),iter=curry((a,e)=>e.iter(a)),iterBack=curry((a,e)=>e.iter(a)),jux=curry((a,e)=>e.jux(a)),juxBy=curry((a,e,s)=>s.juxBy(a,e)),late=curry((a,e)=>e.late(a)),linger=curry((a,e)=>e.linger(a)),mask=curry((a,e)=>e.mask(a)),mul=curry((a,e)=>e.mul(a)),off=curry((a,e,s)=>s.off(a,e)),ply=curry((a,e)=>e.ply(a)),range$1=curry((a,e,s)=>s.range(a,e)),range2=curry((a,e,s)=>s.range2(a,e)),rev=a=>a.rev(),slow=curry((a,e)=>e.slow(a)),struct$1=curry((a,e)=>e.struct(a)),sub=curry((a,e)=>e.sub(a)),superimpose=curry((a,e)=>e.superimpose(...a)),set=curry((a,e)=>e.set(a)),when=curry((a,e,s)=>s.when(a,e));Pattern$5.prototype.composable={fast,slow,early,late,superimpose};function makeComposable(a){return Object.entries(Pattern$5.prototype.composable).forEach(([e,s])=>{a[e]=(...o)=>{const c=compose(a,s(...o));return makeComposable(c)}}),a}const patternify2=a=>(e,s,o)=>e.fmap(c=>d=>a.call(o,c,d)).appLeft(s).innerJoin(),patternify3=a=>(e,s,o,c)=>e.fmap(d=>_=>b=>a.call(c,d,_,b)).appLeft(s).appLeft(o).innerJoin(),patternify4=a=>(e,s,o,c,d)=>e.fmap(_=>b=>k=>$=>a.call(d,_,b,k,$)).appLeft(s).appLeft(o).appLeft(c).innerJoin();Pattern$5.prototype.echo=function(...a){return a=a.map(reify$1),patternify3(Pattern$5.prototype._echo)(...a,this)};Pattern$5.prototype.echoWith=function(...a){return a=a.map(reify$1),patternify3(Pattern$5.prototype._echoWith)(...a,this)};Pattern$5.prototype.chunk=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._chunk)(...a,this)};Pattern$5.prototype.chunkBack=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._chunkBack)(...a,this)};Pattern$5.prototype.loopAt=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._loopAt)(...a,this)};Pattern$5.prototype.zoom=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._zoom)(...a,this)};Pattern$5.prototype.compress=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._compress)(...a,this)};Pattern$5.prototype.outside=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._outside)(...a,this)};Pattern$5.prototype.inside=function(...a){return a=a.map(reify$1),patternify2(Pattern$5.prototype._inside)(...a,this)};Pattern$5.prototype.bootstrap=function(){const a=Object.fromEntries(Object.entries(Pattern$5.prototype.composable).map(([e,s])=>(Pattern$5.prototype[e]&&(Pattern$5.prototype[e]=makeComposable(Pattern$5.prototype[e])),[e,curry(s,makeComposable)])));return this.patternified.forEach(e=>{Pattern$5.prototype[e]=function(...s){return this._patternify(Pattern$5.prototype["_"+e])(...s)}}),a};Pattern$5.prototype.define=(a,e,s={})=>{s.composable&&(Pattern$5.prototype.composable[a]=e),s.patternified&&(Pattern$5.prototype.patternified=Pattern$5.prototype.patternified.concat([a])),Pattern$5.prototype.bootstrap()};Pattern$5.prototype.define("hush",a=>a.hush(),{patternified:!1,composable:!0});Pattern$5.prototype.define("bypass",a=>a.bypass(on),{patternified:!0,composable:!0});const controls={},generic_params=[["s","s","sound"],["f","n","The note or sample number to choose for a synth or sampleset"],["f","note","The note or pitch to play a sound or synth with"],["f","accelerate","a pattern of numbers that speed up (or slow down) samples while they play."],["f","gain","a pattern of numbers that specify volume. Values less than 1 make the sound quieter. Values greater than 1 make the sound louder. For the linear equivalent, see @amp@."],["f","amp","like @gain@, but linear."],["f","attack","a pattern of numbers to specify the attack time (in seconds) of an envelope applied to each sample."],["f","decay",""],["f","sustain",""],["f","release","a pattern of numbers to specify the release time (in seconds) of an envelope applied to each sample."],["f","hold","a pattern of numbers to specify the hold time (in seconds) of an envelope applied to each sample. Only takes effect if `attack` and `release` are also specified."],["f","bandf","A pattern of numbers from 0 to 1. Sets the center frequency of the band-pass filter."],["f","bandq","a pattern of anumbers from 0 to 1. Sets the q-factor of the band-pass filter."],["f","begin","a pattern of numbers from 0 to 1. Skips the beginning of each sample, e.g. `0.25` to cut off the first quarter from each sample."],["f","end","the same as `begin`, but cuts the end off samples, shortening them; e.g. `0.75` to cut off the last quarter of each sample."],["f","loop","loops the sample (from `begin` to `end`) the specified number of times."],["f","legato","controls the amount of overlap between two adjacent sounds"],["f","crush","bit crushing, a pattern of numbers from 1 (for drastic reduction in bit-depth) to 16 (for barely no reduction)."],["f","coarse","fake-resampling, a pattern of numbers for lowering the sample rate, i.e. 1 for original 2 for half, 3 for a third and so on."],["i","channel","choose the channel the pattern is sent to in superdirt"],["i","cut","In the style of classic drum-machines, `cut` will stop a playing sample as soon as another samples with in same cutgroup is to be played. An example would be an open hi-hat followed by a closed one, essentially muting the open."],["f","cutoff","a pattern of numbers from 0 to 1. Applies the cutoff frequency of the low-pass filter."],["f","hcutoff","a pattern of numbers from 0 to 1. Applies the cutoff frequency of the high-pass filter. Also has alias @hpf@"],["f","hresonance","a pattern of numbers from 0 to 1. Applies the resonance of the high-pass filter. Has alias @hpq@"],["f","resonance","a pattern of numbers from 0 to 1. Specifies the resonance of the low-pass filter."],["f","djf","DJ filter, below 0.5 is low pass filter, above is high pass filter."],["f","delay","a pattern of numbers from 0 to 1. Sets the level of the delay signal."],["f","delayfeedback","a pattern of numbers from 0 to 1. Sets the amount of delay feedback."],["f","delaytime","a pattern of numbers from 0 to 1. Sets the length of the delay."],["f","lock","A pattern of numbers. Specifies whether delaytime is calculated relative to cps. When set to 1, delaytime is a direct multiple of a cycle."],["f","detune",""],["f","dry","when set to `1` will disable all reverb for this pattern. See `room` and `size` for more information about reverb."],["f","fadeTime","Used when using begin/end or chop/striate and friends, to change the fade out time of the 'grain' envelope."],["f","fadeInTime","As with fadeTime, but controls the fade in time of the grain envelope. Not used if the grain begins at position 0 in the sample."],["f","freq",""],["f","gate",""],["f","leslie",""],["f","lrate",""],["f","lsize",""],["f","degree",""],["f","mtranspose",""],["f","ctranspose",""],["f","harmonic",""],["f","stepsPerOctave",""],["f","octaveR",""],["f","nudge","Nudges events into the future by the specified number of seconds. Negative numbers work up to a point as well (due to internal latency)"],["i","octave",""],["f","offset",""],["i","orbit","a pattern of numbers. An `orbit` is a global parameter context for patterns. Patterns with the same orbit will share hardware output bus offset and global effects, e.g. reverb and delay. The maximum number of orbits is specified in the superdirt startup, numbers higher than maximum will wrap around."],["f","overgain",""],["f","overshape",""],["f","pan","a pattern of numbers between 0 and 1, from left to right (assuming stereo), once round a circle (assuming multichannel)"],["f","panspan","a pattern of numbers between -inf and inf, which controls how much multichannel output is fanned out (negative is backwards ordering)"],["f","pansplay","a pattern of numbers between 0.0 and 1.0, which controls the multichannel spread range (multichannel only)"],["f","panwidth","a pattern of numbers between 0.0 and inf, which controls how much each channel is distributed over neighbours (multichannel only)"],["f","panorient","a pattern of numbers between -1.0 and 1.0, which controls the relative position of the centre pan in a pair of adjacent speakers (multichannel only)"],["f","rate","used in SuperDirt softsynths as a control rate or 'speed'"],["f","slide",""],["f","semitone",""],["f","velocity",""],["f","voice",""],["f","room","a pattern of numbers from 0 to 1. Sets the level of reverb."],["f","size","a pattern of numbers from 0 to 1. Sets the perceptual size (reverb time) of the `room` to be used in reverb."],["f","shape","wave shaping distortion, a pattern of numbers from 0 for no distortion up to 1 for loads of distortion."],["f","speed","a pattern of numbers which changes the speed of sample playback, i.e. a cheap way of changing pitch. Negative values will play the sample backwards!"],["s","unit",'used in conjunction with `speed`, accepts values of "r" (rate, default behavior), "c" (cycles), or "s" (seconds). Using `unit "c"` means `speed` will be interpreted in units of cycles, e.g. `speed "1"` means samples will be stretched to fill a cycle. Using `unit "s"` means the playback speed will be adjusted so that the duration is the number of seconds specified by `speed`.'],["f","squiz",""],["f","stutterdepth",""],["f","stuttertime",""],["f","timescale",""],["f","timescalewin",""],["s","vowel","formant filter to make things sound like vowels, a pattern of either `a`, `e`, `i`, `o` or `u`. Use a rest (`~`) for no effect."],["f","waveloss",""],["f","dur",""],["f","expression",""],["f","sustainpedal",""],["f","tremolodepth","Tremolo Audio DSP effect | params are 'tremolorate' and 'tremolodepth'"],["f","tremolorate","Tremolo Audio DSP effect | params are 'tremolorate' and 'tremolodepth'"],["f","phaserdepth","Phaser Audio DSP effect | params are 'phaserrate' and 'phaserdepth'"],["f","phaserrate","Phaser Audio DSP effect | params are 'phaserrate' and 'phaserdepth'"],["f","fshift","frequency shifter"],["f","fshiftnote","frequency shifter"],["f","fshiftphase","frequency shifter"],["f","triode","tube distortion"],["f","krush","shape/bass enhancer"],["f","kcutoff",""],["f","octer","octaver effect"],["f","octersub","octaver effect"],["f","octersubsub","octaver effect"],["f","ring","ring modulation"],["f","ringf","ring modulation"],["f","ringdf","ring modulation"],["f","distort","noisy fuzzy distortion"],["f","freeze","Spectral freeze"],["f","xsdelay",""],["f","tsdelay",""],["f","real","Spectral conform"],["f","imag",""],["f","enhance","Spectral enhance"],["f","partials",""],["f","comb","Spectral comb"],["f","smear","Spectral smear"],["f","scram","Spectral scramble"],["f","binshift","Spectral binshift"],["f","hbrick","High pass sort of spectral filter"],["f","lbrick","Low pass sort of spectral filter"],["f","midichan",""],["f","control",""],["f","ccn",""],["f","ccv",""],["f","polyTouch",""],["f","midibend",""],["f","miditouch",""],["f","ctlNum",""],["f","frameRate",""],["f","frames",""],["f","hours",""],["s","midicmd",""],["f","minutes",""],["f","progNum",""],["f","seconds",""],["f","songPtr",""],["f","uid",""],["f","val",""],["f","cps",""],["f","clip",""]],_name=(a,...e)=>sequence(...e).withValue(s=>({[a]:s})),_setter=(a,e)=>function(...s){return s.length?this.set(a(...s)):this.fmap(o=>({[e]:o}))};generic_params.forEach(([a,e,s])=>{controls[e]=(...o)=>_name(e,...o),Pattern$5.prototype[e]=_setter(controls[e],e)});controls.createParam=a=>{const e=(...s)=>_name(a,...s);return Pattern$5.prototype[a]=_setter(e,a),(...s)=>_name(a,...s)};controls.createParams=(...a)=>a.reduce((e,s)=>Object.assign(e,{[s]:createParam(s)}),{});var dist$7={},tokenizer={},utils$1={},unicode$2={};Object.defineProperty(unicode$2,"__esModule",{value:!0});unicode$2.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];unicode$2.whitespaceBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!0,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1];unicode$2.idStartLargeRegex=/^[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]$/;unicode$2.idStartBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];unicode$2.idContinueLargeRegex=/^[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]$/;unicode$2.idContinueBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];Object.defineProperty(utils$1,"__esModule",{value:!0});utils$1.isStrictModeReservedWord=isStrictModeReservedWord;utils$1.isWhiteSpace=isWhiteSpace;utils$1.isLineTerminator=isLineTerminator;utils$1.isIdentifierStart=isIdentifierStart$1;utils$1.isIdentifierPart=isIdentifierPart$1;utils$1.isDecimalDigit=isDecimalDigit;utils$1.getHexValue=getHexValue;var _unicode$2=unicode$2,strictReservedWords=["null","true","false","implements","interface","package","private","protected","public","static","let","if","in","do","var","for","new","try","this","else","case","void","with","enum","while","break","catch","throw","const","yield","class","super","return","typeof","delete","switch","export","import","default","finally","extends","function","continue","debugger","instanceof"];function isStrictModeReservedWord(a){return strictReservedWords.indexOf(a)!==-1}function isWhiteSpace(a){return a<128?_unicode$2.whitespaceBool[a]:a===160||a>5759&&_unicode$2.whitespaceArray.indexOf(a)!==-1}function isLineTerminator(a){return a===10||a===13||a===8232||a===8233}function isIdentifierStart$1(a){return a<128?_unicode$2.idStartBool[a]:_unicode$2.idStartLargeRegex.test(String.fromCodePoint(a))}function isIdentifierPart$1(a){return a<128?_unicode$2.idContinueBool[a]:_unicode$2.idContinueLargeRegex.test(String.fromCodePoint(a))}function isDecimalDigit(a){return a>=48&&a<=57}function getHexValue(a){return a>="0"&&a<="9"?a.charCodeAt(0)-48:a>="a"&&a<="f"?a.charCodeAt(0)-87:a>="A"&&a<="F"?a.charCodeAt(0)-55:-1}var errors={};Object.defineProperty(errors,"__esModule",{value:!0});errors.ErrorMessages={UNEXPECTED_TOKEN:function(e){return"Unexpected token "+JSON.stringify(e)},UNEXPECTED_ILLEGAL_TOKEN:function(e){return"Unexpected "+JSON.stringify(e)},UNEXPECTED_ESCAPED_KEYWORD:"Unexpected escaped keyword",UNEXPECTED_NUMBER:"Unexpected number",UNEXPECTED_STRING:"Unexpected string",UNEXPECTED_IDENTIFIER:"Unexpected identifier",UNEXPECTED_RESERVED_WORD:"Unexpected reserved word",UNEXPECTED_TEMPLATE:"Unexpected template",UNEXPECTED_EOS:"Unexpected end of input",UNEXPECTED_LINE_TERMINATOR:"Unexpected line terminator",UNEXPECTED_COMMA_AFTER_REST:"Unexpected comma after rest",UNEXPECTED_REST_PARAMETERS_INITIALIZATION:"Rest parameter may not have a default initializer",NEWLINE_AFTER_THROW:"Illegal newline after throw",UNTERMINATED_REGEXP:"Invalid regular expression: missing /",INVALID_LAST_REST_PARAMETER:"Rest parameter must be last formal parameter",INVALID_REST_PARAMETERS_INITIALIZATION:"Rest parameter may not have a default initializer",INVALID_REGEXP_FLAGS:"Invalid regular expression flags",INVALID_REGEX:"Invalid regular expression",INVALID_LHS_IN_ASSIGNMENT:"Invalid left-hand side in assignment",INVALID_LHS_IN_BINDING:"Invalid left-hand side in binding",INVALID_LHS_IN_FOR_IN:"Invalid left-hand side in for-in",INVALID_LHS_IN_FOR_OF:"Invalid left-hand side in for-of",INVALID_LHS_IN_FOR_AWAIT:"Invalid left-hand side in for-await",INVALID_UPDATE_OPERAND:"Increment/decrement target must be an identifier or member expression",INVALID_EXPONENTIATION_LHS:"Unary expressions as the left operand of an exponentation expression must be disambiguated with parentheses",MULTIPLE_DEFAULTS_IN_SWITCH:"More than one default clause in switch statement",NO_CATCH_OR_FINALLY:"Missing catch or finally after try",ILLEGAL_RETURN:"Illegal return statement",ILLEGAL_ARROW_FUNCTION_PARAMS:"Illegal arrow function parameter list",INVALID_ASYNC_PARAMS:"Async function parameters must not contain await expressions",INVALID_VAR_INIT_FOR_IN:"Invalid variable declaration in for-in statement",INVALID_VAR_INIT_FOR_OF:"Invalid variable declaration in for-of statement",INVALID_VAR_INIT_FOR_AWAIT:"Invalid variable declaration in for-await statement",UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT:"Binding pattern appears without initializer in for statement init",ILLEGAL_PROPERTY:"Illegal property initializer",INVALID_ID_BINDING_STRICT_MODE:function(e){return"The identifier "+JSON.stringify(e)+" must not be in binding position in strict mode"},INVALID_ID_IN_LABEL_STRICT_MODE:function(e){return"The identifier "+JSON.stringify(e)+" must not be in label position in strict mode"},INVALID_ID_IN_EXPRESSION_STRICT_MODE:function(e){return"The identifier "+JSON.stringify(e)+" must not be in expression position in strict mode"},INVALID_CALL_TO_SUPER:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',INVALID_DELETE_STRICT_MODE:"Identifier expressions must not be deleted in strict mode",DUPLICATE_BINDING:function(e){return"Duplicate binding "+JSON.stringify(e)},ILLEGAL_ID_IN_LEXICAL_DECLARATION:function(e){return"Lexical declarations must not have a binding named "+JSON.stringify(e)},UNITIALIZED_CONST:"Constant lexical declarations must have an initialiser",ILLEGAL_LABEL_IN_BODY:function(e){return"The body of a "+e+" statement must not be a labeled function declaration"},ILLEGEAL_LABEL_IN_IF:"The consequent of an if statement must not be a labeled function declaration",ILLEGAL_LABEL_IN_ELSE:"The alternate of an if statement must not be a labeled function declaration",ILLEGAL_CONTINUE_WITHOUT_ITERATION_WITH_ID:function(e){return"Continue statement must be nested within an iteration statement with label "+JSON.stringify(e)},ILLEGAL_CONTINUE_WITHOUT_ITERATION:"Continue statement must be nested within an iteration statement",ILLEGAL_BREAK_WITHOUT_ITERATION_OR_SWITCH:"Break statement must be nested within an iteration statement or a switch statement",ILLEGAL_WITH_STRICT_MODE:"Strict mode code must not include a with statement",ILLEGAL_ACCESS_SUPER_MEMBER:"Member access on super must be in a method",ILLEGAL_SUPER_CALL:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',DUPLICATE_LABEL_DECLARATION:function(e){return"Label "+JSON.stringify(e)+" has already been declared"},ILLEGAL_BREAK_WITHIN_LABEL:function(e){return"Break statement must be nested within a statement with label "+JSON.stringify(e)},ILLEGAL_YIELD_EXPRESSIONS:function(e){return e+" parameters must not contain yield expressions"},ILLEGAL_YIELD_IDENTIFIER:'"yield" may not be used as an identifier in this context',ILLEGAL_AWAIT_IDENTIFIER:'"await" may not be used as an identifier in this context',DUPLICATE_CONSTRUCTOR:"Duplicate constructor method in class",ILLEGAL_CONSTRUCTORS:"Constructors cannot be async, generators, getters or setters",ILLEGAL_STATIC_CLASS_NAME:'Static class methods cannot be named "prototype"',NEW_TARGET_ERROR:"new.target must be within function (but not arrow expression) code",DUPLICATE_EXPORT:function(e){return"Duplicate export "+JSON.stringify(e)},UNDECLARED_BINDING:function(e){return"Exported binding "+JSON.stringify(e)+" is not declared"},DUPLICATE_PROPTO_PROP:"Duplicate __proto__ property in object literal not allowed",ILLEGAL_LABEL_FUNC_DECLARATION:"Labeled FunctionDeclarations are disallowed in strict mode",ILLEGAL_FUNC_DECL_IF:"FunctionDeclarations in IfStatements are disallowed in strict mode",ILLEGAL_USE_STRICT:'Functions with non-simple parameter lists may not contain a "use strict" directive',ILLEGAL_EXPORTED_NAME:"Names of variables used in an export specifier from the current module must be identifiers",NO_OCTALS_IN_TEMPLATES:"Template literals may not contain octal escape sequences",NO_AWAIT_IN_ASYNC_PARAMS:'Async arrow parameters may not contain "await"'};Object.defineProperty(tokenizer,"__esModule",{value:!0});tokenizer.JsError=tokenizer.TokenType=tokenizer.TokenClass=void 0;var _slicedToArray=function(){function a(e,s){var o=[],c=!0,d=!1,_=void 0;try{for(var b=e[Symbol.iterator](),k;!(c=(k=b.next()).done)&&(o.push(k.value),!(s&&o.length===s));c=!0);}catch($){d=!0,_=$}finally{try{!c&&b.return&&b.return()}finally{if(d)throw _}}return o}return function(e,s){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return a(e,s);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass$e=function(){function a(e,s){for(var o=0;o"},Ident:{name:"Identifier",isIdentifierName:!0},Keyword:{name:"Keyword",isIdentifierName:!0},NumericLiteral:{name:"Numeric"},TemplateElement:{name:"Template"},Punctuator:{name:"Punctuator"},StringLiteral:{name:"String"},RegularExpression:{name:"RegularExpression"},Illegal:{name:"Illegal"}},TokenType=tokenizer.TokenType={EOS:{klass:TokenClass.Eof,name:"EOS"},LPAREN:{klass:TokenClass.Punctuator,name:"("},RPAREN:{klass:TokenClass.Punctuator,name:")"},LBRACK:{klass:TokenClass.Punctuator,name:"["},RBRACK:{klass:TokenClass.Punctuator,name:"]"},LBRACE:{klass:TokenClass.Punctuator,name:"{"},RBRACE:{klass:TokenClass.Punctuator,name:"}"},COLON:{klass:TokenClass.Punctuator,name:":"},SEMICOLON:{klass:TokenClass.Punctuator,name:";"},PERIOD:{klass:TokenClass.Punctuator,name:"."},ELLIPSIS:{klass:TokenClass.Punctuator,name:"..."},ARROW:{klass:TokenClass.Punctuator,name:"=>"},CONDITIONAL:{klass:TokenClass.Punctuator,name:"?"},INC:{klass:TokenClass.Punctuator,name:"++"},DEC:{klass:TokenClass.Punctuator,name:"--"},ASSIGN:{klass:TokenClass.Punctuator,name:"="},ASSIGN_BIT_OR:{klass:TokenClass.Punctuator,name:"|="},ASSIGN_BIT_XOR:{klass:TokenClass.Punctuator,name:"^="},ASSIGN_BIT_AND:{klass:TokenClass.Punctuator,name:"&="},ASSIGN_SHL:{klass:TokenClass.Punctuator,name:"<<="},ASSIGN_SHR:{klass:TokenClass.Punctuator,name:">>="},ASSIGN_SHR_UNSIGNED:{klass:TokenClass.Punctuator,name:">>>="},ASSIGN_ADD:{klass:TokenClass.Punctuator,name:"+="},ASSIGN_SUB:{klass:TokenClass.Punctuator,name:"-="},ASSIGN_MUL:{klass:TokenClass.Punctuator,name:"*="},ASSIGN_DIV:{klass:TokenClass.Punctuator,name:"/="},ASSIGN_MOD:{klass:TokenClass.Punctuator,name:"%="},ASSIGN_EXP:{klass:TokenClass.Punctuator,name:"**="},COMMA:{klass:TokenClass.Punctuator,name:","},OR:{klass:TokenClass.Punctuator,name:"||"},AND:{klass:TokenClass.Punctuator,name:"&&"},BIT_OR:{klass:TokenClass.Punctuator,name:"|"},BIT_XOR:{klass:TokenClass.Punctuator,name:"^"},BIT_AND:{klass:TokenClass.Punctuator,name:"&"},SHL:{klass:TokenClass.Punctuator,name:"<<"},SHR:{klass:TokenClass.Punctuator,name:">>"},SHR_UNSIGNED:{klass:TokenClass.Punctuator,name:">>>"},ADD:{klass:TokenClass.Punctuator,name:"+"},SUB:{klass:TokenClass.Punctuator,name:"-"},MUL:{klass:TokenClass.Punctuator,name:"*"},DIV:{klass:TokenClass.Punctuator,name:"/"},MOD:{klass:TokenClass.Punctuator,name:"%"},EXP:{klass:TokenClass.Punctuator,name:"**"},EQ:{klass:TokenClass.Punctuator,name:"=="},NE:{klass:TokenClass.Punctuator,name:"!="},EQ_STRICT:{klass:TokenClass.Punctuator,name:"==="},NE_STRICT:{klass:TokenClass.Punctuator,name:"!=="},LT:{klass:TokenClass.Punctuator,name:"<"},GT:{klass:TokenClass.Punctuator,name:">"},LTE:{klass:TokenClass.Punctuator,name:"<="},GTE:{klass:TokenClass.Punctuator,name:">="},INSTANCEOF:{klass:TokenClass.Keyword,name:"instanceof"},IN:{klass:TokenClass.Keyword,name:"in"},NOT:{klass:TokenClass.Punctuator,name:"!"},BIT_NOT:{klass:TokenClass.Punctuator,name:"~"},ASYNC:{klass:TokenClass.Keyword,name:"async"},AWAIT:{klass:TokenClass.Keyword,name:"await"},ENUM:{klass:TokenClass.Keyword,name:"enum"},DELETE:{klass:TokenClass.Keyword,name:"delete"},TYPEOF:{klass:TokenClass.Keyword,name:"typeof"},VOID:{klass:TokenClass.Keyword,name:"void"},BREAK:{klass:TokenClass.Keyword,name:"break"},CASE:{klass:TokenClass.Keyword,name:"case"},CATCH:{klass:TokenClass.Keyword,name:"catch"},CLASS:{klass:TokenClass.Keyword,name:"class"},CONTINUE:{klass:TokenClass.Keyword,name:"continue"},DEBUGGER:{klass:TokenClass.Keyword,name:"debugger"},DEFAULT:{klass:TokenClass.Keyword,name:"default"},DO:{klass:TokenClass.Keyword,name:"do"},ELSE:{klass:TokenClass.Keyword,name:"else"},EXPORT:{klass:TokenClass.Keyword,name:"export"},EXTENDS:{klass:TokenClass.Keyword,name:"extends"},FINALLY:{klass:TokenClass.Keyword,name:"finally"},FOR:{klass:TokenClass.Keyword,name:"for"},FUNCTION:{klass:TokenClass.Keyword,name:"function"},IF:{klass:TokenClass.Keyword,name:"if"},IMPORT:{klass:TokenClass.Keyword,name:"import"},LET:{klass:TokenClass.Keyword,name:"let"},NEW:{klass:TokenClass.Keyword,name:"new"},RETURN:{klass:TokenClass.Keyword,name:"return"},SUPER:{klass:TokenClass.Keyword,name:"super"},SWITCH:{klass:TokenClass.Keyword,name:"switch"},THIS:{klass:TokenClass.Keyword,name:"this"},THROW:{klass:TokenClass.Keyword,name:"throw"},TRY:{klass:TokenClass.Keyword,name:"try"},VAR:{klass:TokenClass.Keyword,name:"var"},WHILE:{klass:TokenClass.Keyword,name:"while"},WITH:{klass:TokenClass.Keyword,name:"with"},NULL:{klass:TokenClass.Keyword,name:"null"},TRUE:{klass:TokenClass.Keyword,name:"true"},FALSE:{klass:TokenClass.Keyword,name:"false"},YIELD:{klass:TokenClass.Keyword,name:"yield"},NUMBER:{klass:TokenClass.NumericLiteral,name:""},STRING:{klass:TokenClass.StringLiteral,name:""},REGEXP:{klass:TokenClass.RegularExpression,name:""},IDENTIFIER:{klass:TokenClass.Ident,name:""},CONST:{klass:TokenClass.Keyword,name:"const"},TEMPLATE:{klass:TokenClass.TemplateElement,name:""},ESCAPED_KEYWORD:{klass:TokenClass.Keyword,name:""},ILLEGAL:{klass:TokenClass.Illegal,name:""}},TT=TokenType,I=TT.ILLEGAL,F=!1,T=!0,ONE_CHAR_PUNCTUATOR=[I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.NOT,I,I,I,TT.MOD,TT.BIT_AND,I,TT.LPAREN,TT.RPAREN,TT.MUL,TT.ADD,TT.COMMA,TT.SUB,TT.PERIOD,TT.DIV,I,I,I,I,I,I,I,I,I,I,TT.COLON,TT.SEMICOLON,TT.LT,TT.ASSIGN,TT.GT,TT.CONDITIONAL,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.LBRACK,I,TT.RBRACK,TT.BIT_XOR,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.LBRACE,TT.BIT_OR,TT.RBRACE,TT.BIT_NOT],PUNCTUATOR_START=[F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,F,F,F,T,T,F,T,T,T,T,T,T,F,T,F,F,F,F,F,F,F,F,F,F,T,T,T,T,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,F,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,T,T,T,F],JsError=tokenizer.JsError=function(a){_inherits$8(e,a);function e(s,o,c,d){_classCallCheck$i(this,e);var _=_possibleConstructorReturn$8(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,d));_.index=s;try{_.line=o,_.column=c}catch{}return _.parseErrorLine=o,_.parseErrorColumn=c,_.description=d,_.message="["+o+":"+c+"]: "+d,_}return e}(Error);function fromCodePoint$1(a){if(a<=65535)return String.fromCharCode(a);var e=String.fromCharCode(Math.floor((a-65536)/1024)+55296),s=String.fromCharCode((a-65536)%1024+56320);return e+s}function decodeUtf16(a,e){return(a-55296)*1024+(e-56320)+65536}var Tokenizer=function(){function a(e){_classCallCheck$i(this,a),this.source=e,this.index=0,this.line=0,this.lineStart=0,this.startIndex=0,this.startLine=0,this.startLineStart=0,this.lastIndex=0,this.lastLine=0,this.lastLineStart=0,this.hasLineTerminatorBeforeNext=!1,this.tokenIndex=0}return _createClass$e(a,[{key:"saveLexerState",value:function(){return{source:this.source,index:this.index,line:this.line,lineStart:this.lineStart,startIndex:this.startIndex,startLine:this.startLine,startLineStart:this.startLineStart,lastIndex:this.lastIndex,lastLine:this.lastLine,lastLineStart:this.lastLineStart,lookahead:this.lookahead,hasLineTerminatorBeforeNext:this.hasLineTerminatorBeforeNext,tokenIndex:this.tokenIndex}}},{key:"restoreLexerState",value:function(s){this.source=s.source,this.index=s.index,this.line=s.line,this.lineStart=s.lineStart,this.startIndex=s.startIndex,this.startLine=s.startLine,this.startLineStart=s.startLineStart,this.lastIndex=s.lastIndex,this.lastLine=s.lastLine,this.lastLineStart=s.lastLineStart,this.lookahead=s.lookahead,this.hasLineTerminatorBeforeNext=s.hasLineTerminatorBeforeNext,this.tokenIndex=s.tokenIndex}},{key:"createILLEGAL",value:function(){return this.startIndex=this.index,this.startLine=this.line,this.startLineStart=this.lineStart,this.index1?c-1:0),_=1;_10)return TokenType.IDENTIFIER;switch(s.length){case 2:switch(s.charAt(0)){case"i":switch(s.charAt(1)){case"f":return TokenType.IF;case"n":return TokenType.IN}break;case"d":if(s.charAt(1)==="o")return TokenType.DO;break}break;case 3:switch(s.charAt(0)){case"v":if(a.cse2(s,"a","r"))return TokenType.VAR;break;case"f":if(a.cse2(s,"o","r"))return TokenType.FOR;break;case"n":if(a.cse2(s,"e","w"))return TokenType.NEW;break;case"t":if(a.cse2(s,"r","y"))return TokenType.TRY;break;case"l":if(a.cse2(s,"e","t"))return TokenType.LET;break}break;case 4:switch(s.charAt(0)){case"t":if(a.cse3(s,"h","i","s"))return TokenType.THIS;if(a.cse3(s,"r","u","e"))return TokenType.TRUE;break;case"n":if(a.cse3(s,"u","l","l"))return TokenType.NULL;break;case"e":if(a.cse3(s,"l","s","e"))return TokenType.ELSE;if(a.cse3(s,"n","u","m"))return TokenType.ENUM;break;case"c":if(a.cse3(s,"a","s","e"))return TokenType.CASE;break;case"v":if(a.cse3(s,"o","i","d"))return TokenType.VOID;break;case"w":if(a.cse3(s,"i","t","h"))return TokenType.WITH;break}break;case 5:switch(s.charAt(0)){case"a":if(a.cse4(s,"s","y","n","c"))return TokenType.ASYNC;if(a.cse4(s,"w","a","i","t"))return TokenType.AWAIT;break;case"w":if(a.cse4(s,"h","i","l","e"))return TokenType.WHILE;break;case"b":if(a.cse4(s,"r","e","a","k"))return TokenType.BREAK;break;case"f":if(a.cse4(s,"a","l","s","e"))return TokenType.FALSE;break;case"c":if(a.cse4(s,"a","t","c","h"))return TokenType.CATCH;if(a.cse4(s,"o","n","s","t"))return TokenType.CONST;if(a.cse4(s,"l","a","s","s"))return TokenType.CLASS;break;case"t":if(a.cse4(s,"h","r","o","w"))return TokenType.THROW;break;case"y":if(a.cse4(s,"i","e","l","d"))return TokenType.YIELD;break;case"s":if(a.cse4(s,"u","p","e","r"))return TokenType.SUPER;break}break;case 6:switch(s.charAt(0)){case"r":if(a.cse5(s,"e","t","u","r","n"))return TokenType.RETURN;break;case"t":if(a.cse5(s,"y","p","e","o","f"))return TokenType.TYPEOF;break;case"d":if(a.cse5(s,"e","l","e","t","e"))return TokenType.DELETE;break;case"s":if(a.cse5(s,"w","i","t","c","h"))return TokenType.SWITCH;break;case"e":if(a.cse5(s,"x","p","o","r","t"))return TokenType.EXPORT;break;case"i":if(a.cse5(s,"m","p","o","r","t"))return TokenType.IMPORT;break}break;case 7:switch(s.charAt(0)){case"d":if(a.cse6(s,"e","f","a","u","l","t"))return TokenType.DEFAULT;break;case"f":if(a.cse6(s,"i","n","a","l","l","y"))return TokenType.FINALLY;break;case"e":if(a.cse6(s,"x","t","e","n","d","s"))return TokenType.EXTENDS;break}break;case 8:switch(s.charAt(0)){case"f":if(a.cse7(s,"u","n","c","t","i","o","n"))return TokenType.FUNCTION;break;case"c":if(a.cse7(s,"o","n","t","i","n","u","e"))return TokenType.CONTINUE;break;case"d":if(a.cse7(s,"e","b","u","g","g","e","r"))return TokenType.DEBUGGER;break}break;case 10:if(s==="instanceof")return TokenType.INSTANCEOF;break}return TokenType.IDENTIFIER}},{key:"skipSingleLineComment",value:function(s){for(this.index+=s;this.index=o)break;if(c=this.source.charCodeAt(this.index+1),c===47)this.skipSingleLineComment(2),s=!0;else if(c===42)s=this.skipMultiLineComment()||s;else break}else if(!this.moduleIsTheGoalSymbol&&s&&c===45){if(this.index+2>=o)break;if(this.source.charAt(this.index+1)==="-"&&this.source.charAt(this.index+2)===">")this.skipSingleLineComment(3);else break}else if(!this.moduleIsTheGoalSymbol&&c===60)if(this.source.slice(this.index+1,this.index+4)==="!--")this.skipSingleLineComment(4),s=!0;else break;else break}}},{key:"scanHexEscape2",value:function(){if(this.index+2>this.source.length)return-1;var s=(0,_utils$1.getHexValue)(this.source.charAt(this.index));if(s===-1)return-1;var o=(0,_utils$1.getHexValue)(this.source.charAt(this.index+1));return o===-1?-1:(this.index+=2,s<<4|o)}},{key:"scanUnicode",value:function(){if(this.source.charAt(this.index)==="{"){for(var s=this.index+1,o=0,c=void 0;s1114111)throw this.createILLEGAL();s++}if(c!=="}")throw this.createILLEGAL();if(s===this.index+1)throw++this.index,this.createILLEGAL();return this.index=s+1,o}if(this.index+4>this.source.length)return-1;var _=(0,_utils$1.getHexValue)(this.source.charAt(this.index));if(_===-1)return-1;var b=(0,_utils$1.getHexValue)(this.source.charAt(this.index+1));if(b===-1)return-1;var k=(0,_utils$1.getHexValue)(this.source.charAt(this.index+2));if(k===-1)return-1;var $=(0,_utils$1.getHexValue)(this.source.charAt(this.index+3));return $===-1?-1:(this.index+=4,_<<12|b<<8|k<<4|$)}},{key:"getEscapedIdentifier",value:function(){for(var s="",o=_utils$1.isIdentifierStart;this.index=this.source.length)throw this.createILLEGAL();if(this.source.charAt(this.index)!=="u")throw this.createILLEGAL();if(++this.index,d=this.scanUnicode(),d<0)throw this.createILLEGAL();c=fromCodePoint$1(d)}else if(d>=55296&&d<=56319){if(this.index>=this.source.length)throw this.createILLEGAL();var b=this.source.charCodeAt(this.index);if(++this.index,!(b>=56320&&b<=57343))throw this.createILLEGAL();d=decodeUtf16(d,b),c=fromCodePoint$1(d)}if(!o(d)){if(s.length<1)throw this.createILLEGAL();return this.index=_,s}o=_utils$1.isIdentifierPart,s+=c}return s}},{key:"getIdentifier",value:function(){for(var s=this.index,o=this.source.length,c=this.index,d=_utils$1.isIdentifierStart;c=55296&&b<=56319)return this.index=s,this.getEscapedIdentifier();if(!d(b))return this.index=c,this.source.slice(s,c);++c,d=_utils$1.isIdentifierPart}return this.index=c,this.source.slice(s,c)}},{key:"scanIdentifier",value:function(){var s=this.getLocation(),o=this.index,c=this.source.charAt(this.index)==="\\"?this.getEscapedIdentifier():this.getIdentifier(),d=this.getSlice(o,s);d.text=c;var _=this.index-o!==c.length,b=this.getKeyword(c);return _&&b!==TokenType.IDENTIFIER&&(b=TokenType.ESCAPED_KEYWORD),{type:b,value:c,slice:d,escaped:_}}},{key:"getLocation",value:function(){return{line:this.startLine+1,column:this.startIndex-this.startLineStart,offset:this.startIndex}}},{key:"getLastTokenEndLocation",value:function(){return{line:this.lastLine+1,column:this.lastIndex-this.lastLineStart,offset:this.lastIndex}}},{key:"getSlice",value:function(s,o){return{text:this.source.slice(s,this.index),start:s,startLocation:o,end:this.index}}},{key:"scanPunctuatorHelper",value:function(){var s=this.source.charAt(this.index);switch(s){case".":{var o=this.source.charAt(this.index+1);if(o!==".")return TokenType.PERIOD;var c=this.source.charAt(this.index+2);return c!=="."?TokenType.PERIOD:TokenType.ELLIPSIS}case"(":return TokenType.LPAREN;case")":case";":case",":return ONE_CHAR_PUNCTUATOR[s.charCodeAt(0)];case"{":return TokenType.LBRACE;case"}":case"[":case"]":case":":case"?":case"~":return ONE_CHAR_PUNCTUATOR[s.charCodeAt(0)];default:if(this.index+1":return TokenType.GTE;case"/":return TokenType.ASSIGN_DIV;case"%":return TokenType.ASSIGN_MOD;case"^":return TokenType.ASSIGN_BIT_XOR;case"&":return TokenType.ASSIGN_BIT_AND}}if(this.index+1"&&_===">")return this.index+3"&&_==="=")return TokenType.ASSIGN_SHR;if(s==="*"&&_==="=")return TokenType.ASSIGN_EXP}switch(s){case"*":return TokenType.EXP;case"+":return TokenType.INC;case"-":return TokenType.DEC;case"<":return TokenType.SHL;case">":return TokenType.SHR;case"&":return TokenType.AND;case"|":return TokenType.OR}}else if(s==="="&&d===">")return TokenType.ARROW}return ONE_CHAR_PUNCTUATOR[s.charCodeAt(0)]}},{key:"scanPunctuator",value:function(){var s=this.getLocation(),o=this.index,c=this.scanPunctuatorHelper();return this.index+=c.name.length,{type:c,value:c.name,slice:this.getSlice(o,s)}}},{key:"scanHexLiteral",value:function(s,o){for(var c=this.index;c="0"&&c<="7")this.index++;else{if((0,_utils$1.isIdentifierPart)(c.charCodeAt(0)))throw this.createILLEGAL();break}}if(this.index-s===2)throw this.createILLEGAL();return{type:TokenType.NUMBER,value:parseInt(this.getSlice(s,o).text.substr(2),8),slice:this.getSlice(s,o),octal:!1,noctal:!1}}},{key:"scanLegacyOctalLiteral",value:function(s,o){for(var c=!0;this.index="0"&&d<="7")this.index++;else if(d==="8"||d==="9")c=!1,this.index++;else{if((0,_utils$1.isIdentifierPart)(d.charCodeAt(0)))throw this.createILLEGAL();break}}var _=this.getSlice(s,o);return c?{type:TokenType.NUMBER,slice:_,value:parseInt(_.text.substr(1),8),octal:!0,noctal:!c}:(this.eatDecimalLiteralSuffix(),{type:TokenType.NUMBER,slice:_,value:+_.text,octal:!0,noctal:!c})}},{key:"scanNumericLiteral",value:function(){var s=this.source.charAt(this.index),o=this.getLocation(),c=this.index;if(s==="0")if(this.index++,this.index="0"&&s<="9")return this.scanLegacyOctalLiteral(c,o)}else{var d=this.getSlice(c,o);return{type:TokenType.NUMBER,value:+d.text,slice:d,octal:!1,noctal:!1}}else if(s!==".")for(s=this.source.charAt(this.index);s>="0"&&s<="9";){if(this.index++,this.index===this.source.length){var _=this.getSlice(c,o);return{type:TokenType.NUMBER,value:+_.text,slice:_,octal:!1,noctal:!1}}s=this.source.charAt(this.index)}if(this.eatDecimalLiteralSuffix(),this.index!==this.source.length&&(0,_utils$1.isIdentifierStart)(this.source.charCodeAt(this.index)))throw this.createILLEGAL();var b=this.getSlice(c,o);return{type:TokenType.NUMBER,value:+b.text,slice:b,octal:!1,noctal:!1}}},{key:"eatDecimalLiteralSuffix",value:function(){var s=this.source.charAt(this.index);if(s==="."){if(this.index++,this.index===this.source.length)return;for(s=this.source.charAt(this.index);s>="0"&&s<="9";){if(this.index++,this.index===this.source.length)return;s=this.source.charAt(this.index)}}if(s==="e"||s==="E"){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();if(s=this.source.charAt(this.index),s==="+"||s==="-"){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();s=this.source.charAt(this.index)}if(s>="0"&&s<="9")for(;s>="0"&&s<="9"&&(this.index++,this.index!==this.source.length);)s=this.source.charAt(this.index);else throw this.createILLEGAL()}}},{key:"scanStringEscape",value:function(s,o){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();var c=this.source.charAt(this.index);if((0,_utils$1.isLineTerminator)(c.charCodeAt(0)))this.index++,c==="\r"&&this.source.charAt(this.index)===` `&&this.index++,this.lineStart=this.index,this.line++;else switch(c){case"n":s+=` `,this.index++;break;case"r":s+="\r",this.index++;break;case"t":s+=" ",this.index++;break;case"u":case"x":{var d=void 0;if(this.index++,this.index>=this.source.length)throw this.createILLEGAL();if(d=c==="u"?this.scanUnicode():this.scanHexEscape2(),d<0)throw this.createILLEGAL();s+=fromCodePoint$1(d);break}case"b":s+="\b",this.index++;break;case"f":s+="\f",this.index++;break;case"v":s+="\v",this.index++;break;default:if(c>="0"&&c<="7"){var _=this.index,b=1;c>="0"&&c<="3"&&(b=0);for(var k=0;b<3&&c>="0"&&c<="7";){if(this.index++,(b>0||c!=="0")&&(o=this.source.slice(_,this.index)),k*=8,k+=c-"0",b++,this.index===this.source.length)throw this.createILLEGAL();c=this.source.charAt(this.index)}k===0&&b===1&&(c==="8"||c==="9")&&(o=this.source.slice(_,this.index+1)),s+=String.fromCharCode(k)}else{if(c==="8"||c==="9")throw this.createILLEGAL();s+=c,this.index++}}return[s,o]}},{key:"scanStringLiteral",value:function(){var s="",o=this.source.charAt(this.index),c=this.getLocation(),d=this.index;this.index++;for(var _=null;this.index=this.source.length)return{type:TokenType.EOS,slice:this.getSlice(this.index,s)};var o=this.source.charCodeAt(this.index);if(o<128){if(PUNCTUATOR_START[o])return this.scanPunctuator();if((0,_utils$1.isIdentifierStart)(o)||o===92)return this.scanIdentifier();if(o===46)return this.index+1=48&&o<=57)return this.scanNumericLiteral();throw this.createILLEGAL()}else{if((0,_utils$1.isIdentifierStart)(o)||o>=55296&&o<=56319)return this.scanIdentifier();throw this.createILLEGAL()}}},{key:"eof",value:function(){return this.lookahead.type===TokenType.EOS}},{key:"lex",value:function(){var s=this.lookahead;return this.lookahead=this.advance(),this.tokenIndex++,s}}],[{key:"cse2",value:function(s,o,c){return s.charAt(1)===o&&s.charAt(2)===c}},{key:"cse3",value:function(s,o,c,d){return s.charAt(1)===o&&s.charAt(2)===c&&s.charAt(3)===d}},{key:"cse4",value:function(s,o,c,d,_){return s.charAt(1)===o&&s.charAt(2)===c&&s.charAt(3)===d&&s.charAt(4)===_}},{key:"cse5",value:function(s,o,c,d,_,b){return s.charAt(1)===o&&s.charAt(2)===c&&s.charAt(3)===d&&s.charAt(4)===_&&s.charAt(5)===b}},{key:"cse6",value:function(s,o,c,d,_,b,k){return s.charAt(1)===o&&s.charAt(2)===c&&s.charAt(3)===d&&s.charAt(4)===_&&s.charAt(5)===b&&s.charAt(6)===k}},{key:"cse7",value:function(s,o,c,d,_,b,k,$){return s.charAt(1)===o&&s.charAt(2)===c&&s.charAt(3)===d&&s.charAt(4)===_&&s.charAt(5)===b&&s.charAt(6)===k&&s.charAt(7)===$}}]),a}();tokenizer.default=Tokenizer;var parser$1={},dist$6={},mappings=new Map([["General_Category",new Map([["C","Other"],["Cc","Control"],["cntrl","Control"],["Cf","Format"],["Cn","Unassigned"],["Co","Private_Use"],["Cs","Surrogate"],["L","Letter"],["LC","Cased_Letter"],["Ll","Lowercase_Letter"],["Lm","Modifier_Letter"],["Lo","Other_Letter"],["Lt","Titlecase_Letter"],["Lu","Uppercase_Letter"],["M","Mark"],["Combining_Mark","Mark"],["Mc","Spacing_Mark"],["Me","Enclosing_Mark"],["Mn","Nonspacing_Mark"],["N","Number"],["Nd","Decimal_Number"],["digit","Decimal_Number"],["Nl","Letter_Number"],["No","Other_Number"],["P","Punctuation"],["punct","Punctuation"],["Pc","Connector_Punctuation"],["Pd","Dash_Punctuation"],["Pe","Close_Punctuation"],["Pf","Final_Punctuation"],["Pi","Initial_Punctuation"],["Po","Other_Punctuation"],["Ps","Open_Punctuation"],["S","Symbol"],["Sc","Currency_Symbol"],["Sk","Modifier_Symbol"],["Sm","Math_Symbol"],["So","Other_Symbol"],["Z","Separator"],["Zl","Line_Separator"],["Zp","Paragraph_Separator"],["Zs","Space_Separator"],["Other","Other"],["Control","Control"],["Format","Format"],["Unassigned","Unassigned"],["Private_Use","Private_Use"],["Surrogate","Surrogate"],["Letter","Letter"],["Cased_Letter","Cased_Letter"],["Lowercase_Letter","Lowercase_Letter"],["Modifier_Letter","Modifier_Letter"],["Other_Letter","Other_Letter"],["Titlecase_Letter","Titlecase_Letter"],["Uppercase_Letter","Uppercase_Letter"],["Mark","Mark"],["Spacing_Mark","Spacing_Mark"],["Enclosing_Mark","Enclosing_Mark"],["Nonspacing_Mark","Nonspacing_Mark"],["Number","Number"],["Decimal_Number","Decimal_Number"],["Letter_Number","Letter_Number"],["Other_Number","Other_Number"],["Punctuation","Punctuation"],["Connector_Punctuation","Connector_Punctuation"],["Dash_Punctuation","Dash_Punctuation"],["Close_Punctuation","Close_Punctuation"],["Final_Punctuation","Final_Punctuation"],["Initial_Punctuation","Initial_Punctuation"],["Other_Punctuation","Other_Punctuation"],["Open_Punctuation","Open_Punctuation"],["Symbol","Symbol"],["Currency_Symbol","Currency_Symbol"],["Modifier_Symbol","Modifier_Symbol"],["Math_Symbol","Math_Symbol"],["Other_Symbol","Other_Symbol"],["Separator","Separator"],["Line_Separator","Line_Separator"],["Paragraph_Separator","Paragraph_Separator"],["Space_Separator","Space_Separator"]])],["Script",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Copt","Coptic"],["Qaac","Coptic"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Ugar","Ugaritic"],["Vaii","Vai"],["Wara","Warang_Citi"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Coptic","Coptic"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Warang_Citi","Warang_Citi"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])],["Script_Extensions",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Copt","Coptic"],["Qaac","Coptic"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Ugar","Ugaritic"],["Vaii","Vai"],["Wara","Warang_Citi"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Coptic","Coptic"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Warang_Citi","Warang_Citi"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])]]);const propertyToValueAliases=mappings,matchPropertyValue=function(a,e){const s=propertyToValueAliases.get(a);if(!s)throw new Error(`Unknown property \`${a}\`.`);const o=s.get(e);if(o)return o;throw new Error(`Unknown value \`${e}\` for property \`${a}\`.`)};var unicodeMatchPropertyValueEcmascript=matchPropertyValue,unicodeCanonicalPropertyNamesEcmascript=new Set(["General_Category","Script","Script_Extensions","Alphabetic","Any","ASCII","ASCII_Hex_Digit","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","ID_Continue","ID_Start","Ideographic","IDS_Binary_Operator","IDS_Trinary_Operator","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"]),unicodePropertyAliasesEcmascript=new Map([["scx","Script_Extensions"],["sc","Script"],["gc","General_Category"],["AHex","ASCII_Hex_Digit"],["Alpha","Alphabetic"],["Bidi_C","Bidi_Control"],["Bidi_M","Bidi_Mirrored"],["Cased","Cased"],["CI","Case_Ignorable"],["CWCF","Changes_When_Casefolded"],["CWCM","Changes_When_Casemapped"],["CWKCF","Changes_When_NFKC_Casefolded"],["CWL","Changes_When_Lowercased"],["CWT","Changes_When_Titlecased"],["CWU","Changes_When_Uppercased"],["Dash","Dash"],["Dep","Deprecated"],["DI","Default_Ignorable_Code_Point"],["Dia","Diacritic"],["Ext","Extender"],["Gr_Base","Grapheme_Base"],["Gr_Ext","Grapheme_Extend"],["Hex","Hex_Digit"],["IDC","ID_Continue"],["Ideo","Ideographic"],["IDS","ID_Start"],["IDSB","IDS_Binary_Operator"],["IDST","IDS_Trinary_Operator"],["Join_C","Join_Control"],["LOE","Logical_Order_Exception"],["Lower","Lowercase"],["Math","Math"],["NChar","Noncharacter_Code_Point"],["Pat_Syn","Pattern_Syntax"],["Pat_WS","Pattern_White_Space"],["QMark","Quotation_Mark"],["Radical","Radical"],["RI","Regional_Indicator"],["SD","Soft_Dotted"],["STerm","Sentence_Terminal"],["Term","Terminal_Punctuation"],["UIdeo","Unified_Ideograph"],["Upper","Uppercase"],["VS","Variation_Selector"],["WSpace","White_Space"],["space","White_Space"],["XIDC","XID_Continue"],["XIDS","XID_Start"]]);const canonicalProperties=unicodeCanonicalPropertyNamesEcmascript,propertyAliases=unicodePropertyAliasesEcmascript,matchProperty=function(a){if(canonicalProperties.has(a))return a;if(propertyAliases.has(a))return propertyAliases.get(a);throw new Error(`Unknown property: ${a}`)};var unicodeMatchPropertyEcmascript=matchProperty,unicode$1={};Object.defineProperty(unicode$1,"__esModule",{value:!0});unicode$1.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];unicode$1.whitespaceBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!0,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1];unicode$1.idStartLargeRegex=/^[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]$/;unicode$1.idStartBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];unicode$1.idContinueLargeRegex=/^[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]$/;unicode$1.idContinueBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];Object.defineProperty(dist$6,"__esModule",{value:!0});var _createClass$d=function(){function a(e,s){for(var o=0;o=this.pattern.length}},{key:"backreference",value:function(s){s>this.largestBackreference&&(this.largestBackreference=s)}},{key:"nextCodePoint",value:function(){return this.empty()?null:this.unicode?String.fromCodePoint(this.pattern.codePointAt(this.index)):this.pattern.charAt(this.index)}},{key:"skipCodePoint",value:function(){this.index+=this.nextCodePoint().length}},{key:"eat",value:function(s){return this.index+s.length>this.pattern.length||this.pattern.slice(this.index,this.index+s.length)!==s?!1:(this.index+=s.length,!0)}},{key:"eatIdentifierCodePoint",value:function(){var s=void 0,o=this.index,c=void 0;if(this.match("\\u")){if(this.skipCodePoint(),s=acceptUnicodeEscape(this),!s.matched)return this.index=o,null;s=s.value,c=String.fromCodePoint(s)}else{if(c=this.nextCodePoint(),c==null)return this.index=o,null;this.index+=c.length,s=c.codePointAt(0)}return{character:c,characterValue:s}}},{key:"eatIdentifierStart",value:function(){var s=this.index,o=this.eatIdentifierCodePoint();return o===null?(this.index=s,null):o.character==="_"||o.character==="$"||isIdentifierStart(o.characterValue)?o.character:(this.index=s,null)}},{key:"eatIdentifierPart",value:function(){var s=this.index,o=this.eatIdentifierCodePoint();return o===null?(this.index=s,null):o.character==="\u200C"||o.character==="\u200D"||o.character==="$"||isIdentifierPart(o.characterValue)?o.character:(this.index=s,null)}},{key:"eatAny",value:function(){for(var s=arguments.length,o=Array(s),c=0;c1&&arguments[1]!==void 0?arguments[1]:{},s=e.unicode,o=s===void 0?!1:s,c=new PatternAcceptorState(a,o),d=acceptDisjunction(c);if(d.matched){if(c.unicode&&c.largestBackreference>c.capturingGroups)return!1;if(c.groupingNames.length>0||c.unicode){var _=!0,b=!1,k=void 0;try{for(var $=c.backreferenceNames[Symbol.iterator](),j;!(_=(j=$.next()).done);_=!0){var _e=j.value;if(c.groupingNames.indexOf(_e)===-1)return!1}}catch(et){b=!0,k=et}finally{try{!_&&$.return&&$.return()}finally{if(b)throw k}}}}return d.matched};var backtrackOnFailure=function(e){return function(s){var o=s.index,c=s.largestBackreference,d=s.capturingGroups,_=e(s);return _.matched||(s.index=o,s.largestBackreference=c,s.capturingGroups=d),_}},acceptUnicodeEscape=backtrackOnFailure(function(a){if(!a.eat("u"))return{matched:!1};if(a.unicode&&a.eat("{")){for(var e=[];!a.eat("}");){var s=a.eatAny.apply(a,_toConsumableArray$6(hexDigits));if(s===null)return{matched:!1};e.push(s)}var o=parseInt(e.join(""),16);return o>1114111?{matched:!1}:{matched:!0,value:o}}var c=[0,0,0,0].map(function(){return a.eatAny.apply(a,_toConsumableArray$6(hexDigits))});if(c.some(function(b){return b===null}))return{matched:!1};var d=parseInt(c.join(""),16);if(a.unicode&&d>=55296&&d<=56319){var _=backtrackOnFailure(function(b){if(!b.eat("\\u"))return{matched:!1};var k=[0,0,0,0].map(function(){return b.eatAny.apply(b,_toConsumableArray$6(hexDigits))});if(k.some(function(j){return j===null}))return{matched:!1};var $=parseInt(k.join(""),16);return $<56320||$>=57344?{matched:!1}:{matched:!0,value:65536+((d&1023)<<10)+($&1023)}})(a);if(_.matched)return _}return{matched:!0,value:d}}),acceptDisjunction=function(e,s){do{if(s!==void 0&&e.eat(s))return{matched:!0};if(e.match("|"))continue;if(!acceptAlternative(e,s).matched)return{matched:!1}}while(e.eat("|"));return{matched:s===void 0||!!e.eat(s)}},acceptAlternative=function(e,s){for(;!e.match("|")&&!e.empty()&&(s===void 0||!e.match(s));)if(!acceptTerm(e).matched)return{matched:!1};return{matched:!0}},anyOf=function(){for(var e=arguments.length,s=Array(e),o=0;oparseInt(_))return{matched:!1}}return c.eat("}")?(c.eat("?"),{matched:!0}):{matched:!1}})(s);return o.matched?o:{matched:!s.unicode}}else s.eatAny("*","+","?")&&s.eat("?");return{matched:!0}})},acceptCharacterExcept=function(e){return function(s){var o=s.nextCodePoint();return o===null||e.indexOf(o)!==-1?{matched:!1}:(s.skipCodePoint(),{matched:!0})}},acceptPatternCharacter=acceptCharacterExcept(syntaxCharacters),acceptExtendedPatternCharacter=acceptCharacterExcept(extendedSyntaxCharacters),acceptInvalidBracedQuantifier=function(e){return backtrackOnFailure(function(s){return{matched:!!(s.eat("{")&&acceptDecimal(s).matched&&(!s.eat(",")||s.match("}")||acceptDecimal(s).matched)&&s.eat("}"))}})(e)},acceptAtom=function(e){if(e.unicode)return anyOf(acceptPatternCharacter,function(o){return{matched:!!o.eat(".")}},backtrackOnFailure(function(o){return o.eat("\\")?acceptAtomEscape(o):{matched:!1}}),acceptCharacterClass,acceptLabeledGroup(function(o){return o.eat("?:")}),acceptGrouping)(e);var s=anyOf(function(o){return{matched:!!o.eat(".")}},backtrackOnFailure(function(o){return o.eat("\\")?acceptAtomEscape(o):{matched:!1}}),backtrackOnFailure(function(o){return{matched:o.eat("\\")&&o.match("c")}}),acceptCharacterClass,acceptLabeledGroup(function(o){return o.eat("?:")}),acceptGrouping)(e);return!s.matched&&acceptInvalidBracedQuantifier(e).matched?{matched:!1}:s.matched?s:acceptExtendedPatternCharacter(e)},acceptGrouping=backtrackOnFailure(function(a){if(!a.eat("("))return{matched:!1};var e=backtrackOnFailure(function(s){return a.eat("?")?acceptGroupName(s):{matched:!1}})(a);if(!acceptDisjunction(a,")").matched)return{matched:!1};if(e.matched){if(a.groupingNames.indexOf(e.data)!==-1)return{matched:!1};a.groupingNames.push(e.data)}return a.capturingGroups++,{matched:!0}}),acceptDecimalEscape=backtrackOnFailure(function(a){var e=a.eatAny.apply(a,_toConsumableArray$6(decimalDigits));return e===null?{matched:!1}:e==="0"?{matched:!0}:(a.backreference(parseInt(e+(a.eatNaturalNumber()||""))),{matched:!0})}),acceptCharacterClassEscape=function(e){return e.eatAny("d","D","s","S","w","W")?{matched:!0}:e.unicode?backtrackOnFailure(function(s){return!s.eat("p{")&&!s.eat("P{")?{matched:!1}:acceptUnicodePropertyValueExpression(s).matched?{matched:!!s.eat("}")}:{matched:!1}})(e):{matched:!1}},acceptUnicodePropertyName=function(e){for(var s=[],o=void 0;o=e.eatAny.apply(e,_toConsumableArray$6(controlCharacters).concat(["_"]));)s.push(o);return{matched:s.length>0,data:s.join("")}},acceptUnicodePropertyValue=function(e){for(var s=[],o=void 0;o=e.eatAny.apply(e,_toConsumableArray$6(controlCharacters).concat(_toConsumableArray$6(decimalDigits),["_"]));)s.push(o);return{matched:s.length>0,data:s.join("")}},illegalLoneUnicodePropertyNames=["General_Category","Script","Script_Extensions","scx","sc","gc"],generalCategoryValues=_mappings2.default.get("General_Category"),acceptLoneUnicodePropertyNameOrValue=function(e){var s=acceptUnicodePropertyValue(e);return!s.matched||illegalLoneUnicodePropertyNames.includes(s.data)?{matched:!1}:{matched:catchIsFalse(function(){return(0,_unicodeMatchPropertyEcmascript2.default)(s.data)})||generalCategoryValues.get(s.data)!=null}},acceptUnicodePropertyValueExpression=function(e){return anyOf(backtrackOnFailure(function(s){var o=acceptUnicodePropertyName(s);if(!o.matched||!s.eat("="))return{matched:!1};var c=acceptUnicodePropertyValue(s);return c.matched?{matched:catchIsFalse(function(){return(0,_unicodeMatchPropertyValueEcmascript2.default)(_unicodePropertyAliasesEcmascript2.default.get(o.data)||o.data,c.data)})}:{matched:!1}}),backtrackOnFailure(acceptLoneUnicodePropertyNameOrValue))(e)},acceptCharacterEscape=anyOf(function(a){var e=a.eatAny.apply(a,_toConsumableArray$6(controlEscapeCharacters));return e===null?{matched:!1}:{matched:!0,value:controlEscapeCharacterValues[e]}},backtrackOnFailure(function(a){if(!a.eat("c"))return{matched:!1};var e=a.eatAny.apply(a,_toConsumableArray$6(controlCharacters));return e===null?{matched:!1}:{matched:!0,value:e.charCodeAt(0)%32}}),backtrackOnFailure(function(a){return!a.eat("0")||a.eatAny.apply(a,_toConsumableArray$6(decimalDigits))?{matched:!1}:{matched:!0,value:0}}),backtrackOnFailure(function(a){if(!a.eat("x"))return{matched:!1};var e=[0,0].map(function(){return a.eatAny.apply(a,_toConsumableArray$6(hexDigits))});return e.some(function(s){return s===null})?{matched:!1}:{matched:!0,value:parseInt(e.join(""),16)}}),acceptUnicodeEscape,backtrackOnFailure(function(a){if(a.unicode)return{matched:!1};var e=a.eatAny.apply(a,_toConsumableArray$6(octalDigits));if(e===null)return{matched:!1};var s=parseInt(e,8);if(octalDigits.indexOf(a.nextCodePoint())===-1)return{matched:!0,value:s};var o=a.eatAny.apply(a,_toConsumableArray$6(octalDigits)),c=parseInt(o,8);if(s<4){if(octalDigits.indexOf(a.nextCodePoint())===-1)return{matched:!0,value:s<<3|c};var d=a.eatAny.apply(a,_toConsumableArray$6(octalDigits)),_=parseInt(d,8);return{matched:!0,value:s<<6|c<<3|_}}return{matched:!0,value:s<<3|c}}),backtrackOnFailure(function(a){if(!a.unicode)return{matched:!1};var e=a.eatAny.apply(a,_toConsumableArray$6(syntaxCharacters));return e===null?{matched:!1}:{matched:!0,value:e.charCodeAt(0)}}),function(a){return!a.unicode||!a.eat("/")?{matched:!1}:{matched:!0,value:"/".charCodeAt(0)}},backtrackOnFailure(function(a){if(a.unicode)return{matched:!1};var e=a.nextCodePoint();return e!==null&&e!=="c"&&e!=="k"?(a.skipCodePoint(),{matched:!0,value:e.codePointAt(0)}):{matched:!1}})),acceptGroupNameBackreference=backtrackOnFailure(function(a){if(!a.eat("k"))return{matched:!1};var e=acceptGroupName(a);return e.matched?(a.backreferenceNames.push(e.data),{matched:!0}):(a.backreferenceNames.push(INVALID_NAMED_BACKREFERENCE_SENTINEL),{matched:!0})}),acceptGroupName=backtrackOnFailure(function(a){if(!a.eat("<"))return{matched:!1};var e=[],s=a.eatIdentifierStart();if(!s)return{matched:!1};e.push(s);for(var o=void 0;o=a.eatIdentifierPart();)e.push(o);return a.eat(">")?{matched:e.length>0,data:e.join("")}:{matched:!1}}),acceptAtomEscape=anyOf(acceptDecimalEscape,acceptCharacterClassEscape,acceptCharacterEscape,acceptGroupNameBackreference),acceptCharacterClass=backtrackOnFailure(function(a){if(!a.eat("["))return{matched:!1};a.eat("^");var e=anyOf(function(k){return{matched:!!k.eat("b"),value:8}},function(k){return{matched:k.unicode&&!!k.eat("-"),value:"-".charCodeAt(0)}},backtrackOnFailure(function(k){if(k.unicode||!k.eat("c"))return{matched:!1};var $=k.eatAny.apply(k,_toConsumableArray$6(decimalDigits).concat(["_"]));return $===null?{matched:!1}:{matched:!0,value:$.charCodeAt(0)%32}}),acceptCharacterClassEscape,acceptCharacterEscape,function(k){return{matched:!k.unicode&&!!k.eat("k"),value:107}}),s=function($){var j=$.nextCodePoint();if(j==="]"||j==="-"||j===null)return{matched:!1};if(j!=="\\")return $.skipCodePoint(),{matched:!0,value:j.codePointAt(0)};$.eat("\\");var _e=e($);return!_e.matched&&$.nextCodePoint()==="c"&&!$.unicode?{matched:!0,value:"\\".charCodeAt(0)}:_e},o=function($){return $.eat("-")?{matched:!0,value:"-".charCodeAt(0)}:s($)},c=function($,j){var _e=function(nt){return nt.value===void 0&&nt.matched};if($.eat("-")){if($.match("]"))return{matched:!0};var et=o($);return et.matched?$.unicode&&(_e(j)||_e(et))?{matched:!1}:!(!$.unicode&&(_e(j)||_e(et)))&&j.value>et.value?{matched:!1}:$.match("]")?{matched:!0}:d($):{matched:!1}}return $.match("]")?{matched:!0}:_($)},d=function($){var j=o($);return j.matched?c($,j):{matched:!1}},_=function($){var j=s($);return j.matched?c($,j):{matched:!1}};if(a.eat("]"))return{matched:!0};var b=d(a);return b.matched&&a.eat("]"),b}),dist$5={};Object.defineProperty(dist$5,"__esModule",{value:!0});function _classCallCheck$g(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}dist$5.ArrayAssignmentTarget=function a(e){var s=e.elements,o=e.rest;_classCallCheck$g(this,a),this.type="ArrayAssignmentTarget",this.elements=s,this.rest=o};dist$5.ArrayBinding=function a(e){var s=e.elements,o=e.rest;_classCallCheck$g(this,a),this.type="ArrayBinding",this.elements=s,this.rest=o};dist$5.ArrayExpression=function a(e){var s=e.elements;_classCallCheck$g(this,a),this.type="ArrayExpression",this.elements=s};dist$5.ArrowExpression=function a(e){var s=e.isAsync,o=e.params,c=e.body;_classCallCheck$g(this,a),this.type="ArrowExpression",this.isAsync=s,this.params=o,this.body=c};dist$5.AssignmentExpression=function a(e){var s=e.binding,o=e.expression;_classCallCheck$g(this,a),this.type="AssignmentExpression",this.binding=s,this.expression=o};dist$5.AssignmentTargetIdentifier=function a(e){var s=e.name;_classCallCheck$g(this,a),this.type="AssignmentTargetIdentifier",this.name=s};dist$5.AssignmentTargetPropertyIdentifier=function a(e){var s=e.binding,o=e.init;_classCallCheck$g(this,a),this.type="AssignmentTargetPropertyIdentifier",this.binding=s,this.init=o};dist$5.AssignmentTargetPropertyProperty=function a(e){var s=e.name,o=e.binding;_classCallCheck$g(this,a),this.type="AssignmentTargetPropertyProperty",this.name=s,this.binding=o};dist$5.AssignmentTargetWithDefault=function a(e){var s=e.binding,o=e.init;_classCallCheck$g(this,a),this.type="AssignmentTargetWithDefault",this.binding=s,this.init=o};dist$5.AwaitExpression=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="AwaitExpression",this.expression=s};dist$5.BinaryExpression=function a(e){var s=e.left,o=e.operator,c=e.right;_classCallCheck$g(this,a),this.type="BinaryExpression",this.left=s,this.operator=o,this.right=c};dist$5.BindingIdentifier=function a(e){var s=e.name;_classCallCheck$g(this,a),this.type="BindingIdentifier",this.name=s};dist$5.BindingPropertyIdentifier=function a(e){var s=e.binding,o=e.init;_classCallCheck$g(this,a),this.type="BindingPropertyIdentifier",this.binding=s,this.init=o};dist$5.BindingPropertyProperty=function a(e){var s=e.name,o=e.binding;_classCallCheck$g(this,a),this.type="BindingPropertyProperty",this.name=s,this.binding=o};dist$5.BindingWithDefault=function a(e){var s=e.binding,o=e.init;_classCallCheck$g(this,a),this.type="BindingWithDefault",this.binding=s,this.init=o};dist$5.Block=function a(e){var s=e.statements;_classCallCheck$g(this,a),this.type="Block",this.statements=s};dist$5.BlockStatement=function a(e){var s=e.block;_classCallCheck$g(this,a),this.type="BlockStatement",this.block=s};dist$5.BreakStatement=function a(e){var s=e.label;_classCallCheck$g(this,a),this.type="BreakStatement",this.label=s};dist$5.CallExpression=function a(e){var s=e.callee,o=e.arguments;_classCallCheck$g(this,a),this.type="CallExpression",this.callee=s,this.arguments=o};dist$5.CatchClause=function a(e){var s=e.binding,o=e.body;_classCallCheck$g(this,a),this.type="CatchClause",this.binding=s,this.body=o};dist$5.ClassDeclaration=function a(e){var s=e.name,o=e.super,c=e.elements;_classCallCheck$g(this,a),this.type="ClassDeclaration",this.name=s,this.super=o,this.elements=c};dist$5.ClassElement=function a(e){var s=e.isStatic,o=e.method;_classCallCheck$g(this,a),this.type="ClassElement",this.isStatic=s,this.method=o};dist$5.ClassExpression=function a(e){var s=e.name,o=e.super,c=e.elements;_classCallCheck$g(this,a),this.type="ClassExpression",this.name=s,this.super=o,this.elements=c};dist$5.CompoundAssignmentExpression=function a(e){var s=e.binding,o=e.operator,c=e.expression;_classCallCheck$g(this,a),this.type="CompoundAssignmentExpression",this.binding=s,this.operator=o,this.expression=c};dist$5.ComputedMemberAssignmentTarget=function a(e){var s=e.object,o=e.expression;_classCallCheck$g(this,a),this.type="ComputedMemberAssignmentTarget",this.object=s,this.expression=o};dist$5.ComputedMemberExpression=function a(e){var s=e.object,o=e.expression;_classCallCheck$g(this,a),this.type="ComputedMemberExpression",this.object=s,this.expression=o};dist$5.ComputedPropertyName=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="ComputedPropertyName",this.expression=s};dist$5.ConditionalExpression=function a(e){var s=e.test,o=e.consequent,c=e.alternate;_classCallCheck$g(this,a),this.type="ConditionalExpression",this.test=s,this.consequent=o,this.alternate=c};dist$5.ContinueStatement=function a(e){var s=e.label;_classCallCheck$g(this,a),this.type="ContinueStatement",this.label=s};dist$5.DataProperty=function a(e){var s=e.name,o=e.expression;_classCallCheck$g(this,a),this.type="DataProperty",this.name=s,this.expression=o};dist$5.DebuggerStatement=function a(){_classCallCheck$g(this,a),this.type="DebuggerStatement"};dist$5.Directive=function a(e){var s=e.rawValue;_classCallCheck$g(this,a),this.type="Directive",this.rawValue=s};dist$5.DoWhileStatement=function a(e){var s=e.body,o=e.test;_classCallCheck$g(this,a),this.type="DoWhileStatement",this.body=s,this.test=o};dist$5.EmptyStatement=function a(){_classCallCheck$g(this,a),this.type="EmptyStatement"};dist$5.Export=function a(e){var s=e.declaration;_classCallCheck$g(this,a),this.type="Export",this.declaration=s};dist$5.ExportAllFrom=function a(e){var s=e.moduleSpecifier;_classCallCheck$g(this,a),this.type="ExportAllFrom",this.moduleSpecifier=s};dist$5.ExportDefault=function a(e){var s=e.body;_classCallCheck$g(this,a),this.type="ExportDefault",this.body=s};dist$5.ExportFrom=function a(e){var s=e.namedExports,o=e.moduleSpecifier;_classCallCheck$g(this,a),this.type="ExportFrom",this.namedExports=s,this.moduleSpecifier=o};dist$5.ExportFromSpecifier=function a(e){var s=e.name,o=e.exportedName;_classCallCheck$g(this,a),this.type="ExportFromSpecifier",this.name=s,this.exportedName=o};dist$5.ExportLocalSpecifier=function a(e){var s=e.name,o=e.exportedName;_classCallCheck$g(this,a),this.type="ExportLocalSpecifier",this.name=s,this.exportedName=o};dist$5.ExportLocals=function a(e){var s=e.namedExports;_classCallCheck$g(this,a),this.type="ExportLocals",this.namedExports=s};dist$5.ExpressionStatement=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="ExpressionStatement",this.expression=s};dist$5.ForAwaitStatement=function a(e){var s=e.left,o=e.right,c=e.body;_classCallCheck$g(this,a),this.type="ForAwaitStatement",this.left=s,this.right=o,this.body=c};dist$5.ForInStatement=function a(e){var s=e.left,o=e.right,c=e.body;_classCallCheck$g(this,a),this.type="ForInStatement",this.left=s,this.right=o,this.body=c};dist$5.ForOfStatement=function a(e){var s=e.left,o=e.right,c=e.body;_classCallCheck$g(this,a),this.type="ForOfStatement",this.left=s,this.right=o,this.body=c};dist$5.ForStatement=function a(e){var s=e.init,o=e.test,c=e.update,d=e.body;_classCallCheck$g(this,a),this.type="ForStatement",this.init=s,this.test=o,this.update=c,this.body=d};dist$5.FormalParameters=function a(e){var s=e.items,o=e.rest;_classCallCheck$g(this,a),this.type="FormalParameters",this.items=s,this.rest=o};dist$5.FunctionBody=function a(e){var s=e.directives,o=e.statements;_classCallCheck$g(this,a),this.type="FunctionBody",this.directives=s,this.statements=o};dist$5.FunctionDeclaration=function a(e){var s=e.isAsync,o=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$g(this,a),this.type="FunctionDeclaration",this.isAsync=s,this.isGenerator=o,this.name=c,this.params=d,this.body=_};dist$5.FunctionExpression=function a(e){var s=e.isAsync,o=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$g(this,a),this.type="FunctionExpression",this.isAsync=s,this.isGenerator=o,this.name=c,this.params=d,this.body=_};dist$5.Getter=function a(e){var s=e.name,o=e.body;_classCallCheck$g(this,a),this.type="Getter",this.name=s,this.body=o};dist$5.IdentifierExpression=function a(e){var s=e.name;_classCallCheck$g(this,a),this.type="IdentifierExpression",this.name=s};dist$5.IfStatement=function a(e){var s=e.test,o=e.consequent,c=e.alternate;_classCallCheck$g(this,a),this.type="IfStatement",this.test=s,this.consequent=o,this.alternate=c};dist$5.Import=function a(e){var s=e.defaultBinding,o=e.namedImports,c=e.moduleSpecifier;_classCallCheck$g(this,a),this.type="Import",this.defaultBinding=s,this.namedImports=o,this.moduleSpecifier=c};dist$5.ImportNamespace=function a(e){var s=e.defaultBinding,o=e.namespaceBinding,c=e.moduleSpecifier;_classCallCheck$g(this,a),this.type="ImportNamespace",this.defaultBinding=s,this.namespaceBinding=o,this.moduleSpecifier=c};dist$5.ImportSpecifier=function a(e){var s=e.name,o=e.binding;_classCallCheck$g(this,a),this.type="ImportSpecifier",this.name=s,this.binding=o};dist$5.LabeledStatement=function a(e){var s=e.label,o=e.body;_classCallCheck$g(this,a),this.type="LabeledStatement",this.label=s,this.body=o};dist$5.LiteralBooleanExpression=function a(e){var s=e.value;_classCallCheck$g(this,a),this.type="LiteralBooleanExpression",this.value=s};dist$5.LiteralInfinityExpression=function a(){_classCallCheck$g(this,a),this.type="LiteralInfinityExpression"};dist$5.LiteralNullExpression=function a(){_classCallCheck$g(this,a),this.type="LiteralNullExpression"};dist$5.LiteralNumericExpression=function a(e){var s=e.value;_classCallCheck$g(this,a),this.type="LiteralNumericExpression",this.value=s};dist$5.LiteralRegExpExpression=function a(e){var s=e.pattern,o=e.global,c=e.ignoreCase,d=e.multiLine,_=e.dotAll,b=e.unicode,k=e.sticky;_classCallCheck$g(this,a),this.type="LiteralRegExpExpression",this.pattern=s,this.global=o,this.ignoreCase=c,this.multiLine=d,this.dotAll=_,this.unicode=b,this.sticky=k};dist$5.LiteralStringExpression=function a(e){var s=e.value;_classCallCheck$g(this,a),this.type="LiteralStringExpression",this.value=s};dist$5.Method=function a(e){var s=e.isAsync,o=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$g(this,a),this.type="Method",this.isAsync=s,this.isGenerator=o,this.name=c,this.params=d,this.body=_};dist$5.Module=function a(e){var s=e.directives,o=e.items;_classCallCheck$g(this,a),this.type="Module",this.directives=s,this.items=o};dist$5.NewExpression=function a(e){var s=e.callee,o=e.arguments;_classCallCheck$g(this,a),this.type="NewExpression",this.callee=s,this.arguments=o};dist$5.NewTargetExpression=function a(){_classCallCheck$g(this,a),this.type="NewTargetExpression"};dist$5.ObjectAssignmentTarget=function a(e){var s=e.properties,o=e.rest;_classCallCheck$g(this,a),this.type="ObjectAssignmentTarget",this.properties=s,this.rest=o};dist$5.ObjectBinding=function a(e){var s=e.properties,o=e.rest;_classCallCheck$g(this,a),this.type="ObjectBinding",this.properties=s,this.rest=o};dist$5.ObjectExpression=function a(e){var s=e.properties;_classCallCheck$g(this,a),this.type="ObjectExpression",this.properties=s};dist$5.ReturnStatement=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="ReturnStatement",this.expression=s};dist$5.Script=function a(e){var s=e.directives,o=e.statements;_classCallCheck$g(this,a),this.type="Script",this.directives=s,this.statements=o};dist$5.Setter=function a(e){var s=e.name,o=e.param,c=e.body;_classCallCheck$g(this,a),this.type="Setter",this.name=s,this.param=o,this.body=c};dist$5.ShorthandProperty=function a(e){var s=e.name;_classCallCheck$g(this,a),this.type="ShorthandProperty",this.name=s};dist$5.SpreadElement=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="SpreadElement",this.expression=s};dist$5.SpreadProperty=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="SpreadProperty",this.expression=s};dist$5.StaticMemberAssignmentTarget=function a(e){var s=e.object,o=e.property;_classCallCheck$g(this,a),this.type="StaticMemberAssignmentTarget",this.object=s,this.property=o};dist$5.StaticMemberExpression=function a(e){var s=e.object,o=e.property;_classCallCheck$g(this,a),this.type="StaticMemberExpression",this.object=s,this.property=o};dist$5.StaticPropertyName=function a(e){var s=e.value;_classCallCheck$g(this,a),this.type="StaticPropertyName",this.value=s};dist$5.Super=function a(){_classCallCheck$g(this,a),this.type="Super"};dist$5.SwitchCase=function a(e){var s=e.test,o=e.consequent;_classCallCheck$g(this,a),this.type="SwitchCase",this.test=s,this.consequent=o};dist$5.SwitchDefault=function a(e){var s=e.consequent;_classCallCheck$g(this,a),this.type="SwitchDefault",this.consequent=s};dist$5.SwitchStatement=function a(e){var s=e.discriminant,o=e.cases;_classCallCheck$g(this,a),this.type="SwitchStatement",this.discriminant=s,this.cases=o};dist$5.SwitchStatementWithDefault=function a(e){var s=e.discriminant,o=e.preDefaultCases,c=e.defaultCase,d=e.postDefaultCases;_classCallCheck$g(this,a),this.type="SwitchStatementWithDefault",this.discriminant=s,this.preDefaultCases=o,this.defaultCase=c,this.postDefaultCases=d};dist$5.TemplateElement=function a(e){var s=e.rawValue;_classCallCheck$g(this,a),this.type="TemplateElement",this.rawValue=s};dist$5.TemplateExpression=function a(e){var s=e.tag,o=e.elements;_classCallCheck$g(this,a),this.type="TemplateExpression",this.tag=s,this.elements=o};dist$5.ThisExpression=function a(){_classCallCheck$g(this,a),this.type="ThisExpression"};dist$5.ThrowStatement=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="ThrowStatement",this.expression=s};dist$5.TryCatchStatement=function a(e){var s=e.body,o=e.catchClause;_classCallCheck$g(this,a),this.type="TryCatchStatement",this.body=s,this.catchClause=o};dist$5.TryFinallyStatement=function a(e){var s=e.body,o=e.catchClause,c=e.finalizer;_classCallCheck$g(this,a),this.type="TryFinallyStatement",this.body=s,this.catchClause=o,this.finalizer=c};dist$5.UnaryExpression=function a(e){var s=e.operator,o=e.operand;_classCallCheck$g(this,a),this.type="UnaryExpression",this.operator=s,this.operand=o};dist$5.UpdateExpression=function a(e){var s=e.isPrefix,o=e.operator,c=e.operand;_classCallCheck$g(this,a),this.type="UpdateExpression",this.isPrefix=s,this.operator=o,this.operand=c};dist$5.VariableDeclaration=function a(e){var s=e.kind,o=e.declarators;_classCallCheck$g(this,a),this.type="VariableDeclaration",this.kind=s,this.declarators=o};dist$5.VariableDeclarationStatement=function a(e){var s=e.declaration;_classCallCheck$g(this,a),this.type="VariableDeclarationStatement",this.declaration=s};dist$5.VariableDeclarator=function a(e){var s=e.binding,o=e.init;_classCallCheck$g(this,a),this.type="VariableDeclarator",this.binding=s,this.init=o};dist$5.WhileStatement=function a(e){var s=e.test,o=e.body;_classCallCheck$g(this,a),this.type="WhileStatement",this.test=s,this.body=o};dist$5.WithStatement=function a(e){var s=e.object,o=e.body;_classCallCheck$g(this,a),this.type="WithStatement",this.object=s,this.body=o};dist$5.YieldExpression=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="YieldExpression",this.expression=s};dist$5.YieldGeneratorExpression=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="YieldGeneratorExpression",this.expression=s};Object.defineProperty(parser$1,"__esModule",{value:!0});parser$1.GenericParser=void 0;var _createClass$c=function(){function a(e,s){for(var o=0;o":Precedence$1.Relational,"<=":Precedence$1.Relational,">=":Precedence$1.Relational,in:Precedence$1.Relational,instanceof:Precedence$1.Relational,"<<":Precedence$1.BitwiseSHIFT,">>":Precedence$1.BitwiseSHIFT,">>>":Precedence$1.BitwiseSHIFT,"+":Precedence$1.Additive,"-":Precedence$1.Additive,"*":Precedence$1.Multiplicative,"%":Precedence$1.Multiplicative,"/":Precedence$1.Multiplicative};function isValidSimpleAssignmentTarget(a){if(a==null)return!1;switch(a.type){case"IdentifierExpression":case"ComputedMemberExpression":case"StaticMemberExpression":return!0}return!1}function isPrefixOperator(a){switch(a.type){case _tokenizer.TokenType.INC:case _tokenizer.TokenType.DEC:case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.BIT_NOT:case _tokenizer.TokenType.NOT:case _tokenizer.TokenType.DELETE:case _tokenizer.TokenType.VOID:case _tokenizer.TokenType.TYPEOF:return!0}return!1}function isUpdateOperator(a){return a.type===_tokenizer.TokenType.INC||a.type===_tokenizer.TokenType.DEC}parser$1.GenericParser=function(a){_inherits$7(e,a);function e(s){_classCallCheck$f(this,e);var o=_possibleConstructorReturn$7(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,s));return o.allowIn=!0,o.inFunctionBody=!1,o.inParameter=!1,o.allowYieldExpression=!1,o.allowAwaitExpression=!1,o.firstAwaitLocation=null,o.module=!1,o.moduleIsTheGoalSymbol=!1,o.strict=!1,o.isBindingElement=!0,o.isAssignmentTarget=!0,o.firstExprError=null,o}return _createClass$c(e,[{key:"match",value:function(o){return this.lookahead.type===o}},{key:"matchIdentifier",value:function(){switch(this.lookahead.type){case _tokenizer.TokenType.IDENTIFIER:case _tokenizer.TokenType.LET:case _tokenizer.TokenType.YIELD:case _tokenizer.TokenType.ASYNC:return!0;case _tokenizer.TokenType.AWAIT:return this.moduleIsTheGoalSymbol?!1:(this.firstAwaitLocation===null&&(this.firstAwaitLocation=this.getLocation()),!0);case _tokenizer.TokenType.ESCAPED_KEYWORD:return this.lookahead.value==="await"&&!this.moduleIsTheGoalSymbol?(this.firstAwaitLocation===null&&(this.firstAwaitLocation=this.getLocation()),!0):this.lookahead.value==="let"||this.lookahead.value==="yield"||this.lookahead.value==="async"}return!1}},{key:"eat",value:function(o){return this.lookahead.type===o?this.lex():null}},{key:"expect",value:function(o){if(this.lookahead.type===o)return this.lex();throw this.createUnexpected(this.lookahead)}},{key:"matchContextualKeyword",value:function(o){return this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===o}},{key:"expectContextualKeyword",value:function(o){if(this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===o)return this.lex();throw this.createUnexpected(this.lookahead)}},{key:"eatContextualKeyword",value:function(o){return this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===o?this.lex():null}},{key:"consumeSemicolon",value:function(){if(!this.eat(_tokenizer.TokenType.SEMICOLON)&&!this.hasLineTerminatorBeforeNext&&!this.eof()&&!this.match(_tokenizer.TokenType.RBRACE))throw this.createUnexpected(this.lookahead)}},{key:"startNode",value:function(o){return o}},{key:"copyNode",value:function(o,c){return c}},{key:"finishNode",value:function(o){return o}},{key:"parseModule",value:function(){this.moduleIsTheGoalSymbol=this.module=this.strict=!0,this.lookahead=this.advance();var o=this.startNode(),c=this.parseBody(),d=c.directives,_=c.statements;if(!this.match(_tokenizer.TokenType.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new AST.Module({directives:d,items:_}),o)}},{key:"parseScript",value:function(){this.lookahead=this.advance();var o=this.startNode(),c=this.parseBody(),d=c.directives,_=c.statements;if(!this.match(_tokenizer.TokenType.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new AST.Script({directives:d,statements:_}),o)}},{key:"parseFunctionBody",value:function(){var o=this.inFunctionBody,c=this.module,d=this.strict;this.inFunctionBody=!0,this.module=!1;var _=this.startNode();this.expect(_tokenizer.TokenType.LBRACE);var b=new AST.FunctionBody(this.parseBody());return this.expect(_tokenizer.TokenType.RBRACE),b=this.finishNode(b,_),this.inFunctionBody=o,this.module=c,this.strict=d,b}},{key:"parseBody",value:function(){for(var o=[],c=[],d=!0,_=null;!(this.eof()||this.match(_tokenizer.TokenType.RBRACE));){var b=this.lookahead,k=b.slice.text,$=b.type===_tokenizer.TokenType.STRING,j=this.module,_e=this.getLocation(),et=this.startNode(),tt=j?this.parseModuleItem():this.parseStatementListItem();if(d)if($&&tt.type==="ExpressionStatement"&&tt.expression.type==="LiteralStringExpression"){!_&&b.octal&&(_=this.createErrorWithLocation(_e,"Unexpected legacy octal escape sequence: \\"+b.octal));var nt=k.slice(1,-1);nt==="use strict"&&(this.strict=!0),o.push(this.finishNode(new AST.Directive({rawValue:nt}),et))}else{if(d=!1,_&&this.strict)throw _;c.push(tt)}else c.push(tt)}if(_&&this.strict)throw _;return{directives:o,statements:c}}},{key:"parseImportSpecifier",value:function(){var o=this.startNode(),c=void 0;if(this.matchIdentifier()){if(c=this.parseIdentifier(),!this.eatContextualKeyword("as"))return this.finishNode(new AST.ImportSpecifier({name:null,binding:this.finishNode(new AST.BindingIdentifier({name:c}),o)}),o)}else this.lookahead.type.klass.isIdentifierName&&(c=this.parseIdentifierName(),this.expectContextualKeyword("as"));return this.finishNode(new AST.ImportSpecifier({name:c,binding:this.parseBindingIdentifier()}),o)}},{key:"parseNameSpaceBinding",value:function(){return this.expect(_tokenizer.TokenType.MUL),this.expectContextualKeyword("as"),this.parseBindingIdentifier()}},{key:"parseNamedImports",value:function(){var o=[];for(this.expect(_tokenizer.TokenType.LBRACE);!this.eat(_tokenizer.TokenType.RBRACE);)if(o.push(this.parseImportSpecifier()),!this.eat(_tokenizer.TokenType.COMMA)){this.expect(_tokenizer.TokenType.RBRACE);break}return o}},{key:"parseFromClause",value:function(){this.expectContextualKeyword("from");var o=this.expect(_tokenizer.TokenType.STRING).str;return o}},{key:"parseImportDeclaration",value:function(){var o=this.startNode(),c=null,d=void 0;if(this.expect(_tokenizer.TokenType.IMPORT),this.match(_tokenizer.TokenType.STRING))return d=this.lex().str,this.consumeSemicolon(),this.finishNode(new AST.Import({defaultBinding:null,namedImports:[],moduleSpecifier:d}),o);if(this.matchIdentifier()&&(c=this.parseBindingIdentifier(),!this.eat(_tokenizer.TokenType.COMMA))){var _=new AST.Import({defaultBinding:c,namedImports:[],moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(_,o)}if(this.match(_tokenizer.TokenType.MUL)){var b=new AST.ImportNamespace({defaultBinding:c,namespaceBinding:this.parseNameSpaceBinding(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(b,o)}else if(this.match(_tokenizer.TokenType.LBRACE)){var k=new AST.Import({defaultBinding:c,namedImports:this.parseNamedImports(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(k,o)}throw this.createUnexpected(this.lookahead)}},{key:"parseExportSpecifier",value:function(){var o=this.startNode(),c=this.finishNode({type:EXPORT_UNKNOWN_SPECIFIER,isIdentifier:this.matchIdentifier(),value:this.parseIdentifierName()},o);if(this.eatContextualKeyword("as")){var d=this.parseIdentifierName();return this.finishNode({name:c,exportedName:d},o)}return this.finishNode({name:c,exportedName:null},o)}},{key:"parseExportClause",value:function(){this.expect(_tokenizer.TokenType.LBRACE);for(var o=[];!this.eat(_tokenizer.TokenType.RBRACE);)if(o.push(this.parseExportSpecifier()),!this.eat(_tokenizer.TokenType.COMMA)){this.expect(_tokenizer.TokenType.RBRACE);break}return o}},{key:"parseExportDeclaration",value:function(){var o=this,c=this.startNode(),d=void 0;switch(this.expect(_tokenizer.TokenType.EXPORT),this.lookahead.type){case _tokenizer.TokenType.MUL:this.lex(),d=new AST.ExportAllFrom({moduleSpecifier:this.parseFromClause()}),this.consumeSemicolon();break;case _tokenizer.TokenType.LBRACE:{var _=this.parseExportClause(),b=null;this.matchContextualKeyword("from")?(b=this.parseFromClause(),d=new AST.ExportFrom({namedExports:_.map(function(_e){return o.copyNode(_e,new AST.ExportFromSpecifier({name:_e.name.value,exportedName:_e.exportedName}))}),moduleSpecifier:b})):(_.forEach(function(_e){var et=_e.name;if(!et.isIdentifier)throw o.createError(_errors$1.ErrorMessages.ILLEGAL_EXPORTED_NAME)}),d=new AST.ExportLocals({namedExports:_.map(function(_e){return o.copyNode(_e,new AST.ExportLocalSpecifier({name:o.copyNode(_e.name,new AST.IdentifierExpression({name:_e.name.value})),exportedName:_e.exportedName}))})})),this.consumeSemicolon();break}case _tokenizer.TokenType.CLASS:d=new AST.Export({declaration:this.parseClass({isExpr:!1,inDefault:!1})});break;case _tokenizer.TokenType.FUNCTION:d=new AST.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1})});break;case _tokenizer.TokenType.ASYNC:{var k=this.startNode();this.lex(),d=new AST.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:k})});break}case _tokenizer.TokenType.DEFAULT:switch(this.lex(),this.lookahead.type){case _tokenizer.TokenType.FUNCTION:d=new AST.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!0,isAsync:!1})});break;case _tokenizer.TokenType.CLASS:d=new AST.ExportDefault({body:this.parseClass({isExpr:!1,inDefault:!0})});break;case _tokenizer.TokenType.ASYNC:{var $=this.startNode(),j=this.saveLexerState();if(this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION)){d=new AST.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!1,isAsync:!0,startState:$})});break}this.restoreLexerState(j)}default:d=new AST.ExportDefault({body:this.parseAssignmentExpression()}),this.consumeSemicolon();break}break;case _tokenizer.TokenType.VAR:case _tokenizer.TokenType.LET:case _tokenizer.TokenType.CONST:d=new AST.Export({declaration:this.parseVariableDeclaration(!0)}),this.consumeSemicolon();break;default:throw this.createUnexpected(this.lookahead)}return this.finishNode(d,c)}},{key:"parseModuleItem",value:function(){switch(this.lookahead.type){case _tokenizer.TokenType.IMPORT:return this.parseImportDeclaration();case _tokenizer.TokenType.EXPORT:return this.parseExportDeclaration();default:return this.parseStatementListItem()}}},{key:"lookaheadLexicalDeclaration",value:function(){if(this.match(_tokenizer.TokenType.LET)||this.match(_tokenizer.TokenType.CONST)){var o=this.saveLexerState();if(this.lex(),this.matchIdentifier()||this.match(_tokenizer.TokenType.LBRACE)||this.match(_tokenizer.TokenType.LBRACK))return this.restoreLexerState(o),!0;this.restoreLexerState(o)}return!1}},{key:"parseStatementListItem",value:function(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case _tokenizer.TokenType.FUNCTION:return this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1});case _tokenizer.TokenType.CLASS:return this.parseClass({isExpr:!1,inDefault:!1});case _tokenizer.TokenType.ASYNC:{var o=this.getLocation(),c=this.saveLexerState();return this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:o}):(this.restoreLexerState(c),this.parseStatement())}default:if(this.lookaheadLexicalDeclaration()){var d=this.startNode();return this.finishNode(this.parseVariableDeclarationStatement(),d)}return this.parseStatement()}}},{key:"parseStatement",value:function(){var o=this.startNode(),c=this.isolateCoverGrammar(this.parseStatementHelper);return this.finishNode(c,o)}},{key:"parseStatementHelper",value:function(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case _tokenizer.TokenType.SEMICOLON:return this.parseEmptyStatement();case _tokenizer.TokenType.LBRACE:return this.parseBlockStatement();case _tokenizer.TokenType.LPAREN:return this.parseExpressionStatement();case _tokenizer.TokenType.BREAK:return this.parseBreakStatement();case _tokenizer.TokenType.CONTINUE:return this.parseContinueStatement();case _tokenizer.TokenType.DEBUGGER:return this.parseDebuggerStatement();case _tokenizer.TokenType.DO:return this.parseDoWhileStatement();case _tokenizer.TokenType.FOR:return this.parseForStatement();case _tokenizer.TokenType.IF:return this.parseIfStatement();case _tokenizer.TokenType.RETURN:return this.parseReturnStatement();case _tokenizer.TokenType.SWITCH:return this.parseSwitchStatement();case _tokenizer.TokenType.THROW:return this.parseThrowStatement();case _tokenizer.TokenType.TRY:return this.parseTryStatement();case _tokenizer.TokenType.VAR:return this.parseVariableDeclarationStatement();case _tokenizer.TokenType.WHILE:return this.parseWhileStatement();case _tokenizer.TokenType.WITH:return this.parseWithStatement();case _tokenizer.TokenType.FUNCTION:case _tokenizer.TokenType.CLASS:throw this.createUnexpected(this.lookahead);default:{var o=this.saveLexerState();if(this.eat(_tokenizer.TokenType.LET)){if(this.match(_tokenizer.TokenType.LBRACK))throw this.restoreLexerState(o),this.createUnexpected(this.lookahead);this.restoreLexerState(o)}else if(this.eat(_tokenizer.TokenType.ASYNC)){if(!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION))throw this.createUnexpected(this.lookahead);this.restoreLexerState(o)}var c=this.parseExpression();if(c.type==="IdentifierExpression"&&this.eat(_tokenizer.TokenType.COLON)){var d=this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement();return new AST.LabeledStatement({label:c.name,body:d})}return this.consumeSemicolon(),new AST.ExpressionStatement({expression:c})}}}},{key:"parseEmptyStatement",value:function(){return this.lex(),new AST.EmptyStatement}},{key:"parseBlockStatement",value:function(){return new AST.BlockStatement({block:this.parseBlock()})}},{key:"parseExpressionStatement",value:function(){var o=this.parseExpression();return this.consumeSemicolon(),new AST.ExpressionStatement({expression:o})}},{key:"parseBreakStatement",value:function(){if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.BreakStatement({label:null});var o=null;return this.matchIdentifier()&&(o=this.parseIdentifier()),this.consumeSemicolon(),new AST.BreakStatement({label:o})}},{key:"parseContinueStatement",value:function(){if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.ContinueStatement({label:null});var o=null;return this.matchIdentifier()&&(o=this.parseIdentifier()),this.consumeSemicolon(),new AST.ContinueStatement({label:o})}},{key:"parseDebuggerStatement",value:function(){return this.lex(),this.consumeSemicolon(),new AST.DebuggerStatement}},{key:"parseDoWhileStatement",value:function(){this.lex();var o=this.parseStatement();this.expect(_tokenizer.TokenType.WHILE),this.expect(_tokenizer.TokenType.LPAREN);var c=this.parseExpression();return this.expect(_tokenizer.TokenType.RPAREN),this.eat(_tokenizer.TokenType.SEMICOLON),new AST.DoWhileStatement({body:o,test:c})}},{key:"parseForStatement",value:function(){this.lex();var o=this.allowAwaitExpression&&this.eat(_tokenizer.TokenType.AWAIT);this.expect(_tokenizer.TokenType.LPAREN);var c=null,d=null;if(o&&this.match(_tokenizer.TokenType.SEMICOLON))throw this.createUnexpected(this.lookahead);if(this.eat(_tokenizer.TokenType.SEMICOLON))return this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(d=this.parseExpression()),new AST.ForStatement({init:null,test:c,update:d,body:this.getIteratorStatementEpilogue()});var _=this.match(_tokenizer.TokenType.LET),b=this.lookaheadLexicalDeclaration(),k=this.startNode();if(this.match(_tokenizer.TokenType.VAR)||b){var $=this.allowIn;this.allowIn=!1;var j=this.parseVariableDeclaration(!1);if(this.allowIn=$,j.declarators.length===1&&(this.match(_tokenizer.TokenType.IN)||this.matchContextualKeyword("of"))){var _e=void 0,et=j.declarators[0];if(this.match(_tokenizer.TokenType.IN)){if(o)throw this.createUnexpected(this.lookahead);if(et.init!==null&&(this.strict||j.kind!=="var"||et.binding.type!=="BindingIdentifier"))throw this.createError(_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_IN);_e=AST.ForInStatement,this.lex(),d=this.parseExpression()}else{if(et.init!==null)throw this.createError(o?_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_AWAIT:_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_OF);o?_e=AST.ForAwaitStatement:_e=AST.ForOfStatement,this.lex(),d=this.parseAssignmentExpression()}var tt=this.getIteratorStatementEpilogue();return new _e({left:j,right:d,body:tt})}else if(o)throw this.createUnexpected(this.lookahead);if(this.expect(_tokenizer.TokenType.SEMICOLON),j.declarators.some(function(ot){return ot.binding.type!=="BindingIdentifier"&&ot.init===null}))throw this.createError(_errors$1.ErrorMessages.UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT);return this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(d=this.parseExpression()),new AST.ForStatement({init:j,test:c,update:d,body:this.getIteratorStatementEpilogue()})}var nt=this.allowIn;this.allowIn=!1;var it=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget);if(this.allowIn=nt,this.isAssignmentTarget&&it.type!=="AssignmentExpression"&&(this.match(_tokenizer.TokenType.IN)||this.matchContextualKeyword("of"))){if((it.type==="ObjectAssignmentTarget"||it.type==="ArrayAssignmentTarget")&&(this.firstExprError=null),_&&this.matchContextualKeyword("of"))throw this.createError(o?_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_AWAIT:_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_OF);var rt=void 0;if(this.match(_tokenizer.TokenType.IN)){if(o)throw this.createUnexpected(this.lookahead);rt=AST.ForInStatement,this.lex(),d=this.parseExpression()}else o?rt=AST.ForAwaitStatement:rt=AST.ForOfStatement,this.lex(),d=this.parseAssignmentExpression();return new rt({left:this.transformDestructuring(it),right:d,body:this.getIteratorStatementEpilogue()})}else if(o)throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_AWAIT);if(this.firstExprError)throw this.firstExprError;for(;this.eat(_tokenizer.TokenType.COMMA);){var st=this.parseAssignmentExpression();it=this.finishNode(new AST.BinaryExpression({left:it,operator:",",right:st}),k)}if(this.match(_tokenizer.TokenType.IN))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_IN);if(this.matchContextualKeyword("of"))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_OF);return this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(d=this.parseExpression()),new AST.ForStatement({init:it,test:c,update:d,body:this.getIteratorStatementEpilogue()})}},{key:"getIteratorStatementEpilogue",value:function(){this.expect(_tokenizer.TokenType.RPAREN);var o=this.parseStatement();return o}},{key:"parseIfStatementChild",value:function(){return this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement()}},{key:"parseIfStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var o=this.parseExpression();this.expect(_tokenizer.TokenType.RPAREN);var c=this.parseIfStatementChild(),d=null;return this.eat(_tokenizer.TokenType.ELSE)&&(d=this.parseIfStatementChild()),new AST.IfStatement({test:o,consequent:c,alternate:d})}},{key:"parseReturnStatement",value:function(){if(!this.inFunctionBody)throw this.createError(_errors$1.ErrorMessages.ILLEGAL_RETURN);if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.ReturnStatement({expression:null});var o=null;return!this.match(_tokenizer.TokenType.RBRACE)&&!this.eof()&&(o=this.parseExpression()),this.consumeSemicolon(),new AST.ReturnStatement({expression:o})}},{key:"parseSwitchStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var o=this.parseExpression();if(this.expect(_tokenizer.TokenType.RPAREN),this.expect(_tokenizer.TokenType.LBRACE),this.eat(_tokenizer.TokenType.RBRACE))return new AST.SwitchStatement({discriminant:o,cases:[]});var c=this.parseSwitchCases();if(this.match(_tokenizer.TokenType.DEFAULT)){var d=this.parseSwitchDefault(),_=this.parseSwitchCases();if(this.match(_tokenizer.TokenType.DEFAULT))throw this.createError(_errors$1.ErrorMessages.MULTIPLE_DEFAULTS_IN_SWITCH);return this.expect(_tokenizer.TokenType.RBRACE),new AST.SwitchStatementWithDefault({discriminant:o,preDefaultCases:c,defaultCase:d,postDefaultCases:_})}return this.expect(_tokenizer.TokenType.RBRACE),new AST.SwitchStatement({discriminant:o,cases:c})}},{key:"parseSwitchCases",value:function(){for(var o=[];!(this.eof()||this.match(_tokenizer.TokenType.RBRACE)||this.match(_tokenizer.TokenType.DEFAULT));)o.push(this.parseSwitchCase());return o}},{key:"parseSwitchCase",value:function(){var o=this.startNode();return this.expect(_tokenizer.TokenType.CASE),this.finishNode(new AST.SwitchCase({test:this.parseExpression(),consequent:this.parseSwitchCaseBody()}),o)}},{key:"parseSwitchDefault",value:function(){var o=this.startNode();return this.expect(_tokenizer.TokenType.DEFAULT),this.finishNode(new AST.SwitchDefault({consequent:this.parseSwitchCaseBody()}),o)}},{key:"parseSwitchCaseBody",value:function(){return this.expect(_tokenizer.TokenType.COLON),this.parseStatementListInSwitchCaseBody()}},{key:"parseStatementListInSwitchCaseBody",value:function(){for(var o=[];!(this.eof()||this.match(_tokenizer.TokenType.RBRACE)||this.match(_tokenizer.TokenType.DEFAULT)||this.match(_tokenizer.TokenType.CASE));)o.push(this.parseStatementListItem());return o}},{key:"parseThrowStatement",value:function(){var o=this.lex();if(this.hasLineTerminatorBeforeNext)throw this.createErrorWithLocation(o,_errors$1.ErrorMessages.NEWLINE_AFTER_THROW);var c=this.parseExpression();return this.consumeSemicolon(),new AST.ThrowStatement({expression:c})}},{key:"parseTryStatement",value:function(){this.lex();var o=this.parseBlock();if(this.match(_tokenizer.TokenType.CATCH)){var c=this.parseCatchClause();if(this.eat(_tokenizer.TokenType.FINALLY)){var d=this.parseBlock();return new AST.TryFinallyStatement({body:o,catchClause:c,finalizer:d})}return new AST.TryCatchStatement({body:o,catchClause:c})}if(this.eat(_tokenizer.TokenType.FINALLY)){var _=this.parseBlock();return new AST.TryFinallyStatement({body:o,catchClause:null,finalizer:_})}throw this.createError(_errors$1.ErrorMessages.NO_CATCH_OR_FINALLY)}},{key:"parseVariableDeclarationStatement",value:function(){var o=this.parseVariableDeclaration(!0);return this.consumeSemicolon(),new AST.VariableDeclarationStatement({declaration:o})}},{key:"parseWhileStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var o=this.parseExpression(),c=this.getIteratorStatementEpilogue();return new AST.WhileStatement({test:o,body:c})}},{key:"parseWithStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var o=this.parseExpression();this.expect(_tokenizer.TokenType.RPAREN);var c=this.parseStatement();return new AST.WithStatement({object:o,body:c})}},{key:"parseCatchClause",value:function(){var o=this.startNode();if(this.lex(),this.expect(_tokenizer.TokenType.LPAREN),this.match(_tokenizer.TokenType.RPAREN)||this.match(_tokenizer.TokenType.LPAREN))throw this.createUnexpected(this.lookahead);var c=this.parseBindingTarget();this.expect(_tokenizer.TokenType.RPAREN);var d=this.parseBlock();return this.finishNode(new AST.CatchClause({binding:c,body:d}),o)}},{key:"parseBlock",value:function(){var o=this.startNode();this.expect(_tokenizer.TokenType.LBRACE);for(var c=[];!this.match(_tokenizer.TokenType.RBRACE);)c.push(this.parseStatementListItem());return this.expect(_tokenizer.TokenType.RBRACE),this.finishNode(new AST.Block({statements:c}),o)}},{key:"parseVariableDeclaration",value:function(o){var c=this.startNode(),d=this.lex(),_=d.type===_tokenizer.TokenType.VAR?"var":d.type===_tokenizer.TokenType.CONST?"const":"let",b=this.parseVariableDeclaratorList(o);return this.finishNode(new AST.VariableDeclaration({kind:_,declarators:b}),c)}},{key:"parseVariableDeclaratorList",value:function(o){var c=[];do c.push(this.parseVariableDeclarator(o));while(this.eat(_tokenizer.TokenType.COMMA));return c}},{key:"parseVariableDeclarator",value:function(o){var c=this.startNode();if(this.match(_tokenizer.TokenType.LPAREN))throw this.createUnexpected(this.lookahead);var d=this.allowIn;this.allowIn=!0;var _=this.parseBindingTarget();this.allowIn=d,o&&_.type!=="BindingIdentifier"&&!this.match(_tokenizer.TokenType.ASSIGN)&&this.expect(_tokenizer.TokenType.ASSIGN);var b=null;return this.eat(_tokenizer.TokenType.ASSIGN)&&(b=this.parseAssignmentExpression()),this.finishNode(new AST.VariableDeclarator({binding:_,init:b}),c)}},{key:"isolateCoverGrammar",value:function(o){var c=this.isBindingElement,d=this.isAssignmentTarget,_=this.firstExprError,b=void 0;if(this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,b=o.call(this),this.firstExprError!==null)throw this.firstExprError;return this.isBindingElement=c,this.isAssignmentTarget=d,this.firstExprError=_,b}},{key:"inheritCoverGrammar",value:function(o){var c=this.isBindingElement,d=this.isAssignmentTarget,_=this.firstExprError,b=void 0;return this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,b=o.call(this),this.isBindingElement=this.isBindingElement&&c,this.isAssignmentTarget=this.isAssignmentTarget&&d,this.firstExprError=_||this.firstExprError,b}},{key:"parseExpression",value:function(){var o=this.startNode(),c=this.parseAssignmentExpression();if(this.match(_tokenizer.TokenType.COMMA))for(;!this.eof()&&this.match(_tokenizer.TokenType.COMMA);){this.lex();var d=this.parseAssignmentExpression();c=this.finishNode(new AST.BinaryExpression({left:c,operator:",",right:d}),o)}return c}},{key:"finishArrowParams",value:function(o){var c=o.params,d=c===void 0?null:c,_=o.rest,b=_===void 0?null:_;if(o.type!==ARROW_EXPRESSION_PARAMS)if(o.type==="IdentifierExpression")d=[this.targetToBinding(this.transformDestructuring(o))];else throw this.createUnexpected(this.lookahead);return this.copyNode(o,new AST.FormalParameters({items:d,rest:b}))}},{key:"parseArrowExpressionTail",value:function(o,c,d){this.expect(_tokenizer.TokenType.ARROW);var _=this.allowYieldExpression,b=this.allowAwaitExpression,k=this.firstAwaitLocation;this.allowYieldExpression=!1,this.allowAwaitExpression=c,this.firstAwaitLocation=null;var $=void 0;if(this.match(_tokenizer.TokenType.LBRACE)){var j=this.allowIn;this.allowIn=!0,$=this.parseFunctionBody(),this.allowIn=j}else $=this.parseAssignmentExpression();return this.allowYieldExpression=_,this.allowAwaitExpression=b,this.firstAwaitLocation=k,this.finishNode(new AST.ArrowExpression({isAsync:c,params:o,body:$}),d)}},{key:"parseAssignmentExpression",value:function(){return this.isolateCoverGrammar(this.parseAssignmentExpressionOrTarget)}},{key:"parseAssignmentExpressionOrTarget",value:function(){var o=this.startNode();if(this.allowYieldExpression&&this.match(_tokenizer.TokenType.YIELD))return this.isBindingElement=this.isAssignmentTarget=!1,this.parseYieldExpression();var c=this.parseConditionalExpression();if(!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.ARROW)){this.isBindingElement=this.isAssignmentTarget=!1,this.firstExprError=null;var d=c.type===ARROW_EXPRESSION_PARAMS&&c.isAsync;return this.parseArrowExpressionTail(this.finishArrowParams(c),d,o)}var _=!1,b=this.lookahead;switch(b.type){case _tokenizer.TokenType.ASSIGN_BIT_OR:case _tokenizer.TokenType.ASSIGN_BIT_XOR:case _tokenizer.TokenType.ASSIGN_BIT_AND:case _tokenizer.TokenType.ASSIGN_SHL:case _tokenizer.TokenType.ASSIGN_SHR:case _tokenizer.TokenType.ASSIGN_SHR_UNSIGNED:case _tokenizer.TokenType.ASSIGN_ADD:case _tokenizer.TokenType.ASSIGN_SUB:case _tokenizer.TokenType.ASSIGN_MUL:case _tokenizer.TokenType.ASSIGN_DIV:case _tokenizer.TokenType.ASSIGN_MOD:case _tokenizer.TokenType.ASSIGN_EXP:_=!0;break}if(_){if(!this.isAssignmentTarget||!isValidSimpleAssignmentTarget(c))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_ASSIGNMENT);c=this.transformDestructuring(c)}else if(b.type===_tokenizer.TokenType.ASSIGN){if(!this.isAssignmentTarget)throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_ASSIGNMENT);c=this.transformDestructuring(c)}else return c;this.lex();var k=this.parseAssignmentExpression();this.firstExprError=null;var $=void 0;return b.type===_tokenizer.TokenType.ASSIGN?$=new AST.AssignmentExpression({binding:c,expression:k}):($=new AST.CompoundAssignmentExpression({binding:c,operator:b.type.name,expression:k}),this.isBindingElement=this.isAssignmentTarget=!1),this.finishNode($,o)}},{key:"targetToBinding",value:function(o){var c=this;if(o===null)return null;switch(o.type){case"AssignmentTargetIdentifier":return this.copyNode(o,new AST.BindingIdentifier({name:o.name}));case"ArrayAssignmentTarget":return this.copyNode(o,new AST.ArrayBinding({elements:o.elements.map(function(d){return c.targetToBinding(d)}),rest:this.targetToBinding(o.rest)}));case"ObjectAssignmentTarget":return this.copyNode(o,new AST.ObjectBinding({properties:o.properties.map(function(d){return c.targetToBinding(d)}),rest:this.targetToBinding(o.rest)}));case"AssignmentTargetPropertyIdentifier":return this.copyNode(o,new AST.BindingPropertyIdentifier({binding:this.targetToBinding(o.binding),init:o.init}));case"AssignmentTargetPropertyProperty":return this.copyNode(o,new AST.BindingPropertyProperty({name:o.name,binding:this.targetToBinding(o.binding)}));case"AssignmentTargetWithDefault":return this.copyNode(o,new AST.BindingWithDefault({binding:this.targetToBinding(o.binding),init:o.init}))}throw new Error("Not reached")}},{key:"transformDestructuring",value:function(o){var c=this;switch(o.type){case"DataProperty":return this.copyNode(o,new AST.AssignmentTargetPropertyProperty({name:o.name,binding:this.transformDestructuringWithDefault(o.expression)}));case"ShorthandProperty":return this.copyNode(o,new AST.AssignmentTargetPropertyIdentifier({binding:this.copyNode(o,new AST.AssignmentTargetIdentifier({name:o.name.name})),init:null}));case"ObjectExpression":{var d=o.properties.length>0?o.properties[o.properties.length-1]:void 0;return d!=null&&d.type==="SpreadProperty"?this.copyNode(o,new AST.ObjectAssignmentTarget({properties:o.properties.slice(0,-1).map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:this.transformDestructuring(d.expression)})):this.copyNode(o,new AST.ObjectAssignmentTarget({properties:o.properties.map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:null}))}case"ArrayExpression":{var _=o.elements[o.elements.length-1];return _!=null&&_.type==="SpreadElement"?this.copyNode(o,new AST.ArrayAssignmentTarget({elements:o.elements.slice(0,-1).map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:this.copyNode(_.expression,this.transformDestructuring(_.expression))})):this.copyNode(o,new AST.ArrayAssignmentTarget({elements:o.elements.map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:null}))}case"IdentifierExpression":return this.copyNode(o,new AST.AssignmentTargetIdentifier({name:o.name}));case"StaticPropertyName":return this.copyNode(o,new AST.AssignmentTargetIdentifier({name:o.value}));case"ComputedMemberExpression":return this.copyNode(o,new AST.ComputedMemberAssignmentTarget({object:o.object,expression:o.expression}));case"StaticMemberExpression":return this.copyNode(o,new AST.StaticMemberAssignmentTarget({object:o.object,property:o.property}));case"ArrayAssignmentTarget":case"ObjectAssignmentTarget":case"ComputedMemberAssignmentTarget":case"StaticMemberAssignmentTarget":case"AssignmentTargetIdentifier":case"AssignmentTargetPropertyIdentifier":case"AssignmentTargetPropertyProperty":case"AssignmentTargetWithDefault":return o}throw new Error("Not reached")}},{key:"transformDestructuringWithDefault",value:function(o){switch(o.type){case"AssignmentExpression":return this.copyNode(o,new AST.AssignmentTargetWithDefault({binding:this.transformDestructuring(o.binding),init:o.expression}))}return this.transformDestructuring(o)}},{key:"lookaheadAssignmentExpression",value:function(){if(this.matchIdentifier())return!0;switch(this.lookahead.type){case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.ASSIGN_DIV:case _tokenizer.TokenType.BIT_NOT:case _tokenizer.TokenType.CLASS:case _tokenizer.TokenType.DEC:case _tokenizer.TokenType.DELETE:case _tokenizer.TokenType.DIV:case _tokenizer.TokenType.FALSE:case _tokenizer.TokenType.FUNCTION:case _tokenizer.TokenType.INC:case _tokenizer.TokenType.LBRACE:case _tokenizer.TokenType.LBRACK:case _tokenizer.TokenType.LPAREN:case _tokenizer.TokenType.NEW:case _tokenizer.TokenType.NOT:case _tokenizer.TokenType.NULL:case _tokenizer.TokenType.NUMBER:case _tokenizer.TokenType.STRING:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.SUPER:case _tokenizer.TokenType.THIS:case _tokenizer.TokenType.TRUE:case _tokenizer.TokenType.TYPEOF:case _tokenizer.TokenType.VOID:case _tokenizer.TokenType.TEMPLATE:return!0}return!1}},{key:"parseYieldExpression",value:function(){var o=this.startNode();if(this.lex(),this.hasLineTerminatorBeforeNext)return this.finishNode(new AST.YieldExpression({expression:null}),o);var c=!!this.eat(_tokenizer.TokenType.MUL),d=null;(c||this.lookaheadAssignmentExpression())&&(d=this.parseAssignmentExpression());var _=c?AST.YieldGeneratorExpression:AST.YieldExpression;return this.finishNode(new _({expression:d}),o)}},{key:"parseConditionalExpression",value:function(){var o=this.startNode(),c=this.parseBinaryExpression();if(this.firstExprError)return c;if(this.eat(_tokenizer.TokenType.CONDITIONAL)){this.isBindingElement=this.isAssignmentTarget=!1;var d=this.allowIn;this.allowIn=!0;var _=this.isolateCoverGrammar(this.parseAssignmentExpression);this.allowIn=d,this.expect(_tokenizer.TokenType.COLON);var b=this.isolateCoverGrammar(this.parseAssignmentExpression);return this.finishNode(new AST.ConditionalExpression({test:c,consequent:_,alternate:b}),o)}return c}},{key:"isBinaryOperator",value:function(o){switch(o){case _tokenizer.TokenType.OR:case _tokenizer.TokenType.AND:case _tokenizer.TokenType.BIT_OR:case _tokenizer.TokenType.BIT_XOR:case _tokenizer.TokenType.BIT_AND:case _tokenizer.TokenType.EQ:case _tokenizer.TokenType.NE:case _tokenizer.TokenType.EQ_STRICT:case _tokenizer.TokenType.NE_STRICT:case _tokenizer.TokenType.LT:case _tokenizer.TokenType.GT:case _tokenizer.TokenType.LTE:case _tokenizer.TokenType.GTE:case _tokenizer.TokenType.INSTANCEOF:case _tokenizer.TokenType.SHL:case _tokenizer.TokenType.SHR:case _tokenizer.TokenType.SHR_UNSIGNED:case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.MUL:case _tokenizer.TokenType.DIV:case _tokenizer.TokenType.MOD:return!0;case _tokenizer.TokenType.IN:return this.allowIn;default:return!1}}},{key:"parseBinaryExpression",value:function(){var o=this,c=this.startNode(),d=this.parseExponentiationExpression();if(this.firstExprError)return d;var _=this.lookahead.type;if(!this.isBinaryOperator(_))return d;this.isBindingElement=this.isAssignmentTarget=!1,this.lex();var b=[];b.push({startState:c,left:d,operator:_,precedence:BinaryPrecedence$1[_.name]}),c=this.startNode();var k=this.isolateCoverGrammar(this.parseExponentiationExpression);for(_=this.lookahead.type;this.isBinaryOperator(_);){for(var $=BinaryPrecedence$1[_.name];b.length&&$<=b[b.length-1].precedence;){var j=b[b.length-1],_e=j.operator;d=j.left,b.pop(),c=j.startState,k=this.finishNode(new AST.BinaryExpression({left:d,operator:_e.name,right:k}),c)}this.lex(),b.push({startState:c,left:k,operator:_,precedence:$}),c=this.startNode(),k=this.isolateCoverGrammar(this.parseExponentiationExpression),_=this.lookahead.type}return b.reduceRight(function(et,tt){return o.finishNode(new AST.BinaryExpression({left:tt.left,operator:tt.operator.name,right:et}),tt.startState)},k)}},{key:"parseExponentiationExpression",value:function(){var o=this.startNode(),c=this.lookahead.type===_tokenizer.TokenType.LPAREN,d=this.parseUnaryExpression();if(this.lookahead.type!==_tokenizer.TokenType.EXP)return d;if(d.type==="UnaryExpression"&&!c)throw this.createError(_errors$1.ErrorMessages.INVALID_EXPONENTIATION_LHS);this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;var _=this.isolateCoverGrammar(this.parseExponentiationExpression);return this.finishNode(new AST.BinaryExpression({left:d,operator:"**",right:_}),o)}},{key:"parseUnaryExpression",value:function(){if(this.lookahead.type.klass!==_tokenizer.TokenClass.Punctuator&&this.lookahead.type.klass!==_tokenizer.TokenClass.Keyword)return this.parseUpdateExpression();var o=this.startNode();if(this.allowAwaitExpression&&this.eat(_tokenizer.TokenType.AWAIT)){this.isBindingElement=this.isAssignmentTarget=!1;var c=this.isolateCoverGrammar(this.parseUnaryExpression);return this.finishNode(new AST.AwaitExpression({expression:c}),o)}var d=this.lookahead;if(!isPrefixOperator(d))return this.parseUpdateExpression();this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;var _=void 0;if(isUpdateOperator(d)){var b=this.getLocation(),k=this.isolateCoverGrammar(this.parseUnaryExpression);if(!isValidSimpleAssignmentTarget(k))throw this.createErrorWithLocation(b,_errors$1.ErrorMessages.INVALID_UPDATE_OPERAND);k=this.transformDestructuring(k),_=new AST.UpdateExpression({isPrefix:!0,operator:d.value,operand:k})}else{var $=this.isolateCoverGrammar(this.parseUnaryExpression);_=new AST.UnaryExpression({operator:d.value,operand:$})}return this.finishNode(_,o)}},{key:"parseUpdateExpression",value:function(){var o=this.getLocation(),c=this.startNode(),d=this.parseLeftHandSideExpression({allowCall:!0});if(this.firstExprError||this.hasLineTerminatorBeforeNext)return d;var _=this.lookahead;if(!isUpdateOperator(_))return d;if(this.lex(),this.isBindingElement=this.isAssignmentTarget=!1,!isValidSimpleAssignmentTarget(d))throw this.createErrorWithLocation(o,_errors$1.ErrorMessages.INVALID_UPDATE_OPERAND);return d=this.transformDestructuring(d),this.finishNode(new AST.UpdateExpression({isPrefix:!1,operator:_.value,operand:d}),c)}},{key:"parseLeftHandSideExpression",value:function(o){var c=this,d=o.allowCall,_=this.startNode(),b=this.allowIn;this.allowIn=!0;var k=void 0,$=this.lookahead;if(this.eat(_tokenizer.TokenType.SUPER))if(this.isBindingElement=!1,this.isAssignmentTarget=!1,k=this.finishNode(new AST.Super,_),this.match(_tokenizer.TokenType.LPAREN))if(d)k=this.finishNode(new AST.CallExpression({callee:k,arguments:this.parseArgumentList().args}),_);else throw this.createUnexpected($);else if(this.match(_tokenizer.TokenType.LBRACK))k=this.finishNode(new AST.ComputedMemberExpression({object:k,expression:this.parseComputedMember()}),_),this.isAssignmentTarget=!0;else if(this.match(_tokenizer.TokenType.PERIOD))k=this.finishNode(new AST.StaticMemberExpression({object:k,property:this.parseStaticMember()}),_),this.isAssignmentTarget=!0;else throw this.createUnexpected($);else if(this.match(_tokenizer.TokenType.NEW))this.isBindingElement=this.isAssignmentTarget=!1,k=this.parseNewExpression();else if(this.match(_tokenizer.TokenType.ASYNC)){if(k=this.parsePrimaryExpression(),k.type==="IdentifierExpression"&&d&&!this.hasLineTerminatorBeforeNext){if(this.matchIdentifier()){var j=this.startNode(),_e=this.allowAwaitExpression;this.allowAwaitExpression=!0;var et=this.parseBindingIdentifier();return this.allowAwaitExpression=_e,this.ensureArrow(),this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:[et],rest:null,isAsync:!0},j)}if(this.match(_tokenizer.TokenType.LPAREN)){var tt=this.startNode(),nt=this.firstAwaitLocation;this.firstAwaitLocation=null;var it=this.parseArgumentList(),rt=it.args,st=it.locationFollowingFirstSpread;if(this.isBindingElement&&!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.ARROW)){if(st!==null)throw this.createErrorWithLocation(st,_errors$1.ErrorMessages.UNEXPECTED_TOKEN(","));if(this.firstAwaitLocation!==null)throw this.createErrorWithLocation(this.firstAwaitLocation,_errors$1.ErrorMessages.NO_AWAIT_IN_ASYNC_PARAMS);var ot=null;if(rt.length>0&&rt[rt.length-1].type==="SpreadElement"){if(ot=this.targetToBinding(this.transformDestructuringWithDefault(rt[rt.length-1].expression)),ot.init!=null)throw this.createError(_errors$1.ErrorMessages.UNEXPECTED_REST_PARAMETERS_INITIALIZATION);rt=rt.slice(0,-1)}var at=rt.map(function(ht){return c.targetToBinding(c.transformDestructuringWithDefault(ht))});return this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:at,rest:ot,isAsync:!0},tt)}this.firstAwaitLocation=nt||this.firstAwaitLocation,this.isBindingElement=this.isAssignmentTarget=!1,k=this.finishNode(new AST.CallExpression({callee:k,arguments:rt}),_)}}}else if(k=this.parsePrimaryExpression(),this.firstExprError)return k;for(;;)if(d&&this.match(_tokenizer.TokenType.LPAREN))this.isBindingElement=this.isAssignmentTarget=!1,k=this.finishNode(new AST.CallExpression({callee:k,arguments:this.parseArgumentList().args}),_);else if(this.match(_tokenizer.TokenType.LBRACK))this.isBindingElement=!1,this.isAssignmentTarget=!0,k=this.finishNode(new AST.ComputedMemberExpression({object:k,expression:this.parseComputedMember()}),_);else if(this.match(_tokenizer.TokenType.PERIOD))this.isBindingElement=!1,this.isAssignmentTarget=!0,k=this.finishNode(new AST.StaticMemberExpression({object:k,property:this.parseStaticMember()}),_);else if(this.match(_tokenizer.TokenType.TEMPLATE))this.isBindingElement=this.isAssignmentTarget=!1,k=this.finishNode(new AST.TemplateExpression({tag:k,elements:this.parseTemplateElements()}),_);else break;return this.allowIn=b,k}},{key:"parseTemplateElements",value:function(){var o=this.startNode(),c=this.lookahead;if(c.tail)return this.lex(),[this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-1)}),o)];for(var d=[this.finishNode(new AST.TemplateElement({rawValue:this.lex().slice.text.slice(1,-2)}),o)];;){if(d.push(this.parseExpression()),!this.match(_tokenizer.TokenType.RBRACE))throw this.createILLEGAL();if(this.index=this.startIndex,this.line=this.startLine,this.lineStart=this.startLineStart,this.lookahead=this.scanTemplateElement(),o=this.startNode(),c=this.lex(),c.tail)return d.push(this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-1)}),o)),d;d.push(this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-2)}),o))}}},{key:"parseStaticMember",value:function(){if(this.lex(),this.lookahead.type.klass.isIdentifierName)return this.lex().value;throw this.createUnexpected(this.lookahead)}},{key:"parseComputedMember",value:function(){this.lex();var o=this.parseExpression();return this.expect(_tokenizer.TokenType.RBRACK),o}},{key:"parseNewExpression",value:function(){var o=this,c=this.startNode();if(this.lex(),this.eat(_tokenizer.TokenType.PERIOD))return this.expectContextualKeyword("target"),this.finishNode(new AST.NewTargetExpression,c);var d=this.isolateCoverGrammar(function(){return o.parseLeftHandSideExpression({allowCall:!1})});return this.finishNode(new AST.NewExpression({callee:d,arguments:this.match(_tokenizer.TokenType.LPAREN)?this.parseArgumentList().args:[]}),c)}},{key:"parseRegexFlags",value:function(o){for(var c=!1,d=!1,_=!1,b=!1,k=!1,$=!1,j=0;j1?e-1:0),o=1;o1&&c.slice(1).forEach(function(d){o.addError(s(d))})}),this}},{key:"enforceConflictingLexicallyDeclaredNames",value:function(s,o){var c=this;return this.lexicallyDeclaredNames.forEachEntry(function(d,_){s.has(_)&&d.forEach(function(b){c.addError(o(b))})}),this}},{key:"observeFunctionDeclaration",value:function(){return this.observeVarBoundary(),addEach(this.functionDeclarationNames,this.boundNames),this.boundNames=new _multimap2.default,this}},{key:"functionDeclarationNamesAreLexical",value:function(){return addEach(this.lexicallyDeclaredNames,this.functionDeclarationNames),this.functionDeclarationNames=new _multimap2.default,this}},{key:"observeVarDeclaration",value:function(){return addEach(this.varDeclaredNames,this.boundNames),this.boundNames=new _multimap2.default,this}},{key:"recordForOfVars",value:function(){var s=this;return this.varDeclaredNames.forEach(function(o){s.forOfVarDeclaredNames.push(o)}),this}},{key:"observeVarBoundary",value:function(){return this.lexicallyDeclaredNames=new _multimap2.default,this.functionDeclarationNames=new _multimap2.default,this.varDeclaredNames=new _multimap2.default,this.forOfVarDeclaredNames=[],this}},{key:"exportName",value:function(s,o){return this.exportedNames.set(s,o),this}},{key:"exportDeclaredNames",value:function(){return addEach(this.exportedNames,this.lexicallyDeclaredNames,this.varDeclaredNames),addEach(this.exportedBindings,this.lexicallyDeclaredNames,this.varDeclaredNames),this}},{key:"exportBinding",value:function(s,o){return this.exportedBindings.set(s,o),this}},{key:"clearExportedBindings",value:function(){return this.exportedBindings=new _multimap2.default,this}},{key:"observeYieldExpression",value:function(s){return this.yieldExpressions.push(s),this}},{key:"clearYieldExpressions",value:function(){return this.yieldExpressions=[],this}},{key:"observeAwaitExpression",value:function(s){return this.awaitExpressions.push(s),this}},{key:"clearAwaitExpressions",value:function(){return this.awaitExpressions=[],this}},{key:"addError",value:function(s){return this.errors.push(s),this}},{key:"addStrictError",value:function(s){return this.strictErrors.push(s),this}},{key:"enforceStrictErrors",value:function(){return[].push.apply(this.errors,this.strictErrors),this.strictErrors=[],this}},{key:"concat",value:function(s){return this===identity?s:s===identity?this:([].push.apply(this.errors,s.errors),[].push.apply(this.strictErrors,s.strictErrors),[].push.apply(this.usedLabelNames,s.usedLabelNames),[].push.apply(this.freeBreakStatements,s.freeBreakStatements),[].push.apply(this.freeContinueStatements,s.freeContinueStatements),[].push.apply(this.freeLabeledBreakStatements,s.freeLabeledBreakStatements),[].push.apply(this.freeLabeledContinueStatements,s.freeLabeledContinueStatements),[].push.apply(this.newTargetExpressions,s.newTargetExpressions),addEach(this.boundNames,s.boundNames),addEach(this.lexicallyDeclaredNames,s.lexicallyDeclaredNames),addEach(this.functionDeclarationNames,s.functionDeclarationNames),addEach(this.varDeclaredNames,s.varDeclaredNames),[].push.apply(this.forOfVarDeclaredNames,s.forOfVarDeclaredNames),addEach(this.exportedNames,s.exportedNames),addEach(this.exportedBindings,s.exportedBindings),[].push.apply(this.superCallExpressions,s.superCallExpressions),[].push.apply(this.superCallExpressionsInConstructorMethod,s.superCallExpressionsInConstructorMethod),[].push.apply(this.superPropertyExpressions,s.superPropertyExpressions),[].push.apply(this.yieldExpressions,s.yieldExpressions),[].push.apply(this.awaitExpressions,s.awaitExpressions),this)}}],[{key:"empty",value:function(){return identity}}]),a}();identity=new EarlyErrorState;Object.getOwnPropertyNames(EarlyErrorState.prototype).forEach(function(a){a!=="constructor"&&Object.defineProperty(identity,a,{value:function(){return EarlyErrorState.prototype[a].apply(new EarlyErrorState,arguments)},enumerable:!1,writable:!0,configurable:!0})});earlyErrorState.EarlyError=function(a){_inherits$4(e,a);function e(s,o){_classCallCheck$7(this,e);var c=_possibleConstructorReturn$4(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,o));return c.node=s,c.message=o,c}return e}(Error);Object.defineProperty(earlyErrors,"__esModule",{value:!0});earlyErrors.EarlyErrorChecker=void 0;var _createClass$5=function(){function a(e,s){for(var o=0;o1&&s.slice(1).forEach(function(o){e=e.addError(new _earlyErrorState.EarlyError(o,"Duplicate constructor method in class"))}),e}var SUPERCALL_ERROR=function(e){return new _earlyErrorState.EarlyError(e,_errors.ErrorMessages.ILLEGAL_SUPER_CALL)},SUPERPROPERTY_ERROR=function(e){return new _earlyErrorState.EarlyError(e,"Member access on super must be in a method")},DUPLICATE_BINDING=function(e){return new _earlyErrorState.EarlyError(e,"Duplicate binding "+JSON.stringify(e.name))},FREE_CONTINUE=function(e){return new _earlyErrorState.EarlyError(e,"Continue statement must be nested within an iteration statement")},UNBOUND_CONTINUE=function(e){return new _earlyErrorState.EarlyError(e,"Continue statement must be nested within an iteration statement with label "+JSON.stringify(e.label))},FREE_BREAK=function(e){return new _earlyErrorState.EarlyError(e,"Break statement must be nested within an iteration statement or a switch statement")},UNBOUND_BREAK=function(e){return new _earlyErrorState.EarlyError(e,"Break statement must be nested within a statement with label "+JSON.stringify(e.label))};earlyErrors.EarlyErrorChecker=function(a){_inherits$3(e,a);function e(){return _classCallCheck$6(this,e),_possibleConstructorReturn$3(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,_earlyErrorState.EarlyErrorState))}return _createClass$5(e,[{key:"reduceAssignmentExpression",value:function(){return _get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceAssignmentExpression",this).apply(this,arguments).clearBoundNames()}},{key:"reduceAssignmentTargetIdentifier",value:function(o){var c=this.identity;return(o.name==="eval"||o.name==="arguments"||(0,_utils.isStrictModeReservedWord)(o.name))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(o,"The identifier "+JSON.stringify(o.name)+" must not be in binding position in strict mode"))),c}},{key:"reduceArrowExpression",value:function(o,c){var d=c.params,_=c.body,b=o.params.rest==null&&o.params.items.every(function($){return $.type==="BindingIdentifier"});d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),o.body.type==="FunctionBody"&&(_=_.enforceConflictingLexicallyDeclaredNames(d.lexicallyDeclaredNames,DUPLICATE_BINDING),isStrictFunctionBody(o.body)&&(d=d.enforceStrictErrors(),_=_.enforceStrictErrors())),d.yieldExpressions.forEach(function($){d=d.addError(new _earlyErrorState.EarlyError($,"Arrow parameters must not contain yield expressions"))}),d.awaitExpressions.forEach(function($){d=d.addError(new _earlyErrorState.EarlyError($,"Arrow parameters must not contain await expressions"))});var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceArrowExpression",this).call(this,o,{params:d,body:_});return!b&&o.body.type==="FunctionBody"&&isStrictFunctionBody(o.body)&&(k=k.addError(new _earlyErrorState.EarlyError(o,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),k=k.clearYieldExpressions(),k=k.clearAwaitExpressions(),k=k.observeVarBoundary(),k}},{key:"reduceAwaitExpression",value:function(o,c){var d=c.expression;return d.observeAwaitExpression(o)}},{key:"reduceBindingIdentifier",value:function(o){var c=this.identity;return(o.name==="eval"||o.name==="arguments"||(0,_utils.isStrictModeReservedWord)(o.name))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(o,"The identifier "+JSON.stringify(o.name)+" must not be in binding position in strict mode"))),c=c.bindName(o.name,o),c}},{key:"reduceBlock",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceBlock",this).apply(this,arguments);return o=o.functionDeclarationNamesAreLexical(),o=o.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),o=o.enforceConflictingLexicallyDeclaredNames(o.varDeclaredNames,DUPLICATE_BINDING),o=o.observeLexicalBoundary(),o}},{key:"reduceBreakStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceBreakStatement",this).apply(this,arguments);return c=o.label==null?c.addFreeBreakStatement(o):c.addFreeLabeledBreakStatement(o),c}},{key:"reduceCallExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCallExpression",this).apply(this,arguments);return o.callee.type==="Super"&&(c=c.observeSuperCallExpression(o)),c}},{key:"reduceCatchClause",value:function(o,c){var d=c.binding,_=c.body;d=d.observeLexicalDeclaration(),d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(_.previousLexicallyDeclaredNames,DUPLICATE_BINDING),d.lexicallyDeclaredNames.forEachEntry(function(k,$){_.varDeclaredNames.has($)&&_.varDeclaredNames.get($).forEach(function(j){_.forOfVarDeclaredNames.indexOf(j)>=0&&(d=d.addError(DUPLICATE_BINDING(j)))})});var b=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCatchClause",this).call(this,o,{binding:d,body:_});return b=b.observeLexicalBoundary(),b}},{key:"reduceClassDeclaration",value:function(o,c){var d=c.name,_=c.super,b=c.elements,k=d.enforceStrictErrors(),$=this.append.apply(this,_toConsumableArray$3(b));return $=$.enforceStrictErrors(),o.super!=null&&(_=_.enforceStrictErrors(),k=this.append(k,_),$=$.clearSuperCallExpressionsInConstructorMethod()),k=this.append(k,$),k=enforceDuplicateConstructorMethods(o,k),k=k.observeLexicalDeclaration(),k}},{key:"reduceClassElement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceClassElement",this).apply(this,arguments);return!o.isStatic&&isSpecialMethod(o.method)&&(c=c.addError(new _earlyErrorState.EarlyError(o,_errors.ErrorMessages.ILLEGAL_CONSTRUCTORS))),o.isStatic&&o.method.name.type==="StaticPropertyName"&&o.method.name.value==="prototype"&&(c=c.addError(new _earlyErrorState.EarlyError(o,'Static class methods cannot be named "prototype"'))),c}},{key:"reduceClassExpression",value:function(o,c){var d=c.name,_=c.super,b=c.elements,k=o.name==null?this.identity:d.enforceStrictErrors(),$=this.append.apply(this,_toConsumableArray$3(b));return $=$.enforceStrictErrors(),o.super!=null&&(_=_.enforceStrictErrors(),k=this.append(k,_),$=$.clearSuperCallExpressionsInConstructorMethod()),k=this.append(k,$),k=enforceDuplicateConstructorMethods(o,k),k=k.clearBoundNames(),k}},{key:"reduceCompoundAssignmentExpression",value:function(){return _get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCompoundAssignmentExpression",this).apply(this,arguments).clearBoundNames()}},{key:"reduceComputedMemberExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceComputedMemberExpression",this).apply(this,arguments);return o.object.type==="Super"&&(c=c.observeSuperPropertyExpression(o)),c}},{key:"reduceContinueStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceContinueStatement",this).apply(this,arguments);return c=o.label==null?c.addFreeContinueStatement(o):c.addFreeLabeledContinueStatement(o),c}},{key:"reduceDoWhileStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceDoWhileStatement",this).apply(this,arguments);return isLabelledFunction(o.body)&&(c=c.addError(new _earlyErrorState.EarlyError(o.body,"The body of a do-while statement must not be a labeled function declaration"))),c=c.clearFreeContinueStatements(),c=c.clearFreeBreakStatements(),c}},{key:"reduceExport",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExport",this).apply(this,arguments);return o=o.functionDeclarationNamesAreLexical(),o=o.exportDeclaredNames(),o}},{key:"reduceExportFrom",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportFrom",this).apply(this,arguments);return o=o.clearExportedBindings(),o}},{key:"reduceExportFromSpecifier",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportFromSpecifier",this).apply(this,arguments);return c=c.exportName(o.exportedName||o.name,o),c=c.exportBinding(o.name,o),c}},{key:"reduceExportLocalSpecifier",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportLocalSpecifier",this).apply(this,arguments);return c=c.exportName(o.exportedName||o.name.name,o),c=c.exportBinding(o.name.name,o),c}},{key:"reduceExportDefault",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportDefault",this).apply(this,arguments);return c=c.functionDeclarationNamesAreLexical(),c=c.exportName("default",o),c}},{key:"reduceFormalParameters",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFormalParameters",this).apply(this,arguments);return o=o.observeLexicalDeclaration(),o}},{key:"reduceForStatement",value:function(o,c){var d=c.init,_=c.test,b=c.update,k=c.body;d!=null&&(d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(k.varDeclaredNames,DUPLICATE_BINDING));var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForStatement",this).call(this,o,{init:d,test:_,update:b,body:k});return o.init!=null&&o.init.type==="VariableDeclaration"&&o.init.kind==="const"&&o.init.declarators.forEach(function(j){j.init==null&&($=$.addError(new _earlyErrorState.EarlyError(j,"Constant lexical declarations must have an initialiser")))}),isLabelledFunction(o.body)&&($=$.addError(new _earlyErrorState.EarlyError(o.body,"The body of a for statement must not be a labeled function declaration"))),$=$.clearFreeContinueStatements(),$=$.clearFreeBreakStatements(),$=$.observeLexicalBoundary(),$}},{key:"reduceForInStatement",value:function(o,c){var d=c.left,_=c.right,b=c.body;d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING);var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForInStatement",this).call(this,o,{left:d,right:_,body:b});return isLabelledFunction(o.body)&&(k=k.addError(new _earlyErrorState.EarlyError(o.body,"The body of a for-in statement must not be a labeled function declaration"))),k=k.clearFreeContinueStatements(),k=k.clearFreeBreakStatements(),k=k.observeLexicalBoundary(),k}},{key:"reduceForOfStatement",value:function(o,c){var d=c.left,_=c.right,b=c.body;d=d.recordForOfVars(),d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING);var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForOfStatement",this).call(this,o,{left:d,right:_,body:b});return isLabelledFunction(o.body)&&(k=k.addError(new _earlyErrorState.EarlyError(o.body,"The body of a for-of statement must not be a labeled function declaration"))),k=k.clearFreeContinueStatements(),k=k.clearFreeBreakStatements(),k=k.observeLexicalBoundary(),k}},{key:"reduceForAwaitStatement",value:function(o,c){var d=c.left,_=c.right,b=c.body;d=d.recordForOfVars(),d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING);var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForOfStatement",this).call(this,o,{left:d,right:_,body:b});return isLabelledFunction(o.body)&&(k=k.addError(new _earlyErrorState.EarlyError(o.body,"The body of a for-await statement must not be a labeled function declaration"))),k=k.clearFreeContinueStatements(),k=k.clearFreeBreakStatements(),k=k.observeLexicalBoundary(),k}},{key:"reduceFunctionBody",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionBody",this).apply(this,arguments);return c=c.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),c=c.enforceConflictingLexicallyDeclaredNames(c.varDeclaredNames,DUPLICATE_BINDING),c=c.enforceFreeContinueStatementErrors(FREE_CONTINUE),c=c.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),c=c.enforceFreeBreakStatementErrors(FREE_BREAK),c=c.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),c=c.clearUsedLabelNames(),c=c.clearYieldExpressions(),c=c.clearAwaitExpressions(),isStrictFunctionBody(o)&&(c=c.enforceStrictErrors()),c}},{key:"reduceFunctionDeclaration",value:function(o,c){var d=c.name,_=c.params,b=c.body,k=o.params.rest==null&&o.params.items.every(function(_e){return _e.type==="BindingIdentifier"}),$=!k||o.isGenerator?"addError":"addStrictError";_.lexicallyDeclaredNames.forEachEntry(function(_e){_e.length>1&&_e.slice(1).forEach(function(et){_=_[$](DUPLICATE_BINDING(et))})}),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),b=b.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),o.isGenerator&&_.yieldExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Generator parameters must not contain yield expressions"))}),o.isAsync&&_.awaitExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Async function parameters must not contain await expressions"))}),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(o.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var j=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionDeclaration",this).call(this,o,{name:d,params:_,body:b});return!k&&isStrictFunctionBody(o.body)&&(j=j.addError(new _earlyErrorState.EarlyError(o,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),j=j.clearYieldExpressions(),j=j.clearAwaitExpressions(),j=j.observeFunctionDeclaration(),j}},{key:"reduceFunctionExpression",value:function(o,c){var d=c.name,_=c.params,b=c.body,k=o.params.rest==null&&o.params.items.every(function(_e){return _e.type==="BindingIdentifier"}),$=!k||o.isGenerator?"addError":"addStrictError";_.lexicallyDeclaredNames.forEachEntry(function(_e,et){_e.length>1&&_e.slice(1).forEach(function(tt){_=_[$](new _earlyErrorState.EarlyError(tt,"Duplicate binding "+JSON.stringify(et)))})}),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),b=b.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),o.isGenerator&&_.yieldExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Generator parameters must not contain yield expressions"))}),o.isAsync&&_.awaitExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Async function parameters must not contain await expressions"))}),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(o.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var j=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionExpression",this).call(this,o,{name:d,params:_,body:b});return!k&&isStrictFunctionBody(o.body)&&(j=j.addError(new _earlyErrorState.EarlyError(o,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),j=j.clearBoundNames(),j=j.clearYieldExpressions(),j=j.clearAwaitExpressions(),j=j.observeVarBoundary(),j}},{key:"reduceGetter",value:function(o,c){var d=c.name,_=c.body;_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.clearSuperPropertyExpressions(),_=_.clearNewTargetExpressions(),isStrictFunctionBody(o.body)&&(_=_.enforceStrictErrors());var b=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceGetter",this).call(this,o,{name:d,body:_});return b=b.observeVarBoundary(),b}},{key:"reduceIdentifierExpression",value:function(o){var c=this.identity;return(0,_utils.isStrictModeReservedWord)(o.name)&&(c=c.addStrictError(new _earlyErrorState.EarlyError(o,"The identifier "+JSON.stringify(o.name)+" must not be in expression position in strict mode"))),c}},{key:"reduceIfStatement",value:function(o,c){var d=c.test,_=c.consequent,b=c.alternate;return isLabelledFunction(o.consequent)&&(_=_.addError(new _earlyErrorState.EarlyError(o.consequent,"The consequent of an if statement must not be a labeled function declaration"))),o.alternate!=null&&isLabelledFunction(o.alternate)&&(b=b.addError(new _earlyErrorState.EarlyError(o.alternate,"The alternate of an if statement must not be a labeled function declaration"))),o.consequent.type==="FunctionDeclaration"&&(_=_.addStrictError(new _earlyErrorState.EarlyError(o.consequent,"FunctionDeclarations in IfStatements are disallowed in strict mode")),_=_.observeLexicalBoundary()),o.alternate!=null&&o.alternate.type==="FunctionDeclaration"&&(b=b.addStrictError(new _earlyErrorState.EarlyError(o.alternate,"FunctionDeclarations in IfStatements are disallowed in strict mode")),b=b.observeLexicalBoundary()),_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceIfStatement",this).call(this,o,{test:d,consequent:_,alternate:b})}},{key:"reduceImport",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceImport",this).apply(this,arguments);return o=o.observeLexicalDeclaration(),o}},{key:"reduceImportNamespace",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceImportNamespace",this).apply(this,arguments);return o=o.observeLexicalDeclaration(),o}},{key:"reduceLabeledStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceLabeledStatement",this).apply(this,arguments);return(o.label==="yield"||(0,_utils.isStrictModeReservedWord)(o.label))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(o,"The identifier "+JSON.stringify(o.label)+" must not be in label position in strict mode"))),c.usedLabelNames.indexOf(o.label)>=0&&(c=c.addError(new _earlyErrorState.EarlyError(o,"Label "+JSON.stringify(o.label)+" has already been declared"))),o.body.type==="FunctionDeclaration"&&(c=c.addStrictError(new _earlyErrorState.EarlyError(o,"Labeled FunctionDeclarations are disallowed in strict mode"))),c=isIterationStatement(o.body)?c.observeIterationLabel(o.label):c.observeNonIterationLabel(o.label),c}},{key:"reduceLiteralRegExpExpression",value:function(){var o=this.identity;return o}},{key:"reduceMethod",value:function(o,c){var d=c.name,_=c.params,b=c.body,k=o.params.rest==null&&o.params.items.every(function(j){return j.type==="BindingIdentifier"});_=_.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),o.name.type==="StaticPropertyName"&&o.name.value==="constructor"?(b=b.observeConstructorMethod(),_=_.observeConstructorMethod()):(b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR)),o.isGenerator&&_.yieldExpressions.forEach(function(j){_=_.addError(new _earlyErrorState.EarlyError(j,"Generator parameters must not contain yield expressions"))}),o.isAsync&&_.awaitExpressions.forEach(function(j){_=_.addError(new _earlyErrorState.EarlyError(j,"Async function parameters must not contain await expressions"))}),b=b.clearSuperPropertyExpressions(),_=_.clearSuperPropertyExpressions(),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(o.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceMethod",this).call(this,o,{name:d,params:_,body:b});return!k&&isStrictFunctionBody(o.body)&&($=$.addError(new _earlyErrorState.EarlyError(o,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),$=$.clearYieldExpressions(),$=$.clearAwaitExpressions(),$=$.observeVarBoundary(),$}},{key:"reduceModule",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceModule",this).apply(this,arguments);return o=o.functionDeclarationNamesAreLexical(),o=o.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),o=o.enforceConflictingLexicallyDeclaredNames(o.varDeclaredNames,DUPLICATE_BINDING),o.exportedNames.forEachEntry(function(c,d){c.length>1&&c.slice(1).forEach(function(_){o=o.addError(new _earlyErrorState.EarlyError(_,"Duplicate export "+JSON.stringify(d)))})}),o.exportedBindings.forEachEntry(function(c,d){!o.lexicallyDeclaredNames.has(d)&&!o.varDeclaredNames.has(d)&&c.forEach(function(_){o=o.addError(new _earlyErrorState.EarlyError(_,"Exported binding "+JSON.stringify(d)+" is not declared"))})}),o.newTargetExpressions.forEach(function(c){o=o.addError(new _earlyErrorState.EarlyError(c,"new.target must be within function (but not arrow expression) code"))}),o=o.enforceFreeContinueStatementErrors(FREE_CONTINUE),o=o.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),o=o.enforceFreeBreakStatementErrors(FREE_BREAK),o=o.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),o=o.enforceSuperCallExpressions(SUPERCALL_ERROR),o=o.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),o=o.enforceStrictErrors(),o}},{key:"reduceNewTargetExpression",value:function(o){return this.identity.observeNewTargetExpression(o)}},{key:"reduceObjectExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceObjectExpression",this).apply(this,arguments);c=c.enforceSuperCallExpressionsInConstructorMethod(SUPERCALL_ERROR);var d=o.properties.filter(function(_){return _.type==="DataProperty"&&_.name.type==="StaticPropertyName"&&_.name.value==="__proto__"});return d.slice(1).forEach(function(_){c=c.addError(new _earlyErrorState.EarlyError(_,"Duplicate __proto__ property in object literal not allowed"))}),c}},{key:"reduceUpdateExpression",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceUpdateExpression",this).apply(this,arguments);return o=o.clearBoundNames(),o}},{key:"reduceUnaryExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceUnaryExpression",this).apply(this,arguments);return o.operator==="delete"&&o.operand.type==="IdentifierExpression"&&(c=c.addStrictError(new _earlyErrorState.EarlyError(o,"Identifier expressions must not be deleted in strict mode"))),c}},{key:"reduceScript",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceScript",this).apply(this,arguments);return c=c.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),c=c.enforceConflictingLexicallyDeclaredNames(c.varDeclaredNames,DUPLICATE_BINDING),c.newTargetExpressions.forEach(function(d){c=c.addError(new _earlyErrorState.EarlyError(d,"new.target must be within function (but not arrow expression) code"))}),c=c.enforceFreeContinueStatementErrors(FREE_CONTINUE),c=c.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),c=c.enforceFreeBreakStatementErrors(FREE_BREAK),c=c.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),c=c.enforceSuperCallExpressions(SUPERCALL_ERROR),c=c.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),isStrictFunctionBody(o)&&(c=c.enforceStrictErrors()),c}},{key:"reduceSetter",value:function(o,c){var d=c.name,_=c.param,b=c.body,k=o.param.type==="BindingIdentifier";_=_.observeLexicalDeclaration(),_=_.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.clearSuperPropertyExpressions(),b=b.clearSuperPropertyExpressions(),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(o.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceSetter",this).call(this,o,{name:d,param:_,body:b});return!k&&isStrictFunctionBody(o.body)&&($=$.addError(new _earlyErrorState.EarlyError(o,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),$=$.observeVarBoundary(),$}},{key:"reduceStaticMemberExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceStaticMemberExpression",this).apply(this,arguments);return o.object.type==="Super"&&(c=c.observeSuperPropertyExpression(o)),c}},{key:"reduceSwitchStatement",value:function(o,c){var d=c.discriminant,_=c.cases,b=this.append.apply(this,_toConsumableArray$3(_));b=b.functionDeclarationNamesAreLexical(),b=b.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),b=b.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING),b=b.observeLexicalBoundary();var k=this.append(d,b);return k=k.clearFreeBreakStatements(),k}},{key:"reduceSwitchStatementWithDefault",value:function(o,c){var d=c.discriminant,_=c.preDefaultCases,b=c.defaultCase,k=c.postDefaultCases,$=this.append.apply(this,[b].concat(_toConsumableArray$3(_),_toConsumableArray$3(k)));$=$.functionDeclarationNamesAreLexical(),$=$.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),$=$.enforceConflictingLexicallyDeclaredNames($.varDeclaredNames,DUPLICATE_BINDING),$=$.observeLexicalBoundary();var j=this.append(d,$);return j=j.clearFreeBreakStatements(),j}},{key:"reduceVariableDeclaration",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceVariableDeclaration",this).apply(this,arguments);switch(o.kind){case"const":case"let":{c=c.observeLexicalDeclaration(),c.lexicallyDeclaredNames.has("let")&&c.lexicallyDeclaredNames.get("let").forEach(function(d){c=c.addError(new _earlyErrorState.EarlyError(d,'Lexical declarations must not have a binding named "let"'))});break}case"var":c=c.observeVarDeclaration();break}return c}},{key:"reduceVariableDeclarationStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceVariableDeclarationStatement",this).apply(this,arguments);return o.declaration.kind==="const"&&o.declaration.declarators.forEach(function(d){d.init==null&&(c=c.addError(new _earlyErrorState.EarlyError(d,"Constant lexical declarations must have an initialiser")))}),c}},{key:"reduceWhileStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceWhileStatement",this).apply(this,arguments);return isLabelledFunction(o.body)&&(c=c.addError(new _earlyErrorState.EarlyError(o.body,"The body of a while statement must not be a labeled function declaration"))),c=c.clearFreeContinueStatements().clearFreeBreakStatements(),c}},{key:"reduceWithStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceWithStatement",this).apply(this,arguments);return isLabelledFunction(o.body)&&(c=c.addError(new _earlyErrorState.EarlyError(o.body,"The body of a with statement must not be a labeled function declaration"))),c=c.addStrictError(new _earlyErrorState.EarlyError(o,"Strict mode code must not include a with statement")),c}},{key:"reduceYieldExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceYieldExpression",this).apply(this,arguments);return c=c.observeYieldExpression(o),c}},{key:"reduceYieldGeneratorExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceYieldGeneratorExpression",this).apply(this,arguments);return c=c.observeYieldExpression(o),c}}],[{key:"check",value:function(o){return(0,_shiftReducer2.default)(new e,o).errors}}]),e}(_shiftReducer$1.MonoidalReducer);(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.TokenType=a.TokenClass=a.Tokenizer=a.ParserWithLocation=a.GenericParser=a.EarlyErrorChecker=a.parseScriptWithLocation=a.parseModuleWithLocation=a.parseScript=a.parseModule=void 0;var e=function(){function it(rt,st){for(var ot=0;ot1&&arguments[1]!==void 0?arguments[1]:{},at=ot.earlyErrors,ht=at===void 0?!0:at,lt=new c.GenericParser(st),ut=lt[it]();if(ht){var ct=d.EarlyErrorChecker.check(ut);if(ct.length>0)throw new o.JsError(0,1,0,ct[0].message)}return ut}}function tt(it){return function(st){var ot=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},at=ot.earlyErrors,ht=at===void 0?!0:at,lt=new _e(st),ut=lt[it]();if(ht){var ct=d.EarlyErrorChecker.check(ut);if(ct.length>0){var dt=ct[0],ft=dt.node,yt=dt.message,_t=lt.locations.get(ft).start,gt=_t.offset,Et=_t.line,pt=_t.column;throw new o.JsError(gt,Et,pt,yt)}}return{tree:ut,locations:lt.locations,comments:lt.comments}}}a.parseModule=et("parseModule");var nt=a.parseScript=et("parseScript");a.parseModuleWithLocation=tt("parseModule"),a.parseScriptWithLocation=tt("parseScript"),a.default=nt,a.EarlyErrorChecker=d.EarlyErrorChecker,a.GenericParser=c.GenericParser,a.ParserWithLocation=_e})(dist$7);var dist$2={};Object.defineProperty(dist$2,"__esModule",{value:!0});var _default=dist$2.default=function(){var a={},e={typeName:"Boolean"},s={typeName:"Number"},o={typeName:"String"};function c(pn){return{typeName:"Maybe",argument:pn}}function d(pn){return{typeName:"List",argument:pn}}function _(pn){return{typeName:"Const",argument:pn}}function b(){return{typeName:"Union",arguments:[].slice.call(arguments,0)}}var k={typeName:"Enum",values:["ArrayAssignmentTarget","ArrayBinding","ArrayExpression","ArrowExpression","AssignmentExpression","AssignmentTargetIdentifier","AssignmentTargetPropertyIdentifier","AssignmentTargetPropertyProperty","AssignmentTargetWithDefault","AwaitExpression","BinaryExpression","BindingIdentifier","BindingPropertyIdentifier","BindingPropertyProperty","BindingWithDefault","Block","BlockStatement","BreakStatement","CallExpression","CatchClause","ClassDeclaration","ClassElement","ClassExpression","CompoundAssignmentExpression","ComputedMemberAssignmentTarget","ComputedMemberExpression","ComputedPropertyName","ConditionalExpression","ContinueStatement","DataProperty","DebuggerStatement","Directive","DoWhileStatement","EmptyStatement","Export","ExportAllFrom","ExportDefault","ExportFrom","ExportFromSpecifier","ExportLocalSpecifier","ExportLocals","ExpressionStatement","ForAwaitStatement","ForInStatement","ForOfStatement","ForStatement","FormalParameters","FunctionBody","FunctionDeclaration","FunctionExpression","Getter","IdentifierExpression","IfStatement","Import","ImportNamespace","ImportSpecifier","LabeledStatement","LiteralBooleanExpression","LiteralInfinityExpression","LiteralNullExpression","LiteralNumericExpression","LiteralRegExpExpression","LiteralStringExpression","Method","Module","NewExpression","NewTargetExpression","ObjectAssignmentTarget","ObjectBinding","ObjectExpression","ReturnStatement","Script","Setter","ShorthandProperty","SpreadElement","SpreadProperty","StaticMemberAssignmentTarget","StaticMemberExpression","StaticPropertyName","Super","SwitchCase","SwitchDefault","SwitchStatement","SwitchStatementWithDefault","TemplateElement","TemplateExpression","ThisExpression","ThrowStatement","TryCatchStatement","TryFinallyStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarationStatement","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","YieldGeneratorExpression"]},$={typeName:"Enum",values:["==","!=","===","!==","<","<=",">",">=","in","instanceof","<<",">>",">>>","+","-","*","/","%","**",",","||","&&","|","^","&"]},j={typeName:"Enum",values:["+=","-=","*=","/=","%=","**=","<<=",">>=",">>>=","|=","^=","&="]},_e={typeName:"Enum",values:["+","-","!","~","typeof","void","delete"]},et={typeName:"Enum",values:["++","--"]},tt={typeName:"Enum",values:["var","let","const"]},nt=a.ArrayAssignmentTarget={},it=a.ArrayBinding={},rt=a.ArrayExpression={},st=a.ArrowExpression={},ot=a.AssignmentExpression={},at=a.AssignmentTargetIdentifier={},ht=a.AssignmentTargetPropertyIdentifier={},lt=a.AssignmentTargetPropertyProperty={},ut=a.AssignmentTargetWithDefault={},ct=a.AwaitExpression={},dt=a.BinaryExpression={},ft=a.BindingIdentifier={},yt=a.BindingPropertyIdentifier={},_t=a.BindingPropertyProperty={},gt=a.BindingWithDefault={},Et=a.Block={},pt=a.BlockStatement={},mt=a.BreakStatement={},At=a.CallExpression={},Ct=a.CatchClause={},Ot=a.ClassDeclaration={},St=a.ClassElement={},Tt=a.ClassExpression={},vt=a.CompoundAssignmentExpression={},bt=a.ComputedMemberAssignmentTarget={},xt=a.ComputedMemberExpression={},Rt=a.ComputedPropertyName={},$t=a.ConditionalExpression={},It=a.ContinueStatement={},Ft=a.DataProperty={},qt=a.DebuggerStatement={},Qt=a.Directive={},Nt=a.DoWhileStatement={},Kt=a.EmptyStatement={},Jt=a.Export={},en=a.ExportAllFrom={},tn=a.ExportDefault={},wt=a.ExportFrom={},Pt=a.ExportFromSpecifier={},jt=a.ExportLocalSpecifier={},Lt=a.ExportLocals={},Mt=a.ExpressionStatement={},Wt=a.ForAwaitStatement={},Vt=a.ForInStatement={},zt=a.ForOfStatement={},nn=a.ForStatement={},Xt=a.FormalParameters={},Zt=a.FunctionBody={},sn=a.FunctionDeclaration={},fn=a.FunctionExpression={},An=a.Getter={},ln=a.IdentifierExpression={},vn=a.IfStatement={},Sn=a.Import={},Cn=a.ImportNamespace={},mn=a.ImportSpecifier={},On=a.LabeledStatement={},Dn=a.LiteralBooleanExpression={},bn=a.LiteralInfinityExpression={},Tn=a.LiteralNullExpression={},xn=a.LiteralNumericExpression={},wn=a.LiteralRegExpExpression={},kn=a.LiteralStringExpression={},Fn=a.Method={},Nn=a.Module={},Bn=a.NewExpression={},Pn=a.NewTargetExpression={},Ht=a.ObjectAssignmentTarget={},Ut=a.ObjectBinding={},Rn=a.ObjectExpression={},In=a.ReturnStatement={},$n=a.Script={},Mn=a.Setter={},Ln=a.ShorthandProperty={},cn=a.SpreadElement={},Wn=a.SpreadProperty={},jn=a.StaticMemberAssignmentTarget={},Qn=a.StaticMemberExpression={},qn=a.StaticPropertyName={},an=a.Super={},hn=a.SwitchCase={},gn=a.SwitchDefault={},Gn=a.SwitchStatement={},Vn=a.SwitchStatementWithDefault={},yn=a.TemplateElement={},Un=a.TemplateExpression={},zn=a.ThisExpression={},Hn=a.ThrowStatement={},Yn=a.TryCatchStatement={},Xn=a.TryFinallyStatement={},Zn=a.UnaryExpression={},Kn=a.UpdateExpression={},rn=a.VariableDeclaration={},Jn=a.VariableDeclarationStatement={},En=a.VariableDeclarator={},er=a.WhileStatement={},tr=a.WithStatement={},nr=a.YieldExpression={},rr=a.YieldGeneratorExpression={},yr=b(xt,Qn),sr=b(ht,lt);b(Ot,Tt);var or=b(Jt,en,tn,wt,Lt),un=b(Rt,qn);b(sn,fn);var ar=b(Sn,Cn),Er=b(Nt,Wt,Vt,zt,nn,er),Yt=b(bt,jn),ur=b(yt,_t),lr=b(An,Fn,Mn),_r=b(Nn,$n),Ar=b(at,ft,ln),vr=b(Ft,lr),Bt=b(rt,st,ot,ct,dt,At,Tt,vt,$t,fn,ln,Dn,bn,Tn,xn,wn,kn,yr,Bn,Pn,Rn,Un,zn,Zn,Kn,nr,rr),Gt=b(pt,mt,Ot,It,qt,Kt,Mt,sn,vn,Er,On,In,Gn,Vn,Hn,Yn,Xn,Jn,tr),cr=b(vr,Ln,Wn);return b(nt,it,sr,ut,ur,gt,Et,Ct,St,Qt,or,Pt,jt,Bt,Xt,Zt,ar,mn,Yt,Ht,Ut,cr,_r,un,cn,Gt,an,hn,gn,yn,rn,En,Ar),nt.typeName="ArrayAssignmentTarget",nt.fields=[{name:"type",type:_(k),value:"ArrayAssignmentTarget"},{name:"elements",type:d(c(b(ut,b(b(nt,Ht),b(at,Yt)))))},{name:"rest",type:c(b(b(nt,Ht),b(at,Yt)))}],it.typeName="ArrayBinding",it.fields=[{name:"type",type:_(k),value:"ArrayBinding"},{name:"elements",type:d(c(b(gt,b(ft,b(it,Ut)))))},{name:"rest",type:c(b(ft,b(it,Ut)))}],rt.typeName="ArrayExpression",rt.fields=[{name:"type",type:_(k),value:"ArrayExpression"},{name:"elements",type:d(c(b(Bt,cn)))}],st.typeName="ArrowExpression",st.fields=[{name:"type",type:_(k),value:"ArrowExpression"},{name:"isAsync",type:e},{name:"params",type:Xt},{name:"body",type:b(Bt,Zt)}],ot.typeName="AssignmentExpression",ot.fields=[{name:"type",type:_(k),value:"AssignmentExpression"},{name:"binding",type:b(b(nt,Ht),b(at,Yt))},{name:"expression",type:Bt}],at.typeName="AssignmentTargetIdentifier",at.fields=[{name:"type",type:_(k),value:"AssignmentTargetIdentifier"},{name:"name",type:o}],ht.typeName="AssignmentTargetPropertyIdentifier",ht.fields=[{name:"type",type:_(k),value:"AssignmentTargetPropertyIdentifier"},{name:"binding",type:at},{name:"init",type:c(Bt)}],lt.typeName="AssignmentTargetPropertyProperty",lt.fields=[{name:"type",type:_(k),value:"AssignmentTargetPropertyProperty"},{name:"name",type:un},{name:"binding",type:b(ut,b(b(nt,Ht),b(at,Yt)))}],ut.typeName="AssignmentTargetWithDefault",ut.fields=[{name:"type",type:_(k),value:"AssignmentTargetWithDefault"},{name:"binding",type:b(b(nt,Ht),b(at,Yt))},{name:"init",type:Bt}],ct.typeName="AwaitExpression",ct.fields=[{name:"type",type:_(k),value:"AwaitExpression"},{name:"expression",type:Bt}],dt.typeName="BinaryExpression",dt.fields=[{name:"type",type:_(k),value:"BinaryExpression"},{name:"left",type:Bt},{name:"operator",type:$},{name:"right",type:Bt}],ft.typeName="BindingIdentifier",ft.fields=[{name:"type",type:_(k),value:"BindingIdentifier"},{name:"name",type:o}],yt.typeName="BindingPropertyIdentifier",yt.fields=[{name:"type",type:_(k),value:"BindingPropertyIdentifier"},{name:"binding",type:ft},{name:"init",type:c(Bt)}],_t.typeName="BindingPropertyProperty",_t.fields=[{name:"type",type:_(k),value:"BindingPropertyProperty"},{name:"name",type:un},{name:"binding",type:b(gt,b(ft,b(it,Ut)))}],gt.typeName="BindingWithDefault",gt.fields=[{name:"type",type:_(k),value:"BindingWithDefault"},{name:"binding",type:b(ft,b(it,Ut))},{name:"init",type:Bt}],Et.typeName="Block",Et.fields=[{name:"type",type:_(k),value:"Block"},{name:"statements",type:d(Gt)}],pt.typeName="BlockStatement",pt.fields=[{name:"type",type:_(k),value:"BlockStatement"},{name:"block",type:Et}],mt.typeName="BreakStatement",mt.fields=[{name:"type",type:_(k),value:"BreakStatement"},{name:"label",type:c(o)}],At.typeName="CallExpression",At.fields=[{name:"type",type:_(k),value:"CallExpression"},{name:"callee",type:b(Bt,an)},{name:"arguments",type:d(b(Bt,cn))}],Ct.typeName="CatchClause",Ct.fields=[{name:"type",type:_(k),value:"CatchClause"},{name:"binding",type:b(ft,b(it,Ut))},{name:"body",type:Et}],Ot.typeName="ClassDeclaration",Ot.fields=[{name:"type",type:_(k),value:"ClassDeclaration"},{name:"name",type:ft},{name:"super",type:c(Bt)},{name:"elements",type:d(St)}],St.typeName="ClassElement",St.fields=[{name:"type",type:_(k),value:"ClassElement"},{name:"isStatic",type:e},{name:"method",type:lr}],Tt.typeName="ClassExpression",Tt.fields=[{name:"type",type:_(k),value:"ClassExpression"},{name:"name",type:c(ft)},{name:"super",type:c(Bt)},{name:"elements",type:d(St)}],vt.typeName="CompoundAssignmentExpression",vt.fields=[{name:"type",type:_(k),value:"CompoundAssignmentExpression"},{name:"binding",type:b(at,Yt)},{name:"operator",type:j},{name:"expression",type:Bt}],bt.typeName="ComputedMemberAssignmentTarget",bt.fields=[{name:"type",type:_(k),value:"ComputedMemberAssignmentTarget"},{name:"object",type:b(Bt,an)},{name:"expression",type:Bt}],xt.typeName="ComputedMemberExpression",xt.fields=[{name:"type",type:_(k),value:"ComputedMemberExpression"},{name:"object",type:b(Bt,an)},{name:"expression",type:Bt}],Rt.typeName="ComputedPropertyName",Rt.fields=[{name:"type",type:_(k),value:"ComputedPropertyName"},{name:"expression",type:Bt}],$t.typeName="ConditionalExpression",$t.fields=[{name:"type",type:_(k),value:"ConditionalExpression"},{name:"test",type:Bt},{name:"consequent",type:Bt},{name:"alternate",type:Bt}],It.typeName="ContinueStatement",It.fields=[{name:"type",type:_(k),value:"ContinueStatement"},{name:"label",type:c(o)}],Ft.typeName="DataProperty",Ft.fields=[{name:"type",type:_(k),value:"DataProperty"},{name:"name",type:un},{name:"expression",type:Bt}],qt.typeName="DebuggerStatement",qt.fields=[{name:"type",type:_(k),value:"DebuggerStatement"}],Qt.typeName="Directive",Qt.fields=[{name:"type",type:_(k),value:"Directive"},{name:"rawValue",type:o}],Nt.typeName="DoWhileStatement",Nt.fields=[{name:"type",type:_(k),value:"DoWhileStatement"},{name:"body",type:Gt},{name:"test",type:Bt}],Kt.typeName="EmptyStatement",Kt.fields=[{name:"type",type:_(k),value:"EmptyStatement"}],Jt.typeName="Export",Jt.fields=[{name:"type",type:_(k),value:"Export"},{name:"declaration",type:b(Ot,sn,rn)}],en.typeName="ExportAllFrom",en.fields=[{name:"type",type:_(k),value:"ExportAllFrom"},{name:"moduleSpecifier",type:o}],tn.typeName="ExportDefault",tn.fields=[{name:"type",type:_(k),value:"ExportDefault"},{name:"body",type:b(Ot,Bt,sn)}],wt.typeName="ExportFrom",wt.fields=[{name:"type",type:_(k),value:"ExportFrom"},{name:"namedExports",type:d(Pt)},{name:"moduleSpecifier",type:o}],Pt.typeName="ExportFromSpecifier",Pt.fields=[{name:"type",type:_(k),value:"ExportFromSpecifier"},{name:"name",type:o},{name:"exportedName",type:c(o)}],jt.typeName="ExportLocalSpecifier",jt.fields=[{name:"type",type:_(k),value:"ExportLocalSpecifier"},{name:"name",type:ln},{name:"exportedName",type:c(o)}],Lt.typeName="ExportLocals",Lt.fields=[{name:"type",type:_(k),value:"ExportLocals"},{name:"namedExports",type:d(jt)}],Mt.typeName="ExpressionStatement",Mt.fields=[{name:"type",type:_(k),value:"ExpressionStatement"},{name:"expression",type:Bt}],Wt.typeName="ForAwaitStatement",Wt.fields=[{name:"type",type:_(k),value:"ForAwaitStatement"},{name:"left",type:b(b(b(nt,Ht),b(at,Yt)),rn)},{name:"right",type:Bt},{name:"body",type:Gt}],Vt.typeName="ForInStatement",Vt.fields=[{name:"type",type:_(k),value:"ForInStatement"},{name:"left",type:b(b(b(nt,Ht),b(at,Yt)),rn)},{name:"right",type:Bt},{name:"body",type:Gt}],zt.typeName="ForOfStatement",zt.fields=[{name:"type",type:_(k),value:"ForOfStatement"},{name:"left",type:b(b(b(nt,Ht),b(at,Yt)),rn)},{name:"right",type:Bt},{name:"body",type:Gt}],nn.typeName="ForStatement",nn.fields=[{name:"type",type:_(k),value:"ForStatement"},{name:"init",type:c(b(Bt,rn))},{name:"test",type:c(Bt)},{name:"update",type:c(Bt)},{name:"body",type:Gt}],Xt.typeName="FormalParameters",Xt.fields=[{name:"type",type:_(k),value:"FormalParameters"},{name:"items",type:d(b(gt,b(ft,b(it,Ut))))},{name:"rest",type:c(b(ft,b(it,Ut)))}],Zt.typeName="FunctionBody",Zt.fields=[{name:"type",type:_(k),value:"FunctionBody"},{name:"directives",type:d(Qt)},{name:"statements",type:d(Gt)}],sn.typeName="FunctionDeclaration",sn.fields=[{name:"type",type:_(k),value:"FunctionDeclaration"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:ft},{name:"params",type:Xt},{name:"body",type:Zt}],fn.typeName="FunctionExpression",fn.fields=[{name:"type",type:_(k),value:"FunctionExpression"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:c(ft)},{name:"params",type:Xt},{name:"body",type:Zt}],An.typeName="Getter",An.fields=[{name:"type",type:_(k),value:"Getter"},{name:"name",type:un},{name:"body",type:Zt}],ln.typeName="IdentifierExpression",ln.fields=[{name:"type",type:_(k),value:"IdentifierExpression"},{name:"name",type:o}],vn.typeName="IfStatement",vn.fields=[{name:"type",type:_(k),value:"IfStatement"},{name:"test",type:Bt},{name:"consequent",type:Gt},{name:"alternate",type:c(Gt)}],Sn.typeName="Import",Sn.fields=[{name:"type",type:_(k),value:"Import"},{name:"defaultBinding",type:c(ft)},{name:"namedImports",type:d(mn)},{name:"moduleSpecifier",type:o}],Cn.typeName="ImportNamespace",Cn.fields=[{name:"type",type:_(k),value:"ImportNamespace"},{name:"defaultBinding",type:c(ft)},{name:"namespaceBinding",type:ft},{name:"moduleSpecifier",type:o}],mn.typeName="ImportSpecifier",mn.fields=[{name:"type",type:_(k),value:"ImportSpecifier"},{name:"name",type:c(o)},{name:"binding",type:ft}],On.typeName="LabeledStatement",On.fields=[{name:"type",type:_(k),value:"LabeledStatement"},{name:"label",type:o},{name:"body",type:Gt}],Dn.typeName="LiteralBooleanExpression",Dn.fields=[{name:"type",type:_(k),value:"LiteralBooleanExpression"},{name:"value",type:e}],bn.typeName="LiteralInfinityExpression",bn.fields=[{name:"type",type:_(k),value:"LiteralInfinityExpression"}],Tn.typeName="LiteralNullExpression",Tn.fields=[{name:"type",type:_(k),value:"LiteralNullExpression"}],xn.typeName="LiteralNumericExpression",xn.fields=[{name:"type",type:_(k),value:"LiteralNumericExpression"},{name:"value",type:s}],wn.typeName="LiteralRegExpExpression",wn.fields=[{name:"type",type:_(k),value:"LiteralRegExpExpression"},{name:"pattern",type:o},{name:"global",type:e},{name:"ignoreCase",type:e},{name:"multiLine",type:e},{name:"dotAll",type:e},{name:"unicode",type:e},{name:"sticky",type:e}],kn.typeName="LiteralStringExpression",kn.fields=[{name:"type",type:_(k),value:"LiteralStringExpression"},{name:"value",type:o}],Fn.typeName="Method",Fn.fields=[{name:"type",type:_(k),value:"Method"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:un},{name:"params",type:Xt},{name:"body",type:Zt}],Nn.typeName="Module",Nn.fields=[{name:"type",type:_(k),value:"Module"},{name:"directives",type:d(Qt)},{name:"items",type:d(b(or,ar,Gt))}],Bn.typeName="NewExpression",Bn.fields=[{name:"type",type:_(k),value:"NewExpression"},{name:"callee",type:Bt},{name:"arguments",type:d(b(Bt,cn))}],Pn.typeName="NewTargetExpression",Pn.fields=[{name:"type",type:_(k),value:"NewTargetExpression"}],Ht.typeName="ObjectAssignmentTarget",Ht.fields=[{name:"type",type:_(k),value:"ObjectAssignmentTarget"},{name:"properties",type:d(sr)},{name:"rest",type:c(b(b(nt,Ht),b(at,Yt)))}],Ut.typeName="ObjectBinding",Ut.fields=[{name:"type",type:_(k),value:"ObjectBinding"},{name:"properties",type:d(ur)},{name:"rest",type:c(b(ft,b(it,Ut)))}],Rn.typeName="ObjectExpression",Rn.fields=[{name:"type",type:_(k),value:"ObjectExpression"},{name:"properties",type:d(cr)}],In.typeName="ReturnStatement",In.fields=[{name:"type",type:_(k),value:"ReturnStatement"},{name:"expression",type:c(Bt)}],$n.typeName="Script",$n.fields=[{name:"type",type:_(k),value:"Script"},{name:"directives",type:d(Qt)},{name:"statements",type:d(Gt)}],Mn.typeName="Setter",Mn.fields=[{name:"type",type:_(k),value:"Setter"},{name:"name",type:un},{name:"param",type:b(gt,b(ft,b(it,Ut)))},{name:"body",type:Zt}],Ln.typeName="ShorthandProperty",Ln.fields=[{name:"type",type:_(k),value:"ShorthandProperty"},{name:"name",type:ln}],cn.typeName="SpreadElement",cn.fields=[{name:"type",type:_(k),value:"SpreadElement"},{name:"expression",type:Bt}],Wn.typeName="SpreadProperty",Wn.fields=[{name:"type",type:_(k),value:"SpreadProperty"},{name:"expression",type:Bt}],jn.typeName="StaticMemberAssignmentTarget",jn.fields=[{name:"type",type:_(k),value:"StaticMemberAssignmentTarget"},{name:"object",type:b(Bt,an)},{name:"property",type:o}],Qn.typeName="StaticMemberExpression",Qn.fields=[{name:"type",type:_(k),value:"StaticMemberExpression"},{name:"object",type:b(Bt,an)},{name:"property",type:o}],qn.typeName="StaticPropertyName",qn.fields=[{name:"type",type:_(k),value:"StaticPropertyName"},{name:"value",type:o}],an.typeName="Super",an.fields=[{name:"type",type:_(k),value:"Super"}],hn.typeName="SwitchCase",hn.fields=[{name:"type",type:_(k),value:"SwitchCase"},{name:"test",type:Bt},{name:"consequent",type:d(Gt)}],gn.typeName="SwitchDefault",gn.fields=[{name:"type",type:_(k),value:"SwitchDefault"},{name:"consequent",type:d(Gt)}],Gn.typeName="SwitchStatement",Gn.fields=[{name:"type",type:_(k),value:"SwitchStatement"},{name:"discriminant",type:Bt},{name:"cases",type:d(hn)}],Vn.typeName="SwitchStatementWithDefault",Vn.fields=[{name:"type",type:_(k),value:"SwitchStatementWithDefault"},{name:"discriminant",type:Bt},{name:"preDefaultCases",type:d(hn)},{name:"defaultCase",type:gn},{name:"postDefaultCases",type:d(hn)}],yn.typeName="TemplateElement",yn.fields=[{name:"type",type:_(k),value:"TemplateElement"},{name:"rawValue",type:o}],Un.typeName="TemplateExpression",Un.fields=[{name:"type",type:_(k),value:"TemplateExpression"},{name:"tag",type:c(Bt)},{name:"elements",type:d(b(Bt,yn))}],zn.typeName="ThisExpression",zn.fields=[{name:"type",type:_(k),value:"ThisExpression"}],Hn.typeName="ThrowStatement",Hn.fields=[{name:"type",type:_(k),value:"ThrowStatement"},{name:"expression",type:Bt}],Yn.typeName="TryCatchStatement",Yn.fields=[{name:"type",type:_(k),value:"TryCatchStatement"},{name:"body",type:Et},{name:"catchClause",type:Ct}],Xn.typeName="TryFinallyStatement",Xn.fields=[{name:"type",type:_(k),value:"TryFinallyStatement"},{name:"body",type:Et},{name:"catchClause",type:c(Ct)},{name:"finalizer",type:Et}],Zn.typeName="UnaryExpression",Zn.fields=[{name:"type",type:_(k),value:"UnaryExpression"},{name:"operator",type:_e},{name:"operand",type:Bt}],Kn.typeName="UpdateExpression",Kn.fields=[{name:"type",type:_(k),value:"UpdateExpression"},{name:"isPrefix",type:e},{name:"operator",type:et},{name:"operand",type:b(at,Yt)}],rn.typeName="VariableDeclaration",rn.fields=[{name:"type",type:_(k),value:"VariableDeclaration"},{name:"kind",type:tt},{name:"declarators",type:d(En)}],Jn.typeName="VariableDeclarationStatement",Jn.fields=[{name:"type",type:_(k),value:"VariableDeclarationStatement"},{name:"declaration",type:rn}],En.typeName="VariableDeclarator",En.fields=[{name:"type",type:_(k),value:"VariableDeclarator"},{name:"binding",type:b(ft,b(it,Ut))},{name:"init",type:c(Bt)}],er.typeName="WhileStatement",er.fields=[{name:"type",type:_(k),value:"WhileStatement"},{name:"test",type:Bt},{name:"body",type:Gt}],tr.typeName="WithStatement",tr.fields=[{name:"type",type:_(k),value:"WithStatement"},{name:"object",type:Bt},{name:"body",type:Gt}],nr.typeName="YieldExpression",nr.fields=[{name:"type",type:_(k),value:"YieldExpression"},{name:"expression",type:c(Bt)}],rr.typeName="YieldGeneratorExpression",rr.fields=[{name:"type",type:_(k),value:"YieldGeneratorExpression"},{name:"expression",type:Bt}],a}(),estraverse$1={};(function(a){(function e(s){var o,c,d,_,b,k;function $(lt){var ut={},ct,dt;for(ct in lt)lt.hasOwnProperty(ct)&&(dt=lt[ct],typeof dt=="object"&&dt!==null?ut[ct]=$(dt):ut[ct]=dt);return ut}function j(lt,ut){var ct,dt,ft,yt;for(dt=lt.length,ft=0;dt;)ct=dt>>>1,yt=ft+ct,ut(lt[yt])?dt=ct:(ft=yt+1,dt-=ct+1);return ft}o={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",PrivateIdentifier:"PrivateIdentifier",Program:"Program",Property:"Property",PropertyDefinition:"PropertyDefinition",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},d={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},_={},b={},k={},c={Break:_,Skip:b,Remove:k};function _e(lt,ut){this.parent=lt,this.key=ut}_e.prototype.replace=function(ut){this.parent[this.key]=ut},_e.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)};function et(lt,ut,ct,dt){this.node=lt,this.path=ut,this.wrap=ct,this.ref=dt}function tt(){}tt.prototype.path=function(){var ut,ct,dt,ft,yt,_t;function gt(Et,pt){if(Array.isArray(pt))for(dt=0,ft=pt.length;dt=0;--ct)if(lt[ct].node===ut)return!0;return!1}tt.prototype.traverse=function(ut,ct){var dt,ft,yt,_t,gt,Et,pt,mt,At,Ct,Ot,St;for(this.__initialize(ut,ct),St={},dt=this.__worklist,ft=this.__leavelist,dt.push(new et(ut,null,null,null)),ft.push(new et(null,null,null,null));dt.length;){if(yt=dt.pop(),yt===St){if(yt=ft.pop(),Et=this.__execute(ct.leave,yt),this.__state===_||Et===_)return;continue}if(yt.node){if(Et=this.__execute(ct.enter,yt),this.__state===_||Et===_)return;if(dt.push(St),ft.push(yt),this.__state===b||Et===b)continue;if(_t=yt.node,gt=_t.type||yt.wrap,Ct=this.__keys[gt],!Ct)if(this.__fallback)Ct=this.__fallback(_t);else throw new Error("Unknown node type "+gt+".");for(mt=Ct.length;(mt-=1)>=0;)if(pt=Ct[mt],Ot=_t[pt],!!Ot){if(Array.isArray(Ot)){for(At=Ot.length;(At-=1)>=0;)if(!!Ot[At]&&!rt(ft,Ot[At])){if(it(gt,Ct[mt]))yt=new et(Ot[At],[pt,At],"Property",null);else if(nt(Ot[At]))yt=new et(Ot[At],[pt,At],null,null);else continue;dt.push(yt)}}else if(nt(Ot)){if(rt(ft,Ot))continue;dt.push(new et(Ot,pt,null,null))}}}}},tt.prototype.replace=function(ut,ct){var dt,ft,yt,_t,gt,Et,pt,mt,At,Ct,Ot,St,Tt;function vt(bt){var xt,Rt,$t,It;if(bt.ref.remove()){for(Rt=bt.ref.key,It=bt.ref.parent,xt=dt.length;xt--;)if($t=dt[xt],$t.ref&&$t.ref.parent===It){if($t.ref.key=0;)if(Tt=At[pt],Ct=yt[Tt],!!Ct)if(Array.isArray(Ct)){for(mt=Ct.length;(mt-=1)>=0;)if(!!Ct[mt]){if(it(_t,At[pt]))Et=new et(Ct[mt],[Tt,mt],"Property",new _e(Ct,mt));else if(nt(Ct[mt]))Et=new et(Ct[mt],[Tt,mt],null,new _e(Ct,mt));else continue;dt.push(Et)}}else nt(Ct)&&dt.push(new et(Ct,Tt,null,new _e(yt,Tt)))}}return St.root};function st(lt,ut){var ct=new tt;return ct.traverse(lt,ut)}function ot(lt,ut){var ct=new tt;return ct.replace(lt,ut)}function at(lt,ut){var ct;return ct=j(ut,function(ft){return ft.range[0]>lt.range[0]}),lt.extendedRange=[lt.range[0],lt.range[1]],ct!==ut.length&&(lt.extendedRange[1]=ut[ct].range[0]),ct-=1,ct>=0&&(lt.extendedRange[0]=ut[ct].range[1]),lt}function ht(lt,ut,ct){var dt=[],ft,yt,_t,gt;if(!lt.range)throw new Error("attachComments needs range information");if(!ct.length){if(ut.length){for(_t=0,yt=ut.length;_tEt.range[0]));)pt.extendedRange[1]===Et.range[0]?(Et.leadingComments||(Et.leadingComments=[]),Et.leadingComments.push(pt),dt.splice(gt,1)):gt+=1;if(gt===dt.length)return c.Break;if(dt[gt].extendedRange[0]>Et.range[1])return c.Skip}}),gt=0,st(lt,{leave:function(Et){for(var pt;gtEt.range[1])return c.Skip}}),lt}return s.Syntax=o,s.traverse=st,s.replace=ot,s.attachComments=ht,s.VisitorKeys=d,s.VisitorOption=c,s.Controller=tt,s.cloneEnvironment=function(){return e({})},s})(a)})(estraverse$1);const Spec=_default.default||_default,estraverse=estraverse$1.cloneEnvironment();Object.keys(estraverse.Syntax).filter(a=>a!=="Property").forEach(a=>{delete estraverse.Syntax[a],delete estraverse.VisitorKeys[a]});Object.assign(estraverse.Syntax,Object.keys(Spec).reduce((a,e)=>(a[e]=e,a),{}));Object.assign(estraverse.VisitorKeys,Object.keys(Spec).reduce((a,e)=>(a[e]=Spec[e].fields.map(s=>s.name),a),{}));var dist$1={},StaticMemberExpression_1,ReturnStatement_1,LiteralStringExpression_1,LiteralNumericExpression_1,IdentifierExpression_1,CallExpression_1,ArrayExpression_1;Object.defineProperty(dist$1,"__esModule",{value:!0});function _classCallCheck$5(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}dist$1.ArrayAssignmentTarget=function a(e){var s=e.elements,o=e.rest;_classCallCheck$5(this,a),this.type="ArrayAssignmentTarget",this.elements=s,this.rest=o};dist$1.ArrayBinding=function a(e){var s=e.elements,o=e.rest;_classCallCheck$5(this,a),this.type="ArrayBinding",this.elements=s,this.rest=o};ArrayExpression_1=dist$1.ArrayExpression=function a(e){var s=e.elements;_classCallCheck$5(this,a),this.type="ArrayExpression",this.elements=s};dist$1.ArrowExpression=function a(e){var s=e.isAsync,o=e.params,c=e.body;_classCallCheck$5(this,a),this.type="ArrowExpression",this.isAsync=s,this.params=o,this.body=c};dist$1.AssignmentExpression=function a(e){var s=e.binding,o=e.expression;_classCallCheck$5(this,a),this.type="AssignmentExpression",this.binding=s,this.expression=o};dist$1.AssignmentTargetIdentifier=function a(e){var s=e.name;_classCallCheck$5(this,a),this.type="AssignmentTargetIdentifier",this.name=s};dist$1.AssignmentTargetPropertyIdentifier=function a(e){var s=e.binding,o=e.init;_classCallCheck$5(this,a),this.type="AssignmentTargetPropertyIdentifier",this.binding=s,this.init=o};dist$1.AssignmentTargetPropertyProperty=function a(e){var s=e.name,o=e.binding;_classCallCheck$5(this,a),this.type="AssignmentTargetPropertyProperty",this.name=s,this.binding=o};dist$1.AssignmentTargetWithDefault=function a(e){var s=e.binding,o=e.init;_classCallCheck$5(this,a),this.type="AssignmentTargetWithDefault",this.binding=s,this.init=o};dist$1.AwaitExpression=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="AwaitExpression",this.expression=s};dist$1.BinaryExpression=function a(e){var s=e.left,o=e.operator,c=e.right;_classCallCheck$5(this,a),this.type="BinaryExpression",this.left=s,this.operator=o,this.right=c};dist$1.BindingIdentifier=function a(e){var s=e.name;_classCallCheck$5(this,a),this.type="BindingIdentifier",this.name=s};dist$1.BindingPropertyIdentifier=function a(e){var s=e.binding,o=e.init;_classCallCheck$5(this,a),this.type="BindingPropertyIdentifier",this.binding=s,this.init=o};dist$1.BindingPropertyProperty=function a(e){var s=e.name,o=e.binding;_classCallCheck$5(this,a),this.type="BindingPropertyProperty",this.name=s,this.binding=o};dist$1.BindingWithDefault=function a(e){var s=e.binding,o=e.init;_classCallCheck$5(this,a),this.type="BindingWithDefault",this.binding=s,this.init=o};dist$1.Block=function a(e){var s=e.statements;_classCallCheck$5(this,a),this.type="Block",this.statements=s};dist$1.BlockStatement=function a(e){var s=e.block;_classCallCheck$5(this,a),this.type="BlockStatement",this.block=s};dist$1.BreakStatement=function a(e){var s=e.label;_classCallCheck$5(this,a),this.type="BreakStatement",this.label=s};CallExpression_1=dist$1.CallExpression=function a(e){var s=e.callee,o=e.arguments;_classCallCheck$5(this,a),this.type="CallExpression",this.callee=s,this.arguments=o};dist$1.CatchClause=function a(e){var s=e.binding,o=e.body;_classCallCheck$5(this,a),this.type="CatchClause",this.binding=s,this.body=o};dist$1.ClassDeclaration=function a(e){var s=e.name,o=e.super,c=e.elements;_classCallCheck$5(this,a),this.type="ClassDeclaration",this.name=s,this.super=o,this.elements=c};dist$1.ClassElement=function a(e){var s=e.isStatic,o=e.method;_classCallCheck$5(this,a),this.type="ClassElement",this.isStatic=s,this.method=o};dist$1.ClassExpression=function a(e){var s=e.name,o=e.super,c=e.elements;_classCallCheck$5(this,a),this.type="ClassExpression",this.name=s,this.super=o,this.elements=c};dist$1.CompoundAssignmentExpression=function a(e){var s=e.binding,o=e.operator,c=e.expression;_classCallCheck$5(this,a),this.type="CompoundAssignmentExpression",this.binding=s,this.operator=o,this.expression=c};dist$1.ComputedMemberAssignmentTarget=function a(e){var s=e.object,o=e.expression;_classCallCheck$5(this,a),this.type="ComputedMemberAssignmentTarget",this.object=s,this.expression=o};dist$1.ComputedMemberExpression=function a(e){var s=e.object,o=e.expression;_classCallCheck$5(this,a),this.type="ComputedMemberExpression",this.object=s,this.expression=o};dist$1.ComputedPropertyName=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="ComputedPropertyName",this.expression=s};dist$1.ConditionalExpression=function a(e){var s=e.test,o=e.consequent,c=e.alternate;_classCallCheck$5(this,a),this.type="ConditionalExpression",this.test=s,this.consequent=o,this.alternate=c};dist$1.ContinueStatement=function a(e){var s=e.label;_classCallCheck$5(this,a),this.type="ContinueStatement",this.label=s};dist$1.DataProperty=function a(e){var s=e.name,o=e.expression;_classCallCheck$5(this,a),this.type="DataProperty",this.name=s,this.expression=o};dist$1.DebuggerStatement=function a(){_classCallCheck$5(this,a),this.type="DebuggerStatement"};dist$1.Directive=function a(e){var s=e.rawValue;_classCallCheck$5(this,a),this.type="Directive",this.rawValue=s};dist$1.DoWhileStatement=function a(e){var s=e.body,o=e.test;_classCallCheck$5(this,a),this.type="DoWhileStatement",this.body=s,this.test=o};dist$1.EmptyStatement=function a(){_classCallCheck$5(this,a),this.type="EmptyStatement"};dist$1.Export=function a(e){var s=e.declaration;_classCallCheck$5(this,a),this.type="Export",this.declaration=s};dist$1.ExportAllFrom=function a(e){var s=e.moduleSpecifier;_classCallCheck$5(this,a),this.type="ExportAllFrom",this.moduleSpecifier=s};dist$1.ExportDefault=function a(e){var s=e.body;_classCallCheck$5(this,a),this.type="ExportDefault",this.body=s};dist$1.ExportFrom=function a(e){var s=e.namedExports,o=e.moduleSpecifier;_classCallCheck$5(this,a),this.type="ExportFrom",this.namedExports=s,this.moduleSpecifier=o};dist$1.ExportFromSpecifier=function a(e){var s=e.name,o=e.exportedName;_classCallCheck$5(this,a),this.type="ExportFromSpecifier",this.name=s,this.exportedName=o};dist$1.ExportLocalSpecifier=function a(e){var s=e.name,o=e.exportedName;_classCallCheck$5(this,a),this.type="ExportLocalSpecifier",this.name=s,this.exportedName=o};dist$1.ExportLocals=function a(e){var s=e.namedExports;_classCallCheck$5(this,a),this.type="ExportLocals",this.namedExports=s};dist$1.ExpressionStatement=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="ExpressionStatement",this.expression=s};dist$1.ForAwaitStatement=function a(e){var s=e.left,o=e.right,c=e.body;_classCallCheck$5(this,a),this.type="ForAwaitStatement",this.left=s,this.right=o,this.body=c};dist$1.ForInStatement=function a(e){var s=e.left,o=e.right,c=e.body;_classCallCheck$5(this,a),this.type="ForInStatement",this.left=s,this.right=o,this.body=c};dist$1.ForOfStatement=function a(e){var s=e.left,o=e.right,c=e.body;_classCallCheck$5(this,a),this.type="ForOfStatement",this.left=s,this.right=o,this.body=c};dist$1.ForStatement=function a(e){var s=e.init,o=e.test,c=e.update,d=e.body;_classCallCheck$5(this,a),this.type="ForStatement",this.init=s,this.test=o,this.update=c,this.body=d};dist$1.FormalParameters=function a(e){var s=e.items,o=e.rest;_classCallCheck$5(this,a),this.type="FormalParameters",this.items=s,this.rest=o};dist$1.FunctionBody=function a(e){var s=e.directives,o=e.statements;_classCallCheck$5(this,a),this.type="FunctionBody",this.directives=s,this.statements=o};dist$1.FunctionDeclaration=function a(e){var s=e.isAsync,o=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$5(this,a),this.type="FunctionDeclaration",this.isAsync=s,this.isGenerator=o,this.name=c,this.params=d,this.body=_};dist$1.FunctionExpression=function a(e){var s=e.isAsync,o=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$5(this,a),this.type="FunctionExpression",this.isAsync=s,this.isGenerator=o,this.name=c,this.params=d,this.body=_};dist$1.Getter=function a(e){var s=e.name,o=e.body;_classCallCheck$5(this,a),this.type="Getter",this.name=s,this.body=o};IdentifierExpression_1=dist$1.IdentifierExpression=function a(e){var s=e.name;_classCallCheck$5(this,a),this.type="IdentifierExpression",this.name=s};dist$1.IfStatement=function a(e){var s=e.test,o=e.consequent,c=e.alternate;_classCallCheck$5(this,a),this.type="IfStatement",this.test=s,this.consequent=o,this.alternate=c};dist$1.Import=function a(e){var s=e.defaultBinding,o=e.namedImports,c=e.moduleSpecifier;_classCallCheck$5(this,a),this.type="Import",this.defaultBinding=s,this.namedImports=o,this.moduleSpecifier=c};dist$1.ImportNamespace=function a(e){var s=e.defaultBinding,o=e.namespaceBinding,c=e.moduleSpecifier;_classCallCheck$5(this,a),this.type="ImportNamespace",this.defaultBinding=s,this.namespaceBinding=o,this.moduleSpecifier=c};dist$1.ImportSpecifier=function a(e){var s=e.name,o=e.binding;_classCallCheck$5(this,a),this.type="ImportSpecifier",this.name=s,this.binding=o};dist$1.LabeledStatement=function a(e){var s=e.label,o=e.body;_classCallCheck$5(this,a),this.type="LabeledStatement",this.label=s,this.body=o};dist$1.LiteralBooleanExpression=function a(e){var s=e.value;_classCallCheck$5(this,a),this.type="LiteralBooleanExpression",this.value=s};dist$1.LiteralInfinityExpression=function a(){_classCallCheck$5(this,a),this.type="LiteralInfinityExpression"};dist$1.LiteralNullExpression=function a(){_classCallCheck$5(this,a),this.type="LiteralNullExpression"};LiteralNumericExpression_1=dist$1.LiteralNumericExpression=function a(e){var s=e.value;_classCallCheck$5(this,a),this.type="LiteralNumericExpression",this.value=s};dist$1.LiteralRegExpExpression=function a(e){var s=e.pattern,o=e.global,c=e.ignoreCase,d=e.multiLine,_=e.dotAll,b=e.unicode,k=e.sticky;_classCallCheck$5(this,a),this.type="LiteralRegExpExpression",this.pattern=s,this.global=o,this.ignoreCase=c,this.multiLine=d,this.dotAll=_,this.unicode=b,this.sticky=k};LiteralStringExpression_1=dist$1.LiteralStringExpression=function a(e){var s=e.value;_classCallCheck$5(this,a),this.type="LiteralStringExpression",this.value=s};dist$1.Method=function a(e){var s=e.isAsync,o=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$5(this,a),this.type="Method",this.isAsync=s,this.isGenerator=o,this.name=c,this.params=d,this.body=_};dist$1.Module=function a(e){var s=e.directives,o=e.items;_classCallCheck$5(this,a),this.type="Module",this.directives=s,this.items=o};dist$1.NewExpression=function a(e){var s=e.callee,o=e.arguments;_classCallCheck$5(this,a),this.type="NewExpression",this.callee=s,this.arguments=o};dist$1.NewTargetExpression=function a(){_classCallCheck$5(this,a),this.type="NewTargetExpression"};dist$1.ObjectAssignmentTarget=function a(e){var s=e.properties,o=e.rest;_classCallCheck$5(this,a),this.type="ObjectAssignmentTarget",this.properties=s,this.rest=o};dist$1.ObjectBinding=function a(e){var s=e.properties,o=e.rest;_classCallCheck$5(this,a),this.type="ObjectBinding",this.properties=s,this.rest=o};dist$1.ObjectExpression=function a(e){var s=e.properties;_classCallCheck$5(this,a),this.type="ObjectExpression",this.properties=s};ReturnStatement_1=dist$1.ReturnStatement=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="ReturnStatement",this.expression=s};dist$1.Script=function a(e){var s=e.directives,o=e.statements;_classCallCheck$5(this,a),this.type="Script",this.directives=s,this.statements=o};dist$1.Setter=function a(e){var s=e.name,o=e.param,c=e.body;_classCallCheck$5(this,a),this.type="Setter",this.name=s,this.param=o,this.body=c};dist$1.ShorthandProperty=function a(e){var s=e.name;_classCallCheck$5(this,a),this.type="ShorthandProperty",this.name=s};dist$1.SpreadElement=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="SpreadElement",this.expression=s};dist$1.SpreadProperty=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="SpreadProperty",this.expression=s};dist$1.StaticMemberAssignmentTarget=function a(e){var s=e.object,o=e.property;_classCallCheck$5(this,a),this.type="StaticMemberAssignmentTarget",this.object=s,this.property=o};StaticMemberExpression_1=dist$1.StaticMemberExpression=function a(e){var s=e.object,o=e.property;_classCallCheck$5(this,a),this.type="StaticMemberExpression",this.object=s,this.property=o};dist$1.StaticPropertyName=function a(e){var s=e.value;_classCallCheck$5(this,a),this.type="StaticPropertyName",this.value=s};dist$1.Super=function a(){_classCallCheck$5(this,a),this.type="Super"};dist$1.SwitchCase=function a(e){var s=e.test,o=e.consequent;_classCallCheck$5(this,a),this.type="SwitchCase",this.test=s,this.consequent=o};dist$1.SwitchDefault=function a(e){var s=e.consequent;_classCallCheck$5(this,a),this.type="SwitchDefault",this.consequent=s};dist$1.SwitchStatement=function a(e){var s=e.discriminant,o=e.cases;_classCallCheck$5(this,a),this.type="SwitchStatement",this.discriminant=s,this.cases=o};dist$1.SwitchStatementWithDefault=function a(e){var s=e.discriminant,o=e.preDefaultCases,c=e.defaultCase,d=e.postDefaultCases;_classCallCheck$5(this,a),this.type="SwitchStatementWithDefault",this.discriminant=s,this.preDefaultCases=o,this.defaultCase=c,this.postDefaultCases=d};dist$1.TemplateElement=function a(e){var s=e.rawValue;_classCallCheck$5(this,a),this.type="TemplateElement",this.rawValue=s};dist$1.TemplateExpression=function a(e){var s=e.tag,o=e.elements;_classCallCheck$5(this,a),this.type="TemplateExpression",this.tag=s,this.elements=o};dist$1.ThisExpression=function a(){_classCallCheck$5(this,a),this.type="ThisExpression"};dist$1.ThrowStatement=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="ThrowStatement",this.expression=s};dist$1.TryCatchStatement=function a(e){var s=e.body,o=e.catchClause;_classCallCheck$5(this,a),this.type="TryCatchStatement",this.body=s,this.catchClause=o};dist$1.TryFinallyStatement=function a(e){var s=e.body,o=e.catchClause,c=e.finalizer;_classCallCheck$5(this,a),this.type="TryFinallyStatement",this.body=s,this.catchClause=o,this.finalizer=c};dist$1.UnaryExpression=function a(e){var s=e.operator,o=e.operand;_classCallCheck$5(this,a),this.type="UnaryExpression",this.operator=s,this.operand=o};dist$1.UpdateExpression=function a(e){var s=e.isPrefix,o=e.operator,c=e.operand;_classCallCheck$5(this,a),this.type="UpdateExpression",this.isPrefix=s,this.operator=o,this.operand=c};dist$1.VariableDeclaration=function a(e){var s=e.kind,o=e.declarators;_classCallCheck$5(this,a),this.type="VariableDeclaration",this.kind=s,this.declarators=o};dist$1.VariableDeclarationStatement=function a(e){var s=e.declaration;_classCallCheck$5(this,a),this.type="VariableDeclarationStatement",this.declaration=s};dist$1.VariableDeclarator=function a(e){var s=e.binding,o=e.init;_classCallCheck$5(this,a),this.type="VariableDeclarator",this.binding=s,this.init=o};dist$1.WhileStatement=function a(e){var s=e.test,o=e.body;_classCallCheck$5(this,a),this.type="WhileStatement",this.test=s,this.body=o};dist$1.WithStatement=function a(e){var s=e.object,o=e.body;_classCallCheck$5(this,a),this.type="WithStatement",this.object=s,this.body=o};dist$1.YieldExpression=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="YieldExpression",this.expression=s};dist$1.YieldGeneratorExpression=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="YieldGeneratorExpression",this.expression=s};var dist={},minimalCodegen={};/* +`.charCodeAt(0),r:"\r".charCodeAt(0),t:" ".charCodeAt(0),v:"\v".charCodeAt(0)},controlCharacters="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),hexDigits="0123456789abcdefABCDEF".split(""),decimalDigits="0123456789".split(""),octalDigits="01234567".split(""),INVALID_NAMED_BACKREFERENCE_SENTINEL={};function isIdentifierStart(a){return a<128?_unicode$1.idStartBool[a]:_unicode$1.idStartLargeRegex.test(String.fromCodePoint(a))}function isIdentifierPart(a){return a<128?_unicode$1.idContinueBool[a]:_unicode$1.idContinueLargeRegex.test(String.fromCodePoint(a))}var PatternAcceptorState=function(){function a(e,s){_classCallCheck$h(this,a),this.pattern=e,this.unicode=s,this.index=0,this.largestBackreference=0,this.backreferenceNames=[],this.groupingNames=[],this.capturingGroups=0}return _createClass$d(a,[{key:"empty",value:function(){return this.index>=this.pattern.length}},{key:"backreference",value:function(s){s>this.largestBackreference&&(this.largestBackreference=s)}},{key:"nextCodePoint",value:function(){return this.empty()?null:this.unicode?String.fromCodePoint(this.pattern.codePointAt(this.index)):this.pattern.charAt(this.index)}},{key:"skipCodePoint",value:function(){this.index+=this.nextCodePoint().length}},{key:"eat",value:function(s){return this.index+s.length>this.pattern.length||this.pattern.slice(this.index,this.index+s.length)!==s?!1:(this.index+=s.length,!0)}},{key:"eatIdentifierCodePoint",value:function(){var s=void 0,o=this.index,c=void 0;if(this.match("\\u")){if(this.skipCodePoint(),s=acceptUnicodeEscape(this),!s.matched)return this.index=o,null;s=s.value,c=String.fromCodePoint(s)}else{if(c=this.nextCodePoint(),c==null)return this.index=o,null;this.index+=c.length,s=c.codePointAt(0)}return{character:c,characterValue:s}}},{key:"eatIdentifierStart",value:function(){var s=this.index,o=this.eatIdentifierCodePoint();return o===null?(this.index=s,null):o.character==="_"||o.character==="$"||isIdentifierStart(o.characterValue)?o.character:(this.index=s,null)}},{key:"eatIdentifierPart",value:function(){var s=this.index,o=this.eatIdentifierCodePoint();return o===null?(this.index=s,null):o.character==="\u200C"||o.character==="\u200D"||o.character==="$"||isIdentifierPart(o.characterValue)?o.character:(this.index=s,null)}},{key:"eatAny",value:function(){for(var s=arguments.length,o=Array(s),c=0;c1&&arguments[1]!==void 0?arguments[1]:{},s=e.unicode,o=s===void 0?!1:s,c=new PatternAcceptorState(a,o),d=acceptDisjunction(c);if(d.matched){if(c.unicode&&c.largestBackreference>c.capturingGroups)return!1;if(c.groupingNames.length>0||c.unicode){var _=!0,b=!1,k=void 0;try{for(var $=c.backreferenceNames[Symbol.iterator](),j;!(_=(j=$.next()).done);_=!0){var _e=j.value;if(c.groupingNames.indexOf(_e)===-1)return!1}}catch(et){b=!0,k=et}finally{try{!_&&$.return&&$.return()}finally{if(b)throw k}}}}return d.matched};var backtrackOnFailure=function(e){return function(s){var o=s.index,c=s.largestBackreference,d=s.capturingGroups,_=e(s);return _.matched||(s.index=o,s.largestBackreference=c,s.capturingGroups=d),_}},acceptUnicodeEscape=backtrackOnFailure(function(a){if(!a.eat("u"))return{matched:!1};if(a.unicode&&a.eat("{")){for(var e=[];!a.eat("}");){var s=a.eatAny.apply(a,_toConsumableArray$6(hexDigits));if(s===null)return{matched:!1};e.push(s)}var o=parseInt(e.join(""),16);return o>1114111?{matched:!1}:{matched:!0,value:o}}var c=[0,0,0,0].map(function(){return a.eatAny.apply(a,_toConsumableArray$6(hexDigits))});if(c.some(function(b){return b===null}))return{matched:!1};var d=parseInt(c.join(""),16);if(a.unicode&&d>=55296&&d<=56319){var _=backtrackOnFailure(function(b){if(!b.eat("\\u"))return{matched:!1};var k=[0,0,0,0].map(function(){return b.eatAny.apply(b,_toConsumableArray$6(hexDigits))});if(k.some(function(j){return j===null}))return{matched:!1};var $=parseInt(k.join(""),16);return $<56320||$>=57344?{matched:!1}:{matched:!0,value:65536+((d&1023)<<10)+($&1023)}})(a);if(_.matched)return _}return{matched:!0,value:d}}),acceptDisjunction=function(e,s){do{if(s!==void 0&&e.eat(s))return{matched:!0};if(e.match("|"))continue;if(!acceptAlternative(e,s).matched)return{matched:!1}}while(e.eat("|"));return{matched:s===void 0||!!e.eat(s)}},acceptAlternative=function(e,s){for(;!e.match("|")&&!e.empty()&&(s===void 0||!e.match(s));)if(!acceptTerm(e).matched)return{matched:!1};return{matched:!0}},anyOf=function(){for(var e=arguments.length,s=Array(e),o=0;oparseInt(_))return{matched:!1}}return c.eat("}")?(c.eat("?"),{matched:!0}):{matched:!1}})(s);return o.matched?o:{matched:!s.unicode}}else s.eatAny("*","+","?")&&s.eat("?");return{matched:!0}})},acceptCharacterExcept=function(e){return function(s){var o=s.nextCodePoint();return o===null||e.indexOf(o)!==-1?{matched:!1}:(s.skipCodePoint(),{matched:!0})}},acceptPatternCharacter=acceptCharacterExcept(syntaxCharacters),acceptExtendedPatternCharacter=acceptCharacterExcept(extendedSyntaxCharacters),acceptInvalidBracedQuantifier=function(e){return backtrackOnFailure(function(s){return{matched:!!(s.eat("{")&&acceptDecimal(s).matched&&(!s.eat(",")||s.match("}")||acceptDecimal(s).matched)&&s.eat("}"))}})(e)},acceptAtom=function(e){if(e.unicode)return anyOf(acceptPatternCharacter,function(o){return{matched:!!o.eat(".")}},backtrackOnFailure(function(o){return o.eat("\\")?acceptAtomEscape(o):{matched:!1}}),acceptCharacterClass,acceptLabeledGroup(function(o){return o.eat("?:")}),acceptGrouping)(e);var s=anyOf(function(o){return{matched:!!o.eat(".")}},backtrackOnFailure(function(o){return o.eat("\\")?acceptAtomEscape(o):{matched:!1}}),backtrackOnFailure(function(o){return{matched:o.eat("\\")&&o.match("c")}}),acceptCharacterClass,acceptLabeledGroup(function(o){return o.eat("?:")}),acceptGrouping)(e);return!s.matched&&acceptInvalidBracedQuantifier(e).matched?{matched:!1}:s.matched?s:acceptExtendedPatternCharacter(e)},acceptGrouping=backtrackOnFailure(function(a){if(!a.eat("("))return{matched:!1};var e=backtrackOnFailure(function(s){return a.eat("?")?acceptGroupName(s):{matched:!1}})(a);if(!acceptDisjunction(a,")").matched)return{matched:!1};if(e.matched){if(a.groupingNames.indexOf(e.data)!==-1)return{matched:!1};a.groupingNames.push(e.data)}return a.capturingGroups++,{matched:!0}}),acceptDecimalEscape=backtrackOnFailure(function(a){var e=a.eatAny.apply(a,_toConsumableArray$6(decimalDigits));return e===null?{matched:!1}:e==="0"?{matched:!0}:(a.backreference(parseInt(e+(a.eatNaturalNumber()||""))),{matched:!0})}),acceptCharacterClassEscape=function(e){return e.eatAny("d","D","s","S","w","W")?{matched:!0}:e.unicode?backtrackOnFailure(function(s){return!s.eat("p{")&&!s.eat("P{")?{matched:!1}:acceptUnicodePropertyValueExpression(s).matched?{matched:!!s.eat("}")}:{matched:!1}})(e):{matched:!1}},acceptUnicodePropertyName=function(e){for(var s=[],o=void 0;o=e.eatAny.apply(e,_toConsumableArray$6(controlCharacters).concat(["_"]));)s.push(o);return{matched:s.length>0,data:s.join("")}},acceptUnicodePropertyValue=function(e){for(var s=[],o=void 0;o=e.eatAny.apply(e,_toConsumableArray$6(controlCharacters).concat(_toConsumableArray$6(decimalDigits),["_"]));)s.push(o);return{matched:s.length>0,data:s.join("")}},illegalLoneUnicodePropertyNames=["General_Category","Script","Script_Extensions","scx","sc","gc"],generalCategoryValues=_mappings2.default.get("General_Category"),acceptLoneUnicodePropertyNameOrValue=function(e){var s=acceptUnicodePropertyValue(e);return!s.matched||illegalLoneUnicodePropertyNames.includes(s.data)?{matched:!1}:{matched:catchIsFalse(function(){return(0,_unicodeMatchPropertyEcmascript2.default)(s.data)})||generalCategoryValues.get(s.data)!=null}},acceptUnicodePropertyValueExpression=function(e){return anyOf(backtrackOnFailure(function(s){var o=acceptUnicodePropertyName(s);if(!o.matched||!s.eat("="))return{matched:!1};var c=acceptUnicodePropertyValue(s);return c.matched?{matched:catchIsFalse(function(){return(0,_unicodeMatchPropertyValueEcmascript2.default)(_unicodePropertyAliasesEcmascript2.default.get(o.data)||o.data,c.data)})}:{matched:!1}}),backtrackOnFailure(acceptLoneUnicodePropertyNameOrValue))(e)},acceptCharacterEscape=anyOf(function(a){var e=a.eatAny.apply(a,_toConsumableArray$6(controlEscapeCharacters));return e===null?{matched:!1}:{matched:!0,value:controlEscapeCharacterValues[e]}},backtrackOnFailure(function(a){if(!a.eat("c"))return{matched:!1};var e=a.eatAny.apply(a,_toConsumableArray$6(controlCharacters));return e===null?{matched:!1}:{matched:!0,value:e.charCodeAt(0)%32}}),backtrackOnFailure(function(a){return!a.eat("0")||a.eatAny.apply(a,_toConsumableArray$6(decimalDigits))?{matched:!1}:{matched:!0,value:0}}),backtrackOnFailure(function(a){if(!a.eat("x"))return{matched:!1};var e=[0,0].map(function(){return a.eatAny.apply(a,_toConsumableArray$6(hexDigits))});return e.some(function(s){return s===null})?{matched:!1}:{matched:!0,value:parseInt(e.join(""),16)}}),acceptUnicodeEscape,backtrackOnFailure(function(a){if(a.unicode)return{matched:!1};var e=a.eatAny.apply(a,_toConsumableArray$6(octalDigits));if(e===null)return{matched:!1};var s=parseInt(e,8);if(octalDigits.indexOf(a.nextCodePoint())===-1)return{matched:!0,value:s};var o=a.eatAny.apply(a,_toConsumableArray$6(octalDigits)),c=parseInt(o,8);if(s<4){if(octalDigits.indexOf(a.nextCodePoint())===-1)return{matched:!0,value:s<<3|c};var d=a.eatAny.apply(a,_toConsumableArray$6(octalDigits)),_=parseInt(d,8);return{matched:!0,value:s<<6|c<<3|_}}return{matched:!0,value:s<<3|c}}),backtrackOnFailure(function(a){if(!a.unicode)return{matched:!1};var e=a.eatAny.apply(a,_toConsumableArray$6(syntaxCharacters));return e===null?{matched:!1}:{matched:!0,value:e.charCodeAt(0)}}),function(a){return!a.unicode||!a.eat("/")?{matched:!1}:{matched:!0,value:"/".charCodeAt(0)}},backtrackOnFailure(function(a){if(a.unicode)return{matched:!1};var e=a.nextCodePoint();return e!==null&&e!=="c"&&e!=="k"?(a.skipCodePoint(),{matched:!0,value:e.codePointAt(0)}):{matched:!1}})),acceptGroupNameBackreference=backtrackOnFailure(function(a){if(!a.eat("k"))return{matched:!1};var e=acceptGroupName(a);return e.matched?(a.backreferenceNames.push(e.data),{matched:!0}):(a.backreferenceNames.push(INVALID_NAMED_BACKREFERENCE_SENTINEL),{matched:!0})}),acceptGroupName=backtrackOnFailure(function(a){if(!a.eat("<"))return{matched:!1};var e=[],s=a.eatIdentifierStart();if(!s)return{matched:!1};e.push(s);for(var o=void 0;o=a.eatIdentifierPart();)e.push(o);return a.eat(">")?{matched:e.length>0,data:e.join("")}:{matched:!1}}),acceptAtomEscape=anyOf(acceptDecimalEscape,acceptCharacterClassEscape,acceptCharacterEscape,acceptGroupNameBackreference),acceptCharacterClass=backtrackOnFailure(function(a){if(!a.eat("["))return{matched:!1};a.eat("^");var e=anyOf(function(k){return{matched:!!k.eat("b"),value:8}},function(k){return{matched:k.unicode&&!!k.eat("-"),value:"-".charCodeAt(0)}},backtrackOnFailure(function(k){if(k.unicode||!k.eat("c"))return{matched:!1};var $=k.eatAny.apply(k,_toConsumableArray$6(decimalDigits).concat(["_"]));return $===null?{matched:!1}:{matched:!0,value:$.charCodeAt(0)%32}}),acceptCharacterClassEscape,acceptCharacterEscape,function(k){return{matched:!k.unicode&&!!k.eat("k"),value:107}}),s=function($){var j=$.nextCodePoint();if(j==="]"||j==="-"||j===null)return{matched:!1};if(j!=="\\")return $.skipCodePoint(),{matched:!0,value:j.codePointAt(0)};$.eat("\\");var _e=e($);return!_e.matched&&$.nextCodePoint()==="c"&&!$.unicode?{matched:!0,value:"\\".charCodeAt(0)}:_e},o=function($){return $.eat("-")?{matched:!0,value:"-".charCodeAt(0)}:s($)},c=function($,j){var _e=function(nt){return nt.value===void 0&&nt.matched};if($.eat("-")){if($.match("]"))return{matched:!0};var et=o($);return et.matched?$.unicode&&(_e(j)||_e(et))?{matched:!1}:!(!$.unicode&&(_e(j)||_e(et)))&&j.value>et.value?{matched:!1}:$.match("]")?{matched:!0}:d($):{matched:!1}}return $.match("]")?{matched:!0}:_($)},d=function($){var j=o($);return j.matched?c($,j):{matched:!1}},_=function($){var j=s($);return j.matched?c($,j):{matched:!1}};if(a.eat("]"))return{matched:!0};var b=d(a);return b.matched&&a.eat("]"),b}),dist$5={};Object.defineProperty(dist$5,"__esModule",{value:!0});function _classCallCheck$g(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}dist$5.ArrayAssignmentTarget=function a(e){var s=e.elements,o=e.rest;_classCallCheck$g(this,a),this.type="ArrayAssignmentTarget",this.elements=s,this.rest=o};dist$5.ArrayBinding=function a(e){var s=e.elements,o=e.rest;_classCallCheck$g(this,a),this.type="ArrayBinding",this.elements=s,this.rest=o};dist$5.ArrayExpression=function a(e){var s=e.elements;_classCallCheck$g(this,a),this.type="ArrayExpression",this.elements=s};dist$5.ArrowExpression=function a(e){var s=e.isAsync,o=e.params,c=e.body;_classCallCheck$g(this,a),this.type="ArrowExpression",this.isAsync=s,this.params=o,this.body=c};dist$5.AssignmentExpression=function a(e){var s=e.binding,o=e.expression;_classCallCheck$g(this,a),this.type="AssignmentExpression",this.binding=s,this.expression=o};dist$5.AssignmentTargetIdentifier=function a(e){var s=e.name;_classCallCheck$g(this,a),this.type="AssignmentTargetIdentifier",this.name=s};dist$5.AssignmentTargetPropertyIdentifier=function a(e){var s=e.binding,o=e.init;_classCallCheck$g(this,a),this.type="AssignmentTargetPropertyIdentifier",this.binding=s,this.init=o};dist$5.AssignmentTargetPropertyProperty=function a(e){var s=e.name,o=e.binding;_classCallCheck$g(this,a),this.type="AssignmentTargetPropertyProperty",this.name=s,this.binding=o};dist$5.AssignmentTargetWithDefault=function a(e){var s=e.binding,o=e.init;_classCallCheck$g(this,a),this.type="AssignmentTargetWithDefault",this.binding=s,this.init=o};dist$5.AwaitExpression=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="AwaitExpression",this.expression=s};dist$5.BinaryExpression=function a(e){var s=e.left,o=e.operator,c=e.right;_classCallCheck$g(this,a),this.type="BinaryExpression",this.left=s,this.operator=o,this.right=c};dist$5.BindingIdentifier=function a(e){var s=e.name;_classCallCheck$g(this,a),this.type="BindingIdentifier",this.name=s};dist$5.BindingPropertyIdentifier=function a(e){var s=e.binding,o=e.init;_classCallCheck$g(this,a),this.type="BindingPropertyIdentifier",this.binding=s,this.init=o};dist$5.BindingPropertyProperty=function a(e){var s=e.name,o=e.binding;_classCallCheck$g(this,a),this.type="BindingPropertyProperty",this.name=s,this.binding=o};dist$5.BindingWithDefault=function a(e){var s=e.binding,o=e.init;_classCallCheck$g(this,a),this.type="BindingWithDefault",this.binding=s,this.init=o};dist$5.Block=function a(e){var s=e.statements;_classCallCheck$g(this,a),this.type="Block",this.statements=s};dist$5.BlockStatement=function a(e){var s=e.block;_classCallCheck$g(this,a),this.type="BlockStatement",this.block=s};dist$5.BreakStatement=function a(e){var s=e.label;_classCallCheck$g(this,a),this.type="BreakStatement",this.label=s};dist$5.CallExpression=function a(e){var s=e.callee,o=e.arguments;_classCallCheck$g(this,a),this.type="CallExpression",this.callee=s,this.arguments=o};dist$5.CatchClause=function a(e){var s=e.binding,o=e.body;_classCallCheck$g(this,a),this.type="CatchClause",this.binding=s,this.body=o};dist$5.ClassDeclaration=function a(e){var s=e.name,o=e.super,c=e.elements;_classCallCheck$g(this,a),this.type="ClassDeclaration",this.name=s,this.super=o,this.elements=c};dist$5.ClassElement=function a(e){var s=e.isStatic,o=e.method;_classCallCheck$g(this,a),this.type="ClassElement",this.isStatic=s,this.method=o};dist$5.ClassExpression=function a(e){var s=e.name,o=e.super,c=e.elements;_classCallCheck$g(this,a),this.type="ClassExpression",this.name=s,this.super=o,this.elements=c};dist$5.CompoundAssignmentExpression=function a(e){var s=e.binding,o=e.operator,c=e.expression;_classCallCheck$g(this,a),this.type="CompoundAssignmentExpression",this.binding=s,this.operator=o,this.expression=c};dist$5.ComputedMemberAssignmentTarget=function a(e){var s=e.object,o=e.expression;_classCallCheck$g(this,a),this.type="ComputedMemberAssignmentTarget",this.object=s,this.expression=o};dist$5.ComputedMemberExpression=function a(e){var s=e.object,o=e.expression;_classCallCheck$g(this,a),this.type="ComputedMemberExpression",this.object=s,this.expression=o};dist$5.ComputedPropertyName=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="ComputedPropertyName",this.expression=s};dist$5.ConditionalExpression=function a(e){var s=e.test,o=e.consequent,c=e.alternate;_classCallCheck$g(this,a),this.type="ConditionalExpression",this.test=s,this.consequent=o,this.alternate=c};dist$5.ContinueStatement=function a(e){var s=e.label;_classCallCheck$g(this,a),this.type="ContinueStatement",this.label=s};dist$5.DataProperty=function a(e){var s=e.name,o=e.expression;_classCallCheck$g(this,a),this.type="DataProperty",this.name=s,this.expression=o};dist$5.DebuggerStatement=function a(){_classCallCheck$g(this,a),this.type="DebuggerStatement"};dist$5.Directive=function a(e){var s=e.rawValue;_classCallCheck$g(this,a),this.type="Directive",this.rawValue=s};dist$5.DoWhileStatement=function a(e){var s=e.body,o=e.test;_classCallCheck$g(this,a),this.type="DoWhileStatement",this.body=s,this.test=o};dist$5.EmptyStatement=function a(){_classCallCheck$g(this,a),this.type="EmptyStatement"};dist$5.Export=function a(e){var s=e.declaration;_classCallCheck$g(this,a),this.type="Export",this.declaration=s};dist$5.ExportAllFrom=function a(e){var s=e.moduleSpecifier;_classCallCheck$g(this,a),this.type="ExportAllFrom",this.moduleSpecifier=s};dist$5.ExportDefault=function a(e){var s=e.body;_classCallCheck$g(this,a),this.type="ExportDefault",this.body=s};dist$5.ExportFrom=function a(e){var s=e.namedExports,o=e.moduleSpecifier;_classCallCheck$g(this,a),this.type="ExportFrom",this.namedExports=s,this.moduleSpecifier=o};dist$5.ExportFromSpecifier=function a(e){var s=e.name,o=e.exportedName;_classCallCheck$g(this,a),this.type="ExportFromSpecifier",this.name=s,this.exportedName=o};dist$5.ExportLocalSpecifier=function a(e){var s=e.name,o=e.exportedName;_classCallCheck$g(this,a),this.type="ExportLocalSpecifier",this.name=s,this.exportedName=o};dist$5.ExportLocals=function a(e){var s=e.namedExports;_classCallCheck$g(this,a),this.type="ExportLocals",this.namedExports=s};dist$5.ExpressionStatement=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="ExpressionStatement",this.expression=s};dist$5.ForAwaitStatement=function a(e){var s=e.left,o=e.right,c=e.body;_classCallCheck$g(this,a),this.type="ForAwaitStatement",this.left=s,this.right=o,this.body=c};dist$5.ForInStatement=function a(e){var s=e.left,o=e.right,c=e.body;_classCallCheck$g(this,a),this.type="ForInStatement",this.left=s,this.right=o,this.body=c};dist$5.ForOfStatement=function a(e){var s=e.left,o=e.right,c=e.body;_classCallCheck$g(this,a),this.type="ForOfStatement",this.left=s,this.right=o,this.body=c};dist$5.ForStatement=function a(e){var s=e.init,o=e.test,c=e.update,d=e.body;_classCallCheck$g(this,a),this.type="ForStatement",this.init=s,this.test=o,this.update=c,this.body=d};dist$5.FormalParameters=function a(e){var s=e.items,o=e.rest;_classCallCheck$g(this,a),this.type="FormalParameters",this.items=s,this.rest=o};dist$5.FunctionBody=function a(e){var s=e.directives,o=e.statements;_classCallCheck$g(this,a),this.type="FunctionBody",this.directives=s,this.statements=o};dist$5.FunctionDeclaration=function a(e){var s=e.isAsync,o=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$g(this,a),this.type="FunctionDeclaration",this.isAsync=s,this.isGenerator=o,this.name=c,this.params=d,this.body=_};dist$5.FunctionExpression=function a(e){var s=e.isAsync,o=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$g(this,a),this.type="FunctionExpression",this.isAsync=s,this.isGenerator=o,this.name=c,this.params=d,this.body=_};dist$5.Getter=function a(e){var s=e.name,o=e.body;_classCallCheck$g(this,a),this.type="Getter",this.name=s,this.body=o};dist$5.IdentifierExpression=function a(e){var s=e.name;_classCallCheck$g(this,a),this.type="IdentifierExpression",this.name=s};dist$5.IfStatement=function a(e){var s=e.test,o=e.consequent,c=e.alternate;_classCallCheck$g(this,a),this.type="IfStatement",this.test=s,this.consequent=o,this.alternate=c};dist$5.Import=function a(e){var s=e.defaultBinding,o=e.namedImports,c=e.moduleSpecifier;_classCallCheck$g(this,a),this.type="Import",this.defaultBinding=s,this.namedImports=o,this.moduleSpecifier=c};dist$5.ImportNamespace=function a(e){var s=e.defaultBinding,o=e.namespaceBinding,c=e.moduleSpecifier;_classCallCheck$g(this,a),this.type="ImportNamespace",this.defaultBinding=s,this.namespaceBinding=o,this.moduleSpecifier=c};dist$5.ImportSpecifier=function a(e){var s=e.name,o=e.binding;_classCallCheck$g(this,a),this.type="ImportSpecifier",this.name=s,this.binding=o};dist$5.LabeledStatement=function a(e){var s=e.label,o=e.body;_classCallCheck$g(this,a),this.type="LabeledStatement",this.label=s,this.body=o};dist$5.LiteralBooleanExpression=function a(e){var s=e.value;_classCallCheck$g(this,a),this.type="LiteralBooleanExpression",this.value=s};dist$5.LiteralInfinityExpression=function a(){_classCallCheck$g(this,a),this.type="LiteralInfinityExpression"};dist$5.LiteralNullExpression=function a(){_classCallCheck$g(this,a),this.type="LiteralNullExpression"};dist$5.LiteralNumericExpression=function a(e){var s=e.value;_classCallCheck$g(this,a),this.type="LiteralNumericExpression",this.value=s};dist$5.LiteralRegExpExpression=function a(e){var s=e.pattern,o=e.global,c=e.ignoreCase,d=e.multiLine,_=e.dotAll,b=e.unicode,k=e.sticky;_classCallCheck$g(this,a),this.type="LiteralRegExpExpression",this.pattern=s,this.global=o,this.ignoreCase=c,this.multiLine=d,this.dotAll=_,this.unicode=b,this.sticky=k};dist$5.LiteralStringExpression=function a(e){var s=e.value;_classCallCheck$g(this,a),this.type="LiteralStringExpression",this.value=s};dist$5.Method=function a(e){var s=e.isAsync,o=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$g(this,a),this.type="Method",this.isAsync=s,this.isGenerator=o,this.name=c,this.params=d,this.body=_};dist$5.Module=function a(e){var s=e.directives,o=e.items;_classCallCheck$g(this,a),this.type="Module",this.directives=s,this.items=o};dist$5.NewExpression=function a(e){var s=e.callee,o=e.arguments;_classCallCheck$g(this,a),this.type="NewExpression",this.callee=s,this.arguments=o};dist$5.NewTargetExpression=function a(){_classCallCheck$g(this,a),this.type="NewTargetExpression"};dist$5.ObjectAssignmentTarget=function a(e){var s=e.properties,o=e.rest;_classCallCheck$g(this,a),this.type="ObjectAssignmentTarget",this.properties=s,this.rest=o};dist$5.ObjectBinding=function a(e){var s=e.properties,o=e.rest;_classCallCheck$g(this,a),this.type="ObjectBinding",this.properties=s,this.rest=o};dist$5.ObjectExpression=function a(e){var s=e.properties;_classCallCheck$g(this,a),this.type="ObjectExpression",this.properties=s};dist$5.ReturnStatement=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="ReturnStatement",this.expression=s};dist$5.Script=function a(e){var s=e.directives,o=e.statements;_classCallCheck$g(this,a),this.type="Script",this.directives=s,this.statements=o};dist$5.Setter=function a(e){var s=e.name,o=e.param,c=e.body;_classCallCheck$g(this,a),this.type="Setter",this.name=s,this.param=o,this.body=c};dist$5.ShorthandProperty=function a(e){var s=e.name;_classCallCheck$g(this,a),this.type="ShorthandProperty",this.name=s};dist$5.SpreadElement=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="SpreadElement",this.expression=s};dist$5.SpreadProperty=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="SpreadProperty",this.expression=s};dist$5.StaticMemberAssignmentTarget=function a(e){var s=e.object,o=e.property;_classCallCheck$g(this,a),this.type="StaticMemberAssignmentTarget",this.object=s,this.property=o};dist$5.StaticMemberExpression=function a(e){var s=e.object,o=e.property;_classCallCheck$g(this,a),this.type="StaticMemberExpression",this.object=s,this.property=o};dist$5.StaticPropertyName=function a(e){var s=e.value;_classCallCheck$g(this,a),this.type="StaticPropertyName",this.value=s};dist$5.Super=function a(){_classCallCheck$g(this,a),this.type="Super"};dist$5.SwitchCase=function a(e){var s=e.test,o=e.consequent;_classCallCheck$g(this,a),this.type="SwitchCase",this.test=s,this.consequent=o};dist$5.SwitchDefault=function a(e){var s=e.consequent;_classCallCheck$g(this,a),this.type="SwitchDefault",this.consequent=s};dist$5.SwitchStatement=function a(e){var s=e.discriminant,o=e.cases;_classCallCheck$g(this,a),this.type="SwitchStatement",this.discriminant=s,this.cases=o};dist$5.SwitchStatementWithDefault=function a(e){var s=e.discriminant,o=e.preDefaultCases,c=e.defaultCase,d=e.postDefaultCases;_classCallCheck$g(this,a),this.type="SwitchStatementWithDefault",this.discriminant=s,this.preDefaultCases=o,this.defaultCase=c,this.postDefaultCases=d};dist$5.TemplateElement=function a(e){var s=e.rawValue;_classCallCheck$g(this,a),this.type="TemplateElement",this.rawValue=s};dist$5.TemplateExpression=function a(e){var s=e.tag,o=e.elements;_classCallCheck$g(this,a),this.type="TemplateExpression",this.tag=s,this.elements=o};dist$5.ThisExpression=function a(){_classCallCheck$g(this,a),this.type="ThisExpression"};dist$5.ThrowStatement=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="ThrowStatement",this.expression=s};dist$5.TryCatchStatement=function a(e){var s=e.body,o=e.catchClause;_classCallCheck$g(this,a),this.type="TryCatchStatement",this.body=s,this.catchClause=o};dist$5.TryFinallyStatement=function a(e){var s=e.body,o=e.catchClause,c=e.finalizer;_classCallCheck$g(this,a),this.type="TryFinallyStatement",this.body=s,this.catchClause=o,this.finalizer=c};dist$5.UnaryExpression=function a(e){var s=e.operator,o=e.operand;_classCallCheck$g(this,a),this.type="UnaryExpression",this.operator=s,this.operand=o};dist$5.UpdateExpression=function a(e){var s=e.isPrefix,o=e.operator,c=e.operand;_classCallCheck$g(this,a),this.type="UpdateExpression",this.isPrefix=s,this.operator=o,this.operand=c};dist$5.VariableDeclaration=function a(e){var s=e.kind,o=e.declarators;_classCallCheck$g(this,a),this.type="VariableDeclaration",this.kind=s,this.declarators=o};dist$5.VariableDeclarationStatement=function a(e){var s=e.declaration;_classCallCheck$g(this,a),this.type="VariableDeclarationStatement",this.declaration=s};dist$5.VariableDeclarator=function a(e){var s=e.binding,o=e.init;_classCallCheck$g(this,a),this.type="VariableDeclarator",this.binding=s,this.init=o};dist$5.WhileStatement=function a(e){var s=e.test,o=e.body;_classCallCheck$g(this,a),this.type="WhileStatement",this.test=s,this.body=o};dist$5.WithStatement=function a(e){var s=e.object,o=e.body;_classCallCheck$g(this,a),this.type="WithStatement",this.object=s,this.body=o};dist$5.YieldExpression=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="YieldExpression",this.expression=s};dist$5.YieldGeneratorExpression=function a(e){var s=e.expression;_classCallCheck$g(this,a),this.type="YieldGeneratorExpression",this.expression=s};Object.defineProperty(parser$1,"__esModule",{value:!0});parser$1.GenericParser=void 0;var _createClass$c=function(){function a(e,s){for(var o=0;o":Precedence$1.Relational,"<=":Precedence$1.Relational,">=":Precedence$1.Relational,in:Precedence$1.Relational,instanceof:Precedence$1.Relational,"<<":Precedence$1.BitwiseSHIFT,">>":Precedence$1.BitwiseSHIFT,">>>":Precedence$1.BitwiseSHIFT,"+":Precedence$1.Additive,"-":Precedence$1.Additive,"*":Precedence$1.Multiplicative,"%":Precedence$1.Multiplicative,"/":Precedence$1.Multiplicative};function isValidSimpleAssignmentTarget(a){if(a==null)return!1;switch(a.type){case"IdentifierExpression":case"ComputedMemberExpression":case"StaticMemberExpression":return!0}return!1}function isPrefixOperator(a){switch(a.type){case _tokenizer.TokenType.INC:case _tokenizer.TokenType.DEC:case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.BIT_NOT:case _tokenizer.TokenType.NOT:case _tokenizer.TokenType.DELETE:case _tokenizer.TokenType.VOID:case _tokenizer.TokenType.TYPEOF:return!0}return!1}function isUpdateOperator(a){return a.type===_tokenizer.TokenType.INC||a.type===_tokenizer.TokenType.DEC}parser$1.GenericParser=function(a){_inherits$7(e,a);function e(s){_classCallCheck$f(this,e);var o=_possibleConstructorReturn$7(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,s));return o.allowIn=!0,o.inFunctionBody=!1,o.inParameter=!1,o.allowYieldExpression=!1,o.allowAwaitExpression=!1,o.firstAwaitLocation=null,o.module=!1,o.moduleIsTheGoalSymbol=!1,o.strict=!1,o.isBindingElement=!0,o.isAssignmentTarget=!0,o.firstExprError=null,o}return _createClass$c(e,[{key:"match",value:function(o){return this.lookahead.type===o}},{key:"matchIdentifier",value:function(){switch(this.lookahead.type){case _tokenizer.TokenType.IDENTIFIER:case _tokenizer.TokenType.LET:case _tokenizer.TokenType.YIELD:case _tokenizer.TokenType.ASYNC:return!0;case _tokenizer.TokenType.AWAIT:return this.moduleIsTheGoalSymbol?!1:(this.firstAwaitLocation===null&&(this.firstAwaitLocation=this.getLocation()),!0);case _tokenizer.TokenType.ESCAPED_KEYWORD:return this.lookahead.value==="await"&&!this.moduleIsTheGoalSymbol?(this.firstAwaitLocation===null&&(this.firstAwaitLocation=this.getLocation()),!0):this.lookahead.value==="let"||this.lookahead.value==="yield"||this.lookahead.value==="async"}return!1}},{key:"eat",value:function(o){return this.lookahead.type===o?this.lex():null}},{key:"expect",value:function(o){if(this.lookahead.type===o)return this.lex();throw this.createUnexpected(this.lookahead)}},{key:"matchContextualKeyword",value:function(o){return this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===o}},{key:"expectContextualKeyword",value:function(o){if(this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===o)return this.lex();throw this.createUnexpected(this.lookahead)}},{key:"eatContextualKeyword",value:function(o){return this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===o?this.lex():null}},{key:"consumeSemicolon",value:function(){if(!this.eat(_tokenizer.TokenType.SEMICOLON)&&!this.hasLineTerminatorBeforeNext&&!this.eof()&&!this.match(_tokenizer.TokenType.RBRACE))throw this.createUnexpected(this.lookahead)}},{key:"startNode",value:function(o){return o}},{key:"copyNode",value:function(o,c){return c}},{key:"finishNode",value:function(o){return o}},{key:"parseModule",value:function(){this.moduleIsTheGoalSymbol=this.module=this.strict=!0,this.lookahead=this.advance();var o=this.startNode(),c=this.parseBody(),d=c.directives,_=c.statements;if(!this.match(_tokenizer.TokenType.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new AST.Module({directives:d,items:_}),o)}},{key:"parseScript",value:function(){this.lookahead=this.advance();var o=this.startNode(),c=this.parseBody(),d=c.directives,_=c.statements;if(!this.match(_tokenizer.TokenType.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new AST.Script({directives:d,statements:_}),o)}},{key:"parseFunctionBody",value:function(){var o=this.inFunctionBody,c=this.module,d=this.strict;this.inFunctionBody=!0,this.module=!1;var _=this.startNode();this.expect(_tokenizer.TokenType.LBRACE);var b=new AST.FunctionBody(this.parseBody());return this.expect(_tokenizer.TokenType.RBRACE),b=this.finishNode(b,_),this.inFunctionBody=o,this.module=c,this.strict=d,b}},{key:"parseBody",value:function(){for(var o=[],c=[],d=!0,_=null;!(this.eof()||this.match(_tokenizer.TokenType.RBRACE));){var b=this.lookahead,k=b.slice.text,$=b.type===_tokenizer.TokenType.STRING,j=this.module,_e=this.getLocation(),et=this.startNode(),tt=j?this.parseModuleItem():this.parseStatementListItem();if(d)if($&&tt.type==="ExpressionStatement"&&tt.expression.type==="LiteralStringExpression"){!_&&b.octal&&(_=this.createErrorWithLocation(_e,"Unexpected legacy octal escape sequence: \\"+b.octal));var nt=k.slice(1,-1);nt==="use strict"&&(this.strict=!0),o.push(this.finishNode(new AST.Directive({rawValue:nt}),et))}else{if(d=!1,_&&this.strict)throw _;c.push(tt)}else c.push(tt)}if(_&&this.strict)throw _;return{directives:o,statements:c}}},{key:"parseImportSpecifier",value:function(){var o=this.startNode(),c=void 0;if(this.matchIdentifier()){if(c=this.parseIdentifier(),!this.eatContextualKeyword("as"))return this.finishNode(new AST.ImportSpecifier({name:null,binding:this.finishNode(new AST.BindingIdentifier({name:c}),o)}),o)}else this.lookahead.type.klass.isIdentifierName&&(c=this.parseIdentifierName(),this.expectContextualKeyword("as"));return this.finishNode(new AST.ImportSpecifier({name:c,binding:this.parseBindingIdentifier()}),o)}},{key:"parseNameSpaceBinding",value:function(){return this.expect(_tokenizer.TokenType.MUL),this.expectContextualKeyword("as"),this.parseBindingIdentifier()}},{key:"parseNamedImports",value:function(){var o=[];for(this.expect(_tokenizer.TokenType.LBRACE);!this.eat(_tokenizer.TokenType.RBRACE);)if(o.push(this.parseImportSpecifier()),!this.eat(_tokenizer.TokenType.COMMA)){this.expect(_tokenizer.TokenType.RBRACE);break}return o}},{key:"parseFromClause",value:function(){this.expectContextualKeyword("from");var o=this.expect(_tokenizer.TokenType.STRING).str;return o}},{key:"parseImportDeclaration",value:function(){var o=this.startNode(),c=null,d=void 0;if(this.expect(_tokenizer.TokenType.IMPORT),this.match(_tokenizer.TokenType.STRING))return d=this.lex().str,this.consumeSemicolon(),this.finishNode(new AST.Import({defaultBinding:null,namedImports:[],moduleSpecifier:d}),o);if(this.matchIdentifier()&&(c=this.parseBindingIdentifier(),!this.eat(_tokenizer.TokenType.COMMA))){var _=new AST.Import({defaultBinding:c,namedImports:[],moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(_,o)}if(this.match(_tokenizer.TokenType.MUL)){var b=new AST.ImportNamespace({defaultBinding:c,namespaceBinding:this.parseNameSpaceBinding(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(b,o)}else if(this.match(_tokenizer.TokenType.LBRACE)){var k=new AST.Import({defaultBinding:c,namedImports:this.parseNamedImports(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(k,o)}throw this.createUnexpected(this.lookahead)}},{key:"parseExportSpecifier",value:function(){var o=this.startNode(),c=this.finishNode({type:EXPORT_UNKNOWN_SPECIFIER,isIdentifier:this.matchIdentifier(),value:this.parseIdentifierName()},o);if(this.eatContextualKeyword("as")){var d=this.parseIdentifierName();return this.finishNode({name:c,exportedName:d},o)}return this.finishNode({name:c,exportedName:null},o)}},{key:"parseExportClause",value:function(){this.expect(_tokenizer.TokenType.LBRACE);for(var o=[];!this.eat(_tokenizer.TokenType.RBRACE);)if(o.push(this.parseExportSpecifier()),!this.eat(_tokenizer.TokenType.COMMA)){this.expect(_tokenizer.TokenType.RBRACE);break}return o}},{key:"parseExportDeclaration",value:function(){var o=this,c=this.startNode(),d=void 0;switch(this.expect(_tokenizer.TokenType.EXPORT),this.lookahead.type){case _tokenizer.TokenType.MUL:this.lex(),d=new AST.ExportAllFrom({moduleSpecifier:this.parseFromClause()}),this.consumeSemicolon();break;case _tokenizer.TokenType.LBRACE:{var _=this.parseExportClause(),b=null;this.matchContextualKeyword("from")?(b=this.parseFromClause(),d=new AST.ExportFrom({namedExports:_.map(function(_e){return o.copyNode(_e,new AST.ExportFromSpecifier({name:_e.name.value,exportedName:_e.exportedName}))}),moduleSpecifier:b})):(_.forEach(function(_e){var et=_e.name;if(!et.isIdentifier)throw o.createError(_errors$1.ErrorMessages.ILLEGAL_EXPORTED_NAME)}),d=new AST.ExportLocals({namedExports:_.map(function(_e){return o.copyNode(_e,new AST.ExportLocalSpecifier({name:o.copyNode(_e.name,new AST.IdentifierExpression({name:_e.name.value})),exportedName:_e.exportedName}))})})),this.consumeSemicolon();break}case _tokenizer.TokenType.CLASS:d=new AST.Export({declaration:this.parseClass({isExpr:!1,inDefault:!1})});break;case _tokenizer.TokenType.FUNCTION:d=new AST.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1})});break;case _tokenizer.TokenType.ASYNC:{var k=this.startNode();this.lex(),d=new AST.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:k})});break}case _tokenizer.TokenType.DEFAULT:switch(this.lex(),this.lookahead.type){case _tokenizer.TokenType.FUNCTION:d=new AST.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!0,isAsync:!1})});break;case _tokenizer.TokenType.CLASS:d=new AST.ExportDefault({body:this.parseClass({isExpr:!1,inDefault:!0})});break;case _tokenizer.TokenType.ASYNC:{var $=this.startNode(),j=this.saveLexerState();if(this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION)){d=new AST.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!1,isAsync:!0,startState:$})});break}this.restoreLexerState(j)}default:d=new AST.ExportDefault({body:this.parseAssignmentExpression()}),this.consumeSemicolon();break}break;case _tokenizer.TokenType.VAR:case _tokenizer.TokenType.LET:case _tokenizer.TokenType.CONST:d=new AST.Export({declaration:this.parseVariableDeclaration(!0)}),this.consumeSemicolon();break;default:throw this.createUnexpected(this.lookahead)}return this.finishNode(d,c)}},{key:"parseModuleItem",value:function(){switch(this.lookahead.type){case _tokenizer.TokenType.IMPORT:return this.parseImportDeclaration();case _tokenizer.TokenType.EXPORT:return this.parseExportDeclaration();default:return this.parseStatementListItem()}}},{key:"lookaheadLexicalDeclaration",value:function(){if(this.match(_tokenizer.TokenType.LET)||this.match(_tokenizer.TokenType.CONST)){var o=this.saveLexerState();if(this.lex(),this.matchIdentifier()||this.match(_tokenizer.TokenType.LBRACE)||this.match(_tokenizer.TokenType.LBRACK))return this.restoreLexerState(o),!0;this.restoreLexerState(o)}return!1}},{key:"parseStatementListItem",value:function(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case _tokenizer.TokenType.FUNCTION:return this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1});case _tokenizer.TokenType.CLASS:return this.parseClass({isExpr:!1,inDefault:!1});case _tokenizer.TokenType.ASYNC:{var o=this.getLocation(),c=this.saveLexerState();return this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:o}):(this.restoreLexerState(c),this.parseStatement())}default:if(this.lookaheadLexicalDeclaration()){var d=this.startNode();return this.finishNode(this.parseVariableDeclarationStatement(),d)}return this.parseStatement()}}},{key:"parseStatement",value:function(){var o=this.startNode(),c=this.isolateCoverGrammar(this.parseStatementHelper);return this.finishNode(c,o)}},{key:"parseStatementHelper",value:function(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case _tokenizer.TokenType.SEMICOLON:return this.parseEmptyStatement();case _tokenizer.TokenType.LBRACE:return this.parseBlockStatement();case _tokenizer.TokenType.LPAREN:return this.parseExpressionStatement();case _tokenizer.TokenType.BREAK:return this.parseBreakStatement();case _tokenizer.TokenType.CONTINUE:return this.parseContinueStatement();case _tokenizer.TokenType.DEBUGGER:return this.parseDebuggerStatement();case _tokenizer.TokenType.DO:return this.parseDoWhileStatement();case _tokenizer.TokenType.FOR:return this.parseForStatement();case _tokenizer.TokenType.IF:return this.parseIfStatement();case _tokenizer.TokenType.RETURN:return this.parseReturnStatement();case _tokenizer.TokenType.SWITCH:return this.parseSwitchStatement();case _tokenizer.TokenType.THROW:return this.parseThrowStatement();case _tokenizer.TokenType.TRY:return this.parseTryStatement();case _tokenizer.TokenType.VAR:return this.parseVariableDeclarationStatement();case _tokenizer.TokenType.WHILE:return this.parseWhileStatement();case _tokenizer.TokenType.WITH:return this.parseWithStatement();case _tokenizer.TokenType.FUNCTION:case _tokenizer.TokenType.CLASS:throw this.createUnexpected(this.lookahead);default:{var o=this.saveLexerState();if(this.eat(_tokenizer.TokenType.LET)){if(this.match(_tokenizer.TokenType.LBRACK))throw this.restoreLexerState(o),this.createUnexpected(this.lookahead);this.restoreLexerState(o)}else if(this.eat(_tokenizer.TokenType.ASYNC)){if(!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION))throw this.createUnexpected(this.lookahead);this.restoreLexerState(o)}var c=this.parseExpression();if(c.type==="IdentifierExpression"&&this.eat(_tokenizer.TokenType.COLON)){var d=this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement();return new AST.LabeledStatement({label:c.name,body:d})}return this.consumeSemicolon(),new AST.ExpressionStatement({expression:c})}}}},{key:"parseEmptyStatement",value:function(){return this.lex(),new AST.EmptyStatement}},{key:"parseBlockStatement",value:function(){return new AST.BlockStatement({block:this.parseBlock()})}},{key:"parseExpressionStatement",value:function(){var o=this.parseExpression();return this.consumeSemicolon(),new AST.ExpressionStatement({expression:o})}},{key:"parseBreakStatement",value:function(){if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.BreakStatement({label:null});var o=null;return this.matchIdentifier()&&(o=this.parseIdentifier()),this.consumeSemicolon(),new AST.BreakStatement({label:o})}},{key:"parseContinueStatement",value:function(){if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.ContinueStatement({label:null});var o=null;return this.matchIdentifier()&&(o=this.parseIdentifier()),this.consumeSemicolon(),new AST.ContinueStatement({label:o})}},{key:"parseDebuggerStatement",value:function(){return this.lex(),this.consumeSemicolon(),new AST.DebuggerStatement}},{key:"parseDoWhileStatement",value:function(){this.lex();var o=this.parseStatement();this.expect(_tokenizer.TokenType.WHILE),this.expect(_tokenizer.TokenType.LPAREN);var c=this.parseExpression();return this.expect(_tokenizer.TokenType.RPAREN),this.eat(_tokenizer.TokenType.SEMICOLON),new AST.DoWhileStatement({body:o,test:c})}},{key:"parseForStatement",value:function(){this.lex();var o=this.allowAwaitExpression&&this.eat(_tokenizer.TokenType.AWAIT);this.expect(_tokenizer.TokenType.LPAREN);var c=null,d=null;if(o&&this.match(_tokenizer.TokenType.SEMICOLON))throw this.createUnexpected(this.lookahead);if(this.eat(_tokenizer.TokenType.SEMICOLON))return this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(d=this.parseExpression()),new AST.ForStatement({init:null,test:c,update:d,body:this.getIteratorStatementEpilogue()});var _=this.match(_tokenizer.TokenType.LET),b=this.lookaheadLexicalDeclaration(),k=this.startNode();if(this.match(_tokenizer.TokenType.VAR)||b){var $=this.allowIn;this.allowIn=!1;var j=this.parseVariableDeclaration(!1);if(this.allowIn=$,j.declarators.length===1&&(this.match(_tokenizer.TokenType.IN)||this.matchContextualKeyword("of"))){var _e=void 0,et=j.declarators[0];if(this.match(_tokenizer.TokenType.IN)){if(o)throw this.createUnexpected(this.lookahead);if(et.init!==null&&(this.strict||j.kind!=="var"||et.binding.type!=="BindingIdentifier"))throw this.createError(_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_IN);_e=AST.ForInStatement,this.lex(),d=this.parseExpression()}else{if(et.init!==null)throw this.createError(o?_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_AWAIT:_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_OF);o?_e=AST.ForAwaitStatement:_e=AST.ForOfStatement,this.lex(),d=this.parseAssignmentExpression()}var tt=this.getIteratorStatementEpilogue();return new _e({left:j,right:d,body:tt})}else if(o)throw this.createUnexpected(this.lookahead);if(this.expect(_tokenizer.TokenType.SEMICOLON),j.declarators.some(function(ot){return ot.binding.type!=="BindingIdentifier"&&ot.init===null}))throw this.createError(_errors$1.ErrorMessages.UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT);return this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(d=this.parseExpression()),new AST.ForStatement({init:j,test:c,update:d,body:this.getIteratorStatementEpilogue()})}var nt=this.allowIn;this.allowIn=!1;var it=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget);if(this.allowIn=nt,this.isAssignmentTarget&&it.type!=="AssignmentExpression"&&(this.match(_tokenizer.TokenType.IN)||this.matchContextualKeyword("of"))){if((it.type==="ObjectAssignmentTarget"||it.type==="ArrayAssignmentTarget")&&(this.firstExprError=null),_&&this.matchContextualKeyword("of"))throw this.createError(o?_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_AWAIT:_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_OF);var rt=void 0;if(this.match(_tokenizer.TokenType.IN)){if(o)throw this.createUnexpected(this.lookahead);rt=AST.ForInStatement,this.lex(),d=this.parseExpression()}else o?rt=AST.ForAwaitStatement:rt=AST.ForOfStatement,this.lex(),d=this.parseAssignmentExpression();return new rt({left:this.transformDestructuring(it),right:d,body:this.getIteratorStatementEpilogue()})}else if(o)throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_AWAIT);if(this.firstExprError)throw this.firstExprError;for(;this.eat(_tokenizer.TokenType.COMMA);){var st=this.parseAssignmentExpression();it=this.finishNode(new AST.BinaryExpression({left:it,operator:",",right:st}),k)}if(this.match(_tokenizer.TokenType.IN))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_IN);if(this.matchContextualKeyword("of"))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_OF);return this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(d=this.parseExpression()),new AST.ForStatement({init:it,test:c,update:d,body:this.getIteratorStatementEpilogue()})}},{key:"getIteratorStatementEpilogue",value:function(){this.expect(_tokenizer.TokenType.RPAREN);var o=this.parseStatement();return o}},{key:"parseIfStatementChild",value:function(){return this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement()}},{key:"parseIfStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var o=this.parseExpression();this.expect(_tokenizer.TokenType.RPAREN);var c=this.parseIfStatementChild(),d=null;return this.eat(_tokenizer.TokenType.ELSE)&&(d=this.parseIfStatementChild()),new AST.IfStatement({test:o,consequent:c,alternate:d})}},{key:"parseReturnStatement",value:function(){if(!this.inFunctionBody)throw this.createError(_errors$1.ErrorMessages.ILLEGAL_RETURN);if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.ReturnStatement({expression:null});var o=null;return!this.match(_tokenizer.TokenType.RBRACE)&&!this.eof()&&(o=this.parseExpression()),this.consumeSemicolon(),new AST.ReturnStatement({expression:o})}},{key:"parseSwitchStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var o=this.parseExpression();if(this.expect(_tokenizer.TokenType.RPAREN),this.expect(_tokenizer.TokenType.LBRACE),this.eat(_tokenizer.TokenType.RBRACE))return new AST.SwitchStatement({discriminant:o,cases:[]});var c=this.parseSwitchCases();if(this.match(_tokenizer.TokenType.DEFAULT)){var d=this.parseSwitchDefault(),_=this.parseSwitchCases();if(this.match(_tokenizer.TokenType.DEFAULT))throw this.createError(_errors$1.ErrorMessages.MULTIPLE_DEFAULTS_IN_SWITCH);return this.expect(_tokenizer.TokenType.RBRACE),new AST.SwitchStatementWithDefault({discriminant:o,preDefaultCases:c,defaultCase:d,postDefaultCases:_})}return this.expect(_tokenizer.TokenType.RBRACE),new AST.SwitchStatement({discriminant:o,cases:c})}},{key:"parseSwitchCases",value:function(){for(var o=[];!(this.eof()||this.match(_tokenizer.TokenType.RBRACE)||this.match(_tokenizer.TokenType.DEFAULT));)o.push(this.parseSwitchCase());return o}},{key:"parseSwitchCase",value:function(){var o=this.startNode();return this.expect(_tokenizer.TokenType.CASE),this.finishNode(new AST.SwitchCase({test:this.parseExpression(),consequent:this.parseSwitchCaseBody()}),o)}},{key:"parseSwitchDefault",value:function(){var o=this.startNode();return this.expect(_tokenizer.TokenType.DEFAULT),this.finishNode(new AST.SwitchDefault({consequent:this.parseSwitchCaseBody()}),o)}},{key:"parseSwitchCaseBody",value:function(){return this.expect(_tokenizer.TokenType.COLON),this.parseStatementListInSwitchCaseBody()}},{key:"parseStatementListInSwitchCaseBody",value:function(){for(var o=[];!(this.eof()||this.match(_tokenizer.TokenType.RBRACE)||this.match(_tokenizer.TokenType.DEFAULT)||this.match(_tokenizer.TokenType.CASE));)o.push(this.parseStatementListItem());return o}},{key:"parseThrowStatement",value:function(){var o=this.lex();if(this.hasLineTerminatorBeforeNext)throw this.createErrorWithLocation(o,_errors$1.ErrorMessages.NEWLINE_AFTER_THROW);var c=this.parseExpression();return this.consumeSemicolon(),new AST.ThrowStatement({expression:c})}},{key:"parseTryStatement",value:function(){this.lex();var o=this.parseBlock();if(this.match(_tokenizer.TokenType.CATCH)){var c=this.parseCatchClause();if(this.eat(_tokenizer.TokenType.FINALLY)){var d=this.parseBlock();return new AST.TryFinallyStatement({body:o,catchClause:c,finalizer:d})}return new AST.TryCatchStatement({body:o,catchClause:c})}if(this.eat(_tokenizer.TokenType.FINALLY)){var _=this.parseBlock();return new AST.TryFinallyStatement({body:o,catchClause:null,finalizer:_})}throw this.createError(_errors$1.ErrorMessages.NO_CATCH_OR_FINALLY)}},{key:"parseVariableDeclarationStatement",value:function(){var o=this.parseVariableDeclaration(!0);return this.consumeSemicolon(),new AST.VariableDeclarationStatement({declaration:o})}},{key:"parseWhileStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var o=this.parseExpression(),c=this.getIteratorStatementEpilogue();return new AST.WhileStatement({test:o,body:c})}},{key:"parseWithStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var o=this.parseExpression();this.expect(_tokenizer.TokenType.RPAREN);var c=this.parseStatement();return new AST.WithStatement({object:o,body:c})}},{key:"parseCatchClause",value:function(){var o=this.startNode();if(this.lex(),this.expect(_tokenizer.TokenType.LPAREN),this.match(_tokenizer.TokenType.RPAREN)||this.match(_tokenizer.TokenType.LPAREN))throw this.createUnexpected(this.lookahead);var c=this.parseBindingTarget();this.expect(_tokenizer.TokenType.RPAREN);var d=this.parseBlock();return this.finishNode(new AST.CatchClause({binding:c,body:d}),o)}},{key:"parseBlock",value:function(){var o=this.startNode();this.expect(_tokenizer.TokenType.LBRACE);for(var c=[];!this.match(_tokenizer.TokenType.RBRACE);)c.push(this.parseStatementListItem());return this.expect(_tokenizer.TokenType.RBRACE),this.finishNode(new AST.Block({statements:c}),o)}},{key:"parseVariableDeclaration",value:function(o){var c=this.startNode(),d=this.lex(),_=d.type===_tokenizer.TokenType.VAR?"var":d.type===_tokenizer.TokenType.CONST?"const":"let",b=this.parseVariableDeclaratorList(o);return this.finishNode(new AST.VariableDeclaration({kind:_,declarators:b}),c)}},{key:"parseVariableDeclaratorList",value:function(o){var c=[];do c.push(this.parseVariableDeclarator(o));while(this.eat(_tokenizer.TokenType.COMMA));return c}},{key:"parseVariableDeclarator",value:function(o){var c=this.startNode();if(this.match(_tokenizer.TokenType.LPAREN))throw this.createUnexpected(this.lookahead);var d=this.allowIn;this.allowIn=!0;var _=this.parseBindingTarget();this.allowIn=d,o&&_.type!=="BindingIdentifier"&&!this.match(_tokenizer.TokenType.ASSIGN)&&this.expect(_tokenizer.TokenType.ASSIGN);var b=null;return this.eat(_tokenizer.TokenType.ASSIGN)&&(b=this.parseAssignmentExpression()),this.finishNode(new AST.VariableDeclarator({binding:_,init:b}),c)}},{key:"isolateCoverGrammar",value:function(o){var c=this.isBindingElement,d=this.isAssignmentTarget,_=this.firstExprError,b=void 0;if(this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,b=o.call(this),this.firstExprError!==null)throw this.firstExprError;return this.isBindingElement=c,this.isAssignmentTarget=d,this.firstExprError=_,b}},{key:"inheritCoverGrammar",value:function(o){var c=this.isBindingElement,d=this.isAssignmentTarget,_=this.firstExprError,b=void 0;return this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,b=o.call(this),this.isBindingElement=this.isBindingElement&&c,this.isAssignmentTarget=this.isAssignmentTarget&&d,this.firstExprError=_||this.firstExprError,b}},{key:"parseExpression",value:function(){var o=this.startNode(),c=this.parseAssignmentExpression();if(this.match(_tokenizer.TokenType.COMMA))for(;!this.eof()&&this.match(_tokenizer.TokenType.COMMA);){this.lex();var d=this.parseAssignmentExpression();c=this.finishNode(new AST.BinaryExpression({left:c,operator:",",right:d}),o)}return c}},{key:"finishArrowParams",value:function(o){var c=o.params,d=c===void 0?null:c,_=o.rest,b=_===void 0?null:_;if(o.type!==ARROW_EXPRESSION_PARAMS)if(o.type==="IdentifierExpression")d=[this.targetToBinding(this.transformDestructuring(o))];else throw this.createUnexpected(this.lookahead);return this.copyNode(o,new AST.FormalParameters({items:d,rest:b}))}},{key:"parseArrowExpressionTail",value:function(o,c,d){this.expect(_tokenizer.TokenType.ARROW);var _=this.allowYieldExpression,b=this.allowAwaitExpression,k=this.firstAwaitLocation;this.allowYieldExpression=!1,this.allowAwaitExpression=c,this.firstAwaitLocation=null;var $=void 0;if(this.match(_tokenizer.TokenType.LBRACE)){var j=this.allowIn;this.allowIn=!0,$=this.parseFunctionBody(),this.allowIn=j}else $=this.parseAssignmentExpression();return this.allowYieldExpression=_,this.allowAwaitExpression=b,this.firstAwaitLocation=k,this.finishNode(new AST.ArrowExpression({isAsync:c,params:o,body:$}),d)}},{key:"parseAssignmentExpression",value:function(){return this.isolateCoverGrammar(this.parseAssignmentExpressionOrTarget)}},{key:"parseAssignmentExpressionOrTarget",value:function(){var o=this.startNode();if(this.allowYieldExpression&&this.match(_tokenizer.TokenType.YIELD))return this.isBindingElement=this.isAssignmentTarget=!1,this.parseYieldExpression();var c=this.parseConditionalExpression();if(!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.ARROW)){this.isBindingElement=this.isAssignmentTarget=!1,this.firstExprError=null;var d=c.type===ARROW_EXPRESSION_PARAMS&&c.isAsync;return this.parseArrowExpressionTail(this.finishArrowParams(c),d,o)}var _=!1,b=this.lookahead;switch(b.type){case _tokenizer.TokenType.ASSIGN_BIT_OR:case _tokenizer.TokenType.ASSIGN_BIT_XOR:case _tokenizer.TokenType.ASSIGN_BIT_AND:case _tokenizer.TokenType.ASSIGN_SHL:case _tokenizer.TokenType.ASSIGN_SHR:case _tokenizer.TokenType.ASSIGN_SHR_UNSIGNED:case _tokenizer.TokenType.ASSIGN_ADD:case _tokenizer.TokenType.ASSIGN_SUB:case _tokenizer.TokenType.ASSIGN_MUL:case _tokenizer.TokenType.ASSIGN_DIV:case _tokenizer.TokenType.ASSIGN_MOD:case _tokenizer.TokenType.ASSIGN_EXP:_=!0;break}if(_){if(!this.isAssignmentTarget||!isValidSimpleAssignmentTarget(c))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_ASSIGNMENT);c=this.transformDestructuring(c)}else if(b.type===_tokenizer.TokenType.ASSIGN){if(!this.isAssignmentTarget)throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_ASSIGNMENT);c=this.transformDestructuring(c)}else return c;this.lex();var k=this.parseAssignmentExpression();this.firstExprError=null;var $=void 0;return b.type===_tokenizer.TokenType.ASSIGN?$=new AST.AssignmentExpression({binding:c,expression:k}):($=new AST.CompoundAssignmentExpression({binding:c,operator:b.type.name,expression:k}),this.isBindingElement=this.isAssignmentTarget=!1),this.finishNode($,o)}},{key:"targetToBinding",value:function(o){var c=this;if(o===null)return null;switch(o.type){case"AssignmentTargetIdentifier":return this.copyNode(o,new AST.BindingIdentifier({name:o.name}));case"ArrayAssignmentTarget":return this.copyNode(o,new AST.ArrayBinding({elements:o.elements.map(function(d){return c.targetToBinding(d)}),rest:this.targetToBinding(o.rest)}));case"ObjectAssignmentTarget":return this.copyNode(o,new AST.ObjectBinding({properties:o.properties.map(function(d){return c.targetToBinding(d)}),rest:this.targetToBinding(o.rest)}));case"AssignmentTargetPropertyIdentifier":return this.copyNode(o,new AST.BindingPropertyIdentifier({binding:this.targetToBinding(o.binding),init:o.init}));case"AssignmentTargetPropertyProperty":return this.copyNode(o,new AST.BindingPropertyProperty({name:o.name,binding:this.targetToBinding(o.binding)}));case"AssignmentTargetWithDefault":return this.copyNode(o,new AST.BindingWithDefault({binding:this.targetToBinding(o.binding),init:o.init}))}throw new Error("Not reached")}},{key:"transformDestructuring",value:function(o){var c=this;switch(o.type){case"DataProperty":return this.copyNode(o,new AST.AssignmentTargetPropertyProperty({name:o.name,binding:this.transformDestructuringWithDefault(o.expression)}));case"ShorthandProperty":return this.copyNode(o,new AST.AssignmentTargetPropertyIdentifier({binding:this.copyNode(o,new AST.AssignmentTargetIdentifier({name:o.name.name})),init:null}));case"ObjectExpression":{var d=o.properties.length>0?o.properties[o.properties.length-1]:void 0;return d!=null&&d.type==="SpreadProperty"?this.copyNode(o,new AST.ObjectAssignmentTarget({properties:o.properties.slice(0,-1).map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:this.transformDestructuring(d.expression)})):this.copyNode(o,new AST.ObjectAssignmentTarget({properties:o.properties.map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:null}))}case"ArrayExpression":{var _=o.elements[o.elements.length-1];return _!=null&&_.type==="SpreadElement"?this.copyNode(o,new AST.ArrayAssignmentTarget({elements:o.elements.slice(0,-1).map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:this.copyNode(_.expression,this.transformDestructuring(_.expression))})):this.copyNode(o,new AST.ArrayAssignmentTarget({elements:o.elements.map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:null}))}case"IdentifierExpression":return this.copyNode(o,new AST.AssignmentTargetIdentifier({name:o.name}));case"StaticPropertyName":return this.copyNode(o,new AST.AssignmentTargetIdentifier({name:o.value}));case"ComputedMemberExpression":return this.copyNode(o,new AST.ComputedMemberAssignmentTarget({object:o.object,expression:o.expression}));case"StaticMemberExpression":return this.copyNode(o,new AST.StaticMemberAssignmentTarget({object:o.object,property:o.property}));case"ArrayAssignmentTarget":case"ObjectAssignmentTarget":case"ComputedMemberAssignmentTarget":case"StaticMemberAssignmentTarget":case"AssignmentTargetIdentifier":case"AssignmentTargetPropertyIdentifier":case"AssignmentTargetPropertyProperty":case"AssignmentTargetWithDefault":return o}throw new Error("Not reached")}},{key:"transformDestructuringWithDefault",value:function(o){switch(o.type){case"AssignmentExpression":return this.copyNode(o,new AST.AssignmentTargetWithDefault({binding:this.transformDestructuring(o.binding),init:o.expression}))}return this.transformDestructuring(o)}},{key:"lookaheadAssignmentExpression",value:function(){if(this.matchIdentifier())return!0;switch(this.lookahead.type){case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.ASSIGN_DIV:case _tokenizer.TokenType.BIT_NOT:case _tokenizer.TokenType.CLASS:case _tokenizer.TokenType.DEC:case _tokenizer.TokenType.DELETE:case _tokenizer.TokenType.DIV:case _tokenizer.TokenType.FALSE:case _tokenizer.TokenType.FUNCTION:case _tokenizer.TokenType.INC:case _tokenizer.TokenType.LBRACE:case _tokenizer.TokenType.LBRACK:case _tokenizer.TokenType.LPAREN:case _tokenizer.TokenType.NEW:case _tokenizer.TokenType.NOT:case _tokenizer.TokenType.NULL:case _tokenizer.TokenType.NUMBER:case _tokenizer.TokenType.STRING:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.SUPER:case _tokenizer.TokenType.THIS:case _tokenizer.TokenType.TRUE:case _tokenizer.TokenType.TYPEOF:case _tokenizer.TokenType.VOID:case _tokenizer.TokenType.TEMPLATE:return!0}return!1}},{key:"parseYieldExpression",value:function(){var o=this.startNode();if(this.lex(),this.hasLineTerminatorBeforeNext)return this.finishNode(new AST.YieldExpression({expression:null}),o);var c=!!this.eat(_tokenizer.TokenType.MUL),d=null;(c||this.lookaheadAssignmentExpression())&&(d=this.parseAssignmentExpression());var _=c?AST.YieldGeneratorExpression:AST.YieldExpression;return this.finishNode(new _({expression:d}),o)}},{key:"parseConditionalExpression",value:function(){var o=this.startNode(),c=this.parseBinaryExpression();if(this.firstExprError)return c;if(this.eat(_tokenizer.TokenType.CONDITIONAL)){this.isBindingElement=this.isAssignmentTarget=!1;var d=this.allowIn;this.allowIn=!0;var _=this.isolateCoverGrammar(this.parseAssignmentExpression);this.allowIn=d,this.expect(_tokenizer.TokenType.COLON);var b=this.isolateCoverGrammar(this.parseAssignmentExpression);return this.finishNode(new AST.ConditionalExpression({test:c,consequent:_,alternate:b}),o)}return c}},{key:"isBinaryOperator",value:function(o){switch(o){case _tokenizer.TokenType.OR:case _tokenizer.TokenType.AND:case _tokenizer.TokenType.BIT_OR:case _tokenizer.TokenType.BIT_XOR:case _tokenizer.TokenType.BIT_AND:case _tokenizer.TokenType.EQ:case _tokenizer.TokenType.NE:case _tokenizer.TokenType.EQ_STRICT:case _tokenizer.TokenType.NE_STRICT:case _tokenizer.TokenType.LT:case _tokenizer.TokenType.GT:case _tokenizer.TokenType.LTE:case _tokenizer.TokenType.GTE:case _tokenizer.TokenType.INSTANCEOF:case _tokenizer.TokenType.SHL:case _tokenizer.TokenType.SHR:case _tokenizer.TokenType.SHR_UNSIGNED:case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.MUL:case _tokenizer.TokenType.DIV:case _tokenizer.TokenType.MOD:return!0;case _tokenizer.TokenType.IN:return this.allowIn;default:return!1}}},{key:"parseBinaryExpression",value:function(){var o=this,c=this.startNode(),d=this.parseExponentiationExpression();if(this.firstExprError)return d;var _=this.lookahead.type;if(!this.isBinaryOperator(_))return d;this.isBindingElement=this.isAssignmentTarget=!1,this.lex();var b=[];b.push({startState:c,left:d,operator:_,precedence:BinaryPrecedence$1[_.name]}),c=this.startNode();var k=this.isolateCoverGrammar(this.parseExponentiationExpression);for(_=this.lookahead.type;this.isBinaryOperator(_);){for(var $=BinaryPrecedence$1[_.name];b.length&&$<=b[b.length-1].precedence;){var j=b[b.length-1],_e=j.operator;d=j.left,b.pop(),c=j.startState,k=this.finishNode(new AST.BinaryExpression({left:d,operator:_e.name,right:k}),c)}this.lex(),b.push({startState:c,left:k,operator:_,precedence:$}),c=this.startNode(),k=this.isolateCoverGrammar(this.parseExponentiationExpression),_=this.lookahead.type}return b.reduceRight(function(et,tt){return o.finishNode(new AST.BinaryExpression({left:tt.left,operator:tt.operator.name,right:et}),tt.startState)},k)}},{key:"parseExponentiationExpression",value:function(){var o=this.startNode(),c=this.lookahead.type===_tokenizer.TokenType.LPAREN,d=this.parseUnaryExpression();if(this.lookahead.type!==_tokenizer.TokenType.EXP)return d;if(d.type==="UnaryExpression"&&!c)throw this.createError(_errors$1.ErrorMessages.INVALID_EXPONENTIATION_LHS);this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;var _=this.isolateCoverGrammar(this.parseExponentiationExpression);return this.finishNode(new AST.BinaryExpression({left:d,operator:"**",right:_}),o)}},{key:"parseUnaryExpression",value:function(){if(this.lookahead.type.klass!==_tokenizer.TokenClass.Punctuator&&this.lookahead.type.klass!==_tokenizer.TokenClass.Keyword)return this.parseUpdateExpression();var o=this.startNode();if(this.allowAwaitExpression&&this.eat(_tokenizer.TokenType.AWAIT)){this.isBindingElement=this.isAssignmentTarget=!1;var c=this.isolateCoverGrammar(this.parseUnaryExpression);return this.finishNode(new AST.AwaitExpression({expression:c}),o)}var d=this.lookahead;if(!isPrefixOperator(d))return this.parseUpdateExpression();this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;var _=void 0;if(isUpdateOperator(d)){var b=this.getLocation(),k=this.isolateCoverGrammar(this.parseUnaryExpression);if(!isValidSimpleAssignmentTarget(k))throw this.createErrorWithLocation(b,_errors$1.ErrorMessages.INVALID_UPDATE_OPERAND);k=this.transformDestructuring(k),_=new AST.UpdateExpression({isPrefix:!0,operator:d.value,operand:k})}else{var $=this.isolateCoverGrammar(this.parseUnaryExpression);_=new AST.UnaryExpression({operator:d.value,operand:$})}return this.finishNode(_,o)}},{key:"parseUpdateExpression",value:function(){var o=this.getLocation(),c=this.startNode(),d=this.parseLeftHandSideExpression({allowCall:!0});if(this.firstExprError||this.hasLineTerminatorBeforeNext)return d;var _=this.lookahead;if(!isUpdateOperator(_))return d;if(this.lex(),this.isBindingElement=this.isAssignmentTarget=!1,!isValidSimpleAssignmentTarget(d))throw this.createErrorWithLocation(o,_errors$1.ErrorMessages.INVALID_UPDATE_OPERAND);return d=this.transformDestructuring(d),this.finishNode(new AST.UpdateExpression({isPrefix:!1,operator:_.value,operand:d}),c)}},{key:"parseLeftHandSideExpression",value:function(o){var c=this,d=o.allowCall,_=this.startNode(),b=this.allowIn;this.allowIn=!0;var k=void 0,$=this.lookahead;if(this.eat(_tokenizer.TokenType.SUPER))if(this.isBindingElement=!1,this.isAssignmentTarget=!1,k=this.finishNode(new AST.Super,_),this.match(_tokenizer.TokenType.LPAREN))if(d)k=this.finishNode(new AST.CallExpression({callee:k,arguments:this.parseArgumentList().args}),_);else throw this.createUnexpected($);else if(this.match(_tokenizer.TokenType.LBRACK))k=this.finishNode(new AST.ComputedMemberExpression({object:k,expression:this.parseComputedMember()}),_),this.isAssignmentTarget=!0;else if(this.match(_tokenizer.TokenType.PERIOD))k=this.finishNode(new AST.StaticMemberExpression({object:k,property:this.parseStaticMember()}),_),this.isAssignmentTarget=!0;else throw this.createUnexpected($);else if(this.match(_tokenizer.TokenType.NEW))this.isBindingElement=this.isAssignmentTarget=!1,k=this.parseNewExpression();else if(this.match(_tokenizer.TokenType.ASYNC)){if(k=this.parsePrimaryExpression(),k.type==="IdentifierExpression"&&d&&!this.hasLineTerminatorBeforeNext){if(this.matchIdentifier()){var j=this.startNode(),_e=this.allowAwaitExpression;this.allowAwaitExpression=!0;var et=this.parseBindingIdentifier();return this.allowAwaitExpression=_e,this.ensureArrow(),this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:[et],rest:null,isAsync:!0},j)}if(this.match(_tokenizer.TokenType.LPAREN)){var tt=this.startNode(),nt=this.firstAwaitLocation;this.firstAwaitLocation=null;var it=this.parseArgumentList(),rt=it.args,st=it.locationFollowingFirstSpread;if(this.isBindingElement&&!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.ARROW)){if(st!==null)throw this.createErrorWithLocation(st,_errors$1.ErrorMessages.UNEXPECTED_TOKEN(","));if(this.firstAwaitLocation!==null)throw this.createErrorWithLocation(this.firstAwaitLocation,_errors$1.ErrorMessages.NO_AWAIT_IN_ASYNC_PARAMS);var ot=null;if(rt.length>0&&rt[rt.length-1].type==="SpreadElement"){if(ot=this.targetToBinding(this.transformDestructuringWithDefault(rt[rt.length-1].expression)),ot.init!=null)throw this.createError(_errors$1.ErrorMessages.UNEXPECTED_REST_PARAMETERS_INITIALIZATION);rt=rt.slice(0,-1)}var at=rt.map(function(ht){return c.targetToBinding(c.transformDestructuringWithDefault(ht))});return this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:at,rest:ot,isAsync:!0},tt)}this.firstAwaitLocation=nt||this.firstAwaitLocation,this.isBindingElement=this.isAssignmentTarget=!1,k=this.finishNode(new AST.CallExpression({callee:k,arguments:rt}),_)}}}else if(k=this.parsePrimaryExpression(),this.firstExprError)return k;for(;;)if(d&&this.match(_tokenizer.TokenType.LPAREN))this.isBindingElement=this.isAssignmentTarget=!1,k=this.finishNode(new AST.CallExpression({callee:k,arguments:this.parseArgumentList().args}),_);else if(this.match(_tokenizer.TokenType.LBRACK))this.isBindingElement=!1,this.isAssignmentTarget=!0,k=this.finishNode(new AST.ComputedMemberExpression({object:k,expression:this.parseComputedMember()}),_);else if(this.match(_tokenizer.TokenType.PERIOD))this.isBindingElement=!1,this.isAssignmentTarget=!0,k=this.finishNode(new AST.StaticMemberExpression({object:k,property:this.parseStaticMember()}),_);else if(this.match(_tokenizer.TokenType.TEMPLATE))this.isBindingElement=this.isAssignmentTarget=!1,k=this.finishNode(new AST.TemplateExpression({tag:k,elements:this.parseTemplateElements()}),_);else break;return this.allowIn=b,k}},{key:"parseTemplateElements",value:function(){var o=this.startNode(),c=this.lookahead;if(c.tail)return this.lex(),[this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-1)}),o)];for(var d=[this.finishNode(new AST.TemplateElement({rawValue:this.lex().slice.text.slice(1,-2)}),o)];;){if(d.push(this.parseExpression()),!this.match(_tokenizer.TokenType.RBRACE))throw this.createILLEGAL();if(this.index=this.startIndex,this.line=this.startLine,this.lineStart=this.startLineStart,this.lookahead=this.scanTemplateElement(),o=this.startNode(),c=this.lex(),c.tail)return d.push(this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-1)}),o)),d;d.push(this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-2)}),o))}}},{key:"parseStaticMember",value:function(){if(this.lex(),this.lookahead.type.klass.isIdentifierName)return this.lex().value;throw this.createUnexpected(this.lookahead)}},{key:"parseComputedMember",value:function(){this.lex();var o=this.parseExpression();return this.expect(_tokenizer.TokenType.RBRACK),o}},{key:"parseNewExpression",value:function(){var o=this,c=this.startNode();if(this.lex(),this.eat(_tokenizer.TokenType.PERIOD))return this.expectContextualKeyword("target"),this.finishNode(new AST.NewTargetExpression,c);var d=this.isolateCoverGrammar(function(){return o.parseLeftHandSideExpression({allowCall:!1})});return this.finishNode(new AST.NewExpression({callee:d,arguments:this.match(_tokenizer.TokenType.LPAREN)?this.parseArgumentList().args:[]}),c)}},{key:"parseRegexFlags",value:function(o){for(var c=!1,d=!1,_=!1,b=!1,k=!1,$=!1,j=0;j1?e-1:0),o=1;o1&&c.slice(1).forEach(function(d){o.addError(s(d))})}),this}},{key:"enforceConflictingLexicallyDeclaredNames",value:function(s,o){var c=this;return this.lexicallyDeclaredNames.forEachEntry(function(d,_){s.has(_)&&d.forEach(function(b){c.addError(o(b))})}),this}},{key:"observeFunctionDeclaration",value:function(){return this.observeVarBoundary(),addEach(this.functionDeclarationNames,this.boundNames),this.boundNames=new _multimap2.default,this}},{key:"functionDeclarationNamesAreLexical",value:function(){return addEach(this.lexicallyDeclaredNames,this.functionDeclarationNames),this.functionDeclarationNames=new _multimap2.default,this}},{key:"observeVarDeclaration",value:function(){return addEach(this.varDeclaredNames,this.boundNames),this.boundNames=new _multimap2.default,this}},{key:"recordForOfVars",value:function(){var s=this;return this.varDeclaredNames.forEach(function(o){s.forOfVarDeclaredNames.push(o)}),this}},{key:"observeVarBoundary",value:function(){return this.lexicallyDeclaredNames=new _multimap2.default,this.functionDeclarationNames=new _multimap2.default,this.varDeclaredNames=new _multimap2.default,this.forOfVarDeclaredNames=[],this}},{key:"exportName",value:function(s,o){return this.exportedNames.set(s,o),this}},{key:"exportDeclaredNames",value:function(){return addEach(this.exportedNames,this.lexicallyDeclaredNames,this.varDeclaredNames),addEach(this.exportedBindings,this.lexicallyDeclaredNames,this.varDeclaredNames),this}},{key:"exportBinding",value:function(s,o){return this.exportedBindings.set(s,o),this}},{key:"clearExportedBindings",value:function(){return this.exportedBindings=new _multimap2.default,this}},{key:"observeYieldExpression",value:function(s){return this.yieldExpressions.push(s),this}},{key:"clearYieldExpressions",value:function(){return this.yieldExpressions=[],this}},{key:"observeAwaitExpression",value:function(s){return this.awaitExpressions.push(s),this}},{key:"clearAwaitExpressions",value:function(){return this.awaitExpressions=[],this}},{key:"addError",value:function(s){return this.errors.push(s),this}},{key:"addStrictError",value:function(s){return this.strictErrors.push(s),this}},{key:"enforceStrictErrors",value:function(){return[].push.apply(this.errors,this.strictErrors),this.strictErrors=[],this}},{key:"concat",value:function(s){return this===identity?s:s===identity?this:([].push.apply(this.errors,s.errors),[].push.apply(this.strictErrors,s.strictErrors),[].push.apply(this.usedLabelNames,s.usedLabelNames),[].push.apply(this.freeBreakStatements,s.freeBreakStatements),[].push.apply(this.freeContinueStatements,s.freeContinueStatements),[].push.apply(this.freeLabeledBreakStatements,s.freeLabeledBreakStatements),[].push.apply(this.freeLabeledContinueStatements,s.freeLabeledContinueStatements),[].push.apply(this.newTargetExpressions,s.newTargetExpressions),addEach(this.boundNames,s.boundNames),addEach(this.lexicallyDeclaredNames,s.lexicallyDeclaredNames),addEach(this.functionDeclarationNames,s.functionDeclarationNames),addEach(this.varDeclaredNames,s.varDeclaredNames),[].push.apply(this.forOfVarDeclaredNames,s.forOfVarDeclaredNames),addEach(this.exportedNames,s.exportedNames),addEach(this.exportedBindings,s.exportedBindings),[].push.apply(this.superCallExpressions,s.superCallExpressions),[].push.apply(this.superCallExpressionsInConstructorMethod,s.superCallExpressionsInConstructorMethod),[].push.apply(this.superPropertyExpressions,s.superPropertyExpressions),[].push.apply(this.yieldExpressions,s.yieldExpressions),[].push.apply(this.awaitExpressions,s.awaitExpressions),this)}}],[{key:"empty",value:function(){return identity}}]),a}();identity=new EarlyErrorState;Object.getOwnPropertyNames(EarlyErrorState.prototype).forEach(function(a){a!=="constructor"&&Object.defineProperty(identity,a,{value:function(){return EarlyErrorState.prototype[a].apply(new EarlyErrorState,arguments)},enumerable:!1,writable:!0,configurable:!0})});earlyErrorState.EarlyError=function(a){_inherits$4(e,a);function e(s,o){_classCallCheck$7(this,e);var c=_possibleConstructorReturn$4(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,o));return c.node=s,c.message=o,c}return e}(Error);Object.defineProperty(earlyErrors,"__esModule",{value:!0});earlyErrors.EarlyErrorChecker=void 0;var _createClass$5=function(){function a(e,s){for(var o=0;o1&&s.slice(1).forEach(function(o){e=e.addError(new _earlyErrorState.EarlyError(o,"Duplicate constructor method in class"))}),e}var SUPERCALL_ERROR=function(e){return new _earlyErrorState.EarlyError(e,_errors.ErrorMessages.ILLEGAL_SUPER_CALL)},SUPERPROPERTY_ERROR=function(e){return new _earlyErrorState.EarlyError(e,"Member access on super must be in a method")},DUPLICATE_BINDING=function(e){return new _earlyErrorState.EarlyError(e,"Duplicate binding "+JSON.stringify(e.name))},FREE_CONTINUE=function(e){return new _earlyErrorState.EarlyError(e,"Continue statement must be nested within an iteration statement")},UNBOUND_CONTINUE=function(e){return new _earlyErrorState.EarlyError(e,"Continue statement must be nested within an iteration statement with label "+JSON.stringify(e.label))},FREE_BREAK=function(e){return new _earlyErrorState.EarlyError(e,"Break statement must be nested within an iteration statement or a switch statement")},UNBOUND_BREAK=function(e){return new _earlyErrorState.EarlyError(e,"Break statement must be nested within a statement with label "+JSON.stringify(e.label))};earlyErrors.EarlyErrorChecker=function(a){_inherits$3(e,a);function e(){return _classCallCheck$6(this,e),_possibleConstructorReturn$3(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,_earlyErrorState.EarlyErrorState))}return _createClass$5(e,[{key:"reduceAssignmentExpression",value:function(){return _get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceAssignmentExpression",this).apply(this,arguments).clearBoundNames()}},{key:"reduceAssignmentTargetIdentifier",value:function(o){var c=this.identity;return(o.name==="eval"||o.name==="arguments"||(0,_utils.isStrictModeReservedWord)(o.name))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(o,"The identifier "+JSON.stringify(o.name)+" must not be in binding position in strict mode"))),c}},{key:"reduceArrowExpression",value:function(o,c){var d=c.params,_=c.body,b=o.params.rest==null&&o.params.items.every(function($){return $.type==="BindingIdentifier"});d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),o.body.type==="FunctionBody"&&(_=_.enforceConflictingLexicallyDeclaredNames(d.lexicallyDeclaredNames,DUPLICATE_BINDING),isStrictFunctionBody(o.body)&&(d=d.enforceStrictErrors(),_=_.enforceStrictErrors())),d.yieldExpressions.forEach(function($){d=d.addError(new _earlyErrorState.EarlyError($,"Arrow parameters must not contain yield expressions"))}),d.awaitExpressions.forEach(function($){d=d.addError(new _earlyErrorState.EarlyError($,"Arrow parameters must not contain await expressions"))});var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceArrowExpression",this).call(this,o,{params:d,body:_});return!b&&o.body.type==="FunctionBody"&&isStrictFunctionBody(o.body)&&(k=k.addError(new _earlyErrorState.EarlyError(o,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),k=k.clearYieldExpressions(),k=k.clearAwaitExpressions(),k=k.observeVarBoundary(),k}},{key:"reduceAwaitExpression",value:function(o,c){var d=c.expression;return d.observeAwaitExpression(o)}},{key:"reduceBindingIdentifier",value:function(o){var c=this.identity;return(o.name==="eval"||o.name==="arguments"||(0,_utils.isStrictModeReservedWord)(o.name))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(o,"The identifier "+JSON.stringify(o.name)+" must not be in binding position in strict mode"))),c=c.bindName(o.name,o),c}},{key:"reduceBlock",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceBlock",this).apply(this,arguments);return o=o.functionDeclarationNamesAreLexical(),o=o.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),o=o.enforceConflictingLexicallyDeclaredNames(o.varDeclaredNames,DUPLICATE_BINDING),o=o.observeLexicalBoundary(),o}},{key:"reduceBreakStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceBreakStatement",this).apply(this,arguments);return c=o.label==null?c.addFreeBreakStatement(o):c.addFreeLabeledBreakStatement(o),c}},{key:"reduceCallExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCallExpression",this).apply(this,arguments);return o.callee.type==="Super"&&(c=c.observeSuperCallExpression(o)),c}},{key:"reduceCatchClause",value:function(o,c){var d=c.binding,_=c.body;d=d.observeLexicalDeclaration(),d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(_.previousLexicallyDeclaredNames,DUPLICATE_BINDING),d.lexicallyDeclaredNames.forEachEntry(function(k,$){_.varDeclaredNames.has($)&&_.varDeclaredNames.get($).forEach(function(j){_.forOfVarDeclaredNames.indexOf(j)>=0&&(d=d.addError(DUPLICATE_BINDING(j)))})});var b=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCatchClause",this).call(this,o,{binding:d,body:_});return b=b.observeLexicalBoundary(),b}},{key:"reduceClassDeclaration",value:function(o,c){var d=c.name,_=c.super,b=c.elements,k=d.enforceStrictErrors(),$=this.append.apply(this,_toConsumableArray$3(b));return $=$.enforceStrictErrors(),o.super!=null&&(_=_.enforceStrictErrors(),k=this.append(k,_),$=$.clearSuperCallExpressionsInConstructorMethod()),k=this.append(k,$),k=enforceDuplicateConstructorMethods(o,k),k=k.observeLexicalDeclaration(),k}},{key:"reduceClassElement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceClassElement",this).apply(this,arguments);return!o.isStatic&&isSpecialMethod(o.method)&&(c=c.addError(new _earlyErrorState.EarlyError(o,_errors.ErrorMessages.ILLEGAL_CONSTRUCTORS))),o.isStatic&&o.method.name.type==="StaticPropertyName"&&o.method.name.value==="prototype"&&(c=c.addError(new _earlyErrorState.EarlyError(o,'Static class methods cannot be named "prototype"'))),c}},{key:"reduceClassExpression",value:function(o,c){var d=c.name,_=c.super,b=c.elements,k=o.name==null?this.identity:d.enforceStrictErrors(),$=this.append.apply(this,_toConsumableArray$3(b));return $=$.enforceStrictErrors(),o.super!=null&&(_=_.enforceStrictErrors(),k=this.append(k,_),$=$.clearSuperCallExpressionsInConstructorMethod()),k=this.append(k,$),k=enforceDuplicateConstructorMethods(o,k),k=k.clearBoundNames(),k}},{key:"reduceCompoundAssignmentExpression",value:function(){return _get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCompoundAssignmentExpression",this).apply(this,arguments).clearBoundNames()}},{key:"reduceComputedMemberExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceComputedMemberExpression",this).apply(this,arguments);return o.object.type==="Super"&&(c=c.observeSuperPropertyExpression(o)),c}},{key:"reduceContinueStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceContinueStatement",this).apply(this,arguments);return c=o.label==null?c.addFreeContinueStatement(o):c.addFreeLabeledContinueStatement(o),c}},{key:"reduceDoWhileStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceDoWhileStatement",this).apply(this,arguments);return isLabelledFunction(o.body)&&(c=c.addError(new _earlyErrorState.EarlyError(o.body,"The body of a do-while statement must not be a labeled function declaration"))),c=c.clearFreeContinueStatements(),c=c.clearFreeBreakStatements(),c}},{key:"reduceExport",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExport",this).apply(this,arguments);return o=o.functionDeclarationNamesAreLexical(),o=o.exportDeclaredNames(),o}},{key:"reduceExportFrom",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportFrom",this).apply(this,arguments);return o=o.clearExportedBindings(),o}},{key:"reduceExportFromSpecifier",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportFromSpecifier",this).apply(this,arguments);return c=c.exportName(o.exportedName||o.name,o),c=c.exportBinding(o.name,o),c}},{key:"reduceExportLocalSpecifier",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportLocalSpecifier",this).apply(this,arguments);return c=c.exportName(o.exportedName||o.name.name,o),c=c.exportBinding(o.name.name,o),c}},{key:"reduceExportDefault",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportDefault",this).apply(this,arguments);return c=c.functionDeclarationNamesAreLexical(),c=c.exportName("default",o),c}},{key:"reduceFormalParameters",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFormalParameters",this).apply(this,arguments);return o=o.observeLexicalDeclaration(),o}},{key:"reduceForStatement",value:function(o,c){var d=c.init,_=c.test,b=c.update,k=c.body;d!=null&&(d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(k.varDeclaredNames,DUPLICATE_BINDING));var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForStatement",this).call(this,o,{init:d,test:_,update:b,body:k});return o.init!=null&&o.init.type==="VariableDeclaration"&&o.init.kind==="const"&&o.init.declarators.forEach(function(j){j.init==null&&($=$.addError(new _earlyErrorState.EarlyError(j,"Constant lexical declarations must have an initialiser")))}),isLabelledFunction(o.body)&&($=$.addError(new _earlyErrorState.EarlyError(o.body,"The body of a for statement must not be a labeled function declaration"))),$=$.clearFreeContinueStatements(),$=$.clearFreeBreakStatements(),$=$.observeLexicalBoundary(),$}},{key:"reduceForInStatement",value:function(o,c){var d=c.left,_=c.right,b=c.body;d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING);var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForInStatement",this).call(this,o,{left:d,right:_,body:b});return isLabelledFunction(o.body)&&(k=k.addError(new _earlyErrorState.EarlyError(o.body,"The body of a for-in statement must not be a labeled function declaration"))),k=k.clearFreeContinueStatements(),k=k.clearFreeBreakStatements(),k=k.observeLexicalBoundary(),k}},{key:"reduceForOfStatement",value:function(o,c){var d=c.left,_=c.right,b=c.body;d=d.recordForOfVars(),d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING);var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForOfStatement",this).call(this,o,{left:d,right:_,body:b});return isLabelledFunction(o.body)&&(k=k.addError(new _earlyErrorState.EarlyError(o.body,"The body of a for-of statement must not be a labeled function declaration"))),k=k.clearFreeContinueStatements(),k=k.clearFreeBreakStatements(),k=k.observeLexicalBoundary(),k}},{key:"reduceForAwaitStatement",value:function(o,c){var d=c.left,_=c.right,b=c.body;d=d.recordForOfVars(),d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING);var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForOfStatement",this).call(this,o,{left:d,right:_,body:b});return isLabelledFunction(o.body)&&(k=k.addError(new _earlyErrorState.EarlyError(o.body,"The body of a for-await statement must not be a labeled function declaration"))),k=k.clearFreeContinueStatements(),k=k.clearFreeBreakStatements(),k=k.observeLexicalBoundary(),k}},{key:"reduceFunctionBody",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionBody",this).apply(this,arguments);return c=c.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),c=c.enforceConflictingLexicallyDeclaredNames(c.varDeclaredNames,DUPLICATE_BINDING),c=c.enforceFreeContinueStatementErrors(FREE_CONTINUE),c=c.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),c=c.enforceFreeBreakStatementErrors(FREE_BREAK),c=c.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),c=c.clearUsedLabelNames(),c=c.clearYieldExpressions(),c=c.clearAwaitExpressions(),isStrictFunctionBody(o)&&(c=c.enforceStrictErrors()),c}},{key:"reduceFunctionDeclaration",value:function(o,c){var d=c.name,_=c.params,b=c.body,k=o.params.rest==null&&o.params.items.every(function(_e){return _e.type==="BindingIdentifier"}),$=!k||o.isGenerator?"addError":"addStrictError";_.lexicallyDeclaredNames.forEachEntry(function(_e){_e.length>1&&_e.slice(1).forEach(function(et){_=_[$](DUPLICATE_BINDING(et))})}),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),b=b.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),o.isGenerator&&_.yieldExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Generator parameters must not contain yield expressions"))}),o.isAsync&&_.awaitExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Async function parameters must not contain await expressions"))}),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(o.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var j=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionDeclaration",this).call(this,o,{name:d,params:_,body:b});return!k&&isStrictFunctionBody(o.body)&&(j=j.addError(new _earlyErrorState.EarlyError(o,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),j=j.clearYieldExpressions(),j=j.clearAwaitExpressions(),j=j.observeFunctionDeclaration(),j}},{key:"reduceFunctionExpression",value:function(o,c){var d=c.name,_=c.params,b=c.body,k=o.params.rest==null&&o.params.items.every(function(_e){return _e.type==="BindingIdentifier"}),$=!k||o.isGenerator?"addError":"addStrictError";_.lexicallyDeclaredNames.forEachEntry(function(_e,et){_e.length>1&&_e.slice(1).forEach(function(tt){_=_[$](new _earlyErrorState.EarlyError(tt,"Duplicate binding "+JSON.stringify(et)))})}),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),b=b.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),o.isGenerator&&_.yieldExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Generator parameters must not contain yield expressions"))}),o.isAsync&&_.awaitExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Async function parameters must not contain await expressions"))}),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(o.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var j=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionExpression",this).call(this,o,{name:d,params:_,body:b});return!k&&isStrictFunctionBody(o.body)&&(j=j.addError(new _earlyErrorState.EarlyError(o,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),j=j.clearBoundNames(),j=j.clearYieldExpressions(),j=j.clearAwaitExpressions(),j=j.observeVarBoundary(),j}},{key:"reduceGetter",value:function(o,c){var d=c.name,_=c.body;_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.clearSuperPropertyExpressions(),_=_.clearNewTargetExpressions(),isStrictFunctionBody(o.body)&&(_=_.enforceStrictErrors());var b=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceGetter",this).call(this,o,{name:d,body:_});return b=b.observeVarBoundary(),b}},{key:"reduceIdentifierExpression",value:function(o){var c=this.identity;return(0,_utils.isStrictModeReservedWord)(o.name)&&(c=c.addStrictError(new _earlyErrorState.EarlyError(o,"The identifier "+JSON.stringify(o.name)+" must not be in expression position in strict mode"))),c}},{key:"reduceIfStatement",value:function(o,c){var d=c.test,_=c.consequent,b=c.alternate;return isLabelledFunction(o.consequent)&&(_=_.addError(new _earlyErrorState.EarlyError(o.consequent,"The consequent of an if statement must not be a labeled function declaration"))),o.alternate!=null&&isLabelledFunction(o.alternate)&&(b=b.addError(new _earlyErrorState.EarlyError(o.alternate,"The alternate of an if statement must not be a labeled function declaration"))),o.consequent.type==="FunctionDeclaration"&&(_=_.addStrictError(new _earlyErrorState.EarlyError(o.consequent,"FunctionDeclarations in IfStatements are disallowed in strict mode")),_=_.observeLexicalBoundary()),o.alternate!=null&&o.alternate.type==="FunctionDeclaration"&&(b=b.addStrictError(new _earlyErrorState.EarlyError(o.alternate,"FunctionDeclarations in IfStatements are disallowed in strict mode")),b=b.observeLexicalBoundary()),_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceIfStatement",this).call(this,o,{test:d,consequent:_,alternate:b})}},{key:"reduceImport",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceImport",this).apply(this,arguments);return o=o.observeLexicalDeclaration(),o}},{key:"reduceImportNamespace",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceImportNamespace",this).apply(this,arguments);return o=o.observeLexicalDeclaration(),o}},{key:"reduceLabeledStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceLabeledStatement",this).apply(this,arguments);return(o.label==="yield"||(0,_utils.isStrictModeReservedWord)(o.label))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(o,"The identifier "+JSON.stringify(o.label)+" must not be in label position in strict mode"))),c.usedLabelNames.indexOf(o.label)>=0&&(c=c.addError(new _earlyErrorState.EarlyError(o,"Label "+JSON.stringify(o.label)+" has already been declared"))),o.body.type==="FunctionDeclaration"&&(c=c.addStrictError(new _earlyErrorState.EarlyError(o,"Labeled FunctionDeclarations are disallowed in strict mode"))),c=isIterationStatement(o.body)?c.observeIterationLabel(o.label):c.observeNonIterationLabel(o.label),c}},{key:"reduceLiteralRegExpExpression",value:function(){var o=this.identity;return o}},{key:"reduceMethod",value:function(o,c){var d=c.name,_=c.params,b=c.body,k=o.params.rest==null&&o.params.items.every(function(j){return j.type==="BindingIdentifier"});_=_.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),o.name.type==="StaticPropertyName"&&o.name.value==="constructor"?(b=b.observeConstructorMethod(),_=_.observeConstructorMethod()):(b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR)),o.isGenerator&&_.yieldExpressions.forEach(function(j){_=_.addError(new _earlyErrorState.EarlyError(j,"Generator parameters must not contain yield expressions"))}),o.isAsync&&_.awaitExpressions.forEach(function(j){_=_.addError(new _earlyErrorState.EarlyError(j,"Async function parameters must not contain await expressions"))}),b=b.clearSuperPropertyExpressions(),_=_.clearSuperPropertyExpressions(),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(o.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceMethod",this).call(this,o,{name:d,params:_,body:b});return!k&&isStrictFunctionBody(o.body)&&($=$.addError(new _earlyErrorState.EarlyError(o,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),$=$.clearYieldExpressions(),$=$.clearAwaitExpressions(),$=$.observeVarBoundary(),$}},{key:"reduceModule",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceModule",this).apply(this,arguments);return o=o.functionDeclarationNamesAreLexical(),o=o.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),o=o.enforceConflictingLexicallyDeclaredNames(o.varDeclaredNames,DUPLICATE_BINDING),o.exportedNames.forEachEntry(function(c,d){c.length>1&&c.slice(1).forEach(function(_){o=o.addError(new _earlyErrorState.EarlyError(_,"Duplicate export "+JSON.stringify(d)))})}),o.exportedBindings.forEachEntry(function(c,d){!o.lexicallyDeclaredNames.has(d)&&!o.varDeclaredNames.has(d)&&c.forEach(function(_){o=o.addError(new _earlyErrorState.EarlyError(_,"Exported binding "+JSON.stringify(d)+" is not declared"))})}),o.newTargetExpressions.forEach(function(c){o=o.addError(new _earlyErrorState.EarlyError(c,"new.target must be within function (but not arrow expression) code"))}),o=o.enforceFreeContinueStatementErrors(FREE_CONTINUE),o=o.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),o=o.enforceFreeBreakStatementErrors(FREE_BREAK),o=o.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),o=o.enforceSuperCallExpressions(SUPERCALL_ERROR),o=o.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),o=o.enforceStrictErrors(),o}},{key:"reduceNewTargetExpression",value:function(o){return this.identity.observeNewTargetExpression(o)}},{key:"reduceObjectExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceObjectExpression",this).apply(this,arguments);c=c.enforceSuperCallExpressionsInConstructorMethod(SUPERCALL_ERROR);var d=o.properties.filter(function(_){return _.type==="DataProperty"&&_.name.type==="StaticPropertyName"&&_.name.value==="__proto__"});return d.slice(1).forEach(function(_){c=c.addError(new _earlyErrorState.EarlyError(_,"Duplicate __proto__ property in object literal not allowed"))}),c}},{key:"reduceUpdateExpression",value:function(){var o=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceUpdateExpression",this).apply(this,arguments);return o=o.clearBoundNames(),o}},{key:"reduceUnaryExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceUnaryExpression",this).apply(this,arguments);return o.operator==="delete"&&o.operand.type==="IdentifierExpression"&&(c=c.addStrictError(new _earlyErrorState.EarlyError(o,"Identifier expressions must not be deleted in strict mode"))),c}},{key:"reduceScript",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceScript",this).apply(this,arguments);return c=c.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),c=c.enforceConflictingLexicallyDeclaredNames(c.varDeclaredNames,DUPLICATE_BINDING),c.newTargetExpressions.forEach(function(d){c=c.addError(new _earlyErrorState.EarlyError(d,"new.target must be within function (but not arrow expression) code"))}),c=c.enforceFreeContinueStatementErrors(FREE_CONTINUE),c=c.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),c=c.enforceFreeBreakStatementErrors(FREE_BREAK),c=c.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),c=c.enforceSuperCallExpressions(SUPERCALL_ERROR),c=c.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),isStrictFunctionBody(o)&&(c=c.enforceStrictErrors()),c}},{key:"reduceSetter",value:function(o,c){var d=c.name,_=c.param,b=c.body,k=o.param.type==="BindingIdentifier";_=_.observeLexicalDeclaration(),_=_.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.clearSuperPropertyExpressions(),b=b.clearSuperPropertyExpressions(),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(o.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceSetter",this).call(this,o,{name:d,param:_,body:b});return!k&&isStrictFunctionBody(o.body)&&($=$.addError(new _earlyErrorState.EarlyError(o,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),$=$.observeVarBoundary(),$}},{key:"reduceStaticMemberExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceStaticMemberExpression",this).apply(this,arguments);return o.object.type==="Super"&&(c=c.observeSuperPropertyExpression(o)),c}},{key:"reduceSwitchStatement",value:function(o,c){var d=c.discriminant,_=c.cases,b=this.append.apply(this,_toConsumableArray$3(_));b=b.functionDeclarationNamesAreLexical(),b=b.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),b=b.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING),b=b.observeLexicalBoundary();var k=this.append(d,b);return k=k.clearFreeBreakStatements(),k}},{key:"reduceSwitchStatementWithDefault",value:function(o,c){var d=c.discriminant,_=c.preDefaultCases,b=c.defaultCase,k=c.postDefaultCases,$=this.append.apply(this,[b].concat(_toConsumableArray$3(_),_toConsumableArray$3(k)));$=$.functionDeclarationNamesAreLexical(),$=$.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),$=$.enforceConflictingLexicallyDeclaredNames($.varDeclaredNames,DUPLICATE_BINDING),$=$.observeLexicalBoundary();var j=this.append(d,$);return j=j.clearFreeBreakStatements(),j}},{key:"reduceVariableDeclaration",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceVariableDeclaration",this).apply(this,arguments);switch(o.kind){case"const":case"let":{c=c.observeLexicalDeclaration(),c.lexicallyDeclaredNames.has("let")&&c.lexicallyDeclaredNames.get("let").forEach(function(d){c=c.addError(new _earlyErrorState.EarlyError(d,'Lexical declarations must not have a binding named "let"'))});break}case"var":c=c.observeVarDeclaration();break}return c}},{key:"reduceVariableDeclarationStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceVariableDeclarationStatement",this).apply(this,arguments);return o.declaration.kind==="const"&&o.declaration.declarators.forEach(function(d){d.init==null&&(c=c.addError(new _earlyErrorState.EarlyError(d,"Constant lexical declarations must have an initialiser")))}),c}},{key:"reduceWhileStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceWhileStatement",this).apply(this,arguments);return isLabelledFunction(o.body)&&(c=c.addError(new _earlyErrorState.EarlyError(o.body,"The body of a while statement must not be a labeled function declaration"))),c=c.clearFreeContinueStatements().clearFreeBreakStatements(),c}},{key:"reduceWithStatement",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceWithStatement",this).apply(this,arguments);return isLabelledFunction(o.body)&&(c=c.addError(new _earlyErrorState.EarlyError(o.body,"The body of a with statement must not be a labeled function declaration"))),c=c.addStrictError(new _earlyErrorState.EarlyError(o,"Strict mode code must not include a with statement")),c}},{key:"reduceYieldExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceYieldExpression",this).apply(this,arguments);return c=c.observeYieldExpression(o),c}},{key:"reduceYieldGeneratorExpression",value:function(o){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceYieldGeneratorExpression",this).apply(this,arguments);return c=c.observeYieldExpression(o),c}}],[{key:"check",value:function(o){return(0,_shiftReducer2.default)(new e,o).errors}}]),e}(_shiftReducer$1.MonoidalReducer);(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.TokenType=a.TokenClass=a.Tokenizer=a.ParserWithLocation=a.GenericParser=a.EarlyErrorChecker=a.parseScriptWithLocation=a.parseModuleWithLocation=a.parseScript=a.parseModule=void 0;var e=function(){function it(rt,st){for(var ot=0;ot1&&arguments[1]!==void 0?arguments[1]:{},at=ot.earlyErrors,ht=at===void 0?!0:at,lt=new c.GenericParser(st),ut=lt[it]();if(ht){var ct=d.EarlyErrorChecker.check(ut);if(ct.length>0)throw new o.JsError(0,1,0,ct[0].message)}return ut}}function tt(it){return function(st){var ot=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},at=ot.earlyErrors,ht=at===void 0?!0:at,lt=new _e(st),ut=lt[it]();if(ht){var ct=d.EarlyErrorChecker.check(ut);if(ct.length>0){var dt=ct[0],ft=dt.node,Et=dt.message,yt=lt.locations.get(ft).start,gt=yt.offset,St=yt.line,pt=yt.column;throw new o.JsError(gt,St,pt,Et)}}return{tree:ut,locations:lt.locations,comments:lt.comments}}}a.parseModule=et("parseModule");var nt=a.parseScript=et("parseScript");a.parseModuleWithLocation=tt("parseModule"),a.parseScriptWithLocation=tt("parseScript"),a.default=nt,a.EarlyErrorChecker=d.EarlyErrorChecker,a.GenericParser=c.GenericParser,a.ParserWithLocation=_e})(dist$7);var dist$2={};Object.defineProperty(dist$2,"__esModule",{value:!0});var _default=dist$2.default=function(){var a={},e={typeName:"Boolean"},s={typeName:"Number"},o={typeName:"String"};function c(pn){return{typeName:"Maybe",argument:pn}}function d(pn){return{typeName:"List",argument:pn}}function _(pn){return{typeName:"Const",argument:pn}}function b(){return{typeName:"Union",arguments:[].slice.call(arguments,0)}}var k={typeName:"Enum",values:["ArrayAssignmentTarget","ArrayBinding","ArrayExpression","ArrowExpression","AssignmentExpression","AssignmentTargetIdentifier","AssignmentTargetPropertyIdentifier","AssignmentTargetPropertyProperty","AssignmentTargetWithDefault","AwaitExpression","BinaryExpression","BindingIdentifier","BindingPropertyIdentifier","BindingPropertyProperty","BindingWithDefault","Block","BlockStatement","BreakStatement","CallExpression","CatchClause","ClassDeclaration","ClassElement","ClassExpression","CompoundAssignmentExpression","ComputedMemberAssignmentTarget","ComputedMemberExpression","ComputedPropertyName","ConditionalExpression","ContinueStatement","DataProperty","DebuggerStatement","Directive","DoWhileStatement","EmptyStatement","Export","ExportAllFrom","ExportDefault","ExportFrom","ExportFromSpecifier","ExportLocalSpecifier","ExportLocals","ExpressionStatement","ForAwaitStatement","ForInStatement","ForOfStatement","ForStatement","FormalParameters","FunctionBody","FunctionDeclaration","FunctionExpression","Getter","IdentifierExpression","IfStatement","Import","ImportNamespace","ImportSpecifier","LabeledStatement","LiteralBooleanExpression","LiteralInfinityExpression","LiteralNullExpression","LiteralNumericExpression","LiteralRegExpExpression","LiteralStringExpression","Method","Module","NewExpression","NewTargetExpression","ObjectAssignmentTarget","ObjectBinding","ObjectExpression","ReturnStatement","Script","Setter","ShorthandProperty","SpreadElement","SpreadProperty","StaticMemberAssignmentTarget","StaticMemberExpression","StaticPropertyName","Super","SwitchCase","SwitchDefault","SwitchStatement","SwitchStatementWithDefault","TemplateElement","TemplateExpression","ThisExpression","ThrowStatement","TryCatchStatement","TryFinallyStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarationStatement","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","YieldGeneratorExpression"]},$={typeName:"Enum",values:["==","!=","===","!==","<","<=",">",">=","in","instanceof","<<",">>",">>>","+","-","*","/","%","**",",","||","&&","|","^","&"]},j={typeName:"Enum",values:["+=","-=","*=","/=","%=","**=","<<=",">>=",">>>=","|=","^=","&="]},_e={typeName:"Enum",values:["+","-","!","~","typeof","void","delete"]},et={typeName:"Enum",values:["++","--"]},tt={typeName:"Enum",values:["var","let","const"]},nt=a.ArrayAssignmentTarget={},it=a.ArrayBinding={},rt=a.ArrayExpression={},st=a.ArrowExpression={},ot=a.AssignmentExpression={},at=a.AssignmentTargetIdentifier={},ht=a.AssignmentTargetPropertyIdentifier={},lt=a.AssignmentTargetPropertyProperty={},ut=a.AssignmentTargetWithDefault={},ct=a.AwaitExpression={},dt=a.BinaryExpression={},ft=a.BindingIdentifier={},Et=a.BindingPropertyIdentifier={},yt=a.BindingPropertyProperty={},gt=a.BindingWithDefault={},St=a.Block={},pt=a.BlockStatement={},mt=a.BreakStatement={},At=a.CallExpression={},Ot=a.CatchClause={},vt=a.ClassDeclaration={},Ct=a.ClassElement={},Tt=a.ClassExpression={},_t=a.CompoundAssignmentExpression={},bt=a.ComputedMemberAssignmentTarget={},xt=a.ComputedMemberExpression={},Rt=a.ComputedPropertyName={},$t=a.ConditionalExpression={},It=a.ContinueStatement={},Ft=a.DataProperty={},qt=a.DebuggerStatement={},Qt=a.Directive={},Nt=a.DoWhileStatement={},Kt=a.EmptyStatement={},Jt=a.Export={},en=a.ExportAllFrom={},tn=a.ExportDefault={},wt=a.ExportFrom={},Pt=a.ExportFromSpecifier={},Wt=a.ExportLocalSpecifier={},Lt=a.ExportLocals={},Mt=a.ExpressionStatement={},jt=a.ForAwaitStatement={},Vt=a.ForInStatement={},zt=a.ForOfStatement={},nn=a.ForStatement={},Zt=a.FormalParameters={},Yt=a.FunctionBody={},sn=a.FunctionDeclaration={},fn=a.FunctionExpression={},Sn=a.Getter={},ln=a.IdentifierExpression={},_n=a.IfStatement={},vn=a.Import={},Cn=a.ImportNamespace={},mn=a.ImportSpecifier={},On=a.LabeledStatement={},Dn=a.LiteralBooleanExpression={},bn=a.LiteralInfinityExpression={},Tn=a.LiteralNullExpression={},xn=a.LiteralNumericExpression={},wn=a.LiteralRegExpExpression={},kn=a.LiteralStringExpression={},Fn=a.Method={},Nn=a.Module={},Bn=a.NewExpression={},Pn=a.NewTargetExpression={},Ht=a.ObjectAssignmentTarget={},Ut=a.ObjectBinding={},Rn=a.ObjectExpression={},In=a.ReturnStatement={},$n=a.Script={},Mn=a.Setter={},Ln=a.ShorthandProperty={},cn=a.SpreadElement={},jn=a.SpreadProperty={},Wn=a.StaticMemberAssignmentTarget={},Qn=a.StaticMemberExpression={},qn=a.StaticPropertyName={},an=a.Super={},hn=a.SwitchCase={},gn=a.SwitchDefault={},Gn=a.SwitchStatement={},Vn=a.SwitchStatementWithDefault={},yn=a.TemplateElement={},Un=a.TemplateExpression={},zn=a.ThisExpression={},Hn=a.ThrowStatement={},Xn=a.TryCatchStatement={},Zn=a.TryFinallyStatement={},Yn=a.UnaryExpression={},Kn=a.UpdateExpression={},rn=a.VariableDeclaration={},Jn=a.VariableDeclarationStatement={},En=a.VariableDeclarator={},er=a.WhileStatement={},tr=a.WithStatement={},nr=a.YieldExpression={},rr=a.YieldGeneratorExpression={},yr=b(xt,Qn),sr=b(ht,lt);b(vt,Tt);var or=b(Jt,en,tn,wt,Lt),un=b(Rt,qn);b(sn,fn);var ar=b(vn,Cn),Er=b(Nt,jt,Vt,zt,nn,er),Xt=b(bt,Wn),ur=b(Et,yt),lr=b(Sn,Fn,Mn),Ar=b(Nn,$n),Sr=b(at,ft,ln),_r=b(Ft,lr),Bt=b(rt,st,ot,ct,dt,At,Tt,_t,$t,fn,ln,Dn,bn,Tn,xn,wn,kn,yr,Bn,Pn,Rn,Un,zn,Yn,Kn,nr,rr),Gt=b(pt,mt,vt,It,qt,Kt,Mt,sn,_n,Er,On,In,Gn,Vn,Hn,Xn,Zn,Jn,tr),cr=b(_r,Ln,jn);return b(nt,it,sr,ut,ur,gt,St,Ot,Ct,Qt,or,Pt,Wt,Bt,Zt,Yt,ar,mn,Xt,Ht,Ut,cr,Ar,un,cn,Gt,an,hn,gn,yn,rn,En,Sr),nt.typeName="ArrayAssignmentTarget",nt.fields=[{name:"type",type:_(k),value:"ArrayAssignmentTarget"},{name:"elements",type:d(c(b(ut,b(b(nt,Ht),b(at,Xt)))))},{name:"rest",type:c(b(b(nt,Ht),b(at,Xt)))}],it.typeName="ArrayBinding",it.fields=[{name:"type",type:_(k),value:"ArrayBinding"},{name:"elements",type:d(c(b(gt,b(ft,b(it,Ut)))))},{name:"rest",type:c(b(ft,b(it,Ut)))}],rt.typeName="ArrayExpression",rt.fields=[{name:"type",type:_(k),value:"ArrayExpression"},{name:"elements",type:d(c(b(Bt,cn)))}],st.typeName="ArrowExpression",st.fields=[{name:"type",type:_(k),value:"ArrowExpression"},{name:"isAsync",type:e},{name:"params",type:Zt},{name:"body",type:b(Bt,Yt)}],ot.typeName="AssignmentExpression",ot.fields=[{name:"type",type:_(k),value:"AssignmentExpression"},{name:"binding",type:b(b(nt,Ht),b(at,Xt))},{name:"expression",type:Bt}],at.typeName="AssignmentTargetIdentifier",at.fields=[{name:"type",type:_(k),value:"AssignmentTargetIdentifier"},{name:"name",type:o}],ht.typeName="AssignmentTargetPropertyIdentifier",ht.fields=[{name:"type",type:_(k),value:"AssignmentTargetPropertyIdentifier"},{name:"binding",type:at},{name:"init",type:c(Bt)}],lt.typeName="AssignmentTargetPropertyProperty",lt.fields=[{name:"type",type:_(k),value:"AssignmentTargetPropertyProperty"},{name:"name",type:un},{name:"binding",type:b(ut,b(b(nt,Ht),b(at,Xt)))}],ut.typeName="AssignmentTargetWithDefault",ut.fields=[{name:"type",type:_(k),value:"AssignmentTargetWithDefault"},{name:"binding",type:b(b(nt,Ht),b(at,Xt))},{name:"init",type:Bt}],ct.typeName="AwaitExpression",ct.fields=[{name:"type",type:_(k),value:"AwaitExpression"},{name:"expression",type:Bt}],dt.typeName="BinaryExpression",dt.fields=[{name:"type",type:_(k),value:"BinaryExpression"},{name:"left",type:Bt},{name:"operator",type:$},{name:"right",type:Bt}],ft.typeName="BindingIdentifier",ft.fields=[{name:"type",type:_(k),value:"BindingIdentifier"},{name:"name",type:o}],Et.typeName="BindingPropertyIdentifier",Et.fields=[{name:"type",type:_(k),value:"BindingPropertyIdentifier"},{name:"binding",type:ft},{name:"init",type:c(Bt)}],yt.typeName="BindingPropertyProperty",yt.fields=[{name:"type",type:_(k),value:"BindingPropertyProperty"},{name:"name",type:un},{name:"binding",type:b(gt,b(ft,b(it,Ut)))}],gt.typeName="BindingWithDefault",gt.fields=[{name:"type",type:_(k),value:"BindingWithDefault"},{name:"binding",type:b(ft,b(it,Ut))},{name:"init",type:Bt}],St.typeName="Block",St.fields=[{name:"type",type:_(k),value:"Block"},{name:"statements",type:d(Gt)}],pt.typeName="BlockStatement",pt.fields=[{name:"type",type:_(k),value:"BlockStatement"},{name:"block",type:St}],mt.typeName="BreakStatement",mt.fields=[{name:"type",type:_(k),value:"BreakStatement"},{name:"label",type:c(o)}],At.typeName="CallExpression",At.fields=[{name:"type",type:_(k),value:"CallExpression"},{name:"callee",type:b(Bt,an)},{name:"arguments",type:d(b(Bt,cn))}],Ot.typeName="CatchClause",Ot.fields=[{name:"type",type:_(k),value:"CatchClause"},{name:"binding",type:b(ft,b(it,Ut))},{name:"body",type:St}],vt.typeName="ClassDeclaration",vt.fields=[{name:"type",type:_(k),value:"ClassDeclaration"},{name:"name",type:ft},{name:"super",type:c(Bt)},{name:"elements",type:d(Ct)}],Ct.typeName="ClassElement",Ct.fields=[{name:"type",type:_(k),value:"ClassElement"},{name:"isStatic",type:e},{name:"method",type:lr}],Tt.typeName="ClassExpression",Tt.fields=[{name:"type",type:_(k),value:"ClassExpression"},{name:"name",type:c(ft)},{name:"super",type:c(Bt)},{name:"elements",type:d(Ct)}],_t.typeName="CompoundAssignmentExpression",_t.fields=[{name:"type",type:_(k),value:"CompoundAssignmentExpression"},{name:"binding",type:b(at,Xt)},{name:"operator",type:j},{name:"expression",type:Bt}],bt.typeName="ComputedMemberAssignmentTarget",bt.fields=[{name:"type",type:_(k),value:"ComputedMemberAssignmentTarget"},{name:"object",type:b(Bt,an)},{name:"expression",type:Bt}],xt.typeName="ComputedMemberExpression",xt.fields=[{name:"type",type:_(k),value:"ComputedMemberExpression"},{name:"object",type:b(Bt,an)},{name:"expression",type:Bt}],Rt.typeName="ComputedPropertyName",Rt.fields=[{name:"type",type:_(k),value:"ComputedPropertyName"},{name:"expression",type:Bt}],$t.typeName="ConditionalExpression",$t.fields=[{name:"type",type:_(k),value:"ConditionalExpression"},{name:"test",type:Bt},{name:"consequent",type:Bt},{name:"alternate",type:Bt}],It.typeName="ContinueStatement",It.fields=[{name:"type",type:_(k),value:"ContinueStatement"},{name:"label",type:c(o)}],Ft.typeName="DataProperty",Ft.fields=[{name:"type",type:_(k),value:"DataProperty"},{name:"name",type:un},{name:"expression",type:Bt}],qt.typeName="DebuggerStatement",qt.fields=[{name:"type",type:_(k),value:"DebuggerStatement"}],Qt.typeName="Directive",Qt.fields=[{name:"type",type:_(k),value:"Directive"},{name:"rawValue",type:o}],Nt.typeName="DoWhileStatement",Nt.fields=[{name:"type",type:_(k),value:"DoWhileStatement"},{name:"body",type:Gt},{name:"test",type:Bt}],Kt.typeName="EmptyStatement",Kt.fields=[{name:"type",type:_(k),value:"EmptyStatement"}],Jt.typeName="Export",Jt.fields=[{name:"type",type:_(k),value:"Export"},{name:"declaration",type:b(vt,sn,rn)}],en.typeName="ExportAllFrom",en.fields=[{name:"type",type:_(k),value:"ExportAllFrom"},{name:"moduleSpecifier",type:o}],tn.typeName="ExportDefault",tn.fields=[{name:"type",type:_(k),value:"ExportDefault"},{name:"body",type:b(vt,Bt,sn)}],wt.typeName="ExportFrom",wt.fields=[{name:"type",type:_(k),value:"ExportFrom"},{name:"namedExports",type:d(Pt)},{name:"moduleSpecifier",type:o}],Pt.typeName="ExportFromSpecifier",Pt.fields=[{name:"type",type:_(k),value:"ExportFromSpecifier"},{name:"name",type:o},{name:"exportedName",type:c(o)}],Wt.typeName="ExportLocalSpecifier",Wt.fields=[{name:"type",type:_(k),value:"ExportLocalSpecifier"},{name:"name",type:ln},{name:"exportedName",type:c(o)}],Lt.typeName="ExportLocals",Lt.fields=[{name:"type",type:_(k),value:"ExportLocals"},{name:"namedExports",type:d(Wt)}],Mt.typeName="ExpressionStatement",Mt.fields=[{name:"type",type:_(k),value:"ExpressionStatement"},{name:"expression",type:Bt}],jt.typeName="ForAwaitStatement",jt.fields=[{name:"type",type:_(k),value:"ForAwaitStatement"},{name:"left",type:b(b(b(nt,Ht),b(at,Xt)),rn)},{name:"right",type:Bt},{name:"body",type:Gt}],Vt.typeName="ForInStatement",Vt.fields=[{name:"type",type:_(k),value:"ForInStatement"},{name:"left",type:b(b(b(nt,Ht),b(at,Xt)),rn)},{name:"right",type:Bt},{name:"body",type:Gt}],zt.typeName="ForOfStatement",zt.fields=[{name:"type",type:_(k),value:"ForOfStatement"},{name:"left",type:b(b(b(nt,Ht),b(at,Xt)),rn)},{name:"right",type:Bt},{name:"body",type:Gt}],nn.typeName="ForStatement",nn.fields=[{name:"type",type:_(k),value:"ForStatement"},{name:"init",type:c(b(Bt,rn))},{name:"test",type:c(Bt)},{name:"update",type:c(Bt)},{name:"body",type:Gt}],Zt.typeName="FormalParameters",Zt.fields=[{name:"type",type:_(k),value:"FormalParameters"},{name:"items",type:d(b(gt,b(ft,b(it,Ut))))},{name:"rest",type:c(b(ft,b(it,Ut)))}],Yt.typeName="FunctionBody",Yt.fields=[{name:"type",type:_(k),value:"FunctionBody"},{name:"directives",type:d(Qt)},{name:"statements",type:d(Gt)}],sn.typeName="FunctionDeclaration",sn.fields=[{name:"type",type:_(k),value:"FunctionDeclaration"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:ft},{name:"params",type:Zt},{name:"body",type:Yt}],fn.typeName="FunctionExpression",fn.fields=[{name:"type",type:_(k),value:"FunctionExpression"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:c(ft)},{name:"params",type:Zt},{name:"body",type:Yt}],Sn.typeName="Getter",Sn.fields=[{name:"type",type:_(k),value:"Getter"},{name:"name",type:un},{name:"body",type:Yt}],ln.typeName="IdentifierExpression",ln.fields=[{name:"type",type:_(k),value:"IdentifierExpression"},{name:"name",type:o}],_n.typeName="IfStatement",_n.fields=[{name:"type",type:_(k),value:"IfStatement"},{name:"test",type:Bt},{name:"consequent",type:Gt},{name:"alternate",type:c(Gt)}],vn.typeName="Import",vn.fields=[{name:"type",type:_(k),value:"Import"},{name:"defaultBinding",type:c(ft)},{name:"namedImports",type:d(mn)},{name:"moduleSpecifier",type:o}],Cn.typeName="ImportNamespace",Cn.fields=[{name:"type",type:_(k),value:"ImportNamespace"},{name:"defaultBinding",type:c(ft)},{name:"namespaceBinding",type:ft},{name:"moduleSpecifier",type:o}],mn.typeName="ImportSpecifier",mn.fields=[{name:"type",type:_(k),value:"ImportSpecifier"},{name:"name",type:c(o)},{name:"binding",type:ft}],On.typeName="LabeledStatement",On.fields=[{name:"type",type:_(k),value:"LabeledStatement"},{name:"label",type:o},{name:"body",type:Gt}],Dn.typeName="LiteralBooleanExpression",Dn.fields=[{name:"type",type:_(k),value:"LiteralBooleanExpression"},{name:"value",type:e}],bn.typeName="LiteralInfinityExpression",bn.fields=[{name:"type",type:_(k),value:"LiteralInfinityExpression"}],Tn.typeName="LiteralNullExpression",Tn.fields=[{name:"type",type:_(k),value:"LiteralNullExpression"}],xn.typeName="LiteralNumericExpression",xn.fields=[{name:"type",type:_(k),value:"LiteralNumericExpression"},{name:"value",type:s}],wn.typeName="LiteralRegExpExpression",wn.fields=[{name:"type",type:_(k),value:"LiteralRegExpExpression"},{name:"pattern",type:o},{name:"global",type:e},{name:"ignoreCase",type:e},{name:"multiLine",type:e},{name:"dotAll",type:e},{name:"unicode",type:e},{name:"sticky",type:e}],kn.typeName="LiteralStringExpression",kn.fields=[{name:"type",type:_(k),value:"LiteralStringExpression"},{name:"value",type:o}],Fn.typeName="Method",Fn.fields=[{name:"type",type:_(k),value:"Method"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:un},{name:"params",type:Zt},{name:"body",type:Yt}],Nn.typeName="Module",Nn.fields=[{name:"type",type:_(k),value:"Module"},{name:"directives",type:d(Qt)},{name:"items",type:d(b(or,ar,Gt))}],Bn.typeName="NewExpression",Bn.fields=[{name:"type",type:_(k),value:"NewExpression"},{name:"callee",type:Bt},{name:"arguments",type:d(b(Bt,cn))}],Pn.typeName="NewTargetExpression",Pn.fields=[{name:"type",type:_(k),value:"NewTargetExpression"}],Ht.typeName="ObjectAssignmentTarget",Ht.fields=[{name:"type",type:_(k),value:"ObjectAssignmentTarget"},{name:"properties",type:d(sr)},{name:"rest",type:c(b(b(nt,Ht),b(at,Xt)))}],Ut.typeName="ObjectBinding",Ut.fields=[{name:"type",type:_(k),value:"ObjectBinding"},{name:"properties",type:d(ur)},{name:"rest",type:c(b(ft,b(it,Ut)))}],Rn.typeName="ObjectExpression",Rn.fields=[{name:"type",type:_(k),value:"ObjectExpression"},{name:"properties",type:d(cr)}],In.typeName="ReturnStatement",In.fields=[{name:"type",type:_(k),value:"ReturnStatement"},{name:"expression",type:c(Bt)}],$n.typeName="Script",$n.fields=[{name:"type",type:_(k),value:"Script"},{name:"directives",type:d(Qt)},{name:"statements",type:d(Gt)}],Mn.typeName="Setter",Mn.fields=[{name:"type",type:_(k),value:"Setter"},{name:"name",type:un},{name:"param",type:b(gt,b(ft,b(it,Ut)))},{name:"body",type:Yt}],Ln.typeName="ShorthandProperty",Ln.fields=[{name:"type",type:_(k),value:"ShorthandProperty"},{name:"name",type:ln}],cn.typeName="SpreadElement",cn.fields=[{name:"type",type:_(k),value:"SpreadElement"},{name:"expression",type:Bt}],jn.typeName="SpreadProperty",jn.fields=[{name:"type",type:_(k),value:"SpreadProperty"},{name:"expression",type:Bt}],Wn.typeName="StaticMemberAssignmentTarget",Wn.fields=[{name:"type",type:_(k),value:"StaticMemberAssignmentTarget"},{name:"object",type:b(Bt,an)},{name:"property",type:o}],Qn.typeName="StaticMemberExpression",Qn.fields=[{name:"type",type:_(k),value:"StaticMemberExpression"},{name:"object",type:b(Bt,an)},{name:"property",type:o}],qn.typeName="StaticPropertyName",qn.fields=[{name:"type",type:_(k),value:"StaticPropertyName"},{name:"value",type:o}],an.typeName="Super",an.fields=[{name:"type",type:_(k),value:"Super"}],hn.typeName="SwitchCase",hn.fields=[{name:"type",type:_(k),value:"SwitchCase"},{name:"test",type:Bt},{name:"consequent",type:d(Gt)}],gn.typeName="SwitchDefault",gn.fields=[{name:"type",type:_(k),value:"SwitchDefault"},{name:"consequent",type:d(Gt)}],Gn.typeName="SwitchStatement",Gn.fields=[{name:"type",type:_(k),value:"SwitchStatement"},{name:"discriminant",type:Bt},{name:"cases",type:d(hn)}],Vn.typeName="SwitchStatementWithDefault",Vn.fields=[{name:"type",type:_(k),value:"SwitchStatementWithDefault"},{name:"discriminant",type:Bt},{name:"preDefaultCases",type:d(hn)},{name:"defaultCase",type:gn},{name:"postDefaultCases",type:d(hn)}],yn.typeName="TemplateElement",yn.fields=[{name:"type",type:_(k),value:"TemplateElement"},{name:"rawValue",type:o}],Un.typeName="TemplateExpression",Un.fields=[{name:"type",type:_(k),value:"TemplateExpression"},{name:"tag",type:c(Bt)},{name:"elements",type:d(b(Bt,yn))}],zn.typeName="ThisExpression",zn.fields=[{name:"type",type:_(k),value:"ThisExpression"}],Hn.typeName="ThrowStatement",Hn.fields=[{name:"type",type:_(k),value:"ThrowStatement"},{name:"expression",type:Bt}],Xn.typeName="TryCatchStatement",Xn.fields=[{name:"type",type:_(k),value:"TryCatchStatement"},{name:"body",type:St},{name:"catchClause",type:Ot}],Zn.typeName="TryFinallyStatement",Zn.fields=[{name:"type",type:_(k),value:"TryFinallyStatement"},{name:"body",type:St},{name:"catchClause",type:c(Ot)},{name:"finalizer",type:St}],Yn.typeName="UnaryExpression",Yn.fields=[{name:"type",type:_(k),value:"UnaryExpression"},{name:"operator",type:_e},{name:"operand",type:Bt}],Kn.typeName="UpdateExpression",Kn.fields=[{name:"type",type:_(k),value:"UpdateExpression"},{name:"isPrefix",type:e},{name:"operator",type:et},{name:"operand",type:b(at,Xt)}],rn.typeName="VariableDeclaration",rn.fields=[{name:"type",type:_(k),value:"VariableDeclaration"},{name:"kind",type:tt},{name:"declarators",type:d(En)}],Jn.typeName="VariableDeclarationStatement",Jn.fields=[{name:"type",type:_(k),value:"VariableDeclarationStatement"},{name:"declaration",type:rn}],En.typeName="VariableDeclarator",En.fields=[{name:"type",type:_(k),value:"VariableDeclarator"},{name:"binding",type:b(ft,b(it,Ut))},{name:"init",type:c(Bt)}],er.typeName="WhileStatement",er.fields=[{name:"type",type:_(k),value:"WhileStatement"},{name:"test",type:Bt},{name:"body",type:Gt}],tr.typeName="WithStatement",tr.fields=[{name:"type",type:_(k),value:"WithStatement"},{name:"object",type:Bt},{name:"body",type:Gt}],nr.typeName="YieldExpression",nr.fields=[{name:"type",type:_(k),value:"YieldExpression"},{name:"expression",type:c(Bt)}],rr.typeName="YieldGeneratorExpression",rr.fields=[{name:"type",type:_(k),value:"YieldGeneratorExpression"},{name:"expression",type:Bt}],a}(),estraverse$1={};(function(a){(function e(s){var o,c,d,_,b,k;function $(lt){var ut={},ct,dt;for(ct in lt)lt.hasOwnProperty(ct)&&(dt=lt[ct],typeof dt=="object"&&dt!==null?ut[ct]=$(dt):ut[ct]=dt);return ut}function j(lt,ut){var ct,dt,ft,Et;for(dt=lt.length,ft=0;dt;)ct=dt>>>1,Et=ft+ct,ut(lt[Et])?dt=ct:(ft=Et+1,dt-=ct+1);return ft}o={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",PrivateIdentifier:"PrivateIdentifier",Program:"Program",Property:"Property",PropertyDefinition:"PropertyDefinition",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},d={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},_={},b={},k={},c={Break:_,Skip:b,Remove:k};function _e(lt,ut){this.parent=lt,this.key=ut}_e.prototype.replace=function(ut){this.parent[this.key]=ut},_e.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)};function et(lt,ut,ct,dt){this.node=lt,this.path=ut,this.wrap=ct,this.ref=dt}function tt(){}tt.prototype.path=function(){var ut,ct,dt,ft,Et,yt;function gt(St,pt){if(Array.isArray(pt))for(dt=0,ft=pt.length;dt=0;--ct)if(lt[ct].node===ut)return!0;return!1}tt.prototype.traverse=function(ut,ct){var dt,ft,Et,yt,gt,St,pt,mt,At,Ot,vt,Ct;for(this.__initialize(ut,ct),Ct={},dt=this.__worklist,ft=this.__leavelist,dt.push(new et(ut,null,null,null)),ft.push(new et(null,null,null,null));dt.length;){if(Et=dt.pop(),Et===Ct){if(Et=ft.pop(),St=this.__execute(ct.leave,Et),this.__state===_||St===_)return;continue}if(Et.node){if(St=this.__execute(ct.enter,Et),this.__state===_||St===_)return;if(dt.push(Ct),ft.push(Et),this.__state===b||St===b)continue;if(yt=Et.node,gt=yt.type||Et.wrap,Ot=this.__keys[gt],!Ot)if(this.__fallback)Ot=this.__fallback(yt);else throw new Error("Unknown node type "+gt+".");for(mt=Ot.length;(mt-=1)>=0;)if(pt=Ot[mt],vt=yt[pt],!!vt){if(Array.isArray(vt)){for(At=vt.length;(At-=1)>=0;)if(!!vt[At]&&!rt(ft,vt[At])){if(it(gt,Ot[mt]))Et=new et(vt[At],[pt,At],"Property",null);else if(nt(vt[At]))Et=new et(vt[At],[pt,At],null,null);else continue;dt.push(Et)}}else if(nt(vt)){if(rt(ft,vt))continue;dt.push(new et(vt,pt,null,null))}}}}},tt.prototype.replace=function(ut,ct){var dt,ft,Et,yt,gt,St,pt,mt,At,Ot,vt,Ct,Tt;function _t(bt){var xt,Rt,$t,It;if(bt.ref.remove()){for(Rt=bt.ref.key,It=bt.ref.parent,xt=dt.length;xt--;)if($t=dt[xt],$t.ref&&$t.ref.parent===It){if($t.ref.key=0;)if(Tt=At[pt],Ot=Et[Tt],!!Ot)if(Array.isArray(Ot)){for(mt=Ot.length;(mt-=1)>=0;)if(!!Ot[mt]){if(it(yt,At[pt]))St=new et(Ot[mt],[Tt,mt],"Property",new _e(Ot,mt));else if(nt(Ot[mt]))St=new et(Ot[mt],[Tt,mt],null,new _e(Ot,mt));else continue;dt.push(St)}}else nt(Ot)&&dt.push(new et(Ot,Tt,null,new _e(Et,Tt)))}}return Ct.root};function st(lt,ut){var ct=new tt;return ct.traverse(lt,ut)}function ot(lt,ut){var ct=new tt;return ct.replace(lt,ut)}function at(lt,ut){var ct;return ct=j(ut,function(ft){return ft.range[0]>lt.range[0]}),lt.extendedRange=[lt.range[0],lt.range[1]],ct!==ut.length&&(lt.extendedRange[1]=ut[ct].range[0]),ct-=1,ct>=0&&(lt.extendedRange[0]=ut[ct].range[1]),lt}function ht(lt,ut,ct){var dt=[],ft,Et,yt,gt;if(!lt.range)throw new Error("attachComments needs range information");if(!ct.length){if(ut.length){for(yt=0,Et=ut.length;ytSt.range[0]));)pt.extendedRange[1]===St.range[0]?(St.leadingComments||(St.leadingComments=[]),St.leadingComments.push(pt),dt.splice(gt,1)):gt+=1;if(gt===dt.length)return c.Break;if(dt[gt].extendedRange[0]>St.range[1])return c.Skip}}),gt=0,st(lt,{leave:function(St){for(var pt;gtSt.range[1])return c.Skip}}),lt}return s.Syntax=o,s.traverse=st,s.replace=ot,s.attachComments=ht,s.VisitorKeys=d,s.VisitorOption=c,s.Controller=tt,s.cloneEnvironment=function(){return e({})},s})(a)})(estraverse$1);const Spec=_default.default||_default,estraverse=estraverse$1.cloneEnvironment();Object.keys(estraverse.Syntax).filter(a=>a!=="Property").forEach(a=>{delete estraverse.Syntax[a],delete estraverse.VisitorKeys[a]});Object.assign(estraverse.Syntax,Object.keys(Spec).reduce((a,e)=>(a[e]=e,a),{}));Object.assign(estraverse.VisitorKeys,Object.keys(Spec).reduce((a,e)=>(a[e]=Spec[e].fields.map(s=>s.name),a),{}));var dist$1={},StaticMemberExpression_1,ReturnStatement_1,LiteralStringExpression_1,LiteralNumericExpression_1,IdentifierExpression_1,CallExpression_1,ArrayExpression_1;Object.defineProperty(dist$1,"__esModule",{value:!0});function _classCallCheck$5(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}dist$1.ArrayAssignmentTarget=function a(e){var s=e.elements,o=e.rest;_classCallCheck$5(this,a),this.type="ArrayAssignmentTarget",this.elements=s,this.rest=o};dist$1.ArrayBinding=function a(e){var s=e.elements,o=e.rest;_classCallCheck$5(this,a),this.type="ArrayBinding",this.elements=s,this.rest=o};ArrayExpression_1=dist$1.ArrayExpression=function a(e){var s=e.elements;_classCallCheck$5(this,a),this.type="ArrayExpression",this.elements=s};dist$1.ArrowExpression=function a(e){var s=e.isAsync,o=e.params,c=e.body;_classCallCheck$5(this,a),this.type="ArrowExpression",this.isAsync=s,this.params=o,this.body=c};dist$1.AssignmentExpression=function a(e){var s=e.binding,o=e.expression;_classCallCheck$5(this,a),this.type="AssignmentExpression",this.binding=s,this.expression=o};dist$1.AssignmentTargetIdentifier=function a(e){var s=e.name;_classCallCheck$5(this,a),this.type="AssignmentTargetIdentifier",this.name=s};dist$1.AssignmentTargetPropertyIdentifier=function a(e){var s=e.binding,o=e.init;_classCallCheck$5(this,a),this.type="AssignmentTargetPropertyIdentifier",this.binding=s,this.init=o};dist$1.AssignmentTargetPropertyProperty=function a(e){var s=e.name,o=e.binding;_classCallCheck$5(this,a),this.type="AssignmentTargetPropertyProperty",this.name=s,this.binding=o};dist$1.AssignmentTargetWithDefault=function a(e){var s=e.binding,o=e.init;_classCallCheck$5(this,a),this.type="AssignmentTargetWithDefault",this.binding=s,this.init=o};dist$1.AwaitExpression=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="AwaitExpression",this.expression=s};dist$1.BinaryExpression=function a(e){var s=e.left,o=e.operator,c=e.right;_classCallCheck$5(this,a),this.type="BinaryExpression",this.left=s,this.operator=o,this.right=c};dist$1.BindingIdentifier=function a(e){var s=e.name;_classCallCheck$5(this,a),this.type="BindingIdentifier",this.name=s};dist$1.BindingPropertyIdentifier=function a(e){var s=e.binding,o=e.init;_classCallCheck$5(this,a),this.type="BindingPropertyIdentifier",this.binding=s,this.init=o};dist$1.BindingPropertyProperty=function a(e){var s=e.name,o=e.binding;_classCallCheck$5(this,a),this.type="BindingPropertyProperty",this.name=s,this.binding=o};dist$1.BindingWithDefault=function a(e){var s=e.binding,o=e.init;_classCallCheck$5(this,a),this.type="BindingWithDefault",this.binding=s,this.init=o};dist$1.Block=function a(e){var s=e.statements;_classCallCheck$5(this,a),this.type="Block",this.statements=s};dist$1.BlockStatement=function a(e){var s=e.block;_classCallCheck$5(this,a),this.type="BlockStatement",this.block=s};dist$1.BreakStatement=function a(e){var s=e.label;_classCallCheck$5(this,a),this.type="BreakStatement",this.label=s};CallExpression_1=dist$1.CallExpression=function a(e){var s=e.callee,o=e.arguments;_classCallCheck$5(this,a),this.type="CallExpression",this.callee=s,this.arguments=o};dist$1.CatchClause=function a(e){var s=e.binding,o=e.body;_classCallCheck$5(this,a),this.type="CatchClause",this.binding=s,this.body=o};dist$1.ClassDeclaration=function a(e){var s=e.name,o=e.super,c=e.elements;_classCallCheck$5(this,a),this.type="ClassDeclaration",this.name=s,this.super=o,this.elements=c};dist$1.ClassElement=function a(e){var s=e.isStatic,o=e.method;_classCallCheck$5(this,a),this.type="ClassElement",this.isStatic=s,this.method=o};dist$1.ClassExpression=function a(e){var s=e.name,o=e.super,c=e.elements;_classCallCheck$5(this,a),this.type="ClassExpression",this.name=s,this.super=o,this.elements=c};dist$1.CompoundAssignmentExpression=function a(e){var s=e.binding,o=e.operator,c=e.expression;_classCallCheck$5(this,a),this.type="CompoundAssignmentExpression",this.binding=s,this.operator=o,this.expression=c};dist$1.ComputedMemberAssignmentTarget=function a(e){var s=e.object,o=e.expression;_classCallCheck$5(this,a),this.type="ComputedMemberAssignmentTarget",this.object=s,this.expression=o};dist$1.ComputedMemberExpression=function a(e){var s=e.object,o=e.expression;_classCallCheck$5(this,a),this.type="ComputedMemberExpression",this.object=s,this.expression=o};dist$1.ComputedPropertyName=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="ComputedPropertyName",this.expression=s};dist$1.ConditionalExpression=function a(e){var s=e.test,o=e.consequent,c=e.alternate;_classCallCheck$5(this,a),this.type="ConditionalExpression",this.test=s,this.consequent=o,this.alternate=c};dist$1.ContinueStatement=function a(e){var s=e.label;_classCallCheck$5(this,a),this.type="ContinueStatement",this.label=s};dist$1.DataProperty=function a(e){var s=e.name,o=e.expression;_classCallCheck$5(this,a),this.type="DataProperty",this.name=s,this.expression=o};dist$1.DebuggerStatement=function a(){_classCallCheck$5(this,a),this.type="DebuggerStatement"};dist$1.Directive=function a(e){var s=e.rawValue;_classCallCheck$5(this,a),this.type="Directive",this.rawValue=s};dist$1.DoWhileStatement=function a(e){var s=e.body,o=e.test;_classCallCheck$5(this,a),this.type="DoWhileStatement",this.body=s,this.test=o};dist$1.EmptyStatement=function a(){_classCallCheck$5(this,a),this.type="EmptyStatement"};dist$1.Export=function a(e){var s=e.declaration;_classCallCheck$5(this,a),this.type="Export",this.declaration=s};dist$1.ExportAllFrom=function a(e){var s=e.moduleSpecifier;_classCallCheck$5(this,a),this.type="ExportAllFrom",this.moduleSpecifier=s};dist$1.ExportDefault=function a(e){var s=e.body;_classCallCheck$5(this,a),this.type="ExportDefault",this.body=s};dist$1.ExportFrom=function a(e){var s=e.namedExports,o=e.moduleSpecifier;_classCallCheck$5(this,a),this.type="ExportFrom",this.namedExports=s,this.moduleSpecifier=o};dist$1.ExportFromSpecifier=function a(e){var s=e.name,o=e.exportedName;_classCallCheck$5(this,a),this.type="ExportFromSpecifier",this.name=s,this.exportedName=o};dist$1.ExportLocalSpecifier=function a(e){var s=e.name,o=e.exportedName;_classCallCheck$5(this,a),this.type="ExportLocalSpecifier",this.name=s,this.exportedName=o};dist$1.ExportLocals=function a(e){var s=e.namedExports;_classCallCheck$5(this,a),this.type="ExportLocals",this.namedExports=s};dist$1.ExpressionStatement=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="ExpressionStatement",this.expression=s};dist$1.ForAwaitStatement=function a(e){var s=e.left,o=e.right,c=e.body;_classCallCheck$5(this,a),this.type="ForAwaitStatement",this.left=s,this.right=o,this.body=c};dist$1.ForInStatement=function a(e){var s=e.left,o=e.right,c=e.body;_classCallCheck$5(this,a),this.type="ForInStatement",this.left=s,this.right=o,this.body=c};dist$1.ForOfStatement=function a(e){var s=e.left,o=e.right,c=e.body;_classCallCheck$5(this,a),this.type="ForOfStatement",this.left=s,this.right=o,this.body=c};dist$1.ForStatement=function a(e){var s=e.init,o=e.test,c=e.update,d=e.body;_classCallCheck$5(this,a),this.type="ForStatement",this.init=s,this.test=o,this.update=c,this.body=d};dist$1.FormalParameters=function a(e){var s=e.items,o=e.rest;_classCallCheck$5(this,a),this.type="FormalParameters",this.items=s,this.rest=o};dist$1.FunctionBody=function a(e){var s=e.directives,o=e.statements;_classCallCheck$5(this,a),this.type="FunctionBody",this.directives=s,this.statements=o};dist$1.FunctionDeclaration=function a(e){var s=e.isAsync,o=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$5(this,a),this.type="FunctionDeclaration",this.isAsync=s,this.isGenerator=o,this.name=c,this.params=d,this.body=_};dist$1.FunctionExpression=function a(e){var s=e.isAsync,o=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$5(this,a),this.type="FunctionExpression",this.isAsync=s,this.isGenerator=o,this.name=c,this.params=d,this.body=_};dist$1.Getter=function a(e){var s=e.name,o=e.body;_classCallCheck$5(this,a),this.type="Getter",this.name=s,this.body=o};IdentifierExpression_1=dist$1.IdentifierExpression=function a(e){var s=e.name;_classCallCheck$5(this,a),this.type="IdentifierExpression",this.name=s};dist$1.IfStatement=function a(e){var s=e.test,o=e.consequent,c=e.alternate;_classCallCheck$5(this,a),this.type="IfStatement",this.test=s,this.consequent=o,this.alternate=c};dist$1.Import=function a(e){var s=e.defaultBinding,o=e.namedImports,c=e.moduleSpecifier;_classCallCheck$5(this,a),this.type="Import",this.defaultBinding=s,this.namedImports=o,this.moduleSpecifier=c};dist$1.ImportNamespace=function a(e){var s=e.defaultBinding,o=e.namespaceBinding,c=e.moduleSpecifier;_classCallCheck$5(this,a),this.type="ImportNamespace",this.defaultBinding=s,this.namespaceBinding=o,this.moduleSpecifier=c};dist$1.ImportSpecifier=function a(e){var s=e.name,o=e.binding;_classCallCheck$5(this,a),this.type="ImportSpecifier",this.name=s,this.binding=o};dist$1.LabeledStatement=function a(e){var s=e.label,o=e.body;_classCallCheck$5(this,a),this.type="LabeledStatement",this.label=s,this.body=o};dist$1.LiteralBooleanExpression=function a(e){var s=e.value;_classCallCheck$5(this,a),this.type="LiteralBooleanExpression",this.value=s};dist$1.LiteralInfinityExpression=function a(){_classCallCheck$5(this,a),this.type="LiteralInfinityExpression"};dist$1.LiteralNullExpression=function a(){_classCallCheck$5(this,a),this.type="LiteralNullExpression"};LiteralNumericExpression_1=dist$1.LiteralNumericExpression=function a(e){var s=e.value;_classCallCheck$5(this,a),this.type="LiteralNumericExpression",this.value=s};dist$1.LiteralRegExpExpression=function a(e){var s=e.pattern,o=e.global,c=e.ignoreCase,d=e.multiLine,_=e.dotAll,b=e.unicode,k=e.sticky;_classCallCheck$5(this,a),this.type="LiteralRegExpExpression",this.pattern=s,this.global=o,this.ignoreCase=c,this.multiLine=d,this.dotAll=_,this.unicode=b,this.sticky=k};LiteralStringExpression_1=dist$1.LiteralStringExpression=function a(e){var s=e.value;_classCallCheck$5(this,a),this.type="LiteralStringExpression",this.value=s};dist$1.Method=function a(e){var s=e.isAsync,o=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$5(this,a),this.type="Method",this.isAsync=s,this.isGenerator=o,this.name=c,this.params=d,this.body=_};dist$1.Module=function a(e){var s=e.directives,o=e.items;_classCallCheck$5(this,a),this.type="Module",this.directives=s,this.items=o};dist$1.NewExpression=function a(e){var s=e.callee,o=e.arguments;_classCallCheck$5(this,a),this.type="NewExpression",this.callee=s,this.arguments=o};dist$1.NewTargetExpression=function a(){_classCallCheck$5(this,a),this.type="NewTargetExpression"};dist$1.ObjectAssignmentTarget=function a(e){var s=e.properties,o=e.rest;_classCallCheck$5(this,a),this.type="ObjectAssignmentTarget",this.properties=s,this.rest=o};dist$1.ObjectBinding=function a(e){var s=e.properties,o=e.rest;_classCallCheck$5(this,a),this.type="ObjectBinding",this.properties=s,this.rest=o};dist$1.ObjectExpression=function a(e){var s=e.properties;_classCallCheck$5(this,a),this.type="ObjectExpression",this.properties=s};ReturnStatement_1=dist$1.ReturnStatement=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="ReturnStatement",this.expression=s};dist$1.Script=function a(e){var s=e.directives,o=e.statements;_classCallCheck$5(this,a),this.type="Script",this.directives=s,this.statements=o};dist$1.Setter=function a(e){var s=e.name,o=e.param,c=e.body;_classCallCheck$5(this,a),this.type="Setter",this.name=s,this.param=o,this.body=c};dist$1.ShorthandProperty=function a(e){var s=e.name;_classCallCheck$5(this,a),this.type="ShorthandProperty",this.name=s};dist$1.SpreadElement=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="SpreadElement",this.expression=s};dist$1.SpreadProperty=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="SpreadProperty",this.expression=s};dist$1.StaticMemberAssignmentTarget=function a(e){var s=e.object,o=e.property;_classCallCheck$5(this,a),this.type="StaticMemberAssignmentTarget",this.object=s,this.property=o};StaticMemberExpression_1=dist$1.StaticMemberExpression=function a(e){var s=e.object,o=e.property;_classCallCheck$5(this,a),this.type="StaticMemberExpression",this.object=s,this.property=o};dist$1.StaticPropertyName=function a(e){var s=e.value;_classCallCheck$5(this,a),this.type="StaticPropertyName",this.value=s};dist$1.Super=function a(){_classCallCheck$5(this,a),this.type="Super"};dist$1.SwitchCase=function a(e){var s=e.test,o=e.consequent;_classCallCheck$5(this,a),this.type="SwitchCase",this.test=s,this.consequent=o};dist$1.SwitchDefault=function a(e){var s=e.consequent;_classCallCheck$5(this,a),this.type="SwitchDefault",this.consequent=s};dist$1.SwitchStatement=function a(e){var s=e.discriminant,o=e.cases;_classCallCheck$5(this,a),this.type="SwitchStatement",this.discriminant=s,this.cases=o};dist$1.SwitchStatementWithDefault=function a(e){var s=e.discriminant,o=e.preDefaultCases,c=e.defaultCase,d=e.postDefaultCases;_classCallCheck$5(this,a),this.type="SwitchStatementWithDefault",this.discriminant=s,this.preDefaultCases=o,this.defaultCase=c,this.postDefaultCases=d};dist$1.TemplateElement=function a(e){var s=e.rawValue;_classCallCheck$5(this,a),this.type="TemplateElement",this.rawValue=s};dist$1.TemplateExpression=function a(e){var s=e.tag,o=e.elements;_classCallCheck$5(this,a),this.type="TemplateExpression",this.tag=s,this.elements=o};dist$1.ThisExpression=function a(){_classCallCheck$5(this,a),this.type="ThisExpression"};dist$1.ThrowStatement=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="ThrowStatement",this.expression=s};dist$1.TryCatchStatement=function a(e){var s=e.body,o=e.catchClause;_classCallCheck$5(this,a),this.type="TryCatchStatement",this.body=s,this.catchClause=o};dist$1.TryFinallyStatement=function a(e){var s=e.body,o=e.catchClause,c=e.finalizer;_classCallCheck$5(this,a),this.type="TryFinallyStatement",this.body=s,this.catchClause=o,this.finalizer=c};dist$1.UnaryExpression=function a(e){var s=e.operator,o=e.operand;_classCallCheck$5(this,a),this.type="UnaryExpression",this.operator=s,this.operand=o};dist$1.UpdateExpression=function a(e){var s=e.isPrefix,o=e.operator,c=e.operand;_classCallCheck$5(this,a),this.type="UpdateExpression",this.isPrefix=s,this.operator=o,this.operand=c};dist$1.VariableDeclaration=function a(e){var s=e.kind,o=e.declarators;_classCallCheck$5(this,a),this.type="VariableDeclaration",this.kind=s,this.declarators=o};dist$1.VariableDeclarationStatement=function a(e){var s=e.declaration;_classCallCheck$5(this,a),this.type="VariableDeclarationStatement",this.declaration=s};dist$1.VariableDeclarator=function a(e){var s=e.binding,o=e.init;_classCallCheck$5(this,a),this.type="VariableDeclarator",this.binding=s,this.init=o};dist$1.WhileStatement=function a(e){var s=e.test,o=e.body;_classCallCheck$5(this,a),this.type="WhileStatement",this.test=s,this.body=o};dist$1.WithStatement=function a(e){var s=e.object,o=e.body;_classCallCheck$5(this,a),this.type="WithStatement",this.object=s,this.body=o};dist$1.YieldExpression=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="YieldExpression",this.expression=s};dist$1.YieldGeneratorExpression=function a(e){var s=e.expression;_classCallCheck$5(this,a),this.type="YieldGeneratorExpression",this.expression=s};var dist={},minimalCodegen={};/* object-assign (c) Sindre Sorhus @license MIT @@ -54,35 +54,39 @@ object-assign `:e+="\\n";break;case"\r":e+="\\r";break;case"\\":e+="\\\\";break;case"\u2028":e+="\\u2028";break;case"\u2029":e+="\\u2029";break;default:e+=$;break}}return e+=b,e}var CodeRep=coderep.CodeRep=function(){function a(){_classCallCheck$4(this,a),this.containsIn=!1,this.containsGroup=!1,this.startsWithCurly=!1,this.startsWithFunctionOrClass=!1,this.startsWithLet=!1,this.startsWithLetSquareBracket=!1,this.endsWithMissingElse=!1}return _createClass$4(a,[{key:"forEach",value:function(s){s(this)}}]),a}();coderep.Empty=function(a){_inherits$2(e,a);function e(){return _classCallCheck$4(this,e),_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this))}return _createClass$4(e,[{key:"emit",value:function(){}}]),e}(CodeRep);var Token=coderep.Token=function(a){_inherits$2(e,a);function e(s){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;_classCallCheck$4(this,e);var c=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return c.token=s,c.isRegExp=o,c}return _createClass$4(e,[{key:"emit",value:function(o){o.put(this.token,this.isRegExp)}}]),e}(CodeRep);coderep.RawToken=function(a){_inherits$2(e,a);function e(s){_classCallCheck$4(this,e);var o=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.token=s,o}return _createClass$4(e,[{key:"emit",value:function(o){o.putRaw(this.token)}}]),e}(CodeRep);coderep.NumberCodeRep=function(a){_inherits$2(e,a);function e(s){_classCallCheck$4(this,e);var o=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.number=s,o}return _createClass$4(e,[{key:"emit",value:function(o){o.putNumber(this.number)}}]),e}(CodeRep);coderep.Paren=function(a){_inherits$2(e,a);function e(s){_classCallCheck$4(this,e);var o=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.expr=s,o}return _createClass$4(e,[{key:"emit",value:function(o){o.put("("),this.expr.emit(o,!1),o.put(")")}},{key:"forEach",value:function(o){o(this),this.expr.forEach(o)}}]),e}(CodeRep);coderep.Bracket=function(a){_inherits$2(e,a);function e(s){_classCallCheck$4(this,e);var o=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.expr=s,o}return _createClass$4(e,[{key:"emit",value:function(o){o.put("["),this.expr.emit(o,!1),o.put("]")}},{key:"forEach",value:function(o){o(this),this.expr.forEach(o)}}]),e}(CodeRep);coderep.Brace=function(a){_inherits$2(e,a);function e(s){_classCallCheck$4(this,e);var o=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.expr=s,o}return _createClass$4(e,[{key:"emit",value:function(o){o.put("{"),this.expr.emit(o,!1),o.put("}")}},{key:"forEach",value:function(o){o(this),this.expr.forEach(o)}}]),e}(CodeRep);coderep.NoIn=function(a){_inherits$2(e,a);function e(s){_classCallCheck$4(this,e);var o=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.expr=s,o}return _createClass$4(e,[{key:"emit",value:function(o){this.expr.emit(o,!0)}},{key:"forEach",value:function(o){o(this),this.expr.forEach(o)}}]),e}(CodeRep);coderep.ContainsIn=function(a){_inherits$2(e,a);function e(s){_classCallCheck$4(this,e);var o=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.expr=s,o}return _createClass$4(e,[{key:"emit",value:function(o,c){c?(o.put("("),this.expr.emit(o,!1),o.put(")")):this.expr.emit(o,!1)}},{key:"forEach",value:function(o){o(this),this.expr.forEach(o)}}]),e}(CodeRep);coderep.Seq=function(a){_inherits$2(e,a);function e(s){_classCallCheck$4(this,e);var o=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.children=s,o}return _createClass$4(e,[{key:"emit",value:function(o,c){this.children.forEach(function(d){return d.emit(o,c)})}},{key:"forEach",value:function(o){o(this),this.children.forEach(function(c){return c.forEach(o)})}}]),e}(CodeRep);coderep.Semi=function(a){_inherits$2(e,a);function e(){return _classCallCheck$4(this,e),_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,";"))}return e}(Token);coderep.CommaSep=function(a){_inherits$2(e,a);function e(s){_classCallCheck$4(this,e);var o=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.children=s,o}return _createClass$4(e,[{key:"emit",value:function(o,c){var d=!0;this.children.forEach(function(_){d?d=!1:o.put(","),_.emit(o,c)})}},{key:"forEach",value:function(o){o(this),this.children.forEach(function(c){return c.forEach(o)})}}]),e}(CodeRep);coderep.SemiOp=function(a){_inherits$2(e,a);function e(){return _classCallCheck$4(this,e),_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this))}return _createClass$4(e,[{key:"emit",value:function(o){o.putOptionalSemi()}}]),e}(CodeRep);Object.defineProperty(minimalCodegen,"__esModule",{value:!0});var _createClass$3=function(){function a(e,s){for(var o=0;o1&&arguments[1]!==void 0?arguments[1]:!1;return new _coderep$1.Token(a,e)}function paren(a){return new _coderep$1.Paren(a)}function brace(a){return new _coderep$1.Brace(a)}function bracket$1(a){return new _coderep$1.Bracket(a)}function noIn$1(a){return new _coderep$1.NoIn(a)}function markContainsIn$1(a){return a.containsIn?new _coderep$1.ContainsIn(a):a}function seq$1(){for(var a=arguments.length,e=Array(a),s=0;s0&&c[c.length-1]==null&&(d=seq$1(d,t$1(","))),bracket$1(d)}},{key:"reduceAwaitExpression",value:function(s,o){var c=o.expression;return seq$1(t$1("await"),p$1(s.expression,(0,_coderep$1.getPrecedence)(s),c))}},{key:"reduceSpreadElement",value:function(s,o){var c=o.expression;return seq$1(t$1("..."),p$1(s.expression,_coderep$1.Precedence.Assignment,c))}},{key:"reduceSpreadProperty",value:function(s,o){var c=o.expression;return seq$1(t$1("..."),getAssignmentExpr(c))}},{key:"reduceAssignmentExpression",value:function(s,o){var c=o.binding,d=o.expression,_=c,b=d,k=d.containsIn,$=c.startsWithCurly,j=c.startsWithLetSquareBracket,_e=c.startsWithFunctionOrClass;return(0,_coderep$1.getPrecedence)(s.expression)<(0,_coderep$1.getPrecedence)(s)&&(b=paren(b),k=!1),(0,_objectAssign2$1.default)(seq$1(_,t$1("="),b),{containsIn:k,startsWithCurly:$,startsWithLetSquareBracket:j,startsWithFunctionOrClass:_e})}},{key:"reduceAssignmentTargetIdentifier",value:function(s){var o=t$1(s.name);return s.name==="let"&&(o.startsWithLet=!0),o}},{key:"reduceAssignmentTargetWithDefault",value:function(s,o){var c=o.binding,d=o.init;return seq$1(c,t$1("="),p$1(s.init,_coderep$1.Precedence.Assignment,d))}},{key:"reduceCompoundAssignmentExpression",value:function(s,o){var c=o.binding,d=o.expression,_=c,b=d,k=d.containsIn,$=c.startsWithCurly,j=c.startsWithLetSquareBracket,_e=c.startsWithFunctionOrClass;return(0,_coderep$1.getPrecedence)(s.expression)<(0,_coderep$1.getPrecedence)(s)&&(b=paren(b),k=!1),(0,_objectAssign2$1.default)(seq$1(_,t$1(s.operator),b),{containsIn:k,startsWithCurly:$,startsWithLetSquareBracket:j,startsWithFunctionOrClass:_e})}},{key:"reduceBinaryExpression",value:function(s,o){var c=o.left,d=o.right,_=c,b=c.startsWithCurly,k=c.startsWithLetSquareBracket,$=c.startsWithFunctionOrClass,j=c.containsIn,_e=s.operator==="**";((0,_coderep$1.getPrecedence)(s.left)<(0,_coderep$1.getPrecedence)(s)||_e&&((0,_coderep$1.getPrecedence)(s.left)===(0,_coderep$1.getPrecedence)(s)||s.left.type==="UnaryExpression"))&&(_=paren(_),b=!1,k=!1,$=!1,j=!1);var et=d,tt=d.containsIn;return((0,_coderep$1.getPrecedence)(s.right)<(0,_coderep$1.getPrecedence)(s)||!_e&&(0,_coderep$1.getPrecedence)(s.right)===(0,_coderep$1.getPrecedence)(s))&&(et=paren(et),tt=!1),(0,_objectAssign2$1.default)(seq$1(_,t$1(s.operator),et),{containsIn:j||tt||s.operator==="in",containsGroup:s.operator===",",startsWithCurly:b,startsWithLetSquareBracket:k,startsWithFunctionOrClass:$})}},{key:"reduceBindingWithDefault",value:function(s,o){var c=o.binding,d=o.init;return seq$1(c,t$1("="),p$1(s.init,_coderep$1.Precedence.Assignment,d))}},{key:"reduceBindingIdentifier",value:function(s){var o=t$1(s.name);return s.name==="let"&&(o.startsWithLet=!0),o}},{key:"reduceArrayAssignmentTarget",value:function(s,o){var c=o.elements,d=o.rest,_=void 0;return c.length===0?_=d==null?empty$2():seq$1(t$1("..."),d):(c=c.concat(d==null?[]:[seq$1(t$1("..."),d)]),_=commaSep(c.map(getAssignmentExpr)),c.length>0&&c[c.length-1]==null&&(_=seq$1(_,t$1(",")))),bracket$1(_)}},{key:"reduceArrayBinding",value:function(s,o){var c=o.elements,d=o.rest,_=void 0;return c.length===0?_=d==null?empty$2():seq$1(t$1("..."),d):(c=c.concat(d==null?[]:[seq$1(t$1("..."),d)]),_=commaSep(c.map(getAssignmentExpr)),c.length>0&&c[c.length-1]==null&&(_=seq$1(_,t$1(",")))),bracket$1(_)}},{key:"reduceObjectAssignmentTarget",value:function(s,o){var c=o.properties,d=o.rest,_=commaSep(c);c.length===0?_=d==null?empty$2():seq$1(t$1("..."),d):_=d==null?_:seq$1(_,t$1(","),t$1("..."),d);var b=brace(_);return b.startsWithCurly=!0,b}},{key:"reduceObjectBinding",value:function(s,o){var c=o.properties,d=o.rest,_=commaSep(c);c.length===0?_=d==null?empty$2():seq$1(t$1("..."),d):_=d==null?_:seq$1(_,t$1(","),t$1("..."),d);var b=brace(_);return b.startsWithCurly=!0,b}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(s,o){var c=o.binding,d=o.init;return s.init==null?c:seq$1(c,t$1("="),p$1(s.init,_coderep$1.Precedence.Assignment,d))}},{key:"reduceAssignmentTargetPropertyProperty",value:function(s,o){var c=o.name,d=o.binding;return seq$1(c,t$1(":"),d)}},{key:"reduceBindingPropertyIdentifier",value:function(s,o){var c=o.binding,d=o.init;return s.init==null?c:seq$1(c,t$1("="),p$1(s.init,_coderep$1.Precedence.Assignment,d))}},{key:"reduceBindingPropertyProperty",value:function(s,o){var c=o.name,d=o.binding;return seq$1(c,t$1(":"),d)}},{key:"reduceBlock",value:function(s,o){var c=o.statements;return brace(seq$1.apply(void 0,_toConsumableArray$2(c)))}},{key:"reduceBlockStatement",value:function(s,o){var c=o.block;return c}},{key:"reduceBreakStatement",value:function(s){return seq$1(t$1("break"),s.label?t$1(s.label):empty$2(),semiOp())}},{key:"reduceCallExpression",value:function(s,o){var c=o.callee,d=o.arguments,_=d.map(function(b,k){return p$1(s.arguments[k],_coderep$1.Precedence.Assignment,b)});return(0,_objectAssign2$1.default)(seq$1(p$1(s.callee,(0,_coderep$1.getPrecedence)(s),c),paren(commaSep(_))),{startsWithCurly:c.startsWithCurly,startsWithLet:c.startsWithLet,startsWithLetSquareBracket:c.startsWithLetSquareBracket,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceCatchClause",value:function(s,o){var c=o.binding,d=o.body;return seq$1(t$1("catch"),paren(c),d)}},{key:"reduceClassDeclaration",value:function(s,o){var c=o.name,d=o.super,_=o.elements,b=seq$1(t$1("class"),s.name.name==="*default*"?empty$2():c);return d!=null&&(b=seq$1(b,t$1("extends"),p$1(s.super,_coderep$1.Precedence.New,d))),b=seq$1.apply(void 0,[b,t$1("{")].concat(_toConsumableArray$2(_),[t$1("}")])),b}},{key:"reduceClassExpression",value:function(s,o){var c=o.name,d=o.super,_=o.elements,b=t$1("class");return c!=null&&(b=seq$1(b,c)),d!=null&&(b=seq$1(b,t$1("extends"),p$1(s.super,_coderep$1.Precedence.New,d))),b=seq$1.apply(void 0,[b,t$1("{")].concat(_toConsumableArray$2(_),[t$1("}")])),b.startsWithFunctionOrClass=!0,b}},{key:"reduceClassElement",value:function(s,o){var c=o.method;return s.isStatic?seq$1(t$1("static"),c):c}},{key:"reduceComputedMemberAssignmentTarget",value:function(s,o){var c=o.object,d=o.expression,_=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2$1.default)(seq$1(p$1(s.object,(0,_coderep$1.getPrecedence)(s),c),bracket$1(d)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:_,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedMemberExpression",value:function(s,o){var c=o.object,d=o.expression,_=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2$1.default)(seq$1(p$1(s.object,(0,_coderep$1.getPrecedence)(s),c),bracket$1(d)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:_,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedPropertyName",value:function(s,o){var c=o.expression;return bracket$1(p$1(s.expression,_coderep$1.Precedence.Assignment,c))}},{key:"reduceConditionalExpression",value:function(s,o){var c=o.test,d=o.consequent,_=o.alternate,b=c.containsIn||_.containsIn,k=c.startsWithCurly,$=c.startsWithLetSquareBracket,j=c.startsWithFunctionOrClass;return(0,_objectAssign2$1.default)(seq$1(p$1(s.test,_coderep$1.Precedence.LogicalOR,c),t$1("?"),p$1(s.consequent,_coderep$1.Precedence.Assignment,d),t$1(":"),p$1(s.alternate,_coderep$1.Precedence.Assignment,_)),{containsIn:b,startsWithCurly:k,startsWithLetSquareBracket:$,startsWithFunctionOrClass:j})}},{key:"reduceContinueStatement",value:function(s){return seq$1(t$1("continue"),s.label?t$1(s.label):empty$2(),semiOp())}},{key:"reduceDataProperty",value:function(s,o){var c=o.name,d=o.expression;return seq$1(c,t$1(":"),getAssignmentExpr(d))}},{key:"reduceDebuggerStatement",value:function(){return seq$1(t$1("debugger"),semiOp())}},{key:"reduceDoWhileStatement",value:function(s,o){var c=o.body,d=o.test;return seq$1(t$1("do"),c,t$1("while"),paren(d),semiOp())}},{key:"reduceEmptyStatement",value:function(){return semi()}},{key:"reduceExpressionStatement",value:function(s,o){var c=o.expression,d=c.startsWithCurly||c.startsWithLetSquareBracket||c.startsWithFunctionOrClass;return seq$1(d?paren(c):c,semiOp())}},{key:"reduceForInStatement",value:function(s,o){var c=o.left,d=o.right,_=o.body;return c=s.left.type==="VariableDeclaration"?noIn$1(markContainsIn$1(c)):c,(0,_objectAssign2$1.default)(seq$1(t$1("for"),paren(seq$1(c.startsWithLet?paren(c):c,t$1("in"),d)),_),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceForOfStatement",value:function(s,o){var c=o.left,d=o.right,_=o.body;return c=s.left.type==="VariableDeclaration"?noIn$1(markContainsIn$1(c)):c,(0,_objectAssign2$1.default)(seq$1(t$1("for"),paren(seq$1(c.startsWithLet?paren(c):c,t$1("of"),p$1(s.right,_coderep$1.Precedence.Assignment,d))),_),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceForStatement",value:function(s,o){var c=o.init,d=o.test,_=o.update,b=o.body;return c&&(c.startsWithLetSquareBracket&&(c=paren(c)),c=noIn$1(markContainsIn$1(c))),(0,_objectAssign2$1.default)(seq$1(t$1("for"),paren(seq$1(c||empty$2(),semi(),d||empty$2(),semi(),_||empty$2())),b),{endsWithMissingElse:b.endsWithMissingElse})}},{key:"reduceForAwaitStatement",value:function(s,o){var c=o.left,d=o.right,_=o.body;return c=s.left.type==="VariableDeclaration"?noIn$1(markContainsIn$1(c)):c,(0,_objectAssign2$1.default)(seq$1(t$1("for"),t$1("await"),paren(seq$1(c.startsWithLet?paren(c):c,t$1("of"),p$1(s.right,_coderep$1.Precedence.Assignment,d))),_),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceFunctionBody",value:function(s,o){var c=o.directives,d=o.statements;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.statements[0],d[0])),brace(seq$1.apply(void 0,_toConsumableArray$2(c).concat(_toConsumableArray$2(d))))}},{key:"reduceFunctionDeclaration",value:function(s,o){var c=o.name,d=o.params,_=o.body;return seq$1(s.isAsync?t$1("async"):empty$2(),t$1("function"),s.isGenerator?t$1("*"):empty$2(),s.name.name==="*default*"?empty$2():c,d,_)}},{key:"reduceFunctionExpression",value:function(s,o){var c=o.name,d=o.params,_=o.body,b=seq$1(s.isAsync?t$1("async"):empty$2(),t$1("function"),s.isGenerator?t$1("*"):empty$2(),c||empty$2(),d,_);return b.startsWithFunctionOrClass=!0,b}},{key:"reduceFormalParameters",value:function(s,o){var c=o.items,d=o.rest;return paren(commaSep(c.concat(d==null?[]:[seq$1(t$1("..."),d)])))}},{key:"reduceArrowExpression",value:function(s,o){var c=o.params,d=o.body;c=this.regenerateArrowParams(s.params,c);var _=!1;return s.body.type!=="FunctionBody"&&(d.startsWithCurly?d=paren(d):d.containsIn&&(_=!0)),(0,_objectAssign2$1.default)(seq$1(s.isAsync?t$1("async"):empty$2(),c,t$1("=>"),p$1(s.body,_coderep$1.Precedence.Assignment,d)),{containsIn:_})}},{key:"reduceGetter",value:function(s,o){var c=o.name,d=o.body;return seq$1(t$1("get"),c,paren(empty$2()),d)}},{key:"reduceIdentifierExpression",value:function(s){var o=t$1(s.name);return s.name==="let"&&(o.startsWithLet=!0),o}},{key:"reduceIfStatement",value:function(s,o){var c=o.test,d=o.consequent,_=o.alternate;return _&&d.endsWithMissingElse&&(d=brace(d)),(0,_objectAssign2$1.default)(seq$1(t$1("if"),paren(c),d,_?seq$1(t$1("else"),_):empty$2()),{endsWithMissingElse:_?_.endsWithMissingElse:!0})}},{key:"reduceImport",value:function(s,o){var c=o.defaultBinding,d=o.namedImports,_=[];return c!=null&&_.push(c),d.length>0&&_.push(brace(commaSep(d))),_.length===0?seq$1(t$1("import"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp()):seq$1(t$1("import"),commaSep(_),t$1("from"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp())}},{key:"reduceImportNamespace",value:function(s,o){var c=o.defaultBinding,d=o.namespaceBinding;return seq$1(t$1("import"),c==null?empty$2():seq$1(c,t$1(",")),t$1("*"),t$1("as"),d,t$1("from"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp())}},{key:"reduceImportSpecifier",value:function(s,o){var c=o.binding;return s.name==null?c:seq$1(t$1(s.name),t$1("as"),c)}},{key:"reduceExportAllFrom",value:function(s){return seq$1(t$1("export"),t$1("*"),t$1("from"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp())}},{key:"reduceExportFrom",value:function(s,o){var c=o.namedExports;return seq$1(t$1("export"),brace(commaSep(c)),t$1("from"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp())}},{key:"reduceExportLocals",value:function(s,o){var c=o.namedExports;return seq$1(t$1("export"),brace(commaSep(c)),semiOp())}},{key:"reduceExport",value:function(s,o){var c=o.declaration;switch(s.declaration.type){case"FunctionDeclaration":case"ClassDeclaration":break;default:c=seq$1(c,semiOp())}return seq$1(t$1("export"),c)}},{key:"reduceExportDefault",value:function(s,o){var c=o.body;switch(c=c.startsWithFunctionOrClass?paren(c):c,s.body.type){case"FunctionDeclaration":case"ClassDeclaration":return seq$1(t$1("export default"),c);default:return seq$1(t$1("export default"),p$1(s.body,_coderep$1.Precedence.Assignment,c),semiOp())}}},{key:"reduceExportFromSpecifier",value:function(s){return s.exportedName==null?t$1(s.name):seq$1(t$1(s.name),t$1("as"),t$1(s.exportedName))}},{key:"reduceExportLocalSpecifier",value:function(s,o){var c=o.name;return s.exportedName==null?c:seq$1(c,t$1("as"),t$1(s.exportedName))}},{key:"reduceLabeledStatement",value:function(s,o){var c=o.body;return(0,_objectAssign2$1.default)(seq$1(t$1(s.label+":"),c),{endsWithMissingElse:c.endsWithMissingElse})}},{key:"reduceLiteralBooleanExpression",value:function(s){return t$1(s.value.toString())}},{key:"reduceLiteralNullExpression",value:function(){return t$1("null")}},{key:"reduceLiteralInfinityExpression",value:function(){return t$1("2e308")}},{key:"reduceLiteralNumericExpression",value:function(s){return new _coderep$1.NumberCodeRep(s.value)}},{key:"reduceLiteralRegExpExpression",value:function(s){return t$1("/"+s.pattern+"/"+(s.global?"g":"")+(s.ignoreCase?"i":"")+(s.multiLine?"m":"")+(s.dotAll?"s":"")+(s.unicode?"u":"")+(s.sticky?"y":""),!0)}},{key:"reduceLiteralStringExpression",value:function(s){return t$1((0,_coderep$1.escapeStringLiteral)(s.value))}},{key:"reduceMethod",value:function(s,o){var c=o.name,d=o.params,_=o.body;return seq$1(s.isAsync?t$1("async"):empty$2(),s.isGenerator?t$1("*"):empty$2(),c,d,_)}},{key:"reduceModule",value:function(s,o){var c=o.directives,d=o.items;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.items[0],d[0])),seq$1.apply(void 0,_toConsumableArray$2(c).concat(_toConsumableArray$2(d)))}},{key:"reduceNewExpression",value:function(s,o){var c=o.callee,d=o.arguments,_=d.map(function(k,$){return p$1(s.arguments[$],_coderep$1.Precedence.Assignment,k)}),b=(0,_coderep$1.getPrecedence)(s.callee)===_coderep$1.Precedence.Call?paren(c):p$1(s.callee,(0,_coderep$1.getPrecedence)(s),c);return seq$1(t$1("new"),b,d.length===0?empty$2():paren(commaSep(_)))}},{key:"reduceNewTargetExpression",value:function(){return t$1("new.target")}},{key:"reduceObjectExpression",value:function(s,o){var c=o.properties,d=brace(commaSep(c));return d.startsWithCurly=!0,d}},{key:"reduceUpdateExpression",value:function(s,o){var c=o.operand;return s.isPrefix?this.reduceUnaryExpression.apply(this,arguments):(0,_objectAssign2$1.default)(seq$1(p$1(s.operand,_coderep$1.Precedence.New,c),t$1(s.operator)),{startsWithCurly:c.startsWithCurly,startsWithLetSquareBracket:c.startsWithLetSquareBracket,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceUnaryExpression",value:function(s,o){var c=o.operand;return seq$1(t$1(s.operator),p$1(s.operand,(0,_coderep$1.getPrecedence)(s),c))}},{key:"reduceReturnStatement",value:function(s,o){var c=o.expression;return seq$1(t$1("return"),c||empty$2(),semiOp())}},{key:"reduceScript",value:function(s,o){var c=o.directives,d=o.statements;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.statements[0],d[0])),seq$1.apply(void 0,_toConsumableArray$2(c).concat(_toConsumableArray$2(d)))}},{key:"reduceSetter",value:function(s,o){var c=o.name,d=o.param,_=o.body;return seq$1(t$1("set"),c,paren(d),_)}},{key:"reduceShorthandProperty",value:function(s,o){var c=o.name;return c}},{key:"reduceStaticMemberAssignmentTarget",value:function(s,o){var c=o.object,d=seq$1(p$1(s.object,(0,_coderep$1.getPrecedence)(s),c),t$1("."),t$1(s.property));return d.startsWithLet=c.startsWithLet,d.startsWithCurly=c.startsWithCurly,d.startsWithLetSquareBracket=c.startsWithLetSquareBracket,d.startsWithFunctionOrClass=c.startsWithFunctionOrClass,d}},{key:"reduceStaticMemberExpression",value:function(s,o){var c=o.object,d=seq$1(p$1(s.object,(0,_coderep$1.getPrecedence)(s),c),t$1("."),t$1(s.property));return d.startsWithLet=c.startsWithLet,d.startsWithCurly=c.startsWithCurly,d.startsWithLetSquareBracket=c.startsWithLetSquareBracket,d.startsWithFunctionOrClass=c.startsWithFunctionOrClass,d}},{key:"reduceStaticPropertyName",value:function(s){if(_esutils$1.keyword.isIdentifierNameES6(s.value))return t$1(s.value);var o=parseFloat(s.value);return o>=0&&o.toString()===s.value?new _coderep$1.NumberCodeRep(o):t$1((0,_coderep$1.escapeStringLiteral)(s.value))}},{key:"reduceSuper",value:function(){return t$1("super")}},{key:"reduceSwitchCase",value:function(s,o){var c=o.test,d=o.consequent;return seq$1(t$1("case"),c,t$1(":"),seq$1.apply(void 0,_toConsumableArray$2(d)))}},{key:"reduceSwitchDefault",value:function(s,o){var c=o.consequent;return seq$1(t$1("default:"),seq$1.apply(void 0,_toConsumableArray$2(c)))}},{key:"reduceSwitchStatement",value:function(s,o){var c=o.discriminant,d=o.cases;return seq$1(t$1("switch"),paren(c),brace(seq$1.apply(void 0,_toConsumableArray$2(d))))}},{key:"reduceSwitchStatementWithDefault",value:function(s,o){var c=o.discriminant,d=o.preDefaultCases,_=o.defaultCase,b=o.postDefaultCases;return seq$1(t$1("switch"),paren(c),brace(seq$1.apply(void 0,_toConsumableArray$2(d).concat([_],_toConsumableArray$2(b)))))}},{key:"reduceTemplateExpression",value:function(s,o){var c=o.tag,d=o.elements,_=s.tag==null?empty$2():p$1(s.tag,(0,_coderep$1.getPrecedence)(s),c);_=seq$1(_,t$1("`"));for(var b=0,k=s.elements.length;b0?t$1("}"):empty$2(),d[b],b1&&arguments[1]!==void 0?arguments[1]:!1;return new _coderep.Token(s,o)}},{key:"p",value:function(s,o,c){return(0,_coderep.getPrecedence)(s)0&&d[d.length-1]==null&&(_=seq(_,this.sep(Sep.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep.ARRAY_AFTER_COMMA))),this.bracket(_,Sep.ARRAY_INITIAL,Sep.ARRAY_FINAL)}},{key:"reduceAwaitExpression",value:function(s,o){var c=o.expression;return seq(this.t("await"),this.sep(Sep.AWAIT),this.p(s.expression,(0,_coderep.getPrecedence)(s),c))}},{key:"reduceSpreadElement",value:function(s,o){var c=o.expression;return seq(this.t("..."),this.sep(Sep.SPREAD),this.p(s.expression,_coderep.Precedence.Assignment,c))}},{key:"reduceSpreadProperty",value:function(s,o){var c=o.expression;return seq(this.t("..."),this.sep(Sep.SPREAD),this.getAssignmentExpr(c))}},{key:"reduceAssignmentExpression",value:function(s,o){var c=o.binding,d=o.expression,_=c,b=d,k=d.containsIn,$=c.startsWithCurly,j=c.startsWithLetSquareBracket,_e=c.startsWithFunctionOrClass;return(0,_coderep.getPrecedence)(s.expression)<(0,_coderep.getPrecedence)(s)&&(b=this.paren(b,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),k=!1),(0,_objectAssign2.default)(seq(_,this.sep(Sep.BEFORE_ASSIGN_OP("=")),this.t("="),this.sep(Sep.AFTER_ASSIGN_OP("=")),b),{containsIn:k,startsWithCurly:$,startsWithLetSquareBracket:j,startsWithFunctionOrClass:_e})}},{key:"reduceAssignmentTargetIdentifier",value:function(s){var o=this.t(s.name);return s.name==="let"&&(o.startsWithLet=!0),o}},{key:"reduceAssignmentTargetWithDefault",value:function(s,o){var c=o.binding,d=o.init;return seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,d))}},{key:"reduceCompoundAssignmentExpression",value:function(s,o){var c=o.binding,d=o.expression,_=c,b=d,k=d.containsIn,$=c.startsWithCurly,j=c.startsWithLetSquareBracket,_e=c.startsWithFunctionOrClass;return(0,_coderep.getPrecedence)(s.expression)<(0,_coderep.getPrecedence)(s)&&(b=this.paren(b,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),k=!1),(0,_objectAssign2.default)(seq(_,this.sep(Sep.BEFORE_ASSIGN_OP(s.operator)),this.t(s.operator),this.sep(Sep.AFTER_ASSIGN_OP(s.operator)),b),{containsIn:k,startsWithCurly:$,startsWithLetSquareBracket:j,startsWithFunctionOrClass:_e})}},{key:"reduceBinaryExpression",value:function(s,o){var c=o.left,d=o.right,_=c,b=c.startsWithCurly,k=c.startsWithLetSquareBracket,$=c.startsWithFunctionOrClass,j=c.containsIn,_e=s.operator==="**";((0,_coderep.getPrecedence)(s.left)<(0,_coderep.getPrecedence)(s)||_e&&((0,_coderep.getPrecedence)(s.left)===(0,_coderep.getPrecedence)(s)||s.left.type==="UnaryExpression"))&&(_=this.paren(_,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),b=!1,k=!1,$=!1,j=!1);var et=d,tt=d.containsIn;return((0,_coderep.getPrecedence)(s.right)<(0,_coderep.getPrecedence)(s)||!_e&&(0,_coderep.getPrecedence)(s.right)===(0,_coderep.getPrecedence)(s))&&(et=this.paren(et,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),tt=!1),(0,_objectAssign2.default)(seq(_,this.sep(Sep.BEFORE_BINOP(s.operator)),this.t(s.operator),this.sep(Sep.AFTER_BINOP(s.operator)),et),{containsIn:j||tt||s.operator==="in",containsGroup:s.operator===",",startsWithCurly:b,startsWithLetSquareBracket:k,startsWithFunctionOrClass:$})}},{key:"reduceBindingWithDefault",value:function(s,o){var c=o.binding,d=o.init;return seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,d))}},{key:"reduceBindingIdentifier",value:function(s){var o=this.t(s.name);return s.name==="let"&&(o.startsWithLet=!0),o}},{key:"reduceArrayAssignmentTarget",value:function(s,o){var c=this,d=o.elements,_=o.rest,b=void 0;return d.length===0?b=_==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),_):(d=d.concat(_==null?[]:[seq(this.t("..."),this.sep(Sep.REST),_)]),b=this.commaSep(d.map(function(k){return c.getAssignmentExpr(k)}),Sep.ARRAY_BEFORE_COMMA,Sep.ARRAY_AFTER_COMMA),d.length>0&&d[d.length-1]==null&&(b=seq(b,this.sep(Sep.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep.ARRAY_AFTER_COMMA)))),this.bracket(b,Sep.ARRAY_INITIAL,Sep.ARRAY_FINAL,Sep.ARRAY_EMPTY)}},{key:"reduceArrayBinding",value:function(s,o){var c=this,d=o.elements,_=o.rest,b=void 0;return d.length===0?b=_==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),_):(d=d.concat(_==null?[]:[seq(this.t("..."),this.sep(Sep.REST),_)]),b=this.commaSep(d.map(function(k){return c.getAssignmentExpr(k)}),Sep.ARRAY_BEFORE_COMMA,Sep.ARRAY_AFTER_COMMA),d.length>0&&d[d.length-1]==null&&(b=seq(b,this.sep(Sep.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep.ARRAY_AFTER_COMMA)))),this.bracket(b,Sep.ARRAY_INITIAL,Sep.ARRAY_FINAL,Sep.ARRAY_EMPTY)}},{key:"reduceObjectAssignmentTarget",value:function(s,o){var c=o.properties,d=o.rest,_=void 0;c.length===0?_=d==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),d):(_=this.commaSep(c,Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA),_=d==null?_:this.commaSep([_,seq(this.t("..."),this.sep(Sep.REST),d)],Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA));var b=this.brace(_,s,Sep.OBJECT_BRACE_INITIAL,Sep.OBJECT_BRACE_FINAL,Sep.OBJECT_EMPTY);return b.startsWithCurly=!0,b}},{key:"reduceObjectBinding",value:function(s,o){var c=o.properties,d=o.rest,_=void 0;c.length===0?_=d==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),d):(_=this.commaSep(c,Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA),_=d==null?_:this.commaSep([_,seq(this.t("..."),this.sep(Sep.REST),d)],Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA));var b=this.brace(_,s,Sep.OBJECT_BRACE_INITIAL,Sep.OBJECT_BRACE_FINAL,Sep.OBJECT_EMPTY);return b.startsWithCurly=!0,b}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(s,o){var c=o.binding,d=o.init;return s.init==null?c:seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,d))}},{key:"reduceAssignmentTargetPropertyProperty",value:function(s,o){var c=o.name,d=o.binding;return seq(c,this.sep(Sep.BEFORE_PROP),this.t(":"),this.sep(Sep.AFTER_PROP),d)}},{key:"reduceBindingPropertyIdentifier",value:function(s,o){var c=o.binding,d=o.init;return s.init==null?c:seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,d))}},{key:"reduceBindingPropertyProperty",value:function(s,o){var c=o.name,d=o.binding;return seq(c,this.sep(Sep.BEFORE_PROP),this.t(":"),this.sep(Sep.AFTER_PROP),d)}},{key:"reduceBlock",value:function(s,o){var c=o.statements;return this.brace(seq.apply(void 0,_toConsumableArray$1(c)),s,Sep.BLOCK_BRACE_INITIAL,Sep.BLOCK_BRACE_FINAL,Sep.BLOCK_EMPTY)}},{key:"reduceBlockStatement",value:function(s,o){var c=o.block;return seq(c,this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceBreakStatement",value:function(s){return seq(this.t("break"),s.label?seq(this.sep(Sep.BEFORE_JUMP_LABEL),this.t(s.label)):empty$1(),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceCallExpression",value:function(s,o){var c=this,d=o.callee,_=o.arguments,b=_.map(function(k,$){return c.p(s.arguments[$],_coderep.Precedence.Assignment,k)});return(0,_objectAssign2.default)(seq(this.p(s.callee,(0,_coderep.getPrecedence)(s),d),this.sep(Sep.CALL),this.paren(this.commaSep(b,Sep.ARGS_BEFORE_COMMA,Sep.ARGS_AFTER_COMMA),Sep.CALL_PAREN_BEFORE,Sep.CALL_PAREN_AFTER,Sep.CALL_PAREN_EMPTY)),{startsWithCurly:d.startsWithCurly,startsWithLet:d.startsWithLet,startsWithLetSquareBracket:d.startsWithLetSquareBracket,startsWithFunctionOrClass:d.startsWithFunctionOrClass})}},{key:"reduceCatchClause",value:function(s,o){var c=o.binding,d=o.body;return seq(this.t("catch"),this.sep(Sep.BEFORE_CATCH_BINDING),this.paren(c,Sep.CATCH_PAREN_BEFORE,Sep.CATCH_PAREN_AFTER),this.sep(Sep.AFTER_CATCH_BINDING),d)}},{key:"reduceClassDeclaration",value:function(s,o){var c=o.name,d=o.super,_=o.elements,b=seq(this.t("class"),s.name.name==="*default*"?empty$1():seq(this.sep(Sep.BEFORE_CLASS_NAME),c));return d!=null&&(b=seq(b,this.sep(Sep.BEFORE_EXTENDS),this.t("extends"),this.sep(Sep.AFTER_EXTENDS),this.p(s.super,_coderep.Precedence.New,d))),b=seq(b,this.sep(Sep.BEFORE_CLASS_DECLARATION_ELEMENTS),this.brace(seq.apply(void 0,_toConsumableArray$1(_)),s,Sep.CLASS_BRACE_INITIAL,Sep.CLASS_BRACE_FINAL,Sep.CLASS_EMPTY),this.sep(Sep.AFTER_STATEMENT(s))),b}},{key:"reduceClassExpression",value:function(s,o){var c=o.name,d=o.super,_=o.elements,b=this.t("class");return c!=null&&(b=seq(b,this.sep(Sep.BEFORE_CLASS_NAME),c)),d!=null&&(b=seq(b,this.sep(Sep.BEFORE_EXTENDS),this.t("extends"),this.sep(Sep.AFTER_EXTENDS),this.p(s.super,_coderep.Precedence.New,d))),b=seq(b,this.sep(Sep.BEFORE_CLASS_EXPRESSION_ELEMENTS),this.brace(seq.apply(void 0,_toConsumableArray$1(_)),s,Sep.CLASS_EXPRESSION_BRACE_INITIAL,Sep.CLASS_EXPRESSION_BRACE_FINAL,Sep.CLASS_EXPRESSION_BRACE_EMPTY)),b.startsWithFunctionOrClass=!0,b}},{key:"reduceClassElement",value:function(s,o){var c=o.method;return c=seq(this.sep(Sep.BEFORE_CLASS_ELEMENT),c,this.sep(Sep.AFTER_CLASS_ELEMENT)),s.isStatic?seq(this.t("static"),this.sep(Sep.AFTER_STATIC),c):c}},{key:"reduceComputedMemberAssignmentTarget",value:function(s,o){var c=o.object,d=o.expression,_=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2.default)(seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.COMPUTED_MEMBER_ASSIGNMENT_TARGET),this.bracket(d,Sep.COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_INTIAL,Sep.COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_FINAL)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:_,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedMemberExpression",value:function(s,o){var c=o.object,d=o.expression,_=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2.default)(seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.COMPUTED_MEMBER_EXPRESSION),this.bracket(d,Sep.COMPUTED_MEMBER_BRACKET_INTIAL,Sep.COMPUTED_MEMBER_BRACKET_FINAL)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:_,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedPropertyName",value:function(s,o){var c=o.expression;return this.bracket(this.p(s.expression,_coderep.Precedence.Assignment,c),Sep.COMPUTED_PROPERTY_BRACKET_INTIAL,Sep.COMPUTED_PROPERTY_BRACKET_FINAL)}},{key:"reduceConditionalExpression",value:function(s,o){var c=o.test,d=o.consequent,_=o.alternate,b=c.containsIn||_.containsIn,k=c.startsWithCurly,$=c.startsWithLetSquareBracket,j=c.startsWithFunctionOrClass;return(0,_objectAssign2.default)(seq(this.p(s.test,_coderep.Precedence.LogicalOR,c),this.sep(Sep.BEFORE_TERNARY_QUESTION),this.t("?"),this.sep(Sep.AFTER_TERNARY_QUESTION),this.p(s.consequent,_coderep.Precedence.Assignment,d),this.sep(Sep.BEFORE_TERNARY_COLON),this.t(":"),this.sep(Sep.AFTER_TERNARY_COLON),this.p(s.alternate,_coderep.Precedence.Assignment,_)),{containsIn:b,startsWithCurly:k,startsWithLetSquareBracket:$,startsWithFunctionOrClass:j})}},{key:"reduceContinueStatement",value:function(s){return seq(this.t("continue"),s.label?seq(this.sep(Sep.BEFORE_JUMP_LABEL),this.t(s.label)):empty$1(),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceDataProperty",value:function(s,o){var c=o.name,d=o.expression;return seq(c,this.sep(Sep.BEFORE_PROP),this.t(":"),this.sep(Sep.AFTER_PROP),this.getAssignmentExpr(d))}},{key:"reduceDebuggerStatement",value:function(s){return seq(this.t("debugger"),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceDoWhileStatement",value:function(s,o){var c=o.body,d=o.test;return seq(this.t("do"),this.sep(Sep.AFTER_DO),c,this.sep(Sep.BEFORE_DOWHILE_WHILE),this.t("while"),this.sep(Sep.AFTER_DOWHILE_WHILE),this.paren(d,Sep.DO_WHILE_TEST_PAREN_BEFORE,Sep.DO_WHILE_TEST_PAREN_AFTER),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceEmptyStatement",value:function(s){return seq(this.t(";"),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExpressionStatement",value:function(s,o){var c=o.expression,d=c.startsWithCurly||c.startsWithLetSquareBracket||c.startsWithFunctionOrClass;return seq(d?this.paren(c,Sep.EXPRESSION_STATEMENT_PAREN_BEFORE,Sep.EXPRESSION_STATEMENT_PAREN_AFTER):c,this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceForInStatement",value:function(s,o){var c=o.left,d=o.right,_=o.body;return c=s.left.type==="VariableDeclaration"?noIn(markContainsIn(c)):c,(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FORIN_FOR),this.paren(seq(c.startsWithLet?this.paren(c,Sep.FOR_IN_LET_PAREN_BEFORE,Sep.FOR_IN_LET_PAREN_AFTER):c,this.sep(Sep.BEFORE_FORIN_IN),this.t("in"),this.sep(Sep.AFTER_FORIN_FOR),d),Sep.FOR_IN_PAREN_BEFORE,Sep.FOR_IN_PAREN_AFTER),this.sep(Sep.BEFORE_FORIN_BODY),_,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceForOfStatement",value:function(s,o){var c=o.left,d=o.right,_=o.body;return c=s.left.type==="VariableDeclaration"?noIn(markContainsIn(c)):c,(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FOROF_FOR),this.paren(seq(c.startsWithLet?this.paren(c,Sep.FOR_OF_LET_PAREN_BEFORE,Sep.FOR_OF_LET_PAREN_AFTER):c,this.sep(Sep.BEFORE_FOROF_OF),this.t("of"),this.sep(Sep.AFTER_FOROF_FOR),this.p(s.right,_coderep.Precedence.Assignment,d)),Sep.FOR_OF_PAREN_BEFORE,Sep.FOR_OF_PAREN_AFTER),this.sep(Sep.BEFORE_FOROF_BODY),_,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceForStatement",value:function(s,o){var c=o.init,d=o.test,_=o.update,b=o.body;return c&&(c.startsWithLetSquareBracket&&(c=this.paren(c,Sep.FOR_LET_PAREN_BEFORE,Sep.FOR_LET_PAREN_AFTER)),c=noIn(markContainsIn(c))),(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FOR_FOR),this.paren(seq(c?seq(this.sep(Sep.BEFORE_FOR_INIT),c,this.sep(Sep.AFTER_FOR_INIT)):this.sep(Sep.EMPTY_FOR_INIT),this.t(";"),d?seq(this.sep(Sep.BEFORE_FOR_TEST),d,this.sep(Sep.AFTER_FOR_TEST)):this.sep(Sep.EMPTY_FOR_TEST),this.t(";"),_?seq(this.sep(Sep.BEFORE_FOR_UPDATE),_,this.sep(Sep.AFTER_FOR_UPDATE)):this.sep(Sep.EMPTY_FOR_UPDATE))),this.sep(Sep.BEFORE_FOR_BODY),b,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:b.endsWithMissingElse})}},{key:"reduceForAwaitStatement",value:function(s,o){var c=o.left,d=o.right,_=o.body;return c=s.left.type==="VariableDeclaration"?noIn(markContainsIn(c)):c,(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FOROF_FOR),this.t("await"),this.sep(Sep.AFTER_FORAWAIT_AWAIT),this.paren(seq(c.startsWithLet?this.paren(c,Sep.FOR_OF_LET_PAREN_BEFORE,Sep.FOR_OF_LET_PAREN_AFTER):c,this.sep(Sep.BEFORE_FOROF_OF),this.t("of"),this.sep(Sep.AFTER_FOROF_FOR),this.p(s.right,_coderep.Precedence.Assignment,d)),Sep.FOR_OF_PAREN_BEFORE,Sep.FOR_OF_PAREN_AFTER),this.sep(Sep.BEFORE_FOROF_BODY),_,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceFunctionBody",value:function(s,o){var c=o.directives,d=o.statements;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.statements[0],d[0])),seq.apply(void 0,_toConsumableArray$1(c).concat([c.length?this.sep(Sep.AFTER_FUNCTION_DIRECTIVES):empty$1()],_toConsumableArray$1(d)))}},{key:"reduceFunctionDeclaration",value:function(s,o){var c=o.name,d=o.params,_=o.body;return seq(s.isAsync?this.t("async"):empty$1(),this.t("function"),s.isGenerator?seq(this.sep(Sep.BEFORE_GENERATOR_STAR),this.t("*"),this.sep(Sep.AFTER_GENERATOR_STAR)):empty$1(),this.sep(Sep.BEFORE_FUNCTION_NAME(s)),s.name.name==="*default*"?empty$1():c,this.sep(Sep.BEFORE_FUNCTION_PARAMS),this.paren(d,Sep.PARAMETERS_PAREN_BEFORE,Sep.PARAMETERS_PAREN_AFTER,Sep.PARAMETERS_PAREN_EMPTY),this.sep(Sep.BEFORE_FUNCTION_DECLARATION_BODY),this.brace(_,s,Sep.FUNCTION_BRACE_INITIAL,Sep.FUNCTION_BRACE_FINAL,Sep.FUNCTION_EMPTY),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceFunctionExpression",value:function(s,o){var c=o.name,d=o.params,_=o.body,b=seq(s.isAsync?this.t("async"):empty$1(),this.t("function"),s.isGenerator?seq(this.sep(Sep.BEFORE_GENERATOR_STAR),this.t("*"),this.sep(Sep.AFTER_GENERATOR_STAR)):empty$1(),this.sep(Sep.BEFORE_FUNCTION_NAME(s)),c||empty$1(),this.sep(Sep.BEFORE_FUNCTION_PARAMS),this.paren(d,Sep.PARAMETERS_PAREN_BEFORE,Sep.PARAMETERS_PAREN_AFTER,Sep.PARAMETERS_PAREN_EMPTY),this.sep(Sep.BEFORE_FUNCTION_EXPRESSION_BODY),this.brace(_,s,Sep.FUNCTION_EXPRESSION_BRACE_INITIAL,Sep.FUNCTION_EXPRESSION_BRACE_FINAL,Sep.FUNCTION_EXPRESSION_EMPTY));return b.startsWithFunctionOrClass=!0,b}},{key:"reduceFormalParameters",value:function(s,o){var c=o.items,d=o.rest;return this.commaSep(c.concat(d==null?[]:[seq(this.t("..."),this.sep(Sep.REST),d)]),Sep.PARAMETER_BEFORE_COMMA,Sep.PARAMETER_AFTER_COMMA)}},{key:"reduceArrowExpression",value:function(s,o){var c=o.params,d=o.body;(s.params.rest!=null||s.params.items.length!==1||s.params.items[0].type!=="BindingIdentifier")&&(c=this.paren(c,Sep.ARROW_PARAMETERS_PAREN_BEFORE,Sep.ARROW_PARAMETERS_PAREN_AFTER,Sep.ARROW_PARAMETERS_PAREN_EMPTY));var _=!1;return s.body.type==="FunctionBody"?d=this.brace(d,s,Sep.ARROW_BRACE_INITIAL,Sep.ARROW_BRACE_FINAL,Sep.ARROW_BRACE_EMPTY):d.startsWithCurly?d=this.paren(d,Sep.ARROW_BODY_PAREN_BEFORE,Sep.ARROW_BODY_PAREN_AFTER):d.containsIn&&(_=!0),(0,_objectAssign2.default)(seq(s.isAsync?seq(this.t("async"),this.sep(Sep.BEFORE_ARROW_ASYNC_PARAMS)):empty$1(),c,this.sep(Sep.BEFORE_ARROW),this.t("=>"),this.sep(Sep.AFTER_ARROW),this.p(s.body,_coderep.Precedence.Assignment,d)),{containsIn:_})}},{key:"reduceGetter",value:function(s,o){var c=o.name,d=o.body;return seq(this.t("get"),this.sep(Sep.AFTER_GET),c,this.sep(Sep.BEFORE_GET_PARAMS),this.paren(empty$1(),null,null,Sep.GETTER_PARAMS),this.sep(Sep.BEFORE_GET_BODY),this.brace(d,s,Sep.GET_BRACE_INTIAL,Sep.GET_BRACE_FINAL,Sep.GET_BRACE_EMPTY))}},{key:"reduceIdentifierExpression",value:function(s){var o=this.t(s.name);return s.name==="let"&&(o.startsWithLet=!0),o}},{key:"reduceIfStatement",value:function(s,o){var c=o.test,d=o.consequent,_=o.alternate;return _&&d.endsWithMissingElse&&(d=this.brace(d,s,Sep.MISSING_ELSE_INTIIAL,Sep.MISSING_ELSE_FINAL,Sep.MISSING_ELSE_EMPTY)),(0,_objectAssign2.default)(seq(this.t("if"),this.sep(Sep.AFTER_IF),this.paren(c,Sep.IF_PAREN_BEFORE,Sep.IF_PAREN_AFTER),this.sep(Sep.AFTER_IF_TEST),d,_?seq(this.sep(Sep.BEFORE_ELSE),this.t("else"),this.sep(Sep.AFTER_ELSE),_):empty$1(),this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:_?_.endsWithMissingElse:!0})}},{key:"reduceImport",value:function(s,o){var c=o.defaultBinding,d=o.namedImports,_=[];return c!=null&&_.push(c),d.length>0&&_.push(this.brace(this.commaSep(d,Sep.NAMED_IMPORT_BEFORE_COMMA,Sep.NAMED_IMPORT_AFTER_COMMA),s,Sep.IMPORT_BRACE_INTIAL,Sep.IMPORT_BRACE_FINAL,Sep.IMPORT_BRACE_EMPTY)),_.length===0?seq(this.t("import"),this.sep(Sep.BEFORE_IMPORT_MODULE),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s))):seq(this.t("import"),this.sep(Sep.BEFORE_IMPORT_BINDINGS),this.commaSep(_,Sep.IMPORT_BEFORE_COMMA,Sep.IMPORT_AFTER_COMMA),this.sep(Sep.AFTER_IMPORT_BINDINGS),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceImportNamespace",value:function(s,o){var c=o.defaultBinding,d=o.namespaceBinding;return seq(this.t("import"),this.sep(Sep.BEFORE_IMPORT_NAMESPACE),c==null?empty$1():seq(c,this.sep(Sep.IMPORT_BEFORE_COMMA),this.t(","),this.sep(Sep.IMPORT_AFTER_COMMA)),this.sep(Sep.BEFORE_IMPORT_STAR),this.t("*"),this.sep(Sep.AFTER_IMPORT_STAR),this.t("as"),this.sep(Sep.AFTER_IMPORT_AS),d,this.sep(Sep.AFTER_NAMESPACE_BINDING),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceImportSpecifier",value:function(s,o){var c=o.binding;return s.name==null?c:seq(this.t(s.name),this.sep(Sep.BEFORE_IMPORT_AS),this.t("as"),this.sep(Sep.AFTER_IMPORT_AS),c)}},{key:"reduceExportAllFrom",value:function(s){return seq(this.t("export"),this.sep(Sep.BEFORE_EXPORT_STAR),this.t("*"),this.sep(Sep.AFTER_EXPORT_STAR),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExportFrom",value:function(s,o){var c=o.namedExports;return seq(this.t("export"),this.sep(Sep.BEFORE_EXPORT_BINDINGS),this.brace(this.commaSep(c,Sep.EXPORTS_BEFORE_COMMA,Sep.EXPORTS_AFTER_COMMA),s,Sep.EXPORT_BRACE_INITIAL,Sep.EXPORT_BRACE_FINAL,Sep.EXPORT_BRACE_EMPTY),this.sep(Sep.AFTER_EXPORT_FROM_BINDINGS),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExportLocals",value:function(s,o){var c=o.namedExports;return seq(this.t("export"),this.sep(Sep.BEFORE_EXPORT_BINDINGS),this.brace(this.commaSep(c,Sep.EXPORTS_BEFORE_COMMA,Sep.EXPORTS_AFTER_COMMA),s,Sep.EXPORT_BRACE_INITIAL,Sep.EXPORT_BRACE_FINAL,Sep.EXPORT_BRACE_EMPTY),this.sep(Sep.AFTER_EXPORT_LOCAL_BINDINGS),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExport",value:function(s,o){var c=o.declaration;switch(s.declaration.type){case"FunctionDeclaration":case"ClassDeclaration":break;default:c=seq(c,this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}return seq(this.t("export"),this.sep(Sep.AFTER_EXPORT),c)}},{key:"reduceExportDefault",value:function(s,o){var c=o.body;switch(c=c.startsWithFunctionOrClass?this.paren(c,Sep.EXPORT_PAREN_BEFORE,Sep.EXPORT_PAREN_AFTER):c,s.body.type){case"FunctionDeclaration":case"ClassDeclaration":return seq(this.t("export"),this.sep(Sep.EXPORT_DEFAULT),this.t("default"),this.sep(Sep.AFTER_EXPORT_DEFAULT),c);default:return seq(this.t("export"),this.sep(Sep.EXPORT_DEFAULT),this.t("default"),this.sep(Sep.AFTER_EXPORT_DEFAULT),this.p(s.body,_coderep.Precedence.Assignment,c),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}}},{key:"reduceExportFromSpecifier",value:function(s){return s.exportedName==null?this.t(s.name):seq(this.t(s.name),this.sep(Sep.BEFORE_EXPORT_AS),this.t("as"),this.sep(Sep.AFTER_EXPORT_AS),this.t(s.exportedName))}},{key:"reduceExportLocalSpecifier",value:function(s,o){var c=o.name;return s.exportedName==null?c:seq(c,this.sep(Sep.BEFORE_EXPORT_AS),this.t("as"),this.sep(Sep.AFTER_EXPORT_AS),this.t(s.exportedName))}},{key:"reduceLabeledStatement",value:function(s,o){var c=o.body;return(0,_objectAssign2.default)(seq(this.t(s.label),this.sep(Sep.BEFORE_LABEL_COLON),this.t(":"),this.sep(Sep.AFTER_LABEL_COLON),c),{endsWithMissingElse:c.endsWithMissingElse})}},{key:"reduceLiteralBooleanExpression",value:function(s){return this.t(s.value.toString())}},{key:"reduceLiteralNullExpression",value:function(){return this.t("null")}},{key:"reduceLiteralInfinityExpression",value:function(){return this.t("2e308")}},{key:"reduceLiteralNumericExpression",value:function(s){return new _coderep.NumberCodeRep(s.value)}},{key:"reduceLiteralRegExpExpression",value:function(s){return this.t("/"+s.pattern+"/"+(s.global?"g":"")+(s.ignoreCase?"i":"")+(s.multiLine?"m":"")+(s.dotAll?"s":"")+(s.unicode?"u":"")+(s.sticky?"y":""),!0)}},{key:"reduceLiteralStringExpression",value:function(s){return this.t((0,_coderep.escapeStringLiteral)(s.value))}},{key:"reduceMethod",value:function(s,o){var c=o.name,d=o.params,_=o.body;return seq(s.isAsync?seq(this.t("async"),this.sep(Sep.AFTER_METHOD_ASYNC)):empty$1(),s.isGenerator?seq(this.t("*"),this.sep(Sep.AFTER_METHOD_GENERATOR_STAR)):empty$1(),c,this.sep(Sep.AFTER_METHOD_NAME),this.paren(d,Sep.PARAMETERS_PAREN_BEFORE,Sep.PARAMETERS_PAREN_AFTER,Sep.PARAMETERS_PAREN_EMPTY),this.sep(Sep.BEFORE_METHOD_BODY),this.brace(_,s,Sep.METHOD_BRACE_INTIAL,Sep.METHOD_BRACE_FINAL,Sep.METHOD_BRACE_EMPTY))}},{key:"reduceModule",value:function(s,o){var c=o.directives,d=o.items;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.items[0],d[0])),seq.apply(void 0,_toConsumableArray$1(c).concat([c.length?this.sep(Sep.AFTER_MODULE_DIRECTIVES):empty$1()],_toConsumableArray$1(d)))}},{key:"reduceNewExpression",value:function(s,o){var c=this,d=o.callee,_=o.arguments,b=_.map(function($,j){return c.p(s.arguments[j],_coderep.Precedence.Assignment,$)}),k=(0,_coderep.getPrecedence)(s.callee)===_coderep.Precedence.Call?this.paren(d,Sep.NEW_CALLEE_PAREN_BEFORE,Sep.NEW_CALLEE_PAREN_AFTER):this.p(s.callee,(0,_coderep.getPrecedence)(s),d);return seq(this.t("new"),this.sep(Sep.AFTER_NEW),k,_.length===0?this.sep(Sep.EMPTY_NEW_CALL):seq(this.sep(Sep.BEFORE_NEW_ARGS),this.paren(this.commaSep(b,Sep.ARGS_BEFORE_COMMA,Sep.ARGS_AFTER_COMMA),Sep.NEW_PAREN_BEFORE,Sep.NEW_PAREN_AFTER,Sep.NEW_PAREN_EMPTY)))}},{key:"reduceNewTargetExpression",value:function(){return seq(this.t("new"),this.sep(Sep.NEW_TARGET_BEFORE_DOT),this.t("."),this.sep(Sep.NEW_TARGET_AFTER_DOT),this.t("target"))}},{key:"reduceObjectExpression",value:function(s,o){var c=o.properties,d=this.brace(this.commaSep(c,Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA),s,Sep.OBJECT_BRACE_INITIAL,Sep.OBJECT_BRACE_FINAL,Sep.OBJECT_EMPTY);return d.startsWithCurly=!0,d}},{key:"reduceUpdateExpression",value:function(s,o){var c=o.operand;return s.isPrefix?this.reduceUnaryExpression.apply(this,arguments):(0,_objectAssign2.default)(seq(this.p(s.operand,_coderep.Precedence.New,c),this.sep(Sep.BEFORE_POSTFIX(s.operator)),this.t(s.operator)),{startsWithCurly:c.startsWithCurly,startsWithLetSquareBracket:c.startsWithLetSquareBracket,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceUnaryExpression",value:function(s,o){var c=o.operand;return seq(this.t(s.operator),this.sep(Sep.UNARY(s.operator)),this.p(s.operand,(0,_coderep.getPrecedence)(s),c))}},{key:"reduceReturnStatement",value:function(s,o){var c=o.expression;return seq(this.t("return"),c?seq(this.sep(Sep.RETURN),c):empty$1(),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceScript",value:function(s,o){var c=o.directives,d=o.statements;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.statements[0],d[0])),seq.apply(void 0,_toConsumableArray$1(c).concat([c.length?this.sep(Sep.AFTER_SCRIPT_DIRECTIVES):empty$1()],_toConsumableArray$1(d)))}},{key:"reduceSetter",value:function(s,o){var c=o.name,d=o.param,_=o.body;return seq(this.t("set"),this.sep(Sep.AFTER_SET),c,this.sep(Sep.BEFORE_SET_PARAMS),this.paren(d,Sep.SETTER_PARAM_BEFORE,Sep.SETTER_PARAM_AFTER),this.sep(Sep.BEFORE_SET_BODY),this.brace(_,s,Sep.SET_BRACE_INTIIAL,Sep.SET_BRACE_FINAL,Sep.SET_BRACE_EMPTY))}},{key:"reduceShorthandProperty",value:function(s,o){var c=o.name;return c}},{key:"reduceStaticMemberAssignmentTarget",value:function(s,o){var c=o.object,d=seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.BEFORE_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT),this.t("."),this.sep(Sep.AFTER_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT),this.t(s.property));return d.startsWithLet=c.startsWithLet,d.startsWithCurly=c.startsWithCurly,d.startsWithLetSquareBracket=c.startsWithLetSquareBracket,d.startsWithFunctionOrClass=c.startsWithFunctionOrClass,d}},{key:"reduceStaticMemberExpression",value:function(s,o){var c=o.object,d=seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.BEFORE_STATIC_MEMBER_DOT),this.t("."),this.sep(Sep.AFTER_STATIC_MEMBER_DOT),this.t(s.property));return d.startsWithLet=c.startsWithLet,d.startsWithCurly=c.startsWithCurly,d.startsWithLetSquareBracket=c.startsWithLetSquareBracket,d.startsWithFunctionOrClass=c.startsWithFunctionOrClass,d}},{key:"reduceStaticPropertyName",value:function(s){if(_esutils.keyword.isIdentifierNameES6(s.value))return this.t(s.value);var o=parseFloat(s.value);return o>=0&&o.toString()===s.value?new _coderep.NumberCodeRep(o):this.t((0,_coderep.escapeStringLiteral)(s.value))}},{key:"reduceSuper",value:function(){return this.t("super")}},{key:"reduceSwitchCase",value:function(s,o){var c=o.test,d=o.consequent;return seq(this.t("case"),this.sep(Sep.BEFORE_CASE_TEST),c,this.sep(Sep.AFTER_CASE_TEST),this.t(":"),this.sep(Sep.BEFORE_CASE_BODY),seq.apply(void 0,_toConsumableArray$1(d)),this.sep(Sep.AFTER_CASE_BODY))}},{key:"reduceSwitchDefault",value:function(s,o){var c=o.consequent;return seq(this.t("default"),this.sep(Sep.DEFAULT),this.t(":"),this.sep(Sep.BEFORE_CASE_BODY),seq.apply(void 0,_toConsumableArray$1(c)),this.sep(Sep.AFTER_DEFAULT_BODY))}},{key:"reduceSwitchStatement",value:function(s,o){var c=o.discriminant,d=o.cases;return seq(this.t("switch"),this.sep(Sep.BEFORE_SWITCH_DISCRIM),this.paren(c,Sep.SWITCH_DISCRIM_PAREN_BEFORE,Sep.SWITCH_DISCRIM_PAREN_AFTER),this.sep(Sep.BEFORE_SWITCH_BODY),this.brace(seq.apply(void 0,_toConsumableArray$1(d)),s,Sep.SWITCH_BRACE_INTIAL,Sep.SWITCH_BRACE_FINAL,Sep.SWITCH_BRACE_EMPTY),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceSwitchStatementWithDefault",value:function(s,o){var c=o.discriminant,d=o.preDefaultCases,_=o.defaultCase,b=o.postDefaultCases;return seq(this.t("switch"),this.sep(Sep.BEFORE_SWITCH_DISCRIM),this.paren(c,Sep.SWITCH_DISCRIM_PAREN_BEFORE,Sep.SWITCH_DISCRIM_PAREN_AFTER),this.sep(Sep.BEFORE_SWITCH_BODY),this.brace(seq.apply(void 0,_toConsumableArray$1(d).concat([_],_toConsumableArray$1(b))),s,Sep.SWITCH_BRACE_INTIAL,Sep.SWITCH_BRACE_FINAL,Sep.SWITCH_BRACE_EMPTY),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceTemplateExpression",value:function(s,o){var c=o.tag,d=o.elements,_=s.tag==null?empty$1():seq(this.p(s.tag,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.TEMPLATE_TAG));_=seq(_,this.t("`"));for(var b=0,k=s.elements.length;b0&&($+="}"),$+=s.elements[b].rawValue,b=1e3&&a%10===0?(e=a.toString(10),/[eE]/.test(e)?e.replace(/[eE]\+/,"e"):a.toString(10).replace(/0{3,}$/,function(s){return"e"+s.length})):a%1===0?a>1e15&&a<1e20?"0x"+a.toString(16).toUpperCase():a.toString(10).replace(/[eE]\+/,"e"):a.toString(10).replace(/^0\./,".").replace(/[eE]\+/,"e")}tokenStream.TokenStream=function(){function a(){_classCallCheck$1(this,a),this.result="",this.lastNumber=null,this.lastCodePoint=null,this.lastTokenStr="",this.optionalSemi=!1,this.previousWasRegExp=!1,this.partialHtmlComment=!1}return _createClass$1(a,[{key:"putNumber",value:function(s){var o=renderNumber(s);this.put(o),this.lastNumber=o}},{key:"putOptionalSemi",value:function(){this.optionalSemi=!0}},{key:"putRaw",value:function(s){this.result+=s,this.lastTokenStr=s}},{key:"put",value:function(s,o){if(this.optionalSemi&&(this.optionalSemi=!1,s!=="}"&&(this.result+=";",this.lastCodePoint=";",this.previousWasRegExp=!1)),this.lastNumber!==null&&s.length===1&&s==="."){this.result+=needsDoubleDot(this.lastNumber)?"..":".",this.lastNumber=null,this.lastCodePoint=".";return}var c=[].concat(_toConsumableArray(s)).length;if(c>0){this.lastNumber=null;var d=String.fromCodePoint(s.codePointAt(0)),_=this.lastCodePoint;this.lastCodePoint=String.fromCodePoint(s.codePointAt(c-1));var b=this.previousWasRegExp;this.previousWasRegExp=o,_&&((_==="+"||_==="-")&&_===d||isIdentifierPartES6(_)&&isIdentifierPartES6(d)||_==="/"&&d==="/"||b&&d==="i"||this.partialHtmlComment&&s.startsWith("--"))&&(this.result+=" ")}this.partialHtmlComment=this.lastTokenStr.endsWith("<")&&s==="!",this.result+=s,this.lastTokenStr=s}}]),a}();Object.defineProperty(withLocation,"__esModule",{value:!0});var _createClass=function(){function a(e,s){for(var o=0;o1?c-1:0),_=1;_1?c-1:0),_=1;_1?c-1:0),_=1;_1&&arguments[1]!==void 0?arguments[1]:new _minimalCodegen2.default,s=new TokenStreamWithLocation,o=(0,_shiftReducer.reduce)(addLocationToReducer(e),a);return o.emit(s),{source:s.result,locations:s.locations}}(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.codeGenWithLocation=a.SemiOp=a.CommaSep=a.Semi=a.Seq=a.ContainsIn=a.NoIn=a.Brace=a.Bracket=a.Paren=a.NumberCodeRep=a.Token=a.Empty=a.CodeRep=a.escapeStringLiteral=a.getPrecedence=a.Precedence=a.Sep=a.FormattedCodeGen=a.ExtensibleCodeGen=a.MinimalCodeGen=void 0,a.default=j;var e=minimalCodegen;Object.defineProperty(a,"MinimalCodeGen",{enumerable:!0,get:function(){return $(e).default}});var s=formattedCodegen;Object.defineProperty(a,"ExtensibleCodeGen",{enumerable:!0,get:function(){return s.ExtensibleCodeGen}}),Object.defineProperty(a,"FormattedCodeGen",{enumerable:!0,get:function(){return s.FormattedCodeGen}}),Object.defineProperty(a,"Sep",{enumerable:!0,get:function(){return s.Sep}});var o=coderep;Object.defineProperty(a,"Precedence",{enumerable:!0,get:function(){return o.Precedence}}),Object.defineProperty(a,"getPrecedence",{enumerable:!0,get:function(){return o.getPrecedence}}),Object.defineProperty(a,"escapeStringLiteral",{enumerable:!0,get:function(){return o.escapeStringLiteral}}),Object.defineProperty(a,"CodeRep",{enumerable:!0,get:function(){return o.CodeRep}}),Object.defineProperty(a,"Empty",{enumerable:!0,get:function(){return o.Empty}}),Object.defineProperty(a,"Token",{enumerable:!0,get:function(){return o.Token}}),Object.defineProperty(a,"NumberCodeRep",{enumerable:!0,get:function(){return o.NumberCodeRep}}),Object.defineProperty(a,"Paren",{enumerable:!0,get:function(){return o.Paren}}),Object.defineProperty(a,"Bracket",{enumerable:!0,get:function(){return o.Bracket}}),Object.defineProperty(a,"Brace",{enumerable:!0,get:function(){return o.Brace}}),Object.defineProperty(a,"NoIn",{enumerable:!0,get:function(){return o.NoIn}}),Object.defineProperty(a,"ContainsIn",{enumerable:!0,get:function(){return o.ContainsIn}}),Object.defineProperty(a,"Seq",{enumerable:!0,get:function(){return o.Seq}}),Object.defineProperty(a,"Semi",{enumerable:!0,get:function(){return o.Semi}}),Object.defineProperty(a,"CommaSep",{enumerable:!0,get:function(){return o.CommaSep}}),Object.defineProperty(a,"SemiOp",{enumerable:!0,get:function(){return o.SemiOp}});var c=withLocation;Object.defineProperty(a,"codeGenWithLocation",{enumerable:!0,get:function(){return $(c).default}});var d=dist$4,_=$(d),b=tokenStream,k=$(e);function $(_e){return _e&&_e.__esModule?_e:{default:_e}}function j(_e){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new k.default,tt=new b.TokenStream,nt=(0,_.default)(et,_e);return nt.emit(tt),tt.result}})(dist);var shiftCodegen=getDefaultExportFromCjs(dist);function bjorklund(a,e){for(var s=[],o=[],c=[e],d=a-e,_=0,b=function(k){if(k==-1)s.push(0);else if(k==-2)s.push(1);else{for(var $=0;$1;)o.push(Math.floor(d/c[_])),c.push(d%c[_]),d=c[_],_++;return o.push(d),b(_),s.reverse()}var bjork=function(a,e){return a>e?bjorklund(a,e):bjorklund(e,a)};const euclid=(a,e,s=0)=>{const o=bjork(e,a);return s?rotate(o,-s):o};Pattern$5.prototype.euclid=function(a,e,s=0){return this.struct(euclid(a,e,s))};Pattern$5.prototype.euclidLegato=function(a,e,s=0){const o=euclid(a,e,s),c=o.indexOf(1),d=rotate(o,c).join("").split("1").slice(1).map(_=>[_.length+1,!0]);return this.struct(timeCat$1(...d)).late(fraction(c).div(e))};function steady(a){return new Pattern$5(e=>[new Hap(void 0,e.span,a)])}const signal=a=>{const e=s=>[new Hap(void 0,s.span,a(s.span.midpoint()))];return new Pattern$5(e)},isaw=signal(a=>1-a%1),isaw2=isaw._toBipolar(),saw=signal(a=>a%1),saw2=saw._toBipolar(),sine2=signal(a=>Math.sin(Math.PI*2*a)),sine=sine2._fromBipolar(),cosine=sine._early(fraction(1).div(4)),cosine2=sine2._early(fraction(1).div(4)),square=signal(a=>Math.floor(a*2%2)),square2=square._toBipolar(),tri=fastcat(isaw,saw),tri2=fastcat(isaw2,saw2),time=signal(id$1),xorwise=a=>{const e=a<<13^a,s=e>>17^e;return s<<5^s},_frac=a=>a-Math.trunc(a),timeToIntSeed=a=>xorwise(Math.trunc(_frac(a/300)*536870912)),intSeedToRand=a=>a%536870912/536870912,timeToRand=a=>Math.abs(intSeedToRand(timeToIntSeed(a))),rand=signal(timeToRand),rand2=rand._toBipolar(),_brandBy=a=>rand.fmap(e=>ereify$1(a).fmap(_brandBy).innerJoin(),brand=_brandBy(.5),_irand=a=>rand.fmap(e=>Math.trunc(e*a)),irand=a=>reify$1(a).fmap(_irand).innerJoin(),__chooseWith=(a,e)=>(e=e.map(reify$1),e.length==0?silence:a.range(0,e.length).fmap(s=>e[Math.floor(s)])),chooseWith=(a,e)=>__chooseWith(a,e).outerJoin(),chooseInWith=(a,e)=>__chooseWith(a,e).innerJoin(),choose=(...a)=>chooseWith(rand,a);Pattern$5.prototype.choose=function(...a){return chooseWith(this,a)};Pattern$5.prototype.choose2=function(...a){return chooseWith(this._fromBipolar(),a)};const chooseCycles=(...a)=>chooseInWith(rand.segment(1),a),randcat=chooseCycles,_wchooseWith=function(a,...e){const s=e.map(b=>reify$1(b[0])),o=[];let c=0;for(const b of e)c+=b[1],o.push(c);const d=c,_=function(b){const k=b*d;return s[o.findIndex($=>$>k,o)]};return a.fmap(_)},wchooseWith=(...a)=>_wchooseWith(...a).outerJoin(),wchoose=(...a)=>wchooseWith(rand,...a),wchooseCycles=(...a)=>_wchooseWith(rand,...a).innerJoin(),perlinWith=a=>{const e=a.fmap(Math.floor),s=a.fmap(d=>Math.floor(d)+1),o=d=>6*d**5-15*d**4+10*d**3,c=d=>_=>b=>_+o(d)*(b-_);return a.sub(e).fmap(c).appBoth(e.fmap(timeToRand)).appBoth(s.fmap(timeToRand))},perlin=perlinWith(time);Pattern$5.prototype._degradeByWith=function(a,e){return this.fmap(s=>o=>s).appLeft(a._filterValues(s=>s>e))};Pattern$5.prototype._degradeBy=function(a){return this._degradeByWith(rand,a)};Pattern$5.prototype.degrade=function(){return this._degradeBy(.5)};Pattern$5.prototype._undegradeBy=function(a){return this._degradeByWith(rand.fmap(e=>1-e),a)};Pattern$5.prototype.undegrade=function(){return this._undegradeBy(.5)};Pattern$5.prototype._sometimesBy=function(a,e){return stack(this._degradeBy(a),e(this._undegradeBy(1-a)))};Pattern$5.prototype.sometimesBy=function(a,e){const s=this;return reify$1(a).fmap(o=>s._sometimesBy(o,e)).innerJoin()};Pattern$5.prototype._sometimesByPre=function(a,e){return stack(this._degradeBy(a),e(this).undegradeBy(1-a))};Pattern$5.prototype.sometimesByPre=function(a,e){const s=this;return reify$1(a).fmap(o=>s._sometimesByPre(o,e)).innerJoin()};Pattern$5.prototype.sometimes=function(a){return this._sometimesBy(.5,a)};Pattern$5.prototype.sometimesPre=function(a){return this._sometimesByPre(.5,a)};Pattern$5.prototype._someCyclesBy=function(a,e){return stack(this._degradeByWith(rand._segment(1),a),e(this._degradeByWith(rand.fmap(s=>1-s)._segment(1),1-a)))};Pattern$5.prototype.someCyclesBy=function(a,e){const s=this;return reify$1(a).fmap(o=>s._someCyclesBy(o,e)).innerJoin()};Pattern$5.prototype.someCycles=function(a){return this._someCyclesBy(.5,a)};Pattern$5.prototype.often=function(a){return this.sometimesBy(.75,a)};Pattern$5.prototype.rarely=function(a){return this.sometimesBy(.25,a)};Pattern$5.prototype.almostNever=function(a){return this.sometimesBy(.1,a)};Pattern$5.prototype.almostAlways=function(a){return this.sometimesBy(.9,a)};Pattern$5.prototype.never=function(a){return this};Pattern$5.prototype.always=function(a){return a(this)};Pattern$5.prototype.patternified.push("degradeBy","undegradeBy");let synth$1;try{synth$1=window==null?void 0:window.speechSynthesis}catch{console.warn("cannot use window: not in browser?")}let allVoices=synth$1==null?void 0:synth$1.getVoices();function speak(a,e,s){synth$1.cancel();const o=new SpeechSynthesisUtterance(a);o.lang=e,allVoices=synth$1.getVoices();const c=allVoices.filter(d=>d.lang.includes(e));typeof s=="number"?o.voice=c[s%c.length]:typeof s=="string"&&(o.voice=c.find(d=>d.name===d)),speechSynthesis.speak(o)}Pattern$5.prototype._speak=function(a,e){return this._withHap(s=>{const o=(c,d)=>{speak(d.value,a,e)};return s.setContext(kt(Dt({},s.context),{onTrigger:o}))})};Pattern$5.prototype.speak=function(a,e){return patternify2(Pattern$5.prototype._speak)(reify(a),reify(e),this)};var gist=(route,cache=!0)=>fetch(`https://gist.githubusercontent.com/${route}?cachebust=${cache?"":Date.now()}`).then(a=>a.text()).then(code=>eval(code));console.log("%c // \u{1F300} @strudel.cycles/core loaded \u{1F300}","background-color: black;color:white;padding:4px;border-radius:15px");globalThis._strudelLoaded&&console.warn(`@strudel.cycles/core was loaded more than once... This might happen when you have multiple versions of strudel installed. -Please check with "npm ls @strudel.cycles/core".`);globalThis._strudelLoaded=!0;var strudel=Object.freeze(Object.defineProperty({__proto__:null,Fraction:fraction,gist,Hap,Pattern:Pattern$5,silence,pure,isPattern:isPattern$1,reify:reify$1,stack,slowcat,slowcatPrime,fastcat,cat,timeCat:timeCat$1,sequence,seq:seq$2,polymeterSteps,polymeter,pm,polyrhythm,pr,add:add$1,chop,chunk,chunkBack,div,early,echo,every,fast,inv,invert,iter,iterBack,jux,juxBy,late,linger,mask,mul,off,ply,range:range$1,range2,rev,slow,struct:struct$1,sub,superimpose,set,when,makeComposable,patternify2,patternify3,patternify4,steady,signal,isaw,isaw2,saw,saw2,sine2,sine,cosine,cosine2,square,square2,tri,tri2,time,rand,rand2,_brandBy,brandBy,brand,_irand,irand,__chooseWith,chooseWith,chooseInWith,choose,chooseCycles,randcat,wchoose,wchooseCycles,perlinWith,perlin,State:State$1,TimeSpan:TimeSpan$1,isNote:isNote$3,tokenizeNote,toMidi:toMidi$1,fromMidi,getFreq,midi2note,mod,getPlayableNoteValue,getFrequency,rotate,pipe,compose,removeUndefineds,flatten:flatten$1,id:id$1,constant,listRange,curry},Symbol.toStringTag,{value:"Module"}));const{replace}=estraverse,codegen=shiftCodegen.default||shiftCodegen,{Pattern:Pattern$4}=strudel,isNote$2=a=>/^[a-gC-G][bs]?[0-9]$/.test(a);var shapeshifter=a=>{const{code:e,addReturn:s}=wrapAsync(a),o=dist$7.parseScriptWithLocation(e),c=[],d=[],_=replace(o.tree,{enter(k,$){var tt,nt,it;if(d.push($),d.some(rt=>c.includes(rt)))return k;if(isBackTickString(k))return minifyWithLocation(k,k,o.locations,c);if(((tt=k.directives)==null?void 0:tt.length)===1&&!((nt=k.statements)!=null&&nt.length)){const rt=new LiteralStringExpression_1({value:k.directives[0].rawValue}),st=minifyWithLocation(rt,k.directives[0],o.locations,c);return kt(Dt({},k),{directives:[],statements:[st]})}if(isStringWithDoubleQuotes(k,o.locations,e))return minifyWithLocation(k,k,o.locations,c);const _e={"*":"fast","/":"slow","&":"stack","&&":"append"};if(k.type==="BinaryExpression"&&_e[k.operator]&&["LiteralNumericExpression","LiteralStringExpression","IdentifierExpression"].includes((it=k.right)==null?void 0:it.type)&&canBeOverloaded(k.left)){let rt=k.left;return k.left.type==="IdentifierExpression"&&(rt=wrapFunction("reify",k.left)),new CallExpression_1({callee:new StaticMemberExpression_1({property:_e[k.operator],object:wrapFunction("reify",rt)}),arguments:[k.right]})}const et=isPatternArg(d)||hasModifierCall($);if(k.type==="CallExpression"&&k.callee.name==="pure"){const rt=k.arguments[0];return reifyWithLocation(rt,k.arguments[0],o.locations,c)}if(k.type==="IdentifierExpression"){if(isNote$2(k.name)){const rt=k.name[1]==="s"?k.name.replace("s","#"):k.name;return et?reifyWithLocation(new LiteralStringExpression_1({value:rt}),k,o.locations,c):new LiteralStringExpression_1({value:rt})}if(k.name==="r")return new IdentifierExpression_1({name:"silence"})}return["LiteralStringExpression"].includes(k.type)&&et?reifyWithLocation(k,k,o.locations,c):addMiniNotationLocations(k,o.locations,c)},leave(){d.pop()}});return s(_),codegen(_)};function wrapAsync(a){return a=`(async () => { +Please check with "npm ls @strudel.cycles/core".`);globalThis._strudelLoaded=!0;var strudel=Object.freeze(Object.defineProperty({__proto__:null,Fraction:fraction,gist,Hap,Pattern:Pattern$5,silence,pure,isPattern:isPattern$1,reify:reify$1,stack,slowcat,slowcatPrime,fastcat,cat,timeCat:timeCat$1,sequence,seq:seq$2,polymeterSteps,polymeter,pm,polyrhythm,pr,add:add$1,chop,chunk,chunkBack,div,early,echo,every,fast,inv,invert,iter,iterBack,jux,juxBy,late,linger,mask,mul,off,ply,range:range$1,range2,rev,slow,struct:struct$1,sub,superimpose,set,when,makeComposable,patternify2,patternify3,patternify4,steady,signal,isaw,isaw2,saw,saw2,sine2,sine,cosine,cosine2,square,square2,tri,tri2,time,rand,rand2,_brandBy,brandBy,brand,_irand,irand,__chooseWith,chooseWith,chooseInWith,choose,chooseCycles,randcat,wchoose,wchooseCycles,perlinWith,perlin,State:State$1,TimeSpan:TimeSpan$1,isNote:isNote$3,tokenizeNote,toMidi:toMidi$1,fromMidi,getFreq,midi2note,mod,getPlayableNoteValue,getFrequency,rotate,pipe,compose,removeUndefineds,flatten:flatten$1,id:id$1,constant,listRange,curry},Symbol.toStringTag,{value:"Module"}));const{replace}=estraverse,codegen=shiftCodegen.default||shiftCodegen,{Pattern:Pattern$4}=strudel,isNote$2=a=>/^[a-gC-G][bs]?[0-9]$/.test(a);var shapeshifter=a=>{const{code:e,addReturn:s}=wrapAsync(a),o=dist$7.parseScriptWithLocation(disguiseImports(e)),c=[],d=[],_=replace(o.tree,{enter(k,$){var tt,nt,it;if(d.push($),d.some(rt=>c.includes(rt)))return k;if(isBackTickString(k))return minifyWithLocation(k,k,o.locations,c);if(((tt=k.directives)==null?void 0:tt.length)===1&&!((nt=k.statements)!=null&&nt.length)){const rt=new LiteralStringExpression_1({value:k.directives[0].rawValue}),st=minifyWithLocation(rt,k.directives[0],o.locations,c);return kt(Dt({},k),{directives:[],statements:[st]})}if(isStringWithDoubleQuotes(k,o.locations,e))return minifyWithLocation(k,k,o.locations,c);const _e={"*":"fast","/":"slow","&":"stack","&&":"append"};if(k.type==="BinaryExpression"&&_e[k.operator]&&["LiteralNumericExpression","LiteralStringExpression","IdentifierExpression"].includes((it=k.right)==null?void 0:it.type)&&canBeOverloaded(k.left)){let rt=k.left;return k.left.type==="IdentifierExpression"&&(rt=wrapFunction("reify",k.left)),new CallExpression_1({callee:new StaticMemberExpression_1({property:_e[k.operator],object:wrapFunction("reify",rt)}),arguments:[k.right]})}const et=isPatternArg(d)||hasModifierCall($);if(k.type==="CallExpression"&&k.callee.name==="pure"){const rt=k.arguments[0];return reifyWithLocation(rt,k.arguments[0],o.locations,c)}if(k.type==="IdentifierExpression"){if(isNote$2(k.name)){const rt=k.name[1]==="s"?k.name.replace("s","#"):k.name;return et?reifyWithLocation(new LiteralStringExpression_1({value:rt}),k,o.locations,c):new LiteralStringExpression_1({value:rt})}if(k.name==="r")return new IdentifierExpression_1({name:"silence"})}return["LiteralStringExpression"].includes(k.type)&&et?reifyWithLocation(k,k,o.locations,c):addMiniNotationLocations(k,o.locations,c)},leave(){d.pop()}});return s(_),undisguiseImports(codegen(_))};function disguiseImports(a){return a.replaceAll("import","_mport")}function undisguiseImports(a){return a.replaceAll("_mport","import")}function wrapAsync(a){return a=`(async () => { ${a} -})()`,{code:a,addReturn:s=>{const o=s.statements[0].expression.callee.body;o.statements=o.statements.slice(0,-1).concat([new ReturnStatement_1({expression:o.statements.slice(-1)[0]})])}}}function addMiniNotationLocations(a,e,s){const o=["mini","m"];if(a.type==="CallExpression"&&o.includes(a.callee.name)){if(a.arguments.length>1)return console.warn("multi arg mini locations not supported yet..."),a;const c=a.arguments[0];return minifyWithLocation(c,c,e,s)}return a.type==="StaticMemberExpression"&&o.includes(a.property)?minifyWithLocation(a.object,a,e,s):a}function wrapFunction(a,...e){return new CallExpression_1({callee:new IdentifierExpression_1({name:a}),arguments:e})}function isBackTickString(a){return a.type==="TemplateExpression"&&a.elements.length===1}function isStringWithDoubleQuotes(a,e,s){if(a.type!=="LiteralStringExpression")return!1;const o=e.get(a);return s.slice(o.start.offset,o.end.offset)[0]==='"'}function isPatternArg(a){if(!a.length)return!1;const e=a.slice(0,-1),s=a[a.length-1];return isPatternFactory(s)?!0:(s==null?void 0:s.type)==="ArrayExpression"?isPatternArg(e):!1}function hasModifierCall(a){return(a==null?void 0:a.type)==="StaticMemberExpression"&&Object.keys(Pattern$4.prototype.composable).includes(a.property)}const factories=Object.keys(Pattern$4.prototype.factories).concat(["mini"]);function isPatternFactory(a){return(a==null?void 0:a.type)==="CallExpression"&&factories.includes(a.callee.name)}function canBeOverloaded(a){return a.type==="IdentifierExpression"&&isNote$2(a.name)||isPatternFactory(a)}function reifyWithLocation(a,e,s,o){const c=getLocationArguments(e,s),d=new CallExpression_1({callee:new StaticMemberExpression_1({object:wrapFunction("reify",a),property:"withLocation"}),arguments:c});return o.push(d),d}function minifyWithLocation(a,e,s,o){const c=getLocationArguments(e,s),d=wrapFunction("mini",a),_=new CallExpression_1({callee:new StaticMemberExpression_1({object:d,property:"withMiniLocation"}),arguments:c});return o.push(_),_}function getLocationArguments(a,e){const s=e.get(a),o=-1;return[new ArrayExpression_1({elements:[new LiteralNumericExpression_1({value:s.start.line+o}),new LiteralNumericExpression_1({value:s.start.column}),new LiteralNumericExpression_1({value:s.start.offset})]}),new ArrayExpression_1({elements:[new LiteralNumericExpression_1({value:s.end.line+o}),new LiteralNumericExpression_1({value:s.end.column}),new LiteralNumericExpression_1({value:s.end.offset})]})]}const{isPattern,Pattern:Pattern$3}=strudel;let scoped=!1;const evalScope=async(...a)=>{scoped&&console.warn("@strudel.cycles/eval evalScope was called more than once."),scoped=!0;const e=await Promise.allSettled(a),s=e.filter(o=>o.status==="fulfilled").map(o=>o.value);e.forEach((o,c)=>{o.status==="rejected"&&console.warn(`evalScope: module with index ${c} could not be loaded:`,o.reason)}),Object.assign(globalThis,...s,Pattern$3.prototype.bootstrap())};function safeEval(a){return Function('"use strict";return ('+a+")")()}const evaluate=async a=>{scoped||await evalScope();const e=shapeshifter(a);let s=await safeEval(e);if(!isPattern(s)){console.log("evaluated",s);const o=`got "${typeof s}" instead of pattern`;throw new Error(o+(typeof s=="function"?", did you forget to call a function?":"."))}return{mode:"javascript",pattern:s}};let extend="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(a=>a?parseInt(a,36):1);for(let a=1;aa)return extend[e-1]<=a;return!1}function isRegionalIndicator(a){return a>=127462&&a<=127487}const ZWJ=8205;function findClusterBreak(a,e,s=!0,o=!0){return(s?nextClusterBreak:prevClusterBreak)(a,e,o)}function nextClusterBreak(a,e,s){if(e==a.length)return e;e&&surrogateLow(a.charCodeAt(e))&&surrogateHigh(a.charCodeAt(e-1))&&e--;let o=codePointAt(a,e);for(e+=codePointSize(o);e=0&&isRegionalIndicator(codePointAt(a,_));)d++,_-=2;if(d%2==0)break;e+=2}else break}return e}function prevClusterBreak(a,e,s){for(;e>0;){let o=nextClusterBreak(a,e-2,s);if(o=56320&&a<57344}function surrogateHigh(a){return a>=55296&&a<56320}function codePointAt(a,e){let s=a.charCodeAt(e);if(!surrogateHigh(s)||e+1==a.length)return s;let o=a.charCodeAt(e+1);return surrogateLow(o)?(s-55296<<10)+(o-56320)+65536:s}function fromCodePoint(a){return a<=65535?String.fromCharCode(a):(a-=65536,String.fromCharCode((a>>10)+55296,(a&1023)+56320))}function codePointSize(a){return a<65536?1:2}function countColumn(a,e,s=a.length){let o=0;for(let c=0;c=e)return c;if(c==a.length)break;d+=a.charCodeAt(c)==9?s-d%s:1,c=findClusterBreak(a,c)}return o===!0?-1:a.length}class Text{constructor(){}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,s,o){let c=[];return this.decompose(0,e,c,2),o.length&&o.decompose(0,o.length,c,3),this.decompose(s,this.length,c,1),TextNode.from(c,this.length-(s-e)+o.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,s=this.length){let o=[];return this.decompose(e,s,o,0),TextNode.from(o,s-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let s=this.scanIdentical(e,1),o=this.length-this.scanIdentical(e,-1),c=new RawTextCursor(this),d=new RawTextCursor(e);for(let _=s,b=s;;){if(c.next(_),d.next(_),_=0,c.lineBreak!=d.lineBreak||c.done!=d.done||c.value!=d.value)return!1;if(b+=c.value.length,c.done||b>=o)return!0}}iter(e=1){return new RawTextCursor(this,e)}iterRange(e,s=this.length){return new PartialTextCursor(this,e,s)}iterLines(e,s){let o;if(e==null)o=this.iter();else{s==null&&(s=this.lines+1);let c=this.line(e).from;o=this.iterRange(c,Math.max(c,s==this.lines+1?this.length:s<=1?0:this.line(s-1).to))}return new LineCursor(o)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?Text.empty:e.length<=32?new TextLeaf(e):TextNode.from(TextLeaf.split(e,[]))}}class TextLeaf extends Text{constructor(e,s=textLength(e)){super(),this.text=e,this.length=s}get lines(){return this.text.length}get children(){return null}lineInner(e,s,o,c){for(let d=0;;d++){let _=this.text[d],b=c+_.length;if((s?o:b)>=e)return new Line(c,b,o,_);c=b+1,o++}}decompose(e,s,o,c){let d=e<=0&&s>=this.length?this:new TextLeaf(sliceText(this.text,e,s),Math.min(s,this.length)-Math.max(0,e));if(c&1){let _=o.pop(),b=appendText(d.text,_.text.slice(),0,d.length);if(b.length<=32)o.push(new TextLeaf(b,_.length+d.length));else{let k=b.length>>1;o.push(new TextLeaf(b.slice(0,k)),new TextLeaf(b.slice(k)))}}else o.push(d)}replace(e,s,o){if(!(o instanceof TextLeaf))return super.replace(e,s,o);let c=appendText(this.text,appendText(o.text,sliceText(this.text,0,e)),s),d=this.length+o.length-(s-e);return c.length<=32?new TextLeaf(c,d):TextNode.from(TextLeaf.split(c,[]),d)}sliceString(e,s=this.length,o=` +})()`,{code:a,addReturn:s=>{const o=s.statements[0].expression.callee.body;o.statements=o.statements.slice(0,-1).concat([new ReturnStatement_1({expression:o.statements.slice(-1)[0]})])}}}function addMiniNotationLocations(a,e,s){const o=["mini","m"];if(a.type==="CallExpression"&&o.includes(a.callee.name)){if(a.arguments.length>1)return console.warn("multi arg mini locations not supported yet..."),a;const c=a.arguments[0];return minifyWithLocation(c,c,e,s)}return a.type==="StaticMemberExpression"&&o.includes(a.property)?minifyWithLocation(a.object,a,e,s):a}function wrapFunction(a,...e){return new CallExpression_1({callee:new IdentifierExpression_1({name:a}),arguments:e})}function isBackTickString(a){return a.type==="TemplateExpression"&&a.elements.length===1}function isStringWithDoubleQuotes(a,e,s){if(a.type!=="LiteralStringExpression")return!1;const o=e.get(a);return s.slice(o.start.offset,o.end.offset)[0]==='"'}function isPatternArg(a){if(!a.length)return!1;const e=a.slice(0,-1),s=a[a.length-1];return isPatternFactory(s)?!0:(s==null?void 0:s.type)==="ArrayExpression"?isPatternArg(e):!1}function hasModifierCall(a){return(a==null?void 0:a.type)==="StaticMemberExpression"&&Object.keys(Pattern$4.prototype.composable).includes(a.property)}const factories=Object.keys(Pattern$4.prototype.factories).concat(["mini"]);function isPatternFactory(a){return(a==null?void 0:a.type)==="CallExpression"&&factories.includes(a.callee.name)}function canBeOverloaded(a){return a.type==="IdentifierExpression"&&isNote$2(a.name)||isPatternFactory(a)}function reifyWithLocation(a,e,s,o){const c=getLocationArguments(e,s),d=new CallExpression_1({callee:new StaticMemberExpression_1({object:wrapFunction("reify",a),property:"withLocation"}),arguments:c});return o.push(d),d}function minifyWithLocation(a,e,s,o){const c=getLocationArguments(e,s),d=wrapFunction("mini",a),_=new CallExpression_1({callee:new StaticMemberExpression_1({object:d,property:"withMiniLocation"}),arguments:c});return o.push(_),_}function getLocationArguments(a,e){const s=e.get(a),o=-1;return[new ArrayExpression_1({elements:[new LiteralNumericExpression_1({value:s.start.line+o}),new LiteralNumericExpression_1({value:s.start.column}),new LiteralNumericExpression_1({value:s.start.offset})]}),new ArrayExpression_1({elements:[new LiteralNumericExpression_1({value:s.end.line+o}),new LiteralNumericExpression_1({value:s.end.column}),new LiteralNumericExpression_1({value:s.end.offset})]})]}const{isPattern,Pattern:Pattern$3}=strudel;let scoped=!1;const evalScope=async(...a)=>{scoped&&console.warn("@strudel.cycles/eval evalScope was called more than once."),scoped=!0;const e=await Promise.allSettled(a),s=e.filter(o=>o.status==="fulfilled").map(o=>o.value);e.forEach((o,c)=>{o.status==="rejected"&&console.warn(`evalScope: module with index ${c} could not be loaded:`,o.reason)}),Object.assign(globalThis,...s,Pattern$3.prototype.bootstrap())};function safeEval(a){return Function('"use strict";return ('+a+")")()}const evaluate=async a=>{scoped||await evalScope();const e=shapeshifter(a);let s=await safeEval(e);if(!isPattern(s)){console.log("evaluated",s);const o=`got "${typeof s}" instead of pattern`;throw new Error(o+(typeof s=="function"?", did you forget to call a function?":"."))}return{mode:"javascript",pattern:s}};function _extends(){return _extends=Object.assign?Object.assign.bind():function(a){for(var e=1;e=0)&&(s[c]=a[c]);return s}class Text{constructor(){}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,s,o){let c=[];return this.decompose(0,e,c,2),o.length&&o.decompose(0,o.length,c,3),this.decompose(s,this.length,c,1),TextNode.from(c,this.length-(s-e)+o.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,s=this.length){let o=[];return this.decompose(e,s,o,0),TextNode.from(o,s-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let s=this.scanIdentical(e,1),o=this.length-this.scanIdentical(e,-1),c=new RawTextCursor(this),d=new RawTextCursor(e);for(let _=s,b=s;;){if(c.next(_),d.next(_),_=0,c.lineBreak!=d.lineBreak||c.done!=d.done||c.value!=d.value)return!1;if(b+=c.value.length,c.done||b>=o)return!0}}iter(e=1){return new RawTextCursor(this,e)}iterRange(e,s=this.length){return new PartialTextCursor(this,e,s)}iterLines(e,s){let o;if(e==null)o=this.iter();else{s==null&&(s=this.lines+1);let c=this.line(e).from;o=this.iterRange(c,Math.max(c,s==this.lines+1?this.length:s<=1?0:this.line(s-1).to))}return new LineCursor(o)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?Text.empty:e.length<=32?new TextLeaf(e):TextNode.from(TextLeaf.split(e,[]))}}class TextLeaf extends Text{constructor(e,s=textLength(e)){super(),this.text=e,this.length=s}get lines(){return this.text.length}get children(){return null}lineInner(e,s,o,c){for(let d=0;;d++){let _=this.text[d],b=c+_.length;if((s?o:b)>=e)return new Line(c,b,o,_);c=b+1,o++}}decompose(e,s,o,c){let d=e<=0&&s>=this.length?this:new TextLeaf(sliceText(this.text,e,s),Math.min(s,this.length)-Math.max(0,e));if(c&1){let _=o.pop(),b=appendText(d.text,_.text.slice(),0,d.length);if(b.length<=32)o.push(new TextLeaf(b,_.length+d.length));else{let k=b.length>>1;o.push(new TextLeaf(b.slice(0,k)),new TextLeaf(b.slice(k)))}}else o.push(d)}replace(e,s,o){if(!(o instanceof TextLeaf))return super.replace(e,s,o);let c=appendText(this.text,appendText(o.text,sliceText(this.text,0,e)),s),d=this.length+o.length-(s-e);return c.length<=32?new TextLeaf(c,d):TextNode.from(TextLeaf.split(c,[]),d)}sliceString(e,s=this.length,o=` `){let c="";for(let d=0,_=0;d<=s&&_e&&_&&(c+=o),ed&&(c+=b.slice(Math.max(0,e-d),s-d)),d=k+1}return c}flatten(e){for(let s of this.text)e.push(s)}scanIdentical(){return 0}static split(e,s){let o=[],c=-1;for(let d of e)o.push(d),c+=d.length+1,o.length==32&&(s.push(new TextLeaf(o,c)),o=[],c=-1);return c>-1&&s.push(new TextLeaf(o,c)),s}}class TextNode extends Text{constructor(e,s){super(),this.children=e,this.length=s,this.lines=0;for(let o of e)this.lines+=o.lines}lineInner(e,s,o,c){for(let d=0;;d++){let _=this.children[d],b=c+_.length,k=o+_.lines-1;if((s?k:b)>=e)return _.lineInner(e,s,o,c);c=b+1,o=k+1}}decompose(e,s,o,c){for(let d=0,_=0;_<=s&&d=_){let $=c&((_<=e?1:0)|(k>=s?2:0));_>=e&&k<=s&&!$?o.push(b):b.decompose(e-_,s-_,o,$)}_=k+1}}replace(e,s,o){if(o.lines=d&&s<=b){let k=_.replace(e-d,s-d,o),$=this.lines-_.lines+k.lines;if(k.lines<$>>5-1&&k.lines>$>>5+1){let j=this.children.slice();return j[c]=k,new TextNode(j,this.length-(s-e)+o.length)}return super.replace(d,b,k)}d=b+1}return super.replace(e,s,o)}sliceString(e,s=this.length,o=` `){let c="";for(let d=0,_=0;de&&d&&(c+=o),e_&&(c+=b.sliceString(e-_,s-_,o)),_=k+1}return c}flatten(e){for(let s of this.children)s.flatten(e)}scanIdentical(e,s){if(!(e instanceof TextNode))return 0;let o=0,[c,d,_,b]=s>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;c+=s,d+=s){if(c==_||d==b)return o;let k=this.children[c],$=e.children[d];if(k!=$)return o+k.scanIdentical($,s);o+=k.length+1}}static from(e,s=e.reduce((o,c)=>o+c.length+1,-1)){let o=0;for(let tt of e)o+=tt.lines;if(o<32){let tt=[];for(let nt of e)nt.flatten(tt);return new TextLeaf(tt,s)}let c=Math.max(32,o>>5),d=c<<1,_=c>>1,b=[],k=0,$=-1,j=[];function _e(tt){let nt;if(tt.lines>d&&tt instanceof TextNode)for(let it of tt.children)_e(it);else tt.lines>_&&(k>_||!k)?(et(),b.push(tt)):tt instanceof TextLeaf&&k&&(nt=j[j.length-1])instanceof TextLeaf&&tt.lines+nt.lines<=32?(k+=tt.lines,$+=tt.length+1,j[j.length-1]=new TextLeaf(nt.text.concat(tt.text),nt.length+1+tt.length)):(k+tt.lines>c&&et(),k+=tt.lines,$+=tt.length+1,j.push(tt))}function et(){k!=0&&(b.push(j.length==1?j[0]:TextNode.from(j,$)),$=-1,k=j.length=0)}for(let tt of e)_e(tt);return et(),b.length==1?b[0]:new TextNode(b,s)}}Text.empty=new TextLeaf([""],0);function textLength(a){let e=-1;for(let s of a)e+=s.length+1;return e}function appendText(a,e,s=0,o=1e9){for(let c=0,d=0,_=!0;d=s&&(k>o&&(b=b.slice(0,o-c)),c0?1:(e instanceof TextLeaf?e.text.length:e.children.length)<<1]}nextInner(e,s){for(this.done=this.lineBreak=!1;;){let o=this.nodes.length-1,c=this.nodes[o],d=this.offsets[o],_=d>>1,b=c instanceof TextLeaf?c.text.length:c.children.length;if(_==(s>0?b:0)){if(o==0)return this.done=!0,this.value="",this;s>0&&this.offsets[o-1]++,this.nodes.pop(),this.offsets.pop()}else if((d&1)==(s>0?0:1)){if(this.offsets[o]+=s,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(c instanceof TextLeaf){let k=c.text[_+(s<0?-1:0)];if(this.offsets[o]+=s,k.length>Math.max(0,e))return this.value=e==0?k:s>0?k.slice(e):k.slice(0,k.length-e),this;e-=k.length}else{let k=c.children[_+(s<0?-1:0)];e>k.length?(e-=k.length,this.offsets[o]+=s):(s<0&&this.offsets[o]--,this.nodes.push(k),this.offsets.push(s>0?1:(k instanceof TextLeaf?k.text.length:k.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class PartialTextCursor{constructor(e,s,o){this.value="",this.done=!1,this.cursor=new RawTextCursor(e,s>o?-1:1),this.pos=s>o?e.length:0,this.from=Math.min(s,o),this.to=Math.max(s,o)}nextInner(e,s){if(s<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,s<0?this.pos-this.to:this.from-this.pos);let o=s<0?this.pos-this.from:this.to-this.pos;e>o&&(e=o),o-=e;let{value:c}=this.cursor.next(e);return this.pos+=(c.length+e)*s,this.value=c.length<=o?c:s<0?c.slice(c.length-o):c.slice(0,o),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class LineCursor{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:s,lineBreak:o,value:c}=this.inner.next(e);return s?(this.done=!0,this.value=""):o?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=c,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol!="undefined"&&(Text.prototype[Symbol.iterator]=function(){return this.iter()},RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this});class Line{constructor(e,s,o,c){this.from=e,this.to=s,this.number=o,this.text=c}get length(){return this.to-this.from}}const DefaultSplit=/\r\n?|\n/;var MapMode=function(a){return a[a.Simple=0]="Simple",a[a.TrackDel=1]="TrackDel",a[a.TrackBefore=2]="TrackBefore",a[a.TrackAfter=3]="TrackAfter",a}(MapMode||(MapMode={}));class ChangeDesc{constructor(e){this.sections=e}get length(){let e=0;for(let s=0;se)return d+(e-c);d+=b}else{if(o!=MapMode.Simple&&$>=e&&(o==MapMode.TrackDel&&ce||o==MapMode.TrackBefore&&ce))return null;if($>e||$==e&&s<0&&!b)return e==c||s<0?d:d+k;d+=k}c=$}if(e>c)throw new RangeError(`Position ${e} is out of range for changeset of length ${c}`);return d}touchesRange(e,s=e){for(let o=0,c=0;o=0&&c<=s&&b>=e)return cs?"cover":!0;c=b}return!1}toString(){let e="";for(let s=0;s=0?":"+c:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(s=>typeof s!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(e)}}class ChangeSet extends ChangeDesc{constructor(e,s){super(e),this.inserted=s}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return iterChanges(this,(s,o,c,d,_)=>e=e.replace(c,c+(o-s),_),!1),e}mapDesc(e,s=!1){return mapSet(this,e,s,!0)}invert(e){let s=this.sections.slice(),o=[];for(let c=0,d=0;c=0){s[c]=b,s[c+1]=_;let k=c>>1;for(;o.length0&&addInsert(o,s,d.text),d.forward(j),b+=j}let $=e[_++];for(;b<$;){if(d.done)break e;let j=Math.min(d.len,$-b);addSection(s,j,-1),addSection(c,j,d.ins==-1?-1:d.off==0?d.ins:0),d.forward(j),b+=j}}return{changes:new ChangeSet(s,o),filtered:new ChangeDesc(c)}}toJSON(){let e=[];for(let s=0;s>1].toJSON()))}return e}static of(e,s,o){let c=[],d=[],_=0,b=null;function k(j=!1){if(!j&&!c.length)return;_et||_e<0||et>s)throw new RangeError(`Invalid change range ${_e} to ${et} (in doc of length ${s})`);let nt=tt?typeof tt=="string"?Text.of(tt.split(o||DefaultSplit)):tt:Text.empty,it=nt.length;if(_e==et&&it==0)return;_e<_&&k(),_e>_&&addSection(c,_e-_,-1),addSection(c,et-_e,it),addInsert(d,c,nt),_=et}}return $(e),k(!b),b}static empty(e){return new ChangeSet(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let s=[],o=[];for(let c=0;cb&&typeof _!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(d.length==1)s.push(d[0],0);else{for(;o.length=0&&s<=0&&s==a[c+1]?a[c]+=e:e==0&&a[c]==0?a[c+1]+=s:o?(a[c]+=e,a[c+1]+=s):a.push(e,s)}function addInsert(a,e,s){if(s.length==0)return;let o=e.length-2>>1;if(o>1])),!(s||_==a.sections.length||a.sections[_+1]<0);)b=a.sections[_++],k=a.sections[_++];e(c,$,d,j,_e),c=$,d=j}}}function mapSet(a,e,s,o=!1){let c=[],d=o?[]:null,_=new SectionIter(a),b=new SectionIter(e);for(let k=0,$=0;;)if(_.ins==-1)k+=_.len,_.next();else if(b.ins==-1&&$=0&&(_.done||$$&&!_.done&&k+_.len<$+b.len;)k+=_.len,_.next();$+=b.len,b.next()}else if(_.ins>=0){let j=0,_e=k+_.len;for(;;)if(b.ins>=0&&$>k&&$+b.len<_e)j+=b.ins,$+=b.len,b.next();else if(b.ins==-1&&$<_e){let et=Math.min(b.len,_e-$);j+=et,b.forward(et),$+=et}else break;addSection(c,j,_.ins),d&&addInsert(d,c,_.text),k=_e,_.next()}else{if(_.done&&b.done)return d?new ChangeSet(c,d):new ChangeDesc(c);throw new Error("Mismatched change set lengths")}}function composeSets(a,e,s=!1){let o=[],c=s?[]:null,d=new SectionIter(a),_=new SectionIter(e);for(let b=!1;;){if(d.done&&_.done)return c?new ChangeSet(o,c):new ChangeDesc(o);if(d.ins==0)addSection(o,d.len,0,b),d.next();else if(_.len==0&&!_.done)addSection(o,0,_.ins,b),c&&addInsert(c,o,_.text),_.next();else{if(d.done||_.done)throw new Error("Mismatched change set lengths");{let k=Math.min(d.len2,_.len),$=o.length;if(d.ins==-1){let j=_.ins==-1?-1:_.off?0:_.ins;addSection(o,k,j,b),c&&j&&addInsert(c,o,_.text)}else _.ins==-1?(addSection(o,d.off?0:d.len,k,b),c&&addInsert(c,o,d.textBit(k))):(addSection(o,d.off?0:d.len,_.off?0:_.ins,b),c&&!_.off&&addInsert(c,o,_.text));b=(d.ins>k||_.ins>=0&&_.len>k)&&(b||o.length>$),d.forward2(k),_.forward(k)}}}}class SectionIter{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return s>=e.length?Text.empty:e[s]}textBit(e){let{inserted:s}=this.set,o=this.i-2>>1;return o>=s.length&&!e?Text.empty:s[o].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class SelectionRange{constructor(e,s,o){this.from=e,this.to=s,this.flags=o}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let e=this.flags&3;return e==3?null:e}get goalColumn(){let e=this.flags>>5;return e==33554431?void 0:e}map(e,s=-1){let o,c;return this.empty?o=c=e.mapPos(this.from,s):(o=e.mapPos(this.from,1),c=e.mapPos(this.to,-1)),o==this.from&&c==this.to?this:new SelectionRange(o,c,this.flags)}extend(e,s=e){if(e<=this.anchor&&s>=this.anchor)return EditorSelection.range(e,s);let o=Math.abs(e-this.anchor)>Math.abs(s-this.anchor)?e:s;return EditorSelection.range(this.anchor,o)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return EditorSelection.range(e.anchor,e.head)}}class EditorSelection{constructor(e,s=0){this.ranges=e,this.mainIndex=s}map(e,s=-1){return e.empty?this:EditorSelection.create(this.ranges.map(o=>o.map(e,s)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let s=0;se.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new EditorSelection(e.ranges.map(s=>SelectionRange.fromJSON(s)),e.main)}static single(e,s=e){return new EditorSelection([EditorSelection.range(e,s)],0)}static create(e,s=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let o=0,c=0;ce?4:0))}}function normalized(a,e=0){let s=a[e];a.sort((o,c)=>o.from-c.from),e=a.indexOf(s);for(let o=1;oc.head?EditorSelection.range(b,_):EditorSelection.range(_,b))}}return new EditorSelection(a,e)}function checkSelection(a,e){for(let s of a.ranges)if(s.to>e)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(e,s,o,c,d){this.combine=e,this.compareInput=s,this.compare=o,this.isStatic=c,this.extensions=d,this.id=nextID++,this.default=e([])}static define(e={}){return new Facet(e.combine||(s=>s),e.compareInput||((s,o)=>s===o),e.compare||(e.combine?(s,o)=>s===o:sameArray$1),!!e.static,e.enables)}of(e){return new FacetProvider([],this,0,e)}compute(e,s){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,1,s)}computeN(e,s){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,2,s)}from(e,s){return s||(s=o=>o),this.compute([e],o=>s(o.field(e)))}}function sameArray$1(a,e){return a==e||a.length==e.length&&a.every((s,o)=>s===e[o])}class FacetProvider{constructor(e,s,o,c){this.dependencies=e,this.facet=s,this.type=o,this.value=c,this.id=nextID++}dynamicSlot(e){var s;let o=this.value,c=this.facet.compareInput,d=this.id,_=e[d]>>1,b=this.type==2,k=!1,$=!1,j=[];for(let _e of this.dependencies)_e=="doc"?k=!0:_e=="selection"?$=!0:(((s=e[_e.id])!==null&&s!==void 0?s:1)&1)==0&&j.push(e[_e.id]);return{create(_e){return _e.values[_]=o(_e),1},update(_e,et){if(k&&et.docChanged||$&&(et.docChanged||et.selection)||j.some(tt=>(ensureAddr(_e,tt)&1)>0)){let tt=o(_e);if(b?!compareArray(tt,_e.values[_],c):!c(tt,_e.values[_]))return _e.values[_]=tt,1}return 0},reconfigure(_e,et){let tt=o(_e),nt=et.config.address[d];if(nt!=null){let it=getAddr(et,nt);if(b?compareArray(tt,it,c):c(tt,it))return _e.values[_]=it,0}return _e.values[_]=tt,1}}}}function compareArray(a,e,s){if(a.length!=e.length)return!1;for(let o=0;oa[k.id]),c=s.map(k=>k.type),d=o.filter(k=>!(k&1)),_=a[e.id]>>1;function b(k){let $=[];for(let j=0;jensureAddr(k,_e)&1))return 0;let j=b(k);return e.compare(j,k.values[_])?0:(k.values[_]=j,1)},reconfigure(k,$){let j=o.some(nt=>ensureAddr(k,nt)&1),_e=$.config.facets[e.id],et=$.facet(e);if(_e&&!j&&sameArray$1(s,_e))return k.values[_]=et,0;let tt=b(k);return e.compare(tt,et)?(k.values[_]=et,0):(k.values[_]=tt,1)}}}const initField=Facet.define({static:!0});class StateField{constructor(e,s,o,c,d){this.id=e,this.createF=s,this.updateF=o,this.compareF=c,this.spec=d,this.provides=void 0}static define(e){let s=new StateField(nextID++,e.create,e.update,e.compare||((o,c)=>o===c),e);return e.provide&&(s.provides=e.provide(s)),s}create(e){let s=e.facet(initField).find(o=>o.field==this);return((s==null?void 0:s.create)||this.createF)(e)}slot(e){let s=e[this.id]>>1;return{create:o=>(o.values[s]=this.create(o),1),update:(o,c)=>{let d=o.values[s],_=this.updateF(d,c);return this.compareF(d,_)?0:(o.values[s]=_,1)},reconfigure:(o,c)=>c.config.address[this.id]!=null?(o.values[s]=c.field(this),0):(o.values[s]=this.create(o),1)}}init(e){return[this,initField.of({field:this,create:e})]}get extension(){return this}}const Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(a){return e=>new PrecExtension(e,a)}const Prec={lowest:prec(Prec_.lowest),low:prec(Prec_.low),default:prec(Prec_.default),high:prec(Prec_.high),highest:prec(Prec_.highest),fallback:prec(Prec_.lowest),extend:prec(Prec_.high),override:prec(Prec_.highest)};class PrecExtension{constructor(e,s){this.inner=e,this.prec=s}}class Compartment{of(e){return new CompartmentInstance(this,e)}reconfigure(e){return Compartment.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class CompartmentInstance{constructor(e,s){this.compartment=e,this.inner=s}}class Configuration{constructor(e,s,o,c,d,_){for(this.base=e,this.compartments=s,this.dynamicSlots=o,this.address=c,this.staticValues=d,this.facets=_,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,s,o){let c=[],d=Object.create(null),_=new Map;for(let et of flatten(e,s,_))et instanceof StateField?c.push(et):(d[et.facet.id]||(d[et.facet.id]=[])).push(et);let b=Object.create(null),k=[],$=[];for(let et of c)b[et.id]=$.length<<1,$.push(tt=>et.slot(tt));let j=o==null?void 0:o.config.facets;for(let et in d){let tt=d[et],nt=tt[0].facet,it=j&&j[et]||[];if(tt.every(rt=>rt.type==0))if(b[nt.id]=k.length<<1|1,sameArray$1(it,tt))k.push(o.facet(nt));else{let rt=nt.combine(tt.map(st=>st.value));k.push(o&&nt.compare(rt,o.facet(nt))?o.facet(nt):rt)}else{for(let rt of tt)rt.type==0?(b[rt.id]=k.length<<1|1,k.push(rt.value)):(b[rt.id]=$.length<<1,$.push(st=>rt.dynamicSlot(st)));b[nt.id]=$.length<<1,$.push(rt=>dynamicFacetSlot(rt,nt,tt))}}let _e=$.map(et=>et(b));return new Configuration(e,_,_e,b,k,d)}}function flatten(a,e,s){let o=[[],[],[],[],[]],c=new Map;function d(_,b){let k=c.get(_);if(k!=null){if(k>=b)return;let $=o[k].indexOf(_);$>-1&&o[k].splice($,1),_ instanceof CompartmentInstance&&s.delete(_.compartment)}if(c.set(_,b),Array.isArray(_))for(let $ of _)d($,b);else if(_ instanceof CompartmentInstance){if(s.has(_.compartment))throw new RangeError("Duplicate use of compartment in extensions");let $=e.get(_.compartment)||_.inner;s.set(_.compartment,$),d($,b)}else if(_ instanceof PrecExtension)d(_.inner,_.prec);else if(_ instanceof StateField)o[b].push(_),_.provides&&d(_.provides,b);else if(_ instanceof FacetProvider)o[b].push(_),_.facet.extensions&&d(_.facet.extensions,b);else{let $=_.extension;if(!$)throw new Error(`Unrecognized extension value in extension set (${_}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);d($,b)}}return d(a,Prec_.default),o.reduce((_,b)=>_.concat(b))}function ensureAddr(a,e){if(e&1)return 2;let s=e>>1,o=a.status[s];if(o==4)throw new Error("Cyclic dependency between fields and/or facets");if(o&2)return o;a.status[s]=4;let c=a.computeSlot(a,a.config.dynamicSlots[s]);return a.status[s]=2|c}function getAddr(a,e){return e&1?a.config.staticValues[e>>1]:a.values[e>>1]}const languageData=Facet.define(),allowMultipleSelections=Facet.define({combine:a=>a.some(e=>e),static:!0}),lineSeparator=Facet.define({combine:a=>a.length?a[0]:void 0,static:!0}),changeFilter=Facet.define(),transactionFilter=Facet.define(),transactionExtender=Facet.define(),readOnly$1=Facet.define({combine:a=>a.length?a[0]:!1});class Annotation{constructor(e,s){this.type=e,this.value=s}static define(){return new AnnotationType}}class AnnotationType{of(e){return new Annotation(this,e)}}class StateEffectType{constructor(e){this.map=e}of(e){return new StateEffect(this,e)}}class StateEffect{constructor(e,s){this.type=e,this.value=s}map(e){let s=this.type.map(this.value,e);return s===void 0?void 0:s==this.value?this:new StateEffect(this.type,s)}is(e){return this.type==e}static define(e={}){return new StateEffectType(e.map||(s=>s))}static mapEffects(e,s){if(!e.length)return e;let o=[];for(let c of e){let d=c.map(s);d&&o.push(d)}return o}}StateEffect.reconfigure=StateEffect.define();StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(e,s,o,c,d,_){this.startState=e,this.changes=s,this.selection=o,this.effects=c,this.annotations=d,this.scrollIntoView=_,this._doc=null,this._state=null,o&&checkSelection(o,s.newLength),d.some(b=>b.type==Transaction.time)||(this.annotations=d.concat(Transaction.time.of(Date.now())))}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let s of this.annotations)if(s.type==e)return s.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let s=this.annotation(Transaction.userEvent);return!!(s&&(s==e||s.length>e.length&&s.slice(0,e.length)==e&&s[e.length]=="."))}}Transaction.time=Annotation.define();Transaction.userEvent=Annotation.define();Transaction.addToHistory=Annotation.define();Transaction.remote=Annotation.define();function joinRanges(a,e){let s=[];for(let o=0,c=0;;){let d,_;if(o=a[o]))d=a[o++],_=a[o++];else if(c=0;c--){let d=o[c](a);d instanceof Transaction?a=d:Array.isArray(d)&&d.length==1&&d[0]instanceof Transaction?a=d[0]:a=resolveTransaction(e,asArray$1(d),!1)}return a}function extendTransaction(a){let e=a.startState,s=e.facet(transactionExtender),o=a;for(let c=s.length-1;c>=0;c--){let d=s[c](a);d&&Object.keys(d).length&&(o=mergeTransaction(a,resolveTransactionInner(e,d,a.changes.newLength),!0))}return o==a?a:new Transaction(e,a.changes,a.selection,o.effects,o.annotations,o.scrollIntoView)}const none$3=[];function asArray$1(a){return a==null?none$3:Array.isArray(a)?a:[a]}var CharCategory=function(a){return a[a.Word=0]="Word",a[a.Space=1]="Space",a[a.Other=2]="Other",a}(CharCategory||(CharCategory={}));const nonASCIISingleCaseWordChar=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let wordChar;try{wordChar=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(a){}function hasWordChar(a){if(wordChar)return wordChar.test(a);for(let e=0;e"\x80"&&(s.toUpperCase()!=s.toLowerCase()||nonASCIISingleCaseWordChar.test(s)))return!0}return!1}function makeCategorizer(a){return e=>{if(!/\S/.test(e))return CharCategory.Space;if(hasWordChar(e))return CharCategory.Word;for(let s=0;s-1)return CharCategory.Word;return CharCategory.Other}}class EditorState{constructor(e,s,o,c,d,_){this.config=e,this.doc=s,this.selection=o,this.values=c,this.status=e.statusTemplate.slice(),this.computeSlot=d,_&&(_._state=this);for(let b=0;bc.set(k,b)),s=null),c.set(_.value.compartment,_.value.extension)):_.is(StateEffect.reconfigure)?(s=null,o=_.value):_.is(StateEffect.appendConfig)&&(s=null,o=asArray$1(o).concat(_.value));let d;s?d=e.startState.values.slice():(s=Configuration.resolve(o,c,this),d=new EditorState(s,this.doc,this.selection,s.dynamicSlots.map(()=>null),(b,k)=>k.reconfigure(b,this),null).values),new EditorState(s,e.newDoc,e.newSelection,d,(_,b)=>b.update(_,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(s=>({changes:{from:s.from,to:s.to,insert:e},range:EditorSelection.cursor(s.from+e.length)}))}changeByRange(e){let s=this.selection,o=e(s.ranges[0]),c=this.changes(o.changes),d=[o.range],_=asArray$1(o.effects);for(let b=1;b_.spec.fromJSON(b,k)))}return EditorState.create({doc:e.doc,selection:EditorSelection.fromJSON(e.selection),extensions:s.extensions?c.concat([s.extensions]):c})}static create(e={}){let s=Configuration.resolve(e.extensions||[],new Map),o=e.doc instanceof Text?e.doc:Text.of((e.doc||"").split(s.staticFacet(EditorState.lineSeparator)||DefaultSplit)),c=e.selection?e.selection instanceof EditorSelection?e.selection:EditorSelection.single(e.selection.anchor,e.selection.head):EditorSelection.single(0);return checkSelection(c,o.length),s.staticFacet(allowMultipleSelections)||(c=c.asSingle()),new EditorState(s,o,c,s.dynamicSlots.map(()=>null),(d,_)=>_.create(d),null)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||` -`}get readOnly(){return this.facet(readOnly$1)}phrase(e){for(let s of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(s,e))return s[e];return e}languageDataAt(e,s,o=-1){let c=[];for(let d of this.facet(languageData))for(let _ of d(this,s,o))Object.prototype.hasOwnProperty.call(_,e)&&c.push(_[e]);return c}charCategorizer(e){return makeCategorizer(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:s,from:o,length:c}=this.doc.lineAt(e),d=this.charCategorizer(e),_=e-o,b=e-o;for(;_>0;){let k=findClusterBreak(s,_,!1);if(d(s.slice(k,_))!=CharCategory.Word)break;_=k}for(;ba.length?a[0]:4});EditorState.lineSeparator=lineSeparator;EditorState.readOnly=readOnly$1;EditorState.phrases=Facet.define();EditorState.languageData=languageData;EditorState.changeFilter=changeFilter;EditorState.transactionFilter=transactionFilter;EditorState.transactionExtender=transactionExtender;Compartment.reconfigure=StateEffect.define();function combineConfig(a,e,s={}){let o={};for(let c of a)for(let d of Object.keys(c)){let _=c[d],b=o[d];if(b===void 0)o[d]=_;else if(!(b===_||_===void 0))if(Object.hasOwnProperty.call(s,d))o[d]=s[d](b,_);else throw new Error("Config merge conflict for field "+d)}for(let c in e)o[c]===void 0&&(o[c]=e[c]);return o}const C="\u037C",COUNT=typeof Symbol=="undefined"?"__"+C:Symbol.for(C),SET=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),top=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{};class StyleModule{constructor(e,s){this.rules=[];let{finish:o}=s||{};function c(_){return/^@/.test(_)?[_]:_.split(/,\s*/)}function d(_,b,k,$){let j=[],_e=/^@(\w+)\b/.exec(_[0]),et=_e&&_e[1]=="keyframes";if(_e&&b==null)return k.push(_[0]+";");for(let tt in b){let nt=b[tt];if(/&/.test(tt))d(tt.split(/,\s*/).map(it=>_.map(rt=>it.replace(/&/,rt))).reduce((it,rt)=>it.concat(rt)),nt,k);else if(nt&&typeof nt=="object"){if(!_e)throw new RangeError("The value of a property ("+tt+") should be a primitive value.");d(c(tt),nt,j,et)}else nt!=null&&j.push(tt.replace(/_.*/,"").replace(/[A-Z]/g,it=>"-"+it.toLowerCase())+": "+nt+";")}(j.length||et)&&k.push((o&&!_e&&!$?_.map(o):_).join(", ")+" {"+j.join(" ")+"}")}for(let _ in e)d(c(_),e[_],this.rules)}getRules(){return this.rules.join(` +`,this;e--}else if(c instanceof TextLeaf){let k=c.text[_+(s<0?-1:0)];if(this.offsets[o]+=s,k.length>Math.max(0,e))return this.value=e==0?k:s>0?k.slice(e):k.slice(0,k.length-e),this;e-=k.length}else{let k=c.children[_+(s<0?-1:0)];e>k.length?(e-=k.length,this.offsets[o]+=s):(s<0&&this.offsets[o]--,this.nodes.push(k),this.offsets.push(s>0?1:(k instanceof TextLeaf?k.text.length:k.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class PartialTextCursor{constructor(e,s,o){this.value="",this.done=!1,this.cursor=new RawTextCursor(e,s>o?-1:1),this.pos=s>o?e.length:0,this.from=Math.min(s,o),this.to=Math.max(s,o)}nextInner(e,s){if(s<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,s<0?this.pos-this.to:this.from-this.pos);let o=s<0?this.pos-this.from:this.to-this.pos;e>o&&(e=o),o-=e;let{value:c}=this.cursor.next(e);return this.pos+=(c.length+e)*s,this.value=c.length<=o?c:s<0?c.slice(c.length-o):c.slice(0,o),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class LineCursor{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:s,lineBreak:o,value:c}=this.inner.next(e);return s?(this.done=!0,this.value=""):o?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=c,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol!="undefined"&&(Text.prototype[Symbol.iterator]=function(){return this.iter()},RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this});class Line{constructor(e,s,o,c){this.from=e,this.to=s,this.number=o,this.text=c}get length(){return this.to-this.from}}let extend="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(a=>a?parseInt(a,36):1);for(let a=1;aa)return extend[e-1]<=a;return!1}function isRegionalIndicator(a){return a>=127462&&a<=127487}const ZWJ=8205;function findClusterBreak(a,e,s=!0,o=!0){return(s?nextClusterBreak:prevClusterBreak)(a,e,o)}function nextClusterBreak(a,e,s){if(e==a.length)return e;e&&surrogateLow(a.charCodeAt(e))&&surrogateHigh(a.charCodeAt(e-1))&&e--;let o=codePointAt(a,e);for(e+=codePointSize(o);e=0&&isRegionalIndicator(codePointAt(a,_));)d++,_-=2;if(d%2==0)break;e+=2}else break}return e}function prevClusterBreak(a,e,s){for(;e>0;){let o=nextClusterBreak(a,e-2,s);if(o=56320&&a<57344}function surrogateHigh(a){return a>=55296&&a<56320}function codePointAt(a,e){let s=a.charCodeAt(e);if(!surrogateHigh(s)||e+1==a.length)return s;let o=a.charCodeAt(e+1);return surrogateLow(o)?(s-55296<<10)+(o-56320)+65536:s}function fromCodePoint(a){return a<=65535?String.fromCharCode(a):(a-=65536,String.fromCharCode((a>>10)+55296,(a&1023)+56320))}function codePointSize(a){return a<65536?1:2}const DefaultSplit=/\r\n?|\n/;var MapMode=function(a){return a[a.Simple=0]="Simple",a[a.TrackDel=1]="TrackDel",a[a.TrackBefore=2]="TrackBefore",a[a.TrackAfter=3]="TrackAfter",a}(MapMode||(MapMode={}));class ChangeDesc{constructor(e){this.sections=e}get length(){let e=0;for(let s=0;se)return d+(e-c);d+=b}else{if(o!=MapMode.Simple&&$>=e&&(o==MapMode.TrackDel&&ce||o==MapMode.TrackBefore&&ce))return null;if($>e||$==e&&s<0&&!b)return e==c||s<0?d:d+k;d+=k}c=$}if(e>c)throw new RangeError(`Position ${e} is out of range for changeset of length ${c}`);return d}touchesRange(e,s=e){for(let o=0,c=0;o=0&&c<=s&&b>=e)return cs?"cover":!0;c=b}return!1}toString(){let e="";for(let s=0;s=0?":"+c:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(s=>typeof s!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(e)}static create(e){return new ChangeDesc(e)}}class ChangeSet extends ChangeDesc{constructor(e,s){super(e),this.inserted=s}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return iterChanges(this,(s,o,c,d,_)=>e=e.replace(c,c+(o-s),_),!1),e}mapDesc(e,s=!1){return mapSet(this,e,s,!0)}invert(e){let s=this.sections.slice(),o=[];for(let c=0,d=0;c=0){s[c]=b,s[c+1]=_;let k=c>>1;for(;o.length0&&addInsert(o,s,d.text),d.forward(j),b+=j}let $=e[_++];for(;b<$;){if(d.done)break e;let j=Math.min(d.len,$-b);addSection(s,j,-1),addSection(c,j,d.ins==-1?-1:d.off==0?d.ins:0),d.forward(j),b+=j}}return{changes:new ChangeSet(s,o),filtered:ChangeDesc.create(c)}}toJSON(){let e=[];for(let s=0;s>1].toJSON()))}return e}static of(e,s,o){let c=[],d=[],_=0,b=null;function k(j=!1){if(!j&&!c.length)return;_et||_e<0||et>s)throw new RangeError(`Invalid change range ${_e} to ${et} (in doc of length ${s})`);let nt=tt?typeof tt=="string"?Text.of(tt.split(o||DefaultSplit)):tt:Text.empty,it=nt.length;if(_e==et&&it==0)return;_e<_&&k(),_e>_&&addSection(c,_e-_,-1),addSection(c,et-_e,it),addInsert(d,c,nt),_=et}}return $(e),k(!b),b}static empty(e){return new ChangeSet(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let s=[],o=[];for(let c=0;cb&&typeof _!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(d.length==1)s.push(d[0],0);else{for(;o.length=0&&s<=0&&s==a[c+1]?a[c]+=e:e==0&&a[c]==0?a[c+1]+=s:o?(a[c]+=e,a[c+1]+=s):a.push(e,s)}function addInsert(a,e,s){if(s.length==0)return;let o=e.length-2>>1;if(o>1])),!(s||_==a.sections.length||a.sections[_+1]<0);)b=a.sections[_++],k=a.sections[_++];e(c,$,d,j,_e),c=$,d=j}}}function mapSet(a,e,s,o=!1){let c=[],d=o?[]:null,_=new SectionIter(a),b=new SectionIter(e);for(let k=-1;;)if(_.ins==-1&&b.ins==-1){let $=Math.min(_.len,b.len);addSection(c,$,-1),_.forward($),b.forward($)}else if(b.ins>=0&&(_.ins<0||k==_.i||_.off==0&&(b.len<_.len||b.len==_.len&&!s))){let $=b.len;for(addSection(c,b.ins,-1);$;){let j=Math.min(_.len,$);_.ins>=0&&k<_.i&&_.len<=j&&(addSection(c,0,_.ins),d&&addInsert(d,c,_.text),k=_.i),_.forward(j),$-=j}b.next()}else if(_.ins>=0){let $=0,j=_.len;for(;j;)if(b.ins==-1){let _e=Math.min(j,b.len);$+=_e,j-=_e,b.forward(_e)}else if(b.ins==0&&b.lenk||_.ins>=0&&_.len>k)&&(b||o.length>$),d.forward2(k),_.forward(k)}}}}class SectionIter{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return s>=e.length?Text.empty:e[s]}textBit(e){let{inserted:s}=this.set,o=this.i-2>>1;return o>=s.length&&!e?Text.empty:s[o].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class SelectionRange{constructor(e,s,o){this.from=e,this.to=s,this.flags=o}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let e=this.flags&3;return e==3?null:e}get goalColumn(){let e=this.flags>>5;return e==33554431?void 0:e}map(e,s=-1){let o,c;return this.empty?o=c=e.mapPos(this.from,s):(o=e.mapPos(this.from,1),c=e.mapPos(this.to,-1)),o==this.from&&c==this.to?this:new SelectionRange(o,c,this.flags)}extend(e,s=e){if(e<=this.anchor&&s>=this.anchor)return EditorSelection.range(e,s);let o=Math.abs(e-this.anchor)>Math.abs(s-this.anchor)?e:s;return EditorSelection.range(this.anchor,o)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return EditorSelection.range(e.anchor,e.head)}static create(e,s,o){return new SelectionRange(e,s,o)}}class EditorSelection{constructor(e,s){this.ranges=e,this.mainIndex=s}map(e,s=-1){return e.empty?this:EditorSelection.create(this.ranges.map(o=>o.map(e,s)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let s=0;se.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new EditorSelection(e.ranges.map(s=>SelectionRange.fromJSON(s)),e.main)}static single(e,s=e){return new EditorSelection([EditorSelection.range(e,s)],0)}static create(e,s=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let o=0,c=0;ce?4:0))}static normalized(e,s=0){let o=e[s];e.sort((c,d)=>c.from-d.from),s=e.indexOf(o);for(let c=1;cd.head?EditorSelection.range(k,b):EditorSelection.range(b,k))}}return new EditorSelection(e,s)}}function checkSelection(a,e){for(let s of a.ranges)if(s.to>e)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(e,s,o,c,d){this.combine=e,this.compareInput=s,this.compare=o,this.isStatic=c,this.id=nextID++,this.default=e([]),this.extensions=typeof d=="function"?d(this):d}static define(e={}){return new Facet(e.combine||(s=>s),e.compareInput||((s,o)=>s===o),e.compare||(e.combine?(s,o)=>s===o:sameArray$1),!!e.static,e.enables)}of(e){return new FacetProvider([],this,0,e)}compute(e,s){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,1,s)}computeN(e,s){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,2,s)}from(e,s){return s||(s=o=>o),this.compute([e],o=>s(o.field(e)))}}function sameArray$1(a,e){return a==e||a.length==e.length&&a.every((s,o)=>s===e[o])}class FacetProvider{constructor(e,s,o,c){this.dependencies=e,this.facet=s,this.type=o,this.value=c,this.id=nextID++}dynamicSlot(e){var s;let o=this.value,c=this.facet.compareInput,d=this.id,_=e[d]>>1,b=this.type==2,k=!1,$=!1,j=[];for(let _e of this.dependencies)_e=="doc"?k=!0:_e=="selection"?$=!0:(((s=e[_e.id])!==null&&s!==void 0?s:1)&1)==0&&j.push(e[_e.id]);return{create(_e){return _e.values[_]=o(_e),1},update(_e,et){if(k&&et.docChanged||$&&(et.docChanged||et.selection)||ensureAll(_e,j)){let tt=o(_e);if(b?!compareArray(tt,_e.values[_],c):!c(tt,_e.values[_]))return _e.values[_]=tt,1}return 0},reconfigure:(_e,et)=>{let tt=o(_e),nt=et.config.address[d];if(nt!=null){let it=getAddr(et,nt);if(this.dependencies.every(rt=>rt instanceof Facet?et.facet(rt)===_e.facet(rt):rt instanceof StateField?et.field(rt,!1)==_e.field(rt,!1):!0)||(b?compareArray(tt,it,c):c(tt,it)))return _e.values[_]=it,0}return _e.values[_]=tt,1}}}}function compareArray(a,e,s){if(a.length!=e.length)return!1;for(let o=0;oa[k.id]),c=s.map(k=>k.type),d=o.filter(k=>!(k&1)),_=a[e.id]>>1;function b(k){let $=[];for(let j=0;jo===c),e);return e.provide&&(s.provides=e.provide(s)),s}create(e){let s=e.facet(initField).find(o=>o.field==this);return((s==null?void 0:s.create)||this.createF)(e)}slot(e){let s=e[this.id]>>1;return{create:o=>(o.values[s]=this.create(o),1),update:(o,c)=>{let d=o.values[s],_=this.updateF(d,c);return this.compareF(d,_)?0:(o.values[s]=_,1)},reconfigure:(o,c)=>c.config.address[this.id]!=null?(o.values[s]=c.field(this),0):(o.values[s]=this.create(o),1)}}init(e){return[this,initField.of({field:this,create:e})]}get extension(){return this}}const Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(a){return e=>new PrecExtension(e,a)}const Prec={highest:prec(Prec_.highest),high:prec(Prec_.high),default:prec(Prec_.default),low:prec(Prec_.low),lowest:prec(Prec_.lowest)};class PrecExtension{constructor(e,s){this.inner=e,this.prec=s}}class Compartment{of(e){return new CompartmentInstance(this,e)}reconfigure(e){return Compartment.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class CompartmentInstance{constructor(e,s){this.compartment=e,this.inner=s}}class Configuration{constructor(e,s,o,c,d,_){for(this.base=e,this.compartments=s,this.dynamicSlots=o,this.address=c,this.staticValues=d,this.facets=_,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,s,o){let c=[],d=Object.create(null),_=new Map;for(let et of flatten(e,s,_))et instanceof StateField?c.push(et):(d[et.facet.id]||(d[et.facet.id]=[])).push(et);let b=Object.create(null),k=[],$=[];for(let et of c)b[et.id]=$.length<<1,$.push(tt=>et.slot(tt));let j=o==null?void 0:o.config.facets;for(let et in d){let tt=d[et],nt=tt[0].facet,it=j&&j[et]||[];if(tt.every(rt=>rt.type==0))if(b[nt.id]=k.length<<1|1,sameArray$1(it,tt))k.push(o.facet(nt));else{let rt=nt.combine(tt.map(st=>st.value));k.push(o&&nt.compare(rt,o.facet(nt))?o.facet(nt):rt)}else{for(let rt of tt)rt.type==0?(b[rt.id]=k.length<<1|1,k.push(rt.value)):(b[rt.id]=$.length<<1,$.push(st=>rt.dynamicSlot(st)));b[nt.id]=$.length<<1,$.push(rt=>dynamicFacetSlot(rt,nt,tt))}}let _e=$.map(et=>et(b));return new Configuration(e,_,_e,b,k,d)}}function flatten(a,e,s){let o=[[],[],[],[],[]],c=new Map;function d(_,b){let k=c.get(_);if(k!=null){if(k<=b)return;let $=o[k].indexOf(_);$>-1&&o[k].splice($,1),_ instanceof CompartmentInstance&&s.delete(_.compartment)}if(c.set(_,b),Array.isArray(_))for(let $ of _)d($,b);else if(_ instanceof CompartmentInstance){if(s.has(_.compartment))throw new RangeError("Duplicate use of compartment in extensions");let $=e.get(_.compartment)||_.inner;s.set(_.compartment,$),d($,b)}else if(_ instanceof PrecExtension)d(_.inner,_.prec);else if(_ instanceof StateField)o[b].push(_),_.provides&&d(_.provides,b);else if(_ instanceof FacetProvider)o[b].push(_),_.facet.extensions&&d(_.facet.extensions,Prec_.default);else{let $=_.extension;if(!$)throw new Error(`Unrecognized extension value in extension set (${_}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);d($,b)}}return d(a,Prec_.default),o.reduce((_,b)=>_.concat(b))}function ensureAddr(a,e){if(e&1)return 2;let s=e>>1,o=a.status[s];if(o==4)throw new Error("Cyclic dependency between fields and/or facets");if(o&2)return o;a.status[s]=4;let c=a.computeSlot(a,a.config.dynamicSlots[s]);return a.status[s]=2|c}function getAddr(a,e){return e&1?a.config.staticValues[e>>1]:a.values[e>>1]}const languageData=Facet.define(),allowMultipleSelections=Facet.define({combine:a=>a.some(e=>e),static:!0}),lineSeparator=Facet.define({combine:a=>a.length?a[0]:void 0,static:!0}),changeFilter=Facet.define(),transactionFilter=Facet.define(),transactionExtender=Facet.define(),readOnly$1=Facet.define({combine:a=>a.length?a[0]:!1});class Annotation{constructor(e,s){this.type=e,this.value=s}static define(){return new AnnotationType}}class AnnotationType{of(e){return new Annotation(this,e)}}class StateEffectType{constructor(e){this.map=e}of(e){return new StateEffect(this,e)}}class StateEffect{constructor(e,s){this.type=e,this.value=s}map(e){let s=this.type.map(this.value,e);return s===void 0?void 0:s==this.value?this:new StateEffect(this.type,s)}is(e){return this.type==e}static define(e={}){return new StateEffectType(e.map||(s=>s))}static mapEffects(e,s){if(!e.length)return e;let o=[];for(let c of e){let d=c.map(s);d&&o.push(d)}return o}}StateEffect.reconfigure=StateEffect.define();StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(e,s,o,c,d,_){this.startState=e,this.changes=s,this.selection=o,this.effects=c,this.annotations=d,this.scrollIntoView=_,this._doc=null,this._state=null,o&&checkSelection(o,s.newLength),d.some(b=>b.type==Transaction.time)||(this.annotations=d.concat(Transaction.time.of(Date.now())))}static create(e,s,o,c,d,_){return new Transaction(e,s,o,c,d,_)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let s of this.annotations)if(s.type==e)return s.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let s=this.annotation(Transaction.userEvent);return!!(s&&(s==e||s.length>e.length&&s.slice(0,e.length)==e&&s[e.length]=="."))}}Transaction.time=Annotation.define();Transaction.userEvent=Annotation.define();Transaction.addToHistory=Annotation.define();Transaction.remote=Annotation.define();function joinRanges(a,e){let s=[];for(let o=0,c=0;;){let d,_;if(o=a[o]))d=a[o++],_=a[o++];else if(c=0;c--){let d=o[c](a);d instanceof Transaction?a=d:Array.isArray(d)&&d.length==1&&d[0]instanceof Transaction?a=d[0]:a=resolveTransaction(e,asArray$1(d),!1)}return a}function extendTransaction(a){let e=a.startState,s=e.facet(transactionExtender),o=a;for(let c=s.length-1;c>=0;c--){let d=s[c](a);d&&Object.keys(d).length&&(o=mergeTransaction(a,resolveTransactionInner(e,d,a.changes.newLength),!0))}return o==a?a:Transaction.create(e,a.changes,a.selection,o.effects,o.annotations,o.scrollIntoView)}const none$2=[];function asArray$1(a){return a==null?none$2:Array.isArray(a)?a:[a]}var CharCategory=function(a){return a[a.Word=0]="Word",a[a.Space=1]="Space",a[a.Other=2]="Other",a}(CharCategory||(CharCategory={}));const nonASCIISingleCaseWordChar=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let wordChar;try{wordChar=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(a){}function hasWordChar(a){if(wordChar)return wordChar.test(a);for(let e=0;e"\x80"&&(s.toUpperCase()!=s.toLowerCase()||nonASCIISingleCaseWordChar.test(s)))return!0}return!1}function makeCategorizer(a){return e=>{if(!/\S/.test(e))return CharCategory.Space;if(hasWordChar(e))return CharCategory.Word;for(let s=0;s-1)return CharCategory.Word;return CharCategory.Other}}class EditorState{constructor(e,s,o,c,d,_){this.config=e,this.doc=s,this.selection=o,this.values=c,this.status=e.statusTemplate.slice(),this.computeSlot=d,_&&(_._state=this);for(let b=0;bc.set(k,b)),s=null),c.set(_.value.compartment,_.value.extension)):_.is(StateEffect.reconfigure)?(s=null,o=_.value):_.is(StateEffect.appendConfig)&&(s=null,o=asArray$1(o).concat(_.value));let d;s?d=e.startState.values.slice():(s=Configuration.resolve(o,c,this),d=new EditorState(s,this.doc,this.selection,s.dynamicSlots.map(()=>null),(b,k)=>k.reconfigure(b,this),null).values),new EditorState(s,e.newDoc,e.newSelection,d,(_,b)=>b.update(_,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(s=>({changes:{from:s.from,to:s.to,insert:e},range:EditorSelection.cursor(s.from+e.length)}))}changeByRange(e){let s=this.selection,o=e(s.ranges[0]),c=this.changes(o.changes),d=[o.range],_=asArray$1(o.effects);for(let b=1;b_.spec.fromJSON(b,k)))}}return EditorState.create({doc:e.doc,selection:EditorSelection.fromJSON(e.selection),extensions:s.extensions?c.concat([s.extensions]):c})}static create(e={}){let s=Configuration.resolve(e.extensions||[],new Map),o=e.doc instanceof Text?e.doc:Text.of((e.doc||"").split(s.staticFacet(EditorState.lineSeparator)||DefaultSplit)),c=e.selection?e.selection instanceof EditorSelection?e.selection:EditorSelection.single(e.selection.anchor,e.selection.head):EditorSelection.single(0);return checkSelection(c,o.length),s.staticFacet(allowMultipleSelections)||(c=c.asSingle()),new EditorState(s,o,c,s.dynamicSlots.map(()=>null),(d,_)=>_.create(d),null)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||` +`}get readOnly(){return this.facet(readOnly$1)}phrase(e,...s){for(let o of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(o,e)){e=o[e];break}return s.length&&(e=e.replace(/\$(\$|\d*)/g,(o,c)=>{if(c=="$")return"$";let d=+(c||1);return!d||d>s.length?o:s[d-1]})),e}languageDataAt(e,s,o=-1){let c=[];for(let d of this.facet(languageData))for(let _ of d(this,s,o))Object.prototype.hasOwnProperty.call(_,e)&&c.push(_[e]);return c}charCategorizer(e){return makeCategorizer(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:s,from:o,length:c}=this.doc.lineAt(e),d=this.charCategorizer(e),_=e-o,b=e-o;for(;_>0;){let k=findClusterBreak(s,_,!1);if(d(s.slice(k,_))!=CharCategory.Word)break;_=k}for(;ba.length?a[0]:4});EditorState.lineSeparator=lineSeparator;EditorState.readOnly=readOnly$1;EditorState.phrases=Facet.define({compare(a,e){let s=Object.keys(a),o=Object.keys(e);return s.length==o.length&&s.every(c=>a[c]==e[c])}});EditorState.languageData=languageData;EditorState.changeFilter=changeFilter;EditorState.transactionFilter=transactionFilter;EditorState.transactionExtender=transactionExtender;Compartment.reconfigure=StateEffect.define();function combineConfig(a,e,s={}){let o={};for(let c of a)for(let d of Object.keys(c)){let _=c[d],b=o[d];if(b===void 0)o[d]=_;else if(!(b===_||_===void 0))if(Object.hasOwnProperty.call(s,d))o[d]=s[d](b,_);else throw new Error("Config merge conflict for field "+d)}for(let c in e)o[c]===void 0&&(o[c]=e[c]);return o}class RangeValue{eq(e){return this==e}range(e,s=e){return Range$1.create(e,s,this)}}RangeValue.prototype.startSide=RangeValue.prototype.endSide=0;RangeValue.prototype.point=!1;RangeValue.prototype.mapMode=MapMode.TrackDel;class Range$1{constructor(e,s,o){this.from=e,this.to=s,this.value=o}static create(e,s,o){return new Range$1(e,s,o)}}function cmpRange(a,e){return a.from-e.from||a.value.startSide-e.value.startSide}class Chunk{constructor(e,s,o,c){this.from=e,this.to=s,this.value=o,this.maxPoint=c}get length(){return this.to[this.to.length-1]}findIndex(e,s,o,c=0){let d=o?this.to:this.from;for(let _=c,b=d.length;;){if(_==b)return _;let k=_+b>>1,$=d[k]-e||(o?this.value[k].endSide:this.value[k].startSide)-s;if(k==_)return $>=0?_:b;$>=0?b=k:_=k+1}}between(e,s,o,c){for(let d=this.findIndex(s,-1e9,!0),_=this.findIndex(o,1e9,!1,d);d<_;d++)if(c(this.from[d]+e,this.to[d]+e,this.value[d])===!1)return!1}map(e,s){let o=[],c=[],d=[],_=-1,b=-1;for(let k=0;ktt||et==tt&&$.startSide>0&&$.endSide<=0)continue;(tt-et||$.endSide-$.startSide)<0||(_<0&&(_=et),$.point&&(b=Math.max(b,tt-et)),o.push($),c.push(et-_),d.push(tt-_))}return{mapped:o.length?new Chunk(c,d,o,b):null,pos:_}}}class RangeSet{constructor(e,s,o,c){this.chunkPos=e,this.chunk=s,this.nextLayer=o,this.maxPoint=c}static create(e,s,o,c){return new RangeSet(e,s,o,c)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let s of this.chunk)e+=s.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:s=[],sort:o=!1,filterFrom:c=0,filterTo:d=this.length}=e,_=e.filter;if(s.length==0&&!_)return this;if(o&&(s=s.slice().sort(cmpRange)),this.isEmpty)return s.length?RangeSet.of(s):this;let b=new LayerCursor(this,null,-1).goto(0),k=0,$=[],j=new RangeSetBuilder;for(;b.value||k=0){let _e=s[k++];j.addInner(_e.from,_e.to,_e.value)||$.push(_e)}else b.rangeIndex==1&&b.chunkIndexthis.chunkEnd(b.chunkIndex)||db.to||d=d&&e<=d+_.length&&_.between(d,e-d,s-d,o)===!1)return}this.nextLayer.between(e,s,o)}}iter(e=0){return HeapCursor.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,s=0){return HeapCursor.from(e).goto(s)}static compare(e,s,o,c,d=-1){let _=e.filter(_e=>_e.maxPoint>0||!_e.isEmpty&&_e.maxPoint>=d),b=s.filter(_e=>_e.maxPoint>0||!_e.isEmpty&&_e.maxPoint>=d),k=findSharedChunks(_,b,o),$=new SpanCursor(_,k,d),j=new SpanCursor(b,k,d);o.iterGaps((_e,et,tt)=>compare($,_e,j,et,tt,c)),o.empty&&o.length==0&&compare($,0,j,0,0,c)}static eq(e,s,o=0,c){c==null&&(c=1e9);let d=e.filter(j=>!j.isEmpty&&s.indexOf(j)<0),_=s.filter(j=>!j.isEmpty&&e.indexOf(j)<0);if(d.length!=_.length)return!1;if(!d.length)return!0;let b=findSharedChunks(d,_),k=new SpanCursor(d,b,0).goto(o),$=new SpanCursor(_,b,0).goto(o);for(;;){if(k.to!=$.to||!sameValues(k.active,$.active)||k.point&&(!$.point||!k.point.eq($.point)))return!1;if(k.to>c)return!0;k.next(),$.next()}}static spans(e,s,o,c,d=-1){let _=new SpanCursor(e,null,d).goto(s),b=s,k=_.openStart;for(;;){let $=Math.min(_.to,o);if(_.point?(c.point(b,$,_.point,_.activeForPoint(_.to),k,_.pointRank),k=_.openEnd($)+(_.to>$?1:0)):$>b&&(c.span(b,$,_.active,k),k=_.openEnd($)),_.to>o)break;b=_.to,_.next()}return k}static of(e,s=!1){let o=new RangeSetBuilder;for(let c of e instanceof Range$1?[e]:s?lazySort(e):e)o.add(c.from,c.to,c.value);return o.finish()}}RangeSet.empty=new RangeSet([],[],null,-1);function lazySort(a){if(a.length>1)for(let e=a[0],s=1;s0)return a.slice().sort(cmpRange);e=o}return a}RangeSet.empty.nextLayer=RangeSet.empty;class RangeSetBuilder{constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}finishChunk(e){this.chunks.push(new Chunk(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}add(e,s,o){this.addInner(e,s,o)||(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(e,s,o)}addInner(e,s,o){let c=e-this.lastTo||o.startSide-this.last.endSide;if(c<=0&&(e-this.lastFrom||o.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return c<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(s-this.chunkStart),this.last=o,this.lastFrom=e,this.lastTo=s,this.value.push(o),o.point&&(this.maxPoint=Math.max(this.maxPoint,s-e)),!0)}addChunk(e,s){if((e-this.lastTo||s.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,s.maxPoint),this.chunks.push(s),this.chunkPos.push(e);let o=s.value.length-1;return this.last=s.value[o],this.lastFrom=s.from[o]+e,this.lastTo=s.to[o]+e,!0}finish(){return this.finishInner(RangeSet.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let s=RangeSet.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,s}}function findSharedChunks(a,e,s){let o=new Map;for(let d of a)for(let _=0;_=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=o&&c.push(new LayerCursor(_,s,o,d));return c.length==1?c[0]:new HeapCursor(c)}get startSide(){return this.value?this.value.startSide:0}goto(e,s=-1e9){for(let o of this.heap)o.goto(e,s);for(let o=this.heap.length>>1;o>=0;o--)heapBubble(this.heap,o);return this.next(),this}forward(e,s){for(let o of this.heap)o.forward(e,s);for(let o=this.heap.length>>1;o>=0;o--)heapBubble(this.heap,o);(this.to-e||this.value.endSide-s)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),heapBubble(this.heap,0)}}}function heapBubble(a,e){for(let s=a[e];;){let o=(e<<1)+1;if(o>=a.length)break;let c=a[o];if(o+1=0&&(c=a[o+1],o++),s.compare(c)<0)break;a[o]=s,a[e]=c,e=o}}class SpanCursor{constructor(e,s,o){this.minPoint=o,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=HeapCursor.from(e,s,o)}goto(e,s=-1e9){return this.cursor.goto(e,s),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=s,this.openStart=-1,this.next(),this}forward(e,s){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-s)<0;)this.removeActive(this.minActive);this.cursor.forward(e,s)}removeActive(e){remove$2(this.active,e),remove$2(this.activeTo,e),remove$2(this.activeRank,e),this.minActive=findMinIndex(this.active,this.activeTo)}addActive(e){let s=0,{value:o,to:c,rank:d}=this.cursor;for(;s-1&&(this.activeTo[d]-this.cursor.from||this.active[d].endSide-this.cursor.startSide)<0){if(this.activeTo[d]>e){this.to=this.activeTo[d],this.endSide=this.active[d].endSide;break}this.removeActive(d),o&&remove$2(o,d)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let _=this.cursor.value;if(!_.point)this.addActive(o),this.cursor.frome&&c++,this.cursor.next();else if(s&&this.cursor.to==this.to&&this.cursor.from=0&&!(this.activeRank[o]e||this.activeTo[o]==e&&this.active[o].endSide>=this.point.endSide)&&s.push(this.active[o]);return s.reverse()}openEnd(e){let s=0;for(let o=this.activeTo.length-1;o>=0&&this.activeTo[o]>e;o--)s++;return s}}function compare(a,e,s,o,c,d){a.goto(e),s.goto(o);let _=o+c,b=o,k=o-e;for(;;){let $=a.to+k-s.to||a.endSide-s.endSide,j=$<0?a.to+k:s.to,_e=Math.min(j,_);if(a.point||s.point?a.point&&s.point&&(a.point==s.point||a.point.eq(s.point))&&sameValues(a.activeForPoint(a.to+k),s.activeForPoint(s.to))||d.comparePoint(b,_e,a.point,s.point):_e>b&&!sameValues(a.active,s.active)&&d.compareRange(b,_e,a.active,s.active),j>_)break;b=j,$<=0&&a.next(),$>=0&&s.next()}}function sameValues(a,e){if(a.length!=e.length)return!1;for(let s=0;s=e;o--)a[o+1]=a[o];a[e]=s}function findMinIndex(a,e){let s=-1,o=1e9;for(let c=0;c=e)return c;if(c==a.length)break;d+=a.charCodeAt(c)==9?s-d%s:1,c=findClusterBreak(a,c)}return o===!0?-1:a.length}const C="\u037C",COUNT=typeof Symbol=="undefined"?"__"+C:Symbol.for(C),SET=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),top=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{};class StyleModule{constructor(e,s){this.rules=[];let{finish:o}=s||{};function c(_){return/^@/.test(_)?[_]:_.split(/,\s*/)}function d(_,b,k,$){let j=[],_e=/^@(\w+)\b/.exec(_[0]),et=_e&&_e[1]=="keyframes";if(_e&&b==null)return k.push(_[0]+";");for(let tt in b){let nt=b[tt];if(/&/.test(tt))d(tt.split(/,\s*/).map(it=>_.map(rt=>it.replace(/&/,rt))).reduce((it,rt)=>it.concat(rt)),nt,k);else if(nt&&typeof nt=="object"){if(!_e)throw new RangeError("The value of a property ("+tt+") should be a primitive value.");d(c(tt),nt,j,et)}else nt!=null&&j.push(tt.replace(/_.*/,"").replace(/[A-Z]/g,it=>"-"+it.toLowerCase())+": "+nt+";")}(j.length||et)&&k.push((o&&!_e&&!$?_.map(o):_).join(", ")+" {"+j.join(" ")+"}")}for(let _ in e)d(c(_),e[_],this.rules)}getRules(){return this.rules.join(` `)}static newName(){let e=top[COUNT]||1;return top[COUNT]=e+1,C+e.toString(36)}static mount(e,s){(e[SET]||new StyleSet(e)).mount(Array.isArray(s)?s:[s])}}let adoptedSet=null;class StyleSet{constructor(e){if(!e.head&&e.adoptedStyleSheets&&typeof CSSStyleSheet!="undefined"){if(adoptedSet)return e.adoptedStyleSheets=[adoptedSet.sheet].concat(e.adoptedStyleSheets),e[SET]=adoptedSet;this.sheet=new CSSStyleSheet,e.adoptedStyleSheets=[this.sheet].concat(e.adoptedStyleSheets),adoptedSet=this}else{this.styleTag=(e.ownerDocument||e).createElement("style");let s=e.head||e;s.insertBefore(this.styleTag,s.firstChild)}this.modules=[],e[SET]=this}mount(e){let s=this.sheet,o=0,c=0;for(let d=0;d-1&&(this.modules.splice(b,1),c--,b=-1),b==-1){if(this.modules.splice(c++,0,_),s)for(let k=0;k<_.rules.length;k++)s.insertRule(_.rules[k],o++)}else{for(;c>1,$=d[k]-e||(o?this.value[k].endSide:this.value[k].startSide)-s;if(k==_)return $>=0?_:b;$>=0?b=k:_=k+1}}between(e,s,o,c){for(let d=this.findIndex(s,-1e9,!0),_=this.findIndex(o,1e9,!1,d);d<_;d++)if(c(this.from[d]+e,this.to[d]+e,this.value[d])===!1)return!1}map(e,s){let o=[],c=[],d=[],_=-1,b=-1;for(let k=0;ktt||et==tt&&$.startSide>0&&$.endSide<=0)continue;(tt-et||$.endSide-$.startSide)<0||(_<0&&(_=et),$.point&&(b=Math.max(b,tt-et)),o.push($),c.push(et-_),d.push(tt-_))}return{mapped:o.length?new Chunk(c,d,o,b):null,pos:_}}}class RangeSet{constructor(e,s,o=RangeSet.empty,c){this.chunkPos=e,this.chunk=s,this.nextLayer=o,this.maxPoint=c}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let s of this.chunk)e+=s.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:s=[],sort:o=!1,filterFrom:c=0,filterTo:d=this.length}=e,_=e.filter;if(s.length==0&&!_)return this;if(o&&(s=s.slice().sort(cmpRange)),this.isEmpty)return s.length?RangeSet.of(s):this;let b=new LayerCursor(this,null,-1).goto(0),k=0,$=[],j=new RangeSetBuilder;for(;b.value||k=0){let _e=s[k++];j.addInner(_e.from,_e.to,_e.value)||$.push(_e)}else b.rangeIndex==1&&b.chunkIndexthis.chunkEnd(b.chunkIndex)||db.to||d=d&&e<=d+_.length&&_.between(d,e-d,s-d,o)===!1)return}this.nextLayer.between(e,s,o)}}iter(e=0){return HeapCursor.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,s=0){return HeapCursor.from(e).goto(s)}static compare(e,s,o,c,d=-1){let _=e.filter(_e=>_e.maxPoint>0||!_e.isEmpty&&_e.maxPoint>=d),b=s.filter(_e=>_e.maxPoint>0||!_e.isEmpty&&_e.maxPoint>=d),k=findSharedChunks(_,b,o),$=new SpanCursor(_,k,d),j=new SpanCursor(b,k,d);o.iterGaps((_e,et,tt)=>compare($,_e,j,et,tt,c)),o.empty&&o.length==0&&compare($,0,j,0,0,c)}static eq(e,s,o=0,c){c==null&&(c=1e9);let d=e.filter(j=>!j.isEmpty&&s.indexOf(j)<0),_=s.filter(j=>!j.isEmpty&&e.indexOf(j)<0);if(d.length!=_.length)return!1;if(!d.length)return!0;let b=findSharedChunks(d,_),k=new SpanCursor(d,b,0).goto(o),$=new SpanCursor(_,b,0).goto(o);for(;;){if(k.to!=$.to||!sameValues(k.active,$.active)||k.point&&(!$.point||!k.point.eq($.point)))return!1;if(k.to>c)return!0;k.next(),$.next()}}static spans(e,s,o,c,d=-1){var _;let b=new SpanCursor(e,null,d,(_=c.filterPoint)===null||_===void 0?void 0:_.bind(c)).goto(s),k=s,$=b.openStart;for(;;){let j=Math.min(b.to,o);if(b.point?(c.point(k,j,b.point,b.activeForPoint(b.to),$),$=b.openEnd(j)+(b.to>j?1:0)):j>k&&(c.span(k,j,b.active,$),$=b.openEnd(j)),b.to>o)break;k=b.to,b.next()}return $}static of(e,s=!1){let o=new RangeSetBuilder;for(let c of e instanceof Range$1?[e]:s?lazySort(e):e)o.add(c.from,c.to,c.value);return o.finish()}}RangeSet.empty=new RangeSet([],[],null,-1);function lazySort(a){if(a.length>1)for(let e=a[0],s=1;s0)return a.slice().sort(cmpRange);e=o}return a}RangeSet.empty.nextLayer=RangeSet.empty;class RangeSetBuilder{constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}finishChunk(e){this.chunks.push(new Chunk(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}add(e,s,o){this.addInner(e,s,o)||(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(e,s,o)}addInner(e,s,o){let c=e-this.lastTo||o.startSide-this.last.endSide;if(c<=0&&(e-this.lastFrom||o.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return c<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(s-this.chunkStart),this.last=o,this.lastFrom=e,this.lastTo=s,this.value.push(o),o.point&&(this.maxPoint=Math.max(this.maxPoint,s-e)),!0)}addChunk(e,s){if((e-this.lastTo||s.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,s.maxPoint),this.chunks.push(s),this.chunkPos.push(e);let o=s.value.length-1;return this.last=s.value[o],this.lastFrom=s.from[o]+e,this.lastTo=s.to[o]+e,!0}finish(){return this.finishInner(RangeSet.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let s=new RangeSet(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,s}}function findSharedChunks(a,e,s){let o=new Map;for(let d of a)for(let _=0;_=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=o&&c.push(new LayerCursor(_,s,o,d));return c.length==1?c[0]:new HeapCursor(c)}get startSide(){return this.value?this.value.startSide:0}goto(e,s=-1e9){for(let o of this.heap)o.goto(e,s);for(let o=this.heap.length>>1;o>=0;o--)heapBubble(this.heap,o);return this.next(),this}forward(e,s){for(let o of this.heap)o.forward(e,s);for(let o=this.heap.length>>1;o>=0;o--)heapBubble(this.heap,o);(this.to-e||this.value.endSide-s)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),heapBubble(this.heap,0)}}}function heapBubble(a,e){for(let s=a[e];;){let o=(e<<1)+1;if(o>=a.length)break;let c=a[o];if(o+1=0&&(c=a[o+1],o++),s.compare(c)<0)break;a[o]=s,a[e]=c,e=o}}class SpanCursor{constructor(e,s,o,c=()=>!0){this.minPoint=o,this.filterPoint=c,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=HeapCursor.from(e,s,o)}goto(e,s=-1e9){return this.cursor.goto(e,s),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=s,this.openStart=-1,this.next(),this}forward(e,s){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-s)<0;)this.removeActive(this.minActive);this.cursor.forward(e,s)}removeActive(e){remove$2(this.active,e),remove$2(this.activeTo,e),remove$2(this.activeRank,e),this.minActive=findMinIndex(this.active,this.activeTo)}addActive(e){let s=0,{value:o,to:c,rank:d}=this.cursor;for(;s-1&&(this.activeTo[d]-this.cursor.from||this.active[d].endSide-this.cursor.startSide)<0){if(this.activeTo[d]>e){this.to=this.activeTo[d],this.endSide=this.active[d].endSide;break}this.removeActive(d),o&&remove$2(o,d)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let _=this.cursor.value;if(!_.point)this.addActive(o),this.cursor.next();else if(s&&this.cursor.to==this.to&&this.cursor.from=0&&!(this.activeRank[o]e||this.activeTo[o]==e&&this.active[o].endSide>=this.point.endSide)&&s.push(this.active[o]);return s.reverse()}openEnd(e){let s=0;for(let o=this.activeTo.length-1;o>=0&&this.activeTo[o]>e;o--)s++;return s}}function compare(a,e,s,o,c,d){a.goto(e),s.goto(o);let _=o+c,b=o,k=o-e;for(;;){let $=a.to+k-s.to||a.endSide-s.endSide,j=$<0?a.to+k:s.to,_e=Math.min(j,_);if(a.point||s.point?a.point&&s.point&&(a.point==s.point||a.point.eq(s.point))&&sameValues(a.activeForPoint(a.to+k),s.activeForPoint(s.to))||d.comparePoint(b,_e,a.point,s.point):_e>b&&!sameValues(a.active,s.active)&&d.compareRange(b,_e,a.active,s.active),j>_)break;b=j,$<=0&&a.next(),$>=0&&s.next()}}function sameValues(a,e){if(a.length!=e.length)return!1;for(let s=0;s=e;o--)a[o+1]=a[o];a[e]=s}function findMinIndex(a,e){let s=-1,o=1e9;for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"',229:"Q"},chrome$1=typeof navigator!="undefined"&&/Chrome\/(\d+)/.exec(navigator.userAgent),safari$1=typeof navigator!="undefined"&&/Apple Computer/.test(navigator.vendor),gecko$1=typeof navigator!="undefined"&&/Gecko\/\d+/.test(navigator.userAgent),mac=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),ie$1=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),brokenModifierNames=chrome$1&&(mac||+chrome$1[1]<57)||gecko$1&&mac;for(var i=0;i<10;i++)base[48+i]=base[96+i]=String(i);for(var i=1;i<=24;i++)base[i+111]="F"+i;for(var i=65;i<=90;i++)base[i]=String.fromCharCode(i+32),shift[i]=String.fromCharCode(i);for(var code in base)shift.hasOwnProperty(code)||(shift[code]=base[code]);function keyName(a){var e=brokenModifierNames&&(a.ctrlKey||a.altKey||a.metaKey)||(safari$1||ie$1)&&a.shiftKey&&a.key&&a.key.length==1,s=!e&&a.key||(a.shiftKey?shift:base)[a.keyCode]||a.key||"Unidentified";return s=="Esc"&&(s="Escape"),s=="Del"&&(s="Delete"),s=="Left"&&(s="ArrowLeft"),s=="Up"&&(s="ArrowUp"),s=="Right"&&(s="ArrowRight"),s=="Down"&&(s="ArrowDown"),s}function getSelection(a){let e;return a.nodeType==11?e=a.getSelection?a:a.ownerDocument:e=a,e.getSelection()}function contains(a,e){return e?a==e||a.contains(e.nodeType!=1?e.parentNode:e):!1}function deepActiveElement(){let a=document.activeElement;for(;a&&a.shadowRoot;)a=a.shadowRoot.activeElement;return a}function hasSelection(a,e){if(!e.anchorNode)return!1;try{return contains(a,e.anchorNode)}catch{return!1}}function clientRectsFor(a){return a.nodeType==3?textRange(a,0,a.nodeValue.length).getClientRects():a.nodeType==1?a.getClientRects():[]}function isEquivalentPosition(a,e,s,o){return s?scanFor(a,e,s,o,-1)||scanFor(a,e,s,o,1):!1}function domIndex(a){for(var e=0;;e++)if(a=a.previousSibling,!a)return e}function scanFor(a,e,s,o,c){for(;;){if(a==s&&e==o)return!0;if(e==(c<0?0:maxOffset(a))){if(a.nodeName=="DIV")return!1;let d=a.parentNode;if(!d||d.nodeType!=1)return!1;e=domIndex(a)+(c<0?0:1),a=d}else if(a.nodeType==1){if(a=a.childNodes[e+(c<0?-1:0)],a.nodeType==1&&a.contentEditable=="false")return!1;e=c<0?maxOffset(a):0}else return!1}}function maxOffset(a){return a.nodeType==3?a.nodeValue.length:a.childNodes.length}const Rect0={left:0,right:0,top:0,bottom:0};function flattenRect(a,e){let s=e?a.left:a.right;return{left:s,right:s,top:a.top,bottom:a.bottom}}function windowRect(a){return{left:0,right:a.innerWidth,top:0,bottom:a.innerHeight}}function scrollRectIntoView(a,e,s,o,c,d,_,b){let k=a.ownerDocument,$=k.defaultView;for(let j=a;j;)if(j.nodeType==1){let _e,et=j==k.body;if(et)_e=windowRect($);else{if(j.scrollHeight<=j.clientHeight&&j.scrollWidth<=j.clientWidth){j=j.parentNode;continue}let it=j.getBoundingClientRect();_e={left:it.left,right:it.left+j.clientWidth,top:it.top,bottom:it.top+j.clientHeight}}let tt=0,nt=0;if(c=="nearest")e.top<_e.top?(nt=-(_e.top-e.top+_),s>0&&e.bottom>_e.bottom+nt&&(nt=e.bottom-_e.bottom+nt+_)):e.bottom>_e.bottom&&(nt=e.bottom-_e.bottom+_,s<0&&e.top-nt<_e.top&&(nt=-(_e.top+nt-e.top+_)));else{let it=e.bottom-e.top,rt=_e.bottom-_e.top;nt=(c=="center"&&it<=rt?e.top+it/2-rt/2:c=="start"||c=="center"&&s<0?e.top-_:e.bottom-rt+_)-_e.top}if(o=="nearest"?e.left<_e.left?(tt=-(_e.left-e.left+d),s>0&&e.right>_e.right+tt&&(tt=e.right-_e.right+tt+d)):e.right>_e.right&&(tt=e.right-_e.right+d,s<0&&e.left<_e.left+tt&&(tt=-(_e.left+tt-e.left+d))):tt=(o=="center"?e.left+(e.right-e.left)/2-(_e.right-_e.left)/2:o=="start"==b?e.left-d:e.right-(_e.right-_e.left)+d)-_e.left,tt||nt)if(et)$.scrollBy(tt,nt);else{if(nt){let it=j.scrollTop;j.scrollTop+=nt,nt=j.scrollTop-it}if(tt){let it=j.scrollLeft;j.scrollLeft+=tt,tt=j.scrollLeft-it}e={left:e.left-tt,top:e.top-nt,right:e.right-tt,bottom:e.bottom-nt}}if(et)break;j=j.assignedSlot||j.parentNode,o=c="nearest"}else if(j.nodeType==11)j=j.host;else break}class DOMSelectionState{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){this.set(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)}set(e,s,o,c){this.anchorNode=e,this.anchorOffset=s,this.focusNode=o,this.focusOffset=c}}let preventScrollSupported=null;function focusPreventScroll(a){if(a.setActive)return a.setActive();if(preventScrollSupported)return a.focus(preventScrollSupported);let e=[];for(let s=a;s&&(e.push(s,s.scrollTop,s.scrollLeft),s!=s.ownerDocument);s=s.parentNode);if(a.focus(preventScrollSupported==null?{get preventScroll(){return preventScrollSupported={preventScroll:!0},!0}}:void 0),!preventScrollSupported){preventScrollSupported=!1;for(let s=0;ss)return _e.domBoundsAround(e,s,$);if(et>=e&&c==-1&&(c=k,d=$),$>s&&_e.dom.parentNode==this.dom){_=k,b=j;break}j=et,$=et+_e.breakAfter}return{from:d,to:b<0?o+this.length:b,startDOM:(c?this.children[c-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:_=0?this.children[_].dom:null}}markDirty(e=!1){this.dirty|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let s=this.parent;s;s=s.parent){if(e&&(s.dirty|=2),s.dirty&1)return;s.dirty|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let s=e.parent;if(!s)return e;e=s}}replaceChildren(e,s,o=noChildren){this.markDirty();for(let c=e;cthis.pos||e==this.pos&&(s>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let o=this.children[--this.i];this.pos-=o.length+o.breakAfter}}}function replaceRange(a,e,s,o,c,d,_,b,k){let{children:$}=a,j=$.length?$[e]:null,_e=d.length?d[d.length-1]:null,et=_e?_e.breakAfter:_;if(!(e==o&&j&&!_&&!et&&d.length<2&&j.merge(s,c,d.length?_e:null,s==0,b,k))){if(o<$.length){let tt=$[o];tt&&c0&&(!_&&d.length&&j.merge(s,j.length,d[0],!1,b,0)?j.breakAfter=d.shift().breakAfter:(s2);var browser$2={mac:ios$1||/Mac/.test(nav.platform),windows:/Win/.test(nav.platform),linux:/Linux|X11/.test(nav.platform),ie,ie_version:ie_upto10?doc.documentMode||6:ie_11up?+ie_11up[1]:ie_edge?+ie_edge[1]:0,gecko,gecko_version:gecko?+(/Firefox\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,chrome:!!chrome,chrome_version:chrome?+chrome[1]:0,ios:ios$1,android:/Android\b/.test(nav.userAgent),webkit,safari,webkit_version:webkit?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:doc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const MaxJoinLen=256;class TextView extends ContentView{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,s,o){return o&&(!(o instanceof TextView)||this.length-(s-e)+o.length>MaxJoinLen)?!1:(this.text=this.text.slice(0,e)+(o?o.text:"")+this.text.slice(s),this.markDirty(),!0)}split(e){let s=new TextView(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),s}localPosFromDOM(e,s){return e==this.dom?s:s?this.text.length:0}domAtPos(e){return new DOMPos(this.dom,e)}domBoundsAround(e,s,o){return{from:o,to:o+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,s){return textCoords(this.dom,e,s)}}class MarkView extends ContentView{constructor(e,s=[],o=0){super(),this.mark=e,this.children=s,this.length=o;for(let c of s)c.setParent(this)}setAttrs(e){if(clearAttributes(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let s in this.mark.attrs)e.setAttribute(s,this.mark.attrs[s]);return e}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.dirty|=6)}sync(e){this.dom?this.dirty&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e)}merge(e,s,o,c,d,_){return o&&(!(o instanceof MarkView&&o.mark.eq(this.mark))||e&&d<=0||se&&s.push(o=e&&(c=d),o=k,d++}let _=this.length-e;return this.length=e,c>-1&&(this.children.length=c,this.markDirty()),new MarkView(this.mark,s,_)}domAtPos(e){return inlineDOMAtPos(this.dom,this.children,e)}coordsAt(e,s){return coordsInChildren(this,e,s)}}function textCoords(a,e,s){let o=a.nodeValue.length;e>o&&(e=o);let c=e,d=e,_=0;e==0&&s<0||e==o&&s>=0?browser$2.chrome||browser$2.gecko||(e?(c--,_=1):(d++,_=-1)):s<0?c--:d++;let b=textRange(a,c,d).getClientRects();if(!b.length)return Rect0;let k=b[(_?_<0:s>=0)?0:b.length-1];return browser$2.safari&&!_&&k.width==0&&(k=Array.prototype.find.call(b,$=>$.width)||k),_?flattenRect(k,_<0):k||null}class WidgetView extends ContentView{constructor(e,s,o){super(),this.widget=e,this.length=s,this.side=o,this.prevWidget=null}static create(e,s,o){return new(e.customView||WidgetView)(e,s,o)}split(e){let s=WidgetView.create(this.widget,this.length-e,this.side);return this.length-=e,s}sync(){(!this.dom||!this.widget.updateDOM(this.dom))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,s,o,c,d,_){return o&&(!(o instanceof WidgetView)||!this.widget.compare(o.widget)||e>0&&d<=0||s0?o.length-1:0;c=o[d],!(e>0?d==0:d==o.length-1||c.top0?-1:1);return e==0&&s>0||e==this.length&&s<=0?c:flattenRect(c,e==0)}get isEditable(){return!1}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class CompositionView extends WidgetView{domAtPos(e){let{topView:s,text:o}=this.widget;return s?scanCompositionTree(e,0,s,o,(c,d)=>c.domAtPos(d),c=>new DOMPos(o,Math.min(c,o.nodeValue.length))):new DOMPos(o,Math.min(e,o.nodeValue.length))}sync(){this.setDOM(this.widget.toDOM())}localPosFromDOM(e,s){let{topView:o,text:c}=this.widget;return o?posFromDOMInCompositionTree(e,s,o,c):Math.min(s,this.length)}ignoreMutation(){return!1}get overrideDOMText(){return null}coordsAt(e,s){let{topView:o,text:c}=this.widget;return o?scanCompositionTree(e,s,o,c,(d,_,b)=>d.coordsAt(_,b),(d,_)=>textCoords(c,d,_)):textCoords(c,e,s)}destroy(){var e;super.destroy(),(e=this.widget.topView)===null||e===void 0||e.destroy()}get isEditable(){return!0}}function scanCompositionTree(a,e,s,o,c,d){if(s instanceof MarkView){for(let _ of s.children){let b=contains(_.dom,o),k=b?o.nodeValue.length:_.length;if(a0?-1:1);return o&&o.tops.top?{left:s.left,right:s.right,top:o.top,bottom:o.bottom}:s}get overrideDOMText(){return Text.empty}}TextView.prototype.children=WidgetView.prototype.children=WidgetBufferView.prototype.children=noChildren;function inlineSiblingRect(a,e){let s=a.parent,o=s?s.children.indexOf(a):-1;for(;s&&o>=0;)if(e<0?o>0:oc&&s<_&&d.dom.parentNode==a)return d.domAtPos(s-c);if(s<=c)break;c=_}}for(;o>0;o--){let c=e[o-1].dom;if(c.parentNode==a)return DOMPos.after(c)}return new DOMPos(a,0)}function joinInlineInto(a,e,s){let o,{children:c}=a;s>0&&e instanceof MarkView&&c.length&&(o=c[c.length-1])instanceof MarkView&&o.mark.eq(e.mark)?joinInlineInto(o,e.children[0],s-1):(c.push(e),e.setParent(a)),a.length+=e.length}function coordsInChildren(a,e,s){for(let d=0,_=0;_0?k>=e:k>e)&&(e0)){let j=0;if(k==d){if(b.getSide()<=0)continue;j=s=-b.getSide()}let _e=b.coordsAt(Math.max(0,e-d),s);return j&&_e?flattenRect(_e,s<0):_e}d=k}let o=a.dom.lastChild;if(!o)return a.dom.getBoundingClientRect();let c=clientRectsFor(o);return c[c.length-1]||null}function combineAttrs(a,e){for(let s in a)s=="class"&&e.class?e.class+=" "+a.class:s=="style"&&e.style?e.style+=";"+a.style:e[s]=a[s];return e}function attrsEq(a,e){if(a==e)return!0;if(!a||!e)return!1;let s=Object.keys(a),o=Object.keys(e);if(s.length!=o.length)return!1;for(let c of s)if(o.indexOf(c)==-1||a[c]!==e[c])return!1;return!0}function updateAttrs(a,e,s){if(e)for(let o in e)s&&o in s||a.removeAttribute(o);if(s)for(let o in s)e&&e[o]==s[o]||a.setAttribute(o,s[o])}class WidgetType{eq(e){return!1}updateDOM(e){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}ignoreEvent(e){return!0}get customView(){return null}destroy(e){}}var BlockType=function(a){return a[a.Text=0]="Text",a[a.WidgetBefore=1]="WidgetBefore",a[a.WidgetAfter=2]="WidgetAfter",a[a.WidgetRange=3]="WidgetRange",a}(BlockType||(BlockType={}));class Decoration extends RangeValue{constructor(e,s,o,c){super(),this.startSide=e,this.endSide=s,this.widget=o,this.spec=c}get heightRelevant(){return!1}static mark(e){return new MarkDecoration(e)}static widget(e){let s=e.side||0,o=!!e.block;return s+=o?s>0?3e8:-4e8:s>0?1e8:-1e8,new PointDecoration(e,s,s,o,e.widget||null,!1)}static replace(e){let s=!!e.block,o,c;if(e.isBlockGap)o=-5e8,c=4e8;else{let{start:d,end:_}=getInclusive(e,s);o=(d?s?-3e8:-1:5e8)-1,c=(_?s?2e8:1:-6e8)+1}return new PointDecoration(e,o,c,s,e.widget||null,!0)}static line(e){return new LineDecoration(e)}static set(e,s=!1){return RangeSet.of(e,s)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Decoration.none=RangeSet.empty;class MarkDecoration extends Decoration{constructor(e){let{start:s,end:o}=getInclusive(e);super(s?-1:5e8,o?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){return this==e||e instanceof MarkDecoration&&this.tagName==e.tagName&&this.class==e.class&&attrsEq(this.attrs,e.attrs)}range(e,s=e){if(e>=s)throw new RangeError("Mark decorations may not be empty");return super.range(e,s)}}MarkDecoration.prototype.point=!1;class LineDecoration extends Decoration{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof LineDecoration&&attrsEq(this.spec.attributes,e.spec.attributes)}range(e,s=e){if(s!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,s)}}LineDecoration.prototype.mapMode=MapMode.TrackBefore;LineDecoration.prototype.point=!0;class PointDecoration extends Decoration{constructor(e,s,o,c,d,_){super(s,o,d,e),this.block=c,this.isReplace=_,this.mapMode=c?s<=0?MapMode.TrackBefore:MapMode.TrackAfter:MapMode.TrackDel}get type(){return this.startSide=5}eq(e){return e instanceof PointDecoration&&widgetsEq(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,s=e){if(this.isReplace&&(e>s||e==s&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&s!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,s)}}PointDecoration.prototype.point=!0;function getInclusive(a,e=!1){let{inclusiveStart:s,inclusiveEnd:o}=a;return s==null&&(s=a.inclusive),o==null&&(o=a.inclusive),{start:s!=null?s:e,end:o!=null?o:e}}function widgetsEq(a,e){return a==e||!!(a&&e&&a.compare(e))}function addRange(a,e,s,o=0){let c=s.length-1;c>=0&&s[c]+o>=a?s[c]=Math.max(s[c],e):s.push(a,e)}class LineView extends ContentView{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,s,o,c,d,_){if(o){if(!(o instanceof LineView))return!1;this.dom||o.transferDOM(this)}return c&&this.setDeco(o?o.attrs:null),mergeChildrenInto(this,e,s,o?o.children:[],d,_),!0}split(e){let s=new LineView;if(s.breakAfter=this.breakAfter,this.length==0)return s;let{i:o,off:c}=this.childPos(e);c&&(s.append(this.children[o].split(c),0),this.children[o].merge(c,this.children[o].length,null,!1,0,0),o++);for(let d=o;d0&&this.children[o-1].length==0;)this.children[--o].destroy();return this.children.length=o,this.markDirty(),this.length=e,s}transferDOM(e){!this.dom||(e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){attrsEq(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,s){joinInlineInto(this,e,s)}addLineDeco(e){let s=e.spec.attributes,o=e.spec.class;s&&(this.attrs=combineAttrs(s,this.attrs||{})),o&&(this.attrs=combineAttrs({class:o},this.attrs||{}))}domAtPos(e){return inlineDOMAtPos(this.dom,this.children,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.dirty|=6)}sync(e){var s;this.dom?this.dirty&4&&(clearAttributes(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(updateAttrs(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e);let o=this.dom.lastChild;for(;o&&ContentView.get(o)instanceof MarkView;)o=o.lastChild;if(!o||!this.length||o.nodeName!="BR"&&((s=ContentView.get(o))===null||s===void 0?void 0:s.isEditable)==!1&&(!browser$2.ios||!this.children.some(c=>c instanceof TextView))){let c=document.createElement("BR");c.cmIgnore=!0,this.dom.appendChild(c)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0;for(let s of this.children){if(!(s instanceof TextView))return null;let o=clientRectsFor(s.dom);if(o.length!=1)return null;e+=o[0].width}return{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length}}coordsAt(e,s){return coordsInChildren(this,e,s)}become(e){return!1}get type(){return BlockType.Text}static find(e,s){for(let o=0,c=0;o=s){if(d instanceof LineView)return d;if(_>s)break}c=_+d.breakAfter}return null}}class BlockWidgetView extends ContentView{constructor(e,s,o){super(),this.widget=e,this.length=s,this.type=o,this.breakAfter=0,this.prevWidget=null}merge(e,s,o,c,d,_){return o&&(!(o instanceof BlockWidgetView)||!this.widget.compare(o.widget)||e>0&&d<=0||s0;){if(this.textOff==this.text.length){let{value:d,lineBreak:_,done:b}=this.cursor.next(this.skip);if(this.skip=0,b)throw new Error("Ran out of text content when drawing inline views");if(_){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer([]),this.curLine=null,e--;continue}else this.text=d,this.textOff=0}let c=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(s.slice(0,o)),this.getLine().append(wrapMarks(new TextView(this.text.slice(this.textOff,this.textOff+c)),s),o),this.atCursorPos=!0,this.textOff+=c,e-=c,o=0}}span(e,s,o,c){this.buildText(s-e,o,c),this.pos=s,this.openStart<0&&(this.openStart=c)}point(e,s,o,c,d){let _=s-e;if(o instanceof PointDecoration)if(o.block){let{type:b}=o;b==BlockType.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new BlockWidgetView(o.widget||new NullWidget("div"),_,b))}else{let b=WidgetView.create(o.widget||new NullWidget("span"),_,o.startSide),k=this.atCursorPos&&!b.isEditable&&d<=c.length&&(e0),$=!b.isEditable&&(ethis.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}return!0}static build(e,s,o,c,d){let _=new ContentBuilder(e,s,o,d);return _.openEnd=RangeSet.spans(c,s,o,_),_.openStart<0&&(_.openStart=_.openEnd),_.finish(_.openEnd),_}}function wrapMarks(a,e){for(let s of e)a=new MarkView(s,[a],a.length);return a}class NullWidget extends WidgetType{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}}const none$2=[],clickAddsSelectionRange=Facet.define(),dragMovesSelection$1=Facet.define(),mouseSelectionStyle=Facet.define(),exceptionSink=Facet.define(),updateListener=Facet.define(),inputHandler$1=Facet.define(),scrollTo=StateEffect.define({map:(a,e)=>a.map(e)}),centerOn=StateEffect.define({map:(a,e)=>a.map(e)});class ScrollTarget{constructor(e,s="nearest",o="nearest",c=5,d=5){this.range=e,this.y=s,this.x=o,this.yMargin=c,this.xMargin=d}map(e){return e.empty?this:new ScrollTarget(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}}const scrollIntoView$1=StateEffect.define({map:(a,e)=>a.map(e)});function logException(a,e,s){let o=a.facet(exceptionSink);o.length?o[0](e):window.onerror?window.onerror(String(e),s,void 0,void 0,e):s?console.error(s+":",e):console.error(e)}const editable=Facet.define({combine:a=>a.length?a[0]:!0});class PluginFieldProvider{constructor(e,s){this.field=e,this.get=s}}class PluginField{from(e){return new PluginFieldProvider(this,e)}static define(){return new PluginField}}PluginField.decorations=PluginField.define();PluginField.atomicRanges=PluginField.define();PluginField.scrollMargins=PluginField.define();let nextPluginID=0;const viewPlugin=Facet.define();class ViewPlugin{constructor(e,s,o){this.id=e,this.create=s,this.fields=o,this.extension=viewPlugin.of(this)}static define(e,s){let{eventHandlers:o,provide:c,decorations:d}=s||{},_=[];if(c)for(let b of Array.isArray(c)?c:[c])_.push(b);return o&&_.push(domEventHandlers.from(b=>({plugin:b,handlers:o}))),d&&_.push(PluginField.decorations.from(d)),new ViewPlugin(nextPluginID++,e,_)}static fromClass(e,s){return ViewPlugin.define(o=>new e(o),s)}}const domEventHandlers=PluginField.define();class PluginInstance{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}takeField(e,s){if(this.spec)for(let{field:o,get:c}of this.spec.fields)o==e&&s.push(c(this.value))}update(e){if(this.value){if(this.mustUpdate){let s=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(s)}catch(o){if(logException(s.state,o,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(s){logException(e.state,s,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var s;if(!((s=this.value)===null||s===void 0)&&s.destroy)try{this.value.destroy()}catch(o){logException(e.state,o,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const editorAttributes=Facet.define(),contentAttributes=Facet.define(),decorations=Facet.define(),styleModule=Facet.define();class ChangedRange{constructor(e,s,o,c){this.fromA=e,this.toA=s,this.fromB=o,this.toB=c}join(e){return new ChangedRange(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let s=e.length,o=this;for(;s>0;s--){let c=e[s-1];if(!(c.fromA>o.toA)){if(c.toAj)break;d+=2}if(!k)return o;new ChangedRange(k.fromA,k.toA,k.fromB,k.toB).addToSet(o),_=k.toA,b=k.toB}}}class ViewUpdate{constructor(e,s,o=none$2){this.view=e,this.state=s,this.transactions=o,this.flags=0,this.startState=e.state,this.changes=ChangeSet.empty(this.startState.doc.length);for(let _ of o)this.changes=this.changes.compose(_.changes);let c=[];this.changes.iterChangedRanges((_,b,k,$)=>c.push(new ChangedRange(_,b,k,$))),this.changedRanges=c;let d=e.hasFocus;d!=e.inputState.notifiedFocused&&(e.inputState.notifiedFocused=d,this.flags|=1)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}var Direction=function(a){return a[a.LTR=0]="LTR",a[a.RTL=1]="RTL",a}(Direction||(Direction={}));const LTR=Direction.LTR,RTL=Direction.RTL;function dec(a){let e=[];for(let s=0;s=s){if(b.level==o)return _;(d<0||(c!=0?c<0?b.froms:e[d].level>b.level))&&(d=_)}}if(d<0)throw new RangeError("Index out of range");return d}}const types=[];function computeOrder(a,e){let s=a.length,o=e==LTR?1:2,c=e==LTR?2:1;if(!a||o==1&&!BidiRE.test(a))return trivialOrder(s);for(let _=0,b=o,k=o;_=0;et-=3)if(BracketStack[et+1]==-j){let tt=BracketStack[et+2],nt=tt&2?o:tt&4?tt&1?c:o:0;nt&&(types[_]=types[BracketStack[et]]=nt),b=et;break}}else{if(BracketStack.length==189)break;BracketStack[b++]=_,BracketStack[b++]=$,BracketStack[b++]=k}else if((_e=types[_])==2||_e==1){let et=_e==o;k=et?0:1;for(let tt=b-3;tt>=0;tt-=3){let nt=BracketStack[tt+2];if(nt&2)break;if(et)BracketStack[tt+2]|=2;else{if(nt&4)break;BracketStack[tt+2]|=4}}}for(let _=0;_b;){let j=$,_e=types[--$]!=2;for(;$>b&&_e==(types[$-1]!=2);)$--;d.push(new BidiSpan($,j,_e?2:1))}else d.push(new BidiSpan(b,_,0))}else for(let _=0;_1)for(let k of this.points)k.node==e&&k.pos>this.text.length&&(k.pos-=_-1);o=d+_}}readNode(e){if(e.cmIgnore)return;let s=ContentView.get(e),o=s&&s.overrideDOMText;if(o!=null){this.findPointInside(e,o.length);for(let c=o.iter();!c.next().done;)c.lineBreak?this.lineBreak():this.append(c.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,s){for(let o of this.points)o.node==e&&e.childNodes[o.offset]==s&&(o.pos=this.text.length)}findPointInside(e,s){for(let o of this.points)(e.nodeType==3?o.node==e:e.contains(o.node))&&(o.pos=this.text.length+Math.min(s,o.offset))}}function isBlockElement(a){return a.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(a.nodeName)}class DOMPoint{constructor(e,s){this.node=e,this.offset=s,this.pos=-1}}class DocView extends ContentView{constructor(e){super(),this.view=e,this.compositionDeco=Decoration.none,this.decorations=[],this.pluginDecorationLength=0,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new LineView],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new ChangedRange(0,0,0,e.state.doc.length)],0)}get root(){return this.view.root}get editorView(){return this.view}get length(){return this.view.state.doc.length}update(e){let s=e.changedRanges;this.minWidth>0&&s.length&&(s.every(({fromA:_,toA:b})=>bthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.view.inputState.composing<0?this.compositionDeco=Decoration.none:(e.transactions.length||this.dirty)&&(this.compositionDeco=computeCompositionDeco(this.view,e.changes)),(browser$2.ie||browser$2.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,c=this.updateDeco(),d=findChangedDeco(o,c,e.changes);return s=ChangedRange.extendWithRanges(s,d),this.dirty==0&&s.length==0?!1:(this.updateInner(s,e.startState.doc.length),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,s){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,s);let{observer:o}=this.view;o.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.minWidth=this.minWidth?this.minWidth+"px":"";let d=browser$2.chrome||browser$2.ios?{node:o.selectionRange.focusNode,written:!1}:void 0;this.sync(d),this.dirty=0,d&&(d.written||o.selectionRange.focusNode!=d.node)&&(this.forceSelection=!0),this.dom.style.height=""});let c=[];if(this.view.viewport.from||this.view.viewport.to=0?e[c]:null;if(!d)break;let{fromA:_,toA:b,fromB:k,toB:$}=d,{content:j,breakAtStart:_e,openStart:et,openEnd:tt}=ContentBuilder.build(this.view.state.doc,k,$,this.decorations,this.pluginDecorationLength),{i:nt,off:it}=o.findPos(b,1),{i:rt,off:st}=o.findPos(_,-1);replaceRange(this,rt,st,nt,it,j,_e,et,tt)}}updateSelection(e=!1,s=!1){if(e&&this.view.observer.readSelectionRange(),!(s||this.mayControlSelection())||browser$2.ios&&this.view.inputState.rapidCompositionStart)return;let o=this.forceSelection;this.forceSelection=!1;let c=this.view.state.selection.main,d=this.domAtPos(c.anchor),_=c.empty?d:this.domAtPos(c.head);if(browser$2.gecko&&c.empty&&betweenUneditable(d)){let k=document.createTextNode("");this.view.observer.ignore(()=>d.node.insertBefore(k,d.node.childNodes[d.offset]||null)),d=_=new DOMPos(k,0),o=!0}let b=this.view.observer.selectionRange;(o||!b.focusNode||!isEquivalentPosition(d.node,d.offset,b.anchorNode,b.anchorOffset)||!isEquivalentPosition(_.node,_.offset,b.focusNode,b.focusOffset))&&(this.view.observer.ignore(()=>{browser$2.android&&browser$2.chrome&&this.dom.contains(b.focusNode)&&inUneditable(b.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let k=getSelection(this.root);if(c.empty){if(browser$2.gecko){let $=nextToUneditable(d.node,d.offset);if($&&$!=3){let j=nearbyTextNode(d.node,d.offset,$==1?1:-1);j&&(d=new DOMPos(j,$==1?0:j.nodeValue.length))}}k.collapse(d.node,d.offset),c.bidiLevel!=null&&b.cursorBidiLevel!=null&&(b.cursorBidiLevel=c.bidiLevel)}else if(k.extend)k.collapse(d.node,d.offset),k.extend(_.node,_.offset);else{let $=document.createRange();c.anchor>c.head&&([d,_]=[_,d]),$.setEnd(_.node,_.offset),$.setStart(d.node,d.offset),k.removeAllRanges(),k.addRange($)}}),this.view.observer.setSelectionRange(d,_)),this.impreciseAnchor=d.precise?null:new DOMPos(b.anchorNode,b.anchorOffset),this.impreciseHead=_.precise?null:new DOMPos(b.focusNode,b.focusOffset)}enforceCursorAssoc(){if(this.compositionDeco.size)return;let e=this.view.state.selection.main,s=getSelection(this.root);if(!e.empty||!e.assoc||!s.modify)return;let o=LineView.find(this,e.head);if(!o)return;let c=o.posAtStart;if(e.head==c||e.head==c+o.length)return;let d=this.coordsAt(e.head,-1),_=this.coordsAt(e.head,1);if(!d||!_||d.bottom>_.top)return;let b=this.domAtPos(e.head+e.assoc);s.collapse(b.node,b.offset),s.modify("move",e.assoc<0?"forward":"backward","lineboundary")}mayControlSelection(){return this.view.state.facet(editable)?this.root.activeElement==this.dom:hasSelection(this.dom,this.view.observer.selectionRange)}nearest(e){for(let s=e;s;){let o=ContentView.get(s);if(o&&o.rootView==this)return o;s=s.parentNode}return null}posFromDOM(e,s){let o=this.nearest(e);if(!o)throw new RangeError("Trying to find position for a DOM position outside of the document");return o.localPosFromDOM(e,s)+o.posAtStart}domAtPos(e){let{i:s,off:o}=this.childCursor().findPos(e,-1);for(;s_||e==_&&d.type!=BlockType.WidgetBefore&&d.type!=BlockType.WidgetAfter&&(!c||s==2||this.children[c-1].breakAfter||this.children[c-1].type==BlockType.WidgetBefore&&s>-2))return d.coordsAt(e-_,s);o=_}}measureVisibleLineHeights(){let e=[],{from:s,to:o}=this.view.viewState.viewport,c=this.view.contentDOM.clientWidth,d=c>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,_=-1;for(let b=0,k=0;ko)break;if(b>=s){let _e=$.dom.getBoundingClientRect();if(e.push(_e.height),d){let et=$.dom.lastChild,tt=et?clientRectsFor(et):[];if(tt.length){let nt=tt[tt.length-1],it=this.view.textDirection==Direction.LTR?nt.right-_e.left:_e.right-nt.left;it>_&&(_=it,this.minWidth=c,this.minWidthFrom=b,this.minWidthTo=j)}}}b=j+$.breakAfter}return e}measureTextSize(){for(let c of this.children)if(c instanceof LineView){let d=c.measureTextSize();if(d)return d}let e=document.createElement("div"),s,o;return e.className="cm-line",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let c=clientRectsFor(e.firstChild)[0];s=e.getBoundingClientRect().height,o=c?c.width/27:7,e.remove()}),{lineHeight:s,charWidth:o}}childCursor(e=this.length){let s=this.children.length;return s&&(e-=this.children[--s].length),new ChildCursor(this.children,e,s)}computeBlockGapDeco(){let e=[],s=this.view.viewState;for(let o=0,c=0;;c++){let d=c==s.viewports.length?null:s.viewports[c],_=d?d.from-1:this.length;if(_>o){let b=s.lineBlockAt(_).bottom-s.lineBlockAt(o).top;e.push(Decoration.replace({widget:new BlockGapWidget(b),block:!0,inclusive:!0,isBlockGap:!0}).range(o,_))}if(!d)break;o=d.to+1}return Decoration.set(e)}updateDeco(){let e=this.view.pluginField(PluginField.decorations);return this.pluginDecorationLength=e.length,this.decorations=[...e,...this.view.state.facet(decorations),this.compositionDeco,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco]}scrollIntoView(e){let{range:s}=e,o=this.coordsAt(s.head,s.empty?s.assoc:s.head>s.anchor?-1:1),c;if(!o)return;!s.empty&&(c=this.coordsAt(s.anchor,s.anchor>s.head?-1:1))&&(o={left:Math.min(o.left,c.left),top:Math.min(o.top,c.top),right:Math.max(o.right,c.right),bottom:Math.max(o.bottom,c.bottom)});let d=0,_=0,b=0,k=0;for(let j of this.view.pluginField(PluginField.scrollMargins))if(j){let{left:_e,right:et,top:tt,bottom:nt}=j;_e!=null&&(d=Math.max(d,_e)),et!=null&&(_=Math.max(_,et)),tt!=null&&(b=Math.max(b,tt)),nt!=null&&(k=Math.max(k,nt))}let $={left:o.left-d,top:o.top-b,right:o.right+_,bottom:o.bottom+k};scrollRectIntoView(this.view.scrollDOM,$,s.head0&&s<=0)a=a.childNodes[e-1],e=maxOffset(a);else if(a.nodeType==1&&e=0)a=a.childNodes[e],e=0;else return null}}function nextToUneditable(a,e){return a.nodeType!=1?0:(e&&a.childNodes[e-1].contentEditable=="false"?1:0)|(e0;){let $=findClusterBreak(c.text,_,!1);if(o(c.text.slice($,_))!=k)break;_=$}for(;ba?e.left-a:Math.max(0,a-e.right)}function getdy(a,e){return e.top>a?e.top-a:Math.max(0,a-e.bottom)}function yOverlap(a,e){return a.tope.top+1}function upTop(a,e){return ea.bottom?{top:a.top,left:a.left,right:a.right,bottom:e}:a}function domPosAtCoords(a,e,s){let o,c,d,_,b,k,$,j;for(let tt=a.firstChild;tt;tt=tt.nextSibling){let nt=clientRectsFor(tt);for(let it=0;itot||_==ot&&d>st)&&(o=tt,c=rt,d=st,_=ot),st==0?s>rt.bottom&&(!$||$.bottomrt.top)&&(k=tt,j=rt):$&&yOverlap($,rt)?$=upBot($,rt.bottom):j&&yOverlap(j,rt)&&(j=upTop(j,rt.top))}}if($&&$.bottom>=s?(o=b,c=$):j&&j.top<=s&&(o=k,c=j),!o)return{node:a,offset:0};let _e=Math.max(c.left,Math.min(c.right,e));if(o.nodeType==3)return domPosInText(o,_e,s);if(!d&&o.contentEditable=="true")return domPosAtCoords(o,_e,s);let et=Array.prototype.indexOf.call(a.childNodes,o)+(e>=(c.left+c.right)/2?1:0);return{node:a,offset:et}}function domPosInText(a,e,s){let o=a.nodeValue.length,c=-1,d=1e9,_=0;for(let b=0;bs?j.top-s:s-j.bottom)-1;if(j.left-1<=e&&j.right+1>=e&&_e=(j.left+j.right)/2,tt=et;if((browser$2.chrome||browser$2.gecko)&&textRange(a,b).getBoundingClientRect().left==j.right&&(tt=!et),_e<=0)return{node:a,offset:b+(tt?1:0)};c=b+(tt?1:0),d=_e}}}return{node:a,offset:c>-1?c:_>0?a.nodeValue.length:0}}function posAtCoords(a,{x:e,y:s},o,c=-1){var d;let _=a.contentDOM.getBoundingClientRect(),b=_.top+a.viewState.paddingTop,k,{docHeight:$}=a.viewState,j=s-b;if(j<0)return 0;if(j>$)return a.state.doc.length;for(let st=a.defaultLineHeight/2,ot=!1;k=a.elementAtHeight(j),k.type!=BlockType.Text;)for(;j=c>0?k.bottom+st:k.top-st,!(j>=0&&j<=$);){if(ot)return o?null:0;ot=!0,c=-c}s=b+j;let _e=k.from;if(_ea.viewport.to)return a.viewport.to==a.state.doc.length?a.state.doc.length:o?null:posAtCoordsImprecise(a,_,k,e,s);let et=a.dom.ownerDocument,tt=a.root.elementFromPoint?a.root:et,nt=tt.elementFromPoint(e,s);nt&&!a.contentDOM.contains(nt)&&(nt=null),nt||(e=Math.max(_.left+1,Math.min(_.right-1,e)),nt=tt.elementFromPoint(e,s),nt&&!a.contentDOM.contains(nt)&&(nt=null));let it,rt=-1;if(nt&&((d=a.docView.nearest(nt))===null||d===void 0?void 0:d.isEditable)!=!1){if(et.caretPositionFromPoint){let st=et.caretPositionFromPoint(e,s);st&&({offsetNode:it,offset:rt}=st)}else if(et.caretRangeFromPoint){let st=et.caretRangeFromPoint(e,s);st&&({startContainer:it,startOffset:rt}=st,browser$2.safari&&isSuspiciousCaretResult(it,rt,e)&&(it=void 0))}}if(!it||!a.docView.dom.contains(it)){let st=LineView.find(a.docView,_e);if(!st)return j>k.top+k.height/2?k.to:k.from;({node:it,offset:rt}=domPosAtCoords(st.dom,e,s))}return a.docView.posFromDOM(it,rt)}function posAtCoordsImprecise(a,e,s,o,c){let d=Math.round((o-e.left)*a.defaultCharacterWidth);a.lineWrapping&&s.height>a.defaultLineHeight*1.5&&(d+=Math.floor((c-s.top)/a.defaultLineHeight)*a.viewState.heightOracle.lineLength);let _=a.state.sliceDoc(s.from,s.to);return s.from+findColumn(_,d,a.state.tabSize)}function isSuspiciousCaretResult(a,e,s){let o;if(a.nodeType!=3||e!=(o=a.nodeValue.length))return!1;for(let c=a.nextSibling;c;c=c.nextSibling)if(c.nodeType!=1||c.nodeName!="BR")return!1;return textRange(a,o-1,o).getBoundingClientRect().left>s}function moveToLineBoundary(a,e,s,o){let c=a.state.doc.lineAt(e.head),d=!o||!a.lineWrapping?null:a.coordsAtPos(e.assoc<0&&e.head>c.from?e.head-1:e.head);if(d){let k=a.dom.getBoundingClientRect(),$=a.posAtCoords({x:s==(a.textDirection==Direction.LTR)?k.right-1:k.left+1,y:(d.top+d.bottom)/2});if($!=null)return EditorSelection.cursor($,s?-1:1)}let _=LineView.find(a.docView,e.head),b=_?s?_.posAtEnd:_.posAtStart:s?c.to:c.from;return EditorSelection.cursor(b,s?-1:1)}function moveByChar(a,e,s,o){let c=a.state.doc.lineAt(e.head),d=a.bidiSpans(c);for(let _=e,b=null;;){let k=moveVisually(c,d,a.textDirection,_,s),$=movedOver;if(!k){if(c.number==(s?a.state.doc.lines:1))return _;$=` -`,c=a.state.doc.line(c.number+(s?1:-1)),d=a.bidiSpans(c),k=EditorSelection.cursor(s?c.from:c.to)}if(b){if(!b($))return _}else{if(!o)return k;b=o($)}_=k}}function byGroup(a,e,s){let o=a.state.charCategorizer(e),c=o(s);return d=>{let _=o(d);return c==CharCategory.Space&&(c=_),c==_}}function moveVertically(a,e,s,o){let c=e.head,d=s?1:-1;if(c==(s?a.state.doc.length:0))return EditorSelection.cursor(c,e.assoc);let _=e.goalColumn,b,k=a.contentDOM.getBoundingClientRect(),$=a.coordsAtPos(c),j=a.documentTop;if($)_==null&&(_=$.left-k.left),b=d<0?$.top:$.bottom;else{let tt=a.viewState.lineBlockAt(c-j);_==null&&(_=Math.min(k.right-k.left,a.defaultCharacterWidth*(c-tt.from))),b=(d<0?tt.top:tt.bottom)+j}let _e=k.left+_,et=o!=null?o:a.defaultLineHeight>>1;for(let tt=0;;tt+=10){let nt=b+(et+tt)*d,it=posAtCoords(a,{x:_e,y:nt},!1,d);if(ntk.bottom||(d<0?itc))return EditorSelection.cursor(it,e.assoc,void 0,_)}}function skipAtoms(a,e,s){let o=a.pluginField(PluginField.atomicRanges);for(;;){let c=!1;for(let d of o)d.between(s.from-1,s.from+1,(_,b,k)=>{s.from>_&&s.froms.from?EditorSelection.cursor(_,1):EditorSelection.cursor(b,-1),c=!0)});if(!c)return s}}class InputState{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.rapidCompositionStart=!1,this.mouseSelection=null;for(let s in handlers){let o=handlers[s];e.contentDOM.addEventListener(s,c=>{!eventBelongsToEditor(e,c)||this.ignoreDuringComposition(c)||s=="keydown"&&this.keydown(e,c)||(this.mustFlushObserver(c)&&e.observer.forceFlush(),this.runCustomHandlers(s,e,c)?c.preventDefault():o(e,c))}),this.registeredEvents.push(s)}this.notifiedFocused=e.hasFocus,this.ensureHandlers(e),browser$2.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e){let s=this.customHandlers=e.pluginField(domEventHandlers);for(let o of s)for(let c in o.handlers)this.registeredEvents.indexOf(c)<0&&c!="scroll"&&(this.registeredEvents.push(c),e.contentDOM.addEventListener(c,d=>{!eventBelongsToEditor(e,d)||this.runCustomHandlers(c,e,d)&&d.preventDefault()}))}runCustomHandlers(e,s,o){for(let c of this.customHandlers){let d=c.handlers[e];if(d)try{if(d.call(c.plugin,o,s)||o.defaultPrevented)return!0}catch(_){logException(s.state,_)}}return!1}runScrollHandlers(e,s){for(let o of this.customHandlers){let c=o.handlers.scroll;if(c)try{c.call(o.plugin,s,e)}catch(d){logException(e.state,d)}}}keydown(e,s){if(this.lastKeyCode=s.keyCode,this.lastKeyTime=Date.now(),s.keyCode==9&&Date.now()c.keyCode==s.keyCode))&&!(s.ctrlKey||s.altKey||s.metaKey)&&!s.synthetic?(this.pendingIOSKey=o,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let s=this.pendingIOSKey;return s?(this.pendingIOSKey=void 0,dispatchKey(e.contentDOM,s.key,s.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:browser$2.safari&&Date.now()-this.compositionEndedAt<500?(this.compositionEndedAt=0,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229||e.type=="compositionend"&&!browser$2.ios}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const PendingKeys=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],modifierCodes=[16,17,18,20,91,92,224,225];class MouseSelection{constructor(e,s,o,c){this.view=e,this.style=o,this.mustSelect=c,this.lastEvent=s;let d=e.contentDOM.ownerDocument;d.addEventListener("mousemove",this.move=this.move.bind(this)),d.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=s.shiftKey,this.multiple=e.state.facet(EditorState.allowMultipleSelections)&&addsSelectionRange(e,s),this.dragMove=dragMovesSelection(e,s),this.dragging=isInPrimarySelection(e,s)&&getClickType(s)==1?null:!1,this.dragging===!1&&(s.preventDefault(),this.select(s))}move(e){if(e.buttons==0)return this.destroy();this.dragging===!1&&this.select(this.lastEvent=e)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}select(e){let s=this.style.get(e,this.extend,this.multiple);(this.mustSelect||!s.eq(this.view.state.selection)||s.main.assoc!=this.view.state.selection.main.assoc)&&this.view.dispatch({selection:s,userEvent:"select.pointer",scrollIntoView:!0}),this.mustSelect=!1}update(e){e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function addsSelectionRange(a,e){let s=a.state.facet(clickAddsSelectionRange);return s.length?s[0](e):browser$2.mac?e.metaKey:e.ctrlKey}function dragMovesSelection(a,e){let s=a.state.facet(dragMovesSelection$1);return s.length?s[0](e):browser$2.mac?!e.altKey:!e.ctrlKey}function isInPrimarySelection(a,e){let{main:s}=a.state.selection;if(s.empty)return!1;let o=getSelection(a.root);if(o.rangeCount==0)return!0;let c=o.getRangeAt(0).getClientRects();for(let d=0;d=e.clientX&&_.top<=e.clientY&&_.bottom>=e.clientY)return!0}return!1}function eventBelongsToEditor(a,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let s=e.target,o;s!=a.contentDOM;s=s.parentNode)if(!s||s.nodeType==11||(o=ContentView.get(s))&&o.ignoreEvent(e))return!1;return!0}const handlers=Object.create(null),brokenClipboardAPI=browser$2.ie&&browser$2.ie_version<15||browser$2.ios&&browser$2.webkit_version<604;function capturePaste(a){let e=a.dom.parentNode;if(!e)return;let s=e.appendChild(document.createElement("textarea"));s.style.cssText="position: fixed; left: -10000px; top: 10px",s.focus(),setTimeout(()=>{a.focus(),s.remove(),doPaste(a,s.value)},50)}function doPaste(a,e){let{state:s}=a,o,c=1,d=s.toText(e),_=d.lines==s.selection.ranges.length;if(lastLinewiseCopy!=null&&s.selection.ranges.every(k=>k.empty)&&lastLinewiseCopy==d.toString()){let k=-1;o=s.changeByRange($=>{let j=s.doc.lineAt($.from);if(j.from==k)return{range:$};k=j.from;let _e=s.toText((_?d.line(c++).text:e)+s.lineBreak);return{changes:{from:j.from,insert:_e},range:EditorSelection.cursor($.from+_e.length)}})}else _?o=s.changeByRange(k=>{let $=d.line(c++);return{changes:{from:k.from,to:k.to,insert:$.text},range:EditorSelection.cursor(k.from+$.length)}}):o=s.replaceSelection(d);a.dispatch(o,{userEvent:"input.paste",scrollIntoView:!0})}handlers.keydown=(a,e)=>{a.inputState.setSelectionOrigin("select"),e.keyCode==27?a.inputState.lastEscPress=Date.now():modifierCodes.indexOf(e.keyCode)<0&&(a.inputState.lastEscPress=0)};let lastTouch=0;handlers.touchstart=(a,e)=>{lastTouch=Date.now(),a.inputState.setSelectionOrigin("select.pointer")};handlers.touchmove=a=>{a.inputState.setSelectionOrigin("select.pointer")};handlers.mousedown=(a,e)=>{if(a.observer.flush(),lastTouch>Date.now()-2e3&&getClickType(e)==1)return;let s=null;for(let o of a.state.facet(mouseSelectionStyle))if(s=o(a,e),s)break;if(!s&&e.button==0&&(s=basicMouseSelection(a,e)),s){let o=a.root.activeElement!=a.contentDOM;o&&a.observer.ignore(()=>focusPreventScroll(a.contentDOM)),a.inputState.startMouseSelection(new MouseSelection(a,e,s,o))}};function rangeForClick(a,e,s,o){if(o==1)return EditorSelection.cursor(e,s);if(o==2)return groupAt(a.state,e,s);{let c=LineView.find(a.docView,e),d=a.state.doc.lineAt(c?c.posAtEnd:e),_=c?c.posAtStart:d.from,b=c?c.posAtEnd:d.to;return ba>=e.top&&a<=e.bottom,inside=(a,e,s)=>insideY(e,s)&&a>=s.left&&a<=s.right;function findPositionSide(a,e,s,o){let c=LineView.find(a.docView,e);if(!c)return 1;let d=e-c.posAtStart;if(d==0)return 1;if(d==c.length)return-1;let _=c.coordsAt(d,-1);if(_&&inside(s,o,_))return-1;let b=c.coordsAt(d,1);return b&&inside(s,o,b)?1:_&&insideY(o,_)?-1:1}function queryPos(a,e){let s=a.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:s,bias:findPositionSide(a,s,e.clientX,e.clientY)}}const BadMouseDetail=browser$2.ie&&browser$2.ie_version<=11;let lastMouseDown=null,lastMouseDownCount=0,lastMouseDownTime=0;function getClickType(a){if(!BadMouseDetail)return a.detail;let e=lastMouseDown,s=lastMouseDownTime;return lastMouseDown=a,lastMouseDownTime=Date.now(),lastMouseDownCount=!e||s>Date.now()-400&&Math.abs(e.clientX-a.clientX)<2&&Math.abs(e.clientY-a.clientY)<2?(lastMouseDownCount+1)%3:1}function basicMouseSelection(a,e){let s=queryPos(a,e),o=getClickType(e),c=a.state.selection,d=s,_=e;return{update(b){b.docChanged&&(s&&(s.pos=b.changes.mapPos(s.pos)),c=c.map(b.changes),_=null)},get(b,k,$){let j;if(_&&b.clientX==_.clientX&&b.clientY==_.clientY?j=d:(j=d=queryPos(a,b),_=b),!j||!s)return c;let _e=rangeForClick(a,j.pos,j.bias,o);if(s.pos!=j.pos&&!k){let et=rangeForClick(a,s.pos,s.bias,o),tt=Math.min(et.from,_e.from),nt=Math.max(et.to,_e.to);_e=tt<_e.from?EditorSelection.range(tt,nt):EditorSelection.range(nt,tt)}return k?c.replaceRange(c.main.extend(_e.from,_e.to)):$?c.addRange(_e):EditorSelection.create([_e])}}}handlers.dragstart=(a,e)=>{let{selection:{main:s}}=a.state,{mouseSelection:o}=a.inputState;o&&(o.dragging=s),e.dataTransfer&&(e.dataTransfer.setData("Text",a.state.sliceDoc(s.from,s.to)),e.dataTransfer.effectAllowed="copyMove")};function dropText(a,e,s,o){if(!s)return;let c=a.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:d}=a.inputState,_=o&&d&&d.dragging&&d.dragMove?{from:d.dragging.from,to:d.dragging.to}:null,b={from:c,insert:s},k=a.state.changes(_?[_,b]:b);a.focus(),a.dispatch({changes:k,selection:{anchor:k.mapPos(c,-1),head:k.mapPos(c,1)},userEvent:_?"move.drop":"input.drop"})}handlers.drop=(a,e)=>{if(!e.dataTransfer)return;if(a.state.readOnly)return e.preventDefault();let s=e.dataTransfer.files;if(s&&s.length){e.preventDefault();let o=Array(s.length),c=0,d=()=>{++c==s.length&&dropText(a,e,o.filter(_=>_!=null).join(a.state.lineBreak),!1)};for(let _=0;_{/[\x00-\x08\x0e-\x1f]{2}/.test(b.result)||(o[_]=b.result),d()},b.readAsText(s[_])}}else dropText(a,e,e.dataTransfer.getData("Text"),!0)};handlers.paste=(a,e)=>{if(a.state.readOnly)return e.preventDefault();a.observer.flush();let s=brokenClipboardAPI?null:e.clipboardData;s?(doPaste(a,s.getData("text/plain")),e.preventDefault()):capturePaste(a)};function captureCopy(a,e){let s=a.dom.parentNode;if(!s)return;let o=s.appendChild(document.createElement("textarea"));o.style.cssText="position: fixed; left: -10000px; top: 10px",o.value=e,o.focus(),o.selectionEnd=e.length,o.selectionStart=0,setTimeout(()=>{o.remove(),a.focus()},50)}function copiedRange(a){let e=[],s=[],o=!1;for(let c of a.selection.ranges)c.empty||(e.push(a.sliceDoc(c.from,c.to)),s.push(c));if(!e.length){let c=-1;for(let{from:d}of a.selection.ranges){let _=a.doc.lineAt(d);_.number>c&&(e.push(_.text),s.push({from:_.from,to:Math.min(a.doc.length,_.to+1)})),c=_.number}o=!0}return{text:e.join(a.lineBreak),ranges:s,linewise:o}}let lastLinewiseCopy=null;handlers.copy=handlers.cut=(a,e)=>{let{text:s,ranges:o,linewise:c}=copiedRange(a.state);if(!s&&!c)return;lastLinewiseCopy=c?s:null;let d=brokenClipboardAPI?null:e.clipboardData;d?(e.preventDefault(),d.clearData(),d.setData("text/plain",s)):captureCopy(a,s),e.type=="cut"&&!a.state.readOnly&&a.dispatch({changes:o,scrollIntoView:!0,userEvent:"delete.cut"})};handlers.focus=handlers.blur=a=>{setTimeout(()=>{a.hasFocus!=a.inputState.notifiedFocused&&a.update([])},10)};function forceClearComposition(a,e){if(a.docView.compositionDeco.size){a.inputState.rapidCompositionStart=e;try{a.update([])}finally{a.inputState.rapidCompositionStart=!1}}}handlers.compositionstart=handlers.compositionupdate=a=>{a.inputState.compositionFirstChange==null&&(a.inputState.compositionFirstChange=!0),a.inputState.composing<0&&(a.inputState.composing=0,a.docView.compositionDeco.size&&(a.observer.flush(),forceClearComposition(a,!0)))};handlers.compositionend=a=>{a.inputState.composing=-1,a.inputState.compositionEndedAt=Date.now(),a.inputState.compositionFirstChange=null,setTimeout(()=>{a.inputState.composing<0&&forceClearComposition(a,!1)},50)};handlers.contextmenu=a=>{a.inputState.lastContextMenu=Date.now()};handlers.beforeinput=(a,e)=>{var s;let o;if(browser$2.chrome&&browser$2.android&&(o=PendingKeys.find(c=>c.inputType==e.inputType))&&(a.observer.delayAndroidKey(o.key,o.keyCode),o.key=="Backspace"||o.key=="Delete")){let c=((s=window.visualViewport)===null||s===void 0?void 0:s.height)||0;setTimeout(()=>{var d;(((d=window.visualViewport)===null||d===void 0?void 0:d.height)||0)>c+10&&a.hasFocus&&(a.contentDOM.blur(),a.focus())},100)}};const wrappingWhiteSpace=["pre-wrap","normal","pre-line","break-spaces"];class HeightOracle{constructor(){this.doc=Text.empty,this.lineWrapping=!1,this.direction=Direction.LTR,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}heightForGap(e,s){let o=this.doc.lineAt(s).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(o+=Math.ceil((s-e-o*this.lineLength*.5)/this.lineLength)),this.lineHeight*o}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForStyle(e,s){return wrappingWhiteSpace.indexOf(e)>-1!=this.lineWrapping||this.direction!=s}mustRefreshForHeights(e){let s=!1;for(let o=0;o-1,k=Math.round(o)!=Math.round(this.lineHeight)||this.lineWrapping!=b||this.direction!=s;if(this.lineWrapping=b,this.direction=s,this.lineHeight=o,this.charWidth=c,this.lineLength=d,k){this.heightSamples={};for(let $=0;$<_.length;$++){let j=_[$];j<0?$++:this.heightSamples[Math.floor(j*10)]=!0}}return k}}class MeasuredHeights{constructor(e,s){this.from=e,this.heights=s,this.index=0}get more(){return this.indexs.moveY(e)):this.type):this}}var QueryType$1=function(a){return a[a.ByPos=0]="ByPos",a[a.ByHeight=1]="ByHeight",a[a.ByPosNoHeight=2]="ByPosNoHeight",a}(QueryType$1||(QueryType$1={}));const Epsilon=.001;class HeightMap{constructor(e,s,o=2){this.length=e,this.height=s,this.flags=o}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,s){this.height!=s&&(Math.abs(this.height-s)>Epsilon&&(e.heightChanged=!0),this.height=s)}replace(e,s,o){return HeightMap.of(o)}decomposeLeft(e,s){s.push(this)}decomposeRight(e,s){s.push(this)}applyChanges(e,s,o,c){let d=this;for(let _=c.length-1;_>=0;_--){let{fromA:b,toA:k,fromB:$,toB:j}=c[_],_e=d.lineAt(b,QueryType$1.ByPosNoHeight,s,0,0),et=_e.to>=k?_e:d.lineAt(k,QueryType$1.ByPosNoHeight,s,0,0);for(j+=et.to-k,k=et.to;_>0&&_e.from<=c[_-1].toA;)b=c[_-1].fromA,$=c[_-1].fromB,_--,b<_e.from&&(_e=d.lineAt(b,QueryType$1.ByPosNoHeight,s,0,0));$+=_e.from-b,b=_e.from;let tt=NodeBuilder.build(o,e,$,j);d=d.replace(b,k,tt)}return d.updateHeight(o,0)}static empty(){return new HeightMapText(0,0)}static of(e){if(e.length==1)return e[0];let s=0,o=e.length,c=0,d=0;for(;;)if(s==o)if(c>d*2){let b=e[s-1];b.break?e.splice(--s,1,b.left,null,b.right):e.splice(--s,1,b.left,b.right),o+=1+b.break,c-=b.size}else if(d>c*2){let b=e[o];b.break?e.splice(o,1,b.left,null,b.right):e.splice(o,1,b.left,b.right),o+=2+b.break,d-=b.size}else break;else if(c0){let d=o[o.length-1];d instanceof HeightMapGap?o[o.length-1]=new HeightMapGap(d.length+c):o.push(null,new HeightMapGap(c-1))}if(e>0){let d=o[0];d instanceof HeightMapGap?o[0]=new HeightMapGap(e+d.length):o.unshift(new HeightMapGap(e-1),null)}return HeightMap.of(o)}decomposeLeft(e,s){s.push(new HeightMapGap(e-1),null)}decomposeRight(e,s){s.push(null,new HeightMapGap(this.length-e-1))}updateHeight(e,s=0,o=!1,c){let d=s+this.length;if(c&&c.from<=s+this.length&&c.more){let _=[],b=Math.max(s,c.from),k=-1,$=e.heightChanged;for(c.from>s&&_.push(new HeightMapGap(c.from-s-1).updateHeight(e,s));b<=d&&c.more;){let _e=e.doc.lineAt(b).length;_.length&&_.push(null);let et=c.heights[c.index++];k==-1?k=et:Math.abs(et-k)>=Epsilon&&(k=-2);let tt=new HeightMapText(_e,et);tt.outdated=!1,_.push(tt),b+=_e+1}b<=d&&_.push(null,new HeightMapGap(d-b).updateHeight(e,b));let j=HeightMap.of(_);return e.heightChanged=$||k<0||Math.abs(j.height-this.height)>=Epsilon||Math.abs(k-this.lines(e.doc,s).lineHeight)>=Epsilon,j}else(o||this.outdated)&&(this.setHeight(e,e.heightForGap(s,s+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class HeightMapBranch extends HeightMap{constructor(e,s,o){super(e.length+s+o.length,e.height+o.height,s|(e.outdated||o.outdated?2:0)),this.left=e,this.right=o,this.size=e.size+o.size}get break(){return this.flags&1}blockAt(e,s,o,c){let d=o+this.left.height;return eb))return $;let j=s==QueryType$1.ByPosNoHeight?QueryType$1.ByPosNoHeight:QueryType$1.ByPos;return k?$.join(this.right.lineAt(b,j,o,_,b)):this.left.lineAt(b,j,o,c,d).join($)}forEachLine(e,s,o,c,d,_){let b=c+this.left.height,k=d+this.left.length+this.break;if(this.break)e=k&&this.right.forEachLine(e,s,o,b,k,_);else{let $=this.lineAt(k,QueryType$1.ByPos,o,c,d);e<$.from&&this.left.forEachLine(e,$.from-1,o,c,d,_),$.to>=e&&$.from<=s&&_($),s>$.to&&this.right.forEachLine($.to+1,s,o,b,k,_)}}replace(e,s,o){let c=this.left.length+this.break;if(sthis.left.length)return this.balanced(this.left,this.right.replace(e-c,s-c,o));let d=[];e>0&&this.decomposeLeft(e,d);let _=d.length;for(let b of o)d.push(b);if(e>0&&mergeGaps(d,_-1),s=o&&s.push(null)),e>o&&this.right.decomposeLeft(e-o,s)}decomposeRight(e,s){let o=this.left.length,c=o+this.break;if(e>=c)return this.right.decomposeRight(e-c,s);e2*s.size||s.size>2*e.size?HeightMap.of(this.break?[e,null,s]:[e,s]):(this.left=e,this.right=s,this.height=e.height+s.height,this.outdated=e.outdated||s.outdated,this.size=e.size+s.size,this.length=e.length+this.break+s.length,this)}updateHeight(e,s=0,o=!1,c){let{left:d,right:_}=this,b=s+d.length+this.break,k=null;return c&&c.from<=s+d.length&&c.more?k=d=d.updateHeight(e,s,o,c):d.updateHeight(e,s,o),c&&c.from<=b+_.length&&c.more?k=_=_.updateHeight(e,b,o,c):_.updateHeight(e,b,o),k?this.balanced(d,_):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function mergeGaps(a,e){let s,o;a[e]==null&&(s=a[e-1])instanceof HeightMapGap&&(o=a[e+1])instanceof HeightMapGap&&a.splice(e-1,3,new HeightMapGap(s.length+1+o.length))}const relevantWidgetHeight=5;class NodeBuilder{constructor(e,s){this.pos=e,this.oracle=s,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,s){if(this.lineStart>-1){let o=Math.min(s,this.lineEnd),c=this.nodes[this.nodes.length-1];c instanceof HeightMapText?c.length+=o-this.pos:(o>this.pos||!this.isCovered)&&this.nodes.push(new HeightMapText(o-this.pos,-1)),this.writtenTo=o,s>o&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=s}point(e,s,o){if(e=relevantWidgetHeight)&&this.addLineDeco(c,d)}else s>e&&this.span(e,s);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:s}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=s,this.writtenToe&&this.nodes.push(new HeightMapText(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,s){let o=new HeightMapGap(s-e);return this.oracle.doc.lineAt(e).to==s&&(o.flags|=4),o}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof HeightMapText)return e;let s=new HeightMapText(0,-1);return this.nodes.push(s),s}addBlock(e){this.enterLine(),e.type==BlockType.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=BlockType.WidgetBefore&&(this.covering=e)}addLineDeco(e,s){let o=this.ensureLine();o.length+=s,o.collapsed+=s,o.widgetHeight=Math.max(o.widgetHeight,e),this.writtenTo=this.pos=this.pos+s}finish(e){let s=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(s instanceof HeightMapText)&&!this.isCovered?this.nodes.push(new HeightMapText(0,-1)):(this.writtenTo$.clientHeight||$.scrollWidth>$.clientWidth)&&j.overflow!="visible"){let _e=$.getBoundingClientRect();o=Math.max(o,_e.left),c=Math.min(c,_e.right),d=Math.max(d,_e.top),_=Math.min(_,_e.bottom)}k=j.position=="absolute"||j.position=="fixed"?$.offsetParent:$.parentNode}else if(k.nodeType==11)k=k.host;else break;return{left:o-s.left,right:Math.max(o,c)-s.left,top:d-(s.top+e),bottom:Math.max(d,_)-(s.top+e)}}function fullPixelRange(a,e){let s=a.getBoundingClientRect();return{left:0,right:s.right-s.left,top:e,bottom:s.bottom-(s.top+e)}}class LineGap{constructor(e,s,o){this.from=e,this.to=s,this.size=o}static same(e,s){if(e.length!=s.length)return!1;for(let o=0;os.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:s}=this.state.selection;for(let o=0;o<=1;o++){let c=o?s.head:s.anchor;if(!e.some(({from:d,to:_})=>c>=d&&c<=_)){let{from:d,to:_}=this.lineBlockAt(c);e.push(new Viewport(d,_))}}this.viewports=e.sort((o,c)=>o.from-c.from),this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle.doc,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.state.doc,0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:scaleBlock(e,this.scaler))})}update(e,s=null){let o=this.state;this.state=e.state;let c=this.state.facet(decorations),d=e.changedRanges,_=ChangedRange.extendWithRanges(d,heightRelevantDecoChanges(e.startState.facet(decorations),c,e?e.changes:ChangeSet.empty(this.state.doc.length))),b=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(c,o.doc,this.heightOracle.setDoc(this.state.doc),_),this.heightMap.height!=b&&(e.flags|=2);let k=_.length?this.mapViewport(this.viewport,e.changes):this.viewport;(s&&(s.range.headk.to)||!this.viewportIsAppropriate(k))&&(k=this.getViewport(0,s));let $=!e.changes.empty||e.flags&2||k.from!=this.viewport.from||k.to!=this.viewport.to;this.viewport=k,this.updateForViewport(),$&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),s&&(this.scrollTarget=s),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&(this.mustEnforceCursorAssoc=!0)}measure(e){let s=e.contentDOM,o=window.getComputedStyle(s),c=this.heightOracle,d=o.whiteSpace,_=o.direction=="rtl"?Direction.RTL:Direction.LTR,b=this.heightOracle.mustRefreshForStyle(d,_),k=b||this.mustMeasureContent||this.contentDOMHeight!=s.clientHeight,$=0,j=0;if(this.editorWidth!=e.scrollDOM.clientWidth&&(c.lineWrapping&&(k=!0),this.editorWidth=e.scrollDOM.clientWidth,$|=8),k){this.mustMeasureContent=!1,this.contentDOMHeight=s.clientHeight;let st=parseInt(o.paddingTop)||0,ot=parseInt(o.paddingBottom)||0;(this.paddingTop!=st||this.paddingBottom!=ot)&&($|=8,this.paddingTop=st,this.paddingBottom=ot)}let _e=(this.printing?fullPixelRange:visiblePixelRange)(s,this.paddingTop),et=_e.top-this.pixelViewport.top,tt=_e.bottom-this.pixelViewport.bottom;this.pixelViewport=_e;let nt=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(nt!=this.inView&&(this.inView=nt,nt&&(k=!0)),!this.inView)return 0;let it=s.clientWidth;if((this.contentDOMWidth!=it||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=it,this.editorHeight=e.scrollDOM.clientHeight,$|=8),k){let st=e.docView.measureVisibleLineHeights();if(c.mustRefreshForHeights(st)&&(b=!0),b||c.lineWrapping&&Math.abs(it-this.contentDOMWidth)>c.charWidth){let{lineHeight:ot,charWidth:at}=e.docView.measureTextSize();b=c.refresh(d,_,ot,at,it/at,st),b&&(e.docView.minWidth=0,$|=8)}et>0&&tt>0?j=Math.max(et,tt):et<0&&tt<0&&(j=Math.min(et,tt)),c.heightChanged=!1,this.heightMap=this.heightMap.updateHeight(c,0,b,new MeasuredHeights(this.viewport.from,st)),c.heightChanged&&($|=2)}let rt=!this.viewportIsAppropriate(this.viewport,j)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return rt&&(this.viewport=this.getViewport(j,this.scrollTarget)),this.updateForViewport(),($&2||rt)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(b?[]:this.lineGaps)),$|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),$}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,s){let o=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),c=this.heightMap,d=this.state.doc,{visibleTop:_,visibleBottom:b}=this,k=new Viewport(c.lineAt(_-o*1e3,QueryType$1.ByHeight,d,0,0).from,c.lineAt(b+(1-o)*1e3,QueryType$1.ByHeight,d,0,0).to);if(s){let{head:$}=s.range;if($k.to){let j=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),_e=c.lineAt($,QueryType$1.ByPos,d,0,0),et;s.y=="center"?et=(_e.top+_e.bottom)/2-j/2:s.y=="start"||s.y=="nearest"&&$=b+Math.max(10,Math.min(o,250)))&&c>_-2*1e3&&do.from&&b.push({from:o.from,to:d}),_=o.from&&k.from<=o.to&&cutRange(b,k.from-10,k.from+10),!k.empty&&k.to>=o.from&&k.to<=o.to&&cutRange(b,k.to-10,k.to+10);for(let{from:$,to:j}of b)j-$>1e3&&s.push(find(e,_e=>_e.from>=o.from&&_e.to<=o.to&&Math.abs(_e.from-$)<1e3&&Math.abs(_e.to-j)<1e3)||new LineGap($,j,this.gapSize(o,$,j,c)))}return s}gapSize(e,s,o,c){let d=findFraction(c,o)-findFraction(c,s);return this.heightOracle.lineWrapping?e.height*d:c.total*this.heightOracle.charWidth*d}updateLineGaps(e){LineGap.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=Decoration.set(e.map(s=>s.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.state.facet(decorations);this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let s=[];RangeSet.spans(e,this.viewport.from,this.viewport.to,{span(c,d){s.push({from:c,to:d})},point(){}},20);let o=s.length!=this.visibleRanges.length||this.visibleRanges.some((c,d)=>c.from!=s[d].from||c.to!=s[d].to);return this.visibleRanges=s,o?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(s=>s.from<=e&&s.to>=e)||scaleBlock(this.heightMap.lineAt(e,QueryType$1.ByPos,this.state.doc,0,0),this.scaler)}lineBlockAtHeight(e){return scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(e),QueryType$1.ByHeight,this.state.doc,0,0),this.scaler)}elementAtHeight(e){return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(e),this.state.doc,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Viewport{constructor(e,s){this.from=e,this.to=s}}function lineStructure(a,e,s){let o=[],c=a,d=0;return RangeSet.spans(s.facet(decorations),a,e,{span(){},point(_,b){_>c&&(o.push({from:c,to:_}),d+=_-c),c=b}},20),c=1)return e[e.length-1].to;let o=Math.floor(a*s);for(let c=0;;c++){let{from:d,to:_}=e[c],b=_-d;if(o<=b)return d+o;o-=b}}function findFraction(a,e){let s=0;for(let{from:o,to:c}of a.ranges){if(e<=c){s+=e-o;break}s+=c-o}return s/a.total}function cutRange(a,e,s){for(let o=0;oe){let d=[];c.froms&&d.push({from:s,to:c.to}),a.splice(o,1,...d),o+=d.length-1}}}function find(a,e){for(let s of a)if(e(s))return s}const IdScaler={toDOM(a){return a},fromDOM(a){return a},scale:1};class BigScaler{constructor(e,s,o){let c=0,d=0,_=0;this.viewports=o.map(({from:b,to:k})=>{let $=s.lineAt(b,QueryType$1.ByPos,e,0,0).top,j=s.lineAt(k,QueryType$1.ByPos,e,0,0).bottom;return c+=j-$,{from:b,to:k,top:$,bottom:j,domTop:0,domBottom:0}}),this.scale=(7e6-c)/(s.height-c);for(let b of this.viewports)b.domTop=_+(b.top-d)*this.scale,_=b.domBottom=b.domTop+(b.bottom-b.top),d=b.bottom}toDOM(e){for(let s=0,o=0,c=0;;s++){let d=sscaleBlock(c,e)):a.type)}const theme=Facet.define({combine:a=>a.join(" ")}),darkTheme=Facet.define({combine:a=>a.indexOf(!0)>-1}),baseThemeID=StyleModule.newName(),baseLightID=StyleModule.newName(),baseDarkID=StyleModule.newName(),lightDarkIDs={"&light":"."+baseLightID,"&dark":"."+baseDarkID};function buildTheme(a,e,s){return new StyleModule(e,{finish(o){return/&/.test(o)?o.replace(/&\w*/,c=>{if(c=="&")return a;if(!s||!s[c])throw new RangeError(`Unsupported selector: ${c}`);return s[c]}):a+" "+o}})}const baseTheme$8=buildTheme("."+baseThemeID,{"&.cm-editor":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,minHeight:"100%",display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere"},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 4px"},".cm-selectionLayer":{zIndex:-1,contain:"size style"},".cm-selectionBackground":{position:"absolute"},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{zIndex:100,contain:"size style",pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},".cm-cursor, .cm-dropCursor":{position:"absolute",borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#f3f9ff"},"&dark .cm-activeLine":{backgroundColor:"#223039"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},lightDarkIDs),observeOptions={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},useCharData=browser$2.ie&&browser$2.ie_version<=11;class DOMObserver{constructor(e,s,o){this.view=e,this.onChange=s,this.onScrollChanged=o,this.active=!1,this.selectionRange=new DOMSelectionState,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.scrollTargets=[],this.intersection=null,this.resize=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(c=>{for(let d of c)this.queue.push(d);(browser$2.ie&&browser$2.ie_version<=11||browser$2.ios&&e.composing)&&c.some(d=>d.type=="childList"&&d.removedNodes.length||d.type=="characterData"&&d.oldValue.length>d.target.nodeValue.length)?this.flushSoon():this.flush()}),useCharData&&(this.onCharData=c=>{this.queue.push({target:c.target,type:"characterData",oldValue:c.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),window.addEventListener("resize",this.onResize=this.onResize.bind(this)),typeof ResizeObserver=="function"&&(this.resize=new ResizeObserver(()=>{this.view.docView.lastUpdate{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),c.length>0&&c[c.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(c=>{c.length>0&&c[c.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange(),this.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((s,o)=>s!=e[o]))){this.gapIntersection.disconnect();for(let s of e)this.gapIntersection.observe(s);this.gaps=e}}onSelectionChange(e){if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:s}=this,o=this.selectionRange;if(s.state.facet(editable)?s.root.activeElement!=this.dom:!hasSelection(s.dom,o))return;let c=o.anchorNode&&s.docView.nearest(o.anchorNode);c&&c.ignoreEvent(e)||((browser$2.ie&&browser$2.ie_version<=11||browser$2.android&&browser$2.chrome)&&!s.state.selection.main.empty&&o.focusNode&&isEquivalentPosition(o.focusNode,o.focusOffset,o.anchorNode,o.anchorOffset)?this.flushSoon():this.flush(!1))}readSelectionRange(){let{root:e}=this.view,s=getSelection(e),o=browser$2.safari&&e.nodeType==11&&deepActiveElement()==this.view.contentDOM&&safariSelectionRangeHack(this.view)||s;return this.selectionRange.eq(o)?!1:(this.selectionRange.setRange(o),this.selectionChanged=!0)}setSelectionRange(e,s){this.selectionRange.set(e.node,e.offset,s.node,s.offset),this.selectionChanged=!1}listenForScroll(){this.parentCheck=-1;let e=0,s=null;for(let o=this.dom;o;)if(o.nodeType==1)!s&&e{let o=this.delayedAndroidKey;this.delayedAndroidKey=null;let c=this.view.state;dispatchKey(this.view.contentDOM,o.key,o.keyCode)?this.processRecords():this.flush(),this.view.state==c&&this.view.update([])}),(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:s})}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=window.setTimeout(()=>{this.delayedFlush=-1,this.flush()},20))}forceFlush(){this.delayedFlush>=0&&(window.clearTimeout(this.delayedFlush),this.delayedFlush=-1,this.flush())}processRecords(){let e=this.queue;for(let d of this.observer.takeRecords())e.push(d);e.length&&(this.queue=[]);let s=-1,o=-1,c=!1;for(let d of e){let _=this.readMutation(d);!_||(_.typeOver&&(c=!0),s==-1?{from:s,to:o}=_:(s=Math.min(_.from,s),o=Math.max(_.to,o)))}return{from:s,to:o,typeOver:c}}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return;e&&this.readSelectionRange();let{from:s,to:o,typeOver:c}=this.processRecords(),d=this.selectionChanged&&hasSelection(this.dom,this.selectionRange);if(s<0&&!d)return;this.selectionChanged=!1;let _=this.view.state;this.onChange(s,o,c),this.view.state==_&&this.view.update([])}readMutation(e){let s=this.view.docView.nearest(e.target);if(!s||s.ignoreMutation(e))return null;if(s.markDirty(e.type=="attributes"),e.type=="attributes"&&(s.dirty|=4),e.type=="childList"){let o=findChild(s,e.previousSibling||e.target.previousSibling,-1),c=findChild(s,e.nextSibling||e.target.nextSibling,1);return{from:o?s.posAfter(o):s.posAtStart,to:c?s.posBefore(c):s.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:s.posAtStart,to:s.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}destroy(){var e,s,o;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(s=this.gapIntersection)===null||s===void 0||s.disconnect(),(o=this.resize)===null||o===void 0||o.disconnect();for(let c of this.scrollTargets)c.removeEventListener("scroll",this.onScroll);window.removeEventListener("scroll",this.onScroll),window.removeEventListener("resize",this.onResize),window.removeEventListener("beforeprint",this.onPrint),this.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout)}}function findChild(a,e,s){for(;e;){let o=ContentView.get(e);if(o&&o.parent==a)return o;let c=e.parentNode;e=c!=a.dom?c:s>0?e.nextSibling:e.previousSibling}return null}function safariSelectionRangeHack(a){let e=null;function s(k){k.preventDefault(),k.stopImmediatePropagation(),e=k.getTargetRanges()[0]}if(a.contentDOM.addEventListener("beforeinput",s,!0),document.execCommand("indent"),a.contentDOM.removeEventListener("beforeinput",s,!0),!e)return null;let o=e.startContainer,c=e.startOffset,d=e.endContainer,_=e.endOffset,b=a.docView.domAtPos(a.state.selection.main.anchor);return isEquivalentPosition(b.node,b.offset,d,_)&&([o,c,d,_]=[d,_,o,c]),{anchorNode:o,anchorOffset:c,focusNode:d,focusOffset:_}}function applyDOMChange(a,e,s,o){let c,d,_=a.state.selection.main;if(e>-1){let b=a.docView.domBoundsAround(e,s,0);if(!b||a.state.readOnly)return;let{from:k,to:$}=b,j=a.docView.impreciseHead||a.docView.impreciseAnchor?[]:selectionPoints(a),_e=new DOMReader(j,a.state);_e.readRange(b.startDOM,b.endDOM);let et=_.from,tt=null;(a.inputState.lastKeyCode===8&&a.inputState.lastKeyTime>Date.now()-100||browser$2.android&&_e.text.length<$-k)&&(et=_.to,tt="end");let nt=findDiff(a.state.doc.sliceString(k,$,LineBreakPlaceholder),_e.text,et-k,tt);nt&&(browser$2.chrome&&a.inputState.lastKeyCode==13&&nt.toB==nt.from+2&&_e.text.slice(nt.from,nt.toB)==LineBreakPlaceholder+LineBreakPlaceholder&&nt.toB--,c={from:k+nt.from,to:k+nt.toA,insert:Text.of(_e.text.slice(nt.from,nt.toB).split(LineBreakPlaceholder))}),d=selectionFromPoints(j,k)}else if(a.hasFocus||!a.state.facet(editable)){let b=a.observer.selectionRange,{impreciseHead:k,impreciseAnchor:$}=a.docView,j=k&&k.node==b.focusNode&&k.offset==b.focusOffset||!contains(a.contentDOM,b.focusNode)?a.state.selection.main.head:a.docView.posFromDOM(b.focusNode,b.focusOffset),_e=$&&$.node==b.anchorNode&&$.offset==b.anchorOffset||!contains(a.contentDOM,b.anchorNode)?a.state.selection.main.anchor:a.docView.posFromDOM(b.anchorNode,b.anchorOffset);(j!=_.head||_e!=_.anchor)&&(d=EditorSelection.single(_e,j))}if(!(!c&&!d)){if(!c&&o&&!_.empty&&d&&d.main.empty?c={from:_.from,to:_.to,insert:a.state.doc.slice(_.from,_.to)}:c&&c.from>=_.from&&c.to<=_.to&&(c.from!=_.from||c.to!=_.to)&&_.to-_.from-(c.to-c.from)<=4&&(c={from:_.from,to:_.to,insert:a.state.doc.slice(_.from,c.from).append(c.insert).append(a.state.doc.slice(c.to,_.to))}),c){let b=a.state;if(browser$2.ios&&a.inputState.flushIOSKey(a)||browser$2.android&&(c.from==_.from&&c.to==_.to&&c.insert.length==1&&c.insert.lines==2&&dispatchKey(a.contentDOM,"Enter",13)||c.from==_.from-1&&c.to==_.to&&c.insert.length==0&&dispatchKey(a.contentDOM,"Backspace",8)||c.from==_.from&&c.to==_.to+1&&c.insert.length==0&&dispatchKey(a.contentDOM,"Delete",46)))return;let k=c.insert.toString();if(a.state.facet(inputHandler$1).some(_e=>_e(a,c.from,c.to,k)))return;a.inputState.composing>=0&&a.inputState.composing++;let $;if(c.from>=_.from&&c.to<=_.to&&c.to-c.from>=(_.to-_.from)/3&&(!d||d.main.empty&&d.main.from==c.from+c.insert.length)&&a.inputState.composing<0){let _e=_.fromc.to?b.sliceDoc(c.to,_.to):"";$=b.replaceSelection(a.state.toText(_e+c.insert.sliceString(0,void 0,a.state.lineBreak)+et))}else{let _e=b.changes(c),et=d&&!b.selection.main.eq(d.main)&&d.main.to<=_e.newLength?d.main:void 0;if(b.selection.ranges.length>1&&a.inputState.composing>=0&&c.to<=_.to&&c.to>=_.to-10){let tt=a.state.sliceDoc(c.from,c.to),nt=compositionSurroundingNode(a)||a.state.doc.lineAt(_.head),it=_.to-c.to,rt=_.to-_.from;$=b.changeByRange(st=>{if(st.from==_.from&&st.to==_.to)return{changes:_e,range:et||st.map(_e)};let ot=st.to-it,at=ot-tt.length;if(st.to-st.from!=rt||a.state.sliceDoc(at,ot)!=tt||nt&&st.to>=nt.from&&st.from<=nt.to)return{range:st};let ht=b.changes({from:at,to:ot,insert:c.insert}),lt=st.to-_.to;return{changes:ht,range:et?EditorSelection.range(Math.max(0,et.anchor+lt),Math.max(0,et.head+lt)):st.map(ht)}})}else $={changes:_e,selection:et&&b.selection.replaceRange(et)}}let j="input.type";a.composing&&(j+=".compose",a.inputState.compositionFirstChange&&(j+=".start",a.inputState.compositionFirstChange=!1)),a.dispatch($,{scrollIntoView:!0,userEvent:j})}else if(d&&!d.main.eq(_)){let b=!1,k="select";a.inputState.lastSelectionTime>Date.now()-50&&(a.inputState.lastSelectionOrigin=="select"&&(b=!0),k=a.inputState.lastSelectionOrigin),a.dispatch({selection:d,scrollIntoView:b,userEvent:k})}}}function findDiff(a,e,s,o){let c=Math.min(a.length,e.length),d=0;for(;d0&&b>0&&a.charCodeAt(_-1)==e.charCodeAt(b-1);)_--,b--;if(o=="end"){let k=Math.max(0,d-Math.min(_,b));s-=_+k-d}return _=_?d-s:0,b=d+(b-_),_=d):b=b?d-s:0,_=d+(_-b),b=d),{from:d,toA:_,toB:b}}function selectionPoints(a){let e=[];if(a.root.activeElement!=a.contentDOM)return e;let{anchorNode:s,anchorOffset:o,focusNode:c,focusOffset:d}=a.observer.selectionRange;return s&&(e.push(new DOMPoint(s,o)),(c!=s||d!=o)&&e.push(new DOMPoint(c,d))),e}function selectionFromPoints(a,e){if(a.length==0)return null;let s=a[0].pos,o=a.length==2?a[1].pos:s;return s>-1&&o>-1?EditorSelection.single(s+e,o+e):null}class EditorView{constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: absolute; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(s=>this.update([s])),this.dispatch=this.dispatch.bind(this),this.root=e.root||getRoot(e.parent)||document,this.viewState=new ViewState(e.state||EditorState.create()),this.plugins=this.state.facet(viewPlugin).map(s=>new PluginInstance(s));for(let s of this.plugins)s.update(this);this.observer=new DOMObserver(this,(s,o,c)=>{applyDOMChange(this,s,o,c)},s=>{this.inputState.runScrollHandlers(this,s),this.observer.intersecting&&this.measure()}),this.inputState=new InputState(this),this.docView=new DocView(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}dispatch(...e){this._dispatch(e.length==1&&e[0]instanceof Transaction?e[0]:this.state.update(...e))}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let s=!1,o,c=this.state;for(let _ of e){if(_.startState!=c)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");c=_.state}if(this.destroyed){this.viewState.state=c;return}if(c.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(c);o=new ViewUpdate(this,c,e);let d=this.viewState.scrollTarget;try{this.updateState=2;for(let _ of e){if(d&&(d=d.map(_.changes)),_.scrollIntoView){let{main:b}=_.state.selection;d=new ScrollTarget(b.empty?b:EditorSelection.cursor(b.head,b.head>b.anchor?-1:1))}for(let b of _.effects)b.is(scrollTo)?d=new ScrollTarget(b.value):b.is(centerOn)?d=new ScrollTarget(b.value,"center"):b.is(scrollIntoView$1)&&(d=b.value)}this.viewState.update(o,d),this.bidiCache=CachedOrder.update(this.bidiCache,o.changes),o.empty||(this.updatePlugins(o),this.inputState.update(o)),s=this.docView.update(o),this.state.facet(styleModule)!=this.styleModules&&this.mountStyles(),this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(s,e.some(_=>_.isUserEvent("select.pointer")))}finally{this.updateState=0}if(o.startState.facet(theme)!=o.state.facet(theme)&&(this.viewState.mustMeasureContent=!0),(s||d||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!o.empty)for(let _ of this.state.facet(updateListener))_(o)}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let s=this.hasFocus;try{for(let o of this.plugins)o.destroy(this);this.viewState=new ViewState(e),this.plugins=e.facet(viewPlugin).map(o=>new PluginInstance(o)),this.pluginMap.clear();for(let o of this.plugins)o.update(this);this.docView=new DocView(this),this.inputState.ensureHandlers(this),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}s&&this.focus(),this.requestMeasure()}updatePlugins(e){let s=e.startState.facet(viewPlugin),o=e.state.facet(viewPlugin);if(s!=o){let c=[];for(let d of o){let _=s.indexOf(d);if(_<0)c.push(new PluginInstance(d));else{let b=this.plugins[_];b.mustUpdate=e,c.push(b)}}for(let d of this.plugins)d.mustUpdate!=e&&d.destroy(this);this.plugins=c,this.pluginMap.clear(),this.inputState.ensureHandlers(this)}else for(let c of this.plugins)c.mustUpdate=e;for(let c=0;c-1&&cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.flush();let s=null;try{for(let o=0;;o++){this.updateState=1;let c=this.viewport,d=this.viewState.measure(this);if(!d&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(o>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let _=[];d&4||([this.measureRequests,_]=[_,this.measureRequests]);let b=_.map(_e=>{try{return _e.read(this)}catch(et){return logException(this.state,et),BadMeasure}}),k=new ViewUpdate(this,this.state),$=!1,j=!1;k.flags|=d,s?s.flags|=d:s=k,this.updateState=2,k.empty||(this.updatePlugins(k),this.inputState.update(k),this.updateAttrs(),$=this.docView.update(k));for(let _e=0;_e<_.length;_e++)if(b[_e]!=BadMeasure)try{let et=_[_e];et.write&&et.write(b[_e],this)}catch(et){logException(this.state,et)}if(this.viewState.scrollTarget&&(this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,j=!0),$&&this.docView.updateSelection(!0),this.viewport.from==c.from&&this.viewport.to==c.to&&!j&&this.measureRequests.length==0)break}}finally{this.updateState=0,this.measureScheduled=-1}if(s&&!s.empty)for(let o of this.state.facet(updateListener))o(s)}get themeClasses(){return baseThemeID+" "+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+" "+this.state.facet(theme)}updateAttrs(){let e=attrsFromFacet(this,editorAttributes,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),s={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(editable)?"true":"false",class:"cm-content",style:`${browser$2.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(s["aria-readonly"]="true"),attrsFromFacet(this,contentAttributes,s),this.observer.ignore(()=>{updateAttrs(this.contentDOM,this.contentAttrs,s),updateAttrs(this.dom,this.editorAttrs,e)}),this.editorAttrs=e,this.contentAttrs=s}showAnnouncements(e){let s=!0;for(let o of e)for(let c of o.effects)if(c.is(EditorView.announce)){s&&(this.announceDOM.textContent=""),s=!1;let d=this.announceDOM.appendChild(document.createElement("div"));d.textContent=c.value}}mountStyles(){this.styleModules=this.state.facet(styleModule),StyleModule.mount(this.root,this.styleModules.concat(baseTheme$8).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=requestAnimationFrame(()=>this.measure())),e){if(e.key!=null){for(let s=0;so.spec==e)||null),s&&s.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}blockAtHeight(e,s){let o=ensureTop(s,this);return this.elementAtHeight(e-o).moveY(o)}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}visualLineAtHeight(e,s){let o=ensureTop(s,this);return this.lineBlockAtHeight(e-o).moveY(o)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}viewportLines(e,s){let o=ensureTop(s,this);for(let c of this.viewportLineBlocks)e(c.moveY(o))}get viewportLineBlocks(){return this.viewState.viewportLines}visualLineAt(e,s=0){return this.lineBlockAt(e).moveY(s+this.viewState.paddingTop)}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,s,o){return skipAtoms(this,e,moveByChar(this,e,s,o))}moveByGroup(e,s){return skipAtoms(this,e,moveByChar(this,e,s,o=>byGroup(this,e.head,o)))}moveToLineBoundary(e,s,o=!0){return moveToLineBoundary(this,e,s,o)}moveVertically(e,s,o){return skipAtoms(this,e,moveVertically(this,e,s,o))}scrollPosIntoView(e){this.dispatch({effects:scrollTo.of(EditorSelection.cursor(e))})}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,s=0){return this.docView.posFromDOM(e,s)}posAtCoords(e,s=!0){return this.readMeasured(),posAtCoords(this,e,s)}coordsAtPos(e,s=1){this.readMeasured();let o=this.docView.coordsAt(e,s);if(!o||o.left==o.right)return o;let c=this.state.doc.lineAt(e),d=this.bidiSpans(c),_=d[BidiSpan.find(d,e-c.from,-1,s)];return flattenRect(o,_.dir==Direction.LTR==s>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.heightOracle.direction}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>MaxBidiLine)return trivialOrder(e.length);let s=this.textDirection;for(let c of this.bidiCache)if(c.from==e.from&&c.dir==s)return c.order;let o=computeOrder(e.text,this.textDirection);return this.bidiCache.push(new CachedOrder(e.from,e.to,s,o)),o}get hasFocus(){var e;return(document.hasFocus()||browser$2.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM),this.docView.updateSelection()})}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,s={}){return scrollIntoView$1.of(new ScrollTarget(typeof e=="number"?EditorSelection.cursor(e):e,s.y,s.x,s.yMargin,s.xMargin))}static domEventHandlers(e){return ViewPlugin.define(()=>({}),{eventHandlers:e})}static theme(e,s){let o=StyleModule.newName(),c=[theme.of(o),styleModule.of(buildTheme(`.${o}`,e))];return s&&s.dark&&c.push(darkTheme.of(!0)),c}static baseTheme(e){return Prec.lowest(styleModule.of(buildTheme("."+baseThemeID,e,lightDarkIDs)))}}EditorView.scrollTo=scrollTo;EditorView.centerOn=centerOn;EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler$1;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.darkTheme=darkTheme;EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"});EditorView.announce=StateEffect.define();const MaxBidiLine=4096;function ensureTop(a,e){return(a==null?e.contentDOM.getBoundingClientRect().top:a)+e.viewState.paddingTop}const BadMeasure={};class CachedOrder{constructor(e,s,o,c){this.from=e,this.to=s,this.dir=o,this.order=c}static update(e,s){if(s.empty)return e;let o=[],c=e.length?e[e.length-1].dir:Direction.LTR;for(let d=Math.max(0,e.length-10);d=0;c--){let d=o[c],_=typeof d=="function"?d(a):d;_&&combineAttrs(_,s)}return s}const currentPlatform=browser$2.mac?"mac":browser$2.windows?"win":browser$2.linux?"linux":"key";function normalizeKeyName(a,e){const s=a.split(/-(?!$)/);let o=s[s.length-1];o=="Space"&&(o=" ");let c,d,_,b;for(let k=0;ko.concat(c),[]))),s}function runScopeHandlers(a,e,s){return runHandlers(getKeymap(a.state),e,a,s)}let storedPrefix=null;const PrefixTimeout=4e3;function buildKeymap(a,e=currentPlatform){let s=Object.create(null),o=Object.create(null),c=(_,b)=>{let k=o[_];if(k==null)o[_]=b;else if(k!=b)throw new Error("Key binding "+_+" is used both as a regular binding and as a multi-stroke prefix")},d=(_,b,k,$)=>{let j=s[_]||(s[_]=Object.create(null)),_e=b.split(/ (?!$)/).map(nt=>normalizeKeyName(nt,e));for(let nt=1;nt<_e.length;nt++){let it=_e.slice(0,nt).join(" ");c(it,!0),j[it]||(j[it]={preventDefault:!0,commands:[rt=>{let st=storedPrefix={view:rt,prefix:it,scope:_};return setTimeout(()=>{storedPrefix==st&&(storedPrefix=null)},PrefixTimeout),!0}]})}let et=_e.join(" ");c(et,!1);let tt=j[et]||(j[et]={preventDefault:!1,commands:[]});tt.commands.push(k),$&&(tt.preventDefault=!0)};for(let _ of a){let b=_[e]||_.key;if(!!b)for(let k of _.scope?_.scope.split(" "):["editor"])d(k,b,_.run,_.preventDefault),_.shift&&d(k,"Shift-"+b,_.shift,_.preventDefault)}return s}function runHandlers(a,e,s,o){let c=keyName(e),d=c.length==1&&c!=" ",_="",b=!1;storedPrefix&&storedPrefix.view==s&&storedPrefix.scope==o&&(_=storedPrefix.prefix+" ",(b=modifierCodes.indexOf(e.keyCode)<0)&&(storedPrefix=null));let k=_e=>{if(_e){for(let et of _e.commands)if(et(s))return!0;_e.preventDefault&&(b=!0)}return!1},$=a[o],j;if($){if(k($[_+modifiers(c,e,!d)]))return!0;if(d&&(e.shiftKey||e.altKey||e.metaKey)&&(j=base[e.keyCode])&&j!=c){if(k($[_+modifiers(j,e,!0)]))return!0}else if(d&&e.shiftKey&&k($[_+modifiers(c,e,!0)]))return!0}return b}const CanHidePrimary=!browser$2.ios,selectionConfig=Facet.define({combine(a){return combineConfig(a,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,s)=>Math.min(e,s),drawRangeCursor:(e,s)=>e||s})}});function drawSelection(a={}){return[selectionConfig.of(a),drawSelectionPlugin,hideNativeSelection]}class Piece{constructor(e,s,o,c,d){this.left=e,this.top=s,this.width=o,this.height=c,this.className=d}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width>=0&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}}const drawSelectionPlugin=ViewPlugin.fromClass(class{constructor(a){this.view=a,this.rangePieces=[],this.cursors=[],this.measureReq={read:this.readPos.bind(this),write:this.drawSel.bind(this)},this.selectionLayer=a.scrollDOM.appendChild(document.createElement("div")),this.selectionLayer.className="cm-selectionLayer",this.selectionLayer.setAttribute("aria-hidden","true"),this.cursorLayer=a.scrollDOM.appendChild(document.createElement("div")),this.cursorLayer.className="cm-cursorLayer",this.cursorLayer.setAttribute("aria-hidden","true"),a.requestMeasure(this.measureReq),this.setBlinkRate()}setBlinkRate(){this.cursorLayer.style.animationDuration=this.view.state.facet(selectionConfig).cursorBlinkRate+"ms"}update(a){let e=a.startState.facet(selectionConfig)!=a.state.facet(selectionConfig);(e||a.selectionSet||a.geometryChanged||a.viewportChanged)&&this.view.requestMeasure(this.measureReq),a.transactions.some(s=>s.scrollIntoView)&&(this.cursorLayer.style.animationName=this.cursorLayer.style.animationName=="cm-blink"?"cm-blink2":"cm-blink"),e&&this.setBlinkRate()}readPos(){let{state:a}=this.view,e=a.facet(selectionConfig),s=a.selection.ranges.map(c=>c.empty?[]:measureRange(this.view,c)).reduce((c,d)=>c.concat(d)),o=[];for(let c of a.selection.ranges){let d=c==a.selection.main;if(c.empty?!d||CanHidePrimary:e.drawRangeCursor){let _=measureCursor(this.view,c,d);_&&o.push(_)}}return{rangePieces:s,cursors:o}}drawSel({rangePieces:a,cursors:e}){if(a.length!=this.rangePieces.length||a.some((s,o)=>!s.eq(this.rangePieces[o]))){this.selectionLayer.textContent="";for(let s of a)this.selectionLayer.appendChild(s.draw());this.rangePieces=a}if(e.length!=this.cursors.length||e.some((s,o)=>!s.eq(this.cursors[o]))){let s=this.cursorLayer.children;if(s.length!==e.length){this.cursorLayer.textContent="";for(const o of e)this.cursorLayer.appendChild(o.draw())}else e.forEach((o,c)=>o.adjust(s[c]));this.cursors=e}}destroy(){this.selectionLayer.remove(),this.cursorLayer.remove()}}),themeSpec={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};CanHidePrimary&&(themeSpec[".cm-line"].caretColor="transparent !important");const hideNativeSelection=Prec.highest(EditorView.theme(themeSpec));function getBase(a){let e=a.scrollDOM.getBoundingClientRect();return{left:(a.textDirection==Direction.LTR?e.left:e.right-a.scrollDOM.clientWidth)-a.scrollDOM.scrollLeft,top:e.top-a.scrollDOM.scrollTop}}function wrappedLine(a,e,s){let o=EditorSelection.cursor(e);return{from:Math.max(s.from,a.moveToLineBoundary(o,!1,!0).from),to:Math.min(s.to,a.moveToLineBoundary(o,!0,!0).from),type:BlockType.Text}}function blockAt(a,e){let s=a.lineBlockAt(e);if(Array.isArray(s.type)){for(let o of s.type)if(o.to>e||o.to==e&&(o.to==s.to||o.type==BlockType.Text))return o}return s}function measureRange(a,e){if(e.to<=a.viewport.from||e.from>=a.viewport.to)return[];let s=Math.max(e.from,a.viewport.from),o=Math.min(e.to,a.viewport.to),c=a.textDirection==Direction.LTR,d=a.contentDOM,_=d.getBoundingClientRect(),b=getBase(a),k=window.getComputedStyle(d.firstChild),$=_.left+parseInt(k.paddingLeft)+Math.min(0,parseInt(k.textIndent)),j=_.right-parseInt(k.paddingRight),_e=blockAt(a,s),et=blockAt(a,o),tt=_e.type==BlockType.Text?_e:null,nt=et.type==BlockType.Text?et:null;if(a.lineWrapping&&(tt&&(tt=wrappedLine(a,s,tt)),nt&&(nt=wrappedLine(a,o,nt))),tt&&nt&&tt.from==nt.from)return rt(st(e.from,e.to,tt));{let at=tt?st(e.from,null,tt):ot(_e,!1),ht=nt?st(null,e.to,nt):ot(et,!0),lt=[];return(tt||_e).to<(nt||et).from-1?lt.push(it($,at.bottom,j,ht.top)):at.bottomyt&>.from<_t)for(let Et=Math.max(gt.from,yt),pt=Math.min(gt.to,_t);;){let mt=a.state.doc.lineAt(Et);for(let At of a.bidiSpans(mt)){let Ct=At.from+mt.from,Ot=At.to+mt.from;if(Ct>=pt)break;Ot>Et&&ft(Math.max(Ct,Et),at==null&&Ct<=yt,Math.min(Ot,pt),ht==null&&Ot>=_t,At.dir)}if(Et=mt.to+1,Et>=pt)break}return dt.length==0&&ft(yt,at==null,_t,ht==null,a.textDirection),{top:ut,bottom:ct,horizontal:dt}}function ot(at,ht){let lt=_.top+(ht?at.top:at.bottom);return{top:lt,bottom:lt,horizontal:[]}}}function measureCursor(a,e,s){let o=a.coordsAtPos(e.head,e.assoc||1);if(!o)return null;let c=getBase(a);return new Piece(o.left-c.left,o.top-c.top,-1,o.bottom-o.top,s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary")}function iterMatches(a,e,s,o,c){e.lastIndex=0;for(let d=a.iterRange(s,o),_=s,b;!d.next().done;_+=d.value.length)if(!d.lineBreak)for(;b=e.exec(d.value);)c(_+b.index,_+b.index+b[0].length,b)}function matchRanges(a,e){let s=a.visibleRanges;if(s.length==1&&s[0].from==a.viewport.from&&s[0].to==a.viewport.to)return s;let o=[];for(let{from:c,to:d}of s)c=Math.max(a.state.doc.lineAt(c).from,c-e),d=Math.min(a.state.doc.lineAt(d).to,d+e),o.length&&o[o.length-1].to>=c?o[o.length-1].to=d:o.push({from:c,to:d});return o}class MatchDecorator{constructor(e){let{regexp:s,decoration:o,boundary:c,maxLength:d=1e3}=e;if(!s.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");this.regexp=s,this.getDeco=typeof o=="function"?o:()=>o,this.boundary=c,this.maxLength=d}createDeco(e){let s=new RangeSetBuilder;for(let{from:o,to:c}of matchRanges(e,this.maxLength))iterMatches(e.state.doc,this.regexp,o,c,(d,_,b)=>s.add(d,_,this.getDeco(b,e,d)));return s.finish()}updateDeco(e,s){let o=1e9,c=-1;return e.docChanged&&e.changes.iterChanges((d,_,b,k)=>{k>e.view.viewport.from&&b1e3?this.createDeco(e.view):c>-1?this.updateRange(e.view,s.map(e.changes),o,c):s}updateRange(e,s,o,c){for(let d of e.visibleRanges){let _=Math.max(d.from,o),b=Math.min(d.to,c);if(b>_){let k=e.state.doc.lineAt(_),$=k.tok.from;_--)if(this.boundary.test(k.text[_-1-k.from])){j=_;break}for(;b<$.to;b++)if(this.boundary.test($.text[b-$.from])){_e=b;break}}let et=[],tt;if(k==$)for(this.regexp.lastIndex=j-k.from;(tt=this.regexp.exec(k.text))&&tt.index<_e-k.from;){let nt=tt.index+k.from;et.push(this.getDeco(tt,e,nt).range(nt,nt+tt[0].length))}else iterMatches(e.state.doc,this.regexp,j,_e,(nt,it,rt)=>et.push(this.getDeco(rt,e,nt).range(nt,it)));s=s.update({filterFrom:j,filterTo:_e,filter:(nt,it)=>nt_e,add:et})}}return s}}const UnicodeRegexpSupport=/x/.unicode!=null?"gu":"g",Specials=new RegExp(`[\0-\b --\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\uFEFF\uFFF9-\uFFFC]`,UnicodeRegexpSupport),Names={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let _supportsTabSize=null;function supportsTabSize(){var a;if(_supportsTabSize==null&&typeof document!="undefined"&&document.body){let e=document.body.style;_supportsTabSize=((a=e.tabSize)!==null&&a!==void 0?a:e.MozTabSize)!=null}return _supportsTabSize||!1}const specialCharConfig=Facet.define({combine(a){let e=combineConfig(a,{render:null,specialChars:Specials,addSpecialChars:null});return(e.replaceTabs=!supportsTabSize())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,UnicodeRegexpSupport)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,UnicodeRegexpSupport)),e}});function highlightSpecialChars(a={}){return[specialCharConfig.of(a),specialCharPlugin()]}let _plugin=null;function specialCharPlugin(){return _plugin||(_plugin=ViewPlugin.fromClass(class{constructor(a){this.view=a,this.decorations=Decoration.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(a.state.facet(specialCharConfig)),this.decorations=this.decorator.createDeco(a)}makeDecorator(a){return new MatchDecorator({regexp:a.specialChars,decoration:(e,s,o)=>{let{doc:c}=s.state,d=codePointAt(e[0],0);if(d==9){let _=c.lineAt(o),b=s.state.tabSize,k=countColumn(_.text,b,o-_.from);return Decoration.replace({widget:new TabWidget((b-k%b)*this.view.defaultCharacterWidth)})}return this.decorationCache[d]||(this.decorationCache[d]=Decoration.replace({widget:new SpecialCharWidget(a,d)}))},boundary:a.replaceTabs?void 0:/[^]/})}update(a){let e=a.state.facet(specialCharConfig);a.startState.facet(specialCharConfig)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(a.view)):this.decorations=this.decorator.updateDeco(a,this.decorations)}},{decorations:a=>a.decorations}))}const DefaultPlaceholder="\u2022";function placeholder$1(a){return a>=32?DefaultPlaceholder:a==10?"\u2424":String.fromCharCode(9216+a)}class SpecialCharWidget extends WidgetType{constructor(e,s){super(),this.options=e,this.code=s}eq(e){return e.code==this.code}toDOM(e){let s=placeholder$1(this.code),o=e.state.phrase("Control character")+" "+(Names[this.code]||"0x"+this.code.toString(16)),c=this.options.render&&this.options.render(this.code,o,s);if(c)return c;let d=document.createElement("span");return d.textContent=s,d.title=o,d.setAttribute("aria-label",o),d.className="cm-specialChar",d}ignoreEvent(){return!1}}class TabWidget extends WidgetType{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function highlightActiveLine(){return activeLineHighlighter}const lineDeco=Decoration.line({class:"cm-activeLine"}),activeLineHighlighter=ViewPlugin.fromClass(class{constructor(a){this.decorations=this.getDeco(a)}update(a){(a.docChanged||a.selectionSet)&&(this.decorations=this.getDeco(a.view))}getDeco(a){let e=-1,s=[];for(let o of a.state.selection.ranges){if(!o.empty)return Decoration.none;let c=a.lineBlockAt(o.head);c.from>e&&(s.push(lineDeco.range(c.from)),e=c.from)}return Decoration.set(s)}},{decorations:a=>a.decorations}),fromHistory=Annotation.define(),isolateHistory=Annotation.define(),invertedEffects=Facet.define(),historyConfig=Facet.define({combine(a){return combineConfig(a,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}});function changeEnd(a){let e=0;return a.iterChangedRanges((s,o)=>e=o),e}const historyField_=StateField.define({create(){return HistoryState.empty},update(a,e){let s=e.state.facet(historyConfig),o=e.annotation(fromHistory);if(o){let k=e.docChanged?EditorSelection.single(changeEnd(e.changes)):void 0,$=HistEvent.fromTransaction(e,k),j=o.side,_e=j==0?a.undone:a.done;return $?_e=updateBranch(_e,_e.length,s.minDepth,$):_e=addSelection(_e,e.startState.selection),new HistoryState(j==0?o.rest:_e,j==0?_e:o.rest)}let c=e.annotation(isolateHistory);if((c=="full"||c=="before")&&(a=a.isolate()),e.annotation(Transaction.addToHistory)===!1)return e.changes.empty?a:a.addMapping(e.changes.desc);let d=HistEvent.fromTransaction(e),_=e.annotation(Transaction.time),b=e.annotation(Transaction.userEvent);return d?a=a.addChanges(d,_,b,s.newGroupDelay,s.minDepth):e.selection&&(a=a.addSelection(e.startState.selection,_,b,s.newGroupDelay)),(c=="full"||c=="after")&&(a=a.isolate()),a},toJSON(a){return{done:a.done.map(e=>e.toJSON()),undone:a.undone.map(e=>e.toJSON())}},fromJSON(a){return new HistoryState(a.done.map(HistEvent.fromJSON),a.undone.map(HistEvent.fromJSON))}});function history(a={}){return[historyField_,historyConfig.of(a),EditorView.domEventHandlers({beforeinput(e,s){let o=e.inputType=="historyUndo"?undo:e.inputType=="historyRedo"?redo:null;return o?(e.preventDefault(),o(s)):!1}})]}function cmd(a,e){return function({state:s,dispatch:o}){if(!e&&s.readOnly)return!1;let c=s.field(historyField_,!1);if(!c)return!1;let d=c.pop(a,s,e);return d?(o(d),!0):!1}}const undo=cmd(0,!1),redo=cmd(1,!1),undoSelection=cmd(0,!0),redoSelection=cmd(1,!0);class HistEvent{constructor(e,s,o,c,d){this.changes=e,this.effects=s,this.mapped=o,this.startSelection=c,this.selectionsAfter=d}setSelAfter(e){return new HistEvent(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,s,o;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(s=this.mapped)===null||s===void 0?void 0:s.toJSON(),startSelection:(o=this.startSelection)===null||o===void 0?void 0:o.toJSON(),selectionsAfter:this.selectionsAfter.map(c=>c.toJSON())}}static fromJSON(e){return new HistEvent(e.changes&&ChangeSet.fromJSON(e.changes),[],e.mapped&&ChangeDesc.fromJSON(e.mapped),e.startSelection&&EditorSelection.fromJSON(e.startSelection),e.selectionsAfter.map(EditorSelection.fromJSON))}static fromTransaction(e,s){let o=none$1;for(let c of e.startState.facet(invertedEffects)){let d=c(e);d.length&&(o=o.concat(d))}return!o.length&&e.changes.empty?null:new HistEvent(e.changes.invert(e.startState.doc),o,void 0,s||e.startState.selection,none$1)}static selection(e){return new HistEvent(void 0,none$1,void 0,void 0,e)}}function updateBranch(a,e,s,o){let c=e+1>s+20?e-s-1:0,d=a.slice(c,e);return d.push(o),d}function isAdjacent(a,e){let s=[],o=!1;return a.iterChangedRanges((c,d)=>s.push(c,d)),e.iterChangedRanges((c,d,_,b)=>{for(let k=0;k=$&&_<=j&&(o=!0)}}),o}function eqSelectionShape(a,e){return a.ranges.length==e.ranges.length&&a.ranges.filter((s,o)=>s.empty!=e.ranges[o].empty).length===0}function conc(a,e){return a.length?e.length?a.concat(e):a:e}const none$1=[],MaxSelectionsPerEvent=200;function addSelection(a,e){if(a.length){let s=a[a.length-1],o=s.selectionsAfter.slice(Math.max(0,s.selectionsAfter.length-MaxSelectionsPerEvent));return o.length&&o[o.length-1].eq(e)?a:(o.push(e),updateBranch(a,a.length-1,1e9,s.setSelAfter(o)))}else return[HistEvent.selection([e])]}function popSelection(a){let e=a[a.length-1],s=a.slice();return s[a.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),s}function addMappingToBranch(a,e){if(!a.length)return a;let s=a.length,o=none$1;for(;s;){let c=mapEvent(a[s-1],e,o);if(c.changes&&!c.changes.empty||c.effects.length){let d=a.slice(0,s);return d[s-1]=c,d}else e=c.mapped,s--,o=c.selectionsAfter}return o.length?[HistEvent.selection(o)]:none$1}function mapEvent(a,e,s){let o=conc(a.selectionsAfter.length?a.selectionsAfter.map(b=>b.map(e)):none$1,s);if(!a.changes)return HistEvent.selection(o);let c=a.changes.map(e),d=e.mapDesc(a.changes,!0),_=a.mapped?a.mapped.composeDesc(d):d;return new HistEvent(c,StateEffect.mapEffects(a.effects,e),_,a.startSelection.map(d),o)}const joinableUserEvent=/^(input\.type|delete)($|\.)/;class HistoryState{constructor(e,s,o=0,c=void 0){this.done=e,this.undone=s,this.prevTime=o,this.prevUserEvent=c}isolate(){return this.prevTime?new HistoryState(this.done,this.undone):this}addChanges(e,s,o,c,d){let _=this.done,b=_[_.length-1];return b&&b.changes&&!b.changes.empty&&e.changes&&(!o||joinableUserEvent.test(o))&&(!b.selectionsAfter.length&&s-this.prevTime0&&s-this.prevTime{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=NodeType.match(e)),s=>{let o=e(s);return o===void 0?null:[this,o]}}}NodeProp.closedBy=new NodeProp({deserialize:a=>a.split(" ")});NodeProp.openedBy=new NodeProp({deserialize:a=>a.split(" ")});NodeProp.group=new NodeProp({deserialize:a=>a.split(" ")});NodeProp.contextHash=new NodeProp({perNode:!0});NodeProp.lookAhead=new NodeProp({perNode:!0});NodeProp.mounted=new NodeProp({perNode:!0});const noProps=Object.create(null);class NodeType{constructor(e,s,o,c=0){this.name=e,this.props=s,this.id=o,this.flags=c}static define(e){let s=e.props&&e.props.length?Object.create(null):noProps,o=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),c=new NodeType(e.name||"",s,e.id,o);if(e.props){for(let d of e.props)if(Array.isArray(d)||(d=d(c)),d){if(d[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");s[d[0].id]=d[1]}}return c}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let s=this.prop(NodeProp.group);return s?s.indexOf(e)>-1:!1}return this.id==e}static match(e){let s=Object.create(null);for(let o in e)for(let c of o.split(" "))s[c]=e[o];return o=>{for(let c=o.prop(NodeProp.group),d=-1;d<(c?c.length:0);d++){let _=s[d<0?o.name:c[d]];if(_)return _}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(e){this.types=e;for(let s=0;s_.node;;){let k=!1;if(_.from<=d&&_.to>=c&&(_.type.isAnonymous||s(_.type,_.from,_.to,b)!==!1)){if(_.firstChild())continue;_.type.isAnonymous||(k=!0)}for(;k&&o&&o(_.type,_.from,_.to,b),k=_.type.isAnonymous,!_.nextSibling();){if(!_.parent())return;k=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let s in this.props)e.push([+s,this.props[s]]);return e}balance(e={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(s,o,c)=>new Tree(this.type,s,o,c,this.propValues),e.makeTree||((s,o,c)=>new Tree(NodeType.none,s,o,c)))}static build(e){return buildTree(e)}}Tree.empty=new Tree(NodeType.none,[],[],0);class FlatBufferCursor{constructor(e,s){this.buffer=e,this.index=s}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new FlatBufferCursor(this.buffer,this.index)}}class TreeBuffer{constructor(e,s,o){this.buffer=e,this.length=s,this.set=o}get type(){return NodeType.none}toString(){let e=[];for(let s=0;s0));k=_[k+3]);return b}slice(e,s,o,c){let d=this.buffer,_=new Uint16Array(s-e);for(let b=e,k=0;b=e&&se;case 1:return s<=e&&o>e;case 2:return o>e;case 4:return!0}}function enterUnfinishedNodesBefore(a,e){let s=a.childBefore(e);for(;s;){let o=s.lastChild;if(!o||o.to!=s.to)break;o.type.isError&&o.from==o.to?(a=s,s=o.prevSibling):s=o}return a}function resolveNode(a,e,s,o){for(var c;a.from==a.to||(s<1?a.from>=e:a.from>e)||(s>-1?a.to<=e:a.to0?b.length:-1;e!=$;e+=s){let j=b[e],_e=k[e]+_._from;if(!!checkSide(c,o,_e,_e+j.length)){if(j instanceof TreeBuffer){if(d&2)continue;let et=j.findChild(0,j.buffer.length,s,o-_e,c);if(et>-1)return new BufferNode(new BufferContext(_,j,e,_e),null,et)}else if(d&1||!j.type.isAnonymous||hasChild(j)){let et;if(!(d&1)&&j.props&&(et=j.prop(NodeProp.mounted))&&!et.overlay)return new TreeNode(et.tree,_e,e,_);let tt=new TreeNode(j,_e,e,_);return d&1||!tt.type.isAnonymous?tt:tt.nextChild(s<0?j.children.length-1:0,s,o,c)}}}if(d&1||!_.type.isAnonymous||(_.index>=0?e=_.index+s:e=s<0?-1:_._parent.node.children.length,_=_._parent,!_))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this.node.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this.node.children.length-1,-1,e,-2)}enter(e,s,o=!0,c=!0){let d;if(o&&(d=this.node.prop(NodeProp.mounted))&&d.overlay){let _=e-this.from;for(let{from:b,to:k}of d.overlay)if((s>0?b<=_:b<_)&&(s<0?k>=_:k>_))return new TreeNode(d.tree,d.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,s,c?0:2)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get cursor(){return new TreeCursor(this)}get tree(){return this.node}toTree(){return this.node}resolve(e,s=0){return resolveNode(this,e,s,!1)}resolveInner(e,s=0){return resolveNode(this,e,s,!0)}enterUnfinishedNodesBefore(e){return enterUnfinishedNodesBefore(this,e)}getChild(e,s=null,o=null){let c=getChildren(this,e,s,o);return c.length?c[0]:null}getChildren(e,s=null,o=null){return getChildren(this,e,s,o)}toString(){return this.node.toString()}}function getChildren(a,e,s,o){let c=a.cursor,d=[];if(!c.firstChild())return d;if(s!=null){for(;!c.type.is(s);)if(!c.nextSibling())return d}for(;;){if(o!=null&&c.type.is(o))return d;if(c.type.is(e)&&d.push(c.node),!c.nextSibling())return o==null?d:[]}}class BufferContext{constructor(e,s,o,c){this.parent=e,this.buffer=s,this.index=o,this.start=c}}class BufferNode{constructor(e,s,o){this.context=e,this._parent=s,this.index=o,this.type=e.buffer.set.types[e.buffer.buffer[o]]}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}child(e,s,o){let{buffer:c}=this.context,d=c.findChild(this.index+4,c.buffer[this.index+3],e,s-this.context.start,o);return d<0?null:new BufferNode(this.context,this,d)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,s,o,c=!0){if(!c)return null;let{buffer:d}=this.context,_=d.findChild(this.index+4,d.buffer[this.index+3],s>0?1:-1,e-this.context.start,s);return _<0?null:new BufferNode(this.context,this,_)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,s=e.buffer[this.index+3];return s<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new BufferNode(this.context,this._parent,s):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,s=this._parent?this._parent.index+4:0;return this.index==s?this.externalSibling(-1):new BufferNode(this.context,this._parent,e.findChild(s,this.index,-1,0,4))}get cursor(){return new TreeCursor(this)}get tree(){return null}toTree(){let e=[],s=[],{buffer:o}=this.context,c=this.index+4,d=o.buffer[this.index+3];if(d>c){let _=o.buffer[this.index+1],b=o.buffer[this.index+2];e.push(o.slice(c,d,_,b)),s.push(0)}return new Tree(this.type,e,s,this.to-this.from)}resolve(e,s=0){return resolveNode(this,e,s,!1)}resolveInner(e,s=0){return resolveNode(this,e,s,!0)}enterUnfinishedNodesBefore(e){return enterUnfinishedNodesBefore(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,s=null,o=null){let c=getChildren(this,e,s,o);return c.length?c[0]:null}getChildren(e,s=null,o=null){return getChildren(this,e,s,o)}}class TreeCursor{constructor(e,s=0){if(this.mode=s,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof TreeNode)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let o=e._parent;o;o=o._parent)this.stack.unshift(o.index);this.bufferNode=e,this.yieldBuf(e.index)}}get name(){return this.type.name}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,s){this.index=e;let{start:o,buffer:c}=this.buffer;return this.type=s||c.set.types[c.buffer[e]],this.from=o+c.buffer[e+1],this.to=o+c.buffer[e+2],!0}yield(e){return e?e instanceof TreeNode?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,s,o){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree.node.children.length-1:0,e,s,o,this.mode));let{buffer:c}=this.buffer,d=c.findChild(this.index+4,c.buffer[this.index+3],e,s-this.buffer.start,o);return d<0?!1:(this.stack.push(this.index),this.yieldBuf(d))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,s,o=!0,c=!0){return this.buffer?c?this.enterChild(1,e,s):!1:this.yield(this._tree.enter(e,s,o&&!(this.mode&1),c))}parent(){if(!this.buffer)return this.yieldNode(this.mode&1?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&1?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:s}=this.buffer,o=this.stack.length-1;if(e<0){let c=o<0?0:this.stack[o]+4;if(this.index!=c)return this.yieldBuf(s.findChild(c,this.index,-1,0,4))}else{let c=s.buffer[this.index+3];if(c<(o<0?s.buffer.length:s.buffer[this.stack[o]+3]))return this.yieldBuf(c)}return o<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let s,o,{buffer:c}=this;if(c){if(e>0){if(this.index-1)for(let d=s+e,_=e<0?-1:o.node.children.length;d!=_;d+=e){let b=o.node.children[d];if(this.mode&1||b instanceof TreeBuffer||!b.type.isAnonymous||hasChild(b))return!1}return!0}move(e,s){if(s&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,s=0){for(;(this.from==this.to||(s<1?this.from>=e:this.from>e)||(s>-1?this.to<=e:this.to=0;){for(let _=e;_;_=_._parent)if(_.index==c){if(c==this.index)return _;s=_,o=d+1;break e}c=this.stack[--d]}}for(let c=o;ce instanceof TreeBuffer||!e.type.isAnonymous||hasChild(e))}function buildTree(a){var e;let{buffer:s,nodeSet:o,maxBufferLength:c=DefaultBufferLength,reused:d=[],minRepeatType:_=o.types.length}=a,b=Array.isArray(s)?new FlatBufferCursor(s,s.length):s,k=o.types,$=0,j=0;function _e(ht,lt,ut,ct,dt){let{id:ft,start:yt,end:_t,size:gt}=b,Et=j;for(;gt<0;)if(b.next(),gt==-1){let Ot=d[ft];ut.push(Ot),ct.push(yt-ht);return}else if(gt==-3){$=ft;return}else if(gt==-4){j=ft;return}else throw new RangeError(`Unrecognized record size: ${gt}`);let pt=k[ft],mt,At,Ct=yt-ht;if(_t-yt<=c&&(At=it(b.pos-lt,dt))){let Ot=new Uint16Array(At.size-At.skip),St=b.pos-At.size,Tt=Ot.length;for(;b.pos>St;)Tt=rt(At.start,Ot,Tt);mt=new TreeBuffer(Ot,_t-At.start,o),Ct=At.start-ht}else{let Ot=b.pos-gt;b.next();let St=[],Tt=[],vt=ft>=_?ft:-1,bt=0,xt=_t;for(;b.pos>Ot;)vt>=0&&b.id==vt&&b.size>=0?(b.end<=xt-c&&(tt(St,Tt,yt,bt,b.end,xt,vt,Et),bt=St.length,xt=b.end),b.next()):_e(yt,Ot,St,Tt,vt);if(vt>=0&&bt>0&&bt-1&&bt>0){let Rt=et(pt);mt=balanceRange(pt,St,Tt,0,St.length,0,_t-yt,Rt,Rt)}else mt=nt(pt,St,Tt,_t-yt,Et-_t)}ut.push(mt),ct.push(Ct)}function et(ht){return(lt,ut,ct)=>{let dt=0,ft=lt.length-1,yt,_t;if(ft>=0&&(yt=lt[ft])instanceof Tree){if(!ft&&yt.type==ht&&yt.length==ct)return yt;(_t=yt.prop(NodeProp.lookAhead))&&(dt=ut[ft]+yt.length+_t)}return nt(ht,lt,ut,ct,dt)}}function tt(ht,lt,ut,ct,dt,ft,yt,_t){let gt=[],Et=[];for(;ht.length>ct;)gt.push(ht.pop()),Et.push(lt.pop()+ut-dt);ht.push(nt(o.types[yt],gt,Et,ft-dt,_t-ft)),lt.push(dt-ut)}function nt(ht,lt,ut,ct,dt=0,ft){if($){let yt=[NodeProp.contextHash,$];ft=ft?[yt].concat(ft):[yt]}if(dt>25){let yt=[NodeProp.lookAhead,dt];ft=ft?[yt].concat(ft):[yt]}return new Tree(ht,lt,ut,ct,ft)}function it(ht,lt){let ut=b.fork(),ct=0,dt=0,ft=0,yt=ut.end-c,_t={size:0,start:0,skip:0};e:for(let gt=ut.pos-ht;ut.pos>gt;){let Et=ut.size;if(ut.id==lt&&Et>=0){_t.size=ct,_t.start=dt,_t.skip=ft,ft+=4,ct+=4,ut.next();continue}let pt=ut.pos-Et;if(Et<0||pt=_?4:0,At=ut.start;for(ut.next();ut.pos>pt;){if(ut.size<0)if(ut.size==-3)mt+=4;else break e;else ut.id>=_&&(mt+=4);ut.next()}dt=At,ct+=Et,ft+=mt}return(lt<0||ct==ht)&&(_t.size=ct,_t.start=dt,_t.skip=ft),_t.size>4?_t:void 0}function rt(ht,lt,ut){let{id:ct,start:dt,end:ft,size:yt}=b;if(b.next(),yt>=0&&ct<_){let _t=ut;if(yt>4){let gt=b.pos-(yt-4);for(;b.pos>gt;)ut=rt(ht,lt,ut)}lt[--ut]=_t,lt[--ut]=ft-ht,lt[--ut]=dt-ht,lt[--ut]=ct}else yt==-3?$=ct:yt==-4&&(j=ct);return ut}let st=[],ot=[];for(;b.pos>0;)_e(a.start||0,a.bufferStart||0,st,ot,-1);let at=(e=a.length)!==null&&e!==void 0?e:st.length?ot[0]+st[0].length:0;return new Tree(k[a.topID],st.reverse(),ot.reverse(),at)}const nodeSizeCache=new WeakMap;function nodeSize(a,e){if(!a.isAnonymous||e instanceof TreeBuffer||e.type!=a)return 1;let s=nodeSizeCache.get(e);if(s==null){s=1;for(let o of e.children){if(o.type!=a||!(o instanceof Tree)){s=1;break}s+=nodeSize(a,o)}nodeSizeCache.set(e,s)}return s}function balanceRange(a,e,s,o,c,d,_,b,k){let $=0;for(let nt=o;nt=j)break;ut+=ct}if(at==ht+1){if(ut>j){let ct=nt[ht];tt(ct.children,ct.positions,0,ct.children.length,it[ht]+ot);continue}_e.push(nt[ht])}else{let ct=it[at-1]+nt[at-1].length-lt;_e.push(balanceRange(a,nt,it,ht,at,lt,ct,null,k))}et.push(lt+ot-d)}}return tt(e,s,o,c,0),(b||k)(_e,et,_)}class TreeFragment{constructor(e,s,o,c,d=!1,_=!1){this.from=e,this.to=s,this.tree=o,this.offset=c,this.open=(d?1:0)|(_?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,s=[],o=!1){let c=[new TreeFragment(0,e.length,e,0,!1,o)];for(let d of s)d.to>e.length&&c.push(d);return c}static applyChanges(e,s,o=128){if(!s.length)return e;let c=[],d=1,_=e.length?e[0]:null;for(let b=0,k=0,$=0;;b++){let j=b=o)for(;_&&_.from<_e;){let et=_;if(k>=et.from||_e<=et.to||$){let tt=Math.max(et.from,k)-$,nt=Math.min(et.to,_e)-$;et=tt>=nt?null:new TreeFragment(tt,nt,et.tree,et.offset+$,b>0,!!j)}if(et&&c.push(et),_.to>_e)break;_=dnew Range(c.from,c.to)):[new Range(0,0)]:[new Range(0,e.length)],this.createParse(e,s||[],o)}parse(e,s,o){let c=this.startParse(e,s,o);for(;;){let d=c.advance();if(d)return d}}}class StringInput{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,s){return this.string.slice(e,s)}}new NodeProp({perNode:!0});var _a;const languageDataProp=new NodeProp;function defineLanguageFacet(a){return Facet.define({combine:a?e=>e.concat(a):void 0})}class Language{constructor(e,s,o,c=[]){this.data=e,this.topNode=o,EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}}),this.parser=s,this.extension=[language.of(this),EditorState.languageData.of((d,_,b)=>d.facet(languageDataFacetAt(d,_,b)))].concat(c)}isActiveAt(e,s,o=-1){return languageDataFacetAt(e,s,o)==this.data}findRegions(e){let s=e.facet(language);if((s==null?void 0:s.data)==this.data)return[{from:0,to:e.doc.length}];if(!s||!s.allowsNesting)return[];let o=[],c=(d,_)=>{if(d.prop(languageDataProp)==this.data){o.push({from:_,to:_+d.length});return}let b=d.prop(NodeProp.mounted);if(b){if(b.tree.prop(languageDataProp)==this.data){if(b.overlay)for(let k of b.overlay)o.push({from:k.from+_,to:k.to+_});else o.push({from:_,to:_+d.length});return}else if(b.overlay){let k=o.length;if(c(b.tree,b.overlay[0].from+_),o.length>k)return}}for(let k=0;ko.isTop?s:void 0)]}))}configure(e){return new LRLanguage(this.data,this.parser.configure(e))}get allowsNesting(){return this.parser.wrappers.length>0}}function syntaxTree(a){let e=a.field(Language.state,!1);return e?e.tree:Tree.empty}class DocInput{constructor(e,s=e.length){this.doc=e,this.length=s,this.cursorPos=0,this.string="",this.cursor=e.iter()}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,s){let o=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,s):this.string.slice(e-o,s-o)}}let currentContext=null;class ParseContext{constructor(e,s,o=[],c,d,_,b,k){this.parser=e,this.state=s,this.fragments=o,this.tree=c,this.treeLen=d,this.viewport=_,this.skipped=b,this.scheduleOn=k,this.parse=null,this.tempSkipped=[]}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments)}work(e,s){return s!=null&&s>=this.state.doc.length&&(s=void 0),this.tree!=Tree.empty&&this.isDone(s!=null?s:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var o;if(typeof e=="number"){let c=Date.now()+e;e=()=>Date.now()>c}for(this.parse||(this.parse=this.startParse()),s!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>s)&&s=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(s=this.parse.advance()););}),this.treeLen=e,this.tree=s,this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let s=currentContext;currentContext=this;try{return e()}finally{currentContext=s}}withoutTempSkipped(e){for(let s;s=this.tempSkipped.pop();)e=cutFragments(e,s.from,s.to);return e}changes(e,s){let{fragments:o,tree:c,treeLen:d,viewport:_,skipped:b}=this;if(this.takeTree(),!e.empty){let k=[];if(e.iterChangedRanges(($,j,_e,et)=>k.push({fromA:$,toA:j,fromB:_e,toB:et})),o=TreeFragment.applyChanges(o,k),c=Tree.empty,d=0,_={from:e.mapPos(_.from,-1),to:e.mapPos(_.to,1)},this.skipped.length){b=[];for(let $ of this.skipped){let j=e.mapPos($.from,1),_e=e.mapPos($.to,-1);j<_e&&b.push({from:j,to:_e})}}}return new ParseContext(this.parser,s,o,c,d,_,b,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let s=this.skipped.length;for(let o=0;oe.from&&(this.fragments=cutFragments(this.fragments,c,d),this.skipped.splice(o--,1))}return this.skipped.length>=s?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,s){this.skipped.push({from:e,to:s})}static getSkippingParser(e){return new class extends Parser{createParse(s,o,c){let d=c[0].from,_=c[c.length-1].to;return{parsedPos:d,advance(){let k=currentContext;if(k){for(let $ of c)k.tempSkipped.push($);e&&(k.scheduleOn=k.scheduleOn?Promise.all([k.scheduleOn,e]):e)}return this.parsedPos=_,new Tree(NodeType.none,[],[],_-d)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let s=this.fragments;return this.treeLen>=e&&s.length&&s[0].from==0&&s[0].to>=e}static get(){return currentContext}}function cutFragments(a,e,s){return TreeFragment.applyChanges(a,[{fromA:e,toA:s,fromB:e,toB:s}])}class LanguageState{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let s=this.context.changes(e.changes,e.state),o=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),s.viewport.to);return s.work(20,o)||s.takeTree(),new LanguageState(s)}static init(e){let s=Math.min(3e3,e.doc.length),o=new ParseContext(e.facet(language).parser,e,[],Tree.empty,0,{from:0,to:s},[],null);return o.work(20,s)||o.takeTree(),new LanguageState(o)}}Language.state=StateField.define({create:LanguageState.init,update(a,e){for(let s of e.effects)if(s.is(Language.setState))return s.value;return e.startState.facet(language)!=e.state.facet(language)?LanguageState.init(e.state):a.apply(e)}});let requestIdle=a=>{let e=setTimeout(()=>a(),500);return()=>clearTimeout(e)};typeof requestIdleCallback!="undefined"&&(requestIdle=a=>{let e=-1,s=setTimeout(()=>{e=requestIdleCallback(a,{timeout:500-100})},100);return()=>e<0?clearTimeout(s):cancelIdleCallback(e)});const isInputPending=typeof navigator!="undefined"&&((_a=navigator.scheduling)===null||_a===void 0?void 0:_a.isInputPending)?()=>navigator.scheduling.isInputPending():null,parseWorker=ViewPlugin.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let s=this.view.state.field(Language.state).context;(s.updateViewport(e.view.viewport)||this.view.viewport.to>s.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(s)}scheduleWork(){if(this.working)return;let{state:e}=this.view,s=e.field(Language.state);(s.tree!=s.context.tree||!s.context.isDone(e.doc.length))&&(this.working=requestIdle(this.work))}work(e){this.working=null;let s=Date.now();if(this.chunkEndc+1e3,k=d.context.work(()=>isInputPending&&isInputPending()||Date.now()>_,c+(b?0:1e5));this.chunkBudget-=Date.now()-s,(k||this.chunkBudget<=0)&&(d.context.takeTree(),this.view.dispatch({effects:Language.setState.of(new LanguageState(d.context))})),this.chunkBudget>0&&!(k&&!b)&&this.scheduleWork(),this.checkAsyncSchedule(d.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(s=>logException(this.view.state,s)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),language=Facet.define({combine(a){return a.length?a[0]:null},enables:[Language.state,parseWorker]});class LanguageSupport{constructor(e,s=[]){this.language=e,this.support=s,this.extension=[e,s]}}const indentService=Facet.define(),indentUnit=Facet.define({combine:a=>{if(!a.length)return" ";if(!/^(?: +|\t+)$/.test(a[0]))throw new Error("Invalid indent unit: "+JSON.stringify(a[0]));return a[0]}});function getIndentUnit(a){let e=a.facet(indentUnit);return e.charCodeAt(0)==9?a.tabSize*e.length:e.length}function indentString(a,e){let s="",o=a.tabSize;if(a.facet(indentUnit).charCodeAt(0)==9)for(;e>=o;)s+=" ",e-=o;for(let c=0;c=o.from&&c<=o.to?d&&c==e?{text:"",from:e}:(s<0?c-1&&(d+=_-this.countColumn(o,o.search(/\S|$/))),d}countColumn(e,s=e.length){return countColumn(e,this.state.tabSize,s)}lineIndent(e,s=1){let{text:o,from:c}=this.lineAt(e,s),d=this.options.overrideIndentation;if(d){let _=d(c);if(_>-1)return _}return this.countColumn(o,o.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const indentNodeProp=new NodeProp;function syntaxIndentation(a,e,s){return indentFrom(e.resolveInner(s).enterUnfinishedNodesBefore(s),s,a)}function ignoreClosed(a){return a.pos==a.options.simulateBreak&&a.options.simulateDoubleBreak}function indentStrategy(a){let e=a.type.prop(indentNodeProp);if(e)return e;let s=a.firstChild,o;if(s&&(o=s.type.prop(NodeProp.closedBy))){let c=a.lastChild,d=c&&o.indexOf(c.name)>-1;return _=>delimitedStrategy(_,!0,1,void 0,d&&!ignoreClosed(_)?c.from:void 0)}return a.parent==null?topIndent:null}function indentFrom(a,e,s){for(;a;a=a.parent){let o=indentStrategy(a);if(o)return o(new TreeIndentContext(s,e,a))}return null}function topIndent(){return 0}class TreeIndentContext extends IndentContext{constructor(e,s,o){super(e.state,e.options),this.base=e,this.pos=s,this.node=o}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let e=this.state.doc.lineAt(this.node.from);for(;;){let s=this.node.resolve(e.from);for(;s.parent&&s.parent.from==s.from;)s=s.parent;if(isParent(s,this.node))break;e=this.state.doc.lineAt(s.from)}return this.lineIndent(e.from)}continue(){let e=this.node.parent;return e?indentFrom(e,this.pos,this.base):0}}function isParent(a,e){for(let s=e;s;s=s.parent)if(a==s)return!0;return!1}function bracketedAligned(a){let e=a.node,s=e.childAfter(e.from),o=e.lastChild;if(!s)return null;let c=a.options.simulateBreak,d=a.state.doc.lineAt(s.from),_=c==null||c<=d.from?d.to:Math.min(d.to,c);for(let b=s.to;;){let k=e.childAfter(b);if(!k||k==o)return null;if(!k.type.isSkipped)return k.from<_?s:null;b=k.to}}function delimitedIndent({closing:a,align:e=!0,units:s=1}){return o=>delimitedStrategy(o,e,s,a)}function delimitedStrategy(a,e,s,o,c){let d=a.textAfter,_=d.match(/^\s*/)[0].length,b=o&&d.slice(_,_+o.length)==o||c==a.pos+_,k=e?bracketedAligned(a):null;return k?b?a.column(k.from):a.column(k.to):a.baseIndent+(b?0:a.unit*s)}const flatIndent=a=>a.baseIndent;function continuedIndent({except:a,units:e=1}={}){return s=>{let o=a&&a.test(s.textAfter);return s.baseIndent+(o?0:e*s.unit)}}const DontIndentBeyond=200;function indentOnInput(){return EditorState.transactionFilter.of(a=>{if(!a.docChanged||!a.isUserEvent("input.type")&&!a.isUserEvent("input.complete"))return a;let e=a.startState.languageDataAt("indentOnInput",a.startState.selection.main.head);if(!e.length)return a;let s=a.newDoc,{head:o}=a.newSelection.main,c=s.lineAt(o);if(o>c.from+DontIndentBeyond)return a;let d=s.sliceString(c.from,o);if(!e.some($=>$.test(d)))return a;let{state:_}=a,b=-1,k=[];for(let{head:$}of _.selection.ranges){let j=_.doc.lineAt($);if(j.from==b)continue;b=j.from;let _e=getIndentation(_,j.from);if(_e==null)continue;let et=/^\s*/.exec(j.text)[0],tt=indentString(_,_e);et!=tt&&k.push({from:j.from,to:j.from+et.length,insert:tt})}return k.length?[a,{changes:k,sequential:!0}]:a})}const foldService=Facet.define(),foldNodeProp=new NodeProp;function foldInside$1(a){let e=a.firstChild,s=a.lastChild;return e&&e.tos)continue;if(d&&_.from=e&&k.to>s&&(d=k)}}return d}function isUnfinished(a){let e=a.lastChild;return e&&e.to==a.to&&e.type.isError}function foldable(a,e,s){for(let o of a.facet(foldService)){let c=o(a,e,s);if(c)return c}return syntaxFolding(a,e,s)}class GutterMarker extends RangeValue{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}GutterMarker.prototype.elementClass="";GutterMarker.prototype.toDOM=void 0;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=!0;const gutterLineClass=Facet.define(),defaults$1={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>RangeSet.empty,lineMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},activeGutters=Facet.define();function gutter(a){return[gutters(),activeGutters.of(Object.assign(Object.assign({},defaults$1),a))]}const baseTheme$7=EditorView.baseTheme({".cm-gutters":{display:"flex",height:"100%",boxSizing:"border-box",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#999",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"}}),unfixGutters=Facet.define({combine:a=>a.some(e=>e)});function gutters(a){let e=[gutterView,baseTheme$7];return a&&a.fixed===!1&&e.push(unfixGutters.of(!0)),e}const gutterView=ViewPlugin.fromClass(class{constructor(a){this.view=a,this.prevViewport=a.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight+"px",this.gutters=a.state.facet(activeGutters).map(e=>new SingleGutterView(a,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!a.state.facet(unfixGutters),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),a.scrollDOM.insertBefore(this.dom,a.contentDOM)}update(a){if(this.updateGutters(a)){let e=this.prevViewport,s=a.view.viewport,o=Math.min(e.to,s.to)-Math.max(e.from,s.from);this.syncGutters(o<(s.to-s.from)*.8)}a.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(unfixGutters)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=a.view.viewport}syncGutters(a){let e=this.dom.nextSibling;a&&this.dom.remove();let s=RangeSet.iter(this.view.state.facet(gutterLineClass),this.view.viewport.from),o=[],c=this.gutters.map(d=>new UpdateContext(d,this.view.viewport,-this.view.documentPadding.top));for(let d of this.view.viewportLineBlocks){let _;if(Array.isArray(d.type)){for(let b of d.type)if(b.type==BlockType.Text){_=b;break}}else _=d.type==BlockType.Text?d:void 0;if(!!_){o.length&&(o=[]),advanceCursor(s,o,d.from);for(let b of c)b.line(this.view,_,o)}}for(let d of c)d.finish();a&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(a){let e=a.startState.facet(activeGutters),s=a.state.facet(activeGutters),o=a.docChanged||a.heightChanged||a.viewportChanged||!RangeSet.eq(a.startState.facet(gutterLineClass),a.state.facet(gutterLineClass),a.view.viewport.from,a.view.viewport.to);if(e==s)for(let c of this.gutters)c.update(a)&&(o=!0);else{o=!0;let c=[];for(let d of s){let _=e.indexOf(d);_<0?c.push(new SingleGutterView(this.view,d)):(this.gutters[_].update(a),c.push(this.gutters[_]))}for(let d of this.gutters)d.dom.remove(),c.indexOf(d)<0&&d.destroy();for(let d of c)this.dom.appendChild(d.dom);this.gutters=c}return o}destroy(){for(let a of this.gutters)a.destroy();this.dom.remove()}},{provide:PluginField.scrollMargins.from(a=>a.gutters.length==0||!a.fixed?null:a.view.textDirection==Direction.LTR?{left:a.dom.offsetWidth}:{right:a.dom.offsetWidth})});function asArray(a){return Array.isArray(a)?a:[a]}function advanceCursor(a,e,s){for(;a.value&&a.from<=s;)a.from==s&&e.push(a.value),a.next()}class UpdateContext{constructor(e,s,o){this.gutter=e,this.height=o,this.localMarkers=[],this.i=0,this.cursor=RangeSet.iter(e.markers,s.from)}line(e,s,o){this.localMarkers.length&&(this.localMarkers=[]),advanceCursor(this.cursor,this.localMarkers,s.from);let c=o.length?this.localMarkers.concat(o):this.localMarkers,d=this.gutter.config.lineMarker(e,s,c);d&&c.unshift(d);let _=this.gutter;if(c.length==0&&!_.config.renderEmptyElements)return;let b=s.top-this.height;if(this.i==_.elements.length){let k=new GutterElement(e,s.height,b,c);_.elements.push(k),_.dom.appendChild(k.dom)}else _.elements[this.i].update(e,s.height,b,c);this.height=s.bottom,this.i++}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let s=e.elements.pop();e.dom.removeChild(s.dom),s.destroy()}}}class SingleGutterView{constructor(e,s){this.view=e,this.config=s,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let o in s.domEventHandlers)this.dom.addEventListener(o,c=>{let d=e.lineBlockAtHeight(c.clientY-e.documentTop);s.domEventHandlers[o](e,d,c)&&c.preventDefault()});this.markers=asArray(s.markers(e)),s.initialSpacer&&(this.spacer=new GutterElement(e,0,0,[s.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let s=this.markers;if(this.markers=asArray(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let c=this.config.updateSpacer(this.spacer.markers[0],e);c!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[c])}let o=e.view.viewport;return!RangeSet.eq(this.markers,s,o.from,o.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class GutterElement{constructor(e,s,o,c){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.update(e,s,o,c)}update(e,s,o,c){this.height!=s&&(this.dom.style.height=(this.height=s)+"px"),this.above!=o&&(this.dom.style.marginTop=(this.above=o)?o+"px":""),sameMarkers(this.markers,c)||this.setMarkers(e,c)}setMarkers(e,s){let o="cm-gutterElement",c=this.dom.firstChild;for(let d=0,_=0;;){let b=_,k=dd(b,k,$)||_(b,k,$):_}return o}})}});class NumberMarker extends GutterMarker{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function formatNumber(a,e){return a.state.facet(lineNumberConfig).formatNumber(e,a.state)}const lineNumberGutter=activeGutters.compute([lineNumberConfig],a=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(lineNumberMarkers)},lineMarker(e,s,o){return o.some(c=>c.toDOM)?null:new NumberMarker(formatNumber(e,e.state.doc.lineAt(s.from).number))},lineMarkerChange:e=>e.startState.facet(lineNumberConfig)!=e.state.facet(lineNumberConfig),initialSpacer(e){return new NumberMarker(formatNumber(e,maxLineNumber(e.state.doc.lines)))},updateSpacer(e,s){let o=formatNumber(s.view,maxLineNumber(s.view.state.doc.lines));return o==e.number?e:new NumberMarker(o)},domEventHandlers:a.facet(lineNumberConfig).domEventHandlers}));function lineNumbers(a={}){return[lineNumberConfig.of(a),gutters(),lineNumberGutter]}function maxLineNumber(a){let e=9;for(;e{let e=[],s=-1;for(let o of a.selection.ranges)if(o.empty){let c=a.doc.lineAt(o.head).from;c>s&&(s=c,e.push(activeLineGutterMarker.range(c)))}return RangeSet.of(e)});function highlightActiveLineGutter(){return activeLineGutterHighlighter}function mapRange(a,e){let s=e.mapPos(a.from,1),o=e.mapPos(a.to,-1);return s>=o?void 0:{from:s,to:o}}const foldEffect=StateEffect.define({map:mapRange}),unfoldEffect=StateEffect.define({map:mapRange});function selectedLines(a){let e=[];for(let{head:s}of a.state.selection.ranges)e.some(o=>o.from<=s&&o.to>=s)||e.push(a.lineBlockAt(s));return e}const foldState=StateField.define({create(){return Decoration.none},update(a,e){a=a.map(e.changes);for(let s of e.effects)s.is(foldEffect)&&!foldExists(a,s.value.from,s.value.to)?a=a.update({add:[foldWidget.range(s.value.from,s.value.to)]}):s.is(unfoldEffect)&&(a=a.update({filter:(o,c)=>s.value.from!=o||s.value.to!=c,filterFrom:s.value.from,filterTo:s.value.to}));if(e.selection){let s=!1,{head:o}=e.selection.main;a.between(o,o,(c,d)=>{co&&(s=!0)}),s&&(a=a.update({filterFrom:o,filterTo:o,filter:(c,d)=>d<=o||c>=o}))}return a},provide:a=>EditorView.decorations.from(a)});function foldInside(a,e,s){var o;let c=null;return(o=a.field(foldState,!1))===null||o===void 0||o.between(e,s,(d,_)=>{(!c||c.from>d)&&(c={from:d,to:_})}),c}function foldExists(a,e,s){let o=!1;return a.between(e,e,(c,d)=>{c==e&&d==s&&(o=!0)}),o}function maybeEnable(a,e){return a.field(foldState,!1)?e:e.concat(StateEffect.appendConfig.of(codeFolding()))}const foldCode=a=>{for(let e of selectedLines(a)){let s=foldable(a.state,e.from,e.to);if(s)return a.dispatch({effects:maybeEnable(a.state,[foldEffect.of(s),announceFold(a,s)])}),!0}return!1},unfoldCode=a=>{if(!a.state.field(foldState,!1))return!1;let e=[];for(let s of selectedLines(a)){let o=foldInside(a.state,s.from,s.to);o&&e.push(unfoldEffect.of(o),announceFold(a,o,!1))}return e.length&&a.dispatch({effects:e}),e.length>0};function announceFold(a,e,s=!0){let o=a.state.doc.lineAt(e.from).number,c=a.state.doc.lineAt(e.to).number;return EditorView.announce.of(`${a.state.phrase(s?"Folded lines":"Unfolded lines")} ${o} ${a.state.phrase("to")} ${c}.`)}const foldAll=a=>{let{state:e}=a,s=[];for(let o=0;o{let e=a.state.field(foldState,!1);if(!e||!e.size)return!1;let s=[];return e.between(0,a.state.doc.length,(o,c)=>{s.push(unfoldEffect.of({from:o,to:c}))}),a.dispatch({effects:s}),!0},foldKeymap=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:foldCode},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:unfoldCode},{key:"Ctrl-Alt-[",run:foldAll},{key:"Ctrl-Alt-]",run:unfoldAll}],defaultConfig={placeholderDOM:null,placeholderText:"\u2026"},foldConfig=Facet.define({combine(a){return combineConfig(a,defaultConfig)}});function codeFolding(a){let e=[foldState,baseTheme$6];return a&&e.push(foldConfig.of(a)),e}const foldWidget=Decoration.replace({widget:new class extends WidgetType{toDOM(a){let{state:e}=a,s=e.facet(foldConfig),o=d=>{let _=a.lineBlockAt(a.posAtDOM(d.target)),b=foldInside(a.state,_.from,_.to);b&&a.dispatch({effects:unfoldEffect.of(b)}),d.preventDefault()};if(s.placeholderDOM)return s.placeholderDOM(a,o);let c=document.createElement("span");return c.textContent=s.placeholderText,c.setAttribute("aria-label",e.phrase("folded code")),c.title=e.phrase("unfold"),c.className="cm-foldPlaceholder",c.onclick=o,c}}}),foldGutterDefaults={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{}};class FoldMarker extends GutterMarker{constructor(e,s){super(),this.config=e,this.open=s}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let s=document.createElement("span");return s.textContent=this.open?this.config.openText:this.config.closedText,s.title=e.state.phrase(this.open?"Fold line":"Unfold line"),s}}function foldGutter(a={}){let e=Object.assign(Object.assign({},foldGutterDefaults),a),s=new FoldMarker(e,!0),o=new FoldMarker(e,!1),c=ViewPlugin.fromClass(class{constructor(_){this.from=_.viewport.from,this.markers=this.buildMarkers(_)}update(_){(_.docChanged||_.viewportChanged||_.startState.facet(language)!=_.state.facet(language)||_.startState.field(foldState,!1)!=_.state.field(foldState,!1)||syntaxTree(_.startState)!=syntaxTree(_.state))&&(this.markers=this.buildMarkers(_.view))}buildMarkers(_){let b=new RangeSetBuilder;for(let k of _.viewportLineBlocks){let $=foldInside(_.state,k.from,k.to)?o:foldable(_.state,k.from,k.to)?s:null;$&&b.add(k.from,k.from,$)}return b.finish()}}),{domEventHandlers:d}=e;return[c,gutter({class:"cm-foldGutter",markers(_){var b;return((b=_.plugin(c))===null||b===void 0?void 0:b.markers)||RangeSet.empty},initialSpacer(){return new FoldMarker(e,!1)},domEventHandlers:Object.assign(Object.assign({},d),{click:(_,b,k)=>{if(d.click&&d.click(_,b,k))return!0;let $=foldInside(_.state,b.from,b.to);if($)return _.dispatch({effects:unfoldEffect.of($)}),!0;let j=foldable(_.state,b.from,b.to);return j?(_.dispatch({effects:foldEffect.of(j)}),!0):!1}})}),codeFolding()]}const baseTheme$6=EditorView.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),baseTheme$5=EditorView.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),DefaultScanDist=1e4,DefaultBrackets="()[]{}",bracketMatchingConfig=Facet.define({combine(a){return combineConfig(a,{afterCursor:!0,brackets:DefaultBrackets,maxScanDistance:DefaultScanDist})}}),matchingMark=Decoration.mark({class:"cm-matchingBracket"}),nonmatchingMark=Decoration.mark({class:"cm-nonmatchingBracket"}),bracketMatchingState=StateField.define({create(){return Decoration.none},update(a,e){if(!e.docChanged&&!e.selection)return a;let s=[],o=e.state.facet(bracketMatchingConfig);for(let c of e.state.selection.ranges){if(!c.empty)continue;let d=matchBrackets(e.state,c.head,-1,o)||c.head>0&&matchBrackets(e.state,c.head-1,1,o)||o.afterCursor&&(matchBrackets(e.state,c.head,1,o)||c.headEditorView.decorations.from(a)}),bracketMatchingUnique=[bracketMatchingState,baseTheme$5];function bracketMatching(a={}){return[bracketMatchingConfig.of(a),bracketMatchingUnique]}function matchingNodes(a,e,s){let o=a.prop(e<0?NodeProp.openedBy:NodeProp.closedBy);if(o)return o;if(a.name.length==1){let c=s.indexOf(a.name);if(c>-1&&c%2==(e<0?1:0))return[s[c+e]]}return null}function matchBrackets(a,e,s,o={}){let c=o.maxScanDistance||DefaultScanDist,d=o.brackets||DefaultBrackets,_=syntaxTree(a),b=_.resolveInner(e,s);for(let k=b;k;k=k.parent){let $=matchingNodes(k.type,s,d);if($&&k.from=o.to){if(k==0&&c.indexOf($.type.name)>-1&&$.from<$.to)return{start:b,end:{from:$.from,to:$.to},matched:!0};if(matchingNodes($.type,s,d))k++;else if(matchingNodes($.type,-s,d)&&(k--,k==0))return{start:b,end:$.from==$.to?void 0:{from:$.from,to:$.to},matched:!1}}while(s<0?$.prevSibling():$.nextSibling());return{start:b,matched:!1}}function matchPlainBrackets(a,e,s,o,c,d,_){let b=s<0?a.sliceDoc(e-1,e):a.sliceDoc(e,e+1),k=_.indexOf(b);if(k<0||k%2==0!=s>0)return null;let $={from:s<0?e-1:e,to:s>0?e+1:e},j=a.doc.iterRange(e,s>0?a.doc.length:0),_e=0;for(let et=0;!j.next().done&&et<=d;){let tt=j.value;s<0&&(et+=tt.length);let nt=e+et*s;for(let it=s>0?0:tt.length-1,rt=s>0?tt.length:-1;it!=rt;it+=s){let st=_.indexOf(tt[it]);if(!(st<0||o.resolve(nt+it,1).type!=c))if(st%2==0==s>0)_e++;else{if(_e==1)return{start:$,end:{from:nt+it,to:nt+it+1},matched:st>>1==k>>1};_e--}}s>0&&(et+=tt.length)}return j.done?{start:$,matched:!1}:null}function updateSel(a,e){return EditorSelection.create(a.ranges.map(e),a.mainIndex)}function setSel(a,e){return a.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function moveSel({state:a,dispatch:e},s){let o=updateSel(a.selection,s);return o.eq(a.selection)?!1:(e(setSel(a,o)),!0)}function rangeEnd(a,e){return EditorSelection.cursor(e?a.to:a.from)}function cursorByChar(a,e){return moveSel(a,s=>s.empty?a.moveByChar(s,e):rangeEnd(s,e))}const cursorCharLeft=a=>cursorByChar(a,a.textDirection!=Direction.LTR),cursorCharRight=a=>cursorByChar(a,a.textDirection==Direction.LTR);function cursorByGroup(a,e){return moveSel(a,s=>s.empty?a.moveByGroup(s,e):rangeEnd(s,e))}const cursorGroupLeft=a=>cursorByGroup(a,a.textDirection!=Direction.LTR),cursorGroupRight=a=>cursorByGroup(a,a.textDirection==Direction.LTR);function interestingNode(a,e,s){if(e.type.prop(s))return!0;let o=e.to-e.from;return o&&(o>2||/[^\s,.;:]/.test(a.sliceDoc(e.from,e.to)))||e.firstChild}function moveBySyntax(a,e,s){let o=syntaxTree(a).resolveInner(e.head),c=s?NodeProp.closedBy:NodeProp.openedBy;for(let k=e.head;;){let $=s?o.childAfter(k):o.childBefore(k);if(!$)break;interestingNode(a,$,c)?o=$:k=s?$.to:$.from}let d=o.type.prop(c),_,b;return d&&(_=s?matchBrackets(a,o.from,1):matchBrackets(a,o.to,-1))&&_.matched?b=s?_.end.to:_.end.from:b=s?o.to:o.from,EditorSelection.cursor(b,s?-1:1)}const cursorSyntaxLeft=a=>moveSel(a,e=>moveBySyntax(a.state,e,a.textDirection!=Direction.LTR)),cursorSyntaxRight=a=>moveSel(a,e=>moveBySyntax(a.state,e,a.textDirection==Direction.LTR));function cursorByLine(a,e){return moveSel(a,s=>{if(!s.empty)return rangeEnd(s,e);let o=a.moveVertically(s,e);return o.head!=s.head?o:a.moveToLineBoundary(s,e)})}const cursorLineUp=a=>cursorByLine(a,!1),cursorLineDown=a=>cursorByLine(a,!0);function cursorByPage(a,e){let{state:s}=a,o=updateSel(s.selection,_=>_.empty?a.moveVertically(_,e,a.dom.clientHeight):rangeEnd(_,e));if(o.eq(s.selection))return!1;let c=a.coordsAtPos(s.selection.main.head),d=a.scrollDOM.getBoundingClientRect();return a.dispatch(setSel(s,o),{effects:c&&c.top>d.top&&c.bottomcursorByPage(a,!1),cursorPageDown=a=>cursorByPage(a,!0);function moveByLineBoundary(a,e,s){let o=a.lineBlockAt(e.head),c=a.moveToLineBoundary(e,s);if(c.head==e.head&&c.head!=(s?o.to:o.from)&&(c=a.moveToLineBoundary(e,s,!1)),!s&&c.head==o.from&&o.length){let d=/^\s*/.exec(a.state.sliceDoc(o.from,Math.min(o.from+100,o.to)))[0].length;d&&e.head!=o.from+d&&(c=EditorSelection.cursor(o.from+d))}return c}const cursorLineBoundaryForward=a=>moveSel(a,e=>moveByLineBoundary(a,e,!0)),cursorLineBoundaryBackward=a=>moveSel(a,e=>moveByLineBoundary(a,e,!1)),cursorLineStart=a=>moveSel(a,e=>EditorSelection.cursor(a.lineBlockAt(e.head).from,1)),cursorLineEnd=a=>moveSel(a,e=>EditorSelection.cursor(a.lineBlockAt(e.head).to,-1));function toMatchingBracket(a,e,s){let o=!1,c=updateSel(a.selection,d=>{let _=matchBrackets(a,d.head,-1)||matchBrackets(a,d.head,1)||d.head>0&&matchBrackets(a,d.head-1,1)||d.headtoMatchingBracket(a,e,!1);function extendSel(a,e){let s=updateSel(a.state.selection,o=>{let c=e(o);return EditorSelection.range(o.anchor,c.head,c.goalColumn)});return s.eq(a.state.selection)?!1:(a.dispatch(setSel(a.state,s)),!0)}function selectByChar(a,e){return extendSel(a,s=>a.moveByChar(s,e))}const selectCharLeft=a=>selectByChar(a,a.textDirection!=Direction.LTR),selectCharRight=a=>selectByChar(a,a.textDirection==Direction.LTR);function selectByGroup(a,e){return extendSel(a,s=>a.moveByGroup(s,e))}const selectGroupLeft=a=>selectByGroup(a,a.textDirection!=Direction.LTR),selectGroupRight=a=>selectByGroup(a,a.textDirection==Direction.LTR),selectSyntaxLeft=a=>extendSel(a,e=>moveBySyntax(a.state,e,a.textDirection!=Direction.LTR)),selectSyntaxRight=a=>extendSel(a,e=>moveBySyntax(a.state,e,a.textDirection==Direction.LTR));function selectByLine(a,e){return extendSel(a,s=>a.moveVertically(s,e))}const selectLineUp=a=>selectByLine(a,!1),selectLineDown=a=>selectByLine(a,!0);function selectByPage(a,e){return extendSel(a,s=>a.moveVertically(s,e,a.dom.clientHeight))}const selectPageUp=a=>selectByPage(a,!1),selectPageDown=a=>selectByPage(a,!0),selectLineBoundaryForward=a=>extendSel(a,e=>moveByLineBoundary(a,e,!0)),selectLineBoundaryBackward=a=>extendSel(a,e=>moveByLineBoundary(a,e,!1)),selectLineStart=a=>extendSel(a,e=>EditorSelection.cursor(a.lineBlockAt(e.head).from)),selectLineEnd=a=>extendSel(a,e=>EditorSelection.cursor(a.lineBlockAt(e.head).to)),cursorDocStart=({state:a,dispatch:e})=>(e(setSel(a,{anchor:0})),!0),cursorDocEnd=({state:a,dispatch:e})=>(e(setSel(a,{anchor:a.doc.length})),!0),selectDocStart=({state:a,dispatch:e})=>(e(setSel(a,{anchor:a.selection.main.anchor,head:0})),!0),selectDocEnd=({state:a,dispatch:e})=>(e(setSel(a,{anchor:a.selection.main.anchor,head:a.doc.length})),!0),selectAll=({state:a,dispatch:e})=>(e(a.update({selection:{anchor:0,head:a.doc.length},userEvent:"select"})),!0),selectLine=({state:a,dispatch:e})=>{let s=selectedLineBlocks(a).map(({from:o,to:c})=>EditorSelection.range(o,Math.min(c+1,a.doc.length)));return e(a.update({selection:EditorSelection.create(s),userEvent:"select"})),!0},selectParentSyntax=({state:a,dispatch:e})=>{let s=updateSel(a.selection,o=>{var c;let d=syntaxTree(a).resolveInner(o.head,1);for(;!(d.from=o.to||d.to>o.to&&d.from<=o.from||!(!((c=d.parent)===null||c===void 0)&&c.parent));)d=d.parent;return EditorSelection.range(d.to,d.from)});return e(setSel(a,s)),!0},simplifySelection=({state:a,dispatch:e})=>{let s=a.selection,o=null;return s.ranges.length>1?o=EditorSelection.create([s.main]):s.main.empty||(o=EditorSelection.create([EditorSelection.cursor(s.main.head)])),o?(e(setSel(a,o)),!0):!1};function deleteBy({state:a,dispatch:e},s){if(a.readOnly)return!1;let o="delete.selection",c=a.changeByRange(d=>{let{from:_,to:b}=d;if(_==b){let k=s(_);k<_?o="delete.backward":k>_&&(o="delete.forward"),_=Math.min(_,k),b=Math.max(b,k)}return _==b?{range:d}:{changes:{from:_,to:b},range:EditorSelection.cursor(_)}});return c.changes.empty?!1:(e(a.update(c,{scrollIntoView:!0,userEvent:o})),!0)}function skipAtomic(a,e,s){if(a instanceof EditorView)for(let o of a.pluginField(PluginField.atomicRanges))o.between(e,e,(c,d)=>{ce&&(e=s?d:c)});return e}const deleteByChar=(a,e)=>deleteBy(a,s=>{let{state:o}=a,c=o.doc.lineAt(s),d,_;if(!e&&s>c.from&&sdeleteByChar(a,!1),deleteCharForward=a=>deleteByChar(a,!0),deleteByGroup=(a,e)=>deleteBy(a,s=>{let o=s,{state:c}=a,d=c.doc.lineAt(o),_=c.charCategorizer(o);for(let b=null;;){if(o==(e?d.to:d.from)){o==s&&d.number!=(e?c.doc.lines:1)&&(o+=e?1:-1);break}let k=findClusterBreak(d.text,o-d.from,e)+d.from,$=d.text.slice(Math.min(o,k)-d.from,Math.max(o,k)-d.from),j=_($);if(b!=null&&j!=b)break;($!=" "||o!=s)&&(b=j),o=k}return skipAtomic(a,o,e)}),deleteGroupBackward=a=>deleteByGroup(a,!1),deleteGroupForward=a=>deleteByGroup(a,!0),deleteToLineEnd=a=>deleteBy(a,e=>{let s=a.lineBlockAt(e).to;return skipAtomic(a,edeleteBy(a,e=>{let s=a.lineBlockAt(e).from;return skipAtomic(a,e>s?s:Math.max(0,e-1),!1)}),splitLine=({state:a,dispatch:e})=>{if(a.readOnly)return!1;let s=a.changeByRange(o=>({changes:{from:o.from,to:o.to,insert:Text.of(["",""])},range:EditorSelection.cursor(o.from)}));return e(a.update(s,{scrollIntoView:!0,userEvent:"input"})),!0},transposeChars=({state:a,dispatch:e})=>{if(a.readOnly)return!1;let s=a.changeByRange(o=>{if(!o.empty||o.from==0||o.from==a.doc.length)return{range:o};let c=o.from,d=a.doc.lineAt(c),_=c==d.from?c-1:findClusterBreak(d.text,c-d.from,!1)+d.from,b=c==d.to?c+1:findClusterBreak(d.text,c-d.from,!0)+d.from;return{changes:{from:_,to:b,insert:a.doc.slice(c,b).append(a.doc.slice(_,c))},range:EditorSelection.cursor(b)}});return s.changes.empty?!1:(e(a.update(s,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function selectedLineBlocks(a){let e=[],s=-1;for(let o of a.selection.ranges){let c=a.doc.lineAt(o.from),d=a.doc.lineAt(o.to);if(!o.empty&&o.to==d.from&&(d=a.doc.lineAt(o.to-1)),s>=c.number){let _=e[e.length-1];_.to=d.to,_.ranges.push(o)}else e.push({from:c.from,to:d.to,ranges:[o]});s=d.number+1}return e}function moveLine(a,e,s){if(a.readOnly)return!1;let o=[],c=[];for(let d of selectedLineBlocks(a)){if(s?d.to==a.doc.length:d.from==0)continue;let _=a.doc.lineAt(s?d.to+1:d.from-1),b=_.length+1;if(s){o.push({from:d.to,to:_.to},{from:d.from,insert:_.text+a.lineBreak});for(let k of d.ranges)c.push(EditorSelection.range(Math.min(a.doc.length,k.anchor+b),Math.min(a.doc.length,k.head+b)))}else{o.push({from:_.from,to:d.from},{from:d.to,insert:a.lineBreak+_.text});for(let k of d.ranges)c.push(EditorSelection.range(k.anchor-b,k.head-b))}}return o.length?(e(a.update({changes:o,scrollIntoView:!0,selection:EditorSelection.create(c,a.selection.mainIndex),userEvent:"move.line"})),!0):!1}const moveLineUp=({state:a,dispatch:e})=>moveLine(a,e,!1),moveLineDown=({state:a,dispatch:e})=>moveLine(a,e,!0);function copyLine(a,e,s){if(a.readOnly)return!1;let o=[];for(let c of selectedLineBlocks(a))s?o.push({from:c.from,insert:a.doc.slice(c.from,c.to)+a.lineBreak}):o.push({from:c.to,insert:a.lineBreak+a.doc.slice(c.from,c.to)});return e(a.update({changes:o,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const copyLineUp=({state:a,dispatch:e})=>copyLine(a,e,!1),copyLineDown=({state:a,dispatch:e})=>copyLine(a,e,!0),deleteLine=a=>{if(a.state.readOnly)return!1;let{state:e}=a,s=e.changes(selectedLineBlocks(e).map(({from:c,to:d})=>(c>0?c--:da.moveVertically(c,!0)).map(s);return a.dispatch({changes:s,selection:o,scrollIntoView:!0,userEvent:"delete.line"}),!0};function isBetweenBrackets(a,e){if(/\(\)|\[\]|\{\}/.test(a.sliceDoc(e-1,e+1)))return{from:e,to:e};let s=syntaxTree(a).resolveInner(e),o=s.childBefore(e),c=s.childAfter(e),d;return o&&c&&o.to<=e&&c.from>=e&&(d=o.type.prop(NodeProp.closedBy))&&d.indexOf(c.name)>-1&&a.doc.lineAt(o.to).from==a.doc.lineAt(c.from).from?{from:o.to,to:c.from}:null}const insertNewlineAndIndent=newlineAndIndent(!1),insertBlankLine=newlineAndIndent(!0);function newlineAndIndent(a){return({state:e,dispatch:s})=>{if(e.readOnly)return!1;let o=e.changeByRange(c=>{let{from:d,to:_}=c,b=e.doc.lineAt(d),k=!a&&d==_&&isBetweenBrackets(e,d);a&&(d=_=(_<=b.to?b:e.doc.lineAt(_)).to);let $=new IndentContext(e,{simulateBreak:d,simulateDoubleBreak:!!k}),j=getIndentation($,d);for(j==null&&(j=/^\s*/.exec(e.doc.lineAt(d).text)[0].length);_b.from&&d{let c=[];for(let _=o.from;_<=o.to;){let b=a.doc.lineAt(_);b.number>s&&(o.empty||o.to>b.from)&&(e(b,c,o),s=b.number),_=b.to+1}let d=a.changes(c);return{changes:c,range:EditorSelection.range(d.mapPos(o.anchor,1),d.mapPos(o.head,1))}})}const indentSelection=({state:a,dispatch:e})=>{if(a.readOnly)return!1;let s=Object.create(null),o=new IndentContext(a,{overrideIndentation:d=>{let _=s[d];return _==null?-1:_}}),c=changeBySelectedLine(a,(d,_,b)=>{let k=getIndentation(o,d.from);if(k==null)return;/\S/.test(d.text)||(k=0);let $=/^\s*/.exec(d.text)[0],j=indentString(a,k);($!=j||b.froma.readOnly?!1:(e(a.update(changeBySelectedLine(a,(s,o)=>{o.push({from:s.from,insert:a.facet(indentUnit)})}),{userEvent:"input.indent"})),!0),indentLess=({state:a,dispatch:e})=>a.readOnly?!1:(e(a.update(changeBySelectedLine(a,(s,o)=>{let c=/^\s*/.exec(s.text)[0];if(!c)return;let d=countColumn(c,a.tabSize),_=0,b=indentString(a,Math.max(0,d-getIndentUnit(a)));for(;_({mac:a.key,run:a.run,shift:a.shift}))),defaultKeymap=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:cursorSyntaxLeft,shift:selectSyntaxLeft},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cursorSyntaxRight,shift:selectSyntaxRight},{key:"Alt-ArrowUp",run:moveLineUp},{key:"Shift-Alt-ArrowUp",run:copyLineUp},{key:"Alt-ArrowDown",run:moveLineDown},{key:"Shift-Alt-ArrowDown",run:copyLineDown},{key:"Escape",run:simplifySelection},{key:"Mod-Enter",run:insertBlankLine},{key:"Alt-l",mac:"Ctrl-l",run:selectLine},{key:"Mod-i",run:selectParentSyntax,preventDefault:!0},{key:"Mod-[",run:indentLess},{key:"Mod-]",run:indentMore},{key:"Mod-Alt-\\",run:indentSelection},{key:"Shift-Mod-k",run:deleteLine},{key:"Shift-Mod-\\",run:cursorMatchingBracket}].concat(standardKeymap),defaults={brackets:["(","[","{","'",'"'],before:")]}:;>"},closeBracketEffect=StateEffect.define({map(a,e){let s=e.mapPos(a,-1,MapMode.TrackAfter);return s==null?void 0:s}}),skipBracketEffect=StateEffect.define({map(a,e){return e.mapPos(a)}}),closedBracket=new class extends RangeValue{};closedBracket.startSide=1;closedBracket.endSide=-1;const bracketState=StateField.define({create(){return RangeSet.empty},update(a,e){if(e.selection){let s=e.state.doc.lineAt(e.selection.main.head).from,o=e.startState.doc.lineAt(e.startState.selection.main.head).from;s!=e.changes.mapPos(o,-1)&&(a=RangeSet.empty)}a=a.map(e.changes);for(let s of e.effects)s.is(closeBracketEffect)?a=a.update({add:[closedBracket.range(s.value,s.value+1)]}):s.is(skipBracketEffect)&&(a=a.update({filter:o=>o!=s.value}));return a}});function closeBrackets(){return[inputHandler,bracketState]}const definedClosing="()[]{}<>";function closing(a){for(let e=0;e{if((android?a.composing:a.compositionStarted)||a.state.readOnly)return!1;let c=a.state.selection.main;if(o.length>2||o.length==2&&codePointSize(codePointAt(o,0))==1||e!=c.from||s!=c.to)return!1;let d=insertBracket(a.state,o);return d?(a.dispatch(d),!0):!1}),deleteBracketPair=({state:a,dispatch:e})=>{if(a.readOnly)return!1;let o=config$1(a,a.selection.main.head).brackets||defaults.brackets,c=null,d=a.changeByRange(_=>{if(_.empty){let b=prevChar(a.doc,_.head);for(let k of o)if(k==b&&nextChar(a.doc,_.head)==closing(codePointAt(k,0)))return{changes:{from:_.head-k.length,to:_.head+k.length},range:EditorSelection.cursor(_.head-k.length),userEvent:"delete.backward"}}return{range:c=_}});return c||e(a.update(d,{scrollIntoView:!0})),!c},closeBracketsKeymap=[{key:"Backspace",run:deleteBracketPair}];function insertBracket(a,e){let s=config$1(a,a.selection.main.head),o=s.brackets||defaults.brackets;for(let c of o){let d=closing(codePointAt(c,0));if(e==c)return d==c?handleSame(a,c,o.indexOf(c+c+c)>-1):handleOpen(a,c,d,s.before||defaults.before);if(e==d&&closedBracketAt(a,a.selection.main.from))return handleClose(a,c,d)}return null}function closedBracketAt(a,e){let s=!1;return a.field(bracketState).between(0,a.doc.length,o=>{o==e&&(s=!0)}),s}function nextChar(a,e){let s=a.sliceString(e,e+2);return s.slice(0,codePointSize(codePointAt(s,0)))}function prevChar(a,e){let s=a.sliceString(e-2,e);return codePointSize(codePointAt(s,0))==s.length?s:s.slice(1)}function handleOpen(a,e,s,o){let c=null,d=a.changeByRange(_=>{if(!_.empty)return{changes:[{insert:e,from:_.from},{insert:s,from:_.to}],effects:closeBracketEffect.of(_.to+e.length),range:EditorSelection.range(_.anchor+e.length,_.head+e.length)};let b=nextChar(a.doc,_.head);return!b||/\s/.test(b)||o.indexOf(b)>-1?{changes:{insert:e+s,from:_.head},effects:closeBracketEffect.of(_.head+e.length),range:EditorSelection.cursor(_.head+e.length)}:{range:c=_}});return c?null:a.update(d,{scrollIntoView:!0,userEvent:"input.type"})}function handleClose(a,e,s){let o=null,c=a.selection.ranges.map(d=>d.empty&&nextChar(a.doc,d.head)==s?EditorSelection.cursor(d.head+s.length):o=d);return o?null:a.update({selection:EditorSelection.create(c,a.selection.mainIndex),scrollIntoView:!0,effects:a.selection.ranges.map(({from:d})=>skipBracketEffect.of(d))})}function handleSame(a,e,s){let o=null,c=a.changeByRange(d=>{if(!d.empty)return{changes:[{insert:e,from:d.from},{insert:e,from:d.to}],effects:closeBracketEffect.of(d.to+e.length),range:EditorSelection.range(d.anchor+e.length,d.head+e.length)};let _=d.head,b=nextChar(a.doc,_);if(b==e){if(nodeStart(a,_))return{changes:{insert:e+e,from:_},effects:closeBracketEffect.of(_+e.length),range:EditorSelection.cursor(_+e.length)};if(closedBracketAt(a,_)){let k=s&&a.sliceDoc(_,_+e.length*3)==e+e+e;return{range:EditorSelection.cursor(_+e.length*(k?3:1)),effects:skipBracketEffect.of(_)}}}else{if(s&&a.sliceDoc(_-2*e.length,_)==e+e&&nodeStart(a,_-2*e.length))return{changes:{insert:e+e+e+e,from:_},effects:closeBracketEffect.of(_+e.length),range:EditorSelection.cursor(_+e.length)};if(a.charCategorizer(_)(b)!=CharCategory.Word){let k=a.sliceDoc(_-1,_);if(k!=e&&a.charCategorizer(_)(k)!=CharCategory.Word&&!probablyInString(a,_,e))return{changes:{insert:e+e,from:_},effects:closeBracketEffect.of(_+e.length),range:EditorSelection.cursor(_+e.length)}}}return{range:o=d}});return o?null:a.update(c,{scrollIntoView:!0,userEvent:"input.type"})}function nodeStart(a,e){let s=syntaxTree(a).resolveInner(e+1);return s.parent&&s.from==e}function probablyInString(a,e,s){let o=syntaxTree(a).resolveInner(e,-1);for(let c=0;c<5;c++){if(a.sliceDoc(o.from,o.from+s.length)==s)return!0;let d=o.to==e&&o.parent;if(!d)break;o=d}return!1}const panelConfig=Facet.define({combine(a){let e,s;for(let o of a)e=e||o.topContainer,s=s||o.bottomContainer;return{topContainer:e,bottomContainer:s}}});function getPanel(a,e){let s=a.plugin(panelPlugin),o=s?s.specs.indexOf(e):-1;return o>-1?s.panels[o]:null}const panelPlugin=ViewPlugin.fromClass(class{constructor(a){this.input=a.state.facet(showPanel),this.specs=this.input.filter(s=>s),this.panels=this.specs.map(s=>s(a));let e=a.state.facet(panelConfig);this.top=new PanelGroup(a,!0,e.topContainer),this.bottom=new PanelGroup(a,!1,e.bottomContainer),this.top.sync(this.panels.filter(s=>s.top)),this.bottom.sync(this.panels.filter(s=>!s.top));for(let s of this.panels)s.dom.classList.add("cm-panel"),s.mount&&s.mount()}update(a){let e=a.state.facet(panelConfig);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new PanelGroup(a.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new PanelGroup(a.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let s=a.state.facet(showPanel);if(s!=this.input){let o=s.filter(k=>k),c=[],d=[],_=[],b=[];for(let k of o){let $=this.specs.indexOf(k),j;$<0?(j=k(a.view),b.push(j)):(j=this.panels[$],j.update&&j.update(a)),c.push(j),(j.top?d:_).push(j)}this.specs=o,this.panels=c,this.top.sync(d),this.bottom.sync(_);for(let k of b)k.dom.classList.add("cm-panel"),k.mount&&k.mount()}else for(let o of this.panels)o.update&&o.update(a)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:PluginField.scrollMargins.from(a=>({top:a.top.scrollMargin(),bottom:a.bottom.scrollMargin()}))});class PanelGroup{constructor(e,s,o){this.view=e,this.top=s,this.container=o,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let s of this.panels)s.destroy&&e.indexOf(s)<0&&s.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let s=this.container||this.view.dom;s.insertBefore(this.dom,this.top?s.firstChild:null)}let e=this.dom.firstChild;for(let s of this.panels)if(s.dom.parentNode==this.dom){for(;e!=s.dom;)e=rm(e);e=e.nextSibling}else this.dom.insertBefore(s.dom,e);for(;e;)e=rm(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function rm(a){let e=a.nextSibling;return a.remove(),e}const baseTheme$4=EditorView.baseTheme({".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"}}),showPanel=Facet.define({enables:[panelPlugin,baseTheme$4]});function crelt(){var a=arguments[0];typeof a=="string"&&(a=document.createElement(a));var e=1,s=arguments[1];if(s&&typeof s=="object"&&s.nodeType==null&&!Array.isArray(s)){for(var o in s)if(Object.prototype.hasOwnProperty.call(s,o)){var c=s[o];typeof c=="string"?a.setAttribute(o,c):c!=null&&(a[o]=c)}e++}for(;ea.normalize("NFKD"):a=>a;class SearchCursor{constructor(e,s,o=0,c=e.length,d){this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(o,c),this.bufferStart=o,this.normalize=d?_=>d(basicNormalize(_)):basicNormalize,this.query=this.normalize(s)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return codePointAt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let s=fromCodePoint(e),o=this.bufferStart+this.bufferPos;this.bufferPos+=codePointSize(e);let c=this.normalize(s);for(let d=0,_=o;;d++){let b=c.charCodeAt(d),k=this.match(b,_);if(k)return this.value=k,this;if(d==c.length-1)break;_==o&&dthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let s=this.matchPos<=this.to&&this.re.exec(this.curLine);if(s){let o=this.curLineStart+s.index,c=o+s[0].length;if(this.matchPos=c+(o==c?1:0),o==this.curLine.length&&this.nextLine(),othis.value.to)return this.value={from:o,to:c,match:s},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=o||c.to<=s){let b=new FlattenedDoc(s,e.sliceString(s,o));return flattened.set(e,b),b}if(c.from==s&&c.to==o)return c;let{text:d,from:_}=c;return _>s&&(d=e.sliceString(s,_)+d,_=s),c.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,s=this.re.exec(this.flat.text);if(s&&!s[0]&&s.index==e&&(this.re.lastIndex=e+1,s=this.re.exec(this.flat.text)),s&&this.flat.tothis.flat.text.length-10&&(s=null),s){let o=this.flat.from+s.index,c=o+s[0].length;return this.value={from:o,to:c,match:s},this.matchPos=c+(o==c?1:0),this}else{if(this.flat.to==this.to)return this.done=!0,this;this.flat=FlattenedDoc.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}}typeof Symbol!="undefined"&&(RegExpCursor.prototype[Symbol.iterator]=MultilineRegExpCursor.prototype[Symbol.iterator]=function(){return this});function validRegExp(a){try{return new RegExp(a,baseFlags),!0}catch{return!1}}function createLineDialog(a){let e=crelt("input",{class:"cm-textfield",name:"line"}),s=crelt("form",{class:"cm-gotoLine",onkeydown:c=>{c.keyCode==27?(c.preventDefault(),a.dispatch({effects:dialogEffect.of(!1)}),a.focus()):c.keyCode==13&&(c.preventDefault(),o())},onsubmit:c=>{c.preventDefault(),o()}},crelt("label",a.state.phrase("Go to line"),": ",e)," ",crelt("button",{class:"cm-button",type:"submit"},a.state.phrase("go")));function o(){let c=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!c)return;let{state:d}=a,_=d.doc.lineAt(d.selection.main.head),[,b,k,$,j]=c,_e=$?+$.slice(1):0,et=k?+k:_.number;if(k&&j){let nt=et/100;b&&(nt=nt*(b=="-"?-1:1)+_.number/d.doc.lines),et=Math.round(d.doc.lines*nt)}else k&&b&&(et=et*(b=="-"?-1:1)+_.number);let tt=d.doc.line(Math.max(1,Math.min(d.doc.lines,et)));a.dispatch({effects:dialogEffect.of(!1),selection:EditorSelection.cursor(tt.from+Math.max(0,Math.min(_e,tt.length))),scrollIntoView:!0}),a.focus()}return{dom:s,pos:-10}}const dialogEffect=StateEffect.define(),dialogField=StateField.define({create(){return!0},update(a,e){for(let s of e.effects)s.is(dialogEffect)&&(a=s.value);return a},provide:a=>showPanel.from(a,e=>e?createLineDialog:null)}),gotoLine=a=>{let e=getPanel(a,createLineDialog);if(!e){let s=[dialogEffect.of(!0)];a.state.field(dialogField,!1)==null&&s.push(StateEffect.appendConfig.of([dialogField,baseTheme$1$1])),a.dispatch({effects:s}),e=getPanel(a,createLineDialog)}return e&&e.dom.querySelector("input").focus(),!0},baseTheme$1$1=EditorView.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),defaultHighlightOptions={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!0},highlightConfig=Facet.define({combine(a){return combineConfig(a,defaultHighlightOptions,{highlightWordAroundCursor:(e,s)=>e||s,minSelectionLength:Math.min,maxMatches:Math.min})}});function highlightSelectionMatches(a){let e=[defaultTheme,matchHighlighter];return a&&e.push(highlightConfig.of(a)),e}const matchDeco=Decoration.mark({class:"cm-selectionMatch"}),mainMatchDeco=Decoration.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function insideWordBoundaries(a,e,s,o){return(s==0||a(e.sliceDoc(s-1,s))!=CharCategory.Word)&&(o==e.doc.length||a(e.sliceDoc(o,o+1))!=CharCategory.Word)}function insideWord(a,e,s,o){return a(e.sliceDoc(s,s+1))==CharCategory.Word&&a(e.sliceDoc(o-1,o))==CharCategory.Word}const matchHighlighter=ViewPlugin.fromClass(class{constructor(a){this.decorations=this.getDeco(a)}update(a){(a.selectionSet||a.docChanged||a.viewportChanged)&&(this.decorations=this.getDeco(a.view))}getDeco(a){let e=a.state.facet(highlightConfig),{state:s}=a,o=s.selection;if(o.ranges.length>1)return Decoration.none;let c=o.main,d,_=null;if(c.empty){if(!e.highlightWordAroundCursor)return Decoration.none;let k=s.wordAt(c.head);if(!k)return Decoration.none;_=s.charCategorizer(c.head),d=s.sliceDoc(k.from,k.to)}else{let k=c.to-c.from;if(k200)return Decoration.none;if(e.wholeWords){if(d=s.sliceDoc(c.from,c.to),_=s.charCategorizer(c.head),!(insideWordBoundaries(_,s,c.from,c.to)&&insideWord(_,s,c.from,c.to)))return Decoration.none}else if(d=s.sliceDoc(c.from,c.to).trim(),!d)return Decoration.none}let b=[];for(let k of a.visibleRanges){let $=new SearchCursor(s.doc,d,k.from,k.to);for(;!$.next().done;){let{from:j,to:_e}=$.value;if((!_||insideWordBoundaries(_,s,j,_e))&&(c.empty&&j<=c.from&&_e>=c.to?b.push(mainMatchDeco.range(j,_e)):(j>=c.to||_e<=c.from)&&b.push(matchDeco.range(j,_e)),b.length>e.maxMatches))return Decoration.none}}return Decoration.set(b)}},{decorations:a=>a.decorations}),defaultTheme=EditorView.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),selectWord=({state:a,dispatch:e})=>{let{selection:s}=a,o=EditorSelection.create(s.ranges.map(c=>a.wordAt(c.head)||EditorSelection.cursor(c.head)),s.mainIndex);return o.eq(s)?!1:(e(a.update({selection:o})),!0)};function findNextOccurrence(a,e){let{main:s,ranges:o}=a.selection,c=a.wordAt(s.head),d=c&&c.from==s.from&&c.to==s.to;for(let _=!1,b=new SearchCursor(a.doc,e,o[o.length-1].to);;)if(b.next(),b.done){if(_)return null;b=new SearchCursor(a.doc,e,0,Math.max(0,o[o.length-1].from-1)),_=!0}else{if(_&&o.some(k=>k.from==b.value.from))continue;if(d){let k=a.wordAt(b.value.from);if(!k||k.from!=b.value.from||k.to!=b.value.to)continue}return b.value}}const selectNextOccurrence=({state:a,dispatch:e})=>{let{ranges:s}=a.selection;if(s.some(d=>d.from===d.to))return selectWord({state:a,dispatch:e});let o=a.sliceDoc(s[0].from,s[0].to);if(a.selection.ranges.some(d=>a.sliceDoc(d.from,d.to)!=o))return!1;let c=findNextOccurrence(a,o);return c?(e(a.update({selection:a.selection.addRange(EditorSelection.range(c.from,c.to),!1),effects:EditorView.scrollIntoView(c.to)})),!0):!1},searchConfigFacet=Facet.define({combine(a){var e;return{top:a.reduce((s,o)=>s!=null?s:o.top,void 0)||!1,caseSensitive:a.reduce((s,o)=>s!=null?s:o.caseSensitive||o.matchCase,void 0)||!1,createPanel:((e=a.find(s=>s.createPanel))===null||e===void 0?void 0:e.createPanel)||(s=>new SearchPanel(s))}}});class SearchQuery{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||validRegExp(this.search)),this.unquoted=this.search.replace(/\\([nrt\\])/g,(s,o)=>o=="n"?` -`:o=="r"?"\r":o=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp}create(){return this.regexp?new RegExpQuery(this):new StringQuery(this)}getCursor(e,s=0,o=e.length){return this.regexp?regexpCursor(this,e,s,o):stringCursor(this,e,s,o)}}class QueryType{constructor(e){this.spec=e}}function stringCursor(a,e,s,o){return new SearchCursor(e,a.unquoted,s,o,a.caseSensitive?void 0:c=>c.toLowerCase())}class StringQuery extends QueryType{constructor(e){super(e)}nextMatch(e,s,o){let c=stringCursor(this.spec,e,o,e.length).nextOverlapping();return c.done&&(c=stringCursor(this.spec,e,0,s).nextOverlapping()),c.done?null:c.value}prevMatchInRange(e,s,o){for(let c=o;;){let d=Math.max(s,c-1e4-this.spec.unquoted.length),_=stringCursor(this.spec,e,d,c),b=null;for(;!_.nextOverlapping().done;)b=_.value;if(b)return b;if(d==s)return null;c-=1e4}}prevMatch(e,s,o){return this.prevMatchInRange(e,0,s)||this.prevMatchInRange(e,o,e.length)}getReplacement(e){return this.spec.replace}matchAll(e,s){let o=stringCursor(this.spec,e,0,e.length),c=[];for(;!o.next().done;){if(c.length>=s)return null;c.push(o.value)}return c}highlight(e,s,o,c){let d=stringCursor(this.spec,e,Math.max(0,s-this.spec.unquoted.length),Math.min(o+this.spec.unquoted.length,e.length));for(;!d.next().done;)c(d.value.from,d.value.to)}}function regexpCursor(a,e,s,o){return new RegExpCursor(e,a.search,a.caseSensitive?void 0:{ignoreCase:!0},s,o)}class RegExpQuery extends QueryType{nextMatch(e,s,o){let c=regexpCursor(this.spec,e,o,e.length).next();return c.done&&(c=regexpCursor(this.spec,e,0,s).next()),c.done?null:c.value}prevMatchInRange(e,s,o){for(let c=1;;c++){let d=Math.max(s,o-c*1e4),_=regexpCursor(this.spec,e,d,o),b=null;for(;!_.next().done;)b=_.value;if(b&&(d==s||b.from>d+10))return b;if(d==s)return null}}prevMatch(e,s,o){return this.prevMatchInRange(e,0,s)||this.prevMatchInRange(e,o,e.length)}getReplacement(e){return this.spec.replace.replace(/\$([$&\d+])/g,(s,o)=>o=="$"?"$":o=="&"?e.match[0]:o!="0"&&+o=s)return null;c.push(o.value)}return c}highlight(e,s,o,c){let d=regexpCursor(this.spec,e,Math.max(0,s-250),Math.min(o+250,e.length));for(;!d.next().done;)c(d.value.from,d.value.to)}}const setSearchQuery=StateEffect.define(),togglePanel$1=StateEffect.define(),searchState=StateField.define({create(a){return new SearchState(defaultQuery(a).create(),null)},update(a,e){for(let s of e.effects)s.is(setSearchQuery)?a=new SearchState(s.value.create(),a.panel):s.is(togglePanel$1)&&(a=new SearchState(a.query,s.value?createSearchPanel:null));return a},provide:a=>showPanel.from(a,e=>e.panel)});class SearchState{constructor(e,s){this.query=e,this.panel=s}}const matchMark=Decoration.mark({class:"cm-searchMatch"}),selectedMatchMark=Decoration.mark({class:"cm-searchMatch cm-searchMatch-selected"}),searchHighlighter=ViewPlugin.fromClass(class{constructor(a){this.view=a,this.decorations=this.highlight(a.state.field(searchState))}update(a){let e=a.state.field(searchState);(e!=a.startState.field(searchState)||a.docChanged||a.selectionSet||a.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:a,panel:e}){if(!e||!a.spec.valid)return Decoration.none;let{view:s}=this,o=new RangeSetBuilder;for(let c=0,d=s.visibleRanges,_=d.length;c<_;c++){let{from:b,to:k}=d[c];for(;c<_-1&&k>d[c+1].from-2*250;)k=d[++c].to;a.highlight(s.state.doc,b,k,($,j)=>{let _e=s.state.selection.ranges.some(et=>et.from==$&&et.to==j);o.add($,j,_e?selectedMatchMark:matchMark)})}return o.finish()}},{decorations:a=>a.decorations});function searchCommand(a){return e=>{let s=e.state.field(searchState,!1);return s&&s.query.spec.valid?a(e,s):openSearchPanel(e)}}const findNext=searchCommand((a,{query:e})=>{let{from:s,to:o}=a.state.selection.main,c=e.nextMatch(a.state.doc,s,o);return!c||c.from==s&&c.to==o?!1:(a.dispatch({selection:{anchor:c.from,head:c.to},scrollIntoView:!0,effects:announceMatch(a,c),userEvent:"select.search"}),!0)}),findPrevious=searchCommand((a,{query:e})=>{let{state:s}=a,{from:o,to:c}=s.selection.main,d=e.prevMatch(s.doc,o,c);return d?(a.dispatch({selection:{anchor:d.from,head:d.to},scrollIntoView:!0,effects:announceMatch(a,d),userEvent:"select.search"}),!0):!1}),selectMatches=searchCommand((a,{query:e})=>{let s=e.matchAll(a.state.doc,1e3);return!s||!s.length?!1:(a.dispatch({selection:EditorSelection.create(s.map(o=>EditorSelection.range(o.from,o.to))),userEvent:"select.search.matches"}),!0)}),selectSelectionMatches=({state:a,dispatch:e})=>{let s=a.selection;if(s.ranges.length>1||s.main.empty)return!1;let{from:o,to:c}=s.main,d=[],_=0;for(let b=new SearchCursor(a.doc,a.sliceDoc(o,c));!b.next().done;){if(d.length>1e3)return!1;b.value.from==o&&(_=d.length),d.push(EditorSelection.range(b.value.from,b.value.to))}return e(a.update({selection:EditorSelection.create(d,_),userEvent:"select.search.matches"})),!0},replaceNext=searchCommand((a,{query:e})=>{let{state:s}=a,{from:o,to:c}=s.selection.main;if(s.readOnly)return!1;let d=e.nextMatch(s.doc,o,o);if(!d)return!1;let _=[],b,k;if(d.from==o&&d.to==c&&(k=s.toText(e.getReplacement(d)),_.push({from:d.from,to:d.to,insert:k}),d=e.nextMatch(s.doc,d.from,d.to)),d){let $=_.length==0||_[0].from>=d.to?0:d.to-d.from-k.length;b={anchor:d.from-$,head:d.to-$}}return a.dispatch({changes:_,selection:b,scrollIntoView:!!b,effects:d?announceMatch(a,d):void 0,userEvent:"input.replace"}),!0}),replaceAll=searchCommand((a,{query:e})=>{if(a.state.readOnly)return!1;let s=e.matchAll(a.state.doc,1e9).map(o=>{let{from:c,to:d}=o;return{from:c,to:d,insert:e.getReplacement(o)}});return s.length?(a.dispatch({changes:s,userEvent:"input.replace.all"}),!0):!1});function createSearchPanel(a){return a.state.facet(searchConfigFacet).createPanel(a)}function defaultQuery(a,e){var s;let o=a.selection.main,c=o.empty||o.to>o.from+100?"":a.sliceDoc(o.from,o.to),d=(s=e==null?void 0:e.caseSensitive)!==null&&s!==void 0?s:a.facet(searchConfigFacet).caseSensitive;return e&&!c?e:new SearchQuery({search:c.replace(/\n/g,"\\n"),caseSensitive:d})}const openSearchPanel=a=>{let e=a.state.field(searchState,!1);if(e&&e.panel){let s=getPanel(a,createSearchPanel);if(!s)return!1;let o=s.dom.querySelector("[name=search]");if(o!=a.root.activeElement){let c=defaultQuery(a.state,e.query.spec);c.valid&&a.dispatch({effects:setSearchQuery.of(c)}),o.focus(),o.select()}}else a.dispatch({effects:[togglePanel$1.of(!0),e?setSearchQuery.of(defaultQuery(a.state,e.query.spec)):StateEffect.appendConfig.of(searchExtensions)]});return!0},closeSearchPanel=a=>{let e=a.state.field(searchState,!1);if(!e||!e.panel)return!1;let s=getPanel(a,createSearchPanel);return s&&s.dom.contains(a.root.activeElement)&&a.focus(),a.dispatch({effects:togglePanel$1.of(!1)}),!0},searchKeymap=[{key:"Mod-f",run:openSearchPanel,scope:"editor search-panel"},{key:"F3",run:findNext,shift:findPrevious,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:findNext,shift:findPrevious,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:closeSearchPanel,scope:"editor search-panel"},{key:"Mod-Shift-l",run:selectSelectionMatches},{key:"Alt-g",run:gotoLine},{key:"Mod-d",run:selectNextOccurrence,preventDefault:!0}];class SearchPanel{constructor(e){this.view=e;let s=this.query=e.state.field(searchState).query.spec;this.commit=this.commit.bind(this),this.searchField=crelt("input",{value:s.search,placeholder:phrase(e,"Find"),"aria-label":phrase(e,"Find"),class:"cm-textfield",name:"search",onchange:this.commit,onkeyup:this.commit}),this.replaceField=crelt("input",{value:s.replace,placeholder:phrase(e,"Replace"),"aria-label":phrase(e,"Replace"),class:"cm-textfield",name:"replace",onchange:this.commit,onkeyup:this.commit}),this.caseField=crelt("input",{type:"checkbox",name:"case",checked:s.caseSensitive,onchange:this.commit}),this.reField=crelt("input",{type:"checkbox",name:"re",checked:s.regexp,onchange:this.commit});function o(c,d,_){return crelt("button",{class:"cm-button",name:c,onclick:d,type:"button"},_)}this.dom=crelt("div",{onkeydown:c=>this.keydown(c),class:"cm-search"},[this.searchField,o("next",()=>findNext(e),[phrase(e,"next")]),o("prev",()=>findPrevious(e),[phrase(e,"previous")]),o("select",()=>selectMatches(e),[phrase(e,"all")]),crelt("label",null,[this.caseField,phrase(e,"match case")]),crelt("label",null,[this.reField,phrase(e,"regexp")]),...e.state.readOnly?[]:[crelt("br"),this.replaceField,o("replace",()=>replaceNext(e),[phrase(e,"replace")]),o("replaceAll",()=>replaceAll(e),[phrase(e,"replace all")]),crelt("button",{name:"close",onclick:()=>closeSearchPanel(e),"aria-label":phrase(e,"close"),type:"button"},["\xD7"])]])}commit(){let e=new SearchQuery({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:setSearchQuery.of(e)}))}keydown(e){runScopeHandlers(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?findPrevious:findNext)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),replaceNext(this.view))}update(e){for(let s of e.transactions)for(let o of s.effects)o.is(setSearchQuery)&&!o.value.eq(this.query)&&this.setQuery(o.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(searchConfigFacet).top}}function phrase(a,e){return a.state.phrase(e)}const AnnounceMargin=30,Break=/[\s\.,:;?!]/;function announceMatch(a,{from:e,to:s}){let o=a.state.doc.lineAt(e).from,c=a.state.doc.lineAt(s).to,d=Math.max(o,e-AnnounceMargin),_=Math.min(c,s+AnnounceMargin),b=a.state.sliceDoc(d,_);if(d!=o){for(let k=0;kb.length-AnnounceMargin;k--)if(!Break.test(b[k-1])&&Break.test(b[k])){b=b.slice(0,k);break}}return EditorView.announce.of(`${a.state.phrase("current match")}. ${b} ${a.state.phrase("on line")} ${a.state.doc.lineAt(e).number}`)}const baseTheme$3=EditorView.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),searchExtensions=[searchState,Prec.lowest(searchHighlighter),baseTheme$3],ios=typeof navigator!="undefined"&&!/Edge\/(\d+)/.exec(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor)&&(/Mobile\/\w+/.test(navigator.userAgent)||navigator.maxTouchPoints>2),Outside="-10000px";class TooltipViewManager{constructor(e,s,o){this.facet=s,this.createTooltipView=o,this.input=e.state.facet(s),this.tooltips=this.input.filter(c=>c),this.tooltipViews=this.tooltips.map(o)}update(e){let s=e.state.facet(this.facet),o=s.filter(d=>d);if(s===this.input){for(let d of this.tooltipViews)d.update&&d.update(e);return!1}let c=[];for(let d=0;d{var e,s,o;return{position:ios?"absolute":((e=a.find(c=>c.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((s=a.find(c=>c.parent))===null||s===void 0?void 0:s.parent)||null,tooltipSpace:((o=a.find(c=>c.tooltipSpace))===null||o===void 0?void 0:o.tooltipSpace)||windowSpace}}}),tooltipPlugin=ViewPlugin.fromClass(class{constructor(a){var e;this.view=a,this.inView=!0,this.lastTransaction=0,this.measureTimeout=-1;let s=a.state.facet(tooltipConfig);this.position=s.position,this.parent=s.parent,this.classes=a.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new TooltipViewManager(a,showTooltip,o=>this.createTooltip(o)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(o=>{Date.now()>this.lastTransaction-50&&o.length>0&&o[o.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),(e=a.dom.ownerDocument.defaultView)===null||e===void 0||e.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let a of this.manager.tooltipViews)this.intersectionObserver.observe(a.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(a){a.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(a);e&&this.observeIntersection();let s=e||a.geometryChanged,o=a.state.facet(tooltipConfig);if(o.position!=this.position){this.position=o.position;for(let c of this.manager.tooltipViews)c.dom.style.position=this.position;s=!0}if(o.parent!=this.parent){this.parent&&this.container.remove(),this.parent=o.parent,this.createContainer();for(let c of this.manager.tooltipViews)this.container.appendChild(c.dom);s=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);s&&this.maybeMeasure()}createTooltip(a){let e=a.create(this.view);if(e.dom.classList.add("cm-tooltip"),a.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",e.dom.appendChild(s)}return e.dom.style.position=this.position,e.dom.style.top=Outside,this.container.appendChild(e.dom),e.mount&&e.mount(this.view),e}destroy(){var a,e;(a=this.view.dom.ownerDocument.defaultView)===null||a===void 0||a.removeEventListener("resize",this.measureSoon);for(let{dom:s}of this.manager.tooltipViews)s.remove();(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let a=this.view.dom.getBoundingClientRect();return{editor:a,parent:this.parent?this.container.getBoundingClientRect():a,pos:this.manager.tooltips.map((e,s)=>{let o=this.manager.tooltipViews[s];return o.getCoords?o.getCoords(e.pos):this.view.coordsAtPos(e.pos)}),size:this.manager.tooltipViews.map(({dom:e})=>e.getBoundingClientRect()),space:this.view.state.facet(tooltipConfig).tooltipSpace(this.view)}}writeMeasure(a){let{editor:e,space:s}=a,o=[];for(let c=0;c=Math.min(e.bottom,s.bottom)||k.rightMath.min(e.right,s.right)+.1){b.style.top=Outside;continue}let j=d.arrow?_.dom.querySelector(".cm-tooltip-arrow"):null,_e=j?7:0,et=$.right-$.left,tt=$.bottom-$.top,nt=_.offset||noOffset,it=this.view.textDirection==Direction.LTR,rt=$.width>s.right-s.left?it?s.left:s.right-$.width:it?Math.min(k.left-(j?14:0)+nt.x,s.right-et):Math.max(s.left,k.left-et+(j?14:0)-nt.x),st=!!d.above;!d.strictSide&&(st?k.top-($.bottom-$.top)-nt.ys.bottom)&&st==s.bottom-k.bottom>k.top-s.top&&(st=!st);let ot=st?k.top-tt-_e-nt.y:k.bottom+_e+nt.y,at=rt+et;if(_.overlap!==!0)for(let ht of o)ht.leftrt&&ht.topot&&(ot=st?ht.top-tt-2-_e:ht.bottom+_e+2);this.position=="absolute"?(b.style.top=ot-a.parent.top+"px",b.style.left=rt-a.parent.left+"px"):(b.style.top=ot+"px",b.style.left=rt+"px"),j&&(j.style.left=`${k.left+(it?nt.x:-nt.x)-(rt+14-7)}px`),_.overlap!==!0&&o.push({left:rt,top:ot,right:at,bottom:ot+tt}),b.classList.toggle("cm-tooltip-above",st),b.classList.toggle("cm-tooltip-below",!st),_.positioned&&_.positioned()}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let a of this.manager.tooltipViews)a.dom.style.top=Outside}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),baseTheme$2=EditorView.baseTheme({".cm-tooltip":{zIndex:100},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:`${7}px`,width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},".cm-tooltip-above &":{bottom:`-${7}px`,"&:before":{borderTop:`${7}px solid #bbb`},"&:after":{borderTop:`${7}px solid #f5f5f5`,bottom:"1px"}},".cm-tooltip-below &":{top:`-${7}px`,"&:before":{borderBottom:`${7}px solid #bbb`},"&:after":{borderBottom:`${7}px solid #f5f5f5`,top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),noOffset={x:0,y:0},showTooltip=Facet.define({enables:[tooltipPlugin,baseTheme$2]}),showHoverTooltip=Facet.define();class HoverTooltipHost{constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new TooltipViewManager(e,showHoverTooltip,s=>this.createHostedView(s))}static create(e){return new HoverTooltipHost(e)}createHostedView(e){let s=e.create(this.view);return s.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(s.dom),this.mounted&&s.mount&&s.mount(this.view),s}mount(e){for(let s of this.manager.tooltipViews)s.mount&&s.mount(e);this.mounted=!0}positioned(){for(let e of this.manager.tooltipViews)e.positioned&&e.positioned()}update(e){this.manager.update(e)}}const showHoverTooltipHost=showTooltip.compute([showHoverTooltip],a=>{let e=a.facet(showHoverTooltip).filter(s=>s);return e.length===0?null:{pos:Math.min(...e.map(s=>s.pos)),end:Math.max(...e.filter(s=>s.end!=null).map(s=>s.end)),create:HoverTooltipHost.create,above:e[0].above,arrow:e.some(s=>s.arrow)}});class HoverPlugin{constructor(e,s,o,c,d){this.view=e,this.source=s,this.field=o,this.setHover=c,this.hoverTime=d,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active)return;let e=Date.now()-this.lastMove.time;ec.bottom||s.xc.right+this.view.defaultCharacterWidth)return;let d=this.view.bidiSpans(this.view.state.doc.lineAt(o)).find(k=>k.from<=o&&k.to>=o),_=d&&d.dir==Direction.RTL?-1:1,b=this.source(this.view,o,s.x{this.pending==k&&(this.pending=null,$&&this.view.dispatch({effects:this.setHover.of($)}))},$=>logException(this.view.state,$,"hover tooltip"))}else b&&this.view.dispatch({effects:this.setHover.of(b)})}mousemove(e){var s;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let o=this.active;if(o&&!isInTooltip(this.lastMove.target)||this.pending){let{pos:c}=o||this.pending,d=(s=o==null?void 0:o.end)!==null&&s!==void 0?s:c;(c==d?this.view.posAtCoords(this.lastMove)!=c:!isOverRange(this.view,c,d,e.clientX,e.clientY,6))&&(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&this.view.dispatch({effects:this.setHover.of(null)})}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}function isInTooltip(a){for(let e=a;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains("cm-tooltip"))return!0;return!1}function isOverRange(a,e,s,o,c,d){let _=document.createRange(),b=a.domAtPos(e),k=a.domAtPos(s);_.setEnd(k.node,k.offset),_.setStart(b.node,b.offset);let $=_.getClientRects();_.detach();for(let j=0;j<$.length;j++){let _e=$[j];if(Math.max(_e.top-c,c-_e.bottom,_e.left-o,o-_e.right)<=d)return!0}return!1}function hoverTooltip(a,e={}){let s=StateEffect.define(),o=StateField.define({create(){return null},update(c,d){if(c&&e.hideOnChange&&(d.docChanged||d.selection))return null;for(let _ of d.effects){if(_.is(s))return _.value;if(_.is(closeHoverTooltipEffect))return null}if(c&&d.docChanged){let _=d.changes.mapPos(c.pos,-1,MapMode.TrackDel);if(_==null)return null;let b=Object.assign(Object.create(null),c);return b.pos=_,c.end!=null&&(b.end=d.changes.mapPos(c.end)),b}return c},provide:c=>showHoverTooltip.from(c)});return[o,ViewPlugin.define(c=>new HoverPlugin(c,a,o,s,e.hoverTime||300)),showHoverTooltipHost]}function getTooltip(a,e){let s=a.plugin(tooltipPlugin);if(!s)return null;let o=s.manager.tooltips.indexOf(e);return o<0?null:s.manager.tooltipViews[o]}const closeHoverTooltipEffect=StateEffect.define();class CompletionContext{constructor(e,s,o){this.state=e,this.pos=s,this.explicit=o,this.abortListeners=[]}tokenBefore(e){let s=syntaxTree(this.state).resolveInner(this.pos,-1);for(;s&&e.indexOf(s.name)<0;)s=s.parent;return s?{from:s.from,to:this.pos,text:this.state.sliceDoc(s.from,this.pos),type:s.type}:null}matchBefore(e){let s=this.state.doc.lineAt(this.pos),o=Math.max(s.from,this.pos-250),c=s.text.slice(o-s.from,this.pos-s.from),d=c.search(ensureAnchor(e,!1));return d<0?null:{from:o+d,to:this.pos,text:c.slice(d)}}get aborted(){return this.abortListeners==null}addEventListener(e,s){e=="abort"&&this.abortListeners&&this.abortListeners.push(s)}}function toSet(a){let e=Object.keys(a).join(""),s=/\w/.test(e);return s&&(e=e.replace(/\w/g,"")),`[${s?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function prefixMatch(a){let e=Object.create(null),s=Object.create(null);for(let{label:c}of a){e[c[0]]=!0;for(let d=1;dtypeof c=="string"?{label:c}:c),[s,o]=e.every(c=>/^\w+$/.test(c.label))?[/\w*$/,/\w+$/]:prefixMatch(e);return c=>{let d=c.matchBefore(o);return d||c.explicit?{from:d?d.from:c.pos,options:e,span:s}:null}}function ifNotIn(a,e){return s=>{for(let o=syntaxTree(s.state).resolveInner(s.pos,-1);o;o=o.parent)if(a.indexOf(o.name)>-1)return null;return e(s)}}class Option{constructor(e,s,o){this.completion=e,this.source=s,this.match=o}}function cur(a){return a.selection.main.head}function ensureAnchor(a,e){var s;let{source:o}=a,c=e&&o[0]!="^",d=o[o.length-1]!="$";return!c&&!d?a:new RegExp(`${c?"^":""}(?:${o})${d?"$":""}`,(s=a.flags)!==null&&s!==void 0?s:a.ignoreCase?"i":"")}const pickedCompletion=Annotation.define();function applyCompletion(a,e){let s=e.completion.apply||e.completion.label,o=e.source;typeof s=="string"?a.dispatch({changes:{from:o.from,to:o.to,insert:s},selection:{anchor:o.from+s.length},userEvent:"input.complete",annotations:pickedCompletion.of(e.completion)}):s(a,e.completion,o.from,o.to)}const SourceCache=new WeakMap;function asSource(a){if(!Array.isArray(a))return a;let e=SourceCache.get(a);return e||SourceCache.set(a,e=completeFromList(a)),e}class FuzzyMatcher{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let s=0;s=48&<<=57||lt>=97&<<=122?2:lt>=65&<<=90?1:0:(ut=fromCodePoint(lt))!=ut.toLowerCase()?1:ut!=ut.toUpperCase()?2:0;(!ot||ct==1&&rt||ht==0&&ct!=0)&&(s[_e]==lt||o[_e]==lt&&(et=!0)?_[_e++]=ot:_.length&&(st=!1)),ht=ct,ot+=codePointSize(lt)}return _e==k&&_[0]==0&&st?this.result(-100+(et?-200:0),_,e):tt==k&&nt==0?[-200-e.length,0,it]:b>-1?[-700-e.length,b,b+this.pattern.length]:tt==k?[-200+-700-e.length,nt,it]:_e==k?this.result(-100+(et?-200:0)+-700+(st?0:-1100),_,e):s.length==2?null:this.result((c[0]?-700:0)+-200+-1100,c,e)}result(e,s,o){let c=[e-o.length],d=1;for(let _ of s){let b=_+(this.astral?codePointSize(codePointAt(o,_)):1);d>1&&c[d-1]==_?c[d-1]=b:(c[d++]=_,c[d++]=b)}return c}}const completionConfig=Facet.define({combine(a){return combineConfig(a,{activateOnTyping:!0,override:null,maxRenderedOptions:100,defaultKeymap:!0,optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[]},{defaultKeymap:(e,s)=>e&&s,icons:(e,s)=>e&&s,optionClass:(e,s)=>o=>joinClass(e(o),s(o)),addToOptions:(e,s)=>e.concat(s)})}});function joinClass(a,e){return a?e?a+" "+e:a:e}function optionContent(a){let e=a.addToOptions.slice();return a.icons&&e.push({render(s){let o=document.createElement("div");return o.classList.add("cm-completionIcon"),s.type&&o.classList.add(...s.type.split(/\s+/g).map(c=>"cm-completionIcon-"+c)),o.setAttribute("aria-hidden","true"),o},position:20}),e.push({render(s,o,c){let d=document.createElement("span");d.className="cm-completionLabel";let{label:_}=s,b=0;for(let k=1;kb&&d.appendChild(document.createTextNode(_.slice(b,$)));let _e=d.appendChild(document.createElement("span"));_e.appendChild(document.createTextNode(_.slice($,j))),_e.className="cm-completionMatchedText",b=j}return b<_.length&&d.appendChild(document.createTextNode(_.slice(b))),d},position:50},{render(s){if(!s.detail)return null;let o=document.createElement("span");return o.className="cm-completionDetail",o.textContent=s.detail,o},position:80}),e.sort((s,o)=>s.position-o.position).map(s=>s.render)}function rangeAroundSelected(a,e,s){if(a<=s)return{from:0,to:a};if(e<=a>>1){let c=Math.floor(e/s);return{from:c*s,to:(c+1)*s}}let o=Math.floor((a-e)/s);return{from:a-(o+1)*s,to:a-o*s}}class CompletionTooltip{constructor(e,s){this.view=e,this.stateField=s,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:b=>this.positionInfo(b),key:this};let o=e.state.field(s),{options:c,selected:d}=o.open,_=e.state.facet(completionConfig);this.optionContent=optionContent(_),this.optionClass=_.optionClass,this.range=rangeAroundSelected(c.length,d,_.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.dom.addEventListener("mousedown",b=>{for(let k=b.target,$;k&&k!=this.dom;k=k.parentNode)if(k.nodeName=="LI"&&($=/-(\d+)$/.exec(k.id))&&+$[1]{this.info&&this.view.requestMeasure(this.placeInfo)})}mount(){this.updateSel()}update(e){e.state.field(this.stateField)!=e.startState.field(this.stateField)&&this.updateSel()}positioned(){this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let e=this.view.state.field(this.stateField),s=e.open;if((s.selected=this.range.to)&&(this.range=rangeAroundSelected(s.options.length,s.selected,this.view.state.facet(completionConfig).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(s.options,e.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})),this.updateSelectedOption(s.selected)){this.info&&(this.info.remove(),this.info=null);let{completion:o}=s.options[s.selected],{info:c}=o;if(!c)return;let d=typeof c=="string"?document.createTextNode(c):c(o);if(!d)return;"then"in d?d.then(_=>{_&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(_)}).catch(_=>logException(this.view.state,_,"completion info")):this.addInfoPane(d)}}addInfoPane(e){let s=this.info=document.createElement("div");s.className="cm-tooltip cm-completionInfo",s.appendChild(e),this.dom.appendChild(s),this.view.requestMeasure(this.placeInfo)}updateSelectedOption(e){let s=null;for(let o=this.list.firstChild,c=this.range.from;o;o=o.nextSibling,c++)c==e?o.hasAttribute("aria-selected")||(o.setAttribute("aria-selected","true"),s=o):o.hasAttribute("aria-selected")&&o.removeAttribute("aria-selected");return s&&scrollIntoView(this.list,s),s}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let s=this.dom.getBoundingClientRect(),o=this.info.getBoundingClientRect(),c=e.getBoundingClientRect();if(c.top>Math.min(innerHeight,s.bottom)-10||c.bottomnew CompletionTooltip(e,a)}function scrollIntoView(a,e){let s=a.getBoundingClientRect(),o=e.getBoundingClientRect();o.tops.bottom&&(a.scrollTop+=o.bottom-s.bottom)}const MaxOptions=300;function score(a){return(a.boost||0)*100+(a.apply?10:0)+(a.info?5:0)+(a.type?1:0)}function sortOptions(a,e){let s=[],o=0;for(let _ of a)if(_.hasResult())if(_.result.filter===!1)for(let b of _.result.options)s.push(new Option(b,_,[1e9-o++]));else{let b=new FuzzyMatcher(e.sliceDoc(_.from,_.to)),k;for(let $ of _.result.options)(k=b.match($.label))&&($.boost!=null&&(k[0]+=$.boost),s.push(new Option($,_,k)))}let c=[],d=null;for(let _ of s.sort(cmpOption)){if(c.length==MaxOptions)break;!d||d.label!=_.completion.label||d.detail!=_.completion.detail||d.type!=_.completion.type||d.apply!=_.completion.apply?c.push(_):score(_.completion)>score(d)&&(c[c.length-1]=_),d=_.completion}return c}class CompletionDialog{constructor(e,s,o,c,d){this.options=e,this.attrs=s,this.tooltip=o,this.timestamp=c,this.selected=d}setSelected(e,s){return e==this.selected||e>=this.options.length?this:new CompletionDialog(this.options,makeAttrs(s,e),this.tooltip,this.timestamp,e)}static build(e,s,o,c,d){let _=sortOptions(e,s);if(!_.length)return null;let b=0;if(c&&c.selected){let k=c.options[c.selected].completion;for(let $=0;$<_.length;$++)if(_[$].completion==k){b=$;break}}return new CompletionDialog(_,makeAttrs(o,b),{pos:e.reduce((k,$)=>$.hasResult()?Math.min(k,$.from):k,1e8),create:completionTooltip(completionState),above:d.aboveCursor},c?c.timestamp:Date.now(),b)}map(e){return new CompletionDialog(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected)}}class CompletionState{constructor(e,s,o){this.active=e,this.id=s,this.open=o}static start(){return new CompletionState(none,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:s}=e,o=s.facet(completionConfig),d=(o.override||s.languageDataAt("autocomplete",cur(s)).map(asSource)).map(b=>(this.active.find($=>$.source==b)||new ActiveSource(b,this.active.some($=>$.state!=0)?1:0)).update(e,o));d.length==this.active.length&&d.every((b,k)=>b==this.active[k])&&(d=this.active);let _=e.selection||d.some(b=>b.hasResult()&&e.changes.touchesRange(b.from,b.to))||!sameResults(d,this.active)?CompletionDialog.build(d,s,this.id,this.open,o):this.open&&e.docChanged?this.open.map(e.changes):this.open;!_&&d.every(b=>b.state!=1)&&d.some(b=>b.hasResult())&&(d=d.map(b=>b.hasResult()?new ActiveSource(b.source,0):b));for(let b of e.effects)b.is(setSelectedEffect)&&(_=_&&_.setSelected(b.value,this.id));return d==this.active&&_==this.open?this:new CompletionState(d,this.id,_)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:baseAttrs}}function sameResults(a,e){if(a==e)return!0;for(let s=0,o=0;;){for(;sd||s=="delete"&&cur(e.startState)==this.from)return new ActiveSource(this.source,s=="input"&&o.activateOnTyping?1:0);let b=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos);return this.span&&(c==d||this.span.test(e.state.sliceDoc(c,d)))?new ActiveResult(this.source,b,this.result,c,d,this.span):new ActiveSource(this.source,1,b)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new ActiveSource(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new ActiveResult(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1),this.span)}}const startCompletionEffect=StateEffect.define(),closeCompletionEffect=StateEffect.define(),setActiveEffect=StateEffect.define({map(a,e){return a.map(s=>s.map(e))}}),setSelectedEffect=StateEffect.define(),completionState=StateField.define({create(){return CompletionState.start()},update(a,e){return a.update(e)},provide:a=>[showTooltip.from(a,e=>e.tooltip),EditorView.contentAttributes.from(a,e=>e.attrs)]}),CompletionInteractMargin=75;function moveCompletionSelection(a,e="option"){return s=>{let o=s.state.field(completionState,!1);if(!o||!o.open||Date.now()-o.open.timestamp=b&&(_=e=="page"?b-1:0),s.dispatch({effects:setSelectedEffect.of(_)}),!0}}const acceptCompletion=a=>{let e=a.state.field(completionState,!1);return a.state.readOnly||!e||!e.open||Date.now()-e.open.timestampa.state.field(completionState,!1)?(a.dispatch({effects:startCompletionEffect.of(!0)}),!0):!1,closeCompletion=a=>{let e=a.state.field(completionState,!1);return!e||!e.active.some(s=>s.state!=0)?!1:(a.dispatch({effects:closeCompletionEffect.of(null)}),!0)};class RunningQuery{constructor(e,s){this.active=e,this.context=s,this.time=Date.now(),this.updates=[],this.done=void 0}}const DebounceTime=50,MaxUpdateCount=50,MinAbortTime=1e3,completionPlugin=ViewPlugin.fromClass(class{constructor(a){this.view=a,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let e of a.state.field(completionState).active)e.state==1&&this.startQuery(e)}update(a){let e=a.state.field(completionState);if(!a.selectionSet&&!a.docChanged&&a.startState.field(completionState)==e)return;let s=a.transactions.some(o=>(o.selection||o.docChanged)&&!getUserEvent(o));for(let o=0;oMaxUpdateCount&&Date.now()-c.time>MinAbortTime){for(let d of c.context.abortListeners)try{d()}catch(_){logException(this.view.state,_)}c.context.abortListeners=null,this.running.splice(o--,1)}else c.updates.push(...a.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=e.active.some(o=>o.state==1&&!this.running.some(c=>c.active.source==o.source))?setTimeout(()=>this.startUpdate(),DebounceTime):-1,this.composing!=0)for(let o of a.transactions)getUserEvent(o)=="input"?this.composing=2:this.composing==2&&o.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:a}=this.view,e=a.field(completionState);for(let s of e.active)s.state==1&&!this.running.some(o=>o.active.source==s.source)&&this.startQuery(s)}startQuery(a){let{state:e}=this.view,s=cur(e),o=new CompletionContext(e,s,a.explicitPos==s),c=new RunningQuery(a,o);this.running.push(c),Promise.resolve(a.source(o)).then(d=>{c.context.aborted||(c.done=d||null,this.scheduleAccept())},d=>{this.view.dispatch({effects:closeCompletionEffect.of(null)}),logException(this.view.state,d)})}scheduleAccept(){this.running.every(a=>a.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),DebounceTime))}accept(){var a;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],s=this.view.state.facet(completionConfig);for(let o=0;o_.source==c.active.source);if(d&&d.state==1)if(c.done==null){let _=new ActiveSource(c.active.source,0);for(let b of c.updates)_=_.update(b,s);_.state!=1&&e.push(_)}else this.startQuery(d)}e.length&&this.view.dispatch({effects:setActiveEffect.of(e)})}},{eventHandlers:{compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:startCompletionEffect.of(!1)}),20),this.composing=0}}}),baseTheme$1=EditorView.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",listStyle:"none",margin:0,padding:0,"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"300px"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class FieldPos{constructor(e,s,o,c){this.field=e,this.line=s,this.from=o,this.to=c}}class FieldRange{constructor(e,s,o){this.field=e,this.from=s,this.to=o}map(e){let s=e.mapPos(this.from,-1,MapMode.TrackDel),o=e.mapPos(this.to,1,MapMode.TrackDel);return s==null||o==null?null:new FieldRange(this.field,s,o)}}class Snippet{constructor(e,s){this.lines=e,this.fieldPositions=s}instantiate(e,s){let o=[],c=[s],d=e.doc.lineAt(s),_=/^\s*/.exec(d.text)[0];for(let k of this.lines){if(o.length){let $=_,j=/^\t*/.exec(k)[0].length;for(let _e=0;_enew FieldRange(k.field,c[k.line]+k.from,c[k.line]+k.to));return{text:o,ranges:b}}static parse(e){let s=[],o=[],c=[],d;for(let _ of e.split(/\r\n?|\n/)){for(;d=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(_);){let b=d[1]?+d[1]:null,k=d[2]||d[3]||"",$=-1;for(let j=0;j=$&&_e.field++}c.push(new FieldPos($,o.length,d.index,d.index+k.length)),_=_.slice(0,d.index)+k+_.slice(d.index+d[0].length)}o.push(_)}return new Snippet(o,c)}}let fieldMarker=Decoration.widget({widget:new class extends WidgetType{toDOM(){let a=document.createElement("span");return a.className="cm-snippetFieldPosition",a}ignoreEvent(){return!1}}}),fieldRange=Decoration.mark({class:"cm-snippetField"});class ActiveSnippet{constructor(e,s){this.ranges=e,this.active=s,this.deco=Decoration.set(e.map(o=>(o.from==o.to?fieldMarker:fieldRange).range(o.from,o.to)))}map(e){let s=[];for(let o of this.ranges){let c=o.map(e);if(!c)return null;s.push(c)}return new ActiveSnippet(s,this.active)}selectionInsideField(e){return e.ranges.every(s=>this.ranges.some(o=>o.field==this.active&&o.from<=s.from&&o.to>=s.to))}}const setActive=StateEffect.define({map(a,e){return a&&a.map(e)}}),moveToField=StateEffect.define(),snippetState=StateField.define({create(){return null},update(a,e){for(let s of e.effects){if(s.is(setActive))return s.value;if(s.is(moveToField)&&a)return new ActiveSnippet(a.ranges,s.value)}return a&&e.docChanged&&(a=a.map(e.changes)),a&&e.selection&&!a.selectionInsideField(e.selection)&&(a=null),a},provide:a=>EditorView.decorations.from(a,e=>e?e.deco:Decoration.none)});function fieldSelection(a,e){return EditorSelection.create(a.filter(s=>s.field==e).map(s=>EditorSelection.range(s.from,s.to)))}function snippet(a){let e=Snippet.parse(a);return(s,o,c,d)=>{let{text:_,ranges:b}=e.instantiate(s.state,c),k={changes:{from:c,to:d,insert:Text.of(_)}};if(b.length&&(k.selection=fieldSelection(b,0)),b.length>1){let $=new ActiveSnippet(b,0),j=k.effects=[setActive.of($)];s.state.field(snippetState,!1)===void 0&&j.push(StateEffect.appendConfig.of([snippetState,addSnippetKeymap,snippetPointerHandler,baseTheme$1]))}s.dispatch(s.state.update(k))}}function moveField(a){return({state:e,dispatch:s})=>{let o=e.field(snippetState,!1);if(!o||a<0&&o.active==0)return!1;let c=o.active+a,d=a>0&&!o.ranges.some(_=>_.field==c+a);return s(e.update({selection:fieldSelection(o.ranges,c),effects:setActive.of(d?null:new ActiveSnippet(o.ranges,c))})),!0}}const clearSnippet=({state:a,dispatch:e})=>a.field(snippetState,!1)?(e(a.update({effects:setActive.of(null)})),!0):!1,nextSnippetField=moveField(1),prevSnippetField=moveField(-1),defaultSnippetKeymap=[{key:"Tab",run:nextSnippetField,shift:prevSnippetField},{key:"Escape",run:clearSnippet}],snippetKeymap=Facet.define({combine(a){return a.length?a[0]:defaultSnippetKeymap}}),addSnippetKeymap=Prec.highest(keymap.compute([snippetKeymap],a=>a.facet(snippetKeymap)));function snippetCompletion(a,e){return Object.assign(Object.assign({},e),{apply:snippet(a)})}const snippetPointerHandler=EditorView.domEventHandlers({mousedown(a,e){let s=e.state.field(snippetState,!1),o;if(!s||(o=e.posAtCoords({x:a.clientX,y:a.clientY}))==null)return!1;let c=s.ranges.find(d=>d.from<=o&&d.to>=o);return!c||c.field==s.active?!1:(e.dispatch({selection:fieldSelection(s.ranges,c.field),effects:setActive.of(s.ranges.some(d=>d.field>c.field)?new ActiveSnippet(s.ranges,c.field):null)}),!0)}});function autocompletion(a={}){return[completionState,completionConfig.of(a),completionPlugin,completionKeymapExt,baseTheme$1]}const completionKeymap=[{key:"Ctrl-Space",run:startCompletion},{key:"Escape",run:closeCompletion},{key:"ArrowDown",run:moveCompletionSelection(!0)},{key:"ArrowUp",run:moveCompletionSelection(!1)},{key:"PageDown",run:moveCompletionSelection(!0,"page")},{key:"PageUp",run:moveCompletionSelection(!1,"page")},{key:"Enter",run:acceptCompletion}],completionKeymapExt=Prec.highest(keymap.computeN([completionConfig],a=>a.facet(completionConfig).defaultKeymap?[completionKeymap]:[])),toggleComment=a=>{let e=getConfig(a.state);return e.line?toggleLineComment(a):e.block?toggleBlockCommentByLine(a):!1};function command(a,e){return({state:s,dispatch:o})=>{if(s.readOnly)return!1;let c=a(e,s);return c?(o(s.update(c)),!0):!1}}const toggleLineComment=command(changeLineComment,0),toggleBlockComment=command(changeBlockComment,0),toggleBlockCommentByLine=command((a,e)=>changeBlockComment(a,e,selectedLineRanges(e)),0),commentKeymap=[{key:"Mod-/",run:toggleComment},{key:"Alt-A",run:toggleBlockComment}];function getConfig(a,e=a.selection.main.head){let s=a.languageDataAt("commentTokens",e);return s.length?s[0]:{}}const SearchMargin=50;function findBlockComment(a,{open:e,close:s},o,c){let d=a.sliceDoc(o-SearchMargin,o),_=a.sliceDoc(c,c+SearchMargin),b=/\s*$/.exec(d)[0].length,k=/^\s*/.exec(_)[0].length,$=d.length-b;if(d.slice($-e.length,$)==e&&_.slice(k,k+s.length)==s)return{open:{pos:o-b,margin:b&&1},close:{pos:c+k,margin:k&&1}};let j,_e;c-o<=2*SearchMargin?j=_e=a.sliceDoc(o,c):(j=a.sliceDoc(o,o+SearchMargin),_e=a.sliceDoc(c-SearchMargin,c));let et=/^\s*/.exec(j)[0].length,tt=/\s*$/.exec(_e)[0].length,nt=_e.length-tt-s.length;return j.slice(et,et+e.length)==e&&_e.slice(nt,nt+s.length)==s?{open:{pos:o+et+e.length,margin:/\s/.test(j.charAt(et+e.length))?1:0},close:{pos:c-tt-s.length,margin:/\s/.test(_e.charAt(nt-1))?1:0}}:null}function selectedLineRanges(a){let e=[];for(let s of a.selection.ranges){let o=a.doc.lineAt(s.from),c=s.to<=o.to?o:a.doc.lineAt(s.to),d=e.length-1;d>=0&&e[d].to>o.from?e[d].to=c.to:e.push({from:o.from,to:c.to})}return e}function changeBlockComment(a,e,s=e.selection.ranges){let o=s.map(d=>getConfig(e,d.from).block);if(!o.every(d=>d))return null;let c=s.map((d,_)=>findBlockComment(e,o[_],d.from,d.to));if(a!=2&&!c.every(d=>d))return{changes:e.changes(s.map((d,_)=>c[_]?[]:[{from:d.from,insert:o[_].open+" "},{from:d.to,insert:" "+o[_].close}]))};if(a!=1&&c.some(d=>d)){let d=[];for(let _=0,b;_c&&(d==_||_>j.from)){c=j.from;let _e=getConfig(e,$).line;if(!_e)continue;let et=/^\s*/.exec(j.text)[0].length,tt=et==j.length,nt=j.text.slice(et,et+_e.length)==_e?et:-1;etd.comment<0&&(!d.empty||d.single))){let d=[];for(let{line:b,token:k,indent:$,empty:j,single:_e}of o)(_e||!j)&&d.push({from:b.from+$,insert:k+" "});let _=e.changes(d);return{changes:_,selection:e.selection.map(_,1)}}else if(a!=1&&o.some(d=>d.comment>=0)){let d=[];for(let{line:_,comment:b,token:k}of o)if(b>=0){let $=_.from+b,j=$+k.length;_.text[j-_.from]==" "&&j++,d.push({from:$,to:j})}return{changes:d}}return null}const MaxOff=2e3;function rectangleFor(a,e,s){let o=Math.min(e.line,s.line),c=Math.max(e.line,s.line),d=[];if(e.off>MaxOff||s.off>MaxOff||e.col<0||s.col<0){let _=Math.min(e.off,s.off),b=Math.max(e.off,s.off);for(let k=o;k<=c;k++){let $=a.doc.line(k);$.length<=b&&d.push(EditorSelection.range($.from+_,$.to+b))}}else{let _=Math.min(e.col,s.col),b=Math.max(e.col,s.col);for(let k=o;k<=c;k++){let $=a.doc.line(k),j=findColumn($.text,_,a.tabSize,!0);if(j>-1){let _e=findColumn($.text,b,a.tabSize);d.push(EditorSelection.range($.from+j,$.from+_e))}}}return d}function absoluteColumn(a,e){let s=a.coordsAtPos(a.viewport.from);return s?Math.round(Math.abs((s.left-e)/a.defaultCharacterWidth)):-1}function getPos(a,e){let s=a.posAtCoords({x:e.clientX,y:e.clientY},!1),o=a.state.doc.lineAt(s),c=s-o.from,d=c>MaxOff?-1:c==o.length?absoluteColumn(a,e.clientX):countColumn(o.text,a.state.tabSize,s-o.from);return{line:o.number,col:d,off:c}}function rectangleSelectionStyle(a,e){let s=getPos(a,e),o=a.state.selection;return s?{update(c){if(c.docChanged){let d=c.changes.mapPos(c.startState.doc.line(s.line).from),_=c.state.doc.lineAt(d);s={line:_.number,col:s.col,off:Math.min(s.off,_.length)},o=o.map(c.changes)}},get(c,d,_){let b=getPos(a,c);if(!b)return o;let k=rectangleFor(a.state,s,b);return k.length?_?EditorSelection.create(k.concat(o.ranges)):EditorSelection.create(k):o}}:null}function rectangularSelection(a){let e=(a==null?void 0:a.eventFilter)||(s=>s.altKey&&s.button==0);return EditorView.mouseSelectionStyle.of((s,o)=>e(o)?rectangleSelectionStyle(s,o):null)}let nextTagID=0;class Tag{constructor(e,s,o){this.set=e,this.base=s,this.modified=o,this.id=nextTagID++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let s=new Tag([],null,[]);if(s.set.push(s),e)for(let o of e.set)s.set.push(o);return s}static defineModifier(){let e=new Modifier;return s=>s.modified.indexOf(e)>-1?s:Modifier.get(s.base||s,s.modified.concat(e).sort((o,c)=>o.id-c.id))}}let nextModifierID=0;class Modifier{constructor(){this.instances=[],this.id=nextModifierID++}static get(e,s){if(!s.length)return e;let o=s[0].instances.find(b=>b.base==e&&sameArray(s,b.modified));if(o)return o;let c=[],d=new Tag(c,e,s);for(let b of s)b.instances.push(d);let _=permute(s);for(let b of e.set)for(let k of _)c.push(Modifier.get(b,k));return d}}function sameArray(a,e){return a.length==e.length&&a.every((s,o)=>s==e[o])}function permute(a){let e=[a];for(let s=0;s0&&_e+3==c.length){_=1;break}let et=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(b);if(!et)throw new RangeError("Invalid path: "+c);if(d.push(et[0]=="*"?null:et[0][0]=='"'?JSON.parse(et[0]):et[0]),_e+=et[0].length,_e==c.length)break;let tt=c[_e++];if(_e==c.length&&tt=="!"){_=0;break}if(tt!="/")throw new RangeError("Invalid path: "+c);b=c.slice(_e)}let k=d.length-1,$=d[k];if(!$)throw new RangeError("Invalid path: "+c);let j=new Rule(o,_,k>0?d.slice(0,k):null);e[$]=j.sort(e[$])}}return ruleNodeProp.add(e)}const ruleNodeProp=new NodeProp,highlightStyle=Facet.define({combine(a){return a.length?HighlightStyle.combinedMatch(a):null}}),fallbackHighlightStyle=Facet.define({combine(a){return a.length?a[0].match:null}});function getHighlightStyle(a){return a.facet(highlightStyle)||a.facet(fallbackHighlightStyle)}class Rule{constructor(e,s,o,c){this.tags=e,this.mode=s,this.context=o,this.next=c}sort(e){return!e||e.depth_.facet(EditorView.darkTheme)==(s.themeType=="dark")?[this]:[])),this.fallback=d.concat(fallbackHighlightStyle.of(this))}match(e,s){if(this.scope&&s!=this.scope)return null;for(let o of e.set){let c=this.map[o.id];if(c!==void 0)return o!=e&&(this.map[e.id]=c),c}return this.map[e.id]=this.all}static combinedMatch(e){if(e.length==1)return e[0].match;let s=e.some(o=>o.scope)?void 0:Object.create(null);return(o,c)=>{let d=s&&s[o.id];if(d!==void 0)return d;let _=null;for(let b of e){let k=b.match(o,c);k&&(_=_?_+" "+k:k)}return s&&(s[o.id]=_),_}}static define(e,s){return new HighlightStyle(e,s||{})}static get(e,s,o){let c=getHighlightStyle(e);return c&&c(s,o||NodeType.none)}}class TreeHighlighter{constructor(e){this.markCache=Object.create(null),this.tree=syntaxTree(e.state),this.decorations=this.buildDeco(e,getHighlightStyle(e.state))}update(e){let s=syntaxTree(e.state),o=getHighlightStyle(e.state),c=o!=e.startState.facet(highlightStyle);s.length{o.add(_,b,this.markCache[k]||(this.markCache[k]=Decoration.mark({class:k})))});return o.finish()}}const treeHighlighter=Prec.high(ViewPlugin.fromClass(TreeHighlighter,{decorations:a=>a.decorations})),nodeStack=[""];class HighlightBuilder{constructor(e,s,o){this.at=e,this.style=s,this.span=o,this.class=""}startSpan(e,s){s!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=s)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,s,o,c,d,_){let{type:b,from:k,to:$}=e;if(k>=o||$<=s)return;nodeStack[d]=b.name,b.isTop&&(_=b);let j=c,_e=b.prop(ruleNodeProp),et=!1;for(;_e;){if(!_e.context||matchContext(_e.context,nodeStack,d)){for(let nt of _e.tags){let it=this.style(nt,_);it&&(j&&(j+=" "),j+=it,_e.mode==1?c+=(c?" ":"")+it:_e.mode==0&&(et=!0))}break}_e=_e.next}if(this.startSpan(e.from,j),et)return;let tt=e.tree&&e.tree.prop(NodeProp.mounted);if(tt&&tt.overlay){let nt=e.node.enter(tt.overlay[0].from+k,1),it=e.firstChild();for(let rt=0,st=k;;rt++){let ot=rt=at||!e.nextSibling())););if(!ot||at>o)break;st=ot.to+k,st>s&&(this.highlightRange(nt.cursor,Math.max(s,ot.from+k),Math.min(o,st),c,d,tt.tree.type),this.startSpan(st,j))}it&&e.parent()}else if(e.firstChild()){do if(!(e.to<=s)){if(e.from>=o)break;this.highlightRange(e,s,o,c,d+1,_),this.startSpan(Math.min(o,e.to),j)}while(e.nextSibling());e.parent()}}}function highlightTreeRange(a,e,s,o,c){let d=new HighlightBuilder(e,o,c);d.highlightRange(a.cursor(),e,s,"",0,a.type),d.flush(s)}function matchContext(a,e,s){if(a.length>s-1)return!1;for(let o=s-1,c=a.length-1;c>=0;c--,o--){let d=a[c];if(d&&d!=e[o])return!1}return!0}const t=Tag.define,comment=t(),name$1=t(),typeName=t(name$1),propertyName=t(name$1),literal=t(),string=t(literal),number=t(literal),content=t(),heading=t(content),keyword=t(),operator=t(),punctuation=t(),bracket=t(punctuation),meta=t(),tags={comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name:name$1,variableName:t(name$1),typeName,tagName:t(typeName),propertyName,attributeName:t(propertyName),className:t(name$1),labelName:t(name$1),namespace:t(name$1),macroName:t(name$1),literal,string,docString:t(string),character:t(string),attributeValue:t(string),number,integer:t(number),float:t(number),bool:t(literal),regexp:t(literal),escape:t(literal),color:t(literal),url:t(literal),keyword,self:t(keyword),null:t(keyword),atom:t(keyword),unit:t(keyword),modifier:t(keyword),operatorKeyword:t(keyword),controlKeyword:t(keyword),definitionKeyword:t(keyword),moduleKeyword:t(keyword),operator,derefOperator:t(operator),arithmeticOperator:t(operator),logicOperator:t(operator),bitwiseOperator:t(operator),compareOperator:t(operator),updateOperator:t(operator),definitionOperator:t(operator),typeOperator:t(operator),controlOperator:t(operator),punctuation,separator:t(punctuation),bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content,heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content),list:t(content),quote:t(content),emphasis:t(content),strong:t(content),link:t(content),monospace:t(content),strikethrough:t(content),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier(),constant:Tag.defineModifier(),function:Tag.defineModifier(),standard:Tag.defineModifier(),local:Tag.defineModifier(),special:Tag.defineModifier()},defaultHighlightStyle=HighlightStyle.define([{tag:tags.link,textDecoration:"underline"},{tag:tags.heading,textDecoration:"underline",fontWeight:"bold"},{tag:tags.emphasis,fontStyle:"italic"},{tag:tags.strong,fontWeight:"bold"},{tag:tags.strikethrough,textDecoration:"line-through"},{tag:tags.keyword,color:"#708"},{tag:[tags.atom,tags.bool,tags.url,tags.contentSeparator,tags.labelName],color:"#219"},{tag:[tags.literal,tags.inserted],color:"#164"},{tag:[tags.string,tags.deleted],color:"#a11"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],color:"#e40"},{tag:tags.definition(tags.variableName),color:"#00f"},{tag:tags.local(tags.variableName),color:"#30a"},{tag:[tags.typeName,tags.namespace],color:"#085"},{tag:tags.className,color:"#167"},{tag:[tags.special(tags.variableName),tags.macroName],color:"#256"},{tag:tags.definition(tags.propertyName),color:"#00c"},{tag:tags.comment,color:"#940"},{tag:tags.meta,color:"#7a757a"},{tag:tags.invalid,color:"#f00"}]);tags.link,tags.heading,tags.emphasis,tags.strong,tags.keyword,tags.atom,tags.bool,tags.url,tags.labelName,tags.inserted,tags.deleted,tags.literal,tags.string,tags.number,tags.regexp,tags.escape,tags.string,tags.variableName,tags.variableName,tags.variableName,tags.variableName,tags.propertyName,tags.typeName,tags.namespace,tags.className,tags.macroName,tags.propertyName,tags.operator,tags.comment,tags.meta,tags.invalid,tags.punctuation;class SelectedDiagnostic{constructor(e,s,o){this.from=e,this.to=s,this.diagnostic=o}}class LintState{constructor(e,s,o){this.diagnostics=e,this.panel=s,this.selected=o}static init(e,s,o){let c=Decoration.set(e.map(d=>d.from==d.to||d.from==d.to-1&&o.doc.lineAt(d.from).to==d.from?Decoration.widget({widget:new DiagnosticWidget(d),diagnostic:d}).range(d.from):Decoration.mark({attributes:{class:"cm-lintRange cm-lintRange-"+d.severity},diagnostic:d}).range(d.from,d.to)),!0);return new LintState(c,s,findDiagnostic(c))}}function findDiagnostic(a,e=null,s=0){let o=null;return a.between(s,1e9,(c,d,{spec:_})=>{if(!(e&&_.diagnostic!=e))return o=new SelectedDiagnostic(c,d,_.diagnostic),!1}),o}function maybeEnableLint(a,e){return a.field(lintState,!1)?e:e.concat(StateEffect.appendConfig.of([lintState,EditorView.decorations.compute([lintState],s=>{let{selected:o,panel:c}=s.field(lintState);return!o||!c||o.from==o.to?Decoration.none:Decoration.set([activeMark.range(o.from,o.to)])}),hoverTooltip(lintTooltip),baseTheme]))}const setDiagnosticsEffect=StateEffect.define(),togglePanel=StateEffect.define(),movePanelSelection=StateEffect.define(),lintState=StateField.define({create(){return new LintState(Decoration.none,null,null)},update(a,e){if(e.docChanged){let s=a.diagnostics.map(e.changes),o=null;if(a.selected){let c=e.changes.mapPos(a.selected.from,1);o=findDiagnostic(s,a.selected.diagnostic,c)||findDiagnostic(s,null,c)}a=new LintState(s,a.panel,o)}for(let s of e.effects)s.is(setDiagnosticsEffect)?a=LintState.init(s.value,a.panel,e.state):s.is(togglePanel)?a=new LintState(a.diagnostics,s.value?LintPanel.open:null,a.selected):s.is(movePanelSelection)&&(a=new LintState(a.diagnostics,a.panel,s.value));return a},provide:a=>[showPanel.from(a,e=>e.panel),EditorView.decorations.from(a,e=>e.diagnostics)]}),activeMark=Decoration.mark({class:"cm-lintRange cm-lintRange-active"});function lintTooltip(a,e,s){let{diagnostics:o}=a.state.field(lintState),c=[],d=2e8,_=0;return o.between(e-(s<0?1:0),e+(s>0?1:0),(b,k,{spec:$})=>{e>=b&&e<=k&&(b==k||(e>b||s>0)&&(erenderDiagnostic(a,s,!1)))}const openLintPanel=a=>{let e=a.state.field(lintState,!1);(!e||!e.panel)&&a.dispatch({effects:maybeEnableLint(a.state,[togglePanel.of(!0)])});let s=getPanel(a,LintPanel.open);return s&&s.dom.querySelector(".cm-panel-lint ul").focus(),!0},closeLintPanel=a=>{let e=a.state.field(lintState,!1);return!e||!e.panel?!1:(a.dispatch({effects:togglePanel.of(!1)}),!0)},nextDiagnostic=a=>{let e=a.state.field(lintState,!1);if(!e)return!1;let s=a.state.selection.main,o=e.diagnostics.iter(s.to+1);return!o.value&&(o=e.diagnostics.iter(0),!o.value||o.from==s.from&&o.to==s.to)?!1:(a.dispatch({selection:{anchor:o.from,head:o.to},scrollIntoView:!0}),!0)},lintKeymap=[{key:"Mod-Shift-m",run:openLintPanel},{key:"F8",run:nextDiagnostic}];function assignKeys(a){let e=[];if(a)e:for(let{name:s}of a){for(let o=0;od.toLowerCase()==c.toLowerCase())){e.push(c);continue e}}e.push("")}return e}function renderDiagnostic(a,e,s){var o;let c=s?assignKeys(e.actions):[];return crelt("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},crelt("span",{class:"cm-diagnosticText"},e.message),(o=e.actions)===null||o===void 0?void 0:o.map((d,_)=>{let b=_e=>{_e.preventDefault();let et=findDiagnostic(a.state.field(lintState).diagnostics,e);et&&d.apply(a,et.from,et.to)},{name:k}=d,$=c[_]?k.indexOf(c[_]):-1,j=$<0?k:[k.slice(0,$),crelt("u",k.slice($,$+1)),k.slice($+1)];return crelt("button",{type:"button",class:"cm-diagnosticAction",onclick:b,onmousedown:b,"aria-label":` Action: ${k}${$<0?"":` (access key "${c[_]})"`}.`},j)}),e.source&&crelt("div",{class:"cm-diagnosticSource"},e.source))}class DiagnosticWidget extends WidgetType{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return crelt("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class PanelItem{constructor(e,s){this.diagnostic=s,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=renderDiagnostic(e,s,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class LintPanel{constructor(e){this.view=e,this.items=[];let s=c=>{if(c.keyCode==27)closeLintPanel(this.view),this.view.focus();else if(c.keyCode==38||c.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(c.keyCode==40||c.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(c.keyCode==36)this.moveSelection(0);else if(c.keyCode==35)this.moveSelection(this.items.length-1);else if(c.keyCode==13)this.view.focus();else if(c.keyCode>=65&&c.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:d}=this.items[this.selectedIndex],_=assignKeys(d.actions);for(let b=0;b<_.length;b++)if(_[b].toUpperCase().charCodeAt(0)==c.keyCode){let k=findDiagnostic(this.view.state.field(lintState).diagnostics,d);k&&d.actions[b].apply(e,k.from,k.to)}}else return;c.preventDefault()},o=c=>{for(let d=0;dcloseLintPanel(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(lintState).selected;if(!e)return-1;for(let s=0;s{let $=-1,j;for(let _e=o;_eo&&(this.items.splice(o,$-o),c=!0)),s&&j.diagnostic==s.diagnostic?j.dom.hasAttribute("aria-selected")||(j.dom.setAttribute("aria-selected","true"),d=j):j.dom.hasAttribute("aria-selected")&&j.dom.removeAttribute("aria-selected"),o++});o({sel:d.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:_,panel:b})=>{_.topb.bottom&&(this.list.scrollTop+=_.bottom-b.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),c&&this.sync()}sync(){let e=this.list.firstChild;function s(){let o=e;e=o.nextSibling,o.remove()}for(let o of this.items)if(o.dom.parentNode==this.list){for(;e!=o.dom;)s();e=o.dom.nextSibling}else this.list.insertBefore(o.dom,e);for(;e;)s()}moveSelection(e){if(this.selectedIndex<0)return;let s=this.view.state.field(lintState),o=findDiagnostic(s.diagnostics,this.items[e].diagnostic);!o||this.view.dispatch({selection:{anchor:o.from,head:o.to},scrollIntoView:!0,effects:movePanelSelection.of(o)})}static open(e){return new LintPanel(e)}}function svg(a,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(a)}')`}function underline(a){return svg(``,'width="6" height="3"')}const baseTheme=EditorView.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:underline("#d11")},".cm-lintRange-warning":{backgroundImage:underline("orange")},".cm-lintRange-info":{backgroundImage:underline("#999")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});var jsxRuntime={exports:{}},reactJsxRuntime_production_min={};/** @license React v17.0.2 +`;this.styleTag.textContent=d}}}var base={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",229:"q"},shift={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"',229:"Q"},chrome$1=typeof navigator!="undefined"&&/Chrome\/(\d+)/.exec(navigator.userAgent),safari$1=typeof navigator!="undefined"&&/Apple Computer/.test(navigator.vendor),gecko$1=typeof navigator!="undefined"&&/Gecko\/\d+/.test(navigator.userAgent),mac=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),ie$1=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),brokenModifierNames=chrome$1&&(mac||+chrome$1[1]<57)||gecko$1&&mac;for(var i=0;i<10;i++)base[48+i]=base[96+i]=String(i);for(var i=1;i<=24;i++)base[i+111]="F"+i;for(var i=65;i<=90;i++)base[i]=String.fromCharCode(i+32),shift[i]=String.fromCharCode(i);for(var code in base)shift.hasOwnProperty(code)||(shift[code]=base[code]);function keyName(a){var e=brokenModifierNames&&(a.ctrlKey||a.altKey||a.metaKey)||(safari$1||ie$1)&&a.shiftKey&&a.key&&a.key.length==1,s=!e&&a.key||(a.shiftKey?shift:base)[a.keyCode]||a.key||"Unidentified";return s=="Esc"&&(s="Escape"),s=="Del"&&(s="Delete"),s=="Left"&&(s="ArrowLeft"),s=="Up"&&(s="ArrowUp"),s=="Right"&&(s="ArrowRight"),s=="Down"&&(s="ArrowDown"),s}function getSelection(a){let e;return a.nodeType==11?e=a.getSelection?a:a.ownerDocument:e=a,e.getSelection()}function contains(a,e){return e?a==e||a.contains(e.nodeType!=1?e.parentNode:e):!1}function deepActiveElement(){let a=document.activeElement;for(;a&&a.shadowRoot;)a=a.shadowRoot.activeElement;return a}function hasSelection(a,e){if(!e.anchorNode)return!1;try{return contains(a,e.anchorNode)}catch{return!1}}function clientRectsFor(a){return a.nodeType==3?textRange(a,0,a.nodeValue.length).getClientRects():a.nodeType==1?a.getClientRects():[]}function isEquivalentPosition(a,e,s,o){return s?scanFor(a,e,s,o,-1)||scanFor(a,e,s,o,1):!1}function domIndex(a){for(var e=0;;e++)if(a=a.previousSibling,!a)return e}function scanFor(a,e,s,o,c){for(;;){if(a==s&&e==o)return!0;if(e==(c<0?0:maxOffset(a))){if(a.nodeName=="DIV")return!1;let d=a.parentNode;if(!d||d.nodeType!=1)return!1;e=domIndex(a)+(c<0?0:1),a=d}else if(a.nodeType==1){if(a=a.childNodes[e+(c<0?-1:0)],a.nodeType==1&&a.contentEditable=="false")return!1;e=c<0?maxOffset(a):0}else return!1}}function maxOffset(a){return a.nodeType==3?a.nodeValue.length:a.childNodes.length}const Rect0={left:0,right:0,top:0,bottom:0};function flattenRect(a,e){let s=e?a.left:a.right;return{left:s,right:s,top:a.top,bottom:a.bottom}}function windowRect(a){return{left:0,right:a.innerWidth,top:0,bottom:a.innerHeight}}function scrollRectIntoView(a,e,s,o,c,d,_,b){let k=a.ownerDocument,$=k.defaultView;for(let j=a;j;)if(j.nodeType==1){let _e,et=j==k.body;if(et)_e=windowRect($);else{if(j.scrollHeight<=j.clientHeight&&j.scrollWidth<=j.clientWidth){j=j.parentNode;continue}let it=j.getBoundingClientRect();_e={left:it.left,right:it.left+j.clientWidth,top:it.top,bottom:it.top+j.clientHeight}}let tt=0,nt=0;if(c=="nearest")e.top<_e.top?(nt=-(_e.top-e.top+_),s>0&&e.bottom>_e.bottom+nt&&(nt=e.bottom-_e.bottom+nt+_)):e.bottom>_e.bottom&&(nt=e.bottom-_e.bottom+_,s<0&&e.top-nt<_e.top&&(nt=-(_e.top+nt-e.top+_)));else{let it=e.bottom-e.top,rt=_e.bottom-_e.top;nt=(c=="center"&&it<=rt?e.top+it/2-rt/2:c=="start"||c=="center"&&s<0?e.top-_:e.bottom-rt+_)-_e.top}if(o=="nearest"?e.left<_e.left?(tt=-(_e.left-e.left+d),s>0&&e.right>_e.right+tt&&(tt=e.right-_e.right+tt+d)):e.right>_e.right&&(tt=e.right-_e.right+d,s<0&&e.left<_e.left+tt&&(tt=-(_e.left+tt-e.left+d))):tt=(o=="center"?e.left+(e.right-e.left)/2-(_e.right-_e.left)/2:o=="start"==b?e.left-d:e.right-(_e.right-_e.left)+d)-_e.left,tt||nt)if(et)$.scrollBy(tt,nt);else{if(nt){let it=j.scrollTop;j.scrollTop+=nt,nt=j.scrollTop-it}if(tt){let it=j.scrollLeft;j.scrollLeft+=tt,tt=j.scrollLeft-it}e={left:e.left-tt,top:e.top-nt,right:e.right-tt,bottom:e.bottom-nt}}if(et)break;j=j.assignedSlot||j.parentNode,o=c="nearest"}else if(j.nodeType==11)j=j.host;else break}class DOMSelectionState{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){this.set(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)}set(e,s,o,c){this.anchorNode=e,this.anchorOffset=s,this.focusNode=o,this.focusOffset=c}}let preventScrollSupported=null;function focusPreventScroll(a){if(a.setActive)return a.setActive();if(preventScrollSupported)return a.focus(preventScrollSupported);let e=[];for(let s=a;s&&(e.push(s,s.scrollTop,s.scrollLeft),s!=s.ownerDocument);s=s.parentNode);if(a.focus(preventScrollSupported==null?{get preventScroll(){return preventScrollSupported={preventScroll:!0},!0}}:void 0),!preventScrollSupported){preventScrollSupported=!1;for(let s=0;ss)return _e.domBoundsAround(e,s,$);if(et>=e&&c==-1&&(c=k,d=$),$>s&&_e.dom.parentNode==this.dom){_=k,b=j;break}j=et,$=et+_e.breakAfter}return{from:d,to:b<0?o+this.length:b,startDOM:(c?this.children[c-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:_=0?this.children[_].dom:null}}markDirty(e=!1){this.dirty|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let s=this.parent;s;s=s.parent){if(e&&(s.dirty|=2),s.dirty&1)return;s.dirty|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let s=e.parent;if(!s)return e;e=s}}replaceChildren(e,s,o=noChildren){this.markDirty();for(let c=e;cthis.pos||e==this.pos&&(s>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let o=this.children[--this.i];this.pos-=o.length+o.breakAfter}}}function replaceRange(a,e,s,o,c,d,_,b,k){let{children:$}=a,j=$.length?$[e]:null,_e=d.length?d[d.length-1]:null,et=_e?_e.breakAfter:_;if(!(e==o&&j&&!_&&!et&&d.length<2&&j.merge(s,c,d.length?_e:null,s==0,b,k))){if(o<$.length){let tt=$[o];tt&&c0&&(!_&&d.length&&j.merge(s,j.length,d[0],!1,b,0)?j.breakAfter=d.shift().breakAfter:(s2);var browser$2={mac:ios||/Mac/.test(nav.platform),windows:/Win/.test(nav.platform),linux:/Linux|X11/.test(nav.platform),ie,ie_version:ie_upto10?doc.documentMode||6:ie_11up?+ie_11up[1]:ie_edge?+ie_edge[1]:0,gecko,gecko_version:gecko?+(/Firefox\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,chrome:!!chrome,chrome_version:chrome?+chrome[1]:0,ios,android:/Android\b/.test(nav.userAgent),webkit,safari,webkit_version:webkit?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:doc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const MaxJoinLen=256;class TextView extends ContentView{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,s,o){return o&&(!(o instanceof TextView)||this.length-(s-e)+o.length>MaxJoinLen)?!1:(this.text=this.text.slice(0,e)+(o?o.text:"")+this.text.slice(s),this.markDirty(),!0)}split(e){let s=new TextView(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),s}localPosFromDOM(e,s){return e==this.dom?s:s?this.text.length:0}domAtPos(e){return new DOMPos(this.dom,e)}domBoundsAround(e,s,o){return{from:o,to:o+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,s){return textCoords(this.dom,e,s)}}class MarkView extends ContentView{constructor(e,s=[],o=0){super(),this.mark=e,this.children=s,this.length=o;for(let c of s)c.setParent(this)}setAttrs(e){if(clearAttributes(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let s in this.mark.attrs)e.setAttribute(s,this.mark.attrs[s]);return e}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.dirty|=6)}sync(e){this.dom?this.dirty&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e)}merge(e,s,o,c,d,_){return o&&(!(o instanceof MarkView&&o.mark.eq(this.mark))||e&&d<=0||se&&s.push(o=e&&(c=d),o=k,d++}let _=this.length-e;return this.length=e,c>-1&&(this.children.length=c,this.markDirty()),new MarkView(this.mark,s,_)}domAtPos(e){return inlineDOMAtPos(this.dom,this.children,e)}coordsAt(e,s){return coordsInChildren(this,e,s)}}function textCoords(a,e,s){let o=a.nodeValue.length;e>o&&(e=o);let c=e,d=e,_=0;e==0&&s<0||e==o&&s>=0?browser$2.chrome||browser$2.gecko||(e?(c--,_=1):d=0)?0:b.length-1];return browser$2.safari&&!_&&k.width==0&&(k=Array.prototype.find.call(b,$=>$.width)||k),_?flattenRect(k,_<0):k||null}class WidgetView extends ContentView{constructor(e,s,o){super(),this.widget=e,this.length=s,this.side=o,this.prevWidget=null}static create(e,s,o){return new(e.customView||WidgetView)(e,s,o)}split(e){let s=WidgetView.create(this.widget,this.length-e,this.side);return this.length-=e,s}sync(){(!this.dom||!this.widget.updateDOM(this.dom))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,s,o,c,d,_){return o&&(!(o instanceof WidgetView)||!this.widget.compare(o.widget)||e>0&&d<=0||s0?o.length-1:0;c=o[d],!(e>0?d==0:d==o.length-1||c.top0?-1:1);return e==0&&s>0||e==this.length&&s<=0?c:flattenRect(c,e==0)}get isEditable(){return!1}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class CompositionView extends WidgetView{domAtPos(e){let{topView:s,text:o}=this.widget;return s?scanCompositionTree(e,0,s,o,(c,d)=>c.domAtPos(d),c=>new DOMPos(o,Math.min(c,o.nodeValue.length))):new DOMPos(o,Math.min(e,o.nodeValue.length))}sync(){this.setDOM(this.widget.toDOM())}localPosFromDOM(e,s){let{topView:o,text:c}=this.widget;return o?posFromDOMInCompositionTree(e,s,o,c):Math.min(s,this.length)}ignoreMutation(){return!1}get overrideDOMText(){return null}coordsAt(e,s){let{topView:o,text:c}=this.widget;return o?scanCompositionTree(e,s,o,c,(d,_,b)=>d.coordsAt(_,b),(d,_)=>textCoords(c,d,_)):textCoords(c,e,s)}destroy(){var e;super.destroy(),(e=this.widget.topView)===null||e===void 0||e.destroy()}get isEditable(){return!0}}function scanCompositionTree(a,e,s,o,c,d){if(s instanceof MarkView){for(let _ of s.children){let b=contains(_.dom,o),k=b?o.nodeValue.length:_.length;if(a0?-1:1);return o&&o.tops.top?{left:s.left,right:s.right,top:o.top,bottom:o.bottom}:s}get overrideDOMText(){return Text.empty}}TextView.prototype.children=WidgetView.prototype.children=WidgetBufferView.prototype.children=noChildren;function inlineSiblingRect(a,e){let s=a.parent,o=s?s.children.indexOf(a):-1;for(;s&&o>=0;)if(e<0?o>0:oc&&s<_&&d.dom.parentNode==a)return d.domAtPos(s-c);if(s<=c)break;c=_}}for(;o>0;o--){let c=e[o-1].dom;if(c.parentNode==a)return DOMPos.after(c)}return new DOMPos(a,0)}function joinInlineInto(a,e,s){let o,{children:c}=a;s>0&&e instanceof MarkView&&c.length&&(o=c[c.length-1])instanceof MarkView&&o.mark.eq(e.mark)?joinInlineInto(o,e.children[0],s-1):(c.push(e),e.setParent(a)),a.length+=e.length}function coordsInChildren(a,e,s){for(let d=0,_=0;_0?k>=e:k>e)&&(e0)){let j=0;if(k==d){if(b.getSide()<=0)continue;j=s=-b.getSide()}let _e=b.coordsAt(Math.max(0,e-d),s);return j&&_e?flattenRect(_e,s<0):_e}d=k}let o=a.dom.lastChild;if(!o)return a.dom.getBoundingClientRect();let c=clientRectsFor(o);return c[c.length-1]||null}function combineAttrs(a,e){for(let s in a)s=="class"&&e.class?e.class+=" "+a.class:s=="style"&&e.style?e.style+=";"+a.style:e[s]=a[s];return e}function attrsEq(a,e){if(a==e)return!0;if(!a||!e)return!1;let s=Object.keys(a),o=Object.keys(e);if(s.length!=o.length)return!1;for(let c of s)if(o.indexOf(c)==-1||a[c]!==e[c])return!1;return!0}function updateAttrs(a,e,s){let o=null;if(e)for(let c in e)s&&c in s||a.removeAttribute(o=c);if(s)for(let c in s)e&&e[c]==s[c]||a.setAttribute(o=c,s[c]);return!!o}class WidgetType{eq(e){return!1}updateDOM(e){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}ignoreEvent(e){return!0}get customView(){return null}destroy(e){}}var BlockType=function(a){return a[a.Text=0]="Text",a[a.WidgetBefore=1]="WidgetBefore",a[a.WidgetAfter=2]="WidgetAfter",a[a.WidgetRange=3]="WidgetRange",a}(BlockType||(BlockType={}));class Decoration extends RangeValue{constructor(e,s,o,c){super(),this.startSide=e,this.endSide=s,this.widget=o,this.spec=c}get heightRelevant(){return!1}static mark(e){return new MarkDecoration(e)}static widget(e){let s=e.side||0,o=!!e.block;return s+=o?s>0?3e8:-4e8:s>0?1e8:-1e8,new PointDecoration(e,s,s,o,e.widget||null,!1)}static replace(e){let s=!!e.block,o,c;if(e.isBlockGap)o=-5e8,c=4e8;else{let{start:d,end:_}=getInclusive(e,s);o=(d?s?-3e8:-1:5e8)-1,c=(_?s?2e8:1:-6e8)+1}return new PointDecoration(e,o,c,s,e.widget||null,!0)}static line(e){return new LineDecoration(e)}static set(e,s=!1){return RangeSet.of(e,s)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Decoration.none=RangeSet.empty;class MarkDecoration extends Decoration{constructor(e){let{start:s,end:o}=getInclusive(e);super(s?-1:5e8,o?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){return this==e||e instanceof MarkDecoration&&this.tagName==e.tagName&&this.class==e.class&&attrsEq(this.attrs,e.attrs)}range(e,s=e){if(e>=s)throw new RangeError("Mark decorations may not be empty");return super.range(e,s)}}MarkDecoration.prototype.point=!1;class LineDecoration extends Decoration{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof LineDecoration&&attrsEq(this.spec.attributes,e.spec.attributes)}range(e,s=e){if(s!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,s)}}LineDecoration.prototype.mapMode=MapMode.TrackBefore;LineDecoration.prototype.point=!0;class PointDecoration extends Decoration{constructor(e,s,o,c,d,_){super(s,o,d,e),this.block=c,this.isReplace=_,this.mapMode=c?s<=0?MapMode.TrackBefore:MapMode.TrackAfter:MapMode.TrackDel}get type(){return this.startSide=5}eq(e){return e instanceof PointDecoration&&widgetsEq(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,s=e){if(this.isReplace&&(e>s||e==s&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&s!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,s)}}PointDecoration.prototype.point=!0;function getInclusive(a,e=!1){let{inclusiveStart:s,inclusiveEnd:o}=a;return s==null&&(s=a.inclusive),o==null&&(o=a.inclusive),{start:s!=null?s:e,end:o!=null?o:e}}function widgetsEq(a,e){return a==e||!!(a&&e&&a.compare(e))}function addRange(a,e,s,o=0){let c=s.length-1;c>=0&&s[c]+o>=a?s[c]=Math.max(s[c],e):s.push(a,e)}class LineView extends ContentView{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,s,o,c,d,_){if(o){if(!(o instanceof LineView))return!1;this.dom||o.transferDOM(this)}return c&&this.setDeco(o?o.attrs:null),mergeChildrenInto(this,e,s,o?o.children:[],d,_),!0}split(e){let s=new LineView;if(s.breakAfter=this.breakAfter,this.length==0)return s;let{i:o,off:c}=this.childPos(e);c&&(s.append(this.children[o].split(c),0),this.children[o].merge(c,this.children[o].length,null,!1,0,0),o++);for(let d=o;d0&&this.children[o-1].length==0;)this.children[--o].destroy();return this.children.length=o,this.markDirty(),this.length=e,s}transferDOM(e){!this.dom||(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){attrsEq(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,s){joinInlineInto(this,e,s)}addLineDeco(e){let s=e.spec.attributes,o=e.spec.class;s&&(this.attrs=combineAttrs(s,this.attrs||{})),o&&(this.attrs=combineAttrs({class:o},this.attrs||{}))}domAtPos(e){return inlineDOMAtPos(this.dom,this.children,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.dirty|=6)}sync(e){var s;this.dom?this.dirty&4&&(clearAttributes(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(updateAttrs(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e);let o=this.dom.lastChild;for(;o&&ContentView.get(o)instanceof MarkView;)o=o.lastChild;if(!o||!this.length||o.nodeName!="BR"&&((s=ContentView.get(o))===null||s===void 0?void 0:s.isEditable)==!1&&(!browser$2.ios||!this.children.some(c=>c instanceof TextView))){let c=document.createElement("BR");c.cmIgnore=!0,this.dom.appendChild(c)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0;for(let s of this.children){if(!(s instanceof TextView)||/[^ -~]/.test(s.text))return null;let o=clientRectsFor(s.dom);if(o.length!=1)return null;e+=o[0].width}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length}:null}coordsAt(e,s){return coordsInChildren(this,e,s)}become(e){return!1}get type(){return BlockType.Text}static find(e,s){for(let o=0,c=0;o=s){if(d instanceof LineView)return d;if(_>s)break}c=_+d.breakAfter}return null}}class BlockWidgetView extends ContentView{constructor(e,s,o){super(),this.widget=e,this.length=s,this.type=o,this.breakAfter=0,this.prevWidget=null}merge(e,s,o,c,d,_){return o&&(!(o instanceof BlockWidgetView)||!this.widget.compare(o.widget)||e>0&&d<=0||s0;){if(this.textOff==this.text.length){let{value:d,lineBreak:_,done:b}=this.cursor.next(this.skip);if(this.skip=0,b)throw new Error("Ran out of text content when drawing inline views");if(_){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer([]),this.curLine=null,e--;continue}else this.text=d,this.textOff=0}let c=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(s.slice(0,o)),this.getLine().append(wrapMarks(new TextView(this.text.slice(this.textOff,this.textOff+c)),s),o),this.atCursorPos=!0,this.textOff+=c,e-=c,o=0}}span(e,s,o,c){this.buildText(s-e,o,c),this.pos=s,this.openStart<0&&(this.openStart=c)}point(e,s,o,c,d,_){if(this.disallowBlockEffectsFor[_]&&o instanceof PointDecoration){if(o.block)throw new RangeError("Block decorations may not be specified via plugins");if(s>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let b=s-e;if(o instanceof PointDecoration)if(o.block){let{type:k}=o;k==BlockType.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new BlockWidgetView(o.widget||new NullWidget("div"),b,k))}else{let k=WidgetView.create(o.widget||new NullWidget("span"),b,o.startSide),$=this.atCursorPos&&!k.isEditable&&d<=c.length&&(e0),j=!k.isEditable&&(ea.some(e=>e)});class ScrollTarget{constructor(e,s="nearest",o="nearest",c=5,d=5){this.range=e,this.y=s,this.x=o,this.yMargin=c,this.xMargin=d}map(e){return e.empty?this:new ScrollTarget(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}}const scrollIntoView$1=StateEffect.define({map:(a,e)=>a.map(e)});function logException(a,e,s){let o=a.facet(exceptionSink);o.length?o[0](e):window.onerror?window.onerror(String(e),s,void 0,void 0,e):s?console.error(s+":",e):console.error(e)}const editable=Facet.define({combine:a=>a.length?a[0]:!0});let nextPluginID=0;const viewPlugin=Facet.define();class ViewPlugin{constructor(e,s,o,c){this.id=e,this.create=s,this.domEventHandlers=o,this.extension=c(this)}static define(e,s){const{eventHandlers:o,provide:c,decorations:d}=s||{};return new ViewPlugin(nextPluginID++,e,o,_=>{let b=[viewPlugin.of(_)];return d&&b.push(decorations.of(k=>{let $=k.plugin(_);return $?d($):Decoration.none})),c&&b.push(c(_)),b})}static fromClass(e,s){return ViewPlugin.define(o=>new e(o),s)}}class PluginInstance{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let s=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(s)}catch(o){if(logException(s.state,o,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(s){logException(e.state,s,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var s;if(!((s=this.value)===null||s===void 0)&&s.destroy)try{this.value.destroy()}catch(o){logException(e.state,o,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const editorAttributes=Facet.define(),contentAttributes=Facet.define(),decorations=Facet.define(),atomicRanges=Facet.define(),scrollMargins=Facet.define(),styleModule=Facet.define();class ChangedRange{constructor(e,s,o,c){this.fromA=e,this.toA=s,this.fromB=o,this.toB=c}join(e){return new ChangedRange(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let s=e.length,o=this;for(;s>0;s--){let c=e[s-1];if(!(c.fromA>o.toA)){if(c.toAj)break;d+=2}if(!k)return o;new ChangedRange(k.fromA,k.toA,k.fromB,k.toB).addToSet(o),_=k.toA,b=k.toB}}}class ViewUpdate{constructor(e,s,o){this.view=e,this.state=s,this.transactions=o,this.flags=0,this.startState=e.state,this.changes=ChangeSet.empty(this.startState.doc.length);for(let _ of o)this.changes=this.changes.compose(_.changes);let c=[];this.changes.iterChangedRanges((_,b,k,$)=>c.push(new ChangedRange(_,b,k,$))),this.changedRanges=c;let d=e.hasFocus;d!=e.inputState.notifiedFocused&&(e.inputState.notifiedFocused=d,this.flags|=1)}static create(e,s,o){return new ViewUpdate(e,s,o)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}var Direction=function(a){return a[a.LTR=0]="LTR",a[a.RTL=1]="RTL",a}(Direction||(Direction={}));const LTR=Direction.LTR,RTL=Direction.RTL;function dec(a){let e=[];for(let s=0;s=s){if(b.level==o)return _;(d<0||(c!=0?c<0?b.froms:e[d].level>b.level))&&(d=_)}}if(d<0)throw new RangeError("Index out of range");return d}}const types=[];function computeOrder(a,e){let s=a.length,o=e==LTR?1:2,c=e==LTR?2:1;if(!a||o==1&&!BidiRE.test(a))return trivialOrder(s);for(let _=0,b=o,k=o;_=0;et-=3)if(BracketStack[et+1]==-j){let tt=BracketStack[et+2],nt=tt&2?o:tt&4?tt&1?c:o:0;nt&&(types[_]=types[BracketStack[et]]=nt),b=et;break}}else{if(BracketStack.length==189)break;BracketStack[b++]=_,BracketStack[b++]=$,BracketStack[b++]=k}else if((_e=types[_])==2||_e==1){let et=_e==o;k=et?0:1;for(let tt=b-3;tt>=0;tt-=3){let nt=BracketStack[tt+2];if(nt&2)break;if(et)BracketStack[tt+2]|=2;else{if(nt&4)break;BracketStack[tt+2]|=4}}}for(let _=0;_b;){let j=$,_e=types[--$]!=2;for(;$>b&&_e==(types[$-1]!=2);)$--;d.push(new BidiSpan($,j,_e?2:1))}else d.push(new BidiSpan(b,_,0))}else for(let _=0;_1)for(let k of this.points)k.node==e&&k.pos>this.text.length&&(k.pos-=_-1);o=d+_}}readNode(e){if(e.cmIgnore)return;let s=ContentView.get(e),o=s&&s.overrideDOMText;if(o!=null){this.findPointInside(e,o.length);for(let c=o.iter();!c.next().done;)c.lineBreak?this.lineBreak():this.append(c.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,s){for(let o of this.points)o.node==e&&e.childNodes[o.offset]==s&&(o.pos=this.text.length)}findPointInside(e,s){for(let o of this.points)(e.nodeType==3?o.node==e:e.contains(o.node))&&(o.pos=this.text.length+Math.min(s,o.offset))}}function isBlockElement(a){return a.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(a.nodeName)}class DOMPoint{constructor(e,s){this.node=e,this.offset=s,this.pos=-1}}class DocView extends ContentView{constructor(e){super(),this.view=e,this.compositionDeco=Decoration.none,this.decorations=[],this.dynamicDecorationMap=[],this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new LineView],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new ChangedRange(0,0,0,e.state.doc.length)],0)}get editorView(){return this.view}get length(){return this.view.state.doc.length}update(e){let s=e.changedRanges;this.minWidth>0&&s.length&&(s.every(({fromA:_,toA:b})=>bthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.view.inputState.composing<0?this.compositionDeco=Decoration.none:(e.transactions.length||this.dirty)&&(this.compositionDeco=computeCompositionDeco(this.view,e.changes)),(browser$2.ie||browser$2.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,c=this.updateDeco(),d=findChangedDeco(o,c,e.changes);return s=ChangedRange.extendWithRanges(s,d),this.dirty==0&&s.length==0?!1:(this.updateInner(s,e.startState.doc.length),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,s){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,s);let{observer:o}=this.view;o.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let d=browser$2.chrome||browser$2.ios?{node:o.selectionRange.focusNode,written:!1}:void 0;this.sync(d),this.dirty=0,d&&(d.written||o.selectionRange.focusNode!=d.node)&&(this.forceSelection=!0),this.dom.style.height=""});let c=[];if(this.view.viewport.from||this.view.viewport.to=0?e[c]:null;if(!d)break;let{fromA:_,toA:b,fromB:k,toB:$}=d,{content:j,breakAtStart:_e,openStart:et,openEnd:tt}=ContentBuilder.build(this.view.state.doc,k,$,this.decorations,this.dynamicDecorationMap),{i:nt,off:it}=o.findPos(b,1),{i:rt,off:st}=o.findPos(_,-1);replaceRange(this,rt,st,nt,it,j,_e,et,tt)}}updateSelection(e=!1,s=!1){if((e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange(),!(s||this.mayControlSelection())||browser$2.ios&&this.view.inputState.rapidCompositionStart)return;let o=this.forceSelection;this.forceSelection=!1;let c=this.view.state.selection.main,d=this.domAtPos(c.anchor),_=c.empty?d:this.domAtPos(c.head);if(browser$2.gecko&&c.empty&&betweenUneditable(d)){let k=document.createTextNode("");this.view.observer.ignore(()=>d.node.insertBefore(k,d.node.childNodes[d.offset]||null)),d=_=new DOMPos(k,0),o=!0}let b=this.view.observer.selectionRange;(o||!b.focusNode||!isEquivalentPosition(d.node,d.offset,b.anchorNode,b.anchorOffset)||!isEquivalentPosition(_.node,_.offset,b.focusNode,b.focusOffset))&&(this.view.observer.ignore(()=>{browser$2.android&&browser$2.chrome&&this.dom.contains(b.focusNode)&&inUneditable(b.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let k=getSelection(this.view.root);if(k)if(c.empty){if(browser$2.gecko){let $=nextToUneditable(d.node,d.offset);if($&&$!=3){let j=nearbyTextNode(d.node,d.offset,$==1?1:-1);j&&(d=new DOMPos(j,$==1?0:j.nodeValue.length))}}k.collapse(d.node,d.offset),c.bidiLevel!=null&&b.cursorBidiLevel!=null&&(b.cursorBidiLevel=c.bidiLevel)}else if(k.extend)k.collapse(d.node,d.offset),k.extend(_.node,_.offset);else{let $=document.createRange();c.anchor>c.head&&([d,_]=[_,d]),$.setEnd(_.node,_.offset),$.setStart(d.node,d.offset),k.removeAllRanges(),k.addRange($)}}),this.view.observer.setSelectionRange(d,_)),this.impreciseAnchor=d.precise?null:new DOMPos(b.anchorNode,b.anchorOffset),this.impreciseHead=_.precise?null:new DOMPos(b.focusNode,b.focusOffset)}enforceCursorAssoc(){if(this.compositionDeco.size)return;let e=this.view.state.selection.main,s=getSelection(this.view.root);if(!s||!e.empty||!e.assoc||!s.modify)return;let o=LineView.find(this,e.head);if(!o)return;let c=o.posAtStart;if(e.head==c||e.head==c+o.length)return;let d=this.coordsAt(e.head,-1),_=this.coordsAt(e.head,1);if(!d||!_||d.bottom>_.top)return;let b=this.domAtPos(e.head+e.assoc);s.collapse(b.node,b.offset),s.modify("move",e.assoc<0?"forward":"backward","lineboundary")}mayControlSelection(){let e=this.view.root.activeElement;return e==this.dom||hasSelection(this.dom,this.view.observer.selectionRange)&&!(e&&this.dom.contains(e))}nearest(e){for(let s=e;s;){let o=ContentView.get(s);if(o&&o.rootView==this)return o;s=s.parentNode}return null}posFromDOM(e,s){let o=this.nearest(e);if(!o)throw new RangeError("Trying to find position for a DOM position outside of the document");return o.localPosFromDOM(e,s)+o.posAtStart}domAtPos(e){let{i:s,off:o}=this.childCursor().findPos(e,-1);for(;s_||e==_&&d.type!=BlockType.WidgetBefore&&d.type!=BlockType.WidgetAfter&&(!c||s==2||this.children[c-1].breakAfter||this.children[c-1].type==BlockType.WidgetBefore&&s>-2))return d.coordsAt(e-_,s);o=_}}measureVisibleLineHeights(e){let s=[],{from:o,to:c}=e,d=this.view.contentDOM.clientWidth,_=d>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,b=-1,k=this.view.textDirection==Direction.LTR;for(let $=0,j=0;jc)break;if($>=o){let tt=_e.dom.getBoundingClientRect();if(s.push(tt.height),_){let nt=_e.dom.lastChild,it=nt?clientRectsFor(nt):[];if(it.length){let rt=it[it.length-1],st=k?rt.right-tt.left:tt.right-rt.left;st>b&&(b=st,this.minWidth=d,this.minWidthFrom=$,this.minWidthTo=et)}}}$=et+_e.breakAfter}return s}textDirectionAt(e){let{i:s}=this.childPos(e,1);return getComputedStyle(this.children[s].dom).direction=="rtl"?Direction.RTL:Direction.LTR}measureTextSize(){for(let c of this.children)if(c instanceof LineView){let d=c.measureTextSize();if(d)return d}let e=document.createElement("div"),s,o;return e.className="cm-line",e.style.width="99999px",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let c=clientRectsFor(e.firstChild)[0];s=e.getBoundingClientRect().height,o=c?c.width/27:7,e.remove()}),{lineHeight:s,charWidth:o}}childCursor(e=this.length){let s=this.children.length;return s&&(e-=this.children[--s].length),new ChildCursor(this.children,e,s)}computeBlockGapDeco(){let e=[],s=this.view.viewState;for(let o=0,c=0;;c++){let d=c==s.viewports.length?null:s.viewports[c],_=d?d.from-1:this.length;if(_>o){let b=s.lineBlockAt(_).bottom-s.lineBlockAt(o).top;e.push(Decoration.replace({widget:new BlockGapWidget(b),block:!0,inclusive:!0,isBlockGap:!0}).range(o,_))}if(!d)break;o=d.to+1}return Decoration.set(e)}updateDeco(){let e=this.view.state.facet(decorations).map((s,o)=>(this.dynamicDecorationMap[o]=typeof s=="function")?s(this.view):s);for(let s=e.length;ss.anchor?-1:1),c;if(!o)return;!s.empty&&(c=this.coordsAt(s.anchor,s.anchor>s.head?-1:1))&&(o={left:Math.min(o.left,c.left),top:Math.min(o.top,c.top),right:Math.max(o.right,c.right),bottom:Math.max(o.bottom,c.bottom)});let d=0,_=0,b=0,k=0;for(let j of this.view.state.facet(scrollMargins).map(_e=>_e(this.view)))if(j){let{left:_e,right:et,top:tt,bottom:nt}=j;_e!=null&&(d=Math.max(d,_e)),et!=null&&(_=Math.max(_,et)),tt!=null&&(b=Math.max(b,tt)),nt!=null&&(k=Math.max(k,nt))}let $={left:o.left-d,top:o.top-b,right:o.right+_,bottom:o.bottom+k};scrollRectIntoView(this.view.scrollDOM,$,s.head0&&s<=0)a=a.childNodes[e-1],e=maxOffset(a);else if(a.nodeType==1&&e=0)a=a.childNodes[e],e=0;else return null}}function nextToUneditable(a,e){return a.nodeType!=1?0:(e&&a.childNodes[e-1].contentEditable=="false"?1:0)|(e0;){let $=findClusterBreak(c.text,_,!1);if(o(c.text.slice($,_))!=k)break;_=$}for(;ba?e.left-a:Math.max(0,a-e.right)}function getdy(a,e){return e.top>a?e.top-a:Math.max(0,a-e.bottom)}function yOverlap(a,e){return a.tope.top+1}function upTop(a,e){return ea.bottom?{top:a.top,left:a.left,right:a.right,bottom:e}:a}function domPosAtCoords(a,e,s){let o,c,d,_,b=!1,k,$,j,_e;for(let nt=a.firstChild;nt;nt=nt.nextSibling){let it=clientRectsFor(nt);for(let rt=0;rtat||_==at&&d>ot)&&(o=nt,c=st,d=ot,_=at,b=!ot||(ot>0?rt0)),ot==0?s>st.bottom&&(!j||j.bottomst.top)&&($=nt,_e=st):j&&yOverlap(j,st)?j=upBot(j,st.bottom):_e&&yOverlap(_e,st)&&(_e=upTop(_e,st.top))}}if(j&&j.bottom>=s?(o=k,c=j):_e&&_e.top<=s&&(o=$,c=_e),!o)return{node:a,offset:0};let et=Math.max(c.left,Math.min(c.right,e));if(o.nodeType==3)return domPosInText(o,et,s);if(b&&o.contentEditable!="false")return domPosAtCoords(o,et,s);let tt=Array.prototype.indexOf.call(a.childNodes,o)+(e>=(c.left+c.right)/2?1:0);return{node:a,offset:tt}}function domPosInText(a,e,s){let o=a.nodeValue.length,c=-1,d=1e9,_=0;for(let b=0;bs?j.top-s:s-j.bottom)-1;if(j.left-1<=e&&j.right+1>=e&&_e=(j.left+j.right)/2,tt=et;if((browser$2.chrome||browser$2.gecko)&&textRange(a,b).getBoundingClientRect().left==j.right&&(tt=!et),_e<=0)return{node:a,offset:b+(tt?1:0)};c=b+(tt?1:0),d=_e}}}return{node:a,offset:c>-1?c:_>0?a.nodeValue.length:0}}function posAtCoords(a,{x:e,y:s},o,c=-1){var d;let _=a.contentDOM.getBoundingClientRect(),b=_.top+a.viewState.paddingTop,k,{docHeight:$}=a.viewState,j=s-b;if(j<0)return 0;if(j>$)return a.state.doc.length;for(let st=a.defaultLineHeight/2,ot=!1;k=a.elementAtHeight(j),k.type!=BlockType.Text;)for(;j=c>0?k.bottom+st:k.top-st,!(j>=0&&j<=$);){if(ot)return o?null:0;ot=!0,c=-c}s=b+j;let _e=k.from;if(_ea.viewport.to)return a.viewport.to==a.state.doc.length?a.state.doc.length:o?null:posAtCoordsImprecise(a,_,k,e,s);let et=a.dom.ownerDocument,tt=a.root.elementFromPoint?a.root:et,nt=tt.elementFromPoint(e,s);nt&&!a.contentDOM.contains(nt)&&(nt=null),nt||(e=Math.max(_.left+1,Math.min(_.right-1,e)),nt=tt.elementFromPoint(e,s),nt&&!a.contentDOM.contains(nt)&&(nt=null));let it,rt=-1;if(nt&&((d=a.docView.nearest(nt))===null||d===void 0?void 0:d.isEditable)!=!1){if(et.caretPositionFromPoint){let st=et.caretPositionFromPoint(e,s);st&&({offsetNode:it,offset:rt}=st)}else if(et.caretRangeFromPoint){let st=et.caretRangeFromPoint(e,s);st&&({startContainer:it,startOffset:rt}=st,(!a.contentDOM.contains(it)||browser$2.safari&&isSuspiciousSafariCaretResult(it,rt,e)||browser$2.chrome&&isSuspiciousChromeCaretResult(it,rt,e))&&(it=void 0))}}if(!it||!a.docView.dom.contains(it)){let st=LineView.find(a.docView,_e);if(!st)return j>k.top+k.height/2?k.to:k.from;({node:it,offset:rt}=domPosAtCoords(st.dom,e,s))}return a.docView.posFromDOM(it,rt)}function posAtCoordsImprecise(a,e,s,o,c){let d=Math.round((o-e.left)*a.defaultCharacterWidth);a.lineWrapping&&s.height>a.defaultLineHeight*1.5&&(d+=Math.floor((c-s.top)/a.defaultLineHeight)*a.viewState.heightOracle.lineLength);let _=a.state.sliceDoc(s.from,s.to);return s.from+findColumn(_,d,a.state.tabSize)}function isSuspiciousSafariCaretResult(a,e,s){let o;if(a.nodeType!=3||e!=(o=a.nodeValue.length))return!1;for(let c=a.nextSibling;c;c=c.nextSibling)if(c.nodeType!=1||c.nodeName!="BR")return!1;return textRange(a,o-1,o).getBoundingClientRect().left>s}function isSuspiciousChromeCaretResult(a,e,s){if(e!=0)return!1;for(let c=a;;){let d=c.parentNode;if(!d||d.nodeType!=1||d.firstChild!=c)return!1;if(d.classList.contains("cm-line"))break;c=d}let o=a.nodeType==1?a.getBoundingClientRect():textRange(a,0,Math.max(a.nodeValue.length,1)).getBoundingClientRect();return s-o.left>5}function moveToLineBoundary(a,e,s,o){let c=a.state.doc.lineAt(e.head),d=!o||!a.lineWrapping?null:a.coordsAtPos(e.assoc<0&&e.head>c.from?e.head-1:e.head);if(d){let k=a.dom.getBoundingClientRect(),$=a.textDirectionAt(c.from),j=a.posAtCoords({x:s==($==Direction.LTR)?k.right-1:k.left+1,y:(d.top+d.bottom)/2});if(j!=null)return EditorSelection.cursor(j,s?-1:1)}let _=LineView.find(a.docView,e.head),b=_?s?_.posAtEnd:_.posAtStart:s?c.to:c.from;return EditorSelection.cursor(b,s?-1:1)}function moveByChar(a,e,s,o){let c=a.state.doc.lineAt(e.head),d=a.bidiSpans(c),_=a.textDirectionAt(c.from);for(let b=e,k=null;;){let $=moveVisually(c,d,_,b,s),j=movedOver;if(!$){if(c.number==(s?a.state.doc.lines:1))return b;j=` +`,c=a.state.doc.line(c.number+(s?1:-1)),d=a.bidiSpans(c),$=EditorSelection.cursor(s?c.from:c.to)}if(k){if(!k(j))return b}else{if(!o)return $;k=o(j)}b=$}}function byGroup(a,e,s){let o=a.state.charCategorizer(e),c=o(s);return d=>{let _=o(d);return c==CharCategory.Space&&(c=_),c==_}}function moveVertically(a,e,s,o){let c=e.head,d=s?1:-1;if(c==(s?a.state.doc.length:0))return EditorSelection.cursor(c,e.assoc);let _=e.goalColumn,b,k=a.contentDOM.getBoundingClientRect(),$=a.coordsAtPos(c),j=a.documentTop;if($)_==null&&(_=$.left-k.left),b=d<0?$.top:$.bottom;else{let tt=a.viewState.lineBlockAt(c);_==null&&(_=Math.min(k.right-k.left,a.defaultCharacterWidth*(c-tt.from))),b=(d<0?tt.top:tt.bottom)+j}let _e=k.left+_,et=o!=null?o:a.defaultLineHeight>>1;for(let tt=0;;tt+=10){let nt=b+(et+tt)*d,it=posAtCoords(a,{x:_e,y:nt},!1,d);if(ntk.bottom||(d<0?itc))return EditorSelection.cursor(it,e.assoc,void 0,_)}}function skipAtoms(a,e,s){let o=a.state.facet(atomicRanges).map(c=>c(a));for(;;){let c=!1;for(let d of o)d.between(s.from-1,s.from+1,(_,b,k)=>{s.from>_&&s.froms.from?EditorSelection.cursor(_,1):EditorSelection.cursor(b,-1),c=!0)});if(!c)return s}}class InputState{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.rapidCompositionStart=!1,this.mouseSelection=null;for(let s in handlers){let o=handlers[s];e.contentDOM.addEventListener(s,c=>{!eventBelongsToEditor(e,c)||this.ignoreDuringComposition(c)||s=="keydown"&&this.keydown(e,c)||(this.mustFlushObserver(c)&&e.observer.forceFlush(),this.runCustomHandlers(s,e,c)?c.preventDefault():o(e,c))},handlerOptions[s]),this.registeredEvents.push(s)}browser$2.chrome&&browser$2.chrome_version==102&&e.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?e.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,e.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=e.hasFocus,browser$2.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e,s){var o;let c;this.customHandlers=[];for(let d of s)if(c=(o=d.update(e).spec)===null||o===void 0?void 0:o.domEventHandlers){this.customHandlers.push({plugin:d.value,handlers:c});for(let _ in c)this.registeredEvents.indexOf(_)<0&&_!="scroll"&&(this.registeredEvents.push(_),e.contentDOM.addEventListener(_,b=>{!eventBelongsToEditor(e,b)||this.runCustomHandlers(_,e,b)&&b.preventDefault()}))}}runCustomHandlers(e,s,o){for(let c of this.customHandlers){let d=c.handlers[e];if(d)try{if(d.call(c.plugin,o,s)||o.defaultPrevented)return!0}catch(_){logException(s.state,_)}}return!1}runScrollHandlers(e,s){this.lastScrollTop=e.scrollDOM.scrollTop,this.lastScrollLeft=e.scrollDOM.scrollLeft;for(let o of this.customHandlers){let c=o.handlers.scroll;if(c)try{c.call(o.plugin,s,e)}catch(d){logException(e.state,d)}}}keydown(e,s){if(this.lastKeyCode=s.keyCode,this.lastKeyTime=Date.now(),s.keyCode==9&&Date.now()c.keyCode==s.keyCode))&&!(s.ctrlKey||s.altKey||s.metaKey)&&!s.synthetic?(this.pendingIOSKey=o,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let s=this.pendingIOSKey;return s?(this.pendingIOSKey=void 0,dispatchKey(e.contentDOM,s.key,s.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:browser$2.safari&&!browser$2.ios&&Date.now()-this.compositionEndedAt<100?(this.compositionEndedAt=0,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229||e.type=="compositionend"&&!browser$2.ios}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const PendingKeys=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],modifierCodes=[16,17,18,20,91,92,224,225];class MouseSelection{constructor(e,s,o,c){this.view=e,this.style=o,this.mustSelect=c,this.lastEvent=s;let d=e.contentDOM.ownerDocument;d.addEventListener("mousemove",this.move=this.move.bind(this)),d.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=s.shiftKey,this.multiple=e.state.facet(EditorState.allowMultipleSelections)&&addsSelectionRange(e,s),this.dragMove=dragMovesSelection(e,s),this.dragging=isInPrimarySelection(e,s)&&getClickType(s)==1?null:!1,this.dragging===!1&&(s.preventDefault(),this.select(s))}move(e){if(e.buttons==0)return this.destroy();this.dragging===!1&&this.select(this.lastEvent=e)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}select(e){let s=this.style.get(e,this.extend,this.multiple);(this.mustSelect||!s.eq(this.view.state.selection)||s.main.assoc!=this.view.state.selection.main.assoc)&&this.view.dispatch({selection:s,userEvent:"select.pointer",scrollIntoView:!0}),this.mustSelect=!1}update(e){e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function addsSelectionRange(a,e){let s=a.state.facet(clickAddsSelectionRange);return s.length?s[0](e):browser$2.mac?e.metaKey:e.ctrlKey}function dragMovesSelection(a,e){let s=a.state.facet(dragMovesSelection$1);return s.length?s[0](e):browser$2.mac?!e.altKey:!e.ctrlKey}function isInPrimarySelection(a,e){let{main:s}=a.state.selection;if(s.empty)return!1;let o=getSelection(a.root);if(!o||o.rangeCount==0)return!0;let c=o.getRangeAt(0).getClientRects();for(let d=0;d=e.clientX&&_.top<=e.clientY&&_.bottom>=e.clientY)return!0}return!1}function eventBelongsToEditor(a,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let s=e.target,o;s!=a.contentDOM;s=s.parentNode)if(!s||s.nodeType==11||(o=ContentView.get(s))&&o.ignoreEvent(e))return!1;return!0}const handlers=Object.create(null),handlerOptions=Object.create(null),brokenClipboardAPI=browser$2.ie&&browser$2.ie_version<15||browser$2.ios&&browser$2.webkit_version<604;function capturePaste(a){let e=a.dom.parentNode;if(!e)return;let s=e.appendChild(document.createElement("textarea"));s.style.cssText="position: fixed; left: -10000px; top: 10px",s.focus(),setTimeout(()=>{a.focus(),s.remove(),doPaste(a,s.value)},50)}function doPaste(a,e){let{state:s}=a,o,c=1,d=s.toText(e),_=d.lines==s.selection.ranges.length;if(lastLinewiseCopy!=null&&s.selection.ranges.every(k=>k.empty)&&lastLinewiseCopy==d.toString()){let k=-1;o=s.changeByRange($=>{let j=s.doc.lineAt($.from);if(j.from==k)return{range:$};k=j.from;let _e=s.toText((_?d.line(c++).text:e)+s.lineBreak);return{changes:{from:j.from,insert:_e},range:EditorSelection.cursor($.from+_e.length)}})}else _?o=s.changeByRange(k=>{let $=d.line(c++);return{changes:{from:k.from,to:k.to,insert:$.text},range:EditorSelection.cursor(k.from+$.length)}}):o=s.replaceSelection(d);a.dispatch(o,{userEvent:"input.paste",scrollIntoView:!0})}handlers.keydown=(a,e)=>{a.inputState.setSelectionOrigin("select"),e.keyCode==27?a.inputState.lastEscPress=Date.now():modifierCodes.indexOf(e.keyCode)<0&&(a.inputState.lastEscPress=0)};handlers.touchstart=(a,e)=>{a.inputState.lastTouchTime=Date.now(),a.inputState.setSelectionOrigin("select.pointer")};handlers.touchmove=a=>{a.inputState.setSelectionOrigin("select.pointer")};handlerOptions.touchstart=handlerOptions.touchmove={passive:!0};handlers.mousedown=(a,e)=>{if(a.observer.flush(),a.inputState.lastTouchTime>Date.now()-2e3&&getClickType(e)==1)return;let s=null;for(let o of a.state.facet(mouseSelectionStyle))if(s=o(a,e),s)break;if(!s&&e.button==0&&(s=basicMouseSelection(a,e)),s){let o=a.root.activeElement!=a.contentDOM;o&&a.observer.ignore(()=>focusPreventScroll(a.contentDOM)),a.inputState.startMouseSelection(new MouseSelection(a,e,s,o))}};function rangeForClick(a,e,s,o){if(o==1)return EditorSelection.cursor(e,s);if(o==2)return groupAt(a.state,e,s);{let c=LineView.find(a.docView,e),d=a.state.doc.lineAt(c?c.posAtEnd:e),_=c?c.posAtStart:d.from,b=c?c.posAtEnd:d.to;return ba>=e.top&&a<=e.bottom,inside=(a,e,s)=>insideY(e,s)&&a>=s.left&&a<=s.right;function findPositionSide(a,e,s,o){let c=LineView.find(a.docView,e);if(!c)return 1;let d=e-c.posAtStart;if(d==0)return 1;if(d==c.length)return-1;let _=c.coordsAt(d,-1);if(_&&inside(s,o,_))return-1;let b=c.coordsAt(d,1);return b&&inside(s,o,b)?1:_&&insideY(o,_)?-1:1}function queryPos(a,e){let s=a.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:s,bias:findPositionSide(a,s,e.clientX,e.clientY)}}const BadMouseDetail=browser$2.ie&&browser$2.ie_version<=11;let lastMouseDown=null,lastMouseDownCount=0,lastMouseDownTime=0;function getClickType(a){if(!BadMouseDetail)return a.detail;let e=lastMouseDown,s=lastMouseDownTime;return lastMouseDown=a,lastMouseDownTime=Date.now(),lastMouseDownCount=!e||s>Date.now()-400&&Math.abs(e.clientX-a.clientX)<2&&Math.abs(e.clientY-a.clientY)<2?(lastMouseDownCount+1)%3:1}function basicMouseSelection(a,e){let s=queryPos(a,e),o=getClickType(e),c=a.state.selection,d=s,_=e;return{update(b){b.docChanged&&(s&&(s.pos=b.changes.mapPos(s.pos)),c=c.map(b.changes),_=null)},get(b,k,$){let j;if(_&&b.clientX==_.clientX&&b.clientY==_.clientY?j=d:(j=d=queryPos(a,b),_=b),!j||!s)return c;let _e=rangeForClick(a,j.pos,j.bias,o);if(s.pos!=j.pos&&!k){let et=rangeForClick(a,s.pos,s.bias,o),tt=Math.min(et.from,_e.from),nt=Math.max(et.to,_e.to);_e=tt<_e.from?EditorSelection.range(tt,nt):EditorSelection.range(nt,tt)}return k?c.replaceRange(c.main.extend(_e.from,_e.to)):$&&c.ranges.length>1&&c.ranges.some(et=>et.eq(_e))?removeRange(c,_e):$?c.addRange(_e):EditorSelection.create([_e])}}}function removeRange(a,e){for(let s=0;;s++)if(a.ranges[s].eq(e))return EditorSelection.create(a.ranges.slice(0,s).concat(a.ranges.slice(s+1)),a.mainIndex==s?0:a.mainIndex-(a.mainIndex>s?1:0))}handlers.dragstart=(a,e)=>{let{selection:{main:s}}=a.state,{mouseSelection:o}=a.inputState;o&&(o.dragging=s),e.dataTransfer&&(e.dataTransfer.setData("Text",a.state.sliceDoc(s.from,s.to)),e.dataTransfer.effectAllowed="copyMove")};function dropText(a,e,s,o){if(!s)return;let c=a.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:d}=a.inputState,_=o&&d&&d.dragging&&d.dragMove?{from:d.dragging.from,to:d.dragging.to}:null,b={from:c,insert:s},k=a.state.changes(_?[_,b]:b);a.focus(),a.dispatch({changes:k,selection:{anchor:k.mapPos(c,-1),head:k.mapPos(c,1)},userEvent:_?"move.drop":"input.drop"})}handlers.drop=(a,e)=>{if(!e.dataTransfer)return;if(a.state.readOnly)return e.preventDefault();let s=e.dataTransfer.files;if(s&&s.length){e.preventDefault();let o=Array(s.length),c=0,d=()=>{++c==s.length&&dropText(a,e,o.filter(_=>_!=null).join(a.state.lineBreak),!1)};for(let _=0;_{/[\x00-\x08\x0e-\x1f]{2}/.test(b.result)||(o[_]=b.result),d()},b.readAsText(s[_])}}else dropText(a,e,e.dataTransfer.getData("Text"),!0)};handlers.paste=(a,e)=>{if(a.state.readOnly)return e.preventDefault();a.observer.flush();let s=brokenClipboardAPI?null:e.clipboardData;s?(doPaste(a,s.getData("text/plain")),e.preventDefault()):capturePaste(a)};function captureCopy(a,e){let s=a.dom.parentNode;if(!s)return;let o=s.appendChild(document.createElement("textarea"));o.style.cssText="position: fixed; left: -10000px; top: 10px",o.value=e,o.focus(),o.selectionEnd=e.length,o.selectionStart=0,setTimeout(()=>{o.remove(),a.focus()},50)}function copiedRange(a){let e=[],s=[],o=!1;for(let c of a.selection.ranges)c.empty||(e.push(a.sliceDoc(c.from,c.to)),s.push(c));if(!e.length){let c=-1;for(let{from:d}of a.selection.ranges){let _=a.doc.lineAt(d);_.number>c&&(e.push(_.text),s.push({from:_.from,to:Math.min(a.doc.length,_.to+1)})),c=_.number}o=!0}return{text:e.join(a.lineBreak),ranges:s,linewise:o}}let lastLinewiseCopy=null;handlers.copy=handlers.cut=(a,e)=>{let{text:s,ranges:o,linewise:c}=copiedRange(a.state);if(!s&&!c)return;lastLinewiseCopy=c?s:null;let d=brokenClipboardAPI?null:e.clipboardData;d?(e.preventDefault(),d.clearData(),d.setData("text/plain",s)):captureCopy(a,s),e.type=="cut"&&!a.state.readOnly&&a.dispatch({changes:o,scrollIntoView:!0,userEvent:"delete.cut"})};function updateForFocusChange(a){setTimeout(()=>{a.hasFocus!=a.inputState.notifiedFocused&&a.update([])},10)}handlers.focus=a=>{a.inputState.lastFocusTime=Date.now(),!a.scrollDOM.scrollTop&&(a.inputState.lastScrollTop||a.inputState.lastScrollLeft)&&(a.scrollDOM.scrollTop=a.inputState.lastScrollTop,a.scrollDOM.scrollLeft=a.inputState.lastScrollLeft),updateForFocusChange(a)};handlers.blur=a=>{a.observer.clearSelectionRange(),updateForFocusChange(a)};function forceClearComposition(a,e){if(a.docView.compositionDeco.size){a.inputState.rapidCompositionStart=e;try{a.update([])}finally{a.inputState.rapidCompositionStart=!1}}}handlers.compositionstart=handlers.compositionupdate=a=>{a.inputState.compositionFirstChange==null&&(a.inputState.compositionFirstChange=!0),a.inputState.composing<0&&(a.inputState.composing=0,a.docView.compositionDeco.size&&(a.observer.flush(),forceClearComposition(a,!0)))};handlers.compositionend=a=>{a.inputState.composing=-1,a.inputState.compositionEndedAt=Date.now(),a.inputState.compositionFirstChange=null,setTimeout(()=>{a.inputState.composing<0&&forceClearComposition(a,!1)},50)};handlers.contextmenu=a=>{a.inputState.lastContextMenu=Date.now()};handlers.beforeinput=(a,e)=>{var s;let o;if(browser$2.chrome&&browser$2.android&&(o=PendingKeys.find(c=>c.inputType==e.inputType))&&(a.observer.delayAndroidKey(o.key,o.keyCode),o.key=="Backspace"||o.key=="Delete")){let c=((s=window.visualViewport)===null||s===void 0?void 0:s.height)||0;setTimeout(()=>{var d;(((d=window.visualViewport)===null||d===void 0?void 0:d.height)||0)>c+10&&a.hasFocus&&(a.contentDOM.blur(),a.focus())},100)}};const wrappingWhiteSpace=["pre-wrap","normal","pre-line","break-spaces"];class HeightOracle{constructor(){this.doc=Text.empty,this.lineWrapping=!1,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}heightForGap(e,s){let o=this.doc.lineAt(s).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(o+=Math.ceil((s-e-o*this.lineLength*.5)/this.lineLength)),this.lineHeight*o}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return wrappingWhiteSpace.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let s=!1;for(let o=0;o-1,b=Math.round(s)!=Math.round(this.lineHeight)||this.lineWrapping!=_;if(this.lineWrapping=_,this.lineHeight=s,this.charWidth=o,this.lineLength=c,b){this.heightSamples={};for(let k=0;k0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,s){this.height!=s&&(Math.abs(this.height-s)>Epsilon&&(e.heightChanged=!0),this.height=s)}replace(e,s,o){return HeightMap.of(o)}decomposeLeft(e,s){s.push(this)}decomposeRight(e,s){s.push(this)}applyChanges(e,s,o,c){let d=this;for(let _=c.length-1;_>=0;_--){let{fromA:b,toA:k,fromB:$,toB:j}=c[_],_e=d.lineAt(b,QueryType$1.ByPosNoHeight,s,0,0),et=_e.to>=k?_e:d.lineAt(k,QueryType$1.ByPosNoHeight,s,0,0);for(j+=et.to-k,k=et.to;_>0&&_e.from<=c[_-1].toA;)b=c[_-1].fromA,$=c[_-1].fromB,_--,b<_e.from&&(_e=d.lineAt(b,QueryType$1.ByPosNoHeight,s,0,0));$+=_e.from-b,b=_e.from;let tt=NodeBuilder.build(o,e,$,j);d=d.replace(b,k,tt)}return d.updateHeight(o,0)}static empty(){return new HeightMapText(0,0)}static of(e){if(e.length==1)return e[0];let s=0,o=e.length,c=0,d=0;for(;;)if(s==o)if(c>d*2){let b=e[s-1];b.break?e.splice(--s,1,b.left,null,b.right):e.splice(--s,1,b.left,b.right),o+=1+b.break,c-=b.size}else if(d>c*2){let b=e[o];b.break?e.splice(o,1,b.left,null,b.right):e.splice(o,1,b.left,b.right),o+=2+b.break,d-=b.size}else break;else if(c=d&&_(this.blockAt(0,o,c,d))}updateHeight(e,s=0,o=!1,c){return c&&c.from<=s&&c.more&&this.setHeight(e,c.heights[c.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class HeightMapText extends HeightMapBlock{constructor(e,s){super(e,s,BlockType.Text),this.collapsed=0,this.widgetHeight=0}replace(e,s,o){let c=o[0];return o.length==1&&(c instanceof HeightMapText||c instanceof HeightMapGap&&c.flags&4)&&Math.abs(this.length-c.length)<10?(c instanceof HeightMapGap?c=new HeightMapText(c.length,this.height):c.height=this.height,this.outdated||(c.outdated=!1),c):HeightMap.of(o)}updateHeight(e,s=0,o=!1,c){return c&&c.from<=s&&c.more?this.setHeight(e,c.heights[c.index++]):(o||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class HeightMapGap extends HeightMap{constructor(e){super(e,0)}lines(e,s){let o=e.lineAt(s).number,c=e.lineAt(s+this.length).number;return{firstLine:o,lastLine:c,lineHeight:this.height/(c-o+1)}}blockAt(e,s,o,c){let{firstLine:d,lastLine:_,lineHeight:b}=this.lines(s,c),k=Math.max(0,Math.min(_-d,Math.floor((e-o)/b))),{from:$,length:j}=s.line(d+k);return new BlockInfo($,j,o+b*k,b,BlockType.Text)}lineAt(e,s,o,c,d){if(s==QueryType$1.ByHeight)return this.blockAt(e,o,c,d);if(s==QueryType$1.ByPosNoHeight){let{from:_e,to:et}=o.lineAt(e);return new BlockInfo(_e,et-_e,0,0,BlockType.Text)}let{firstLine:_,lineHeight:b}=this.lines(o,d),{from:k,length:$,number:j}=o.lineAt(e);return new BlockInfo(k,$,c+b*(j-_),b,BlockType.Text)}forEachLine(e,s,o,c,d,_){let{firstLine:b,lineHeight:k}=this.lines(o,d);for(let $=Math.max(e,d),j=Math.min(d+this.length,s);$<=j;){let _e=o.lineAt($);$==e&&(c+=k*(_e.number-b)),_(new BlockInfo(_e.from,_e.length,c,k,BlockType.Text)),c+=k,$=_e.to+1}}replace(e,s,o){let c=this.length-s;if(c>0){let d=o[o.length-1];d instanceof HeightMapGap?o[o.length-1]=new HeightMapGap(d.length+c):o.push(null,new HeightMapGap(c-1))}if(e>0){let d=o[0];d instanceof HeightMapGap?o[0]=new HeightMapGap(e+d.length):o.unshift(new HeightMapGap(e-1),null)}return HeightMap.of(o)}decomposeLeft(e,s){s.push(new HeightMapGap(e-1),null)}decomposeRight(e,s){s.push(null,new HeightMapGap(this.length-e-1))}updateHeight(e,s=0,o=!1,c){let d=s+this.length;if(c&&c.from<=s+this.length&&c.more){let _=[],b=Math.max(s,c.from),k=-1,$=e.heightChanged;for(c.from>s&&_.push(new HeightMapGap(c.from-s-1).updateHeight(e,s));b<=d&&c.more;){let _e=e.doc.lineAt(b).length;_.length&&_.push(null);let et=c.heights[c.index++];k==-1?k=et:Math.abs(et-k)>=Epsilon&&(k=-2);let tt=new HeightMapText(_e,et);tt.outdated=!1,_.push(tt),b+=_e+1}b<=d&&_.push(null,new HeightMapGap(d-b).updateHeight(e,b));let j=HeightMap.of(_);return e.heightChanged=$||k<0||Math.abs(j.height-this.height)>=Epsilon||Math.abs(k-this.lines(e.doc,s).lineHeight)>=Epsilon,j}else(o||this.outdated)&&(this.setHeight(e,e.heightForGap(s,s+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class HeightMapBranch extends HeightMap{constructor(e,s,o){super(e.length+s+o.length,e.height+o.height,s|(e.outdated||o.outdated?2:0)),this.left=e,this.right=o,this.size=e.size+o.size}get break(){return this.flags&1}blockAt(e,s,o,c){let d=o+this.left.height;return eb))return $;let j=s==QueryType$1.ByPosNoHeight?QueryType$1.ByPosNoHeight:QueryType$1.ByPos;return k?$.join(this.right.lineAt(b,j,o,_,b)):this.left.lineAt(b,j,o,c,d).join($)}forEachLine(e,s,o,c,d,_){let b=c+this.left.height,k=d+this.left.length+this.break;if(this.break)e=k&&this.right.forEachLine(e,s,o,b,k,_);else{let $=this.lineAt(k,QueryType$1.ByPos,o,c,d);e<$.from&&this.left.forEachLine(e,$.from-1,o,c,d,_),$.to>=e&&$.from<=s&&_($),s>$.to&&this.right.forEachLine($.to+1,s,o,b,k,_)}}replace(e,s,o){let c=this.left.length+this.break;if(sthis.left.length)return this.balanced(this.left,this.right.replace(e-c,s-c,o));let d=[];e>0&&this.decomposeLeft(e,d);let _=d.length;for(let b of o)d.push(b);if(e>0&&mergeGaps(d,_-1),s=o&&s.push(null)),e>o&&this.right.decomposeLeft(e-o,s)}decomposeRight(e,s){let o=this.left.length,c=o+this.break;if(e>=c)return this.right.decomposeRight(e-c,s);e2*s.size||s.size>2*e.size?HeightMap.of(this.break?[e,null,s]:[e,s]):(this.left=e,this.right=s,this.height=e.height+s.height,this.outdated=e.outdated||s.outdated,this.size=e.size+s.size,this.length=e.length+this.break+s.length,this)}updateHeight(e,s=0,o=!1,c){let{left:d,right:_}=this,b=s+d.length+this.break,k=null;return c&&c.from<=s+d.length&&c.more?k=d=d.updateHeight(e,s,o,c):d.updateHeight(e,s,o),c&&c.from<=b+_.length&&c.more?k=_=_.updateHeight(e,b,o,c):_.updateHeight(e,b,o),k?this.balanced(d,_):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function mergeGaps(a,e){let s,o;a[e]==null&&(s=a[e-1])instanceof HeightMapGap&&(o=a[e+1])instanceof HeightMapGap&&a.splice(e-1,3,new HeightMapGap(s.length+1+o.length))}const relevantWidgetHeight=5;class NodeBuilder{constructor(e,s){this.pos=e,this.oracle=s,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,s){if(this.lineStart>-1){let o=Math.min(s,this.lineEnd),c=this.nodes[this.nodes.length-1];c instanceof HeightMapText?c.length+=o-this.pos:(o>this.pos||!this.isCovered)&&this.nodes.push(new HeightMapText(o-this.pos,-1)),this.writtenTo=o,s>o&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=s}point(e,s,o){if(e=relevantWidgetHeight)&&this.addLineDeco(c,d)}else s>e&&this.span(e,s);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:s}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=s,this.writtenToe&&this.nodes.push(new HeightMapText(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,s){let o=new HeightMapGap(s-e);return this.oracle.doc.lineAt(e).to==s&&(o.flags|=4),o}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof HeightMapText)return e;let s=new HeightMapText(0,-1);return this.nodes.push(s),s}addBlock(e){this.enterLine(),e.type==BlockType.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=BlockType.WidgetBefore&&(this.covering=e)}addLineDeco(e,s){let o=this.ensureLine();o.length+=s,o.collapsed+=s,o.widgetHeight=Math.max(o.widgetHeight,e),this.writtenTo=this.pos=this.pos+s}finish(e){let s=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(s instanceof HeightMapText)&&!this.isCovered?this.nodes.push(new HeightMapText(0,-1)):(this.writtenTo$.clientHeight||$.scrollWidth>$.clientWidth)&&j.overflow!="visible"){let _e=$.getBoundingClientRect();o=Math.max(o,_e.left),c=Math.min(c,_e.right),d=Math.max(d,_e.top),_=k==a.parentNode?_e.bottom:Math.min(_,_e.bottom)}k=j.position=="absolute"||j.position=="fixed"?$.offsetParent:$.parentNode}else if(k.nodeType==11)k=k.host;else break;return{left:o-s.left,right:Math.max(o,c)-s.left,top:d-(s.top+e),bottom:Math.max(d,_)-(s.top+e)}}function fullPixelRange(a,e){let s=a.getBoundingClientRect();return{left:0,right:s.right-s.left,top:e,bottom:s.bottom-(s.top+e)}}class LineGap{constructor(e,s,o){this.from=e,this.to=s,this.size=o}static same(e,s){if(e.length!=s.length)return!1;for(let o=0;otypeof s!="function"),this.heightMap=HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle.setDoc(e.doc),[new ChangedRange(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Decoration.set(this.lineGaps.map(s=>s.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:s}=this.state.selection;for(let o=0;o<=1;o++){let c=o?s.head:s.anchor;if(!e.some(({from:d,to:_})=>c>=d&&c<=_)){let{from:d,to:_}=this.lineBlockAt(c);e.push(new Viewport(d,_))}}this.viewports=e.sort((o,c)=>o.from-c.from),this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle.doc,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.state.doc,0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:scaleBlock(e,this.scaler))})}update(e,s=null){this.state=e.state;let o=this.stateDeco;this.stateDeco=this.state.facet(decorations).filter($=>typeof $!="function");let c=e.changedRanges,d=ChangedRange.extendWithRanges(c,heightRelevantDecoChanges(o,this.stateDeco,e?e.changes:ChangeSet.empty(this.state.doc.length))),_=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),d),this.heightMap.height!=_&&(e.flags|=2);let b=d.length?this.mapViewport(this.viewport,e.changes):this.viewport;(s&&(s.range.headb.to)||!this.viewportIsAppropriate(b))&&(b=this.getViewport(0,s));let k=!e.changes.empty||e.flags&2||b.from!=this.viewport.from||b.to!=this.viewport.to;this.viewport=b,this.updateForViewport(),k&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),s&&(this.scrollTarget=s),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&(this.mustEnforceCursorAssoc=!0)}measure(e){let s=e.contentDOM,o=window.getComputedStyle(s),c=this.heightOracle,d=o.whiteSpace;this.defaultTextDirection=o.direction=="rtl"?Direction.RTL:Direction.LTR;let _=this.heightOracle.mustRefreshForWrapping(d),b=_||this.mustMeasureContent||this.contentDOMHeight!=s.clientHeight;this.contentDOMHeight=s.clientHeight,this.mustMeasureContent=!1;let k=0,$=0,j=parseInt(o.paddingTop)||0,_e=parseInt(o.paddingBottom)||0;(this.paddingTop!=j||this.paddingBottom!=_e)&&(this.paddingTop=j,this.paddingBottom=_e,k|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(c.lineWrapping&&(b=!0),this.editorWidth=e.scrollDOM.clientWidth,k|=8);let et=(this.printing?fullPixelRange:visiblePixelRange)(s,this.paddingTop),tt=et.top-this.pixelViewport.top,nt=et.bottom-this.pixelViewport.bottom;this.pixelViewport=et;let it=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(it!=this.inView&&(this.inView=it,it&&(b=!0)),!this.inView)return 0;let rt=s.clientWidth;if((this.contentDOMWidth!=rt||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=rt,this.editorHeight=e.scrollDOM.clientHeight,k|=8),b){let ot=e.docView.measureVisibleLineHeights(this.viewport);if(c.mustRefreshForHeights(ot)&&(_=!0),_||c.lineWrapping&&Math.abs(rt-this.contentDOMWidth)>c.charWidth){let{lineHeight:at,charWidth:ht}=e.docView.measureTextSize();_=c.refresh(d,at,ht,rt/ht,ot),_&&(e.docView.minWidth=0,k|=8)}tt>0&&nt>0?$=Math.max(tt,nt):tt<0&&nt<0&&($=Math.min(tt,nt)),c.heightChanged=!1;for(let at of this.viewports){let ht=at.from==this.viewport.from?ot:e.docView.measureVisibleLineHeights(at);this.heightMap=this.heightMap.updateHeight(c,0,_,new MeasuredHeights(at.from,ht))}c.heightChanged&&(k|=2)}let st=!this.viewportIsAppropriate(this.viewport,$)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return st&&(this.viewport=this.getViewport($,this.scrollTarget)),this.updateForViewport(),(k&2||st)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(_?[]:this.lineGaps)),k|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),k}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,s){let o=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),c=this.heightMap,d=this.state.doc,{visibleTop:_,visibleBottom:b}=this,k=new Viewport(c.lineAt(_-o*1e3,QueryType$1.ByHeight,d,0,0).from,c.lineAt(b+(1-o)*1e3,QueryType$1.ByHeight,d,0,0).to);if(s){let{head:$}=s.range;if($k.to){let j=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),_e=c.lineAt($,QueryType$1.ByPos,d,0,0),et;s.y=="center"?et=(_e.top+_e.bottom)/2-j/2:s.y=="start"||s.y=="nearest"&&$=b+Math.max(10,Math.min(o,250)))&&c>_-2*1e3&&do.from&&b.push({from:o.from,to:d}),_=o.from&&k.from<=o.to&&cutRange(b,k.from-10,k.from+10),!k.empty&&k.to>=o.from&&k.to<=o.to&&cutRange(b,k.to-10,k.to+10);for(let{from:$,to:j}of b)j-$>1e3&&s.push(find(e,_e=>_e.from>=o.from&&_e.to<=o.to&&Math.abs(_e.from-$)<1e3&&Math.abs(_e.to-j)<1e3)||new LineGap($,j,this.gapSize(o,$,j,c)))}return s}gapSize(e,s,o,c){let d=findFraction(c,o)-findFraction(c,s);return this.heightOracle.lineWrapping?e.height*d:c.total*this.heightOracle.charWidth*d}updateLineGaps(e){LineGap.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=Decoration.set(e.map(s=>s.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let s=[];RangeSet.spans(e,this.viewport.from,this.viewport.to,{span(c,d){s.push({from:c,to:d})},point(){}},20);let o=s.length!=this.visibleRanges.length||this.visibleRanges.some((c,d)=>c.from!=s[d].from||c.to!=s[d].to);return this.visibleRanges=s,o?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(s=>s.from<=e&&s.to>=e)||scaleBlock(this.heightMap.lineAt(e,QueryType$1.ByPos,this.state.doc,0,0),this.scaler)}lineBlockAtHeight(e){return scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(e),QueryType$1.ByHeight,this.state.doc,0,0),this.scaler)}elementAtHeight(e){return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(e),this.state.doc,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Viewport{constructor(e,s){this.from=e,this.to=s}}function lineStructure(a,e,s){let o=[],c=a,d=0;return RangeSet.spans(s,a,e,{span(){},point(_,b){_>c&&(o.push({from:c,to:_}),d+=_-c),c=b}},20),c=1)return e[e.length-1].to;let o=Math.floor(a*s);for(let c=0;;c++){let{from:d,to:_}=e[c],b=_-d;if(o<=b)return d+o;o-=b}}function findFraction(a,e){let s=0;for(let{from:o,to:c}of a.ranges){if(e<=c){s+=e-o;break}s+=c-o}return s/a.total}function cutRange(a,e,s){for(let o=0;oe){let d=[];c.froms&&d.push({from:s,to:c.to}),a.splice(o,1,...d),o+=d.length-1}}}function find(a,e){for(let s of a)if(e(s))return s}const IdScaler={toDOM(a){return a},fromDOM(a){return a},scale:1};class BigScaler{constructor(e,s,o){let c=0,d=0,_=0;this.viewports=o.map(({from:b,to:k})=>{let $=s.lineAt(b,QueryType$1.ByPos,e,0,0).top,j=s.lineAt(k,QueryType$1.ByPos,e,0,0).bottom;return c+=j-$,{from:b,to:k,top:$,bottom:j,domTop:0,domBottom:0}}),this.scale=(7e6-c)/(s.height-c);for(let b of this.viewports)b.domTop=_+(b.top-d)*this.scale,_=b.domBottom=b.domTop+(b.bottom-b.top),d=b.bottom}toDOM(e){for(let s=0,o=0,c=0;;s++){let d=sscaleBlock(c,e)):a.type)}const theme=Facet.define({combine:a=>a.join(" ")}),darkTheme=Facet.define({combine:a=>a.indexOf(!0)>-1}),baseThemeID=StyleModule.newName(),baseLightID=StyleModule.newName(),baseDarkID=StyleModule.newName(),lightDarkIDs={"&light":"."+baseLightID,"&dark":"."+baseDarkID};function buildTheme(a,e,s){return new StyleModule(e,{finish(o){return/&/.test(o)?o.replace(/&\w*/,c=>{if(c=="&")return a;if(!s||!s[c])throw new RangeError(`Unsupported selector: ${c}`);return s[c]}):a+" "+o}})}const baseTheme$1$3=buildTheme("."+baseThemeID,{"&.cm-editor":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,minHeight:"100%",display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 4px"},".cm-selectionLayer":{zIndex:-1,contain:"size style"},".cm-selectionBackground":{position:"absolute"},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{zIndex:100,contain:"size style",pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{position:"absolute",borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#f3f9ff"},"&dark .cm-activeLine":{backgroundColor:"#223039"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},lightDarkIDs),observeOptions={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},useCharData=browser$2.ie&&browser$2.ie_version<=11;class DOMObserver{constructor(e,s,o){this.view=e,this.onChange=s,this.onScrollChanged=o,this.active=!1,this.selectionRange=new DOMSelectionState,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.scrollTargets=[],this.intersection=null,this.resize=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(c=>{for(let d of c)this.queue.push(d);(browser$2.ie&&browser$2.ie_version<=11||browser$2.ios&&e.composing)&&c.some(d=>d.type=="childList"&&d.removedNodes.length||d.type=="characterData"&&d.oldValue.length>d.target.nodeValue.length)?this.flushSoon():this.flush()}),useCharData&&(this.onCharData=c=>{this.queue.push({target:c.target,type:"characterData",oldValue:c.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resize=new ResizeObserver(()=>{this.view.docView.lastUpdate{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),c.length>0&&c[c.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(c=>{c.length>0&&c[c.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((s,o)=>s!=e[o]))){this.gapIntersection.disconnect();for(let s of e)this.gapIntersection.observe(s);this.gaps=e}}onSelectionChange(e){if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:s}=this,o=this.selectionRange;if(s.state.facet(editable)?s.root.activeElement!=this.dom:!hasSelection(s.dom,o))return;let c=o.anchorNode&&s.docView.nearest(o.anchorNode);c&&c.ignoreEvent(e)||((browser$2.ie&&browser$2.ie_version<=11||browser$2.android&&browser$2.chrome)&&!s.state.selection.main.empty&&o.focusNode&&isEquivalentPosition(o.focusNode,o.focusOffset,o.anchorNode,o.anchorOffset)?this.flushSoon():this.flush(!1))}readSelectionRange(){let{view:e}=this,s=browser$2.safari&&e.root.nodeType==11&&deepActiveElement()==this.dom&&safariSelectionRangeHack(this.view)||getSelection(e.root);if(!s||this.selectionRange.eq(s))return!1;let o=hasSelection(this.dom,s);return o&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let o=this.delayedAndroidKey;this.delayedAndroidKey=null,this.delayedFlush=-1,this.flush()||dispatchKey(this.dom,o.key,o.keyCode)}),(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:s})}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=window.setTimeout(()=>{this.delayedFlush=-1,this.flush()},20))}forceFlush(){this.delayedFlush>=0&&(window.clearTimeout(this.delayedFlush),this.delayedFlush=-1),this.flush()}processRecords(){let e=this.queue;for(let d of this.observer.takeRecords())e.push(d);e.length&&(this.queue=[]);let s=-1,o=-1,c=!1;for(let d of e){let _=this.readMutation(d);!_||(_.typeOver&&(c=!0),s==-1?{from:s,to:o}=_:(s=Math.min(_.from,s),o=Math.max(_.to,o)))}return{from:s,to:o,typeOver:c}}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return;e&&this.readSelectionRange();let{from:s,to:o,typeOver:c}=this.processRecords(),d=this.selectionChanged&&hasSelection(this.dom,this.selectionRange);if(s<0&&!d)return;this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let _=this.view.state,b=this.onChange(s,o,c);return this.view.state==_&&this.view.update([]),b}readMutation(e){let s=this.view.docView.nearest(e.target);if(!s||s.ignoreMutation(e))return null;if(s.markDirty(e.type=="attributes"),e.type=="attributes"&&(s.dirty|=4),e.type=="childList"){let o=findChild(s,e.previousSibling||e.target.previousSibling,-1),c=findChild(s,e.nextSibling||e.target.nextSibling,1);return{from:o?s.posAfter(o):s.posAtStart,to:c?s.posBefore(c):s.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:s.posAtStart,to:s.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,s,o;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(s=this.gapIntersection)===null||s===void 0||s.disconnect(),(o=this.resize)===null||o===void 0||o.disconnect();for(let c of this.scrollTargets)c.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout)}}function findChild(a,e,s){for(;e;){let o=ContentView.get(e);if(o&&o.parent==a)return o;let c=e.parentNode;e=c!=a.dom?c:s>0?e.nextSibling:e.previousSibling}return null}function safariSelectionRangeHack(a){let e=null;function s(k){k.preventDefault(),k.stopImmediatePropagation(),e=k.getTargetRanges()[0]}if(a.contentDOM.addEventListener("beforeinput",s,!0),document.execCommand("indent"),a.contentDOM.removeEventListener("beforeinput",s,!0),!e)return null;let o=e.startContainer,c=e.startOffset,d=e.endContainer,_=e.endOffset,b=a.docView.domAtPos(a.state.selection.main.anchor);return isEquivalentPosition(b.node,b.offset,d,_)&&([o,c,d,_]=[d,_,o,c]),{anchorNode:o,anchorOffset:c,focusNode:d,focusOffset:_}}function applyDOMChange(a,e,s,o){let c,d,_=a.state.selection.main;if(e>-1){let b=a.docView.domBoundsAround(e,s,0);if(!b||a.state.readOnly)return!1;let{from:k,to:$}=b,j=a.docView.impreciseHead||a.docView.impreciseAnchor?[]:selectionPoints(a),_e=new DOMReader(j,a.state);_e.readRange(b.startDOM,b.endDOM);let et=_.from,tt=null;(a.inputState.lastKeyCode===8&&a.inputState.lastKeyTime>Date.now()-100||browser$2.android&&_e.text.length<$-k)&&(et=_.to,tt="end");let nt=findDiff(a.state.doc.sliceString(k,$,LineBreakPlaceholder),_e.text,et-k,tt);nt&&(browser$2.chrome&&a.inputState.lastKeyCode==13&&nt.toB==nt.from+2&&_e.text.slice(nt.from,nt.toB)==LineBreakPlaceholder+LineBreakPlaceholder&&nt.toB--,c={from:k+nt.from,to:k+nt.toA,insert:Text.of(_e.text.slice(nt.from,nt.toB).split(LineBreakPlaceholder))}),d=selectionFromPoints(j,k)}else if(a.hasFocus||!a.state.facet(editable)){let b=a.observer.selectionRange,{impreciseHead:k,impreciseAnchor:$}=a.docView,j=k&&k.node==b.focusNode&&k.offset==b.focusOffset||!contains(a.contentDOM,b.focusNode)?a.state.selection.main.head:a.docView.posFromDOM(b.focusNode,b.focusOffset),_e=$&&$.node==b.anchorNode&&$.offset==b.anchorOffset||!contains(a.contentDOM,b.anchorNode)?a.state.selection.main.anchor:a.docView.posFromDOM(b.anchorNode,b.anchorOffset);(j!=_.head||_e!=_.anchor)&&(d=EditorSelection.single(_e,j))}if(!c&&!d)return!1;if(!c&&o&&!_.empty&&d&&d.main.empty?c={from:_.from,to:_.to,insert:a.state.doc.slice(_.from,_.to)}:c&&c.from>=_.from&&c.to<=_.to&&(c.from!=_.from||c.to!=_.to)&&_.to-_.from-(c.to-c.from)<=4?c={from:_.from,to:_.to,insert:a.state.doc.slice(_.from,c.from).append(c.insert).append(a.state.doc.slice(c.to,_.to))}:(browser$2.mac||browser$2.android)&&c&&c.from==c.to&&c.from==_.head-1&&c.insert.toString()=="."&&(c={from:_.from,to:_.to,insert:Text.of([" "])}),c){let b=a.state;if(browser$2.ios&&a.inputState.flushIOSKey(a)||browser$2.android&&(c.from==_.from&&c.to==_.to&&c.insert.length==1&&c.insert.lines==2&&dispatchKey(a.contentDOM,"Enter",13)||c.from==_.from-1&&c.to==_.to&&c.insert.length==0&&dispatchKey(a.contentDOM,"Backspace",8)||c.from==_.from&&c.to==_.to+1&&c.insert.length==0&&dispatchKey(a.contentDOM,"Delete",46)))return!0;let k=c.insert.toString();if(a.state.facet(inputHandler$1).some(_e=>_e(a,c.from,c.to,k)))return!0;a.inputState.composing>=0&&a.inputState.composing++;let $;if(c.from>=_.from&&c.to<=_.to&&c.to-c.from>=(_.to-_.from)/3&&(!d||d.main.empty&&d.main.from==c.from+c.insert.length)&&a.inputState.composing<0){let _e=_.fromc.to?b.sliceDoc(c.to,_.to):"";$=b.replaceSelection(a.state.toText(_e+c.insert.sliceString(0,void 0,a.state.lineBreak)+et))}else{let _e=b.changes(c),et=d&&!b.selection.main.eq(d.main)&&d.main.to<=_e.newLength?d.main:void 0;if(b.selection.ranges.length>1&&a.inputState.composing>=0&&c.to<=_.to&&c.to>=_.to-10){let tt=a.state.sliceDoc(c.from,c.to),nt=compositionSurroundingNode(a)||a.state.doc.lineAt(_.head),it=_.to-c.to,rt=_.to-_.from;$=b.changeByRange(st=>{if(st.from==_.from&&st.to==_.to)return{changes:_e,range:et||st.map(_e)};let ot=st.to-it,at=ot-tt.length;if(st.to-st.from!=rt||a.state.sliceDoc(at,ot)!=tt||nt&&st.to>=nt.from&&st.from<=nt.to)return{range:st};let ht=b.changes({from:at,to:ot,insert:c.insert}),lt=st.to-_.to;return{changes:ht,range:et?EditorSelection.range(Math.max(0,et.anchor+lt),Math.max(0,et.head+lt)):st.map(ht)}})}else $={changes:_e,selection:et&&b.selection.replaceRange(et)}}let j="input.type";return a.composing&&(j+=".compose",a.inputState.compositionFirstChange&&(j+=".start",a.inputState.compositionFirstChange=!1)),a.dispatch($,{scrollIntoView:!0,userEvent:j}),!0}else if(d&&!d.main.eq(_)){let b=!1,k="select";return a.inputState.lastSelectionTime>Date.now()-50&&(a.inputState.lastSelectionOrigin=="select"&&(b=!0),k=a.inputState.lastSelectionOrigin),a.dispatch({selection:d,scrollIntoView:b,userEvent:k}),!0}else return!1}function findDiff(a,e,s,o){let c=Math.min(a.length,e.length),d=0;for(;d0&&b>0&&a.charCodeAt(_-1)==e.charCodeAt(b-1);)_--,b--;if(o=="end"){let k=Math.max(0,d-Math.min(_,b));s-=_+k-d}return _=_?d-s:0,b=d+(b-_),_=d):b=b?d-s:0,_=d+(_-b),b=d),{from:d,toA:_,toB:b}}function selectionPoints(a){let e=[];if(a.root.activeElement!=a.contentDOM)return e;let{anchorNode:s,anchorOffset:o,focusNode:c,focusOffset:d}=a.observer.selectionRange;return s&&(e.push(new DOMPoint(s,o)),(c!=s||d!=o)&&e.push(new DOMPoint(c,d))),e}function selectionFromPoints(a,e){if(a.length==0)return null;let s=a[0].pos,o=a.length==2?a[1].pos:s;return s>-1&&o>-1?EditorSelection.single(s+e,o+e):null}class EditorView{constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: absolute; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(s=>this.update([s])),this.dispatch=this.dispatch.bind(this),this._root=e.root||getRoot(e.parent)||document,this.viewState=new ViewState(e.state||EditorState.create(e)),this.plugins=this.state.facet(viewPlugin).map(s=>new PluginInstance(s));for(let s of this.plugins)s.update(this);this.observer=new DOMObserver(this,(s,o,c)=>applyDOMChange(this,s,o,c),s=>{this.inputState.runScrollHandlers(this,s),this.observer.intersecting&&this.measure()}),this.inputState=new InputState(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new DocView(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}dispatch(...e){this._dispatch(e.length==1&&e[0]instanceof Transaction?e[0]:this.state.update(...e))}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let s=!1,o=!1,c,d=this.state;for(let b of e){if(b.startState!=d)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");d=b.state}if(this.destroyed){this.viewState.state=d;return}if(this.observer.clear(),d.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(d);c=ViewUpdate.create(this,d,e);let _=this.viewState.scrollTarget;try{this.updateState=2;for(let b of e){if(_&&(_=_.map(b.changes)),b.scrollIntoView){let{main:k}=b.state.selection;_=new ScrollTarget(k.empty?k:EditorSelection.cursor(k.head,k.head>k.anchor?-1:1))}for(let k of b.effects)k.is(scrollIntoView$1)&&(_=k.value)}this.viewState.update(c,_),this.bidiCache=CachedOrder.update(this.bidiCache,c.changes),c.empty||(this.updatePlugins(c),this.inputState.update(c)),s=this.docView.update(c),this.state.facet(styleModule)!=this.styleModules&&this.mountStyles(),o=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(s,e.some(b=>b.isUserEvent("select.pointer")))}finally{this.updateState=0}if(c.startState.facet(theme)!=c.state.facet(theme)&&(this.viewState.mustMeasureContent=!0),(s||o||_||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!c.empty)for(let b of this.state.facet(updateListener))b(c)}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let s=this.hasFocus;try{for(let o of this.plugins)o.destroy(this);this.viewState=new ViewState(e),this.plugins=e.facet(viewPlugin).map(o=>new PluginInstance(o)),this.pluginMap.clear();for(let o of this.plugins)o.update(this);this.docView=new DocView(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}s&&this.focus(),this.requestMeasure()}updatePlugins(e){let s=e.startState.facet(viewPlugin),o=e.state.facet(viewPlugin);if(s!=o){let c=[];for(let d of o){let _=s.indexOf(d);if(_<0)c.push(new PluginInstance(d));else{let b=this.plugins[_];b.mustUpdate=e,c.push(b)}}for(let d of this.plugins)d.mustUpdate!=e&&d.destroy(this);this.plugins=c,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let c of this.plugins)c.mustUpdate=e;for(let c=0;c-1&&cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.forceFlush();let s=null,{scrollHeight:o,scrollTop:c,clientHeight:d}=this.scrollDOM,_=c>o-d-4?o:c;try{for(let b=0;;b++){this.updateState=1;let k=this.viewport,$=this.viewState.lineBlockAtHeight(_),j=this.viewState.measure(this);if(!j&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(b>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let _e=[];j&4||([this.measureRequests,_e]=[_e,this.measureRequests]);let et=_e.map(rt=>{try{return rt.read(this)}catch(st){return logException(this.state,st),BadMeasure}}),tt=ViewUpdate.create(this,this.state,[]),nt=!1,it=!1;tt.flags|=j,s?s.flags|=j:s=tt,this.updateState=2,tt.empty||(this.updatePlugins(tt),this.inputState.update(tt),this.updateAttrs(),nt=this.docView.update(tt));for(let rt=0;rt<_e.length;rt++)if(et[rt]!=BadMeasure)try{let st=_e[rt];st.write&&st.write(et[rt],this)}catch(st){logException(this.state,st)}if(this.viewState.scrollTarget)this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,it=!0;else{let rt=this.viewState.lineBlockAt($.from).top-$.top;(rt>1||rt<-1)&&(this.scrollDOM.scrollTop+=rt,it=!0)}if(nt&&this.docView.updateSelection(!0),this.viewport.from==k.from&&this.viewport.to==k.to&&!it&&this.measureRequests.length==0)break}}finally{this.updateState=0,this.measureScheduled=-1}if(s&&!s.empty)for(let b of this.state.facet(updateListener))b(s)}get themeClasses(){return baseThemeID+" "+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+" "+this.state.facet(theme)}updateAttrs(){let e=attrsFromFacet(this,editorAttributes,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),s={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(editable)?"true":"false",class:"cm-content",style:`${browser$2.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(s["aria-readonly"]="true"),attrsFromFacet(this,contentAttributes,s);let o=this.observer.ignore(()=>{let c=updateAttrs(this.contentDOM,this.contentAttrs,s),d=updateAttrs(this.dom,this.editorAttrs,e);return c||d});return this.editorAttrs=e,this.contentAttrs=s,o}showAnnouncements(e){let s=!0;for(let o of e)for(let c of o.effects)if(c.is(EditorView.announce)){s&&(this.announceDOM.textContent=""),s=!1;let d=this.announceDOM.appendChild(document.createElement("div"));d.textContent=c.value}}mountStyles(){this.styleModules=this.state.facet(styleModule),StyleModule.mount(this.root,this.styleModules.concat(baseTheme$1$3).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=requestAnimationFrame(()=>this.measure())),e){if(e.key!=null){for(let s=0;so.spec==e)||null),s&&s.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,s,o){return skipAtoms(this,e,moveByChar(this,e,s,o))}moveByGroup(e,s){return skipAtoms(this,e,moveByChar(this,e,s,o=>byGroup(this,e.head,o)))}moveToLineBoundary(e,s,o=!0){return moveToLineBoundary(this,e,s,o)}moveVertically(e,s,o){return skipAtoms(this,e,moveVertically(this,e,s,o))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,s=0){return this.docView.posFromDOM(e,s)}posAtCoords(e,s=!0){return this.readMeasured(),posAtCoords(this,e,s)}coordsAtPos(e,s=1){this.readMeasured();let o=this.docView.coordsAt(e,s);if(!o||o.left==o.right)return o;let c=this.state.doc.lineAt(e),d=this.bidiSpans(c),_=d[BidiSpan.find(d,e-c.from,-1,s)];return flattenRect(o,_.dir==Direction.LTR==s>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(perLineTextDirection)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>MaxBidiLine)return trivialOrder(e.length);let s=this.textDirectionAt(e.from);for(let c of this.bidiCache)if(c.from==e.from&&c.dir==s)return c.order;let o=computeOrder(e.text,s);return this.bidiCache.push(new CachedOrder(e.from,e.to,s,o)),o}get hasFocus(){var e;return(document.hasFocus()||browser$2.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,s={}){return scrollIntoView$1.of(new ScrollTarget(typeof e=="number"?EditorSelection.cursor(e):e,s.y,s.x,s.yMargin,s.xMargin))}static domEventHandlers(e){return ViewPlugin.define(()=>({}),{eventHandlers:e})}static theme(e,s){let o=StyleModule.newName(),c=[theme.of(o),styleModule.of(buildTheme(`.${o}`,e))];return s&&s.dark&&c.push(darkTheme.of(!0)),c}static baseTheme(e){return Prec.lowest(styleModule.of(buildTheme("."+baseThemeID,e,lightDarkIDs)))}static findFromDOM(e){var s;let o=e.querySelector(".cm-content"),c=o&&ContentView.get(o)||ContentView.get(e);return((s=c==null?void 0:c.rootView)===null||s===void 0?void 0:s.view)||null}}EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler$1;EditorView.perLineTextDirection=perLineTextDirection;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.atomicRanges=atomicRanges;EditorView.scrollMargins=scrollMargins;EditorView.darkTheme=darkTheme;EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"});EditorView.announce=StateEffect.define();const MaxBidiLine=4096,BadMeasure={};class CachedOrder{constructor(e,s,o,c){this.from=e,this.to=s,this.dir=o,this.order=c}static update(e,s){if(s.empty)return e;let o=[],c=e.length?e[e.length-1].dir:Direction.LTR;for(let d=Math.max(0,e.length-10);d=0;c--){let d=o[c],_=typeof d=="function"?d(a):d;_&&combineAttrs(_,s)}return s}const currentPlatform=browser$2.mac?"mac":browser$2.windows?"win":browser$2.linux?"linux":"key";function normalizeKeyName(a,e){const s=a.split(/-(?!$)/);let o=s[s.length-1];o=="Space"&&(o=" ");let c,d,_,b;for(let k=0;ko.concat(c),[]))),s}function runScopeHandlers(a,e,s){return runHandlers(getKeymap(a.state),e,a,s)}let storedPrefix=null;const PrefixTimeout=4e3;function buildKeymap(a,e=currentPlatform){let s=Object.create(null),o=Object.create(null),c=(_,b)=>{let k=o[_];if(k==null)o[_]=b;else if(k!=b)throw new Error("Key binding "+_+" is used both as a regular binding and as a multi-stroke prefix")},d=(_,b,k,$)=>{let j=s[_]||(s[_]=Object.create(null)),_e=b.split(/ (?!$)/).map(nt=>normalizeKeyName(nt,e));for(let nt=1;nt<_e.length;nt++){let it=_e.slice(0,nt).join(" ");c(it,!0),j[it]||(j[it]={preventDefault:!0,commands:[rt=>{let st=storedPrefix={view:rt,prefix:it,scope:_};return setTimeout(()=>{storedPrefix==st&&(storedPrefix=null)},PrefixTimeout),!0}]})}let et=_e.join(" ");c(et,!1);let tt=j[et]||(j[et]={preventDefault:!1,commands:[]});tt.commands.push(k),$&&(tt.preventDefault=!0)};for(let _ of a){let b=_[e]||_.key;if(!!b)for(let k of _.scope?_.scope.split(" "):["editor"])d(k,b,_.run,_.preventDefault),_.shift&&d(k,"Shift-"+b,_.shift,_.preventDefault)}return s}function runHandlers(a,e,s,o){let c=keyName(e),d=codePointAt(c,0),_=codePointSize(d)==c.length&&c!=" ",b="",k=!1;storedPrefix&&storedPrefix.view==s&&storedPrefix.scope==o&&(b=storedPrefix.prefix+" ",(k=modifierCodes.indexOf(e.keyCode)<0)&&(storedPrefix=null));let $=et=>{if(et){for(let tt of et.commands)if(tt(s))return!0;et.preventDefault&&(k=!0)}return!1},j=a[o],_e;if(j){if($(j[b+modifiers(c,e,!_)]))return!0;if(_&&(e.shiftKey||e.altKey||e.metaKey||d>127)&&(_e=base[e.keyCode])&&_e!=c){if($(j[b+modifiers(_e,e,!0)]))return!0;if(e.shiftKey&&shift[e.keyCode]!=_e&&$(j[b+modifiers(shift[e.keyCode],e,!1)]))return!0}else if(_&&e.shiftKey&&$(j[b+modifiers(c,e,!0)]))return!0}return k}const CanHidePrimary=!browser$2.ios,selectionConfig=Facet.define({combine(a){return combineConfig(a,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,s)=>Math.min(e,s),drawRangeCursor:(e,s)=>e||s})}});function drawSelection(a={}){return[selectionConfig.of(a),drawSelectionPlugin,hideNativeSelection]}class Piece{constructor(e,s,o,c,d){this.left=e,this.top=s,this.width=o,this.height=c,this.className=d}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width>=0&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}}const drawSelectionPlugin=ViewPlugin.fromClass(class{constructor(a){this.view=a,this.rangePieces=[],this.cursors=[],this.measureReq={read:this.readPos.bind(this),write:this.drawSel.bind(this)},this.selectionLayer=a.scrollDOM.appendChild(document.createElement("div")),this.selectionLayer.className="cm-selectionLayer",this.selectionLayer.setAttribute("aria-hidden","true"),this.cursorLayer=a.scrollDOM.appendChild(document.createElement("div")),this.cursorLayer.className="cm-cursorLayer",this.cursorLayer.setAttribute("aria-hidden","true"),a.requestMeasure(this.measureReq),this.setBlinkRate()}setBlinkRate(){this.cursorLayer.style.animationDuration=this.view.state.facet(selectionConfig).cursorBlinkRate+"ms"}update(a){let e=a.startState.facet(selectionConfig)!=a.state.facet(selectionConfig);(e||a.selectionSet||a.geometryChanged||a.viewportChanged)&&this.view.requestMeasure(this.measureReq),a.transactions.some(s=>s.scrollIntoView)&&(this.cursorLayer.style.animationName=this.cursorLayer.style.animationName=="cm-blink"?"cm-blink2":"cm-blink"),e&&this.setBlinkRate()}readPos(){let{state:a}=this.view,e=a.facet(selectionConfig),s=a.selection.ranges.map(c=>c.empty?[]:measureRange(this.view,c)).reduce((c,d)=>c.concat(d)),o=[];for(let c of a.selection.ranges){let d=c==a.selection.main;if(c.empty?!d||CanHidePrimary:e.drawRangeCursor){let _=measureCursor(this.view,c,d);_&&o.push(_)}}return{rangePieces:s,cursors:o}}drawSel({rangePieces:a,cursors:e}){if(a.length!=this.rangePieces.length||a.some((s,o)=>!s.eq(this.rangePieces[o]))){this.selectionLayer.textContent="";for(let s of a)this.selectionLayer.appendChild(s.draw());this.rangePieces=a}if(e.length!=this.cursors.length||e.some((s,o)=>!s.eq(this.cursors[o]))){let s=this.cursorLayer.children;if(s.length!==e.length){this.cursorLayer.textContent="";for(const o of e)this.cursorLayer.appendChild(o.draw())}else e.forEach((o,c)=>o.adjust(s[c]));this.cursors=e}}destroy(){this.selectionLayer.remove(),this.cursorLayer.remove()}}),themeSpec={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};CanHidePrimary&&(themeSpec[".cm-line"].caretColor="transparent !important");const hideNativeSelection=Prec.highest(EditorView.theme(themeSpec));function getBase(a){let e=a.scrollDOM.getBoundingClientRect();return{left:(a.textDirection==Direction.LTR?e.left:e.right-a.scrollDOM.clientWidth)-a.scrollDOM.scrollLeft,top:e.top-a.scrollDOM.scrollTop}}function wrappedLine(a,e,s){let o=EditorSelection.cursor(e);return{from:Math.max(s.from,a.moveToLineBoundary(o,!1,!0).from),to:Math.min(s.to,a.moveToLineBoundary(o,!0,!0).from),type:BlockType.Text}}function blockAt(a,e){let s=a.lineBlockAt(e);if(Array.isArray(s.type)){for(let o of s.type)if(o.to>e||o.to==e&&(o.to==s.to||o.type==BlockType.Text))return o}return s}function measureRange(a,e){if(e.to<=a.viewport.from||e.from>=a.viewport.to)return[];let s=Math.max(e.from,a.viewport.from),o=Math.min(e.to,a.viewport.to),c=a.textDirection==Direction.LTR,d=a.contentDOM,_=d.getBoundingClientRect(),b=getBase(a),k=window.getComputedStyle(d.firstChild),$=_.left+parseInt(k.paddingLeft)+Math.min(0,parseInt(k.textIndent)),j=_.right-parseInt(k.paddingRight),_e=blockAt(a,s),et=blockAt(a,o),tt=_e.type==BlockType.Text?_e:null,nt=et.type==BlockType.Text?et:null;if(a.lineWrapping&&(tt&&(tt=wrappedLine(a,s,tt)),nt&&(nt=wrappedLine(a,o,nt))),tt&&nt&&tt.from==nt.from)return rt(st(e.from,e.to,tt));{let at=tt?st(e.from,null,tt):ot(_e,!1),ht=nt?st(null,e.to,nt):ot(et,!0),lt=[];return(tt||_e).to<(nt||et).from-1?lt.push(it($,at.bottom,j,ht.top)):at.bottomEt&>.from=pt)break;vt>St&&ft(Math.max(Ot,St),at==null&&Ot<=Et,Math.min(vt,pt),ht==null&&vt>=yt,At.dir)}if(St=mt.to+1,St>=pt)break}return dt.length==0&&ft(Et,at==null,yt,ht==null,a.textDirection),{top:ut,bottom:ct,horizontal:dt}}function ot(at,ht){let lt=_.top+(ht?at.top:at.bottom);return{top:lt,bottom:lt,horizontal:[]}}}function measureCursor(a,e,s){let o=a.coordsAtPos(e.head,e.assoc||1);if(!o)return null;let c=getBase(a);return new Piece(o.left-c.left,o.top-c.top,-1,o.bottom-o.top,s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary")}const setDropCursorPos=StateEffect.define({map(a,e){return a==null?null:e.mapPos(a)}}),dropCursorPos=StateField.define({create(){return null},update(a,e){return a!=null&&(a=e.changes.mapPos(a)),e.effects.reduce((s,o)=>o.is(setDropCursorPos)?o.value:s,a)}}),drawDropCursor=ViewPlugin.fromClass(class{constructor(a){this.view=a,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(a){var e;let s=a.state.field(dropCursorPos);s==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(a.startState.field(dropCursorPos)!=s||a.docChanged||a.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let a=this.view.state.field(dropCursorPos),e=a!=null&&this.view.coordsAtPos(a);if(!e)return null;let s=this.view.scrollDOM.getBoundingClientRect();return{left:e.left-s.left+this.view.scrollDOM.scrollLeft,top:e.top-s.top+this.view.scrollDOM.scrollTop,height:e.bottom-e.top}}drawCursor(a){this.cursor&&(a?(this.cursor.style.left=a.left+"px",this.cursor.style.top=a.top+"px",this.cursor.style.height=a.height+"px"):this.cursor.style.left="-100000px")}destroy(){this.cursor&&this.cursor.remove()}setDropPos(a){this.view.state.field(dropCursorPos)!=a&&this.view.dispatch({effects:setDropCursorPos.of(a)})}},{eventHandlers:{dragover(a){this.setDropPos(this.view.posAtCoords({x:a.clientX,y:a.clientY}))},dragleave(a){(a.target==this.view.contentDOM||!this.view.contentDOM.contains(a.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function dropCursor(){return[dropCursorPos,drawDropCursor]}function iterMatches(a,e,s,o,c){e.lastIndex=0;for(let d=a.iterRange(s,o),_=s,b;!d.next().done;_+=d.value.length)if(!d.lineBreak)for(;b=e.exec(d.value);)c(_+b.index,b)}function matchRanges(a,e){let s=a.visibleRanges;if(s.length==1&&s[0].from==a.viewport.from&&s[0].to==a.viewport.to)return s;let o=[];for(let{from:c,to:d}of s)c=Math.max(a.state.doc.lineAt(c).from,c-e),d=Math.min(a.state.doc.lineAt(d).to,d+e),o.length&&o[o.length-1].to>=c?o[o.length-1].to=d:o.push({from:c,to:d});return o}class MatchDecorator{constructor(e){const{regexp:s,decoration:o,decorate:c,boundary:d,maxLength:_=1e3}=e;if(!s.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=s,c)this.addMatch=(b,k,$,j)=>c(j,$,$+b[0].length,b,k);else if(o){let b=typeof o=="function"?o:()=>o;this.addMatch=(k,$,j,_e)=>_e(j,j+k[0].length,b(k,$,j))}else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=d,this.maxLength=_}createDeco(e){let s=new RangeSetBuilder,o=s.add.bind(s);for(let{from:c,to:d}of matchRanges(e,this.maxLength))iterMatches(e.state.doc,this.regexp,c,d,(_,b)=>this.addMatch(b,e,_,o));return s.finish()}updateDeco(e,s){let o=1e9,c=-1;return e.docChanged&&e.changes.iterChanges((d,_,b,k)=>{k>e.view.viewport.from&&b1e3?this.createDeco(e.view):c>-1?this.updateRange(e.view,s.map(e.changes),o,c):s}updateRange(e,s,o,c){for(let d of e.visibleRanges){let _=Math.max(d.from,o),b=Math.min(d.to,c);if(b>_){let k=e.state.doc.lineAt(_),$=k.tok.from;_--)if(this.boundary.test(k.text[_-1-k.from])){j=_;break}for(;b<$.to;b++)if(this.boundary.test($.text[b-$.from])){_e=b;break}}let et=[],tt,nt=(it,rt,st)=>et.push(st.range(it,rt));if(k==$)for(this.regexp.lastIndex=j-k.from;(tt=this.regexp.exec(k.text))&&tt.index<_e-k.from;)this.addMatch(tt,e,tt.index+k.from,nt);else iterMatches(e.state.doc,this.regexp,j,_e,(it,rt)=>this.addMatch(rt,e,it,nt));s=s.update({filterFrom:j,filterTo:_e,filter:(it,rt)=>it_e,add:et})}}return s}}const UnicodeRegexpSupport=/x/.unicode!=null?"gu":"g",Specials=new RegExp(`[\0-\b +-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,UnicodeRegexpSupport),Names={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let _supportsTabSize=null;function supportsTabSize(){var a;if(_supportsTabSize==null&&typeof document!="undefined"&&document.body){let e=document.body.style;_supportsTabSize=((a=e.tabSize)!==null&&a!==void 0?a:e.MozTabSize)!=null}return _supportsTabSize||!1}const specialCharConfig=Facet.define({combine(a){let e=combineConfig(a,{render:null,specialChars:Specials,addSpecialChars:null});return(e.replaceTabs=!supportsTabSize())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,UnicodeRegexpSupport)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,UnicodeRegexpSupport)),e}});function highlightSpecialChars(a={}){return[specialCharConfig.of(a),specialCharPlugin()]}let _plugin=null;function specialCharPlugin(){return _plugin||(_plugin=ViewPlugin.fromClass(class{constructor(a){this.view=a,this.decorations=Decoration.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(a.state.facet(specialCharConfig)),this.decorations=this.decorator.createDeco(a)}makeDecorator(a){return new MatchDecorator({regexp:a.specialChars,decoration:(e,s,o)=>{let{doc:c}=s.state,d=codePointAt(e[0],0);if(d==9){let _=c.lineAt(o),b=s.state.tabSize,k=countColumn(_.text,b,o-_.from);return Decoration.replace({widget:new TabWidget((b-k%b)*this.view.defaultCharacterWidth)})}return this.decorationCache[d]||(this.decorationCache[d]=Decoration.replace({widget:new SpecialCharWidget(a,d)}))},boundary:a.replaceTabs?void 0:/[^]/})}update(a){let e=a.state.facet(specialCharConfig);a.startState.facet(specialCharConfig)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(a.view)):this.decorations=this.decorator.updateDeco(a,this.decorations)}},{decorations:a=>a.decorations}))}const DefaultPlaceholder="\u2022";function placeholder$1(a){return a>=32?DefaultPlaceholder:a==10?"\u2424":String.fromCharCode(9216+a)}class SpecialCharWidget extends WidgetType{constructor(e,s){super(),this.options=e,this.code=s}eq(e){return e.code==this.code}toDOM(e){let s=placeholder$1(this.code),o=e.state.phrase("Control character")+" "+(Names[this.code]||"0x"+this.code.toString(16)),c=this.options.render&&this.options.render(this.code,o,s);if(c)return c;let d=document.createElement("span");return d.textContent=s,d.title=o,d.setAttribute("aria-label",o),d.className="cm-specialChar",d}ignoreEvent(){return!1}}class TabWidget extends WidgetType{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function highlightActiveLine(){return activeLineHighlighter}const lineDeco=Decoration.line({class:"cm-activeLine"}),activeLineHighlighter=ViewPlugin.fromClass(class{constructor(a){this.decorations=this.getDeco(a)}update(a){(a.docChanged||a.selectionSet)&&(this.decorations=this.getDeco(a.view))}getDeco(a){let e=-1,s=[];for(let o of a.state.selection.ranges){if(!o.empty)return Decoration.none;let c=a.lineBlockAt(o.head);c.from>e&&(s.push(lineDeco.range(c.from)),e=c.from)}return Decoration.set(s)}},{decorations:a=>a.decorations});class Placeholder extends WidgetType{constructor(e){super(),this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):this.content),typeof this.content=="string"?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}ignoreEvent(){return!1}}function placeholder(a){return ViewPlugin.fromClass(class{constructor(e){this.view=e,this.placeholder=Decoration.set([Decoration.widget({widget:new Placeholder(a),side:1}).range(0)])}get decorations(){return this.view.state.doc.length?Decoration.none:this.placeholder}},{decorations:e=>e.decorations})}const MaxOff=2e3;function rectangleFor(a,e,s){let o=Math.min(e.line,s.line),c=Math.max(e.line,s.line),d=[];if(e.off>MaxOff||s.off>MaxOff||e.col<0||s.col<0){let _=Math.min(e.off,s.off),b=Math.max(e.off,s.off);for(let k=o;k<=c;k++){let $=a.doc.line(k);$.length<=b&&d.push(EditorSelection.range($.from+_,$.to+b))}}else{let _=Math.min(e.col,s.col),b=Math.max(e.col,s.col);for(let k=o;k<=c;k++){let $=a.doc.line(k),j=findColumn($.text,_,a.tabSize,!0);if(j>-1){let _e=findColumn($.text,b,a.tabSize);d.push(EditorSelection.range($.from+j,$.from+_e))}}}return d}function absoluteColumn(a,e){let s=a.coordsAtPos(a.viewport.from);return s?Math.round(Math.abs((s.left-e)/a.defaultCharacterWidth)):-1}function getPos(a,e){let s=a.posAtCoords({x:e.clientX,y:e.clientY},!1),o=a.state.doc.lineAt(s),c=s-o.from,d=c>MaxOff?-1:c==o.length?absoluteColumn(a,e.clientX):countColumn(o.text,a.state.tabSize,s-o.from);return{line:o.number,col:d,off:c}}function rectangleSelectionStyle(a,e){let s=getPos(a,e),o=a.state.selection;return s?{update(c){if(c.docChanged){let d=c.changes.mapPos(c.startState.doc.line(s.line).from),_=c.state.doc.lineAt(d);s={line:_.number,col:s.col,off:Math.min(s.off,_.length)},o=o.map(c.changes)}},get(c,d,_){let b=getPos(a,c);if(!b)return o;let k=rectangleFor(a.state,s,b);return k.length?_?EditorSelection.create(k.concat(o.ranges)):EditorSelection.create(k):o}}:null}function rectangularSelection(a){let e=(a==null?void 0:a.eventFilter)||(s=>s.altKey&&s.button==0);return EditorView.mouseSelectionStyle.of((s,o)=>e(o)?rectangleSelectionStyle(s,o):null)}const keys={Alt:[18,a=>a.altKey],Control:[17,a=>a.ctrlKey],Shift:[16,a=>a.shiftKey],Meta:[91,a=>a.metaKey]},showCrosshair={style:"cursor: crosshair"};function crosshairCursor(a={}){let[e,s]=keys[a.key||"Alt"],o=ViewPlugin.fromClass(class{constructor(c){this.view=c,this.isDown=!1}set(c){this.isDown!=c&&(this.isDown=c,this.view.update([]))}},{eventHandlers:{keydown(c){this.set(c.keyCode==e||s(c))},keyup(c){(c.keyCode==e||!s(c))&&this.set(!1)}}});return[o,EditorView.contentAttributes.of(c=>{var d;return!((d=c.plugin(o))===null||d===void 0)&&d.isDown?showCrosshair:null})]}const Outside="-10000px";class TooltipViewManager{constructor(e,s,o){this.facet=s,this.createTooltipView=o,this.input=e.state.facet(s),this.tooltips=this.input.filter(c=>c),this.tooltipViews=this.tooltips.map(o)}update(e){let s=e.state.facet(this.facet),o=s.filter(d=>d);if(s===this.input){for(let d of this.tooltipViews)d.update&&d.update(e);return!1}let c=[];for(let d=0;d{var e,s,o;return{position:browser$2.ios?"absolute":((e=a.find(c=>c.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((s=a.find(c=>c.parent))===null||s===void 0?void 0:s.parent)||null,tooltipSpace:((o=a.find(c=>c.tooltipSpace))===null||o===void 0?void 0:o.tooltipSpace)||windowSpace}}}),tooltipPlugin=ViewPlugin.fromClass(class{constructor(a){var e;this.view=a,this.inView=!0,this.lastTransaction=0,this.measureTimeout=-1;let s=a.state.facet(tooltipConfig);this.position=s.position,this.parent=s.parent,this.classes=a.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new TooltipViewManager(a,showTooltip,o=>this.createTooltip(o)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(o=>{Date.now()>this.lastTransaction-50&&o.length>0&&o[o.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),(e=a.dom.ownerDocument.defaultView)===null||e===void 0||e.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let a of this.manager.tooltipViews)this.intersectionObserver.observe(a.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(a){a.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(a);e&&this.observeIntersection();let s=e||a.geometryChanged,o=a.state.facet(tooltipConfig);if(o.position!=this.position){this.position=o.position;for(let c of this.manager.tooltipViews)c.dom.style.position=this.position;s=!0}if(o.parent!=this.parent){this.parent&&this.container.remove(),this.parent=o.parent,this.createContainer();for(let c of this.manager.tooltipViews)this.container.appendChild(c.dom);s=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);s&&this.maybeMeasure()}createTooltip(a){let e=a.create(this.view);if(e.dom.classList.add("cm-tooltip"),a.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",e.dom.appendChild(s)}return e.dom.style.position=this.position,e.dom.style.top=Outside,this.container.appendChild(e.dom),e.mount&&e.mount(this.view),e}destroy(){var a,e;(a=this.view.dom.ownerDocument.defaultView)===null||a===void 0||a.removeEventListener("resize",this.measureSoon);for(let{dom:s}of this.manager.tooltipViews)s.remove();(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let a=this.view.dom.getBoundingClientRect();return{editor:a,parent:this.parent?this.container.getBoundingClientRect():a,pos:this.manager.tooltips.map((e,s)=>{let o=this.manager.tooltipViews[s];return o.getCoords?o.getCoords(e.pos):this.view.coordsAtPos(e.pos)}),size:this.manager.tooltipViews.map(({dom:e})=>e.getBoundingClientRect()),space:this.view.state.facet(tooltipConfig).tooltipSpace(this.view)}}writeMeasure(a){let{editor:e,space:s}=a,o=[];for(let c=0;c=Math.min(e.bottom,s.bottom)||k.rightMath.min(e.right,s.right)+.1){b.style.top=Outside;continue}let j=d.arrow?_.dom.querySelector(".cm-tooltip-arrow"):null,_e=j?7:0,et=$.right-$.left,tt=$.bottom-$.top,nt=_.offset||noOffset,it=this.view.textDirection==Direction.LTR,rt=$.width>s.right-s.left?it?s.left:s.right-$.width:it?Math.min(k.left-(j?14:0)+nt.x,s.right-et):Math.max(s.left,k.left-et+(j?14:0)-nt.x),st=!!d.above;!d.strictSide&&(st?k.top-($.bottom-$.top)-nt.ys.bottom)&&st==s.bottom-k.bottom>k.top-s.top&&(st=!st);let ot=st?k.top-tt-_e-nt.y:k.bottom+_e+nt.y,at=rt+et;if(_.overlap!==!0)for(let ht of o)ht.leftrt&&ht.topot&&(ot=st?ht.top-tt-2-_e:ht.bottom+_e+2);this.position=="absolute"?(b.style.top=ot-a.parent.top+"px",b.style.left=rt-a.parent.left+"px"):(b.style.top=ot+"px",b.style.left=rt+"px"),j&&(j.style.left=`${k.left+(it?nt.x:-nt.x)-(rt+14-7)}px`),_.overlap!==!0&&o.push({left:rt,top:ot,right:at,bottom:ot+tt}),b.classList.toggle("cm-tooltip-above",st),b.classList.toggle("cm-tooltip-below",!st),_.positioned&&_.positioned()}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let a of this.manager.tooltipViews)a.dom.style.top=Outside}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),baseTheme$4=EditorView.baseTheme({".cm-tooltip":{zIndex:100},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:`${7}px`,width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},".cm-tooltip-above &":{bottom:`-${7}px`,"&:before":{borderTop:`${7}px solid #bbb`},"&:after":{borderTop:`${7}px solid #f5f5f5`,bottom:"1px"}},".cm-tooltip-below &":{top:`-${7}px`,"&:before":{borderBottom:`${7}px solid #bbb`},"&:after":{borderBottom:`${7}px solid #f5f5f5`,top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),noOffset={x:0,y:0},showTooltip=Facet.define({enables:[tooltipPlugin,baseTheme$4]}),showHoverTooltip=Facet.define();class HoverTooltipHost{constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new TooltipViewManager(e,showHoverTooltip,s=>this.createHostedView(s))}static create(e){return new HoverTooltipHost(e)}createHostedView(e){let s=e.create(this.view);return s.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(s.dom),this.mounted&&s.mount&&s.mount(this.view),s}mount(e){for(let s of this.manager.tooltipViews)s.mount&&s.mount(e);this.mounted=!0}positioned(){for(let e of this.manager.tooltipViews)e.positioned&&e.positioned()}update(e){this.manager.update(e)}}const showHoverTooltipHost=showTooltip.compute([showHoverTooltip],a=>{let e=a.facet(showHoverTooltip).filter(s=>s);return e.length===0?null:{pos:Math.min(...e.map(s=>s.pos)),end:Math.max(...e.filter(s=>s.end!=null).map(s=>s.end)),create:HoverTooltipHost.create,above:e[0].above,arrow:e.some(s=>s.arrow)}});class HoverPlugin{constructor(e,s,o,c,d){this.view=e,this.source=s,this.field=o,this.setHover=c,this.hoverTime=d,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active)return;let e=Date.now()-this.lastMove.time;eo.bottom||e.xo.right+this.view.defaultCharacterWidth)return;let c=this.view.bidiSpans(this.view.state.doc.lineAt(s)).find(b=>b.from<=s&&b.to>=s),d=c&&c.dir==Direction.RTL?-1:1,_=this.source(this.view,s,e.x{this.pending==b&&(this.pending=null,k&&this.view.dispatch({effects:this.setHover.of(k)}))},k=>logException(this.view.state,k,"hover tooltip"))}else _&&this.view.dispatch({effects:this.setHover.of(_)})}mousemove(e){var s;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let o=this.active;if(o&&!isInTooltip(this.lastMove.target)||this.pending){let{pos:c}=o||this.pending,d=(s=o==null?void 0:o.end)!==null&&s!==void 0?s:c;(c==d?this.view.posAtCoords(this.lastMove)!=c:!isOverRange(this.view,c,d,e.clientX,e.clientY,6))&&(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&this.view.dispatch({effects:this.setHover.of(null)})}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}function isInTooltip(a){for(let e=a;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains("cm-tooltip"))return!0;return!1}function isOverRange(a,e,s,o,c,d){let _=document.createRange(),b=a.domAtPos(e),k=a.domAtPos(s);_.setEnd(k.node,k.offset),_.setStart(b.node,b.offset);let $=_.getClientRects();_.detach();for(let j=0;j<$.length;j++){let _e=$[j];if(Math.max(_e.top-c,c-_e.bottom,_e.left-o,o-_e.right)<=d)return!0}return!1}function hoverTooltip(a,e={}){let s=StateEffect.define(),o=StateField.define({create(){return null},update(c,d){if(c&&(e.hideOnChange&&(d.docChanged||d.selection)||e.hideOn&&e.hideOn(d,c)))return null;if(c&&d.docChanged){let _=d.changes.mapPos(c.pos,-1,MapMode.TrackDel);if(_==null)return null;let b=Object.assign(Object.create(null),c);b.pos=_,c.end!=null&&(b.end=d.changes.mapPos(c.end)),c=b}for(let _ of d.effects)_.is(s)&&(c=_.value),_.is(closeHoverTooltipEffect)&&(c=null);return c},provide:c=>showHoverTooltip.from(c)});return[o,ViewPlugin.define(c=>new HoverPlugin(c,a,o,s,e.hoverTime||300)),showHoverTooltipHost]}function getTooltip(a,e){let s=a.plugin(tooltipPlugin);if(!s)return null;let o=s.manager.tooltips.indexOf(e);return o<0?null:s.manager.tooltipViews[o]}const closeHoverTooltipEffect=StateEffect.define(),panelConfig=Facet.define({combine(a){let e,s;for(let o of a)e=e||o.topContainer,s=s||o.bottomContainer;return{topContainer:e,bottomContainer:s}}});function getPanel(a,e){let s=a.plugin(panelPlugin),o=s?s.specs.indexOf(e):-1;return o>-1?s.panels[o]:null}const panelPlugin=ViewPlugin.fromClass(class{constructor(a){this.input=a.state.facet(showPanel),this.specs=this.input.filter(s=>s),this.panels=this.specs.map(s=>s(a));let e=a.state.facet(panelConfig);this.top=new PanelGroup(a,!0,e.topContainer),this.bottom=new PanelGroup(a,!1,e.bottomContainer),this.top.sync(this.panels.filter(s=>s.top)),this.bottom.sync(this.panels.filter(s=>!s.top));for(let s of this.panels)s.dom.classList.add("cm-panel"),s.mount&&s.mount()}update(a){let e=a.state.facet(panelConfig);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new PanelGroup(a.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new PanelGroup(a.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let s=a.state.facet(showPanel);if(s!=this.input){let o=s.filter(k=>k),c=[],d=[],_=[],b=[];for(let k of o){let $=this.specs.indexOf(k),j;$<0?(j=k(a.view),b.push(j)):(j=this.panels[$],j.update&&j.update(a)),c.push(j),(j.top?d:_).push(j)}this.specs=o,this.panels=c,this.top.sync(d),this.bottom.sync(_);for(let k of b)k.dom.classList.add("cm-panel"),k.mount&&k.mount()}else for(let o of this.panels)o.update&&o.update(a)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:a=>EditorView.scrollMargins.of(e=>{let s=e.plugin(a);return s&&{top:s.top.scrollMargin(),bottom:s.bottom.scrollMargin()}})});class PanelGroup{constructor(e,s,o){this.view=e,this.top=s,this.container=o,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let s of this.panels)s.destroy&&e.indexOf(s)<0&&s.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let s=this.container||this.view.dom;s.insertBefore(this.dom,this.top?s.firstChild:null)}let e=this.dom.firstChild;for(let s of this.panels)if(s.dom.parentNode==this.dom){for(;e!=s.dom;)e=rm(e);e=e.nextSibling}else this.dom.insertBefore(s.dom,e);for(;e;)e=rm(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function rm(a){let e=a.nextSibling;return a.remove(),e}const showPanel=Facet.define({enables:panelPlugin});class GutterMarker extends RangeValue{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}GutterMarker.prototype.elementClass="";GutterMarker.prototype.toDOM=void 0;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=!0;const gutterLineClass=Facet.define(),defaults$1={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>RangeSet.empty,lineMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},activeGutters=Facet.define();function gutter(a){return[gutters(),activeGutters.of(Object.assign(Object.assign({},defaults$1),a))]}const unfixGutters=Facet.define({combine:a=>a.some(e=>e)});function gutters(a){let e=[gutterView];return a&&a.fixed===!1&&e.push(unfixGutters.of(!0)),e}const gutterView=ViewPlugin.fromClass(class{constructor(a){this.view=a,this.prevViewport=a.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight+"px",this.gutters=a.state.facet(activeGutters).map(e=>new SingleGutterView(a,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!a.state.facet(unfixGutters),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),a.scrollDOM.insertBefore(this.dom,a.contentDOM)}update(a){if(this.updateGutters(a)){let e=this.prevViewport,s=a.view.viewport,o=Math.min(e.to,s.to)-Math.max(e.from,s.from);this.syncGutters(o<(s.to-s.from)*.8)}a.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(unfixGutters)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=a.view.viewport}syncGutters(a){let e=this.dom.nextSibling;a&&this.dom.remove();let s=RangeSet.iter(this.view.state.facet(gutterLineClass),this.view.viewport.from),o=[],c=this.gutters.map(d=>new UpdateContext(d,this.view.viewport,-this.view.documentPadding.top));for(let d of this.view.viewportLineBlocks){let _;if(Array.isArray(d.type)){for(let b of d.type)if(b.type==BlockType.Text){_=b;break}}else _=d.type==BlockType.Text?d:void 0;if(!!_){o.length&&(o=[]),advanceCursor(s,o,d.from);for(let b of c)b.line(this.view,_,o)}}for(let d of c)d.finish();a&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(a){let e=a.startState.facet(activeGutters),s=a.state.facet(activeGutters),o=a.docChanged||a.heightChanged||a.viewportChanged||!RangeSet.eq(a.startState.facet(gutterLineClass),a.state.facet(gutterLineClass),a.view.viewport.from,a.view.viewport.to);if(e==s)for(let c of this.gutters)c.update(a)&&(o=!0);else{o=!0;let c=[];for(let d of s){let _=e.indexOf(d);_<0?c.push(new SingleGutterView(this.view,d)):(this.gutters[_].update(a),c.push(this.gutters[_]))}for(let d of this.gutters)d.dom.remove(),c.indexOf(d)<0&&d.destroy();for(let d of c)this.dom.appendChild(d.dom);this.gutters=c}return o}destroy(){for(let a of this.gutters)a.destroy();this.dom.remove()}},{provide:a=>EditorView.scrollMargins.of(e=>{let s=e.plugin(a);return!s||s.gutters.length==0||!s.fixed?null:e.textDirection==Direction.LTR?{left:s.dom.offsetWidth}:{right:s.dom.offsetWidth}})});function asArray(a){return Array.isArray(a)?a:[a]}function advanceCursor(a,e,s){for(;a.value&&a.from<=s;)a.from==s&&e.push(a.value),a.next()}class UpdateContext{constructor(e,s,o){this.gutter=e,this.height=o,this.localMarkers=[],this.i=0,this.cursor=RangeSet.iter(e.markers,s.from)}line(e,s,o){this.localMarkers.length&&(this.localMarkers=[]),advanceCursor(this.cursor,this.localMarkers,s.from);let c=o.length?this.localMarkers.concat(o):this.localMarkers,d=this.gutter.config.lineMarker(e,s,c);d&&c.unshift(d);let _=this.gutter;if(c.length==0&&!_.config.renderEmptyElements)return;let b=s.top-this.height;if(this.i==_.elements.length){let k=new GutterElement(e,s.height,b,c);_.elements.push(k),_.dom.appendChild(k.dom)}else _.elements[this.i].update(e,s.height,b,c);this.height=s.bottom,this.i++}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let s=e.elements.pop();e.dom.removeChild(s.dom),s.destroy()}}}class SingleGutterView{constructor(e,s){this.view=e,this.config=s,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let o in s.domEventHandlers)this.dom.addEventListener(o,c=>{let d=e.lineBlockAtHeight(c.clientY-e.documentTop);s.domEventHandlers[o](e,d,c)&&c.preventDefault()});this.markers=asArray(s.markers(e)),s.initialSpacer&&(this.spacer=new GutterElement(e,0,0,[s.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let s=this.markers;if(this.markers=asArray(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let c=this.config.updateSpacer(this.spacer.markers[0],e);c!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[c])}let o=e.view.viewport;return!RangeSet.eq(this.markers,s,o.from,o.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class GutterElement{constructor(e,s,o,c){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,s,o,c)}update(e,s,o,c){this.height!=s&&(this.dom.style.height=(this.height=s)+"px"),this.above!=o&&(this.dom.style.marginTop=(this.above=o)?o+"px":""),sameMarkers(this.markers,c)||this.setMarkers(e,c)}setMarkers(e,s){let o="cm-gutterElement",c=this.dom.firstChild;for(let d=0,_=0;;){let b=_,k=dd(b,k,$)||_(b,k,$):_}return o}})}});class NumberMarker extends GutterMarker{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function formatNumber(a,e){return a.state.facet(lineNumberConfig).formatNumber(e,a.state)}const lineNumberGutter=activeGutters.compute([lineNumberConfig],a=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(lineNumberMarkers)},lineMarker(e,s,o){return o.some(c=>c.toDOM)?null:new NumberMarker(formatNumber(e,e.state.doc.lineAt(s.from).number))},lineMarkerChange:e=>e.startState.facet(lineNumberConfig)!=e.state.facet(lineNumberConfig),initialSpacer(e){return new NumberMarker(formatNumber(e,maxLineNumber(e.state.doc.lines)))},updateSpacer(e,s){let o=formatNumber(s.view,maxLineNumber(s.view.state.doc.lines));return o==e.number?e:new NumberMarker(o)},domEventHandlers:a.facet(lineNumberConfig).domEventHandlers}));function lineNumbers(a={}){return[lineNumberConfig.of(a),gutters(),lineNumberGutter]}function maxLineNumber(a){let e=9;for(;e{let e=[],s=-1;for(let o of a.selection.ranges)if(o.empty){let c=a.doc.lineAt(o.head).from;c>s&&(s=c,e.push(activeLineGutterMarker.range(c)))}return RangeSet.of(e)});function highlightActiveLineGutter(){return activeLineGutterHighlighter}const DefaultBufferLength=1024;let nextPropID=0;class Range{constructor(e,s){this.from=e,this.to=s}}class NodeProp{constructor(e={}){this.id=nextPropID++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=NodeType.match(e)),s=>{let o=e(s);return o===void 0?null:[this,o]}}}NodeProp.closedBy=new NodeProp({deserialize:a=>a.split(" ")});NodeProp.openedBy=new NodeProp({deserialize:a=>a.split(" ")});NodeProp.group=new NodeProp({deserialize:a=>a.split(" ")});NodeProp.contextHash=new NodeProp({perNode:!0});NodeProp.lookAhead=new NodeProp({perNode:!0});NodeProp.mounted=new NodeProp({perNode:!0});const noProps=Object.create(null);class NodeType{constructor(e,s,o,c=0){this.name=e,this.props=s,this.id=o,this.flags=c}static define(e){let s=e.props&&e.props.length?Object.create(null):noProps,o=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),c=new NodeType(e.name||"",s,e.id,o);if(e.props){for(let d of e.props)if(Array.isArray(d)||(d=d(c)),d){if(d[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");s[d[0].id]=d[1]}}return c}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let s=this.prop(NodeProp.group);return s?s.indexOf(e)>-1:!1}return this.id==e}static match(e){let s=Object.create(null);for(let o in e)for(let c of o.split(" "))s[c]=e[o];return o=>{for(let c=o.prop(NodeProp.group),d=-1;d<(c?c.length:0);d++){let _=s[d<0?o.name:c[d]];if(_)return _}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(e){this.types=e;for(let s=0;s=c&&(_.type.isAnonymous||s(_)!==!1)){if(_.firstChild())continue;b=!0}for(;b&&o&&!_.type.isAnonymous&&o(_),!_.nextSibling();){if(!_.parent())return;b=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let s in this.props)e.push([+s,this.props[s]]);return e}balance(e={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(s,o,c)=>new Tree(this.type,s,o,c,this.propValues),e.makeTree||((s,o,c)=>new Tree(NodeType.none,s,o,c)))}static build(e){return buildTree(e)}}Tree.empty=new Tree(NodeType.none,[],[],0);class FlatBufferCursor{constructor(e,s){this.buffer=e,this.index=s}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new FlatBufferCursor(this.buffer,this.index)}}class TreeBuffer{constructor(e,s,o){this.buffer=e,this.length=s,this.set=o}get type(){return NodeType.none}toString(){let e=[];for(let s=0;s0));k=_[k+3]);return b}slice(e,s,o,c){let d=this.buffer,_=new Uint16Array(s-e);for(let b=e,k=0;b=e&&se;case 1:return s<=e&&o>e;case 2:return o>e;case 4:return!0}}function enterUnfinishedNodesBefore(a,e){let s=a.childBefore(e);for(;s;){let o=s.lastChild;if(!o||o.to!=s.to)break;o.type.isError&&o.from==o.to?(a=s,s=o.prevSibling):s=o}return a}function resolveNode(a,e,s,o){for(var c;a.from==a.to||(s<1?a.from>=e:a.from>e)||(s>-1?a.to<=e:a.to0?b.length:-1;e!=$;e+=s){let j=b[e],_e=k[e]+_.from;if(!!checkSide(c,o,_e,_e+j.length)){if(j instanceof TreeBuffer){if(d&IterMode.ExcludeBuffers)continue;let et=j.findChild(0,j.buffer.length,s,o-_e,c);if(et>-1)return new BufferNode(new BufferContext(_,j,e,_e),null,et)}else if(d&IterMode.IncludeAnonymous||!j.type.isAnonymous||hasChild(j)){let et;if(!(d&IterMode.IgnoreMounts)&&j.props&&(et=j.prop(NodeProp.mounted))&&!et.overlay)return new TreeNode(et.tree,_e,e,_);let tt=new TreeNode(j,_e,e,_);return d&IterMode.IncludeAnonymous||!tt.type.isAnonymous?tt:tt.nextChild(s<0?j.children.length-1:0,s,o,c)}}}if(d&IterMode.IncludeAnonymous||!_.type.isAnonymous||(_.index>=0?e=_.index+s:e=s<0?-1:_._parent._tree.children.length,_=_._parent,!_))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,s,o=0){let c;if(!(o&IterMode.IgnoreOverlays)&&(c=this._tree.prop(NodeProp.mounted))&&c.overlay){let d=e-this.from;for(let{from:_,to:b}of c.overlay)if((s>0?_<=d:_=d:b>d))return new TreeNode(c.tree,c.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,s,o)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new TreeCursor(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,s=0){return resolveNode(this,e,s,!1)}resolveInner(e,s=0){return resolveNode(this,e,s,!0)}enterUnfinishedNodesBefore(e){return enterUnfinishedNodesBefore(this,e)}getChild(e,s=null,o=null){let c=getChildren(this,e,s,o);return c.length?c[0]:null}getChildren(e,s=null,o=null){return getChildren(this,e,s,o)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return matchNodeContext(this,e)}}function getChildren(a,e,s,o){let c=a.cursor(),d=[];if(!c.firstChild())return d;if(s!=null){for(;!c.type.is(s);)if(!c.nextSibling())return d}for(;;){if(o!=null&&c.type.is(o))return d;if(c.type.is(e)&&d.push(c.node),!c.nextSibling())return o==null?d:[]}}function matchNodeContext(a,e,s=e.length-1){for(let o=a.parent;s>=0;o=o.parent){if(!o)return!1;if(!o.type.isAnonymous){if(e[s]&&e[s]!=o.name)return!1;s--}}return!0}class BufferContext{constructor(e,s,o,c){this.parent=e,this.buffer=s,this.index=o,this.start=c}}class BufferNode{constructor(e,s,o){this.context=e,this._parent=s,this.index=o,this.type=e.buffer.set.types[e.buffer.buffer[o]]}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}child(e,s,o){let{buffer:c}=this.context,d=c.findChild(this.index+4,c.buffer[this.index+3],e,s-this.context.start,o);return d<0?null:new BufferNode(this.context,this,d)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,s,o=0){if(o&IterMode.ExcludeBuffers)return null;let{buffer:c}=this.context,d=c.findChild(this.index+4,c.buffer[this.index+3],s>0?1:-1,e-this.context.start,s);return d<0?null:new BufferNode(this.context,this,d)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,s=e.buffer[this.index+3];return s<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new BufferNode(this.context,this._parent,s):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,s=this._parent?this._parent.index+4:0;return this.index==s?this.externalSibling(-1):new BufferNode(this.context,this._parent,e.findChild(s,this.index,-1,0,4))}cursor(e=0){return new TreeCursor(this,e)}get tree(){return null}toTree(){let e=[],s=[],{buffer:o}=this.context,c=this.index+4,d=o.buffer[this.index+3];if(d>c){let _=o.buffer[this.index+1],b=o.buffer[this.index+2];e.push(o.slice(c,d,_,b)),s.push(0)}return new Tree(this.type,e,s,this.to-this.from)}resolve(e,s=0){return resolveNode(this,e,s,!1)}resolveInner(e,s=0){return resolveNode(this,e,s,!0)}enterUnfinishedNodesBefore(e){return enterUnfinishedNodesBefore(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,s=null,o=null){let c=getChildren(this,e,s,o);return c.length?c[0]:null}getChildren(e,s=null,o=null){return getChildren(this,e,s,o)}get node(){return this}matchContext(e){return matchNodeContext(this,e)}}class TreeCursor{constructor(e,s=0){if(this.mode=s,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof TreeNode)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let o=e._parent;o;o=o._parent)this.stack.unshift(o.index);this.bufferNode=e,this.yieldBuf(e.index)}}get name(){return this.type.name}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,s){this.index=e;let{start:o,buffer:c}=this.buffer;return this.type=s||c.set.types[c.buffer[e]],this.from=o+c.buffer[e+1],this.to=o+c.buffer[e+2],!0}yield(e){return e?e instanceof TreeNode?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,s,o){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,s,o,this.mode));let{buffer:c}=this.buffer,d=c.findChild(this.index+4,c.buffer[this.index+3],e,s-this.buffer.start,o);return d<0?!1:(this.stack.push(this.index),this.yieldBuf(d))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,s,o=this.mode){return this.buffer?o&IterMode.ExcludeBuffers?!1:this.enterChild(1,e,s):this.yield(this._tree.enter(e,s,o))}parent(){if(!this.buffer)return this.yieldNode(this.mode&IterMode.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&IterMode.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:s}=this.buffer,o=this.stack.length-1;if(e<0){let c=o<0?0:this.stack[o]+4;if(this.index!=c)return this.yieldBuf(s.findChild(c,this.index,-1,0,4))}else{let c=s.buffer[this.index+3];if(c<(o<0?s.buffer.length:s.buffer[this.stack[o]+3]))return this.yieldBuf(c)}return o<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let s,o,{buffer:c}=this;if(c){if(e>0){if(this.index-1)for(let d=s+e,_=e<0?-1:o._tree.children.length;d!=_;d+=e){let b=o._tree.children[d];if(this.mode&IterMode.IncludeAnonymous||b instanceof TreeBuffer||!b.type.isAnonymous||hasChild(b))return!1}return!0}move(e,s){if(s&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,s=0){for(;(this.from==this.to||(s<1?this.from>=e:this.from>e)||(s>-1?this.to<=e:this.to=0;){for(let _=e;_;_=_._parent)if(_.index==c){if(c==this.index)return _;s=_,o=d+1;break e}c=this.stack[--d]}}for(let c=o;c=0;d--){if(d<0)return matchNodeContext(this.node,e,c);let _=o[s.buffer[this.stack[d]]];if(!_.isAnonymous){if(e[c]&&e[c]!=_.name)return!1;c--}}return!0}}function hasChild(a){return a.children.some(e=>e instanceof TreeBuffer||!e.type.isAnonymous||hasChild(e))}function buildTree(a){var e;let{buffer:s,nodeSet:o,maxBufferLength:c=DefaultBufferLength,reused:d=[],minRepeatType:_=o.types.length}=a,b=Array.isArray(s)?new FlatBufferCursor(s,s.length):s,k=o.types,$=0,j=0;function _e(ht,lt,ut,ct,dt){let{id:ft,start:Et,end:yt,size:gt}=b,St=j;for(;gt<0;)if(b.next(),gt==-1){let vt=d[ft];ut.push(vt),ct.push(Et-ht);return}else if(gt==-3){$=ft;return}else if(gt==-4){j=ft;return}else throw new RangeError(`Unrecognized record size: ${gt}`);let pt=k[ft],mt,At,Ot=Et-ht;if(yt-Et<=c&&(At=it(b.pos-lt,dt))){let vt=new Uint16Array(At.size-At.skip),Ct=b.pos-At.size,Tt=vt.length;for(;b.pos>Ct;)Tt=rt(At.start,vt,Tt);mt=new TreeBuffer(vt,yt-At.start,o),Ot=At.start-ht}else{let vt=b.pos-gt;b.next();let Ct=[],Tt=[],_t=ft>=_?ft:-1,bt=0,xt=yt;for(;b.pos>vt;)_t>=0&&b.id==_t&&b.size>=0?(b.end<=xt-c&&(tt(Ct,Tt,Et,bt,b.end,xt,_t,St),bt=Ct.length,xt=b.end),b.next()):_e(Et,vt,Ct,Tt,_t);if(_t>=0&&bt>0&&bt-1&&bt>0){let Rt=et(pt);mt=balanceRange(pt,Ct,Tt,0,Ct.length,0,yt-Et,Rt,Rt)}else mt=nt(pt,Ct,Tt,yt-Et,St-yt)}ut.push(mt),ct.push(Ot)}function et(ht){return(lt,ut,ct)=>{let dt=0,ft=lt.length-1,Et,yt;if(ft>=0&&(Et=lt[ft])instanceof Tree){if(!ft&&Et.type==ht&&Et.length==ct)return Et;(yt=Et.prop(NodeProp.lookAhead))&&(dt=ut[ft]+Et.length+yt)}return nt(ht,lt,ut,ct,dt)}}function tt(ht,lt,ut,ct,dt,ft,Et,yt){let gt=[],St=[];for(;ht.length>ct;)gt.push(ht.pop()),St.push(lt.pop()+ut-dt);ht.push(nt(o.types[Et],gt,St,ft-dt,yt-ft)),lt.push(dt-ut)}function nt(ht,lt,ut,ct,dt=0,ft){if($){let Et=[NodeProp.contextHash,$];ft=ft?[Et].concat(ft):[Et]}if(dt>25){let Et=[NodeProp.lookAhead,dt];ft=ft?[Et].concat(ft):[Et]}return new Tree(ht,lt,ut,ct,ft)}function it(ht,lt){let ut=b.fork(),ct=0,dt=0,ft=0,Et=ut.end-c,yt={size:0,start:0,skip:0};e:for(let gt=ut.pos-ht;ut.pos>gt;){let St=ut.size;if(ut.id==lt&&St>=0){yt.size=ct,yt.start=dt,yt.skip=ft,ft+=4,ct+=4,ut.next();continue}let pt=ut.pos-St;if(St<0||pt=_?4:0,At=ut.start;for(ut.next();ut.pos>pt;){if(ut.size<0)if(ut.size==-3)mt+=4;else break e;else ut.id>=_&&(mt+=4);ut.next()}dt=At,ct+=St,ft+=mt}return(lt<0||ct==ht)&&(yt.size=ct,yt.start=dt,yt.skip=ft),yt.size>4?yt:void 0}function rt(ht,lt,ut){let{id:ct,start:dt,end:ft,size:Et}=b;if(b.next(),Et>=0&&ct<_){let yt=ut;if(Et>4){let gt=b.pos-(Et-4);for(;b.pos>gt;)ut=rt(ht,lt,ut)}lt[--ut]=yt,lt[--ut]=ft-ht,lt[--ut]=dt-ht,lt[--ut]=ct}else Et==-3?$=ct:Et==-4&&(j=ct);return ut}let st=[],ot=[];for(;b.pos>0;)_e(a.start||0,a.bufferStart||0,st,ot,-1);let at=(e=a.length)!==null&&e!==void 0?e:st.length?ot[0]+st[0].length:0;return new Tree(k[a.topID],st.reverse(),ot.reverse(),at)}const nodeSizeCache=new WeakMap;function nodeSize(a,e){if(!a.isAnonymous||e instanceof TreeBuffer||e.type!=a)return 1;let s=nodeSizeCache.get(e);if(s==null){s=1;for(let o of e.children){if(o.type!=a||!(o instanceof Tree)){s=1;break}s+=nodeSize(a,o)}nodeSizeCache.set(e,s)}return s}function balanceRange(a,e,s,o,c,d,_,b,k){let $=0;for(let nt=o;nt=j)break;ut+=ct}if(at==ht+1){if(ut>j){let ct=nt[ht];tt(ct.children,ct.positions,0,ct.children.length,it[ht]+ot);continue}_e.push(nt[ht])}else{let ct=it[at-1]+nt[at-1].length-lt;_e.push(balanceRange(a,nt,it,ht,at,lt,ct,null,k))}et.push(lt+ot-d)}}return tt(e,s,o,c,0),(b||k)(_e,et,_)}class NodeWeakMap{constructor(){this.map=new WeakMap}setBuffer(e,s,o){let c=this.map.get(e);c||this.map.set(e,c=new Map),c.set(s,o)}getBuffer(e,s){let o=this.map.get(e);return o&&o.get(s)}set(e,s){e instanceof BufferNode?this.setBuffer(e.context.buffer,e.index,s):e instanceof TreeNode&&this.map.set(e.tree,s)}get(e){return e instanceof BufferNode?this.getBuffer(e.context.buffer,e.index):e instanceof TreeNode?this.map.get(e.tree):void 0}cursorSet(e,s){e.buffer?this.setBuffer(e.buffer.buffer,e.index,s):this.map.set(e.tree,s)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class TreeFragment{constructor(e,s,o,c,d=!1,_=!1){this.from=e,this.to=s,this.tree=o,this.offset=c,this.open=(d?1:0)|(_?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,s=[],o=!1){let c=[new TreeFragment(0,e.length,e,0,!1,o)];for(let d of s)d.to>e.length&&c.push(d);return c}static applyChanges(e,s,o=128){if(!s.length)return e;let c=[],d=1,_=e.length?e[0]:null;for(let b=0,k=0,$=0;;b++){let j=b=o)for(;_&&_.from<_e;){let et=_;if(k>=et.from||_e<=et.to||$){let tt=Math.max(et.from,k)-$,nt=Math.min(et.to,_e)-$;et=tt>=nt?null:new TreeFragment(tt,nt,et.tree,et.offset+$,b>0,!!j)}if(et&&c.push(et),_.to>_e)break;_=dnew Range(c.from,c.to)):[new Range(0,0)]:[new Range(0,e.length)],this.createParse(e,s||[],o)}parse(e,s,o){let c=this.startParse(e,s,o);for(;;){let d=c.advance();if(d)return d}}}class StringInput{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,s){return this.string.slice(e,s)}}new NodeProp({perNode:!0});let nextTagID=0;class Tag{constructor(e,s,o){this.set=e,this.base=s,this.modified=o,this.id=nextTagID++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let s=new Tag([],null,[]);if(s.set.push(s),e)for(let o of e.set)s.set.push(o);return s}static defineModifier(){let e=new Modifier;return s=>s.modified.indexOf(e)>-1?s:Modifier.get(s.base||s,s.modified.concat(e).sort((o,c)=>o.id-c.id))}}let nextModifierID=0;class Modifier{constructor(){this.instances=[],this.id=nextModifierID++}static get(e,s){if(!s.length)return e;let o=s[0].instances.find(b=>b.base==e&&sameArray(s,b.modified));if(o)return o;let c=[],d=new Tag(c,e,s);for(let b of s)b.instances.push(d);let _=permute(s);for(let b of e.set)for(let k of _)c.push(Modifier.get(b,k));return d}}function sameArray(a,e){return a.length==e.length&&a.every((s,o)=>s==e[o])}function permute(a){let e=[a];for(let s=0;s0&&_e+3==c.length){_=1;break}let et=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(b);if(!et)throw new RangeError("Invalid path: "+c);if(d.push(et[0]=="*"?"":et[0][0]=='"'?JSON.parse(et[0]):et[0]),_e+=et[0].length,_e==c.length)break;let tt=c[_e++];if(_e==c.length&&tt=="!"){_=0;break}if(tt!="/")throw new RangeError("Invalid path: "+c);b=c.slice(_e)}let k=d.length-1,$=d[k];if(!$)throw new RangeError("Invalid path: "+c);let j=new Rule(o,_,k>0?d.slice(0,k):null);e[$]=j.sort(e[$])}}return ruleNodeProp.add(e)}const ruleNodeProp=new NodeProp;class Rule{constructor(e,s,o,c){this.tags=e,this.mode=s,this.context=o,this.next=c}sort(e){return!e||e.depth{let _=c;for(let b of d)for(let k of b.set){let $=s[k.id];if($){_=_?_+" "+$:$;break}}return _},scope:o}}function highlightTags(a,e){let s=null;for(let o of a){let c=o.style(e);c&&(s=s?s+" "+c:c)}return s}function highlightTree(a,e,s,o=0,c=a.length){let d=new HighlightBuilder(o,Array.isArray(e)?e:[e],s);d.highlightRange(a.cursor(),o,c,"",d.highlighters),d.flush(c)}class HighlightBuilder{constructor(e,s,o){this.at=e,this.highlighters=s,this.span=o,this.class=""}startSpan(e,s){s!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=s)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,s,o,c,d){let{type:_,from:b,to:k}=e;if(b>=o||k<=s)return;_.isTop&&(d=this.highlighters.filter(tt=>!tt.scope||tt.scope(_)));let $=c,j=_.prop(ruleNodeProp),_e=!1;for(;j;){if(!j.context||e.matchContext(j.context)){let tt=highlightTags(d,j.tags);tt&&($&&($+=" "),$+=tt,j.mode==1?c+=(c?" ":"")+tt:j.mode==0&&(_e=!0));break}j=j.next}if(this.startSpan(e.from,$),_e)return;let et=e.tree&&e.tree.prop(NodeProp.mounted);if(et&&et.overlay){let tt=e.node.enter(et.overlay[0].from+b,1),nt=this.highlighters.filter(rt=>!rt.scope||rt.scope(et.tree.type)),it=e.firstChild();for(let rt=0,st=b;;rt++){let ot=rt=at||!e.nextSibling())););if(!ot||at>o)break;st=ot.to+b,st>s&&(this.highlightRange(tt.cursor(),Math.max(s,ot.from+b),Math.min(o,st),c,nt),this.startSpan(st,$))}it&&e.parent()}else if(e.firstChild()){do if(!(e.to<=s)){if(e.from>=o)break;this.highlightRange(e,s,o,c,d),this.startSpan(Math.min(o,e.to),$)}while(e.nextSibling());e.parent()}}}const t=Tag.define,comment=t(),name$1=t(),typeName=t(name$1),propertyName=t(name$1),literal=t(),string=t(literal),number=t(literal),content=t(),heading=t(content),keyword=t(),operator=t(),punctuation=t(),bracket=t(punctuation),meta=t(),tags={comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name:name$1,variableName:t(name$1),typeName,tagName:t(typeName),propertyName,attributeName:t(propertyName),className:t(name$1),labelName:t(name$1),namespace:t(name$1),macroName:t(name$1),literal,string,docString:t(string),character:t(string),attributeValue:t(string),number,integer:t(number),float:t(number),bool:t(literal),regexp:t(literal),escape:t(literal),color:t(literal),url:t(literal),keyword,self:t(keyword),null:t(keyword),atom:t(keyword),unit:t(keyword),modifier:t(keyword),operatorKeyword:t(keyword),controlKeyword:t(keyword),definitionKeyword:t(keyword),moduleKeyword:t(keyword),operator,derefOperator:t(operator),arithmeticOperator:t(operator),logicOperator:t(operator),bitwiseOperator:t(operator),compareOperator:t(operator),updateOperator:t(operator),definitionOperator:t(operator),typeOperator:t(operator),controlOperator:t(operator),punctuation,separator:t(punctuation),bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content,heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content),list:t(content),quote:t(content),emphasis:t(content),strong:t(content),link:t(content),monospace:t(content),strikethrough:t(content),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier(),constant:Tag.defineModifier(),function:Tag.defineModifier(),standard:Tag.defineModifier(),local:Tag.defineModifier(),special:Tag.defineModifier()};tagHighlighter([{tag:tags.link,class:"tok-link"},{tag:tags.heading,class:"tok-heading"},{tag:tags.emphasis,class:"tok-emphasis"},{tag:tags.strong,class:"tok-strong"},{tag:tags.keyword,class:"tok-keyword"},{tag:tags.atom,class:"tok-atom"},{tag:tags.bool,class:"tok-bool"},{tag:tags.url,class:"tok-url"},{tag:tags.labelName,class:"tok-labelName"},{tag:tags.inserted,class:"tok-inserted"},{tag:tags.deleted,class:"tok-deleted"},{tag:tags.literal,class:"tok-literal"},{tag:tags.string,class:"tok-string"},{tag:tags.number,class:"tok-number"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],class:"tok-string2"},{tag:tags.variableName,class:"tok-variableName"},{tag:tags.local(tags.variableName),class:"tok-variableName tok-local"},{tag:tags.definition(tags.variableName),class:"tok-variableName tok-definition"},{tag:tags.special(tags.variableName),class:"tok-variableName2"},{tag:tags.definition(tags.propertyName),class:"tok-propertyName tok-definition"},{tag:tags.typeName,class:"tok-typeName"},{tag:tags.namespace,class:"tok-namespace"},{tag:tags.className,class:"tok-className"},{tag:tags.macroName,class:"tok-macroName"},{tag:tags.propertyName,class:"tok-propertyName"},{tag:tags.operator,class:"tok-operator"},{tag:tags.comment,class:"tok-comment"},{tag:tags.meta,class:"tok-meta"},{tag:tags.invalid,class:"tok-invalid"},{tag:tags.punctuation,class:"tok-punctuation"}]);var _a;const languageDataProp=new NodeProp;function defineLanguageFacet(a){return Facet.define({combine:a?e=>e.concat(a):void 0})}class Language{constructor(e,s,o=[]){this.data=e,EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}}),this.parser=s,this.extension=[language.of(this),EditorState.languageData.of((c,d,_)=>c.facet(languageDataFacetAt(c,d,_)))].concat(o)}isActiveAt(e,s,o=-1){return languageDataFacetAt(e,s,o)==this.data}findRegions(e){let s=e.facet(language);if((s==null?void 0:s.data)==this.data)return[{from:0,to:e.doc.length}];if(!s||!s.allowsNesting)return[];let o=[],c=(d,_)=>{if(d.prop(languageDataProp)==this.data){o.push({from:_,to:_+d.length});return}let b=d.prop(NodeProp.mounted);if(b){if(b.tree.prop(languageDataProp)==this.data){if(b.overlay)for(let k of b.overlay)o.push({from:k.from+_,to:k.to+_});else o.push({from:_,to:_+d.length});return}else if(b.overlay){let k=o.length;if(c(b.tree,b.overlay[0].from+_),o.length>k)return}}for(let k=0;ko.isTop?s:void 0)]}))}configure(e){return new LRLanguage(this.data,this.parser.configure(e))}get allowsNesting(){return this.parser.hasWrappers()}}function syntaxTree(a){let e=a.field(Language.state,!1);return e?e.tree:Tree.empty}class DocInput{constructor(e,s=e.length){this.doc=e,this.length=s,this.cursorPos=0,this.string="",this.cursor=e.iter()}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,s){let o=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,s):this.string.slice(e-o,s-o)}}let currentContext=null;class ParseContext{constructor(e,s,o=[],c,d,_,b,k){this.parser=e,this.state=s,this.fragments=o,this.tree=c,this.treeLen=d,this.viewport=_,this.skipped=b,this.scheduleOn=k,this.parse=null,this.tempSkipped=[]}static create(e,s,o){return new ParseContext(e,s,[],Tree.empty,0,o,[],null)}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments)}work(e,s){return s!=null&&s>=this.state.doc.length&&(s=void 0),this.tree!=Tree.empty&&this.isDone(s!=null?s:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var o;if(typeof e=="number"){let c=Date.now()+e;e=()=>Date.now()>c}for(this.parse||(this.parse=this.startParse()),s!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>s)&&s=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(s=this.parse.advance()););}),this.treeLen=e,this.tree=s,this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let s=currentContext;currentContext=this;try{return e()}finally{currentContext=s}}withoutTempSkipped(e){for(let s;s=this.tempSkipped.pop();)e=cutFragments(e,s.from,s.to);return e}changes(e,s){let{fragments:o,tree:c,treeLen:d,viewport:_,skipped:b}=this;if(this.takeTree(),!e.empty){let k=[];if(e.iterChangedRanges(($,j,_e,et)=>k.push({fromA:$,toA:j,fromB:_e,toB:et})),o=TreeFragment.applyChanges(o,k),c=Tree.empty,d=0,_={from:e.mapPos(_.from,-1),to:e.mapPos(_.to,1)},this.skipped.length){b=[];for(let $ of this.skipped){let j=e.mapPos($.from,1),_e=e.mapPos($.to,-1);j<_e&&b.push({from:j,to:_e})}}}return new ParseContext(this.parser,s,o,c,d,_,b,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let s=this.skipped.length;for(let o=0;oe.from&&(this.fragments=cutFragments(this.fragments,c,d),this.skipped.splice(o--,1))}return this.skipped.length>=s?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,s){this.skipped.push({from:e,to:s})}static getSkippingParser(e){return new class extends Parser{createParse(s,o,c){let d=c[0].from,_=c[c.length-1].to;return{parsedPos:d,advance(){let k=currentContext;if(k){for(let $ of c)k.tempSkipped.push($);e&&(k.scheduleOn=k.scheduleOn?Promise.all([k.scheduleOn,e]):e)}return this.parsedPos=_,new Tree(NodeType.none,[],[],_-d)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let s=this.fragments;return this.treeLen>=e&&s.length&&s[0].from==0&&s[0].to>=e}static get(){return currentContext}}function cutFragments(a,e,s){return TreeFragment.applyChanges(a,[{fromA:e,toA:s,fromB:e,toB:s}])}class LanguageState{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let s=this.context.changes(e.changes,e.state),o=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),s.viewport.to);return s.work(20,o)||s.takeTree(),new LanguageState(s)}static init(e){let s=Math.min(3e3,e.doc.length),o=ParseContext.create(e.facet(language).parser,e,{from:0,to:s});return o.work(20,s)||o.takeTree(),new LanguageState(o)}}Language.state=StateField.define({create:LanguageState.init,update(a,e){for(let s of e.effects)if(s.is(Language.setState))return s.value;return e.startState.facet(language)!=e.state.facet(language)?LanguageState.init(e.state):a.apply(e)}});let requestIdle=a=>{let e=setTimeout(()=>a(),500);return()=>clearTimeout(e)};typeof requestIdleCallback!="undefined"&&(requestIdle=a=>{let e=-1,s=setTimeout(()=>{e=requestIdleCallback(a,{timeout:500-100})},100);return()=>e<0?clearTimeout(s):cancelIdleCallback(e)});const isInputPending=typeof navigator!="undefined"&&((_a=navigator.scheduling)===null||_a===void 0?void 0:_a.isInputPending)?()=>navigator.scheduling.isInputPending():null,parseWorker=ViewPlugin.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let s=this.view.state.field(Language.state).context;(s.updateViewport(e.view.viewport)||this.view.viewport.to>s.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(s)}scheduleWork(){if(this.working)return;let{state:e}=this.view,s=e.field(Language.state);(s.tree!=s.context.tree||!s.context.isDone(e.doc.length))&&(this.working=requestIdle(this.work))}work(e){this.working=null;let s=Date.now();if(this.chunkEndc+1e3,k=d.context.work(()=>isInputPending&&isInputPending()||Date.now()>_,c+(b?0:1e5));this.chunkBudget-=Date.now()-s,(k||this.chunkBudget<=0)&&(d.context.takeTree(),this.view.dispatch({effects:Language.setState.of(new LanguageState(d.context))})),this.chunkBudget>0&&!(k&&!b)&&this.scheduleWork(),this.checkAsyncSchedule(d.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(s=>logException(this.view.state,s)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),language=Facet.define({combine(a){return a.length?a[0]:null},enables:[Language.state,parseWorker]});class LanguageSupport{constructor(e,s=[]){this.language=e,this.support=s,this.extension=[e,s]}}const indentService=Facet.define(),indentUnit=Facet.define({combine:a=>{if(!a.length)return" ";if(!/^(?: +|\t+)$/.test(a[0]))throw new Error("Invalid indent unit: "+JSON.stringify(a[0]));return a[0]}});function getIndentUnit(a){let e=a.facet(indentUnit);return e.charCodeAt(0)==9?a.tabSize*e.length:e.length}function indentString(a,e){let s="",o=a.tabSize;if(a.facet(indentUnit).charCodeAt(0)==9)for(;e>=o;)s+=" ",e-=o;for(let c=0;c=o.from&&c<=o.to?d&&c==e?{text:"",from:e}:(s<0?c-1&&(d+=_-this.countColumn(o,o.search(/\S|$/))),d}countColumn(e,s=e.length){return countColumn(e,this.state.tabSize,s)}lineIndent(e,s=1){let{text:o,from:c}=this.lineAt(e,s),d=this.options.overrideIndentation;if(d){let _=d(c);if(_>-1)return _}return this.countColumn(o,o.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const indentNodeProp=new NodeProp;function syntaxIndentation(a,e,s){return indentFrom(e.resolveInner(s).enterUnfinishedNodesBefore(s),s,a)}function ignoreClosed(a){return a.pos==a.options.simulateBreak&&a.options.simulateDoubleBreak}function indentStrategy(a){let e=a.type.prop(indentNodeProp);if(e)return e;let s=a.firstChild,o;if(s&&(o=s.type.prop(NodeProp.closedBy))){let c=a.lastChild,d=c&&o.indexOf(c.name)>-1;return _=>delimitedStrategy(_,!0,1,void 0,d&&!ignoreClosed(_)?c.from:void 0)}return a.parent==null?topIndent:null}function indentFrom(a,e,s){for(;a;a=a.parent){let o=indentStrategy(a);if(o)return o(TreeIndentContext.create(s,e,a))}return null}function topIndent(){return 0}class TreeIndentContext extends IndentContext{constructor(e,s,o){super(e.state,e.options),this.base=e,this.pos=s,this.node=o}static create(e,s,o){return new TreeIndentContext(e,s,o)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let e=this.state.doc.lineAt(this.node.from);for(;;){let s=this.node.resolve(e.from);for(;s.parent&&s.parent.from==s.from;)s=s.parent;if(isParent(s,this.node))break;e=this.state.doc.lineAt(s.from)}return this.lineIndent(e.from)}continue(){let e=this.node.parent;return e?indentFrom(e,this.pos,this.base):0}}function isParent(a,e){for(let s=e;s;s=s.parent)if(a==s)return!0;return!1}function bracketedAligned(a){let e=a.node,s=e.childAfter(e.from),o=e.lastChild;if(!s)return null;let c=a.options.simulateBreak,d=a.state.doc.lineAt(s.from),_=c==null||c<=d.from?d.to:Math.min(d.to,c);for(let b=s.to;;){let k=e.childAfter(b);if(!k||k==o)return null;if(!k.type.isSkipped)return k.from<_?s:null;b=k.to}}function delimitedIndent({closing:a,align:e=!0,units:s=1}){return o=>delimitedStrategy(o,e,s,a)}function delimitedStrategy(a,e,s,o,c){let d=a.textAfter,_=d.match(/^\s*/)[0].length,b=o&&d.slice(_,_+o.length)==o||c==a.pos+_,k=e?bracketedAligned(a):null;return k?b?a.column(k.from):a.column(k.to):a.baseIndent+(b?0:a.unit*s)}const flatIndent=a=>a.baseIndent;function continuedIndent({except:a,units:e=1}={}){return s=>{let o=a&&a.test(s.textAfter);return s.baseIndent+(o?0:e*s.unit)}}const DontIndentBeyond=200;function indentOnInput(){return EditorState.transactionFilter.of(a=>{if(!a.docChanged||!a.isUserEvent("input.type")&&!a.isUserEvent("input.complete"))return a;let e=a.startState.languageDataAt("indentOnInput",a.startState.selection.main.head);if(!e.length)return a;let s=a.newDoc,{head:o}=a.newSelection.main,c=s.lineAt(o);if(o>c.from+DontIndentBeyond)return a;let d=s.sliceString(c.from,o);if(!e.some($=>$.test(d)))return a;let{state:_}=a,b=-1,k=[];for(let{head:$}of _.selection.ranges){let j=_.doc.lineAt($);if(j.from==b)continue;b=j.from;let _e=getIndentation(_,j.from);if(_e==null)continue;let et=/^\s*/.exec(j.text)[0],tt=indentString(_,_e);et!=tt&&k.push({from:j.from,to:j.from+et.length,insert:tt})}return k.length?[a,{changes:k,sequential:!0}]:a})}const foldService=Facet.define(),foldNodeProp=new NodeProp;function foldInside(a){let e=a.firstChild,s=a.lastChild;return e&&e.tos)continue;if(d&&_.from=e&&k.to>s&&(d=k)}}return d}function isUnfinished(a){let e=a.lastChild;return e&&e.to==a.to&&e.type.isError}function foldable(a,e,s){for(let o of a.facet(foldService)){let c=o(a,e,s);if(c)return c}return syntaxFolding(a,e,s)}function mapRange(a,e){let s=e.mapPos(a.from,1),o=e.mapPos(a.to,-1);return s>=o?void 0:{from:s,to:o}}const foldEffect=StateEffect.define({map:mapRange}),unfoldEffect=StateEffect.define({map:mapRange});function selectedLines(a){let e=[];for(let{head:s}of a.state.selection.ranges)e.some(o=>o.from<=s&&o.to>=s)||e.push(a.lineBlockAt(s));return e}const foldState=StateField.define({create(){return Decoration.none},update(a,e){a=a.map(e.changes);for(let s of e.effects)s.is(foldEffect)&&!foldExists(a,s.value.from,s.value.to)?a=a.update({add:[foldWidget.range(s.value.from,s.value.to)]}):s.is(unfoldEffect)&&(a=a.update({filter:(o,c)=>s.value.from!=o||s.value.to!=c,filterFrom:s.value.from,filterTo:s.value.to}));if(e.selection){let s=!1,{head:o}=e.selection.main;a.between(o,o,(c,d)=>{co&&(s=!0)}),s&&(a=a.update({filterFrom:o,filterTo:o,filter:(c,d)=>d<=o||c>=o}))}return a},provide:a=>EditorView.decorations.from(a),toJSON(a,e){let s=[];return a.between(0,e.doc.length,(o,c)=>{s.push(o,c)}),s},fromJSON(a){if(!Array.isArray(a)||a.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let s=0;s{(!c||c.from>d)&&(c={from:d,to:_})}),c}function foldExists(a,e,s){let o=!1;return a.between(e,e,(c,d)=>{c==e&&d==s&&(o=!0)}),o}function maybeEnable(a,e){return a.field(foldState,!1)?e:e.concat(StateEffect.appendConfig.of(codeFolding()))}const foldCode=a=>{for(let e of selectedLines(a)){let s=foldable(a.state,e.from,e.to);if(s)return a.dispatch({effects:maybeEnable(a.state,[foldEffect.of(s),announceFold(a,s)])}),!0}return!1},unfoldCode=a=>{if(!a.state.field(foldState,!1))return!1;let e=[];for(let s of selectedLines(a)){let o=findFold(a.state,s.from,s.to);o&&e.push(unfoldEffect.of(o),announceFold(a,o,!1))}return e.length&&a.dispatch({effects:e}),e.length>0};function announceFold(a,e,s=!0){let o=a.state.doc.lineAt(e.from).number,c=a.state.doc.lineAt(e.to).number;return EditorView.announce.of(`${a.state.phrase(s?"Folded lines":"Unfolded lines")} ${o} ${a.state.phrase("to")} ${c}.`)}const foldAll=a=>{let{state:e}=a,s=[];for(let o=0;o{let e=a.state.field(foldState,!1);if(!e||!e.size)return!1;let s=[];return e.between(0,a.state.doc.length,(o,c)=>{s.push(unfoldEffect.of({from:o,to:c}))}),a.dispatch({effects:s}),!0},foldKeymap=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:foldCode},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:unfoldCode},{key:"Ctrl-Alt-[",run:foldAll},{key:"Ctrl-Alt-]",run:unfoldAll}],defaultConfig={placeholderDOM:null,placeholderText:"\u2026"},foldConfig=Facet.define({combine(a){return combineConfig(a,defaultConfig)}});function codeFolding(a){let e=[foldState,baseTheme$1$2];return a&&e.push(foldConfig.of(a)),e}const foldWidget=Decoration.replace({widget:new class extends WidgetType{toDOM(a){let{state:e}=a,s=e.facet(foldConfig),o=d=>{let _=a.lineBlockAt(a.posAtDOM(d.target)),b=findFold(a.state,_.from,_.to);b&&a.dispatch({effects:unfoldEffect.of(b)}),d.preventDefault()};if(s.placeholderDOM)return s.placeholderDOM(a,o);let c=document.createElement("span");return c.textContent=s.placeholderText,c.setAttribute("aria-label",e.phrase("folded code")),c.title=e.phrase("unfold"),c.className="cm-foldPlaceholder",c.onclick=o,c}}}),foldGutterDefaults={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class FoldMarker extends GutterMarker{constructor(e,s){super(),this.config=e,this.open=s}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let s=document.createElement("span");return s.textContent=this.open?this.config.openText:this.config.closedText,s.title=e.state.phrase(this.open?"Fold line":"Unfold line"),s}}function foldGutter(a={}){let e=Object.assign(Object.assign({},foldGutterDefaults),a),s=new FoldMarker(e,!0),o=new FoldMarker(e,!1),c=ViewPlugin.fromClass(class{constructor(_){this.from=_.viewport.from,this.markers=this.buildMarkers(_)}update(_){(_.docChanged||_.viewportChanged||_.startState.facet(language)!=_.state.facet(language)||_.startState.field(foldState,!1)!=_.state.field(foldState,!1)||syntaxTree(_.startState)!=syntaxTree(_.state)||e.foldingChanged(_))&&(this.markers=this.buildMarkers(_.view))}buildMarkers(_){let b=new RangeSetBuilder;for(let k of _.viewportLineBlocks){let $=findFold(_.state,k.from,k.to)?o:foldable(_.state,k.from,k.to)?s:null;$&&b.add(k.from,k.from,$)}return b.finish()}}),{domEventHandlers:d}=e;return[c,gutter({class:"cm-foldGutter",markers(_){var b;return((b=_.plugin(c))===null||b===void 0?void 0:b.markers)||RangeSet.empty},initialSpacer(){return new FoldMarker(e,!1)},domEventHandlers:Object.assign(Object.assign({},d),{click:(_,b,k)=>{if(d.click&&d.click(_,b,k))return!0;let $=findFold(_.state,b.from,b.to);if($)return _.dispatch({effects:unfoldEffect.of($)}),!0;let j=foldable(_.state,b.from,b.to);return j?(_.dispatch({effects:foldEffect.of(j)}),!0):!1}})}),codeFolding()]}const baseTheme$1$2=EditorView.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class HighlightStyle{constructor(e,s){let o;function c(b){let k=StyleModule.newName();return(o||(o=Object.create(null)))["."+k]=b,k}const d=typeof s.all=="string"?s.all:s.all?c(s.all):void 0,_=s.scope;this.scope=_ instanceof Language?b=>b.prop(languageDataProp)==_.data:_?b=>b==_:void 0,this.style=tagHighlighter(e.map(b=>({tag:b.tag,class:b.class||c(Object.assign({},b,{tag:null}))})),{all:d}).style,this.module=o?new StyleModule(o):null,this.themeType=s.themeType}static define(e,s){return new HighlightStyle(e,s||{})}}const highlighterFacet=Facet.define(),fallbackHighlighter=Facet.define({combine(a){return a.length?[a[0]]:null}});function getHighlighters(a){let e=a.facet(highlighterFacet);return e.length?e:a.facet(fallbackHighlighter)}function syntaxHighlighting(a,e){let s=[treeHighlighter],o;return a instanceof HighlightStyle&&(a.module&&s.push(EditorView.styleModule.of(a.module)),o=a.themeType),e!=null&&e.fallback?s.push(fallbackHighlighter.of(a)):o?s.push(highlighterFacet.computeN([EditorView.darkTheme],c=>c.facet(EditorView.darkTheme)==(o=="dark")?[a]:[])):s.push(highlighterFacet.of(a)),s}class TreeHighlighter{constructor(e){this.markCache=Object.create(null),this.tree=syntaxTree(e.state),this.decorations=this.buildDeco(e,getHighlighters(e.state))}update(e){let s=syntaxTree(e.state),o=getHighlighters(e.state),c=o!=getHighlighters(e.startState);s.length{o.add(_,b,this.markCache[k]||(this.markCache[k]=Decoration.mark({class:k})))},c,d);return o.finish()}}const treeHighlighter=Prec.high(ViewPlugin.fromClass(TreeHighlighter,{decorations:a=>a.decorations})),defaultHighlightStyle=HighlightStyle.define([{tag:tags.meta,color:"#7a757a"},{tag:tags.link,textDecoration:"underline"},{tag:tags.heading,textDecoration:"underline",fontWeight:"bold"},{tag:tags.emphasis,fontStyle:"italic"},{tag:tags.strong,fontWeight:"bold"},{tag:tags.strikethrough,textDecoration:"line-through"},{tag:tags.keyword,color:"#708"},{tag:[tags.atom,tags.bool,tags.url,tags.contentSeparator,tags.labelName],color:"#219"},{tag:[tags.literal,tags.inserted],color:"#164"},{tag:[tags.string,tags.deleted],color:"#a11"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],color:"#e40"},{tag:tags.definition(tags.variableName),color:"#00f"},{tag:tags.local(tags.variableName),color:"#30a"},{tag:[tags.typeName,tags.namespace],color:"#085"},{tag:tags.className,color:"#167"},{tag:[tags.special(tags.variableName),tags.macroName],color:"#256"},{tag:tags.definition(tags.propertyName),color:"#00c"},{tag:tags.comment,color:"#940"},{tag:tags.invalid,color:"#f00"}]),baseTheme$3=EditorView.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),DefaultScanDist=1e4,DefaultBrackets="()[]{}",bracketMatchingConfig=Facet.define({combine(a){return combineConfig(a,{afterCursor:!0,brackets:DefaultBrackets,maxScanDistance:DefaultScanDist,renderMatch:defaultRenderMatch})}}),matchingMark=Decoration.mark({class:"cm-matchingBracket"}),nonmatchingMark=Decoration.mark({class:"cm-nonmatchingBracket"});function defaultRenderMatch(a){let e=[],s=a.matched?matchingMark:nonmatchingMark;return e.push(s.range(a.start.from,a.start.to)),a.end&&e.push(s.range(a.end.from,a.end.to)),e}const bracketMatchingState=StateField.define({create(){return Decoration.none},update(a,e){if(!e.docChanged&&!e.selection)return a;let s=[],o=e.state.facet(bracketMatchingConfig);for(let c of e.state.selection.ranges){if(!c.empty)continue;let d=matchBrackets(e.state,c.head,-1,o)||c.head>0&&matchBrackets(e.state,c.head-1,1,o)||o.afterCursor&&(matchBrackets(e.state,c.head,1,o)||c.headEditorView.decorations.from(a)}),bracketMatchingUnique=[bracketMatchingState,baseTheme$3];function bracketMatching(a={}){return[bracketMatchingConfig.of(a),bracketMatchingUnique]}function matchingNodes(a,e,s){let o=a.prop(e<0?NodeProp.openedBy:NodeProp.closedBy);if(o)return o;if(a.name.length==1){let c=s.indexOf(a.name);if(c>-1&&c%2==(e<0?1:0))return[s[c+e]]}return null}function matchBrackets(a,e,s,o={}){let c=o.maxScanDistance||DefaultScanDist,d=o.brackets||DefaultBrackets,_=syntaxTree(a),b=_.resolveInner(e,s);for(let k=b;k;k=k.parent){let $=matchingNodes(k.type,s,d);if($&&k.from=o.to){if(k==0&&c.indexOf($.type.name)>-1&&$.from<$.to)return{start:b,end:{from:$.from,to:$.to},matched:!0};if(matchingNodes($.type,s,d))k++;else if(matchingNodes($.type,-s,d)){if(k==0)return{start:b,end:$.from==$.to?void 0:{from:$.from,to:$.to},matched:!1};k--}}while(s<0?$.prevSibling():$.nextSibling());return{start:b,matched:!1}}function matchPlainBrackets(a,e,s,o,c,d,_){let b=s<0?a.sliceDoc(e-1,e):a.sliceDoc(e,e+1),k=_.indexOf(b);if(k<0||k%2==0!=s>0)return null;let $={from:s<0?e-1:e,to:s>0?e+1:e},j=a.doc.iterRange(e,s>0?a.doc.length:0),_e=0;for(let et=0;!j.next().done&&et<=d;){let tt=j.value;s<0&&(et+=tt.length);let nt=e+et*s;for(let it=s>0?0:tt.length-1,rt=s>0?tt.length:-1;it!=rt;it+=s){let st=_.indexOf(tt[it]);if(!(st<0||o.resolveInner(nt+it,1).type!=c))if(st%2==0==s>0)_e++;else{if(_e==1)return{start:$,end:{from:nt+it,to:nt+it+1},matched:st>>1==k>>1};_e--}}s>0&&(et+=tt.length)}return j.done?{start:$,matched:!1}:null}const noTokens=Object.create(null),typeArray=[NodeType.none],warned=[],defaultTable=Object.create(null);for(let[a,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])defaultTable[a]=createTokenType(noTokens,e);function warnForPart(a,e){warned.indexOf(a)>-1||(warned.push(a),console.warn(e))}function createTokenType(a,e){let s=null;for(let d of e.split(".")){let _=a[d]||tags[d];_?typeof _=="function"?s?s=_(s):warnForPart(d,`Modifier ${d} used at start of tag`):s?warnForPart(d,`Tag ${d} used as modifier`):s=_:warnForPart(d,`Unknown highlighting tag ${d}`)}if(!s)return 0;let o=e.replace(/ /g,"_"),c=NodeType.define({id:typeArray.length,name:o,props:[styleTags({[o]:s})]});return typeArray.push(c),c.id}const toggleComment=a=>{let e=getConfig(a.state);return e.line?toggleLineComment(a):e.block?toggleBlockCommentByLine(a):!1};function command(a,e){return({state:s,dispatch:o})=>{if(s.readOnly)return!1;let c=a(e,s);return c?(o(s.update(c)),!0):!1}}const toggleLineComment=command(changeLineComment,0),toggleBlockComment=command(changeBlockComment,0),toggleBlockCommentByLine=command((a,e)=>changeBlockComment(a,e,selectedLineRanges(e)),0);function getConfig(a,e=a.selection.main.head){let s=a.languageDataAt("commentTokens",e);return s.length?s[0]:{}}const SearchMargin=50;function findBlockComment(a,{open:e,close:s},o,c){let d=a.sliceDoc(o-SearchMargin,o),_=a.sliceDoc(c,c+SearchMargin),b=/\s*$/.exec(d)[0].length,k=/^\s*/.exec(_)[0].length,$=d.length-b;if(d.slice($-e.length,$)==e&&_.slice(k,k+s.length)==s)return{open:{pos:o-b,margin:b&&1},close:{pos:c+k,margin:k&&1}};let j,_e;c-o<=2*SearchMargin?j=_e=a.sliceDoc(o,c):(j=a.sliceDoc(o,o+SearchMargin),_e=a.sliceDoc(c-SearchMargin,c));let et=/^\s*/.exec(j)[0].length,tt=/\s*$/.exec(_e)[0].length,nt=_e.length-tt-s.length;return j.slice(et,et+e.length)==e&&_e.slice(nt,nt+s.length)==s?{open:{pos:o+et+e.length,margin:/\s/.test(j.charAt(et+e.length))?1:0},close:{pos:c-tt-s.length,margin:/\s/.test(_e.charAt(nt-1))?1:0}}:null}function selectedLineRanges(a){let e=[];for(let s of a.selection.ranges){let o=a.doc.lineAt(s.from),c=s.to<=o.to?o:a.doc.lineAt(s.to),d=e.length-1;d>=0&&e[d].to>o.from?e[d].to=c.to:e.push({from:o.from,to:c.to})}return e}function changeBlockComment(a,e,s=e.selection.ranges){let o=s.map(d=>getConfig(e,d.from).block);if(!o.every(d=>d))return null;let c=s.map((d,_)=>findBlockComment(e,o[_],d.from,d.to));if(a!=2&&!c.every(d=>d))return{changes:e.changes(s.map((d,_)=>c[_]?[]:[{from:d.from,insert:o[_].open+" "},{from:d.to,insert:" "+o[_].close}]))};if(a!=1&&c.some(d=>d)){let d=[];for(let _=0,b;_c&&(d==_||_>j.from)){c=j.from;let _e=getConfig(e,$).line;if(!_e)continue;let et=/^\s*/.exec(j.text)[0].length,tt=et==j.length,nt=j.text.slice(et,et+_e.length)==_e?et:-1;etd.comment<0&&(!d.empty||d.single))){let d=[];for(let{line:b,token:k,indent:$,empty:j,single:_e}of o)(_e||!j)&&d.push({from:b.from+$,insert:k+" "});let _=e.changes(d);return{changes:_,selection:e.selection.map(_,1)}}else if(a!=1&&o.some(d=>d.comment>=0)){let d=[];for(let{line:_,comment:b,token:k}of o)if(b>=0){let $=_.from+b,j=$+k.length;_.text[j-_.from]==" "&&j++,d.push({from:$,to:j})}return{changes:d}}return null}const fromHistory=Annotation.define(),isolateHistory=Annotation.define(),invertedEffects=Facet.define(),historyConfig=Facet.define({combine(a){return combineConfig(a,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}});function changeEnd(a){let e=0;return a.iterChangedRanges((s,o)=>e=o),e}const historyField_=StateField.define({create(){return HistoryState.empty},update(a,e){let s=e.state.facet(historyConfig),o=e.annotation(fromHistory);if(o){let k=e.docChanged?EditorSelection.single(changeEnd(e.changes)):void 0,$=HistEvent.fromTransaction(e,k),j=o.side,_e=j==0?a.undone:a.done;return $?_e=updateBranch(_e,_e.length,s.minDepth,$):_e=addSelection(_e,e.startState.selection),new HistoryState(j==0?o.rest:_e,j==0?_e:o.rest)}let c=e.annotation(isolateHistory);if((c=="full"||c=="before")&&(a=a.isolate()),e.annotation(Transaction.addToHistory)===!1)return e.changes.empty?a:a.addMapping(e.changes.desc);let d=HistEvent.fromTransaction(e),_=e.annotation(Transaction.time),b=e.annotation(Transaction.userEvent);return d?a=a.addChanges(d,_,b,s.newGroupDelay,s.minDepth):e.selection&&(a=a.addSelection(e.startState.selection,_,b,s.newGroupDelay)),(c=="full"||c=="after")&&(a=a.isolate()),a},toJSON(a){return{done:a.done.map(e=>e.toJSON()),undone:a.undone.map(e=>e.toJSON())}},fromJSON(a){return new HistoryState(a.done.map(HistEvent.fromJSON),a.undone.map(HistEvent.fromJSON))}});function history(a={}){return[historyField_,historyConfig.of(a),EditorView.domEventHandlers({beforeinput(e,s){let o=e.inputType=="historyUndo"?undo:e.inputType=="historyRedo"?redo:null;return o?(e.preventDefault(),o(s)):!1}})]}function cmd(a,e){return function({state:s,dispatch:o}){if(!e&&s.readOnly)return!1;let c=s.field(historyField_,!1);if(!c)return!1;let d=c.pop(a,s,e);return d?(o(d),!0):!1}}const undo=cmd(0,!1),redo=cmd(1,!1),undoSelection=cmd(0,!0),redoSelection=cmd(1,!0);class HistEvent{constructor(e,s,o,c,d){this.changes=e,this.effects=s,this.mapped=o,this.startSelection=c,this.selectionsAfter=d}setSelAfter(e){return new HistEvent(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,s,o;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(s=this.mapped)===null||s===void 0?void 0:s.toJSON(),startSelection:(o=this.startSelection)===null||o===void 0?void 0:o.toJSON(),selectionsAfter:this.selectionsAfter.map(c=>c.toJSON())}}static fromJSON(e){return new HistEvent(e.changes&&ChangeSet.fromJSON(e.changes),[],e.mapped&&ChangeDesc.fromJSON(e.mapped),e.startSelection&&EditorSelection.fromJSON(e.startSelection),e.selectionsAfter.map(EditorSelection.fromJSON))}static fromTransaction(e,s){let o=none$1;for(let c of e.startState.facet(invertedEffects)){let d=c(e);d.length&&(o=o.concat(d))}return!o.length&&e.changes.empty?null:new HistEvent(e.changes.invert(e.startState.doc),o,void 0,s||e.startState.selection,none$1)}static selection(e){return new HistEvent(void 0,none$1,void 0,void 0,e)}}function updateBranch(a,e,s,o){let c=e+1>s+20?e-s-1:0,d=a.slice(c,e);return d.push(o),d}function isAdjacent(a,e){let s=[],o=!1;return a.iterChangedRanges((c,d)=>s.push(c,d)),e.iterChangedRanges((c,d,_,b)=>{for(let k=0;k=$&&_<=j&&(o=!0)}}),o}function eqSelectionShape(a,e){return a.ranges.length==e.ranges.length&&a.ranges.filter((s,o)=>s.empty!=e.ranges[o].empty).length===0}function conc(a,e){return a.length?e.length?a.concat(e):a:e}const none$1=[],MaxSelectionsPerEvent=200;function addSelection(a,e){if(a.length){let s=a[a.length-1],o=s.selectionsAfter.slice(Math.max(0,s.selectionsAfter.length-MaxSelectionsPerEvent));return o.length&&o[o.length-1].eq(e)?a:(o.push(e),updateBranch(a,a.length-1,1e9,s.setSelAfter(o)))}else return[HistEvent.selection([e])]}function popSelection(a){let e=a[a.length-1],s=a.slice();return s[a.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),s}function addMappingToBranch(a,e){if(!a.length)return a;let s=a.length,o=none$1;for(;s;){let c=mapEvent(a[s-1],e,o);if(c.changes&&!c.changes.empty||c.effects.length){let d=a.slice(0,s);return d[s-1]=c,d}else e=c.mapped,s--,o=c.selectionsAfter}return o.length?[HistEvent.selection(o)]:none$1}function mapEvent(a,e,s){let o=conc(a.selectionsAfter.length?a.selectionsAfter.map(b=>b.map(e)):none$1,s);if(!a.changes)return HistEvent.selection(o);let c=a.changes.map(e),d=e.mapDesc(a.changes,!0),_=a.mapped?a.mapped.composeDesc(d):d;return new HistEvent(c,StateEffect.mapEffects(a.effects,e),_,a.startSelection.map(d),o)}const joinableUserEvent=/^(input\.type|delete)($|\.)/;class HistoryState{constructor(e,s,o=0,c=void 0){this.done=e,this.undone=s,this.prevTime=o,this.prevUserEvent=c}isolate(){return this.prevTime?new HistoryState(this.done,this.undone):this}addChanges(e,s,o,c,d){let _=this.done,b=_[_.length-1];return b&&b.changes&&!b.changes.empty&&e.changes&&(!o||joinableUserEvent.test(o))&&(!b.selectionsAfter.length&&s-this.prevTime0&&s-this.prevTimes.empty?a.moveByChar(s,e):rangeEnd(s,e))}function ltrAtCursor(a){return a.textDirectionAt(a.state.selection.main.head)==Direction.LTR}const cursorCharLeft=a=>cursorByChar(a,!ltrAtCursor(a)),cursorCharRight=a=>cursorByChar(a,ltrAtCursor(a));function cursorByGroup(a,e){return moveSel(a,s=>s.empty?a.moveByGroup(s,e):rangeEnd(s,e))}const cursorGroupLeft=a=>cursorByGroup(a,!ltrAtCursor(a)),cursorGroupRight=a=>cursorByGroup(a,ltrAtCursor(a));function interestingNode(a,e,s){if(e.type.prop(s))return!0;let o=e.to-e.from;return o&&(o>2||/[^\s,.;:]/.test(a.sliceDoc(e.from,e.to)))||e.firstChild}function moveBySyntax(a,e,s){let o=syntaxTree(a).resolveInner(e.head),c=s?NodeProp.closedBy:NodeProp.openedBy;for(let k=e.head;;){let $=s?o.childAfter(k):o.childBefore(k);if(!$)break;interestingNode(a,$,c)?o=$:k=s?$.to:$.from}let d=o.type.prop(c),_,b;return d&&(_=s?matchBrackets(a,o.from,1):matchBrackets(a,o.to,-1))&&_.matched?b=s?_.end.to:_.end.from:b=s?o.to:o.from,EditorSelection.cursor(b,s?-1:1)}const cursorSyntaxLeft=a=>moveSel(a,e=>moveBySyntax(a.state,e,!ltrAtCursor(a))),cursorSyntaxRight=a=>moveSel(a,e=>moveBySyntax(a.state,e,ltrAtCursor(a)));function cursorByLine(a,e){return moveSel(a,s=>{if(!s.empty)return rangeEnd(s,e);let o=a.moveVertically(s,e);return o.head!=s.head?o:a.moveToLineBoundary(s,e)})}const cursorLineUp=a=>cursorByLine(a,!1),cursorLineDown=a=>cursorByLine(a,!0);function pageHeight(a){return Math.max(a.defaultLineHeight,Math.min(a.dom.clientHeight,innerHeight)-5)}function cursorByPage(a,e){let{state:s}=a,o=updateSel(s.selection,b=>b.empty?a.moveVertically(b,e,pageHeight(a)):rangeEnd(b,e));if(o.eq(s.selection))return!1;let c=a.coordsAtPos(s.selection.main.head),d=a.scrollDOM.getBoundingClientRect(),_;return c&&c.top>d.top&&c.bottomcursorByPage(a,!1),cursorPageDown=a=>cursorByPage(a,!0);function moveByLineBoundary(a,e,s){let o=a.lineBlockAt(e.head),c=a.moveToLineBoundary(e,s);if(c.head==e.head&&c.head!=(s?o.to:o.from)&&(c=a.moveToLineBoundary(e,s,!1)),!s&&c.head==o.from&&o.length){let d=/^\s*/.exec(a.state.sliceDoc(o.from,Math.min(o.from+100,o.to)))[0].length;d&&e.head!=o.from+d&&(c=EditorSelection.cursor(o.from+d))}return c}const cursorLineBoundaryForward=a=>moveSel(a,e=>moveByLineBoundary(a,e,!0)),cursorLineBoundaryBackward=a=>moveSel(a,e=>moveByLineBoundary(a,e,!1)),cursorLineStart=a=>moveSel(a,e=>EditorSelection.cursor(a.lineBlockAt(e.head).from,1)),cursorLineEnd=a=>moveSel(a,e=>EditorSelection.cursor(a.lineBlockAt(e.head).to,-1));function toMatchingBracket(a,e,s){let o=!1,c=updateSel(a.selection,d=>{let _=matchBrackets(a,d.head,-1)||matchBrackets(a,d.head,1)||d.head>0&&matchBrackets(a,d.head-1,1)||d.headtoMatchingBracket(a,e,!1);function extendSel(a,e){let s=updateSel(a.state.selection,o=>{let c=e(o);return EditorSelection.range(o.anchor,c.head,c.goalColumn)});return s.eq(a.state.selection)?!1:(a.dispatch(setSel(a.state,s)),!0)}function selectByChar(a,e){return extendSel(a,s=>a.moveByChar(s,e))}const selectCharLeft=a=>selectByChar(a,!ltrAtCursor(a)),selectCharRight=a=>selectByChar(a,ltrAtCursor(a));function selectByGroup(a,e){return extendSel(a,s=>a.moveByGroup(s,e))}const selectGroupLeft=a=>selectByGroup(a,!ltrAtCursor(a)),selectGroupRight=a=>selectByGroup(a,ltrAtCursor(a)),selectSyntaxLeft=a=>extendSel(a,e=>moveBySyntax(a.state,e,!ltrAtCursor(a))),selectSyntaxRight=a=>extendSel(a,e=>moveBySyntax(a.state,e,ltrAtCursor(a)));function selectByLine(a,e){return extendSel(a,s=>a.moveVertically(s,e))}const selectLineUp=a=>selectByLine(a,!1),selectLineDown=a=>selectByLine(a,!0);function selectByPage(a,e){return extendSel(a,s=>a.moveVertically(s,e,pageHeight(a)))}const selectPageUp=a=>selectByPage(a,!1),selectPageDown=a=>selectByPage(a,!0),selectLineBoundaryForward=a=>extendSel(a,e=>moveByLineBoundary(a,e,!0)),selectLineBoundaryBackward=a=>extendSel(a,e=>moveByLineBoundary(a,e,!1)),selectLineStart=a=>extendSel(a,e=>EditorSelection.cursor(a.lineBlockAt(e.head).from)),selectLineEnd=a=>extendSel(a,e=>EditorSelection.cursor(a.lineBlockAt(e.head).to)),cursorDocStart=({state:a,dispatch:e})=>(e(setSel(a,{anchor:0})),!0),cursorDocEnd=({state:a,dispatch:e})=>(e(setSel(a,{anchor:a.doc.length})),!0),selectDocStart=({state:a,dispatch:e})=>(e(setSel(a,{anchor:a.selection.main.anchor,head:0})),!0),selectDocEnd=({state:a,dispatch:e})=>(e(setSel(a,{anchor:a.selection.main.anchor,head:a.doc.length})),!0),selectAll=({state:a,dispatch:e})=>(e(a.update({selection:{anchor:0,head:a.doc.length},userEvent:"select"})),!0),selectLine=({state:a,dispatch:e})=>{let s=selectedLineBlocks(a).map(({from:o,to:c})=>EditorSelection.range(o,Math.min(c+1,a.doc.length)));return e(a.update({selection:EditorSelection.create(s),userEvent:"select"})),!0},selectParentSyntax=({state:a,dispatch:e})=>{let s=updateSel(a.selection,o=>{var c;let d=syntaxTree(a).resolveInner(o.head,1);for(;!(d.from=o.to||d.to>o.to&&d.from<=o.from||!(!((c=d.parent)===null||c===void 0)&&c.parent));)d=d.parent;return EditorSelection.range(d.to,d.from)});return e(setSel(a,s)),!0},simplifySelection=({state:a,dispatch:e})=>{let s=a.selection,o=null;return s.ranges.length>1?o=EditorSelection.create([s.main]):s.main.empty||(o=EditorSelection.create([EditorSelection.cursor(s.main.head)])),o?(e(setSel(a,o)),!0):!1};function deleteBy({state:a,dispatch:e},s){if(a.readOnly)return!1;let o="delete.selection",c=a.changeByRange(d=>{let{from:_,to:b}=d;if(_==b){let k=s(_);k<_?o="delete.backward":k>_&&(o="delete.forward"),_=Math.min(_,k),b=Math.max(b,k)}return _==b?{range:d}:{changes:{from:_,to:b},range:EditorSelection.cursor(_)}});return c.changes.empty?!1:(e(a.update(c,{scrollIntoView:!0,userEvent:o,effects:o=="delete.selection"?EditorView.announce.of(a.phrase("Selection deleted")):void 0})),!0)}function skipAtomic(a,e,s){if(a instanceof EditorView)for(let o of a.state.facet(EditorView.atomicRanges).map(c=>c(a)))o.between(e,e,(c,d)=>{ce&&(e=s?d:c)});return e}const deleteByChar=(a,e)=>deleteBy(a,s=>{let{state:o}=a,c=o.doc.lineAt(s),d,_;if(!e&&s>c.from&&sdeleteByChar(a,!1),deleteCharForward=a=>deleteByChar(a,!0),deleteByGroup=(a,e)=>deleteBy(a,s=>{let o=s,{state:c}=a,d=c.doc.lineAt(o),_=c.charCategorizer(o);for(let b=null;;){if(o==(e?d.to:d.from)){o==s&&d.number!=(e?c.doc.lines:1)&&(o+=e?1:-1);break}let k=findClusterBreak(d.text,o-d.from,e)+d.from,$=d.text.slice(Math.min(o,k)-d.from,Math.max(o,k)-d.from),j=_($);if(b!=null&&j!=b)break;($!=" "||o!=s)&&(b=j),o=k}return skipAtomic(a,o,e)}),deleteGroupBackward=a=>deleteByGroup(a,!1),deleteGroupForward=a=>deleteByGroup(a,!0),deleteToLineEnd=a=>deleteBy(a,e=>{let s=a.lineBlockAt(e).to;return skipAtomic(a,edeleteBy(a,e=>{let s=a.lineBlockAt(e).from;return skipAtomic(a,e>s?s:Math.max(0,e-1),!1)}),splitLine=({state:a,dispatch:e})=>{if(a.readOnly)return!1;let s=a.changeByRange(o=>({changes:{from:o.from,to:o.to,insert:Text.of(["",""])},range:EditorSelection.cursor(o.from)}));return e(a.update(s,{scrollIntoView:!0,userEvent:"input"})),!0},transposeChars=({state:a,dispatch:e})=>{if(a.readOnly)return!1;let s=a.changeByRange(o=>{if(!o.empty||o.from==0||o.from==a.doc.length)return{range:o};let c=o.from,d=a.doc.lineAt(c),_=c==d.from?c-1:findClusterBreak(d.text,c-d.from,!1)+d.from,b=c==d.to?c+1:findClusterBreak(d.text,c-d.from,!0)+d.from;return{changes:{from:_,to:b,insert:a.doc.slice(c,b).append(a.doc.slice(_,c))},range:EditorSelection.cursor(b)}});return s.changes.empty?!1:(e(a.update(s,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function selectedLineBlocks(a){let e=[],s=-1;for(let o of a.selection.ranges){let c=a.doc.lineAt(o.from),d=a.doc.lineAt(o.to);if(!o.empty&&o.to==d.from&&(d=a.doc.lineAt(o.to-1)),s>=c.number){let _=e[e.length-1];_.to=d.to,_.ranges.push(o)}else e.push({from:c.from,to:d.to,ranges:[o]});s=d.number+1}return e}function moveLine(a,e,s){if(a.readOnly)return!1;let o=[],c=[];for(let d of selectedLineBlocks(a)){if(s?d.to==a.doc.length:d.from==0)continue;let _=a.doc.lineAt(s?d.to+1:d.from-1),b=_.length+1;if(s){o.push({from:d.to,to:_.to},{from:d.from,insert:_.text+a.lineBreak});for(let k of d.ranges)c.push(EditorSelection.range(Math.min(a.doc.length,k.anchor+b),Math.min(a.doc.length,k.head+b)))}else{o.push({from:_.from,to:d.from},{from:d.to,insert:a.lineBreak+_.text});for(let k of d.ranges)c.push(EditorSelection.range(k.anchor-b,k.head-b))}}return o.length?(e(a.update({changes:o,scrollIntoView:!0,selection:EditorSelection.create(c,a.selection.mainIndex),userEvent:"move.line"})),!0):!1}const moveLineUp=({state:a,dispatch:e})=>moveLine(a,e,!1),moveLineDown=({state:a,dispatch:e})=>moveLine(a,e,!0);function copyLine(a,e,s){if(a.readOnly)return!1;let o=[];for(let c of selectedLineBlocks(a))s?o.push({from:c.from,insert:a.doc.slice(c.from,c.to)+a.lineBreak}):o.push({from:c.to,insert:a.lineBreak+a.doc.slice(c.from,c.to)});return e(a.update({changes:o,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const copyLineUp=({state:a,dispatch:e})=>copyLine(a,e,!1),copyLineDown=({state:a,dispatch:e})=>copyLine(a,e,!0),deleteLine=a=>{if(a.state.readOnly)return!1;let{state:e}=a,s=e.changes(selectedLineBlocks(e).map(({from:c,to:d})=>(c>0?c--:da.moveVertically(c,!0)).map(s);return a.dispatch({changes:s,selection:o,scrollIntoView:!0,userEvent:"delete.line"}),!0};function isBetweenBrackets(a,e){if(/\(\)|\[\]|\{\}/.test(a.sliceDoc(e-1,e+1)))return{from:e,to:e};let s=syntaxTree(a).resolveInner(e),o=s.childBefore(e),c=s.childAfter(e),d;return o&&c&&o.to<=e&&c.from>=e&&(d=o.type.prop(NodeProp.closedBy))&&d.indexOf(c.name)>-1&&a.doc.lineAt(o.to).from==a.doc.lineAt(c.from).from?{from:o.to,to:c.from}:null}const insertNewlineAndIndent=newlineAndIndent(!1),insertBlankLine=newlineAndIndent(!0);function newlineAndIndent(a){return({state:e,dispatch:s})=>{if(e.readOnly)return!1;let o=e.changeByRange(c=>{let{from:d,to:_}=c,b=e.doc.lineAt(d),k=!a&&d==_&&isBetweenBrackets(e,d);a&&(d=_=(_<=b.to?b:e.doc.lineAt(_)).to);let $=new IndentContext(e,{simulateBreak:d,simulateDoubleBreak:!!k}),j=getIndentation($,d);for(j==null&&(j=/^\s*/.exec(e.doc.lineAt(d).text)[0].length);_b.from&&d{let c=[];for(let _=o.from;_<=o.to;){let b=a.doc.lineAt(_);b.number>s&&(o.empty||o.to>b.from)&&(e(b,c,o),s=b.number),_=b.to+1}let d=a.changes(c);return{changes:c,range:EditorSelection.range(d.mapPos(o.anchor,1),d.mapPos(o.head,1))}})}const indentSelection=({state:a,dispatch:e})=>{if(a.readOnly)return!1;let s=Object.create(null),o=new IndentContext(a,{overrideIndentation:d=>{let _=s[d];return _==null?-1:_}}),c=changeBySelectedLine(a,(d,_,b)=>{let k=getIndentation(o,d.from);if(k==null)return;/\S/.test(d.text)||(k=0);let $=/^\s*/.exec(d.text)[0],j=indentString(a,k);($!=j||b.froma.readOnly?!1:(e(a.update(changeBySelectedLine(a,(s,o)=>{o.push({from:s.from,insert:a.facet(indentUnit)})}),{userEvent:"input.indent"})),!0),indentLess=({state:a,dispatch:e})=>a.readOnly?!1:(e(a.update(changeBySelectedLine(a,(s,o)=>{let c=/^\s*/.exec(s.text)[0];if(!c)return;let d=countColumn(c,a.tabSize),_=0,b=indentString(a,Math.max(0,d-getIndentUnit(a)));for(;_({mac:a.key,run:a.run,shift:a.shift}))),defaultKeymap=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:cursorSyntaxLeft,shift:selectSyntaxLeft},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cursorSyntaxRight,shift:selectSyntaxRight},{key:"Alt-ArrowUp",run:moveLineUp},{key:"Shift-Alt-ArrowUp",run:copyLineUp},{key:"Alt-ArrowDown",run:moveLineDown},{key:"Shift-Alt-ArrowDown",run:copyLineDown},{key:"Escape",run:simplifySelection},{key:"Mod-Enter",run:insertBlankLine},{key:"Alt-l",mac:"Ctrl-l",run:selectLine},{key:"Mod-i",run:selectParentSyntax,preventDefault:!0},{key:"Mod-[",run:indentLess},{key:"Mod-]",run:indentMore},{key:"Mod-Alt-\\",run:indentSelection},{key:"Shift-Mod-k",run:deleteLine},{key:"Shift-Mod-\\",run:cursorMatchingBracket},{key:"Mod-/",run:toggleComment},{key:"Alt-A",run:toggleBlockComment}].concat(standardKeymap),indentWithTab={key:"Tab",run:indentMore,shift:indentLess};function crelt(){var a=arguments[0];typeof a=="string"&&(a=document.createElement(a));var e=1,s=arguments[1];if(s&&typeof s=="object"&&s.nodeType==null&&!Array.isArray(s)){for(var o in s)if(Object.prototype.hasOwnProperty.call(s,o)){var c=s[o];typeof c=="string"?a.setAttribute(o,c):c!=null&&(a[o]=c)}e++}for(;ea.normalize("NFKD"):a=>a;class SearchCursor{constructor(e,s,o=0,c=e.length,d){this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(o,c),this.bufferStart=o,this.normalize=d?_=>d(basicNormalize(_)):basicNormalize,this.query=this.normalize(s)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return codePointAt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let s=fromCodePoint(e),o=this.bufferStart+this.bufferPos;this.bufferPos+=codePointSize(e);let c=this.normalize(s);for(let d=0,_=o;;d++){let b=c.charCodeAt(d),k=this.match(b,_);if(k)return this.value=k,this;if(d==c.length-1)break;_==o&&dthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let s=this.matchPos<=this.to&&this.re.exec(this.curLine);if(s){let o=this.curLineStart+s.index,c=o+s[0].length;if(this.matchPos=c+(o==c?1:0),o==this.curLine.length&&this.nextLine(),othis.value.to)return this.value={from:o,to:c,match:s},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=o||c.to<=s){let b=new FlattenedDoc(s,e.sliceString(s,o));return flattened.set(e,b),b}if(c.from==s&&c.to==o)return c;let{text:d,from:_}=c;return _>s&&(d=e.sliceString(s,_)+d,_=s),c.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,s=this.re.exec(this.flat.text);if(s&&!s[0]&&s.index==e&&(this.re.lastIndex=e+1,s=this.re.exec(this.flat.text)),s&&this.flat.tothis.flat.text.length-10&&(s=null),s){let o=this.flat.from+s.index,c=o+s[0].length;return this.value={from:o,to:c,match:s},this.matchPos=c+(o==c?1:0),this}else{if(this.flat.to==this.to)return this.done=!0,this;this.flat=FlattenedDoc.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}}typeof Symbol!="undefined"&&(RegExpCursor.prototype[Symbol.iterator]=MultilineRegExpCursor.prototype[Symbol.iterator]=function(){return this});function validRegExp(a){try{return new RegExp(a,baseFlags),!0}catch{return!1}}function createLineDialog(a){let e=crelt("input",{class:"cm-textfield",name:"line"}),s=crelt("form",{class:"cm-gotoLine",onkeydown:c=>{c.keyCode==27?(c.preventDefault(),a.dispatch({effects:dialogEffect.of(!1)}),a.focus()):c.keyCode==13&&(c.preventDefault(),o())},onsubmit:c=>{c.preventDefault(),o()}},crelt("label",a.state.phrase("Go to line"),": ",e)," ",crelt("button",{class:"cm-button",type:"submit"},a.state.phrase("go")));function o(){let c=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!c)return;let{state:d}=a,_=d.doc.lineAt(d.selection.main.head),[,b,k,$,j]=c,_e=$?+$.slice(1):0,et=k?+k:_.number;if(k&&j){let nt=et/100;b&&(nt=nt*(b=="-"?-1:1)+_.number/d.doc.lines),et=Math.round(d.doc.lines*nt)}else k&&b&&(et=et*(b=="-"?-1:1)+_.number);let tt=d.doc.line(Math.max(1,Math.min(d.doc.lines,et)));a.dispatch({effects:dialogEffect.of(!1),selection:EditorSelection.cursor(tt.from+Math.max(0,Math.min(_e,tt.length))),scrollIntoView:!0}),a.focus()}return{dom:s}}const dialogEffect=StateEffect.define(),dialogField=StateField.define({create(){return!0},update(a,e){for(let s of e.effects)s.is(dialogEffect)&&(a=s.value);return a},provide:a=>showPanel.from(a,e=>e?createLineDialog:null)}),gotoLine=a=>{let e=getPanel(a,createLineDialog);if(!e){let s=[dialogEffect.of(!0)];a.state.field(dialogField,!1)==null&&s.push(StateEffect.appendConfig.of([dialogField,baseTheme$1$1])),a.dispatch({effects:s}),e=getPanel(a,createLineDialog)}return e&&e.dom.querySelector("input").focus(),!0},baseTheme$1$1=EditorView.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),defaultHighlightOptions={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},highlightConfig=Facet.define({combine(a){return combineConfig(a,defaultHighlightOptions,{highlightWordAroundCursor:(e,s)=>e||s,minSelectionLength:Math.min,maxMatches:Math.min})}});function highlightSelectionMatches(a){let e=[defaultTheme,matchHighlighter];return a&&e.push(highlightConfig.of(a)),e}const matchDeco=Decoration.mark({class:"cm-selectionMatch"}),mainMatchDeco=Decoration.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function insideWordBoundaries(a,e,s,o){return(s==0||a(e.sliceDoc(s-1,s))!=CharCategory.Word)&&(o==e.doc.length||a(e.sliceDoc(o,o+1))!=CharCategory.Word)}function insideWord(a,e,s,o){return a(e.sliceDoc(s,s+1))==CharCategory.Word&&a(e.sliceDoc(o-1,o))==CharCategory.Word}const matchHighlighter=ViewPlugin.fromClass(class{constructor(a){this.decorations=this.getDeco(a)}update(a){(a.selectionSet||a.docChanged||a.viewportChanged)&&(this.decorations=this.getDeco(a.view))}getDeco(a){let e=a.state.facet(highlightConfig),{state:s}=a,o=s.selection;if(o.ranges.length>1)return Decoration.none;let c=o.main,d,_=null;if(c.empty){if(!e.highlightWordAroundCursor)return Decoration.none;let k=s.wordAt(c.head);if(!k)return Decoration.none;_=s.charCategorizer(c.head),d=s.sliceDoc(k.from,k.to)}else{let k=c.to-c.from;if(k200)return Decoration.none;if(e.wholeWords){if(d=s.sliceDoc(c.from,c.to),_=s.charCategorizer(c.head),!(insideWordBoundaries(_,s,c.from,c.to)&&insideWord(_,s,c.from,c.to)))return Decoration.none}else if(d=s.sliceDoc(c.from,c.to).trim(),!d)return Decoration.none}let b=[];for(let k of a.visibleRanges){let $=new SearchCursor(s.doc,d,k.from,k.to);for(;!$.next().done;){let{from:j,to:_e}=$.value;if((!_||insideWordBoundaries(_,s,j,_e))&&(c.empty&&j<=c.from&&_e>=c.to?b.push(mainMatchDeco.range(j,_e)):(j>=c.to||_e<=c.from)&&b.push(matchDeco.range(j,_e)),b.length>e.maxMatches))return Decoration.none}}return Decoration.set(b)}},{decorations:a=>a.decorations}),defaultTheme=EditorView.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),selectWord=({state:a,dispatch:e})=>{let{selection:s}=a,o=EditorSelection.create(s.ranges.map(c=>a.wordAt(c.head)||EditorSelection.cursor(c.head)),s.mainIndex);return o.eq(s)?!1:(e(a.update({selection:o})),!0)};function findNextOccurrence(a,e){let{main:s,ranges:o}=a.selection,c=a.wordAt(s.head),d=c&&c.from==s.from&&c.to==s.to;for(let _=!1,b=new SearchCursor(a.doc,e,o[o.length-1].to);;)if(b.next(),b.done){if(_)return null;b=new SearchCursor(a.doc,e,0,Math.max(0,o[o.length-1].from-1)),_=!0}else{if(_&&o.some(k=>k.from==b.value.from))continue;if(d){let k=a.wordAt(b.value.from);if(!k||k.from!=b.value.from||k.to!=b.value.to)continue}return b.value}}const selectNextOccurrence=({state:a,dispatch:e})=>{let{ranges:s}=a.selection;if(s.some(d=>d.from===d.to))return selectWord({state:a,dispatch:e});let o=a.sliceDoc(s[0].from,s[0].to);if(a.selection.ranges.some(d=>a.sliceDoc(d.from,d.to)!=o))return!1;let c=findNextOccurrence(a,o);return c?(e(a.update({selection:a.selection.addRange(EditorSelection.range(c.from,c.to),!1),effects:EditorView.scrollIntoView(c.to)})),!0):!1},searchConfigFacet=Facet.define({combine(a){var e;return{top:a.reduce((s,o)=>s!=null?s:o.top,void 0)||!1,caseSensitive:a.reduce((s,o)=>s!=null?s:o.caseSensitive,void 0)||!1,createPanel:((e=a.find(s=>s.createPanel))===null||e===void 0?void 0:e.createPanel)||(s=>new SearchPanel(s))}}});class SearchQuery{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||validRegExp(this.search)),this.unquoted=e.literal?this.search:this.search.replace(/\\([nrt\\])/g,(s,o)=>o=="n"?` +`:o=="r"?"\r":o=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp}create(){return this.regexp?new RegExpQuery(this):new StringQuery(this)}getCursor(e,s=0,o=e.length){return this.regexp?regexpCursor(this,e,s,o):stringCursor(this,e,s,o)}}class QueryType{constructor(e){this.spec=e}}function stringCursor(a,e,s,o){return new SearchCursor(e,a.unquoted,s,o,a.caseSensitive?void 0:c=>c.toLowerCase())}class StringQuery extends QueryType{constructor(e){super(e)}nextMatch(e,s,o){let c=stringCursor(this.spec,e,o,e.length).nextOverlapping();return c.done&&(c=stringCursor(this.spec,e,0,s).nextOverlapping()),c.done?null:c.value}prevMatchInRange(e,s,o){for(let c=o;;){let d=Math.max(s,c-1e4-this.spec.unquoted.length),_=stringCursor(this.spec,e,d,c),b=null;for(;!_.nextOverlapping().done;)b=_.value;if(b)return b;if(d==s)return null;c-=1e4}}prevMatch(e,s,o){return this.prevMatchInRange(e,0,s)||this.prevMatchInRange(e,o,e.length)}getReplacement(e){return this.spec.replace}matchAll(e,s){let o=stringCursor(this.spec,e,0,e.length),c=[];for(;!o.next().done;){if(c.length>=s)return null;c.push(o.value)}return c}highlight(e,s,o,c){let d=stringCursor(this.spec,e,Math.max(0,s-this.spec.unquoted.length),Math.min(o+this.spec.unquoted.length,e.length));for(;!d.next().done;)c(d.value.from,d.value.to)}}function regexpCursor(a,e,s,o){return new RegExpCursor(e,a.search,a.caseSensitive?void 0:{ignoreCase:!0},s,o)}class RegExpQuery extends QueryType{nextMatch(e,s,o){let c=regexpCursor(this.spec,e,o,e.length).next();return c.done&&(c=regexpCursor(this.spec,e,0,s).next()),c.done?null:c.value}prevMatchInRange(e,s,o){for(let c=1;;c++){let d=Math.max(s,o-c*1e4),_=regexpCursor(this.spec,e,d,o),b=null;for(;!_.next().done;)b=_.value;if(b&&(d==s||b.from>d+10))return b;if(d==s)return null}}prevMatch(e,s,o){return this.prevMatchInRange(e,0,s)||this.prevMatchInRange(e,o,e.length)}getReplacement(e){return this.spec.replace.replace(/\$([$&\d+])/g,(s,o)=>o=="$"?"$":o=="&"?e.match[0]:o!="0"&&+o=s)return null;c.push(o.value)}return c}highlight(e,s,o,c){let d=regexpCursor(this.spec,e,Math.max(0,s-250),Math.min(o+250,e.length));for(;!d.next().done;)c(d.value.from,d.value.to)}}const setSearchQuery=StateEffect.define(),togglePanel$1=StateEffect.define(),searchState=StateField.define({create(a){return new SearchState(defaultQuery(a).create(),null)},update(a,e){for(let s of e.effects)s.is(setSearchQuery)?a=new SearchState(s.value.create(),a.panel):s.is(togglePanel$1)&&(a=new SearchState(a.query,s.value?createSearchPanel:null));return a},provide:a=>showPanel.from(a,e=>e.panel)});class SearchState{constructor(e,s){this.query=e,this.panel=s}}const matchMark=Decoration.mark({class:"cm-searchMatch"}),selectedMatchMark=Decoration.mark({class:"cm-searchMatch cm-searchMatch-selected"}),searchHighlighter=ViewPlugin.fromClass(class{constructor(a){this.view=a,this.decorations=this.highlight(a.state.field(searchState))}update(a){let e=a.state.field(searchState);(e!=a.startState.field(searchState)||a.docChanged||a.selectionSet||a.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:a,panel:e}){if(!e||!a.spec.valid)return Decoration.none;let{view:s}=this,o=new RangeSetBuilder;for(let c=0,d=s.visibleRanges,_=d.length;c<_;c++){let{from:b,to:k}=d[c];for(;c<_-1&&k>d[c+1].from-2*250;)k=d[++c].to;a.highlight(s.state.doc,b,k,($,j)=>{let _e=s.state.selection.ranges.some(et=>et.from==$&&et.to==j);o.add($,j,_e?selectedMatchMark:matchMark)})}return o.finish()}},{decorations:a=>a.decorations});function searchCommand(a){return e=>{let s=e.state.field(searchState,!1);return s&&s.query.spec.valid?a(e,s):openSearchPanel(e)}}const findNext=searchCommand((a,{query:e})=>{let{to:s}=a.state.selection.main,o=e.nextMatch(a.state.doc,s,s);return o?(a.dispatch({selection:{anchor:o.from,head:o.to},scrollIntoView:!0,effects:announceMatch(a,o),userEvent:"select.search"}),!0):!1}),findPrevious=searchCommand((a,{query:e})=>{let{state:s}=a,{from:o}=s.selection.main,c=e.prevMatch(s.doc,o,o);return c?(a.dispatch({selection:{anchor:c.from,head:c.to},scrollIntoView:!0,effects:announceMatch(a,c),userEvent:"select.search"}),!0):!1}),selectMatches=searchCommand((a,{query:e})=>{let s=e.matchAll(a.state.doc,1e3);return!s||!s.length?!1:(a.dispatch({selection:EditorSelection.create(s.map(o=>EditorSelection.range(o.from,o.to))),userEvent:"select.search.matches"}),!0)}),selectSelectionMatches=({state:a,dispatch:e})=>{let s=a.selection;if(s.ranges.length>1||s.main.empty)return!1;let{from:o,to:c}=s.main,d=[],_=0;for(let b=new SearchCursor(a.doc,a.sliceDoc(o,c));!b.next().done;){if(d.length>1e3)return!1;b.value.from==o&&(_=d.length),d.push(EditorSelection.range(b.value.from,b.value.to))}return e(a.update({selection:EditorSelection.create(d,_),userEvent:"select.search.matches"})),!0},replaceNext=searchCommand((a,{query:e})=>{let{state:s}=a,{from:o,to:c}=s.selection.main;if(s.readOnly)return!1;let d=e.nextMatch(s.doc,o,o);if(!d)return!1;let _=[],b,k,$=[];if(d.from==o&&d.to==c&&(k=s.toText(e.getReplacement(d)),_.push({from:d.from,to:d.to,insert:k}),d=e.nextMatch(s.doc,d.from,d.to),$.push(EditorView.announce.of(s.phrase("replaced match on line $",s.doc.lineAt(o).number)+"."))),d){let j=_.length==0||_[0].from>=d.to?0:d.to-d.from-k.length;b={anchor:d.from-j,head:d.to-j},$.push(announceMatch(a,d))}return a.dispatch({changes:_,selection:b,scrollIntoView:!!b,effects:$,userEvent:"input.replace"}),!0}),replaceAll=searchCommand((a,{query:e})=>{if(a.state.readOnly)return!1;let s=e.matchAll(a.state.doc,1e9).map(c=>{let{from:d,to:_}=c;return{from:d,to:_,insert:e.getReplacement(c)}});if(!s.length)return!1;let o=a.state.phrase("replaced $ matches",s.length)+".";return a.dispatch({changes:s,effects:EditorView.announce.of(o),userEvent:"input.replace.all"}),!0});function createSearchPanel(a){return a.state.facet(searchConfigFacet).createPanel(a)}function defaultQuery(a,e){var s;let o=a.selection.main,c=o.empty||o.to>o.from+100?"":a.sliceDoc(o.from,o.to),d=(s=e==null?void 0:e.caseSensitive)!==null&&s!==void 0?s:a.facet(searchConfigFacet).caseSensitive;return e&&!c?e:new SearchQuery({search:c.replace(/\n/g,"\\n"),caseSensitive:d})}const openSearchPanel=a=>{let e=a.state.field(searchState,!1);if(e&&e.panel){let s=getPanel(a,createSearchPanel);if(!s)return!1;let o=s.dom.querySelector("[main-field]");if(o&&o!=a.root.activeElement){let c=defaultQuery(a.state,e.query.spec);c.valid&&a.dispatch({effects:setSearchQuery.of(c)}),o.focus(),o.select()}}else a.dispatch({effects:[togglePanel$1.of(!0),e?setSearchQuery.of(defaultQuery(a.state,e.query.spec)):StateEffect.appendConfig.of(searchExtensions)]});return!0},closeSearchPanel=a=>{let e=a.state.field(searchState,!1);if(!e||!e.panel)return!1;let s=getPanel(a,createSearchPanel);return s&&s.dom.contains(a.root.activeElement)&&a.focus(),a.dispatch({effects:togglePanel$1.of(!1)}),!0},searchKeymap=[{key:"Mod-f",run:openSearchPanel,scope:"editor search-panel"},{key:"F3",run:findNext,shift:findPrevious,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:findNext,shift:findPrevious,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:closeSearchPanel,scope:"editor search-panel"},{key:"Mod-Shift-l",run:selectSelectionMatches},{key:"Alt-g",run:gotoLine},{key:"Mod-d",run:selectNextOccurrence,preventDefault:!0}];class SearchPanel{constructor(e){this.view=e;let s=this.query=e.state.field(searchState).query.spec;this.commit=this.commit.bind(this),this.searchField=crelt("input",{value:s.search,placeholder:phrase(e,"Find"),"aria-label":phrase(e,"Find"),class:"cm-textfield",name:"search","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=crelt("input",{value:s.replace,placeholder:phrase(e,"Replace"),"aria-label":phrase(e,"Replace"),class:"cm-textfield",name:"replace",onchange:this.commit,onkeyup:this.commit}),this.caseField=crelt("input",{type:"checkbox",name:"case",checked:s.caseSensitive,onchange:this.commit}),this.reField=crelt("input",{type:"checkbox",name:"re",checked:s.regexp,onchange:this.commit});function o(c,d,_){return crelt("button",{class:"cm-button",name:c,onclick:d,type:"button"},_)}this.dom=crelt("div",{onkeydown:c=>this.keydown(c),class:"cm-search"},[this.searchField,o("next",()=>findNext(e),[phrase(e,"next")]),o("prev",()=>findPrevious(e),[phrase(e,"previous")]),o("select",()=>selectMatches(e),[phrase(e,"all")]),crelt("label",null,[this.caseField,phrase(e,"match case")]),crelt("label",null,[this.reField,phrase(e,"regexp")]),...e.state.readOnly?[]:[crelt("br"),this.replaceField,o("replace",()=>replaceNext(e),[phrase(e,"replace")]),o("replaceAll",()=>replaceAll(e),[phrase(e,"replace all")]),crelt("button",{name:"close",onclick:()=>closeSearchPanel(e),"aria-label":phrase(e,"close"),type:"button"},["\xD7"])]])}commit(){let e=new SearchQuery({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:setSearchQuery.of(e)}))}keydown(e){runScopeHandlers(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?findPrevious:findNext)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),replaceNext(this.view))}update(e){for(let s of e.transactions)for(let o of s.effects)o.is(setSearchQuery)&&!o.value.eq(this.query)&&this.setQuery(o.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(searchConfigFacet).top}}function phrase(a,e){return a.state.phrase(e)}const AnnounceMargin=30,Break=/[\s\.,:;?!]/;function announceMatch(a,{from:e,to:s}){let o=a.state.doc.lineAt(e),c=a.state.doc.lineAt(s).to,d=Math.max(o.from,e-AnnounceMargin),_=Math.min(c,s+AnnounceMargin),b=a.state.sliceDoc(d,_);if(d!=o.from){for(let k=0;kb.length-AnnounceMargin;k--)if(!Break.test(b[k-1])&&Break.test(b[k])){b=b.slice(0,k);break}}return EditorView.announce.of(`${a.state.phrase("current match")}. ${b} ${a.state.phrase("on line")} ${o.number}.`)}const baseTheme$2=EditorView.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),searchExtensions=[searchState,Prec.lowest(searchHighlighter),baseTheme$2];class CompletionContext{constructor(e,s,o){this.state=e,this.pos=s,this.explicit=o,this.abortListeners=[]}tokenBefore(e){let s=syntaxTree(this.state).resolveInner(this.pos,-1);for(;s&&e.indexOf(s.name)<0;)s=s.parent;return s?{from:s.from,to:this.pos,text:this.state.sliceDoc(s.from,this.pos),type:s.type}:null}matchBefore(e){let s=this.state.doc.lineAt(this.pos),o=Math.max(s.from,this.pos-250),c=s.text.slice(o-s.from,this.pos-s.from),d=c.search(ensureAnchor(e,!1));return d<0?null:{from:o+d,to:this.pos,text:c.slice(d)}}get aborted(){return this.abortListeners==null}addEventListener(e,s){e=="abort"&&this.abortListeners&&this.abortListeners.push(s)}}function toSet(a){let e=Object.keys(a).join(""),s=/\w/.test(e);return s&&(e=e.replace(/\w/g,"")),`[${s?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function prefixMatch(a){let e=Object.create(null),s=Object.create(null);for(let{label:c}of a){e[c[0]]=!0;for(let d=1;dtypeof c=="string"?{label:c}:c),[s,o]=e.every(c=>/^\w+$/.test(c.label))?[/\w*$/,/\w+$/]:prefixMatch(e);return c=>{let d=c.matchBefore(o);return d||c.explicit?{from:d?d.from:c.pos,options:e,validFor:s}:null}}function ifNotIn(a,e){return s=>{for(let o=syntaxTree(s.state).resolveInner(s.pos,-1);o;o=o.parent)if(a.indexOf(o.name)>-1)return null;return e(s)}}class Option{constructor(e,s,o){this.completion=e,this.source=s,this.match=o}}function cur(a){return a.selection.main.head}function ensureAnchor(a,e){var s;let{source:o}=a,c=e&&o[0]!="^",d=o[o.length-1]!="$";return!c&&!d?a:new RegExp(`${c?"^":""}(?:${o})${d?"$":""}`,(s=a.flags)!==null&&s!==void 0?s:a.ignoreCase?"i":"")}function insertCompletionText(a,e,s,o){return Object.assign(Object.assign({},a.changeByRange(c=>{if(c==a.selection.main)return{changes:{from:s,to:o,insert:e},range:EditorSelection.cursor(s+e.length)};let d=o-s;return!c.empty||d&&a.sliceDoc(c.from-d,c.from)!=a.sliceDoc(s,o)?{range:c}:{changes:{from:c.from-d,to:c.from,insert:e},range:EditorSelection.cursor(c.from-d+e.length)}})),{userEvent:"input.complete"})}function applyCompletion(a,e){const s=e.completion.apply||e.completion.label;let o=e.source;typeof s=="string"?a.dispatch(insertCompletionText(a.state,s,o.from,o.to)):s(a,e.completion,o.from,o.to)}const SourceCache=new WeakMap;function asSource(a){if(!Array.isArray(a))return a;let e=SourceCache.get(a);return e||SourceCache.set(a,e=completeFromList(a)),e}class FuzzyMatcher{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let s=0;s=48&<<=57||lt>=97&<<=122?2:lt>=65&<<=90?1:0:(ut=fromCodePoint(lt))!=ut.toLowerCase()?1:ut!=ut.toUpperCase()?2:0;(!ot||ct==1&&rt||ht==0&&ct!=0)&&(s[_e]==lt||o[_e]==lt&&(et=!0)?_[_e++]=ot:_.length&&(st=!1)),ht=ct,ot+=codePointSize(lt)}return _e==k&&_[0]==0&&st?this.result(-100+(et?-200:0),_,e):tt==k&&nt==0?[-200-e.length,0,it]:b>-1?[-700-e.length,b,b+this.pattern.length]:tt==k?[-200+-700-e.length,nt,it]:_e==k?this.result(-100+(et?-200:0)+-700+(st?0:-1100),_,e):s.length==2?null:this.result((c[0]?-700:0)+-200+-1100,c,e)}result(e,s,o){let c=[e-o.length],d=1;for(let _ of s){let b=_+(this.astral?codePointSize(codePointAt(o,_)):1);d>1&&c[d-1]==_?c[d-1]=b:(c[d++]=_,c[d++]=b)}return c}}const completionConfig=Facet.define({combine(a){return combineConfig(a,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],compareCompletions:(e,s)=>e.label.localeCompare(s.label)},{defaultKeymap:(e,s)=>e&&s,closeOnBlur:(e,s)=>e&&s,icons:(e,s)=>e&&s,optionClass:(e,s)=>o=>joinClass(e(o),s(o)),addToOptions:(e,s)=>e.concat(s)})}});function joinClass(a,e){return a?e?a+" "+e:a:e}function optionContent(a){let e=a.addToOptions.slice();return a.icons&&e.push({render(s){let o=document.createElement("div");return o.classList.add("cm-completionIcon"),s.type&&o.classList.add(...s.type.split(/\s+/g).map(c=>"cm-completionIcon-"+c)),o.setAttribute("aria-hidden","true"),o},position:20}),e.push({render(s,o,c){let d=document.createElement("span");d.className="cm-completionLabel";let{label:_}=s,b=0;for(let k=1;kb&&d.appendChild(document.createTextNode(_.slice(b,$)));let _e=d.appendChild(document.createElement("span"));_e.appendChild(document.createTextNode(_.slice($,j))),_e.className="cm-completionMatchedText",b=j}return b<_.length&&d.appendChild(document.createTextNode(_.slice(b))),d},position:50},{render(s){if(!s.detail)return null;let o=document.createElement("span");return o.className="cm-completionDetail",o.textContent=s.detail,o},position:80}),e.sort((s,o)=>s.position-o.position).map(s=>s.render)}function rangeAroundSelected(a,e,s){if(a<=s)return{from:0,to:a};if(e<0&&(e=0),e<=a>>1){let c=Math.floor(e/s);return{from:c*s,to:(c+1)*s}}let o=Math.floor((a-e)/s);return{from:a-(o+1)*s,to:a-o*s}}class CompletionTooltip{constructor(e,s){this.view=e,this.stateField=s,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:b=>this.positionInfo(b),key:this};let o=e.state.field(s),{options:c,selected:d}=o.open,_=e.state.facet(completionConfig);this.optionContent=optionContent(_),this.optionClass=_.optionClass,this.range=rangeAroundSelected(c.length,d,_.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.dom.addEventListener("mousedown",b=>{for(let k=b.target,$;k&&k!=this.dom;k=k.parentNode)if(k.nodeName=="LI"&&($=/-(\d+)$/.exec(k.id))&&+$[1]{this.info&&this.view.requestMeasure(this.placeInfo)})}mount(){this.updateSel()}update(e){e.state.field(this.stateField)!=e.startState.field(this.stateField)&&this.updateSel()}positioned(){this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let e=this.view.state.field(this.stateField),s=e.open;if((s.selected=this.range.to)&&(this.range=rangeAroundSelected(s.options.length,s.selected,this.view.state.facet(completionConfig).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(s.options,e.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})),this.updateSelectedOption(s.selected)){this.info&&(this.info.remove(),this.info=null);let{completion:o}=s.options[s.selected],{info:c}=o;if(!c)return;let d=typeof c=="string"?document.createTextNode(c):c(o);if(!d)return;"then"in d?d.then(_=>{_&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(_)}).catch(_=>logException(this.view.state,_,"completion info")):this.addInfoPane(d)}}addInfoPane(e){let s=this.info=document.createElement("div");s.className="cm-tooltip cm-completionInfo",s.appendChild(e),this.dom.appendChild(s),this.view.requestMeasure(this.placeInfo)}updateSelectedOption(e){let s=null;for(let o=this.list.firstChild,c=this.range.from;o;o=o.nextSibling,c++)c==e?o.hasAttribute("aria-selected")||(o.setAttribute("aria-selected","true"),s=o):o.hasAttribute("aria-selected")&&o.removeAttribute("aria-selected");return s&&scrollIntoView(this.list,s),s}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let s=this.dom.getBoundingClientRect(),o=this.info.getBoundingClientRect(),c=e.getBoundingClientRect();if(c.top>Math.min(innerHeight,s.bottom)-10||c.bottomnew CompletionTooltip(e,a)}function scrollIntoView(a,e){let s=a.getBoundingClientRect(),o=e.getBoundingClientRect();o.tops.bottom&&(a.scrollTop+=o.bottom-s.bottom)}function score(a){return(a.boost||0)*100+(a.apply?10:0)+(a.info?5:0)+(a.type?1:0)}function sortOptions(a,e){let s=[],o=0;for(let b of a)if(b.hasResult())if(b.result.filter===!1){let k=b.result.getMatch;for(let $ of b.result.options){let j=[1e9-o++];if(k)for(let _e of k($))j.push(_e);s.push(new Option($,b,j))}}else{let k=new FuzzyMatcher(e.sliceDoc(b.from,b.to)),$;for(let j of b.result.options)($=k.match(j.label))&&(j.boost!=null&&($[0]+=j.boost),s.push(new Option(j,b,$)))}let c=[],d=null,_=e.facet(completionConfig).compareCompletions;for(let b of s.sort((k,$)=>$.match[0]-k.match[0]||_(k.completion,$.completion)))!d||d.label!=b.completion.label||d.detail!=b.completion.detail||d.type!=null&&b.completion.type!=null&&d.type!=b.completion.type||d.apply!=b.completion.apply?c.push(b):score(b.completion)>score(d)&&(c[c.length-1]=b),d=b.completion;return c}class CompletionDialog{constructor(e,s,o,c,d){this.options=e,this.attrs=s,this.tooltip=o,this.timestamp=c,this.selected=d}setSelected(e,s){return e==this.selected||e>=this.options.length?this:new CompletionDialog(this.options,makeAttrs(s,e),this.tooltip,this.timestamp,e)}static build(e,s,o,c,d){let _=sortOptions(e,s);if(!_.length)return null;let b=s.facet(completionConfig).selectOnOpen?0:-1;if(c&&c.selected!=b&&c.selected!=-1){let k=c.options[c.selected].completion;for(let $=0;$<_.length;$++)if(_[$].completion==k){b=$;break}}return new CompletionDialog(_,makeAttrs(o,b),{pos:e.reduce((k,$)=>$.hasResult()?Math.min(k,$.from):k,1e8),create:completionTooltip(completionState),above:d.aboveCursor},c?c.timestamp:Date.now(),b)}map(e){return new CompletionDialog(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected)}}class CompletionState{constructor(e,s,o){this.active=e,this.id=s,this.open=o}static start(){return new CompletionState(none,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:s}=e,o=s.facet(completionConfig),d=(o.override||s.languageDataAt("autocomplete",cur(s)).map(asSource)).map(b=>(this.active.find($=>$.source==b)||new ActiveSource(b,this.active.some($=>$.state!=0)?1:0)).update(e,o));d.length==this.active.length&&d.every((b,k)=>b==this.active[k])&&(d=this.active);let _=e.selection||d.some(b=>b.hasResult()&&e.changes.touchesRange(b.from,b.to))||!sameResults(d,this.active)?CompletionDialog.build(d,s,this.id,this.open,o):this.open&&e.docChanged?this.open.map(e.changes):this.open;!_&&d.every(b=>b.state!=1)&&d.some(b=>b.hasResult())&&(d=d.map(b=>b.hasResult()?new ActiveSource(b.source,0):b));for(let b of e.effects)b.is(setSelectedEffect)&&(_=_&&_.setSelected(b.value,this.id));return d==this.active&&_==this.open?this:new CompletionState(d,this.id,_)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:baseAttrs}}function sameResults(a,e){if(a==e)return!0;for(let s=0,o=0;;){for(;s-1&&(s["aria-activedescendant"]=a+"-"+e),s}const none=[];function getUserEvent(a){return a.isUserEvent("input.type")?"input":a.isUserEvent("delete.backward")?"delete":null}class ActiveSource{constructor(e,s,o=-1){this.source=e,this.state=s,this.explicitPos=o}hasResult(){return!1}update(e,s){let o=getUserEvent(e),c=this;o?c=c.handleUserEvent(e,o,s):e.docChanged?c=c.handleChange(e):e.selection&&c.state!=0&&(c=new ActiveSource(c.source,0));for(let d of e.effects)if(d.is(startCompletionEffect))c=new ActiveSource(c.source,1,d.value?cur(e.state):-1);else if(d.is(closeCompletionEffect))c=new ActiveSource(c.source,0);else if(d.is(setActiveEffect))for(let _ of d.value)_.source==c.source&&(c=_);return c}handleUserEvent(e,s,o){return s=="delete"||!o.activateOnTyping?this.map(e.changes):new ActiveSource(this.source,1)}handleChange(e){return e.changes.touchesRange(cur(e.startState))?new ActiveSource(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new ActiveSource(this.source,this.state,e.mapPos(this.explicitPos))}}class ActiveResult extends ActiveSource{constructor(e,s,o,c,d){super(e,2,s),this.result=o,this.from=c,this.to=d}hasResult(){return!0}handleUserEvent(e,s,o){var c;let d=e.changes.mapPos(this.from),_=e.changes.mapPos(this.to,1),b=cur(e.state);if((this.explicitPos<0?b<=d:b_||s=="delete"&&cur(e.startState)==this.from)return new ActiveSource(this.source,s=="input"&&o.activateOnTyping?1:0);let k=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos),$;return checkValid(this.result.validFor,e.state,d,_)?new ActiveResult(this.source,k,this.result,d,_):this.result.update&&($=this.result.update(this.result,d,_,new CompletionContext(e.state,b,k>=0)))?new ActiveResult(this.source,k,$,$.from,(c=$.to)!==null&&c!==void 0?c:cur(e.state)):new ActiveSource(this.source,1,k)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new ActiveSource(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new ActiveResult(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}function checkValid(a,e,s,o){if(!a)return!1;let c=e.sliceDoc(s,o);return typeof a=="function"?a(c,s,o,e):ensureAnchor(a,!0).test(c)}const startCompletionEffect=StateEffect.define(),closeCompletionEffect=StateEffect.define(),setActiveEffect=StateEffect.define({map(a,e){return a.map(s=>s.map(e))}}),setSelectedEffect=StateEffect.define(),completionState=StateField.define({create(){return CompletionState.start()},update(a,e){return a.update(e)},provide:a=>[showTooltip.from(a,e=>e.tooltip),EditorView.contentAttributes.from(a,e=>e.attrs)]}),CompletionInteractMargin=75;function moveCompletionSelection(a,e="option"){return s=>{let o=s.state.field(completionState,!1);if(!o||!o.open||Date.now()-o.open.timestamp-1?o.open.selected+c*(a?1:-1):a?0:_-1;return b<0?b=e=="page"?0:_-1:b>=_&&(b=e=="page"?_-1:0),s.dispatch({effects:setSelectedEffect.of(b)}),!0}}const acceptCompletion=a=>{let e=a.state.field(completionState,!1);return a.state.readOnly||!e||!e.open||Date.now()-e.open.timestampa.state.field(completionState,!1)?(a.dispatch({effects:startCompletionEffect.of(!0)}),!0):!1,closeCompletion=a=>{let e=a.state.field(completionState,!1);return!e||!e.active.some(s=>s.state!=0)?!1:(a.dispatch({effects:closeCompletionEffect.of(null)}),!0)};class RunningQuery{constructor(e,s){this.active=e,this.context=s,this.time=Date.now(),this.updates=[],this.done=void 0}}const DebounceTime=50,MaxUpdateCount=50,MinAbortTime=1e3,completionPlugin=ViewPlugin.fromClass(class{constructor(a){this.view=a,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let e of a.state.field(completionState).active)e.state==1&&this.startQuery(e)}update(a){let e=a.state.field(completionState);if(!a.selectionSet&&!a.docChanged&&a.startState.field(completionState)==e)return;let s=a.transactions.some(o=>(o.selection||o.docChanged)&&!getUserEvent(o));for(let o=0;oMaxUpdateCount&&Date.now()-c.time>MinAbortTime){for(let d of c.context.abortListeners)try{d()}catch(_){logException(this.view.state,_)}c.context.abortListeners=null,this.running.splice(o--,1)}else c.updates.push(...a.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=e.active.some(o=>o.state==1&&!this.running.some(c=>c.active.source==o.source))?setTimeout(()=>this.startUpdate(),DebounceTime):-1,this.composing!=0)for(let o of a.transactions)getUserEvent(o)=="input"?this.composing=2:this.composing==2&&o.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:a}=this.view,e=a.field(completionState);for(let s of e.active)s.state==1&&!this.running.some(o=>o.active.source==s.source)&&this.startQuery(s)}startQuery(a){let{state:e}=this.view,s=cur(e),o=new CompletionContext(e,s,a.explicitPos==s),c=new RunningQuery(a,o);this.running.push(c),Promise.resolve(a.source(o)).then(d=>{c.context.aborted||(c.done=d||null,this.scheduleAccept())},d=>{this.view.dispatch({effects:closeCompletionEffect.of(null)}),logException(this.view.state,d)})}scheduleAccept(){this.running.every(a=>a.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),DebounceTime))}accept(){var a;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],s=this.view.state.facet(completionConfig);for(let o=0;o_.source==c.active.source);if(d&&d.state==1)if(c.done==null){let _=new ActiveSource(c.active.source,0);for(let b of c.updates)_=_.update(b,s);_.state!=1&&e.push(_)}else this.startQuery(d)}e.length&&this.view.dispatch({effects:setActiveEffect.of(e)})}},{eventHandlers:{blur(){let a=this.view.state.field(completionState,!1);a&&a.tooltip&&this.view.state.facet(completionConfig).closeOnBlur&&this.view.dispatch({effects:closeCompletionEffect.of(null)})},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:startCompletionEffect.of(!1)}),20),this.composing=0}}}),baseTheme$1=EditorView.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",listStyle:"none",margin:0,padding:0,"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"300px"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class FieldPos{constructor(e,s,o,c){this.field=e,this.line=s,this.from=o,this.to=c}}class FieldRange{constructor(e,s,o){this.field=e,this.from=s,this.to=o}map(e){let s=e.mapPos(this.from,-1,MapMode.TrackDel),o=e.mapPos(this.to,1,MapMode.TrackDel);return s==null||o==null?null:new FieldRange(this.field,s,o)}}class Snippet{constructor(e,s){this.lines=e,this.fieldPositions=s}instantiate(e,s){let o=[],c=[s],d=e.doc.lineAt(s),_=/^\s*/.exec(d.text)[0];for(let k of this.lines){if(o.length){let $=_,j=/^\t*/.exec(k)[0].length;for(let _e=0;_enew FieldRange(k.field,c[k.line]+k.from,c[k.line]+k.to));return{text:o,ranges:b}}static parse(e){let s=[],o=[],c=[],d;for(let _ of e.split(/\r\n?|\n/)){for(;d=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(_);){let b=d[1]?+d[1]:null,k=d[2]||d[3]||"",$=-1;for(let j=0;j=$&&_e.field++}c.push(new FieldPos($,o.length,d.index,d.index+k.length)),_=_.slice(0,d.index)+k+_.slice(d.index+d[0].length)}for(let b;b=/([$#])\\{/.exec(_);){_=_.slice(0,b.index)+b[1]+"{"+_.slice(b.index+b[0].length);for(let k of c)k.line==o.length&&k.from>b.index&&(k.from--,k.to--)}o.push(_)}return new Snippet(o,c)}}let fieldMarker=Decoration.widget({widget:new class extends WidgetType{toDOM(){let a=document.createElement("span");return a.className="cm-snippetFieldPosition",a}ignoreEvent(){return!1}}}),fieldRange=Decoration.mark({class:"cm-snippetField"});class ActiveSnippet{constructor(e,s){this.ranges=e,this.active=s,this.deco=Decoration.set(e.map(o=>(o.from==o.to?fieldMarker:fieldRange).range(o.from,o.to)))}map(e){let s=[];for(let o of this.ranges){let c=o.map(e);if(!c)return null;s.push(c)}return new ActiveSnippet(s,this.active)}selectionInsideField(e){return e.ranges.every(s=>this.ranges.some(o=>o.field==this.active&&o.from<=s.from&&o.to>=s.to))}}const setActive=StateEffect.define({map(a,e){return a&&a.map(e)}}),moveToField=StateEffect.define(),snippetState=StateField.define({create(){return null},update(a,e){for(let s of e.effects){if(s.is(setActive))return s.value;if(s.is(moveToField)&&a)return new ActiveSnippet(a.ranges,s.value)}return a&&e.docChanged&&(a=a.map(e.changes)),a&&e.selection&&!a.selectionInsideField(e.selection)&&(a=null),a},provide:a=>EditorView.decorations.from(a,e=>e?e.deco:Decoration.none)});function fieldSelection(a,e){return EditorSelection.create(a.filter(s=>s.field==e).map(s=>EditorSelection.range(s.from,s.to)))}function snippet(a){let e=Snippet.parse(a);return(s,o,c,d)=>{let{text:_,ranges:b}=e.instantiate(s.state,c),k={changes:{from:c,to:d,insert:Text.of(_)},scrollIntoView:!0};if(b.length&&(k.selection=fieldSelection(b,0)),b.length>1){let $=new ActiveSnippet(b,0),j=k.effects=[setActive.of($)];s.state.field(snippetState,!1)===void 0&&j.push(StateEffect.appendConfig.of([snippetState,addSnippetKeymap,snippetPointerHandler,baseTheme$1]))}s.dispatch(s.state.update(k))}}function moveField(a){return({state:e,dispatch:s})=>{let o=e.field(snippetState,!1);if(!o||a<0&&o.active==0)return!1;let c=o.active+a,d=a>0&&!o.ranges.some(_=>_.field==c+a);return s(e.update({selection:fieldSelection(o.ranges,c),effects:setActive.of(d?null:new ActiveSnippet(o.ranges,c))})),!0}}const clearSnippet=({state:a,dispatch:e})=>a.field(snippetState,!1)?(e(a.update({effects:setActive.of(null)})),!0):!1,nextSnippetField=moveField(1),prevSnippetField=moveField(-1),defaultSnippetKeymap=[{key:"Tab",run:nextSnippetField,shift:prevSnippetField},{key:"Escape",run:clearSnippet}],snippetKeymap=Facet.define({combine(a){return a.length?a[0]:defaultSnippetKeymap}}),addSnippetKeymap=Prec.highest(keymap.compute([snippetKeymap],a=>a.facet(snippetKeymap)));function snippetCompletion(a,e){return Object.assign(Object.assign({},e),{apply:snippet(a)})}const snippetPointerHandler=EditorView.domEventHandlers({mousedown(a,e){let s=e.state.field(snippetState,!1),o;if(!s||(o=e.posAtCoords({x:a.clientX,y:a.clientY}))==null)return!1;let c=s.ranges.find(d=>d.from<=o&&d.to>=o);return!c||c.field==s.active?!1:(e.dispatch({selection:fieldSelection(s.ranges,c.field),effects:setActive.of(s.ranges.some(d=>d.field>c.field)?new ActiveSnippet(s.ranges,c.field):null)}),!0)}}),defaults={brackets:["(","[","{","'",'"'],before:")]}:;>"},closeBracketEffect=StateEffect.define({map(a,e){let s=e.mapPos(a,-1,MapMode.TrackAfter);return s==null?void 0:s}}),skipBracketEffect=StateEffect.define({map(a,e){return e.mapPos(a)}}),closedBracket=new class extends RangeValue{};closedBracket.startSide=1;closedBracket.endSide=-1;const bracketState=StateField.define({create(){return RangeSet.empty},update(a,e){if(e.selection){let s=e.state.doc.lineAt(e.selection.main.head).from,o=e.startState.doc.lineAt(e.startState.selection.main.head).from;s!=e.changes.mapPos(o,-1)&&(a=RangeSet.empty)}a=a.map(e.changes);for(let s of e.effects)s.is(closeBracketEffect)?a=a.update({add:[closedBracket.range(s.value,s.value+1)]}):s.is(skipBracketEffect)&&(a=a.update({filter:o=>o!=s.value}));return a}});function closeBrackets(){return[inputHandler,bracketState]}const definedClosing="()[]{}<>";function closing(a){for(let e=0;e{if((android$1?a.composing:a.compositionStarted)||a.state.readOnly)return!1;let c=a.state.selection.main;if(o.length>2||o.length==2&&codePointSize(codePointAt(o,0))==1||e!=c.from||s!=c.to)return!1;let d=insertBracket(a.state,o);return d?(a.dispatch(d),!0):!1}),deleteBracketPair=({state:a,dispatch:e})=>{if(a.readOnly)return!1;let o=config$1(a,a.selection.main.head).brackets||defaults.brackets,c=null,d=a.changeByRange(_=>{if(_.empty){let b=prevChar(a.doc,_.head);for(let k of o)if(k==b&&nextChar(a.doc,_.head)==closing(codePointAt(k,0)))return{changes:{from:_.head-k.length,to:_.head+k.length},range:EditorSelection.cursor(_.head-k.length),userEvent:"delete.backward"}}return{range:c=_}});return c||e(a.update(d,{scrollIntoView:!0})),!c},closeBracketsKeymap=[{key:"Backspace",run:deleteBracketPair}];function insertBracket(a,e){let s=config$1(a,a.selection.main.head),o=s.brackets||defaults.brackets;for(let c of o){let d=closing(codePointAt(c,0));if(e==c)return d==c?handleSame(a,c,o.indexOf(c+c+c)>-1):handleOpen(a,c,d,s.before||defaults.before);if(e==d&&closedBracketAt(a,a.selection.main.from))return handleClose(a,c,d)}return null}function closedBracketAt(a,e){let s=!1;return a.field(bracketState).between(0,a.doc.length,o=>{o==e&&(s=!0)}),s}function nextChar(a,e){let s=a.sliceString(e,e+2);return s.slice(0,codePointSize(codePointAt(s,0)))}function prevChar(a,e){let s=a.sliceString(e-2,e);return codePointSize(codePointAt(s,0))==s.length?s:s.slice(1)}function handleOpen(a,e,s,o){let c=null,d=a.changeByRange(_=>{if(!_.empty)return{changes:[{insert:e,from:_.from},{insert:s,from:_.to}],effects:closeBracketEffect.of(_.to+e.length),range:EditorSelection.range(_.anchor+e.length,_.head+e.length)};let b=nextChar(a.doc,_.head);return!b||/\s/.test(b)||o.indexOf(b)>-1?{changes:{insert:e+s,from:_.head},effects:closeBracketEffect.of(_.head+e.length),range:EditorSelection.cursor(_.head+e.length)}:{range:c=_}});return c?null:a.update(d,{scrollIntoView:!0,userEvent:"input.type"})}function handleClose(a,e,s){let o=null,c=a.selection.ranges.map(d=>d.empty&&nextChar(a.doc,d.head)==s?EditorSelection.cursor(d.head+s.length):o=d);return o?null:a.update({selection:EditorSelection.create(c,a.selection.mainIndex),scrollIntoView:!0,effects:a.selection.ranges.map(({from:d})=>skipBracketEffect.of(d))})}function handleSame(a,e,s){let o=null,c=a.changeByRange(d=>{if(!d.empty)return{changes:[{insert:e,from:d.from},{insert:e,from:d.to}],effects:closeBracketEffect.of(d.to+e.length),range:EditorSelection.range(d.anchor+e.length,d.head+e.length)};let _=d.head,b=nextChar(a.doc,_);if(b==e){if(nodeStart(a,_))return{changes:{insert:e+e,from:_},effects:closeBracketEffect.of(_+e.length),range:EditorSelection.cursor(_+e.length)};if(closedBracketAt(a,_)){let k=s&&a.sliceDoc(_,_+e.length*3)==e+e+e;return{range:EditorSelection.cursor(_+e.length*(k?3:1)),effects:skipBracketEffect.of(_)}}}else{if(s&&a.sliceDoc(_-2*e.length,_)==e+e&&nodeStart(a,_-2*e.length))return{changes:{insert:e+e+e+e,from:_},effects:closeBracketEffect.of(_+e.length),range:EditorSelection.cursor(_+e.length)};if(a.charCategorizer(_)(b)!=CharCategory.Word){let k=a.sliceDoc(_-1,_);if(k!=e&&a.charCategorizer(_)(k)!=CharCategory.Word&&!probablyInString(a,_,e))return{changes:{insert:e+e,from:_},effects:closeBracketEffect.of(_+e.length),range:EditorSelection.cursor(_+e.length)}}}return{range:o=d}});return o?null:a.update(c,{scrollIntoView:!0,userEvent:"input.type"})}function nodeStart(a,e){let s=syntaxTree(a).resolveInner(e+1);return s.parent&&s.from==e}function probablyInString(a,e,s){let o=syntaxTree(a).resolveInner(e,-1);for(let c=0;c<5;c++){if(a.sliceDoc(o.from,o.from+s.length)==s){let _=o.firstChild;for(;_&&_.from==o.from&&_.to-_.from>s.length;){if(a.sliceDoc(_.to-s.length,_.to)==s)return!1;_=_.firstChild}return!0}let d=o.to==e&&o.parent;if(!d)break;o=d}return!1}function autocompletion(a={}){return[completionState,completionConfig.of(a),completionPlugin,completionKeymapExt,baseTheme$1]}const completionKeymap=[{key:"Ctrl-Space",run:startCompletion},{key:"Escape",run:closeCompletion},{key:"ArrowDown",run:moveCompletionSelection(!0)},{key:"ArrowUp",run:moveCompletionSelection(!1)},{key:"PageDown",run:moveCompletionSelection(!0,"page")},{key:"PageUp",run:moveCompletionSelection(!1,"page")},{key:"Enter",run:acceptCompletion}],completionKeymapExt=Prec.highest(keymap.computeN([completionConfig],a=>a.facet(completionConfig).defaultKeymap?[completionKeymap]:[]));class SelectedDiagnostic{constructor(e,s,o){this.from=e,this.to=s,this.diagnostic=o}}class LintState{constructor(e,s,o){this.diagnostics=e,this.panel=s,this.selected=o}static init(e,s,o){let c=e,d=o.facet(lintConfig).markerFilter;d&&(c=d(c));let _=Decoration.set(c.map(b=>b.from==b.to||b.from==b.to-1&&o.doc.lineAt(b.from).to==b.from?Decoration.widget({widget:new DiagnosticWidget(b),diagnostic:b}).range(b.from):Decoration.mark({attributes:{class:"cm-lintRange cm-lintRange-"+b.severity},diagnostic:b}).range(b.from,b.to)),!0);return new LintState(_,s,findDiagnostic(_))}}function findDiagnostic(a,e=null,s=0){let o=null;return a.between(s,1e9,(c,d,{spec:_})=>{if(!(e&&_.diagnostic!=e))return o=new SelectedDiagnostic(c,d,_.diagnostic),!1}),o}function hideTooltip(a,e){return!!(a.effects.some(s=>s.is(setDiagnosticsEffect))||a.changes.touchesRange(e.pos))}function maybeEnableLint(a,e){return a.field(lintState,!1)?e:e.concat(StateEffect.appendConfig.of([lintState,EditorView.decorations.compute([lintState],s=>{let{selected:o,panel:c}=s.field(lintState);return!o||!c||o.from==o.to?Decoration.none:Decoration.set([activeMark.range(o.from,o.to)])}),hoverTooltip(lintTooltip,{hideOn:hideTooltip}),baseTheme]))}function setDiagnostics(a,e){return{effects:maybeEnableLint(a,[setDiagnosticsEffect.of(e)])}}const setDiagnosticsEffect=StateEffect.define(),togglePanel=StateEffect.define(),movePanelSelection=StateEffect.define(),lintState=StateField.define({create(){return new LintState(Decoration.none,null,null)},update(a,e){if(e.docChanged){let s=a.diagnostics.map(e.changes),o=null;if(a.selected){let c=e.changes.mapPos(a.selected.from,1);o=findDiagnostic(s,a.selected.diagnostic,c)||findDiagnostic(s,null,c)}a=new LintState(s,a.panel,o)}for(let s of e.effects)s.is(setDiagnosticsEffect)?a=LintState.init(s.value,a.panel,e.state):s.is(togglePanel)?a=new LintState(a.diagnostics,s.value?LintPanel.open:null,a.selected):s.is(movePanelSelection)&&(a=new LintState(a.diagnostics,a.panel,s.value));return a},provide:a=>[showPanel.from(a,e=>e.panel),EditorView.decorations.from(a,e=>e.diagnostics)]}),activeMark=Decoration.mark({class:"cm-lintRange cm-lintRange-active"});function lintTooltip(a,e,s){let{diagnostics:o}=a.state.field(lintState),c=[],d=2e8,_=0;o.between(e-(s<0?1:0),e+(s>0?1:0),(k,$,{spec:j})=>{e>=k&&e<=$&&(k==$||(e>k||s>0)&&(e<$||s<0))&&(c.push(j.diagnostic),d=Math.min(k,d),_=Math.max($,_))});let b=a.state.facet(lintConfig).tooltipFilter;return b&&(c=b(c)),c.length?{pos:d,end:_,above:a.state.doc.lineAt(d).to<_,create(){return{dom:diagnosticsTooltip(a,c)}}}:null}function diagnosticsTooltip(a,e){return crelt("ul",{class:"cm-tooltip-lint"},e.map(s=>renderDiagnostic(a,s,!1)))}const openLintPanel=a=>{let e=a.state.field(lintState,!1);(!e||!e.panel)&&a.dispatch({effects:maybeEnableLint(a.state,[togglePanel.of(!0)])});let s=getPanel(a,LintPanel.open);return s&&s.dom.querySelector(".cm-panel-lint ul").focus(),!0},closeLintPanel=a=>{let e=a.state.field(lintState,!1);return!e||!e.panel?!1:(a.dispatch({effects:togglePanel.of(!1)}),!0)},nextDiagnostic=a=>{let e=a.state.field(lintState,!1);if(!e)return!1;let s=a.state.selection.main,o=e.diagnostics.iter(s.to+1);return!o.value&&(o=e.diagnostics.iter(0),!o.value||o.from==s.from&&o.to==s.to)?!1:(a.dispatch({selection:{anchor:o.from,head:o.to},scrollIntoView:!0}),!0)},lintKeymap=[{key:"Mod-Shift-m",run:openLintPanel},{key:"F8",run:nextDiagnostic}],lintPlugin=ViewPlugin.fromClass(class{constructor(a){this.view=a,this.timeout=-1,this.set=!0;let{delay:e}=a.state.facet(lintConfig);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){let a=Date.now();if(aPromise.resolve(o(this.view)))).then(o=>{let c=o.reduce((d,_)=>d.concat(_));this.view.state.doc==e.doc&&this.view.dispatch(setDiagnostics(this.view.state,c))},o=>{logException(this.view.state,o)})}}update(a){let e=a.state.facet(lintConfig);(a.docChanged||e!=a.startState.facet(lintConfig))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}}),lintConfig=Facet.define({combine(a){return Object.assign({sources:a.map(e=>e.source)},combineConfig(a.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null}))},enables:lintPlugin});function assignKeys(a){let e=[];if(a)e:for(let{name:s}of a){for(let o=0;od.toLowerCase()==c.toLowerCase())){e.push(c);continue e}}e.push("")}return e}function renderDiagnostic(a,e,s){var o;let c=s?assignKeys(e.actions):[];return crelt("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},crelt("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage():e.message),(o=e.actions)===null||o===void 0?void 0:o.map((d,_)=>{let b=_e=>{_e.preventDefault();let et=findDiagnostic(a.state.field(lintState).diagnostics,e);et&&d.apply(a,et.from,et.to)},{name:k}=d,$=c[_]?k.indexOf(c[_]):-1,j=$<0?k:[k.slice(0,$),crelt("u",k.slice($,$+1)),k.slice($+1)];return crelt("button",{type:"button",class:"cm-diagnosticAction",onclick:b,onmousedown:b,"aria-label":` Action: ${k}${$<0?"":` (access key "${c[_]})"`}.`},j)}),e.source&&crelt("div",{class:"cm-diagnosticSource"},e.source))}class DiagnosticWidget extends WidgetType{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return crelt("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class PanelItem{constructor(e,s){this.diagnostic=s,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=renderDiagnostic(e,s,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class LintPanel{constructor(e){this.view=e,this.items=[];let s=c=>{if(c.keyCode==27)closeLintPanel(this.view),this.view.focus();else if(c.keyCode==38||c.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(c.keyCode==40||c.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(c.keyCode==36)this.moveSelection(0);else if(c.keyCode==35)this.moveSelection(this.items.length-1);else if(c.keyCode==13)this.view.focus();else if(c.keyCode>=65&&c.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:d}=this.items[this.selectedIndex],_=assignKeys(d.actions);for(let b=0;b<_.length;b++)if(_[b].toUpperCase().charCodeAt(0)==c.keyCode){let k=findDiagnostic(this.view.state.field(lintState).diagnostics,d);k&&d.actions[b].apply(e,k.from,k.to)}}else return;c.preventDefault()},o=c=>{for(let d=0;dcloseLintPanel(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(lintState).selected;if(!e)return-1;for(let s=0;s{let $=-1,j;for(let _e=o;_eo&&(this.items.splice(o,$-o),c=!0)),s&&j.diagnostic==s.diagnostic?j.dom.hasAttribute("aria-selected")||(j.dom.setAttribute("aria-selected","true"),d=j):j.dom.hasAttribute("aria-selected")&&j.dom.removeAttribute("aria-selected"),o++});o({sel:d.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:_,panel:b})=>{_.topb.bottom&&(this.list.scrollTop+=_.bottom-b.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),c&&this.sync()}sync(){let e=this.list.firstChild;function s(){let o=e;e=o.nextSibling,o.remove()}for(let o of this.items)if(o.dom.parentNode==this.list){for(;e!=o.dom;)s();e=o.dom.nextSibling}else this.list.insertBefore(o.dom,e);for(;e;)s()}moveSelection(e){if(this.selectedIndex<0)return;let s=this.view.state.field(lintState),o=findDiagnostic(s.diagnostics,this.items[e].diagnostic);!o||this.view.dispatch({selection:{anchor:o.from,head:o.to},scrollIntoView:!0,effects:movePanelSelection.of(o)})}static open(e){return new LintPanel(e)}}function svg(a,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(a)}')`}function underline(a){return svg(``,'width="6" height="3"')}const baseTheme=EditorView.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:underline("#d11")},".cm-lintRange-warning":{backgroundImage:underline("orange")},".cm-lintRange-info":{backgroundImage:underline("#999")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});var basicSetup=function a(e){e===void 0&&(e={});var s=[];e.closeBracketsKeymap!==!1&&(s=s.concat(closeBracketsKeymap)),e.defaultKeymap!==!1&&(s=s.concat(defaultKeymap)),e.searchKeymap!==!1&&(s=s.concat(searchKeymap)),e.historyKeymap!==!1&&(s=s.concat(historyKeymap)),e.foldKeymap!==!1&&(s=s.concat(foldKeymap)),e.completionKeymap!==!1&&(s=s.concat(completionKeymap)),e.lintKeymap!==!1&&(s=s.concat(lintKeymap));var o=[];return e.lineNumbers!==!1&&o.push(lineNumbers()),e.highlightActiveLineGutter!==!1&&o.push(highlightActiveLineGutter()),e.highlightSpecialChars!==!1&&o.push(highlightSpecialChars()),e.history!==!1&&o.push(history()),e.foldGutter!==!1&&o.push(foldGutter()),e.drawSelection!==!1&&o.push(drawSelection()),e.dropCursor!==!1&&o.push(dropCursor()),e.allowMultipleSelections!==!1&&o.push(EditorState.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&o.push(indentOnInput()),e.syntaxHighlighting!==!1&&o.push(syntaxHighlighting(defaultHighlightStyle,{fallback:!0})),e.bracketMatching!==!1&&o.push(bracketMatching()),e.closeBrackets!==!1&&o.push(closeBrackets()),e.autocompletion!==!1&&o.push(autocompletion()),e.rectangularSelection!==!1&&o.push(rectangularSelection()),e.crosshairCursor!==!1&&o.push(crosshairCursor()),e.highlightActiveLine!==!1&&o.push(highlightActiveLine()),e.highlightSelectionMatches!==!1&&o.push(highlightSelectionMatches()),o.concat([keymap.of(s.flat())]).filter(Boolean)};const chalky="#e5c07b",coral="#e06c75",cyan="#56b6c2",invalid="#ffffff",ivory="#abb2bf",stone="#7d8799",malibu="#61afef",sage="#98c379",whiskey="#d19a66",violet="#c678dd",darkBackground="#21252b",highlightBackground="#2c313a",background="#282c34",tooltipBackground="#353a42",selection="#3E4451",cursor="#528bff",oneDarkTheme=EditorView.theme({"&":{color:ivory,backgroundColor:background},".cm-content":{caretColor:cursor},".cm-cursor, .cm-dropCursor":{borderLeftColor:cursor},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:selection},".cm-panels":{backgroundColor:darkBackground,color:ivory},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:highlightBackground},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847",outline:"1px solid #515a6b"},".cm-gutters":{backgroundColor:background,color:stone,border:"none"},".cm-activeLineGutter":{backgroundColor:highlightBackground},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:tooltipBackground},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:tooltipBackground,borderBottomColor:tooltipBackground},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:highlightBackground,color:ivory}}},{dark:!0}),oneDarkHighlightStyle=HighlightStyle.define([{tag:tags.keyword,color:violet},{tag:[tags.name,tags.deleted,tags.character,tags.propertyName,tags.macroName],color:coral},{tag:[tags.function(tags.variableName),tags.labelName],color:malibu},{tag:[tags.color,tags.constant(tags.name),tags.standard(tags.name)],color:whiskey},{tag:[tags.definition(tags.name),tags.separator],color:ivory},{tag:[tags.typeName,tags.className,tags.number,tags.changed,tags.annotation,tags.modifier,tags.self,tags.namespace],color:chalky},{tag:[tags.operator,tags.operatorKeyword,tags.url,tags.escape,tags.regexp,tags.link,tags.special(tags.string)],color:cyan},{tag:[tags.meta,tags.comment],color:stone},{tag:tags.strong,fontWeight:"bold"},{tag:tags.emphasis,fontStyle:"italic"},{tag:tags.strikethrough,textDecoration:"line-through"},{tag:tags.link,color:stone,textDecoration:"underline"},{tag:tags.heading,fontWeight:"bold",color:coral},{tag:[tags.atom,tags.bool,tags.special(tags.variableName)],color:whiskey},{tag:[tags.processingInstruction,tags.string,tags.inserted],color:sage},{tag:tags.invalid,color:invalid}]),oneDark=[oneDarkTheme,syntaxHighlighting(oneDarkHighlightStyle)];var getStatistics=a=>({line:a.state.doc.lineAt(a.state.selection.main.from),lineCount:a.state.doc.lines,lineBreak:a.state.lineBreak,length:a.state.doc.length,readOnly:a.state.readOnly,tabSize:a.state.tabSize,selection:a.state.selection,selectionAsSingle:a.state.selection.asSingle().main,ranges:a.state.selection.ranges,selectionCode:a.state.sliceDoc(a.state.selection.main.from,a.state.selection.main.to),selections:a.state.selection.ranges.map(e=>a.state.sliceDoc(e.from,e.to)),selectedText:a.state.selection.ranges.some(e=>!e.empty)});function useCodeMirror(a){var{value:e,selection:s,onChange:o,onStatistics:c,onCreateEditor:d,onUpdate:_,extensions:b=[],autoFocus:k,theme:$="light",height:j="",minHeight:_e="",maxHeight:et="",placeholder:tt="",width:nt="",minWidth:it="",maxWidth:rt="",editable:st=!0,readOnly:ot=!1,indentWithTab:at=!0,basicSetup:ht=!0,root:lt}=a,[ut,ct]=react.exports.useState(),[dt,ft]=react.exports.useState(),[Et,yt]=react.exports.useState(),gt=EditorView.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),St=EditorView.theme({"&":{height:j,minHeight:_e,maxHeight:et,width:nt,minWidth:it,maxWidth:rt}}),pt=EditorView.updateListener.of(At=>{if(At.docChanged&&typeof o=="function"){var Ot=At.state.doc,vt=Ot.toString();o(vt,At)}c&&c(getStatistics(At))}),mt=[pt,St];switch(at&&mt.unshift(keymap.of([indentWithTab])),ht&&(typeof ht=="boolean"?mt.unshift(basicSetup()):mt.unshift(basicSetup(ht))),tt&&mt.unshift(placeholder(tt)),$){case"light":mt.push(gt);break;case"dark":mt.push(oneDark);break;default:mt.push($);break}return st===!1&&mt.push(EditorView.editable.of(!1)),ot&&mt.push(EditorState.readOnly.of(!0)),_&&typeof _=="function"&&mt.push(EditorView.updateListener.of(_)),mt=mt.concat(b),react.exports.useEffect(()=>{if(ut&&!Et){var At=EditorState.create({doc:e,selection:s,extensions:mt});if(yt(At),!dt){var Ot=new EditorView({state:At,parent:ut,root:lt});ft(Ot),d&&d(Ot,At)}}return()=>{dt&&(yt(void 0),ft(void 0))}},[ut,Et]),react.exports.useEffect(()=>ct(a.container),[a.container]),react.exports.useEffect(()=>()=>{dt&&(dt.destroy(),ft(void 0))},[dt]),react.exports.useEffect(()=>{k&&dt&&dt.focus()},[k,dt]),react.exports.useEffect(()=>{dt&&dt.dispatch({effects:StateEffect.reconfigure.of(mt)})},[$,b,j,_e,et,nt,it,rt,tt,st,ot,at,ht,o,_]),react.exports.useEffect(()=>{var At=dt?dt.state.doc.toString():"";dt&&e!==At&&dt.dispatch({changes:{from:0,to:At.length,insert:e||""}})},[e,dt]),{state:Et,setState:yt,view:dt,setView:ft,container:ut,setContainer:ct}}var jsxRuntime={exports:{}},reactJsxRuntime_production_min={};/** @license React v17.0.2 * react-jsx-runtime.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var f=react.exports,g=60103;reactJsxRuntime_production_min.Fragment=60107;if(typeof Symbol=="function"&&Symbol.for){var h=Symbol.for;g=h("react.element"),reactJsxRuntime_production_min.Fragment=h("react.fragment")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};function q(a,e,s){var o,c={},d=null,_=null;s!==void 0&&(d=""+s),e.key!==void 0&&(d=""+e.key),e.ref!==void 0&&(_=e.ref);for(o in e)n.call(e,o)&&!p.hasOwnProperty(o)&&(c[o]=e[o]);if(a&&a.defaultProps)for(o in e=a.defaultProps,e)c[o]===void 0&&(c[o]=e[o]);return{$$typeof:g,type:a,key:d,ref:_,props:c,_owner:m.current}}reactJsxRuntime_production_min.jsx=q;reactJsxRuntime_production_min.jsxs=q;jsxRuntime.exports=reactJsxRuntime_production_min;const jsx=jsxRuntime.exports.jsx,jsxs=jsxRuntime.exports.jsxs,Fragment=jsxRuntime.exports.Fragment;/*! @license ReactCodeMirror - MIT License - Tom Golden (8162045+tbjgolden@users.noreply.github.com) */var __assign=function(){return __assign=Object.assign||function(e){for(var s,o=1,c=arguments.length;o0)&&!(c=o.next()).done;)d.push(c.value)}catch(b){_={error:b}}finally{try{c&&!c.done&&(s=o.return)&&s.call(o)}finally{if(_)throw _.error}}return d}function __spreadArray(a,e,s){if(s||arguments.length===2)for(var o=0,c=e.length,d;os%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,s,o=0){let c=e.parser.context;return new Stack(e,[],s,o,o,0,[],0,c?new StackContext(c,c.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,s){this.stack.push(this.state,s,this.bufferBase+this.buffer.length),this.state=e}reduce(e){let s=e>>19,o=e&65535,{parser:c}=this.p,d=c.dynamicPrecedence(o);if(d&&(this.score+=d),s==0){this.pushState(c.getGoto(this.state,o,!0),this.reducePos),o_;)this.stack.pop();this.reduceContext(o,b)}storeNode(e,s,o,c=4,d=!1){if(e==0){let _=this,b=this.buffer.length;if(b==0&&_.parent&&(b=_.bufferBase-_.parent.bufferBase,_=_.parent),b>0&&_.buffer[b-4]==0&&_.buffer[b-1]>-1){if(s==o)return;if(_.buffer[b-2]>=s){_.buffer[b-2]=o;return}}}if(!d||this.pos==o)this.buffer.push(e,s,o,c);else{let _=this.buffer.length;if(_>0&&this.buffer[_-4]!=0)for(;_>0&&this.buffer[_-2]>o;)this.buffer[_]=this.buffer[_-4],this.buffer[_+1]=this.buffer[_-3],this.buffer[_+2]=this.buffer[_-2],this.buffer[_+3]=this.buffer[_-1],_-=4,c>4&&(c-=4);this.buffer[_]=e,this.buffer[_+1]=s,this.buffer[_+2]=o,this.buffer[_+3]=c}}shift(e,s,o){let c=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let d=e,{parser:_}=this.p;(o>this.pos||s<=_.maxNode)&&(this.pos=o,_.stateFlag(d,1)||(this.reducePos=o)),this.pushState(d,c),this.shiftContext(s,c),s<=_.maxNode&&this.buffer.push(s,c,o,4)}else this.pos=o,this.shiftContext(s,c),s<=this.p.parser.maxNode&&this.buffer.push(s,c,o,4)}apply(e,s,o){e&65536?this.reduce(e):this.shift(e,s,o)}useNode(e,s){let o=this.p.reused.length-1;(o<0||this.p.reused[o]!=e)&&(this.p.reused.push(e),o++);let c=this.pos;this.reducePos=this.pos=c+e.length,this.pushState(s,c),this.buffer.push(o,c,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,s=e.buffer.length;for(;s>0&&e.buffer[s-2]>e.reducePos;)s-=4;let o=e.buffer.slice(s),c=e.bufferBase+s;for(;e&&c==e.bufferBase;)e=e.parent;return new Stack(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,o,c,this.curContext,this.lookAhead,e)}recoverByDelete(e,s){let o=e<=this.p.parser.maxNode;o&&this.storeNode(e,this.pos,s,4),this.storeNode(0,this.pos,s,o?8:4),this.pos=this.reducePos=s,this.score-=190}canShift(e){for(let s=new SimulatedStack(this);;){let o=this.p.parser.stateSlot(s.state,4)||this.p.parser.hasAction(s.state,e);if((o&65536)==0)return!0;if(o==0)return!1;s.reduce(o)}}recoverByInsert(e){if(this.stack.length>=300)return[];let s=this.p.parser.nextStates(this.state);if(s.length>4<<1||this.stack.length>=120){let c=[];for(let d=0,_;dk&1&&b==_)||c.push(s[d],_)}s=c}let o=[];for(let c=0;c>19,c=e&65535,d=this.stack.length-o*3;if(d<0||s.getGoto(this.stack[d],c,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reduce(e),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let s=0;sthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class StackContext{constructor(e,s){this.tracker=e,this.context=s,this.hash=e.strict?e.hash(s):0}}var Recover;(function(a){a[a.Insert=200]="Insert",a[a.Delete=190]="Delete",a[a.Reduce=100]="Reduce",a[a.MaxNext=4]="MaxNext",a[a.MaxInsertStackDepth=300]="MaxInsertStackDepth",a[a.DampenInsertStackDepth=120]="DampenInsertStackDepth"})(Recover||(Recover={}));class SimulatedStack{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let s=e&65535,o=e>>19;o==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(o-1)*3;let c=this.start.p.parser.getGoto(this.stack[this.base-3],s,!0);this.state=c}}class StackBufferCursor{constructor(e,s,o){this.stack=e,this.pos=s,this.index=o,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,s=e.bufferBase+e.buffer.length){return new StackBufferCursor(e,s,s-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new StackBufferCursor(this.stack,this.pos,this.index)}}class CachedToken{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const nullToken=new CachedToken;class InputStream{constructor(e,s){this.input=e,this.ranges=s,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=nullToken,this.rangeIndex=0,this.pos=this.chunkPos=s[0].from,this.range=s[0],this.end=s[s.length-1].to,this.readNext()}resolveOffset(e,s){let o=this.range,c=this.rangeIndex,d=this.pos+e;for(;do.to:d>=o.to;){if(c==this.ranges.length-1)return null;let _=this.ranges[++c];d+=_.from-o.to,o=_}return d}peek(e){let s=this.chunkOff+e,o,c;if(s>=0&&s=this.chunk2Pos&&ob.to&&(this.chunk2=this.chunk2.slice(0,b.to-o)),c=this.chunk2.charCodeAt(0)}}return o>=this.token.lookAhead&&(this.token.lookAhead=o+1),c}acceptToken(e,s=0){let o=s?this.resolveOffset(s,-1):this.pos;if(o==null||o=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,s){if(s?(this.token=s,s.start=e,s.lookAhead=e+1,s.value=s.extended=-1):this.token=nullToken,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&s<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,s-this.chunkPos);if(e>=this.chunk2Pos&&s<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,s-this.chunk2Pos);if(e>=this.range.from&&s<=this.range.to)return this.input.read(e,s);let o="";for(let c of this.ranges){if(c.from>=s)break;c.to>e&&(o+=this.input.read(Math.max(c.from,e),Math.min(c.to,s)))}return o}}class TokenGroup{constructor(e,s){this.data=e,this.id=s}token(e,s){readToken(this.data,e,s,this.id)}}TokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=!1;class ExternalTokenizer{constructor(e,s={}){this.token=e,this.contextual=!!s.contextual,this.fallback=!!s.fallback,this.extend=!!s.extend}}function readToken(a,e,s,o){let c=0,d=1<0){let j=a[$];if(b.allows(j)&&(e.token.value==-1||e.token.value==j||_.overrides(j,e.token.value))){e.acceptToken(j);break}}for(let $=e.next,j=0,_e=a[c+2];j<_e;){let et=j+_e>>1,tt=k+et+(et<<1),nt=a[tt],it=a[tt+1];if($=it)j=et+1;else{c=a[tt+2],e.advance();continue e}}break}}function decodeArray(a,e=Uint16Array){if(typeof a!="string")return a;let s=null;for(let o=0,c=0;o=92&&_--,_>=34&&_--;let k=_-32;if(k>=46&&(k-=46,b=!0),d+=k,b)break;d*=46}s?s[c++]=d:s=new e(d)}return s}const verbose=typeof process!="undefined"&&/\bparse\b/.test({}.LOG);let stackIDs=null;var Safety;(function(a){a[a.Margin=25]="Margin"})(Safety||(Safety={}));function cutAt(a,e,s){let o=a.fullCursor();for(o.moveTo(e);;)if(!(s<0?o.childBefore(e):o.childAfter(e)))for(;;){if((s<0?o.toe)&&!o.type.isError)return s<0?Math.max(0,Math.min(o.to-1,e-25)):Math.min(a.length,Math.max(o.from+1,e+25));if(s<0?o.prevSibling():o.nextSibling())break;if(!o.parent())return s<0?0:a.length}}class FragmentCursor{constructor(e,s){this.fragments=e,this.nodeSet=s,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?cutAt(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?cutAt(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=_,null;if(d instanceof Tree){if(_==e){if(_=Math.max(this.safeFrom,e)&&(this.trees.push(d),this.start.push(_),this.index.push(0))}else this.index[s]++,this.nextStart=_+d.length}}}class TokenCache{constructor(e,s){this.stream=s,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(o=>new CachedToken)}getActions(e){let s=0,o=null,{parser:c}=e.p,{tokenizers:d}=c,_=c.stateSlot(e.state,3),b=e.curContext?e.curContext.hash:0,k=0;for(let $=0;$_e.end+25&&(k=Math.max(_e.lookAhead,k)),_e.value!=0)){let et=s;if(_e.extended>-1&&(s=this.addActions(e,_e.extended,_e.end,s)),s=this.addActions(e,_e.value,_e.end,s),!j.extend&&(o=_e,s>et))break}}for(;this.actions.length>s;)this.actions.pop();return k&&e.setLookAhead(k),!o&&e.pos==this.stream.end&&(o=new CachedToken,o.value=e.p.parser.eofTerm,o.start=o.end=e.pos,s=this.addActions(e,o.value,o.end,s)),this.mainToken=o,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let s=new CachedToken,{pos:o,p:c}=e;return s.start=o,s.end=Math.min(o+1,c.stream.end),s.value=o==c.stream.end?c.parser.eofTerm:0,s}updateCachedToken(e,s,o){if(s.token(this.stream.reset(o.pos,e),o),e.value>-1){let{parser:c}=o.p;for(let d=0;d=0&&o.p.parser.dialect.allows(_>>1)){(_&1)==0?e.value=_>>1:e.extended=_>>1;break}}}else e.value=0,e.end=Math.min(o.p.stream.end,o.pos+1)}putAction(e,s,o,c){for(let d=0;de.bufferLength*4?new FragmentCursor(o,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,s=this.minStackPos,o=this.stacks=[],c,d;for(let _=0;_s)o.push(b);else{if(this.advanceStack(b,o,e))continue;{c||(c=[],d=[]),c.push(b);let k=this.tokens.getMainToken(b);d.push(k.value,k.end)}}break}}if(!o.length){let _=c&&findFinished(c);if(_)return this.stackToTree(_);if(this.parser.strict)throw verbose&&c&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+s);this.recovering||(this.recovering=5)}if(this.recovering&&c){let _=this.stoppedAt!=null&&c[0].pos>this.stoppedAt?c[0]:this.runRecovery(c,d,o);if(_)return this.stackToTree(_.forceAll())}if(this.recovering){let _=this.recovering==1?1:this.recovering*3;if(o.length>_)for(o.sort((b,k)=>k.score-b.score);o.length>_;)o.pop();o.some(b=>b.reducePos>s)&&this.recovering--}else if(o.length>1){e:for(let _=0;_500&&$.buffer.length>500)if((b.score-$.score||b.buffer.length-$.buffer.length)>0)o.splice(k--,1);else{o.splice(_--,1);continue e}}}}this.minStackPos=o[0].pos;for(let _=1;_ ":"";if(this.stoppedAt!=null&&c>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let $=e.curContext&&e.curContext.tracker.strict,j=$?e.curContext.hash:0;for(let _e=this.fragments.nodeAt(c);_e;){let et=this.parser.nodeSet.types[_e.type.id]==_e.type?d.getGoto(e.state,_e.type.id):-1;if(et>-1&&_e.length&&(!$||(_e.prop(NodeProp.contextHash)||0)==j))return e.useNode(_e,et),verbose&&console.log(_+this.stackID(e)+` (via reuse of ${d.getName(_e.type.id)})`),!0;if(!(_e instanceof Tree)||_e.children.length==0||_e.positions[0]>0)break;let tt=_e.children[0];if(tt instanceof Tree&&_e.positions[0]==0)_e=tt;else break}}let b=d.stateSlot(e.state,4);if(b>0)return e.reduce(b),verbose&&console.log(_+this.stackID(e)+` (via always-reduce ${d.getName(b&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let k=this.tokens.getActions(e);for(let $=0;$c?s.push(nt):o.push(nt)}return!1}advanceFully(e,s){let o=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>o)return pushStackDedup(e,s),!0}}runRecovery(e,s,o){let c=null,d=!1;for(let _=0;_ ":"";if(b.deadEnd&&(d||(d=!0,b.restart(),verbose&&console.log(j+this.stackID(b)+" (restarted)"),this.advanceFully(b,o))))continue;let _e=b.split(),et=j;for(let tt=0;_e.forceReduce()&&tt<10&&(verbose&&console.log(et+this.stackID(_e)+" (via force-reduce)"),!this.advanceFully(_e,o));tt++)verbose&&(et=this.stackID(_e)+" -> ");for(let tt of b.recoverByInsert(k))verbose&&console.log(j+this.stackID(tt)+" (via recover-insert)"),this.advanceFully(tt,o);this.stream.end>b.pos?($==b.pos&&($++,k=0),b.recoverByDelete(k,$),verbose&&console.log(j+this.stackID(b)+` (via recover-delete ${this.parser.getName(k)})`),pushStackDedup(b,o)):(!c||c.scorea;class ContextTracker{constructor(e){this.start=e.start,this.shift=e.shift||id,this.reduce=e.reduce||id,this.reuse=e.reuse||id,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class LRParser extends Parser{constructor(e){if(super(),this.wrappers=[],e.version!=13)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (${13})`);let s=e.nodeNames.split(" ");this.minRepeatTerm=s.length;for(let b=0;be.topRules[b][1]),c=[];for(let b=0;b=0)d(j,k,b[$++]);else{let _e=b[$+-j];for(let et=-j;et>0;et--)d(b[$++],k,_e);$++}}}this.nodeSet=new NodeSet(s.map((b,k)=>NodeType.define({name:k>=this.minRepeatTerm?void 0:b,id:k,props:c[k],top:o.indexOf(k)>-1,error:k==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(k)>-1}))),this.strict=!1,this.bufferLength=DefaultBufferLength;let _=decodeArray(e.tokenData);if(this.context=e.context,this.specialized=new Uint16Array(e.specialized?e.specialized.length:0),this.specializers=[],e.specialized)for(let b=0;btypeof b=="number"?new TokenGroup(_,b):b),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,s,o){let c=new Parse(this,e,s,o);for(let d of this.wrappers)c=d(c,e,s,o);return c}getGoto(e,s,o=!1){let c=this.goto;if(s>=c[0])return-1;for(let d=c[s+1];;){let _=c[d++],b=_&1,k=c[d++];if(b&&o)return k;for(let $=d+(_>>1);d<$;d++)if(c[d]==e)return k;if(b)return-1}}hasAction(e,s){let o=this.data;for(let c=0;c<2;c++)for(let d=this.stateSlot(e,c?2:1),_;;d+=3){if((_=o[d])==65535)if(o[d+1]==1)_=o[d=pair(o,d+2)];else{if(o[d+1]==2)return pair(o,d+2);break}if(_==s||_==0)return pair(o,d+1)}return 0}stateSlot(e,s){return this.states[e*6+s]}stateFlag(e,s){return(this.stateSlot(e,0)&s)>0}validAction(e,s){if(s==this.stateSlot(e,4))return!0;for(let o=this.stateSlot(e,1);;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=pair(this.data,o+2);else return!1;if(s==pair(this.data,o+1))return!0}}nextStates(e){let s=[];for(let o=this.stateSlot(e,1);;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=pair(this.data,o+2);else break;if((this.data[o+2]&1)==0){let c=this.data[o+1];s.some((d,_)=>_&1&&d==c)||s.push(this.data[o],c)}}return s}overrides(e,s){let o=findOffset(this.data,this.tokenPrecTable,s);return o<0||findOffset(this.data,this.tokenPrecTable,e){let c=e.tokenizers.find(d=>d.from==o);return c?c.to:o})),e.contextTracker&&(s.context=e.contextTracker),e.dialect&&(s.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(s.strict=e.strict),e.wrap&&(s.wrappers=s.wrappers.concat(e.wrap)),e.bufferLength!=null&&(s.bufferLength=e.bufferLength),s}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let s=this.dynamicPrecedences;return s==null?0:s[e]||0}parseDialect(e){let s=Object.keys(this.dialects),o=s.map(()=>!1);if(e)for(let d of e.split(" ")){let _=s.indexOf(d);_>=0&&(o[_]=!0)}let c=null;for(let d=0;do)&&s.p.parser.stateFlag(s.state,2)&&(!e||e.score{let{next:s}=a;(s==braceR||s==-1||e.context)&&e.canShift(insertSemi)&&a.acceptToken(insertSemi)},{contextual:!0,fallback:!0}),noSemicolon=new ExternalTokenizer((a,e)=>{let{next:s}=a,o;space.indexOf(s)>-1||s==slash&&((o=a.peek(1))==slash||o==star)||s!=braceR&&s!=semicolon&&s!=-1&&!e.context&&e.canShift(noSemi)&&a.acceptToken(noSemi)},{contextual:!0}),incdecToken=new ExternalTokenizer((a,e)=>{let{next:s}=a;if((s==plus||s==minus)&&(a.advance(),s==a.next)){a.advance();let o=!e.context&&e.canShift(incdec);a.acceptToken(o?incdec:incdecPrefix)}},{contextual:!0}),template=new ExternalTokenizer(a=>{for(let e=!1,s=0;;s++){let{next:o}=a;if(o<0){s&&a.acceptToken(templateContent);break}else if(o==backtick){s?a.acceptToken(templateContent):a.acceptToken(templateEnd,1);break}else if(o==braceL&&e){s==1?a.acceptToken(InterpolationStart,1):a.acceptToken(templateContent,-1);break}else if(o==10&&s){a.advance(),a.acceptToken(templateContent);break}else o==backslash&&a.advance();e=o==dollar,a.advance()}});function tsExtends(a,e){return a=="extends"&&e.dialectEnabled(Dialect_ts)?TSExtends:-1}const spec_identifier={__proto__:null,export:18,as:23,from:29,default:32,async:37,function:38,this:48,true:56,false:56,void:66,typeof:70,null:86,super:88,new:122,await:139,yield:141,delete:142,class:152,extends:154,public:197,private:197,protected:197,readonly:199,instanceof:220,in:222,const:224,import:256,keyof:307,unique:311,infer:317,is:351,abstract:371,implements:373,type:375,let:378,var:380,interface:387,enum:391,namespace:397,module:399,declare:403,global:407,for:428,of:437,while:440,with:444,do:448,if:452,else:454,switch:458,case:464,try:470,catch:472,finally:474,return:478,throw:482,break:486,continue:490,debugger:494},spec_word={__proto__:null,async:109,get:111,set:113,public:161,private:161,protected:161,static:163,abstract:165,override:167,readonly:173,new:355},spec_LessThan={__proto__:null,"<":129},parser=LRParser.deserialize({version:13,states:"$1jO`QYOOO'QQ!LdO'#ChO'XOSO'#DVO)dQYO'#D]O)tQYO'#DhO){QYO'#DrO-xQYO'#DxOOQO'#E]'#E]O.]QWO'#E[O.bQWO'#E[OOQ!LS'#Ef'#EfO0aQ!LdO'#IrO2wQ!LdO'#IsO3eQWO'#EzO3jQpO'#FaOOQ!LS'#FS'#FSO3rO!bO'#FSO4QQWO'#FhO5_QWO'#FgOOQ!LS'#Is'#IsOOQ!LQ'#Ir'#IrOOQQ'#J['#J[O5dQWO'#HnO5iQ!LYO'#HoOOQQ'#If'#IfOOQQ'#Hp'#HpQ`QYOOO){QYO'#DjO5qQWO'#G[O5vQ#tO'#CmO6UQWO'#EZO6aQWO'#EgO6fQ#tO'#FRO7QQWO'#G[O7VQWO'#G`O7bQWO'#G`O7pQWO'#GcO7pQWO'#GdO7pQWO'#GfO5qQWO'#GiO8aQWO'#GlO9oQWO'#CdO:PQWO'#GyO:XQWO'#HPO:XQWO'#HRO`QYO'#HTO:XQWO'#HVO:XQWO'#HYO:^QWO'#H`O:cQ!LZO'#HdO){QYO'#HfO:nQ!LZO'#HhO:yQ!LZO'#HjO5iQ!LYO'#HlO){QYO'#DWOOOS'#Hr'#HrO;UOSO,59qOOQ!LS,59q,59qO=gQbO'#ChO=qQYO'#HsO>UQWO'#ItO@TQbO'#ItO'dQYO'#ItO@[QWO,59wO@rQ&jO'#DbOAkQWO'#E]OAxQWO'#JPOBTQWO'#JOOBTQWO'#JOOB]QWO,5:yOBbQWO'#I}OBiQWO'#DyO5vQ#tO'#EZOBwQWO'#EZOCSQ`O'#FROOQ!LS,5:S,5:SOC[QYO,5:SOEYQ!LdO,5:^OEvQWO,5:dOFaQ!LYO'#I|O7VQWO'#I{OFhQWO'#I{OFpQWO,5:xOFuQWO'#I{OGTQYO,5:vOITQWO'#EWOJ_QWO,5:vOKnQWO'#DlOKuQYO'#DqOLPQ&jO,5;PO){QYO,5;POOQQ'#Er'#ErOOQQ'#Et'#EtO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;ROOQQ'#Ex'#ExOLXQYO,5;cOOQ!LS,5;h,5;hOOQ!LS,5;i,5;iONXQWO,5;iOOQ!LS,5;j,5;jO){QYO'#H}ON^Q!LYO,5YOOQQ'#Ii'#IiOOQQ,5>Z,5>ZOOQQ-E;n-E;nO!+YQ!LdO,5:UOOQ!LQ'#Cp'#CpO!+yQ#tO,5O,5>OO){QYO,5>OO5iQ!LYO,5>QOOQQ,5>S,5>SO!8VQWO,5>SOOQQ,5>U,5>UO!8VQWO,5>UOOQQ,5>W,5>WO!8[Q`O,59rOOOS-E;p-E;pOOQ!LS1G/]1G/]O!8aQbO,5>_O'dQYO,5>_OOQO,5>d,5>dO!8kQYO'#HsOOQO-E;q-E;qO!8xQWO,5?`O!9QQbO,5?`O!9XQWO,5?jOOQ!LS1G/c1G/cO!9aQpO'#DTOOQO'#Iv'#IvO){QYO'#IvO!:OQpO'#IvO!:mQpO'#DcO!;OQ&jO'#DcO!=ZQYO'#DcO!=bQWO'#IuO!=jQWO,59|O!=oQWO'#EaO!=}QWO'#JQO!>VQWO,5:zO!>mQ&jO'#DcO){QYO,5?kO!>wQWO'#HxOOQO-E;v-E;vO!9XQWO,5?jOOQ!LQ1G0e1G0eO!@TQ&jO'#D|OOQ!LS,5:e,5:eO){QYO,5:eOITQWO,5:eO!@[QWO,5:eO:^QWO,5:uO!,rQpO,5:uO!,zQ#tO,5:uO5vQ#tO,5:uOOQ!LS1G/n1G/nOOQ!LS1G0O1G0OOOQ!LQ'#EV'#EVO){QYO,5?hO!@gQ!LYO,5?hO!@xQ!LYO,5?hO!APQWO,5?gO!AXQWO'#HzO!APQWO,5?gOOQ!LQ1G0d1G0dO7VQWO,5?gOOQ!LS1G0b1G0bO!AsQ!LdO1G0bO!BdQ!LbO,5:rOOQ!LS'#Fq'#FqO!CQQ!LdO'#IoOGTQYO1G0bO!EPQ#tO'#IwO!EZQWO,5:WO!E`QbO'#IxO){QYO'#IxO!EjQWO,5:]OOQ!LS'#DT'#DTOOQ!LS1G0k1G0kO!EoQWO1G0kO!HQQ!LdO1G0mO!HXQ!LdO1G0mO!JlQ!LdO1G0mO!JsQ!LdO1G0mO!LzQ!LdO1G0mO!M_Q!LdO1G0mO#!OQ!LdO1G0mO#!VQ!LdO1G0mO#$jQ!LdO1G0mO#$qQ!LdO1G0mO#&fQ!LdO1G0mO#)`Q7^O'#ChO#+ZQ7^O1G0}O#-UQ7^O'#IsOOQ!LS1G1T1G1TO#-iQ!LdO,5>iOOQ!LQ-E;{-E;{O#.YQ!LdO1G0mOOQ!LS1G0m1G0mO#0[Q!LdO1G1QO#0{QpO,5;sO#1QQpO,5;tO#1VQpO'#F[O#1kQWO'#FZOOQO'#JU'#JUOOQO'#H{'#H{O#1pQpO1G1]OOQ!LS1G1]1G1]OOOO1G1f1G1fO#2OQ7^O'#IrO#2YQWO,5;}OLXQYO,5;}OOOO-E;z-E;zOOQ!LS1G1Y1G1YOOQ!LS,5VQ&jO'#GhOOQQ1G2l1G2lO!&wQ&jO'#IWO!0OQ`O1G2oOOQQ1G2o1G2oOOQQ,5=Y,5=YO#>_Q#tO,5=[O5qQWO,5=[O#5YQWO,5=_O5_QWO,5=_O!,rQpO,5=_O!,zQ#tO,5=_O5vQ#tO,5=_O#>pQWO'#J_O#>{QWO,5=`OOQQ1G.j1G.jO#?QQ!LYO1G.jO#?]QWO1G.jO#?bQWO1G.jO5iQ!LYO1G.jO#?jQbO,5?|O#?tQWO,5?|O#@PQYO,5=gO#@WQWO,5=gO7VQWO,5?|OOQQ1G3P1G3PO`QYO1G3POOQQ1G3V1G3VOOQQ1G3X1G3XO:XQWO1G3ZO#@]QYO1G3]O#DWQYO'#H[OOQQ1G3`1G3`O:^QWO1G3fO#DeQWO1G3fO5iQ!LYO1G3jOOQQ1G3l1G3lOOQ!LQ'#Fx'#FxO5iQ!LYO1G3nO5iQ!LYO1G3pOOOS1G/^1G/^O#DmQ`O,5_O#EPQWO1G4zO#EXQWO1G5UO#EaQWO,5?bOLXQYO,5:{O7VQWO,5:{O:^QWO,59}OLXQYO,59}O!,rQpO,59}O#EfQ7^O,59}OOQO,5:{,5:{O#EpQ&jO'#HtO#FWQWO,5?aOOQ!LS1G/h1G/hO#F`Q&jO'#HyO#FtQWO,5?lOOQ!LQ1G0f1G0fO!;OQ&jO,59}O#F|QbO1G5VO7VQWO,5>dOOQ!LQ'#ES'#ESO#GWQ!LrO'#ETO!?{Q&jO'#D}OOQO'#Hw'#HwO#GrQ&jO,5:hOOQ!LS,5:h,5:hO#GyQ&jO'#D}O#H[Q&jO'#D}O#HcQ&jO'#EYO#HfQ&jO'#ETO#HsQ&jO'#ETO!?{Q&jO'#ETO#IWQWO1G0PO#I]Q`O1G0POOQ!LS1G0P1G0PO){QYO1G0POITQWO1G0POOQ!LS1G0a1G0aO:^QWO1G0aO!,rQpO1G0aO!,zQ#tO1G0aO#IdQ!LdO1G5SO){QYO1G5SO#ItQ!LYO1G5SO#JVQWO1G5RO7VQWO,5>fOOQO,5>f,5>fO#J_QWO,5>fOOQO-E;x-E;xO#JVQWO1G5RO#JmQ!LdO,59jO#LlQ!LdO,5k,5>kO$(]QWO,5>kOOQ!LS1G2P1G2PP$(bQWO'#IPPOQ!LS-E;}-E;}O$)RQ#tO1G2[O$)tQ#tO1G2^O$*OQ#tO1G2`OOQ!LS1G1x1G1xO$*VQWO'#IOO$*eQWO,5?sO$*eQWO,5?sO$*mQWO,5?sO$*xQWO,5?sOOQO1G1z1G1zO$+WQ#tO1G1yO$+hQWO'#IQO$+xQWO,5?tOITQWO,5?tO$,QQ`O,5?tOOQ!LS1G1}1G1}O5iQ!LYO,5n,5>nOOQO-Ev,5>vOOQO-Ep,5>pOOQ!LQ-Er,5>rOOQO-E`,5>`OOQO-E;r-E;rOOQO,5>e,5>eOOQO-E;w-E;wO!,rQpO1G/iO:^QWO,5:iOOQO,5:o,5:oO){QYO,5:oO$9pQ!LYO,5:oO$9{Q!LYO,5:oO!,rQpO,5:iOOQO-E;u-E;uOOQ!LS1G0S1G0SO!?{Q&jO,5:iO$:ZQ&jO,5:iO$:lQ!LrO,5:oO$;WQ&jO,5:iO!?{Q&jO,5:oOOQO,5:t,5:tO$;_Q&jO,5:oO$;lQ!LYO,5:oOOQ!LS7+%k7+%kO#IWQWO7+%kO#I]Q`O7+%kOOQ!LS7+%{7+%{O:^QWO7+%{O!,rQpO7+%{O$lQ!LdO1G2^O$@nQ!LdO1G1yO$BvQ#tO,5>aOOQO-E;s-E;sO$CQQbO,5>bO){QYO,5>bOOQO-E;t-E;tO$C[QWO1G5OO$CdQ7^O1G0bO$EkQ7^O1G0mO$ErQ7^O1G0mO$GsQ7^O1G0mO$GzQ7^O1G0mO$IoQ7^O1G0mO$JSQ7^O1G0mO$LaQ7^O1G0mO$LhQ7^O1G0mO$NiQ7^O1G0mO$NpQ7^O1G0mO%!eQ7^O1G0mO%!xQ!LdO<iOOOO7+'T7+'TOOOS1G/R1G/ROOQ!LS1G4V1G4VOJdQWO7+'zO%'rQWO,5>jO5qQWO,5>jOOQO-E;|-E;|O%(QQWO1G5_O%(QQWO1G5_O%(YQWO1G5_O%(eQ`O,5>lO%(oQWO,5>lOITQWO,5>lOOQO-Eu,5>uO%,RQWO,5>uO%,WQWO,5>uOOQO-EtOOQO-ERQ#tO<cQWO1G4UO%>nQWO1G4UO%>|QWO7+*yO%>|QWO7+*yOITQWO1G4WO%?UQ`O1G4WO%?`QWO7+*zOOQO7+'o7+'oO5iQ!LYO7+'oOOQO7+'n7+'nO$,[QWO7+'pO%?hQ`O7+'pOOQO7+'t7+'tO5iQ!LYO7+'nO$,[QWO7+'oO%?oQWO7+'pOITQWO7+'pO#5TQWO7+'oO%?tQ#tO<oOOQO-EqOOQO-E{AN>{OOQOAN>uAN>uO%0}Q!LdOAN>{O:^QWOAN>uO){QYOAN>{O!,rQpOAN>uO&(PQ!LYOAN>{O&([Q7^O<^O!O&OO~Ox&RO!W&]O!X&UO!Y&UO'[$bO~O]&SOk&SO!Q&VO'e&PO!S'iP!S'tP~P@aO!O'qX!R'qX!]'qX!c'qX'n'qX~O!{'qX#W#PX!S'qX~PAYO!{&^O!O'sX!R'sX~O!R&_O!O'rX~O!O&bO~O!{#eO~PAYOS&fO!T&cO!o&eO'Z$`O~Oc&kO!d$XO'Z$`O~Ou$nO!d$mO~O!S&lO~P`Ou!{Ov!{Ox!|O!b!yO!d!zO'dQOP!faZ!faj!fa!R!fa!a!fa!j!fa#[!fa#]!fa#^!fa#_!fa#`!fa#a!fa#b!fa#c!fa#e!fa#g!fa#i!fa#j!fa'n!fa'u!fa'v!fa~O_!fa'U!fa!O!fa!c!fan!fa!T!fa%Q!fa!]!fa~PCcO!c&mO~O!]!wO!{&oO'n&nO!R'pX_'pX'U'pX~O!c'pX~PE{O!R&sO!c'oX~O!c&uO~Ox$tO!T$uO#V&vO'Z$`O~OPTOQTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!TSO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O'Z9YO'dQO'mYO'zaO~O]#qOh$OOj#rOk#qOl#qOq$POs9lOx#xO!T#yO!_:oO!d#vO#V9rO#t$TO$_9nO$a9pO$d$UO'Z&zO'd#sO~O#W&|O~O]#qOh$OOj#rOk#qOl#qOq$POs$QOx#xO!T#yO!_$VO!d#vO#V$WO#t$TO$_$RO$a$SO$d$UO'Z&zO'd#sO~O'_'kP~PJdO!Q'QO!c'lP~P){O'e'SO'mYO~OP9VOQ9VO]cOb:mOc!jOhcOj9VOkcOlcOq9VOs9VOxRO{cO|cO}cO!T!bO!_9XO!dUO!g9VO!h9VO!i9VO!j9VO!k9VO!n!iO#t!lO#x^O'Z'bO'dQO'mYO'z:kO~O!d!zO~O!R#bO_$]a'U$]a!c$]a!O$]a!T$]a%Q$]a!]$]a~O#d'iO~PITO!]'kO!T'wX#w'wX#z'wX$R'wX~Ou'lO~P! POu'lO!T'wX#w'wX#z'wX$R'wX~O!T'nO#w'rO#z'mO$R'sO~O!Q'vO~PLXO#z#fO$R'yO~Ou$eXx$eX!b$eX'n$eX'u$eX'v$eX~OSfX!RfX!{fX'_fX'_$eX~P!!iOk'{O~OR'|O'S'}O'T(PO~Ou(ROx(SO'n#[O'u(UO'v(WO~O'_(QO~P!#rO'_(ZO~O]#qOh$OOj#rOk#qOl#qOq$POs9lOx#xO!T#yO!_:oO!d#vO#V9rO#t$TO$_9nO$a9pO$d$UO'd#sO~O!Q(_O'Z([O!c'{P~P!$aO#W(aO~O!Q(eO'Z(bO!O'|P~P!$aO_(nOj(sOx(kO!W(qO!X(jO!Y(jO!d(hO!x(rO$w(mO'[$bO'e(gO~O!S(pO~P!&XO!b!yOu'cXx'cX'n'cX'u'cX'v'cX!R'cX!{'cX~O'_'cX#m'cX~P!'TOS(vO!{(uO!R'bX'_'bX~O!R(wO'_'aX~O'Z(yO~O!d)OO~O'Z&zO~O!d(hO~Ox$tO!Q!rO!T$uO#U!uO#V!rO'Z$`O!c'oP~O!]!wO#W)SO~OP#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO#j#ZO'dQO'n#[O'u!}O'v#OO~O_!^a!R!^a'U!^a!O!^a!c!^an!^a!T!^a%Q!^a!]!^a~P!)fOS)[O!T&cO!o)ZO%Q)YO'`$cO~O'Z$zO'_'aP~O!])_O!T'^X_'^X'U'^X~O!d$XO'`$cO~O!d$XO'Z$`O'`$cO~O!]!wO#W&|O~O])jO%R)kO'Z)gO!S(TP~O!R)lO^(SX~O'e'SO~OZ)pO~O^)qO~O!T$kO'Z$`O'[$bO^(SP~Ox$tO!Q)vO!R&_O!T$uO'Z$`O!O'rP~O]&YOk&YO!Q)wO'e'SO!S'tP~O!R)xO_(PX'U(PX~O!{)|O'`$cO~OS*PO!T#yO'`$cO~O!T*RO~Ou*TO!TSO~O!n*YO~Oc*_O~O'Z(yO!S(RP~Oc$iO~O%RtO'Z$zO~P8tOZ*eO^*dO~OPTOQTO]cObnOcmOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!nlO#x^O%PqO'dQO'mYO'zaO~O!T!bO#t!lO'Z9YO~P!1RO^*dO_$[O'U$[O~O_*iO#d*kO%T*kO%U*kO~P){O!d%_O~O%t*pO~O!T*rO~O&U*uO&V*tOP&SaQ&SaX&Sa]&Sa_&Sab&Sac&Sah&Saj&Sak&Sal&Saq&Sas&Sax&Sa{&Sa|&Sa}&Sa!T&Sa!_&Sa!d&Sa!g&Sa!h&Sa!i&Sa!j&Sa!k&Sa!n&Sa#d&Sa#t&Sa#x&Sa%P&Sa%R&Sa%T&Sa%U&Sa%X&Sa%Z&Sa%^&Sa%_&Sa%a&Sa%n&Sa%t&Sa%v&Sa%x&Sa%z&Sa%}&Sa&T&Sa&X&Sa&Z&Sa&]&Sa&_&Sa&a&Sa'Q&Sa'Z&Sa'd&Sa'm&Sa'z&Sa!S&Sa%{&Sa`&Sa&Q&Sa~O'Z*xO~On*{O~O!O&ga!R&ga~P!)fO!Q+PO!O&gX!R&gX~P){O!R%yO!O'ha~O!O'ha~P>^O!R&_O!O'ra~O!RwX!R!ZX!SwX!S!ZX!]wX!]!ZX!d!ZX!{wX'`!ZX~O!]+UO!{+TO!R#TX!R'jX!S#TX!S'jX!]'jX!d'jX'`'jX~O!]+WO!d$XO'`$cO!R!VX!S!VX~O]&QOk&QOx&RO'e(gO~OP9VOQ9VO]cOb:mOc!jOhcOj9VOkcOlcOq9VOs9VOxRO{cO|cO}cO!T!bO!_9XO!dUO!g9VO!h9VO!i9VO!j9VO!k9VO!n!iO#t!lO#x^O'dQO'mYO'z:kO~O'Z9vO~P!;^O!R+[O!S'iX~O!S+^O~O!]+UO!{+TO!R#TX!S#TX~O!R+_O!S'tX~O!S+aO~O]&QOk&QOx&RO'[$bO'e(gO~O!X+bO!Y+bO~P!>[Ox$tO!Q+dO!T$uO'Z$`O!O&lX!R&lX~O_+hO!W+kO!X+gO!Y+gO!r+oO!s+mO!t+nO!u+lO!x+pO'[$bO'e(gO'm+eO~O!S+jO~P!?]OS+uO!T&cO!o+tO~O!{+{O!R'pa!c'pa_'pa'U'pa~O!]!wO~P!@gO!R&sO!c'oa~Ox$tO!Q,OO!T$uO#U,QO#V,OO'Z$`O!R&nX!c&nX~O_#Oi!R#Oi'U#Oi!O#Oi!c#Oin#Oi!T#Oi%Q#Oi!]#Oi~P!)fO#W!za!R!za!c!za!{!za!T!za_!za'U!za!O!za~P!#rO#W'cXP'cXZ'cX_'cXj'cXv'cX!a'cX!d'cX!j'cX#['cX#]'cX#^'cX#_'cX#`'cX#a'cX#b'cX#c'cX#e'cX#g'cX#i'cX#j'cX'U'cX'd'cX!c'cX!O'cX!T'cXn'cX%Q'cX!]'cX~P!'TO!R,ZO'_'kX~P!#rO'_,]O~O!R,^O!c'lX~P!)fO!c,aO~O!O,bO~OP#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'dQOZ#Zi_#Zij#Zi!R#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'U#Zi'n#Zi'u#Zi'v#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O#[#Zi~P!EtO#[#PO~P!EtOP#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO'dQOZ#Zi_#Zi!R#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'U#Zi'n#Zi'u#Zi'v#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~Oj#Zi~P!H`Oj#RO~P!H`OP#^Oj#ROu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO'dQO_#Zi!R#Zi#e#Zi#g#Zi#i#Zi#j#Zi'U#Zi'n#Zi'u#Zi'v#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P!JzOZ#dO!a#TO#a#TO#b#TO#c#TO~P!JzOP#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO'dQO_#Zi!R#Zi#g#Zi#i#Zi#j#Zi'U#Zi'n#Zi'v#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'u#Zi~P!MrO'u!}O~P!MrOP#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO'dQO'u!}O_#Zi!R#Zi#i#Zi#j#Zi'U#Zi'n#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'v#Zi~P#!^O'v#OO~P#!^OP#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO'dQO'u!}O'v#OO~O_#Zi!R#Zi#j#Zi'U#Zi'n#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P#$xOP[XZ[Xj[Xu[Xv[Xx[X!a[X!b[X!d[X!j[X!{[X#WdX#[[X#][X#^[X#_[X#`[X#a[X#b[X#c[X#e[X#g[X#i[X#j[X#o[X'd[X'n[X'u[X'v[X!R[X!S[X~O#m[X~P#']OP#^OZ9jOj9_Ou!{Ov!{Ox!|O!a9aO!b!yO!d!zO!j#^O#[9]O#]9^O#^9^O#_9^O#`9`O#a9aO#b9aO#c9aO#e9bO#g9dO#i9fO#j9gO'dQO'n#[O'u!}O'v#OO~O#m,dO~P#)gOP'gXZ'gXj'gXu'gXv'gXx'gX!a'gX!b'gX!d'gX!j'gX#['gX#]'gX#^'gX#_'gX#`'gX#a'gX#b'gX#e'gX#g'gX#i'gX#j'gX'd'gX'n'gX'u'gX'v'gX!R'gX~O!{9kO#o9kO#c'gX#m'gX!S'gX~P#+bO_&qa!R&qa'U&qa!c&qan&qa!O&qa!T&qa%Q&qa!]&qa~P!)fOP#ZiZ#Zi_#Zij#Ziv#Zi!R#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'U#Zi'd#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P!#rO_#ni!R#ni'U#ni!O#ni!c#nin#ni!T#ni%Q#ni!]#ni~P!)fO#z,fO~O#z,gO~O!]'kO!{,hO!T$OX#w$OX#z$OX$R$OX~O!Q,iO~O!T'nO#w,kO#z'mO$R,lO~O!R9hO!S'fX~P#)gO!S,mO~O$R,oO~OR'|O'S'}O'T,rO~O],uOk,uO!O,vO~O!RdX!]dX!cdX!c$eX'ndX~P!!iO!c,|O~P!#rO!R,}O!]!wO'n&nO!c'{X~O!c-SO~O!O$eX!R$eX!]$lX~P!!iO!R-UO!O'|X~P!#rO!]-WO~O!O-YO~O!Q(_O'Z$`O!c'{P~Oj-^O!]!wO!d$XO'`$cO'n&nO~O!])_O~O!S-dO~P!&XO!X-eO!Y-eO'[$bO'e(gO~Ox-gO'e(gO~O!x-hO~O'Z$zO!R&vX'_&vX~O!R(wO'_'aa~Ou-mOv-mOx-nO'nra'ura'vra!Rra!{ra~O'_ra#mra~P#6fOu(ROx(SO'n$^a'u$^a'v$^a!R$^a!{$^a~O'_$^a#m$^a~P#7[Ou(ROx(SO'n$`a'u$`a'v$`a!R$`a!{$`a~O'_$`a#m$`a~P#7}O]-oO~O#W-pO~O'_$na!R$na#m$na!{$na~P!#rO#W-sO~OS-|O!T&cO!o-{O%Q-zO~O'_-}O~O]#qOj#rOk#qOl#qOq$POs9lOx#xO!T#yO!_:oO!d#vO#V9rO#t$TO$_9nO$a9pO$d$UO'd#sO~Oh.PO'Z.OO~P#9tO!])_O!T'^a_'^a'U'^a~O#W.VO~OZ[X!RdX!SdX~O!R.WO!S(TX~O!S.YO~OZ.ZO~O].]O'Z)gO~O!T$kO'Z$`O^'OX!R'OX~O!R)lO^(Sa~O!c.`O~P!)fO].bO~OZ.cO~O^.dO~OS-|O!T&cO!o-{O%Q-zO'`$cO~O!R)xO_(Pa'U(Pa~O!{.jO~OS.mO!T#yO~O'e'SO!S(QP~OS.wO!T.sO!o.vO%Q.uO'`$cO~OZ/RO!R/PO!S(RX~O!S/SO~O^/UO_$[O'U$[O~O]/VO~O]/WO'Z(yO~O#c/XO%r/YO~P0zO!{#eO#c/XO%r/YO~O_/ZO~P){O_/]O~O%{/aOP%yiQ%yiX%yi]%yi_%yib%yic%yih%yij%yik%yil%yiq%yis%yix%yi{%yi|%yi}%yi!T%yi!_%yi!d%yi!g%yi!h%yi!i%yi!j%yi!k%yi!n%yi#d%yi#t%yi#x%yi%P%yi%R%yi%T%yi%U%yi%X%yi%Z%yi%^%yi%_%yi%a%yi%n%yi%t%yi%v%yi%x%yi%z%yi%}%yi&T%yi&X%yi&Z%yi&]%yi&_%yi&a%yi'Q%yi'Z%yi'd%yi'm%yi'z%yi!S%yi`%yi&Q%yi~O`/gO!S/eO&Q/fO~P`O!TSO!d/jO~O!R#bOn$]a~O!O&gi!R&gi~P!)fO!R%yO!O'hi~O!R&_O!O'ri~O!O/nO~O!R!Va!S!Va~P#)gO]&QOk&QO!Q/tO'e(gO!R&hX!S&hX~P@aO!R+[O!S'ia~O]&YOk&YO!Q)wO'e'SO!R&mX!S&mX~O!R+_O!S'ta~O!O'si!R'si~P!)fO_$[O!]!wO!d$XO!j0OO!{/|O'U$[O'`$cO'n&nO~O!S0RO~P!?]O!X0SO!Y0SO'[$bO'e(gO'm+eO~O!W0TO~P#GyO!TSO!W0TO!u0VO!x0WO~P#GyO!W0TO!s0YO!t0YO!u0VO!x0WO~P#GyO!T&cO~O!T&cO~P!#rO!R'pi!c'pi_'pi'U'pi~P!)fO!{0cO!R'pi!c'pi_'pi'U'pi~O!R&sO!c'oi~Ox$tO!T$uO#V0eO'Z$`O~O#WraPraZra_rajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra'Ura'dra!cra!Ora!Tranra%Qra!]ra~P#6fO#W$^aP$^aZ$^a_$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a'U$^a'd$^a!c$^a!O$^a!T$^an$^a%Q$^a!]$^a~P#7[O#W$`aP$`aZ$`a_$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a'U$`a'd$`a!c$`a!O$`a!T$`an$`a%Q$`a!]$`a~P#7}O#W$naP$naZ$na_$naj$nav$na!R$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na'U$na'd$na!c$na!O$na!T$na!{$nan$na%Q$na!]$na~P!#rO_#Oq!R#Oq'U#Oq!O#Oq!c#Oqn#Oq!T#Oq%Q#Oq!]#Oq~P!)fO!R&iX'_&iX~PJdO!R,ZO'_'ka~O!Q0mO!R&jX!c&jX~P){O!R,^O!c'la~O!R,^O!c'la~P!)fO#m!fa!S!fa~PCcO#m!^a!R!^a!S!^a~P#)gO!T1QO#x^O$P1RO~O!S1VO~On1WO~P!#rO_$Yq!R$Yq'U$Yq!O$Yq!c$Yqn$Yq!T$Yq%Q$Yq!]$Yq~P!)fO!O1XO~O],uOk,uO~Ou(ROx(SO'v(WO'n$xi'u$xi!R$xi!{$xi~O'_$xi#m$xi~P$(jOu(ROx(SO'n$zi'u$zi'v$zi!R$zi!{$zi~O'_$zi#m$zi~P$)]O#m1YO~P!#rO!Q1[O'Z$`O!R&rX!c&rX~O!R,}O!c'{a~O!R,}O!]!wO!c'{a~O!R,}O!]!wO'n&nO!c'{a~O'_$gi!R$gi#m$gi!{$gi~P!#rO!Q1cO'Z(bO!O&tX!R&tX~P!$aO!R-UO!O'|a~O!R-UO!O'|a~P!#rO!]!wO~O!]!wO#c1mO~Oj1qO!]!wO'n&nO~O!R'bi'_'bi~P!#rO!{1tO!R'bi'_'bi~P!#rO!c1wO~O_$Zq!R$Zq'U$Zq!O$Zq!c$Zqn$Zq!T$Zq%Q$Zq!]$Zq~P!)fO!R1{O!T'}X~P!#rO!T&cO%Q2OO~O!T&cO%Q2OO~P!#rO!T$eX$u[X_$eX'U$eX~P!!iO$u2SOugXxgX!TgX'ngX'ugX'vgX_gX'UgX~O$u2SO~O]2YO%R2ZO'Z)gO!R&}X!S&}X~O!R.WO!S(Ta~OZ2_O~O^2`O~O]2cO~OS2eO!T&cO!o2dO%Q2OO~O_$[O'U$[O~P!#rO!T#yO~P!#rO!R2jO!{2lO!S(QX~O!S2mO~Ox(kO!W2vO!X2oO!Y2oO!r2uO!s2tO!t2tO!x2sO'[$bO'e(gO'm+eO~O!S2rO~P$1nOS2}O!T.sO!o2|O%Q2{O~OS2}O!T.sO!o2|O%Q2{O'`$cO~O'Z(yO!R&|X!S&|X~O!R/PO!S(Ra~O]3XO'e3WO~O]3YO~O^3[O~O!c3_O~P){O_3aO~O_3aO~P){O#c3cO%r3dO~PE{O`/gO!S3hO&Q/fO~P`O!]3jO~O&V3kOP&SqQ&SqX&Sq]&Sq_&Sqb&Sqc&Sqh&Sqj&Sqk&Sql&Sqq&Sqs&Sqx&Sq{&Sq|&Sq}&Sq!T&Sq!_&Sq!d&Sq!g&Sq!h&Sq!i&Sq!j&Sq!k&Sq!n&Sq#d&Sq#t&Sq#x&Sq%P&Sq%R&Sq%T&Sq%U&Sq%X&Sq%Z&Sq%^&Sq%_&Sq%a&Sq%n&Sq%t&Sq%v&Sq%x&Sq%z&Sq%}&Sq&T&Sq&X&Sq&Z&Sq&]&Sq&_&Sq&a&Sq'Q&Sq'Z&Sq'd&Sq'm&Sq'z&Sq!S&Sq%{&Sq`&Sq&Q&Sq~O!R#Ti!S#Ti~P#)gO!{3mO!R#Ti!S#Ti~O!R!Vi!S!Vi~P#)gO_$[O!{3tO'U$[O~O_$[O!]!wO!{3tO'U$[O~O!X3xO!Y3xO'[$bO'e(gO'm+eO~O_$[O!]!wO!d$XO!j3yO!{3tO'U$[O'`$cO'n&nO~O!W3zO~P$:ZO!W3zO!u3}O!x4OO~P$:ZO_$[O!]!wO!j3yO!{3tO'U$[O'n&nO~O!R'pq!c'pq_'pq'U'pq~P!)fO!R&sO!c'oq~O#W$xiP$xiZ$xi_$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi'U$xi'd$xi!c$xi!O$xi!T$xin$xi%Q$xi!]$xi~P$(jO#W$ziP$ziZ$zi_$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi'U$zi'd$zi!c$zi!O$zi!T$zin$zi%Q$zi!]$zi~P$)]O#W$giP$giZ$gi_$gij$giv$gi!R$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi'U$gi'd$gi!c$gi!O$gi!T$gi!{$gin$gi%Q$gi!]$gi~P!#rO!R&ia'_&ia~P!#rO!R&ja!c&ja~P!)fO!R,^O!c'li~O#m#Oi!R#Oi!S#Oi~P#)gOP#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'dQOZ#Zij#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'n#Zi'u#Zi'v#Zi!R#Zi!S#Zi~O#[#Zi~P$CqO#[9]O~P$CqOP#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9]O#]9^O#^9^O#_9^O'dQOZ#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'n#Zi'u#Zi'v#Zi!R#Zi!S#Zi~Oj#Zi~P$EyOj9_O~P$EyOP#^Oj9_Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9]O#]9^O#^9^O#_9^O#`9`O'dQO#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'n#Zi'u#Zi'v#Zi!R#Zi!S#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P$HROZ9jO!a9aO#a9aO#b9aO#c9aO~P$HROP#^OZ9jOj9_Ou!{Ov!{Ox!|O!a9aO!b!yO!d!zO!j#^O#[9]O#]9^O#^9^O#_9^O#`9`O#a9aO#b9aO#c9aO#e9bO'dQO#g#Zi#i#Zi#j#Zi#m#Zi'n#Zi'v#Zi!R#Zi!S#Zi~O'u#Zi~P$JgO'u!}O~P$JgOP#^OZ9jOj9_Ou!{Ov!{Ox!|O!a9aO!b!yO!d!zO!j#^O#[9]O#]9^O#^9^O#_9^O#`9`O#a9aO#b9aO#c9aO#e9bO#g9dO'dQO'u!}O#i#Zi#j#Zi#m#Zi'n#Zi!R#Zi!S#Zi~O'v#Zi~P$LoO'v#OO~P$LoOP#^OZ9jOj9_Ou!{Ov!{Ox!|O!a9aO!b!yO!d!zO!j#^O#[9]O#]9^O#^9^O#_9^O#`9`O#a9aO#b9aO#c9aO#e9bO#g9dO#i9fO'dQO'u!}O'v#OO~O#j#Zi#m#Zi'n#Zi!R#Zi!S#Zi~P$NwO_#ky!R#ky'U#ky!O#ky!c#kyn#ky!T#ky%Q#ky!]#ky~P!)fOP#ZiZ#Zij#Ziv#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'd#Zi!R#Zi!S#Zi~P!#rO!b!yOP'cXZ'cXj'cXu'cXv'cXx'cX!a'cX!d'cX!j'cX#['cX#]'cX#^'cX#_'cX#`'cX#a'cX#b'cX#c'cX#e'cX#g'cX#i'cX#j'cX#m'cX'd'cX'n'cX'u'cX'v'cX!R'cX!S'cX~O#m#ni!R#ni!S#ni~P#)gO!S4`O~O!R&qa!S&qa~P#)gO!]!wO'n&nO!R&ra!c&ra~O!R,}O!c'{i~O!R,}O!]!wO!c'{i~O!O&ta!R&ta~P!#rO!]4gO~O!R-UO!O'|i~P!#rO!R-UO!O'|i~O!O4mO~O!]!wO#c4sO~Oj4tO!]!wO'n&nO~O!O4vO~O'_$iq!R$iq#m$iq!{$iq~P!#rO_$Zy!R$Zy'U$Zy!O$Zy!c$Zyn$Zy!T$Zy%Q$Zy!]$Zy~P!)fO!R1{O!T'}a~O!T&cO%Q4{O~O!T&cO%Q4{O~P!#rO_#Oy!R#Oy'U#Oy!O#Oy!c#Oyn#Oy!T#Oy%Q#Oy!]#Oy~P!)fOZ5OO~O]5QO'Z)gO~O!R.WO!S(Ti~O]5TO~O^5UO~O'e'SO!R&yX!S&yX~O!R2jO!S(Qa~O!S5cO~P$1nOx-gO'e(gO'm+eO~O!W5fO!X5eO!Y5eO!x0WO'[$bO'e(gO'm+eO~O!s5gO!t5gO~P%-iO!X5eO!Y5eO'[$bO'e(gO'm+eO~O!T.sO~O!T.sO%Q5iO~O!T.sO%Q5iO~P!#rOS5nO!T.sO!o5mO%Q5iO~OZ5sO!R&|a!S&|a~O!R/PO!S(Ri~O]5vO~O!c5wO~O!c5xO~O!c5yO~O!c5yO~P){O_5{O~O!]6OO~O!c6QO~O!R'si!S'si~P#)gO_$[O'U$[O~P!)fO_$[O!{6VO'U$[O~O_$[O!]!wO!{6VO'U$[O~O!X6[O!Y6[O'[$bO'e(gO'm+eO~O_$[O!]!wO!j6]O!{6VO'U$[O'n&nO~O!d$XO'`$cO~P%2TO!W6^O~P%1rO!R'py!c'py_'py'U'py~P!)fO#W$iqP$iqZ$iq_$iqj$iqv$iq!R$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq'U$iq'd$iq!c$iq!O$iq!T$iq!{$iqn$iq%Q$iq!]$iq~P!#rO!R&ji!c&ji~P!)fO#m#Oq!R#Oq!S#Oq~P#)gOu-mOv-mOx-nOPraZrajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra#mra'dra'nra'ura'vra!Rra!Sra~Ou(ROx(SOP$^aZ$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a#m$^a'd$^a'n$^a'u$^a'v$^a!R$^a!S$^a~Ou(ROx(SOP$`aZ$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a#m$`a'd$`a'n$`a'u$`a'v$`a!R$`a!S$`a~OP$naZ$naj$nav$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na#m$na'd$na!R$na!S$na~P!#rO#m$Yq!R$Yq!S$Yq~P#)gO#m$Zq!R$Zq!S$Zq~P#)gO!S6hO~O'_$|y!R$|y#m$|y!{$|y~P!#rO!]!wO!R&ri!c&ri~O!]!wO'n&nO!R&ri!c&ri~O!R,}O!c'{q~O!O&ti!R&ti~P!#rO!R-UO!O'|q~O!O6oO~P!#rO!O6oO~O!R'by'_'by~P!#rO!R&wa!T&wa~P!#rO!T$tq_$tq'U$tq~P!#rOZ6wO~O!R.WO!S(Tq~O]6zO~O!T&cO%Q6{O~O!T&cO%Q6{O~P!#rO!{6|O!R&ya!S&ya~O!R2jO!S(Qi~P#)gO!X7SO!Y7SO'[$bO'e(gO'm+eO~O!W7UO!x4OO~P%ArO!T.sO%Q7XO~O!T.sO%Q7XO~P!#rO]7`O'e7_O~O!R/PO!S(Rq~O!c7bO~O!c7bO~P){O!c7dO~O!c7eO~O!R#Ty!S#Ty~P#)gO_$[O!{7kO'U$[O~O_$[O!]!wO!{7kO'U$[O~O!X7nO!Y7nO'[$bO'e(gO'm+eO~O_$[O!]!wO!j7oO!{7kO'U$[O'n&nO~O#W$|yP$|yZ$|y_$|yj$|yv$|y!R$|y!a$|y!b$|y!d$|y!j$|y#[$|y#]$|y#^$|y#_$|y#`$|y#a$|y#b$|y#c$|y#e$|y#g$|y#i$|y#j$|y'U$|y'd$|y!c$|y!O$|y!T$|y!{$|yn$|y%Q$|y!]$|y~P!#rO#m#ky!R#ky!S#ky~P#)gOP$giZ$gij$giv$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi#m$gi'd$gi!R$gi!S$gi~P!#rOu(ROx(SO'v(WOP$xiZ$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi#m$xi'd$xi'n$xi'u$xi!R$xi!S$xi~Ou(ROx(SOP$ziZ$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi#m$zi'd$zi'n$zi'u$zi'v$zi!R$zi!S$zi~O#m$Zy!R$Zy!S$Zy~P#)gO#m#Oy!R#Oy!S#Oy~P#)gO!]!wO!R&rq!c&rq~O!R,}O!c'{y~O!O&tq!R&tq~P!#rO!O7uO~P!#rO!R.WO!S(Ty~O!R2jO!S(Qq~O!X8RO!Y8RO'[$bO'e(gO'm+eO~O!T.sO%Q8UO~O!T.sO%Q8UO~P!#rO!c8XO~O&V8YOP&S!ZQ&S!ZX&S!Z]&S!Z_&S!Zb&S!Zc&S!Zh&S!Zj&S!Zk&S!Zl&S!Zq&S!Zs&S!Zx&S!Z{&S!Z|&S!Z}&S!Z!T&S!Z!_&S!Z!d&S!Z!g&S!Z!h&S!Z!i&S!Z!j&S!Z!k&S!Z!n&S!Z#d&S!Z#t&S!Z#x&S!Z%P&S!Z%R&S!Z%T&S!Z%U&S!Z%X&S!Z%Z&S!Z%^&S!Z%_&S!Z%a&S!Z%n&S!Z%t&S!Z%v&S!Z%x&S!Z%z&S!Z%}&S!Z&T&S!Z&X&S!Z&Z&S!Z&]&S!Z&_&S!Z&a&S!Z'Q&S!Z'Z&S!Z'd&S!Z'm&S!Z'z&S!Z!S&S!Z%{&S!Z`&S!Z&Q&S!Z~O_$[O!{8_O'U$[O~O_$[O!]!wO!{8_O'U$[O~OP$iqZ$iqj$iqv$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq#m$iq'd$iq!R$iq!S$iq~P!#rO!R&yq!S&yq~P#)gO_$[O!{8tO'U$[O~OP$|yZ$|yj$|yv$|y!a$|y!b$|y!d$|y!j$|y#[$|y#]$|y#^$|y#_$|y#`$|y#a$|y#b$|y#c$|y#e$|y#g$|y#i$|y#j$|y#m$|y'd$|y!R$|y!S$|y~P!#rOn'fX~P.jOn[X!O[X!c[X%r[X!T[X%Q[X!][X~P$zO!]dX!c[X!cdX'ndX~P;aOP9VOQ9VO]cOb:mOc!jOhcOj9VOkcOlcOq9VOs9VOxRO{cO|cO}cO!TSO!_9XO!dUO!g9VO!h9VO!i9VO!j9VO!k9VO!n!iO#t!lO#x^O'Z'bO'dQO'mYO'z:kO~O!R9hO!S$]a~O]#qOh$OOj#rOk#qOl#qOq$POs9mOx#xO!T#yO!_:pO!d#vO#V9sO#t$TO$_9oO$a9qO$d$UO'Z&zO'd#sO~O#d'iO~P&-UO!S[X!SdX~P;aO#W9[O~O!]!wO#W9[O~O!{9kO~O#c9aO~O!{9tO!R'sX!S'sX~O!{9kO!R'qX!S'qX~O#W9uO~O'_9wO~P!#rO#W9|O~O#W9}O~O!]!wO#W:OO~O!]!wO#W9uO~O#m:PO~P#)gO#W:QO~O#W:RO~O#W:SO~O#W:TO~O#m:UO~P!#rO#m:VO~P!#rO#x~!b!r!t!u#U#V'z$_$a$d$u%P%Q%R%X%Z%^%_%a%c~UT#x'z#]}'W'X#z'W'Z'e~",goto:"#Ed(XPPPPPPPP(YP(jP*^PPPP-uPP.[3n5b5uP5uPPP5uP7c5uP5uP7gPP7lP8Qk|}?O}!O>k!O!P?`!P!QCl!Q!R!0[!R![!1q![!]!7s!]!^!8V!^!_!8g!_!`!9d!`!a!:[!a!b!U#R#S2`#S#T!>i#T#o2`#o#p!>y#p#q!?O#q#r!?f#r#s!?x#s$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$I|2`$I|$I}!Bq$I}$JO!Bq$JO$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`W%YR$UWO!^%T!_#o%T#p~%T,T%jg$UW'W+{OX%TXY%cYZ%TZ[%c[p%Tpq%cq!^%T!_#o%T#p$f%T$f$g%c$g#BY%T#BY#BZ%c#BZ$IS%T$IS$I_%c$I_$JT%T$JT$JU%c$JU$KV%T$KV$KW%c$KW&FU%T&FU&FV%c&FV?HT%T?HT?HU%c?HU~%T,T'YR$UW'X+{O!^%T!_#o%T#p~%T$T'jS$UW!j#{O!^%T!_!`'v!`#o%T#p~%T$O'}S#e#v$UWO!^%T!_!`(Z!`#o%T#p~%T$O(bR#e#v$UWO!^%T!_#o%T#p~%T'u(rZ$UW]!ROY(kYZ)eZr(krs*rs!^(k!^!_+U!_#O(k#O#P-b#P#o(k#o#p+U#p~(k&r)jV$UWOr)ers*Ps!^)e!^!_*a!_#o)e#o#p*a#p~)e&r*WR$P&j$UWO!^%T!_#o%T#p~%T&j*dROr*ars*ms~*a&j*rO$P&j'u*{R$P&j$UW]!RO!^%T!_#o%T#p~%T'm+ZV]!ROY+UYZ*aZr+Urs+ps#O+U#O#P+w#P~+U'm+wO$P&j]!R'm+zROr+Urs,Ts~+U'm,[U$P&j]!ROY,nZr,nrs-Vs#O,n#O#P-[#P~,n!R,sU]!ROY,nZr,nrs-Vs#O,n#O#P-[#P~,n!R-[O]!R!R-_PO~,n'u-gV$UWOr(krs-|s!^(k!^!_+U!_#o(k#o#p+U#p~(k'u.VZ$P&j$UW]!ROY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x!Z/PZ$UW]!ROY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x!Z/yR$UW]!RO!^%T!_#o%T#p~%T!Z0XT$UWO!^.x!^!_,n!_#o.x#o#p,n#p~.xy0mZ$UWOt%Ttu1`u!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`y1g]$UW'mqOt%Ttu1`u!Q%T!Q![1`![!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`&i2k_$UW#zS'Z%k'epOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`[3q_$UW#zSOt%Ttu3ju}%T}!O3j!O!Q%T!Q![3j![!^%T!_!c%T!c!}3j!}#R%T#R#S3j#S#T%T#T#o3j#p$g%T$g~3j$O4wS#^#v$UWO!^%T!_!`5T!`#o%T#p~%T$O5[R$UW#o#vO!^%T!_#o%T#p~%T%r5lU'v%j$UWOv%Tvw6Ow!^%T!_!`5T!`#o%T#p~%T$O6VS$UW#i#vO!^%T!_!`5T!`#o%T#p~%T'u6jZ$UW]!ROY6cYZ7]Zw6cwx*rx!^6c!^!_8T!_#O6c#O#P:T#P#o6c#o#p8T#p~6c&r7bV$UWOw7]wx*Px!^7]!^!_7w!_#o7]#o#p7w#p~7]&j7zROw7wwx*mx~7w'm8YV]!ROY8TYZ7wZw8Twx+px#O8T#O#P8o#P~8T'm8rROw8Twx8{x~8T'm9SU$P&j]!ROY9fZw9fwx-Vx#O9f#O#P9}#P~9f!R9kU]!ROY9fZw9fwx-Vx#O9f#O#P9}#P~9f!R:QPO~9f'u:YV$UWOw6cwx:ox!^6c!^!_8T!_#o6c#o#p8T#p~6c'u:xZ$P&j$UW]!ROY;kYZ%TZw;kwx/rx!^;k!^!_9f!_#O;k#O#PW{!^%T!_!`5T!`#o%T#p~%T$O>_S#[#v$UWO!^%T!_!`5T!`#o%T#p~%T$u>rSj$m$UWO!^%T!_!`5T!`#o%T#p~%T&i?VR!R&a$UWO!^%T!_#o%T#p~%T&i?gVu%n$UWO!O%T!O!P?|!P!Q%T!Q![@r![!^%T!_#o%T#p~%Ty@RT$UWO!O%T!O!P@b!P!^%T!_#o%T#p~%Ty@iR!Qq$UWO!^%T!_#o%T#p~%Ty@yZ$UWkqO!Q%T!Q![@r![!^%T!_!g%T!g!hAl!h#R%T#R#S@r#S#X%T#X#YAl#Y#o%T#p~%TyAqZ$UWO{%T{|Bd|}%T}!OBd!O!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%TyBiV$UWO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%TyCVV$UWkqO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T,TCs`$UW#]#vOYDuYZ%TZzDuz{Jl{!PDu!P!Q!-e!Q!^Du!^!_Fx!_!`!.^!`!a!/]!a!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXD|[$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXEy_$UW}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%TPF}V}POYFxZ!PFx!P!QGd!Q!}Fx!}#OG{#O#PHh#P~FxPGiU}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGdPHOTOYG{Z#OG{#O#PH_#P#QFx#Q~G{PHbQOYG{Z~G{PHkQOYFxZ~FxXHvY$UWOYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~HqXIkV$UWOYHqYZ%TZ!^Hq!^!_G{!_#oHq#o#pG{#p~HqXJVV$UWOYDuYZ%TZ!^Du!^!_Fx!_#oDu#o#pFx#p~Du,TJs^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q!,R!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl,TKtV$UWOzKoz{LZ{!^Ko!^!_M]!_#oKo#o#pM]#p~Ko,TL`X$UWOzKoz{LZ{!PKo!P!QL{!Q!^Ko!^!_M]!_#oKo#o#pM]#p~Ko,TMSR$UWU+{O!^%T!_#o%T#p~%T+{M`ROzM]z{Mi{~M]+{MlTOzM]z{Mi{!PM]!P!QM{!Q~M]+{NQOU+{,TNX^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q! T!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl,T! ^_$UWU+{}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%T+{!!bY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!&x!Q!}!!]!}#O!$`#O#P!&f#P~!!]+{!#VY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!#u!Q!}!!]!}#O!$`#O#P!&f#P~!!]+{!#|UU+{}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGd+{!$cWOY!$`YZM]Zz!$`z{!${{#O!$`#O#P!&S#P#Q!!]#Q~!$`+{!%OYOY!$`YZM]Zz!$`z{!${{!P!$`!P!Q!%n!Q#O!$`#O#P!&S#P#Q!!]#Q~!$`+{!%sTU+{OYG{Z#OG{#O#PH_#P#QFx#Q~G{+{!&VTOY!$`YZM]Zz!$`z{!${{~!$`+{!&iTOY!!]YZM]Zz!!]z{!#Q{~!!]+{!&}_}POzM]z{Mi{#ZM]#Z#[!&x#[#]M]#]#^!&x#^#aM]#a#b!&x#b#gM]#g#h!&x#h#iM]#i#j!&x#j#mM]#m#n!&x#n~M],T!(R[$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|,T!(|^$UWOY!'|YZKoZz!'|z{!(w{!P!'|!P!Q!)x!Q!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|,T!*PY$UWU+{OYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~Hq,T!*tX$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#o!'|#o#p!$`#p~!'|,T!+fX$UWOYJlYZKoZzJlz{NQ{!^Jl!^!_!!]!_#oJl#o#p!!]#p~Jl,T!,Yc$UW}POzKoz{LZ{!^Ko!^!_M]!_#ZKo#Z#[!,R#[#]Ko#]#^!,R#^#aKo#a#b!,R#b#gKo#g#h!,R#h#iKo#i#j!,R#j#mKo#m#n!,R#n#oKo#o#pM]#p~Ko,T!-lV$UWT+{OY!-eYZ%TZ!^!-e!^!_!.R!_#o!-e#o#p!.R#p~!-e+{!.WQT+{OY!.RZ~!.R$P!.g[$UW#o#v}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du]!/f[#wS$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Duy!0cd$UWkqO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#U%T#U#V!3X#V#X%T#X#YAl#Y#b%T#b#c!2w#c#d!4m#d#l%T#l#m!5{#m#o%T#p~%Ty!1x_$UWkqO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#X%T#X#YAl#Y#b%T#b#c!2w#c#o%T#p~%Ty!3OR$UWkqO!^%T!_#o%T#p~%Ty!3^W$UWO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#o%T#p~%Ty!3}Y$UWkqO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#b%T#b#c!2w#c#o%T#p~%Ty!4rV$UWO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#o%T#p~%Ty!5`X$UWkqO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#b%T#b#c!2w#c#o%T#p~%Ty!6QZ$UWO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#o%T#p~%Ty!6z]$UWkqO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#b%T#b#c!2w#c#o%T#p~%T%w!7|R!]V$UW#m%hO!^%T!_#o%T#p~%T!P!8^R_w$UWO!^%T!_#o%T#p~%T+c!8rR'`d!a%Y#x&s'zP!P!Q!8{!^!_!9Q!_!`!9_W!9QO$WW#v!9VP#`#v!_!`!9Y#v!9_O#o#v#v!9dO#a#v%w!9kT!{%o$UWO!^%T!_!`'v!`!a!9z!a#o%T#p~%T$P!:RR#W#w$UWO!^%T!_#o%T#p~%T%w!:gT'_!s#a#v$RS$UWO!^%T!_!`!:v!`!a!;W!a#o%T#p~%T$O!:}R#a#v$UWO!^%T!_#o%T#p~%T$O!;_T#`#v$UWO!^%T!_!`5T!`!a!;n!a#o%T#p~%T$O!;uS#`#v$UWO!^%T!_!`5T!`#o%T#p~%T%w!]S#g#v$UWO!^%T!_!`5T!`#o%T#p~%T$P!>pR$UW'd#wO!^%T!_#o%T#p~%T~!?OO!T~%r!?VT'u%j$UWO!^%T!_!`5T!`#o%T#p#q!=P#q~%T$u!?oR!S$knQ$UWO!^%T!_#o%T#p~%TX!@PR!kP$UWO!^%T!_#o%T#p~%T,T!@gr$UW'W+{#zS'Z%k'epOX%TXY%cYZ%TZ[%c[p%Tpq%cqt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`,T!CO_$UW'X+{#zS'Z%k'epOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`",tokenizers:[noSemicolon,incdecToken,template,0,1,2,3,4,5,6,7,8,insertSemicolon],topRules:{Script:[0,7]},dialects:{jsx:11335,ts:11337},dynamicPrecedences:{"149":1,"176":1},specialized:[{term:287,get:(a,e)=>tsExtends(a,e)<<1},{term:287,get:a=>spec_identifier[a]||-1},{term:297,get:a=>spec_word[a]||-1},{term:63,get:a=>spec_LessThan[a]||-1}],tokenPrec:11358}),snippets=[snippetCompletion("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),snippetCompletion("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),snippetCompletion("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),snippetCompletion(`try { + */var f=react.exports,g=60103;reactJsxRuntime_production_min.Fragment=60107;if(typeof Symbol=="function"&&Symbol.for){var h=Symbol.for;g=h("react.element"),reactJsxRuntime_production_min.Fragment=h("react.fragment")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};function q(a,e,s){var o,c={},d=null,_=null;s!==void 0&&(d=""+s),e.key!==void 0&&(d=""+e.key),e.ref!==void 0&&(_=e.ref);for(o in e)n.call(e,o)&&!p.hasOwnProperty(o)&&(c[o]=e[o]);if(a&&a.defaultProps)for(o in e=a.defaultProps,e)c[o]===void 0&&(c[o]=e[o]);return{$$typeof:g,type:a,key:d,ref:_,props:c,_owner:m.current}}reactJsxRuntime_production_min.jsx=q;reactJsxRuntime_production_min.jsxs=q;jsxRuntime.exports=reactJsxRuntime_production_min;const jsx=jsxRuntime.exports.jsx,jsxs=jsxRuntime.exports.jsxs,Fragment=jsxRuntime.exports.Fragment;var _excluded=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root"],ReactCodeMirror=react.exports.forwardRef((a,e)=>{var{className:s,value:o="",selection:c,extensions:d=[],onChange:_,onStatistics:b,onCreateEditor:k,onUpdate:$,autoFocus:j,theme:_e="light",height:et,minHeight:tt,maxHeight:nt,width:it,minWidth:rt,maxWidth:st,basicSetup:ot,placeholder:at,indentWithTab:ht,editable:lt,readOnly:ut,root:ct}=a,dt=_objectWithoutPropertiesLoose(a,_excluded),ft=react.exports.useRef(null),{state:Et,view:yt,container:gt,setContainer:St}=useCodeMirror({container:ft.current,root:ct,value:o,autoFocus:j,theme:_e,height:et,minHeight:tt,maxHeight:nt,width:it,minWidth:rt,maxWidth:st,basicSetup:ot,placeholder:at,indentWithTab:ht,editable:lt,readOnly:ut,selection:c,onChange:_,onStatistics:b,onCreateEditor:k,onUpdate:$,extensions:d});if(react.exports.useImperativeHandle(e,()=>({editor:ft.current,state:Et,view:yt}),[ft,gt,Et,yt]),typeof o!="string")throw new Error("value must be typeof string but got "+typeof o);var pt=typeof _e=="string"?"cm-theme-"+_e:"cm-theme";return jsx("div",_extends({ref:ft,className:""+pt+(s?" "+s:"")},dt))});ReactCodeMirror.displayName="CodeMirror";class Stack{constructor(e,s,o,c,d,_,b,k,$,j=0,_e){this.p=e,this.stack=s,this.state=o,this.reducePos=c,this.pos=d,this.score=_,this.buffer=b,this.bufferBase=k,this.curContext=$,this.lookAhead=j,this.parent=_e}toString(){return`[${this.stack.filter((e,s)=>s%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,s,o=0){let c=e.parser.context;return new Stack(e,[],s,o,o,0,[],0,c?new StackContext(c,c.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,s){this.stack.push(this.state,s,this.bufferBase+this.buffer.length),this.state=e}reduce(e){let s=e>>19,o=e&65535,{parser:c}=this.p,d=c.dynamicPrecedence(o);if(d&&(this.score+=d),s==0){this.pushState(c.getGoto(this.state,o,!0),this.reducePos),o_;)this.stack.pop();this.reduceContext(o,b)}storeNode(e,s,o,c=4,d=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&_.buffer[b-4]==0&&_.buffer[b-1]>-1){if(s==o)return;if(_.buffer[b-2]>=s){_.buffer[b-2]=o;return}}}if(!d||this.pos==o)this.buffer.push(e,s,o,c);else{let _=this.buffer.length;if(_>0&&this.buffer[_-4]!=0)for(;_>0&&this.buffer[_-2]>o;)this.buffer[_]=this.buffer[_-4],this.buffer[_+1]=this.buffer[_-3],this.buffer[_+2]=this.buffer[_-2],this.buffer[_+3]=this.buffer[_-1],_-=4,c>4&&(c-=4);this.buffer[_]=e,this.buffer[_+1]=s,this.buffer[_+2]=o,this.buffer[_+3]=c}}shift(e,s,o){let c=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let d=e,{parser:_}=this.p;(o>this.pos||s<=_.maxNode)&&(this.pos=o,_.stateFlag(d,1)||(this.reducePos=o)),this.pushState(d,c),this.shiftContext(s,c),s<=_.maxNode&&this.buffer.push(s,c,o,4)}else this.pos=o,this.shiftContext(s,c),s<=this.p.parser.maxNode&&this.buffer.push(s,c,o,4)}apply(e,s,o){e&65536?this.reduce(e):this.shift(e,s,o)}useNode(e,s){let o=this.p.reused.length-1;(o<0||this.p.reused[o]!=e)&&(this.p.reused.push(e),o++);let c=this.pos;this.reducePos=this.pos=c+e.length,this.pushState(s,c),this.buffer.push(o,c,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,s=e.buffer.length;for(;s>0&&e.buffer[s-2]>e.reducePos;)s-=4;let o=e.buffer.slice(s),c=e.bufferBase+s;for(;e&&c==e.bufferBase;)e=e.parent;return new Stack(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,o,c,this.curContext,this.lookAhead,e)}recoverByDelete(e,s){let o=e<=this.p.parser.maxNode;o&&this.storeNode(e,this.pos,s,4),this.storeNode(0,this.pos,s,o?8:4),this.pos=this.reducePos=s,this.score-=190}canShift(e){for(let s=new SimulatedStack(this);;){let o=this.p.parser.stateSlot(s.state,4)||this.p.parser.hasAction(s.state,e);if((o&65536)==0)return!0;if(o==0)return!1;s.reduce(o)}}recoverByInsert(e){if(this.stack.length>=300)return[];let s=this.p.parser.nextStates(this.state);if(s.length>4<<1||this.stack.length>=120){let c=[];for(let d=0,_;dk&1&&b==_)||c.push(s[d],_)}s=c}let o=[];for(let c=0;c>19,c=e&65535,d=this.stack.length-o*3;if(d<0||s.getGoto(this.stack[d],c,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let s=0;sthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class StackContext{constructor(e,s){this.tracker=e,this.context=s,this.hash=e.strict?e.hash(s):0}}var Recover;(function(a){a[a.Insert=200]="Insert",a[a.Delete=190]="Delete",a[a.Reduce=100]="Reduce",a[a.MaxNext=4]="MaxNext",a[a.MaxInsertStackDepth=300]="MaxInsertStackDepth",a[a.DampenInsertStackDepth=120]="DampenInsertStackDepth"})(Recover||(Recover={}));class SimulatedStack{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let s=e&65535,o=e>>19;o==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(o-1)*3;let c=this.start.p.parser.getGoto(this.stack[this.base-3],s,!0);this.state=c}}class StackBufferCursor{constructor(e,s,o){this.stack=e,this.pos=s,this.index=o,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,s=e.bufferBase+e.buffer.length){return new StackBufferCursor(e,s,s-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new StackBufferCursor(this.stack,this.pos,this.index)}}class CachedToken{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const nullToken=new CachedToken;class InputStream{constructor(e,s){this.input=e,this.ranges=s,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=nullToken,this.rangeIndex=0,this.pos=this.chunkPos=s[0].from,this.range=s[0],this.end=s[s.length-1].to,this.readNext()}resolveOffset(e,s){let o=this.range,c=this.rangeIndex,d=this.pos+e;for(;do.to:d>=o.to;){if(c==this.ranges.length-1)return null;let _=this.ranges[++c];d+=_.from-o.to,o=_}return d}peek(e){let s=this.chunkOff+e,o,c;if(s>=0&&s=this.chunk2Pos&&ob.to&&(this.chunk2=this.chunk2.slice(0,b.to-o)),c=this.chunk2.charCodeAt(0)}}return o>=this.token.lookAhead&&(this.token.lookAhead=o+1),c}acceptToken(e,s=0){let o=s?this.resolveOffset(s,-1):this.pos;if(o==null||o=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,s){if(s?(this.token=s,s.start=e,s.lookAhead=e+1,s.value=s.extended=-1):this.token=nullToken,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&s<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,s-this.chunkPos);if(e>=this.chunk2Pos&&s<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,s-this.chunk2Pos);if(e>=this.range.from&&s<=this.range.to)return this.input.read(e,s);let o="";for(let c of this.ranges){if(c.from>=s)break;c.to>e&&(o+=this.input.read(Math.max(c.from,e),Math.min(c.to,s)))}return o}}class TokenGroup{constructor(e,s){this.data=e,this.id=s}token(e,s){readToken(this.data,e,s,this.id)}}TokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=!1;class ExternalTokenizer{constructor(e,s={}){this.token=e,this.contextual=!!s.contextual,this.fallback=!!s.fallback,this.extend=!!s.extend}}function readToken(a,e,s,o){let c=0,d=1<0){let tt=a[et];if(b.allows(tt)&&(e.token.value==-1||e.token.value==tt||_.overrides(tt,e.token.value))){e.acceptToken(tt);break}}let $=e.next,j=0,_e=a[c+2];if(e.next<0&&_e>j&&a[k+_e*3-3]==65535){c=a[k+_e*3-1];continue e}for(;j<_e;){let et=j+_e>>1,tt=k+et+(et<<1),nt=a[tt],it=a[tt+1];if($=it)j=et+1;else{c=a[tt+2],e.advance();continue e}}break}}function decodeArray(a,e=Uint16Array){if(typeof a!="string")return a;let s=null;for(let o=0,c=0;o=92&&_--,_>=34&&_--;let k=_-32;if(k>=46&&(k-=46,b=!0),d+=k,b)break;d*=46}s?s[c++]=d:s=new e(d)}return s}const verbose=typeof process!="undefined"&&process.env&&/\bparse\b/.test({}.LOG);let stackIDs=null;var Safety;(function(a){a[a.Margin=25]="Margin"})(Safety||(Safety={}));function cutAt(a,e,s){let o=a.cursor(IterMode.IncludeAnonymous);for(o.moveTo(e);;)if(!(s<0?o.childBefore(e):o.childAfter(e)))for(;;){if((s<0?o.toe)&&!o.type.isError)return s<0?Math.max(0,Math.min(o.to-1,e-25)):Math.min(a.length,Math.max(o.from+1,e+25));if(s<0?o.prevSibling():o.nextSibling())break;if(!o.parent())return s<0?0:a.length}}class FragmentCursor{constructor(e,s){this.fragments=e,this.nodeSet=s,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?cutAt(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?cutAt(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=_,null;if(d instanceof Tree){if(_==e){if(_=Math.max(this.safeFrom,e)&&(this.trees.push(d),this.start.push(_),this.index.push(0))}else this.index[s]++,this.nextStart=_+d.length}}}class TokenCache{constructor(e,s){this.stream=s,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(o=>new CachedToken)}getActions(e){let s=0,o=null,{parser:c}=e.p,{tokenizers:d}=c,_=c.stateSlot(e.state,3),b=e.curContext?e.curContext.hash:0,k=0;for(let $=0;$_e.end+25&&(k=Math.max(_e.lookAhead,k)),_e.value!=0)){let et=s;if(_e.extended>-1&&(s=this.addActions(e,_e.extended,_e.end,s)),s=this.addActions(e,_e.value,_e.end,s),!j.extend&&(o=_e,s>et))break}}for(;this.actions.length>s;)this.actions.pop();return k&&e.setLookAhead(k),!o&&e.pos==this.stream.end&&(o=new CachedToken,o.value=e.p.parser.eofTerm,o.start=o.end=e.pos,s=this.addActions(e,o.value,o.end,s)),this.mainToken=o,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let s=new CachedToken,{pos:o,p:c}=e;return s.start=o,s.end=Math.min(o+1,c.stream.end),s.value=o==c.stream.end?c.parser.eofTerm:0,s}updateCachedToken(e,s,o){if(s.token(this.stream.reset(o.pos,e),o),e.value>-1){let{parser:c}=o.p;for(let d=0;d=0&&o.p.parser.dialect.allows(_>>1)){(_&1)==0?e.value=_>>1:e.extended=_>>1;break}}}else e.value=0,e.end=Math.min(o.p.stream.end,o.pos+1)}putAction(e,s,o,c){for(let d=0;de.bufferLength*4?new FragmentCursor(o,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,s=this.minStackPos,o=this.stacks=[],c,d;for(let _=0;_s)o.push(b);else{if(this.advanceStack(b,o,e))continue;{c||(c=[],d=[]),c.push(b);let k=this.tokens.getMainToken(b);d.push(k.value,k.end)}}break}}if(!o.length){let _=c&&findFinished(c);if(_)return this.stackToTree(_);if(this.parser.strict)throw verbose&&c&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+s);this.recovering||(this.recovering=5)}if(this.recovering&&c){let _=this.stoppedAt!=null&&c[0].pos>this.stoppedAt?c[0]:this.runRecovery(c,d,o);if(_)return this.stackToTree(_.forceAll())}if(this.recovering){let _=this.recovering==1?1:this.recovering*3;if(o.length>_)for(o.sort((b,k)=>k.score-b.score);o.length>_;)o.pop();o.some(b=>b.reducePos>s)&&this.recovering--}else if(o.length>1){e:for(let _=0;_500&&$.buffer.length>500)if((b.score-$.score||b.buffer.length-$.buffer.length)>0)o.splice(k--,1);else{o.splice(_--,1);continue e}}}}this.minStackPos=o[0].pos;for(let _=1;_ ":"";if(this.stoppedAt!=null&&c>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let $=e.curContext&&e.curContext.tracker.strict,j=$?e.curContext.hash:0;for(let _e=this.fragments.nodeAt(c);_e;){let et=this.parser.nodeSet.types[_e.type.id]==_e.type?d.getGoto(e.state,_e.type.id):-1;if(et>-1&&_e.length&&(!$||(_e.prop(NodeProp.contextHash)||0)==j))return e.useNode(_e,et),verbose&&console.log(_+this.stackID(e)+` (via reuse of ${d.getName(_e.type.id)})`),!0;if(!(_e instanceof Tree)||_e.children.length==0||_e.positions[0]>0)break;let tt=_e.children[0];if(tt instanceof Tree&&_e.positions[0]==0)_e=tt;else break}}let b=d.stateSlot(e.state,4);if(b>0)return e.reduce(b),verbose&&console.log(_+this.stackID(e)+` (via always-reduce ${d.getName(b&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let k=this.tokens.getActions(e);for(let $=0;$c?s.push(nt):o.push(nt)}return!1}advanceFully(e,s){let o=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>o)return pushStackDedup(e,s),!0}}runRecovery(e,s,o){let c=null,d=!1;for(let _=0;_ ":"";if(b.deadEnd&&(d||(d=!0,b.restart(),verbose&&console.log(j+this.stackID(b)+" (restarted)"),this.advanceFully(b,o))))continue;let _e=b.split(),et=j;for(let tt=0;_e.forceReduce()&&tt<10&&(verbose&&console.log(et+this.stackID(_e)+" (via force-reduce)"),!this.advanceFully(_e,o));tt++)verbose&&(et=this.stackID(_e)+" -> ");for(let tt of b.recoverByInsert(k))verbose&&console.log(j+this.stackID(tt)+" (via recover-insert)"),this.advanceFully(tt,o);this.stream.end>b.pos?($==b.pos&&($++,k=0),b.recoverByDelete(k,$),verbose&&console.log(j+this.stackID(b)+` (via recover-delete ${this.parser.getName(k)})`),pushStackDedup(b,o)):(!c||c.scorea;class ContextTracker{constructor(e){this.start=e.start,this.shift=e.shift||id,this.reduce=e.reduce||id,this.reuse=e.reuse||id,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class LRParser extends Parser{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (${14})`);let s=e.nodeNames.split(" ");this.minRepeatTerm=s.length;for(let b=0;be.topRules[b][1]),c=[];for(let b=0;b=0)d(j,k,b[$++]);else{let _e=b[$+-j];for(let et=-j;et>0;et--)d(b[$++],k,_e);$++}}}this.nodeSet=new NodeSet(s.map((b,k)=>NodeType.define({name:k>=this.minRepeatTerm?void 0:b,id:k,props:c[k],top:o.indexOf(k)>-1,error:k==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(k)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=DefaultBufferLength;let _=decodeArray(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let b=0;btypeof b=="number"?new TokenGroup(_,b):b),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,s,o){let c=new Parse(this,e,s,o);for(let d of this.wrappers)c=d(c,e,s,o);return c}getGoto(e,s,o=!1){let c=this.goto;if(s>=c[0])return-1;for(let d=c[s+1];;){let _=c[d++],b=_&1,k=c[d++];if(b&&o)return k;for(let $=d+(_>>1);d<$;d++)if(c[d]==e)return k;if(b)return-1}}hasAction(e,s){let o=this.data;for(let c=0;c<2;c++)for(let d=this.stateSlot(e,c?2:1),_;;d+=3){if((_=o[d])==65535)if(o[d+1]==1)_=o[d=pair(o,d+2)];else{if(o[d+1]==2)return pair(o,d+2);break}if(_==s||_==0)return pair(o,d+1)}return 0}stateSlot(e,s){return this.states[e*6+s]}stateFlag(e,s){return(this.stateSlot(e,0)&s)>0}validAction(e,s){if(s==this.stateSlot(e,4))return!0;for(let o=this.stateSlot(e,1);;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=pair(this.data,o+2);else return!1;if(s==pair(this.data,o+1))return!0}}nextStates(e){let s=[];for(let o=this.stateSlot(e,1);;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=pair(this.data,o+2);else break;if((this.data[o+2]&1)==0){let c=this.data[o+1];s.some((d,_)=>_&1&&d==c)||s.push(this.data[o],c)}}return s}overrides(e,s){let o=findOffset(this.data,this.tokenPrecTable,s);return o<0||findOffset(this.data,this.tokenPrecTable,e){let c=e.tokenizers.find(d=>d.from==o);return c?c.to:o})),e.specializers&&(s.specializers=this.specializers.slice(),s.specializerSpecs=this.specializerSpecs.map((o,c)=>{let d=e.specializers.find(b=>b.from==o.external);if(!d)return o;let _=Object.assign(Object.assign({},o),{external:d.to});return s.specializers[c]=getSpecializer(_),_})),e.contextTracker&&(s.context=e.contextTracker),e.dialect&&(s.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(s.strict=e.strict),e.wrap&&(s.wrappers=s.wrappers.concat(e.wrap)),e.bufferLength!=null&&(s.bufferLength=e.bufferLength),s}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let s=this.dynamicPrecedences;return s==null?0:s[e]||0}parseDialect(e){let s=Object.keys(this.dialects),o=s.map(()=>!1);if(e)for(let d of e.split(" ")){let _=s.indexOf(d);_>=0&&(o[_]=!0)}let c=null;for(let d=0;do)&&s.p.parser.stateFlag(s.state,2)&&(!e||e.scorea.external(s,o)<<1|e}return a.get}const TSExtends=1,noSemi=281,incdec=2,incdecPrefix=3,templateContent=282,InterpolationStart=4,templateEnd=283,insertSemi=284,spaces=286,newline=287,LineComment=5,BlockComment=6,Dialect_ts=1,space=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],braceR=125,braceL=123,semicolon=59,slash=47,star=42,plus=43,minus=45,dollar=36,backtick=96,backslash=92,trackNewline=new ContextTracker({start:!1,shift(a,e){return e==LineComment||e==BlockComment||e==spaces?a:e==newline},strict:!1}),insertSemicolon=new ExternalTokenizer((a,e)=>{let{next:s}=a;(s==braceR||s==-1||e.context)&&e.canShift(insertSemi)&&a.acceptToken(insertSemi)},{contextual:!0,fallback:!0}),noSemicolon=new ExternalTokenizer((a,e)=>{let{next:s}=a,o;space.indexOf(s)>-1||s==slash&&((o=a.peek(1))==slash||o==star)||s!=braceR&&s!=semicolon&&s!=-1&&!e.context&&e.canShift(noSemi)&&a.acceptToken(noSemi)},{contextual:!0}),incdecToken=new ExternalTokenizer((a,e)=>{let{next:s}=a;if((s==plus||s==minus)&&(a.advance(),s==a.next)){a.advance();let o=!e.context&&e.canShift(incdec);a.acceptToken(o?incdec:incdecPrefix)}},{contextual:!0}),template=new ExternalTokenizer(a=>{for(let e=!1,s=0;;s++){let{next:o}=a;if(o<0){s&&a.acceptToken(templateContent);break}else if(o==backtick){s?a.acceptToken(templateContent):a.acceptToken(templateEnd,1);break}else if(o==braceL&&e){s==1?a.acceptToken(InterpolationStart,1):a.acceptToken(templateContent,-1);break}else if(o==10&&s){a.advance(),a.acceptToken(templateContent);break}else o==backslash&&a.advance();e=o==dollar,a.advance()}}),tsExtends=new ExternalTokenizer((a,e)=>{if(!(a.next!=101||!e.dialectEnabled(Dialect_ts))){a.advance();for(let s=0;s<6;s++){if(a.next!="xtends".charCodeAt(s))return;a.advance()}a.next>=57&&a.next<=65||a.next>=48&&a.next<=90||a.next==95||a.next>=97&&a.next<=122||a.next>160||a.acceptToken(TSExtends)}}),jsHighlight=styleTags({"get set async static":tags.modifier,"for while do if else switch try catch finally return throw break continue default case":tags.controlKeyword,"in of await yield void typeof delete instanceof":tags.operatorKeyword,"let var const function class extends":tags.definitionKeyword,"import export from":tags.moduleKeyword,"with debugger as new":tags.keyword,TemplateString:tags.special(tags.string),super:tags.atom,BooleanLiteral:tags.bool,this:tags.self,null:tags.null,Star:tags.modifier,VariableName:tags.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":tags.function(tags.variableName),VariableDefinition:tags.definition(tags.variableName),Label:tags.labelName,PropertyName:tags.propertyName,PrivatePropertyName:tags.special(tags.propertyName),"CallExpression/MemberExpression/PropertyName":tags.function(tags.propertyName),"FunctionDeclaration/VariableDefinition":tags.function(tags.definition(tags.variableName)),"ClassDeclaration/VariableDefinition":tags.definition(tags.className),PropertyDefinition:tags.definition(tags.propertyName),PrivatePropertyDefinition:tags.definition(tags.special(tags.propertyName)),UpdateOp:tags.updateOperator,LineComment:tags.lineComment,BlockComment:tags.blockComment,Number:tags.number,String:tags.string,ArithOp:tags.arithmeticOperator,LogicOp:tags.logicOperator,BitOp:tags.bitwiseOperator,CompareOp:tags.compareOperator,RegExp:tags.regexp,Equals:tags.definitionOperator,Arrow:tags.function(tags.punctuation),": Spread":tags.punctuation,"( )":tags.paren,"[ ]":tags.squareBracket,"{ }":tags.brace,"InterpolationStart InterpolationEnd":tags.special(tags.brace),".":tags.derefOperator,", ;":tags.separator,TypeName:tags.typeName,TypeDefinition:tags.definition(tags.typeName),"type enum interface implements namespace module declare":tags.definitionKeyword,"abstract global Privacy readonly override":tags.modifier,"is keyof unique infer":tags.operatorKeyword,JSXAttributeValue:tags.attributeValue,JSXText:tags.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":tags.angleBracket,"JSXIdentifier JSXNameSpacedName":tags.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":tags.attributeName}),spec_identifier={__proto__:null,export:18,as:23,from:29,default:32,async:37,function:38,this:48,true:56,false:56,void:66,typeof:70,null:86,super:88,new:122,await:139,yield:141,delete:142,class:152,extends:154,public:197,private:197,protected:197,readonly:199,instanceof:220,in:222,const:224,import:256,keyof:307,unique:311,infer:317,is:351,abstract:371,implements:373,type:375,let:378,var:380,interface:387,enum:391,namespace:397,module:399,declare:403,global:407,for:428,of:437,while:440,with:444,do:448,if:452,else:454,switch:458,case:464,try:470,catch:474,finally:478,return:482,throw:486,break:490,continue:494,debugger:498},spec_word={__proto__:null,async:109,get:111,set:113,public:161,private:161,protected:161,static:163,abstract:165,override:167,readonly:173,new:355},spec_LessThan={__proto__:null,"<":129},parser=LRParser.deserialize({version:14,states:"$8SO`QdOOO'QQ(C|O'#ChO'XOWO'#DVO)dQdO'#D]O)tQdO'#DhO){QdO'#DrO-xQdO'#DxOOQO'#E]'#E]O.]Q`O'#E[O.bQ`O'#E[OOQ(C['#Ef'#EfO0aQ(C|O'#ItO2wQ(C|O'#IuO3eQ`O'#EzO3jQ!bO'#FaOOQ(C['#FS'#FSO3rO#tO'#FSO4QQ&jO'#FhO5bQ`O'#FgOOQ(C['#Iu'#IuOOQ(CW'#It'#ItOOQS'#J^'#J^O5gQ`O'#HpO5lQ(ChO'#HqOOQS'#Ih'#IhOOQS'#Hr'#HrQ`QdOOO){QdO'#DjO5tQ`O'#G[O5yQ&jO'#CmO6XQ`O'#EZO6dQ`O'#EgO6iQ,UO'#FRO7TQ`O'#G[O7YQ`O'#G`O7eQ`O'#G`O7sQ`O'#GcO7sQ`O'#GdO7sQ`O'#GfO5tQ`O'#GiO8dQ`O'#GlO9rQ`O'#CdO:SQ`O'#GyO:[Q`O'#HPO:[Q`O'#HRO`QdO'#HTO:[Q`O'#HVO:[Q`O'#HYO:aQ`O'#H`O:fQ(CjO'#HfO){QdO'#HhO:qQ(CjO'#HjO:|Q(CjO'#HlO5lQ(ChO'#HnO){QdO'#DWOOOW'#Ht'#HtO;XOWO,59qOOQ(C[,59q,59qO=jQtO'#ChO=tQdO'#HuO>XQ`O'#IvO@WQtO'#IvO'dQdO'#IvO@_Q`O,59wO@uQ7[O'#DbOAnQ`O'#E]OA{Q`O'#JROBWQ`O'#JQOBWQ`O'#JQOB`Q`O,5:yOBeQ`O'#JPOBlQaO'#DyO5yQ&jO'#EZOBzQ`O'#EZOCVQpO'#FROOQ(C[,5:S,5:SOC_QdO,5:SOE]Q(C|O,5:^OEyQ`O,5:dOFdQ(ChO'#JOO7YQ`O'#I}OFkQ`O'#I}OFsQ`O,5:xOFxQ`O'#I}OGWQdO,5:vOIWQ&jO'#EWOJeQ`O,5:vOKwQ&jO'#DlOLOQdO'#DqOLYQ7[O,5;PO){QdO,5;POOQS'#Er'#ErOOQS'#Et'#EtO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;ROOQS'#Ex'#ExOLbQdO,5;cOOQ(C[,5;h,5;hOOQ(C[,5;i,5;iONbQ`O,5;iOOQ(C[,5;j,5;jO){QdO'#IPONgQ(ChO,5[OOQS'#Ik'#IkOOQS,5>],5>]OOQS-E;p-E;pO!+kQ(C|O,5:UOOQ(CX'#Cp'#CpO!,[Q&kO,5Q,5>QO){QdO,5>QO5lQ(ChO,5>SOOQS,5>U,5>UO!8cQ`O,5>UOOQS,5>W,5>WO!8cQ`O,5>WOOQS,5>Y,5>YO!8hQpO,59rOOOW-E;r-E;rOOQ(C[1G/]1G/]O!8mQtO,5>aO'dQdO,5>aOOQO,5>f,5>fO!8wQdO'#HuOOQO-E;s-E;sO!9UQ`O,5?bO!9^QtO,5?bO!9eQ`O,5?lOOQ(C[1G/c1G/cO!9mQ!bO'#DTOOQO'#Ix'#IxO){QdO'#IxO!:[Q!bO'#IxO!:yQ!bO'#DcO!;[Q7[O'#DcO!=gQdO'#DcO!=nQ`O'#IwO!=vQ`O,59|O!={Q`O'#EaO!>ZQ`O'#JSO!>cQ`O,5:zO!>yQ7[O'#DcO){QdO,5?mO!?TQ`O'#HzOOQO-E;x-E;xO!9eQ`O,5?lOOQ(CW1G0e1G0eO!@aQ7[O'#D|OOQ(C[,5:e,5:eO){QdO,5:eOIWQ&jO,5:eO!@hQaO,5:eO:aQ`O,5:uO!-OQ!bO,5:uO!-WQ&jO,5:uO5yQ&jO,5:uOOQ(C[1G/n1G/nOOQ(C[1G0O1G0OOOQ(CW'#EV'#EVO){QdO,5?jO!@sQ(ChO,5?jO!AUQ(ChO,5?jO!A]Q`O,5?iO!AeQ`O'#H|O!A]Q`O,5?iOOQ(CW1G0d1G0dO7YQ`O,5?iOOQ(C[1G0b1G0bO!BPQ(C|O1G0bO!CRQ(CyO,5:rOOQ(C]'#Fq'#FqO!CoQ(C}O'#IqOGWQdO1G0bO!EqQ,VO'#IyO!E{Q`O,5:WO!FQQtO'#IzO){QdO'#IzO!F[Q`O,5:]OOQ(C]'#DT'#DTOOQ(C[1G0k1G0kO!FaQ`O1G0kO!HrQ(C|O1G0mO!HyQ(C|O1G0mO!K^Q(C|O1G0mO!KeQ(C|O1G0mO!MlQ(C|O1G0mO!NPQ(C|O1G0mO#!pQ(C|O1G0mO#!wQ(C|O1G0mO#%[Q(C|O1G0mO#%cQ(C|O1G0mO#'WQ(C|O1G0mO#*QQMlO'#ChO#+{QMlO1G0}O#-vQMlO'#IuOOQ(C[1G1T1G1TO#.ZQ(C|O,5>kOOQ(CW-E;}-E;}O#.zQ(C}O1G0mOOQ(C[1G0m1G0mO#1PQ(C|O1G1QO#1pQ!bO,5;sO#1uQ!bO,5;tO#1zQ!bO'#F[O#2`Q`O'#FZOOQO'#JW'#JWOOQO'#H}'#H}O#2eQ!bO1G1]OOQ(C[1G1]1G1]OOOO1G1f1G1fO#2sQMlO'#ItO#2}Q`O,5;}OLbQdO,5;}OOOO-E;|-E;|OOQ(C[1G1Y1G1YOOQ(C[,5PQtO1G1VOOQ(C[1G1X1G1XO5tQ`O1G2}O#>WQ`O1G2}O#>]Q`O1G2}O#>bQ`O1G2}OOQS1G2}1G2}O#>gQ&kO1G2bO7YQ`O'#JQO7YQ`O'#EaO7YQ`O'#IWO#>xQ(ChO,5?yOOQS1G2f1G2fO!0VQ`O1G2lOIWQ&jO1G2iO#?TQ`O1G2iOOQS1G2j1G2jOIWQ&jO1G2jO#?YQaO1G2jO#?bQ7[O'#GhOOQS1G2l1G2lO!'VQ7[O'#IYO!0[QpO1G2oOOQS1G2o1G2oOOQS,5=Y,5=YO#?jQ&kO,5=[O5tQ`O,5=[O#6SQ`O,5=_O5bQ`O,5=_O!-OQ!bO,5=_O!-WQ&jO,5=_O5yQ&jO,5=_O#?{Q`O'#JaO#@WQ`O,5=`OOQS1G.j1G.jO#@]Q(ChO1G.jO#@hQ`O1G.jO#@mQ`O1G.jO5lQ(ChO1G.jO#@uQtO,5@OO#APQ`O,5@OO#A[QdO,5=gO#AcQ`O,5=gO7YQ`O,5@OOOQS1G3P1G3PO`QdO1G3POOQS1G3V1G3VOOQS1G3X1G3XO:[Q`O1G3ZO#AhQdO1G3]O#EcQdO'#H[OOQS1G3`1G3`O#EpQ`O'#HbO:aQ`O'#HdOOQS1G3f1G3fO#ExQdO1G3fO5lQ(ChO1G3lOOQS1G3n1G3nOOQ(CW'#Fx'#FxO5lQ(ChO1G3pO5lQ(ChO1G3rOOOW1G/^1G/^O#IvQpO,5aO#JYQ`O1G4|O#JbQ`O1G5WO#JjQ`O,5?dOLbQdO,5:{O7YQ`O,5:{O:aQ`O,59}OLbQdO,59}O!-OQ!bO,59}O#JoQMlO,59}OOQO,5:{,5:{O#JyQ7[O'#HvO#KaQ`O,5?cOOQ(C[1G/h1G/hO#KiQ7[O'#H{O#K}Q`O,5?nOOQ(CW1G0f1G0fO!;[Q7[O,59}O#LVQtO1G5XO7YQ`O,5>fOOQ(CW'#ES'#ESO#LaQ(DjO'#ETO!@XQ7[O'#D}OOQO'#Hy'#HyO#L{Q7[O,5:hOOQ(C[,5:h,5:hO#MSQ7[O'#D}O#MeQ7[O'#D}O#MlQ7[O'#EYO#MoQ7[O'#ETO#M|Q7[O'#ETO!@XQ7[O'#ETO#NaQ`O1G0PO#NfQqO1G0POOQ(C[1G0P1G0PO){QdO1G0POIWQ&jO1G0POOQ(C[1G0a1G0aO:aQ`O1G0aO!-OQ!bO1G0aO!-WQ&jO1G0aO#NmQ(C|O1G5UO){QdO1G5UO#N}Q(ChO1G5UO$ `Q`O1G5TO7YQ`O,5>hOOQO,5>h,5>hO$ hQ`O,5>hOOQO-E;z-E;zO$ `Q`O1G5TO$ vQ(C}O,59jO$#xQ(C}O,5m,5>mO$-rQ`O,5>mOOQ(C]1G2P1G2PP$-wQ`O'#IRPOQ(C]-Eo,5>oOOQO-Ep,5>pOOQO-Ex,5>xOOQO-E<[-E<[OOQ(C[7+&q7+&qO$6OQ`O7+(iO5lQ(ChO7+(iO5tQ`O7+(iO$6TQ`O7+(iO$6YQaO7+'|OOQ(CW,5>r,5>rOOQ(CW-Et,5>tOOQO-EO,5>OOOQS7+)Q7+)QOOQS7+)W7+)WOOQS7+)[7+)[OOQS7+)^7+)^OOQO1G5O1G5OO$:nQMlO1G0gO$:xQ`O1G0gOOQO1G/i1G/iO$;TQMlO1G/iO:aQ`O1G/iOLbQdO'#DcOOQO,5>b,5>bOOQO-E;t-E;tOOQO,5>g,5>gOOQO-E;y-E;yO!-OQ!bO1G/iO:aQ`O,5:iOOQO,5:o,5:oO){QdO,5:oO$;_Q(ChO,5:oO$;jQ(ChO,5:oO!-OQ!bO,5:iOOQO-E;w-E;wOOQ(C[1G0S1G0SO!@XQ7[O,5:iO$;xQ7[O,5:iO$PQ`O7+*oO$>XQ(C}O1G2[O$@^Q(C}O1G2^O$BcQ(C}O1G1yO$DnQ,VO,5>cOOQO-E;u-E;uO$DxQtO,5>dO){QdO,5>dOOQO-E;v-E;vO$ESQ`O1G5QO$E[QMlO1G0bO$GcQMlO1G0mO$GjQMlO1G0mO$IkQMlO1G0mO$IrQMlO1G0mO$KgQMlO1G0mO$KzQMlO1G0mO$NXQMlO1G0mO$N`QMlO1G0mO%!aQMlO1G0mO%!hQMlO1G0mO%$]QMlO1G0mO%$pQ(C|O<kOOOO7+'T7+'TOOOW1G/R1G/ROOQ(C]1G4X1G4XOJjQ&jO7+'zO%*VQ`O,5>lO5tQ`O,5>lOOQO-EnO%+dQ`O,5>nOIWQ&jO,5>nOOQO-Ew,5>wO%.vQ`O,5>wO%.{Q`O,5>wOOQO-EvOOQO-EqOOQO-EsOOQO-E{AN>{OOQOAN>uAN>uO%3rQ(C|OAN>{O:aQ`OAN>uO){QdOAN>{O!-OQ!bOAN>uO&)wQ(ChOAN>{O&*SQ(C}OG26lOOQ(CWG26bG26bOOQS!$( t!$( tOOQO<QQ`O'#E[O&>YQ`O'#EzO&>_Q`O'#EgO&>dQ`O'#JRO&>oQ`O'#JPO&>zQ`O,5:vO&?PQ,VO,5aO!O&PO~Ox&SO!W&^O!X&VO!Y&VO'^$dO~O]&TOk&TO!Q&WO'g&QO!S'kP!S'vP~P@dO!O'sX!R'sX!]'sX!c'sX'p'sX~O!{'sX#W#PX!S'sX~PA]O!{&_O!O'uX!R'uX~O!R&`O!O'tX~O!O&cO~O!{#eO~PA]OP&gO!T&dO!o&fO']$bO~Oc&lO!d$ZO']$bO~Ou$oO!d$nO~O!S&mO~P`Ou!{Ov!{Ox!|O!b!yO!d!zO'fQOQ!faZ!faj!fa!R!fa!a!fa!j!fa#[!fa#]!fa#^!fa#_!fa#`!fa#a!fa#b!fa#c!fa#e!fa#g!fa#i!fa#j!fa'p!fa'w!fa'x!fa~O_!fa'W!fa!O!fa!c!fan!fa!T!fa%Q!fa!]!fa~PCfO!c&nO~O!]!wO!{&pO'p&oO!R'rX_'rX'W'rX~O!c'rX~PFOO!R&tO!c'qX~O!c&vO~Ox$uO!T$vO#V&wO']$bO~OQTORTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!TSO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O']9aO'fQO'oYO'|aO~O]#qOh$QOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO']&{O'b$PO'f#sO~O#W&}O~O]#qOh$QOj#rOk#qOl#qOq$ROs$SOx#yO!T#zO!_$XO!d#vO#V$YO#t$VO$_$TO$a$UO$d$WO']&{O'b$PO'f#sO~O'a'mP~PJjO!Q'RO!c'nP~P){O'g'TO'oYO~OQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!T!bO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O']'cO'fQO'oYO'|;^O~O!d!zO~O!R#bO_$]a'W$]a!c$]a!O$]a!T$]a%Q$]a!]$]a~O#d'jO~PIWO!]'lO!T'yX#w'yX#z'yX$R'yX~Ou'mO~P! YOu'mO!T'yX#w'yX#z'yX$R'yX~O!T'oO#w'sO#z'nO$R'tO~O!Q'wO~PLbO#z#fO$R'zO~OP$eXu$eXx$eX!b$eX'w$eX'x$eX~OPfX!RfX!{fX'afX'a$eX~P!!rOk'|O~OS'}O'U(OO'V(QO~OP(ZOu(SOx(TO'w(VO'x(XO~O'a(RO~P!#{O'a([O~O]#qOh$QOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO'b$PO'f#sO~O!Q(`O'](]O!c'}P~P!$jO#W(bO~O!d(cO~O!Q(hO'](eO!O(OP~P!$jOj(uOx(mO!W(sO!X(lO!Y(lO!d(cO!x(tO$w(oO'^$dO'g(jO~O!S(rO~P!&jO!b!yOP'eXu'eXx'eX'w'eX'x'eX!R'eX!{'eX~O'a'eX#m'eX~P!'cOP(xO!{(wO!R'dX'a'dX~O!R(yO'a'cX~O']${O'a'cP~O'](|O~O!d)RO~O']&{O~Ox$uO!Q!rO!T$vO#U!uO#V!rO']$bO!c'qP~O!]!wO#W)VO~OQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO#j#ZO'fQO'p#[O'w!}O'x#OO~O_!^a!R!^a'W!^a!O!^a!c!^an!^a!T!^a%Q!^a!]!^a~P!)wOP)_O!T&dO!o)^O%Q)]O'b$PO~O!])aO!T'`X_'`X!R'`X'W'`X~O!d$ZO'b$PO~O!d$ZO']$bO'b$PO~O!]!wO#W&}O~O])lO%R)mO'])iO!S(VP~O!R)nO^(UX~O'g'TO~OZ)rO~O^)sO~O!T$lO']$bO'^$dO^(UP~Ox$uO!Q)xO!R&`O!T$vO']$bO!O'tP~O]&ZOk&ZO!Q)yO'g'TO!S'vP~O!R)zO_(RX'W(RX~O!{*OO'b$PO~OP*RO!T#zO'b$PO~O!T*TO~Ou*VO!TSO~O!n*[O~Oc*aO~O'](|O!S(TP~Oc$jO~O%RtO']${O~P8wOZ*gO^*fO~OQTORTO]cObnOcmOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!nlO#x^O%PqO'fQO'oYO'|aO~O!T!bO#t!lO']9aO~P!1_O^*fO_$^O'W$^O~O_*kO#d*mO%T*mO%U*mO~P){O!d%`O~O%t*rO~O!T*tO~O&V*vO&X*wOQ&SaR&SaX&Sa]&Sa_&Sab&Sac&Sah&Saj&Sak&Sal&Saq&Sas&Sax&Sa{&Sa|&Sa}&Sa!T&Sa!_&Sa!d&Sa!g&Sa!h&Sa!i&Sa!j&Sa!k&Sa!n&Sa#d&Sa#t&Sa#x&Sa%P&Sa%R&Sa%T&Sa%U&Sa%X&Sa%Z&Sa%^&Sa%_&Sa%a&Sa%n&Sa%t&Sa%v&Sa%x&Sa%z&Sa%}&Sa&T&Sa&Z&Sa&]&Sa&_&Sa&a&Sa&c&Sa'S&Sa']&Sa'f&Sa'o&Sa'|&Sa!S&Sa%{&Sa`&Sa&Q&Sa~O']*|O~On+PO~O!O&ia!R&ia~P!)wO!Q+TO!O&iX!R&iX~P){O!R%zO!O'ja~O!O'ja~P>aO!R&`O!O'ta~O!RwX!R!ZX!SwX!S!ZX!]wX!]!ZX!d!ZX!{wX'b!ZX~O!]+YO!{+XO!R#TX!R'lX!S#TX!S'lX!]'lX!d'lX'b'lX~O!]+[O!d$ZO'b$PO!R!VX!S!VX~O]&ROk&ROx&SO'g(jO~OQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!T!bO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O'fQO'oYO'|;^O~O']:SO~P!;jO!R+`O!S'kX~O!S+bO~O!]+YO!{+XO!R#TX!S#TX~O!R+cO!S'vX~O!S+eO~O]&ROk&ROx&SO'^$dO'g(jO~O!X+fO!Y+fO~P!>hOx$uO!Q+hO!T$vO']$bO!O&nX!R&nX~O_+lO!W+oO!X+kO!Y+kO!r+sO!s+qO!t+rO!u+pO!x+tO'^$dO'g(jO'o+iO~O!S+nO~P!?iOP+yO!T&dO!o+xO~O!{,PO!R'ra!c'ra_'ra'W'ra~O!]!wO~P!@sO!R&tO!c'qa~Ox$uO!Q,SO!T$vO#U,UO#V,SO']$bO!R&pX!c&pX~O_#Oi!R#Oi'W#Oi!O#Oi!c#Oin#Oi!T#Oi%Q#Oi!]#Oi~P!)wOP;tOu(SOx(TO'w(VO'x(XO~O#W!za!R!za!c!za!{!za!T!za_!za'W!za!O!za~P!BpO#W'eXQ'eXZ'eX_'eXj'eXv'eX!a'eX!d'eX!j'eX#['eX#]'eX#^'eX#_'eX#`'eX#a'eX#b'eX#c'eX#e'eX#g'eX#i'eX#j'eX'W'eX'f'eX'p'eX!c'eX!O'eX!T'eXn'eX%Q'eX!]'eX~P!'cO!R,_O'a'mX~P!#{O'a,aO~O!R,bO!c'nX~P!)wO!c,eO~O!O,fO~OQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'fQOZ#Zi_#Zij#Zi!R#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O#[#Zi~P!FfO#[#PO~P!FfOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO'fQOZ#Zi_#Zi!R#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~Oj#Zi~P!IQOj#RO~P!IQOQ#^Oj#ROu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO'fQO_#Zi!R#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P!KlOZ#dO!a#TO#a#TO#b#TO#c#TO~P!KlOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO'fQO_#Zi!R#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'w#Zi~P!NdO'w!}O~P!NdOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO'fQO'w!}O_#Zi!R#Zi#i#Zi#j#Zi'W#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'x#Zi~P##OO'x#OO~P##OOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO'fQO'w!}O'x#OO~O_#Zi!R#Zi#j#Zi'W#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P#%jOQ[XZ[Xj[Xu[Xv[Xx[X!a[X!b[X!d[X!j[X!{[X#WdX#[[X#][X#^[X#_[X#`[X#a[X#b[X#c[X#e[X#g[X#i[X#j[X#o[X'f[X'p[X'w[X'x[X!R[X!S[X~O#m[X~P#'}OQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO#i9nO#j9oO'fQO'p#[O'w!}O'x#OO~O#m,hO~P#*XOQ'iXZ'iXj'iXu'iXv'iXx'iX!a'iX!b'iX!d'iX!j'iX#['iX#]'iX#^'iX#_'iX#`'iX#a'iX#b'iX#e'iX#g'iX#i'iX#j'iX'f'iX'p'iX'w'iX'x'iX!R'iX~O!{9sO#o9sO#c'iX#m'iX!S'iX~P#,SO_&sa!R&sa'W&sa!c&san&sa!O&sa!T&sa%Q&sa!]&sa~P!)wOQ#ZiZ#Zi_#Zij#Ziv#Zi!R#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'f#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P!BpO_#ni!R#ni'W#ni!O#ni!c#nin#ni!T#ni%Q#ni!]#ni~P!)wO#z,jO~O#z,kO~O!]'lO!{,lO!T$OX#w$OX#z$OX$R$OX~O!Q,mO~O!T'oO#w,oO#z'nO$R,pO~O!R9pO!S'hX~P#*XO!S,qO~O$R,sO~OS'}O'U(OO'V,vO~O],yOk,yO!O,zO~O!RdX!]dX!cdX!c$eX'pdX~P!!rO!c-QO~P!BpO!R-RO!]!wO'p&oO!c'}X~O!c-WO~O!Q(`O']$bO!c'}P~O#W-YO~O!O$eX!R$eX!]$lX~P!!rO!R-ZO!O(OX~P!BpO!]-]O~O!O-_O~Oj-cO!]!wO!d$ZO'b$PO'p&oO~O!])aO~O_$^O!R-hO'W$^O~O!S-jO~P!&jO!X-kO!Y-kO'^$dO'g(jO~Ox-mO'g(jO~O!x-nO~O']${O!R&xX'a&xX~O!R(yO'a'ca~O'a-sO~Ou-tOv-tOx-uOPra'wra'xra!Rra!{ra~O'ara#mra~P#7pOu(SOx(TOP$^a'w$^a'x$^a!R$^a!{$^a~O'a$^a#m$^a~P#8fOu(SOx(TOP$`a'w$`a'x$`a!R$`a!{$`a~O'a$`a#m$`a~P#9XO]-vO~O#W-wO~O'a$na!R$na!{$na#m$na~P!#{O#W-zO~OP.TO!T&dO!o.SO%Q.RO~O]#qOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO'b$PO'f#sO~Oh.VO'].UO~P#:yO!])aO!T'`a_'`a!R'`a'W'`a~O#W.]O~OZ[X!RdX!SdX~O!R.^O!S(VX~O!S.`O~OZ.aO~O].cO'])iO~O!T$lO']$bO^'QX!R'QX~O!R)nO^(Ua~O!c.fO~P!)wO].hO~OZ.iO~O^.jO~OP.TO!T&dO!o.SO%Q.RO'b$PO~O!R)zO_(Ra'W(Ra~O!{.pO~OP.sO!T#zO~O'g'TO!S(SP~OP.}O!T.yO!o.|O%Q.{O'b$PO~OZ/XO!R/VO!S(TX~O!S/YO~O^/[O_$^O'W$^O~O]/]O~O]/^O'](|O~O#c/_O%r/`O~P0zO!{#eO#c/_O%r/`O~O_/aO~P){O_/cO~O%{/gOQ%yiR%yiX%yi]%yi_%yib%yic%yih%yij%yik%yil%yiq%yis%yix%yi{%yi|%yi}%yi!T%yi!_%yi!d%yi!g%yi!h%yi!i%yi!j%yi!k%yi!n%yi#d%yi#t%yi#x%yi%P%yi%R%yi%T%yi%U%yi%X%yi%Z%yi%^%yi%_%yi%a%yi%n%yi%t%yi%v%yi%x%yi%z%yi%}%yi&T%yi&Z%yi&]%yi&_%yi&a%yi&c%yi'S%yi']%yi'f%yi'o%yi'|%yi!S%yi`%yi&Q%yi~O`/mO!S/kO&Q/lO~P`O!TSO!d/oO~O&X*wOQ&SiR&SiX&Si]&Si_&Sib&Sic&Sih&Sij&Sik&Sil&Siq&Sis&Six&Si{&Si|&Si}&Si!T&Si!_&Si!d&Si!g&Si!h&Si!i&Si!j&Si!k&Si!n&Si#d&Si#t&Si#x&Si%P&Si%R&Si%T&Si%U&Si%X&Si%Z&Si%^&Si%_&Si%a&Si%n&Si%t&Si%v&Si%x&Si%z&Si%}&Si&T&Si&Z&Si&]&Si&_&Si&a&Si&c&Si'S&Si']&Si'f&Si'o&Si'|&Si!S&Si%{&Si`&Si&Q&Si~O!R#bOn$]a~O!O&ii!R&ii~P!)wO!R%zO!O'ji~O!R&`O!O'ti~O!O/uO~O!R!Va!S!Va~P#*XO]&ROk&RO!Q/{O'g(jO!R&jX!S&jX~P@dO!R+`O!S'ka~O]&ZOk&ZO!Q)yO'g'TO!R&oX!S&oX~O!R+cO!S'va~O!O'ui!R'ui~P!)wO_$^O!]!wO!d$ZO!j0VO!{0TO'W$^O'b$PO'p&oO~O!S0YO~P!?iO!X0ZO!Y0ZO'^$dO'g(jO'o+iO~O!W0[O~P#MSO!TSO!W0[O!u0^O!x0_O~P#MSO!W0[O!s0aO!t0aO!u0^O!x0_O~P#MSO!T&dO~O!T&dO~P!BpO!R'ri!c'ri_'ri'W'ri~P!)wO!{0jO!R'ri!c'ri_'ri'W'ri~O!R&tO!c'qi~Ox$uO!T$vO#V0lO']$bO~O#WraQraZra_rajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra'Wra'fra'pra!cra!Ora!Tranra%Qra!]ra~P#7pO#W$^aQ$^aZ$^a_$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a'W$^a'f$^a'p$^a!c$^a!O$^a!T$^an$^a%Q$^a!]$^a~P#8fO#W$`aQ$`aZ$`a_$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a'W$`a'f$`a'p$`a!c$`a!O$`a!T$`an$`a%Q$`a!]$`a~P#9XO#W$naQ$naZ$na_$naj$nav$na!R$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na'W$na'f$na'p$na!c$na!O$na!T$na!{$nan$na%Q$na!]$na~P!BpO_#Oq!R#Oq'W#Oq!O#Oq!c#Oqn#Oq!T#Oq%Q#Oq!]#Oq~P!)wO!R&kX'a&kX~PJjO!R,_O'a'ma~O!Q0tO!R&lX!c&lX~P){O!R,bO!c'na~O!R,bO!c'na~P!)wO#m!fa!S!fa~PCfO#m!^a!R!^a!S!^a~P#*XO!T1XO#x^O$P1YO~O!S1^O~On1_O~P!BpO_$Yq!R$Yq'W$Yq!O$Yq!c$Yqn$Yq!T$Yq%Q$Yq!]$Yq~P!)wO!O1`O~O],yOk,yO~Ou(SOx(TO'x(XOP$xi'w$xi!R$xi!{$xi~O'a$xi#m$xi~P$.POu(SOx(TOP$zi'w$zi'x$zi!R$zi!{$zi~O'a$zi#m$zi~P$.rO'p#[O~P!BpO!Q1cO']$bO!R&tX!c&tX~O!R-RO!c'}a~O!R-RO!]!wO!c'}a~O!R-RO!]!wO'p&oO!c'}a~O'a$gi!R$gi!{$gi#m$gi~P!#{O!Q1kO'](eO!O&vX!R&vX~P!$jO!R-ZO!O(Oa~O!R-ZO!O(Oa~P!BpO!]!wO~O!]!wO#c1sO~Oj1vO!]!wO'p&oO~O!R'di'a'di~P!#{O!{1yO!R'di'a'di~P!#{O!c1|O~O_$Zq!R$Zq'W$Zq!O$Zq!c$Zqn$Zq!T$Zq%Q$Zq!]$Zq~P!)wO!R2QO!T(PX~P!BpO!T&dO%Q2TO~O!T&dO%Q2TO~P!BpO!T$eX$u[X_$eX!R$eX'W$eX~P!!rO$u2XOPgXugXxgX!TgX'wgX'xgX_gX!RgX'WgX~O$u2XO~O]2_O%R2`O'])iO!R'PX!S'PX~O!R.^O!S(Va~OZ2dO~O^2eO~O]2hO~OP2jO!T&dO!o2iO%Q2TO~O_$^O'W$^O~P!BpO!T#zO~P!BpO!R2oO!{2qO!S(SX~O!S2rO~Ox;oO!W2{O!X2tO!Y2tO!r2zO!s2yO!t2yO!x2xO'^$dO'g(jO'o+iO~O!S2wO~P$7ZOP3SO!T.yO!o3RO%Q3QO~OP3SO!T.yO!o3RO%Q3QO'b$PO~O'](|O!R'OX!S'OX~O!R/VO!S(Ta~O]3^O'g3]O~O]3_O~O^3aO~O!c3dO~P){O_3fO~O_3fO~P){O#c3hO%r3iO~PFOO`/mO!S3mO&Q/lO~P`O!]3oO~O!R#Ti!S#Ti~P#*XO!{3qO!R#Ti!S#Ti~O!R!Vi!S!Vi~P#*XO_$^O!{3xO'W$^O~O_$^O!]!wO!{3xO'W$^O~O!X3|O!Y3|O'^$dO'g(jO'o+iO~O_$^O!]!wO!d$ZO!j3}O!{3xO'W$^O'b$PO'p&oO~O!W4OO~P$;xO!W4OO!u4RO!x4SO~P$;xO_$^O!]!wO!j3}O!{3xO'W$^O'p&oO~O!R'rq!c'rq_'rq'W'rq~P!)wO!R&tO!c'qq~O#W$xiQ$xiZ$xi_$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi'W$xi'f$xi'p$xi!c$xi!O$xi!T$xin$xi%Q$xi!]$xi~P$.PO#W$ziQ$ziZ$zi_$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi'W$zi'f$zi'p$zi!c$zi!O$zi!T$zin$zi%Q$zi!]$zi~P$.rO#W$giQ$giZ$gi_$gij$giv$gi!R$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi'W$gi'f$gi'p$gi!c$gi!O$gi!T$gi!{$gin$gi%Q$gi!]$gi~P!BpO!R&ka'a&ka~P!#{O!R&la!c&la~P!)wO!R,bO!c'ni~O#m#Oi!R#Oi!S#Oi~P#*XOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'fQOZ#Zij#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~O#[#Zi~P$EiO#[9eO~P$EiOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO'fQOZ#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~Oj#Zi~P$GqOj9gO~P$GqOQ#^Oj9gOu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO'fQO#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P$IyOZ9rO!a9iO#a9iO#b9iO#c9iO~P$IyOQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO'fQO#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'x#Zi!R#Zi!S#Zi~O'w#Zi~P$L_O'w!}O~P$L_OQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO'fQO'w!}O#i#Zi#j#Zi#m#Zi'p#Zi!R#Zi!S#Zi~O'x#Zi~P$NgO'x#OO~P$NgOQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO#i9nO'fQO'w!}O'x#OO~O#j#Zi#m#Zi'p#Zi!R#Zi!S#Zi~P%!oO_#ky!R#ky'W#ky!O#ky!c#kyn#ky!T#ky%Q#ky!]#ky~P!)wOP;vOu(SOx(TO'w(VO'x(XO~OQ#ZiZ#Zij#Ziv#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'f#Zi'p#Zi!R#Zi!S#Zi~P%%aO!b!yOP'eXu'eXx'eX'w'eX'x'eX!S'eX~OQ'eXZ'eXj'eXv'eX!a'eX!d'eX!j'eX#['eX#]'eX#^'eX#_'eX#`'eX#a'eX#b'eX#c'eX#e'eX#g'eX#i'eX#j'eX#m'eX'f'eX'p'eX!R'eX~P%'eO#m#ni!R#ni!S#ni~P#*XO!S4eO~O!R&sa!S&sa~P#*XO!]!wO'p&oO!R&ta!c&ta~O!R-RO!c'}i~O!R-RO!]!wO!c'}i~O'a$gq!R$gq!{$gq#m$gq~P!#{O!O&va!R&va~P!BpO!]4lO~O!R-ZO!O(Oi~P!BpO!R-ZO!O(Oi~O!O4pO~O!]!wO#c4uO~Oj4vO!]!wO'p&oO~O!O4xO~O'a$iq!R$iq!{$iq#m$iq~P!#{O_$Zy!R$Zy'W$Zy!O$Zy!c$Zyn$Zy!T$Zy%Q$Zy!]$Zy~P!)wO!R2QO!T(Pa~O!T&dO%Q4}O~O!T&dO%Q4}O~P!BpO_#Oy!R#Oy'W#Oy!O#Oy!c#Oyn#Oy!T#Oy%Q#Oy!]#Oy~P!)wOZ5QO~O]5SO'])iO~O!R.^O!S(Vi~O]5VO~O^5WO~O'g'TO!R&{X!S&{X~O!R2oO!S(Sa~O!S5eO~P$7ZOx;sO'g(jO'o+iO~O!W5hO!X5gO!Y5gO!x0_O'^$dO'g(jO'o+iO~O!s5iO!t5iO~P%0^O!X5gO!Y5gO'^$dO'g(jO'o+iO~O!T.yO~O!T.yO%Q5kO~O!T.yO%Q5kO~P!BpOP5pO!T.yO!o5oO%Q5kO~OZ5uO!R'Oa!S'Oa~O!R/VO!S(Ti~O]5xO~O!c5yO~O!c5zO~O!c5{O~O!c5{O~P){O_5}O~O!]6QO~O!c6RO~O!R'ui!S'ui~P#*XO_$^O'W$^O~P!)wO_$^O!{6WO'W$^O~O_$^O!]!wO!{6WO'W$^O~O!X6]O!Y6]O'^$dO'g(jO'o+iO~O_$^O!]!wO!j6^O!{6WO'W$^O'p&oO~O!d$ZO'b$PO~P%4xO!W6_O~P%4gO!R'ry!c'ry_'ry'W'ry~P!)wO#W$gqQ$gqZ$gq_$gqj$gqv$gq!R$gq!a$gq!b$gq!d$gq!j$gq#[$gq#]$gq#^$gq#_$gq#`$gq#a$gq#b$gq#c$gq#e$gq#g$gq#i$gq#j$gq'W$gq'f$gq'p$gq!c$gq!O$gq!T$gq!{$gqn$gq%Q$gq!]$gq~P!BpO#W$iqQ$iqZ$iq_$iqj$iqv$iq!R$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq'W$iq'f$iq'p$iq!c$iq!O$iq!T$iq!{$iqn$iq%Q$iq!]$iq~P!BpO!R&li!c&li~P!)wO#m#Oq!R#Oq!S#Oq~P#*XOu-tOv-tOx-uOPra'wra'xra!Sra~OQraZrajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra#mra'fra'pra!Rra~P%;OOu(SOx(TOP$^a'w$^a'x$^a!S$^a~OQ$^aZ$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a#m$^a'f$^a'p$^a!R$^a~P%=SOu(SOx(TOP$`a'w$`a'x$`a!S$`a~OQ$`aZ$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a#m$`a'f$`a'p$`a!R$`a~P%?WOQ$naZ$naj$nav$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na#m$na'f$na'p$na!R$na!S$na~P%%aO#m$Yq!R$Yq!S$Yq~P#*XO#m$Zq!R$Zq!S$Zq~P#*XO!S6hO~O#m6iO~P!#{O!]!wO!R&ti!c&ti~O!]!wO'p&oO!R&ti!c&ti~O!R-RO!c'}q~O!O&vi!R&vi~P!BpO!R-ZO!O(Oq~O!O6oO~P!BpO!O6oO~O!R'dy'a'dy~P!#{O!R&ya!T&ya~P!BpO!T$tq_$tq!R$tq'W$tq~P!BpOZ6vO~O!R.^O!S(Vq~O]6yO~O!T&dO%Q6zO~O!T&dO%Q6zO~P!BpO!{6{O!R&{a!S&{a~O!R2oO!S(Si~P#*XO!X7RO!Y7RO'^$dO'g(jO'o+iO~O!W7TO!x4SO~P%GXO!T.yO%Q7WO~O!T.yO%Q7WO~P!BpO]7_O'g7^O~O!R/VO!S(Tq~O!c7aO~O!c7aO~P){O!c7cO~O!c7dO~O!R#Ty!S#Ty~P#*XO_$^O!{7jO'W$^O~O_$^O!]!wO!{7jO'W$^O~O!X7mO!Y7mO'^$dO'g(jO'o+iO~O_$^O!]!wO!j7nO!{7jO'W$^O'p&oO~O#m#ky!R#ky!S#ky~P#*XOQ$giZ$gij$giv$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi#m$gi'f$gi'p$gi!R$gi!S$gi~P%%aOu(SOx(TO'x(XOP$xi'w$xi!S$xi~OQ$xiZ$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi#m$xi'f$xi'p$xi!R$xi~P%LjOu(SOx(TOP$zi'w$zi'x$zi!S$zi~OQ$ziZ$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi#m$zi'f$zi'p$zi!R$zi~P%NnO#m$Zy!R$Zy!S$Zy~P#*XO#m#Oy!R#Oy!S#Oy~P#*XO!]!wO!R&tq!c&tq~O!R-RO!c'}y~O!O&vq!R&vq~P!BpO!O7tO~P!BpO!R.^O!S(Vy~O!R2oO!S(Sq~O!X8QO!Y8QO'^$dO'g(jO'o+iO~O!T.yO%Q8TO~O!T.yO%Q8TO~P!BpO!c8WO~O_$^O!{8]O'W$^O~O_$^O!]!wO!{8]O'W$^O~OQ$gqZ$gqj$gqv$gq!a$gq!b$gq!d$gq!j$gq#[$gq#]$gq#^$gq#_$gq#`$gq#a$gq#b$gq#c$gq#e$gq#g$gq#i$gq#j$gq#m$gq'f$gq'p$gq!R$gq!S$gq~P%%aOQ$iqZ$iqj$iqv$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq#m$iq'f$iq'p$iq!R$iq!S$iq~P%%aO'a$|!Z!R$|!Z!{$|!Z#m$|!Z~P!#{O!R&{q!S&{q~P#*XO_$^O!{8oO'W$^O~O#W$|!ZQ$|!ZZ$|!Z_$|!Zj$|!Zv$|!Z!R$|!Z!a$|!Z!b$|!Z!d$|!Z!j$|!Z#[$|!Z#]$|!Z#^$|!Z#_$|!Z#`$|!Z#a$|!Z#b$|!Z#c$|!Z#e$|!Z#g$|!Z#i$|!Z#j$|!Z'W$|!Z'f$|!Z'p$|!Z!c$|!Z!O$|!Z!T$|!Z!{$|!Zn$|!Z%Q$|!Z!]$|!Z~P!BpOP;uOu(SOx(TO'w(VO'x(XO~O!S!za!W!za!X!za!Y!za!r!za!s!za!t!za!x!za'^!za'g!za'o!za~P&,_O!W'eX!X'eX!Y'eX!r'eX!s'eX!t'eX!x'eX'^'eX'g'eX'o'eX~P%'eOQ$|!ZZ$|!Zj$|!Zv$|!Z!a$|!Z!b$|!Z!d$|!Z!j$|!Z#[$|!Z#]$|!Z#^$|!Z#_$|!Z#`$|!Z#a$|!Z#b$|!Z#c$|!Z#e$|!Z#g$|!Z#i$|!Z#j$|!Z#m$|!Z'f$|!Z'p$|!Z!R$|!Z!S$|!Z~P%%aO!Wra!Xra!Yra!rra!sra!tra!xra'^ra'gra'ora~P%;OO!W$^a!X$^a!Y$^a!r$^a!s$^a!t$^a!x$^a'^$^a'g$^a'o$^a~P%=SO!W$`a!X$`a!Y$`a!r$`a!s$`a!t$`a!x$`a'^$`a'g$`a'o$`a~P%?WO!S$na!W$na!X$na!Y$na!r$na!s$na!t$na!x$na'^$na'g$na'o$na~P&,_O!W$xi!X$xi!Y$xi!r$xi!s$xi!t$xi!x$xi'^$xi'g$xi'o$xi~P%LjO!W$zi!X$zi!Y$zi!r$zi!s$zi!t$zi!x$zi'^$zi'g$zi'o$zi~P%NnO!S$gi!W$gi!X$gi!Y$gi!r$gi!s$gi!t$gi!x$gi'^$gi'g$gi'o$gi~P&,_O!S$gq!W$gq!X$gq!Y$gq!r$gq!s$gq!t$gq!x$gq'^$gq'g$gq'o$gq~P&,_O!S$iq!W$iq!X$iq!Y$iq!r$iq!s$iq!t$iq!x$iq'^$iq'g$iq'o$iq~P&,_O!S$|!Z!W$|!Z!X$|!Z!Y$|!Z!r$|!Z!s$|!Z!t$|!Z!x$|!Z'^$|!Z'g$|!Z'o$|!Z~P&,_On'hX~P.jOn[X!O[X!c[X%r[X!T[X%Q[X!][X~P$zO!]dX!c[X!cdX'pdX~P;dOQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!TSO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O']'cO'fQO'oYO'|;^O~O]#qOh$QOj#rOk#qOl#qOq$ROs9uOx#yO!T#zO!_;fO!d#vO#V:OO#t$VO$_9xO$a9{O$d$WO']&{O'b$PO'f#sO~O!R9pO!S$]a~O]#qOh$QOj#rOk#qOl#qOq$ROs9vOx#yO!T#zO!_;gO!d#vO#V:PO#t$VO$_9yO$a9|O$d$WO']&{O'b$PO'f#sO~O#d'jO~P&]P!AQ!AY!A^!A^P!>YP!Ab!AbP!DVP!DZ?Z?Z!Da!GT8SP8SP8S8SP!HW8S8S!Jf8S!M_8S# g8S8S#!T#$c#$c#$g#$c#$oP#$cP8S#%k8S#'X8S8S-zPPP#(yPP#)c#)cP#)cP#)x#)cPP#*OP#)uP#)u#*b!!X#)u#+P#+V#+Y([#+]([P#+d#+d#+dP([P([P([P([PP([P#+j#+mP#+m([P#+qP#+tP([P([P([P([P([P([([#+z#,U#,[#,b#,p#,v#,|#-W#-^#-m#-s#.R#.X#._#.m#/S#0z#1Y#1`#1f#1l#1r#1|#2S#2Y#2d#2v#2|PPPPPPPP#3SPP#3v#7OPP#8f#8m#8uPP#>a#@t#Fp#Fs#Fv#GR#GUPP#GX#G]#Gz#Hq#Hu#IZPP#I_#Ie#IiP#Il#Ip#Is#Jc#Jy#KO#KR#KU#K[#K_#Kc#KgmhOSj}!n$]%c%f%g%i*o*t/g/jQ$imQ$ppQ%ZyS&V!b+`Q&k!jS(l#z(qQ)g$jQ)t$rQ*`%TQ+f&^S+k&d+mQ+}&lQ-k(sQ/U*aY0Z+o+p+q+r+sS2t.y2vU3|0[0^0aU5g2y2z2{S6]4O4RS7R5h5iQ7m6_R8Q7T$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!j'e#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ(}$SQ)l$lQ*b%WQ*i%`Q,X9tQ.W)aQ.c)mQ/^*gQ2_.^Q3Z/VQ4^9vQ5S2`R8{9upeOSjy}!n$]%Y%c%f%g%i*o*t/g/jR*d%[&WVOSTjkn}!S!W!k!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%z&S&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;`;a[!cRU!]!`%x&WQ$clQ$hmS$mp$rv$wrs!r!u$Z$u&`&t&w)x)y)z*m+Y+h,S,U/o0lQ%PwQ&h!iQ&j!jS(_#v(cS)f$i$jQ)j$lQ)w$tQ*Z%RQ*_%TS+|&k&lQ-V(`Q.[)gQ.b)mQ.d)nQ.g)rQ/P*[S/T*`*aQ0h+}Q1b-RQ2^.^Q2b.aQ2g.iQ3Y/UQ4i1cQ5R2`Q5U2dQ6u5QR7w6vx#xa!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k!Y$fm!j$h$i$j&U&j&k&l(k)f)g+]+j+|+}-d.[0Q0W0]0h1u3{4Q6Z7k8^Q)`$cQ*P$|Q*S$}Q*^%TQ.k)wQ/O*ZU/S*_*`*aQ3T/PS3X/T/UQ5b2sQ5t3YS7P5c5fS8O7Q7SQ8f8PQ8u8g#[;b!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd;c9d9x9{:O:V:Y:]:b:e:ke;d9r9y9|:P:W:Z:^:c:f:lW#}a$P(y;^S$|t%YQ$}uQ%OvR)}$z%P#|a!w!y#d#v#y$T$U$Y&g'}(W(Y(Z(b(h(w(x)])_)a*O*R+y,_-Y-Z-]-w.R.T.p.s.{.}1a1k1s1y2Q2T2X2j3Q3S4l4u4}5k5p6i6z7W8T9d9r9w9x9y9z9{9|9}:O:P:U:V:W:X:Y:Z:[:]:^:a:b:c:d:e:f:j:k:l;^;i;j;k;l;n;t;u;vT(O#s(PX)O$S9t9u9vU&Z!b$v+cQ'U!{Q)q$oQ.t*TQ1z-tR5^2o&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a$]#aZ!_!o$a%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,i,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|T!XQ!Y&_cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ&X!bR/|+`Y&R!b&V&^+`+fS(k#z(qS+j&d+mS-d(l(sQ-e(mQ-l(tQ.v*VU0W+k+o+pU0]+q+r+sS0b+t2xQ1u-kQ1w-mQ1x-nS2s.y2vU3{0Z0[0^Q4P0_Q4Q0aS5c2t2{S5f2y2zU6Z3|4O4RQ6`4SS7Q5g5hQ7S5iS7k6]6_S8P7R7TQ8^7mQ8g8QQ;h;oR;m;slhOSj}!n$]%c%f%g%i*o*t/g/jQ%k!QS&x!v9cQ)d$gQ*X%PQ*Y%QQ+z&iS,]&}:RS-y)V:_Q.Y)eQ.x*WQ/n*vQ/p*wQ/x+ZQ0`+qQ0f+{S2P-z:gQ2Y.ZS2].]:hQ3r/zQ3u0RQ4U0gQ5P2ZQ6T3tQ6X3zQ6a4VQ7e6RQ7h6YQ8Y7iQ8l8[R8x8n$W#`Z!_!o%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|W(v#{&|1V8qT)Z$a,i$W#_Z!_!o%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|Q'f#`S)Y$a,iR-{)Z&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ%f{Q%g|Q%i!OQ%j!PR/f*rQ&e!iQ)[$cQ+w&hS.Q)`)wS0c+u+vW2S-}.O.P.kS4T0d0eU4|2U2V2WU6s4{5Y5ZQ7v6tR8b7yT+l&d+mS+j&d+mU0W+k+o+pU0]+q+r+sS0b+t2xS2s.y2vU3{0Z0[0^Q4P0_Q4Q0aS5c2t2{S5f2y2zU6Z3|4O4RQ6`4SS7Q5g5hQ7S5iS7k6]6_S8P7R7TQ8^7mR8g8QS+l&d+mT2u.y2vS&r!q/dQ-U(_Q-b(kS0V+j2sQ1g-VS1p-c-lU3}0]0b5fQ4h1bS4s1v1xU6^4P4Q7SQ6k4iQ6r4vR7n6`Q!xXS&q!q/dQ)W$[Q)b$eQ)h$kQ,Q&rQ-T(_Q-a(kQ-f(nQ.X)cQ/Q*]S0U+j2sS1f-U-VS1o-b-lQ1r-eQ1t-gQ3V/RW3y0V0]0b5fQ4g1bQ4k1gS4o1p1xQ4t1wQ5r3WW6[3}4P4Q7SS6j4h4iS6n4p:iQ6p4sQ6}5aQ7[5sS7l6^6`Q7r6kS7s6o:mQ7u6rQ7|7OQ8V7]Q8_7nS8a7t:nQ8d7}Q8s8eQ9Q8tQ9X9RQ:u:pQ;T:zQ;U:{Q;V;hR;[;m$rWORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oS!xn!k!j:o#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR:u;`$rXORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oQ$[b!Y$em!j$h$i$j&U&j&k&l(k)f)g+]+j+|+}-d.[0Q0W0]0h1u3{4Q6Z7k8^S$kn!kQ)c$fQ*]%TW/R*^*_*`*aU3W/S/T/UQ5a2sS5s3X3YU7O5b5c5fQ7]5tU7}7P7Q7SS8e8O8PS8t8f8gQ9R8u!j:p#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ:z;_R:{;`$f]OSTjk}!S!W!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oY!hRU!]!`%xv$wrs!r!u$Z$u&`&t&w)x)y)z*m+Y+h,S,U/o0lQ*j%`!h:q#]#k'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR:t&WS&[!b$vR0O+c$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!j'e#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR*i%`$roORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oQ'U!{!k:r#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a!h#VZ!_$a%w%}&y'Q'_'`'a'b'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_!R9k'd'u+^,i/v/y0w1P1Q1R1S1W1]3s4]4b4c5`6S6b6f6g7z:|!d#XZ!_$a%w%}&y'Q'a'b'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_}9m'd'u+^,i/v/y0w1R1S1W1]3s4]4b4c5`6S6b6f6g7z:|!`#]Z!_$a%w%}&y'Q'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_Q1a-Px;a'd'u+^,i/v/y0w1W1]3s4]4b4c5`6S6b6f6g7z:|Q;i;pQ;j;qR;k;r&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aS#l`#mR1Y,l&e_ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,l,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aS#g^#nT'n#i'rT#h^#nT'p#i'r&e`ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,l,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aT#l`#mQ#o`R'y#m$rbORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!k;_#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a#RdOSUj}!S!W!n!|#k$]%[%_%`%c%e%f%g%i%m&S&f'w)^*k*o*t+x,m-u.S.|/_/`/a/c/g/j/l1X2i3R3f3h3i5o5}x#{a!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k#[&|!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vQ)S$WQ,x(Sd1V9r9y9|:P:W:Z:^:c:f:le8q9d9x9{:O:V:Y:]:b:e:kx#wa!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;kQ(d#xS(n#z(qQ)T$XQ-g(o#[:w!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd:x9d9x9{:O:V:Y:]:b:e:kd:y9r9y9|:P:W:Z:^:c:f:lQ:};bQ;O;cQ;P;dQ;Q;eQ;R;fR;S;gx#{a!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k#[&|!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd1V9r9y9|:P:W:Z:^:c:f:le8q9d9x9{:O:V:Y:]:b:e:klfOSj}!n$]%c%f%g%i*o*t/g/jQ(g#yQ*}%pQ+O%rR1j-Z%O#|a!w!y#d#v#y$T$U$Y&g'}(W(Y(Z(b(h(w(x)])_)a*O*R+y,_-Y-Z-]-w.R.T.p.s.{.}1a1k1s1y2Q2T2X2j3Q3S4l4u4}5k5p6i6z7W8T9d9r9w9x9y9z9{9|9}:O:P:U:V:W:X:Y:Z:[:]:^:a:b:c:d:e:f:j:k:l;^;i;j;k;l;n;t;u;vQ*Q$}Q.r*SQ2m.qR5]2nT(p#z(qS(p#z(qT2u.y2vQ)b$eQ-f(nQ.X)cQ/Q*]Q3V/RQ5r3WQ6}5aQ7[5sQ7|7OQ8V7]Q8d7}Q8s8eQ9Q8tR9X9Rp(W#t'O)U-X-o-p0q1h1}4f4w7q:v;W;X;Y!n:U&z'i(^(f+v,[,t-P-^-|.P.o.q0e0p1i1m2W2l2n3O4Y4Z4m4q4y5O5Z5n6m6q7Y8`;Z;];p;q;r[:V8p9O9V9Y9Z9]]:W1U4a6c7o7p8zr(Y#t'O)U,}-X-o-p0q1h1}4f4w7q:v;W;X;Y!p:X&z'i(^(f+v,[,t-P-^-|.P.o.q0e0n0p1i1m2W2l2n3O4Y4Z4m4q4y5O5Z5n6m6q7Y8`;Z;];p;q;r^:Y8p9O9T9V9Y9Z9]_:Z1U4a6c6d7o7p8zpeOSjy}!n$]%Y%c%f%g%i*o*t/g/jQ%VxR*k%`peOSjy}!n$]%Y%c%f%g%i*o*t/g/jR%VxQ*U%OR.n)}qeOSjy}!n$]%Y%c%f%g%i*o*t/g/jQ.z*ZS3P/O/PW5j2|2}3O3TU7V5l5m5nU8R7U7X7YQ8h8SR8v8iQ%^yR*e%YR3^/XR7_5uS$mp$rR.d)nQ%czR*o%dR*u%jT/h*t/jR*y%kQ*x%kR/q*yQjOQ!nST$`j!nQ(P#sR,u(PQ!YQR%u!YQ!^RU%{!^%|+UQ%|!_R+U%}Q+a&XR/}+aQ,`'OR0r,`Q,c'QS0u,c0vR0v,dQ+m&dR0X+mS!eR$uU&a!e&b+VQ&b!fR+V&OQ+d&[R0P+dQ&u!sQ,R&sU,V&u,R0mR0m,WQ'r#iR,n'rQ#m`R'x#mQ#cZU'h#c+Q9qQ+Q9_R9q'uQ-S(_W1d-S1e4j6lU1e-T-U-VS4j1f1gR6l4k$k(U#t&z'O'i(^(f)P)Q)U+v,Y,Z,[,t,}-O-P-X-^-o-p-|.P.o.q0e0n0o0p0q1U1h1i1m1}2W2l2n3O4Y4Z4_4`4a4f4m4q4w4y5O5Z5n6c6d6e6m6q7Y7o7p7q8`8p8z8|8}9O9T9U9V9Y9Z9]:v;W;X;Y;Z;];p;q;rQ-[(fU1l-[1n4nQ1n-^R4n1mQ(q#zR-i(qQ(z$OR-r(zQ2R-|R4z2RQ){$xR.m){Q2p.tS5_2p6|R6|5`Q*W%PR.w*WQ2v.yR5d2vQ/W*bS3[/W5vR5v3^Q._)jW2a._2c5T6wQ2c.bQ5T2bR6w5UQ)o$mR.e)oQ/j*tR3l/jWiOSj!nQ%h}Q)X$]Q*n%cQ*p%fQ*q%gQ*s%iQ/e*oS/h*t/jR3k/gQ$_gQ%l!RQ%o!TQ%q!UQ%s!VQ)v$sQ)|$yQ*d%^Q*{%nQ-h(pS/Z*e*hQ/r*zQ/s*}Q/t+OS0S+j2sQ2f.hQ2k.oQ3U/QQ3`/]Q3j/fY3w0U0V0]0b5fQ5X2hQ5[2lQ5q3VQ5w3_[6U3v3y3}4P4Q7SQ6x5VQ7Z5rQ7`5xW7f6V6[6^6`Q7x6yQ7{6}Q8U7[U8X7g7l7nQ8c7|Q8j8VS8k8Z8_Q8r8dQ8w8mQ9P8sQ9S8yQ9W9QR9[9XQ$gmQ&i!jU)e$h$i$jQ+Z&UU+{&j&k&lQ-`(kS.Z)f)gQ/z+]Q0R+jS0g+|+}Q1q-dQ2Z.[Q3t0QS3z0W0]Q4V0hQ4r1uS6Y3{4QQ7i6ZQ8[7kR8n8^S#ua;^R({$PU$Oa$P;^R-q(yQ#taS&z!w)aQ'O!yQ'i#dQ(^#vQ(f#yQ)P$TQ)Q$UQ)U$YQ+v&gQ,Y9wQ,Z9zQ,[9}Q,t'}Q,}(WQ-O(YQ-P(ZQ-X(bQ-^(hQ-o(wQ-p(xd-|)].R.{2T3Q4}5k6z7W8TQ.P)_Q.o*OQ.q*RQ0e+yQ0n:UQ0o:XQ0p:[Q0q,_Q1U9rQ1h-YQ1i-ZQ1m-]Q1}-wQ2W.TQ2l.pQ2n.sQ3O.}Q4Y:aQ4Z:dQ4_9yQ4`9|Q4a:PQ4f1aQ4m1kQ4q1sQ4w1yQ4y2QQ5O2XQ5Z2jQ5n3SQ6c:^Q6d:WQ6e:ZQ6m4lQ6q4uQ7Y5pQ7o:cQ7p:fQ7q6iQ8`:jQ8p9dQ8z:lQ8|9xQ8}9{Q9O:OQ9T:VQ9U:YQ9V:]Q9Y:bQ9Z:eQ9]:kQ:v;^Q;W;iQ;X;jQ;Y;kQ;Z;lQ;];nQ;p;tQ;q;uR;r;vlgOSj}!n$]%c%f%g%i*o*t/g/jS!pU%eQ%n!SQ%t!WQ'V!|Q'v#kS*h%[%_Q*l%`Q*z%mQ+W&SQ+u&fQ,r'wQ.O)^Q/b*kQ0d+xQ1[,mQ1{-uQ2V.SQ2}.|Q3b/_Q3c/`Q3e/aQ3g/cQ3n/lQ4d1XQ5Y2iQ5m3RQ5|3fQ6O3hQ6P3iQ7X5oR7b5}!vZOSUj}!S!n!|$]%[%_%`%c%e%f%g%i%m&S&f)^*k*o*t+x-u.S.|/_/`/a/c/g/j/l2i3R3f3h3i5o5}Q!_RQ!oTQ$akS%w!]%zQ%}!`Q&y!vQ'Q!zQ'W#PQ'X#QQ'Y#RQ'Z#SQ'[#TQ']#UQ'^#VQ'_#WQ'`#XQ'a#YQ'b#ZQ'd#]Q'g#bQ'k#eW'u#k'w,m1XQ)p$nS+R%x+TS+^&W/{Q+g&_Q,O&pQ,^&}Q,d'RQ,g9^Q,i9`Q,w(RQ-x)VQ/v+XQ/y+[Q0i,PQ0s,bQ0w9cQ0x9eQ0y9fQ0z9gQ0{9hQ0|9iQ0}9jQ1O9kQ1P9lQ1Q9mQ1R9nQ1S9oQ1T,hQ1W9sQ1]9pQ2O-zQ2[.]Q3s:QQ3v0TQ4W0jQ4[0tQ4]:RQ4b:TQ4c:_Q5`2qQ6S3qQ6V3xQ6b:`Q6f:gQ6g:hQ7g6WQ7z6{Q8Z7jQ8m8]Q8y8oQ9_!WR:|;aR!aRR&Y!bS&U!b+`S+]&V&^R0Q+fR'P!yR'S!zT!tU$ZS!sU$ZU$xrs*mS&s!r!uQ,T&tQ,W&wQ.l)zS0k,S,UR4X0l`!dR!]!`$u%x&`)x+hh!qUrs!r!u$Z&t&w)z,S,U0lQ/d*mQ/w+YQ3p/oT:s&W)yT!gR$uS!fR$uS%y!]&`S&O!`)xS+S%x+hT+_&W)yT&]!b$vQ#i^R'{#nT'q#i'rR1Z,lT(a#v(cR(i#yQ-})]Q2U.RQ2|.{Q4{2TQ5l3QQ6t4}Q7U5kQ7y6zQ8S7WR8i8TlhOSj}!n$]%c%f%g%i*o*t/g/jQ%]yR*d%YV$yrs*mR.u*TR*c%WQ$qpR)u$rR)k$lT%az%dT%bz%dT/i*t/j",nodeNames:"\u26A0 extends ArithOp ArithOp InterpolationStart LineComment BlockComment Script ExportDeclaration export Star as VariableName String from ; default FunctionDeclaration async function VariableDefinition TypeParamList TypeDefinition ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Interpolation null super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression await yield delete LogicOp BitOp ParenthesizedExpression ClassExpression class extends ClassBody MethodDeclaration Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression PrivatePropertyName BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody MethodDeclaration AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement",maxTerm:332,context:trackNewline,nodeProps:[["closedBy",4,"InterpolationEnd",40,"]",51,"}",66,")",132,"JSXSelfCloseEndTag JSXEndTag",146,"JSXEndTag"],["group",-26,8,15,17,58,184,188,191,192,194,197,200,211,213,219,221,223,225,228,234,240,242,244,246,248,250,251,"Statement",-30,12,13,24,27,28,41,43,44,45,47,52,60,68,74,75,91,92,101,103,119,122,124,125,126,127,129,130,148,149,151,"Expression",-22,23,25,29,32,34,152,154,156,157,159,160,161,163,164,165,167,168,169,178,180,182,183,"Type",-3,79,85,90,"ClassItem"],["openedBy",30,"InterpolationStart",46,"[",50,"{",65,"(",131,"JSXStartTag",141,"JSXStartTag JSXStartCloseTag"]],propSources:[jsHighlight],skippedNodes:[0,5,6],repeatNodeCount:28,tokenData:"!C}~R!`OX%TXY%cYZ'RZ[%c[]%T]^'R^p%Tpq%cqr'crs(kst0htu2`uv4pvw5ewx6cxyk|}?O}!O>k!O!P?`!P!QCl!Q!R!0[!R![!1q![!]!7s!]!^!8V!^!_!8g!_!`!9d!`!a!:[!a!b!U#R#S2`#S#T!>i#T#o2`#o#p!>y#p#q!?O#q#r!?f#r#s!?x#s$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$I|2`$I|$I}!Bq$I}$JO!Bq$JO$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`W%YR$UWO!^%T!_#o%T#p~%T7Z%jg$UW'Y7ROX%TXY%cYZ%TZ[%c[p%Tpq%cq!^%T!_#o%T#p$f%T$f$g%c$g#BY%T#BY#BZ%c#BZ$IS%T$IS$I_%c$I_$JT%T$JT$JU%c$JU$KV%T$KV$KW%c$KW&FU%T&FU&FV%c&FV?HT%T?HT?HU%c?HU~%T7Z'YR$UW'Z7RO!^%T!_#o%T#p~%T$T'jS$UW!j#{O!^%T!_!`'v!`#o%T#p~%T$O'}S#e#v$UWO!^%T!_!`(Z!`#o%T#p~%T$O(bR#e#v$UWO!^%T!_#o%T#p~%T)X(rZ$UW]#eOY(kYZ)eZr(krs*rs!^(k!^!_+U!_#O(k#O#P-b#P#o(k#o#p+U#p~(k&r)jV$UWOr)ers*Ps!^)e!^!_*a!_#o)e#o#p*a#p~)e&r*WR$P&j$UWO!^%T!_#o%T#p~%T&j*dROr*ars*ms~*a&j*rO$P&j)X*{R$P&j$UW]#eO!^%T!_#o%T#p~%T)P+ZV]#eOY+UYZ*aZr+Urs+ps#O+U#O#P+w#P~+U)P+wO$P&j]#e)P+zROr+Urs,Ts~+U)P,[U$P&j]#eOY,nZr,nrs-Vs#O,n#O#P-[#P~,n#e,sU]#eOY,nZr,nrs-Vs#O,n#O#P-[#P~,n#e-[O]#e#e-_PO~,n)X-gV$UWOr(krs-|s!^(k!^!_+U!_#o(k#o#p+U#p~(k)X.VZ$P&j$UW]#eOY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x#m/PZ$UW]#eOY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x#m/yR$UW]#eO!^%T!_#o%T#p~%T#m0XT$UWO!^.x!^!_,n!_#o.x#o#p,n#p~.x3]0mZ$UWOt%Ttu1`u!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`3]1g]$UW'o3TOt%Ttu1`u!Q%T!Q![1`![!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`7Z2k_$UW#zS']$y'g3SOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`[3q_$UW#zSOt%Ttu3ju}%T}!O3j!O!Q%T!Q![3j![!^%T!_!c%T!c!}3j!}#R%T#R#S3j#S#T%T#T#o3j#p$g%T$g~3j$O4wS#^#v$UWO!^%T!_!`5T!`#o%T#p~%T$O5[R$UW#o#vO!^%T!_#o%T#p~%T5b5lU'x5Y$UWOv%Tvw6Ow!^%T!_!`5T!`#o%T#p~%T$O6VS$UW#i#vO!^%T!_!`5T!`#o%T#p~%T)X6jZ$UW]#eOY6cYZ7]Zw6cwx*rx!^6c!^!_8T!_#O6c#O#P:T#P#o6c#o#p8T#p~6c&r7bV$UWOw7]wx*Px!^7]!^!_7w!_#o7]#o#p7w#p~7]&j7zROw7wwx*mx~7w)P8YV]#eOY8TYZ7wZw8Twx+px#O8T#O#P8o#P~8T)P8rROw8Twx8{x~8T)P9SU$P&j]#eOY9fZw9fwx-Vx#O9f#O#P9}#P~9f#e9kU]#eOY9fZw9fwx-Vx#O9f#O#P9}#P~9f#e:QPO~9f)X:YV$UWOw6cwx:ox!^6c!^!_8T!_#o6c#o#p8T#p~6c)X:xZ$P&j$UW]#eOY;kYZ%TZw;kwx/rx!^;k!^!_9f!_#O;k#O#PW{!^%T!_!`5T!`#o%T#p~%T$O>_S#[#v$UWO!^%T!_!`5T!`#o%T#p~%T%w>rSj%o$UWO!^%T!_!`5T!`#o%T#p~%T&i?VR!R&a$UWO!^%T!_#o%T#p~%T7Z?gVu5^$UWO!O%T!O!P?|!P!Q%T!Q![@r![!^%T!_#o%T#p~%T!{@RT$UWO!O%T!O!P@b!P!^%T!_#o%T#p~%T!{@iR!Q!s$UWO!^%T!_#o%T#p~%T!{@yZ$UWk!sO!Q%T!Q![@r![!^%T!_!g%T!g!hAl!h#R%T#R#S@r#S#X%T#X#YAl#Y#o%T#p~%T!{AqZ$UWO{%T{|Bd|}%T}!OBd!O!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T!{BiV$UWO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T!{CVV$UWk!sO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T7ZCs`$UW#]#vOYDuYZ%TZzDuz{Jl{!PDu!P!Q!-e!Q!^Du!^!_Fx!_!`!.^!`!a!/]!a!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXD|[$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXEy_$UW}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%TPF}V}POYFxZ!PFx!P!QGd!Q!}Fx!}#OG{#O#PHh#P~FxPGiU}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGdPHOTOYG{Z#OG{#O#PH_#P#QFx#Q~G{PHbQOYG{Z~G{PHkQOYFxZ~FxXHvY$UWOYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~HqXIkV$UWOYHqYZ%TZ!^Hq!^!_G{!_#oHq#o#pG{#p~HqXJVV$UWOYDuYZ%TZ!^Du!^!_Fx!_#oDu#o#pFx#p~Du7ZJs^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q!,R!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl7ZKtV$UWOzKoz{LZ{!^Ko!^!_M]!_#oKo#o#pM]#p~Ko7ZL`X$UWOzKoz{LZ{!PKo!P!QL{!Q!^Ko!^!_M]!_#oKo#o#pM]#p~Ko7ZMSR$UWU7RO!^%T!_#o%T#p~%T7RM`ROzM]z{Mi{~M]7RMlTOzM]z{Mi{!PM]!P!QM{!Q~M]7RNQOU7R7ZNX^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q! T!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl7Z! ^_$UWU7R}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%T7R!!bY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!&x!Q!}!!]!}#O!$`#O#P!&f#P~!!]7R!#VY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!#u!Q!}!!]!}#O!$`#O#P!&f#P~!!]7R!#|UU7R}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGd7R!$cWOY!$`YZM]Zz!$`z{!${{#O!$`#O#P!&S#P#Q!!]#Q~!$`7R!%OYOY!$`YZM]Zz!$`z{!${{!P!$`!P!Q!%n!Q#O!$`#O#P!&S#P#Q!!]#Q~!$`7R!%sTU7ROYG{Z#OG{#O#PH_#P#QFx#Q~G{7R!&VTOY!$`YZM]Zz!$`z{!${{~!$`7R!&iTOY!!]YZM]Zz!!]z{!#Q{~!!]7R!&}_}POzM]z{Mi{#ZM]#Z#[!&x#[#]M]#]#^!&x#^#aM]#a#b!&x#b#gM]#g#h!&x#h#iM]#i#j!&x#j#mM]#m#n!&x#n~M]7Z!(R[$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|7Z!(|^$UWOY!'|YZKoZz!'|z{!(w{!P!'|!P!Q!)x!Q!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|7Z!*PY$UWU7ROYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~Hq7Z!*tX$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#o!'|#o#p!$`#p~!'|7Z!+fX$UWOYJlYZKoZzJlz{NQ{!^Jl!^!_!!]!_#oJl#o#p!!]#p~Jl7Z!,Yc$UW}POzKoz{LZ{!^Ko!^!_M]!_#ZKo#Z#[!,R#[#]Ko#]#^!,R#^#aKo#a#b!,R#b#gKo#g#h!,R#h#iKo#i#j!,R#j#mKo#m#n!,R#n#oKo#o#pM]#p~Ko7Z!-lV$UWT7ROY!-eYZ%TZ!^!-e!^!_!.R!_#o!-e#o#p!.R#p~!-e7R!.WQT7ROY!.RZ~!.R$P!.g[$UW#o#v}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du]!/f[#wS$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du!{!0cd$UWk!sO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#U%T#U#V!3X#V#X%T#X#YAl#Y#b%T#b#c!2w#c#d!4m#d#l%T#l#m!5{#m#o%T#p~%T!{!1x_$UWk!sO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#X%T#X#YAl#Y#b%T#b#c!2w#c#o%T#p~%T!{!3OR$UWk!sO!^%T!_#o%T#p~%T!{!3^W$UWO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#o%T#p~%T!{!3}Y$UWk!sO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#b%T#b#c!2w#c#o%T#p~%T!{!4rV$UWO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#o%T#p~%T!{!5`X$UWk!sO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#b%T#b#c!2w#c#o%T#p~%T!{!6QZ$UWO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#o%T#p~%T!{!6z]$UWk!sO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#b%T#b#c!2w#c#o%T#p~%T$u!7|R!]V$UW#m$fO!^%T!_#o%T#p~%T!q!8^R_!i$UWO!^%T!_#o%T#p~%T5w!8rR'bd!a/n#x&s'|P!P!Q!8{!^!_!9Q!_!`!9_W!9QO$WW#v!9VP#`#v!_!`!9Y#v!9_O#o#v#v!9dO#a#v$u!9kT!{$m$UWO!^%T!_!`'v!`!a!9z!a#o%T#p~%T$P!:RR#W#w$UWO!^%T!_#o%T#p~%T%V!:gT'a!R#a#v$RS$UWO!^%T!_!`!:v!`!a!;W!a#o%T#p~%T$O!:}R#a#v$UWO!^%T!_#o%T#p~%T$O!;_T#`#v$UWO!^%T!_!`5T!`!a!;n!a#o%T#p~%T$O!;uS#`#v$UWO!^%T!_!`5T!`#o%T#p~%T*a!]S#g#v$UWO!^%T!_!`5T!`#o%T#p~%T$a!>pR$UW'f$XO!^%T!_#o%T#p~%T~!?OO!T~5b!?VT'w5Y$UWO!^%T!_!`5T!`#o%T#p#q!=P#q~%T6X!?oR!S5}nQ$UWO!^%T!_#o%T#p~%TX!@PR!kP$UWO!^%T!_#o%T#p~%T7Z!@gr$UW'Y7R#zS']$y'g3SOX%TXY%cYZ%TZ[%c[p%Tpq%cqt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`7Z!CO_$UW'Z7R#zS']$y'g3SOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`",tokenizers:[tsExtends,noSemicolon,incdecToken,template,0,1,2,3,4,5,6,7,8,9,insertSemicolon],topRules:{Script:[0,7]},dialects:{jsx:12107,ts:12109},dynamicPrecedences:{"149":1,"176":1},specialized:[{term:289,get:a=>spec_identifier[a]||-1},{term:299,get:a=>spec_word[a]||-1},{term:63,get:a=>spec_LessThan[a]||-1}],tokenPrec:12130}),snippets=[snippetCompletion("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),snippetCompletion("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),snippetCompletion("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),snippetCompletion("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),snippetCompletion("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),snippetCompletion(`try { \${} } catch (\${error}) { \${} -}`,{label:"try",detail:"block",type:"keyword"}),snippetCompletion(`class \${name} { +}`,{label:"try",detail:"/ catch block",type:"keyword"}),snippetCompletion("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),snippetCompletion(`if (\${}) { + \${} +} else { + \${} +}`,{label:"if",detail:"/ else block",type:"keyword"}),snippetCompletion(`class \${name} { constructor(\${params}) { \${} } -}`,{label:"class",detail:"definition",type:"keyword"}),snippetCompletion('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),snippetCompletion('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],javascriptLanguage=LRLanguage.define({parser:parser.configure({props:[indentNodeProp.add({IfStatement:continuedIndent({except:/^\s*({|else\b)/}),TryStatement:continuedIndent({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:flatIndent,SwitchBody:a=>{let e=a.textAfter,s=/^\s*\}/.test(e),o=/^\s*(case|default)\b/.test(e);return a.baseIndent+(s?0:o?1:2)*a.unit},Block:delimitedIndent({closing:"}"}),ArrowFunction:a=>a.baseIndent+a.unit,"TemplateString BlockComment":()=>-1,"Statement Property":continuedIndent({except:/^{/}),JSXElement(a){let e=/^\s*<\//.test(a.textAfter);return a.lineIndent(a.node.from)+(e?0:a.unit)},JSXEscape(a){let e=/\s*\}/.test(a.textAfter);return a.lineIndent(a.node.from)+(e?0:a.unit)},"JSXOpenTag JSXSelfClosingTag"(a){return a.column(a.node.from)+a.unit}}),foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":foldInside$1,BlockComment(a){return{from:a.from+2,to:a.to-2}}}),styleTags({"get set async static":tags.modifier,"for while do if else switch try catch finally return throw break continue default case":tags.controlKeyword,"in of await yield void typeof delete instanceof":tags.operatorKeyword,"let var const function class extends":tags.definitionKeyword,"import export from":tags.moduleKeyword,"with debugger as new":tags.keyword,TemplateString:tags.special(tags.string),Super:tags.atom,BooleanLiteral:tags.bool,this:tags.self,null:tags.null,Star:tags.modifier,VariableName:tags.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":tags.function(tags.variableName),VariableDefinition:tags.definition(tags.variableName),Label:tags.labelName,PropertyName:tags.propertyName,PrivatePropertyName:tags.special(tags.propertyName),"CallExpression/MemberExpression/PropertyName":tags.function(tags.propertyName),"FunctionDeclaration/VariableDefinition":tags.function(tags.definition(tags.variableName)),"ClassDeclaration/VariableDefinition":tags.definition(tags.className),PropertyDefinition:tags.definition(tags.propertyName),PrivatePropertyDefinition:tags.definition(tags.special(tags.propertyName)),UpdateOp:tags.updateOperator,LineComment:tags.lineComment,BlockComment:tags.blockComment,Number:tags.number,String:tags.string,ArithOp:tags.arithmeticOperator,LogicOp:tags.logicOperator,BitOp:tags.bitwiseOperator,CompareOp:tags.compareOperator,RegExp:tags.regexp,Equals:tags.definitionOperator,"Arrow : Spread":tags.punctuation,"( )":tags.paren,"[ ]":tags.squareBracket,"{ }":tags.brace,"InterpolationStart InterpolationEnd":tags.special(tags.brace),".":tags.derefOperator,", ;":tags.separator,TypeName:tags.typeName,TypeDefinition:tags.definition(tags.typeName),"type enum interface implements namespace module declare":tags.definitionKeyword,"abstract global Privacy readonly override":tags.modifier,"is keyof unique infer":tags.operatorKeyword,JSXAttributeValue:tags.attributeValue,JSXText:tags.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":tags.angleBracket,"JSXIdentifier JSXNameSpacedName":tags.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":tags.attributeName})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),typescriptLanguage=javascriptLanguage.configure({dialect:"ts"}),jsxLanguage=javascriptLanguage.configure({dialect:"jsx"}),tsxLanguage=javascriptLanguage.configure({dialect:"jsx ts"});function javascript(a={}){let e=a.jsx?a.typescript?tsxLanguage:jsxLanguage:a.typescript?typescriptLanguage:javascriptLanguage;return new LanguageSupport(e,javascriptLanguage.data.of({autocomplete:ifNotIn(["LineComment","BlockComment","String"],completeFromList(snippets))}))}const scale=(a,e,s)=>a*(s-e)+e,getValue=a=>{var s;let e=typeof a.value=="object"?(s=a.value.note)!=null?s:a.value.n:a.value;return typeof e=="string"&&(e=toMidi(e)),e};Pattern$5.prototype.pianoroll=function({cycles:a=4,playhead:e=.5,overscan:s=1,flipTime:o=0,flipValues:c=0,hideNegative:d=!1,inactive:_="#7491D2",active:b="#FFCA28",background:k="transparent",smear:$=0,playheadColor:j="white",minMidi:_e=10,maxMidi:et=90,autorange:tt=0,timeframe:nt,fold:it=0,vertical:rt=0}={}){const st=getDrawContext(),ot=st.canvas.width,at=st.canvas.height;let ht=-a*e,lt=a*(1-e);nt&&(console.warn("timeframe is deprecated! use from/to instead"),ht=0,lt=nt),!tt&&it&&console.warn("disabling autorange has no effect when fold is enabled");const ut=rt?at:ot,ct=rt?ot:at;let dt=rt?[ut,0]:[0,ut];const ft=lt-ht,yt=rt?[0,ct]:[ct,0];let _t=et-_e+1,gt=ct/_t,Et=[];return o&&dt.reverse(),c&&yt.reverse(),this.draw((pt,mt,At)=>{pt.fillStyle=k,pt.globalAlpha=1,$||(pt.clearRect(0,0,ot,at),pt.fillRect(0,0,ot,at));const Ct=St=>(!d||St.whole.begin>=0)&&St.whole.begin<=At+lt&&St.whole.end>=At+ht;mt.filter(Ct).forEach(St=>{var qt,Qt,Nt;const Tt=St.whole.begin<=At&&St.whole.end>At;pt.fillStyle=((qt=St.context)==null?void 0:qt.color)||_,pt.strokeStyle=((Qt=St.context)==null?void 0:Qt.color)||b,pt.globalAlpha=(Nt=St.context.velocity)!=null?Nt:1;const vt=scale((St.whole.begin-(o?lt:ht))/ft,...dt);let bt=scale(St.duration/ft,0,ut);const xt=getValue(St),Rt=scale(it?Et.indexOf(xt)/Et.length:(Number(xt)-_e)/_t,...yt);let $t=0;const It=scale(At/ft,...dt);let Ft;rt?Ft=[Rt+1-(c?gt:0),ut-It+vt+$t+1-(o?0:bt),gt-2,bt-2]:Ft=[vt-It+$t+1-(o?bt:0),Rt+1-(c?0:gt),bt-2,gt-2],Tt?pt.strokeRect(...Ft):pt.fillRect(...Ft)}),pt.globalAlpha=1;const Ot=scale(-ht/ft,...dt);pt.strokeStyle=j,pt.beginPath(),rt?(pt.moveTo(0,Ot),pt.lineTo(ct,Ot)):(pt.moveTo(Ot,0),pt.lineTo(Ot,ct)),pt.stroke()},{from:ht-s,to:lt+s,onQuery:pt=>{const{min:mt,max:At,values:Ct}=pt.reduce(({min:Ot,max:St,values:Tt},vt)=>{const bt=getValue(vt);return{min:btSt?bt:St,values:Tt.includes(bt)?Tt:[...Tt,bt]}},{min:1/0,max:-1/0,values:[]});tt&&(_e=mt,et=At,_t=et-_e+1),Et=Ct.sort((Ot,St)=>Ot-St),gt=it?ct/Et.length:ct/_t}}),this};const version$7="14.7.77",createExtendedExponentialRampToValueAutomationEvent=(a,e,s)=>({endTime:e,insertTime:s,type:"exponentialRampToValue",value:a}),createExtendedLinearRampToValueAutomationEvent=(a,e,s)=>({endTime:e,insertTime:s,type:"linearRampToValue",value:a}),createSetValueAutomationEvent=(a,e)=>({startTime:e,type:"setValue",value:a}),createSetValueCurveAutomationEvent=(a,e,s)=>({duration:s,startTime:e,type:"setValueCurve",values:a}),getTargetValueAtTime=(a,e,{startTime:s,target:o,timeConstant:c})=>o+(e-o)*Math.exp((s-a)/c),isExponentialRampToValueAutomationEvent=a=>a.type==="exponentialRampToValue",isLinearRampToValueAutomationEvent=a=>a.type==="linearRampToValue",isAnyRampToValueAutomationEvent=a=>isExponentialRampToValueAutomationEvent(a)||isLinearRampToValueAutomationEvent(a),isSetValueAutomationEvent=a=>a.type==="setValue",isSetValueCurveAutomationEvent=a=>a.type==="setValueCurve",getValueOfAutomationEventAtIndexAtTime=(a,e,s,o)=>{const c=a[e];return c===void 0?o:isAnyRampToValueAutomationEvent(c)||isSetValueAutomationEvent(c)?c.value:isSetValueCurveAutomationEvent(c)?c.values[c.values.length-1]:getTargetValueAtTime(s,getValueOfAutomationEventAtIndexAtTime(a,e-1,c.startTime,o),c)},getEndTimeAndValueOfPreviousAutomationEvent=(a,e,s,o,c)=>s===void 0?[o.insertTime,c]:isAnyRampToValueAutomationEvent(s)?[s.endTime,s.value]:isSetValueAutomationEvent(s)?[s.startTime,s.value]:isSetValueCurveAutomationEvent(s)?[s.startTime+s.duration,s.values[s.values.length-1]]:[s.startTime,getValueOfAutomationEventAtIndexAtTime(a,e-1,s.startTime,c)],isCancelAndHoldAutomationEvent=a=>a.type==="cancelAndHold",isCancelScheduledValuesAutomationEvent=a=>a.type==="cancelScheduledValues",getEventTime=a=>isCancelAndHoldAutomationEvent(a)||isCancelScheduledValuesAutomationEvent(a)?a.cancelTime:isExponentialRampToValueAutomationEvent(a)||isLinearRampToValueAutomationEvent(a)?a.endTime:a.startTime,getExponentialRampValueAtTime=(a,e,s,{endTime:o,value:c})=>s===c?c:0s+(a-e)/(o-e)*(c-s),interpolateValue=(a,e)=>{const s=Math.floor(e),o=Math.ceil(e);return s===o?a[s]:(1-(e-s))*a[s]+(1-(o-e))*a[o]},getValueCurveValueAtTime=(a,{duration:e,startTime:s,values:o})=>{const c=(a-s)/e*(o.length-1);return interpolateValue(o,c)},isSetTargetAutomationEvent=a=>a.type==="setTarget";class AutomationEventList{constructor(e){this._automationEvents=[],this._currenTime=0,this._defaultValue=e}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(e){const s=getEventTime(e);if(isCancelAndHoldAutomationEvent(e)||isCancelScheduledValuesAutomationEvent(e)){const o=this._automationEvents.findIndex(d=>isCancelScheduledValuesAutomationEvent(e)&&isSetValueCurveAutomationEvent(d)?d.startTime+d.duration>=s:getEventTime(d)>=s),c=this._automationEvents[o];if(o!==-1&&(this._automationEvents=this._automationEvents.slice(0,o)),isCancelAndHoldAutomationEvent(e)){const d=this._automationEvents[this._automationEvents.length-1];if(c!==void 0&&isAnyRampToValueAutomationEvent(c)){if(isSetTargetAutomationEvent(d))throw new Error("The internal list is malformed.");const _=isSetValueCurveAutomationEvent(d)?d.startTime+d.duration:getEventTime(d),b=isSetValueCurveAutomationEvent(d)?d.values[d.values.length-1]:d.value,k=isExponentialRampToValueAutomationEvent(c)?getExponentialRampValueAtTime(s,_,b,c):getLinearRampValueAtTime(s,_,b,c),$=isExponentialRampToValueAutomationEvent(c)?createExtendedExponentialRampToValueAutomationEvent(k,s,this._currenTime):createExtendedLinearRampToValueAutomationEvent(k,s,this._currenTime);this._automationEvents.push($)}d!==void 0&&isSetTargetAutomationEvent(d)&&this._automationEvents.push(createSetValueAutomationEvent(this.getValue(s),s)),d!==void 0&&isSetValueCurveAutomationEvent(d)&&d.startTime+d.duration>s&&(this._automationEvents[this._automationEvents.length-1]=createSetValueCurveAutomationEvent(new Float32Array([6,7]),d.startTime,s-d.startTime))}}else{const o=this._automationEvents.findIndex(_=>getEventTime(_)>s),c=o===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[o-1];if(c!==void 0&&isSetValueCurveAutomationEvent(c)&&getEventTime(c)+c.duration>s)return!1;const d=isExponentialRampToValueAutomationEvent(e)?createExtendedExponentialRampToValueAutomationEvent(e.value,e.endTime,this._currenTime):isLinearRampToValueAutomationEvent(e)?createExtendedLinearRampToValueAutomationEvent(e.value,s,this._currenTime):e;if(o===-1)this._automationEvents.push(d);else{if(isSetValueCurveAutomationEvent(e)&&s+e.duration>getEventTime(this._automationEvents[o]))return!1;this._automationEvents.splice(o,0,d)}}return!0}flush(e){const s=this._automationEvents.findIndex(o=>getEventTime(o)>e);if(s>1){const o=this._automationEvents.slice(s-1),c=o[0];isSetTargetAutomationEvent(c)&&o.unshift(createSetValueAutomationEvent(getValueOfAutomationEventAtIndexAtTime(this._automationEvents,s-2,c.startTime,this._defaultValue),c.startTime)),this._automationEvents=o}}getValue(e){if(this._automationEvents.length===0)return this._defaultValue;const s=this._automationEvents.findIndex(_=>getEventTime(_)>e),o=this._automationEvents[s],c=(s===-1?this._automationEvents.length:s)-1,d=this._automationEvents[c];if(d!==void 0&&isSetTargetAutomationEvent(d)&&(o===void 0||!isAnyRampToValueAutomationEvent(o)||o.insertTime>e))return getTargetValueAtTime(e,getValueOfAutomationEventAtIndexAtTime(this._automationEvents,c-1,d.startTime,this._defaultValue),d);if(d!==void 0&&isSetValueAutomationEvent(d)&&(o===void 0||!isAnyRampToValueAutomationEvent(o)))return d.value;if(d!==void 0&&isSetValueCurveAutomationEvent(d)&&(o===void 0||!isAnyRampToValueAutomationEvent(o)||d.startTime+d.duration>e))return e({cancelTime:a,type:"cancelAndHold"}),createCancelScheduledValuesAutomationEvent=a=>({cancelTime:a,type:"cancelScheduledValues"}),createExponentialRampToValueAutomationEvent=(a,e)=>({endTime:e,type:"exponentialRampToValue",value:a}),createLinearRampToValueAutomationEvent=(a,e)=>({endTime:e,type:"linearRampToValue",value:a}),createSetTargetAutomationEvent=(a,e,s)=>({startTime:e,target:a,timeConstant:s,type:"setTarget"}),createAbortError=()=>new DOMException("","AbortError"),createAddActiveInputConnectionToAudioNode=a=>(e,s,[o,c,d],_)=>{a(e[c],[s,o,d],b=>b[0]===s&&b[1]===o,_)},createAddAudioNodeConnections=a=>(e,s,o)=>{const c=[];for(let d=0;d(e,s)=>{a.set(e,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:s})},ACTIVE_AUDIO_NODE_STORE=new WeakSet,AUDIO_NODE_CONNECTIONS_STORE=new WeakMap,AUDIO_NODE_STORE=new WeakMap,AUDIO_PARAM_CONNECTIONS_STORE=new WeakMap,AUDIO_PARAM_STORE=new WeakMap,CONTEXT_STORE=new WeakMap,EVENT_LISTENERS=new WeakMap,CYCLE_COUNTERS=new WeakMap,NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS=new WeakMap,NODE_TO_PROCESSOR_MAPS=new WeakMap,handler={construct(){return handler}},isConstructible=a=>{try{const e=new Proxy(a,handler);new e}catch{return!1}return!0},IMPORT_STATEMENT_REGEX=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,splitImportStatements=(a,e)=>{const s=[];let o=a.replace(/^[\s]+/,""),c=o.match(IMPORT_STATEMENT_REGEX);for(;c!==null;){const d=c[1].slice(1,-1),_=c[0].replace(/([\s]+)?;?$/,"").replace(d,new URL(d,e).toString());s.push(_),o=o.slice(c[0].length).replace(/^[\s]+/,""),c=o.match(IMPORT_STATEMENT_REGEX)}return[s.join(";"),o]},verifyParameterDescriptors=a=>{if(a!==void 0&&!Array.isArray(a))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},verifyProcessorCtor=a=>{if(!isConstructible(a))throw new TypeError("The given value for processorCtor should be a constructor.");if(a.prototype===null||typeof a.prototype!="object")throw new TypeError("The given value for processorCtor should have a prototype.")},createAddAudioWorkletModule=(a,e,s,o,c,d,_,b,k,$,j,_e,et)=>{let tt=0;return(nt,it,rt={credentials:"omit"})=>{const st=j.get(nt);if(st!==void 0&&st.has(it))return Promise.resolve();const ot=$.get(nt);if(ot!==void 0){const lt=ot.get(it);if(lt!==void 0)return lt}const at=d(nt),ht=at.audioWorklet===void 0?c(it).then(([lt,ut])=>{const[ct,dt]=splitImportStatements(lt,ut),ft=`${ct};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${dt} -})})(window,'_AWGS')`;return s(ft)}).then(()=>{const lt=et._AWGS.pop();if(lt===void 0)throw new SyntaxError;o(at.currentTime,at.sampleRate,()=>lt(class{},void 0,(ut,ct)=>{if(ut.trim()==="")throw e();const dt=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(at);if(dt!==void 0){if(dt.has(ut))throw e();verifyProcessorCtor(ct),verifyParameterDescriptors(ct.parameterDescriptors),dt.set(ut,ct)}else verifyProcessorCtor(ct),verifyParameterDescriptors(ct.parameterDescriptors),NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.set(at,new Map([[ut,ct]]))},at.sampleRate,void 0,void 0))}):Promise.all([c(it),Promise.resolve(a(_e,_e))]).then(([[lt,ut],ct])=>{const dt=tt+1;tt=dt;const[ft,yt]=splitImportStatements(lt,ut),pt=`${ft};((AudioWorkletProcessor,registerProcessor)=>{${yt} -})(${ct?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${ct?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${ct?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${dt}',class extends AudioWorkletProcessor{process(){return !1}})`,mt=new Blob([pt],{type:"application/javascript; charset=utf-8"}),At=URL.createObjectURL(mt);return at.audioWorklet.addModule(At,rt).then(()=>{if(b(at))return at;const Ct=_(at);return Ct.audioWorklet.addModule(At,rt).then(()=>Ct)}).then(Ct=>{if(k===null)throw new SyntaxError;try{new k(Ct,`__sac${dt}`)}catch{throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(At))});return ot===void 0?$.set(nt,new Map([[it,ht]])):ot.set(it,ht),ht.then(()=>{const lt=j.get(nt);lt===void 0?j.set(nt,new Set([it])):lt.add(it)}).finally(()=>{const lt=$.get(nt);lt!==void 0&<.delete(it)}),ht}},getValueForKey=(a,e)=>{const s=a.get(e);if(s===void 0)throw new Error("A value with the given key could not be found.");return s},pickElementFromSet=(a,e)=>{const s=Array.from(a).filter(e);if(s.length>1)throw Error("More than one element was found.");if(s.length===0)throw Error("No element was found.");const[o]=s;return a.delete(o),o},deletePassiveInputConnectionToAudioNode=(a,e,s,o)=>{const c=getValueForKey(a,e),d=pickElementFromSet(c,_=>_[0]===s&&_[1]===o);return c.size===0&&a.delete(e),d},getEventListenersOfAudioNode=a=>getValueForKey(EVENT_LISTENERS,a),setInternalStateToActive=a=>{if(ACTIVE_AUDIO_NODE_STORE.has(a))throw new Error("The AudioNode is already stored.");ACTIVE_AUDIO_NODE_STORE.add(a),getEventListenersOfAudioNode(a).forEach(e=>e(!0))},isAudioWorkletNode=a=>"port"in a,setInternalStateToPassive=a=>{if(!ACTIVE_AUDIO_NODE_STORE.has(a))throw new Error("The AudioNode is not stored.");ACTIVE_AUDIO_NODE_STORE.delete(a),getEventListenersOfAudioNode(a).forEach(e=>e(!1))},setInternalStateToPassiveWhenNecessary=(a,e)=>{!isAudioWorkletNode(a)&&e.every(s=>s.size===0)&&setInternalStateToPassive(a)},createAddConnectionToAudioNode=(a,e,s,o,c,d,_,b,k,$,j,_e,et)=>{const tt=new WeakMap;return(nt,it,rt,st,ot)=>{const{activeInputs:at,passiveInputs:ht}=d(it),{outputs:lt}=d(nt),ut=b(nt),ct=dt=>{const ft=k(it),yt=k(nt);if(dt){const _t=deletePassiveInputConnectionToAudioNode(ht,nt,rt,st);a(at,nt,_t,!1),!ot&&!_e(nt)&&s(yt,ft,rt,st),et(it)&&setInternalStateToActive(it)}else{const _t=o(at,nt,rt,st);e(ht,st,_t,!1),!ot&&!_e(nt)&&c(yt,ft,rt,st);const gt=_(it);if(gt===0)j(it)&&setInternalStateToPassiveWhenNecessary(it,at);else{const Et=tt.get(it);Et!==void 0&&clearTimeout(Et),tt.set(it,setTimeout(()=>{j(it)&&setInternalStateToPassiveWhenNecessary(it,at)},gt*1e3))}}};return $(lt,[it,rt,st],dt=>dt[0]===it&&dt[1]===rt&&dt[2]===st,!0)?(ut.add(ct),j(nt)?a(at,nt,[rt,st,ct],!0):e(ht,st,[nt,rt,ct],!0),!0):!1}},createAddPassiveInputConnectionToAudioNode=a=>(e,s,[o,c,d],_)=>{const b=e.get(o);b===void 0?e.set(o,new Set([[c,s,d]])):a(b,[c,s,d],k=>k[0]===c&&k[1]===s,_)},createAddSilentConnection=a=>(e,s)=>{const o=a(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});s.connect(o).connect(e.destination);const c=()=>{s.removeEventListener("ended",c),s.disconnect(o),o.disconnect()};s.addEventListener("ended",c)},createAddUnrenderedAudioWorkletNode=a=>(e,s)=>{a(e).add(s)},DEFAULT_OPTIONS$l={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},createAnalyserNodeConstructor=(a,e,s,o,c,d)=>class extends a{constructor(b,k){const $=c(b),j=Dt(Dt({},DEFAULT_OPTIONS$l),k),_e=o($,j),et=d($)?e():null;super(b,!1,_e,et),this._nativeAnalyserNode=_e}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(b){this._nativeAnalyserNode.fftSize=b}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(b){const k=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=b,!(b>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=k,s()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(b){const k=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=b,!(this._nativeAnalyserNode.maxDecibels>b))throw this._nativeAnalyserNode.minDecibels=k,s()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(b){this._nativeAnalyserNode.smoothingTimeConstant=b}getByteFrequencyData(b){this._nativeAnalyserNode.getByteFrequencyData(b)}getByteTimeDomainData(b){this._nativeAnalyserNode.getByteTimeDomainData(b)}getFloatFrequencyData(b){this._nativeAnalyserNode.getFloatFrequencyData(b)}getFloatTimeDomainData(b){this._nativeAnalyserNode.getFloatTimeDomainData(b)}},isOwnedByContext=(a,e)=>a.context===e,createAnalyserNodeRendererFactory=(a,e,s)=>()=>{const o=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,fftSize:b.fftSize,maxDecibels:b.maxDecibels,minDecibels:b.minDecibels,smoothingTimeConstant:b.smoothingTimeConstant};b=a(_,$)}return o.set(_,b),await s(d,_,b),b};return{render(d,_){const b=o.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},testAudioBufferCopyChannelMethodsOutOfBoundsSupport=a=>{try{a.copyToChannel(new Float32Array(1),0,-1)}catch{return!1}return!0},createIndexSizeError=()=>new DOMException("","IndexSizeError"),wrapAudioBufferGetChannelDataMethod=a=>{a.getChannelData=(e=>s=>{try{return e.call(a,s)}catch(o){throw o.code===12?createIndexSizeError():o}})(a.getChannelData)},DEFAULT_OPTIONS$k={numberOfChannels:1},createAudioBufferConstructor=(a,e,s,o,c,d,_,b)=>{let k=null;return class mr{constructor(j){if(c===null)throw new Error("Missing the native OfflineAudioContext constructor.");const{length:_e,numberOfChannels:et,sampleRate:tt}=Dt(Dt({},DEFAULT_OPTIONS$k),j);k===null&&(k=new c(1,1,44100));const nt=o!==null&&e(d,d)?new o({length:_e,numberOfChannels:et,sampleRate:tt}):k.createBuffer(et,_e,tt);if(nt.numberOfChannels===0)throw s();return typeof nt.copyFromChannel!="function"?(_(nt),wrapAudioBufferGetChannelDataMethod(nt)):e(testAudioBufferCopyChannelMethodsOutOfBoundsSupport,()=>testAudioBufferCopyChannelMethodsOutOfBoundsSupport(nt))||b(nt),a.add(nt),nt}static[Symbol.hasInstance](j){return j!==null&&typeof j=="object"&&Object.getPrototypeOf(j)===mr.prototype||a.has(j)}}},MOST_NEGATIVE_SINGLE_FLOAT=-34028234663852886e22,MOST_POSITIVE_SINGLE_FLOAT=-MOST_NEGATIVE_SINGLE_FLOAT,isActiveAudioNode=a=>ACTIVE_AUDIO_NODE_STORE.has(a),DEFAULT_OPTIONS$j={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},createAudioBufferSourceNodeConstructor=(a,e,s,o,c,d,_,b)=>class extends a{constructor($,j){const _e=d($),et=Dt(Dt({},DEFAULT_OPTIONS$j),j),tt=c(_e,et),nt=_(_e),it=nt?e():null;super($,!1,tt,it),this._audioBufferSourceNodeRenderer=it,this._isBufferNullified=!1,this._isBufferSet=et.buffer!==null,this._nativeAudioBufferSourceNode=tt,this._onended=null,this._playbackRate=s(this,nt,tt.playbackRate,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer($){if(this._nativeAudioBufferSourceNode.buffer=$,$!==null){if(this._isBufferSet)throw o();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop($){this._nativeAudioBufferSourceNode.loop=$}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd($){this._nativeAudioBufferSourceNode.loopEnd=$}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart($){this._nativeAudioBufferSourceNode.loopStart=$}get onended(){return this._onended}set onended($){const j=typeof $=="function"?b(this,$):null;this._nativeAudioBufferSourceNode.onended=j;const _e=this._nativeAudioBufferSourceNode.onended;this._onended=_e!==null&&_e===j?$:_e}get playbackRate(){return this._playbackRate}start($=0,j=0,_e){if(this._nativeAudioBufferSourceNode.start($,j,_e),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=_e===void 0?[$,j]:[$,j,_e]),this.context.state!=="closed"){setInternalStateToActive(this);const et=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",et),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",et)}}stop($=0){this._nativeAudioBufferSourceNode.stop($),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=$)}},createAudioBufferSourceNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap;let _=null,b=null;const k=async($,j)=>{let _e=s($);const et=isOwnedByContext(_e,j);if(!et){const tt={buffer:_e.buffer,channelCount:_e.channelCount,channelCountMode:_e.channelCountMode,channelInterpretation:_e.channelInterpretation,loop:_e.loop,loopEnd:_e.loopEnd,loopStart:_e.loopStart,playbackRate:_e.playbackRate.value};_e=e(j,tt),_!==null&&_e.start(..._),b!==null&&_e.stop(b)}return d.set(j,_e),et?await a(j,$.playbackRate,_e.playbackRate):await o(j,$.playbackRate,_e.playbackRate),await c($,j,_e),_e};return{set start($){_=$},set stop($){b=$},render($,j){const _e=d.get(j);return _e!==void 0?Promise.resolve(_e):k($,j)}}},isAudioBufferSourceNode=a=>"playbackRate"in a,isBiquadFilterNode=a=>"frequency"in a&&"gain"in a,isConstantSourceNode=a=>"offset"in a,isGainNode=a=>!("frequency"in a)&&"gain"in a,isOscillatorNode=a=>"detune"in a&&"frequency"in a,isStereoPannerNode=a=>"pan"in a,getAudioNodeConnections=a=>getValueForKey(AUDIO_NODE_CONNECTIONS_STORE,a),getAudioParamConnections=a=>getValueForKey(AUDIO_PARAM_CONNECTIONS_STORE,a),deactivateActiveAudioNodeInputConnections=(a,e)=>{const{activeInputs:s}=getAudioNodeConnections(a);s.forEach(c=>c.forEach(([d])=>{e.includes(a)||deactivateActiveAudioNodeInputConnections(d,[...e,a])}));const o=isAudioBufferSourceNode(a)?[a.playbackRate]:isAudioWorkletNode(a)?Array.from(a.parameters.values()):isBiquadFilterNode(a)?[a.Q,a.detune,a.frequency,a.gain]:isConstantSourceNode(a)?[a.offset]:isGainNode(a)?[a.gain]:isOscillatorNode(a)?[a.detune,a.frequency]:isStereoPannerNode(a)?[a.pan]:[];for(const c of o){const d=getAudioParamConnections(c);d!==void 0&&d.activeInputs.forEach(([_])=>deactivateActiveAudioNodeInputConnections(_,e))}isActiveAudioNode(a)&&setInternalStateToPassive(a)},deactivateAudioGraph=a=>{deactivateActiveAudioNodeInputConnections(a.destination,[])},isValidLatencyHint=a=>a===void 0||typeof a=="number"||typeof a=="string"&&(a==="balanced"||a==="interactive"||a==="playback"),createAudioContextConstructor=(a,e,s,o,c,d,_,b,k)=>class extends a{constructor(j={}){if(k===null)throw new Error("Missing the native AudioContext constructor.");let _e;try{_e=new k(j)}catch(nt){throw nt.code===12&&nt.message==="sampleRate is not in range"?s():nt}if(_e===null)throw o();if(!isValidLatencyHint(j.latencyHint))throw new TypeError(`The provided value '${j.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(j.sampleRate!==void 0&&_e.sampleRate!==j.sampleRate)throw s();super(_e,2);const{latencyHint:et}=j,{sampleRate:tt}=_e;if(this._baseLatency=typeof _e.baseLatency=="number"?_e.baseLatency:et==="balanced"?512/tt:et==="interactive"||et===void 0?256/tt:et==="playback"?1024/tt:Math.max(2,Math.min(128,Math.round(et*tt/128)))*128/tt,this._nativeAudioContext=_e,k.name==="webkitAudioContext"?(this._nativeGainNode=_e.createGain(),this._nativeOscillatorNode=_e.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(_e.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,_e.state==="running"){this._state="suspended";const nt=()=>{this._state==="suspended"&&(this._state=null),_e.removeEventListener("statechange",nt)};_e.addEventListener("statechange",nt)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw e()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),deactivateAudioGraph(this)}))}createMediaElementSource(j){return new c(this,{mediaElement:j})}createMediaStreamDestination(){return new d(this)}createMediaStreamSource(j){return new _(this,{mediaStream:j})}createMediaStreamTrackSource(j){return new b(this,{mediaStreamTrack:j})}resume(){return this._state==="suspended"?new Promise((j,_e)=>{const et=()=>{this._nativeAudioContext.removeEventListener("statechange",et),this._nativeAudioContext.state==="running"?j():this.resume().then(j,_e)};this._nativeAudioContext.addEventListener("statechange",et)}):this._nativeAudioContext.resume().catch(j=>{throw j===void 0||j.code===15?e():j})}suspend(){return this._nativeAudioContext.suspend().catch(j=>{throw j===void 0?e():j})}},createAudioDestinationNodeConstructor=(a,e,s,o,c,d,_,b)=>class extends a{constructor($,j){const _e=d($),et=_(_e),tt=c(_e,j,et),nt=et?e(b):null;super($,!1,tt,nt),this._isNodeOfNativeOfflineAudioContext=et,this._nativeAudioDestinationNode=tt}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount($){if(this._isNodeOfNativeOfflineAudioContext)throw o();if($>this._nativeAudioDestinationNode.maxChannelCount)throw s();this._nativeAudioDestinationNode.channelCount=$}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode($){if(this._isNodeOfNativeOfflineAudioContext)throw o();this._nativeAudioDestinationNode.channelCountMode=$}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}},createAudioDestinationNodeRenderer=a=>{const e=new WeakMap,s=async(o,c)=>{const d=c.destination;return e.set(c,d),await a(o,c,d),d};return{render(o,c){const d=e.get(c);return d!==void 0?Promise.resolve(d):s(o,c)}}},createAudioListenerFactory=(a,e,s,o,c,d,_,b)=>(k,$)=>{const j=$.listener,_e=()=>{const lt=new Float32Array(1),ut=e($,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),ct=_($);let dt=!1,ft=[0,0,-1,0,1,0],yt=[0,0,0];const _t=()=>{if(dt)return;dt=!0;const mt=o($,256,9,0);mt.onaudioprocess=({inputBuffer:At})=>{const Ct=[d(At,lt,0),d(At,lt,1),d(At,lt,2),d(At,lt,3),d(At,lt,4),d(At,lt,5)];Ct.some((St,Tt)=>St!==ft[Tt])&&(j.setOrientation(...Ct),ft=Ct);const Ot=[d(At,lt,6),d(At,lt,7),d(At,lt,8)];Ot.some((St,Tt)=>St!==yt[Tt])&&(j.setPosition(...Ot),yt=Ot)},ut.connect(mt)},gt=mt=>At=>{At!==ft[mt]&&(ft[mt]=At,j.setOrientation(...ft))},Et=mt=>At=>{At!==yt[mt]&&(yt[mt]=At,j.setPosition(...yt))},pt=(mt,At,Ct)=>{const Ot=s($,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:At});Ot.connect(ut,0,mt),Ot.start(),Object.defineProperty(Ot.offset,"defaultValue",{get(){return At}});const St=a({context:k},ct,Ot.offset,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT);return b(St,"value",Tt=>()=>Tt.call(St),Tt=>vt=>{try{Tt.call(St,vt)}catch(bt){if(bt.code!==9)throw bt}_t(),ct&&Ct(vt)}),St.cancelAndHoldAtTime=(Tt=>ct?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(St,vt);return _t(),bt})(St.cancelAndHoldAtTime),St.cancelScheduledValues=(Tt=>ct?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(St,vt);return _t(),bt})(St.cancelScheduledValues),St.exponentialRampToValueAtTime=(Tt=>ct?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(St,vt);return _t(),bt})(St.exponentialRampToValueAtTime),St.linearRampToValueAtTime=(Tt=>ct?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(St,vt);return _t(),bt})(St.linearRampToValueAtTime),St.setTargetAtTime=(Tt=>ct?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(St,vt);return _t(),bt})(St.setTargetAtTime),St.setValueAtTime=(Tt=>ct?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(St,vt);return _t(),bt})(St.setValueAtTime),St.setValueCurveAtTime=(Tt=>ct?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(St,vt);return _t(),bt})(St.setValueCurveAtTime),St};return{forwardX:pt(0,0,gt(0)),forwardY:pt(1,0,gt(1)),forwardZ:pt(2,-1,gt(2)),positionX:pt(6,0,Et(0)),positionY:pt(7,0,Et(1)),positionZ:pt(8,0,Et(2)),upX:pt(3,0,gt(3)),upY:pt(4,1,gt(4)),upZ:pt(5,0,gt(5))}},{forwardX:et,forwardY:tt,forwardZ:nt,positionX:it,positionY:rt,positionZ:st,upX:ot,upY:at,upZ:ht}=j.forwardX===void 0?_e():j;return{get forwardX(){return et},get forwardY(){return tt},get forwardZ(){return nt},get positionX(){return it},get positionY(){return rt},get positionZ(){return st},get upX(){return ot},get upY(){return at},get upZ(){return ht}}},isAudioNode$1=a=>"context"in a,isAudioNodeOutputConnection=a=>isAudioNode$1(a[0]),insertElementInSet=(a,e,s,o)=>{for(const c of a)if(s(c)){if(o)return!1;throw Error("The set contains at least one similar element.")}return a.add(e),!0},addActiveInputConnectionToAudioParam=(a,e,[s,o],c)=>{insertElementInSet(a,[e,s,o],d=>d[0]===e&&d[1]===s,c)},addPassiveInputConnectionToAudioParam=(a,[e,s,o],c)=>{const d=a.get(e);d===void 0?a.set(e,new Set([[s,o]])):insertElementInSet(d,[s,o],_=>_[0]===s,c)},isNativeAudioNodeFaker=a=>"inputs"in a,connectNativeAudioNodeToNativeAudioNode=(a,e,s,o)=>{if(isNativeAudioNodeFaker(e)){const c=e.inputs[o];return a.connect(c,s,0),[c,s,0]}return a.connect(e,s,o),[e,s,o]},deleteActiveInputConnection=(a,e,s)=>{for(const o of a)if(o[0]===e&&o[1]===s)return a.delete(o),o;return null},deleteActiveInputConnectionToAudioParam=(a,e,s)=>pickElementFromSet(a,o=>o[0]===e&&o[1]===s),deleteEventListenerOfAudioNode=(a,e)=>{if(!getEventListenersOfAudioNode(a).delete(e))throw new Error("Missing the expected event listener.")},deletePassiveInputConnectionToAudioParam=(a,e,s)=>{const o=getValueForKey(a,e),c=pickElementFromSet(o,d=>d[0]===s);return o.size===0&&a.delete(e),c},disconnectNativeAudioNodeFromNativeAudioNode=(a,e,s,o)=>{isNativeAudioNodeFaker(e)?a.disconnect(e.inputs[o],s,0):a.disconnect(e,s,o)},getNativeAudioNode=a=>getValueForKey(AUDIO_NODE_STORE,a),getNativeAudioParam=a=>getValueForKey(AUDIO_PARAM_STORE,a),isPartOfACycle=a=>CYCLE_COUNTERS.has(a),isPassiveAudioNode=a=>!ACTIVE_AUDIO_NODE_STORE.has(a),testAudioNodeDisconnectMethodSupport=(a,e)=>new Promise(s=>{if(e!==null)s(!0);else{const o=a.createScriptProcessor(256,1,1),c=a.createGain(),d=a.createBuffer(1,2,44100),_=d.getChannelData(0);_[0]=1,_[1]=1;const b=a.createBufferSource();b.buffer=d,b.loop=!0,b.connect(o).connect(a.destination),b.connect(c),b.disconnect(c),o.onaudioprocess=k=>{const $=k.inputBuffer.getChannelData(0);Array.prototype.some.call($,j=>j===1)?s(!0):s(!1),b.stop(),o.onaudioprocess=null,b.disconnect(o),o.disconnect(a.destination)},b.start()}}),visitEachAudioNodeOnce=(a,e)=>{const s=new Map;for(const o of a)for(const c of o){const d=s.get(c);s.set(c,d===void 0?1:d+1)}s.forEach((o,c)=>e(c,o))},isNativeAudioNode$1=a=>"context"in a,wrapAudioNodeDisconnectMethod=a=>{const e=new Map;a.connect=(s=>(o,c=0,d=0)=>{const _=isNativeAudioNode$1(o)?s(o,c,d):s(o,c),b=e.get(o);return b===void 0?e.set(o,[{input:d,output:c}]):b.every(k=>k.input!==d||k.output!==c)&&b.push({input:d,output:c}),_})(a.connect.bind(a)),a.disconnect=(s=>(o,c,d)=>{if(s.apply(a),o===void 0)e.clear();else if(typeof o=="number")for(const[_,b]of e){const k=b.filter($=>$.output!==o);k.length===0?e.delete(_):e.set(_,k)}else if(e.has(o))if(c===void 0)e.delete(o);else{const _=e.get(o);if(_!==void 0){const b=_.filter(k=>k.output!==c&&(k.input!==d||d===void 0));b.length===0?e.delete(o):e.set(o,b)}}for(const[_,b]of e)b.forEach(k=>{isNativeAudioNode$1(_)?a.connect(_,k.output,k.input):a.connect(_,k.output)})})(a.disconnect)},addConnectionToAudioParamOfAudioContext=(a,e,s,o)=>{const{activeInputs:c,passiveInputs:d}=getAudioParamConnections(e),{outputs:_}=getAudioNodeConnections(a),b=getEventListenersOfAudioNode(a),k=$=>{const j=getNativeAudioNode(a),_e=getNativeAudioParam(e);if($){const et=deletePassiveInputConnectionToAudioParam(d,a,s);addActiveInputConnectionToAudioParam(c,a,et,!1),!o&&!isPartOfACycle(a)&&j.connect(_e,s)}else{const et=deleteActiveInputConnectionToAudioParam(c,a,s);addPassiveInputConnectionToAudioParam(d,et,!1),!o&&!isPartOfACycle(a)&&j.disconnect(_e,s)}};return insertElementInSet(_,[e,s],$=>$[0]===e&&$[1]===s,!0)?(b.add(k),isActiveAudioNode(a)?addActiveInputConnectionToAudioParam(c,a,[s,k],!0):addPassiveInputConnectionToAudioParam(d,[a,s,k],!0),!0):!1},deleteInputConnectionOfAudioNode=(a,e,s,o)=>{const{activeInputs:c,passiveInputs:d}=getAudioNodeConnections(e),_=deleteActiveInputConnection(c[o],a,s);return _===null?[deletePassiveInputConnectionToAudioNode(d,a,s,o)[2],!1]:[_[2],!0]},deleteInputConnectionOfAudioParam=(a,e,s)=>{const{activeInputs:o,passiveInputs:c}=getAudioParamConnections(e),d=deleteActiveInputConnection(o,a,s);return d===null?[deletePassiveInputConnectionToAudioParam(c,a,s)[1],!1]:[d[2],!0]},deleteInputsOfAudioNode=(a,e,s,o,c)=>{const[d,_]=deleteInputConnectionOfAudioNode(a,s,o,c);if(d!==null&&(deleteEventListenerOfAudioNode(a,d),_&&!e&&!isPartOfACycle(a)&&disconnectNativeAudioNodeFromNativeAudioNode(getNativeAudioNode(a),getNativeAudioNode(s),o,c)),isActiveAudioNode(s)){const{activeInputs:b}=getAudioNodeConnections(s);setInternalStateToPassiveWhenNecessary(s,b)}},deleteInputsOfAudioParam=(a,e,s,o)=>{const[c,d]=deleteInputConnectionOfAudioParam(a,s,o);c!==null&&(deleteEventListenerOfAudioNode(a,c),d&&!e&&!isPartOfACycle(a)&&getNativeAudioNode(a).disconnect(getNativeAudioParam(s),o))},deleteAnyConnection=(a,e)=>{const s=getAudioNodeConnections(a),o=[];for(const c of s.outputs)isAudioNodeOutputConnection(c)?deleteInputsOfAudioNode(a,e,...c):deleteInputsOfAudioParam(a,e,...c),o.push(c[0]);return s.outputs.clear(),o},deleteConnectionAtOutput=(a,e,s)=>{const o=getAudioNodeConnections(a),c=[];for(const d of o.outputs)d[1]===s&&(isAudioNodeOutputConnection(d)?deleteInputsOfAudioNode(a,e,...d):deleteInputsOfAudioParam(a,e,...d),c.push(d[0]),o.outputs.delete(d));return c},deleteConnectionToDestination=(a,e,s,o,c)=>{const d=getAudioNodeConnections(a);return Array.from(d.outputs).filter(_=>_[0]===s&&(o===void 0||_[1]===o)&&(c===void 0||_[2]===c)).map(_=>(isAudioNodeOutputConnection(_)?deleteInputsOfAudioNode(a,e,..._):deleteInputsOfAudioParam(a,e,..._),d.outputs.delete(_),_[0]))},createAudioNodeConstructor=(a,e,s,o,c,d,_,b,k,$,j,_e,et,tt,nt,it)=>class extends ${constructor(st,ot,at,ht){super(at),this._context=st,this._nativeAudioNode=at;const lt=j(st);_e(lt)&&s(testAudioNodeDisconnectMethodSupport,()=>testAudioNodeDisconnectMethodSupport(lt,it))!==!0&&wrapAudioNodeDisconnectMethod(at),AUDIO_NODE_STORE.set(this,at),EVENT_LISTENERS.set(this,new Set),st.state!=="closed"&&ot&&setInternalStateToActive(this),a(this,ht,at)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(st){this._nativeAudioNode.channelCount=st}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(st){this._nativeAudioNode.channelCountMode=st}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(st){this._nativeAudioNode.channelInterpretation=st}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(st,ot=0,at=0){if(ot<0||ot>=this._nativeAudioNode.numberOfOutputs)throw c();const ht=j(this._context),lt=nt(ht);if(et(st)||tt(st))throw d();if(isAudioNode$1(st)){const dt=getNativeAudioNode(st);try{const yt=connectNativeAudioNodeToNativeAudioNode(this._nativeAudioNode,dt,ot,at),_t=isPassiveAudioNode(this);(lt||_t)&&this._nativeAudioNode.disconnect(...yt),this.context.state!=="closed"&&!_t&&isPassiveAudioNode(st)&&setInternalStateToActive(st)}catch(yt){throw yt.code===12?d():yt}if(e(this,st,ot,at,lt)){const yt=k([this],st);visitEachAudioNodeOnce(yt,o(lt))}return st}const ut=getNativeAudioParam(st);if(ut.name==="playbackRate"&&ut.maxValue===1024)throw _();try{this._nativeAudioNode.connect(ut,ot),(lt||isPassiveAudioNode(this))&&this._nativeAudioNode.disconnect(ut,ot)}catch(dt){throw dt.code===12?d():dt}if(addConnectionToAudioParamOfAudioContext(this,st,ot,lt)){const dt=k([this],st);visitEachAudioNodeOnce(dt,o(lt))}}disconnect(st,ot,at){let ht;const lt=j(this._context),ut=nt(lt);if(st===void 0)ht=deleteAnyConnection(this,ut);else if(typeof st=="number"){if(st<0||st>=this.numberOfOutputs)throw c();ht=deleteConnectionAtOutput(this,ut,st)}else{if(ot!==void 0&&(ot<0||ot>=this.numberOfOutputs)||isAudioNode$1(st)&&at!==void 0&&(at<0||at>=st.numberOfInputs))throw c();if(ht=deleteConnectionToDestination(this,ut,st,ot,at),ht.length===0)throw d()}for(const ct of ht){const dt=k([this],ct);visitEachAudioNodeOnce(dt,b)}}},createAudioParamFactory=(a,e,s,o,c,d,_,b,k,$,j,_e,et)=>(tt,nt,it,rt=null,st=null)=>{const ot=new AutomationEventList(it.defaultValue),at=nt?o(ot):null,ht={get defaultValue(){return it.defaultValue},get maxValue(){return rt===null?it.maxValue:rt},get minValue(){return st===null?it.minValue:st},get value(){return it.value},set value(lt){it.value=lt,ht.setValueAtTime(lt,tt.context.currentTime)},cancelAndHoldAtTime(lt){if(typeof it.cancelAndHoldAtTime=="function")at===null&&ot.flush(tt.context.currentTime),ot.add(c(lt)),it.cancelAndHoldAtTime(lt);else{const ut=Array.from(ot).pop();at===null&&ot.flush(tt.context.currentTime),ot.add(c(lt));const ct=Array.from(ot).pop();it.cancelScheduledValues(lt),ut!==ct&&ct!==void 0&&(ct.type==="exponentialRampToValue"?it.exponentialRampToValueAtTime(ct.value,ct.endTime):ct.type==="linearRampToValue"?it.linearRampToValueAtTime(ct.value,ct.endTime):ct.type==="setValue"?it.setValueAtTime(ct.value,ct.startTime):ct.type==="setValueCurve"&&it.setValueCurveAtTime(ct.values,ct.startTime,ct.duration))}return ht},cancelScheduledValues(lt){return at===null&&ot.flush(tt.context.currentTime),ot.add(d(lt)),it.cancelScheduledValues(lt),ht},exponentialRampToValueAtTime(lt,ut){if(lt===0)throw new RangeError;if(!Number.isFinite(ut)||ut<0)throw new RangeError;return at===null&&ot.flush(tt.context.currentTime),ot.add(_(lt,ut)),it.exponentialRampToValueAtTime(lt,ut),ht},linearRampToValueAtTime(lt,ut){return at===null&&ot.flush(tt.context.currentTime),ot.add(b(lt,ut)),it.linearRampToValueAtTime(lt,ut),ht},setTargetAtTime(lt,ut,ct){return at===null&&ot.flush(tt.context.currentTime),ot.add(k(lt,ut,ct)),it.setTargetAtTime(lt,ut,ct),ht},setValueAtTime(lt,ut){return at===null&&ot.flush(tt.context.currentTime),ot.add($(lt,ut)),it.setValueAtTime(lt,ut),ht},setValueCurveAtTime(lt,ut,ct){const dt=lt instanceof Float32Array?lt:new Float32Array(lt);if(_e!==null&&_e.name==="webkitAudioContext"){const ft=ut+ct,yt=tt.context.sampleRate,_t=Math.ceil(ut*yt),gt=Math.floor(ft*yt),Et=gt-_t,pt=new Float32Array(Et);for(let At=0;At({replay(e){for(const s of a)if(s.type==="exponentialRampToValue"){const{endTime:o,value:c}=s;e.exponentialRampToValueAtTime(c,o)}else if(s.type==="linearRampToValue"){const{endTime:o,value:c}=s;e.linearRampToValueAtTime(c,o)}else if(s.type==="setTarget"){const{startTime:o,target:c,timeConstant:d}=s;e.setTargetAtTime(c,o,d)}else if(s.type==="setValue"){const{startTime:o,value:c}=s;e.setValueAtTime(c,o)}else if(s.type==="setValueCurve"){const{duration:o,startTime:c,values:d}=s;e.setValueCurveAtTime(d,c,o)}else throw new Error("Can't apply an unknown automation.")}});class ReadOnlyMap{constructor(e){this._map=new Map(e)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(e,s=null){return this._map.forEach((o,c)=>e.call(s,o,c,this))}get(e){return this._map.get(e)}has(e){return this._map.has(e)}keys(){return this._map.keys()}values(){return this._map.values()}}const DEFAULT_OPTIONS$i={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},createAudioWorkletNodeConstructor=(a,e,s,o,c,d,_,b,k,$,j,_e,et,tt)=>class extends e{constructor(it,rt,st){var ot;const at=b(it),ht=k(at),lt=j(Dt(Dt({},DEFAULT_OPTIONS$i),st));et(lt);const ut=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(at),ct=ut==null?void 0:ut.get(rt),dt=ht||at.state!=="closed"?at:(ot=_(at))!==null&&ot!==void 0?ot:at,ft=c(dt,ht?null:it.baseLatency,$,rt,ct,lt),yt=ht?o(rt,lt,ct):null;super(it,!0,ft,yt);const _t=[];ft.parameters.forEach((Et,pt)=>{const mt=s(this,ht,Et);_t.push([pt,mt])}),this._nativeAudioWorkletNode=ft,this._onprocessorerror=null,this._parameters=new ReadOnlyMap(_t),ht&&a(at,this);const{activeInputs:gt}=d(this);_e(ft,gt)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(it){const rt=typeof it=="function"?tt(this,it):null;this._nativeAudioWorkletNode.onprocessorerror=rt;const st=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=st!==null&&st===rt?it:st}get parameters(){return this._parameters===null?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}};function copyFromChannel(a,e,s,o,c){if(typeof a.copyFromChannel=="function")e[s].byteLength===0&&(e[s]=new Float32Array(128)),a.copyFromChannel(e[s],o,c);else{const d=a.getChannelData(o);if(e[s].byteLength===0)e[s]=d.slice(c,c+128);else{const _=new Float32Array(d.buffer,c*Float32Array.BYTES_PER_ELEMENT,128);e[s].set(_)}}}const copyToChannel=(a,e,s,o,c)=>{typeof a.copyToChannel=="function"?e[s].byteLength!==0&&a.copyToChannel(e[s],o,c):e[s].byteLength!==0&&a.getChannelData(o).set(e[s],c)},createNestedArrays=(a,e)=>{const s=[];for(let o=0;o{const s=getValueForKey(NODE_TO_PROCESSOR_MAPS,a),o=getNativeAudioNode(e);return getValueForKey(s,o)},processBuffer=async(a,e,s,o,c,d,_)=>{const b=e===null?Math.ceil(a.context.length/128)*128:e.length,k=o.channelCount*o.numberOfInputs,$=c.reduce((rt,st)=>rt+st,0),j=$===0?null:s.createBuffer($,b,s.sampleRate);if(d===void 0)throw new Error("Missing the processor constructor.");const _e=getAudioNodeConnections(a),et=await getAudioWorkletProcessor(s,a),tt=createNestedArrays(o.numberOfInputs,o.channelCount),nt=createNestedArrays(o.numberOfOutputs,c),it=Array.from(a.parameters.keys()).reduce((rt,st)=>kt(Dt({},rt),{[st]:new Float32Array(128)}),{});for(let rt=0;rt0&&e!==null)for(let st=0;st{copyFromChannel(e,it,st,k+ot,rt)});for(let st=0;st_e.activeInputs[ht].size===0?[]:at),ot=_(rt/s.sampleRate,s.sampleRate,()=>et.process(st,nt,it));if(j!==null)for(let at=0,ht=0;at(rt,st,ot)=>{const at=new WeakMap;let ht=null;const lt=async(ut,ct)=>{let dt=j(ut),ft=null;const yt=isOwnedByContext(dt,ct),_t=Array.isArray(st.outputChannelCount)?st.outputChannelCount:Array.from(st.outputChannelCount);if(_e===null){const gt=_t.reduce((At,Ct)=>At+Ct,0),Et=c(ct,{channelCount:Math.max(1,gt),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,gt)}),pt=[];for(let At=0;At{const vt=new et(St,Math.ceil(ut.context.length/128)*128,ct.sampleRate),bt=[],xt=[];for(let It=0;It{const Ft=d(vt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:It.value});return await tt(vt,It,Ft.offset),Ft})),$t=o(vt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,Ct+Ot)});for(let It=0;Itnt(ut,vt,It))),it(vt)})(),ct,st,_t,ot,$)}const gt=await ht,Et=s(ct,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[pt,mt,At]=ft;gt!==null&&(Et.buffer=gt,Et.start(0)),Et.connect(pt);for(let Ct=0,Ot=0;Ctclass extends nt{constructor(lt,ut){super(lt,ut),this._nativeContext=lt,this._audioWorklet=a===void 0?void 0:{addModule:(ct,dt)=>a(this,ct,dt)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new e(this)}createBiquadFilter(){return new c(this)}createBuffer(lt,ut,ct){return new s({length:ut,numberOfChannels:lt,sampleRate:ct})}createBufferSource(){return new o(this)}createChannelMerger(lt=6){return new d(this,{numberOfInputs:lt})}createChannelSplitter(lt=6){return new _(this,{numberOfOutputs:lt})}createConstantSource(){return new b(this)}createConvolver(){return new k(this)}createDelay(lt=1){return new j(this,{maxDelayTime:lt})}createDynamicsCompressor(){return new _e(this)}createGain(){return new et(this)}createIIRFilter(lt,ut){return new tt(this,{feedback:ut,feedforward:lt})}createOscillator(){return new it(this)}createPanner(){return new rt(this)}createPeriodicWave(lt,ut,ct={disableNormalization:!1}){return new st(this,kt(Dt({},ct),{imag:ut,real:lt}))}createStereoPanner(){return new ot(this)}createWaveShaper(){return new at(this)}decodeAudioData(lt,ut,ct){return $(this._nativeContext,lt).then(dt=>(typeof ut=="function"&&ut(dt),dt),dt=>{throw typeof ct=="function"&&ct(dt),dt})}},DEFAULT_OPTIONS$h={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},createBiquadFilterNodeConstructor=(a,e,s,o,c,d,_,b)=>class extends a{constructor($,j){const _e=d($),et=Dt(Dt({},DEFAULT_OPTIONS$h),j),tt=c(_e,et),nt=_(_e),it=nt?s():null;super($,!1,tt,it),this._Q=e(this,nt,tt.Q,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._detune=e(this,nt,tt.detune,1200*Math.log2(MOST_POSITIVE_SINGLE_FLOAT),-1200*Math.log2(MOST_POSITIVE_SINGLE_FLOAT)),this._frequency=e(this,nt,tt.frequency,$.sampleRate/2,0),this._gain=e(this,nt,tt.gain,40*Math.log10(MOST_POSITIVE_SINGLE_FLOAT),MOST_NEGATIVE_SINGLE_FLOAT),this._nativeBiquadFilterNode=tt,b(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type($){this._nativeBiquadFilterNode.type=$}getFrequencyResponse($,j,_e){try{this._nativeBiquadFilterNode.getFrequencyResponse($,j,_e)}catch(et){throw et.code===11?o():et}if($.length!==j.length||j.length!==_e.length)throw o()}},createBiquadFilterNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={Q:$.Q.value,channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,detune:$.detune.value,frequency:$.frequency.value,gain:$.gain.value,type:$.type};$=e(k,_e)}return d.set(k,$),j?(await a(k,b.Q,$.Q),await a(k,b.detune,$.detune),await a(k,b.frequency,$.frequency),await a(k,b.gain,$.gain)):(await o(k,b.Q,$.Q),await o(k,b.detune,$.detune),await o(k,b.frequency,$.frequency),await o(k,b.gain,$.gain)),await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createCacheTestResult=(a,e)=>(s,o)=>{const c=e.get(s);if(c!==void 0)return c;const d=a.get(s);if(d!==void 0)return d;try{const _=o();return _ instanceof Promise?(a.set(s,_),_.catch(()=>!1).then(b=>(a.delete(s),e.set(s,b),b))):(e.set(s,_),_)}catch{return e.set(s,!1),!1}},DEFAULT_OPTIONS$g={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},createChannelMergerNodeConstructor=(a,e,s,o,c)=>class extends a{constructor(_,b){const k=o(_),$=Dt(Dt({},DEFAULT_OPTIONS$g),b),j=s(k,$),_e=c(k)?e():null;super(_,!1,j,_e)}},createChannelMergerNodeRendererFactory=(a,e,s)=>()=>{const o=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,numberOfInputs:b.numberOfInputs};b=a(_,$)}return o.set(_,b),await s(d,_,b),b};return{render(d,_){const b=o.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},DEFAULT_OPTIONS$f={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},createChannelSplitterNodeConstructor=(a,e,s,o,c,d)=>class extends a{constructor(b,k){const $=o(b),j=d(Dt(Dt({},DEFAULT_OPTIONS$f),k)),_e=s($,j),et=c($)?e():null;super(b,!1,_e,et)}},createChannelSplitterNodeRendererFactory=(a,e,s)=>()=>{const o=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,numberOfOutputs:b.numberOfOutputs};b=a(_,$)}return o.set(_,b),await s(d,_,b),b};return{render(d,_){const b=o.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},createConnectAudioParam=a=>(e,s,o)=>a(s,e,o),createConnectMultipleOutputs=a=>(e,s,o=0,c=0)=>{const d=e[o];if(d===void 0)throw a();return isNativeAudioNode$1(s)?d.connect(s,0,c):d.connect(s,0)},createConnectedNativeAudioBufferSourceNodeFactory=a=>(e,s)=>{const o=a(e,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),c=e.createBuffer(1,2,44100);return o.buffer=c,o.loop=!0,o.connect(s),o.start(),()=>{o.stop(),o.disconnect(s)}},DEFAULT_OPTIONS$e={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},createConstantSourceNodeConstructor=(a,e,s,o,c,d,_)=>class extends a{constructor(k,$){const j=c(k),_e=Dt(Dt({},DEFAULT_OPTIONS$e),$),et=o(j,_e),tt=d(j),nt=tt?s():null;super(k,!1,et,nt),this._constantSourceNodeRenderer=nt,this._nativeConstantSourceNode=et,this._offset=e(this,tt,et.offset,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(k){const $=typeof k=="function"?_(this,k):null;this._nativeConstantSourceNode.onended=$;const j=this._nativeConstantSourceNode.onended;this._onended=j!==null&&j===$?k:j}start(k=0){if(this._nativeConstantSourceNode.start(k),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=k),this.context.state!=="closed"){setInternalStateToActive(this);const $=()=>{this._nativeConstantSourceNode.removeEventListener("ended",$),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeConstantSourceNode.addEventListener("ended",$)}}stop(k=0){this._nativeConstantSourceNode.stop(k),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=k)}},createConstantSourceNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap;let _=null,b=null;const k=async($,j)=>{let _e=s($);const et=isOwnedByContext(_e,j);if(!et){const tt={channelCount:_e.channelCount,channelCountMode:_e.channelCountMode,channelInterpretation:_e.channelInterpretation,offset:_e.offset.value};_e=e(j,tt),_!==null&&_e.start(_),b!==null&&_e.stop(b)}return d.set(j,_e),et?await a(j,$.offset,_e.offset):await o(j,$.offset,_e.offset),await c($,j,_e),_e};return{set start($){_=$},set stop($){b=$},render($,j){const _e=d.get(j);return _e!==void 0?Promise.resolve(_e):k($,j)}}},createConvertNumberToUnsignedLong=a=>e=>(a[0]=e,a[0]),DEFAULT_OPTIONS$d={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},createConvolverNodeConstructor=(a,e,s,o,c,d)=>class extends a{constructor(b,k){const $=o(b),j=Dt(Dt({},DEFAULT_OPTIONS$d),k),_e=s($,j),tt=c($)?e():null;super(b,!1,_e,tt),this._isBufferNullified=!1,this._nativeConvolverNode=_e,j.buffer!==null&&d(this,j.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(b){if(this._nativeConvolverNode.buffer=b,b===null&&this._nativeConvolverNode.buffer!==null){const k=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=k.createBuffer(1,1,44100),this._isBufferNullified=!0,d(this,0)}else this._isBufferNullified=!1,d(this,this._nativeConvolverNode.buffer===null?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(b){this._nativeConvolverNode.normalize=b}},createConvolverNodeRendererFactory=(a,e,s)=>()=>{const o=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={buffer:b.buffer,channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,disableNormalization:!b.normalize};b=a(_,$)}return o.set(_,b),isNativeAudioNodeFaker(b)?await s(d,_,b.inputs[0]):await s(d,_,b),b};return{render(d,_){const b=o.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},createCreateNativeOfflineAudioContext=(a,e)=>(s,o,c)=>{if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new e(s,o,c)}catch(d){throw d.name==="SyntaxError"?a():d}},createDataCloneError=()=>new DOMException("","DataCloneError"),detachArrayBuffer=a=>{const{port1:e,port2:s}=new MessageChannel;return new Promise(o=>{const c=()=>{s.onmessage=null,e.close(),s.close(),o()};s.onmessage=()=>c();try{e.postMessage(a,[a])}finally{c()}})},createDecodeAudioData=(a,e,s,o,c,d,_,b,k,$,j)=>(_e,et)=>{const tt=_(_e)?_e:d(_e);if(c.has(et)){const nt=s();return Promise.reject(nt)}try{c.add(et)}catch{}return e(k,()=>k(tt))?tt.decodeAudioData(et).then(nt=>(detachArrayBuffer(et).catch(()=>{}),e(b,()=>b(nt))||j(nt),a.add(nt),nt)):new Promise((nt,it)=>{const rt=async()=>{try{await detachArrayBuffer(et)}catch{}},st=ot=>{it(ot),rt()};try{tt.decodeAudioData(et,ot=>{typeof ot.copyFromChannel!="function"&&($(ot),wrapAudioBufferGetChannelDataMethod(ot)),a.add(ot),rt().then(()=>nt(ot))},ot=>{st(ot===null?o():ot)})}catch(ot){st(ot)}})},createDecrementCycleCounter=(a,e,s,o,c,d,_,b)=>(k,$)=>{const j=e.get(k);if(j===void 0)throw new Error("Missing the expected cycle count.");const _e=d(k.context),et=b(_e);if(j===$){if(e.delete(k),!et&&_(k)){const tt=o(k),{outputs:nt}=s(k);for(const it of nt)if(isAudioNodeOutputConnection(it)){const rt=o(it[0]);a(tt,rt,it[1],it[2])}else{const rt=c(it[0]);tt.connect(rt,it[1])}}}else e.set(k,j-$)},DEFAULT_OPTIONS$c={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},createDelayNodeConstructor=(a,e,s,o,c,d,_)=>class extends a{constructor(k,$){const j=c(k),_e=Dt(Dt({},DEFAULT_OPTIONS$c),$),et=o(j,_e),tt=d(j),nt=tt?s(_e.maxDelayTime):null;super(k,!1,et,nt),this._delayTime=e(this,tt,et.delayTime),_(this,_e.maxDelayTime)}get delayTime(){return this._delayTime}},createDelayNodeRendererFactory=(a,e,s,o,c)=>d=>{const _=new WeakMap,b=async(k,$)=>{let j=s(k);const _e=isOwnedByContext(j,$);if(!_e){const et={channelCount:j.channelCount,channelCountMode:j.channelCountMode,channelInterpretation:j.channelInterpretation,delayTime:j.delayTime.value,maxDelayTime:d};j=e($,et)}return _.set($,j),_e?await a($,k.delayTime,j.delayTime):await o($,k.delayTime,j.delayTime),await c(k,$,j),j};return{render(k,$){const j=_.get($);return j!==void 0?Promise.resolve(j):b(k,$)}}},createDeleteActiveInputConnectionToAudioNode=a=>(e,s,o,c)=>a(e[c],d=>d[0]===s&&d[1]===o),createDeleteUnrenderedAudioWorkletNode=a=>(e,s)=>{a(e).delete(s)},isDelayNode=a=>"delayTime"in a,createDetectCycles=(a,e,s)=>function o(c,d){const _=isAudioNode$1(d)?d:s(a,d);if(isDelayNode(_))return[];if(c[0]===_)return[c];if(c.includes(_))return[];const{outputs:b}=e(_);return Array.from(b).map(k=>o([...c,_],k[0])).reduce((k,$)=>k.concat($),[])},getOutputAudioNodeAtIndex=(a,e,s)=>{const o=e[s];if(o===void 0)throw a();return o},createDisconnectMultipleOutputs=a=>(e,s=void 0,o=void 0,c=0)=>s===void 0?e.forEach(d=>d.disconnect()):typeof s=="number"?getOutputAudioNodeAtIndex(a,e,s).disconnect():isNativeAudioNode$1(s)?o===void 0?e.forEach(d=>d.disconnect(s)):c===void 0?getOutputAudioNodeAtIndex(a,e,o).disconnect(s,0):getOutputAudioNodeAtIndex(a,e,o).disconnect(s,0,c):o===void 0?e.forEach(d=>d.disconnect(s)):getOutputAudioNodeAtIndex(a,e,o).disconnect(s,0),DEFAULT_OPTIONS$b={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},createDynamicsCompressorNodeConstructor=(a,e,s,o,c,d,_,b)=>class extends a{constructor($,j){const _e=d($),et=Dt(Dt({},DEFAULT_OPTIONS$b),j),tt=o(_e,et),nt=_(_e),it=nt?s():null;super($,!1,tt,it),this._attack=e(this,nt,tt.attack),this._knee=e(this,nt,tt.knee),this._nativeDynamicsCompressorNode=tt,this._ratio=e(this,nt,tt.ratio),this._release=e(this,nt,tt.release),this._threshold=e(this,nt,tt.threshold),b(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount($){const j=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=$,$>2)throw this._nativeDynamicsCompressorNode.channelCount=j,c()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode($){const j=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=$,$==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=j,c()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return typeof this._nativeDynamicsCompressorNode.reduction.value=="number"?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}},createDynamicsCompressorNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={attack:$.attack.value,channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,knee:$.knee.value,ratio:$.ratio.value,release:$.release.value,threshold:$.threshold.value};$=e(k,_e)}return d.set(k,$),j?(await a(k,b.attack,$.attack),await a(k,b.knee,$.knee),await a(k,b.ratio,$.ratio),await a(k,b.release,$.release),await a(k,b.threshold,$.threshold)):(await o(k,b.attack,$.attack),await o(k,b.knee,$.knee),await o(k,b.ratio,$.ratio),await o(k,b.release,$.release),await o(k,b.threshold,$.threshold)),await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createEncodingError=()=>new DOMException("","EncodingError"),createEvaluateSource=a=>e=>new Promise((s,o)=>{if(a===null){o(new SyntaxError);return}const c=a.document.head;if(c===null)o(new SyntaxError);else{const d=a.document.createElement("script"),_=new Blob([e],{type:"application/javascript"}),b=URL.createObjectURL(_),k=a.onerror,$=()=>{a.onerror=k,URL.revokeObjectURL(b)};a.onerror=(j,_e,et,tt,nt)=>{if(_e===b||_e===a.location.href&&et===1&&tt===1)return $(),o(nt),!1;if(k!==null)return k(j,_e,et,tt,nt)},d.onerror=()=>{$(),o(new SyntaxError)},d.onload=()=>{$(),s()},d.src=b,d.type="module",c.appendChild(d)}}),createEventTargetConstructor=a=>class{constructor(s){this._nativeEventTarget=s,this._listeners=new WeakMap}addEventListener(s,o,c){if(o!==null){let d=this._listeners.get(o);d===void 0&&(d=a(this,o),typeof o=="function"&&this._listeners.set(o,d)),this._nativeEventTarget.addEventListener(s,d,c)}}dispatchEvent(s){return this._nativeEventTarget.dispatchEvent(s)}removeEventListener(s,o,c){const d=o===null?void 0:this._listeners.get(o);this._nativeEventTarget.removeEventListener(s,d===void 0?null:d,c)}},createExposeCurrentFrameAndCurrentTime=a=>(e,s,o)=>{Object.defineProperties(a,{currentFrame:{configurable:!0,get(){return Math.round(e*s)}},currentTime:{configurable:!0,get(){return e}}});try{return o()}finally{a!==null&&(delete a.currentFrame,delete a.currentTime)}},createFetchSource=a=>async e=>{try{const s=await fetch(e);if(s.ok)return[await s.text(),s.url]}catch{}throw a()},DEFAULT_OPTIONS$a={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},createGainNodeConstructor=(a,e,s,o,c,d)=>class extends a{constructor(b,k){const $=c(b),j=Dt(Dt({},DEFAULT_OPTIONS$a),k),_e=o($,j),et=d($),tt=et?s():null;super(b,!1,_e,tt),this._gain=e(this,et,_e.gain,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT)}get gain(){return this._gain}},createGainNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,gain:$.gain.value};$=e(k,_e)}return d.set(k,$),j?await a(k,b.gain,$.gain):await o(k,b.gain,$.gain),await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createGetActiveAudioWorkletNodeInputs=(a,e)=>s=>e(a,s),createGetAudioNodeRenderer=a=>e=>{const s=a(e);if(s.renderer===null)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return s.renderer},createGetAudioNodeTailTime=a=>e=>{var s;return(s=a.get(e))!==null&&s!==void 0?s:0},createGetAudioParamRenderer=a=>e=>{const s=a(e);if(s.renderer===null)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return s.renderer},createGetBackupOfflineAudioContext=a=>e=>a.get(e),createInvalidStateError=()=>new DOMException("","InvalidStateError"),createGetNativeContext=a=>e=>{const s=a.get(e);if(s===void 0)throw createInvalidStateError();return s},createGetOrCreateBackupOfflineAudioContext=(a,e)=>s=>{let o=a.get(s);if(o!==void 0)return o;if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");return o=new e(1,1,44100),a.set(s,o),o},createGetUnrenderedAudioWorkletNodes=a=>e=>{const s=a.get(e);if(s===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return s},createInvalidAccessError=()=>new DOMException("","InvalidAccessError"),wrapIIRFilterNodeGetFrequencyResponseMethod=a=>{a.getFrequencyResponse=(e=>(s,o,c)=>{if(s.length!==o.length||o.length!==c.length)throw createInvalidAccessError();return e.call(a,s,o,c)})(a.getFrequencyResponse)},DEFAULT_OPTIONS$9={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},createIIRFilterNodeConstructor=(a,e,s,o,c,d)=>class extends a{constructor(b,k){const $=o(b),j=c($),_e=Dt(Dt({},DEFAULT_OPTIONS$9),k),et=e($,j?null:b.baseLatency,_e),tt=j?s(_e.feedback,_e.feedforward):null;super(b,!1,et,tt),wrapIIRFilterNodeGetFrequencyResponseMethod(et),this._nativeIIRFilterNode=et,d(this,1)}getFrequencyResponse(b,k,$){return this._nativeIIRFilterNode.getFrequencyResponse(b,k,$)}},filterBuffer=(a,e,s,o,c,d,_,b,k,$,j)=>{const _e=$.length;let et=b;for(let tt=0;tt<_e;tt+=1){let nt=s[0]*$[tt];for(let it=1;it{const c=s instanceof Float64Array?s:new Float64Array(s),d=o instanceof Float64Array?o:new Float64Array(o),_=c.length,b=d.length,k=Math.min(_,b);if(c[0]!==1){for(let nt=0;nt<_;nt+=1)d[nt]/=c[0];for(let nt=1;nt(d,_)=>{const b=new WeakMap;let k=null;const $=async(j,_e)=>{let et=null,tt=e(j);const nt=isOwnedByContext(tt,_e);if(_e.createIIRFilter===void 0?et=a(_e,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):nt||(tt=_e.createIIRFilter(_,d)),b.set(_e,et===null?tt:et),et!==null){if(k===null){if(s===null)throw new Error("Missing the native OfflineAudioContext constructor.");const rt=new s(j.context.destination.channelCount,j.context.length,_e.sampleRate);k=(async()=>{await o(j,rt,rt.destination);const st=await c(rt);return filterFullBuffer(st,_e,d,_)})()}const it=await k;return et.buffer=it,et.start(0),et}return await o(j,_e,tt),tt};return{render(j,_e){const et=b.get(_e);return et!==void 0?Promise.resolve(et):$(j,_e)}}},createIncrementCycleCounterFactory=(a,e,s,o,c,d)=>_=>(b,k)=>{const $=a.get(b);if($===void 0){if(!_&&d(b)){const j=o(b),{outputs:_e}=s(b);for(const et of _e)if(isAudioNodeOutputConnection(et)){const tt=o(et[0]);e(j,tt,et[1],et[2])}else{const tt=c(et[0]);j.disconnect(tt,et[1])}}a.set(b,k)}else a.set(b,$+k)},createIsAnyAudioContext=(a,e)=>s=>{const o=a.get(s);return e(o)||e(s)},createIsAnyAudioNode=(a,e)=>s=>a.has(s)||e(s),createIsAnyAudioParam=(a,e)=>s=>a.has(s)||e(s),createIsAnyOfflineAudioContext=(a,e)=>s=>{const o=a.get(s);return e(o)||e(s)},createIsNativeAudioContext=a=>e=>a!==null&&e instanceof a,createIsNativeAudioNode=a=>e=>a!==null&&typeof a.AudioNode=="function"&&e instanceof a.AudioNode,createIsNativeAudioParam=a=>e=>a!==null&&typeof a.AudioParam=="function"&&e instanceof a.AudioParam,createIsNativeContext=(a,e)=>s=>a(s)||e(s),createIsNativeOfflineAudioContext=a=>e=>a!==null&&e instanceof a,createIsSecureContext=a=>a!==null&&a.isSecureContext,createIsSupportedPromise=async(a,e,s,o,c,d,_,b,k,$,j,_e,et,tt,nt,it)=>a(e,e)&&a(s,s)&&a(c,c)&&a(d,d)&&a(b,b)&&a(k,k)&&a($,$)&&a(j,j)&&a(_e,_e)&&a(et,et)&&a(tt,tt)?(await Promise.all([a(o,o),a(_,_),a(nt,nt),a(it,it)])).every(st=>st):!1,createMediaElementAudioSourceNodeConstructor=(a,e,s,o)=>class extends a{constructor(d,_){const b=s(d),k=e(b,_);if(o(b))throw TypeError();super(d,!0,k,null),this._nativeMediaElementAudioSourceNode=k}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}},DEFAULT_OPTIONS$8={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},createMediaStreamAudioDestinationNodeConstructor=(a,e,s,o)=>class extends a{constructor(d,_){const b=s(d);if(o(b))throw new TypeError;const k=Dt(Dt({},DEFAULT_OPTIONS$8),_),$=e(b,k);super(d,!1,$,null),this._nativeMediaStreamAudioDestinationNode=$}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}},createMediaStreamAudioSourceNodeConstructor=(a,e,s,o)=>class extends a{constructor(d,_){const b=s(d),k=e(b,_);if(o(b))throw new TypeError;super(d,!0,k,null),this._nativeMediaStreamAudioSourceNode=k}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}},createMediaStreamTrackAudioSourceNodeConstructor=(a,e,s)=>class extends a{constructor(c,d){const _=s(c),b=e(_,d);super(c,!0,b,null)}},createMinimalBaseAudioContextConstructor=(a,e,s,o,c,d)=>class extends s{constructor(b,k){super(b),this._nativeContext=b,CONTEXT_STORE.set(this,b),o(b)&&c.set(b,new Set),this._destination=new a(this,k),this._listener=e(this,b),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(b){const k=typeof b=="function"?d(this,b):null;this._nativeContext.onstatechange=k;const $=this._nativeContext.onstatechange;this._onstatechange=$!==null&&$===k?b:$}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}},testPromiseSupport=a=>{const e=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{const s=a.decodeAudioData(e.buffer,()=>{});return s===void 0?!1:(s.catch(()=>{}),!0)}catch{}return!1},createMonitorConnections=(a,e)=>(s,o,c)=>{const d=new Set;return s.connect=(_=>(b,k=0,$=0)=>{const j=d.size===0;if(e(b))return _.call(s,b,k,$),a(d,[b,k,$],_e=>_e[0]===b&&_e[1]===k&&_e[2]===$,!0),j&&o(),b;_.call(s,b,k),a(d,[b,k],_e=>_e[0]===b&&_e[1]===k,!0),j&&o()})(s.connect),s.disconnect=(_=>(b,k,$)=>{const j=d.size>0;if(b===void 0)_.apply(s),d.clear();else if(typeof b=="number"){_.call(s,b);for(const et of d)et[1]===b&&d.delete(et)}else{e(b)?_.call(s,b,k,$):_.call(s,b,k);for(const et of d)et[0]===b&&(k===void 0||et[1]===k)&&($===void 0||et[2]===$)&&d.delete(et)}const _e=d.size===0;j&&_e&&c()})(s.disconnect),s},assignNativeAudioNodeOption=(a,e,s)=>{const o=e[s];o!==void 0&&o!==a[s]&&(a[s]=o)},assignNativeAudioNodeOptions=(a,e)=>{assignNativeAudioNodeOption(a,e,"channelCount"),assignNativeAudioNodeOption(a,e,"channelCountMode"),assignNativeAudioNodeOption(a,e,"channelInterpretation")},testAnalyserNodeGetFloatTimeDomainDataMethodSupport=a=>typeof a.getFloatTimeDomainData=="function",wrapAnalyserNodeGetFloatTimeDomainDataMethod=a=>{a.getFloatTimeDomainData=e=>{const s=new Uint8Array(e.length);a.getByteTimeDomainData(s);const o=Math.max(s.length,a.fftSize);for(let c=0;c(s,o)=>{const c=s.createAnalyser();if(assignNativeAudioNodeOptions(c,o),!(o.maxDecibels>o.minDecibels))throw e();return assignNativeAudioNodeOption(c,o,"fftSize"),assignNativeAudioNodeOption(c,o,"maxDecibels"),assignNativeAudioNodeOption(c,o,"minDecibels"),assignNativeAudioNodeOption(c,o,"smoothingTimeConstant"),a(testAnalyserNodeGetFloatTimeDomainDataMethodSupport,()=>testAnalyserNodeGetFloatTimeDomainDataMethodSupport(c))||wrapAnalyserNodeGetFloatTimeDomainDataMethod(c),c},createNativeAudioBufferConstructor=a=>a===null?null:a.hasOwnProperty("AudioBuffer")?a.AudioBuffer:null,assignNativeAudioNodeAudioParamValue=(a,e,s)=>{const o=e[s];o!==void 0&&o!==a[s].value&&(a[s].value=o)},wrapAudioBufferSourceNodeStartMethodConsecutiveCalls=a=>{a.start=(e=>{let s=!1;return(o=0,c=0,d)=>{if(s)throw createInvalidStateError();e.call(a,o,c,d),s=!0}})(a.start)},wrapAudioScheduledSourceNodeStartMethodNegativeParameters=a=>{a.start=(e=>(s=0,o=0,c)=>{if(typeof c=="number"&&c<0||o<0||s<0)throw new RangeError("The parameters can't be negative.");e.call(a,s,o,c)})(a.start)},wrapAudioScheduledSourceNodeStopMethodNegativeParameters=a=>{a.stop=(e=>(s=0)=>{if(s<0)throw new RangeError("The parameter can't be negative.");e.call(a,s)})(a.stop)},createNativeAudioBufferSourceNodeFactory=(a,e,s,o,c,d,_,b,k,$,j)=>(_e,et)=>{const tt=_e.createBufferSource();return assignNativeAudioNodeOptions(tt,et),assignNativeAudioNodeAudioParamValue(tt,et,"playbackRate"),assignNativeAudioNodeOption(tt,et,"buffer"),assignNativeAudioNodeOption(tt,et,"loop"),assignNativeAudioNodeOption(tt,et,"loopEnd"),assignNativeAudioNodeOption(tt,et,"loopStart"),e(s,()=>s(_e))||wrapAudioBufferSourceNodeStartMethodConsecutiveCalls(tt),e(o,()=>o(_e))||k(tt),e(c,()=>c(_e))||$(tt,_e),e(d,()=>d(_e))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(tt),e(_,()=>_(_e))||j(tt,_e),e(b,()=>b(_e))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(tt),a(_e,tt),tt},createNativeAudioContextConstructor=a=>a===null?null:a.hasOwnProperty("AudioContext")?a.AudioContext:a.hasOwnProperty("webkitAudioContext")?a.webkitAudioContext:null,createNativeAudioDestinationNodeFactory=(a,e)=>(s,o,c)=>{const d=s.destination;if(d.channelCount!==o)try{d.channelCount=o}catch{}c&&d.channelCountMode!=="explicit"&&(d.channelCountMode="explicit"),d.maxChannelCount===0&&Object.defineProperty(d,"maxChannelCount",{value:o});const _=a(s,{channelCount:o,channelCountMode:d.channelCountMode,channelInterpretation:d.channelInterpretation,gain:1});return e(_,"channelCount",b=>()=>b.call(_),b=>k=>{b.call(_,k);try{d.channelCount=k}catch($){if(k>d.maxChannelCount)throw $}}),e(_,"channelCountMode",b=>()=>b.call(_),b=>k=>{b.call(_,k),d.channelCountMode=k}),e(_,"channelInterpretation",b=>()=>b.call(_),b=>k=>{b.call(_,k),d.channelInterpretation=k}),Object.defineProperty(_,"maxChannelCount",{get:()=>d.maxChannelCount}),_.connect(d),_},createNativeAudioWorkletNodeConstructor=a=>a===null?null:a.hasOwnProperty("AudioWorkletNode")?a.AudioWorkletNode:null,testClonabilityOfAudioWorkletNodeOptions=a=>{const{port1:e}=new MessageChannel;try{e.postMessage(a)}finally{e.close()}},createNativeAudioWorkletNodeFactory=(a,e,s,o,c)=>(d,_,b,k,$,j)=>{if(b!==null)try{const _e=new b(d,k,j),et=new Map;let tt=null;if(Object.defineProperties(_e,{channelCount:{get:()=>j.channelCount,set:()=>{throw a()}},channelCountMode:{get:()=>"explicit",set:()=>{throw a()}},onprocessorerror:{get:()=>tt,set:nt=>{typeof tt=="function"&&_e.removeEventListener("processorerror",tt),tt=typeof nt=="function"?nt:null,typeof tt=="function"&&_e.addEventListener("processorerror",tt)}}}),_e.addEventListener=(nt=>(...it)=>{if(it[0]==="processorerror"){const rt=typeof it[1]=="function"?it[1]:typeof it[1]=="object"&&it[1]!==null&&typeof it[1].handleEvent=="function"?it[1].handleEvent:null;if(rt!==null){const st=et.get(it[1]);st!==void 0?it[1]=st:(it[1]=ot=>{ot.type==="error"?(Object.defineProperties(ot,{type:{value:"processorerror"}}),rt(ot)):rt(new ErrorEvent(it[0],Dt({},ot)))},et.set(rt,it[1]))}}return nt.call(_e,"error",it[1],it[2]),nt.call(_e,...it)})(_e.addEventListener),_e.removeEventListener=(nt=>(...it)=>{if(it[0]==="processorerror"){const rt=et.get(it[1]);rt!==void 0&&(et.delete(it[1]),it[1]=rt)}return nt.call(_e,"error",it[1],it[2]),nt.call(_e,it[0],it[1],it[2])})(_e.removeEventListener),j.numberOfOutputs!==0){const nt=s(d,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return _e.connect(nt).connect(d.destination),c(_e,()=>nt.disconnect(),()=>nt.connect(d.destination))}return _e}catch(_e){throw _e.code===11?o():_e}if($===void 0)throw o();return testClonabilityOfAudioWorkletNodeOptions(j),e(d,_,$,j)},computeBufferSize=(a,e)=>a===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(a*e))))),cloneAudioWorkletNodeOptions=a=>new Promise((e,s)=>{const{port1:o,port2:c}=new MessageChannel;o.onmessage=({data:d})=>{o.close(),c.close(),e(d)},o.onmessageerror=({data:d})=>{o.close(),c.close(),s(d)},c.postMessage(a)}),createAudioWorkletProcessorPromise=async(a,e)=>{const s=await cloneAudioWorkletNodeOptions(e);return new a(s)},createAudioWorkletProcessor=(a,e,s,o)=>{let c=NODE_TO_PROCESSOR_MAPS.get(a);c===void 0&&(c=new WeakMap,NODE_TO_PROCESSOR_MAPS.set(a,c));const d=createAudioWorkletProcessorPromise(s,o);return c.set(e,d),d},createNativeAudioWorkletNodeFakerFactory=(a,e,s,o,c,d,_,b,k,$,j,_e,et)=>(tt,nt,it,rt)=>{if(rt.numberOfInputs===0&&rt.numberOfOutputs===0)throw k();const st=Array.isArray(rt.outputChannelCount)?rt.outputChannelCount:Array.from(rt.outputChannelCount);if(st.some(wt=>wt<1))throw k();if(st.length!==rt.numberOfOutputs)throw e();if(rt.channelCountMode!=="explicit")throw k();const ot=rt.channelCount*rt.numberOfInputs,at=st.reduce((wt,Pt)=>wt+Pt,0),ht=it.parameterDescriptors===void 0?0:it.parameterDescriptors.length;if(ot+ht>6||at>6)throw k();const lt=new MessageChannel,ut=[],ct=[];for(let wt=0;wtwt===void 0?0:wt},maxValue:{get:()=>Pt===void 0?MOST_POSITIVE_SINGLE_FLOAT:Pt},minValue:{get:()=>jt===void 0?MOST_NEGATIVE_SINGLE_FLOAT:jt}}),dt.push(Mt)}const ft=o(tt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,ot+ht)}),yt=computeBufferSize(nt,tt.sampleRate),_t=b(tt,yt,ot+ht,Math.max(1,at)),gt=c(tt,{channelCount:Math.max(1,at),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,at)}),Et=[];for(let wt=0;wt{const jt=dt[Pt];return jt.connect(ft,0,ot+Pt),jt.start(0),[wt,jt.offset]}));ft.connect(_t);let mt=rt.channelInterpretation,At=null;const Ct=rt.numberOfOutputs===0?[_t]:Et,Ot={get bufferSize(){return yt},get channelCount(){return rt.channelCount},set channelCount(wt){throw s()},get channelCountMode(){return rt.channelCountMode},set channelCountMode(wt){throw s()},get channelInterpretation(){return mt},set channelInterpretation(wt){for(const Pt of ut)Pt.channelInterpretation=wt;mt=wt},get context(){return _t.context},get inputs(){return ut},get numberOfInputs(){return rt.numberOfInputs},get numberOfOutputs(){return rt.numberOfOutputs},get onprocessorerror(){return At},set onprocessorerror(wt){typeof At=="function"&&Ot.removeEventListener("processorerror",At),At=typeof wt=="function"?wt:null,typeof At=="function"&&Ot.addEventListener("processorerror",At)},get parameters(){return pt},get port(){return lt.port2},addEventListener(...wt){return _t.addEventListener(wt[0],wt[1],wt[2])},connect:a.bind(null,Ct),disconnect:$.bind(null,Ct),dispatchEvent(...wt){return _t.dispatchEvent(wt[0])},removeEventListener(...wt){return _t.removeEventListener(wt[0],wt[1],wt[2])}},St=new Map;lt.port1.addEventListener=(wt=>(...Pt)=>{if(Pt[0]==="message"){const jt=typeof Pt[1]=="function"?Pt[1]:typeof Pt[1]=="object"&&Pt[1]!==null&&typeof Pt[1].handleEvent=="function"?Pt[1].handleEvent:null;if(jt!==null){const Lt=St.get(Pt[1]);Lt!==void 0?Pt[1]=Lt:(Pt[1]=Mt=>{j(tt.currentTime,tt.sampleRate,()=>jt(Mt))},St.set(jt,Pt[1]))}}return wt.call(lt.port1,Pt[0],Pt[1],Pt[2])})(lt.port1.addEventListener),lt.port1.removeEventListener=(wt=>(...Pt)=>{if(Pt[0]==="message"){const jt=St.get(Pt[1]);jt!==void 0&&(St.delete(Pt[1]),Pt[1]=jt)}return wt.call(lt.port1,Pt[0],Pt[1],Pt[2])})(lt.port1.removeEventListener);let Tt=null;Object.defineProperty(lt.port1,"onmessage",{get:()=>Tt,set:wt=>{typeof Tt=="function"&<.port1.removeEventListener("message",Tt),Tt=typeof wt=="function"?wt:null,typeof Tt=="function"&&(lt.port1.addEventListener("message",Tt),lt.port1.start())}}),it.prototype.port=lt.port1;let vt=null;createAudioWorkletProcessor(tt,Ot,it,rt).then(wt=>vt=wt);const xt=createNestedArrays(rt.numberOfInputs,rt.channelCount),Rt=createNestedArrays(rt.numberOfOutputs,st),$t=it.parameterDescriptors===void 0?[]:it.parameterDescriptors.reduce((wt,{name:Pt})=>kt(Dt({},wt),{[Pt]:new Float32Array(128)}),{});let It=!0;const Ft=()=>{rt.numberOfOutputs>0&&_t.disconnect(gt);for(let wt=0,Pt=0;wt{if(vt!==null){const jt=_e(Ot);for(let Lt=0;Lt{copyFromChannel(wt,$t,Mt,ot+Wt,Lt)});for(let Mt=0;Mt{if(jt[zt].size>0)return qt.set(zt,yt/128),Vt;const Xt=qt.get(zt);return Xt===void 0?[]:(Vt.every(Zt=>Zt.every(sn=>sn===0))&&(Xt===1?qt.delete(zt):qt.set(zt,Xt-1)),Vt)});It=j(tt.currentTime+Lt/tt.sampleRate,tt.sampleRate,()=>vt.process(Mt,Rt,$t));for(let Vt=0,zt=0;Vt_t.connect(Nt).connect(tt.destination),Jt=()=>{_t.disconnect(Nt),Nt.disconnect()},en=()=>{if(It){Jt(),rt.numberOfOutputs>0&&_t.connect(gt);for(let wt=0,Pt=0;wt{It&&(Kt(),Ft()),Qt=!1};return Kt(),et(Ot,en,tn)},createNativeBiquadFilterNode=(a,e)=>{const s=a.createBiquadFilter();return assignNativeAudioNodeOptions(s,e),assignNativeAudioNodeAudioParamValue(s,e,"Q"),assignNativeAudioNodeAudioParamValue(s,e,"detune"),assignNativeAudioNodeAudioParamValue(s,e,"frequency"),assignNativeAudioNodeAudioParamValue(s,e,"gain"),assignNativeAudioNodeOption(s,e,"type"),s},createNativeChannelMergerNodeFactory=(a,e)=>(s,o)=>{const c=s.createChannelMerger(o.numberOfInputs);return a!==null&&a.name==="webkitAudioContext"&&e(s,c),assignNativeAudioNodeOptions(c,o),c},wrapChannelSplitterNode=a=>{const e=a.numberOfOutputs;Object.defineProperty(a,"channelCount",{get:()=>e,set:s=>{if(s!==e)throw createInvalidStateError()}}),Object.defineProperty(a,"channelCountMode",{get:()=>"explicit",set:s=>{if(s!=="explicit")throw createInvalidStateError()}}),Object.defineProperty(a,"channelInterpretation",{get:()=>"discrete",set:s=>{if(s!=="discrete")throw createInvalidStateError()}})},createNativeChannelSplitterNode=(a,e)=>{const s=a.createChannelSplitter(e.numberOfOutputs);return assignNativeAudioNodeOptions(s,e),wrapChannelSplitterNode(s),s},createNativeConstantSourceNodeFactory=(a,e,s,o,c)=>(d,_)=>{if(d.createConstantSource===void 0)return s(d,_);const b=d.createConstantSource();return assignNativeAudioNodeOptions(b,_),assignNativeAudioNodeAudioParamValue(b,_,"offset"),e(o,()=>o(d))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(b),e(c,()=>c(d))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(b),a(d,b),b},interceptConnections=(a,e)=>(a.connect=e.connect.bind(e),a.disconnect=e.disconnect.bind(e),a),createNativeConstantSourceNodeFakerFactory=(a,e,s,o)=>(c,b)=>{var k=b,{offset:d}=k,_=dn(k,["offset"]);const $=c.createBuffer(1,2,44100),j=e(c,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),_e=s(c,kt(Dt({},_),{gain:d})),et=$.getChannelData(0);et[0]=1,et[1]=1,j.buffer=$,j.loop=!0;const tt={get bufferSize(){},get channelCount(){return _e.channelCount},set channelCount(rt){_e.channelCount=rt},get channelCountMode(){return _e.channelCountMode},set channelCountMode(rt){_e.channelCountMode=rt},get channelInterpretation(){return _e.channelInterpretation},set channelInterpretation(rt){_e.channelInterpretation=rt},get context(){return _e.context},get inputs(){return[]},get numberOfInputs(){return j.numberOfInputs},get numberOfOutputs(){return _e.numberOfOutputs},get offset(){return _e.gain},get onended(){return j.onended},set onended(rt){j.onended=rt},addEventListener(...rt){return j.addEventListener(rt[0],rt[1],rt[2])},dispatchEvent(...rt){return j.dispatchEvent(rt[0])},removeEventListener(...rt){return j.removeEventListener(rt[0],rt[1],rt[2])},start(rt=0){j.start.call(j,rt)},stop(rt=0){j.stop.call(j,rt)}},nt=()=>j.connect(_e),it=()=>j.disconnect(_e);return a(c,j),o(interceptConnections(tt,_e),nt,it)},createNativeConvolverNodeFactory=(a,e)=>(s,o)=>{const c=s.createConvolver();if(assignNativeAudioNodeOptions(c,o),o.disableNormalization===c.normalize&&(c.normalize=!o.disableNormalization),assignNativeAudioNodeOption(c,o,"buffer"),o.channelCount>2||(e(c,"channelCount",d=>()=>d.call(c),d=>_=>{if(_>2)throw a();return d.call(c,_)}),o.channelCountMode==="max"))throw a();return e(c,"channelCountMode",d=>()=>d.call(c),d=>_=>{if(_==="max")throw a();return d.call(c,_)}),c},createNativeDelayNode=(a,e)=>{const s=a.createDelay(e.maxDelayTime);return assignNativeAudioNodeOptions(s,e),assignNativeAudioNodeAudioParamValue(s,e,"delayTime"),s},createNativeDynamicsCompressorNodeFactory=a=>(e,s)=>{const o=e.createDynamicsCompressor();if(assignNativeAudioNodeOptions(o,s),s.channelCount>2||s.channelCountMode==="max")throw a();return assignNativeAudioNodeAudioParamValue(o,s,"attack"),assignNativeAudioNodeAudioParamValue(o,s,"knee"),assignNativeAudioNodeAudioParamValue(o,s,"ratio"),assignNativeAudioNodeAudioParamValue(o,s,"release"),assignNativeAudioNodeAudioParamValue(o,s,"threshold"),o},createNativeGainNode=(a,e)=>{const s=a.createGain();return assignNativeAudioNodeOptions(s,e),assignNativeAudioNodeAudioParamValue(s,e,"gain"),s},createNativeIIRFilterNodeFactory=a=>(e,s,o)=>{if(e.createIIRFilter===void 0)return a(e,s,o);const c=e.createIIRFilter(o.feedforward,o.feedback);return assignNativeAudioNodeOptions(c,o),c};function divide(a,e){const s=e[0]*e[0]+e[1]*e[1];return[(a[0]*e[0]+a[1]*e[1])/s,(a[1]*e[0]-a[0]*e[1])/s]}function multiply(a,e){return[a[0]*e[0]-a[1]*e[1],a[0]*e[1]+a[1]*e[0]]}function evaluatePolynomial(a,e){let s=[0,0];for(let o=a.length-1;o>=0;o-=1)s=multiply(s,e),s[0]+=a[o];return s}const createNativeIIRFilterNodeFakerFactory=(a,e,s,o)=>(c,d,{channelCount:_,channelCountMode:b,channelInterpretation:k,feedback:$,feedforward:j})=>{const _e=computeBufferSize(d,c.sampleRate),et=$ instanceof Float64Array?$:new Float64Array($),tt=j instanceof Float64Array?j:new Float64Array(j),nt=et.length,it=tt.length,rt=Math.min(nt,it);if(nt===0||nt>20)throw o();if(et[0]===0)throw e();if(it===0||it>20)throw o();if(tt[0]===0)throw e();if(et[0]!==1){for(let dt=0;dt{const ft=dt.inputBuffer,yt=dt.outputBuffer,_t=ft.numberOfChannels;for(let gt=0;gt<_t;gt+=1){const Et=ft.getChannelData(gt),pt=yt.getChannelData(gt);at[gt]=filterBuffer(et,nt,tt,it,rt,ht[gt],lt[gt],at[gt],ot,Et,pt)}};const ut=c.sampleRate/2;return interceptConnections({get bufferSize(){return _e},get channelCount(){return st.channelCount},set channelCount(dt){st.channelCount=dt},get channelCountMode(){return st.channelCountMode},set channelCountMode(dt){st.channelCountMode=dt},get channelInterpretation(){return st.channelInterpretation},set channelInterpretation(dt){st.channelInterpretation=dt},get context(){return st.context},get inputs(){return[st]},get numberOfInputs(){return st.numberOfInputs},get numberOfOutputs(){return st.numberOfOutputs},addEventListener(...dt){return st.addEventListener(dt[0],dt[1],dt[2])},dispatchEvent(...dt){return st.dispatchEvent(dt[0])},getFrequencyResponse(dt,ft,yt){if(dt.length!==ft.length||ft.length!==yt.length)throw a();const _t=dt.length;for(let gt=0;gt<_t;gt+=1){const Et=-Math.PI*(dt[gt]/ut),pt=[Math.cos(Et),Math.sin(Et)],mt=evaluatePolynomial(tt,pt),At=evaluatePolynomial(et,pt),Ct=divide(mt,At);ft[gt]=Math.sqrt(Ct[0]*Ct[0]+Ct[1]*Ct[1]),yt[gt]=Math.atan2(Ct[1],Ct[0])}},removeEventListener(...dt){return st.removeEventListener(dt[0],dt[1],dt[2])}},st)},createNativeMediaElementAudioSourceNode=(a,e)=>a.createMediaElementSource(e.mediaElement),createNativeMediaStreamAudioDestinationNode=(a,e)=>{const s=a.createMediaStreamDestination();return assignNativeAudioNodeOptions(s,e),s.numberOfOutputs===1&&Object.defineProperty(s,"numberOfOutputs",{get:()=>0}),s},createNativeMediaStreamAudioSourceNode=(a,{mediaStream:e})=>{const s=e.getAudioTracks();s.sort((d,_)=>d.id<_.id?-1:d.id>_.id?1:0);const o=s.slice(0,1),c=a.createMediaStreamSource(new MediaStream(o));return Object.defineProperty(c,"mediaStream",{value:e}),c},createNativeMediaStreamTrackAudioSourceNodeFactory=(a,e)=>(s,{mediaStreamTrack:o})=>{if(typeof s.createMediaStreamTrackSource=="function")return s.createMediaStreamTrackSource(o);const c=new MediaStream([o]),d=s.createMediaStreamSource(c);if(o.kind!=="audio")throw a();if(e(s))throw new TypeError;return d},createNativeOfflineAudioContextConstructor=a=>a===null?null:a.hasOwnProperty("OfflineAudioContext")?a.OfflineAudioContext:a.hasOwnProperty("webkitOfflineAudioContext")?a.webkitOfflineAudioContext:null,createNativeOscillatorNodeFactory=(a,e,s,o,c,d)=>(_,b)=>{const k=_.createOscillator();return assignNativeAudioNodeOptions(k,b),assignNativeAudioNodeAudioParamValue(k,b,"detune"),assignNativeAudioNodeAudioParamValue(k,b,"frequency"),b.periodicWave!==void 0?k.setPeriodicWave(b.periodicWave):assignNativeAudioNodeOption(k,b,"type"),e(s,()=>s(_))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(k),e(o,()=>o(_))||d(k,_),e(c,()=>c(_))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(k),a(_,k),k},createNativePannerNodeFactory=a=>(e,s)=>{const o=e.createPanner();return o.orientationX===void 0?a(e,s):(assignNativeAudioNodeOptions(o,s),assignNativeAudioNodeAudioParamValue(o,s,"orientationX"),assignNativeAudioNodeAudioParamValue(o,s,"orientationY"),assignNativeAudioNodeAudioParamValue(o,s,"orientationZ"),assignNativeAudioNodeAudioParamValue(o,s,"positionX"),assignNativeAudioNodeAudioParamValue(o,s,"positionY"),assignNativeAudioNodeAudioParamValue(o,s,"positionZ"),assignNativeAudioNodeOption(o,s,"coneInnerAngle"),assignNativeAudioNodeOption(o,s,"coneOuterAngle"),assignNativeAudioNodeOption(o,s,"coneOuterGain"),assignNativeAudioNodeOption(o,s,"distanceModel"),assignNativeAudioNodeOption(o,s,"maxDistance"),assignNativeAudioNodeOption(o,s,"panningModel"),assignNativeAudioNodeOption(o,s,"refDistance"),assignNativeAudioNodeOption(o,s,"rolloffFactor"),o)},createNativePannerNodeFakerFactory=(a,e,s,o,c,d,_,b,k,$)=>(j,yt)=>{var _t=yt,{coneInnerAngle:_e,coneOuterAngle:et,coneOuterGain:tt,distanceModel:nt,maxDistance:it,orientationX:rt,orientationY:st,orientationZ:ot,panningModel:at,positionX:ht,positionY:lt,positionZ:ut,refDistance:ct,rolloffFactor:dt}=_t,ft=dn(_t,["coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","orientationX","orientationY","orientationZ","panningModel","positionX","positionY","positionZ","refDistance","rolloffFactor"]);const gt=j.createPanner();if(ft.channelCount>2||ft.channelCountMode==="max")throw _();assignNativeAudioNodeOptions(gt,ft);const Et={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},pt=s(j,kt(Dt({},Et),{channelInterpretation:"speakers",numberOfInputs:6})),mt=o(j,kt(Dt({},ft),{gain:1})),At=o(j,kt(Dt({},Et),{gain:1})),Ct=o(j,kt(Dt({},Et),{gain:0})),Ot=o(j,kt(Dt({},Et),{gain:0})),St=o(j,kt(Dt({},Et),{gain:0})),Tt=o(j,kt(Dt({},Et),{gain:0})),vt=o(j,kt(Dt({},Et),{gain:0})),bt=c(j,256,6,1),xt=d(j,kt(Dt({},Et),{curve:new Float32Array([1,1]),oversample:"none"}));let Rt=[rt,st,ot],$t=[ht,lt,ut];const It=new Float32Array(1);bt.onaudioprocess=({inputBuffer:Nt})=>{const Kt=[k(Nt,It,0),k(Nt,It,1),k(Nt,It,2)];Kt.some((en,tn)=>en!==Rt[tn])&&(gt.setOrientation(...Kt),Rt=Kt);const Jt=[k(Nt,It,3),k(Nt,It,4),k(Nt,It,5)];Jt.some((en,tn)=>en!==$t[tn])&&(gt.setPosition(...Jt),$t=Jt)},Object.defineProperty(Ct.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Ot.gain,"defaultValue",{get:()=>0}),Object.defineProperty(St.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Tt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(vt.gain,"defaultValue",{get:()=>0});const Ft={get bufferSize(){},get channelCount(){return gt.channelCount},set channelCount(Nt){if(Nt>2)throw _();mt.channelCount=Nt,gt.channelCount=Nt},get channelCountMode(){return gt.channelCountMode},set channelCountMode(Nt){if(Nt==="max")throw _();mt.channelCountMode=Nt,gt.channelCountMode=Nt},get channelInterpretation(){return gt.channelInterpretation},set channelInterpretation(Nt){mt.channelInterpretation=Nt,gt.channelInterpretation=Nt},get coneInnerAngle(){return gt.coneInnerAngle},set coneInnerAngle(Nt){gt.coneInnerAngle=Nt},get coneOuterAngle(){return gt.coneOuterAngle},set coneOuterAngle(Nt){gt.coneOuterAngle=Nt},get coneOuterGain(){return gt.coneOuterGain},set coneOuterGain(Nt){if(Nt<0||Nt>1)throw e();gt.coneOuterGain=Nt},get context(){return gt.context},get distanceModel(){return gt.distanceModel},set distanceModel(Nt){gt.distanceModel=Nt},get inputs(){return[mt]},get maxDistance(){return gt.maxDistance},set maxDistance(Nt){if(Nt<0)throw new RangeError;gt.maxDistance=Nt},get numberOfInputs(){return gt.numberOfInputs},get numberOfOutputs(){return gt.numberOfOutputs},get orientationX(){return At.gain},get orientationY(){return Ct.gain},get orientationZ(){return Ot.gain},get panningModel(){return gt.panningModel},set panningModel(Nt){gt.panningModel=Nt},get positionX(){return St.gain},get positionY(){return Tt.gain},get positionZ(){return vt.gain},get refDistance(){return gt.refDistance},set refDistance(Nt){if(Nt<0)throw new RangeError;gt.refDistance=Nt},get rolloffFactor(){return gt.rolloffFactor},set rolloffFactor(Nt){if(Nt<0)throw new RangeError;gt.rolloffFactor=Nt},addEventListener(...Nt){return mt.addEventListener(Nt[0],Nt[1],Nt[2])},dispatchEvent(...Nt){return mt.dispatchEvent(Nt[0])},removeEventListener(...Nt){return mt.removeEventListener(Nt[0],Nt[1],Nt[2])}};_e!==Ft.coneInnerAngle&&(Ft.coneInnerAngle=_e),et!==Ft.coneOuterAngle&&(Ft.coneOuterAngle=et),tt!==Ft.coneOuterGain&&(Ft.coneOuterGain=tt),nt!==Ft.distanceModel&&(Ft.distanceModel=nt),it!==Ft.maxDistance&&(Ft.maxDistance=it),rt!==Ft.orientationX.value&&(Ft.orientationX.value=rt),st!==Ft.orientationY.value&&(Ft.orientationY.value=st),ot!==Ft.orientationZ.value&&(Ft.orientationZ.value=ot),at!==Ft.panningModel&&(Ft.panningModel=at),ht!==Ft.positionX.value&&(Ft.positionX.value=ht),lt!==Ft.positionY.value&&(Ft.positionY.value=lt),ut!==Ft.positionZ.value&&(Ft.positionZ.value=ut),ct!==Ft.refDistance&&(Ft.refDistance=ct),dt!==Ft.rolloffFactor&&(Ft.rolloffFactor=dt),(Rt[0]!==1||Rt[1]!==0||Rt[2]!==0)&>.setOrientation(...Rt),($t[0]!==0||$t[1]!==0||$t[2]!==0)&>.setPosition(...$t);const qt=()=>{mt.connect(gt),a(mt,xt,0,0),xt.connect(At).connect(pt,0,0),xt.connect(Ct).connect(pt,0,1),xt.connect(Ot).connect(pt,0,2),xt.connect(St).connect(pt,0,3),xt.connect(Tt).connect(pt,0,4),xt.connect(vt).connect(pt,0,5),pt.connect(bt).connect(j.destination)},Qt=()=>{mt.disconnect(gt),b(mt,xt,0,0),xt.disconnect(At),At.disconnect(pt),xt.disconnect(Ct),Ct.disconnect(pt),xt.disconnect(Ot),Ot.disconnect(pt),xt.disconnect(St),St.disconnect(pt),xt.disconnect(Tt),Tt.disconnect(pt),xt.disconnect(vt),vt.disconnect(pt),pt.disconnect(bt),bt.disconnect(j.destination)};return $(interceptConnections(Ft,gt),qt,Qt)},createNativePeriodicWaveFactory=a=>(e,{disableNormalization:s,imag:o,real:c})=>{const d=o instanceof Float32Array?o:new Float32Array(o),_=c instanceof Float32Array?c:new Float32Array(c),b=e.createPeriodicWave(_,d,{disableNormalization:s});if(Array.from(o).length<2)throw a();return b},createNativeScriptProcessorNode=(a,e,s,o)=>a.createScriptProcessor(e,s,o),createNativeStereoPannerNodeFactory=(a,e)=>(s,o)=>{const c=o.channelCountMode;if(c==="clamped-max")throw e();if(s.createStereoPanner===void 0)return a(s,o);const d=s.createStereoPanner();return assignNativeAudioNodeOptions(d,o),assignNativeAudioNodeAudioParamValue(d,o,"pan"),Object.defineProperty(d,"channelCountMode",{get:()=>c,set:_=>{if(_!==c)throw e()}}),d},createNativeStereoPannerNodeFakerFactory=(a,e,s,o,c,d)=>{const b=new Float32Array([1,1]),k=Math.PI/2,$={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},j=kt(Dt({},$),{oversample:"none"}),_e=(nt,it,rt,st)=>{const ot=new Float32Array(16385),at=new Float32Array(16385);for(let ft=0;ft<16385;ft+=1){const yt=ft/16384*k;ot[ft]=Math.cos(yt),at[ft]=Math.sin(yt)}const ht=s(nt,kt(Dt({},$),{gain:0})),lt=o(nt,kt(Dt({},j),{curve:ot})),ut=o(nt,kt(Dt({},j),{curve:b})),ct=s(nt,kt(Dt({},$),{gain:0})),dt=o(nt,kt(Dt({},j),{curve:at}));return{connectGraph(){it.connect(ht),it.connect(ut.inputs===void 0?ut:ut.inputs[0]),it.connect(ct),ut.connect(rt),rt.connect(lt.inputs===void 0?lt:lt.inputs[0]),rt.connect(dt.inputs===void 0?dt:dt.inputs[0]),lt.connect(ht.gain),dt.connect(ct.gain),ht.connect(st,0,0),ct.connect(st,0,1)},disconnectGraph(){it.disconnect(ht),it.disconnect(ut.inputs===void 0?ut:ut.inputs[0]),it.disconnect(ct),ut.disconnect(rt),rt.disconnect(lt.inputs===void 0?lt:lt.inputs[0]),rt.disconnect(dt.inputs===void 0?dt:dt.inputs[0]),lt.disconnect(ht.gain),dt.disconnect(ct.gain),ht.disconnect(st,0,0),ct.disconnect(st,0,1)}}},et=(nt,it,rt,st)=>{const ot=new Float32Array(16385),at=new Float32Array(16385),ht=new Float32Array(16385),lt=new Float32Array(16385),ut=Math.floor(16385/2);for(let Ct=0;Ct<16385;Ct+=1)if(Ct>ut){const Ot=(Ct-ut)/(16384-ut)*k;ot[Ct]=Math.cos(Ot),at[Ct]=Math.sin(Ot),ht[Ct]=0,lt[Ct]=1}else{const Ot=Ct/(16384-ut)*k;ot[Ct]=1,at[Ct]=0,ht[Ct]=Math.cos(Ot),lt[Ct]=Math.sin(Ot)}const ct=e(nt,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),dt=s(nt,kt(Dt({},$),{gain:0})),ft=o(nt,kt(Dt({},j),{curve:ot})),yt=s(nt,kt(Dt({},$),{gain:0})),_t=o(nt,kt(Dt({},j),{curve:at})),gt=o(nt,kt(Dt({},j),{curve:b})),Et=s(nt,kt(Dt({},$),{gain:0})),pt=o(nt,kt(Dt({},j),{curve:ht})),mt=s(nt,kt(Dt({},$),{gain:0})),At=o(nt,kt(Dt({},j),{curve:lt}));return{connectGraph(){it.connect(ct),it.connect(gt.inputs===void 0?gt:gt.inputs[0]),ct.connect(dt,0),ct.connect(yt,0),ct.connect(Et,1),ct.connect(mt,1),gt.connect(rt),rt.connect(ft.inputs===void 0?ft:ft.inputs[0]),rt.connect(_t.inputs===void 0?_t:_t.inputs[0]),rt.connect(pt.inputs===void 0?pt:pt.inputs[0]),rt.connect(At.inputs===void 0?At:At.inputs[0]),ft.connect(dt.gain),_t.connect(yt.gain),pt.connect(Et.gain),At.connect(mt.gain),dt.connect(st,0,0),Et.connect(st,0,0),yt.connect(st,0,1),mt.connect(st,0,1)},disconnectGraph(){it.disconnect(ct),it.disconnect(gt.inputs===void 0?gt:gt.inputs[0]),ct.disconnect(dt,0),ct.disconnect(yt,0),ct.disconnect(Et,1),ct.disconnect(mt,1),gt.disconnect(rt),rt.disconnect(ft.inputs===void 0?ft:ft.inputs[0]),rt.disconnect(_t.inputs===void 0?_t:_t.inputs[0]),rt.disconnect(pt.inputs===void 0?pt:pt.inputs[0]),rt.disconnect(At.inputs===void 0?At:At.inputs[0]),ft.disconnect(dt.gain),_t.disconnect(yt.gain),pt.disconnect(Et.gain),At.disconnect(mt.gain),dt.disconnect(st,0,0),Et.disconnect(st,0,0),yt.disconnect(st,0,1),mt.disconnect(st,0,1)}}},tt=(nt,it,rt,st,ot)=>{if(it===1)return _e(nt,rt,st,ot);if(it===2)return et(nt,rt,st,ot);throw c()};return(nt,at)=>{var ht=at,{channelCount:it,channelCountMode:rt,pan:st}=ht,ot=dn(ht,["channelCount","channelCountMode","pan"]);if(rt==="max")throw c();const lt=a(nt,kt(Dt({},ot),{channelCount:1,channelCountMode:rt,numberOfInputs:2})),ut=s(nt,kt(Dt({},ot),{channelCount:it,channelCountMode:rt,gain:1})),ct=s(nt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:st});let{connectGraph:dt,disconnectGraph:ft}=tt(nt,it,ut,ct,lt);Object.defineProperty(ct.gain,"defaultValue",{get:()=>0}),Object.defineProperty(ct.gain,"maxValue",{get:()=>1}),Object.defineProperty(ct.gain,"minValue",{get:()=>-1});const yt={get bufferSize(){},get channelCount(){return ut.channelCount},set channelCount(pt){ut.channelCount!==pt&&(_t&&ft(),{connectGraph:dt,disconnectGraph:ft}=tt(nt,pt,ut,ct,lt),_t&&dt()),ut.channelCount=pt},get channelCountMode(){return ut.channelCountMode},set channelCountMode(pt){if(pt==="clamped-max"||pt==="max")throw c();ut.channelCountMode=pt},get channelInterpretation(){return ut.channelInterpretation},set channelInterpretation(pt){ut.channelInterpretation=pt},get context(){return ut.context},get inputs(){return[ut]},get numberOfInputs(){return ut.numberOfInputs},get numberOfOutputs(){return ut.numberOfOutputs},get pan(){return ct.gain},addEventListener(...pt){return ut.addEventListener(pt[0],pt[1],pt[2])},dispatchEvent(...pt){return ut.dispatchEvent(pt[0])},removeEventListener(...pt){return ut.removeEventListener(pt[0],pt[1],pt[2])}};let _t=!1;const gt=()=>{dt(),_t=!0},Et=()=>{ft(),_t=!1};return d(interceptConnections(yt,lt),gt,Et)}},createNativeWaveShaperNodeFactory=(a,e,s,o,c,d,_)=>(b,k)=>{const $=b.createWaveShaper();if(d!==null&&d.name==="webkitAudioContext"&&b.createGain().gain.automationRate===void 0)return s(b,k);assignNativeAudioNodeOptions($,k);const j=k.curve===null||k.curve instanceof Float32Array?k.curve:new Float32Array(k.curve);if(j!==null&&j.length<2)throw e();assignNativeAudioNodeOption($,{curve:j},"curve"),assignNativeAudioNodeOption($,k,"oversample");let _e=null,et=!1;return _($,"curve",it=>()=>it.call($),it=>rt=>(it.call($,rt),et&&(o(rt)&&_e===null?_e=a(b,$):!o(rt)&&_e!==null&&(_e(),_e=null)),rt)),c($,()=>{et=!0,o($.curve)&&(_e=a(b,$))},()=>{et=!1,_e!==null&&(_e(),_e=null)})},createNativeWaveShaperNodeFakerFactory=(a,e,s,o,c)=>(d,$)=>{var j=$,{curve:_,oversample:b}=j,k=dn(j,["curve","oversample"]);const _e=d.createWaveShaper(),et=d.createWaveShaper();assignNativeAudioNodeOptions(_e,k),assignNativeAudioNodeOptions(et,k);const tt=s(d,kt(Dt({},k),{gain:1})),nt=s(d,kt(Dt({},k),{gain:-1})),it=s(d,kt(Dt({},k),{gain:1})),rt=s(d,kt(Dt({},k),{gain:-1}));let st=null,ot=!1,at=null;const ht={get bufferSize(){},get channelCount(){return _e.channelCount},set channelCount(ct){tt.channelCount=ct,nt.channelCount=ct,_e.channelCount=ct,it.channelCount=ct,et.channelCount=ct,rt.channelCount=ct},get channelCountMode(){return _e.channelCountMode},set channelCountMode(ct){tt.channelCountMode=ct,nt.channelCountMode=ct,_e.channelCountMode=ct,it.channelCountMode=ct,et.channelCountMode=ct,rt.channelCountMode=ct},get channelInterpretation(){return _e.channelInterpretation},set channelInterpretation(ct){tt.channelInterpretation=ct,nt.channelInterpretation=ct,_e.channelInterpretation=ct,it.channelInterpretation=ct,et.channelInterpretation=ct,rt.channelInterpretation=ct},get context(){return _e.context},get curve(){return at},set curve(ct){if(ct!==null&&ct.length<2)throw e();if(ct===null)_e.curve=ct,et.curve=ct;else{const dt=ct.length,ft=new Float32Array(dt+2-dt%2),yt=new Float32Array(dt+2-dt%2);ft[0]=ct[0],yt[0]=-ct[dt-1];const _t=Math.ceil((dt+1)/2),gt=(dt+1)/2-1;for(let Et=1;Et<_t;Et+=1){const pt=Et/_t*gt,mt=Math.floor(pt),At=Math.ceil(pt);ft[Et]=mt===At?ct[mt]:(1-(pt-mt))*ct[mt]+(1-(At-pt))*ct[At],yt[Et]=mt===At?-ct[dt-1-mt]:-((1-(pt-mt))*ct[dt-1-mt])-(1-(At-pt))*ct[dt-1-At]}ft[_t]=dt%2===1?ct[_t-1]:(ct[_t-2]+ct[_t-1])/2,_e.curve=ft,et.curve=yt}at=ct,ot&&(o(at)&&st===null?st=a(d,tt):st!==null&&(st(),st=null))},get inputs(){return[tt]},get numberOfInputs(){return _e.numberOfInputs},get numberOfOutputs(){return _e.numberOfOutputs},get oversample(){return _e.oversample},set oversample(ct){_e.oversample=ct,et.oversample=ct},addEventListener(...ct){return tt.addEventListener(ct[0],ct[1],ct[2])},dispatchEvent(...ct){return tt.dispatchEvent(ct[0])},removeEventListener(...ct){return tt.removeEventListener(ct[0],ct[1],ct[2])}};_!==null&&(ht.curve=_ instanceof Float32Array?_:new Float32Array(_)),b!==ht.oversample&&(ht.oversample=b);const lt=()=>{tt.connect(_e).connect(it),tt.connect(nt).connect(et).connect(rt).connect(it),ot=!0,o(at)&&(st=a(d,tt))},ut=()=>{tt.disconnect(_e),_e.disconnect(it),tt.disconnect(nt),nt.disconnect(et),et.disconnect(rt),rt.disconnect(it),ot=!1,st!==null&&(st(),st=null)};return c(interceptConnections(ht,it),lt,ut)},createNotSupportedError=()=>new DOMException("","NotSupportedError"),DEFAULT_OPTIONS$7={numberOfChannels:1},createOfflineAudioContextConstructor=(a,e,s,o,c)=>class extends a{constructor(_,b,k){let $;if(typeof _=="number"&&b!==void 0&&k!==void 0)$={length:b,numberOfChannels:_,sampleRate:k};else if(typeof _=="object")$=_;else throw new Error("The given parameters are not valid.");const{length:j,numberOfChannels:_e,sampleRate:et}=Dt(Dt({},DEFAULT_OPTIONS$7),$),tt=o(_e,j,et);e(testPromiseSupport,()=>testPromiseSupport(tt))||tt.addEventListener("statechange",(()=>{let nt=0;const it=rt=>{this._state==="running"&&(nt>0?(tt.removeEventListener("statechange",it),rt.stopImmediatePropagation(),this._waitForThePromiseToSettle(rt)):nt+=1)};return it})()),super(tt,_e),this._length=j,this._nativeOfflineAudioContext=tt,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(s()):(this._state="running",c(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,deactivateAudioGraph(this)}))}_waitForThePromiseToSettle(_){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(_):setTimeout(()=>this._waitForThePromiseToSettle(_))}},DEFAULT_OPTIONS$6={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},createOscillatorNodeConstructor=(a,e,s,o,c,d,_)=>class extends a{constructor(k,$){const j=c(k),_e=Dt(Dt({},DEFAULT_OPTIONS$6),$),et=s(j,_e),tt=d(j),nt=tt?o():null,it=k.sampleRate/2;super(k,!1,et,nt),this._detune=e(this,tt,et.detune,153600,-153600),this._frequency=e(this,tt,et.frequency,it,-it),this._nativeOscillatorNode=et,this._onended=null,this._oscillatorNodeRenderer=nt,this._oscillatorNodeRenderer!==null&&_e.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=_e.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(k){const $=typeof k=="function"?_(this,k):null;this._nativeOscillatorNode.onended=$;const j=this._nativeOscillatorNode.onended;this._onended=j!==null&&j===$?k:j}get type(){return this._nativeOscillatorNode.type}set type(k){this._nativeOscillatorNode.type=k,this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(k){this._nativeOscillatorNode.setPeriodicWave(k),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=k)}start(k=0){if(this._nativeOscillatorNode.start(k),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.start=k),this.context.state!=="closed"){setInternalStateToActive(this);const $=()=>{this._nativeOscillatorNode.removeEventListener("ended",$),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeOscillatorNode.addEventListener("ended",$)}}stop(k=0){this._nativeOscillatorNode.stop(k),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=k)}},createOscillatorNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap;let _=null,b=null,k=null;const $=async(j,_e)=>{let et=s(j);const tt=isOwnedByContext(et,_e);if(!tt){const nt={channelCount:et.channelCount,channelCountMode:et.channelCountMode,channelInterpretation:et.channelInterpretation,detune:et.detune.value,frequency:et.frequency.value,periodicWave:_===null?void 0:_,type:et.type};et=e(_e,nt),b!==null&&et.start(b),k!==null&&et.stop(k)}return d.set(_e,et),tt?(await a(_e,j.detune,et.detune),await a(_e,j.frequency,et.frequency)):(await o(_e,j.detune,et.detune),await o(_e,j.frequency,et.frequency)),await c(j,_e,et),et};return{set periodicWave(j){_=j},set start(j){b=j},set stop(j){k=j},render(j,_e){const et=d.get(_e);return et!==void 0?Promise.resolve(et):$(j,_e)}}},DEFAULT_OPTIONS$5={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},createPannerNodeConstructor=(a,e,s,o,c,d,_)=>class extends a{constructor(k,$){const j=c(k),_e=Dt(Dt({},DEFAULT_OPTIONS$5),$),et=s(j,_e),tt=d(j),nt=tt?o():null;super(k,!1,et,nt),this._nativePannerNode=et,this._orientationX=e(this,tt,et.orientationX,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._orientationY=e(this,tt,et.orientationY,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._orientationZ=e(this,tt,et.orientationZ,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionX=e(this,tt,et.positionX,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionY=e(this,tt,et.positionY,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionZ=e(this,tt,et.positionZ,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),_(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(k){this._nativePannerNode.coneInnerAngle=k}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(k){this._nativePannerNode.coneOuterAngle=k}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(k){this._nativePannerNode.coneOuterGain=k}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(k){this._nativePannerNode.distanceModel=k}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(k){this._nativePannerNode.maxDistance=k}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(k){this._nativePannerNode.panningModel=k}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(k){this._nativePannerNode.refDistance=k}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(k){this._nativePannerNode.rolloffFactor=k}},createPannerNodeRendererFactory=(a,e,s,o,c,d,_,b,k,$)=>()=>{const j=new WeakMap;let _e=null;const et=async(tt,nt)=>{let it=null,rt=d(tt);const st={channelCount:rt.channelCount,channelCountMode:rt.channelCountMode,channelInterpretation:rt.channelInterpretation},ot=kt(Dt({},st),{coneInnerAngle:rt.coneInnerAngle,coneOuterAngle:rt.coneOuterAngle,coneOuterGain:rt.coneOuterGain,distanceModel:rt.distanceModel,maxDistance:rt.maxDistance,panningModel:rt.panningModel,refDistance:rt.refDistance,rolloffFactor:rt.rolloffFactor}),at=isOwnedByContext(rt,nt);if("bufferSize"in rt)it=o(nt,kt(Dt({},st),{gain:1}));else if(!at){const ht=kt(Dt({},ot),{orientationX:rt.orientationX.value,orientationY:rt.orientationY.value,orientationZ:rt.orientationZ.value,positionX:rt.positionX.value,positionY:rt.positionY.value,positionZ:rt.positionZ.value});rt=c(nt,ht)}if(j.set(nt,it===null?rt:it),it!==null){if(_e===null){if(_===null)throw new Error("Missing the native OfflineAudioContext constructor.");const _t=new _(6,tt.context.length,nt.sampleRate),gt=e(_t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});gt.connect(_t.destination),_e=(async()=>{const Et=await Promise.all([tt.orientationX,tt.orientationY,tt.orientationZ,tt.positionX,tt.positionY,tt.positionZ].map(async(pt,mt)=>{const At=s(_t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:mt===0?1:0});return await b(_t,pt,At.offset),At}));for(let pt=0;pt<6;pt+=1)Et[pt].connect(gt,0,pt),Et[pt].start(0);return $(_t)})()}const ht=await _e,lt=o(nt,kt(Dt({},st),{gain:1}));await k(tt,nt,lt);const ut=[];for(let _t=0;_tpt!==ct[mt])||Et.some((pt,mt)=>pt!==dt[mt])){ct=gt,dt=Et;const pt=_t/nt.sampleRate;ft.gain.setValueAtTime(0,pt),ft=o(nt,kt(Dt({},st),{gain:0})),yt=c(nt,kt(Dt({},ot),{orientationX:ct[0],orientationY:ct[1],orientationZ:ct[2],positionX:dt[0],positionY:dt[1],positionZ:dt[2]})),ft.gain.setValueAtTime(1,pt),lt.connect(ft).connect(yt.inputs[0]),yt.connect(it)}}return it}return at?(await a(nt,tt.orientationX,rt.orientationX),await a(nt,tt.orientationY,rt.orientationY),await a(nt,tt.orientationZ,rt.orientationZ),await a(nt,tt.positionX,rt.positionX),await a(nt,tt.positionY,rt.positionY),await a(nt,tt.positionZ,rt.positionZ)):(await b(nt,tt.orientationX,rt.orientationX),await b(nt,tt.orientationY,rt.orientationY),await b(nt,tt.orientationZ,rt.orientationZ),await b(nt,tt.positionX,rt.positionX),await b(nt,tt.positionY,rt.positionY),await b(nt,tt.positionZ,rt.positionZ)),isNativeAudioNodeFaker(rt)?await k(tt,nt,rt.inputs[0]):await k(tt,nt,rt),rt};return{render(tt,nt){const it=j.get(nt);return it!==void 0?Promise.resolve(it):et(tt,nt)}}},DEFAULT_OPTIONS$4={disableNormalization:!1},createPeriodicWaveConstructor=(a,e,s,o)=>class gr{constructor(d,_){const b=e(d),k=o(Dt(Dt({},DEFAULT_OPTIONS$4),_)),$=a(b,k);return s.add($),$}static[Symbol.hasInstance](d){return d!==null&&typeof d=="object"&&Object.getPrototypeOf(d)===gr.prototype||s.has(d)}},createRenderAutomation=(a,e)=>(s,o,c)=>(a(o).replay(c),e(o,s,c)),createRenderInputsOfAudioNode=(a,e,s)=>async(o,c,d)=>{const _=a(o);await Promise.all(_.activeInputs.map((b,k)=>Array.from(b).map(async([$,j])=>{const et=await e($).render($,c),tt=o.context.destination;!s($)&&(o!==tt||!s(o))&&et.connect(d,j,k)})).reduce((b,k)=>[...b,...k],[]))},createRenderInputsOfAudioParam=(a,e,s)=>async(o,c,d)=>{const _=e(o);await Promise.all(Array.from(_.activeInputs).map(async([b,k])=>{const j=await a(b).render(b,c);s(b)||j.connect(d,k)}))},createRenderNativeOfflineAudioContext=(a,e,s,o)=>c=>a(testPromiseSupport,()=>testPromiseSupport(c))?Promise.resolve(a(o,o)).then(d=>{if(!d){const _=s(c,512,0,1);c.oncomplete=()=>{_.onaudioprocess=null,_.disconnect()},_.onaudioprocess=()=>c.currentTime,_.connect(c.destination)}return c.startRendering()}):new Promise(d=>{const _=e(c,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});c.oncomplete=b=>{_.disconnect(),d(b.renderedBuffer)},_.connect(c.destination),c.startRendering()}),createSetActiveAudioWorkletNodeInputs=a=>(e,s)=>{a.set(e,s)},createSetAudioNodeTailTime=a=>(e,s)=>a.set(e,s),createStartRendering=(a,e,s,o,c,d,_,b)=>(k,$)=>s(k).render(k,$).then(()=>Promise.all(Array.from(o($)).map(j=>s(j).render(j,$)))).then(()=>c($)).then(j=>(typeof j.copyFromChannel!="function"?(_(j),wrapAudioBufferGetChannelDataMethod(j)):e(d,()=>d(j))||b(j),a.add(j),j)),DEFAULT_OPTIONS$3={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},createStereoPannerNodeConstructor=(a,e,s,o,c,d)=>class extends a{constructor(b,k){const $=c(b),j=Dt(Dt({},DEFAULT_OPTIONS$3),k),_e=s($,j),et=d($),tt=et?o():null;super(b,!1,_e,tt),this._pan=e(this,et,_e.pan)}get pan(){return this._pan}},createStereoPannerNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,pan:$.pan.value};$=e(k,_e)}return d.set(k,$),j?await a(k,b.pan,$.pan):await o(k,b.pan,$.pan),isNativeAudioNodeFaker($)?await c(b,k,$.inputs[0]):await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createTestAudioBufferConstructorSupport=a=>()=>{if(a===null)return!1;try{new a({length:1,sampleRate:44100})}catch{return!1}return!0},createTestAudioBufferCopyChannelMethodsSubarraySupport=a=>()=>{if(a===null)return!1;const s=new a(1,1,44100).createBuffer(1,1,44100);if(s.copyToChannel===void 0)return!0;const o=new Float32Array(2);try{s.copyFromChannel(o,0,0)}catch{return!1}return!0},createTestAudioContextCloseMethodSupport=a=>()=>{if(a===null)return!1;if(a.prototype!==void 0&&a.prototype.close!==void 0)return!0;const e=new a,s=e.close!==void 0;try{e.close()}catch{}return s},createTestAudioContextDecodeAudioDataMethodTypeErrorSupport=a=>()=>{if(a===null)return Promise.resolve(!1);const e=new a(1,1,44100);return new Promise(s=>{let o=!0;const c=_=>{o&&(o=!1,e.startRendering(),s(_ instanceof TypeError))};let d;try{d=e.decodeAudioData(null,()=>{},c)}catch(_){c(_)}d!==void 0&&d.catch(c)})},createTestAudioContextOptionsSupport=a=>()=>{if(a===null)return!1;let e;try{e=new a({latencyHint:"balanced"})}catch{return!1}return e.close(),!0},createTestAudioNodeConnectMethodSupport=a=>()=>{if(a===null)return!1;const s=new a(1,1,44100).createGain(),o=s.connect(s)===s;return s.disconnect(s),o},createTestAudioWorkletProcessorNoOutputsSupport=(a,e)=>async()=>{if(a===null)return!0;if(e===null)return!1;const s=new Blob(['let c,p;class A extends AudioWorkletProcessor{constructor(){super();this.port.onmessage=(e)=>{p=e.data;p.onmessage=()=>{p.postMessage(c);p.close()};this.port.postMessage(0)}}process(){c=1}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),o=new MessageChannel,c=new e(1,128,44100),d=URL.createObjectURL(s);let _=!1;try{await c.audioWorklet.addModule(d);const b=new a(c,"a",{numberOfOutputs:0}),k=c.createOscillator();await new Promise($=>{b.port.onmessage=()=>$(),b.port.postMessage(o.port2,[o.port2])}),b.port.onmessage=()=>_=!0,k.connect(b),k.start(0),await c.startRendering(),_=await new Promise($=>{o.port1.onmessage=({data:j})=>$(j===1),o.port1.postMessage(0)})}catch{}finally{o.port1.close(),URL.revokeObjectURL(d)}return _},createTestAudioWorkletProcessorPostMessageSupport=(a,e)=>async()=>{if(a===null)return!0;if(e===null)return!1;const s=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),o=new e(1,128,44100),c=URL.createObjectURL(s);let d=!1,_=!1;try{await o.audioWorklet.addModule(c);const b=new a(o,"a",{numberOfOutputs:0}),k=o.createOscillator();b.port.onmessage=()=>d=!0,b.onprocessorerror=()=>_=!0,k.connect(b),k.start(0),await o.startRendering()}catch{}finally{URL.revokeObjectURL(c)}return d&&!_},createTestChannelMergerNodeChannelCountSupport=a=>()=>{if(a===null)return!1;const s=new a(1,1,44100).createChannelMerger();if(s.channelCountMode==="max")return!0;try{s.channelCount=2}catch{return!0}return!1},createTestConstantSourceNodeAccurateSchedulingSupport=a=>()=>{if(a===null)return!1;const e=new a(1,1,44100);return e.createConstantSource===void 0?!0:e.createConstantSource().offset.maxValue!==Number.POSITIVE_INFINITY},createTestConvolverNodeBufferReassignabilitySupport=a=>()=>{if(a===null)return!1;const e=new a(1,1,44100),s=e.createConvolver();s.buffer=e.createBuffer(1,1,e.sampleRate);try{s.buffer=e.createBuffer(1,1,e.sampleRate)}catch{return!1}return!0},createTestConvolverNodeChannelCountSupport=a=>()=>{if(a===null)return!1;const s=new a(1,1,44100).createConvolver();try{s.channelCount=1}catch{return!1}return!0},createTestIsSecureContextSupport=a=>()=>a!==null&&a.hasOwnProperty("isSecureContext"),createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport=a=>()=>{if(a===null)return!1;const e=new a;try{return e.createMediaStreamSource(new MediaStream),!1}catch{return!0}finally{e.close()}},createTestOfflineAudioContextCurrentTimeSupport=(a,e)=>()=>{if(e===null)return Promise.resolve(!1);const s=new e(1,1,44100),o=a(s,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise(c=>{s.oncomplete=()=>{o.disconnect(),c(s.currentTime!==0)},s.startRendering()})},createTestStereoPannerNodeDefaultValueSupport=a=>()=>{if(a===null)return Promise.resolve(!1);const e=new a(1,1,44100);if(e.createStereoPanner===void 0||e.createConstantSource===void 0)return Promise.resolve(!0);const s=e.createConstantSource(),o=e.createStereoPanner();return s.channelCount=1,s.offset.value=1,o.channelCount=1,s.start(),s.connect(o).connect(e.destination),e.startRendering().then(c=>c.getChannelData(0)[0]!==1)},createUnknownError=()=>new DOMException("","UnknownError"),DEFAULT_OPTIONS$2={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},createWaveShaperNodeConstructor=(a,e,s,o,c,d,_)=>class extends a{constructor(k,$){const j=c(k),_e=Dt(Dt({},DEFAULT_OPTIONS$2),$),et=s(j,_e),nt=d(j)?o():null;super(k,!0,et,nt),this._isCurveNullified=!1,this._nativeWaveShaperNode=et,_(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(k){if(k===null)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(k.length<2)throw e();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=k}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(k){this._nativeWaveShaperNode.oversample=k}},createWaveShaperNodeRendererFactory=(a,e,s)=>()=>{const o=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,curve:b.curve,oversample:b.oversample};b=a(_,$)}return o.set(_,b),isNativeAudioNodeFaker(b)?await s(d,_,b.inputs[0]):await s(d,_,b),b};return{render(d,_){const b=o.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},createWindow=()=>typeof window=="undefined"?null:window,createWrapAudioBufferCopyChannelMethods=(a,e)=>s=>{s.copyFromChannel=(o,c,d=0)=>{const _=a(d),b=a(c);if(b>=s.numberOfChannels)throw e();const k=s.length,$=s.getChannelData(b),j=o.length;for(let _e=_<0?-_:0;_e+_{const _=a(d),b=a(c);if(b>=s.numberOfChannels)throw e();const k=s.length,$=s.getChannelData(b),j=o.length;for(let _e=_<0?-_:0;_e+_e=>{e.copyFromChannel=(s=>(o,c,d=0)=>{const _=a(d),b=a(c);if(_(o,c,d=0)=>{const _=a(d),b=a(c);if(_(e,s)=>{const o=s.createBuffer(1,1,44100);e.buffer===null&&(e.buffer=o),a(e,"buffer",c=>()=>{const d=c.call(e);return d===o?null:d},c=>d=>c.call(e,d===null?o:d))},createWrapChannelMergerNode=(a,e)=>(s,o)=>{o.channelCount=1,o.channelCountMode="explicit",Object.defineProperty(o,"channelCount",{get:()=>1,set:()=>{throw a()}}),Object.defineProperty(o,"channelCountMode",{get:()=>"explicit",set:()=>{throw a()}});const c=s.createBufferSource();e(o,()=>{const b=o.numberOfInputs;for(let k=0;kc.disconnect(o))},getFirstSample=(a,e,s)=>a.copyFromChannel===void 0?a.getChannelData(s)[0]:(a.copyFromChannel(e,s),e[0]),isDCCurve=a=>{if(a===null)return!1;const e=a.length;return e%2!==0?a[Math.floor(e/2)]!==0:a[e/2-1]+a[e/2]!==0},overwriteAccessors=(a,e,s,o)=>{let c=a;for(;!c.hasOwnProperty(e);)c=Object.getPrototypeOf(c);const{get:d,set:_}=Object.getOwnPropertyDescriptor(c,e);Object.defineProperty(a,e,{get:s(d),set:o(_)})},sanitizeAudioWorkletNodeOptions=a=>kt(Dt({},a),{outputChannelCount:a.outputChannelCount!==void 0?a.outputChannelCount:a.numberOfInputs===1&&a.numberOfOutputs===1?[a.channelCount]:Array.from({length:a.numberOfOutputs},()=>1)}),sanitizeChannelSplitterOptions=a=>kt(Dt({},a),{channelCount:a.numberOfOutputs}),sanitizePeriodicWaveOptions=a=>{const{imag:e,real:s}=a;return e===void 0?s===void 0?kt(Dt({},a),{imag:[0,0],real:[0,0]}):kt(Dt({},a),{imag:Array.from(s,()=>0),real:s}):s===void 0?kt(Dt({},a),{imag:e,real:Array.from(e,()=>0)}):kt(Dt({},a),{imag:e,real:s})},setValueAtTimeUntilPossible=(a,e,s)=>{try{a.setValueAtTime(e,s)}catch(o){if(o.code!==9)throw o;setValueAtTimeUntilPossible(a,e,s+1e-7)}},testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport=a=>{const e=a.createBufferSource();e.start();try{e.start()}catch{return!0}return!1},testAudioBufferSourceNodeStartMethodOffsetClampingSupport=a=>{const e=a.createBufferSource(),s=a.createBuffer(1,1,44100);e.buffer=s;try{e.start(0,1)}catch{return!1}return!0},testAudioBufferSourceNodeStopMethodNullifiedBufferSupport=a=>{const e=a.createBufferSource();e.start();try{e.stop()}catch{return!1}return!0},testAudioScheduledSourceNodeStartMethodNegativeParametersSupport=a=>{const e=a.createOscillator();try{e.start(-1)}catch(s){return s instanceof RangeError}return!1},testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport=a=>{const e=a.createBuffer(1,1,44100),s=a.createBufferSource();s.buffer=e,s.start(),s.stop();try{return s.stop(),!0}catch{return!1}},testAudioScheduledSourceNodeStopMethodNegativeParametersSupport=a=>{const e=a.createOscillator();try{e.stop(-1)}catch(s){return s instanceof RangeError}return!1},testAudioWorkletNodeOptionsClonability=a=>{const{port1:e,port2:s}=new MessageChannel;try{e.postMessage(a)}finally{e.close(),s.close()}},testDomExceptionConstructorSupport=()=>{try{new DOMException}catch{return!1}return!0},testTransferablesSupport=()=>new Promise(a=>{const e=new ArrayBuffer(0),{port1:s,port2:o}=new MessageChannel;s.onmessage=({data:c})=>a(c!==null),o.postMessage(e,[e])}),wrapAudioBufferSourceNodeStartMethodOffsetClamping=a=>{a.start=(e=>(s=0,o=0,c)=>{const d=a.buffer,_=d===null?o:Math.min(d.duration,o);d!==null&&_>d.duration-.5/a.context.sampleRate?e.call(a,s,0,0):e.call(a,s,_,c)})(a.start)},wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls=(a,e)=>{const s=e.createGain();a.connect(s);const o=(c=>()=>{c.call(a,s),a.removeEventListener("ended",o)})(a.disconnect);a.addEventListener("ended",o),interceptConnections(a,s),a.stop=(c=>{let d=!1;return(_=0)=>{if(d)try{c.call(a,_)}catch{s.gain.setValueAtTime(0,_)}else c.call(a,_),d=!0}})(a.stop)},wrapEventListener=(a,e)=>s=>{const o={value:a};return Object.defineProperties(s,{currentTarget:o,target:o}),typeof e=="function"?e.call(a,s):e.handleEvent.call(a,s)},addActiveInputConnectionToAudioNode=createAddActiveInputConnectionToAudioNode(insertElementInSet),addPassiveInputConnectionToAudioNode=createAddPassiveInputConnectionToAudioNode(insertElementInSet),deleteActiveInputConnectionToAudioNode=createDeleteActiveInputConnectionToAudioNode(pickElementFromSet),audioNodeTailTimeStore=new WeakMap,getAudioNodeTailTime=createGetAudioNodeTailTime(audioNodeTailTimeStore),cacheTestResult=createCacheTestResult(new Map,new WeakMap),window$1=createWindow(),createNativeAnalyserNode=createNativeAnalyserNodeFactory(cacheTestResult,createIndexSizeError),getAudioNodeRenderer=createGetAudioNodeRenderer(getAudioNodeConnections),renderInputsOfAudioNode=createRenderInputsOfAudioNode(getAudioNodeConnections,getAudioNodeRenderer,isPartOfACycle),createAnalyserNodeRenderer=createAnalyserNodeRendererFactory(createNativeAnalyserNode,getNativeAudioNode,renderInputsOfAudioNode),getNativeContext=createGetNativeContext(CONTEXT_STORE),nativeOfflineAudioContextConstructor=createNativeOfflineAudioContextConstructor(window$1),isNativeOfflineAudioContext=createIsNativeOfflineAudioContext(nativeOfflineAudioContextConstructor),audioParamAudioNodeStore=new WeakMap,eventTargetConstructor=createEventTargetConstructor(wrapEventListener),nativeAudioContextConstructor=createNativeAudioContextConstructor(window$1),isNativeAudioContext=createIsNativeAudioContext(nativeAudioContextConstructor),isNativeAudioNode=createIsNativeAudioNode(window$1),isNativeAudioParam=createIsNativeAudioParam(window$1),nativeAudioWorkletNodeConstructor=createNativeAudioWorkletNodeConstructor(window$1),audioNodeConstructor=createAudioNodeConstructor(createAddAudioNodeConnections(AUDIO_NODE_CONNECTIONS_STORE),createAddConnectionToAudioNode(addActiveInputConnectionToAudioNode,addPassiveInputConnectionToAudioNode,connectNativeAudioNodeToNativeAudioNode,deleteActiveInputConnectionToAudioNode,disconnectNativeAudioNodeFromNativeAudioNode,getAudioNodeConnections,getAudioNodeTailTime,getEventListenersOfAudioNode,getNativeAudioNode,insertElementInSet,isActiveAudioNode,isPartOfACycle,isPassiveAudioNode),cacheTestResult,createIncrementCycleCounterFactory(CYCLE_COUNTERS,disconnectNativeAudioNodeFromNativeAudioNode,getAudioNodeConnections,getNativeAudioNode,getNativeAudioParam,isActiveAudioNode),createIndexSizeError,createInvalidAccessError,createNotSupportedError,createDecrementCycleCounter(connectNativeAudioNodeToNativeAudioNode,CYCLE_COUNTERS,getAudioNodeConnections,getNativeAudioNode,getNativeAudioParam,getNativeContext,isActiveAudioNode,isNativeOfflineAudioContext),createDetectCycles(audioParamAudioNodeStore,getAudioNodeConnections,getValueForKey),eventTargetConstructor,getNativeContext,isNativeAudioContext,isNativeAudioNode,isNativeAudioParam,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor),analyserNodeConstructor=createAnalyserNodeConstructor(audioNodeConstructor,createAnalyserNodeRenderer,createIndexSizeError,createNativeAnalyserNode,getNativeContext,isNativeOfflineAudioContext),audioBufferStore=new WeakSet,nativeAudioBufferConstructor=createNativeAudioBufferConstructor(window$1),convertNumberToUnsignedLong=createConvertNumberToUnsignedLong(new Uint32Array(1)),wrapAudioBufferCopyChannelMethods=createWrapAudioBufferCopyChannelMethods(convertNumberToUnsignedLong,createIndexSizeError),wrapAudioBufferCopyChannelMethodsOutOfBounds=createWrapAudioBufferCopyChannelMethodsOutOfBounds(convertNumberToUnsignedLong),audioBufferConstructor=createAudioBufferConstructor(audioBufferStore,cacheTestResult,createNotSupportedError,nativeAudioBufferConstructor,nativeOfflineAudioContextConstructor,createTestAudioBufferConstructorSupport(nativeAudioBufferConstructor),wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),addSilentConnection=createAddSilentConnection(createNativeGainNode),renderInputsOfAudioParam=createRenderInputsOfAudioParam(getAudioNodeRenderer,getAudioParamConnections,isPartOfACycle),connectAudioParam=createConnectAudioParam(renderInputsOfAudioParam),createNativeAudioBufferSourceNode=createNativeAudioBufferSourceNodeFactory(addSilentConnection,cacheTestResult,testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport,testAudioBufferSourceNodeStartMethodOffsetClampingSupport,testAudioBufferSourceNodeStopMethodNullifiedBufferSupport,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,wrapAudioBufferSourceNodeStartMethodOffsetClamping,createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer(overwriteAccessors),wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls),renderAutomation=createRenderAutomation(createGetAudioParamRenderer(getAudioParamConnections),renderInputsOfAudioParam),createAudioBufferSourceNodeRenderer=createAudioBufferSourceNodeRendererFactory(connectAudioParam,createNativeAudioBufferSourceNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),createAudioParam=createAudioParamFactory(createAddAudioParamConnections(AUDIO_PARAM_CONNECTIONS_STORE),audioParamAudioNodeStore,AUDIO_PARAM_STORE,createAudioParamRenderer,createCancelAndHoldAutomationEvent,createCancelScheduledValuesAutomationEvent,createExponentialRampToValueAutomationEvent,createLinearRampToValueAutomationEvent,createSetTargetAutomationEvent,createSetValueAutomationEvent,createSetValueCurveAutomationEvent,nativeAudioContextConstructor,setValueAtTimeUntilPossible),audioBufferSourceNodeConstructor=createAudioBufferSourceNodeConstructor(audioNodeConstructor,createAudioBufferSourceNodeRenderer,createAudioParam,createInvalidStateError,createNativeAudioBufferSourceNode,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),audioDestinationNodeConstructor=createAudioDestinationNodeConstructor(audioNodeConstructor,createAudioDestinationNodeRenderer,createIndexSizeError,createInvalidStateError,createNativeAudioDestinationNodeFactory(createNativeGainNode,overwriteAccessors),getNativeContext,isNativeOfflineAudioContext,renderInputsOfAudioNode),createBiquadFilterNodeRenderer=createBiquadFilterNodeRendererFactory(connectAudioParam,createNativeBiquadFilterNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),setAudioNodeTailTime=createSetAudioNodeTailTime(audioNodeTailTimeStore),biquadFilterNodeConstructor=createBiquadFilterNodeConstructor(audioNodeConstructor,createAudioParam,createBiquadFilterNodeRenderer,createInvalidAccessError,createNativeBiquadFilterNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),monitorConnections=createMonitorConnections(insertElementInSet,isNativeAudioNode),wrapChannelMergerNode=createWrapChannelMergerNode(createInvalidStateError,monitorConnections),createNativeChannelMergerNode=createNativeChannelMergerNodeFactory(nativeAudioContextConstructor,wrapChannelMergerNode),createChannelMergerNodeRenderer=createChannelMergerNodeRendererFactory(createNativeChannelMergerNode,getNativeAudioNode,renderInputsOfAudioNode),channelMergerNodeConstructor=createChannelMergerNodeConstructor(audioNodeConstructor,createChannelMergerNodeRenderer,createNativeChannelMergerNode,getNativeContext,isNativeOfflineAudioContext),createChannelSplitterNodeRenderer=createChannelSplitterNodeRendererFactory(createNativeChannelSplitterNode,getNativeAudioNode,renderInputsOfAudioNode),channelSplitterNodeConstructor=createChannelSplitterNodeConstructor(audioNodeConstructor,createChannelSplitterNodeRenderer,createNativeChannelSplitterNode,getNativeContext,isNativeOfflineAudioContext,sanitizeChannelSplitterOptions),createNativeConstantSourceNodeFaker=createNativeConstantSourceNodeFakerFactory(addSilentConnection,createNativeAudioBufferSourceNode,createNativeGainNode,monitorConnections),createNativeConstantSourceNode=createNativeConstantSourceNodeFactory(addSilentConnection,cacheTestResult,createNativeConstantSourceNodeFaker,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport),createConstantSourceNodeRenderer=createConstantSourceNodeRendererFactory(connectAudioParam,createNativeConstantSourceNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),constantSourceNodeConstructor=createConstantSourceNodeConstructor(audioNodeConstructor,createAudioParam,createConstantSourceNodeRenderer,createNativeConstantSourceNode,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),createNativeConvolverNode=createNativeConvolverNodeFactory(createNotSupportedError,overwriteAccessors),createConvolverNodeRenderer=createConvolverNodeRendererFactory(createNativeConvolverNode,getNativeAudioNode,renderInputsOfAudioNode),convolverNodeConstructor=createConvolverNodeConstructor(audioNodeConstructor,createConvolverNodeRenderer,createNativeConvolverNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createDelayNodeRenderer=createDelayNodeRendererFactory(connectAudioParam,createNativeDelayNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),delayNodeConstructor=createDelayNodeConstructor(audioNodeConstructor,createAudioParam,createDelayNodeRenderer,createNativeDelayNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createNativeDynamicsCompressorNode=createNativeDynamicsCompressorNodeFactory(createNotSupportedError),createDynamicsCompressorNodeRenderer=createDynamicsCompressorNodeRendererFactory(connectAudioParam,createNativeDynamicsCompressorNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),dynamicsCompressorNodeConstructor=createDynamicsCompressorNodeConstructor(audioNodeConstructor,createAudioParam,createDynamicsCompressorNodeRenderer,createNativeDynamicsCompressorNode,createNotSupportedError,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createGainNodeRenderer=createGainNodeRendererFactory(connectAudioParam,createNativeGainNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),gainNodeConstructor=createGainNodeConstructor(audioNodeConstructor,createAudioParam,createGainNodeRenderer,createNativeGainNode,getNativeContext,isNativeOfflineAudioContext),createNativeIIRFilterNodeFaker=createNativeIIRFilterNodeFakerFactory(createInvalidAccessError,createInvalidStateError,createNativeScriptProcessorNode,createNotSupportedError),renderNativeOfflineAudioContext=createRenderNativeOfflineAudioContext(cacheTestResult,createNativeGainNode,createNativeScriptProcessorNode,createTestOfflineAudioContextCurrentTimeSupport(createNativeGainNode,nativeOfflineAudioContextConstructor)),createIIRFilterNodeRenderer=createIIRFilterNodeRendererFactory(createNativeAudioBufferSourceNode,getNativeAudioNode,nativeOfflineAudioContextConstructor,renderInputsOfAudioNode,renderNativeOfflineAudioContext),createNativeIIRFilterNode=createNativeIIRFilterNodeFactory(createNativeIIRFilterNodeFaker),iIRFilterNodeConstructor=createIIRFilterNodeConstructor(audioNodeConstructor,createNativeIIRFilterNode,createIIRFilterNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createAudioListener=createAudioListenerFactory(createAudioParam,createNativeChannelMergerNode,createNativeConstantSourceNode,createNativeScriptProcessorNode,createNotSupportedError,getFirstSample,isNativeOfflineAudioContext,overwriteAccessors),unrenderedAudioWorkletNodeStore=new WeakMap,minimalBaseAudioContextConstructor=createMinimalBaseAudioContextConstructor(audioDestinationNodeConstructor,createAudioListener,eventTargetConstructor,isNativeOfflineAudioContext,unrenderedAudioWorkletNodeStore,wrapEventListener),createNativeOscillatorNode=createNativeOscillatorNodeFactory(addSilentConnection,cacheTestResult,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls),createOscillatorNodeRenderer=createOscillatorNodeRendererFactory(connectAudioParam,createNativeOscillatorNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),oscillatorNodeConstructor=createOscillatorNodeConstructor(audioNodeConstructor,createAudioParam,createNativeOscillatorNode,createOscillatorNodeRenderer,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),createConnectedNativeAudioBufferSourceNode=createConnectedNativeAudioBufferSourceNodeFactory(createNativeAudioBufferSourceNode),createNativeWaveShaperNodeFaker=createNativeWaveShaperNodeFakerFactory(createConnectedNativeAudioBufferSourceNode,createInvalidStateError,createNativeGainNode,isDCCurve,monitorConnections),createNativeWaveShaperNode=createNativeWaveShaperNodeFactory(createConnectedNativeAudioBufferSourceNode,createInvalidStateError,createNativeWaveShaperNodeFaker,isDCCurve,monitorConnections,nativeAudioContextConstructor,overwriteAccessors),createNativePannerNodeFaker=createNativePannerNodeFakerFactory(connectNativeAudioNodeToNativeAudioNode,createInvalidStateError,createNativeChannelMergerNode,createNativeGainNode,createNativeScriptProcessorNode,createNativeWaveShaperNode,createNotSupportedError,disconnectNativeAudioNodeFromNativeAudioNode,getFirstSample,monitorConnections),createNativePannerNode=createNativePannerNodeFactory(createNativePannerNodeFaker),createPannerNodeRenderer=createPannerNodeRendererFactory(connectAudioParam,createNativeChannelMergerNode,createNativeConstantSourceNode,createNativeGainNode,createNativePannerNode,getNativeAudioNode,nativeOfflineAudioContextConstructor,renderAutomation,renderInputsOfAudioNode,renderNativeOfflineAudioContext),pannerNodeConstructor=createPannerNodeConstructor(audioNodeConstructor,createAudioParam,createNativePannerNode,createPannerNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createNativePeriodicWave=createNativePeriodicWaveFactory(createIndexSizeError),periodicWaveConstructor=createPeriodicWaveConstructor(createNativePeriodicWave,getNativeContext,new WeakSet,sanitizePeriodicWaveOptions),nativeStereoPannerNodeFakerFactory=createNativeStereoPannerNodeFakerFactory(createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeGainNode,createNativeWaveShaperNode,createNotSupportedError,monitorConnections),createNativeStereoPannerNode=createNativeStereoPannerNodeFactory(nativeStereoPannerNodeFakerFactory,createNotSupportedError),createStereoPannerNodeRenderer=createStereoPannerNodeRendererFactory(connectAudioParam,createNativeStereoPannerNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),stereoPannerNodeConstructor=createStereoPannerNodeConstructor(audioNodeConstructor,createAudioParam,createNativeStereoPannerNode,createStereoPannerNodeRenderer,getNativeContext,isNativeOfflineAudioContext),createWaveShaperNodeRenderer=createWaveShaperNodeRendererFactory(createNativeWaveShaperNode,getNativeAudioNode,renderInputsOfAudioNode),waveShaperNodeConstructor=createWaveShaperNodeConstructor(audioNodeConstructor,createInvalidStateError,createNativeWaveShaperNode,createWaveShaperNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),isSecureContext=createIsSecureContext(window$1),exposeCurrentFrameAndCurrentTime=createExposeCurrentFrameAndCurrentTime(window$1),backupOfflineAudioContextStore=new WeakMap,getOrCreateBackupOfflineAudioContext=createGetOrCreateBackupOfflineAudioContext(backupOfflineAudioContextStore,nativeOfflineAudioContextConstructor),addAudioWorkletModule=isSecureContext?createAddAudioWorkletModule(cacheTestResult,createNotSupportedError,createEvaluateSource(window$1),exposeCurrentFrameAndCurrentTime,createFetchSource(createAbortError),getNativeContext,getOrCreateBackupOfflineAudioContext,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor,new WeakMap,new WeakMap,createTestAudioWorkletProcessorPostMessageSupport(nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor),window$1):void 0,isNativeContext=createIsNativeContext(isNativeAudioContext,isNativeOfflineAudioContext),decodeAudioData=createDecodeAudioData(audioBufferStore,cacheTestResult,createDataCloneError,createEncodingError,new WeakSet,getNativeContext,isNativeContext,testAudioBufferCopyChannelMethodsOutOfBoundsSupport,testPromiseSupport,wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),baseAudioContextConstructor=createBaseAudioContextConstructor(addAudioWorkletModule,analyserNodeConstructor,audioBufferConstructor,audioBufferSourceNodeConstructor,biquadFilterNodeConstructor,channelMergerNodeConstructor,channelSplitterNodeConstructor,constantSourceNodeConstructor,convolverNodeConstructor,decodeAudioData,delayNodeConstructor,dynamicsCompressorNodeConstructor,gainNodeConstructor,iIRFilterNodeConstructor,minimalBaseAudioContextConstructor,oscillatorNodeConstructor,pannerNodeConstructor,periodicWaveConstructor,stereoPannerNodeConstructor,waveShaperNodeConstructor),mediaElementAudioSourceNodeConstructor=createMediaElementAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaElementAudioSourceNode,getNativeContext,isNativeOfflineAudioContext),mediaStreamAudioDestinationNodeConstructor=createMediaStreamAudioDestinationNodeConstructor(audioNodeConstructor,createNativeMediaStreamAudioDestinationNode,getNativeContext,isNativeOfflineAudioContext),mediaStreamAudioSourceNodeConstructor=createMediaStreamAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaStreamAudioSourceNode,getNativeContext,isNativeOfflineAudioContext),createNativeMediaStreamTrackAudioSourceNode=createNativeMediaStreamTrackAudioSourceNodeFactory(createInvalidStateError,isNativeOfflineAudioContext),mediaStreamTrackAudioSourceNodeConstructor=createMediaStreamTrackAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaStreamTrackAudioSourceNode,getNativeContext),audioContextConstructor=createAudioContextConstructor(baseAudioContextConstructor,createInvalidStateError,createNotSupportedError,createUnknownError,mediaElementAudioSourceNodeConstructor,mediaStreamAudioDestinationNodeConstructor,mediaStreamAudioSourceNodeConstructor,mediaStreamTrackAudioSourceNodeConstructor,nativeAudioContextConstructor),getUnrenderedAudioWorkletNodes=createGetUnrenderedAudioWorkletNodes(unrenderedAudioWorkletNodeStore),addUnrenderedAudioWorkletNode=createAddUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes),connectMultipleOutputs=createConnectMultipleOutputs(createIndexSizeError),deleteUnrenderedAudioWorkletNode=createDeleteUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes),disconnectMultipleOutputs=createDisconnectMultipleOutputs(createIndexSizeError),activeAudioWorkletNodeInputsStore=new WeakMap,getActiveAudioWorkletNodeInputs=createGetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore,getValueForKey),createNativeAudioWorkletNodeFaker=createNativeAudioWorkletNodeFakerFactory(connectMultipleOutputs,createIndexSizeError,createInvalidStateError,createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeConstantSourceNode,createNativeGainNode,createNativeScriptProcessorNode,createNotSupportedError,disconnectMultipleOutputs,exposeCurrentFrameAndCurrentTime,getActiveAudioWorkletNodeInputs,monitorConnections),createNativeAudioWorkletNode=createNativeAudioWorkletNodeFactory(createInvalidStateError,createNativeAudioWorkletNodeFaker,createNativeGainNode,createNotSupportedError,monitorConnections),createAudioWorkletNodeRenderer=createAudioWorkletNodeRendererFactory(connectAudioParam,connectMultipleOutputs,createNativeAudioBufferSourceNode,createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeConstantSourceNode,createNativeGainNode,deleteUnrenderedAudioWorkletNode,disconnectMultipleOutputs,exposeCurrentFrameAndCurrentTime,getNativeAudioNode,nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor,renderAutomation,renderInputsOfAudioNode,renderNativeOfflineAudioContext),getBackupOfflineAudioContext=createGetBackupOfflineAudioContext(backupOfflineAudioContextStore),setActiveAudioWorkletNodeInputs=createSetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore),audioWorkletNodeConstructor=isSecureContext?createAudioWorkletNodeConstructor(addUnrenderedAudioWorkletNode,audioNodeConstructor,createAudioParam,createAudioWorkletNodeRenderer,createNativeAudioWorkletNode,getAudioNodeConnections,getBackupOfflineAudioContext,getNativeContext,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor,sanitizeAudioWorkletNodeOptions,setActiveAudioWorkletNodeInputs,testAudioWorkletNodeOptionsClonability,wrapEventListener):void 0,createNativeOfflineAudioContext=createCreateNativeOfflineAudioContext(createNotSupportedError,nativeOfflineAudioContextConstructor),startRendering=createStartRendering(audioBufferStore,cacheTestResult,getAudioNodeRenderer,getUnrenderedAudioWorkletNodes,renderNativeOfflineAudioContext,testAudioBufferCopyChannelMethodsOutOfBoundsSupport,wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),offlineAudioContextConstructor=createOfflineAudioContextConstructor(baseAudioContextConstructor,cacheTestResult,createInvalidStateError,createNativeOfflineAudioContext,startRendering),isAnyAudioContext=createIsAnyAudioContext(CONTEXT_STORE,isNativeAudioContext),isAnyAudioNode=createIsAnyAudioNode(AUDIO_NODE_STORE,isNativeAudioNode),isAnyAudioParam=createIsAnyAudioParam(AUDIO_PARAM_STORE,isNativeAudioParam),isAnyOfflineAudioContext=createIsAnyOfflineAudioContext(CONTEXT_STORE,isNativeOfflineAudioContext),isSupported=()=>createIsSupportedPromise(cacheTestResult,createTestAudioBufferCopyChannelMethodsSubarraySupport(nativeOfflineAudioContextConstructor),createTestAudioContextCloseMethodSupport(nativeAudioContextConstructor),createTestAudioContextDecodeAudioDataMethodTypeErrorSupport(nativeOfflineAudioContextConstructor),createTestAudioContextOptionsSupport(nativeAudioContextConstructor),createTestAudioNodeConnectMethodSupport(nativeOfflineAudioContextConstructor),createTestAudioWorkletProcessorNoOutputsSupport(nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor),createTestChannelMergerNodeChannelCountSupport(nativeOfflineAudioContextConstructor),createTestConstantSourceNodeAccurateSchedulingSupport(nativeOfflineAudioContextConstructor),createTestConvolverNodeBufferReassignabilitySupport(nativeOfflineAudioContextConstructor),createTestConvolverNodeChannelCountSupport(nativeOfflineAudioContextConstructor),testDomExceptionConstructorSupport,createTestIsSecureContextSupport(window$1),createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport(nativeAudioContextConstructor),createTestStereoPannerNodeDefaultValueSupport(nativeOfflineAudioContextConstructor),testTransferablesSupport);function assert(a,e){if(!a)throw new Error(e)}function assertRange(a,e,s=1/0){if(!(e<=a&&a<=s))throw new RangeError(`Value must be within [${e}, ${s}], got: ${a}`)}function assertContextRunning(a){!a.isOffline&&a.state!=="running"&&warn('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}let defaultLogger=console;function setLogger(a){defaultLogger=a}function log(...a){defaultLogger.log(...a)}function warn(...a){defaultLogger.warn(...a)}var Debug=Object.freeze(Object.defineProperty({__proto__:null,assert,assertRange,assertContextRunning,setLogger,log,warn},Symbol.toStringTag,{value:"Module"}));function isUndef(a){return typeof a=="undefined"}function isDefined(a){return!isUndef(a)}function isFunction(a){return typeof a=="function"}function isNumber(a){return typeof a=="number"}function isObject(a){return Object.prototype.toString.call(a)==="[object Object]"&&a.constructor===Object}function isBoolean(a){return typeof a=="boolean"}function isArray(a){return Array.isArray(a)}function isString(a){return typeof a=="string"}function isNote$1(a){return isString(a)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(a)}function createAudioContext(a){return new audioContextConstructor(a)}function createOfflineAudioContext(a,e,s){return new offlineAudioContextConstructor(a,e,s)}const theWindow=typeof self=="object"?self:null,hasAudioContext=theWindow&&(theWindow.hasOwnProperty("AudioContext")||theWindow.hasOwnProperty("webkitAudioContext"));function createAudioWorkletNode(a,e,s){return assert(isDefined(audioWorkletNodeConstructor),"This node only works in a secure context (https or localhost)"),new audioWorkletNodeConstructor(a,e,s)}/*! ***************************************************************************** +}`,{label:"class",detail:"definition",type:"keyword"}),snippetCompletion('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),snippetCompletion('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],cache=new NodeWeakMap,ScopeNodes=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function defID(a){return(e,s)=>{let o=e.node.getChild("VariableDefinition");return o&&s(o,a),!0}}const functionContext=["FunctionDeclaration"],gatherCompletions={FunctionDeclaration:defID("function"),ClassDeclaration:defID("class"),ClassExpression:()=>!0,EnumDeclaration:defID("constant"),TypeAliasDeclaration:defID("type"),NamespaceDeclaration:defID("namespace"),VariableDefinition(a,e){a.matchContext(functionContext)||e(a,"variable")},TypeDefinition(a,e){e(a,"type")},__proto__:null};function getScope(a,e){let s=cache.get(e);if(s)return s;let o=[],c=!0;function d(_,b){let k=a.sliceString(_.from,_.to);o.push({label:k,type:b})}return e.cursor(IterMode.IncludeAnonymous).iterate(_=>{if(c)c=!1;else if(_.name){let b=gatherCompletions[_.name];if(b&&b(_,d)||ScopeNodes.has(_.name))return!1}else if(_.to-_.from>8192){for(let b of getScope(a,_.node))o.push(b);return!1}}),cache.set(e,o),o}const Identifier=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,dontComplete=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName"];function localCompletionSource(a){let e=syntaxTree(a.state).resolveInner(a.pos,-1);if(dontComplete.indexOf(e.name)>-1)return null;let s=e.to-e.from<20&&Identifier.test(a.state.sliceDoc(e.from,e.to));if(!s&&!a.explicit)return null;let o=[];for(let c=e;c;c=c.parent)ScopeNodes.has(c.name)&&(o=o.concat(getScope(a.state.doc,c)));return{options:o,from:s?e.from:a.pos,validFor:Identifier}}const javascriptLanguage=LRLanguage.define({parser:parser.configure({props:[indentNodeProp.add({IfStatement:continuedIndent({except:/^\s*({|else\b)/}),TryStatement:continuedIndent({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:flatIndent,SwitchBody:a=>{let e=a.textAfter,s=/^\s*\}/.test(e),o=/^\s*(case|default)\b/.test(e);return a.baseIndent+(s?0:o?1:2)*a.unit},Block:delimitedIndent({closing:"}"}),ArrowFunction:a=>a.baseIndent+a.unit,"TemplateString BlockComment":()=>null,"Statement Property":continuedIndent({except:/^{/}),JSXElement(a){let e=/^\s*<\//.test(a.textAfter);return a.lineIndent(a.node.from)+(e?0:a.unit)},JSXEscape(a){let e=/\s*\}/.test(a.textAfter);return a.lineIndent(a.node.from)+(e?0:a.unit)},"JSXOpenTag JSXSelfClosingTag"(a){return a.column(a.node.from)+a.unit}}),foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":foldInside,BlockComment(a){return{from:a.from+2,to:a.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),typescriptLanguage=javascriptLanguage.configure({dialect:"ts"}),jsxLanguage=javascriptLanguage.configure({dialect:"jsx"}),tsxLanguage=javascriptLanguage.configure({dialect:"jsx ts"}),keywords$1="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(a=>({label:a,type:"keyword"}));function javascript(a={}){let e=a.jsx?a.typescript?tsxLanguage:jsxLanguage:a.typescript?typescriptLanguage:javascriptLanguage;return new LanguageSupport(e,[javascriptLanguage.data.of({autocomplete:ifNotIn(dontComplete,completeFromList(snippets.concat(keywords$1)))}),javascriptLanguage.data.of({autocomplete:localCompletionSource}),a.jsx?autoCloseTags:[]])}function elementName(a,e,s=a.length){if(!e)return"";let o=e.getChild("JSXIdentifier");return o?a.sliceString(o.from,Math.min(o.to,s)):""}const android=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),autoCloseTags=EditorView.inputHandler.of((a,e,s,o)=>{if((android?a.composing:a.compositionStarted)||a.state.readOnly||e!=s||o!=">"&&o!="/"||!javascriptLanguage.isActiveAt(a.state,e,-1))return!1;let{state:c}=a,d=c.changeByRange(_=>{var b,k,$;let{head:j}=_,_e=syntaxTree(c).resolveInner(j,-1),et;if(_e.name=="JSXStartTag"&&(_e=_e.parent),o==">"&&_e.name=="JSXFragmentTag")return{range:EditorSelection.cursor(j+1),changes:{from:j,insert:"><>"}};if(o==">"&&_e.name=="JSXIdentifier"){if(((k=(b=_e.parent)===null||b===void 0?void 0:b.lastChild)===null||k===void 0?void 0:k.name)!="JSXEndTag"&&(et=elementName(c.doc,_e.parent,j)))return{range:EditorSelection.cursor(j+1),changes:{from:j,insert:`>`}}}else if(o=="/"&&_e.name=="JSXFragmentTag"){let tt=_e.parent,nt=tt==null?void 0:tt.parent;if(tt.from==j-1&&(($=nt.lastChild)===null||$===void 0?void 0:$.name)!="JSXEndTag"&&(et=elementName(c.doc,nt==null?void 0:nt.firstChild,j))){let it=`/${et}>`;return{range:EditorSelection.cursor(j+it.length),changes:{from:j,insert:it}}}}return{range:_}});return d.changes.empty?!1:(a.dispatch(d,{userEvent:"input.type",scrollIntoView:!0}),!0)});var createTheme=a=>{var{theme:e,settings:s,styles:o}=a,c={"&":{backgroundColor:s.background,color:s.foreground},".cm-gutters":{}};s.gutterBackground&&(c[".cm-gutters"].backgroundColor=s.gutterBackground),s.gutterForeground&&(c[".cm-gutters"].color=s.gutterForeground),s.gutterBorder&&(c[".cm-gutters"].borderRightColor=s.gutterBorder),s.caret&&(c[".cm-content"]={caretColor:s.caret},c[".cm-cursor, .cm-dropCursor"]={borderLeftColor:s.caret}),s.lineHighlight&&(c[".cm-activeLine"]={backgroundColor:s.lineHighlight},c[".cm-activeLineGutter"]={backgroundColor:s.lineHighlight}),s.selection&&(c["&.cm-focused .cm-selectionBackground .cm-selectionBackground, & .cm-selectionLayer .cm-selectionBackground, ::selection"]={backgroundColor:s.selection}),s.selectionMatch&&(c["& .cm-selectionMatch"]={backgroundColor:s.selectionMatch});var d=EditorView.theme(c,{dark:e==="dark"}),_=HighlightStyle.define(o),b=[d,syntaxHighlighting(_)];return b};const scale=(a,e,s)=>a*(s-e)+e,getValue=a=>{var s;let e=typeof a.value=="object"?(s=a.value.note)!=null?s:a.value.n:a.value;return typeof e=="string"&&(e=toMidi(e)),e};Pattern$5.prototype.pianoroll=function({cycles:a=4,playhead:e=.5,overscan:s=1,flipTime:o=0,flipValues:c=0,hideNegative:d=!1,inactive:_="#7491D2",active:b="#FFCA28",background:k="transparent",smear:$=0,playheadColor:j="white",minMidi:_e=10,maxMidi:et=90,autorange:tt=0,timeframe:nt,fold:it=0,vertical:rt=0}={}){const st=getDrawContext(),ot=st.canvas.width,at=st.canvas.height;let ht=-a*e,lt=a*(1-e);nt&&(console.warn("timeframe is deprecated! use from/to instead"),ht=0,lt=nt),!tt&&it&&console.warn("disabling autorange has no effect when fold is enabled");const ut=rt?at:ot,ct=rt?ot:at;let dt=rt?[ut,0]:[0,ut];const ft=lt-ht,Et=rt?[0,ct]:[ct,0];let yt=et-_e+1,gt=ct/yt,St=[];return o&&dt.reverse(),c&&Et.reverse(),this.draw((pt,mt,At)=>{pt.fillStyle=k,pt.globalAlpha=1,$||(pt.clearRect(0,0,ot,at),pt.fillRect(0,0,ot,at));const Ot=Ct=>(!d||Ct.whole.begin>=0)&&Ct.whole.begin<=At+lt&&Ct.whole.end>=At+ht;mt.filter(Ot).forEach(Ct=>{var qt,Qt,Nt;const Tt=Ct.whole.begin<=At&&Ct.whole.end>At;pt.fillStyle=((qt=Ct.context)==null?void 0:qt.color)||_,pt.strokeStyle=((Qt=Ct.context)==null?void 0:Qt.color)||b,pt.globalAlpha=(Nt=Ct.context.velocity)!=null?Nt:1;const _t=scale((Ct.whole.begin-(o?lt:ht))/ft,...dt);let bt=scale(Ct.duration/ft,0,ut);const xt=getValue(Ct),Rt=scale(it?St.indexOf(xt)/St.length:(Number(xt)-_e)/yt,...Et);let $t=0;const It=scale(At/ft,...dt);let Ft;rt?Ft=[Rt+1-(c?gt:0),ut-It+_t+$t+1-(o?0:bt),gt-2,bt-2]:Ft=[_t-It+$t+1-(o?bt:0),Rt+1-(c?0:gt),bt-2,gt-2],Tt?pt.strokeRect(...Ft):pt.fillRect(...Ft)}),pt.globalAlpha=1;const vt=scale(-ht/ft,...dt);pt.strokeStyle=j,pt.beginPath(),rt?(pt.moveTo(0,vt),pt.lineTo(ct,vt)):(pt.moveTo(vt,0),pt.lineTo(vt,ct)),pt.stroke()},{from:ht-s,to:lt+s,onQuery:pt=>{const{min:mt,max:At,values:Ot}=pt.reduce(({min:vt,max:Ct,values:Tt},_t)=>{const bt=getValue(_t);return{min:btCt?bt:Ct,values:Tt.includes(bt)?Tt:[...Tt,bt]}},{min:1/0,max:-1/0,values:[]});tt&&(_e=mt,et=At,yt=et-_e+1),St=Ot.sort((vt,Ct)=>vt-Ct),gt=it?ct/St.length:ct/yt}}),this};const version$7="14.7.77",createExtendedExponentialRampToValueAutomationEvent=(a,e,s)=>({endTime:e,insertTime:s,type:"exponentialRampToValue",value:a}),createExtendedLinearRampToValueAutomationEvent=(a,e,s)=>({endTime:e,insertTime:s,type:"linearRampToValue",value:a}),createSetValueAutomationEvent=(a,e)=>({startTime:e,type:"setValue",value:a}),createSetValueCurveAutomationEvent=(a,e,s)=>({duration:s,startTime:e,type:"setValueCurve",values:a}),getTargetValueAtTime=(a,e,{startTime:s,target:o,timeConstant:c})=>o+(e-o)*Math.exp((s-a)/c),isExponentialRampToValueAutomationEvent=a=>a.type==="exponentialRampToValue",isLinearRampToValueAutomationEvent=a=>a.type==="linearRampToValue",isAnyRampToValueAutomationEvent=a=>isExponentialRampToValueAutomationEvent(a)||isLinearRampToValueAutomationEvent(a),isSetValueAutomationEvent=a=>a.type==="setValue",isSetValueCurveAutomationEvent=a=>a.type==="setValueCurve",getValueOfAutomationEventAtIndexAtTime=(a,e,s,o)=>{const c=a[e];return c===void 0?o:isAnyRampToValueAutomationEvent(c)||isSetValueAutomationEvent(c)?c.value:isSetValueCurveAutomationEvent(c)?c.values[c.values.length-1]:getTargetValueAtTime(s,getValueOfAutomationEventAtIndexAtTime(a,e-1,c.startTime,o),c)},getEndTimeAndValueOfPreviousAutomationEvent=(a,e,s,o,c)=>s===void 0?[o.insertTime,c]:isAnyRampToValueAutomationEvent(s)?[s.endTime,s.value]:isSetValueAutomationEvent(s)?[s.startTime,s.value]:isSetValueCurveAutomationEvent(s)?[s.startTime+s.duration,s.values[s.values.length-1]]:[s.startTime,getValueOfAutomationEventAtIndexAtTime(a,e-1,s.startTime,c)],isCancelAndHoldAutomationEvent=a=>a.type==="cancelAndHold",isCancelScheduledValuesAutomationEvent=a=>a.type==="cancelScheduledValues",getEventTime=a=>isCancelAndHoldAutomationEvent(a)||isCancelScheduledValuesAutomationEvent(a)?a.cancelTime:isExponentialRampToValueAutomationEvent(a)||isLinearRampToValueAutomationEvent(a)?a.endTime:a.startTime,getExponentialRampValueAtTime=(a,e,s,{endTime:o,value:c})=>s===c?c:0s+(a-e)/(o-e)*(c-s),interpolateValue=(a,e)=>{const s=Math.floor(e),o=Math.ceil(e);return s===o?a[s]:(1-(e-s))*a[s]+(1-(o-e))*a[o]},getValueCurveValueAtTime=(a,{duration:e,startTime:s,values:o})=>{const c=(a-s)/e*(o.length-1);return interpolateValue(o,c)},isSetTargetAutomationEvent=a=>a.type==="setTarget";class AutomationEventList{constructor(e){this._automationEvents=[],this._currenTime=0,this._defaultValue=e}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(e){const s=getEventTime(e);if(isCancelAndHoldAutomationEvent(e)||isCancelScheduledValuesAutomationEvent(e)){const o=this._automationEvents.findIndex(d=>isCancelScheduledValuesAutomationEvent(e)&&isSetValueCurveAutomationEvent(d)?d.startTime+d.duration>=s:getEventTime(d)>=s),c=this._automationEvents[o];if(o!==-1&&(this._automationEvents=this._automationEvents.slice(0,o)),isCancelAndHoldAutomationEvent(e)){const d=this._automationEvents[this._automationEvents.length-1];if(c!==void 0&&isAnyRampToValueAutomationEvent(c)){if(isSetTargetAutomationEvent(d))throw new Error("The internal list is malformed.");const _=isSetValueCurveAutomationEvent(d)?d.startTime+d.duration:getEventTime(d),b=isSetValueCurveAutomationEvent(d)?d.values[d.values.length-1]:d.value,k=isExponentialRampToValueAutomationEvent(c)?getExponentialRampValueAtTime(s,_,b,c):getLinearRampValueAtTime(s,_,b,c),$=isExponentialRampToValueAutomationEvent(c)?createExtendedExponentialRampToValueAutomationEvent(k,s,this._currenTime):createExtendedLinearRampToValueAutomationEvent(k,s,this._currenTime);this._automationEvents.push($)}d!==void 0&&isSetTargetAutomationEvent(d)&&this._automationEvents.push(createSetValueAutomationEvent(this.getValue(s),s)),d!==void 0&&isSetValueCurveAutomationEvent(d)&&d.startTime+d.duration>s&&(this._automationEvents[this._automationEvents.length-1]=createSetValueCurveAutomationEvent(new Float32Array([6,7]),d.startTime,s-d.startTime))}}else{const o=this._automationEvents.findIndex(_=>getEventTime(_)>s),c=o===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[o-1];if(c!==void 0&&isSetValueCurveAutomationEvent(c)&&getEventTime(c)+c.duration>s)return!1;const d=isExponentialRampToValueAutomationEvent(e)?createExtendedExponentialRampToValueAutomationEvent(e.value,e.endTime,this._currenTime):isLinearRampToValueAutomationEvent(e)?createExtendedLinearRampToValueAutomationEvent(e.value,s,this._currenTime):e;if(o===-1)this._automationEvents.push(d);else{if(isSetValueCurveAutomationEvent(e)&&s+e.duration>getEventTime(this._automationEvents[o]))return!1;this._automationEvents.splice(o,0,d)}}return!0}flush(e){const s=this._automationEvents.findIndex(o=>getEventTime(o)>e);if(s>1){const o=this._automationEvents.slice(s-1),c=o[0];isSetTargetAutomationEvent(c)&&o.unshift(createSetValueAutomationEvent(getValueOfAutomationEventAtIndexAtTime(this._automationEvents,s-2,c.startTime,this._defaultValue),c.startTime)),this._automationEvents=o}}getValue(e){if(this._automationEvents.length===0)return this._defaultValue;const s=this._automationEvents.findIndex(_=>getEventTime(_)>e),o=this._automationEvents[s],c=(s===-1?this._automationEvents.length:s)-1,d=this._automationEvents[c];if(d!==void 0&&isSetTargetAutomationEvent(d)&&(o===void 0||!isAnyRampToValueAutomationEvent(o)||o.insertTime>e))return getTargetValueAtTime(e,getValueOfAutomationEventAtIndexAtTime(this._automationEvents,c-1,d.startTime,this._defaultValue),d);if(d!==void 0&&isSetValueAutomationEvent(d)&&(o===void 0||!isAnyRampToValueAutomationEvent(o)))return d.value;if(d!==void 0&&isSetValueCurveAutomationEvent(d)&&(o===void 0||!isAnyRampToValueAutomationEvent(o)||d.startTime+d.duration>e))return e({cancelTime:a,type:"cancelAndHold"}),createCancelScheduledValuesAutomationEvent=a=>({cancelTime:a,type:"cancelScheduledValues"}),createExponentialRampToValueAutomationEvent=(a,e)=>({endTime:e,type:"exponentialRampToValue",value:a}),createLinearRampToValueAutomationEvent=(a,e)=>({endTime:e,type:"linearRampToValue",value:a}),createSetTargetAutomationEvent=(a,e,s)=>({startTime:e,target:a,timeConstant:s,type:"setTarget"}),createAbortError=()=>new DOMException("","AbortError"),createAddActiveInputConnectionToAudioNode=a=>(e,s,[o,c,d],_)=>{a(e[c],[s,o,d],b=>b[0]===s&&b[1]===o,_)},createAddAudioNodeConnections=a=>(e,s,o)=>{const c=[];for(let d=0;d(e,s)=>{a.set(e,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:s})},ACTIVE_AUDIO_NODE_STORE=new WeakSet,AUDIO_NODE_CONNECTIONS_STORE=new WeakMap,AUDIO_NODE_STORE=new WeakMap,AUDIO_PARAM_CONNECTIONS_STORE=new WeakMap,AUDIO_PARAM_STORE=new WeakMap,CONTEXT_STORE=new WeakMap,EVENT_LISTENERS=new WeakMap,CYCLE_COUNTERS=new WeakMap,NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS=new WeakMap,NODE_TO_PROCESSOR_MAPS=new WeakMap,handler={construct(){return handler}},isConstructible=a=>{try{const e=new Proxy(a,handler);new e}catch{return!1}return!0},IMPORT_STATEMENT_REGEX=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,splitImportStatements=(a,e)=>{const s=[];let o=a.replace(/^[\s]+/,""),c=o.match(IMPORT_STATEMENT_REGEX);for(;c!==null;){const d=c[1].slice(1,-1),_=c[0].replace(/([\s]+)?;?$/,"").replace(d,new URL(d,e).toString());s.push(_),o=o.slice(c[0].length).replace(/^[\s]+/,""),c=o.match(IMPORT_STATEMENT_REGEX)}return[s.join(";"),o]},verifyParameterDescriptors=a=>{if(a!==void 0&&!Array.isArray(a))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},verifyProcessorCtor=a=>{if(!isConstructible(a))throw new TypeError("The given value for processorCtor should be a constructor.");if(a.prototype===null||typeof a.prototype!="object")throw new TypeError("The given value for processorCtor should have a prototype.")},createAddAudioWorkletModule=(a,e,s,o,c,d,_,b,k,$,j,_e,et)=>{let tt=0;return(nt,it,rt={credentials:"omit"})=>{const st=j.get(nt);if(st!==void 0&&st.has(it))return Promise.resolve();const ot=$.get(nt);if(ot!==void 0){const lt=ot.get(it);if(lt!==void 0)return lt}const at=d(nt),ht=at.audioWorklet===void 0?c(it).then(([lt,ut])=>{const[ct,dt]=splitImportStatements(lt,ut),ft=`${ct};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${dt} +})})(window,'_AWGS')`;return s(ft)}).then(()=>{const lt=et._AWGS.pop();if(lt===void 0)throw new SyntaxError;o(at.currentTime,at.sampleRate,()=>lt(class{},void 0,(ut,ct)=>{if(ut.trim()==="")throw e();const dt=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(at);if(dt!==void 0){if(dt.has(ut))throw e();verifyProcessorCtor(ct),verifyParameterDescriptors(ct.parameterDescriptors),dt.set(ut,ct)}else verifyProcessorCtor(ct),verifyParameterDescriptors(ct.parameterDescriptors),NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.set(at,new Map([[ut,ct]]))},at.sampleRate,void 0,void 0))}):Promise.all([c(it),Promise.resolve(a(_e,_e))]).then(([[lt,ut],ct])=>{const dt=tt+1;tt=dt;const[ft,Et]=splitImportStatements(lt,ut),pt=`${ft};((AudioWorkletProcessor,registerProcessor)=>{${Et} +})(${ct?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${ct?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${ct?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${dt}',class extends AudioWorkletProcessor{process(){return !1}})`,mt=new Blob([pt],{type:"application/javascript; charset=utf-8"}),At=URL.createObjectURL(mt);return at.audioWorklet.addModule(At,rt).then(()=>{if(b(at))return at;const Ot=_(at);return Ot.audioWorklet.addModule(At,rt).then(()=>Ot)}).then(Ot=>{if(k===null)throw new SyntaxError;try{new k(Ot,`__sac${dt}`)}catch{throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(At))});return ot===void 0?$.set(nt,new Map([[it,ht]])):ot.set(it,ht),ht.then(()=>{const lt=j.get(nt);lt===void 0?j.set(nt,new Set([it])):lt.add(it)}).finally(()=>{const lt=$.get(nt);lt!==void 0&<.delete(it)}),ht}},getValueForKey=(a,e)=>{const s=a.get(e);if(s===void 0)throw new Error("A value with the given key could not be found.");return s},pickElementFromSet=(a,e)=>{const s=Array.from(a).filter(e);if(s.length>1)throw Error("More than one element was found.");if(s.length===0)throw Error("No element was found.");const[o]=s;return a.delete(o),o},deletePassiveInputConnectionToAudioNode=(a,e,s,o)=>{const c=getValueForKey(a,e),d=pickElementFromSet(c,_=>_[0]===s&&_[1]===o);return c.size===0&&a.delete(e),d},getEventListenersOfAudioNode=a=>getValueForKey(EVENT_LISTENERS,a),setInternalStateToActive=a=>{if(ACTIVE_AUDIO_NODE_STORE.has(a))throw new Error("The AudioNode is already stored.");ACTIVE_AUDIO_NODE_STORE.add(a),getEventListenersOfAudioNode(a).forEach(e=>e(!0))},isAudioWorkletNode=a=>"port"in a,setInternalStateToPassive=a=>{if(!ACTIVE_AUDIO_NODE_STORE.has(a))throw new Error("The AudioNode is not stored.");ACTIVE_AUDIO_NODE_STORE.delete(a),getEventListenersOfAudioNode(a).forEach(e=>e(!1))},setInternalStateToPassiveWhenNecessary=(a,e)=>{!isAudioWorkletNode(a)&&e.every(s=>s.size===0)&&setInternalStateToPassive(a)},createAddConnectionToAudioNode=(a,e,s,o,c,d,_,b,k,$,j,_e,et)=>{const tt=new WeakMap;return(nt,it,rt,st,ot)=>{const{activeInputs:at,passiveInputs:ht}=d(it),{outputs:lt}=d(nt),ut=b(nt),ct=dt=>{const ft=k(it),Et=k(nt);if(dt){const yt=deletePassiveInputConnectionToAudioNode(ht,nt,rt,st);a(at,nt,yt,!1),!ot&&!_e(nt)&&s(Et,ft,rt,st),et(it)&&setInternalStateToActive(it)}else{const yt=o(at,nt,rt,st);e(ht,st,yt,!1),!ot&&!_e(nt)&&c(Et,ft,rt,st);const gt=_(it);if(gt===0)j(it)&&setInternalStateToPassiveWhenNecessary(it,at);else{const St=tt.get(it);St!==void 0&&clearTimeout(St),tt.set(it,setTimeout(()=>{j(it)&&setInternalStateToPassiveWhenNecessary(it,at)},gt*1e3))}}};return $(lt,[it,rt,st],dt=>dt[0]===it&&dt[1]===rt&&dt[2]===st,!0)?(ut.add(ct),j(nt)?a(at,nt,[rt,st,ct],!0):e(ht,st,[nt,rt,ct],!0),!0):!1}},createAddPassiveInputConnectionToAudioNode=a=>(e,s,[o,c,d],_)=>{const b=e.get(o);b===void 0?e.set(o,new Set([[c,s,d]])):a(b,[c,s,d],k=>k[0]===c&&k[1]===s,_)},createAddSilentConnection=a=>(e,s)=>{const o=a(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});s.connect(o).connect(e.destination);const c=()=>{s.removeEventListener("ended",c),s.disconnect(o),o.disconnect()};s.addEventListener("ended",c)},createAddUnrenderedAudioWorkletNode=a=>(e,s)=>{a(e).add(s)},DEFAULT_OPTIONS$l={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},createAnalyserNodeConstructor=(a,e,s,o,c,d)=>class extends a{constructor(b,k){const $=c(b),j=Dt(Dt({},DEFAULT_OPTIONS$l),k),_e=o($,j),et=d($)?e():null;super(b,!1,_e,et),this._nativeAnalyserNode=_e}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(b){this._nativeAnalyserNode.fftSize=b}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(b){const k=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=b,!(b>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=k,s()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(b){const k=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=b,!(this._nativeAnalyserNode.maxDecibels>b))throw this._nativeAnalyserNode.minDecibels=k,s()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(b){this._nativeAnalyserNode.smoothingTimeConstant=b}getByteFrequencyData(b){this._nativeAnalyserNode.getByteFrequencyData(b)}getByteTimeDomainData(b){this._nativeAnalyserNode.getByteTimeDomainData(b)}getFloatFrequencyData(b){this._nativeAnalyserNode.getFloatFrequencyData(b)}getFloatTimeDomainData(b){this._nativeAnalyserNode.getFloatTimeDomainData(b)}},isOwnedByContext=(a,e)=>a.context===e,createAnalyserNodeRendererFactory=(a,e,s)=>()=>{const o=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,fftSize:b.fftSize,maxDecibels:b.maxDecibels,minDecibels:b.minDecibels,smoothingTimeConstant:b.smoothingTimeConstant};b=a(_,$)}return o.set(_,b),await s(d,_,b),b};return{render(d,_){const b=o.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},testAudioBufferCopyChannelMethodsOutOfBoundsSupport=a=>{try{a.copyToChannel(new Float32Array(1),0,-1)}catch{return!1}return!0},createIndexSizeError=()=>new DOMException("","IndexSizeError"),wrapAudioBufferGetChannelDataMethod=a=>{a.getChannelData=(e=>s=>{try{return e.call(a,s)}catch(o){throw o.code===12?createIndexSizeError():o}})(a.getChannelData)},DEFAULT_OPTIONS$k={numberOfChannels:1},createAudioBufferConstructor=(a,e,s,o,c,d,_,b)=>{let k=null;return class mr{constructor(j){if(c===null)throw new Error("Missing the native OfflineAudioContext constructor.");const{length:_e,numberOfChannels:et,sampleRate:tt}=Dt(Dt({},DEFAULT_OPTIONS$k),j);k===null&&(k=new c(1,1,44100));const nt=o!==null&&e(d,d)?new o({length:_e,numberOfChannels:et,sampleRate:tt}):k.createBuffer(et,_e,tt);if(nt.numberOfChannels===0)throw s();return typeof nt.copyFromChannel!="function"?(_(nt),wrapAudioBufferGetChannelDataMethod(nt)):e(testAudioBufferCopyChannelMethodsOutOfBoundsSupport,()=>testAudioBufferCopyChannelMethodsOutOfBoundsSupport(nt))||b(nt),a.add(nt),nt}static[Symbol.hasInstance](j){return j!==null&&typeof j=="object"&&Object.getPrototypeOf(j)===mr.prototype||a.has(j)}}},MOST_NEGATIVE_SINGLE_FLOAT=-34028234663852886e22,MOST_POSITIVE_SINGLE_FLOAT=-MOST_NEGATIVE_SINGLE_FLOAT,isActiveAudioNode=a=>ACTIVE_AUDIO_NODE_STORE.has(a),DEFAULT_OPTIONS$j={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},createAudioBufferSourceNodeConstructor=(a,e,s,o,c,d,_,b)=>class extends a{constructor($,j){const _e=d($),et=Dt(Dt({},DEFAULT_OPTIONS$j),j),tt=c(_e,et),nt=_(_e),it=nt?e():null;super($,!1,tt,it),this._audioBufferSourceNodeRenderer=it,this._isBufferNullified=!1,this._isBufferSet=et.buffer!==null,this._nativeAudioBufferSourceNode=tt,this._onended=null,this._playbackRate=s(this,nt,tt.playbackRate,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer($){if(this._nativeAudioBufferSourceNode.buffer=$,$!==null){if(this._isBufferSet)throw o();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop($){this._nativeAudioBufferSourceNode.loop=$}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd($){this._nativeAudioBufferSourceNode.loopEnd=$}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart($){this._nativeAudioBufferSourceNode.loopStart=$}get onended(){return this._onended}set onended($){const j=typeof $=="function"?b(this,$):null;this._nativeAudioBufferSourceNode.onended=j;const _e=this._nativeAudioBufferSourceNode.onended;this._onended=_e!==null&&_e===j?$:_e}get playbackRate(){return this._playbackRate}start($=0,j=0,_e){if(this._nativeAudioBufferSourceNode.start($,j,_e),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=_e===void 0?[$,j]:[$,j,_e]),this.context.state!=="closed"){setInternalStateToActive(this);const et=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",et),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",et)}}stop($=0){this._nativeAudioBufferSourceNode.stop($),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=$)}},createAudioBufferSourceNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap;let _=null,b=null;const k=async($,j)=>{let _e=s($);const et=isOwnedByContext(_e,j);if(!et){const tt={buffer:_e.buffer,channelCount:_e.channelCount,channelCountMode:_e.channelCountMode,channelInterpretation:_e.channelInterpretation,loop:_e.loop,loopEnd:_e.loopEnd,loopStart:_e.loopStart,playbackRate:_e.playbackRate.value};_e=e(j,tt),_!==null&&_e.start(..._),b!==null&&_e.stop(b)}return d.set(j,_e),et?await a(j,$.playbackRate,_e.playbackRate):await o(j,$.playbackRate,_e.playbackRate),await c($,j,_e),_e};return{set start($){_=$},set stop($){b=$},render($,j){const _e=d.get(j);return _e!==void 0?Promise.resolve(_e):k($,j)}}},isAudioBufferSourceNode=a=>"playbackRate"in a,isBiquadFilterNode=a=>"frequency"in a&&"gain"in a,isConstantSourceNode=a=>"offset"in a,isGainNode=a=>!("frequency"in a)&&"gain"in a,isOscillatorNode=a=>"detune"in a&&"frequency"in a,isStereoPannerNode=a=>"pan"in a,getAudioNodeConnections=a=>getValueForKey(AUDIO_NODE_CONNECTIONS_STORE,a),getAudioParamConnections=a=>getValueForKey(AUDIO_PARAM_CONNECTIONS_STORE,a),deactivateActiveAudioNodeInputConnections=(a,e)=>{const{activeInputs:s}=getAudioNodeConnections(a);s.forEach(c=>c.forEach(([d])=>{e.includes(a)||deactivateActiveAudioNodeInputConnections(d,[...e,a])}));const o=isAudioBufferSourceNode(a)?[a.playbackRate]:isAudioWorkletNode(a)?Array.from(a.parameters.values()):isBiquadFilterNode(a)?[a.Q,a.detune,a.frequency,a.gain]:isConstantSourceNode(a)?[a.offset]:isGainNode(a)?[a.gain]:isOscillatorNode(a)?[a.detune,a.frequency]:isStereoPannerNode(a)?[a.pan]:[];for(const c of o){const d=getAudioParamConnections(c);d!==void 0&&d.activeInputs.forEach(([_])=>deactivateActiveAudioNodeInputConnections(_,e))}isActiveAudioNode(a)&&setInternalStateToPassive(a)},deactivateAudioGraph=a=>{deactivateActiveAudioNodeInputConnections(a.destination,[])},isValidLatencyHint=a=>a===void 0||typeof a=="number"||typeof a=="string"&&(a==="balanced"||a==="interactive"||a==="playback"),createAudioContextConstructor=(a,e,s,o,c,d,_,b,k)=>class extends a{constructor(j={}){if(k===null)throw new Error("Missing the native AudioContext constructor.");let _e;try{_e=new k(j)}catch(nt){throw nt.code===12&&nt.message==="sampleRate is not in range"?s():nt}if(_e===null)throw o();if(!isValidLatencyHint(j.latencyHint))throw new TypeError(`The provided value '${j.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(j.sampleRate!==void 0&&_e.sampleRate!==j.sampleRate)throw s();super(_e,2);const{latencyHint:et}=j,{sampleRate:tt}=_e;if(this._baseLatency=typeof _e.baseLatency=="number"?_e.baseLatency:et==="balanced"?512/tt:et==="interactive"||et===void 0?256/tt:et==="playback"?1024/tt:Math.max(2,Math.min(128,Math.round(et*tt/128)))*128/tt,this._nativeAudioContext=_e,k.name==="webkitAudioContext"?(this._nativeGainNode=_e.createGain(),this._nativeOscillatorNode=_e.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(_e.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,_e.state==="running"){this._state="suspended";const nt=()=>{this._state==="suspended"&&(this._state=null),_e.removeEventListener("statechange",nt)};_e.addEventListener("statechange",nt)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw e()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),deactivateAudioGraph(this)}))}createMediaElementSource(j){return new c(this,{mediaElement:j})}createMediaStreamDestination(){return new d(this)}createMediaStreamSource(j){return new _(this,{mediaStream:j})}createMediaStreamTrackSource(j){return new b(this,{mediaStreamTrack:j})}resume(){return this._state==="suspended"?new Promise((j,_e)=>{const et=()=>{this._nativeAudioContext.removeEventListener("statechange",et),this._nativeAudioContext.state==="running"?j():this.resume().then(j,_e)};this._nativeAudioContext.addEventListener("statechange",et)}):this._nativeAudioContext.resume().catch(j=>{throw j===void 0||j.code===15?e():j})}suspend(){return this._nativeAudioContext.suspend().catch(j=>{throw j===void 0?e():j})}},createAudioDestinationNodeConstructor=(a,e,s,o,c,d,_,b)=>class extends a{constructor($,j){const _e=d($),et=_(_e),tt=c(_e,j,et),nt=et?e(b):null;super($,!1,tt,nt),this._isNodeOfNativeOfflineAudioContext=et,this._nativeAudioDestinationNode=tt}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount($){if(this._isNodeOfNativeOfflineAudioContext)throw o();if($>this._nativeAudioDestinationNode.maxChannelCount)throw s();this._nativeAudioDestinationNode.channelCount=$}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode($){if(this._isNodeOfNativeOfflineAudioContext)throw o();this._nativeAudioDestinationNode.channelCountMode=$}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}},createAudioDestinationNodeRenderer=a=>{const e=new WeakMap,s=async(o,c)=>{const d=c.destination;return e.set(c,d),await a(o,c,d),d};return{render(o,c){const d=e.get(c);return d!==void 0?Promise.resolve(d):s(o,c)}}},createAudioListenerFactory=(a,e,s,o,c,d,_,b)=>(k,$)=>{const j=$.listener,_e=()=>{const lt=new Float32Array(1),ut=e($,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),ct=_($);let dt=!1,ft=[0,0,-1,0,1,0],Et=[0,0,0];const yt=()=>{if(dt)return;dt=!0;const mt=o($,256,9,0);mt.onaudioprocess=({inputBuffer:At})=>{const Ot=[d(At,lt,0),d(At,lt,1),d(At,lt,2),d(At,lt,3),d(At,lt,4),d(At,lt,5)];Ot.some((Ct,Tt)=>Ct!==ft[Tt])&&(j.setOrientation(...Ot),ft=Ot);const vt=[d(At,lt,6),d(At,lt,7),d(At,lt,8)];vt.some((Ct,Tt)=>Ct!==Et[Tt])&&(j.setPosition(...vt),Et=vt)},ut.connect(mt)},gt=mt=>At=>{At!==ft[mt]&&(ft[mt]=At,j.setOrientation(...ft))},St=mt=>At=>{At!==Et[mt]&&(Et[mt]=At,j.setPosition(...Et))},pt=(mt,At,Ot)=>{const vt=s($,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:At});vt.connect(ut,0,mt),vt.start(),Object.defineProperty(vt.offset,"defaultValue",{get(){return At}});const Ct=a({context:k},ct,vt.offset,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT);return b(Ct,"value",Tt=>()=>Tt.call(Ct),Tt=>_t=>{try{Tt.call(Ct,_t)}catch(bt){if(bt.code!==9)throw bt}yt(),ct&&Ot(_t)}),Ct.cancelAndHoldAtTime=(Tt=>ct?()=>{throw c()}:(..._t)=>{const bt=Tt.apply(Ct,_t);return yt(),bt})(Ct.cancelAndHoldAtTime),Ct.cancelScheduledValues=(Tt=>ct?()=>{throw c()}:(..._t)=>{const bt=Tt.apply(Ct,_t);return yt(),bt})(Ct.cancelScheduledValues),Ct.exponentialRampToValueAtTime=(Tt=>ct?()=>{throw c()}:(..._t)=>{const bt=Tt.apply(Ct,_t);return yt(),bt})(Ct.exponentialRampToValueAtTime),Ct.linearRampToValueAtTime=(Tt=>ct?()=>{throw c()}:(..._t)=>{const bt=Tt.apply(Ct,_t);return yt(),bt})(Ct.linearRampToValueAtTime),Ct.setTargetAtTime=(Tt=>ct?()=>{throw c()}:(..._t)=>{const bt=Tt.apply(Ct,_t);return yt(),bt})(Ct.setTargetAtTime),Ct.setValueAtTime=(Tt=>ct?()=>{throw c()}:(..._t)=>{const bt=Tt.apply(Ct,_t);return yt(),bt})(Ct.setValueAtTime),Ct.setValueCurveAtTime=(Tt=>ct?()=>{throw c()}:(..._t)=>{const bt=Tt.apply(Ct,_t);return yt(),bt})(Ct.setValueCurveAtTime),Ct};return{forwardX:pt(0,0,gt(0)),forwardY:pt(1,0,gt(1)),forwardZ:pt(2,-1,gt(2)),positionX:pt(6,0,St(0)),positionY:pt(7,0,St(1)),positionZ:pt(8,0,St(2)),upX:pt(3,0,gt(3)),upY:pt(4,1,gt(4)),upZ:pt(5,0,gt(5))}},{forwardX:et,forwardY:tt,forwardZ:nt,positionX:it,positionY:rt,positionZ:st,upX:ot,upY:at,upZ:ht}=j.forwardX===void 0?_e():j;return{get forwardX(){return et},get forwardY(){return tt},get forwardZ(){return nt},get positionX(){return it},get positionY(){return rt},get positionZ(){return st},get upX(){return ot},get upY(){return at},get upZ(){return ht}}},isAudioNode$1=a=>"context"in a,isAudioNodeOutputConnection=a=>isAudioNode$1(a[0]),insertElementInSet=(a,e,s,o)=>{for(const c of a)if(s(c)){if(o)return!1;throw Error("The set contains at least one similar element.")}return a.add(e),!0},addActiveInputConnectionToAudioParam=(a,e,[s,o],c)=>{insertElementInSet(a,[e,s,o],d=>d[0]===e&&d[1]===s,c)},addPassiveInputConnectionToAudioParam=(a,[e,s,o],c)=>{const d=a.get(e);d===void 0?a.set(e,new Set([[s,o]])):insertElementInSet(d,[s,o],_=>_[0]===s,c)},isNativeAudioNodeFaker=a=>"inputs"in a,connectNativeAudioNodeToNativeAudioNode=(a,e,s,o)=>{if(isNativeAudioNodeFaker(e)){const c=e.inputs[o];return a.connect(c,s,0),[c,s,0]}return a.connect(e,s,o),[e,s,o]},deleteActiveInputConnection=(a,e,s)=>{for(const o of a)if(o[0]===e&&o[1]===s)return a.delete(o),o;return null},deleteActiveInputConnectionToAudioParam=(a,e,s)=>pickElementFromSet(a,o=>o[0]===e&&o[1]===s),deleteEventListenerOfAudioNode=(a,e)=>{if(!getEventListenersOfAudioNode(a).delete(e))throw new Error("Missing the expected event listener.")},deletePassiveInputConnectionToAudioParam=(a,e,s)=>{const o=getValueForKey(a,e),c=pickElementFromSet(o,d=>d[0]===s);return o.size===0&&a.delete(e),c},disconnectNativeAudioNodeFromNativeAudioNode=(a,e,s,o)=>{isNativeAudioNodeFaker(e)?a.disconnect(e.inputs[o],s,0):a.disconnect(e,s,o)},getNativeAudioNode=a=>getValueForKey(AUDIO_NODE_STORE,a),getNativeAudioParam=a=>getValueForKey(AUDIO_PARAM_STORE,a),isPartOfACycle=a=>CYCLE_COUNTERS.has(a),isPassiveAudioNode=a=>!ACTIVE_AUDIO_NODE_STORE.has(a),testAudioNodeDisconnectMethodSupport=(a,e)=>new Promise(s=>{if(e!==null)s(!0);else{const o=a.createScriptProcessor(256,1,1),c=a.createGain(),d=a.createBuffer(1,2,44100),_=d.getChannelData(0);_[0]=1,_[1]=1;const b=a.createBufferSource();b.buffer=d,b.loop=!0,b.connect(o).connect(a.destination),b.connect(c),b.disconnect(c),o.onaudioprocess=k=>{const $=k.inputBuffer.getChannelData(0);Array.prototype.some.call($,j=>j===1)?s(!0):s(!1),b.stop(),o.onaudioprocess=null,b.disconnect(o),o.disconnect(a.destination)},b.start()}}),visitEachAudioNodeOnce=(a,e)=>{const s=new Map;for(const o of a)for(const c of o){const d=s.get(c);s.set(c,d===void 0?1:d+1)}s.forEach((o,c)=>e(c,o))},isNativeAudioNode$1=a=>"context"in a,wrapAudioNodeDisconnectMethod=a=>{const e=new Map;a.connect=(s=>(o,c=0,d=0)=>{const _=isNativeAudioNode$1(o)?s(o,c,d):s(o,c),b=e.get(o);return b===void 0?e.set(o,[{input:d,output:c}]):b.every(k=>k.input!==d||k.output!==c)&&b.push({input:d,output:c}),_})(a.connect.bind(a)),a.disconnect=(s=>(o,c,d)=>{if(s.apply(a),o===void 0)e.clear();else if(typeof o=="number")for(const[_,b]of e){const k=b.filter($=>$.output!==o);k.length===0?e.delete(_):e.set(_,k)}else if(e.has(o))if(c===void 0)e.delete(o);else{const _=e.get(o);if(_!==void 0){const b=_.filter(k=>k.output!==c&&(k.input!==d||d===void 0));b.length===0?e.delete(o):e.set(o,b)}}for(const[_,b]of e)b.forEach(k=>{isNativeAudioNode$1(_)?a.connect(_,k.output,k.input):a.connect(_,k.output)})})(a.disconnect)},addConnectionToAudioParamOfAudioContext=(a,e,s,o)=>{const{activeInputs:c,passiveInputs:d}=getAudioParamConnections(e),{outputs:_}=getAudioNodeConnections(a),b=getEventListenersOfAudioNode(a),k=$=>{const j=getNativeAudioNode(a),_e=getNativeAudioParam(e);if($){const et=deletePassiveInputConnectionToAudioParam(d,a,s);addActiveInputConnectionToAudioParam(c,a,et,!1),!o&&!isPartOfACycle(a)&&j.connect(_e,s)}else{const et=deleteActiveInputConnectionToAudioParam(c,a,s);addPassiveInputConnectionToAudioParam(d,et,!1),!o&&!isPartOfACycle(a)&&j.disconnect(_e,s)}};return insertElementInSet(_,[e,s],$=>$[0]===e&&$[1]===s,!0)?(b.add(k),isActiveAudioNode(a)?addActiveInputConnectionToAudioParam(c,a,[s,k],!0):addPassiveInputConnectionToAudioParam(d,[a,s,k],!0),!0):!1},deleteInputConnectionOfAudioNode=(a,e,s,o)=>{const{activeInputs:c,passiveInputs:d}=getAudioNodeConnections(e),_=deleteActiveInputConnection(c[o],a,s);return _===null?[deletePassiveInputConnectionToAudioNode(d,a,s,o)[2],!1]:[_[2],!0]},deleteInputConnectionOfAudioParam=(a,e,s)=>{const{activeInputs:o,passiveInputs:c}=getAudioParamConnections(e),d=deleteActiveInputConnection(o,a,s);return d===null?[deletePassiveInputConnectionToAudioParam(c,a,s)[1],!1]:[d[2],!0]},deleteInputsOfAudioNode=(a,e,s,o,c)=>{const[d,_]=deleteInputConnectionOfAudioNode(a,s,o,c);if(d!==null&&(deleteEventListenerOfAudioNode(a,d),_&&!e&&!isPartOfACycle(a)&&disconnectNativeAudioNodeFromNativeAudioNode(getNativeAudioNode(a),getNativeAudioNode(s),o,c)),isActiveAudioNode(s)){const{activeInputs:b}=getAudioNodeConnections(s);setInternalStateToPassiveWhenNecessary(s,b)}},deleteInputsOfAudioParam=(a,e,s,o)=>{const[c,d]=deleteInputConnectionOfAudioParam(a,s,o);c!==null&&(deleteEventListenerOfAudioNode(a,c),d&&!e&&!isPartOfACycle(a)&&getNativeAudioNode(a).disconnect(getNativeAudioParam(s),o))},deleteAnyConnection=(a,e)=>{const s=getAudioNodeConnections(a),o=[];for(const c of s.outputs)isAudioNodeOutputConnection(c)?deleteInputsOfAudioNode(a,e,...c):deleteInputsOfAudioParam(a,e,...c),o.push(c[0]);return s.outputs.clear(),o},deleteConnectionAtOutput=(a,e,s)=>{const o=getAudioNodeConnections(a),c=[];for(const d of o.outputs)d[1]===s&&(isAudioNodeOutputConnection(d)?deleteInputsOfAudioNode(a,e,...d):deleteInputsOfAudioParam(a,e,...d),c.push(d[0]),o.outputs.delete(d));return c},deleteConnectionToDestination=(a,e,s,o,c)=>{const d=getAudioNodeConnections(a);return Array.from(d.outputs).filter(_=>_[0]===s&&(o===void 0||_[1]===o)&&(c===void 0||_[2]===c)).map(_=>(isAudioNodeOutputConnection(_)?deleteInputsOfAudioNode(a,e,..._):deleteInputsOfAudioParam(a,e,..._),d.outputs.delete(_),_[0]))},createAudioNodeConstructor=(a,e,s,o,c,d,_,b,k,$,j,_e,et,tt,nt,it)=>class extends ${constructor(st,ot,at,ht){super(at),this._context=st,this._nativeAudioNode=at;const lt=j(st);_e(lt)&&s(testAudioNodeDisconnectMethodSupport,()=>testAudioNodeDisconnectMethodSupport(lt,it))!==!0&&wrapAudioNodeDisconnectMethod(at),AUDIO_NODE_STORE.set(this,at),EVENT_LISTENERS.set(this,new Set),st.state!=="closed"&&ot&&setInternalStateToActive(this),a(this,ht,at)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(st){this._nativeAudioNode.channelCount=st}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(st){this._nativeAudioNode.channelCountMode=st}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(st){this._nativeAudioNode.channelInterpretation=st}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(st,ot=0,at=0){if(ot<0||ot>=this._nativeAudioNode.numberOfOutputs)throw c();const ht=j(this._context),lt=nt(ht);if(et(st)||tt(st))throw d();if(isAudioNode$1(st)){const dt=getNativeAudioNode(st);try{const Et=connectNativeAudioNodeToNativeAudioNode(this._nativeAudioNode,dt,ot,at),yt=isPassiveAudioNode(this);(lt||yt)&&this._nativeAudioNode.disconnect(...Et),this.context.state!=="closed"&&!yt&&isPassiveAudioNode(st)&&setInternalStateToActive(st)}catch(Et){throw Et.code===12?d():Et}if(e(this,st,ot,at,lt)){const Et=k([this],st);visitEachAudioNodeOnce(Et,o(lt))}return st}const ut=getNativeAudioParam(st);if(ut.name==="playbackRate"&&ut.maxValue===1024)throw _();try{this._nativeAudioNode.connect(ut,ot),(lt||isPassiveAudioNode(this))&&this._nativeAudioNode.disconnect(ut,ot)}catch(dt){throw dt.code===12?d():dt}if(addConnectionToAudioParamOfAudioContext(this,st,ot,lt)){const dt=k([this],st);visitEachAudioNodeOnce(dt,o(lt))}}disconnect(st,ot,at){let ht;const lt=j(this._context),ut=nt(lt);if(st===void 0)ht=deleteAnyConnection(this,ut);else if(typeof st=="number"){if(st<0||st>=this.numberOfOutputs)throw c();ht=deleteConnectionAtOutput(this,ut,st)}else{if(ot!==void 0&&(ot<0||ot>=this.numberOfOutputs)||isAudioNode$1(st)&&at!==void 0&&(at<0||at>=st.numberOfInputs))throw c();if(ht=deleteConnectionToDestination(this,ut,st,ot,at),ht.length===0)throw d()}for(const ct of ht){const dt=k([this],ct);visitEachAudioNodeOnce(dt,b)}}},createAudioParamFactory=(a,e,s,o,c,d,_,b,k,$,j,_e,et)=>(tt,nt,it,rt=null,st=null)=>{const ot=new AutomationEventList(it.defaultValue),at=nt?o(ot):null,ht={get defaultValue(){return it.defaultValue},get maxValue(){return rt===null?it.maxValue:rt},get minValue(){return st===null?it.minValue:st},get value(){return it.value},set value(lt){it.value=lt,ht.setValueAtTime(lt,tt.context.currentTime)},cancelAndHoldAtTime(lt){if(typeof it.cancelAndHoldAtTime=="function")at===null&&ot.flush(tt.context.currentTime),ot.add(c(lt)),it.cancelAndHoldAtTime(lt);else{const ut=Array.from(ot).pop();at===null&&ot.flush(tt.context.currentTime),ot.add(c(lt));const ct=Array.from(ot).pop();it.cancelScheduledValues(lt),ut!==ct&&ct!==void 0&&(ct.type==="exponentialRampToValue"?it.exponentialRampToValueAtTime(ct.value,ct.endTime):ct.type==="linearRampToValue"?it.linearRampToValueAtTime(ct.value,ct.endTime):ct.type==="setValue"?it.setValueAtTime(ct.value,ct.startTime):ct.type==="setValueCurve"&&it.setValueCurveAtTime(ct.values,ct.startTime,ct.duration))}return ht},cancelScheduledValues(lt){return at===null&&ot.flush(tt.context.currentTime),ot.add(d(lt)),it.cancelScheduledValues(lt),ht},exponentialRampToValueAtTime(lt,ut){if(lt===0)throw new RangeError;if(!Number.isFinite(ut)||ut<0)throw new RangeError;return at===null&&ot.flush(tt.context.currentTime),ot.add(_(lt,ut)),it.exponentialRampToValueAtTime(lt,ut),ht},linearRampToValueAtTime(lt,ut){return at===null&&ot.flush(tt.context.currentTime),ot.add(b(lt,ut)),it.linearRampToValueAtTime(lt,ut),ht},setTargetAtTime(lt,ut,ct){return at===null&&ot.flush(tt.context.currentTime),ot.add(k(lt,ut,ct)),it.setTargetAtTime(lt,ut,ct),ht},setValueAtTime(lt,ut){return at===null&&ot.flush(tt.context.currentTime),ot.add($(lt,ut)),it.setValueAtTime(lt,ut),ht},setValueCurveAtTime(lt,ut,ct){const dt=lt instanceof Float32Array?lt:new Float32Array(lt);if(_e!==null&&_e.name==="webkitAudioContext"){const ft=ut+ct,Et=tt.context.sampleRate,yt=Math.ceil(ut*Et),gt=Math.floor(ft*Et),St=gt-yt,pt=new Float32Array(St);for(let At=0;At({replay(e){for(const s of a)if(s.type==="exponentialRampToValue"){const{endTime:o,value:c}=s;e.exponentialRampToValueAtTime(c,o)}else if(s.type==="linearRampToValue"){const{endTime:o,value:c}=s;e.linearRampToValueAtTime(c,o)}else if(s.type==="setTarget"){const{startTime:o,target:c,timeConstant:d}=s;e.setTargetAtTime(c,o,d)}else if(s.type==="setValue"){const{startTime:o,value:c}=s;e.setValueAtTime(c,o)}else if(s.type==="setValueCurve"){const{duration:o,startTime:c,values:d}=s;e.setValueCurveAtTime(d,c,o)}else throw new Error("Can't apply an unknown automation.")}});class ReadOnlyMap{constructor(e){this._map=new Map(e)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(e,s=null){return this._map.forEach((o,c)=>e.call(s,o,c,this))}get(e){return this._map.get(e)}has(e){return this._map.has(e)}keys(){return this._map.keys()}values(){return this._map.values()}}const DEFAULT_OPTIONS$i={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},createAudioWorkletNodeConstructor=(a,e,s,o,c,d,_,b,k,$,j,_e,et,tt)=>class extends e{constructor(it,rt,st){var ot;const at=b(it),ht=k(at),lt=j(Dt(Dt({},DEFAULT_OPTIONS$i),st));et(lt);const ut=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(at),ct=ut==null?void 0:ut.get(rt),dt=ht||at.state!=="closed"?at:(ot=_(at))!==null&&ot!==void 0?ot:at,ft=c(dt,ht?null:it.baseLatency,$,rt,ct,lt),Et=ht?o(rt,lt,ct):null;super(it,!0,ft,Et);const yt=[];ft.parameters.forEach((St,pt)=>{const mt=s(this,ht,St);yt.push([pt,mt])}),this._nativeAudioWorkletNode=ft,this._onprocessorerror=null,this._parameters=new ReadOnlyMap(yt),ht&&a(at,this);const{activeInputs:gt}=d(this);_e(ft,gt)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(it){const rt=typeof it=="function"?tt(this,it):null;this._nativeAudioWorkletNode.onprocessorerror=rt;const st=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=st!==null&&st===rt?it:st}get parameters(){return this._parameters===null?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}};function copyFromChannel(a,e,s,o,c){if(typeof a.copyFromChannel=="function")e[s].byteLength===0&&(e[s]=new Float32Array(128)),a.copyFromChannel(e[s],o,c);else{const d=a.getChannelData(o);if(e[s].byteLength===0)e[s]=d.slice(c,c+128);else{const _=new Float32Array(d.buffer,c*Float32Array.BYTES_PER_ELEMENT,128);e[s].set(_)}}}const copyToChannel=(a,e,s,o,c)=>{typeof a.copyToChannel=="function"?e[s].byteLength!==0&&a.copyToChannel(e[s],o,c):e[s].byteLength!==0&&a.getChannelData(o).set(e[s],c)},createNestedArrays=(a,e)=>{const s=[];for(let o=0;o{const s=getValueForKey(NODE_TO_PROCESSOR_MAPS,a),o=getNativeAudioNode(e);return getValueForKey(s,o)},processBuffer=async(a,e,s,o,c,d,_)=>{const b=e===null?Math.ceil(a.context.length/128)*128:e.length,k=o.channelCount*o.numberOfInputs,$=c.reduce((rt,st)=>rt+st,0),j=$===0?null:s.createBuffer($,b,s.sampleRate);if(d===void 0)throw new Error("Missing the processor constructor.");const _e=getAudioNodeConnections(a),et=await getAudioWorkletProcessor(s,a),tt=createNestedArrays(o.numberOfInputs,o.channelCount),nt=createNestedArrays(o.numberOfOutputs,c),it=Array.from(a.parameters.keys()).reduce((rt,st)=>kt(Dt({},rt),{[st]:new Float32Array(128)}),{});for(let rt=0;rt0&&e!==null)for(let st=0;st{copyFromChannel(e,it,st,k+ot,rt)});for(let st=0;st_e.activeInputs[ht].size===0?[]:at),ot=_(rt/s.sampleRate,s.sampleRate,()=>et.process(st,nt,it));if(j!==null)for(let at=0,ht=0;at(rt,st,ot)=>{const at=new WeakMap;let ht=null;const lt=async(ut,ct)=>{let dt=j(ut),ft=null;const Et=isOwnedByContext(dt,ct),yt=Array.isArray(st.outputChannelCount)?st.outputChannelCount:Array.from(st.outputChannelCount);if(_e===null){const gt=yt.reduce((At,Ot)=>At+Ot,0),St=c(ct,{channelCount:Math.max(1,gt),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,gt)}),pt=[];for(let At=0;At{const _t=new et(Ct,Math.ceil(ut.context.length/128)*128,ct.sampleRate),bt=[],xt=[];for(let It=0;It{const Ft=d(_t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:It.value});return await tt(_t,It,Ft.offset),Ft})),$t=o(_t,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,Ot+vt)});for(let It=0;Itnt(ut,_t,It))),it(_t)})(),ct,st,yt,ot,$)}const gt=await ht,St=s(ct,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[pt,mt,At]=ft;gt!==null&&(St.buffer=gt,St.start(0)),St.connect(pt);for(let Ot=0,vt=0;Otclass extends nt{constructor(lt,ut){super(lt,ut),this._nativeContext=lt,this._audioWorklet=a===void 0?void 0:{addModule:(ct,dt)=>a(this,ct,dt)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new e(this)}createBiquadFilter(){return new c(this)}createBuffer(lt,ut,ct){return new s({length:ut,numberOfChannels:lt,sampleRate:ct})}createBufferSource(){return new o(this)}createChannelMerger(lt=6){return new d(this,{numberOfInputs:lt})}createChannelSplitter(lt=6){return new _(this,{numberOfOutputs:lt})}createConstantSource(){return new b(this)}createConvolver(){return new k(this)}createDelay(lt=1){return new j(this,{maxDelayTime:lt})}createDynamicsCompressor(){return new _e(this)}createGain(){return new et(this)}createIIRFilter(lt,ut){return new tt(this,{feedback:ut,feedforward:lt})}createOscillator(){return new it(this)}createPanner(){return new rt(this)}createPeriodicWave(lt,ut,ct={disableNormalization:!1}){return new st(this,kt(Dt({},ct),{imag:ut,real:lt}))}createStereoPanner(){return new ot(this)}createWaveShaper(){return new at(this)}decodeAudioData(lt,ut,ct){return $(this._nativeContext,lt).then(dt=>(typeof ut=="function"&&ut(dt),dt),dt=>{throw typeof ct=="function"&&ct(dt),dt})}},DEFAULT_OPTIONS$h={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},createBiquadFilterNodeConstructor=(a,e,s,o,c,d,_,b)=>class extends a{constructor($,j){const _e=d($),et=Dt(Dt({},DEFAULT_OPTIONS$h),j),tt=c(_e,et),nt=_(_e),it=nt?s():null;super($,!1,tt,it),this._Q=e(this,nt,tt.Q,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._detune=e(this,nt,tt.detune,1200*Math.log2(MOST_POSITIVE_SINGLE_FLOAT),-1200*Math.log2(MOST_POSITIVE_SINGLE_FLOAT)),this._frequency=e(this,nt,tt.frequency,$.sampleRate/2,0),this._gain=e(this,nt,tt.gain,40*Math.log10(MOST_POSITIVE_SINGLE_FLOAT),MOST_NEGATIVE_SINGLE_FLOAT),this._nativeBiquadFilterNode=tt,b(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type($){this._nativeBiquadFilterNode.type=$}getFrequencyResponse($,j,_e){try{this._nativeBiquadFilterNode.getFrequencyResponse($,j,_e)}catch(et){throw et.code===11?o():et}if($.length!==j.length||j.length!==_e.length)throw o()}},createBiquadFilterNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={Q:$.Q.value,channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,detune:$.detune.value,frequency:$.frequency.value,gain:$.gain.value,type:$.type};$=e(k,_e)}return d.set(k,$),j?(await a(k,b.Q,$.Q),await a(k,b.detune,$.detune),await a(k,b.frequency,$.frequency),await a(k,b.gain,$.gain)):(await o(k,b.Q,$.Q),await o(k,b.detune,$.detune),await o(k,b.frequency,$.frequency),await o(k,b.gain,$.gain)),await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createCacheTestResult=(a,e)=>(s,o)=>{const c=e.get(s);if(c!==void 0)return c;const d=a.get(s);if(d!==void 0)return d;try{const _=o();return _ instanceof Promise?(a.set(s,_),_.catch(()=>!1).then(b=>(a.delete(s),e.set(s,b),b))):(e.set(s,_),_)}catch{return e.set(s,!1),!1}},DEFAULT_OPTIONS$g={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},createChannelMergerNodeConstructor=(a,e,s,o,c)=>class extends a{constructor(_,b){const k=o(_),$=Dt(Dt({},DEFAULT_OPTIONS$g),b),j=s(k,$),_e=c(k)?e():null;super(_,!1,j,_e)}},createChannelMergerNodeRendererFactory=(a,e,s)=>()=>{const o=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,numberOfInputs:b.numberOfInputs};b=a(_,$)}return o.set(_,b),await s(d,_,b),b};return{render(d,_){const b=o.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},DEFAULT_OPTIONS$f={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},createChannelSplitterNodeConstructor=(a,e,s,o,c,d)=>class extends a{constructor(b,k){const $=o(b),j=d(Dt(Dt({},DEFAULT_OPTIONS$f),k)),_e=s($,j),et=c($)?e():null;super(b,!1,_e,et)}},createChannelSplitterNodeRendererFactory=(a,e,s)=>()=>{const o=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,numberOfOutputs:b.numberOfOutputs};b=a(_,$)}return o.set(_,b),await s(d,_,b),b};return{render(d,_){const b=o.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},createConnectAudioParam=a=>(e,s,o)=>a(s,e,o),createConnectMultipleOutputs=a=>(e,s,o=0,c=0)=>{const d=e[o];if(d===void 0)throw a();return isNativeAudioNode$1(s)?d.connect(s,0,c):d.connect(s,0)},createConnectedNativeAudioBufferSourceNodeFactory=a=>(e,s)=>{const o=a(e,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),c=e.createBuffer(1,2,44100);return o.buffer=c,o.loop=!0,o.connect(s),o.start(),()=>{o.stop(),o.disconnect(s)}},DEFAULT_OPTIONS$e={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},createConstantSourceNodeConstructor=(a,e,s,o,c,d,_)=>class extends a{constructor(k,$){const j=c(k),_e=Dt(Dt({},DEFAULT_OPTIONS$e),$),et=o(j,_e),tt=d(j),nt=tt?s():null;super(k,!1,et,nt),this._constantSourceNodeRenderer=nt,this._nativeConstantSourceNode=et,this._offset=e(this,tt,et.offset,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(k){const $=typeof k=="function"?_(this,k):null;this._nativeConstantSourceNode.onended=$;const j=this._nativeConstantSourceNode.onended;this._onended=j!==null&&j===$?k:j}start(k=0){if(this._nativeConstantSourceNode.start(k),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=k),this.context.state!=="closed"){setInternalStateToActive(this);const $=()=>{this._nativeConstantSourceNode.removeEventListener("ended",$),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeConstantSourceNode.addEventListener("ended",$)}}stop(k=0){this._nativeConstantSourceNode.stop(k),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=k)}},createConstantSourceNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap;let _=null,b=null;const k=async($,j)=>{let _e=s($);const et=isOwnedByContext(_e,j);if(!et){const tt={channelCount:_e.channelCount,channelCountMode:_e.channelCountMode,channelInterpretation:_e.channelInterpretation,offset:_e.offset.value};_e=e(j,tt),_!==null&&_e.start(_),b!==null&&_e.stop(b)}return d.set(j,_e),et?await a(j,$.offset,_e.offset):await o(j,$.offset,_e.offset),await c($,j,_e),_e};return{set start($){_=$},set stop($){b=$},render($,j){const _e=d.get(j);return _e!==void 0?Promise.resolve(_e):k($,j)}}},createConvertNumberToUnsignedLong=a=>e=>(a[0]=e,a[0]),DEFAULT_OPTIONS$d={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},createConvolverNodeConstructor=(a,e,s,o,c,d)=>class extends a{constructor(b,k){const $=o(b),j=Dt(Dt({},DEFAULT_OPTIONS$d),k),_e=s($,j),tt=c($)?e():null;super(b,!1,_e,tt),this._isBufferNullified=!1,this._nativeConvolverNode=_e,j.buffer!==null&&d(this,j.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(b){if(this._nativeConvolverNode.buffer=b,b===null&&this._nativeConvolverNode.buffer!==null){const k=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=k.createBuffer(1,1,44100),this._isBufferNullified=!0,d(this,0)}else this._isBufferNullified=!1,d(this,this._nativeConvolverNode.buffer===null?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(b){this._nativeConvolverNode.normalize=b}},createConvolverNodeRendererFactory=(a,e,s)=>()=>{const o=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={buffer:b.buffer,channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,disableNormalization:!b.normalize};b=a(_,$)}return o.set(_,b),isNativeAudioNodeFaker(b)?await s(d,_,b.inputs[0]):await s(d,_,b),b};return{render(d,_){const b=o.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},createCreateNativeOfflineAudioContext=(a,e)=>(s,o,c)=>{if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new e(s,o,c)}catch(d){throw d.name==="SyntaxError"?a():d}},createDataCloneError=()=>new DOMException("","DataCloneError"),detachArrayBuffer=a=>{const{port1:e,port2:s}=new MessageChannel;return new Promise(o=>{const c=()=>{s.onmessage=null,e.close(),s.close(),o()};s.onmessage=()=>c();try{e.postMessage(a,[a])}finally{c()}})},createDecodeAudioData=(a,e,s,o,c,d,_,b,k,$,j)=>(_e,et)=>{const tt=_(_e)?_e:d(_e);if(c.has(et)){const nt=s();return Promise.reject(nt)}try{c.add(et)}catch{}return e(k,()=>k(tt))?tt.decodeAudioData(et).then(nt=>(detachArrayBuffer(et).catch(()=>{}),e(b,()=>b(nt))||j(nt),a.add(nt),nt)):new Promise((nt,it)=>{const rt=async()=>{try{await detachArrayBuffer(et)}catch{}},st=ot=>{it(ot),rt()};try{tt.decodeAudioData(et,ot=>{typeof ot.copyFromChannel!="function"&&($(ot),wrapAudioBufferGetChannelDataMethod(ot)),a.add(ot),rt().then(()=>nt(ot))},ot=>{st(ot===null?o():ot)})}catch(ot){st(ot)}})},createDecrementCycleCounter=(a,e,s,o,c,d,_,b)=>(k,$)=>{const j=e.get(k);if(j===void 0)throw new Error("Missing the expected cycle count.");const _e=d(k.context),et=b(_e);if(j===$){if(e.delete(k),!et&&_(k)){const tt=o(k),{outputs:nt}=s(k);for(const it of nt)if(isAudioNodeOutputConnection(it)){const rt=o(it[0]);a(tt,rt,it[1],it[2])}else{const rt=c(it[0]);tt.connect(rt,it[1])}}}else e.set(k,j-$)},DEFAULT_OPTIONS$c={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},createDelayNodeConstructor=(a,e,s,o,c,d,_)=>class extends a{constructor(k,$){const j=c(k),_e=Dt(Dt({},DEFAULT_OPTIONS$c),$),et=o(j,_e),tt=d(j),nt=tt?s(_e.maxDelayTime):null;super(k,!1,et,nt),this._delayTime=e(this,tt,et.delayTime),_(this,_e.maxDelayTime)}get delayTime(){return this._delayTime}},createDelayNodeRendererFactory=(a,e,s,o,c)=>d=>{const _=new WeakMap,b=async(k,$)=>{let j=s(k);const _e=isOwnedByContext(j,$);if(!_e){const et={channelCount:j.channelCount,channelCountMode:j.channelCountMode,channelInterpretation:j.channelInterpretation,delayTime:j.delayTime.value,maxDelayTime:d};j=e($,et)}return _.set($,j),_e?await a($,k.delayTime,j.delayTime):await o($,k.delayTime,j.delayTime),await c(k,$,j),j};return{render(k,$){const j=_.get($);return j!==void 0?Promise.resolve(j):b(k,$)}}},createDeleteActiveInputConnectionToAudioNode=a=>(e,s,o,c)=>a(e[c],d=>d[0]===s&&d[1]===o),createDeleteUnrenderedAudioWorkletNode=a=>(e,s)=>{a(e).delete(s)},isDelayNode=a=>"delayTime"in a,createDetectCycles=(a,e,s)=>function o(c,d){const _=isAudioNode$1(d)?d:s(a,d);if(isDelayNode(_))return[];if(c[0]===_)return[c];if(c.includes(_))return[];const{outputs:b}=e(_);return Array.from(b).map(k=>o([...c,_],k[0])).reduce((k,$)=>k.concat($),[])},getOutputAudioNodeAtIndex=(a,e,s)=>{const o=e[s];if(o===void 0)throw a();return o},createDisconnectMultipleOutputs=a=>(e,s=void 0,o=void 0,c=0)=>s===void 0?e.forEach(d=>d.disconnect()):typeof s=="number"?getOutputAudioNodeAtIndex(a,e,s).disconnect():isNativeAudioNode$1(s)?o===void 0?e.forEach(d=>d.disconnect(s)):c===void 0?getOutputAudioNodeAtIndex(a,e,o).disconnect(s,0):getOutputAudioNodeAtIndex(a,e,o).disconnect(s,0,c):o===void 0?e.forEach(d=>d.disconnect(s)):getOutputAudioNodeAtIndex(a,e,o).disconnect(s,0),DEFAULT_OPTIONS$b={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},createDynamicsCompressorNodeConstructor=(a,e,s,o,c,d,_,b)=>class extends a{constructor($,j){const _e=d($),et=Dt(Dt({},DEFAULT_OPTIONS$b),j),tt=o(_e,et),nt=_(_e),it=nt?s():null;super($,!1,tt,it),this._attack=e(this,nt,tt.attack),this._knee=e(this,nt,tt.knee),this._nativeDynamicsCompressorNode=tt,this._ratio=e(this,nt,tt.ratio),this._release=e(this,nt,tt.release),this._threshold=e(this,nt,tt.threshold),b(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount($){const j=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=$,$>2)throw this._nativeDynamicsCompressorNode.channelCount=j,c()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode($){const j=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=$,$==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=j,c()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return typeof this._nativeDynamicsCompressorNode.reduction.value=="number"?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}},createDynamicsCompressorNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={attack:$.attack.value,channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,knee:$.knee.value,ratio:$.ratio.value,release:$.release.value,threshold:$.threshold.value};$=e(k,_e)}return d.set(k,$),j?(await a(k,b.attack,$.attack),await a(k,b.knee,$.knee),await a(k,b.ratio,$.ratio),await a(k,b.release,$.release),await a(k,b.threshold,$.threshold)):(await o(k,b.attack,$.attack),await o(k,b.knee,$.knee),await o(k,b.ratio,$.ratio),await o(k,b.release,$.release),await o(k,b.threshold,$.threshold)),await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createEncodingError=()=>new DOMException("","EncodingError"),createEvaluateSource=a=>e=>new Promise((s,o)=>{if(a===null){o(new SyntaxError);return}const c=a.document.head;if(c===null)o(new SyntaxError);else{const d=a.document.createElement("script"),_=new Blob([e],{type:"application/javascript"}),b=URL.createObjectURL(_),k=a.onerror,$=()=>{a.onerror=k,URL.revokeObjectURL(b)};a.onerror=(j,_e,et,tt,nt)=>{if(_e===b||_e===a.location.href&&et===1&&tt===1)return $(),o(nt),!1;if(k!==null)return k(j,_e,et,tt,nt)},d.onerror=()=>{$(),o(new SyntaxError)},d.onload=()=>{$(),s()},d.src=b,d.type="module",c.appendChild(d)}}),createEventTargetConstructor=a=>class{constructor(s){this._nativeEventTarget=s,this._listeners=new WeakMap}addEventListener(s,o,c){if(o!==null){let d=this._listeners.get(o);d===void 0&&(d=a(this,o),typeof o=="function"&&this._listeners.set(o,d)),this._nativeEventTarget.addEventListener(s,d,c)}}dispatchEvent(s){return this._nativeEventTarget.dispatchEvent(s)}removeEventListener(s,o,c){const d=o===null?void 0:this._listeners.get(o);this._nativeEventTarget.removeEventListener(s,d===void 0?null:d,c)}},createExposeCurrentFrameAndCurrentTime=a=>(e,s,o)=>{Object.defineProperties(a,{currentFrame:{configurable:!0,get(){return Math.round(e*s)}},currentTime:{configurable:!0,get(){return e}}});try{return o()}finally{a!==null&&(delete a.currentFrame,delete a.currentTime)}},createFetchSource=a=>async e=>{try{const s=await fetch(e);if(s.ok)return[await s.text(),s.url]}catch{}throw a()},DEFAULT_OPTIONS$a={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},createGainNodeConstructor=(a,e,s,o,c,d)=>class extends a{constructor(b,k){const $=c(b),j=Dt(Dt({},DEFAULT_OPTIONS$a),k),_e=o($,j),et=d($),tt=et?s():null;super(b,!1,_e,tt),this._gain=e(this,et,_e.gain,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT)}get gain(){return this._gain}},createGainNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,gain:$.gain.value};$=e(k,_e)}return d.set(k,$),j?await a(k,b.gain,$.gain):await o(k,b.gain,$.gain),await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createGetActiveAudioWorkletNodeInputs=(a,e)=>s=>e(a,s),createGetAudioNodeRenderer=a=>e=>{const s=a(e);if(s.renderer===null)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return s.renderer},createGetAudioNodeTailTime=a=>e=>{var s;return(s=a.get(e))!==null&&s!==void 0?s:0},createGetAudioParamRenderer=a=>e=>{const s=a(e);if(s.renderer===null)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return s.renderer},createGetBackupOfflineAudioContext=a=>e=>a.get(e),createInvalidStateError=()=>new DOMException("","InvalidStateError"),createGetNativeContext=a=>e=>{const s=a.get(e);if(s===void 0)throw createInvalidStateError();return s},createGetOrCreateBackupOfflineAudioContext=(a,e)=>s=>{let o=a.get(s);if(o!==void 0)return o;if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");return o=new e(1,1,44100),a.set(s,o),o},createGetUnrenderedAudioWorkletNodes=a=>e=>{const s=a.get(e);if(s===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return s},createInvalidAccessError=()=>new DOMException("","InvalidAccessError"),wrapIIRFilterNodeGetFrequencyResponseMethod=a=>{a.getFrequencyResponse=(e=>(s,o,c)=>{if(s.length!==o.length||o.length!==c.length)throw createInvalidAccessError();return e.call(a,s,o,c)})(a.getFrequencyResponse)},DEFAULT_OPTIONS$9={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},createIIRFilterNodeConstructor=(a,e,s,o,c,d)=>class extends a{constructor(b,k){const $=o(b),j=c($),_e=Dt(Dt({},DEFAULT_OPTIONS$9),k),et=e($,j?null:b.baseLatency,_e),tt=j?s(_e.feedback,_e.feedforward):null;super(b,!1,et,tt),wrapIIRFilterNodeGetFrequencyResponseMethod(et),this._nativeIIRFilterNode=et,d(this,1)}getFrequencyResponse(b,k,$){return this._nativeIIRFilterNode.getFrequencyResponse(b,k,$)}},filterBuffer=(a,e,s,o,c,d,_,b,k,$,j)=>{const _e=$.length;let et=b;for(let tt=0;tt<_e;tt+=1){let nt=s[0]*$[tt];for(let it=1;it{const c=s instanceof Float64Array?s:new Float64Array(s),d=o instanceof Float64Array?o:new Float64Array(o),_=c.length,b=d.length,k=Math.min(_,b);if(c[0]!==1){for(let nt=0;nt<_;nt+=1)d[nt]/=c[0];for(let nt=1;nt(d,_)=>{const b=new WeakMap;let k=null;const $=async(j,_e)=>{let et=null,tt=e(j);const nt=isOwnedByContext(tt,_e);if(_e.createIIRFilter===void 0?et=a(_e,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):nt||(tt=_e.createIIRFilter(_,d)),b.set(_e,et===null?tt:et),et!==null){if(k===null){if(s===null)throw new Error("Missing the native OfflineAudioContext constructor.");const rt=new s(j.context.destination.channelCount,j.context.length,_e.sampleRate);k=(async()=>{await o(j,rt,rt.destination);const st=await c(rt);return filterFullBuffer(st,_e,d,_)})()}const it=await k;return et.buffer=it,et.start(0),et}return await o(j,_e,tt),tt};return{render(j,_e){const et=b.get(_e);return et!==void 0?Promise.resolve(et):$(j,_e)}}},createIncrementCycleCounterFactory=(a,e,s,o,c,d)=>_=>(b,k)=>{const $=a.get(b);if($===void 0){if(!_&&d(b)){const j=o(b),{outputs:_e}=s(b);for(const et of _e)if(isAudioNodeOutputConnection(et)){const tt=o(et[0]);e(j,tt,et[1],et[2])}else{const tt=c(et[0]);j.disconnect(tt,et[1])}}a.set(b,k)}else a.set(b,$+k)},createIsAnyAudioContext=(a,e)=>s=>{const o=a.get(s);return e(o)||e(s)},createIsAnyAudioNode=(a,e)=>s=>a.has(s)||e(s),createIsAnyAudioParam=(a,e)=>s=>a.has(s)||e(s),createIsAnyOfflineAudioContext=(a,e)=>s=>{const o=a.get(s);return e(o)||e(s)},createIsNativeAudioContext=a=>e=>a!==null&&e instanceof a,createIsNativeAudioNode=a=>e=>a!==null&&typeof a.AudioNode=="function"&&e instanceof a.AudioNode,createIsNativeAudioParam=a=>e=>a!==null&&typeof a.AudioParam=="function"&&e instanceof a.AudioParam,createIsNativeContext=(a,e)=>s=>a(s)||e(s),createIsNativeOfflineAudioContext=a=>e=>a!==null&&e instanceof a,createIsSecureContext=a=>a!==null&&a.isSecureContext,createIsSupportedPromise=async(a,e,s,o,c,d,_,b,k,$,j,_e,et,tt,nt,it)=>a(e,e)&&a(s,s)&&a(c,c)&&a(d,d)&&a(b,b)&&a(k,k)&&a($,$)&&a(j,j)&&a(_e,_e)&&a(et,et)&&a(tt,tt)?(await Promise.all([a(o,o),a(_,_),a(nt,nt),a(it,it)])).every(st=>st):!1,createMediaElementAudioSourceNodeConstructor=(a,e,s,o)=>class extends a{constructor(d,_){const b=s(d),k=e(b,_);if(o(b))throw TypeError();super(d,!0,k,null),this._nativeMediaElementAudioSourceNode=k}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}},DEFAULT_OPTIONS$8={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},createMediaStreamAudioDestinationNodeConstructor=(a,e,s,o)=>class extends a{constructor(d,_){const b=s(d);if(o(b))throw new TypeError;const k=Dt(Dt({},DEFAULT_OPTIONS$8),_),$=e(b,k);super(d,!1,$,null),this._nativeMediaStreamAudioDestinationNode=$}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}},createMediaStreamAudioSourceNodeConstructor=(a,e,s,o)=>class extends a{constructor(d,_){const b=s(d),k=e(b,_);if(o(b))throw new TypeError;super(d,!0,k,null),this._nativeMediaStreamAudioSourceNode=k}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}},createMediaStreamTrackAudioSourceNodeConstructor=(a,e,s)=>class extends a{constructor(c,d){const _=s(c),b=e(_,d);super(c,!0,b,null)}},createMinimalBaseAudioContextConstructor=(a,e,s,o,c,d)=>class extends s{constructor(b,k){super(b),this._nativeContext=b,CONTEXT_STORE.set(this,b),o(b)&&c.set(b,new Set),this._destination=new a(this,k),this._listener=e(this,b),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(b){const k=typeof b=="function"?d(this,b):null;this._nativeContext.onstatechange=k;const $=this._nativeContext.onstatechange;this._onstatechange=$!==null&&$===k?b:$}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}},testPromiseSupport=a=>{const e=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{const s=a.decodeAudioData(e.buffer,()=>{});return s===void 0?!1:(s.catch(()=>{}),!0)}catch{}return!1},createMonitorConnections=(a,e)=>(s,o,c)=>{const d=new Set;return s.connect=(_=>(b,k=0,$=0)=>{const j=d.size===0;if(e(b))return _.call(s,b,k,$),a(d,[b,k,$],_e=>_e[0]===b&&_e[1]===k&&_e[2]===$,!0),j&&o(),b;_.call(s,b,k),a(d,[b,k],_e=>_e[0]===b&&_e[1]===k,!0),j&&o()})(s.connect),s.disconnect=(_=>(b,k,$)=>{const j=d.size>0;if(b===void 0)_.apply(s),d.clear();else if(typeof b=="number"){_.call(s,b);for(const et of d)et[1]===b&&d.delete(et)}else{e(b)?_.call(s,b,k,$):_.call(s,b,k);for(const et of d)et[0]===b&&(k===void 0||et[1]===k)&&($===void 0||et[2]===$)&&d.delete(et)}const _e=d.size===0;j&&_e&&c()})(s.disconnect),s},assignNativeAudioNodeOption=(a,e,s)=>{const o=e[s];o!==void 0&&o!==a[s]&&(a[s]=o)},assignNativeAudioNodeOptions=(a,e)=>{assignNativeAudioNodeOption(a,e,"channelCount"),assignNativeAudioNodeOption(a,e,"channelCountMode"),assignNativeAudioNodeOption(a,e,"channelInterpretation")},testAnalyserNodeGetFloatTimeDomainDataMethodSupport=a=>typeof a.getFloatTimeDomainData=="function",wrapAnalyserNodeGetFloatTimeDomainDataMethod=a=>{a.getFloatTimeDomainData=e=>{const s=new Uint8Array(e.length);a.getByteTimeDomainData(s);const o=Math.max(s.length,a.fftSize);for(let c=0;c(s,o)=>{const c=s.createAnalyser();if(assignNativeAudioNodeOptions(c,o),!(o.maxDecibels>o.minDecibels))throw e();return assignNativeAudioNodeOption(c,o,"fftSize"),assignNativeAudioNodeOption(c,o,"maxDecibels"),assignNativeAudioNodeOption(c,o,"minDecibels"),assignNativeAudioNodeOption(c,o,"smoothingTimeConstant"),a(testAnalyserNodeGetFloatTimeDomainDataMethodSupport,()=>testAnalyserNodeGetFloatTimeDomainDataMethodSupport(c))||wrapAnalyserNodeGetFloatTimeDomainDataMethod(c),c},createNativeAudioBufferConstructor=a=>a===null?null:a.hasOwnProperty("AudioBuffer")?a.AudioBuffer:null,assignNativeAudioNodeAudioParamValue=(a,e,s)=>{const o=e[s];o!==void 0&&o!==a[s].value&&(a[s].value=o)},wrapAudioBufferSourceNodeStartMethodConsecutiveCalls=a=>{a.start=(e=>{let s=!1;return(o=0,c=0,d)=>{if(s)throw createInvalidStateError();e.call(a,o,c,d),s=!0}})(a.start)},wrapAudioScheduledSourceNodeStartMethodNegativeParameters=a=>{a.start=(e=>(s=0,o=0,c)=>{if(typeof c=="number"&&c<0||o<0||s<0)throw new RangeError("The parameters can't be negative.");e.call(a,s,o,c)})(a.start)},wrapAudioScheduledSourceNodeStopMethodNegativeParameters=a=>{a.stop=(e=>(s=0)=>{if(s<0)throw new RangeError("The parameter can't be negative.");e.call(a,s)})(a.stop)},createNativeAudioBufferSourceNodeFactory=(a,e,s,o,c,d,_,b,k,$,j)=>(_e,et)=>{const tt=_e.createBufferSource();return assignNativeAudioNodeOptions(tt,et),assignNativeAudioNodeAudioParamValue(tt,et,"playbackRate"),assignNativeAudioNodeOption(tt,et,"buffer"),assignNativeAudioNodeOption(tt,et,"loop"),assignNativeAudioNodeOption(tt,et,"loopEnd"),assignNativeAudioNodeOption(tt,et,"loopStart"),e(s,()=>s(_e))||wrapAudioBufferSourceNodeStartMethodConsecutiveCalls(tt),e(o,()=>o(_e))||k(tt),e(c,()=>c(_e))||$(tt,_e),e(d,()=>d(_e))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(tt),e(_,()=>_(_e))||j(tt,_e),e(b,()=>b(_e))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(tt),a(_e,tt),tt},createNativeAudioContextConstructor=a=>a===null?null:a.hasOwnProperty("AudioContext")?a.AudioContext:a.hasOwnProperty("webkitAudioContext")?a.webkitAudioContext:null,createNativeAudioDestinationNodeFactory=(a,e)=>(s,o,c)=>{const d=s.destination;if(d.channelCount!==o)try{d.channelCount=o}catch{}c&&d.channelCountMode!=="explicit"&&(d.channelCountMode="explicit"),d.maxChannelCount===0&&Object.defineProperty(d,"maxChannelCount",{value:o});const _=a(s,{channelCount:o,channelCountMode:d.channelCountMode,channelInterpretation:d.channelInterpretation,gain:1});return e(_,"channelCount",b=>()=>b.call(_),b=>k=>{b.call(_,k);try{d.channelCount=k}catch($){if(k>d.maxChannelCount)throw $}}),e(_,"channelCountMode",b=>()=>b.call(_),b=>k=>{b.call(_,k),d.channelCountMode=k}),e(_,"channelInterpretation",b=>()=>b.call(_),b=>k=>{b.call(_,k),d.channelInterpretation=k}),Object.defineProperty(_,"maxChannelCount",{get:()=>d.maxChannelCount}),_.connect(d),_},createNativeAudioWorkletNodeConstructor=a=>a===null?null:a.hasOwnProperty("AudioWorkletNode")?a.AudioWorkletNode:null,testClonabilityOfAudioWorkletNodeOptions=a=>{const{port1:e}=new MessageChannel;try{e.postMessage(a)}finally{e.close()}},createNativeAudioWorkletNodeFactory=(a,e,s,o,c)=>(d,_,b,k,$,j)=>{if(b!==null)try{const _e=new b(d,k,j),et=new Map;let tt=null;if(Object.defineProperties(_e,{channelCount:{get:()=>j.channelCount,set:()=>{throw a()}},channelCountMode:{get:()=>"explicit",set:()=>{throw a()}},onprocessorerror:{get:()=>tt,set:nt=>{typeof tt=="function"&&_e.removeEventListener("processorerror",tt),tt=typeof nt=="function"?nt:null,typeof tt=="function"&&_e.addEventListener("processorerror",tt)}}}),_e.addEventListener=(nt=>(...it)=>{if(it[0]==="processorerror"){const rt=typeof it[1]=="function"?it[1]:typeof it[1]=="object"&&it[1]!==null&&typeof it[1].handleEvent=="function"?it[1].handleEvent:null;if(rt!==null){const st=et.get(it[1]);st!==void 0?it[1]=st:(it[1]=ot=>{ot.type==="error"?(Object.defineProperties(ot,{type:{value:"processorerror"}}),rt(ot)):rt(new ErrorEvent(it[0],Dt({},ot)))},et.set(rt,it[1]))}}return nt.call(_e,"error",it[1],it[2]),nt.call(_e,...it)})(_e.addEventListener),_e.removeEventListener=(nt=>(...it)=>{if(it[0]==="processorerror"){const rt=et.get(it[1]);rt!==void 0&&(et.delete(it[1]),it[1]=rt)}return nt.call(_e,"error",it[1],it[2]),nt.call(_e,it[0],it[1],it[2])})(_e.removeEventListener),j.numberOfOutputs!==0){const nt=s(d,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return _e.connect(nt).connect(d.destination),c(_e,()=>nt.disconnect(),()=>nt.connect(d.destination))}return _e}catch(_e){throw _e.code===11?o():_e}if($===void 0)throw o();return testClonabilityOfAudioWorkletNodeOptions(j),e(d,_,$,j)},computeBufferSize=(a,e)=>a===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(a*e))))),cloneAudioWorkletNodeOptions=a=>new Promise((e,s)=>{const{port1:o,port2:c}=new MessageChannel;o.onmessage=({data:d})=>{o.close(),c.close(),e(d)},o.onmessageerror=({data:d})=>{o.close(),c.close(),s(d)},c.postMessage(a)}),createAudioWorkletProcessorPromise=async(a,e)=>{const s=await cloneAudioWorkletNodeOptions(e);return new a(s)},createAudioWorkletProcessor=(a,e,s,o)=>{let c=NODE_TO_PROCESSOR_MAPS.get(a);c===void 0&&(c=new WeakMap,NODE_TO_PROCESSOR_MAPS.set(a,c));const d=createAudioWorkletProcessorPromise(s,o);return c.set(e,d),d},createNativeAudioWorkletNodeFakerFactory=(a,e,s,o,c,d,_,b,k,$,j,_e,et)=>(tt,nt,it,rt)=>{if(rt.numberOfInputs===0&&rt.numberOfOutputs===0)throw k();const st=Array.isArray(rt.outputChannelCount)?rt.outputChannelCount:Array.from(rt.outputChannelCount);if(st.some(wt=>wt<1))throw k();if(st.length!==rt.numberOfOutputs)throw e();if(rt.channelCountMode!=="explicit")throw k();const ot=rt.channelCount*rt.numberOfInputs,at=st.reduce((wt,Pt)=>wt+Pt,0),ht=it.parameterDescriptors===void 0?0:it.parameterDescriptors.length;if(ot+ht>6||at>6)throw k();const lt=new MessageChannel,ut=[],ct=[];for(let wt=0;wtwt===void 0?0:wt},maxValue:{get:()=>Pt===void 0?MOST_POSITIVE_SINGLE_FLOAT:Pt},minValue:{get:()=>Wt===void 0?MOST_NEGATIVE_SINGLE_FLOAT:Wt}}),dt.push(Mt)}const ft=o(tt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,ot+ht)}),Et=computeBufferSize(nt,tt.sampleRate),yt=b(tt,Et,ot+ht,Math.max(1,at)),gt=c(tt,{channelCount:Math.max(1,at),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,at)}),St=[];for(let wt=0;wt{const Wt=dt[Pt];return Wt.connect(ft,0,ot+Pt),Wt.start(0),[wt,Wt.offset]}));ft.connect(yt);let mt=rt.channelInterpretation,At=null;const Ot=rt.numberOfOutputs===0?[yt]:St,vt={get bufferSize(){return Et},get channelCount(){return rt.channelCount},set channelCount(wt){throw s()},get channelCountMode(){return rt.channelCountMode},set channelCountMode(wt){throw s()},get channelInterpretation(){return mt},set channelInterpretation(wt){for(const Pt of ut)Pt.channelInterpretation=wt;mt=wt},get context(){return yt.context},get inputs(){return ut},get numberOfInputs(){return rt.numberOfInputs},get numberOfOutputs(){return rt.numberOfOutputs},get onprocessorerror(){return At},set onprocessorerror(wt){typeof At=="function"&&vt.removeEventListener("processorerror",At),At=typeof wt=="function"?wt:null,typeof At=="function"&&vt.addEventListener("processorerror",At)},get parameters(){return pt},get port(){return lt.port2},addEventListener(...wt){return yt.addEventListener(wt[0],wt[1],wt[2])},connect:a.bind(null,Ot),disconnect:$.bind(null,Ot),dispatchEvent(...wt){return yt.dispatchEvent(wt[0])},removeEventListener(...wt){return yt.removeEventListener(wt[0],wt[1],wt[2])}},Ct=new Map;lt.port1.addEventListener=(wt=>(...Pt)=>{if(Pt[0]==="message"){const Wt=typeof Pt[1]=="function"?Pt[1]:typeof Pt[1]=="object"&&Pt[1]!==null&&typeof Pt[1].handleEvent=="function"?Pt[1].handleEvent:null;if(Wt!==null){const Lt=Ct.get(Pt[1]);Lt!==void 0?Pt[1]=Lt:(Pt[1]=Mt=>{j(tt.currentTime,tt.sampleRate,()=>Wt(Mt))},Ct.set(Wt,Pt[1]))}}return wt.call(lt.port1,Pt[0],Pt[1],Pt[2])})(lt.port1.addEventListener),lt.port1.removeEventListener=(wt=>(...Pt)=>{if(Pt[0]==="message"){const Wt=Ct.get(Pt[1]);Wt!==void 0&&(Ct.delete(Pt[1]),Pt[1]=Wt)}return wt.call(lt.port1,Pt[0],Pt[1],Pt[2])})(lt.port1.removeEventListener);let Tt=null;Object.defineProperty(lt.port1,"onmessage",{get:()=>Tt,set:wt=>{typeof Tt=="function"&<.port1.removeEventListener("message",Tt),Tt=typeof wt=="function"?wt:null,typeof Tt=="function"&&(lt.port1.addEventListener("message",Tt),lt.port1.start())}}),it.prototype.port=lt.port1;let _t=null;createAudioWorkletProcessor(tt,vt,it,rt).then(wt=>_t=wt);const xt=createNestedArrays(rt.numberOfInputs,rt.channelCount),Rt=createNestedArrays(rt.numberOfOutputs,st),$t=it.parameterDescriptors===void 0?[]:it.parameterDescriptors.reduce((wt,{name:Pt})=>kt(Dt({},wt),{[Pt]:new Float32Array(128)}),{});let It=!0;const Ft=()=>{rt.numberOfOutputs>0&&yt.disconnect(gt);for(let wt=0,Pt=0;wt{if(_t!==null){const Wt=_e(vt);for(let Lt=0;Lt{copyFromChannel(wt,$t,Mt,ot+jt,Lt)});for(let Mt=0;Mt{if(Wt[zt].size>0)return qt.set(zt,Et/128),Vt;const Zt=qt.get(zt);return Zt===void 0?[]:(Vt.every(Yt=>Yt.every(sn=>sn===0))&&(Zt===1?qt.delete(zt):qt.set(zt,Zt-1)),Vt)});It=j(tt.currentTime+Lt/tt.sampleRate,tt.sampleRate,()=>_t.process(Mt,Rt,$t));for(let Vt=0,zt=0;Vtyt.connect(Nt).connect(tt.destination),Jt=()=>{yt.disconnect(Nt),Nt.disconnect()},en=()=>{if(It){Jt(),rt.numberOfOutputs>0&&yt.connect(gt);for(let wt=0,Pt=0;wt{It&&(Kt(),Ft()),Qt=!1};return Kt(),et(vt,en,tn)},createNativeBiquadFilterNode=(a,e)=>{const s=a.createBiquadFilter();return assignNativeAudioNodeOptions(s,e),assignNativeAudioNodeAudioParamValue(s,e,"Q"),assignNativeAudioNodeAudioParamValue(s,e,"detune"),assignNativeAudioNodeAudioParamValue(s,e,"frequency"),assignNativeAudioNodeAudioParamValue(s,e,"gain"),assignNativeAudioNodeOption(s,e,"type"),s},createNativeChannelMergerNodeFactory=(a,e)=>(s,o)=>{const c=s.createChannelMerger(o.numberOfInputs);return a!==null&&a.name==="webkitAudioContext"&&e(s,c),assignNativeAudioNodeOptions(c,o),c},wrapChannelSplitterNode=a=>{const e=a.numberOfOutputs;Object.defineProperty(a,"channelCount",{get:()=>e,set:s=>{if(s!==e)throw createInvalidStateError()}}),Object.defineProperty(a,"channelCountMode",{get:()=>"explicit",set:s=>{if(s!=="explicit")throw createInvalidStateError()}}),Object.defineProperty(a,"channelInterpretation",{get:()=>"discrete",set:s=>{if(s!=="discrete")throw createInvalidStateError()}})},createNativeChannelSplitterNode=(a,e)=>{const s=a.createChannelSplitter(e.numberOfOutputs);return assignNativeAudioNodeOptions(s,e),wrapChannelSplitterNode(s),s},createNativeConstantSourceNodeFactory=(a,e,s,o,c)=>(d,_)=>{if(d.createConstantSource===void 0)return s(d,_);const b=d.createConstantSource();return assignNativeAudioNodeOptions(b,_),assignNativeAudioNodeAudioParamValue(b,_,"offset"),e(o,()=>o(d))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(b),e(c,()=>c(d))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(b),a(d,b),b},interceptConnections=(a,e)=>(a.connect=e.connect.bind(e),a.disconnect=e.disconnect.bind(e),a),createNativeConstantSourceNodeFakerFactory=(a,e,s,o)=>(c,b)=>{var k=b,{offset:d}=k,_=dn(k,["offset"]);const $=c.createBuffer(1,2,44100),j=e(c,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),_e=s(c,kt(Dt({},_),{gain:d})),et=$.getChannelData(0);et[0]=1,et[1]=1,j.buffer=$,j.loop=!0;const tt={get bufferSize(){},get channelCount(){return _e.channelCount},set channelCount(rt){_e.channelCount=rt},get channelCountMode(){return _e.channelCountMode},set channelCountMode(rt){_e.channelCountMode=rt},get channelInterpretation(){return _e.channelInterpretation},set channelInterpretation(rt){_e.channelInterpretation=rt},get context(){return _e.context},get inputs(){return[]},get numberOfInputs(){return j.numberOfInputs},get numberOfOutputs(){return _e.numberOfOutputs},get offset(){return _e.gain},get onended(){return j.onended},set onended(rt){j.onended=rt},addEventListener(...rt){return j.addEventListener(rt[0],rt[1],rt[2])},dispatchEvent(...rt){return j.dispatchEvent(rt[0])},removeEventListener(...rt){return j.removeEventListener(rt[0],rt[1],rt[2])},start(rt=0){j.start.call(j,rt)},stop(rt=0){j.stop.call(j,rt)}},nt=()=>j.connect(_e),it=()=>j.disconnect(_e);return a(c,j),o(interceptConnections(tt,_e),nt,it)},createNativeConvolverNodeFactory=(a,e)=>(s,o)=>{const c=s.createConvolver();if(assignNativeAudioNodeOptions(c,o),o.disableNormalization===c.normalize&&(c.normalize=!o.disableNormalization),assignNativeAudioNodeOption(c,o,"buffer"),o.channelCount>2||(e(c,"channelCount",d=>()=>d.call(c),d=>_=>{if(_>2)throw a();return d.call(c,_)}),o.channelCountMode==="max"))throw a();return e(c,"channelCountMode",d=>()=>d.call(c),d=>_=>{if(_==="max")throw a();return d.call(c,_)}),c},createNativeDelayNode=(a,e)=>{const s=a.createDelay(e.maxDelayTime);return assignNativeAudioNodeOptions(s,e),assignNativeAudioNodeAudioParamValue(s,e,"delayTime"),s},createNativeDynamicsCompressorNodeFactory=a=>(e,s)=>{const o=e.createDynamicsCompressor();if(assignNativeAudioNodeOptions(o,s),s.channelCount>2||s.channelCountMode==="max")throw a();return assignNativeAudioNodeAudioParamValue(o,s,"attack"),assignNativeAudioNodeAudioParamValue(o,s,"knee"),assignNativeAudioNodeAudioParamValue(o,s,"ratio"),assignNativeAudioNodeAudioParamValue(o,s,"release"),assignNativeAudioNodeAudioParamValue(o,s,"threshold"),o},createNativeGainNode=(a,e)=>{const s=a.createGain();return assignNativeAudioNodeOptions(s,e),assignNativeAudioNodeAudioParamValue(s,e,"gain"),s},createNativeIIRFilterNodeFactory=a=>(e,s,o)=>{if(e.createIIRFilter===void 0)return a(e,s,o);const c=e.createIIRFilter(o.feedforward,o.feedback);return assignNativeAudioNodeOptions(c,o),c};function divide(a,e){const s=e[0]*e[0]+e[1]*e[1];return[(a[0]*e[0]+a[1]*e[1])/s,(a[1]*e[0]-a[0]*e[1])/s]}function multiply(a,e){return[a[0]*e[0]-a[1]*e[1],a[0]*e[1]+a[1]*e[0]]}function evaluatePolynomial(a,e){let s=[0,0];for(let o=a.length-1;o>=0;o-=1)s=multiply(s,e),s[0]+=a[o];return s}const createNativeIIRFilterNodeFakerFactory=(a,e,s,o)=>(c,d,{channelCount:_,channelCountMode:b,channelInterpretation:k,feedback:$,feedforward:j})=>{const _e=computeBufferSize(d,c.sampleRate),et=$ instanceof Float64Array?$:new Float64Array($),tt=j instanceof Float64Array?j:new Float64Array(j),nt=et.length,it=tt.length,rt=Math.min(nt,it);if(nt===0||nt>20)throw o();if(et[0]===0)throw e();if(it===0||it>20)throw o();if(tt[0]===0)throw e();if(et[0]!==1){for(let dt=0;dt{const ft=dt.inputBuffer,Et=dt.outputBuffer,yt=ft.numberOfChannels;for(let gt=0;gta.createMediaElementSource(e.mediaElement),createNativeMediaStreamAudioDestinationNode=(a,e)=>{const s=a.createMediaStreamDestination();return assignNativeAudioNodeOptions(s,e),s.numberOfOutputs===1&&Object.defineProperty(s,"numberOfOutputs",{get:()=>0}),s},createNativeMediaStreamAudioSourceNode=(a,{mediaStream:e})=>{const s=e.getAudioTracks();s.sort((d,_)=>d.id<_.id?-1:d.id>_.id?1:0);const o=s.slice(0,1),c=a.createMediaStreamSource(new MediaStream(o));return Object.defineProperty(c,"mediaStream",{value:e}),c},createNativeMediaStreamTrackAudioSourceNodeFactory=(a,e)=>(s,{mediaStreamTrack:o})=>{if(typeof s.createMediaStreamTrackSource=="function")return s.createMediaStreamTrackSource(o);const c=new MediaStream([o]),d=s.createMediaStreamSource(c);if(o.kind!=="audio")throw a();if(e(s))throw new TypeError;return d},createNativeOfflineAudioContextConstructor=a=>a===null?null:a.hasOwnProperty("OfflineAudioContext")?a.OfflineAudioContext:a.hasOwnProperty("webkitOfflineAudioContext")?a.webkitOfflineAudioContext:null,createNativeOscillatorNodeFactory=(a,e,s,o,c,d)=>(_,b)=>{const k=_.createOscillator();return assignNativeAudioNodeOptions(k,b),assignNativeAudioNodeAudioParamValue(k,b,"detune"),assignNativeAudioNodeAudioParamValue(k,b,"frequency"),b.periodicWave!==void 0?k.setPeriodicWave(b.periodicWave):assignNativeAudioNodeOption(k,b,"type"),e(s,()=>s(_))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(k),e(o,()=>o(_))||d(k,_),e(c,()=>c(_))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(k),a(_,k),k},createNativePannerNodeFactory=a=>(e,s)=>{const o=e.createPanner();return o.orientationX===void 0?a(e,s):(assignNativeAudioNodeOptions(o,s),assignNativeAudioNodeAudioParamValue(o,s,"orientationX"),assignNativeAudioNodeAudioParamValue(o,s,"orientationY"),assignNativeAudioNodeAudioParamValue(o,s,"orientationZ"),assignNativeAudioNodeAudioParamValue(o,s,"positionX"),assignNativeAudioNodeAudioParamValue(o,s,"positionY"),assignNativeAudioNodeAudioParamValue(o,s,"positionZ"),assignNativeAudioNodeOption(o,s,"coneInnerAngle"),assignNativeAudioNodeOption(o,s,"coneOuterAngle"),assignNativeAudioNodeOption(o,s,"coneOuterGain"),assignNativeAudioNodeOption(o,s,"distanceModel"),assignNativeAudioNodeOption(o,s,"maxDistance"),assignNativeAudioNodeOption(o,s,"panningModel"),assignNativeAudioNodeOption(o,s,"refDistance"),assignNativeAudioNodeOption(o,s,"rolloffFactor"),o)},createNativePannerNodeFakerFactory=(a,e,s,o,c,d,_,b,k,$)=>(j,Et)=>{var yt=Et,{coneInnerAngle:_e,coneOuterAngle:et,coneOuterGain:tt,distanceModel:nt,maxDistance:it,orientationX:rt,orientationY:st,orientationZ:ot,panningModel:at,positionX:ht,positionY:lt,positionZ:ut,refDistance:ct,rolloffFactor:dt}=yt,ft=dn(yt,["coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","orientationX","orientationY","orientationZ","panningModel","positionX","positionY","positionZ","refDistance","rolloffFactor"]);const gt=j.createPanner();if(ft.channelCount>2||ft.channelCountMode==="max")throw _();assignNativeAudioNodeOptions(gt,ft);const St={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},pt=s(j,kt(Dt({},St),{channelInterpretation:"speakers",numberOfInputs:6})),mt=o(j,kt(Dt({},ft),{gain:1})),At=o(j,kt(Dt({},St),{gain:1})),Ot=o(j,kt(Dt({},St),{gain:0})),vt=o(j,kt(Dt({},St),{gain:0})),Ct=o(j,kt(Dt({},St),{gain:0})),Tt=o(j,kt(Dt({},St),{gain:0})),_t=o(j,kt(Dt({},St),{gain:0})),bt=c(j,256,6,1),xt=d(j,kt(Dt({},St),{curve:new Float32Array([1,1]),oversample:"none"}));let Rt=[rt,st,ot],$t=[ht,lt,ut];const It=new Float32Array(1);bt.onaudioprocess=({inputBuffer:Nt})=>{const Kt=[k(Nt,It,0),k(Nt,It,1),k(Nt,It,2)];Kt.some((en,tn)=>en!==Rt[tn])&&(gt.setOrientation(...Kt),Rt=Kt);const Jt=[k(Nt,It,3),k(Nt,It,4),k(Nt,It,5)];Jt.some((en,tn)=>en!==$t[tn])&&(gt.setPosition(...Jt),$t=Jt)},Object.defineProperty(Ot.gain,"defaultValue",{get:()=>0}),Object.defineProperty(vt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Ct.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Tt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(_t.gain,"defaultValue",{get:()=>0});const Ft={get bufferSize(){},get channelCount(){return gt.channelCount},set channelCount(Nt){if(Nt>2)throw _();mt.channelCount=Nt,gt.channelCount=Nt},get channelCountMode(){return gt.channelCountMode},set channelCountMode(Nt){if(Nt==="max")throw _();mt.channelCountMode=Nt,gt.channelCountMode=Nt},get channelInterpretation(){return gt.channelInterpretation},set channelInterpretation(Nt){mt.channelInterpretation=Nt,gt.channelInterpretation=Nt},get coneInnerAngle(){return gt.coneInnerAngle},set coneInnerAngle(Nt){gt.coneInnerAngle=Nt},get coneOuterAngle(){return gt.coneOuterAngle},set coneOuterAngle(Nt){gt.coneOuterAngle=Nt},get coneOuterGain(){return gt.coneOuterGain},set coneOuterGain(Nt){if(Nt<0||Nt>1)throw e();gt.coneOuterGain=Nt},get context(){return gt.context},get distanceModel(){return gt.distanceModel},set distanceModel(Nt){gt.distanceModel=Nt},get inputs(){return[mt]},get maxDistance(){return gt.maxDistance},set maxDistance(Nt){if(Nt<0)throw new RangeError;gt.maxDistance=Nt},get numberOfInputs(){return gt.numberOfInputs},get numberOfOutputs(){return gt.numberOfOutputs},get orientationX(){return At.gain},get orientationY(){return Ot.gain},get orientationZ(){return vt.gain},get panningModel(){return gt.panningModel},set panningModel(Nt){gt.panningModel=Nt},get positionX(){return Ct.gain},get positionY(){return Tt.gain},get positionZ(){return _t.gain},get refDistance(){return gt.refDistance},set refDistance(Nt){if(Nt<0)throw new RangeError;gt.refDistance=Nt},get rolloffFactor(){return gt.rolloffFactor},set rolloffFactor(Nt){if(Nt<0)throw new RangeError;gt.rolloffFactor=Nt},addEventListener(...Nt){return mt.addEventListener(Nt[0],Nt[1],Nt[2])},dispatchEvent(...Nt){return mt.dispatchEvent(Nt[0])},removeEventListener(...Nt){return mt.removeEventListener(Nt[0],Nt[1],Nt[2])}};_e!==Ft.coneInnerAngle&&(Ft.coneInnerAngle=_e),et!==Ft.coneOuterAngle&&(Ft.coneOuterAngle=et),tt!==Ft.coneOuterGain&&(Ft.coneOuterGain=tt),nt!==Ft.distanceModel&&(Ft.distanceModel=nt),it!==Ft.maxDistance&&(Ft.maxDistance=it),rt!==Ft.orientationX.value&&(Ft.orientationX.value=rt),st!==Ft.orientationY.value&&(Ft.orientationY.value=st),ot!==Ft.orientationZ.value&&(Ft.orientationZ.value=ot),at!==Ft.panningModel&&(Ft.panningModel=at),ht!==Ft.positionX.value&&(Ft.positionX.value=ht),lt!==Ft.positionY.value&&(Ft.positionY.value=lt),ut!==Ft.positionZ.value&&(Ft.positionZ.value=ut),ct!==Ft.refDistance&&(Ft.refDistance=ct),dt!==Ft.rolloffFactor&&(Ft.rolloffFactor=dt),(Rt[0]!==1||Rt[1]!==0||Rt[2]!==0)&>.setOrientation(...Rt),($t[0]!==0||$t[1]!==0||$t[2]!==0)&>.setPosition(...$t);const qt=()=>{mt.connect(gt),a(mt,xt,0,0),xt.connect(At).connect(pt,0,0),xt.connect(Ot).connect(pt,0,1),xt.connect(vt).connect(pt,0,2),xt.connect(Ct).connect(pt,0,3),xt.connect(Tt).connect(pt,0,4),xt.connect(_t).connect(pt,0,5),pt.connect(bt).connect(j.destination)},Qt=()=>{mt.disconnect(gt),b(mt,xt,0,0),xt.disconnect(At),At.disconnect(pt),xt.disconnect(Ot),Ot.disconnect(pt),xt.disconnect(vt),vt.disconnect(pt),xt.disconnect(Ct),Ct.disconnect(pt),xt.disconnect(Tt),Tt.disconnect(pt),xt.disconnect(_t),_t.disconnect(pt),pt.disconnect(bt),bt.disconnect(j.destination)};return $(interceptConnections(Ft,gt),qt,Qt)},createNativePeriodicWaveFactory=a=>(e,{disableNormalization:s,imag:o,real:c})=>{const d=o instanceof Float32Array?o:new Float32Array(o),_=c instanceof Float32Array?c:new Float32Array(c),b=e.createPeriodicWave(_,d,{disableNormalization:s});if(Array.from(o).length<2)throw a();return b},createNativeScriptProcessorNode=(a,e,s,o)=>a.createScriptProcessor(e,s,o),createNativeStereoPannerNodeFactory=(a,e)=>(s,o)=>{const c=o.channelCountMode;if(c==="clamped-max")throw e();if(s.createStereoPanner===void 0)return a(s,o);const d=s.createStereoPanner();return assignNativeAudioNodeOptions(d,o),assignNativeAudioNodeAudioParamValue(d,o,"pan"),Object.defineProperty(d,"channelCountMode",{get:()=>c,set:_=>{if(_!==c)throw e()}}),d},createNativeStereoPannerNodeFakerFactory=(a,e,s,o,c,d)=>{const b=new Float32Array([1,1]),k=Math.PI/2,$={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},j=kt(Dt({},$),{oversample:"none"}),_e=(nt,it,rt,st)=>{const ot=new Float32Array(16385),at=new Float32Array(16385);for(let ft=0;ft<16385;ft+=1){const Et=ft/16384*k;ot[ft]=Math.cos(Et),at[ft]=Math.sin(Et)}const ht=s(nt,kt(Dt({},$),{gain:0})),lt=o(nt,kt(Dt({},j),{curve:ot})),ut=o(nt,kt(Dt({},j),{curve:b})),ct=s(nt,kt(Dt({},$),{gain:0})),dt=o(nt,kt(Dt({},j),{curve:at}));return{connectGraph(){it.connect(ht),it.connect(ut.inputs===void 0?ut:ut.inputs[0]),it.connect(ct),ut.connect(rt),rt.connect(lt.inputs===void 0?lt:lt.inputs[0]),rt.connect(dt.inputs===void 0?dt:dt.inputs[0]),lt.connect(ht.gain),dt.connect(ct.gain),ht.connect(st,0,0),ct.connect(st,0,1)},disconnectGraph(){it.disconnect(ht),it.disconnect(ut.inputs===void 0?ut:ut.inputs[0]),it.disconnect(ct),ut.disconnect(rt),rt.disconnect(lt.inputs===void 0?lt:lt.inputs[0]),rt.disconnect(dt.inputs===void 0?dt:dt.inputs[0]),lt.disconnect(ht.gain),dt.disconnect(ct.gain),ht.disconnect(st,0,0),ct.disconnect(st,0,1)}}},et=(nt,it,rt,st)=>{const ot=new Float32Array(16385),at=new Float32Array(16385),ht=new Float32Array(16385),lt=new Float32Array(16385),ut=Math.floor(16385/2);for(let Ot=0;Ot<16385;Ot+=1)if(Ot>ut){const vt=(Ot-ut)/(16384-ut)*k;ot[Ot]=Math.cos(vt),at[Ot]=Math.sin(vt),ht[Ot]=0,lt[Ot]=1}else{const vt=Ot/(16384-ut)*k;ot[Ot]=1,at[Ot]=0,ht[Ot]=Math.cos(vt),lt[Ot]=Math.sin(vt)}const ct=e(nt,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),dt=s(nt,kt(Dt({},$),{gain:0})),ft=o(nt,kt(Dt({},j),{curve:ot})),Et=s(nt,kt(Dt({},$),{gain:0})),yt=o(nt,kt(Dt({},j),{curve:at})),gt=o(nt,kt(Dt({},j),{curve:b})),St=s(nt,kt(Dt({},$),{gain:0})),pt=o(nt,kt(Dt({},j),{curve:ht})),mt=s(nt,kt(Dt({},$),{gain:0})),At=o(nt,kt(Dt({},j),{curve:lt}));return{connectGraph(){it.connect(ct),it.connect(gt.inputs===void 0?gt:gt.inputs[0]),ct.connect(dt,0),ct.connect(Et,0),ct.connect(St,1),ct.connect(mt,1),gt.connect(rt),rt.connect(ft.inputs===void 0?ft:ft.inputs[0]),rt.connect(yt.inputs===void 0?yt:yt.inputs[0]),rt.connect(pt.inputs===void 0?pt:pt.inputs[0]),rt.connect(At.inputs===void 0?At:At.inputs[0]),ft.connect(dt.gain),yt.connect(Et.gain),pt.connect(St.gain),At.connect(mt.gain),dt.connect(st,0,0),St.connect(st,0,0),Et.connect(st,0,1),mt.connect(st,0,1)},disconnectGraph(){it.disconnect(ct),it.disconnect(gt.inputs===void 0?gt:gt.inputs[0]),ct.disconnect(dt,0),ct.disconnect(Et,0),ct.disconnect(St,1),ct.disconnect(mt,1),gt.disconnect(rt),rt.disconnect(ft.inputs===void 0?ft:ft.inputs[0]),rt.disconnect(yt.inputs===void 0?yt:yt.inputs[0]),rt.disconnect(pt.inputs===void 0?pt:pt.inputs[0]),rt.disconnect(At.inputs===void 0?At:At.inputs[0]),ft.disconnect(dt.gain),yt.disconnect(Et.gain),pt.disconnect(St.gain),At.disconnect(mt.gain),dt.disconnect(st,0,0),St.disconnect(st,0,0),Et.disconnect(st,0,1),mt.disconnect(st,0,1)}}},tt=(nt,it,rt,st,ot)=>{if(it===1)return _e(nt,rt,st,ot);if(it===2)return et(nt,rt,st,ot);throw c()};return(nt,at)=>{var ht=at,{channelCount:it,channelCountMode:rt,pan:st}=ht,ot=dn(ht,["channelCount","channelCountMode","pan"]);if(rt==="max")throw c();const lt=a(nt,kt(Dt({},ot),{channelCount:1,channelCountMode:rt,numberOfInputs:2})),ut=s(nt,kt(Dt({},ot),{channelCount:it,channelCountMode:rt,gain:1})),ct=s(nt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:st});let{connectGraph:dt,disconnectGraph:ft}=tt(nt,it,ut,ct,lt);Object.defineProperty(ct.gain,"defaultValue",{get:()=>0}),Object.defineProperty(ct.gain,"maxValue",{get:()=>1}),Object.defineProperty(ct.gain,"minValue",{get:()=>-1});const Et={get bufferSize(){},get channelCount(){return ut.channelCount},set channelCount(pt){ut.channelCount!==pt&&(yt&&ft(),{connectGraph:dt,disconnectGraph:ft}=tt(nt,pt,ut,ct,lt),yt&&dt()),ut.channelCount=pt},get channelCountMode(){return ut.channelCountMode},set channelCountMode(pt){if(pt==="clamped-max"||pt==="max")throw c();ut.channelCountMode=pt},get channelInterpretation(){return ut.channelInterpretation},set channelInterpretation(pt){ut.channelInterpretation=pt},get context(){return ut.context},get inputs(){return[ut]},get numberOfInputs(){return ut.numberOfInputs},get numberOfOutputs(){return ut.numberOfOutputs},get pan(){return ct.gain},addEventListener(...pt){return ut.addEventListener(pt[0],pt[1],pt[2])},dispatchEvent(...pt){return ut.dispatchEvent(pt[0])},removeEventListener(...pt){return ut.removeEventListener(pt[0],pt[1],pt[2])}};let yt=!1;const gt=()=>{dt(),yt=!0},St=()=>{ft(),yt=!1};return d(interceptConnections(Et,lt),gt,St)}},createNativeWaveShaperNodeFactory=(a,e,s,o,c,d,_)=>(b,k)=>{const $=b.createWaveShaper();if(d!==null&&d.name==="webkitAudioContext"&&b.createGain().gain.automationRate===void 0)return s(b,k);assignNativeAudioNodeOptions($,k);const j=k.curve===null||k.curve instanceof Float32Array?k.curve:new Float32Array(k.curve);if(j!==null&&j.length<2)throw e();assignNativeAudioNodeOption($,{curve:j},"curve"),assignNativeAudioNodeOption($,k,"oversample");let _e=null,et=!1;return _($,"curve",it=>()=>it.call($),it=>rt=>(it.call($,rt),et&&(o(rt)&&_e===null?_e=a(b,$):!o(rt)&&_e!==null&&(_e(),_e=null)),rt)),c($,()=>{et=!0,o($.curve)&&(_e=a(b,$))},()=>{et=!1,_e!==null&&(_e(),_e=null)})},createNativeWaveShaperNodeFakerFactory=(a,e,s,o,c)=>(d,$)=>{var j=$,{curve:_,oversample:b}=j,k=dn(j,["curve","oversample"]);const _e=d.createWaveShaper(),et=d.createWaveShaper();assignNativeAudioNodeOptions(_e,k),assignNativeAudioNodeOptions(et,k);const tt=s(d,kt(Dt({},k),{gain:1})),nt=s(d,kt(Dt({},k),{gain:-1})),it=s(d,kt(Dt({},k),{gain:1})),rt=s(d,kt(Dt({},k),{gain:-1}));let st=null,ot=!1,at=null;const ht={get bufferSize(){},get channelCount(){return _e.channelCount},set channelCount(ct){tt.channelCount=ct,nt.channelCount=ct,_e.channelCount=ct,it.channelCount=ct,et.channelCount=ct,rt.channelCount=ct},get channelCountMode(){return _e.channelCountMode},set channelCountMode(ct){tt.channelCountMode=ct,nt.channelCountMode=ct,_e.channelCountMode=ct,it.channelCountMode=ct,et.channelCountMode=ct,rt.channelCountMode=ct},get channelInterpretation(){return _e.channelInterpretation},set channelInterpretation(ct){tt.channelInterpretation=ct,nt.channelInterpretation=ct,_e.channelInterpretation=ct,it.channelInterpretation=ct,et.channelInterpretation=ct,rt.channelInterpretation=ct},get context(){return _e.context},get curve(){return at},set curve(ct){if(ct!==null&&ct.length<2)throw e();if(ct===null)_e.curve=ct,et.curve=ct;else{const dt=ct.length,ft=new Float32Array(dt+2-dt%2),Et=new Float32Array(dt+2-dt%2);ft[0]=ct[0],Et[0]=-ct[dt-1];const yt=Math.ceil((dt+1)/2),gt=(dt+1)/2-1;for(let St=1;St{tt.connect(_e).connect(it),tt.connect(nt).connect(et).connect(rt).connect(it),ot=!0,o(at)&&(st=a(d,tt))},ut=()=>{tt.disconnect(_e),_e.disconnect(it),tt.disconnect(nt),nt.disconnect(et),et.disconnect(rt),rt.disconnect(it),ot=!1,st!==null&&(st(),st=null)};return c(interceptConnections(ht,it),lt,ut)},createNotSupportedError=()=>new DOMException("","NotSupportedError"),DEFAULT_OPTIONS$7={numberOfChannels:1},createOfflineAudioContextConstructor=(a,e,s,o,c)=>class extends a{constructor(_,b,k){let $;if(typeof _=="number"&&b!==void 0&&k!==void 0)$={length:b,numberOfChannels:_,sampleRate:k};else if(typeof _=="object")$=_;else throw new Error("The given parameters are not valid.");const{length:j,numberOfChannels:_e,sampleRate:et}=Dt(Dt({},DEFAULT_OPTIONS$7),$),tt=o(_e,j,et);e(testPromiseSupport,()=>testPromiseSupport(tt))||tt.addEventListener("statechange",(()=>{let nt=0;const it=rt=>{this._state==="running"&&(nt>0?(tt.removeEventListener("statechange",it),rt.stopImmediatePropagation(),this._waitForThePromiseToSettle(rt)):nt+=1)};return it})()),super(tt,_e),this._length=j,this._nativeOfflineAudioContext=tt,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(s()):(this._state="running",c(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,deactivateAudioGraph(this)}))}_waitForThePromiseToSettle(_){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(_):setTimeout(()=>this._waitForThePromiseToSettle(_))}},DEFAULT_OPTIONS$6={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},createOscillatorNodeConstructor=(a,e,s,o,c,d,_)=>class extends a{constructor(k,$){const j=c(k),_e=Dt(Dt({},DEFAULT_OPTIONS$6),$),et=s(j,_e),tt=d(j),nt=tt?o():null,it=k.sampleRate/2;super(k,!1,et,nt),this._detune=e(this,tt,et.detune,153600,-153600),this._frequency=e(this,tt,et.frequency,it,-it),this._nativeOscillatorNode=et,this._onended=null,this._oscillatorNodeRenderer=nt,this._oscillatorNodeRenderer!==null&&_e.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=_e.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(k){const $=typeof k=="function"?_(this,k):null;this._nativeOscillatorNode.onended=$;const j=this._nativeOscillatorNode.onended;this._onended=j!==null&&j===$?k:j}get type(){return this._nativeOscillatorNode.type}set type(k){this._nativeOscillatorNode.type=k,this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(k){this._nativeOscillatorNode.setPeriodicWave(k),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=k)}start(k=0){if(this._nativeOscillatorNode.start(k),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.start=k),this.context.state!=="closed"){setInternalStateToActive(this);const $=()=>{this._nativeOscillatorNode.removeEventListener("ended",$),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeOscillatorNode.addEventListener("ended",$)}}stop(k=0){this._nativeOscillatorNode.stop(k),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=k)}},createOscillatorNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap;let _=null,b=null,k=null;const $=async(j,_e)=>{let et=s(j);const tt=isOwnedByContext(et,_e);if(!tt){const nt={channelCount:et.channelCount,channelCountMode:et.channelCountMode,channelInterpretation:et.channelInterpretation,detune:et.detune.value,frequency:et.frequency.value,periodicWave:_===null?void 0:_,type:et.type};et=e(_e,nt),b!==null&&et.start(b),k!==null&&et.stop(k)}return d.set(_e,et),tt?(await a(_e,j.detune,et.detune),await a(_e,j.frequency,et.frequency)):(await o(_e,j.detune,et.detune),await o(_e,j.frequency,et.frequency)),await c(j,_e,et),et};return{set periodicWave(j){_=j},set start(j){b=j},set stop(j){k=j},render(j,_e){const et=d.get(_e);return et!==void 0?Promise.resolve(et):$(j,_e)}}},DEFAULT_OPTIONS$5={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},createPannerNodeConstructor=(a,e,s,o,c,d,_)=>class extends a{constructor(k,$){const j=c(k),_e=Dt(Dt({},DEFAULT_OPTIONS$5),$),et=s(j,_e),tt=d(j),nt=tt?o():null;super(k,!1,et,nt),this._nativePannerNode=et,this._orientationX=e(this,tt,et.orientationX,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._orientationY=e(this,tt,et.orientationY,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._orientationZ=e(this,tt,et.orientationZ,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionX=e(this,tt,et.positionX,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionY=e(this,tt,et.positionY,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionZ=e(this,tt,et.positionZ,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),_(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(k){this._nativePannerNode.coneInnerAngle=k}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(k){this._nativePannerNode.coneOuterAngle=k}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(k){this._nativePannerNode.coneOuterGain=k}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(k){this._nativePannerNode.distanceModel=k}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(k){this._nativePannerNode.maxDistance=k}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(k){this._nativePannerNode.panningModel=k}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(k){this._nativePannerNode.refDistance=k}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(k){this._nativePannerNode.rolloffFactor=k}},createPannerNodeRendererFactory=(a,e,s,o,c,d,_,b,k,$)=>()=>{const j=new WeakMap;let _e=null;const et=async(tt,nt)=>{let it=null,rt=d(tt);const st={channelCount:rt.channelCount,channelCountMode:rt.channelCountMode,channelInterpretation:rt.channelInterpretation},ot=kt(Dt({},st),{coneInnerAngle:rt.coneInnerAngle,coneOuterAngle:rt.coneOuterAngle,coneOuterGain:rt.coneOuterGain,distanceModel:rt.distanceModel,maxDistance:rt.maxDistance,panningModel:rt.panningModel,refDistance:rt.refDistance,rolloffFactor:rt.rolloffFactor}),at=isOwnedByContext(rt,nt);if("bufferSize"in rt)it=o(nt,kt(Dt({},st),{gain:1}));else if(!at){const ht=kt(Dt({},ot),{orientationX:rt.orientationX.value,orientationY:rt.orientationY.value,orientationZ:rt.orientationZ.value,positionX:rt.positionX.value,positionY:rt.positionY.value,positionZ:rt.positionZ.value});rt=c(nt,ht)}if(j.set(nt,it===null?rt:it),it!==null){if(_e===null){if(_===null)throw new Error("Missing the native OfflineAudioContext constructor.");const yt=new _(6,tt.context.length,nt.sampleRate),gt=e(yt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});gt.connect(yt.destination),_e=(async()=>{const St=await Promise.all([tt.orientationX,tt.orientationY,tt.orientationZ,tt.positionX,tt.positionY,tt.positionZ].map(async(pt,mt)=>{const At=s(yt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:mt===0?1:0});return await b(yt,pt,At.offset),At}));for(let pt=0;pt<6;pt+=1)St[pt].connect(gt,0,pt),St[pt].start(0);return $(yt)})()}const ht=await _e,lt=o(nt,kt(Dt({},st),{gain:1}));await k(tt,nt,lt);const ut=[];for(let yt=0;ytpt!==ct[mt])||St.some((pt,mt)=>pt!==dt[mt])){ct=gt,dt=St;const pt=yt/nt.sampleRate;ft.gain.setValueAtTime(0,pt),ft=o(nt,kt(Dt({},st),{gain:0})),Et=c(nt,kt(Dt({},ot),{orientationX:ct[0],orientationY:ct[1],orientationZ:ct[2],positionX:dt[0],positionY:dt[1],positionZ:dt[2]})),ft.gain.setValueAtTime(1,pt),lt.connect(ft).connect(Et.inputs[0]),Et.connect(it)}}return it}return at?(await a(nt,tt.orientationX,rt.orientationX),await a(nt,tt.orientationY,rt.orientationY),await a(nt,tt.orientationZ,rt.orientationZ),await a(nt,tt.positionX,rt.positionX),await a(nt,tt.positionY,rt.positionY),await a(nt,tt.positionZ,rt.positionZ)):(await b(nt,tt.orientationX,rt.orientationX),await b(nt,tt.orientationY,rt.orientationY),await b(nt,tt.orientationZ,rt.orientationZ),await b(nt,tt.positionX,rt.positionX),await b(nt,tt.positionY,rt.positionY),await b(nt,tt.positionZ,rt.positionZ)),isNativeAudioNodeFaker(rt)?await k(tt,nt,rt.inputs[0]):await k(tt,nt,rt),rt};return{render(tt,nt){const it=j.get(nt);return it!==void 0?Promise.resolve(it):et(tt,nt)}}},DEFAULT_OPTIONS$4={disableNormalization:!1},createPeriodicWaveConstructor=(a,e,s,o)=>class gr{constructor(d,_){const b=e(d),k=o(Dt(Dt({},DEFAULT_OPTIONS$4),_)),$=a(b,k);return s.add($),$}static[Symbol.hasInstance](d){return d!==null&&typeof d=="object"&&Object.getPrototypeOf(d)===gr.prototype||s.has(d)}},createRenderAutomation=(a,e)=>(s,o,c)=>(a(o).replay(c),e(o,s,c)),createRenderInputsOfAudioNode=(a,e,s)=>async(o,c,d)=>{const _=a(o);await Promise.all(_.activeInputs.map((b,k)=>Array.from(b).map(async([$,j])=>{const et=await e($).render($,c),tt=o.context.destination;!s($)&&(o!==tt||!s(o))&&et.connect(d,j,k)})).reduce((b,k)=>[...b,...k],[]))},createRenderInputsOfAudioParam=(a,e,s)=>async(o,c,d)=>{const _=e(o);await Promise.all(Array.from(_.activeInputs).map(async([b,k])=>{const j=await a(b).render(b,c);s(b)||j.connect(d,k)}))},createRenderNativeOfflineAudioContext=(a,e,s,o)=>c=>a(testPromiseSupport,()=>testPromiseSupport(c))?Promise.resolve(a(o,o)).then(d=>{if(!d){const _=s(c,512,0,1);c.oncomplete=()=>{_.onaudioprocess=null,_.disconnect()},_.onaudioprocess=()=>c.currentTime,_.connect(c.destination)}return c.startRendering()}):new Promise(d=>{const _=e(c,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});c.oncomplete=b=>{_.disconnect(),d(b.renderedBuffer)},_.connect(c.destination),c.startRendering()}),createSetActiveAudioWorkletNodeInputs=a=>(e,s)=>{a.set(e,s)},createSetAudioNodeTailTime=a=>(e,s)=>a.set(e,s),createStartRendering=(a,e,s,o,c,d,_,b)=>(k,$)=>s(k).render(k,$).then(()=>Promise.all(Array.from(o($)).map(j=>s(j).render(j,$)))).then(()=>c($)).then(j=>(typeof j.copyFromChannel!="function"?(_(j),wrapAudioBufferGetChannelDataMethod(j)):e(d,()=>d(j))||b(j),a.add(j),j)),DEFAULT_OPTIONS$3={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},createStereoPannerNodeConstructor=(a,e,s,o,c,d)=>class extends a{constructor(b,k){const $=c(b),j=Dt(Dt({},DEFAULT_OPTIONS$3),k),_e=s($,j),et=d($),tt=et?o():null;super(b,!1,_e,tt),this._pan=e(this,et,_e.pan)}get pan(){return this._pan}},createStereoPannerNodeRendererFactory=(a,e,s,o,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,pan:$.pan.value};$=e(k,_e)}return d.set(k,$),j?await a(k,b.pan,$.pan):await o(k,b.pan,$.pan),isNativeAudioNodeFaker($)?await c(b,k,$.inputs[0]):await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createTestAudioBufferConstructorSupport=a=>()=>{if(a===null)return!1;try{new a({length:1,sampleRate:44100})}catch{return!1}return!0},createTestAudioBufferCopyChannelMethodsSubarraySupport=a=>()=>{if(a===null)return!1;const s=new a(1,1,44100).createBuffer(1,1,44100);if(s.copyToChannel===void 0)return!0;const o=new Float32Array(2);try{s.copyFromChannel(o,0,0)}catch{return!1}return!0},createTestAudioContextCloseMethodSupport=a=>()=>{if(a===null)return!1;if(a.prototype!==void 0&&a.prototype.close!==void 0)return!0;const e=new a,s=e.close!==void 0;try{e.close()}catch{}return s},createTestAudioContextDecodeAudioDataMethodTypeErrorSupport=a=>()=>{if(a===null)return Promise.resolve(!1);const e=new a(1,1,44100);return new Promise(s=>{let o=!0;const c=_=>{o&&(o=!1,e.startRendering(),s(_ instanceof TypeError))};let d;try{d=e.decodeAudioData(null,()=>{},c)}catch(_){c(_)}d!==void 0&&d.catch(c)})},createTestAudioContextOptionsSupport=a=>()=>{if(a===null)return!1;let e;try{e=new a({latencyHint:"balanced"})}catch{return!1}return e.close(),!0},createTestAudioNodeConnectMethodSupport=a=>()=>{if(a===null)return!1;const s=new a(1,1,44100).createGain(),o=s.connect(s)===s;return s.disconnect(s),o},createTestAudioWorkletProcessorNoOutputsSupport=(a,e)=>async()=>{if(a===null)return!0;if(e===null)return!1;const s=new Blob(['let c,p;class A extends AudioWorkletProcessor{constructor(){super();this.port.onmessage=(e)=>{p=e.data;p.onmessage=()=>{p.postMessage(c);p.close()};this.port.postMessage(0)}}process(){c=1}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),o=new MessageChannel,c=new e(1,128,44100),d=URL.createObjectURL(s);let _=!1;try{await c.audioWorklet.addModule(d);const b=new a(c,"a",{numberOfOutputs:0}),k=c.createOscillator();await new Promise($=>{b.port.onmessage=()=>$(),b.port.postMessage(o.port2,[o.port2])}),b.port.onmessage=()=>_=!0,k.connect(b),k.start(0),await c.startRendering(),_=await new Promise($=>{o.port1.onmessage=({data:j})=>$(j===1),o.port1.postMessage(0)})}catch{}finally{o.port1.close(),URL.revokeObjectURL(d)}return _},createTestAudioWorkletProcessorPostMessageSupport=(a,e)=>async()=>{if(a===null)return!0;if(e===null)return!1;const s=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),o=new e(1,128,44100),c=URL.createObjectURL(s);let d=!1,_=!1;try{await o.audioWorklet.addModule(c);const b=new a(o,"a",{numberOfOutputs:0}),k=o.createOscillator();b.port.onmessage=()=>d=!0,b.onprocessorerror=()=>_=!0,k.connect(b),k.start(0),await o.startRendering()}catch{}finally{URL.revokeObjectURL(c)}return d&&!_},createTestChannelMergerNodeChannelCountSupport=a=>()=>{if(a===null)return!1;const s=new a(1,1,44100).createChannelMerger();if(s.channelCountMode==="max")return!0;try{s.channelCount=2}catch{return!0}return!1},createTestConstantSourceNodeAccurateSchedulingSupport=a=>()=>{if(a===null)return!1;const e=new a(1,1,44100);return e.createConstantSource===void 0?!0:e.createConstantSource().offset.maxValue!==Number.POSITIVE_INFINITY},createTestConvolverNodeBufferReassignabilitySupport=a=>()=>{if(a===null)return!1;const e=new a(1,1,44100),s=e.createConvolver();s.buffer=e.createBuffer(1,1,e.sampleRate);try{s.buffer=e.createBuffer(1,1,e.sampleRate)}catch{return!1}return!0},createTestConvolverNodeChannelCountSupport=a=>()=>{if(a===null)return!1;const s=new a(1,1,44100).createConvolver();try{s.channelCount=1}catch{return!1}return!0},createTestIsSecureContextSupport=a=>()=>a!==null&&a.hasOwnProperty("isSecureContext"),createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport=a=>()=>{if(a===null)return!1;const e=new a;try{return e.createMediaStreamSource(new MediaStream),!1}catch{return!0}finally{e.close()}},createTestOfflineAudioContextCurrentTimeSupport=(a,e)=>()=>{if(e===null)return Promise.resolve(!1);const s=new e(1,1,44100),o=a(s,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise(c=>{s.oncomplete=()=>{o.disconnect(),c(s.currentTime!==0)},s.startRendering()})},createTestStereoPannerNodeDefaultValueSupport=a=>()=>{if(a===null)return Promise.resolve(!1);const e=new a(1,1,44100);if(e.createStereoPanner===void 0||e.createConstantSource===void 0)return Promise.resolve(!0);const s=e.createConstantSource(),o=e.createStereoPanner();return s.channelCount=1,s.offset.value=1,o.channelCount=1,s.start(),s.connect(o).connect(e.destination),e.startRendering().then(c=>c.getChannelData(0)[0]!==1)},createUnknownError=()=>new DOMException("","UnknownError"),DEFAULT_OPTIONS$2={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},createWaveShaperNodeConstructor=(a,e,s,o,c,d,_)=>class extends a{constructor(k,$){const j=c(k),_e=Dt(Dt({},DEFAULT_OPTIONS$2),$),et=s(j,_e),nt=d(j)?o():null;super(k,!0,et,nt),this._isCurveNullified=!1,this._nativeWaveShaperNode=et,_(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(k){if(k===null)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(k.length<2)throw e();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=k}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(k){this._nativeWaveShaperNode.oversample=k}},createWaveShaperNodeRendererFactory=(a,e,s)=>()=>{const o=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,curve:b.curve,oversample:b.oversample};b=a(_,$)}return o.set(_,b),isNativeAudioNodeFaker(b)?await s(d,_,b.inputs[0]):await s(d,_,b),b};return{render(d,_){const b=o.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},createWindow=()=>typeof window=="undefined"?null:window,createWrapAudioBufferCopyChannelMethods=(a,e)=>s=>{s.copyFromChannel=(o,c,d=0)=>{const _=a(d),b=a(c);if(b>=s.numberOfChannels)throw e();const k=s.length,$=s.getChannelData(b),j=o.length;for(let _e=_<0?-_:0;_e+_{const _=a(d),b=a(c);if(b>=s.numberOfChannels)throw e();const k=s.length,$=s.getChannelData(b),j=o.length;for(let _e=_<0?-_:0;_e+_e=>{e.copyFromChannel=(s=>(o,c,d=0)=>{const _=a(d),b=a(c);if(_(o,c,d=0)=>{const _=a(d),b=a(c);if(_(e,s)=>{const o=s.createBuffer(1,1,44100);e.buffer===null&&(e.buffer=o),a(e,"buffer",c=>()=>{const d=c.call(e);return d===o?null:d},c=>d=>c.call(e,d===null?o:d))},createWrapChannelMergerNode=(a,e)=>(s,o)=>{o.channelCount=1,o.channelCountMode="explicit",Object.defineProperty(o,"channelCount",{get:()=>1,set:()=>{throw a()}}),Object.defineProperty(o,"channelCountMode",{get:()=>"explicit",set:()=>{throw a()}});const c=s.createBufferSource();e(o,()=>{const b=o.numberOfInputs;for(let k=0;kc.disconnect(o))},getFirstSample=(a,e,s)=>a.copyFromChannel===void 0?a.getChannelData(s)[0]:(a.copyFromChannel(e,s),e[0]),isDCCurve=a=>{if(a===null)return!1;const e=a.length;return e%2!==0?a[Math.floor(e/2)]!==0:a[e/2-1]+a[e/2]!==0},overwriteAccessors=(a,e,s,o)=>{let c=a;for(;!c.hasOwnProperty(e);)c=Object.getPrototypeOf(c);const{get:d,set:_}=Object.getOwnPropertyDescriptor(c,e);Object.defineProperty(a,e,{get:s(d),set:o(_)})},sanitizeAudioWorkletNodeOptions=a=>kt(Dt({},a),{outputChannelCount:a.outputChannelCount!==void 0?a.outputChannelCount:a.numberOfInputs===1&&a.numberOfOutputs===1?[a.channelCount]:Array.from({length:a.numberOfOutputs},()=>1)}),sanitizeChannelSplitterOptions=a=>kt(Dt({},a),{channelCount:a.numberOfOutputs}),sanitizePeriodicWaveOptions=a=>{const{imag:e,real:s}=a;return e===void 0?s===void 0?kt(Dt({},a),{imag:[0,0],real:[0,0]}):kt(Dt({},a),{imag:Array.from(s,()=>0),real:s}):s===void 0?kt(Dt({},a),{imag:e,real:Array.from(e,()=>0)}):kt(Dt({},a),{imag:e,real:s})},setValueAtTimeUntilPossible=(a,e,s)=>{try{a.setValueAtTime(e,s)}catch(o){if(o.code!==9)throw o;setValueAtTimeUntilPossible(a,e,s+1e-7)}},testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport=a=>{const e=a.createBufferSource();e.start();try{e.start()}catch{return!0}return!1},testAudioBufferSourceNodeStartMethodOffsetClampingSupport=a=>{const e=a.createBufferSource(),s=a.createBuffer(1,1,44100);e.buffer=s;try{e.start(0,1)}catch{return!1}return!0},testAudioBufferSourceNodeStopMethodNullifiedBufferSupport=a=>{const e=a.createBufferSource();e.start();try{e.stop()}catch{return!1}return!0},testAudioScheduledSourceNodeStartMethodNegativeParametersSupport=a=>{const e=a.createOscillator();try{e.start(-1)}catch(s){return s instanceof RangeError}return!1},testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport=a=>{const e=a.createBuffer(1,1,44100),s=a.createBufferSource();s.buffer=e,s.start(),s.stop();try{return s.stop(),!0}catch{return!1}},testAudioScheduledSourceNodeStopMethodNegativeParametersSupport=a=>{const e=a.createOscillator();try{e.stop(-1)}catch(s){return s instanceof RangeError}return!1},testAudioWorkletNodeOptionsClonability=a=>{const{port1:e,port2:s}=new MessageChannel;try{e.postMessage(a)}finally{e.close(),s.close()}},testDomExceptionConstructorSupport=()=>{try{new DOMException}catch{return!1}return!0},testTransferablesSupport=()=>new Promise(a=>{const e=new ArrayBuffer(0),{port1:s,port2:o}=new MessageChannel;s.onmessage=({data:c})=>a(c!==null),o.postMessage(e,[e])}),wrapAudioBufferSourceNodeStartMethodOffsetClamping=a=>{a.start=(e=>(s=0,o=0,c)=>{const d=a.buffer,_=d===null?o:Math.min(d.duration,o);d!==null&&_>d.duration-.5/a.context.sampleRate?e.call(a,s,0,0):e.call(a,s,_,c)})(a.start)},wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls=(a,e)=>{const s=e.createGain();a.connect(s);const o=(c=>()=>{c.call(a,s),a.removeEventListener("ended",o)})(a.disconnect);a.addEventListener("ended",o),interceptConnections(a,s),a.stop=(c=>{let d=!1;return(_=0)=>{if(d)try{c.call(a,_)}catch{s.gain.setValueAtTime(0,_)}else c.call(a,_),d=!0}})(a.stop)},wrapEventListener=(a,e)=>s=>{const o={value:a};return Object.defineProperties(s,{currentTarget:o,target:o}),typeof e=="function"?e.call(a,s):e.handleEvent.call(a,s)},addActiveInputConnectionToAudioNode=createAddActiveInputConnectionToAudioNode(insertElementInSet),addPassiveInputConnectionToAudioNode=createAddPassiveInputConnectionToAudioNode(insertElementInSet),deleteActiveInputConnectionToAudioNode=createDeleteActiveInputConnectionToAudioNode(pickElementFromSet),audioNodeTailTimeStore=new WeakMap,getAudioNodeTailTime=createGetAudioNodeTailTime(audioNodeTailTimeStore),cacheTestResult=createCacheTestResult(new Map,new WeakMap),window$1=createWindow(),createNativeAnalyserNode=createNativeAnalyserNodeFactory(cacheTestResult,createIndexSizeError),getAudioNodeRenderer=createGetAudioNodeRenderer(getAudioNodeConnections),renderInputsOfAudioNode=createRenderInputsOfAudioNode(getAudioNodeConnections,getAudioNodeRenderer,isPartOfACycle),createAnalyserNodeRenderer=createAnalyserNodeRendererFactory(createNativeAnalyserNode,getNativeAudioNode,renderInputsOfAudioNode),getNativeContext=createGetNativeContext(CONTEXT_STORE),nativeOfflineAudioContextConstructor=createNativeOfflineAudioContextConstructor(window$1),isNativeOfflineAudioContext=createIsNativeOfflineAudioContext(nativeOfflineAudioContextConstructor),audioParamAudioNodeStore=new WeakMap,eventTargetConstructor=createEventTargetConstructor(wrapEventListener),nativeAudioContextConstructor=createNativeAudioContextConstructor(window$1),isNativeAudioContext=createIsNativeAudioContext(nativeAudioContextConstructor),isNativeAudioNode=createIsNativeAudioNode(window$1),isNativeAudioParam=createIsNativeAudioParam(window$1),nativeAudioWorkletNodeConstructor=createNativeAudioWorkletNodeConstructor(window$1),audioNodeConstructor=createAudioNodeConstructor(createAddAudioNodeConnections(AUDIO_NODE_CONNECTIONS_STORE),createAddConnectionToAudioNode(addActiveInputConnectionToAudioNode,addPassiveInputConnectionToAudioNode,connectNativeAudioNodeToNativeAudioNode,deleteActiveInputConnectionToAudioNode,disconnectNativeAudioNodeFromNativeAudioNode,getAudioNodeConnections,getAudioNodeTailTime,getEventListenersOfAudioNode,getNativeAudioNode,insertElementInSet,isActiveAudioNode,isPartOfACycle,isPassiveAudioNode),cacheTestResult,createIncrementCycleCounterFactory(CYCLE_COUNTERS,disconnectNativeAudioNodeFromNativeAudioNode,getAudioNodeConnections,getNativeAudioNode,getNativeAudioParam,isActiveAudioNode),createIndexSizeError,createInvalidAccessError,createNotSupportedError,createDecrementCycleCounter(connectNativeAudioNodeToNativeAudioNode,CYCLE_COUNTERS,getAudioNodeConnections,getNativeAudioNode,getNativeAudioParam,getNativeContext,isActiveAudioNode,isNativeOfflineAudioContext),createDetectCycles(audioParamAudioNodeStore,getAudioNodeConnections,getValueForKey),eventTargetConstructor,getNativeContext,isNativeAudioContext,isNativeAudioNode,isNativeAudioParam,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor),analyserNodeConstructor=createAnalyserNodeConstructor(audioNodeConstructor,createAnalyserNodeRenderer,createIndexSizeError,createNativeAnalyserNode,getNativeContext,isNativeOfflineAudioContext),audioBufferStore=new WeakSet,nativeAudioBufferConstructor=createNativeAudioBufferConstructor(window$1),convertNumberToUnsignedLong=createConvertNumberToUnsignedLong(new Uint32Array(1)),wrapAudioBufferCopyChannelMethods=createWrapAudioBufferCopyChannelMethods(convertNumberToUnsignedLong,createIndexSizeError),wrapAudioBufferCopyChannelMethodsOutOfBounds=createWrapAudioBufferCopyChannelMethodsOutOfBounds(convertNumberToUnsignedLong),audioBufferConstructor=createAudioBufferConstructor(audioBufferStore,cacheTestResult,createNotSupportedError,nativeAudioBufferConstructor,nativeOfflineAudioContextConstructor,createTestAudioBufferConstructorSupport(nativeAudioBufferConstructor),wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),addSilentConnection=createAddSilentConnection(createNativeGainNode),renderInputsOfAudioParam=createRenderInputsOfAudioParam(getAudioNodeRenderer,getAudioParamConnections,isPartOfACycle),connectAudioParam=createConnectAudioParam(renderInputsOfAudioParam),createNativeAudioBufferSourceNode=createNativeAudioBufferSourceNodeFactory(addSilentConnection,cacheTestResult,testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport,testAudioBufferSourceNodeStartMethodOffsetClampingSupport,testAudioBufferSourceNodeStopMethodNullifiedBufferSupport,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,wrapAudioBufferSourceNodeStartMethodOffsetClamping,createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer(overwriteAccessors),wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls),renderAutomation=createRenderAutomation(createGetAudioParamRenderer(getAudioParamConnections),renderInputsOfAudioParam),createAudioBufferSourceNodeRenderer=createAudioBufferSourceNodeRendererFactory(connectAudioParam,createNativeAudioBufferSourceNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),createAudioParam=createAudioParamFactory(createAddAudioParamConnections(AUDIO_PARAM_CONNECTIONS_STORE),audioParamAudioNodeStore,AUDIO_PARAM_STORE,createAudioParamRenderer,createCancelAndHoldAutomationEvent,createCancelScheduledValuesAutomationEvent,createExponentialRampToValueAutomationEvent,createLinearRampToValueAutomationEvent,createSetTargetAutomationEvent,createSetValueAutomationEvent,createSetValueCurveAutomationEvent,nativeAudioContextConstructor,setValueAtTimeUntilPossible),audioBufferSourceNodeConstructor=createAudioBufferSourceNodeConstructor(audioNodeConstructor,createAudioBufferSourceNodeRenderer,createAudioParam,createInvalidStateError,createNativeAudioBufferSourceNode,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),audioDestinationNodeConstructor=createAudioDestinationNodeConstructor(audioNodeConstructor,createAudioDestinationNodeRenderer,createIndexSizeError,createInvalidStateError,createNativeAudioDestinationNodeFactory(createNativeGainNode,overwriteAccessors),getNativeContext,isNativeOfflineAudioContext,renderInputsOfAudioNode),createBiquadFilterNodeRenderer=createBiquadFilterNodeRendererFactory(connectAudioParam,createNativeBiquadFilterNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),setAudioNodeTailTime=createSetAudioNodeTailTime(audioNodeTailTimeStore),biquadFilterNodeConstructor=createBiquadFilterNodeConstructor(audioNodeConstructor,createAudioParam,createBiquadFilterNodeRenderer,createInvalidAccessError,createNativeBiquadFilterNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),monitorConnections=createMonitorConnections(insertElementInSet,isNativeAudioNode),wrapChannelMergerNode=createWrapChannelMergerNode(createInvalidStateError,monitorConnections),createNativeChannelMergerNode=createNativeChannelMergerNodeFactory(nativeAudioContextConstructor,wrapChannelMergerNode),createChannelMergerNodeRenderer=createChannelMergerNodeRendererFactory(createNativeChannelMergerNode,getNativeAudioNode,renderInputsOfAudioNode),channelMergerNodeConstructor=createChannelMergerNodeConstructor(audioNodeConstructor,createChannelMergerNodeRenderer,createNativeChannelMergerNode,getNativeContext,isNativeOfflineAudioContext),createChannelSplitterNodeRenderer=createChannelSplitterNodeRendererFactory(createNativeChannelSplitterNode,getNativeAudioNode,renderInputsOfAudioNode),channelSplitterNodeConstructor=createChannelSplitterNodeConstructor(audioNodeConstructor,createChannelSplitterNodeRenderer,createNativeChannelSplitterNode,getNativeContext,isNativeOfflineAudioContext,sanitizeChannelSplitterOptions),createNativeConstantSourceNodeFaker=createNativeConstantSourceNodeFakerFactory(addSilentConnection,createNativeAudioBufferSourceNode,createNativeGainNode,monitorConnections),createNativeConstantSourceNode=createNativeConstantSourceNodeFactory(addSilentConnection,cacheTestResult,createNativeConstantSourceNodeFaker,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport),createConstantSourceNodeRenderer=createConstantSourceNodeRendererFactory(connectAudioParam,createNativeConstantSourceNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),constantSourceNodeConstructor=createConstantSourceNodeConstructor(audioNodeConstructor,createAudioParam,createConstantSourceNodeRenderer,createNativeConstantSourceNode,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),createNativeConvolverNode=createNativeConvolverNodeFactory(createNotSupportedError,overwriteAccessors),createConvolverNodeRenderer=createConvolverNodeRendererFactory(createNativeConvolverNode,getNativeAudioNode,renderInputsOfAudioNode),convolverNodeConstructor=createConvolverNodeConstructor(audioNodeConstructor,createConvolverNodeRenderer,createNativeConvolverNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createDelayNodeRenderer=createDelayNodeRendererFactory(connectAudioParam,createNativeDelayNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),delayNodeConstructor=createDelayNodeConstructor(audioNodeConstructor,createAudioParam,createDelayNodeRenderer,createNativeDelayNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createNativeDynamicsCompressorNode=createNativeDynamicsCompressorNodeFactory(createNotSupportedError),createDynamicsCompressorNodeRenderer=createDynamicsCompressorNodeRendererFactory(connectAudioParam,createNativeDynamicsCompressorNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),dynamicsCompressorNodeConstructor=createDynamicsCompressorNodeConstructor(audioNodeConstructor,createAudioParam,createDynamicsCompressorNodeRenderer,createNativeDynamicsCompressorNode,createNotSupportedError,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createGainNodeRenderer=createGainNodeRendererFactory(connectAudioParam,createNativeGainNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),gainNodeConstructor=createGainNodeConstructor(audioNodeConstructor,createAudioParam,createGainNodeRenderer,createNativeGainNode,getNativeContext,isNativeOfflineAudioContext),createNativeIIRFilterNodeFaker=createNativeIIRFilterNodeFakerFactory(createInvalidAccessError,createInvalidStateError,createNativeScriptProcessorNode,createNotSupportedError),renderNativeOfflineAudioContext=createRenderNativeOfflineAudioContext(cacheTestResult,createNativeGainNode,createNativeScriptProcessorNode,createTestOfflineAudioContextCurrentTimeSupport(createNativeGainNode,nativeOfflineAudioContextConstructor)),createIIRFilterNodeRenderer=createIIRFilterNodeRendererFactory(createNativeAudioBufferSourceNode,getNativeAudioNode,nativeOfflineAudioContextConstructor,renderInputsOfAudioNode,renderNativeOfflineAudioContext),createNativeIIRFilterNode=createNativeIIRFilterNodeFactory(createNativeIIRFilterNodeFaker),iIRFilterNodeConstructor=createIIRFilterNodeConstructor(audioNodeConstructor,createNativeIIRFilterNode,createIIRFilterNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createAudioListener=createAudioListenerFactory(createAudioParam,createNativeChannelMergerNode,createNativeConstantSourceNode,createNativeScriptProcessorNode,createNotSupportedError,getFirstSample,isNativeOfflineAudioContext,overwriteAccessors),unrenderedAudioWorkletNodeStore=new WeakMap,minimalBaseAudioContextConstructor=createMinimalBaseAudioContextConstructor(audioDestinationNodeConstructor,createAudioListener,eventTargetConstructor,isNativeOfflineAudioContext,unrenderedAudioWorkletNodeStore,wrapEventListener),createNativeOscillatorNode=createNativeOscillatorNodeFactory(addSilentConnection,cacheTestResult,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls),createOscillatorNodeRenderer=createOscillatorNodeRendererFactory(connectAudioParam,createNativeOscillatorNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),oscillatorNodeConstructor=createOscillatorNodeConstructor(audioNodeConstructor,createAudioParam,createNativeOscillatorNode,createOscillatorNodeRenderer,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),createConnectedNativeAudioBufferSourceNode=createConnectedNativeAudioBufferSourceNodeFactory(createNativeAudioBufferSourceNode),createNativeWaveShaperNodeFaker=createNativeWaveShaperNodeFakerFactory(createConnectedNativeAudioBufferSourceNode,createInvalidStateError,createNativeGainNode,isDCCurve,monitorConnections),createNativeWaveShaperNode=createNativeWaveShaperNodeFactory(createConnectedNativeAudioBufferSourceNode,createInvalidStateError,createNativeWaveShaperNodeFaker,isDCCurve,monitorConnections,nativeAudioContextConstructor,overwriteAccessors),createNativePannerNodeFaker=createNativePannerNodeFakerFactory(connectNativeAudioNodeToNativeAudioNode,createInvalidStateError,createNativeChannelMergerNode,createNativeGainNode,createNativeScriptProcessorNode,createNativeWaveShaperNode,createNotSupportedError,disconnectNativeAudioNodeFromNativeAudioNode,getFirstSample,monitorConnections),createNativePannerNode=createNativePannerNodeFactory(createNativePannerNodeFaker),createPannerNodeRenderer=createPannerNodeRendererFactory(connectAudioParam,createNativeChannelMergerNode,createNativeConstantSourceNode,createNativeGainNode,createNativePannerNode,getNativeAudioNode,nativeOfflineAudioContextConstructor,renderAutomation,renderInputsOfAudioNode,renderNativeOfflineAudioContext),pannerNodeConstructor=createPannerNodeConstructor(audioNodeConstructor,createAudioParam,createNativePannerNode,createPannerNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createNativePeriodicWave=createNativePeriodicWaveFactory(createIndexSizeError),periodicWaveConstructor=createPeriodicWaveConstructor(createNativePeriodicWave,getNativeContext,new WeakSet,sanitizePeriodicWaveOptions),nativeStereoPannerNodeFakerFactory=createNativeStereoPannerNodeFakerFactory(createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeGainNode,createNativeWaveShaperNode,createNotSupportedError,monitorConnections),createNativeStereoPannerNode=createNativeStereoPannerNodeFactory(nativeStereoPannerNodeFakerFactory,createNotSupportedError),createStereoPannerNodeRenderer=createStereoPannerNodeRendererFactory(connectAudioParam,createNativeStereoPannerNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),stereoPannerNodeConstructor=createStereoPannerNodeConstructor(audioNodeConstructor,createAudioParam,createNativeStereoPannerNode,createStereoPannerNodeRenderer,getNativeContext,isNativeOfflineAudioContext),createWaveShaperNodeRenderer=createWaveShaperNodeRendererFactory(createNativeWaveShaperNode,getNativeAudioNode,renderInputsOfAudioNode),waveShaperNodeConstructor=createWaveShaperNodeConstructor(audioNodeConstructor,createInvalidStateError,createNativeWaveShaperNode,createWaveShaperNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),isSecureContext=createIsSecureContext(window$1),exposeCurrentFrameAndCurrentTime=createExposeCurrentFrameAndCurrentTime(window$1),backupOfflineAudioContextStore=new WeakMap,getOrCreateBackupOfflineAudioContext=createGetOrCreateBackupOfflineAudioContext(backupOfflineAudioContextStore,nativeOfflineAudioContextConstructor),addAudioWorkletModule=isSecureContext?createAddAudioWorkletModule(cacheTestResult,createNotSupportedError,createEvaluateSource(window$1),exposeCurrentFrameAndCurrentTime,createFetchSource(createAbortError),getNativeContext,getOrCreateBackupOfflineAudioContext,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor,new WeakMap,new WeakMap,createTestAudioWorkletProcessorPostMessageSupport(nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor),window$1):void 0,isNativeContext=createIsNativeContext(isNativeAudioContext,isNativeOfflineAudioContext),decodeAudioData=createDecodeAudioData(audioBufferStore,cacheTestResult,createDataCloneError,createEncodingError,new WeakSet,getNativeContext,isNativeContext,testAudioBufferCopyChannelMethodsOutOfBoundsSupport,testPromiseSupport,wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),baseAudioContextConstructor=createBaseAudioContextConstructor(addAudioWorkletModule,analyserNodeConstructor,audioBufferConstructor,audioBufferSourceNodeConstructor,biquadFilterNodeConstructor,channelMergerNodeConstructor,channelSplitterNodeConstructor,constantSourceNodeConstructor,convolverNodeConstructor,decodeAudioData,delayNodeConstructor,dynamicsCompressorNodeConstructor,gainNodeConstructor,iIRFilterNodeConstructor,minimalBaseAudioContextConstructor,oscillatorNodeConstructor,pannerNodeConstructor,periodicWaveConstructor,stereoPannerNodeConstructor,waveShaperNodeConstructor),mediaElementAudioSourceNodeConstructor=createMediaElementAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaElementAudioSourceNode,getNativeContext,isNativeOfflineAudioContext),mediaStreamAudioDestinationNodeConstructor=createMediaStreamAudioDestinationNodeConstructor(audioNodeConstructor,createNativeMediaStreamAudioDestinationNode,getNativeContext,isNativeOfflineAudioContext),mediaStreamAudioSourceNodeConstructor=createMediaStreamAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaStreamAudioSourceNode,getNativeContext,isNativeOfflineAudioContext),createNativeMediaStreamTrackAudioSourceNode=createNativeMediaStreamTrackAudioSourceNodeFactory(createInvalidStateError,isNativeOfflineAudioContext),mediaStreamTrackAudioSourceNodeConstructor=createMediaStreamTrackAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaStreamTrackAudioSourceNode,getNativeContext),audioContextConstructor=createAudioContextConstructor(baseAudioContextConstructor,createInvalidStateError,createNotSupportedError,createUnknownError,mediaElementAudioSourceNodeConstructor,mediaStreamAudioDestinationNodeConstructor,mediaStreamAudioSourceNodeConstructor,mediaStreamTrackAudioSourceNodeConstructor,nativeAudioContextConstructor),getUnrenderedAudioWorkletNodes=createGetUnrenderedAudioWorkletNodes(unrenderedAudioWorkletNodeStore),addUnrenderedAudioWorkletNode=createAddUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes),connectMultipleOutputs=createConnectMultipleOutputs(createIndexSizeError),deleteUnrenderedAudioWorkletNode=createDeleteUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes),disconnectMultipleOutputs=createDisconnectMultipleOutputs(createIndexSizeError),activeAudioWorkletNodeInputsStore=new WeakMap,getActiveAudioWorkletNodeInputs=createGetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore,getValueForKey),createNativeAudioWorkletNodeFaker=createNativeAudioWorkletNodeFakerFactory(connectMultipleOutputs,createIndexSizeError,createInvalidStateError,createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeConstantSourceNode,createNativeGainNode,createNativeScriptProcessorNode,createNotSupportedError,disconnectMultipleOutputs,exposeCurrentFrameAndCurrentTime,getActiveAudioWorkletNodeInputs,monitorConnections),createNativeAudioWorkletNode=createNativeAudioWorkletNodeFactory(createInvalidStateError,createNativeAudioWorkletNodeFaker,createNativeGainNode,createNotSupportedError,monitorConnections),createAudioWorkletNodeRenderer=createAudioWorkletNodeRendererFactory(connectAudioParam,connectMultipleOutputs,createNativeAudioBufferSourceNode,createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeConstantSourceNode,createNativeGainNode,deleteUnrenderedAudioWorkletNode,disconnectMultipleOutputs,exposeCurrentFrameAndCurrentTime,getNativeAudioNode,nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor,renderAutomation,renderInputsOfAudioNode,renderNativeOfflineAudioContext),getBackupOfflineAudioContext=createGetBackupOfflineAudioContext(backupOfflineAudioContextStore),setActiveAudioWorkletNodeInputs=createSetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore),audioWorkletNodeConstructor=isSecureContext?createAudioWorkletNodeConstructor(addUnrenderedAudioWorkletNode,audioNodeConstructor,createAudioParam,createAudioWorkletNodeRenderer,createNativeAudioWorkletNode,getAudioNodeConnections,getBackupOfflineAudioContext,getNativeContext,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor,sanitizeAudioWorkletNodeOptions,setActiveAudioWorkletNodeInputs,testAudioWorkletNodeOptionsClonability,wrapEventListener):void 0,createNativeOfflineAudioContext=createCreateNativeOfflineAudioContext(createNotSupportedError,nativeOfflineAudioContextConstructor),startRendering=createStartRendering(audioBufferStore,cacheTestResult,getAudioNodeRenderer,getUnrenderedAudioWorkletNodes,renderNativeOfflineAudioContext,testAudioBufferCopyChannelMethodsOutOfBoundsSupport,wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),offlineAudioContextConstructor=createOfflineAudioContextConstructor(baseAudioContextConstructor,cacheTestResult,createInvalidStateError,createNativeOfflineAudioContext,startRendering),isAnyAudioContext=createIsAnyAudioContext(CONTEXT_STORE,isNativeAudioContext),isAnyAudioNode=createIsAnyAudioNode(AUDIO_NODE_STORE,isNativeAudioNode),isAnyAudioParam=createIsAnyAudioParam(AUDIO_PARAM_STORE,isNativeAudioParam),isAnyOfflineAudioContext=createIsAnyOfflineAudioContext(CONTEXT_STORE,isNativeOfflineAudioContext),isSupported=()=>createIsSupportedPromise(cacheTestResult,createTestAudioBufferCopyChannelMethodsSubarraySupport(nativeOfflineAudioContextConstructor),createTestAudioContextCloseMethodSupport(nativeAudioContextConstructor),createTestAudioContextDecodeAudioDataMethodTypeErrorSupport(nativeOfflineAudioContextConstructor),createTestAudioContextOptionsSupport(nativeAudioContextConstructor),createTestAudioNodeConnectMethodSupport(nativeOfflineAudioContextConstructor),createTestAudioWorkletProcessorNoOutputsSupport(nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor),createTestChannelMergerNodeChannelCountSupport(nativeOfflineAudioContextConstructor),createTestConstantSourceNodeAccurateSchedulingSupport(nativeOfflineAudioContextConstructor),createTestConvolverNodeBufferReassignabilitySupport(nativeOfflineAudioContextConstructor),createTestConvolverNodeChannelCountSupport(nativeOfflineAudioContextConstructor),testDomExceptionConstructorSupport,createTestIsSecureContextSupport(window$1),createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport(nativeAudioContextConstructor),createTestStereoPannerNodeDefaultValueSupport(nativeOfflineAudioContextConstructor),testTransferablesSupport);function assert(a,e){if(!a)throw new Error(e)}function assertRange(a,e,s=1/0){if(!(e<=a&&a<=s))throw new RangeError(`Value must be within [${e}, ${s}], got: ${a}`)}function assertContextRunning(a){!a.isOffline&&a.state!=="running"&&warn('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}let defaultLogger=console;function setLogger(a){defaultLogger=a}function log(...a){defaultLogger.log(...a)}function warn(...a){defaultLogger.warn(...a)}var Debug=Object.freeze(Object.defineProperty({__proto__:null,assert,assertRange,assertContextRunning,setLogger,log,warn},Symbol.toStringTag,{value:"Module"}));function isUndef(a){return typeof a=="undefined"}function isDefined(a){return!isUndef(a)}function isFunction(a){return typeof a=="function"}function isNumber(a){return typeof a=="number"}function isObject(a){return Object.prototype.toString.call(a)==="[object Object]"&&a.constructor===Object}function isBoolean(a){return typeof a=="boolean"}function isArray(a){return Array.isArray(a)}function isString(a){return typeof a=="string"}function isNote$1(a){return isString(a)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(a)}function createAudioContext(a){return new audioContextConstructor(a)}function createOfflineAudioContext(a,e,s){return new offlineAudioContextConstructor(a,e,s)}const theWindow=typeof self=="object"?self:null,hasAudioContext=theWindow&&(theWindow.hasOwnProperty("AudioContext")||theWindow.hasOwnProperty("webkitAudioContext"));function createAudioWorkletNode(a,e,s){return assert(isDefined(audioWorkletNodeConstructor),"This node only works in a secure context (https or localhost)"),new audioWorkletNodeConstructor(a,e,s)}/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any @@ -306,9 +310,9 @@ PERFORMANCE OF THIS SOFTWARE. return val; } } -`;registerProcessor(workletName,bitCrusherWorklet);class BitCrusher extends Effect{constructor(){super(optionsFromArguments(BitCrusher.getDefaults(),arguments,["bits"])),this.name="BitCrusher";const e=optionsFromArguments(BitCrusher.getDefaults(),arguments,["bits"]);this._bitCrusherWorklet=new BitCrusherWorklet({context:this.context,bits:e.bits}),this.connectEffect(this._bitCrusherWorklet),this.bits=this._bitCrusherWorklet.bits}static getDefaults(){return Object.assign(Effect.getDefaults(),{bits:4})}dispose(){return super.dispose(),this._bitCrusherWorklet.dispose(),this}}class BitCrusherWorklet extends ToneAudioWorklet{constructor(){super(optionsFromArguments(BitCrusherWorklet.getDefaults(),arguments)),this.name="BitCrusherWorklet";const e=optionsFromArguments(BitCrusherWorklet.getDefaults(),arguments);this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this.bits=new Param({context:this.context,value:e.bits,units:"positive",minValue:1,maxValue:16,param:this._dummyParam,swappable:!0})}static getDefaults(){return Object.assign(ToneAudioWorklet.getDefaults(),{bits:12})}_audioWorkletName(){return workletName}onReady(e){connectSeries(this.input,e,this.output);const s=e.parameters.get("bits");this.bits.setParam(s)}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.bits.dispose(),this}}class Chebyshev extends Effect{constructor(){super(optionsFromArguments(Chebyshev.getDefaults(),arguments,["order"])),this.name="Chebyshev";const e=optionsFromArguments(Chebyshev.getDefaults(),arguments,["order"]);this._shaper=new WaveShaper({context:this.context,length:4096}),this._order=e.order,this.connectEffect(this._shaper),this.order=e.order,this.oversample=e.oversample}static getDefaults(){return Object.assign(Effect.getDefaults(),{order:1,oversample:"none"})}_getCoefficient(e,s,o){return o.has(s)||(s===0?o.set(s,0):s===1?o.set(s,e):o.set(s,2*e*this._getCoefficient(e,s-1,o)-this._getCoefficient(e,s-2,o))),o.get(s)}get order(){return this._order}set order(e){this._order=e,this._shaper.setMap(s=>this._getCoefficient(s,e,new Map))}get oversample(){return this._shaper.oversample}set oversample(e){this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.dispose(),this}}class Split extends ToneAudioNode{constructor(){super(optionsFromArguments(Split.getDefaults(),arguments,["channels"])),this.name="Split";const e=optionsFromArguments(Split.getDefaults(),arguments,["channels"]);this._splitter=this.input=this.output=this.context.createChannelSplitter(e.channels),this._internalChannels=[this._splitter]}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._splitter.disconnect(),this}}class Merge extends ToneAudioNode{constructor(){super(optionsFromArguments(Merge.getDefaults(),arguments,["channels"])),this.name="Merge";const e=optionsFromArguments(Merge.getDefaults(),arguments,["channels"]);this._merger=this.output=this.input=this.context.createChannelMerger(e.channels)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}}class StereoEffect extends ToneAudioNode{constructor(e){super(e),this.name="StereoEffect",this.input=new Gain$1({context:this.context}),this.input.channelCount=2,this.input.channelCountMode="explicit",this._dryWet=this.output=new CrossFade({context:this.context,fade:e.wet}),this.wet=this._dryWet.fade,this._split=new Split({context:this.context,channels:2}),this._merge=new Merge({context:this.context,channels:2}),this.input.connect(this._split),this.input.connect(this._dryWet.a),this._merge.connect(this._dryWet.b),readOnly(this,["wet"])}connectEffectLeft(...e){this._split.connect(e[0],0,0),connectSeries(...e),connect(e[e.length-1],this._merge,0,0)}connectEffectRight(...e){this._split.connect(e[0],1,0),connectSeries(...e),connect(e[e.length-1],this._merge,0,1)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{wet:1})}dispose(){return super.dispose(),this._dryWet.dispose(),this._split.dispose(),this._merge.dispose(),this}}class StereoFeedbackEffect extends StereoEffect{constructor(e){super(e),this.feedback=new Signal({context:this.context,value:e.feedback,units:"normalRange"}),this._feedbackL=new Gain$1({context:this.context}),this._feedbackR=new Gain$1({context:this.context}),this._feedbackSplit=new Split({context:this.context,channels:2}),this._feedbackMerge=new Merge({context:this.context,channels:2}),this._merge.connect(this._feedbackSplit),this._feedbackMerge.connect(this._split),this._feedbackSplit.connect(this._feedbackL,0,0),this._feedbackL.connect(this._feedbackMerge,0,0),this._feedbackSplit.connect(this._feedbackR,1,0),this._feedbackR.connect(this._feedbackMerge,0,1),this.feedback.fan(this._feedbackL.gain,this._feedbackR.gain),readOnly(this,["feedback"])}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{feedback:.5})}dispose(){return super.dispose(),this.feedback.dispose(),this._feedbackL.dispose(),this._feedbackR.dispose(),this._feedbackSplit.dispose(),this._feedbackMerge.dispose(),this}}class Chorus extends StereoFeedbackEffect{constructor(){super(optionsFromArguments(Chorus.getDefaults(),arguments,["frequency","delayTime","depth"])),this.name="Chorus";const e=optionsFromArguments(Chorus.getDefaults(),arguments,["frequency","delayTime","depth"]);this._depth=e.depth,this._delayTime=e.delayTime/1e3,this._lfoL=new LFO({context:this.context,frequency:e.frequency,min:0,max:1}),this._lfoR=new LFO({context:this.context,frequency:e.frequency,min:0,max:1,phase:180}),this._delayNodeL=new Delay({context:this.context}),this._delayNodeR=new Delay({context:this.context}),this.frequency=this._lfoL.frequency,readOnly(this,["frequency"]),this._lfoL.frequency.connect(this._lfoR.frequency),this.connectEffectLeft(this._delayNodeL),this.connectEffectRight(this._delayNodeR),this._lfoL.connect(this._delayNodeL.delayTime),this._lfoR.connect(this._delayNodeR.delayTime),this.depth=this._depth,this.type=e.type,this.spread=e.spread}static getDefaults(){return Object.assign(StereoFeedbackEffect.getDefaults(),{frequency:1.5,delayTime:3.5,depth:.7,type:"sine",spread:180,feedback:0,wet:.5})}get depth(){return this._depth}set depth(e){this._depth=e;const s=this._delayTime*e;this._lfoL.min=Math.max(this._delayTime-s,0),this._lfoL.max=this._delayTime+s,this._lfoR.min=Math.max(this._delayTime-s,0),this._lfoR.max=this._delayTime+s}get delayTime(){return this._delayTime*1e3}set delayTime(e){this._delayTime=e/1e3,this.depth=this._depth}get type(){return this._lfoL.type}set type(e){this._lfoL.type=e,this._lfoR.type=e}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(e){this._lfoL.phase=90-e/2,this._lfoR.phase=e/2+90}start(e){return this._lfoL.start(e),this._lfoR.start(e),this}stop(e){return this._lfoL.stop(e),this._lfoR.stop(e),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._delayNodeL.dispose(),this._delayNodeR.dispose(),this.frequency.dispose(),this}}class Distortion extends Effect{constructor(){super(optionsFromArguments(Distortion.getDefaults(),arguments,["distortion"])),this.name="Distortion";const e=optionsFromArguments(Distortion.getDefaults(),arguments,["distortion"]);this._shaper=new WaveShaper({context:this.context,length:4096}),this._distortion=e.distortion,this.connectEffect(this._shaper),this.distortion=e.distortion,this.oversample=e.oversample}static getDefaults(){return Object.assign(Effect.getDefaults(),{distortion:.4,oversample:"none"})}get distortion(){return this._distortion}set distortion(e){this._distortion=e;const s=e*100,o=Math.PI/180;this._shaper.setMap(c=>Math.abs(c)<.001?0:(3+s)*c*20*o/(Math.PI+s*Math.abs(c)))}get oversample(){return this._shaper.oversample}set oversample(e){this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.dispose(),this}}class FeedbackEffect extends Effect{constructor(e){super(e),this.name="FeedbackEffect",this._feedbackGain=new Gain$1({context:this.context,gain:e.feedback,units:"normalRange"}),this.feedback=this._feedbackGain.gain,readOnly(this,"feedback"),this.effectReturn.chain(this._feedbackGain,this.effectSend)}static getDefaults(){return Object.assign(Effect.getDefaults(),{feedback:.125})}dispose(){return super.dispose(),this._feedbackGain.dispose(),this.feedback.dispose(),this}}class FeedbackDelay extends FeedbackEffect{constructor(){super(optionsFromArguments(FeedbackDelay.getDefaults(),arguments,["delayTime","feedback"])),this.name="FeedbackDelay";const e=optionsFromArguments(FeedbackDelay.getDefaults(),arguments,["delayTime","feedback"]);this._delayNode=new Delay({context:this.context,delayTime:e.delayTime,maxDelay:e.maxDelay}),this.delayTime=this._delayNode.delayTime,this.connectEffect(this._delayNode),readOnly(this,"delayTime")}static getDefaults(){return Object.assign(FeedbackEffect.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._delayNode.dispose(),this.delayTime.dispose(),this}}class PhaseShiftAllpass extends ToneAudioNode{constructor(e){super(e),this.name="PhaseShiftAllpass",this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this.offset90=new Gain$1({context:this.context});const s=[.6923878,.9360654322959,.988229522686,.9987488452737],o=[.4021921162426,.856171088242,.9722909545651,.9952884791278];this._bank0=this._createAllPassFilterBank(s),this._bank1=this._createAllPassFilterBank(o),this._oneSampleDelay=this.context.createIIRFilter([0,1],[1,0]),connectSeries(this.input,...this._bank0,this._oneSampleDelay,this.output),connectSeries(this.input,...this._bank1,this.offset90)}_createAllPassFilterBank(e){return e.map(o=>{const c=[[o*o,0,-1],[1,0,-(o*o)]];return this.context.createIIRFilter(c[0],c[1])})}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.offset90.dispose(),this._bank0.forEach(e=>e.disconnect()),this._bank1.forEach(e=>e.disconnect()),this._oneSampleDelay.disconnect(),this}}class FrequencyShifter extends Effect{constructor(){super(optionsFromArguments(FrequencyShifter.getDefaults(),arguments,["frequency"])),this.name="FrequencyShifter";const e=optionsFromArguments(FrequencyShifter.getDefaults(),arguments,["frequency"]);this.frequency=new Signal({context:this.context,units:"frequency",value:e.frequency,minValue:-this.context.sampleRate/2,maxValue:this.context.sampleRate/2}),this._sine=new ToneOscillatorNode({context:this.context,type:"sine"}),this._cosine=new Oscillator({context:this.context,phase:-90,type:"sine"}),this._sineMultiply=new Multiply({context:this.context}),this._cosineMultiply=new Multiply({context:this.context}),this._negate=new Negate({context:this.context}),this._add=new Add({context:this.context}),this._phaseShifter=new PhaseShiftAllpass({context:this.context}),this.effectSend.connect(this._phaseShifter),this.frequency.fan(this._sine.frequency,this._cosine.frequency),this._phaseShifter.offset90.connect(this._cosineMultiply),this._cosine.connect(this._cosineMultiply.factor),this._phaseShifter.connect(this._sineMultiply),this._sine.connect(this._sineMultiply.factor),this._sineMultiply.connect(this._negate),this._cosineMultiply.connect(this._add),this._negate.connect(this._add.addend),this._add.connect(this.effectReturn);const s=this.immediate();this._sine.start(s),this._cosine.start(s)}static getDefaults(){return Object.assign(Effect.getDefaults(),{frequency:0})}dispose(){return super.dispose(),this.frequency.dispose(),this._add.dispose(),this._cosine.dispose(),this._cosineMultiply.dispose(),this._negate.dispose(),this._phaseShifter.dispose(),this._sine.dispose(),this._sineMultiply.dispose(),this}}const combFilterTunings=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100],allpassFilterFrequencies=[225,556,441,341];class Freeverb extends StereoEffect{constructor(){super(optionsFromArguments(Freeverb.getDefaults(),arguments,["roomSize","dampening"])),this.name="Freeverb",this._combFilters=[],this._allpassFiltersL=[],this._allpassFiltersR=[];const e=optionsFromArguments(Freeverb.getDefaults(),arguments,["roomSize","dampening"]);this.roomSize=new Signal({context:this.context,value:e.roomSize,units:"normalRange"}),this._allpassFiltersL=allpassFilterFrequencies.map(s=>{const o=this.context.createBiquadFilter();return o.type="allpass",o.frequency.value=s,o}),this._allpassFiltersR=allpassFilterFrequencies.map(s=>{const o=this.context.createBiquadFilter();return o.type="allpass",o.frequency.value=s,o}),this._combFilters=combFilterTunings.map((s,o)=>{const c=new LowpassCombFilter({context:this.context,dampening:e.dampening,delayTime:s});return os.dampening=e)}dispose(){return super.dispose(),this._allpassFiltersL.forEach(e=>e.disconnect()),this._allpassFiltersR.forEach(e=>e.disconnect()),this._combFilters.forEach(e=>e.dispose()),this.roomSize.dispose(),this}}const combFilterDelayTimes=[1687/25e3,1601/25e3,2053/25e3,2251/25e3],combFilterResonances=[.773,.802,.753,.733],allpassFilterFreqs=[347,113,37];class JCReverb extends StereoEffect{constructor(){super(optionsFromArguments(JCReverb.getDefaults(),arguments,["roomSize"])),this.name="JCReverb",this._allpassFilters=[],this._feedbackCombFilters=[];const e=optionsFromArguments(JCReverb.getDefaults(),arguments,["roomSize"]);this.roomSize=new Signal({context:this.context,value:e.roomSize,units:"normalRange"}),this._scaleRoomSize=new Scale({context:this.context,min:-.733,max:.197}),this._allpassFilters=allpassFilterFreqs.map(s=>{const o=this.context.createBiquadFilter();return o.type="allpass",o.frequency.value=s,o}),this._feedbackCombFilters=combFilterDelayTimes.map((s,o)=>{const c=new FeedbackCombFilter({context:this.context,delayTime:s});return this._scaleRoomSize.connect(c.resonance),c.resonance.value=combFilterResonances[o],oe.disconnect()),this._feedbackCombFilters.forEach(e=>e.dispose()),this.roomSize.dispose(),this._scaleRoomSize.dispose(),this}}class StereoXFeedbackEffect extends StereoFeedbackEffect{constructor(e){super(e),this._feedbackL.disconnect(),this._feedbackL.connect(this._feedbackMerge,0,1),this._feedbackR.disconnect(),this._feedbackR.connect(this._feedbackMerge,0,0),readOnly(this,["feedback"])}}class PingPongDelay extends StereoXFeedbackEffect{constructor(){super(optionsFromArguments(PingPongDelay.getDefaults(),arguments,["delayTime","feedback"])),this.name="PingPongDelay";const e=optionsFromArguments(PingPongDelay.getDefaults(),arguments,["delayTime","feedback"]);this._leftDelay=new Delay({context:this.context,maxDelay:e.maxDelay}),this._rightDelay=new Delay({context:this.context,maxDelay:e.maxDelay}),this._rightPreDelay=new Delay({context:this.context,maxDelay:e.maxDelay}),this.delayTime=new Signal({context:this.context,units:"time",value:e.delayTime}),this.connectEffectLeft(this._leftDelay),this.connectEffectRight(this._rightPreDelay,this._rightDelay),this.delayTime.fan(this._leftDelay.delayTime,this._rightDelay.delayTime,this._rightPreDelay.delayTime),this._feedbackL.disconnect(),this._feedbackL.connect(this._rightDelay),readOnly(this,["delayTime"])}static getDefaults(){return Object.assign(StereoXFeedbackEffect.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._leftDelay.dispose(),this._rightDelay.dispose(),this._rightPreDelay.dispose(),this.delayTime.dispose(),this}}class PitchShift extends FeedbackEffect{constructor(){super(optionsFromArguments(PitchShift.getDefaults(),arguments,["pitch"])),this.name="PitchShift";const e=optionsFromArguments(PitchShift.getDefaults(),arguments,["pitch"]);this._frequency=new Signal({context:this.context}),this._delayA=new Delay({maxDelay:1,context:this.context}),this._lfoA=new LFO({context:this.context,min:0,max:.1,type:"sawtooth"}).connect(this._delayA.delayTime),this._delayB=new Delay({maxDelay:1,context:this.context}),this._lfoB=new LFO({context:this.context,min:0,max:.1,type:"sawtooth",phase:180}).connect(this._delayB.delayTime),this._crossFade=new CrossFade({context:this.context}),this._crossFadeLFO=new LFO({context:this.context,min:0,max:1,type:"triangle",phase:90}).connect(this._crossFade.fade),this._feedbackDelay=new Delay({delayTime:e.delayTime,context:this.context}),this.delayTime=this._feedbackDelay.delayTime,readOnly(this,"delayTime"),this._pitch=e.pitch,this._windowSize=e.windowSize,this._delayA.connect(this._crossFade.a),this._delayB.connect(this._crossFade.b),this._frequency.fan(this._lfoA.frequency,this._lfoB.frequency,this._crossFadeLFO.frequency),this.effectSend.fan(this._delayA,this._delayB),this._crossFade.chain(this._feedbackDelay,this.effectReturn);const s=this.now();this._lfoA.start(s),this._lfoB.start(s),this._crossFadeLFO.start(s),this.windowSize=this._windowSize}static getDefaults(){return Object.assign(FeedbackEffect.getDefaults(),{pitch:0,windowSize:.1,delayTime:0,feedback:0})}get pitch(){return this._pitch}set pitch(e){this._pitch=e;let s=0;e<0?(this._lfoA.min=0,this._lfoA.max=this._windowSize,this._lfoB.min=0,this._lfoB.max=this._windowSize,s=intervalToFrequencyRatio(e-1)+1):(this._lfoA.min=this._windowSize,this._lfoA.max=0,this._lfoB.min=this._windowSize,this._lfoB.max=0,s=intervalToFrequencyRatio(e)-1),this._frequency.value=s*(1.2/this._windowSize)}get windowSize(){return this._windowSize}set windowSize(e){this._windowSize=this.toSeconds(e),this.pitch=this._pitch}dispose(){return super.dispose(),this._frequency.dispose(),this._delayA.dispose(),this._delayB.dispose(),this._lfoA.dispose(),this._lfoB.dispose(),this._crossFade.dispose(),this._crossFadeLFO.dispose(),this._feedbackDelay.dispose(),this}}class Phaser extends StereoEffect{constructor(){super(optionsFromArguments(Phaser.getDefaults(),arguments,["frequency","octaves","baseFrequency"])),this.name="Phaser";const e=optionsFromArguments(Phaser.getDefaults(),arguments,["frequency","octaves","baseFrequency"]);this._lfoL=new LFO({context:this.context,frequency:e.frequency,min:0,max:1}),this._lfoR=new LFO({context:this.context,frequency:e.frequency,min:0,max:1,phase:180}),this._baseFrequency=this.toFrequency(e.baseFrequency),this._octaves=e.octaves,this.Q=new Signal({context:this.context,value:e.Q,units:"positive"}),this._filtersL=this._makeFilters(e.stages,this._lfoL),this._filtersR=this._makeFilters(e.stages,this._lfoR),this.frequency=this._lfoL.frequency,this.frequency.value=e.frequency,this.connectEffectLeft(...this._filtersL),this.connectEffectRight(...this._filtersR),this._lfoL.frequency.connect(this._lfoR.frequency),this.baseFrequency=e.baseFrequency,this.octaves=e.octaves,this._lfoL.start(),this._lfoR.start(),readOnly(this,["frequency","Q"])}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{frequency:.5,octaves:3,stages:10,Q:10,baseFrequency:350})}_makeFilters(e,s){const o=[];for(let c=0;ce.disconnect()),this._filtersR.forEach(e=>e.disconnect()),this.frequency.dispose(),this}}class Reverb extends Effect{constructor(){super(optionsFromArguments(Reverb.getDefaults(),arguments,["decay"])),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();const e=optionsFromArguments(Reverb.getDefaults(),arguments,["decay"]);this._decay=e.decay,this._preDelay=e.preDelay,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(Effect.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(e){e=this.toSeconds(e),assertRange(e,.001),this._decay=e,this.generate()}get preDelay(){return this._preDelay}set preDelay(e){e=this.toSeconds(e),assertRange(e,0),this._preDelay=e,this.generate()}generate(){return __awaiter$f(this,void 0,void 0,function*(){const e=this.ready,s=new OfflineContext(2,this._decay+this._preDelay,this.context.sampleRate),o=new Noise({context:s}),c=new Noise({context:s}),d=new Merge({context:s});o.connect(d,0,0),c.connect(d,0,1);const _=new Gain$1({context:s}).toDestination();d.connect(_),o.start(0),c.start(0),_.gain.setValueAtTime(0,0),_.gain.setValueAtTime(1,this._preDelay),_.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);const b=s.render();return this.ready=b.then(noOp),yield e,this._convolver.buffer=(yield b).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}}class MidSideSplit extends ToneAudioNode{constructor(){super(optionsFromArguments(MidSideSplit.getDefaults(),arguments)),this.name="MidSideSplit",this._split=this.input=new Split({channels:2,context:this.context}),this._midAdd=new Add({context:this.context}),this.mid=new Multiply({context:this.context,value:Math.SQRT1_2}),this._sideSubtract=new Subtract({context:this.context}),this.side=new Multiply({context:this.context,value:Math.SQRT1_2}),this._split.connect(this._midAdd,0),this._split.connect(this._midAdd.addend,1),this._split.connect(this._sideSubtract,0),this._split.connect(this._sideSubtract.subtrahend,1),this._midAdd.connect(this.mid),this._sideSubtract.connect(this.side)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midAdd.dispose(),this._sideSubtract.dispose(),this._split.dispose(),this}}class MidSideMerge extends ToneAudioNode{constructor(){super(optionsFromArguments(MidSideMerge.getDefaults(),arguments)),this.name="MidSideMerge",this.mid=new Gain$1({context:this.context}),this.side=new Gain$1({context:this.context}),this._left=new Add({context:this.context}),this._leftMult=new Multiply({context:this.context,value:Math.SQRT1_2}),this._right=new Subtract({context:this.context}),this._rightMult=new Multiply({context:this.context,value:Math.SQRT1_2}),this._merge=this.output=new Merge({context:this.context}),this.mid.fan(this._left),this.side.connect(this._left.addend),this.mid.connect(this._right),this.side.connect(this._right.subtrahend),this._left.connect(this._leftMult),this._right.connect(this._rightMult),this._leftMult.connect(this._merge,0,0),this._rightMult.connect(this._merge,0,1)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._leftMult.dispose(),this._rightMult.dispose(),this._left.dispose(),this._right.dispose(),this}}class MidSideEffect extends Effect{constructor(e){super(e),this.name="MidSideEffect",this._midSideMerge=new MidSideMerge({context:this.context}),this._midSideSplit=new MidSideSplit({context:this.context}),this._midSend=this._midSideSplit.mid,this._sideSend=this._midSideSplit.side,this._midReturn=this._midSideMerge.mid,this._sideReturn=this._midSideMerge.side,this.effectSend.connect(this._midSideSplit),this._midSideMerge.connect(this.effectReturn)}connectEffectMid(...e){this._midSend.chain(...e,this._midReturn)}connectEffectSide(...e){this._sideSend.chain(...e,this._sideReturn)}dispose(){return super.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this._midSend.dispose(),this._sideSend.dispose(),this._midReturn.dispose(),this._sideReturn.dispose(),this}}class StereoWidener extends MidSideEffect{constructor(){super(optionsFromArguments(StereoWidener.getDefaults(),arguments,["width"])),this.name="StereoWidener";const e=optionsFromArguments(StereoWidener.getDefaults(),arguments,["width"]);this.width=new Signal({context:this.context,value:e.width,units:"normalRange"}),readOnly(this,["width"]),this._twoTimesWidthMid=new Multiply({context:this.context,value:2}),this._twoTimesWidthSide=new Multiply({context:this.context,value:2}),this._midMult=new Multiply({context:this.context}),this._twoTimesWidthMid.connect(this._midMult.factor),this.connectEffectMid(this._midMult),this._oneMinusWidth=new Subtract({context:this.context}),this._oneMinusWidth.connect(this._twoTimesWidthMid),connect(this.context.getConstant(1),this._oneMinusWidth),this.width.connect(this._oneMinusWidth.subtrahend),this._sideMult=new Multiply({context:this.context}),this.width.connect(this._twoTimesWidthSide),this._twoTimesWidthSide.connect(this._sideMult.factor),this.connectEffectSide(this._sideMult)}static getDefaults(){return Object.assign(MidSideEffect.getDefaults(),{width:.5})}dispose(){return super.dispose(),this.width.dispose(),this._midMult.dispose(),this._sideMult.dispose(),this._twoTimesWidthMid.dispose(),this._twoTimesWidthSide.dispose(),this._oneMinusWidth.dispose(),this}}class Tremolo extends StereoEffect{constructor(){super(optionsFromArguments(Tremolo.getDefaults(),arguments,["frequency","depth"])),this.name="Tremolo";const e=optionsFromArguments(Tremolo.getDefaults(),arguments,["frequency","depth"]);this._lfoL=new LFO({context:this.context,type:e.type,min:1,max:0}),this._lfoR=new LFO({context:this.context,type:e.type,min:1,max:0}),this._amplitudeL=new Gain$1({context:this.context}),this._amplitudeR=new Gain$1({context:this.context}),this.frequency=new Signal({context:this.context,value:e.frequency,units:"frequency"}),this.depth=new Signal({context:this.context,value:e.depth,units:"normalRange"}),readOnly(this,["frequency","depth"]),this.connectEffectLeft(this._amplitudeL),this.connectEffectRight(this._amplitudeR),this._lfoL.connect(this._amplitudeL.gain),this._lfoR.connect(this._amplitudeR.gain),this.frequency.fan(this._lfoL.frequency,this._lfoR.frequency),this.depth.fan(this._lfoR.amplitude,this._lfoL.amplitude),this.spread=e.spread}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{frequency:10,type:"sine",depth:.5,spread:180})}start(e){return this._lfoL.start(e),this._lfoR.start(e),this}stop(e){return this._lfoL.stop(e),this._lfoR.stop(e),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this.context.transport.syncSignal(this.frequency),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this.context.transport.unsyncSignal(this.frequency),this}get type(){return this._lfoL.type}set type(e){this._lfoL.type=e,this._lfoR.type=e}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(e){this._lfoL.phase=90-e/2,this._lfoR.phase=e/2+90}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._amplitudeL.dispose(),this._amplitudeR.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class Vibrato extends Effect{constructor(){super(optionsFromArguments(Vibrato.getDefaults(),arguments,["frequency","depth"])),this.name="Vibrato";const e=optionsFromArguments(Vibrato.getDefaults(),arguments,["frequency","depth"]);this._delayNode=new Delay({context:this.context,delayTime:0,maxDelay:e.maxDelay}),this._lfo=new LFO({context:this.context,type:e.type,min:0,max:e.maxDelay,frequency:e.frequency,phase:-90}).start().connect(this._delayNode.delayTime),this.frequency=this._lfo.frequency,this.depth=this._lfo.amplitude,this.depth.value=e.depth,readOnly(this,["frequency","depth"]),this.effectSend.chain(this._delayNode,this.effectReturn)}static getDefaults(){return Object.assign(Effect.getDefaults(),{maxDelay:.005,frequency:5,depth:.1,type:"sine"})}get type(){return this._lfo.type}set type(e){this._lfo.type=e}dispose(){return super.dispose(),this._delayNode.dispose(),this._lfo.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class Analyser extends ToneAudioNode{constructor(){super(optionsFromArguments(Analyser.getDefaults(),arguments,["type","size"])),this.name="Analyser",this._analysers=[],this._buffers=[];const e=optionsFromArguments(Analyser.getDefaults(),arguments,["type","size"]);this.input=this.output=this._gain=new Gain$1({context:this.context}),this._split=new Split({context:this.context,channels:e.channels}),this.input.connect(this._split),assertRange(e.channels,1);for(let s=0;s{const o=this._buffers[s];this._type==="fft"?e.getFloatFrequencyData(o):this._type==="waveform"&&e.getFloatTimeDomainData(o)}),this.channels===1?this._buffers[0]:this._buffers}get size(){return this._analysers[0].frequencyBinCount}set size(e){this._analysers.forEach((s,o)=>{s.fftSize=e*2,this._buffers[o]=new Float32Array(e)})}get channels(){return this._analysers.length}get type(){return this._type}set type(e){assert(e==="waveform"||e==="fft",`Analyser: invalid type: ${e}`),this._type=e}get smoothing(){return this._analysers[0].smoothingTimeConstant}set smoothing(e){this._analysers.forEach(s=>s.smoothingTimeConstant=e)}dispose(){return super.dispose(),this._analysers.forEach(e=>e.disconnect()),this._split.dispose(),this._gain.dispose(),this}}class MeterBase extends ToneAudioNode{constructor(){super(optionsFromArguments(MeterBase.getDefaults(),arguments)),this.name="MeterBase",this.input=this.output=this._analyser=new Analyser({context:this.context,size:256,type:"waveform"})}dispose(){return super.dispose(),this._analyser.dispose(),this}}class Meter extends MeterBase{constructor(){super(optionsFromArguments(Meter.getDefaults(),arguments,["smoothing"])),this.name="Meter",this._rms=0;const e=optionsFromArguments(Meter.getDefaults(),arguments,["smoothing"]);this.input=this.output=this._analyser=new Analyser({context:this.context,size:256,type:"waveform",channels:e.channels}),this.smoothing=e.smoothing,this.normalRange=e.normalRange}static getDefaults(){return Object.assign(MeterBase.getDefaults(),{smoothing:.8,normalRange:!1,channels:1})}getLevel(){return warn("'getLevel' has been changed to 'getValue'"),this.getValue()}getValue(){const e=this._analyser.getValue(),o=(this.channels===1?[e]:e).map(c=>{const d=c.reduce((b,k)=>b+k*k,0),_=Math.sqrt(d/c.length);return this._rms=Math.max(_,this._rms*this.smoothing),this.normalRange?this._rms:gainToDb(this._rms)});return this.channels===1?o[0]:o}get channels(){return this._analyser.channels}dispose(){return super.dispose(),this._analyser.dispose(),this}}class FFT extends MeterBase{constructor(){super(optionsFromArguments(FFT.getDefaults(),arguments,["size"])),this.name="FFT";const e=optionsFromArguments(FFT.getDefaults(),arguments,["size"]);this.normalRange=e.normalRange,this._analyser.type="fft",this.size=e.size}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{normalRange:!1,size:1024,smoothing:.8})}getValue(){return this._analyser.getValue().map(s=>this.normalRange?dbToGain(s):s)}get size(){return this._analyser.size}set size(e){this._analyser.size=e}get smoothing(){return this._analyser.smoothing}set smoothing(e){this._analyser.smoothing=e}getFrequencyOfIndex(e){return assert(0<=e&&es._updateSolo())}get muted(){return this.input.gain.value===0}_addSolo(){Solo._soloed.has(this.context)||Solo._soloed.set(this.context,new Set),Solo._soloed.get(this.context).add(this)}_removeSolo(){Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).delete(this)}_isSoloed(){return Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).has(this)}_noSolos(){return!Solo._soloed.has(this.context)||Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).size===0}_updateSolo(){this._isSoloed()?this.input.gain.value=1:this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),Solo._allSolos.get(this.context).delete(this),this._removeSolo(),this}}Solo._allSolos=new Map;Solo._soloed=new Map;class PanVol extends ToneAudioNode{constructor(){super(optionsFromArguments(PanVol.getDefaults(),arguments,["pan","volume"])),this.name="PanVol";const e=optionsFromArguments(PanVol.getDefaults(),arguments,["pan","volume"]);this._panner=this.input=new Panner({context:this.context,pan:e.pan,channelCount:e.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Volume({context:this.context,volume:e.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=e.mute,readOnly(this,["pan","volume"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}}class Channel extends ToneAudioNode{constructor(){super(optionsFromArguments(Channel.getDefaults(),arguments,["volume","pan"])),this.name="Channel";const e=optionsFromArguments(Channel.getDefaults(),arguments,["volume","pan"]);this._solo=this.input=new Solo({solo:e.solo,context:this.context}),this._panVol=this.output=new PanVol({context:this.context,pan:e.pan,volume:e.volume,mute:e.mute,channelCount:e.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),readOnly(this,["pan","volume"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(e){this._solo.solo=e}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(e){this._panVol.mute=e}_getBus(e){return Channel.buses.has(e)||Channel.buses.set(e,new Gain$1({context:this.context})),Channel.buses.get(e)}send(e,s=0){const o=this._getBus(e),c=new Gain$1({context:this.context,units:"decibels",gain:s});return this.connect(c),c.connect(o),c}receive(e){return this._getBus(e).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}}Channel.buses=new Map;class Mono extends ToneAudioNode{constructor(){super(optionsFromArguments(Mono.getDefaults(),arguments)),this.name="Mono",this.input=new Gain$1({context:this.context}),this._merge=this.output=new Merge({channels:2,context:this.context}),this.input.connect(this._merge,0,0),this.input.connect(this._merge,0,1)}dispose(){return super.dispose(),this._merge.dispose(),this.input.dispose(),this}}class MultibandSplit extends ToneAudioNode{constructor(){super(optionsFromArguments(MultibandSplit.getDefaults(),arguments,["lowFrequency","highFrequency"])),this.name="MultibandSplit",this.input=new Gain$1({context:this.context}),this.output=void 0,this.low=new Filter$1({context:this.context,frequency:0,type:"lowpass"}),this._lowMidFilter=new Filter$1({context:this.context,frequency:0,type:"highpass"}),this.mid=new Filter$1({context:this.context,frequency:0,type:"lowpass"}),this.high=new Filter$1({context:this.context,frequency:0,type:"highpass"}),this._internalChannels=[this.low,this.mid,this.high];const e=optionsFromArguments(MultibandSplit.getDefaults(),arguments,["lowFrequency","highFrequency"]);this.lowFrequency=new Signal({context:this.context,units:"frequency",value:e.lowFrequency}),this.highFrequency=new Signal({context:this.context,units:"frequency",value:e.highFrequency}),this.Q=new Signal({context:this.context,units:"positive",value:e.Q}),this.input.fan(this.low,this.high),this.input.chain(this._lowMidFilter,this.mid),this.lowFrequency.fan(this.low.frequency,this._lowMidFilter.frequency),this.highFrequency.fan(this.mid.frequency,this.high.frequency),this.Q.connect(this.low.Q),this.Q.connect(this._lowMidFilter.Q),this.Q.connect(this.mid.Q),this.Q.connect(this.high.Q),readOnly(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{Q:1,highFrequency:2500,lowFrequency:400})}dispose(){return super.dispose(),writable(this,["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this._lowMidFilter.dispose(),this.mid.dispose(),this.high.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this.Q.dispose(),this}}class Listener$1 extends ToneAudioNode{constructor(){super(...arguments),this.name="Listener",this.positionX=new Param({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new Param({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new Param({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new Param({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new Param({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new Param({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new Param({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new Param({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new Param({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}}onContextInit(a=>{a.listener=new Listener$1({context:a})});onContextClose(a=>{a.listener.dispose()});class Panner3D extends ToneAudioNode{constructor(){super(optionsFromArguments(Panner3D.getDefaults(),arguments,["positionX","positionY","positionZ"])),this.name="Panner3D";const e=optionsFromArguments(Panner3D.getDefaults(),arguments,["positionX","positionY","positionZ"]);this._panner=this.input=this.output=this.context.createPanner(),this.panningModel=e.panningModel,this.maxDistance=e.maxDistance,this.distanceModel=e.distanceModel,this.coneOuterGain=e.coneOuterGain,this.coneOuterAngle=e.coneOuterAngle,this.coneInnerAngle=e.coneInnerAngle,this.refDistance=e.refDistance,this.rolloffFactor=e.rolloffFactor,this.positionX=new Param({context:this.context,param:this._panner.positionX,value:e.positionX}),this.positionY=new Param({context:this.context,param:this._panner.positionY,value:e.positionY}),this.positionZ=new Param({context:this.context,param:this._panner.positionZ,value:e.positionZ}),this.orientationX=new Param({context:this.context,param:this._panner.orientationX,value:e.orientationX}),this.orientationY=new Param({context:this.context,param:this._panner.orientationY,value:e.orientationY}),this.orientationZ=new Param({context:this.context,param:this._panner.orientationZ,value:e.orientationZ})}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:0,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1})}setPosition(e,s,o){return this.positionX.value=e,this.positionY.value=s,this.positionZ.value=o,this}setOrientation(e,s,o){return this.orientationX.value=e,this.orientationY.value=s,this.orientationZ.value=o,this}get panningModel(){return this._panner.panningModel}set panningModel(e){this._panner.panningModel=e}get refDistance(){return this._panner.refDistance}set refDistance(e){this._panner.refDistance=e}get rolloffFactor(){return this._panner.rolloffFactor}set rolloffFactor(e){this._panner.rolloffFactor=e}get distanceModel(){return this._panner.distanceModel}set distanceModel(e){this._panner.distanceModel=e}get coneInnerAngle(){return this._panner.coneInnerAngle}set coneInnerAngle(e){this._panner.coneInnerAngle=e}get coneOuterAngle(){return this._panner.coneOuterAngle}set coneOuterAngle(e){this._panner.coneOuterAngle=e}get coneOuterGain(){return this._panner.coneOuterGain}set coneOuterGain(e){this._panner.coneOuterGain=e}get maxDistance(){return this._panner.maxDistance}set maxDistance(e){this._panner.maxDistance=e}dispose(){return super.dispose(),this._panner.disconnect(),this.orientationX.dispose(),this.orientationY.dispose(),this.orientationZ.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this}}class Recorder extends ToneAudioNode{constructor(){super(optionsFromArguments(Recorder.getDefaults(),arguments)),this.name="Recorder";const e=optionsFromArguments(Recorder.getDefaults(),arguments);this.input=new Gain$1({context:this.context}),assert(Recorder.supported,"Media Recorder API is not available"),this._stream=this.context.createMediaStreamDestination(),this.input.connect(this._stream),this._recorder=new MediaRecorder(this._stream.stream,{mimeType:e.mimeType})}static getDefaults(){return ToneAudioNode.getDefaults()}get mimeType(){return this._recorder.mimeType}static get supported(){return theWindow!==null&&Reflect.has(theWindow,"MediaRecorder")}get state(){return this._recorder.state==="inactive"?"stopped":this._recorder.state==="paused"?"paused":"started"}start(){return __awaiter$f(this,void 0,void 0,function*(){assert(this.state!=="started","Recorder is already started");const e=new Promise(s=>{const o=()=>{this._recorder.removeEventListener("start",o,!1),s()};this._recorder.addEventListener("start",o,!1)});return this._recorder.start(),yield e})}stop(){return __awaiter$f(this,void 0,void 0,function*(){assert(this.state!=="stopped","Recorder is not started");const e=new Promise(s=>{const o=c=>{this._recorder.removeEventListener("dataavailable",o,!1),s(c.data)};this._recorder.addEventListener("dataavailable",o,!1)});return this._recorder.stop(),yield e})}pause(){return assert(this.state==="started","Recorder must be started"),this._recorder.pause(),this}dispose(){return super.dispose(),this.input.dispose(),this._stream.disconnect(),this}}class Compressor extends ToneAudioNode{constructor(){super(optionsFromArguments(Compressor.getDefaults(),arguments,["threshold","ratio"])),this.name="Compressor",this._compressor=this.context.createDynamicsCompressor(),this.input=this._compressor,this.output=this._compressor;const e=optionsFromArguments(Compressor.getDefaults(),arguments,["threshold","ratio"]);this.threshold=new Param({minValue:this._compressor.threshold.minValue,maxValue:this._compressor.threshold.maxValue,context:this.context,convert:!1,param:this._compressor.threshold,units:"decibels",value:e.threshold}),this.attack=new Param({minValue:this._compressor.attack.minValue,maxValue:this._compressor.attack.maxValue,context:this.context,param:this._compressor.attack,units:"time",value:e.attack}),this.release=new Param({minValue:this._compressor.release.minValue,maxValue:this._compressor.release.maxValue,context:this.context,param:this._compressor.release,units:"time",value:e.release}),this.knee=new Param({minValue:this._compressor.knee.minValue,maxValue:this._compressor.knee.maxValue,context:this.context,convert:!1,param:this._compressor.knee,units:"decibels",value:e.knee}),this.ratio=new Param({minValue:this._compressor.ratio.minValue,maxValue:this._compressor.ratio.maxValue,context:this.context,convert:!1,param:this._compressor.ratio,units:"positive",value:e.ratio}),readOnly(this,["knee","release","attack","ratio","threshold"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{attack:.003,knee:30,ratio:12,release:.25,threshold:-24})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.disconnect(),this.attack.dispose(),this.release.dispose(),this.threshold.dispose(),this.ratio.dispose(),this.knee.dispose(),this}}class Gate extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(Gate.getDefaults(),arguments,["threshold","smoothing"]))),this.name="Gate";const e=optionsFromArguments(Gate.getDefaults(),arguments,["threshold","smoothing"]);this._follower=new Follower({context:this.context,smoothing:e.smoothing}),this._gt=new GreaterThan({context:this.context,value:dbToGain(e.threshold)}),this.input=new Gain$1({context:this.context}),this._gate=this.output=new Gain$1({context:this.context}),this.input.connect(this._gate),this.input.chain(this._follower,this._gt,this._gate.gain)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{smoothing:.1,threshold:-40})}get threshold(){return gainToDb(this._gt.value)}set threshold(e){this._gt.value=dbToGain(e)}get smoothing(){return this._follower.smoothing}set smoothing(e){this._follower.smoothing=e}dispose(){return super.dispose(),this.input.dispose(),this._follower.dispose(),this._gt.dispose(),this._gate.dispose(),this}}class Limiter extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(Limiter.getDefaults(),arguments,["threshold"]))),this.name="Limiter";const e=optionsFromArguments(Limiter.getDefaults(),arguments,["threshold"]);this._compressor=this.input=this.output=new Compressor({context:this.context,ratio:20,attack:.003,release:.01,threshold:e.threshold}),this.threshold=this._compressor.threshold,readOnly(this,"threshold")}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{threshold:-12})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.dispose(),this.threshold.dispose(),this}}class MidSideCompressor extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(MidSideCompressor.getDefaults(),arguments))),this.name="MidSideCompressor";const e=optionsFromArguments(MidSideCompressor.getDefaults(),arguments);this._midSideSplit=this.input=new MidSideSplit({context:this.context}),this._midSideMerge=this.output=new MidSideMerge({context:this.context}),this.mid=new Compressor(Object.assign(e.mid,{context:this.context})),this.side=new Compressor(Object.assign(e.side,{context:this.context})),this._midSideSplit.mid.chain(this.mid,this._midSideMerge.mid),this._midSideSplit.side.chain(this.side,this._midSideMerge.side),readOnly(this,["mid","side"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},side:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10}})}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this}}class MultibandCompressor extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(MultibandCompressor.getDefaults(),arguments))),this.name="MultibandCompressor";const e=optionsFromArguments(MultibandCompressor.getDefaults(),arguments);this._splitter=this.input=new MultibandSplit({context:this.context,lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this.lowFrequency=this._splitter.lowFrequency,this.highFrequency=this._splitter.highFrequency,this.output=new Gain$1({context:this.context}),this.low=new Compressor(Object.assign(e.low,{context:this.context})),this.mid=new Compressor(Object.assign(e.mid,{context:this.context})),this.high=new Compressor(Object.assign(e.high,{context:this.context})),this._splitter.low.chain(this.low,this.output),this._splitter.mid.chain(this.mid,this.output),this._splitter.high.chain(this.high,this.output),readOnly(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{lowFrequency:250,highFrequency:2e3,low:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10},mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},high:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16}})}dispose(){return super.dispose(),this._splitter.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.output.dispose(),this}}class EQ3 extends ToneAudioNode{constructor(){super(optionsFromArguments(EQ3.getDefaults(),arguments,["low","mid","high"])),this.name="EQ3",this.output=new Gain$1({context:this.context}),this._internalChannels=[];const e=optionsFromArguments(EQ3.getDefaults(),arguments,["low","mid","high"]);this.input=this._multibandSplit=new MultibandSplit({context:this.context,highFrequency:e.highFrequency,lowFrequency:e.lowFrequency}),this._lowGain=new Gain$1({context:this.context,gain:e.low,units:"decibels"}),this._midGain=new Gain$1({context:this.context,gain:e.mid,units:"decibels"}),this._highGain=new Gain$1({context:this.context,gain:e.high,units:"decibels"}),this.low=this._lowGain.gain,this.mid=this._midGain.gain,this.high=this._highGain.gain,this.Q=this._multibandSplit.Q,this.lowFrequency=this._multibandSplit.lowFrequency,this.highFrequency=this._multibandSplit.highFrequency,this._multibandSplit.low.chain(this._lowGain,this.output),this._multibandSplit.mid.chain(this._midGain,this.output),this._multibandSplit.high.chain(this._highGain,this.output),readOnly(this,["low","mid","high","lowFrequency","highFrequency"]),this._internalChannels=[this._multibandSplit]}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{high:0,highFrequency:2500,low:0,lowFrequency:400,mid:0})}dispose(){return super.dispose(),writable(this,["low","mid","high","lowFrequency","highFrequency"]),this._multibandSplit.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this._lowGain.dispose(),this._midGain.dispose(),this._highGain.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.Q.dispose(),this}}class Convolver extends ToneAudioNode{constructor(){super(optionsFromArguments(Convolver.getDefaults(),arguments,["url","onload"])),this.name="Convolver",this._convolver=this.context.createConvolver();const e=optionsFromArguments(Convolver.getDefaults(),arguments,["url","onload"]);this._buffer=new ToneAudioBuffer(e.url,s=>{this.buffer=s,e.onload()}),this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this._buffer.loaded&&(this.buffer=this._buffer),this.normalize=e.normalize,this.input.chain(this._convolver,this.output)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{normalize:!0,onload:noOp})}load(e){return __awaiter$f(this,void 0,void 0,function*(){this.buffer=yield this._buffer.load(e)})}get buffer(){return this._buffer.length?this._buffer:null}set buffer(e){e&&this._buffer.set(e),this._convolver.buffer&&(this.input.disconnect(),this._convolver.disconnect(),this._convolver=this.context.createConvolver(),this.input.chain(this._convolver,this.output));const s=this._buffer.get();this._convolver.buffer=s||null}get normalize(){return this._convolver.normalize}set normalize(e){this._convolver.normalize=e}dispose(){return super.dispose(),this._buffer.dispose(),this._convolver.disconnect(),this}}function now(){return getContext().now()}function immediate(){return getContext().immediate()}const Transport=getContext().transport;function getTransport(){return getContext().transport}const Destination$1=getContext().destination,Master=getContext().destination;function getDestination$1(){return getContext().destination}const Listener=getContext().listener;function getListener(){return getContext().listener}const Draw=getContext().draw;function getDraw(){return getContext().draw}const context=getContext();function loaded(){return ToneAudioBuffer.loaded()}const Buffer=ToneAudioBuffer,Buffers=ToneAudioBuffers,BufferSource=ToneBufferSource;var _Tone=Object.freeze(Object.defineProperty({__proto__:null,now,immediate,Transport,getTransport,Destination:Destination$1,Master,getDestination:getDestination$1,Listener,getListener,Draw,getDraw,context,loaded,Buffer,Buffers,BufferSource,getContext,setContext,start,supported:isSupported,dbToGain,gainToDb,intervalToFrequencyRatio,ftom,mtof,optionsFromArguments,defaultArg,Clock,Context,BaseContext,Delay,Gain:Gain$1,Offline,OfflineContext,Param,ToneAudioBuffer,ToneAudioBuffers,ToneAudioNode,connectSeries,connect,disconnect,FrequencyClass,Frequency,MidiClass,Midi,TimeClass,Time,TicksClass,Ticks,TransportTimeClass,TransportTime,Emitter,IntervalTimeline,StateTimeline,Timeline,isUndef,isDefined,isFunction,isNumber,isObject,isBoolean,isArray,isString,isNote:isNote$1,Unit:Units,debug:Debug,Noise,UserMedia,Oscillator,AMOscillator,FMOscillator,PulseOscillator,FatOscillator,PWMOscillator,OmniOscillator,ToneOscillatorNode,LFO,ToneBufferSource,Player,Players:Players$1,GrainPlayer,Add,Abs,AudioToGain,GainToAudio,GreaterThan,GreaterThanZero,Multiply,Negate,Pow,Signal,connectSignal,Scale,ScaleExp,Subtract,SyncedSignal,WaveShaper,Zero,AMSynth:AMSynth$1,DuoSynth:DuoSynth$1,FMSynth:FMSynth$1,MetalSynth:MetalSynth$1,MembraneSynth:MembraneSynth$1,MonoSynth:MonoSynth$1,NoiseSynth:NoiseSynth$1,PluckSynth:PluckSynth$1,PolySynth:PolySynth$1,Sampler:Sampler$1,Synth:Synth$1,Loop,Part,Pattern:Pattern$2,Sequence,ToneEvent,AutoFilter:AutoFilter$1,AutoPanner,AutoWah,BitCrusher,Chebyshev,Chorus,Distortion,FeedbackDelay,FrequencyShifter,Freeverb,JCReverb,PingPongDelay,PitchShift,Phaser,Reverb,StereoWidener,Tremolo,Vibrato,Analyser,Meter,FFT,DCMeter,Waveform,Follower,Channel,CrossFade,Merge,MidSideMerge,MidSideSplit,Mono,MultibandSplit,Panner,Panner3D,PanVol,Recorder,Solo,Split,Volume,Compressor,Gate,Limiter,MidSideCompressor,MultibandCompressor,AmplitudeEnvelope,Envelope,FrequencyEnvelope,EQ3,Filter:Filter$1,OnePoleFilter,FeedbackCombFilter,LowpassCombFilter,Convolver,BiquadFilter,version:version$7},Symbol.toStringTag,{value:"Module"})),__awaiter$e=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class PianoComponent extends ToneAudioNode{constructor(e){super(e),this.name="PianoComponent",this.input=void 0,this.output=new Volume({context:this.context}),this._enabled=!1,this.volume=this.output.volume,this._loaded=!1,this.volume.value=e.volume,this._enabled=e.enabled,this.samples=e.samples}get loaded(){return this._loaded}load(){return __awaiter$e(this,void 0,void 0,function*(){if(this._enabled)yield this._internalLoad(),this._loaded=!0;else return Promise.resolve()})}}function midiToNote(a){return Frequency(a,"midi").toNote()}function randomBetween(a,e){return Math.random()*(e-a)+a}function getReleasesUrl(a){return`rel${a-20}.[mp3|ogg]`}function getHarmonicsUrl(a){return`harmS${midiToNote(a).replace("#","s")}.[mp3|ogg]`}function getNotesUrl(a,e){return`${midiToNote(a).replace("#","s")}v${e}.[mp3|ogg]`}const velocitiesMap={1:[8],2:[6,12],3:[1,7,15],4:[1,5,10,15],5:[1,4,8,12,16],6:[1,3,7,10,13,16],7:[1,3,6,9,11,13,16],8:[1,3,5,7,9,11,13,16],9:[1,3,5,7,9,11,13,15,16],10:[1,2,3,5,7,9,11,13,15,16],11:[1,2,3,5,7,9,11,13,14,15,16],12:[1,2,3,4,5,7,9,11,13,14,15,16],13:[1,2,3,4,5,7,9,11,12,13,14,15,16],14:[1,2,3,4,5,6,7,9,11,12,13,14,15,16],15:[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16],16:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]},allNotes=[21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108];function getNotesInRange(a,e){return allNotes.filter(s=>a<=s&&s<=e)}const harmonics=[21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87];function getHarmonicsInRange(a,e){return harmonics.filter(s=>a<=s&&s<=e)}function inHarmonicsRange(a){return harmonics[0]<=a&&a<=harmonics[harmonics.length-1]}class Harmonics extends PianoComponent{constructor(e){super(e),this._urls={};const s=getHarmonicsInRange(e.minNote,e.maxNote);for(const o of s)this._urls[o]=getHarmonicsUrl(o)}triggerAttack(e,s,o){this._enabled&&inHarmonicsRange(e)&&this._sampler.triggerAttack(Midi(e).toNote(),s,o*randomBetween(.5,1))}_internalLoad(){return new Promise(e=>{this._sampler=new Sampler$1({baseUrl:this.samples,onload:e,urls:this._urls}).connect(this.output)})}}class Keybed extends PianoComponent{constructor(e){super(e),this._urls={};for(let s=e.minNote;s<=e.maxNote;s++)this._urls[s]=getReleasesUrl(s)}_internalLoad(){return new Promise(e=>{this._buffers=new ToneAudioBuffers(this._urls,e,this.samples)})}start(e,s,o){this._enabled&&this._buffers.has(e)&&new ToneBufferSource({url:this._buffers.get(e),context:this.context}).connect(this.output).start(s,0,void 0,.015*o*randomBetween(.5,1))}}class Pedal extends PianoComponent{constructor(e){super(e),this._downTime=1/0,this._currentSound=null,this._downTime=1/0}_internalLoad(){return new Promise(e=>{this._buffers=new ToneAudioBuffers({down1:"pedalD1.mp3",down2:"pedalD2.mp3",up1:"pedalU1.mp3",up2:"pedalU2.mp3"},e,this.samples)})}_squash(e){this._currentSound&&this._currentSound.state!=="stopped"&&this._currentSound.stop(e),this._currentSound=null}_playSample(e,s){this._enabled&&(this._currentSound=new ToneBufferSource({url:this._buffers.get(`${s}${Math.random()>.5?1:2}`),context:this.context,curve:"exponential",fadeIn:.05,fadeOut:.1}).connect(this.output),this._currentSound.start(e,randomBetween(0,.01),void 0,.1*randomBetween(.5,1)))}down(e){this._squash(e),this._downTime=e,this._playSample(e,"down")}up(e){this._squash(e),this._downTime=1/0,this._playSample(e,"up")}isDown(e){return e>this._downTime}}class PianoString extends ToneAudioNode{constructor(e){super(e),this.name="PianoString",this._urls={},e.notes.forEach(s=>this._urls[s]=getNotesUrl(s,e.velocity)),this.samples=e.samples}load(){return new Promise(e=>{this._sampler=this.output=new Sampler$1({attack:0,baseUrl:this.samples,curve:"exponential",onload:e,release:.4,urls:this._urls,volume:3})})}triggerAttack(e,s,o){this._sampler.triggerAttack(e,s,o)}triggerRelease(e,s){this._sampler.triggerRelease(e,s)}}var __awaiter$d=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class PianoStrings extends PianoComponent{constructor(e){super(e);const s=getNotesInRange(e.minNote,e.maxNote),o=velocitiesMap[e.velocities].slice();this._strings=o.map(c=>new PianoString(Object.assign(e,{notes:s,velocity:c}))),this._activeNotes=new Map}scale(e,s,o,c,d){return(e-s)/(o-s)*(d-c)+c}triggerAttack(e,s,o){const c=this.scale(o,0,1,-.5,this._strings.length-.51),d=Math.max(Math.round(c),0);let _=1+c-d;this._strings.length===1&&(_=o);const b=this._strings[d];this._activeNotes.has(e)&&this.triggerRelease(e,s),this._activeNotes.set(e,b),b.triggerAttack(Midi(e).toNote(),s,_)}triggerRelease(e,s){this._activeNotes.has(e)&&(this._activeNotes.get(e).triggerRelease(Midi(e).toNote(),s),this._activeNotes.delete(e))}_internalLoad(){return __awaiter$d(this,void 0,void 0,function*(){yield Promise.all(this._strings.map(e=>__awaiter$d(this,void 0,void 0,function*(){yield e.load(),e.connect(this.output)})))})}}var __awaiter$c=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class Piano$1 extends ToneAudioNode{constructor(){super(optionsFromArguments(Piano$1.getDefaults(),arguments)),this.name="Piano",this.input=void 0,this.output=new Gain$1({context:this.context}),this._heldNotes=new Map,this._loaded=!1;const e=optionsFromArguments(Piano$1.getDefaults(),arguments);e.url.endsWith("/")||(e.url+="/"),this.maxPolyphony=e.maxPolyphony,this._heldNotes=new Map,this._sustainedNotes=new Map,this._strings=new PianoStrings(Object.assign({},e,{enabled:!0,samples:e.url,volume:e.volume.strings})).connect(this.output),this.strings=this._strings.volume,this._pedal=new Pedal(Object.assign({},e,{enabled:e.pedal,samples:e.url,volume:e.volume.pedal})).connect(this.output),this.pedal=this._pedal.volume,this._keybed=new Keybed(Object.assign({},e,{enabled:e.release,samples:e.url,volume:e.volume.keybed})).connect(this.output),this.keybed=this._keybed.volume,this._harmonics=new Harmonics(Object.assign({},e,{enabled:e.release,samples:e.url,volume:e.volume.harmonics})).connect(this.output),this.harmonics=this._harmonics.volume}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{maxNote:108,minNote:21,pedal:!0,release:!1,url:"https://tambien.github.io/Piano/audio/",velocities:1,maxPolyphony:32,volume:{harmonics:0,keybed:0,pedal:0,strings:0}})}load(){return __awaiter$c(this,void 0,void 0,function*(){yield Promise.all([this._strings.load(),this._pedal.load(),this._keybed.load(),this._harmonics.load()]),this._loaded=!0})}get loaded(){return this._loaded}pedalDown({time:e=this.immediate()}={}){return this.loaded&&(e=this.toSeconds(e),this._pedal.isDown(e)||this._pedal.down(e)),this}pedalUp({time:e=this.immediate()}={}){if(this.loaded){const s=this.toSeconds(e);this._pedal.isDown(s)&&(this._pedal.up(s),this._sustainedNotes.forEach((o,c)=>{this._heldNotes.has(c)||this._strings.triggerRelease(c,s)}),this._sustainedNotes.clear())}return this}keyDown({note:e,midi:s,time:o=this.immediate(),velocity:c=.8}){return this.loaded&&this.maxPolyphony>this._heldNotes.size+this._sustainedNotes.size?(o=this.toSeconds(o),isString(e)&&(s=Math.round(Midi(e).toMidi())),this._heldNotes.has(s)||(this._heldNotes.set(s,{time:o,velocity:c}),this._strings.triggerAttack(s,o,c))):console.warn("samples not loaded"),this}keyUp({note:e,midi:s,time:o=this.immediate(),velocity:c=.8}){if(this.loaded&&(o=this.toSeconds(o),isString(e)&&(s=Math.round(Midi(e).toMidi())),this._heldNotes.has(s))){const d=this._heldNotes.get(s);this._heldNotes.delete(s);const _=Math.pow(Math.max(o-d.time,.1),.7),b=d.velocity;let k=3/_*b*c;k=Math.max(k,.4),k=Math.min(k,4),this._pedal.isDown(o)?this._sustainedNotes.has(s)||this._sustainedNotes.set(s,o):(this._strings.triggerRelease(s,o),this._harmonics.triggerAttack(s,o,k)),this._keybed.start(s,o,c)}return this}stopAll(){return this.pedalUp(),this._heldNotes.forEach((e,s)=>{this.keyUp({midi:s})}),this}}var events={exports:{}},R=typeof Reflect=="object"?Reflect:null,ReflectApply=R&&typeof R.apply=="function"?R.apply:function a(e,s,o){return Function.prototype.apply.call(e,s,o)},ReflectOwnKeys;R&&typeof R.ownKeys=="function"?ReflectOwnKeys=R.ownKeys:Object.getOwnPropertySymbols?ReflectOwnKeys=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:ReflectOwnKeys=function(e){return Object.getOwnPropertyNames(e)};function ProcessEmitWarning(a){console&&console.warn&&console.warn(a)}var NumberIsNaN=Number.isNaN||function a(e){return e!==e};function EventEmitter(){EventEmitter.init.call(this)}events.exports=EventEmitter;events.exports.once=once;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=void 0;EventEmitter.prototype._eventsCount=0;EventEmitter.prototype._maxListeners=void 0;var defaultMaxListeners=10;function checkListener(a){if(typeof a!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}Object.defineProperty(EventEmitter,"defaultMaxListeners",{enumerable:!0,get:function(){return defaultMaxListeners},set:function(a){if(typeof a!="number"||a<0||NumberIsNaN(a))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+a+".");defaultMaxListeners=a}});EventEmitter.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};EventEmitter.prototype.setMaxListeners=function a(e){if(typeof e!="number"||e<0||NumberIsNaN(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function _getMaxListeners(a){return a._maxListeners===void 0?EventEmitter.defaultMaxListeners:a._maxListeners}EventEmitter.prototype.getMaxListeners=function a(){return _getMaxListeners(this)};EventEmitter.prototype.emit=function a(e){for(var s=[],o=1;o0&&(_=s[0]),_ instanceof Error)throw _;var b=new Error("Unhandled error."+(_?" ("+_.message+")":""));throw b.context=_,b}var k=d[e];if(k===void 0)return!1;if(typeof k=="function")ReflectApply(k,this,s);else for(var $=k.length,j=arrayClone(k,$),o=0;o<$;++o)ReflectApply(j[o],this,s);return!0};function _addListener(a,e,s,o){var c,d,_;if(checkListener(s),d=a._events,d===void 0?(d=a._events=Object.create(null),a._eventsCount=0):(d.newListener!==void 0&&(a.emit("newListener",e,s.listener?s.listener:s),d=a._events),_=d[e]),_===void 0)_=d[e]=s,++a._eventsCount;else if(typeof _=="function"?_=d[e]=o?[s,_]:[_,s]:o?_.unshift(s):_.push(s),c=_getMaxListeners(a),c>0&&_.length>c&&!_.warned){_.warned=!0;var b=new Error("Possible EventEmitter memory leak detected. "+_.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");b.name="MaxListenersExceededWarning",b.emitter=a,b.type=e,b.count=_.length,ProcessEmitWarning(b)}return a}EventEmitter.prototype.addListener=function a(e,s){return _addListener(this,e,s,!1)};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function a(e,s){return _addListener(this,e,s,!0)};function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(a,e,s){var o={fired:!1,wrapFn:void 0,target:a,type:e,listener:s},c=onceWrapper.bind(o);return c.listener=s,o.wrapFn=c,c}EventEmitter.prototype.once=function a(e,s){return checkListener(s),this.on(e,_onceWrap(this,e,s)),this};EventEmitter.prototype.prependOnceListener=function a(e,s){return checkListener(s),this.prependListener(e,_onceWrap(this,e,s)),this};EventEmitter.prototype.removeListener=function a(e,s){var o,c,d,_,b;if(checkListener(s),c=this._events,c===void 0)return this;if(o=c[e],o===void 0)return this;if(o===s||o.listener===s)--this._eventsCount===0?this._events=Object.create(null):(delete c[e],c.removeListener&&this.emit("removeListener",e,o.listener||s));else if(typeof o!="function"){for(d=-1,_=o.length-1;_>=0;_--)if(o[_]===s||o[_].listener===s){b=o[_].listener,d=_;break}if(d<0)return this;d===0?o.shift():spliceOne(o,d),o.length===1&&(c[e]=o[0]),c.removeListener!==void 0&&this.emit("removeListener",e,b||s)}return this};EventEmitter.prototype.off=EventEmitter.prototype.removeListener;EventEmitter.prototype.removeAllListeners=function a(e){var s,o,c;if(o=this._events,o===void 0)return this;if(o.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):o[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete o[e]),this;if(arguments.length===0){var d=Object.keys(o),_;for(c=0;c=0;c--)this.removeListener(e,s[c]);return this};function _listeners(a,e,s){var o=a._events;if(o===void 0)return[];var c=o[e];return c===void 0?[]:typeof c=="function"?s?[c.listener||c]:[c]:s?unwrapListeners(c):arrayClone(c,c.length)}EventEmitter.prototype.listeners=function a(e){return _listeners(this,e,!0)};EventEmitter.prototype.rawListeners=function a(e){return _listeners(this,e,!1)};EventEmitter.listenerCount=function(a,e){return typeof a.listenerCount=="function"?a.listenerCount(e):listenerCount.call(a,e)};EventEmitter.prototype.listenerCount=listenerCount;function listenerCount(a){var e=this._events;if(e!==void 0){var s=e[a];if(typeof s=="function")return 1;if(s!==void 0)return s.length}return 0}EventEmitter.prototype.eventNames=function a(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};function arrayClone(a,e){for(var s=new Array(e),o=0;o>4,j=15&_.data[0],_e=1+j;if(1<_.data.length&&(b=_.data[1],k=2<_.data.length?_.data[2]:void 0),o.nrpnEventsEnabled&&$===o.MIDI_CHANNEL_MESSAGES.controlchange&&(b>=o.MIDI_NRPN_MESSAGES.increment&&b<=o.MIDI_NRPN_MESSAGES.parammsb||b===o.MIDI_NRPN_MESSAGES.entrymsb||b===o.MIDI_NRPN_MESSAGES.entrylsb)){var et={target:this,type:"controlchange",data:_.data,timestamp:_.timeStamp,channel:_e,controller:{number:b,name:this.getCcNameByNumber(b)},value:k};if(et.controller.number===o.MIDI_NRPN_MESSAGES.parammsb&&et.value!=o.MIDI_NRPN_MESSAGES.nullactiveparameter)o._nrpnBuffer[j]=[],o._nrpnBuffer[j][0]=et;else if(o._nrpnBuffer[j].length===1&&et.controller.number===o.MIDI_NRPN_MESSAGES.paramlsb)o._nrpnBuffer[j].push(et);else if(o._nrpnBuffer[j].length!==2||et.controller.number!==o.MIDI_NRPN_MESSAGES.increment&&et.controller.number!==o.MIDI_NRPN_MESSAGES.decrement&&et.controller.number!==o.MIDI_NRPN_MESSAGES.entrymsb)if(o._nrpnBuffer[j].length===3&&o._nrpnBuffer[j][2].number===o.MIDI_NRPN_MESSAGES.entrymsb&&et.controller.number===o.MIDI_NRPN_MESSAGES.entrylsb)o._nrpnBuffer[j].push(et);else if(3<=o._nrpnBuffer[j].length&&o._nrpnBuffer[j].length<=4&&et.controller.number===o.MIDI_NRPN_MESSAGES.parammsb&&et.value===o.MIDI_NRPN_MESSAGES.nullactiveparameter)o._nrpnBuffer[j].push(et);else if(4<=o._nrpnBuffer[j].length&&o._nrpnBuffer[j].length<=5&&et.controller.number===o.MIDI_NRPN_MESSAGES.paramlsb&&et.value===o.MIDI_NRPN_MESSAGES.nullactiveparameter){o._nrpnBuffer[j].push(et);var tt=[];o._nrpnBuffer[j].forEach(function(ot){tt.push(ot.data)});var nt=o._nrpnBuffer[j][0].value<<7|o._nrpnBuffer[j][1].value,it=o._nrpnBuffer[j][2].value;o._nrpnBuffer[j].length===6&&(it=o._nrpnBuffer[j][2].value<<7|o._nrpnBuffer[j][3].value);var rt="";switch(o._nrpnBuffer[j][2].controller.number){case o.MIDI_NRPN_MESSAGES.entrymsb:rt=o._nrpnTypes[0];break;case o.MIDI_NRPN_MESSAGES.increment:rt=o._nrpnTypes[1];break;case o.MIDI_NRPN_MESSAGES.decrement:rt=o._nrpnTypes[2];break;default:throw new Error("The NPRN type was unidentifiable.")}var st={timestamp:et.timestamp,channel:et.channel,type:"nrpn",data:tt,controller:{number:nt,type:rt,name:"Non-Registered Parameter "+nt},value:it};o._nrpnBuffer[j]=[],this._userHandlers.channel[st.type]&&this._userHandlers.channel[st.type][st.channel]&&this._userHandlers.channel[st.type][st.channel].forEach(function(ot){ot(st)})}else o._nrpnBuffer[j]=[];else o._nrpnBuffer[j].push(et)}},c.prototype._parseChannelEvent=function(_){var b,k,$=_.data[0]>>4,j=1+(15&_.data[0]);1<_.data.length&&(b=_.data[1],k=2<_.data.length?_.data[2]:void 0);var _e={target:this,data:_.data,timestamp:_.timeStamp,channel:j};$===o.MIDI_CHANNEL_MESSAGES.noteoff||$===o.MIDI_CHANNEL_MESSAGES.noteon&&k===0?(_e.type="noteoff",_e.note={number:b,name:o._notes[b%12],octave:o.getOctave(b)},_e.velocity=k/127,_e.rawVelocity=k):$===o.MIDI_CHANNEL_MESSAGES.noteon?(_e.type="noteon",_e.note={number:b,name:o._notes[b%12],octave:o.getOctave(b)},_e.velocity=k/127,_e.rawVelocity=k):$===o.MIDI_CHANNEL_MESSAGES.keyaftertouch?(_e.type="keyaftertouch",_e.note={number:b,name:o._notes[b%12],octave:o.getOctave(b)},_e.value=k/127):$===o.MIDI_CHANNEL_MESSAGES.controlchange&&0<=b&&b<=119?(_e.type="controlchange",_e.controller={number:b,name:this.getCcNameByNumber(b)},_e.value=k):$===o.MIDI_CHANNEL_MESSAGES.channelmode&&120<=b&&b<=127?(_e.type="channelmode",_e.controller={number:b,name:this.getChannelModeByNumber(b)},_e.value=k):$===o.MIDI_CHANNEL_MESSAGES.programchange?(_e.type="programchange",_e.value=b):$===o.MIDI_CHANNEL_MESSAGES.channelaftertouch?(_e.type="channelaftertouch",_e.value=b/127):$===o.MIDI_CHANNEL_MESSAGES.pitchbend?(_e.type="pitchbend",_e.value=((k<<7)+b-8192)/8192):_e.type="unknownchannelmessage",this._userHandlers.channel[_e.type]&&this._userHandlers.channel[_e.type][j]&&this._userHandlers.channel[_e.type][j].forEach(function(et){et(_e)})},c.prototype.getCcNameByNumber=function(_){if(!(0<=(_=Math.floor(_))&&_<=119))throw new RangeError("The control change number must be between 0 and 119.");for(var b in o.MIDI_CONTROL_CHANGE_MESSAGES)if(Object.prototype.hasOwnProperty.call(o.MIDI_CONTROL_CHANGE_MESSAGES,b)&&_===o.MIDI_CONTROL_CHANGE_MESSAGES[b])return b},c.prototype.getChannelModeByNumber=function(_){if(!(120<=(_=Math.floor(_))&&status<=127))throw new RangeError("The control change number must be between 120 and 127.");for(var b in o.MIDI_CHANNEL_MODE_MESSAGES)if(Object.prototype.hasOwnProperty.call(o.MIDI_CHANNEL_MODE_MESSAGES,b)&&_===o.MIDI_CHANNEL_MODE_MESSAGES[b])return b},c.prototype._parseSystemEvent=function(_){var b=_.data[0],k={target:this,data:_.data,timestamp:_.timeStamp};b===o.MIDI_SYSTEM_MESSAGES.sysex?k.type="sysex":b===o.MIDI_SYSTEM_MESSAGES.timecode?k.type="timecode":b===o.MIDI_SYSTEM_MESSAGES.songposition?k.type="songposition":b===o.MIDI_SYSTEM_MESSAGES.songselect?(k.type="songselect",k.song=_.data[1]):b===o.MIDI_SYSTEM_MESSAGES.tuningrequest?k.type="tuningrequest":b===o.MIDI_SYSTEM_MESSAGES.clock?k.type="clock":b===o.MIDI_SYSTEM_MESSAGES.start?k.type="start":b===o.MIDI_SYSTEM_MESSAGES.continue?k.type="continue":b===o.MIDI_SYSTEM_MESSAGES.stop?k.type="stop":b===o.MIDI_SYSTEM_MESSAGES.activesensing?k.type="activesensing":b===o.MIDI_SYSTEM_MESSAGES.reset?k.type="reset":k.type="unknownsystemmessage",this._userHandlers.system[k.type]&&this._userHandlers.system[k.type].forEach(function($){$(k)})},d.prototype.send=function(_,b,k){if(!(128<=_&&_<=255))throw new RangeError("The status byte must be an integer between 128 (0x80) and 255 (0xFF).");b===void 0&&(b=[]),Array.isArray(b)||(b=[b]);var $=[];return b.forEach(function(j){var _e=Math.floor(j);if(!(0<=_e&&_e<=255))throw new RangeError("Data bytes must be integers between 0 (0x00) and 255 (0xFF).");$.push(_e)}),this._midiOutput.send([_].concat($),parseFloat(k)||0),this},d.prototype.sendSysex=function(_,b,k){if(!o.sysexEnabled)throw new Error("Sysex message support must first be activated.");return k=k||{},_=[].concat(_),b.forEach(function($){if($<0||127<$)throw new RangeError("The data bytes of a sysex message must be integers between 0 (0x00) and 127 (0x7F).")}),b=_.concat(b,o.MIDI_SYSTEM_MESSAGES.sysexend),this.send(o.MIDI_SYSTEM_MESSAGES.sysex,b,this._parseTimeParameter(k.time)),this},d.prototype.sendTimecodeQuarterFrame=function(_,b){return b=b||{},this.send(o.MIDI_SYSTEM_MESSAGES.timecode,_,this._parseTimeParameter(b.time)),this},d.prototype.sendSongPosition=function(_,b){b=b||{};var k=(_=Math.floor(_)||0)>>7&127,$=127&_;return this.send(o.MIDI_SYSTEM_MESSAGES.songposition,[k,$],this._parseTimeParameter(b.time)),this},d.prototype.sendSongSelect=function(_,b){if(b=b||{},!(0<=(_=Math.floor(_))&&_<=127))throw new RangeError("The song number must be between 0 and 127.");return this.send(o.MIDI_SYSTEM_MESSAGES.songselect,[_],this._parseTimeParameter(b.time)),this},d.prototype.sendTuningRequest=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.tuningrequest,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendClock=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.clock,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendStart=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.start,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendContinue=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.continue,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendStop=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.stop,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendActiveSensing=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.activesensing,[],this._parseTimeParameter(_.time)),this},d.prototype.sendReset=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.reset,void 0,this._parseTimeParameter(_.time)),this},d.prototype.stopNote=function(_,b,k){if(_==="all")return this.sendChannelMode("allnotesoff",0,b,k);var $=64;return(k=k||{}).rawVelocity?!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=127&&($=k.velocity):!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=1&&($=127*k.velocity),this._convertNoteToArray(_).forEach(function(j){o.toMIDIChannels(b).forEach(function(_e){this.send((o.MIDI_CHANNEL_MESSAGES.noteoff<<4)+(_e-1),[j,Math.round($)],this._parseTimeParameter(k.time))}.bind(this))}.bind(this)),this},d.prototype.playNote=function(_,b,k){var $,j=64;if((k=k||{}).rawVelocity?!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=127&&(j=k.velocity):!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=1&&(j=127*k.velocity),$=this._parseTimeParameter(k.time),this._convertNoteToArray(_).forEach(function(et){o.toMIDIChannels(b).forEach(function(tt){this.send((o.MIDI_CHANNEL_MESSAGES.noteon<<4)+(tt-1),[et,Math.round(j)],$)}.bind(this))}.bind(this)),!isNaN(k.duration)){k.duration<=0&&(k.duration=0);var _e=64;k.rawVelocity?!isNaN(k.release)&&0<=k.release&&k.release<=127&&(_e=k.release):!isNaN(k.release)&&0<=k.release&&k.release<=1&&(_e=127*k.release),this._convertNoteToArray(_).forEach(function(et){o.toMIDIChannels(b).forEach(function(tt){this.send((o.MIDI_CHANNEL_MESSAGES.noteoff<<4)+(tt-1),[et,Math.round(_e)],($||o.time)+k.duration)}.bind(this))}.bind(this))}return this},d.prototype.sendKeyAftertouch=function(_,b,k,$){var j=this;if($=$||{},b<1||16>7&127,tt=127&_e;return o.toMIDIChannels(b).forEach(function(){$.setRegisteredParameter("channelcoarsetuning",j,b,{time:k.time}),$.setRegisteredParameter("channelfinetuning",[et,tt],b,{time:k.time})}),this},d.prototype.setTuningProgram=function(_,b,k){var $=this;if(k=k||{},!(0<=(_=Math.floor(_))&&_<=127))throw new RangeError("The program value must be between 0 and 127");return o.toMIDIChannels(b).forEach(function(){$.setRegisteredParameter("tuningprogram",_,b,{time:k.time})}),this},d.prototype.setTuningBank=function(_,b,k){var $=this;if(k=k||{},!(0<=(_=Math.floor(_)||0)&&_<=127))throw new RangeError("The bank value must be between 0 and 127");return o.toMIDIChannels(b).forEach(function(){$.setRegisteredParameter("tuningbank",_,b,{time:k.time})}),this},d.prototype.sendChannelMode=function(_,b,k,$){if($=$||{},typeof _=="string"){if(!(_=o.MIDI_CHANNEL_MODE_MESSAGES[_]))throw new TypeError("Invalid channel mode message name.")}else if(!(120<=(_=Math.floor(_))&&_<=127))throw new RangeError("Channel mode numerical identifiers must be between 120 and 127.");if((b=Math.floor(b)||0)<0||127>7&127,et=127&j;return o.toMIDIChannels(b).forEach(function(tt){$.send((o.MIDI_CHANNEL_MESSAGES.pitchbend<<4)+(tt-1),[et,_e],$._parseTimeParameter(k.time))}),this},d.prototype._parseTimeParameter=function(_){var b,k=parseFloat(_);return typeof _=="string"&&_.substring(0,1)==="+"?k&&0o.time&&(b=k),b},d.prototype._convertNoteToArray=function(_){var b=[];return Array.isArray(_)||(_=[_]),_.forEach(function(k){b.push(o.guessNoteNumber(k))}),b},a.exports?a.exports=o:e.WebMidi||(e.WebMidi=o)})(commonjsGlobal)})(webmidi_min);var _WebMidi=webmidi_min.exports,__awaiter$b=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class MidiInput extends events.exports.EventEmitter{constructor(e="all"){super(),this.deviceId=e,MidiInput.enabled().then(()=>{_WebMidi.addListener("connected",s=>{s.port.type==="input"&&this._addListeners(s.port)}),_WebMidi.addListener("disconnected",s=>{this._removeListeners(s.port)}),_WebMidi.inputs.forEach(s=>this._addListeners(s))})}_addListeners(e){MidiInput.connectedDevices.has(e.id)||(MidiInput.connectedDevices.set(e.id,e),this.emit("connect",this._inputToDevice(e)),e.addListener("noteon","all",s=>{(this.deviceId==="all"||this.deviceId===e.id)&&this.emit("keyDown",{note:`${s.note.name}${s.note.octave}`,midi:s.note.number,velocity:s.velocity,device:this._inputToDevice(e)})}),e.addListener("noteoff","all",s=>{(this.deviceId==="all"||this.deviceId===e.id)&&this.emit("keyUp",{note:`${s.note.name}${s.note.octave}`,midi:s.note.number,velocity:s.velocity,device:this._inputToDevice(e)})}),e.addListener("controlchange","all",s=>{(this.deviceId==="all"||this.deviceId===e.id)&&s.controller.name==="holdpedal"&&this.emit(s.value?"pedalDown":"pedalUp",{device:this._inputToDevice(e)})}))}_inputToDevice(e){return{name:e.name,id:e.id,manufacturer:e.manufacturer}}_removeListeners(e){if(MidiInput.connectedDevices.has(e.id)){const s=MidiInput.connectedDevices.get(e.id);this.emit("disconnect",this._inputToDevice(s)),MidiInput.connectedDevices.delete(e.id),s.removeListener("noteon"),s.removeListener("noteoff"),s.removeListener("controlchange")}}emit(e,s){return super.emit(e,s)}on(e,s){return super.on(e,s),this}once(e,s){return super.once(e,s),this}off(e,s){return super.off(e,s),this}static enabled(){return __awaiter$b(this,void 0,void 0,function*(){MidiInput._isEnabled||(yield new Promise((e,s)=>{_WebMidi.enable(o=>{o?s(o):(MidiInput._isEnabled=!0,e())})}))})}static getDevices(){return __awaiter$b(this,void 0,void 0,function*(){return yield MidiInput.enabled(),_WebMidi.inputs})}}MidiInput.connectedDevices=new Map;MidiInput._isEnabled=!1;var tonePiano=Object.freeze(Object.defineProperty({__proto__:null,Piano:Piano$1,MidiInput},Symbol.toStringTag,{value:"Module"}));const Tone=_Tone,{AutoFilter,Destination,Filter,Gain,isNote,Synth,PolySynth,MembraneSynth,MetalSynth,MonoSynth,AMSynth,DuoSynth,FMSynth,NoiseSynth,PluckSynth,Sampler,getDestination,Players}=Tone,{Piano}=tonePiano,getDefaultSynth=()=>{const a=new PolySynth().chain(new Gain(.5),getDestination());return a.set({oscillator:{type:"triangle"},envelope:{release:.01}}),a};Pattern$5.prototype.tone=function(a){return this._withHap(e=>{const s=(o,c)=>{var b,k;let d,_=(k=(b=c.context)==null?void 0:b.velocity)!=null?k:.75;if(a instanceof PluckSynth)d=getPlayableNoteValue(c),a.triggerAttack(d,o);else if(a instanceof NoiseSynth)a.triggerAttackRelease(c.duration.valueOf(),o);else if(a instanceof Piano)d=getPlayableNoteValue(c),a.keyDown({note:d,time:o,velocity:_}),a.keyUp({note:d,time:o+c.duration.valueOf(),velocity:_});else if(a instanceof Sampler)d=getPlayableNoteValue(c),a.triggerAttackRelease(d,c.duration.valueOf(),o,_);else if(a instanceof Players){if(!a.has(c.value))throw new Error(`name "${c.value}" not defined for players`);const $=a.player(c.value);$.start(o),$.stop(o+c.duration.valueOf())}else d=getPlayableNoteValue(c),a.triggerAttackRelease(d,c.duration.valueOf(),o,_)};return e.setContext(kt(Dt({},e.context),{instrument:a,onTrigger:s}))})};Pattern$5.prototype.define("tone",(a,e)=>e.tone(a),{composable:!0,patternified:!1});const amsynth=a=>new AMSynth(a),duosynth=a=>new DuoSynth(a),fmsynth=a=>new FMSynth(a),membrane=a=>new MembraneSynth(a),metal=a=>new MetalSynth(a),monosynth=a=>new MonoSynth(a),noise=a=>new NoiseSynth(a),pluck=a=>new PluckSynth(a),polysynth=a=>new PolySynth(a),sampler=(a,e)=>new Promise(s=>{const o=new Sampler(a,()=>s(o),e)}),players=(a,e="")=>(a=e?Object.fromEntries(Object.entries(a).map(([s,o])=>[s,e+o])):a,new Promise(s=>{const o=new Players(a,()=>s(o))})),synth=a=>new Synth(a),piano=async(a={velocities:1})=>{const e=new Piano(a);return await e.load(),e},vol=a=>new Gain(a),lowpass=a=>new Filter(a,"lowpass"),highpass=a=>new Filter(a,"highpass"),adsr=(a,e=.1,s=.4,o=.01)=>({envelope:{attack:a,decay:e,sustain:s,release:o}}),osc=a=>({oscillator:{type:a}}),out=()=>getDestination(),getDrawContext$1=(a="test-canvas")=>{let e=document.querySelector("#"+a);return e||(e=document.createElement("canvas"),e.id=a,e.width=window.innerWidth,e.height=window.innerHeight,e.style="pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0;z-index:5",document.body.prepend(e)),e.getContext("2d")};Pattern$5.prototype.draw=function(a,{from:e,to:s,onQuery:o}){window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation);const c=getDrawContext$1();let d,_=[];const b=k=>{const $=Tone.getTransport().seconds;if(e!==void 0&&s!==void 0){const j=Math.floor($);if(d!==j){d=j;const _e=j+e,et=j+s;setTimeout(()=>{_=this.query(new State(new TimeSpan(_e,et))).filter(Boolean).filter(tt=>tt.part.begin.equals(tt.whole.begin)),o==null||o(_)},0)}}a(c,_,$,k),window.strudelAnimation=requestAnimationFrame(b)};return requestAnimationFrame(b),this};const cleanupDraw=()=>{getDrawContext$1().clearRect(0,0,window.innerWidth,window.innerHeight),window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation),window.strudelScheduler&&clearInterval(window.strudelScheduler)},hideHeader=()=>{document.getElementById("header").style="display:none"};function frame(a){window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation);const e=s=>{const o=Tone.getTransport().seconds;a(s,o),window.strudelAnimation=requestAnimationFrame(e)};requestAnimationFrame(e)}const backgroundImage=function(a,e={}){const s=document.getElementById("code"),o="background-image:url("+a+");background-size:contain;";s.style=o;const{className:c}=s,d=(k,$)=>{({style:()=>s.style=o+";"+$,className:()=>s.className=$+" "+c})[k]()},_=Object.entries(e).filter(([k,$])=>typeof $=="function");Object.entries(e).filter(([k,$])=>typeof $=="string").forEach(([k,$])=>d(k,$)),_.length!==0&&frame((k,$)=>_.forEach(([j,_e])=>{d(j,_e($))}))},cleanupUi=()=>{const a=document.getElementById("code");a&&(a.style="",a.className="grow relative")},WebMidi=_WebMidi;function enableWebMidi(){return new Promise((a,e)=>{if(WebMidi.enabled){a(WebMidi);return}WebMidi.enable(s=>{s&&e(s),a(WebMidi)})})}const outputByName=a=>WebMidi.getOutputByName(a);Pattern$5.prototype.midi=function(a,e=1){var s,o,c;if(isPattern$1((s=a==null?void 0:a.constructor)==null?void 0:s.name))throw new Error(`.midi does not accept Pattern input. Make sure to pass device name with single quotes. Example: .midi('${((c=(o=WebMidi.outputs)==null?void 0:o[0])==null?void 0:c.name)||"IAC Driver Bus 1"}')`);return this._withHap(d=>{const _=(b,k)=>{var tt,nt;let $=k.value;const j=(nt=(tt=k.context)==null?void 0:tt.velocity)!=null?nt:.9;if(!isNote$1($))throw new Error("not a note: "+$);if(!WebMidi.enabled)throw new Error("\u{1F3B9} WebMidi is not enabled. Supported Browsers: https://caniuse.com/?search=webmidi");if(!WebMidi.outputs.length)throw new Error("\u{1F50C} No MIDI devices found. Connect a device or enable IAC Driver.");let _e;if(typeof a=="number"?_e=WebMidi.outputs[a]:typeof a=="string"?_e=outputByName(a):_e=WebMidi.outputs[0],!_e)throw new Error(`\u{1F50C} MIDI device '${a||""}' not found. Use one of ${WebMidi.outputs.map(it=>`'${it.name}'`).join(" | ")}`);const et=WebMidi.time-Tone.getContext().currentTime*1e3;b=b*1e3+et,_e.playNote($,e,{time:b,duration:k.duration.valueOf()*1e3-5,velocity:j})};return d.setContext(kt(Dt({},d.context),{onTrigger:_}))})};const ivory="#abb2bf",stone="#7d8799",invalid="#ffffff",darkBackground="#21252b",highlightBackground="rgba(0, 0, 0, 0.5)",background="transparent",tooltipBackground="#353a42",selection="rgba(128, 203, 196, 0.5)",cursor="#ffcc00",materialPalenightTheme=EditorView.theme({"&":{color:"#ffffff",backgroundColor:background,fontSize:"15px","z-index":11},".cm-content":{caretColor:cursor,lineHeight:"22px"},".cm-line":{background:"transparent"},".cm-line > *":{background:"#00000090"},"&.cm-focused .cm-cursor":{backgroundColor:cursor,width:"3px"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:selection},".cm-panels":{backgroundColor:darkBackground,color:"#ffffff"},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847",outline:"1px solid #515a6b"},".cm-gutters":{background:"transparent",color:"#676e95",border:"none"},".cm-activeLineGutter":{backgroundColor:highlightBackground},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:tooltipBackground},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:tooltipBackground,borderBottomColor:tooltipBackground},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:highlightBackground,color:ivory}}},{dark:!0}),materialPalenightHighlightStyle=HighlightStyle.define([{tag:tags.keyword,color:"#c792ea"},{tag:tags.operator,color:"#89ddff"},{tag:tags.special(tags.variableName),color:"#eeffff"},{tag:tags.typeName,color:"#f07178"},{tag:tags.atom,color:"#f78c6c"},{tag:tags.number,color:"#ff5370"},{tag:tags.definition(tags.variableName),color:"#82aaff"},{tag:tags.string,color:"#c3e88d"},{tag:tags.special(tags.string),color:"#f07178"},{tag:tags.comment,color:stone},{tag:tags.variableName,color:"#f07178"},{tag:tags.tagName,color:"#ff5370"},{tag:tags.bracket,color:"#a2a1a4"},{tag:tags.meta,color:"#ffcb6b"},{tag:tags.attributeName,color:"#c792ea"},{tag:tags.propertyName,color:"#c792ea"},{tag:tags.className,color:"#decb6b"},{tag:tags.invalid,color:invalid}]),materialPalenight=[materialPalenightTheme,materialPalenightHighlightStyle],setFlash=StateEffect.define(),flashField=StateField.define({create(){return Decoration.none},update(a,e){try{for(let s of e.effects)if(s.is(setFlash))if(s.value){const o=Decoration.mark({attributes:{style:"background-color: #FFCA2880"}});a=Decoration.set([o.range(0,e.newDoc.length)])}else a=Decoration.set([]);return a}catch(s){return console.warn("flash error",s),a}},provide:a=>EditorView.decorations.from(a)}),flash=a=>{a.dispatch({effects:setFlash.of(!0)}),setTimeout(()=>{a.dispatch({effects:setFlash.of(!1)})},200)},setHighlights=StateEffect.define(),highlightField=StateField.define({create(){return Decoration.none},update(a,e){try{for(let s of e.effects)s.is(setHighlights)&&(a=Decoration.set(s.value.flatMap(o=>(o.context.locations||[]).map(({start:c,end:d})=>{const _=o.context.color||"#FFCA28";let b=e.newDoc.line(c.line).from+c.column,k=e.newDoc.line(d.line).from+d.column;const $=e.newDoc.length;return b>$||k>$?void 0:Decoration.mark({attributes:{style:`outline: 1.5px solid ${_};`}}).range(b,k)})).filter(Boolean),!0));return a}catch{return a}},provide:a=>EditorView.decorations.from(a)});function CodeMirror({value:a,onChange:e,onViewChanged:s,onCursor:o,options:c,editorDidMount:d}){return jsx(Fragment,{children:jsx(CodeMirror$1,{onViewChange:s,style:{display:"flex",flexDirection:"column",flex:"1 0 auto"},value:a,onChange:e,extensions:[javascript(),materialPalenight,highlightField,flashField]})})}function useCycle(a){const{onEvent:e,onQuery:s,onSchedule:o,ready:c=!0,onDraw:d}=a,[_,b]=react.exports.useState(!1),k=1,$=()=>Math.floor(Tone.getTransport().seconds/k),j=(nt=$())=>{const it=new TimeSpan$1(nt,nt+1),rt=(s==null?void 0:s(new State$1(it)))||[];o==null||o(rt,nt);const st=it.begin.valueOf();Tone.getTransport().cancel(st);const ot=(nt+1)*k-.5,at=Math.max(Tone.getTransport().seconds,ot)+.1;Tone.getTransport().schedule(()=>{j(nt+1)},at),rt==null||rt.filter(ht=>{var lt;return ht.part.begin.equals((lt=ht.whole)==null?void 0:lt.begin)}).forEach(ht=>{Tone.getTransport().schedule(lt=>{e(lt,ht,Tone.getContext().currentTime),Tone.Draw.schedule(()=>{d==null||d(lt,ht)},lt)},ht.part.begin.valueOf())})};react.exports.useEffect(()=>{c&&j()},[e,o,s,d,c]);const _e=async()=>{b(!0),await Tone.start(),Tone.getTransport().start("+0.1")},et=()=>{Tone.getTransport().pause(),b(!1)};return{start:_e,stop:et,onEvent:e,started:_,setStarted:b,toggle:()=>_?et():_e(),query:j,activeCycle:$}}function usePostMessage(a){return react.exports.useEffect(()=>(window.addEventListener("message",a),()=>window.removeEventListener("message",a)),[a]),react.exports.useCallback(e=>window.postMessage(e,"*"),[])}let s4=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);const generateHash=a=>encodeURIComponent(btoa(a));function useRepl({tune:a,defaultSynth:e,autolink:s=!0,onEvent:o,onDraw:c}){const d=react.exports.useMemo(()=>s4(),[]),[_,b]=react.exports.useState(a),[k,$]=react.exports.useState(),[j,_e]=react.exports.useState(""),[et,tt]=react.exports.useState(),[nt,it]=react.exports.useState(!1),[rt,st]=react.exports.useState(""),[ot,at]=react.exports.useState(),ht=react.exports.useMemo(()=>_!==k||et,[_,k,et]),lt=react.exports.useCallback(pt=>_e(mt=>mt+`${mt?` +`;registerProcessor(workletName,bitCrusherWorklet);class BitCrusher extends Effect{constructor(){super(optionsFromArguments(BitCrusher.getDefaults(),arguments,["bits"])),this.name="BitCrusher";const e=optionsFromArguments(BitCrusher.getDefaults(),arguments,["bits"]);this._bitCrusherWorklet=new BitCrusherWorklet({context:this.context,bits:e.bits}),this.connectEffect(this._bitCrusherWorklet),this.bits=this._bitCrusherWorklet.bits}static getDefaults(){return Object.assign(Effect.getDefaults(),{bits:4})}dispose(){return super.dispose(),this._bitCrusherWorklet.dispose(),this}}class BitCrusherWorklet extends ToneAudioWorklet{constructor(){super(optionsFromArguments(BitCrusherWorklet.getDefaults(),arguments)),this.name="BitCrusherWorklet";const e=optionsFromArguments(BitCrusherWorklet.getDefaults(),arguments);this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this.bits=new Param({context:this.context,value:e.bits,units:"positive",minValue:1,maxValue:16,param:this._dummyParam,swappable:!0})}static getDefaults(){return Object.assign(ToneAudioWorklet.getDefaults(),{bits:12})}_audioWorkletName(){return workletName}onReady(e){connectSeries(this.input,e,this.output);const s=e.parameters.get("bits");this.bits.setParam(s)}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.bits.dispose(),this}}class Chebyshev extends Effect{constructor(){super(optionsFromArguments(Chebyshev.getDefaults(),arguments,["order"])),this.name="Chebyshev";const e=optionsFromArguments(Chebyshev.getDefaults(),arguments,["order"]);this._shaper=new WaveShaper({context:this.context,length:4096}),this._order=e.order,this.connectEffect(this._shaper),this.order=e.order,this.oversample=e.oversample}static getDefaults(){return Object.assign(Effect.getDefaults(),{order:1,oversample:"none"})}_getCoefficient(e,s,o){return o.has(s)||(s===0?o.set(s,0):s===1?o.set(s,e):o.set(s,2*e*this._getCoefficient(e,s-1,o)-this._getCoefficient(e,s-2,o))),o.get(s)}get order(){return this._order}set order(e){this._order=e,this._shaper.setMap(s=>this._getCoefficient(s,e,new Map))}get oversample(){return this._shaper.oversample}set oversample(e){this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.dispose(),this}}class Split extends ToneAudioNode{constructor(){super(optionsFromArguments(Split.getDefaults(),arguments,["channels"])),this.name="Split";const e=optionsFromArguments(Split.getDefaults(),arguments,["channels"]);this._splitter=this.input=this.output=this.context.createChannelSplitter(e.channels),this._internalChannels=[this._splitter]}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._splitter.disconnect(),this}}class Merge extends ToneAudioNode{constructor(){super(optionsFromArguments(Merge.getDefaults(),arguments,["channels"])),this.name="Merge";const e=optionsFromArguments(Merge.getDefaults(),arguments,["channels"]);this._merger=this.output=this.input=this.context.createChannelMerger(e.channels)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}}class StereoEffect extends ToneAudioNode{constructor(e){super(e),this.name="StereoEffect",this.input=new Gain$1({context:this.context}),this.input.channelCount=2,this.input.channelCountMode="explicit",this._dryWet=this.output=new CrossFade({context:this.context,fade:e.wet}),this.wet=this._dryWet.fade,this._split=new Split({context:this.context,channels:2}),this._merge=new Merge({context:this.context,channels:2}),this.input.connect(this._split),this.input.connect(this._dryWet.a),this._merge.connect(this._dryWet.b),readOnly(this,["wet"])}connectEffectLeft(...e){this._split.connect(e[0],0,0),connectSeries(...e),connect(e[e.length-1],this._merge,0,0)}connectEffectRight(...e){this._split.connect(e[0],1,0),connectSeries(...e),connect(e[e.length-1],this._merge,0,1)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{wet:1})}dispose(){return super.dispose(),this._dryWet.dispose(),this._split.dispose(),this._merge.dispose(),this}}class StereoFeedbackEffect extends StereoEffect{constructor(e){super(e),this.feedback=new Signal({context:this.context,value:e.feedback,units:"normalRange"}),this._feedbackL=new Gain$1({context:this.context}),this._feedbackR=new Gain$1({context:this.context}),this._feedbackSplit=new Split({context:this.context,channels:2}),this._feedbackMerge=new Merge({context:this.context,channels:2}),this._merge.connect(this._feedbackSplit),this._feedbackMerge.connect(this._split),this._feedbackSplit.connect(this._feedbackL,0,0),this._feedbackL.connect(this._feedbackMerge,0,0),this._feedbackSplit.connect(this._feedbackR,1,0),this._feedbackR.connect(this._feedbackMerge,0,1),this.feedback.fan(this._feedbackL.gain,this._feedbackR.gain),readOnly(this,["feedback"])}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{feedback:.5})}dispose(){return super.dispose(),this.feedback.dispose(),this._feedbackL.dispose(),this._feedbackR.dispose(),this._feedbackSplit.dispose(),this._feedbackMerge.dispose(),this}}class Chorus extends StereoFeedbackEffect{constructor(){super(optionsFromArguments(Chorus.getDefaults(),arguments,["frequency","delayTime","depth"])),this.name="Chorus";const e=optionsFromArguments(Chorus.getDefaults(),arguments,["frequency","delayTime","depth"]);this._depth=e.depth,this._delayTime=e.delayTime/1e3,this._lfoL=new LFO({context:this.context,frequency:e.frequency,min:0,max:1}),this._lfoR=new LFO({context:this.context,frequency:e.frequency,min:0,max:1,phase:180}),this._delayNodeL=new Delay({context:this.context}),this._delayNodeR=new Delay({context:this.context}),this.frequency=this._lfoL.frequency,readOnly(this,["frequency"]),this._lfoL.frequency.connect(this._lfoR.frequency),this.connectEffectLeft(this._delayNodeL),this.connectEffectRight(this._delayNodeR),this._lfoL.connect(this._delayNodeL.delayTime),this._lfoR.connect(this._delayNodeR.delayTime),this.depth=this._depth,this.type=e.type,this.spread=e.spread}static getDefaults(){return Object.assign(StereoFeedbackEffect.getDefaults(),{frequency:1.5,delayTime:3.5,depth:.7,type:"sine",spread:180,feedback:0,wet:.5})}get depth(){return this._depth}set depth(e){this._depth=e;const s=this._delayTime*e;this._lfoL.min=Math.max(this._delayTime-s,0),this._lfoL.max=this._delayTime+s,this._lfoR.min=Math.max(this._delayTime-s,0),this._lfoR.max=this._delayTime+s}get delayTime(){return this._delayTime*1e3}set delayTime(e){this._delayTime=e/1e3,this.depth=this._depth}get type(){return this._lfoL.type}set type(e){this._lfoL.type=e,this._lfoR.type=e}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(e){this._lfoL.phase=90-e/2,this._lfoR.phase=e/2+90}start(e){return this._lfoL.start(e),this._lfoR.start(e),this}stop(e){return this._lfoL.stop(e),this._lfoR.stop(e),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._delayNodeL.dispose(),this._delayNodeR.dispose(),this.frequency.dispose(),this}}class Distortion extends Effect{constructor(){super(optionsFromArguments(Distortion.getDefaults(),arguments,["distortion"])),this.name="Distortion";const e=optionsFromArguments(Distortion.getDefaults(),arguments,["distortion"]);this._shaper=new WaveShaper({context:this.context,length:4096}),this._distortion=e.distortion,this.connectEffect(this._shaper),this.distortion=e.distortion,this.oversample=e.oversample}static getDefaults(){return Object.assign(Effect.getDefaults(),{distortion:.4,oversample:"none"})}get distortion(){return this._distortion}set distortion(e){this._distortion=e;const s=e*100,o=Math.PI/180;this._shaper.setMap(c=>Math.abs(c)<.001?0:(3+s)*c*20*o/(Math.PI+s*Math.abs(c)))}get oversample(){return this._shaper.oversample}set oversample(e){this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.dispose(),this}}class FeedbackEffect extends Effect{constructor(e){super(e),this.name="FeedbackEffect",this._feedbackGain=new Gain$1({context:this.context,gain:e.feedback,units:"normalRange"}),this.feedback=this._feedbackGain.gain,readOnly(this,"feedback"),this.effectReturn.chain(this._feedbackGain,this.effectSend)}static getDefaults(){return Object.assign(Effect.getDefaults(),{feedback:.125})}dispose(){return super.dispose(),this._feedbackGain.dispose(),this.feedback.dispose(),this}}class FeedbackDelay extends FeedbackEffect{constructor(){super(optionsFromArguments(FeedbackDelay.getDefaults(),arguments,["delayTime","feedback"])),this.name="FeedbackDelay";const e=optionsFromArguments(FeedbackDelay.getDefaults(),arguments,["delayTime","feedback"]);this._delayNode=new Delay({context:this.context,delayTime:e.delayTime,maxDelay:e.maxDelay}),this.delayTime=this._delayNode.delayTime,this.connectEffect(this._delayNode),readOnly(this,"delayTime")}static getDefaults(){return Object.assign(FeedbackEffect.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._delayNode.dispose(),this.delayTime.dispose(),this}}class PhaseShiftAllpass extends ToneAudioNode{constructor(e){super(e),this.name="PhaseShiftAllpass",this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this.offset90=new Gain$1({context:this.context});const s=[.6923878,.9360654322959,.988229522686,.9987488452737],o=[.4021921162426,.856171088242,.9722909545651,.9952884791278];this._bank0=this._createAllPassFilterBank(s),this._bank1=this._createAllPassFilterBank(o),this._oneSampleDelay=this.context.createIIRFilter([0,1],[1,0]),connectSeries(this.input,...this._bank0,this._oneSampleDelay,this.output),connectSeries(this.input,...this._bank1,this.offset90)}_createAllPassFilterBank(e){return e.map(o=>{const c=[[o*o,0,-1],[1,0,-(o*o)]];return this.context.createIIRFilter(c[0],c[1])})}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.offset90.dispose(),this._bank0.forEach(e=>e.disconnect()),this._bank1.forEach(e=>e.disconnect()),this._oneSampleDelay.disconnect(),this}}class FrequencyShifter extends Effect{constructor(){super(optionsFromArguments(FrequencyShifter.getDefaults(),arguments,["frequency"])),this.name="FrequencyShifter";const e=optionsFromArguments(FrequencyShifter.getDefaults(),arguments,["frequency"]);this.frequency=new Signal({context:this.context,units:"frequency",value:e.frequency,minValue:-this.context.sampleRate/2,maxValue:this.context.sampleRate/2}),this._sine=new ToneOscillatorNode({context:this.context,type:"sine"}),this._cosine=new Oscillator({context:this.context,phase:-90,type:"sine"}),this._sineMultiply=new Multiply({context:this.context}),this._cosineMultiply=new Multiply({context:this.context}),this._negate=new Negate({context:this.context}),this._add=new Add({context:this.context}),this._phaseShifter=new PhaseShiftAllpass({context:this.context}),this.effectSend.connect(this._phaseShifter),this.frequency.fan(this._sine.frequency,this._cosine.frequency),this._phaseShifter.offset90.connect(this._cosineMultiply),this._cosine.connect(this._cosineMultiply.factor),this._phaseShifter.connect(this._sineMultiply),this._sine.connect(this._sineMultiply.factor),this._sineMultiply.connect(this._negate),this._cosineMultiply.connect(this._add),this._negate.connect(this._add.addend),this._add.connect(this.effectReturn);const s=this.immediate();this._sine.start(s),this._cosine.start(s)}static getDefaults(){return Object.assign(Effect.getDefaults(),{frequency:0})}dispose(){return super.dispose(),this.frequency.dispose(),this._add.dispose(),this._cosine.dispose(),this._cosineMultiply.dispose(),this._negate.dispose(),this._phaseShifter.dispose(),this._sine.dispose(),this._sineMultiply.dispose(),this}}const combFilterTunings=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100],allpassFilterFrequencies=[225,556,441,341];class Freeverb extends StereoEffect{constructor(){super(optionsFromArguments(Freeverb.getDefaults(),arguments,["roomSize","dampening"])),this.name="Freeverb",this._combFilters=[],this._allpassFiltersL=[],this._allpassFiltersR=[];const e=optionsFromArguments(Freeverb.getDefaults(),arguments,["roomSize","dampening"]);this.roomSize=new Signal({context:this.context,value:e.roomSize,units:"normalRange"}),this._allpassFiltersL=allpassFilterFrequencies.map(s=>{const o=this.context.createBiquadFilter();return o.type="allpass",o.frequency.value=s,o}),this._allpassFiltersR=allpassFilterFrequencies.map(s=>{const o=this.context.createBiquadFilter();return o.type="allpass",o.frequency.value=s,o}),this._combFilters=combFilterTunings.map((s,o)=>{const c=new LowpassCombFilter({context:this.context,dampening:e.dampening,delayTime:s});return os.dampening=e)}dispose(){return super.dispose(),this._allpassFiltersL.forEach(e=>e.disconnect()),this._allpassFiltersR.forEach(e=>e.disconnect()),this._combFilters.forEach(e=>e.dispose()),this.roomSize.dispose(),this}}const combFilterDelayTimes=[1687/25e3,1601/25e3,2053/25e3,2251/25e3],combFilterResonances=[.773,.802,.753,.733],allpassFilterFreqs=[347,113,37];class JCReverb extends StereoEffect{constructor(){super(optionsFromArguments(JCReverb.getDefaults(),arguments,["roomSize"])),this.name="JCReverb",this._allpassFilters=[],this._feedbackCombFilters=[];const e=optionsFromArguments(JCReverb.getDefaults(),arguments,["roomSize"]);this.roomSize=new Signal({context:this.context,value:e.roomSize,units:"normalRange"}),this._scaleRoomSize=new Scale({context:this.context,min:-.733,max:.197}),this._allpassFilters=allpassFilterFreqs.map(s=>{const o=this.context.createBiquadFilter();return o.type="allpass",o.frequency.value=s,o}),this._feedbackCombFilters=combFilterDelayTimes.map((s,o)=>{const c=new FeedbackCombFilter({context:this.context,delayTime:s});return this._scaleRoomSize.connect(c.resonance),c.resonance.value=combFilterResonances[o],oe.disconnect()),this._feedbackCombFilters.forEach(e=>e.dispose()),this.roomSize.dispose(),this._scaleRoomSize.dispose(),this}}class StereoXFeedbackEffect extends StereoFeedbackEffect{constructor(e){super(e),this._feedbackL.disconnect(),this._feedbackL.connect(this._feedbackMerge,0,1),this._feedbackR.disconnect(),this._feedbackR.connect(this._feedbackMerge,0,0),readOnly(this,["feedback"])}}class PingPongDelay extends StereoXFeedbackEffect{constructor(){super(optionsFromArguments(PingPongDelay.getDefaults(),arguments,["delayTime","feedback"])),this.name="PingPongDelay";const e=optionsFromArguments(PingPongDelay.getDefaults(),arguments,["delayTime","feedback"]);this._leftDelay=new Delay({context:this.context,maxDelay:e.maxDelay}),this._rightDelay=new Delay({context:this.context,maxDelay:e.maxDelay}),this._rightPreDelay=new Delay({context:this.context,maxDelay:e.maxDelay}),this.delayTime=new Signal({context:this.context,units:"time",value:e.delayTime}),this.connectEffectLeft(this._leftDelay),this.connectEffectRight(this._rightPreDelay,this._rightDelay),this.delayTime.fan(this._leftDelay.delayTime,this._rightDelay.delayTime,this._rightPreDelay.delayTime),this._feedbackL.disconnect(),this._feedbackL.connect(this._rightDelay),readOnly(this,["delayTime"])}static getDefaults(){return Object.assign(StereoXFeedbackEffect.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._leftDelay.dispose(),this._rightDelay.dispose(),this._rightPreDelay.dispose(),this.delayTime.dispose(),this}}class PitchShift extends FeedbackEffect{constructor(){super(optionsFromArguments(PitchShift.getDefaults(),arguments,["pitch"])),this.name="PitchShift";const e=optionsFromArguments(PitchShift.getDefaults(),arguments,["pitch"]);this._frequency=new Signal({context:this.context}),this._delayA=new Delay({maxDelay:1,context:this.context}),this._lfoA=new LFO({context:this.context,min:0,max:.1,type:"sawtooth"}).connect(this._delayA.delayTime),this._delayB=new Delay({maxDelay:1,context:this.context}),this._lfoB=new LFO({context:this.context,min:0,max:.1,type:"sawtooth",phase:180}).connect(this._delayB.delayTime),this._crossFade=new CrossFade({context:this.context}),this._crossFadeLFO=new LFO({context:this.context,min:0,max:1,type:"triangle",phase:90}).connect(this._crossFade.fade),this._feedbackDelay=new Delay({delayTime:e.delayTime,context:this.context}),this.delayTime=this._feedbackDelay.delayTime,readOnly(this,"delayTime"),this._pitch=e.pitch,this._windowSize=e.windowSize,this._delayA.connect(this._crossFade.a),this._delayB.connect(this._crossFade.b),this._frequency.fan(this._lfoA.frequency,this._lfoB.frequency,this._crossFadeLFO.frequency),this.effectSend.fan(this._delayA,this._delayB),this._crossFade.chain(this._feedbackDelay,this.effectReturn);const s=this.now();this._lfoA.start(s),this._lfoB.start(s),this._crossFadeLFO.start(s),this.windowSize=this._windowSize}static getDefaults(){return Object.assign(FeedbackEffect.getDefaults(),{pitch:0,windowSize:.1,delayTime:0,feedback:0})}get pitch(){return this._pitch}set pitch(e){this._pitch=e;let s=0;e<0?(this._lfoA.min=0,this._lfoA.max=this._windowSize,this._lfoB.min=0,this._lfoB.max=this._windowSize,s=intervalToFrequencyRatio(e-1)+1):(this._lfoA.min=this._windowSize,this._lfoA.max=0,this._lfoB.min=this._windowSize,this._lfoB.max=0,s=intervalToFrequencyRatio(e)-1),this._frequency.value=s*(1.2/this._windowSize)}get windowSize(){return this._windowSize}set windowSize(e){this._windowSize=this.toSeconds(e),this.pitch=this._pitch}dispose(){return super.dispose(),this._frequency.dispose(),this._delayA.dispose(),this._delayB.dispose(),this._lfoA.dispose(),this._lfoB.dispose(),this._crossFade.dispose(),this._crossFadeLFO.dispose(),this._feedbackDelay.dispose(),this}}class Phaser extends StereoEffect{constructor(){super(optionsFromArguments(Phaser.getDefaults(),arguments,["frequency","octaves","baseFrequency"])),this.name="Phaser";const e=optionsFromArguments(Phaser.getDefaults(),arguments,["frequency","octaves","baseFrequency"]);this._lfoL=new LFO({context:this.context,frequency:e.frequency,min:0,max:1}),this._lfoR=new LFO({context:this.context,frequency:e.frequency,min:0,max:1,phase:180}),this._baseFrequency=this.toFrequency(e.baseFrequency),this._octaves=e.octaves,this.Q=new Signal({context:this.context,value:e.Q,units:"positive"}),this._filtersL=this._makeFilters(e.stages,this._lfoL),this._filtersR=this._makeFilters(e.stages,this._lfoR),this.frequency=this._lfoL.frequency,this.frequency.value=e.frequency,this.connectEffectLeft(...this._filtersL),this.connectEffectRight(...this._filtersR),this._lfoL.frequency.connect(this._lfoR.frequency),this.baseFrequency=e.baseFrequency,this.octaves=e.octaves,this._lfoL.start(),this._lfoR.start(),readOnly(this,["frequency","Q"])}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{frequency:.5,octaves:3,stages:10,Q:10,baseFrequency:350})}_makeFilters(e,s){const o=[];for(let c=0;ce.disconnect()),this._filtersR.forEach(e=>e.disconnect()),this.frequency.dispose(),this}}class Reverb extends Effect{constructor(){super(optionsFromArguments(Reverb.getDefaults(),arguments,["decay"])),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();const e=optionsFromArguments(Reverb.getDefaults(),arguments,["decay"]);this._decay=e.decay,this._preDelay=e.preDelay,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(Effect.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(e){e=this.toSeconds(e),assertRange(e,.001),this._decay=e,this.generate()}get preDelay(){return this._preDelay}set preDelay(e){e=this.toSeconds(e),assertRange(e,0),this._preDelay=e,this.generate()}generate(){return __awaiter$f(this,void 0,void 0,function*(){const e=this.ready,s=new OfflineContext(2,this._decay+this._preDelay,this.context.sampleRate),o=new Noise({context:s}),c=new Noise({context:s}),d=new Merge({context:s});o.connect(d,0,0),c.connect(d,0,1);const _=new Gain$1({context:s}).toDestination();d.connect(_),o.start(0),c.start(0),_.gain.setValueAtTime(0,0),_.gain.setValueAtTime(1,this._preDelay),_.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);const b=s.render();return this.ready=b.then(noOp),yield e,this._convolver.buffer=(yield b).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}}class MidSideSplit extends ToneAudioNode{constructor(){super(optionsFromArguments(MidSideSplit.getDefaults(),arguments)),this.name="MidSideSplit",this._split=this.input=new Split({channels:2,context:this.context}),this._midAdd=new Add({context:this.context}),this.mid=new Multiply({context:this.context,value:Math.SQRT1_2}),this._sideSubtract=new Subtract({context:this.context}),this.side=new Multiply({context:this.context,value:Math.SQRT1_2}),this._split.connect(this._midAdd,0),this._split.connect(this._midAdd.addend,1),this._split.connect(this._sideSubtract,0),this._split.connect(this._sideSubtract.subtrahend,1),this._midAdd.connect(this.mid),this._sideSubtract.connect(this.side)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midAdd.dispose(),this._sideSubtract.dispose(),this._split.dispose(),this}}class MidSideMerge extends ToneAudioNode{constructor(){super(optionsFromArguments(MidSideMerge.getDefaults(),arguments)),this.name="MidSideMerge",this.mid=new Gain$1({context:this.context}),this.side=new Gain$1({context:this.context}),this._left=new Add({context:this.context}),this._leftMult=new Multiply({context:this.context,value:Math.SQRT1_2}),this._right=new Subtract({context:this.context}),this._rightMult=new Multiply({context:this.context,value:Math.SQRT1_2}),this._merge=this.output=new Merge({context:this.context}),this.mid.fan(this._left),this.side.connect(this._left.addend),this.mid.connect(this._right),this.side.connect(this._right.subtrahend),this._left.connect(this._leftMult),this._right.connect(this._rightMult),this._leftMult.connect(this._merge,0,0),this._rightMult.connect(this._merge,0,1)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._leftMult.dispose(),this._rightMult.dispose(),this._left.dispose(),this._right.dispose(),this}}class MidSideEffect extends Effect{constructor(e){super(e),this.name="MidSideEffect",this._midSideMerge=new MidSideMerge({context:this.context}),this._midSideSplit=new MidSideSplit({context:this.context}),this._midSend=this._midSideSplit.mid,this._sideSend=this._midSideSplit.side,this._midReturn=this._midSideMerge.mid,this._sideReturn=this._midSideMerge.side,this.effectSend.connect(this._midSideSplit),this._midSideMerge.connect(this.effectReturn)}connectEffectMid(...e){this._midSend.chain(...e,this._midReturn)}connectEffectSide(...e){this._sideSend.chain(...e,this._sideReturn)}dispose(){return super.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this._midSend.dispose(),this._sideSend.dispose(),this._midReturn.dispose(),this._sideReturn.dispose(),this}}class StereoWidener extends MidSideEffect{constructor(){super(optionsFromArguments(StereoWidener.getDefaults(),arguments,["width"])),this.name="StereoWidener";const e=optionsFromArguments(StereoWidener.getDefaults(),arguments,["width"]);this.width=new Signal({context:this.context,value:e.width,units:"normalRange"}),readOnly(this,["width"]),this._twoTimesWidthMid=new Multiply({context:this.context,value:2}),this._twoTimesWidthSide=new Multiply({context:this.context,value:2}),this._midMult=new Multiply({context:this.context}),this._twoTimesWidthMid.connect(this._midMult.factor),this.connectEffectMid(this._midMult),this._oneMinusWidth=new Subtract({context:this.context}),this._oneMinusWidth.connect(this._twoTimesWidthMid),connect(this.context.getConstant(1),this._oneMinusWidth),this.width.connect(this._oneMinusWidth.subtrahend),this._sideMult=new Multiply({context:this.context}),this.width.connect(this._twoTimesWidthSide),this._twoTimesWidthSide.connect(this._sideMult.factor),this.connectEffectSide(this._sideMult)}static getDefaults(){return Object.assign(MidSideEffect.getDefaults(),{width:.5})}dispose(){return super.dispose(),this.width.dispose(),this._midMult.dispose(),this._sideMult.dispose(),this._twoTimesWidthMid.dispose(),this._twoTimesWidthSide.dispose(),this._oneMinusWidth.dispose(),this}}class Tremolo extends StereoEffect{constructor(){super(optionsFromArguments(Tremolo.getDefaults(),arguments,["frequency","depth"])),this.name="Tremolo";const e=optionsFromArguments(Tremolo.getDefaults(),arguments,["frequency","depth"]);this._lfoL=new LFO({context:this.context,type:e.type,min:1,max:0}),this._lfoR=new LFO({context:this.context,type:e.type,min:1,max:0}),this._amplitudeL=new Gain$1({context:this.context}),this._amplitudeR=new Gain$1({context:this.context}),this.frequency=new Signal({context:this.context,value:e.frequency,units:"frequency"}),this.depth=new Signal({context:this.context,value:e.depth,units:"normalRange"}),readOnly(this,["frequency","depth"]),this.connectEffectLeft(this._amplitudeL),this.connectEffectRight(this._amplitudeR),this._lfoL.connect(this._amplitudeL.gain),this._lfoR.connect(this._amplitudeR.gain),this.frequency.fan(this._lfoL.frequency,this._lfoR.frequency),this.depth.fan(this._lfoR.amplitude,this._lfoL.amplitude),this.spread=e.spread}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{frequency:10,type:"sine",depth:.5,spread:180})}start(e){return this._lfoL.start(e),this._lfoR.start(e),this}stop(e){return this._lfoL.stop(e),this._lfoR.stop(e),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this.context.transport.syncSignal(this.frequency),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this.context.transport.unsyncSignal(this.frequency),this}get type(){return this._lfoL.type}set type(e){this._lfoL.type=e,this._lfoR.type=e}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(e){this._lfoL.phase=90-e/2,this._lfoR.phase=e/2+90}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._amplitudeL.dispose(),this._amplitudeR.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class Vibrato extends Effect{constructor(){super(optionsFromArguments(Vibrato.getDefaults(),arguments,["frequency","depth"])),this.name="Vibrato";const e=optionsFromArguments(Vibrato.getDefaults(),arguments,["frequency","depth"]);this._delayNode=new Delay({context:this.context,delayTime:0,maxDelay:e.maxDelay}),this._lfo=new LFO({context:this.context,type:e.type,min:0,max:e.maxDelay,frequency:e.frequency,phase:-90}).start().connect(this._delayNode.delayTime),this.frequency=this._lfo.frequency,this.depth=this._lfo.amplitude,this.depth.value=e.depth,readOnly(this,["frequency","depth"]),this.effectSend.chain(this._delayNode,this.effectReturn)}static getDefaults(){return Object.assign(Effect.getDefaults(),{maxDelay:.005,frequency:5,depth:.1,type:"sine"})}get type(){return this._lfo.type}set type(e){this._lfo.type=e}dispose(){return super.dispose(),this._delayNode.dispose(),this._lfo.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class Analyser extends ToneAudioNode{constructor(){super(optionsFromArguments(Analyser.getDefaults(),arguments,["type","size"])),this.name="Analyser",this._analysers=[],this._buffers=[];const e=optionsFromArguments(Analyser.getDefaults(),arguments,["type","size"]);this.input=this.output=this._gain=new Gain$1({context:this.context}),this._split=new Split({context:this.context,channels:e.channels}),this.input.connect(this._split),assertRange(e.channels,1);for(let s=0;s{const o=this._buffers[s];this._type==="fft"?e.getFloatFrequencyData(o):this._type==="waveform"&&e.getFloatTimeDomainData(o)}),this.channels===1?this._buffers[0]:this._buffers}get size(){return this._analysers[0].frequencyBinCount}set size(e){this._analysers.forEach((s,o)=>{s.fftSize=e*2,this._buffers[o]=new Float32Array(e)})}get channels(){return this._analysers.length}get type(){return this._type}set type(e){assert(e==="waveform"||e==="fft",`Analyser: invalid type: ${e}`),this._type=e}get smoothing(){return this._analysers[0].smoothingTimeConstant}set smoothing(e){this._analysers.forEach(s=>s.smoothingTimeConstant=e)}dispose(){return super.dispose(),this._analysers.forEach(e=>e.disconnect()),this._split.dispose(),this._gain.dispose(),this}}class MeterBase extends ToneAudioNode{constructor(){super(optionsFromArguments(MeterBase.getDefaults(),arguments)),this.name="MeterBase",this.input=this.output=this._analyser=new Analyser({context:this.context,size:256,type:"waveform"})}dispose(){return super.dispose(),this._analyser.dispose(),this}}class Meter extends MeterBase{constructor(){super(optionsFromArguments(Meter.getDefaults(),arguments,["smoothing"])),this.name="Meter",this._rms=0;const e=optionsFromArguments(Meter.getDefaults(),arguments,["smoothing"]);this.input=this.output=this._analyser=new Analyser({context:this.context,size:256,type:"waveform",channels:e.channels}),this.smoothing=e.smoothing,this.normalRange=e.normalRange}static getDefaults(){return Object.assign(MeterBase.getDefaults(),{smoothing:.8,normalRange:!1,channels:1})}getLevel(){return warn("'getLevel' has been changed to 'getValue'"),this.getValue()}getValue(){const e=this._analyser.getValue(),o=(this.channels===1?[e]:e).map(c=>{const d=c.reduce((b,k)=>b+k*k,0),_=Math.sqrt(d/c.length);return this._rms=Math.max(_,this._rms*this.smoothing),this.normalRange?this._rms:gainToDb(this._rms)});return this.channels===1?o[0]:o}get channels(){return this._analyser.channels}dispose(){return super.dispose(),this._analyser.dispose(),this}}class FFT extends MeterBase{constructor(){super(optionsFromArguments(FFT.getDefaults(),arguments,["size"])),this.name="FFT";const e=optionsFromArguments(FFT.getDefaults(),arguments,["size"]);this.normalRange=e.normalRange,this._analyser.type="fft",this.size=e.size}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{normalRange:!1,size:1024,smoothing:.8})}getValue(){return this._analyser.getValue().map(s=>this.normalRange?dbToGain(s):s)}get size(){return this._analyser.size}set size(e){this._analyser.size=e}get smoothing(){return this._analyser.smoothing}set smoothing(e){this._analyser.smoothing=e}getFrequencyOfIndex(e){return assert(0<=e&&es._updateSolo())}get muted(){return this.input.gain.value===0}_addSolo(){Solo._soloed.has(this.context)||Solo._soloed.set(this.context,new Set),Solo._soloed.get(this.context).add(this)}_removeSolo(){Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).delete(this)}_isSoloed(){return Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).has(this)}_noSolos(){return!Solo._soloed.has(this.context)||Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).size===0}_updateSolo(){this._isSoloed()?this.input.gain.value=1:this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),Solo._allSolos.get(this.context).delete(this),this._removeSolo(),this}}Solo._allSolos=new Map;Solo._soloed=new Map;class PanVol extends ToneAudioNode{constructor(){super(optionsFromArguments(PanVol.getDefaults(),arguments,["pan","volume"])),this.name="PanVol";const e=optionsFromArguments(PanVol.getDefaults(),arguments,["pan","volume"]);this._panner=this.input=new Panner({context:this.context,pan:e.pan,channelCount:e.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Volume({context:this.context,volume:e.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=e.mute,readOnly(this,["pan","volume"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}}class Channel extends ToneAudioNode{constructor(){super(optionsFromArguments(Channel.getDefaults(),arguments,["volume","pan"])),this.name="Channel";const e=optionsFromArguments(Channel.getDefaults(),arguments,["volume","pan"]);this._solo=this.input=new Solo({solo:e.solo,context:this.context}),this._panVol=this.output=new PanVol({context:this.context,pan:e.pan,volume:e.volume,mute:e.mute,channelCount:e.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),readOnly(this,["pan","volume"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(e){this._solo.solo=e}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(e){this._panVol.mute=e}_getBus(e){return Channel.buses.has(e)||Channel.buses.set(e,new Gain$1({context:this.context})),Channel.buses.get(e)}send(e,s=0){const o=this._getBus(e),c=new Gain$1({context:this.context,units:"decibels",gain:s});return this.connect(c),c.connect(o),c}receive(e){return this._getBus(e).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}}Channel.buses=new Map;class Mono extends ToneAudioNode{constructor(){super(optionsFromArguments(Mono.getDefaults(),arguments)),this.name="Mono",this.input=new Gain$1({context:this.context}),this._merge=this.output=new Merge({channels:2,context:this.context}),this.input.connect(this._merge,0,0),this.input.connect(this._merge,0,1)}dispose(){return super.dispose(),this._merge.dispose(),this.input.dispose(),this}}class MultibandSplit extends ToneAudioNode{constructor(){super(optionsFromArguments(MultibandSplit.getDefaults(),arguments,["lowFrequency","highFrequency"])),this.name="MultibandSplit",this.input=new Gain$1({context:this.context}),this.output=void 0,this.low=new Filter$1({context:this.context,frequency:0,type:"lowpass"}),this._lowMidFilter=new Filter$1({context:this.context,frequency:0,type:"highpass"}),this.mid=new Filter$1({context:this.context,frequency:0,type:"lowpass"}),this.high=new Filter$1({context:this.context,frequency:0,type:"highpass"}),this._internalChannels=[this.low,this.mid,this.high];const e=optionsFromArguments(MultibandSplit.getDefaults(),arguments,["lowFrequency","highFrequency"]);this.lowFrequency=new Signal({context:this.context,units:"frequency",value:e.lowFrequency}),this.highFrequency=new Signal({context:this.context,units:"frequency",value:e.highFrequency}),this.Q=new Signal({context:this.context,units:"positive",value:e.Q}),this.input.fan(this.low,this.high),this.input.chain(this._lowMidFilter,this.mid),this.lowFrequency.fan(this.low.frequency,this._lowMidFilter.frequency),this.highFrequency.fan(this.mid.frequency,this.high.frequency),this.Q.connect(this.low.Q),this.Q.connect(this._lowMidFilter.Q),this.Q.connect(this.mid.Q),this.Q.connect(this.high.Q),readOnly(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{Q:1,highFrequency:2500,lowFrequency:400})}dispose(){return super.dispose(),writable(this,["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this._lowMidFilter.dispose(),this.mid.dispose(),this.high.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this.Q.dispose(),this}}class Listener$1 extends ToneAudioNode{constructor(){super(...arguments),this.name="Listener",this.positionX=new Param({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new Param({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new Param({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new Param({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new Param({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new Param({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new Param({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new Param({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new Param({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}}onContextInit(a=>{a.listener=new Listener$1({context:a})});onContextClose(a=>{a.listener.dispose()});class Panner3D extends ToneAudioNode{constructor(){super(optionsFromArguments(Panner3D.getDefaults(),arguments,["positionX","positionY","positionZ"])),this.name="Panner3D";const e=optionsFromArguments(Panner3D.getDefaults(),arguments,["positionX","positionY","positionZ"]);this._panner=this.input=this.output=this.context.createPanner(),this.panningModel=e.panningModel,this.maxDistance=e.maxDistance,this.distanceModel=e.distanceModel,this.coneOuterGain=e.coneOuterGain,this.coneOuterAngle=e.coneOuterAngle,this.coneInnerAngle=e.coneInnerAngle,this.refDistance=e.refDistance,this.rolloffFactor=e.rolloffFactor,this.positionX=new Param({context:this.context,param:this._panner.positionX,value:e.positionX}),this.positionY=new Param({context:this.context,param:this._panner.positionY,value:e.positionY}),this.positionZ=new Param({context:this.context,param:this._panner.positionZ,value:e.positionZ}),this.orientationX=new Param({context:this.context,param:this._panner.orientationX,value:e.orientationX}),this.orientationY=new Param({context:this.context,param:this._panner.orientationY,value:e.orientationY}),this.orientationZ=new Param({context:this.context,param:this._panner.orientationZ,value:e.orientationZ})}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:0,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1})}setPosition(e,s,o){return this.positionX.value=e,this.positionY.value=s,this.positionZ.value=o,this}setOrientation(e,s,o){return this.orientationX.value=e,this.orientationY.value=s,this.orientationZ.value=o,this}get panningModel(){return this._panner.panningModel}set panningModel(e){this._panner.panningModel=e}get refDistance(){return this._panner.refDistance}set refDistance(e){this._panner.refDistance=e}get rolloffFactor(){return this._panner.rolloffFactor}set rolloffFactor(e){this._panner.rolloffFactor=e}get distanceModel(){return this._panner.distanceModel}set distanceModel(e){this._panner.distanceModel=e}get coneInnerAngle(){return this._panner.coneInnerAngle}set coneInnerAngle(e){this._panner.coneInnerAngle=e}get coneOuterAngle(){return this._panner.coneOuterAngle}set coneOuterAngle(e){this._panner.coneOuterAngle=e}get coneOuterGain(){return this._panner.coneOuterGain}set coneOuterGain(e){this._panner.coneOuterGain=e}get maxDistance(){return this._panner.maxDistance}set maxDistance(e){this._panner.maxDistance=e}dispose(){return super.dispose(),this._panner.disconnect(),this.orientationX.dispose(),this.orientationY.dispose(),this.orientationZ.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this}}class Recorder extends ToneAudioNode{constructor(){super(optionsFromArguments(Recorder.getDefaults(),arguments)),this.name="Recorder";const e=optionsFromArguments(Recorder.getDefaults(),arguments);this.input=new Gain$1({context:this.context}),assert(Recorder.supported,"Media Recorder API is not available"),this._stream=this.context.createMediaStreamDestination(),this.input.connect(this._stream),this._recorder=new MediaRecorder(this._stream.stream,{mimeType:e.mimeType})}static getDefaults(){return ToneAudioNode.getDefaults()}get mimeType(){return this._recorder.mimeType}static get supported(){return theWindow!==null&&Reflect.has(theWindow,"MediaRecorder")}get state(){return this._recorder.state==="inactive"?"stopped":this._recorder.state==="paused"?"paused":"started"}start(){return __awaiter$f(this,void 0,void 0,function*(){assert(this.state!=="started","Recorder is already started");const e=new Promise(s=>{const o=()=>{this._recorder.removeEventListener("start",o,!1),s()};this._recorder.addEventListener("start",o,!1)});return this._recorder.start(),yield e})}stop(){return __awaiter$f(this,void 0,void 0,function*(){assert(this.state!=="stopped","Recorder is not started");const e=new Promise(s=>{const o=c=>{this._recorder.removeEventListener("dataavailable",o,!1),s(c.data)};this._recorder.addEventListener("dataavailable",o,!1)});return this._recorder.stop(),yield e})}pause(){return assert(this.state==="started","Recorder must be started"),this._recorder.pause(),this}dispose(){return super.dispose(),this.input.dispose(),this._stream.disconnect(),this}}class Compressor extends ToneAudioNode{constructor(){super(optionsFromArguments(Compressor.getDefaults(),arguments,["threshold","ratio"])),this.name="Compressor",this._compressor=this.context.createDynamicsCompressor(),this.input=this._compressor,this.output=this._compressor;const e=optionsFromArguments(Compressor.getDefaults(),arguments,["threshold","ratio"]);this.threshold=new Param({minValue:this._compressor.threshold.minValue,maxValue:this._compressor.threshold.maxValue,context:this.context,convert:!1,param:this._compressor.threshold,units:"decibels",value:e.threshold}),this.attack=new Param({minValue:this._compressor.attack.minValue,maxValue:this._compressor.attack.maxValue,context:this.context,param:this._compressor.attack,units:"time",value:e.attack}),this.release=new Param({minValue:this._compressor.release.minValue,maxValue:this._compressor.release.maxValue,context:this.context,param:this._compressor.release,units:"time",value:e.release}),this.knee=new Param({minValue:this._compressor.knee.minValue,maxValue:this._compressor.knee.maxValue,context:this.context,convert:!1,param:this._compressor.knee,units:"decibels",value:e.knee}),this.ratio=new Param({minValue:this._compressor.ratio.minValue,maxValue:this._compressor.ratio.maxValue,context:this.context,convert:!1,param:this._compressor.ratio,units:"positive",value:e.ratio}),readOnly(this,["knee","release","attack","ratio","threshold"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{attack:.003,knee:30,ratio:12,release:.25,threshold:-24})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.disconnect(),this.attack.dispose(),this.release.dispose(),this.threshold.dispose(),this.ratio.dispose(),this.knee.dispose(),this}}class Gate extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(Gate.getDefaults(),arguments,["threshold","smoothing"]))),this.name="Gate";const e=optionsFromArguments(Gate.getDefaults(),arguments,["threshold","smoothing"]);this._follower=new Follower({context:this.context,smoothing:e.smoothing}),this._gt=new GreaterThan({context:this.context,value:dbToGain(e.threshold)}),this.input=new Gain$1({context:this.context}),this._gate=this.output=new Gain$1({context:this.context}),this.input.connect(this._gate),this.input.chain(this._follower,this._gt,this._gate.gain)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{smoothing:.1,threshold:-40})}get threshold(){return gainToDb(this._gt.value)}set threshold(e){this._gt.value=dbToGain(e)}get smoothing(){return this._follower.smoothing}set smoothing(e){this._follower.smoothing=e}dispose(){return super.dispose(),this.input.dispose(),this._follower.dispose(),this._gt.dispose(),this._gate.dispose(),this}}class Limiter extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(Limiter.getDefaults(),arguments,["threshold"]))),this.name="Limiter";const e=optionsFromArguments(Limiter.getDefaults(),arguments,["threshold"]);this._compressor=this.input=this.output=new Compressor({context:this.context,ratio:20,attack:.003,release:.01,threshold:e.threshold}),this.threshold=this._compressor.threshold,readOnly(this,"threshold")}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{threshold:-12})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.dispose(),this.threshold.dispose(),this}}class MidSideCompressor extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(MidSideCompressor.getDefaults(),arguments))),this.name="MidSideCompressor";const e=optionsFromArguments(MidSideCompressor.getDefaults(),arguments);this._midSideSplit=this.input=new MidSideSplit({context:this.context}),this._midSideMerge=this.output=new MidSideMerge({context:this.context}),this.mid=new Compressor(Object.assign(e.mid,{context:this.context})),this.side=new Compressor(Object.assign(e.side,{context:this.context})),this._midSideSplit.mid.chain(this.mid,this._midSideMerge.mid),this._midSideSplit.side.chain(this.side,this._midSideMerge.side),readOnly(this,["mid","side"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},side:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10}})}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this}}class MultibandCompressor extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(MultibandCompressor.getDefaults(),arguments))),this.name="MultibandCompressor";const e=optionsFromArguments(MultibandCompressor.getDefaults(),arguments);this._splitter=this.input=new MultibandSplit({context:this.context,lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this.lowFrequency=this._splitter.lowFrequency,this.highFrequency=this._splitter.highFrequency,this.output=new Gain$1({context:this.context}),this.low=new Compressor(Object.assign(e.low,{context:this.context})),this.mid=new Compressor(Object.assign(e.mid,{context:this.context})),this.high=new Compressor(Object.assign(e.high,{context:this.context})),this._splitter.low.chain(this.low,this.output),this._splitter.mid.chain(this.mid,this.output),this._splitter.high.chain(this.high,this.output),readOnly(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{lowFrequency:250,highFrequency:2e3,low:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10},mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},high:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16}})}dispose(){return super.dispose(),this._splitter.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.output.dispose(),this}}class EQ3 extends ToneAudioNode{constructor(){super(optionsFromArguments(EQ3.getDefaults(),arguments,["low","mid","high"])),this.name="EQ3",this.output=new Gain$1({context:this.context}),this._internalChannels=[];const e=optionsFromArguments(EQ3.getDefaults(),arguments,["low","mid","high"]);this.input=this._multibandSplit=new MultibandSplit({context:this.context,highFrequency:e.highFrequency,lowFrequency:e.lowFrequency}),this._lowGain=new Gain$1({context:this.context,gain:e.low,units:"decibels"}),this._midGain=new Gain$1({context:this.context,gain:e.mid,units:"decibels"}),this._highGain=new Gain$1({context:this.context,gain:e.high,units:"decibels"}),this.low=this._lowGain.gain,this.mid=this._midGain.gain,this.high=this._highGain.gain,this.Q=this._multibandSplit.Q,this.lowFrequency=this._multibandSplit.lowFrequency,this.highFrequency=this._multibandSplit.highFrequency,this._multibandSplit.low.chain(this._lowGain,this.output),this._multibandSplit.mid.chain(this._midGain,this.output),this._multibandSplit.high.chain(this._highGain,this.output),readOnly(this,["low","mid","high","lowFrequency","highFrequency"]),this._internalChannels=[this._multibandSplit]}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{high:0,highFrequency:2500,low:0,lowFrequency:400,mid:0})}dispose(){return super.dispose(),writable(this,["low","mid","high","lowFrequency","highFrequency"]),this._multibandSplit.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this._lowGain.dispose(),this._midGain.dispose(),this._highGain.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.Q.dispose(),this}}class Convolver extends ToneAudioNode{constructor(){super(optionsFromArguments(Convolver.getDefaults(),arguments,["url","onload"])),this.name="Convolver",this._convolver=this.context.createConvolver();const e=optionsFromArguments(Convolver.getDefaults(),arguments,["url","onload"]);this._buffer=new ToneAudioBuffer(e.url,s=>{this.buffer=s,e.onload()}),this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this._buffer.loaded&&(this.buffer=this._buffer),this.normalize=e.normalize,this.input.chain(this._convolver,this.output)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{normalize:!0,onload:noOp})}load(e){return __awaiter$f(this,void 0,void 0,function*(){this.buffer=yield this._buffer.load(e)})}get buffer(){return this._buffer.length?this._buffer:null}set buffer(e){e&&this._buffer.set(e),this._convolver.buffer&&(this.input.disconnect(),this._convolver.disconnect(),this._convolver=this.context.createConvolver(),this.input.chain(this._convolver,this.output));const s=this._buffer.get();this._convolver.buffer=s||null}get normalize(){return this._convolver.normalize}set normalize(e){this._convolver.normalize=e}dispose(){return super.dispose(),this._buffer.dispose(),this._convolver.disconnect(),this}}function now(){return getContext().now()}function immediate(){return getContext().immediate()}const Transport=getContext().transport;function getTransport(){return getContext().transport}const Destination$1=getContext().destination,Master=getContext().destination;function getDestination$1(){return getContext().destination}const Listener=getContext().listener;function getListener(){return getContext().listener}const Draw=getContext().draw;function getDraw(){return getContext().draw}const context=getContext();function loaded(){return ToneAudioBuffer.loaded()}const Buffer=ToneAudioBuffer,Buffers=ToneAudioBuffers,BufferSource=ToneBufferSource;var _Tone=Object.freeze(Object.defineProperty({__proto__:null,now,immediate,Transport,getTransport,Destination:Destination$1,Master,getDestination:getDestination$1,Listener,getListener,Draw,getDraw,context,loaded,Buffer,Buffers,BufferSource,getContext,setContext,start,supported:isSupported,dbToGain,gainToDb,intervalToFrequencyRatio,ftom,mtof,optionsFromArguments,defaultArg,Clock,Context,BaseContext,Delay,Gain:Gain$1,Offline,OfflineContext,Param,ToneAudioBuffer,ToneAudioBuffers,ToneAudioNode,connectSeries,connect,disconnect,FrequencyClass,Frequency,MidiClass,Midi,TimeClass,Time,TicksClass,Ticks,TransportTimeClass,TransportTime,Emitter,IntervalTimeline,StateTimeline,Timeline,isUndef,isDefined,isFunction,isNumber,isObject,isBoolean,isArray,isString,isNote:isNote$1,Unit:Units,debug:Debug,Noise,UserMedia,Oscillator,AMOscillator,FMOscillator,PulseOscillator,FatOscillator,PWMOscillator,OmniOscillator,ToneOscillatorNode,LFO,ToneBufferSource,Player,Players:Players$1,GrainPlayer,Add,Abs,AudioToGain,GainToAudio,GreaterThan,GreaterThanZero,Multiply,Negate,Pow,Signal,connectSignal,Scale,ScaleExp,Subtract,SyncedSignal,WaveShaper,Zero,AMSynth:AMSynth$1,DuoSynth:DuoSynth$1,FMSynth:FMSynth$1,MetalSynth:MetalSynth$1,MembraneSynth:MembraneSynth$1,MonoSynth:MonoSynth$1,NoiseSynth:NoiseSynth$1,PluckSynth:PluckSynth$1,PolySynth:PolySynth$1,Sampler:Sampler$1,Synth:Synth$1,Loop,Part,Pattern:Pattern$2,Sequence,ToneEvent,AutoFilter:AutoFilter$1,AutoPanner,AutoWah,BitCrusher,Chebyshev,Chorus,Distortion,FeedbackDelay,FrequencyShifter,Freeverb,JCReverb,PingPongDelay,PitchShift,Phaser,Reverb,StereoWidener,Tremolo,Vibrato,Analyser,Meter,FFT,DCMeter,Waveform,Follower,Channel,CrossFade,Merge,MidSideMerge,MidSideSplit,Mono,MultibandSplit,Panner,Panner3D,PanVol,Recorder,Solo,Split,Volume,Compressor,Gate,Limiter,MidSideCompressor,MultibandCompressor,AmplitudeEnvelope,Envelope,FrequencyEnvelope,EQ3,Filter:Filter$1,OnePoleFilter,FeedbackCombFilter,LowpassCombFilter,Convolver,BiquadFilter,version:version$7},Symbol.toStringTag,{value:"Module"})),__awaiter$e=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class PianoComponent extends ToneAudioNode{constructor(e){super(e),this.name="PianoComponent",this.input=void 0,this.output=new Volume({context:this.context}),this._enabled=!1,this.volume=this.output.volume,this._loaded=!1,this.volume.value=e.volume,this._enabled=e.enabled,this.samples=e.samples}get loaded(){return this._loaded}load(){return __awaiter$e(this,void 0,void 0,function*(){if(this._enabled)yield this._internalLoad(),this._loaded=!0;else return Promise.resolve()})}}function midiToNote(a){return Frequency(a,"midi").toNote()}function randomBetween(a,e){return Math.random()*(e-a)+a}function getReleasesUrl(a){return`rel${a-20}.[mp3|ogg]`}function getHarmonicsUrl(a){return`harmS${midiToNote(a).replace("#","s")}.[mp3|ogg]`}function getNotesUrl(a,e){return`${midiToNote(a).replace("#","s")}v${e}.[mp3|ogg]`}const velocitiesMap={1:[8],2:[6,12],3:[1,7,15],4:[1,5,10,15],5:[1,4,8,12,16],6:[1,3,7,10,13,16],7:[1,3,6,9,11,13,16],8:[1,3,5,7,9,11,13,16],9:[1,3,5,7,9,11,13,15,16],10:[1,2,3,5,7,9,11,13,15,16],11:[1,2,3,5,7,9,11,13,14,15,16],12:[1,2,3,4,5,7,9,11,13,14,15,16],13:[1,2,3,4,5,7,9,11,12,13,14,15,16],14:[1,2,3,4,5,6,7,9,11,12,13,14,15,16],15:[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16],16:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]},allNotes=[21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108];function getNotesInRange(a,e){return allNotes.filter(s=>a<=s&&s<=e)}const harmonics=[21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87];function getHarmonicsInRange(a,e){return harmonics.filter(s=>a<=s&&s<=e)}function inHarmonicsRange(a){return harmonics[0]<=a&&a<=harmonics[harmonics.length-1]}class Harmonics extends PianoComponent{constructor(e){super(e),this._urls={};const s=getHarmonicsInRange(e.minNote,e.maxNote);for(const o of s)this._urls[o]=getHarmonicsUrl(o)}triggerAttack(e,s,o){this._enabled&&inHarmonicsRange(e)&&this._sampler.triggerAttack(Midi(e).toNote(),s,o*randomBetween(.5,1))}_internalLoad(){return new Promise(e=>{this._sampler=new Sampler$1({baseUrl:this.samples,onload:e,urls:this._urls}).connect(this.output)})}}class Keybed extends PianoComponent{constructor(e){super(e),this._urls={};for(let s=e.minNote;s<=e.maxNote;s++)this._urls[s]=getReleasesUrl(s)}_internalLoad(){return new Promise(e=>{this._buffers=new ToneAudioBuffers(this._urls,e,this.samples)})}start(e,s,o){this._enabled&&this._buffers.has(e)&&new ToneBufferSource({url:this._buffers.get(e),context:this.context}).connect(this.output).start(s,0,void 0,.015*o*randomBetween(.5,1))}}class Pedal extends PianoComponent{constructor(e){super(e),this._downTime=1/0,this._currentSound=null,this._downTime=1/0}_internalLoad(){return new Promise(e=>{this._buffers=new ToneAudioBuffers({down1:"pedalD1.mp3",down2:"pedalD2.mp3",up1:"pedalU1.mp3",up2:"pedalU2.mp3"},e,this.samples)})}_squash(e){this._currentSound&&this._currentSound.state!=="stopped"&&this._currentSound.stop(e),this._currentSound=null}_playSample(e,s){this._enabled&&(this._currentSound=new ToneBufferSource({url:this._buffers.get(`${s}${Math.random()>.5?1:2}`),context:this.context,curve:"exponential",fadeIn:.05,fadeOut:.1}).connect(this.output),this._currentSound.start(e,randomBetween(0,.01),void 0,.1*randomBetween(.5,1)))}down(e){this._squash(e),this._downTime=e,this._playSample(e,"down")}up(e){this._squash(e),this._downTime=1/0,this._playSample(e,"up")}isDown(e){return e>this._downTime}}class PianoString extends ToneAudioNode{constructor(e){super(e),this.name="PianoString",this._urls={},e.notes.forEach(s=>this._urls[s]=getNotesUrl(s,e.velocity)),this.samples=e.samples}load(){return new Promise(e=>{this._sampler=this.output=new Sampler$1({attack:0,baseUrl:this.samples,curve:"exponential",onload:e,release:.4,urls:this._urls,volume:3})})}triggerAttack(e,s,o){this._sampler.triggerAttack(e,s,o)}triggerRelease(e,s){this._sampler.triggerRelease(e,s)}}var __awaiter$d=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class PianoStrings extends PianoComponent{constructor(e){super(e);const s=getNotesInRange(e.minNote,e.maxNote),o=velocitiesMap[e.velocities].slice();this._strings=o.map(c=>new PianoString(Object.assign(e,{notes:s,velocity:c}))),this._activeNotes=new Map}scale(e,s,o,c,d){return(e-s)/(o-s)*(d-c)+c}triggerAttack(e,s,o){const c=this.scale(o,0,1,-.5,this._strings.length-.51),d=Math.max(Math.round(c),0);let _=1+c-d;this._strings.length===1&&(_=o);const b=this._strings[d];this._activeNotes.has(e)&&this.triggerRelease(e,s),this._activeNotes.set(e,b),b.triggerAttack(Midi(e).toNote(),s,_)}triggerRelease(e,s){this._activeNotes.has(e)&&(this._activeNotes.get(e).triggerRelease(Midi(e).toNote(),s),this._activeNotes.delete(e))}_internalLoad(){return __awaiter$d(this,void 0,void 0,function*(){yield Promise.all(this._strings.map(e=>__awaiter$d(this,void 0,void 0,function*(){yield e.load(),e.connect(this.output)})))})}}var __awaiter$c=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class Piano$1 extends ToneAudioNode{constructor(){super(optionsFromArguments(Piano$1.getDefaults(),arguments)),this.name="Piano",this.input=void 0,this.output=new Gain$1({context:this.context}),this._heldNotes=new Map,this._loaded=!1;const e=optionsFromArguments(Piano$1.getDefaults(),arguments);e.url.endsWith("/")||(e.url+="/"),this.maxPolyphony=e.maxPolyphony,this._heldNotes=new Map,this._sustainedNotes=new Map,this._strings=new PianoStrings(Object.assign({},e,{enabled:!0,samples:e.url,volume:e.volume.strings})).connect(this.output),this.strings=this._strings.volume,this._pedal=new Pedal(Object.assign({},e,{enabled:e.pedal,samples:e.url,volume:e.volume.pedal})).connect(this.output),this.pedal=this._pedal.volume,this._keybed=new Keybed(Object.assign({},e,{enabled:e.release,samples:e.url,volume:e.volume.keybed})).connect(this.output),this.keybed=this._keybed.volume,this._harmonics=new Harmonics(Object.assign({},e,{enabled:e.release,samples:e.url,volume:e.volume.harmonics})).connect(this.output),this.harmonics=this._harmonics.volume}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{maxNote:108,minNote:21,pedal:!0,release:!1,url:"https://tambien.github.io/Piano/audio/",velocities:1,maxPolyphony:32,volume:{harmonics:0,keybed:0,pedal:0,strings:0}})}load(){return __awaiter$c(this,void 0,void 0,function*(){yield Promise.all([this._strings.load(),this._pedal.load(),this._keybed.load(),this._harmonics.load()]),this._loaded=!0})}get loaded(){return this._loaded}pedalDown({time:e=this.immediate()}={}){return this.loaded&&(e=this.toSeconds(e),this._pedal.isDown(e)||this._pedal.down(e)),this}pedalUp({time:e=this.immediate()}={}){if(this.loaded){const s=this.toSeconds(e);this._pedal.isDown(s)&&(this._pedal.up(s),this._sustainedNotes.forEach((o,c)=>{this._heldNotes.has(c)||this._strings.triggerRelease(c,s)}),this._sustainedNotes.clear())}return this}keyDown({note:e,midi:s,time:o=this.immediate(),velocity:c=.8}){return this.loaded&&this.maxPolyphony>this._heldNotes.size+this._sustainedNotes.size?(o=this.toSeconds(o),isString(e)&&(s=Math.round(Midi(e).toMidi())),this._heldNotes.has(s)||(this._heldNotes.set(s,{time:o,velocity:c}),this._strings.triggerAttack(s,o,c))):console.warn("samples not loaded"),this}keyUp({note:e,midi:s,time:o=this.immediate(),velocity:c=.8}){if(this.loaded&&(o=this.toSeconds(o),isString(e)&&(s=Math.round(Midi(e).toMidi())),this._heldNotes.has(s))){const d=this._heldNotes.get(s);this._heldNotes.delete(s);const _=Math.pow(Math.max(o-d.time,.1),.7),b=d.velocity;let k=3/_*b*c;k=Math.max(k,.4),k=Math.min(k,4),this._pedal.isDown(o)?this._sustainedNotes.has(s)||this._sustainedNotes.set(s,o):(this._strings.triggerRelease(s,o),this._harmonics.triggerAttack(s,o,k)),this._keybed.start(s,o,c)}return this}stopAll(){return this.pedalUp(),this._heldNotes.forEach((e,s)=>{this.keyUp({midi:s})}),this}}var events={exports:{}},R=typeof Reflect=="object"?Reflect:null,ReflectApply=R&&typeof R.apply=="function"?R.apply:function a(e,s,o){return Function.prototype.apply.call(e,s,o)},ReflectOwnKeys;R&&typeof R.ownKeys=="function"?ReflectOwnKeys=R.ownKeys:Object.getOwnPropertySymbols?ReflectOwnKeys=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:ReflectOwnKeys=function(e){return Object.getOwnPropertyNames(e)};function ProcessEmitWarning(a){console&&console.warn&&console.warn(a)}var NumberIsNaN=Number.isNaN||function a(e){return e!==e};function EventEmitter(){EventEmitter.init.call(this)}events.exports=EventEmitter;events.exports.once=once;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=void 0;EventEmitter.prototype._eventsCount=0;EventEmitter.prototype._maxListeners=void 0;var defaultMaxListeners=10;function checkListener(a){if(typeof a!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}Object.defineProperty(EventEmitter,"defaultMaxListeners",{enumerable:!0,get:function(){return defaultMaxListeners},set:function(a){if(typeof a!="number"||a<0||NumberIsNaN(a))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+a+".");defaultMaxListeners=a}});EventEmitter.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};EventEmitter.prototype.setMaxListeners=function a(e){if(typeof e!="number"||e<0||NumberIsNaN(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function _getMaxListeners(a){return a._maxListeners===void 0?EventEmitter.defaultMaxListeners:a._maxListeners}EventEmitter.prototype.getMaxListeners=function a(){return _getMaxListeners(this)};EventEmitter.prototype.emit=function a(e){for(var s=[],o=1;o0&&(_=s[0]),_ instanceof Error)throw _;var b=new Error("Unhandled error."+(_?" ("+_.message+")":""));throw b.context=_,b}var k=d[e];if(k===void 0)return!1;if(typeof k=="function")ReflectApply(k,this,s);else for(var $=k.length,j=arrayClone(k,$),o=0;o<$;++o)ReflectApply(j[o],this,s);return!0};function _addListener(a,e,s,o){var c,d,_;if(checkListener(s),d=a._events,d===void 0?(d=a._events=Object.create(null),a._eventsCount=0):(d.newListener!==void 0&&(a.emit("newListener",e,s.listener?s.listener:s),d=a._events),_=d[e]),_===void 0)_=d[e]=s,++a._eventsCount;else if(typeof _=="function"?_=d[e]=o?[s,_]:[_,s]:o?_.unshift(s):_.push(s),c=_getMaxListeners(a),c>0&&_.length>c&&!_.warned){_.warned=!0;var b=new Error("Possible EventEmitter memory leak detected. "+_.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");b.name="MaxListenersExceededWarning",b.emitter=a,b.type=e,b.count=_.length,ProcessEmitWarning(b)}return a}EventEmitter.prototype.addListener=function a(e,s){return _addListener(this,e,s,!1)};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function a(e,s){return _addListener(this,e,s,!0)};function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(a,e,s){var o={fired:!1,wrapFn:void 0,target:a,type:e,listener:s},c=onceWrapper.bind(o);return c.listener=s,o.wrapFn=c,c}EventEmitter.prototype.once=function a(e,s){return checkListener(s),this.on(e,_onceWrap(this,e,s)),this};EventEmitter.prototype.prependOnceListener=function a(e,s){return checkListener(s),this.prependListener(e,_onceWrap(this,e,s)),this};EventEmitter.prototype.removeListener=function a(e,s){var o,c,d,_,b;if(checkListener(s),c=this._events,c===void 0)return this;if(o=c[e],o===void 0)return this;if(o===s||o.listener===s)--this._eventsCount===0?this._events=Object.create(null):(delete c[e],c.removeListener&&this.emit("removeListener",e,o.listener||s));else if(typeof o!="function"){for(d=-1,_=o.length-1;_>=0;_--)if(o[_]===s||o[_].listener===s){b=o[_].listener,d=_;break}if(d<0)return this;d===0?o.shift():spliceOne(o,d),o.length===1&&(c[e]=o[0]),c.removeListener!==void 0&&this.emit("removeListener",e,b||s)}return this};EventEmitter.prototype.off=EventEmitter.prototype.removeListener;EventEmitter.prototype.removeAllListeners=function a(e){var s,o,c;if(o=this._events,o===void 0)return this;if(o.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):o[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete o[e]),this;if(arguments.length===0){var d=Object.keys(o),_;for(c=0;c=0;c--)this.removeListener(e,s[c]);return this};function _listeners(a,e,s){var o=a._events;if(o===void 0)return[];var c=o[e];return c===void 0?[]:typeof c=="function"?s?[c.listener||c]:[c]:s?unwrapListeners(c):arrayClone(c,c.length)}EventEmitter.prototype.listeners=function a(e){return _listeners(this,e,!0)};EventEmitter.prototype.rawListeners=function a(e){return _listeners(this,e,!1)};EventEmitter.listenerCount=function(a,e){return typeof a.listenerCount=="function"?a.listenerCount(e):listenerCount.call(a,e)};EventEmitter.prototype.listenerCount=listenerCount;function listenerCount(a){var e=this._events;if(e!==void 0){var s=e[a];if(typeof s=="function")return 1;if(s!==void 0)return s.length}return 0}EventEmitter.prototype.eventNames=function a(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};function arrayClone(a,e){for(var s=new Array(e),o=0;o>4,j=15&_.data[0],_e=1+j;if(1<_.data.length&&(b=_.data[1],k=2<_.data.length?_.data[2]:void 0),o.nrpnEventsEnabled&&$===o.MIDI_CHANNEL_MESSAGES.controlchange&&(b>=o.MIDI_NRPN_MESSAGES.increment&&b<=o.MIDI_NRPN_MESSAGES.parammsb||b===o.MIDI_NRPN_MESSAGES.entrymsb||b===o.MIDI_NRPN_MESSAGES.entrylsb)){var et={target:this,type:"controlchange",data:_.data,timestamp:_.timeStamp,channel:_e,controller:{number:b,name:this.getCcNameByNumber(b)},value:k};if(et.controller.number===o.MIDI_NRPN_MESSAGES.parammsb&&et.value!=o.MIDI_NRPN_MESSAGES.nullactiveparameter)o._nrpnBuffer[j]=[],o._nrpnBuffer[j][0]=et;else if(o._nrpnBuffer[j].length===1&&et.controller.number===o.MIDI_NRPN_MESSAGES.paramlsb)o._nrpnBuffer[j].push(et);else if(o._nrpnBuffer[j].length!==2||et.controller.number!==o.MIDI_NRPN_MESSAGES.increment&&et.controller.number!==o.MIDI_NRPN_MESSAGES.decrement&&et.controller.number!==o.MIDI_NRPN_MESSAGES.entrymsb)if(o._nrpnBuffer[j].length===3&&o._nrpnBuffer[j][2].number===o.MIDI_NRPN_MESSAGES.entrymsb&&et.controller.number===o.MIDI_NRPN_MESSAGES.entrylsb)o._nrpnBuffer[j].push(et);else if(3<=o._nrpnBuffer[j].length&&o._nrpnBuffer[j].length<=4&&et.controller.number===o.MIDI_NRPN_MESSAGES.parammsb&&et.value===o.MIDI_NRPN_MESSAGES.nullactiveparameter)o._nrpnBuffer[j].push(et);else if(4<=o._nrpnBuffer[j].length&&o._nrpnBuffer[j].length<=5&&et.controller.number===o.MIDI_NRPN_MESSAGES.paramlsb&&et.value===o.MIDI_NRPN_MESSAGES.nullactiveparameter){o._nrpnBuffer[j].push(et);var tt=[];o._nrpnBuffer[j].forEach(function(ot){tt.push(ot.data)});var nt=o._nrpnBuffer[j][0].value<<7|o._nrpnBuffer[j][1].value,it=o._nrpnBuffer[j][2].value;o._nrpnBuffer[j].length===6&&(it=o._nrpnBuffer[j][2].value<<7|o._nrpnBuffer[j][3].value);var rt="";switch(o._nrpnBuffer[j][2].controller.number){case o.MIDI_NRPN_MESSAGES.entrymsb:rt=o._nrpnTypes[0];break;case o.MIDI_NRPN_MESSAGES.increment:rt=o._nrpnTypes[1];break;case o.MIDI_NRPN_MESSAGES.decrement:rt=o._nrpnTypes[2];break;default:throw new Error("The NPRN type was unidentifiable.")}var st={timestamp:et.timestamp,channel:et.channel,type:"nrpn",data:tt,controller:{number:nt,type:rt,name:"Non-Registered Parameter "+nt},value:it};o._nrpnBuffer[j]=[],this._userHandlers.channel[st.type]&&this._userHandlers.channel[st.type][st.channel]&&this._userHandlers.channel[st.type][st.channel].forEach(function(ot){ot(st)})}else o._nrpnBuffer[j]=[];else o._nrpnBuffer[j].push(et)}},c.prototype._parseChannelEvent=function(_){var b,k,$=_.data[0]>>4,j=1+(15&_.data[0]);1<_.data.length&&(b=_.data[1],k=2<_.data.length?_.data[2]:void 0);var _e={target:this,data:_.data,timestamp:_.timeStamp,channel:j};$===o.MIDI_CHANNEL_MESSAGES.noteoff||$===o.MIDI_CHANNEL_MESSAGES.noteon&&k===0?(_e.type="noteoff",_e.note={number:b,name:o._notes[b%12],octave:o.getOctave(b)},_e.velocity=k/127,_e.rawVelocity=k):$===o.MIDI_CHANNEL_MESSAGES.noteon?(_e.type="noteon",_e.note={number:b,name:o._notes[b%12],octave:o.getOctave(b)},_e.velocity=k/127,_e.rawVelocity=k):$===o.MIDI_CHANNEL_MESSAGES.keyaftertouch?(_e.type="keyaftertouch",_e.note={number:b,name:o._notes[b%12],octave:o.getOctave(b)},_e.value=k/127):$===o.MIDI_CHANNEL_MESSAGES.controlchange&&0<=b&&b<=119?(_e.type="controlchange",_e.controller={number:b,name:this.getCcNameByNumber(b)},_e.value=k):$===o.MIDI_CHANNEL_MESSAGES.channelmode&&120<=b&&b<=127?(_e.type="channelmode",_e.controller={number:b,name:this.getChannelModeByNumber(b)},_e.value=k):$===o.MIDI_CHANNEL_MESSAGES.programchange?(_e.type="programchange",_e.value=b):$===o.MIDI_CHANNEL_MESSAGES.channelaftertouch?(_e.type="channelaftertouch",_e.value=b/127):$===o.MIDI_CHANNEL_MESSAGES.pitchbend?(_e.type="pitchbend",_e.value=((k<<7)+b-8192)/8192):_e.type="unknownchannelmessage",this._userHandlers.channel[_e.type]&&this._userHandlers.channel[_e.type][j]&&this._userHandlers.channel[_e.type][j].forEach(function(et){et(_e)})},c.prototype.getCcNameByNumber=function(_){if(!(0<=(_=Math.floor(_))&&_<=119))throw new RangeError("The control change number must be between 0 and 119.");for(var b in o.MIDI_CONTROL_CHANGE_MESSAGES)if(Object.prototype.hasOwnProperty.call(o.MIDI_CONTROL_CHANGE_MESSAGES,b)&&_===o.MIDI_CONTROL_CHANGE_MESSAGES[b])return b},c.prototype.getChannelModeByNumber=function(_){if(!(120<=(_=Math.floor(_))&&status<=127))throw new RangeError("The control change number must be between 120 and 127.");for(var b in o.MIDI_CHANNEL_MODE_MESSAGES)if(Object.prototype.hasOwnProperty.call(o.MIDI_CHANNEL_MODE_MESSAGES,b)&&_===o.MIDI_CHANNEL_MODE_MESSAGES[b])return b},c.prototype._parseSystemEvent=function(_){var b=_.data[0],k={target:this,data:_.data,timestamp:_.timeStamp};b===o.MIDI_SYSTEM_MESSAGES.sysex?k.type="sysex":b===o.MIDI_SYSTEM_MESSAGES.timecode?k.type="timecode":b===o.MIDI_SYSTEM_MESSAGES.songposition?k.type="songposition":b===o.MIDI_SYSTEM_MESSAGES.songselect?(k.type="songselect",k.song=_.data[1]):b===o.MIDI_SYSTEM_MESSAGES.tuningrequest?k.type="tuningrequest":b===o.MIDI_SYSTEM_MESSAGES.clock?k.type="clock":b===o.MIDI_SYSTEM_MESSAGES.start?k.type="start":b===o.MIDI_SYSTEM_MESSAGES.continue?k.type="continue":b===o.MIDI_SYSTEM_MESSAGES.stop?k.type="stop":b===o.MIDI_SYSTEM_MESSAGES.activesensing?k.type="activesensing":b===o.MIDI_SYSTEM_MESSAGES.reset?k.type="reset":k.type="unknownsystemmessage",this._userHandlers.system[k.type]&&this._userHandlers.system[k.type].forEach(function($){$(k)})},d.prototype.send=function(_,b,k){if(!(128<=_&&_<=255))throw new RangeError("The status byte must be an integer between 128 (0x80) and 255 (0xFF).");b===void 0&&(b=[]),Array.isArray(b)||(b=[b]);var $=[];return b.forEach(function(j){var _e=Math.floor(j);if(!(0<=_e&&_e<=255))throw new RangeError("Data bytes must be integers between 0 (0x00) and 255 (0xFF).");$.push(_e)}),this._midiOutput.send([_].concat($),parseFloat(k)||0),this},d.prototype.sendSysex=function(_,b,k){if(!o.sysexEnabled)throw new Error("Sysex message support must first be activated.");return k=k||{},_=[].concat(_),b.forEach(function($){if($<0||127<$)throw new RangeError("The data bytes of a sysex message must be integers between 0 (0x00) and 127 (0x7F).")}),b=_.concat(b,o.MIDI_SYSTEM_MESSAGES.sysexend),this.send(o.MIDI_SYSTEM_MESSAGES.sysex,b,this._parseTimeParameter(k.time)),this},d.prototype.sendTimecodeQuarterFrame=function(_,b){return b=b||{},this.send(o.MIDI_SYSTEM_MESSAGES.timecode,_,this._parseTimeParameter(b.time)),this},d.prototype.sendSongPosition=function(_,b){b=b||{};var k=(_=Math.floor(_)||0)>>7&127,$=127&_;return this.send(o.MIDI_SYSTEM_MESSAGES.songposition,[k,$],this._parseTimeParameter(b.time)),this},d.prototype.sendSongSelect=function(_,b){if(b=b||{},!(0<=(_=Math.floor(_))&&_<=127))throw new RangeError("The song number must be between 0 and 127.");return this.send(o.MIDI_SYSTEM_MESSAGES.songselect,[_],this._parseTimeParameter(b.time)),this},d.prototype.sendTuningRequest=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.tuningrequest,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendClock=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.clock,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendStart=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.start,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendContinue=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.continue,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendStop=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.stop,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendActiveSensing=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.activesensing,[],this._parseTimeParameter(_.time)),this},d.prototype.sendReset=function(_){return _=_||{},this.send(o.MIDI_SYSTEM_MESSAGES.reset,void 0,this._parseTimeParameter(_.time)),this},d.prototype.stopNote=function(_,b,k){if(_==="all")return this.sendChannelMode("allnotesoff",0,b,k);var $=64;return(k=k||{}).rawVelocity?!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=127&&($=k.velocity):!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=1&&($=127*k.velocity),this._convertNoteToArray(_).forEach(function(j){o.toMIDIChannels(b).forEach(function(_e){this.send((o.MIDI_CHANNEL_MESSAGES.noteoff<<4)+(_e-1),[j,Math.round($)],this._parseTimeParameter(k.time))}.bind(this))}.bind(this)),this},d.prototype.playNote=function(_,b,k){var $,j=64;if((k=k||{}).rawVelocity?!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=127&&(j=k.velocity):!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=1&&(j=127*k.velocity),$=this._parseTimeParameter(k.time),this._convertNoteToArray(_).forEach(function(et){o.toMIDIChannels(b).forEach(function(tt){this.send((o.MIDI_CHANNEL_MESSAGES.noteon<<4)+(tt-1),[et,Math.round(j)],$)}.bind(this))}.bind(this)),!isNaN(k.duration)){k.duration<=0&&(k.duration=0);var _e=64;k.rawVelocity?!isNaN(k.release)&&0<=k.release&&k.release<=127&&(_e=k.release):!isNaN(k.release)&&0<=k.release&&k.release<=1&&(_e=127*k.release),this._convertNoteToArray(_).forEach(function(et){o.toMIDIChannels(b).forEach(function(tt){this.send((o.MIDI_CHANNEL_MESSAGES.noteoff<<4)+(tt-1),[et,Math.round(_e)],($||o.time)+k.duration)}.bind(this))}.bind(this))}return this},d.prototype.sendKeyAftertouch=function(_,b,k,$){var j=this;if($=$||{},b<1||16>7&127,tt=127&_e;return o.toMIDIChannels(b).forEach(function(){$.setRegisteredParameter("channelcoarsetuning",j,b,{time:k.time}),$.setRegisteredParameter("channelfinetuning",[et,tt],b,{time:k.time})}),this},d.prototype.setTuningProgram=function(_,b,k){var $=this;if(k=k||{},!(0<=(_=Math.floor(_))&&_<=127))throw new RangeError("The program value must be between 0 and 127");return o.toMIDIChannels(b).forEach(function(){$.setRegisteredParameter("tuningprogram",_,b,{time:k.time})}),this},d.prototype.setTuningBank=function(_,b,k){var $=this;if(k=k||{},!(0<=(_=Math.floor(_)||0)&&_<=127))throw new RangeError("The bank value must be between 0 and 127");return o.toMIDIChannels(b).forEach(function(){$.setRegisteredParameter("tuningbank",_,b,{time:k.time})}),this},d.prototype.sendChannelMode=function(_,b,k,$){if($=$||{},typeof _=="string"){if(!(_=o.MIDI_CHANNEL_MODE_MESSAGES[_]))throw new TypeError("Invalid channel mode message name.")}else if(!(120<=(_=Math.floor(_))&&_<=127))throw new RangeError("Channel mode numerical identifiers must be between 120 and 127.");if((b=Math.floor(b)||0)<0||127>7&127,et=127&j;return o.toMIDIChannels(b).forEach(function(tt){$.send((o.MIDI_CHANNEL_MESSAGES.pitchbend<<4)+(tt-1),[et,_e],$._parseTimeParameter(k.time))}),this},d.prototype._parseTimeParameter=function(_){var b,k=parseFloat(_);return typeof _=="string"&&_.substring(0,1)==="+"?k&&0o.time&&(b=k),b},d.prototype._convertNoteToArray=function(_){var b=[];return Array.isArray(_)||(_=[_]),_.forEach(function(k){b.push(o.guessNoteNumber(k))}),b},a.exports?a.exports=o:e.WebMidi||(e.WebMidi=o)})(commonjsGlobal)})(webmidi_min);var _WebMidi=webmidi_min.exports,__awaiter$b=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class MidiInput extends events.exports.EventEmitter{constructor(e="all"){super(),this.deviceId=e,MidiInput.enabled().then(()=>{_WebMidi.addListener("connected",s=>{s.port.type==="input"&&this._addListeners(s.port)}),_WebMidi.addListener("disconnected",s=>{this._removeListeners(s.port)}),_WebMidi.inputs.forEach(s=>this._addListeners(s))})}_addListeners(e){MidiInput.connectedDevices.has(e.id)||(MidiInput.connectedDevices.set(e.id,e),this.emit("connect",this._inputToDevice(e)),e.addListener("noteon","all",s=>{(this.deviceId==="all"||this.deviceId===e.id)&&this.emit("keyDown",{note:`${s.note.name}${s.note.octave}`,midi:s.note.number,velocity:s.velocity,device:this._inputToDevice(e)})}),e.addListener("noteoff","all",s=>{(this.deviceId==="all"||this.deviceId===e.id)&&this.emit("keyUp",{note:`${s.note.name}${s.note.octave}`,midi:s.note.number,velocity:s.velocity,device:this._inputToDevice(e)})}),e.addListener("controlchange","all",s=>{(this.deviceId==="all"||this.deviceId===e.id)&&s.controller.name==="holdpedal"&&this.emit(s.value?"pedalDown":"pedalUp",{device:this._inputToDevice(e)})}))}_inputToDevice(e){return{name:e.name,id:e.id,manufacturer:e.manufacturer}}_removeListeners(e){if(MidiInput.connectedDevices.has(e.id)){const s=MidiInput.connectedDevices.get(e.id);this.emit("disconnect",this._inputToDevice(s)),MidiInput.connectedDevices.delete(e.id),s.removeListener("noteon"),s.removeListener("noteoff"),s.removeListener("controlchange")}}emit(e,s){return super.emit(e,s)}on(e,s){return super.on(e,s),this}once(e,s){return super.once(e,s),this}off(e,s){return super.off(e,s),this}static enabled(){return __awaiter$b(this,void 0,void 0,function*(){MidiInput._isEnabled||(yield new Promise((e,s)=>{_WebMidi.enable(o=>{o?s(o):(MidiInput._isEnabled=!0,e())})}))})}static getDevices(){return __awaiter$b(this,void 0,void 0,function*(){return yield MidiInput.enabled(),_WebMidi.inputs})}}MidiInput.connectedDevices=new Map;MidiInput._isEnabled=!1;var tonePiano=Object.freeze(Object.defineProperty({__proto__:null,Piano:Piano$1,MidiInput},Symbol.toStringTag,{value:"Module"}));const Tone=_Tone,{AutoFilter,Destination,Filter,Gain,isNote,Synth,PolySynth,MembraneSynth,MetalSynth,MonoSynth,AMSynth,DuoSynth,FMSynth,NoiseSynth,PluckSynth,Sampler,getDestination,Players}=Tone,{Piano}=tonePiano,getDefaultSynth=()=>{const a=new PolySynth().chain(new Gain(.5),getDestination());return a.set({oscillator:{type:"triangle"},envelope:{release:.01}}),a};Pattern$5.prototype.tone=function(a){return this._withHap(e=>{const s=(o,c)=>{var b,k;let d,_=(k=(b=c.context)==null?void 0:b.velocity)!=null?k:.75;if(a instanceof PluckSynth)d=getPlayableNoteValue(c),a.triggerAttack(d,o);else if(a instanceof NoiseSynth)a.triggerAttackRelease(c.duration.valueOf(),o);else if(a instanceof Piano)d=getPlayableNoteValue(c),a.keyDown({note:d,time:o,velocity:_}),a.keyUp({note:d,time:o+c.duration.valueOf(),velocity:_});else if(a instanceof Sampler)d=getPlayableNoteValue(c),a.triggerAttackRelease(d,c.duration.valueOf(),o,_);else if(a instanceof Players){if(!a.has(c.value))throw new Error(`name "${c.value}" not defined for players`);const $=a.player(c.value);$.start(o),$.stop(o+c.duration.valueOf())}else d=getPlayableNoteValue(c),a.triggerAttackRelease(d,c.duration.valueOf(),o,_)};return e.setContext(kt(Dt({},e.context),{instrument:a,onTrigger:s}))})};Pattern$5.prototype.define("tone",(a,e)=>e.tone(a),{composable:!0,patternified:!1});const amsynth=a=>new AMSynth(a),duosynth=a=>new DuoSynth(a),fmsynth=a=>new FMSynth(a),membrane=a=>new MembraneSynth(a),metal=a=>new MetalSynth(a),monosynth=a=>new MonoSynth(a),noise=a=>new NoiseSynth(a),pluck=a=>new PluckSynth(a),polysynth=a=>new PolySynth(a),sampler=(a,e)=>new Promise(s=>{const o=new Sampler(a,()=>s(o),e)}),players=(a,e="")=>(a=e?Object.fromEntries(Object.entries(a).map(([s,o])=>[s,e+o])):a,new Promise(s=>{const o=new Players(a,()=>s(o))})),synth=a=>new Synth(a),piano=async(a={velocities:1})=>{const e=new Piano(a);return await e.load(),e},vol=a=>new Gain(a),lowpass=a=>new Filter(a,"lowpass"),highpass=a=>new Filter(a,"highpass"),adsr=(a,e=.1,s=.4,o=.01)=>({envelope:{attack:a,decay:e,sustain:s,release:o}}),osc=a=>({oscillator:{type:a}}),out=()=>getDestination(),getDrawContext$1=(a="test-canvas")=>{let e=document.querySelector("#"+a);return e||(e=document.createElement("canvas"),e.id=a,e.width=window.innerWidth,e.height=window.innerHeight,e.style="pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0;z-index:5",document.body.prepend(e)),e.getContext("2d")};Pattern$5.prototype.draw=function(a,{from:e,to:s,onQuery:o}){window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation);const c=getDrawContext$1();let d,_=[];const b=k=>{const $=Tone.getTransport().seconds;if(e!==void 0&&s!==void 0){const j=Math.floor($);if(d!==j){d=j;const _e=j+e,et=j+s;setTimeout(()=>{_=this.query(new State(new TimeSpan(_e,et))).filter(Boolean).filter(tt=>tt.part.begin.equals(tt.whole.begin)),o==null||o(_)},0)}}a(c,_,$,k),window.strudelAnimation=requestAnimationFrame(b)};return requestAnimationFrame(b),this};const cleanupDraw=()=>{getDrawContext$1().clearRect(0,0,window.innerWidth,window.innerHeight),window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation),window.strudelScheduler&&clearInterval(window.strudelScheduler)},hideHeader=()=>{document.getElementById("header").style="display:none"};function frame(a){window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation);const e=s=>{const o=Tone.getTransport().seconds;a(s,o),window.strudelAnimation=requestAnimationFrame(e)};requestAnimationFrame(e)}const backgroundImage=function(a,e={}){const s=document.getElementById("code"),o="background-image:url("+a+");background-size:contain;";s.style=o;const{className:c}=s,d=(k,$)=>{({style:()=>s.style=o+";"+$,className:()=>s.className=$+" "+c})[k]()},_=Object.entries(e).filter(([k,$])=>typeof $=="function");Object.entries(e).filter(([k,$])=>typeof $=="string").forEach(([k,$])=>d(k,$)),_.length!==0&&frame((k,$)=>_.forEach(([j,_e])=>{d(j,_e($))}))},cleanupUi=()=>{const a=document.getElementById("code");a&&(a.style="",a.className="grow relative")},WebMidi=_WebMidi;function enableWebMidi(){return new Promise((a,e)=>{if(WebMidi.enabled){a(WebMidi);return}WebMidi.enable(s=>{s&&e(s),a(WebMidi)})})}const outputByName=a=>WebMidi.getOutputByName(a);Pattern$5.prototype.midi=function(a,e=1){var s,o,c;if(isPattern$1((s=a==null?void 0:a.constructor)==null?void 0:s.name))throw new Error(`.midi does not accept Pattern input. Make sure to pass device name with single quotes. Example: .midi('${((c=(o=WebMidi.outputs)==null?void 0:o[0])==null?void 0:c.name)||"IAC Driver Bus 1"}')`);return this._withHap(d=>{const _=(b,k)=>{var tt,nt;let $=k.value;const j=(nt=(tt=k.context)==null?void 0:tt.velocity)!=null?nt:.9;if(!isNote$1($))throw new Error("not a note: "+$);if(!WebMidi.enabled)throw new Error("\u{1F3B9} WebMidi is not enabled. Supported Browsers: https://caniuse.com/?search=webmidi");if(!WebMidi.outputs.length)throw new Error("\u{1F50C} No MIDI devices found. Connect a device or enable IAC Driver.");let _e;if(typeof a=="number"?_e=WebMidi.outputs[a]:typeof a=="string"?_e=outputByName(a):_e=WebMidi.outputs[0],!_e)throw new Error(`\u{1F50C} MIDI device '${a||""}' not found. Use one of ${WebMidi.outputs.map(it=>`'${it.name}'`).join(" | ")}`);const et=WebMidi.time-Tone.getContext().currentTime*1e3;b=b*1e3+et,_e.playNote($,e,{time:b,duration:k.duration.valueOf()*1e3-5,velocity:j})};return d.setContext(kt(Dt({},d.context),{onTrigger:_}))})};var strudelTheme=createTheme({theme:"dark",settings:{background:"#222",foreground:"#75baff",caret:"#ffcc00",selection:"rgba(128, 203, 196, 0.5)",selectionMatch:"#036dd626",lineHighlight:"#8a91991a",gutterBackground:"transparent",gutterForeground:"#676e95"},styles:[{tag:tags.keyword,color:"#c792ea"},{tag:tags.operator,color:"#89ddff"},{tag:tags.special(tags.variableName),color:"#eeffff"},{tag:tags.typeName,color:"#f07178"},{tag:tags.atom,color:"#f78c6c"},{tag:tags.number,color:"#ff5370"},{tag:tags.definition(tags.variableName),color:"#82aaff"},{tag:tags.string,color:"#c3e88d"},{tag:tags.special(tags.string),color:"#f07178"},{tag:tags.comment,color:"#7d8799"},{tag:tags.variableName,color:"#f07178"},{tag:tags.tagName,color:"#ff5370"},{tag:tags.bracket,color:"#a2a1a4"},{tag:tags.meta,color:"#ffcb6b"},{tag:tags.attributeName,color:"#c792ea"},{tag:tags.propertyName,color:"#c792ea"},{tag:tags.className,color:"#decb6b"},{tag:tags.invalid,color:"#ffffff"}]});const setFlash=StateEffect.define(),flashField=StateField.define({create(){return Decoration.none},update(a,e){try{for(let s of e.effects)if(s.is(setFlash))if(s.value){const o=Decoration.mark({attributes:{style:"background-color: #FFCA2880"}});a=Decoration.set([o.range(0,e.newDoc.length)])}else a=Decoration.set([]);return a}catch(s){return console.warn("flash error",s),a}},provide:a=>EditorView.decorations.from(a)}),flash=a=>{a.dispatch({effects:setFlash.of(!0)}),setTimeout(()=>{a.dispatch({effects:setFlash.of(!1)})},200)},setHighlights=StateEffect.define(),highlightField=StateField.define({create(){return Decoration.none},update(a,e){try{for(let s of e.effects)if(s.is(setHighlights)){const o=s.value.map(c=>(c.context.locations||[]).map(({start:d,end:_})=>{const b=c.context.color||"#FFCA28";let k=e.newDoc.line(d.line).from+d.column,$=e.newDoc.line(_.line).from+_.column;const j=e.newDoc.length;return k>j||$>j?void 0:Decoration.mark({attributes:{style:`outline: 1.5px solid ${b};`}}).range(k,$)})).flat().filter(Boolean)||[];a=Decoration.set(o,!0)}return a}catch{return Decoration.set([])}},provide:a=>EditorView.decorations.from(a)}),extensions=[javascript(),strudelTheme,highlightField,flashField];function CodeMirror({value:a,onChange:e,onViewChanged:s,onSelectionChange:o,options:c,editorDidMount:d}){const _=react.exports.useCallback($=>{e==null||e($)},[e]),b=react.exports.useCallback($=>{s==null||s($)},[s]),k=react.exports.useCallback($=>{$.selectionSet&&o&&(o==null||o($.state.selection))},[o]);return React.createElement(React.Fragment,null,React.createElement(ReactCodeMirror,{value:a,onChange:_,onCreateEditor:b,onUpdate:k,extensions}))}function useCycle(a){const{onEvent:e,onQuery:s,onSchedule:o,ready:c=!0,onDraw:d}=a,[_,b]=react.exports.useState(!1),k=1,$=()=>Math.floor(Tone.getTransport().seconds/k),j=(nt=$())=>{const it=new TimeSpan$1(nt,nt+1),rt=(s==null?void 0:s(new State$1(it)))||[];o==null||o(rt,nt);const st=it.begin.valueOf();Tone.getTransport().cancel(st);const ot=(nt+1)*k-.5,at=Math.max(Tone.getTransport().seconds,ot)+.1;Tone.getTransport().schedule(()=>{j(nt+1)},at),rt==null||rt.filter(ht=>{var lt;return ht.part.begin.equals((lt=ht.whole)==null?void 0:lt.begin)}).forEach(ht=>{Tone.getTransport().schedule(lt=>{e(lt,ht,Tone.getContext().currentTime),Tone.Draw.schedule(()=>{d==null||d(lt,ht)},lt)},ht.part.begin.valueOf())})};react.exports.useEffect(()=>{c&&j()},[e,o,s,d,c]);const _e=async()=>{b(!0),await Tone.start(),Tone.getTransport().start("+0.1")},et=()=>{Tone.getTransport().pause(),b(!1)};return{start:_e,stop:et,onEvent:e,started:_,setStarted:b,toggle:()=>_?et():_e(),query:j,activeCycle:$}}function usePostMessage(a){return react.exports.useEffect(()=>(window.addEventListener("message",a),()=>window.removeEventListener("message",a)),[a]),react.exports.useCallback(e=>window.postMessage(e,"*"),[])}let s4=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);const generateHash=a=>encodeURIComponent(btoa(a));function useRepl({tune:a,defaultSynth:e,autolink:s=!0,onEvent:o,onDraw:c}){const d=react.exports.useMemo(()=>s4(),[]),[_,b]=react.exports.useState(a),[k,$]=react.exports.useState(),[j,_e]=react.exports.useState(""),[et,tt]=react.exports.useState(),[nt,it]=react.exports.useState(!1),[rt,st]=react.exports.useState(""),[ot,at]=react.exports.useState(),ht=react.exports.useMemo(()=>_!==k||et,[_,k,et]),lt=react.exports.useCallback(pt=>_e(mt=>mt+`${mt?` -`:""}${pt}`),[]),ut=react.exports.useMemo(()=>{if(k&&!k.includes("strudel disable-highlighting"))return(pt,mt)=>c==null?void 0:c(pt,mt,k)},[k,c]),ct=react.exports.useMemo(()=>k&&k.includes("strudel hide-header"),[k]),dt=react.exports.useMemo(()=>k&&k.includes("strudel hide-console"),[k]),ft=useCycle({onDraw:ut,onEvent:react.exports.useCallback((pt,mt,At)=>{var Ct;try{o==null||o(mt),(Ct=mt.context.logs)!=null&&Ct.length&&mt.context.logs.forEach(lt);const{onTrigger:Ot,velocity:St}=mt.context;if(Ot)Ot(pt,mt,At,1);else if(e){const Tt=getPlayableNoteValue(mt);e.triggerAttackRelease(Tt,mt.duration.valueOf(),pt,St)}else throw new Error("no defaultSynth passed to useRepl.")}catch(Ot){console.warn(Ot),Ot.message="unplayable event: "+(Ot==null?void 0:Ot.message),lt(Ot.message)}},[o,lt,e]),onQuery:react.exports.useCallback(pt=>{try{return(ot==null?void 0:ot.query(pt))||[]}catch(mt){return console.warn(mt),mt.message="query error: "+mt.message,tt(mt),[]}},[ot]),onSchedule:react.exports.useCallback((pt,mt)=>gt(pt,mt),[]),ready:!!ot&&!!k}),yt=usePostMessage(({data:{from:pt,type:mt}})=>{mt==="start"&&pt!==d&&(ft.setStarted(!1),$(void 0))}),_t=react.exports.useCallback(async(pt=_)=>{if(k&&!ht){tt(void 0),ft.start();return}try{it(!0);const mt=await evaluate(pt);ft.start(),yt({type:"start",from:d}),at(()=>mt.pattern),s&&(window.location.hash="#"+encodeURIComponent(btoa(_))),st(generateHash(_)),tt(void 0),$(pt),it(!1)}catch(mt){mt.message="evaluation error: "+mt.message,console.warn(mt),tt(mt)}},[k,ht,_,ft,s,d,yt]),gt=(pt,mt)=>{pt.length};return{hideHeader:ct,hideConsole:dt,pending:nt,code:_,setCode:b,pattern:ot,error:et,cycle:ft,setPattern:at,dirty:ht,log:j,togglePlay:()=>{ft.started?ft.stop():_t()},setActiveCode:$,activateCode:_t,activeCode:k,pushLog:lt,hash:rt}}function cx(...a){return a.filter(Boolean).join(" ")}let highlights=[],lastEnd;function useHighlighting({view:a,pattern:e,active:s}){react.exports.useEffect(()=>{if(a)if(e&&s){let c=function(){try{const d=Tone.getTransport().seconds,b=[Math.max(lastEnd||d,d-1/10),d+1/60];lastEnd=d+1/60,highlights=highlights.filter($=>$.whole.end>d);const k=e.queryArc(...b).filter($=>$.hasOnset());highlights=highlights.concat(k),a.dispatch({effects:setHighlights.of(highlights)})}catch{a.dispatch({effects:setHighlights.of([])})}o=requestAnimationFrame(c)},o=requestAnimationFrame(c);return()=>{cancelAnimationFrame(o)}}else highlights=[],a.dispatch({effects:setHighlights.of([])})},[e,s,a])}function useWebMidi(a){const{ready:e,connected:s,disconnected:o}=a,[c,d]=react.exports.useState(!0),[_,b]=react.exports.useState((WebMidi==null?void 0:WebMidi.outputs)||[]);return react.exports.useEffect(()=>{enableWebMidi().then(()=>{WebMidi.addListener("connected",$=>{b([...WebMidi.outputs]),s==null||s(WebMidi,$)}),WebMidi.addListener("disconnected",$=>{b([...WebMidi.outputs]),o==null||o(WebMidi,$)}),e==null||e(WebMidi),d(!1)}).catch($=>{if($){console.error($),console.warn("Web Midi could not be enabled..");return}})},[e,s,o,_]),{loading:c,outputs:_,outputByName:$=>WebMidi.getOutputByName($)}}var App$1="",logo="/assets/logo.1efda363.svg";const timeCatMini=`stack( +`:""}${pt}`),[]),ut=react.exports.useMemo(()=>{if(k&&!k.includes("strudel disable-highlighting"))return(pt,mt)=>c==null?void 0:c(pt,mt,k)},[k,c]),ct=react.exports.useMemo(()=>k&&k.includes("strudel hide-header"),[k]),dt=react.exports.useMemo(()=>k&&k.includes("strudel hide-console"),[k]),ft=useCycle({onDraw:ut,onEvent:react.exports.useCallback((pt,mt,At)=>{var Ot;try{o==null||o(mt),(Ot=mt.context.logs)!=null&&Ot.length&&mt.context.logs.forEach(lt);const{onTrigger:vt,velocity:Ct}=mt.context;if(vt)vt(pt,mt,At,1);else if(e){const Tt=getPlayableNoteValue(mt);e.triggerAttackRelease(Tt,mt.duration.valueOf(),pt,Ct)}else throw new Error("no defaultSynth passed to useRepl.")}catch(vt){console.warn(vt),vt.message="unplayable event: "+(vt==null?void 0:vt.message),lt(vt.message)}},[o,lt,e]),onQuery:react.exports.useCallback(pt=>{try{return(ot==null?void 0:ot.query(pt))||[]}catch(mt){return console.warn(mt),mt.message="query error: "+mt.message,tt(mt),[]}},[ot]),onSchedule:react.exports.useCallback((pt,mt)=>gt(pt),[]),ready:!!ot&&!!k}),Et=usePostMessage(({data:{from:pt,type:mt}})=>{mt==="start"&&pt!==d&&(ft.setStarted(!1),$(void 0))}),yt=react.exports.useCallback(async(pt=_)=>{if(k&&!ht){tt(void 0),ft.start();return}try{it(!0);const mt=await evaluate(pt);ft.start(),Et({type:"start",from:d}),at(()=>mt.pattern),s&&(window.location.hash="#"+encodeURIComponent(btoa(_))),st(generateHash(_)),tt(void 0),$(pt),it(!1)}catch(mt){mt.message="evaluation error: "+mt.message,console.warn(mt),tt(mt)}},[k,ht,_,ft,s,d,Et]),gt=(pt,mt)=>{pt.length};return{hideHeader:ct,hideConsole:dt,pending:nt,code:_,setCode:b,pattern:ot,error:et,cycle:ft,setPattern:at,dirty:ht,log:j,togglePlay:()=>{ft.started?ft.stop():yt()},setActiveCode:$,activateCode:yt,activeCode:k,pushLog:lt,hash:rt}}function cx(...a){return a.filter(Boolean).join(" ")}let highlights=[],lastEnd;function useHighlighting({view:a,pattern:e,active:s}){react.exports.useEffect(()=>{if(a)if(e&&s){let c=function(){try{const d=Tone.getTransport().seconds,b=[Math.max(lastEnd||d,d-1/10),d+1/60];lastEnd=d+1/60,highlights=highlights.filter($=>$.whole.end>d);const k=e.queryArc(...b).filter($=>$.hasOnset());highlights=highlights.concat(k),a.dispatch({effects:setHighlights.of(highlights)})}catch{a.dispatch({effects:setHighlights.of([])})}o=requestAnimationFrame(c)},o=requestAnimationFrame(c);return()=>{cancelAnimationFrame(o)}}else highlights=[],a.dispatch({effects:setHighlights.of([])})},[e,s,a])}function useWebMidi(a){const{ready:e,connected:s,disconnected:o}=a,[c,d]=react.exports.useState(!0),[_,b]=react.exports.useState((WebMidi==null?void 0:WebMidi.outputs)||[]);return react.exports.useEffect(()=>{enableWebMidi().then(()=>{WebMidi.addListener("connected",$=>{b([...WebMidi.outputs]),s==null||s(WebMidi,$)}),WebMidi.addListener("disconnected",$=>{b([...WebMidi.outputs]),o==null||o(WebMidi,$)}),e==null||e(WebMidi),d(!1)}).catch($=>{if($){console.error($),console.warn("Web Midi could not be enabled..");return}})},[e,s,o,_]),{loading:c,outputs:_,outputByName:$=>WebMidi.getOutputByName($)}}var App$1="",logo="/assets/logo.1efda363.svg";const timeCatMini=`stack( "c3@3 [eb3, g3, [c4 d4]/2]", "c2 g2", "[eb4@5 [f4 eb4 d4]@3] [eb4 c4]/2".slow(8) @@ -1173,7 +1177,16 @@ x=>x.add(7).color('steelblue') .clip(1) .stack(s("bd:1*2,~ sd:0,[~ hh:0]*2")) .out() -.pianoroll({vertical:1})`;var tunes=Object.freeze(Object.defineProperty({__proto__:null,timeCatMini,timeCat,shapeShifted,tetrisMini,whirlyStrudel,swimming,giantSteps,giantStepsReggae,transposedChordsHacked,scaleTranspose,struct,magicSofa,confusedPhone,zeldasRescue,technoDrums,caverave,callcenterhero,primalEnemy,synthDrums,sampleDrums,xylophoneCalling,sowhatelse,barryHarris,blippyRhodes,wavyKalimba,jemblung,risingEnemy,festivalOfFingers,festivalOfFingers2,undergroundPlumber,bridgeIsOver,goodTimes,echoPiano,sml1,speakerman,randomBells,waa,waa2,hyperpop,festivalOfFingers3,bossa,customTrigger,bornagain,meltingsubmarine,swimmingWithSoundfonts,outroMusic,bassFuge},Symbol.toStringTag,{value:"Module"}));const bufferCache={},loadCache={},getCachedBuffer=a=>bufferCache[a],loadBuffer=(a,e)=>(loadCache[a]||(loadCache[a]=fetch(a).then(s=>s.arrayBuffer()).then(async s=>{const o=await e.decodeAudioData(s);return bufferCache[a]=o,o})),loadCache[a]),getLoadedBuffer=a=>bufferCache[a],githubCache={};let sampleCache={current:void 0};const loadGithubSamples=async(a,e)=>{const s="loadGithubSamples "+a,o=localStorage.getItem(s);if(o&&(console.log("[sampler]: loaded sample list from localstorage",a),githubCache[a]=JSON.parse(o)),githubCache[a])return sampleCache.current=githubCache[a],githubCache[a];console.log("[sampler]: fetching sample list from github",a);try{const[c,d,..._]=a.split("/"),b=`https://api.github.com/repos/${c}/${d}/contents`,k=await fetch(`${b}/${_.join("/")}`).then($=>$.json());githubCache[a]=(await Promise.all(k.map(async({name:$,path:j})=>({name:$,content:await fetch(`${b}/${j}`).then(_e=>_e.json()).catch(_e=>{console.error("could not load path",_e)})})))).filter(({content:$})=>!!$).reduce(($,{name:j,content:_e})=>kt(Dt({},$),{[(e==null?void 0:e(j))||j]:_e.map(({download_url:et})=>et)}),{})}catch(c){console.error("[sampler]: failed to fetch sample list from github",c);return}return sampleCache.current=githubCache[a],localStorage.setItem(s,JSON.stringify(sampleCache.current)),console.log("[sampler]: loaded samples:",sampleCache.current),githubCache[a]},samples=(a,e=a._base||"")=>{sampleCache.current=Dt(Dt({},sampleCache.current),Object.fromEntries(Object.entries(a).map(([s,o])=>{if(typeof o=="string"&&(o=[o]),typeof o!="object")throw new Error("wrong sample map format for "+s);e=o._base||e;const c=d=>(e+d).replace("github:","https://raw.githubusercontent.com/");return Array.isArray(o)?[s,o.map(c)]:[s,Object.fromEntries(Object.entries(o).map(([d,_])=>[d,(typeof _=="string"?[_]:_).map(c)]))]})))},resetLoadedSamples=()=>{sampleCache.current=void 0},getLoadedSamples$1=()=>sampleCache.current,{Pattern:Pattern$1}=strudel;let audioContext;const getAudioContext=()=>(audioContext||(audioContext=new AudioContext),audioContext),getFilter=(a,e,s)=>{const o=getAudioContext().createBiquadFilter();return o.type=a,o.frequency.value=e,o.Q.value=s,o},getADSR=(a,e,s,o,c,d,_)=>{const b=getAudioContext().createGain();return b.gain.setValueAtTime(0,d),b.gain.linearRampToValueAtTime(c,d+a),b.gain.linearRampToValueAtTime(s*c,d+a+e),b.gain.setValueAtTime(s*c,_),b.gain.linearRampToValueAtTime(0,_+o),b},getOscillator=({s:a,freq:e,t:s,duration:o,release:c})=>{const d=getAudioContext().createOscillator();return d.type=a||"triangle",d.frequency.value=Number(e),d.start(s),d.stop(s+o+c),d},getSoundfontKey=a=>{var o,c,d,_;if(!globalThis.soundfontList)return!1;if((c=(o=globalThis.soundfontList)==null?void 0:o.instruments)!=null&&c.includes(a))return a;const e=(_=(d=globalThis.soundfontList)==null?void 0:d.instrumentNames)==null?void 0:_.indexOf(a),s=e<10?`00${e}`:e<100?`0${e}`:e;if(e!==-1)return globalThis.soundfontList.instruments.find(b=>b.startsWith(s))},getSampleBufferSource=async(a,e,s)=>{let o=0;s&&(o=toMidi$1(s)-36);const c=getAudioContext(),d=getLoadedSamples();if(!d)throw new Error("no samples loaded");const _=d==null?void 0:d[a];if(!_)throw new Error("sample not found:",a,"try one of "+Object.keys(d));if(typeof _!="object")throw new Error("wrong format for sample bank:",a);let b;if(Array.isArray(_))b=_[e%_.length];else{if(!s)throw new Error("no note(...) set for sound",a);const _e=tt=>toMidi$1(tt)-toMidi$1(s),et=Object.keys(_).filter(tt=>!tt.startsWith("_")).reduce((tt,nt,it)=>!tt||Math.abs(_e(nt)){if(!a.includes(":"))return[a,e];let[s,o]=a.split(":");return isNaN(Number(o))?[a,e]:[s,o]};Pattern$1.prototype.out=function(){return this.onTrigger(async(a,e,s)=>{try{const o=getAudioContext();a=o.currentTime+a-s;let{freq:c,s:d,sf:_,clip:b=0,n:k=0,note:$,gain:j=1,cutoff:_e,resonance:et=1,hcutoff:tt,hresonance:nt=1,bandf:it,bandq:rt=1,pan:st,attack:ot=.001,decay:at=.05,sustain:ht=.5,release:lt=.001,speed:ut=1,begin:ct=0,end:dt=1}=e.value;const{velocity:ft=1}=e.context;j*=ft;const yt=[];if(typeof d=="string"&&([d,k]=splitSN(d,k)),typeof $=="string"&&([$,k]=splitSN($,k)),!d||["sine","square","triangle","sawtooth"].includes(d)){k=$||k,typeof k=="string"&&(k=toMidi$1(k)),!c&&typeof k=="number"&&(c=fromMidi(k));const gt=getOscillator({t:a,s:d,freq:c,duration:e.duration,release:lt});yt.push(gt);const Et=o.createGain();Et.gain.value=.3,yt.push(Et);const pt=getADSR(ot,at,ht,lt,1,a,a+e.duration);yt.push(pt)}else{if(ut===0)return;if(!d){console.warn("no sample specified");return}const gt=getSoundfontKey(d);let Et;try{gt?Et=await globalThis.getFontBufferSource(gt,$||k,o):Et=await getSampleBufferSource(d,k,$)}catch(At){console.warn(At);return}if(o.currentTime>a){console.warn("sample still loading:",d,k);return}if(!Et){console.warn("no buffer source");return}Et.playbackRate.value=Math.abs(ut)*Et.playbackRate.value;let pt=gt||b?e.duration:Et.buffer.duration;const mt=ct*pt;if(pt=(dt-ct)*pt/Math.abs(ut),gt||b?Et.start(a,mt):Et.start(a,mt,pt),yt.push(Et),gt||b){const At=o.createGain(),Ct=.1;At.gain.value=.6,At.gain.setValueAtTime(At.gain.value,a+pt),At.gain.linearRampToValueAtTime(0,a+pt+Ct),yt.push(At),Et.stop(a+pt+Ct)}else Et.stop(a+pt)}const _t=o.createGain();if(_t.gain.value=j,yt.push(_t),_e!==void 0&&yt.push(getFilter("lowpass",_e,et)),tt!==void 0&&yt.push(getFilter("highpass",tt,nt)),it!==void 0&&yt.push(getFilter("bandpass",it,rt)),st!==void 0){const gt=o.createStereoPanner();gt.pan.value=2*st-1,yt.push(gt)}yt.push(o.destination),yt.slice(1).reduce((gt,Et)=>gt.connect(Et),yt[0])}catch(o){console.warn(".out error:",o)}})};function prebake(){samples({piano:{A0:"A0v8.mp3",C1:"C1v8.mp3",Ds1:"Ds1v8.mp3",Fs1:"Fs1v8.mp3",A1:"A1v8.mp3",C2:"C2v8.mp3",Ds2:"Ds2v8.mp3",Fs2:"Fs2v8.mp3",A2:"A2v8.mp3",C3:"C3v8.mp3",Ds3:"Ds3v8.mp3",Fs3:"Fs3v8.mp3",A3:"A3v8.mp3",C4:"C4v8.mp3",Ds4:"Ds4v8.mp3",Fs4:"Fs4v8.mp3",A4:"A4v8.mp3",C5:"C5v8.mp3",Ds4:"Ds4v8.mp3",Fs5:"Fs5v8.mp3",A5:"A5v8.mp3",C6:"C6v8.mp3",Ds6:"Ds6v8.mp3",Fs6:"Fs6v8.mp3",A6:"A6v8.mp3",C7:"C7v8.mp3",Ds7:"Ds7v8.mp3",Fs7:"Fs7v8.mp3",A7:"A7v8.mp3",C8:"C8v8.mp3"}},"./piano/"),fetch("EmuSP12.json").then(a=>a.json()).then(a=>samples(a,"./EmuSP12/"))}const maxPan=toMidi$1("C8"),panwidth=(a,e)=>a*e+(1-e)/2;Pattern$5.prototype.piano=function(){return this.clip(1).s("piano").fmap(a=>{const e=panwidth(Math.min(toMidi$1(a.note)/maxPan,1),.5);return kt(Dt({},a),{pan:(a.pan||1)*e})})};var WebDirtPacked$1={exports:{}};(function(a,e){(function(s,o){a.exports=o()})(self,()=>(()=>{var s={d:($,j)=>{for(var _e in j)s.o(j,_e)&&!s.o($,_e)&&Object.defineProperty($,_e,{enumerable:!0,get:j[_e]})},o:($,j)=>Object.prototype.hasOwnProperty.call($,j),r:$=>{typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty($,Symbol.toStringTag,{value:"Module"}),Object.defineProperty($,"__esModule",{value:!0})}},o={};function c($,j){if(this.msg=$,this.ac=j.ac,this.sampleBank=j.sampleBank,this.outputNode=j.destination,this.cutGroups=j.cutGroups,this.eventCounter=j.eventCounter,this.audioOutputs=j.audioOutputs,this.workletsAvailable=j.workletsAvailable,typeof $.buffer=="object")this.bufferContainer=$.buffer;else{if(this.sampleBank==null)return void console.log("WebDirt: there is no sample bank, cancelling event");if(typeof this.sampleBank!="object")return void console.log("WebDirt: buffer not provided by calling application + no WebDirt sample bank");if(this.msg.n=parseInt(this.msg.n),isNaN(this.msg.n)&&(this.msg.n=0),!this.sampleBank.sampleNameExists(this.msg.s))return void console.log("WebDirt: no sample named "+this.msg.s+" exists in sample map");if(!this.sampleBank.getBufferMightSucceed(this.msg.s,this.msg.n))return}if(this.when=this.msg.when,isNaN(this.when))console.log("WebDirt: 'when' is null or not a number");else if(this.nudge=parseFloat(this.msg.nudge),isNaN(this.nudge)||(this.when=this.when+this.nudge),isNaN(parseFloat(this.msg.speed))&&(this.msg.speed=1),this.msg.speed!=0)if(isNaN(parseFloat(this.msg.note))&&(this.msg.note=0),this.msg.speed=this.msg.speed*Math.pow(2,this.msg.note/12),this.msg.begin=d(this.msg.begin,0),this.msg.end=d(this.msg.end,1),this.msg.end!=this.msg.begin){if(this.msg.begin>this.msg.end&&(this.msg.speed=-1*this.msg.speed),this.msg.speed<0&&(this.msg.begin=1-this.msg.begin,this.msg.end=1-this.msg.end),this.msg.begin>this.msg.end){let dt=this.msg.begin;this.msg.begin=this.msg.end,this.msg.end=dt}var _e;if(this.source=_e=this.ac.createBufferSource(),this.source.onended=this.disconnectHandler(),this.disconnectOnEnd(this.source),this.source.playbackRate.value=Math.abs(this.msg.speed),this.prepareBuffer(),this.buffer!=null)this.source.buffer=this.buffer,this.start();else{var et=this,tt=1e3*(this.msg.when-this.ac.currentTime-.2);tt<=0&&(tt=1e3*(this.msg.when-this.ac.currentTime-.2)),tt>0&&setTimeout(function(){et.prepareBuffer(),et.buffer!=null?(et.source.buffer=et.buffer,et.start()):(console.log("WebDirt: unable to access sample "+$.s+":"+$.n+" on second attempt"),et.stopAll())},tt)}this.cut(this.msg.cut,this.msg.s),_e=this.shape(_e,this.msg.shape),_e=this.lowPassFilter(_e,this.msg.cutoff,this.msg.resonance),_e=this.highPassFilter(_e,this.msg.hcutoff,this.msg.hresonance),_e=this.bandPassFilter(_e,this.msg.bandf,this.msg.bandq),_e=this.vowel(_e,this.msg.vowel),_e=this.delay(_e,this.msg.delay,this.msg.delaytime,this.msg.delayfeedback),_e=this.loop(_e,this.msg.loop,this.msg.begin,this.msg.end,this.msg.speed),_e=this.crush(_e,this.msg.crush),_e=this.coarse(_e,this.msg.coarse),this.unit(this.msg.unit,this.msg.speed);var nt=parseFloat(this.msg.gain);isNaN(nt)&&(nt=1),nt>2&&(nt=2),nt<0&&(nt=0);var it=parseFloat(this.msg.overgain);isNaN(it)||(nt+=it),nt=Math.pow(nt,4);var rt,st,ot,at=parseFloat($.pan);if(isNaN(at)&&(at=.5),this.audioOutputs==2)(at>1||at<0)&&(at-=Math.floor(at)),rt=at,st=0,ot=1;else{var ht=(at-=Math.floor(at))*this.audioOutputs;(ot=(st=Math.floor(ht))+1)>=this.audioOutputs&&(ot=0),rt=ht-Math.floor(ht)}var lt=this.ac.createGain();this.disconnectOnEnd(lt);var ut=this.ac.createGain();this.disconnectOnEnd(ut),lt.gain.value=Math.cos(rt*Math.PI/2)*nt,ut.gain.value=Math.sin(rt*Math.PI/2)*nt,_e.connect(lt),_e.connect(ut),this.gain1=lt,this.gain2=ut;var ct=this.ac.createChannelMerger(this.audioOutputs);this.disconnectOnEnd(ct),lt.connect(ct,0,st),ut.connect(ct,0,ot),ct.connect(this.outputNode)}else this.stopAll()}function d($,j){let _e=parseFloat($);return isNaN(_e)?j:_e>1?1:_e<0?0:_e}s.r(o),s.d(o,{WebDirt:()=>k}),c.prototype.prepareBuffer=function(){typeof this.bufferContainer=="object"?typeof this.bufferContainer.buffer=="object"&&(this.msg.speed>=0?this.buffer=this.bufferContainer.buffer:(typeof this.bufferContainer.reverseBuffer=="object"||(this.bufferContainer.reverseBuffer=this.reverseBuffer(this.ac,this.bufferContainer.buffer)),this.buffer=this.bufferContainer.reverseBuffer)):(this.msg.speed>=0?this.buffer=this.sampleBank.getBuffer(this.msg.s,this.msg.n):this.buffer=this.sampleBank.getReverseBuffer(this.msg.s,this.msg.n),this.buffer=this.accel(this.buffer,this.msg.accelerate,this.msg.speed))},c.prototype.disconnectOnEnd=function($){this.source.disconnectQueue==null&&(this.source.disconnectQueue=new Array),this.source.disconnectQueue.unshift($)},c.prototype.start=function(){let $=Math.abs(this.msg.speed),j=(this.msg.end-this.msg.begin)*this.source.buffer.duration/$,_e=this.msg.begin*this.source.buffer.duration;this.source.start(this.when,_e,j)},c.prototype.stopAll=function(){if(this.source!=null&&this.source.disconnectQueue!=null){for(var $=0;$1&&this.workletsAvailable){var _e=new AudioWorkletNode(this.ac,"coarse-processor");return _e.parameters.get("coarse").value=j,$.connect(_e),this.disconnectOnEnd(_e),_e}return $},c.prototype.crush=function($,j){if(j=parseInt(j),isNaN(j)&&(j=null),j!=null&&j>0&&this.workletsAvailable){var _e=new AudioWorkletNode(this.ac,"crush-processor");return _e.parameters.get("crush").value=j,$.connect(_e),this.disconnectOnEnd(_e),_e}return $},c.prototype.cut=function($,j){if($=parseInt($),!isNaN($)&&$!=0){for(var _e={cutGroup:$,node:this,sampleName:j},et=0;et2e4&&(j=2e4),isNaN(parseFloat(_e))&&(_e=0),_e<0&&(_e=0),_e>1&&(_e=1),_e=1/(_e=1-.999*(_e*=_e));var et=this.ac.createBiquadFilter();return this.disconnectOnEnd(et),et.type="highpass",et.frequency.value=j,et.Q.value=_e,$.connect(et),et},c.prototype.lowPassFilter=function($,j,_e){if(isNaN(parseFloat(j))&&isNaN(parseFloat(_e)))return $;isNaN(parseFloat(j))&&(j=440),j<20&&(j=20),j>2e4&&(j=2e4),isNaN(parseFloat(_e))&&(_e=0),_e<0&&(_e=0),_e>1&&(_e=1),_e=1/(_e=1-.999*(_e*=_e));var et=this.ac.createBiquadFilter();return this.disconnectOnEnd(et),et.type="lowpass",et.frequency.value=j,et.Q.value=_e,$.connect(et),et},c.prototype.bandPassFilter=function($,j,_e){if(isNaN(parseFloat(j))&&isNaN(parseFloat(_e)))return $;isNaN(parseFloat(j))&&(j=440),j<20&&(j=20),j>2e4&&(j=2e4),isNaN(parseFloat(_e))&&(_e=10),_e<1&&(_e=1),_e>100&&(_e=100);var et=this.ac.createBiquadFilter();return this.disconnectOnEnd(et),et.type="bandpass",et.frequency.value=j,et.Q.value=_e,et.gain.value=_e,$.connect(et),et},c.prototype.loop=function($,j){if(isNaN(parseInt(j))||j==0)return $;try{var _e=this.source.buffer.duration-this.msg.begin*this.source.buffer.duration-(1-this.msg.end)*this.source.buffer.duration;return this.source.loop=!0,this.source.loopStart=this.msg.begin*this.source.buffer.duration,this.source.loopEnd=this.msg.end*this.source.buffer.duration,this.source.stop(this.when+_e*j/this.source.playbackRate.value),$}catch{return console.log("WebDirt Warning: buffer data not yet available to calculate loop time - no looping applied"),$}},c.prototype.accelerate=function($,j){if(j=Math.abs(j),isNaN(parseFloat($))&&($=0),$!=0){$=parseFloat($),this.source.playbackRate.setValueAtTime(j,this.when);var _e=Math.abs((this.source.buffer.length*$/this.ac.sampleRate+j)/j),et=j+this.source.buffer.length*$/this.ac.sampleRate;if(et<0)this.source.buffer=this.negativeAccelerateBuffer(this.source.buffer,$,j),this.source.playbackRate.linearRampToValueAtTime(0,this.when+_e),this.source.playbackRate.linearRampToValueAtTime(1,this.when+this.source.buffer.duration);else try{this.source.playbackRate.linearRampToValueAtTime(et,this.when+this.source.buffer.duration)}catch{console.log("WebDirt: Warning, buffer data not loaded, could not apply acclerate effect")}}},c.prototype.negativeAccelerateBuffer=function($,j,_e){var et=$.length,tt=new Float32Array(et),nt=this.ac.createBuffer($.numberOfChannels,$.length,this.ac.sampleRate),it=new Float32Array(et),rt=Math.abs(_e/(_e-j))*et;rt=et*Math.abs((this.source.buffer.length*j/this.ac.sampleRate+_e)/_e)/this.source.buffer.duration,rt=Math.trunc(rt);for(var st=0;st<$.numberOfChannels;st++){$.copyFromChannel(tt,st,0);for(var ot=0;ot=1&&(j=.999),j>0&&this.workletsAvailable){var _e=new AudioWorkletNode(this.ac,"shape-processor");return _e.parameters.get("shape").value=j,$.connect(_e),this.disconnectOnEnd(_e),_e}return $},c.prototype.stop=function($){this.gain1.gain.setValueAtTime(this.gain1.gain.value,$),this.gain1.gain.linearRampToValueAtTime(0,$+.02),this.gain2.gain.setValueAtTime(this.gain1.gain.value,$),this.gain2.gain.linearRampToValueAtTime(0,$+.02)},c.prototype.unit=function($,j){$=="c"&&(this.source.playbackRate.value=this.source.playbackRate.value*this.source.buffer.duration)},c.prototype.vowel=function($,j){if(typeof j!="string")return $;if((j=j.toLowerCase())=="a"||j=="e"||j=="i"||j=="o"||j=="u"){var _e,et,tt,nt=this.ac.createGain();switch(this.disconnectOnEnd(nt),j){case"a":_e=_.a.freqs,et=_.a.qs,tt=_.a.amps;break;case"e":_e=_.e.freqs,et=_.e.qs,tt=_.e.amps;break;case"i":_e=_.i.freqs,et=_.i.qs,tt=_.i.amps;break;case"o":_e=_.o.freqs,et=_.o.qs,tt=_.o.amps;break;case"u":_e=_.u.freqs,et=_.u.qs,tt=_.u.amps}for(var it=0;it<5;it++){var rt=this.ac.createGain();this.disconnectOnEnd(rt),rt.gain.value=tt[it];var st=this.ac.createBiquadFilter();this.disconnectOnEnd(st),st.type="bandpass",st.Q.value=et[it]/8,st.frequency.value=_e[it],$.connect(st),st.connect(rt),rt.connect(nt)}return nt.gain.value=8,nt}return $},c.prototype.reverseBuffer=function($,j){for(var _e=j.length,et=new Float32Array(_e),tt=$.createBuffer(j.numberOfChannels,j.length,$.sampleRate),nt=new Float32Array(_e),it=0;it{console.log("WebDirt: audio worklets added"),this.workletsAvailable=!0}).catch(j=>{console.log("WebDirt: error loading AudioWorklets.js: "+j),console.log("(WebDirt should still work but shape, coarse, and crush will have no effect)"),this.workletsAvailable=!1}):(console.log("WebDirt: browser does not support audio worklets"),console.log("(WebDirt should still work but shape, coarse, and crush will have no effect)"),this.workletsAvailable=!1),this.tempo={time:this.ac.currentTime,beats:0,bpm:30},this.clockDiff=Date.now()/1e3-this.ac.currentTime,this.sampleBank!=null&&(this.sampleBank.ac=this.ac),this.silentNote=this.ac.createOscillator(),this.silentNote.type="sine",this.silentNote.frequency.value=440,this.silentGain=this.ac.createGain(),this.silentGain.gain.value=0,this.silentNote.connect(this.silentGain),this.silentGain.connect(this.ac.destination),this.silentNote.start();var $=this;setTimeout(function(){$.silentGain.disconnect($.ac.destination),$.silentNote.disconnect($.silentGain),$.silentNote.stop(),$.silentGain=null,$.silentNote=null},500)}console.log("WebDirt: initializeWebAudio finished.")},k.prototype.playSample=function($,j){if(j==null&&(j=this.latency),$.whenPosix!=null&&($.when=$.whenPosix-(new Date().getTime()/1e3-this.ac.currentTime)),$.when==null&&($.when=this.ac.currentTime),$.when=$.when+j,typeof $.maxLateness!="number"&&($.maxLateness=this.maxLateness),this.ac.currentTime-$.when>$.maxLateness)return void console.log("WebDirt warning: dropping msg late by "+(this.ac.currentTime-$.when)+" seconds");let _e=new c($,this);return this.eventCounter++,_e},k.prototype.playScore=function($,j,_e){this.initializeWebAudio(),j==null&&(j=this.latency);for(var et=this.ac.currentTime,tt=0,nt=0;nt<$.length;nt++){var it=$[nt];it.when>tt&&(tt=it.when),it.when=it.when+et,it.s!=null&&(it.sample_name=it.s),it.n!=null&&(it.sample_n=it.n),this.playSample(it,j)}setTimeout(function(){typeof _e=="function"&&_e()},1e3*(tt+j))},k.prototype.playScoreWhenReady=function($,j,_e,et){this.initializeWebAudio(),j==null&&(j=this.latency);for(var tt=$.length,nt=0;nt<$.length;nt++){var it=$[nt],rt=this;it.s!=null&&(it.sample_name=it.s),it.n!=null&&(it.sample_n=it.n),this.sampleBank!=null&&this.sampleBank.load(it.sample_name,it.sample_n,function(){(tt-=1)<=0&&(rt.playScore($,j,et),typeof _e=="function"&&_e())})}},k.prototype.loadAndPlayScore=function($,j,_e,et){this.initializeWebAudio(),j==null&&(j=this.latency);var tt=new XMLHttpRequest;tt.open("GET",$,!0),tt.responseType="json";var nt=this;tt.onload=function(){if(tt.readyState!=4)throw Error("readyState != 4 in callback of loadAndPlayScore");if(tt.status!=200)throw Error("status != 200 in callback of loadAndPlayScore");if(tt.response==null)throw Error("JSON response null in callback of loadAndPlayScore");console.log("playing JSON score from "+$),nt.playScoreWhenReady(tt.response,j,_e,et)},tt.send()},k.prototype.renderAndPlayScore=function($,j,_e,et,tt,nt,it){this.initializeWebAudio(),tt==null&&(tt=this.latency),window.WebSocket=window.WebSocket||window.MozWebSocket,console.log("WebDirt.renderAndPlayScore: attempting websocket connection to "+$);var rt=new WebSocket($);rt.onerror=function(){console.log(" ERROR opening websocket connection to "+$)},rt.onopen=function(){console.log(" websocket connection to "+$+" established");try{var ot='{"render":'+JSON.stringify(j)+',"cps":'+_e+',"cycles":'+et+"}";console.log(ot),rt.send(ot),console.log(" render request sent")}catch{console.log(" EXCEPTION during transmission of render request"),rt.close()}};var st=this;rt.onmessage=function(ot){var at=JSON.parse(ot.data);if(!at instanceof Array)return console.log(" WebDirt warning: rendering socket received non-array message"),console.log(typeof at),void(globalX=at);console.log(" received score from "+$),st.playScoreWhenReady(at,tt,nt,it),console.log(" closing websocket connection to "+$),rt.close()}},k.prototype.subscribeToTidalSocket=function($,j){this.initializeWebAudio(),j==null&&(j=!1),window.WebSocket=window.WebSocket||window.MozWebSocket,console.log("WebDirt: attempting websocket connection to "+$),ws=new WebSocket($),ws.onopen=function(){console.log("websocket connection to tidalSocket opened")},ws.onerror=function(){console.log("ERROR opening websocket connection to tidalSocket")};var _e=this;ws.onmessage=function(et){if(et.data==null)throw Error("null data in tidalSocket onmessage handler");var tt=JSON.parse(et.data);if(tt.address==null)throw Error("received message from tidalSocket with no address: "+et.data);if(tt.address!="/play")throw Error("address of message from tidalSocket wasn't /play: "+et.data);if(tt.args.constructor!==Array)throw Error("ERROR: message from tidalSocket where args doesn't exist or isn't an array: "+et.data);if(tt.args.length!=30&&tt.args.length!=33)throw Error("ERROR: message from tidalSocket with "+tt.args.length+" args instead of 30 or 33: "+et.data);var nt={};nt.when=tt.args[0]+tt.args[1]/1e6+_e.clockDiff,nt.sample_name=tt.args[3],nt.begin=tt.args[5],nt.end=tt.args[6],nt.speed=tt.args[7],nt.pan=tt.args[8],nt.vowel=tt.args[10],nt.cutoff=tt.args[11],nt.resonance=tt.args[12],nt.accelerate=tt.args[13],nt.shape=tt.args[14],nt.gain=tt.args[16],nt.cut=tt.args[17],nt.delay=tt.args[18],nt.delaytime=tt.args[19],nt.delayfeedback=tt.args[20],nt.crush=tt.args[21],nt.coarse=tt.args[22],nt.hcutoff=tt.args[23],nt.hresonance=tt.args[24],nt.bandf=tt.args[25],nt.bandq=tt.args[26],nt.unit_name=tt.args[27],nt.sample_loop=tt.args[28],nt.sample_n=tt.args[29],tt.args.length==33&&(nt.attack=tt.args[30],nt.hold=tt.args[31],nt.release=tt.args[32]),_e.playSample(nt),j&&console.log(tt)}},k.prototype.getCurrentTime=function(){return this.ac.currentTime},k.prototype.syncWithEsp=function($){if(typeof EspClient=="function")if(this.espClient==null){this.espClient=new EspClient($,this.ac);var j=this;this.espClient.tempoCallback=function(_e){j.tempo=_e}}else this.espClient.setUrl($);else console.log("WebDirt ERROR: syncWithEsp called but EspClient does not exist")},k.prototype.setTempo=function($){if(typeof $.time!="number")throw Error("WebDirt: no time in setTempo");if(typeof $.beats!="number")throw Error("WebDirt: no beats in setTempo");if(typeof $.bpm!="number")throw Error("WebDirt: no bpm in setTempo");this.espClient!=null&&this.espClient.sendSetTempo($),this.tempo=$},k.prototype.sampleHint=function($){this.sampleBank!=null&&(console.log("WebDirt received sample hint: "+$),this.sampleBank.loadAllNamed($))},o})())})(WebDirtPacked$1);var WebDirtPacked=getDefaultExportFromCjs(WebDirtPacked$1.exports),WebDirt=_mergeNamespaces({__proto__:null,default:WebDirtPacked},[WebDirtPacked$1.exports]);const{Pattern}=strudel;let webDirt;function loadWebDirt(a){webDirt=new WebDirtPacked$1.exports.WebDirt(a),webDirt.initializeWebAudio()}Pattern.prototype.webdirt=function(){return this._withHap(a=>{const e=async(s,o,c)=>{if(!webDirt)throw new Error("WebDirt not initialized!");const d=s-c,j=o.value||{},{s:_,n:b=0}=j,k=dn(j,["s","n"]);_||console.warn('Pattern.webdirt: no "s" was set!');const $=getLoadedSamples$1();if(!($!=null&&$[_])){webDirt.playSample(Dt({s:_,n:b},k),d);return}if(!($!=null&&$[_]))console.warn(`Pattern.webdirt: sample "${_}" not found in loaded samples`,$);else{const _e=$[_],et=_e[b%_e.length],tt=getLoadedBuffer(et);if(!tt)console.log(`Pattern.webdirt: load ${_}:${b} from ${et}`),loadBuffer(et,webDirt.ac);else{const nt=Dt({buffer:{buffer:tt}},k);webDirt.playSample(nt,d)}}};return a.setContext(kt(Dt({},a.context),{onTrigger:e}))})};const version$6="1.35.3",DEFAULT_HEADERS$4={"X-Client-Info":`supabase-js/${version$6}`},STORAGE_KEY$1="supabase.auth.token";function stripTrailingSlash(a){return a.replace(/\/$/,"")}const isBrowser$1=()=>typeof window!="undefined",version$5="1.22.16",GOTRUE_URL="http://localhost:9999",DEFAULT_HEADERS$3={"X-Client-Info":`gotrue-js/${version$5}`},EXPIRY_MARGIN=10,NETWORK_FAILURE={ERROR_MESSAGE:"Request Failed",MAX_RETRIES:10,RETRY_INTERVAL:2},STORAGE_KEY="supabase.auth.token",COOKIE_OPTIONS={name:"sb",lifetime:60*60*8,domain:"",path:"/",sameSite:"lax"};var __awaiter$a=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};const _getErrorMessage$1=a=>a.msg||a.message||a.error_description||a.error||JSON.stringify(a),handleError$1=(a,e)=>{if(!(a!=null&&a.status))return e({message:NETWORK_FAILURE.ERROR_MESSAGE});if(typeof a.json!="function")return e(a);a.json().then(s=>e({message:_getErrorMessage$1(s),status:(a==null?void 0:a.status)||500}))},_getRequestParams$1=(a,e,s)=>{const o={method:a,headers:(e==null?void 0:e.headers)||{}};return a==="GET"||(o.headers=Object.assign({"Content-Type":"text/plain;charset=UTF-8"},e==null?void 0:e.headers),o.body=JSON.stringify(s)),o};function _handleRequest$1(a,e,s,o,c){return __awaiter$a(this,void 0,void 0,function*(){return new Promise((d,_)=>{a(s,_getRequestParams$1(e,o,c)).then(b=>{if(!b.ok)throw b;return o!=null&&o.noResolveJson?d:b.json()}).then(b=>d(b)).catch(b=>handleError$1(b,_))})})}function get$1(a,e,s){return __awaiter$a(this,void 0,void 0,function*(){return _handleRequest$1(a,"GET",e,s)})}function post$1(a,e,s,o){return __awaiter$a(this,void 0,void 0,function*(){return _handleRequest$1(a,"POST",e,o,s)})}function put$1(a,e,s,o){return __awaiter$a(this,void 0,void 0,function*(){return _handleRequest$1(a,"PUT",e,o,s)})}function remove$1(a,e,s,o){return __awaiter$a(this,void 0,void 0,function*(){return _handleRequest$1(a,"DELETE",e,o,s)})}function serialize(a,e,s){const o=s||{},c=encodeURIComponent,d=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;if(typeof c!="function")throw new TypeError("option encode is invalid");if(!d.test(a))throw new TypeError("argument name is invalid");const _=c(e);if(_&&!d.test(_))throw new TypeError("argument val is invalid");let b=a+"="+_;if(o.maxAge!=null){const k=o.maxAge-0;if(isNaN(k)||!isFinite(k))throw new TypeError("option maxAge is invalid");b+="; Max-Age="+Math.floor(k)}if(o.domain){if(!d.test(o.domain))throw new TypeError("option domain is invalid");b+="; Domain="+o.domain}if(o.path){if(!d.test(o.path))throw new TypeError("option path is invalid");b+="; Path="+o.path}if(o.expires){if(typeof o.expires.toUTCString!="function")throw new TypeError("option expires is invalid");b+="; Expires="+o.expires.toUTCString()}if(o.httpOnly&&(b+="; HttpOnly"),o.secure&&(b+="; Secure"),o.sameSite)switch(typeof o.sameSite=="string"?o.sameSite.toLowerCase():o.sameSite){case"lax":b+="; SameSite=Lax";break;case"strict":b+="; SameSite=Strict";break;case"none":b+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return b}function isSecureEnvironment(a){if(!a||!a.headers||!a.headers.host)throw new Error('The "host" request header is not available');const e=a.headers.host.indexOf(":")>-1&&a.headers.host.split(":")[0]||a.headers.host;return!(["localhost","127.0.0.1"].indexOf(e)>-1||e.endsWith(".local"))}function serializeCookie(a,e){var s,o,c;return serialize(a.name,a.value,{maxAge:a.maxAge,expires:new Date(Date.now()+a.maxAge*1e3),httpOnly:!0,secure:e,path:(s=a.path)!==null&&s!==void 0?s:"/",domain:(o=a.domain)!==null&&o!==void 0?o:"",sameSite:(c=a.sameSite)!==null&&c!==void 0?c:"lax"})}function getCookieString(a,e,s){const o=s.map(d=>serializeCookie(d,isSecureEnvironment(a))),c=e.getHeader("Set-Cookie");return c&&(c instanceof Array?Array.prototype.push.apply(o,c):typeof c=="string"&&o.push(c)),o}function setCookies(a,e,s){e.setHeader("Set-Cookie",getCookieString(a,e,s))}var browserPonyfill={exports:{}};(function(a,e){var s=typeof self!="undefined"?self:commonjsGlobal,o=function(){function d(){this.fetch=!1,this.DOMException=s.DOMException}return d.prototype=s,new d}();(function(d){(function(_){var b={searchParams:"URLSearchParams"in d,iterable:"Symbol"in d&&"iterator"in Symbol,blob:"FileReader"in d&&"Blob"in d&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in d,arrayBuffer:"ArrayBuffer"in d};function k(pt){return pt&&DataView.prototype.isPrototypeOf(pt)}if(b.arrayBuffer)var $=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],j=ArrayBuffer.isView||function(pt){return pt&&$.indexOf(Object.prototype.toString.call(pt))>-1};function _e(pt){if(typeof pt!="string"&&(pt=String(pt)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(pt))throw new TypeError("Invalid character in header field name");return pt.toLowerCase()}function et(pt){return typeof pt!="string"&&(pt=String(pt)),pt}function tt(pt){var mt={next:function(){var At=pt.shift();return{done:At===void 0,value:At}}};return b.iterable&&(mt[Symbol.iterator]=function(){return mt}),mt}function nt(pt){this.map={},pt instanceof nt?pt.forEach(function(mt,At){this.append(At,mt)},this):Array.isArray(pt)?pt.forEach(function(mt){this.append(mt[0],mt[1])},this):pt&&Object.getOwnPropertyNames(pt).forEach(function(mt){this.append(mt,pt[mt])},this)}nt.prototype.append=function(pt,mt){pt=_e(pt),mt=et(mt);var At=this.map[pt];this.map[pt]=At?At+", "+mt:mt},nt.prototype.delete=function(pt){delete this.map[_e(pt)]},nt.prototype.get=function(pt){return pt=_e(pt),this.has(pt)?this.map[pt]:null},nt.prototype.has=function(pt){return this.map.hasOwnProperty(_e(pt))},nt.prototype.set=function(pt,mt){this.map[_e(pt)]=et(mt)},nt.prototype.forEach=function(pt,mt){for(var At in this.map)this.map.hasOwnProperty(At)&&pt.call(mt,this.map[At],At,this)},nt.prototype.keys=function(){var pt=[];return this.forEach(function(mt,At){pt.push(At)}),tt(pt)},nt.prototype.values=function(){var pt=[];return this.forEach(function(mt){pt.push(mt)}),tt(pt)},nt.prototype.entries=function(){var pt=[];return this.forEach(function(mt,At){pt.push([At,mt])}),tt(pt)},b.iterable&&(nt.prototype[Symbol.iterator]=nt.prototype.entries);function it(pt){if(pt.bodyUsed)return Promise.reject(new TypeError("Already read"));pt.bodyUsed=!0}function rt(pt){return new Promise(function(mt,At){pt.onload=function(){mt(pt.result)},pt.onerror=function(){At(pt.error)}})}function st(pt){var mt=new FileReader,At=rt(mt);return mt.readAsArrayBuffer(pt),At}function ot(pt){var mt=new FileReader,At=rt(mt);return mt.readAsText(pt),At}function at(pt){for(var mt=new Uint8Array(pt),At=new Array(mt.length),Ct=0;Ct-1?mt:pt}function dt(pt,mt){mt=mt||{};var At=mt.body;if(pt instanceof dt){if(pt.bodyUsed)throw new TypeError("Already read");this.url=pt.url,this.credentials=pt.credentials,mt.headers||(this.headers=new nt(pt.headers)),this.method=pt.method,this.mode=pt.mode,this.signal=pt.signal,!At&&pt._bodyInit!=null&&(At=pt._bodyInit,pt.bodyUsed=!0)}else this.url=String(pt);if(this.credentials=mt.credentials||this.credentials||"same-origin",(mt.headers||!this.headers)&&(this.headers=new nt(mt.headers)),this.method=ct(mt.method||this.method||"GET"),this.mode=mt.mode||this.mode||null,this.signal=mt.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&At)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(At)}dt.prototype.clone=function(){return new dt(this,{body:this._bodyInit})};function ft(pt){var mt=new FormData;return pt.trim().split("&").forEach(function(At){if(At){var Ct=At.split("="),Ot=Ct.shift().replace(/\+/g," "),St=Ct.join("=").replace(/\+/g," ");mt.append(decodeURIComponent(Ot),decodeURIComponent(St))}}),mt}function yt(pt){var mt=new nt,At=pt.replace(/\r?\n[\t ]+/g," ");return At.split(/\r?\n/).forEach(function(Ct){var Ot=Ct.split(":"),St=Ot.shift().trim();if(St){var Tt=Ot.join(":").trim();mt.append(St,Tt)}}),mt}lt.call(dt.prototype);function _t(pt,mt){mt||(mt={}),this.type="default",this.status=mt.status===void 0?200:mt.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in mt?mt.statusText:"OK",this.headers=new nt(mt.headers),this.url=mt.url||"",this._initBody(pt)}lt.call(_t.prototype),_t.prototype.clone=function(){return new _t(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new nt(this.headers),url:this.url})},_t.error=function(){var pt=new _t(null,{status:0,statusText:""});return pt.type="error",pt};var gt=[301,302,303,307,308];_t.redirect=function(pt,mt){if(gt.indexOf(mt)===-1)throw new RangeError("Invalid status code");return new _t(null,{status:mt,headers:{location:pt}})},_.DOMException=d.DOMException;try{new _.DOMException}catch{_.DOMException=function(mt,At){this.message=mt,this.name=At;var Ct=Error(mt);this.stack=Ct.stack},_.DOMException.prototype=Object.create(Error.prototype),_.DOMException.prototype.constructor=_.DOMException}function Et(pt,mt){return new Promise(function(At,Ct){var Ot=new dt(pt,mt);if(Ot.signal&&Ot.signal.aborted)return Ct(new _.DOMException("Aborted","AbortError"));var St=new XMLHttpRequest;function Tt(){St.abort()}St.onload=function(){var vt={status:St.status,statusText:St.statusText,headers:yt(St.getAllResponseHeaders()||"")};vt.url="responseURL"in St?St.responseURL:vt.headers.get("X-Request-URL");var bt="response"in St?St.response:St.responseText;At(new _t(bt,vt))},St.onerror=function(){Ct(new TypeError("Network request failed"))},St.ontimeout=function(){Ct(new TypeError("Network request failed"))},St.onabort=function(){Ct(new _.DOMException("Aborted","AbortError"))},St.open(Ot.method,Ot.url,!0),Ot.credentials==="include"?St.withCredentials=!0:Ot.credentials==="omit"&&(St.withCredentials=!1),"responseType"in St&&b.blob&&(St.responseType="blob"),Ot.headers.forEach(function(vt,bt){St.setRequestHeader(bt,vt)}),Ot.signal&&(Ot.signal.addEventListener("abort",Tt),St.onreadystatechange=function(){St.readyState===4&&Ot.signal.removeEventListener("abort",Tt)}),St.send(typeof Ot._bodyInit=="undefined"?null:Ot._bodyInit)})}return Et.polyfill=!0,d.fetch||(d.fetch=Et,d.Headers=nt,d.Request=dt,d.Response=_t),_.Headers=nt,_.Request=dt,_.Response=_t,_.fetch=Et,Object.defineProperty(_,"__esModule",{value:!0}),_})({})})(o),o.fetch.ponyfill=!0,delete o.fetch.polyfill;var c=o;e=c.fetch,e.default=c.fetch,e.fetch=c.fetch,e.Headers=c.Headers,e.Request=c.Request,e.Response=c.Response,a.exports=e})(browserPonyfill,browserPonyfill.exports);var crossFetch=getDefaultExportFromCjs(browserPonyfill.exports),__awaiter$9=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};function expiresAt(a){return Math.round(Date.now()/1e3)+a}function uuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){const e=Math.random()*16|0;return(a=="x"?e:e&3|8).toString(16)})}const isBrowser=()=>typeof window!="undefined";function getParameterByName(a,e){var s;e||(e=((s=window==null?void 0:window.location)===null||s===void 0?void 0:s.href)||""),a=a.replace(/[\[\]]/g,"\\$&");const o=new RegExp("[?&#]"+a+"(=([^&#]*)|&|#|$)"),c=o.exec(e);return c?c[2]?decodeURIComponent(c[2].replace(/\+/g," ")):"":null}const resolveFetch$2=a=>{let e;return a?e=a:typeof fetch=="undefined"?e=crossFetch:e=fetch,(...s)=>e(...s)},setItemAsync=(a,e,s)=>__awaiter$9(void 0,void 0,void 0,function*(){isBrowser()&&(yield a==null?void 0:a.setItem(e,JSON.stringify(s)))}),getItemAsync=(a,e)=>__awaiter$9(void 0,void 0,void 0,function*(){const s=isBrowser()&&(yield a==null?void 0:a.getItem(e));if(!s)return null;try{return JSON.parse(s)}catch{return s}}),getItemSynchronously=(a,e)=>{const s=isBrowser()&&(a==null?void 0:a.getItem(e));if(!s||typeof s!="string")return null;try{return JSON.parse(s)}catch{return s}},removeItemAsync=(a,e)=>__awaiter$9(void 0,void 0,void 0,function*(){isBrowser()&&(yield a==null?void 0:a.removeItem(e))});var __awaiter$8=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class GoTrueApi{constructor({url:e="",headers:s={},cookieOptions:o,fetch:c}){this.url=e,this.headers=s,this.cookieOptions=Object.assign(Object.assign({},COOKIE_OPTIONS),o),this.fetch=resolveFetch$2(c)}_createRequestHeaders(e){const s=Object.assign({},this.headers);return s.Authorization=`Bearer ${e}`,s}cookieName(){var e;return(e=this.cookieOptions.name)!==null&&e!==void 0?e:""}getUrlForProvider(e,s){const o=[`provider=${encodeURIComponent(e)}`];if(s!=null&&s.redirectTo&&o.push(`redirect_to=${encodeURIComponent(s.redirectTo)}`),s!=null&&s.scopes&&o.push(`scopes=${encodeURIComponent(s.scopes)}`),s!=null&&s.queryParams){const c=new URLSearchParams(s.queryParams);o.push(`${c}`)}return`${this.url}/authorize?${o.join("&")}`}signUpWithEmail(e,s,o={}){return __awaiter$8(this,void 0,void 0,function*(){try{const c=Object.assign({},this.headers);let d="";o.redirectTo&&(d="?redirect_to="+encodeURIComponent(o.redirectTo));const _=yield post$1(this.fetch,`${this.url}/signup${d}`,{email:e,password:s,data:o.data,gotrue_meta_security:{hcaptcha_token:o.captchaToken}},{headers:c}),b=Object.assign({},_);return b.expires_in&&(b.expires_at=expiresAt(_.expires_in)),{data:b,error:null}}catch(c){return{data:null,error:c}}})}signInWithEmail(e,s,o={}){return __awaiter$8(this,void 0,void 0,function*(){try{const c=Object.assign({},this.headers);let d="?grant_type=password";o.redirectTo&&(d+="&redirect_to="+encodeURIComponent(o.redirectTo));const _=yield post$1(this.fetch,`${this.url}/token${d}`,{email:e,password:s},{headers:c}),b=Object.assign({},_);return b.expires_in&&(b.expires_at=expiresAt(_.expires_in)),{data:b,error:null}}catch(c){return{data:null,error:c}}})}signUpWithPhone(e,s,o={}){return __awaiter$8(this,void 0,void 0,function*(){try{const c=Object.assign({},this.headers),d=yield post$1(this.fetch,`${this.url}/signup`,{phone:e,password:s,data:o.data,gotrue_meta_security:{hcaptcha_token:o.captchaToken}},{headers:c}),_=Object.assign({},d);return _.expires_in&&(_.expires_at=expiresAt(d.expires_in)),{data:_,error:null}}catch(c){return{data:null,error:c}}})}signInWithPhone(e,s){return __awaiter$8(this,void 0,void 0,function*(){try{const o=Object.assign({},this.headers),c="?grant_type=password",d=yield post$1(this.fetch,`${this.url}/token${c}`,{phone:e,password:s},{headers:o}),_=Object.assign({},d);return _.expires_in&&(_.expires_at=expiresAt(d.expires_in)),{data:_,error:null}}catch(o){return{data:null,error:o}}})}signInWithOpenIDConnect({id_token:e,nonce:s,client_id:o,issuer:c,provider:d}){return __awaiter$8(this,void 0,void 0,function*(){try{const _=Object.assign({},this.headers),b="?grant_type=id_token",k=yield post$1(this.fetch,`${this.url}/token${b}`,{id_token:e,nonce:s,client_id:o,issuer:c,provider:d},{headers:_}),$=Object.assign({},k);return $.expires_in&&($.expires_at=expiresAt(k.expires_in)),{data:$,error:null}}catch(_){return{data:null,error:_}}})}sendMagicLinkEmail(e,s={}){var o;return __awaiter$8(this,void 0,void 0,function*(){try{const c=Object.assign({},this.headers);let d="";s.redirectTo&&(d+="?redirect_to="+encodeURIComponent(s.redirectTo));const _=(o=s.shouldCreateUser)!==null&&o!==void 0?o:!0;return{data:yield post$1(this.fetch,`${this.url}/otp${d}`,{email:e,create_user:_,gotrue_meta_security:{hcaptcha_token:s.captchaToken}},{headers:c}),error:null}}catch(c){return{data:null,error:c}}})}sendMobileOTP(e,s={}){var o;return __awaiter$8(this,void 0,void 0,function*(){try{const c=(o=s.shouldCreateUser)!==null&&o!==void 0?o:!0,d=Object.assign({},this.headers);return{data:yield post$1(this.fetch,`${this.url}/otp`,{phone:e,create_user:c,gotrue_meta_security:{hcaptcha_token:s.captchaToken}},{headers:d}),error:null}}catch(c){return{data:null,error:c}}})}signOut(e){return __awaiter$8(this,void 0,void 0,function*(){try{return yield post$1(this.fetch,`${this.url}/logout`,{},{headers:this._createRequestHeaders(e),noResolveJson:!0}),{error:null}}catch(s){return{error:s}}})}verifyMobileOTP(e,s,o={}){return __awaiter$8(this,void 0,void 0,function*(){try{const c=Object.assign({},this.headers),d=yield post$1(this.fetch,`${this.url}/verify`,{phone:e,token:s,type:"sms",redirect_to:o.redirectTo},{headers:c}),_=Object.assign({},d);return _.expires_in&&(_.expires_at=expiresAt(d.expires_in)),{data:_,error:null}}catch(c){return{data:null,error:c}}})}verifyOTP({email:e,phone:s,token:o,type:c="sms"},d={}){return __awaiter$8(this,void 0,void 0,function*(){try{const _=Object.assign({},this.headers),b=yield post$1(this.fetch,`${this.url}/verify`,{email:e,phone:s,token:o,type:c,redirect_to:d.redirectTo},{headers:_}),k=Object.assign({},b);return k.expires_in&&(k.expires_at=expiresAt(b.expires_in)),{data:k,error:null}}catch(_){return{data:null,error:_}}})}inviteUserByEmail(e,s={}){return __awaiter$8(this,void 0,void 0,function*(){try{const o=Object.assign({},this.headers);let c="";return s.redirectTo&&(c+="?redirect_to="+encodeURIComponent(s.redirectTo)),{data:yield post$1(this.fetch,`${this.url}/invite${c}`,{email:e,data:s.data},{headers:o}),error:null}}catch(o){return{data:null,error:o}}})}resetPasswordForEmail(e,s={}){return __awaiter$8(this,void 0,void 0,function*(){try{const o=Object.assign({},this.headers);let c="";return s.redirectTo&&(c+="?redirect_to="+encodeURIComponent(s.redirectTo)),{data:yield post$1(this.fetch,`${this.url}/recover${c}`,{email:e,gotrue_meta_security:{hcaptcha_token:s.captchaToken}},{headers:o}),error:null}}catch(o){return{data:null,error:o}}})}refreshAccessToken(e){return __awaiter$8(this,void 0,void 0,function*(){try{const s=yield post$1(this.fetch,`${this.url}/token?grant_type=refresh_token`,{refresh_token:e},{headers:this.headers}),o=Object.assign({},s);return o.expires_in&&(o.expires_at=expiresAt(s.expires_in)),{data:o,error:null}}catch(s){return{data:null,error:s}}})}setAuthCookie(e,s){e.method!=="POST"&&(s.setHeader("Allow","POST"),s.status(405).end("Method Not Allowed"));const{event:o,session:c}=e.body;if(!o)throw new Error("Auth event missing!");if(o==="SIGNED_IN"){if(!c)throw new Error("Auth session missing!");setCookies(e,s,[{key:"access-token",value:c.access_token},{key:"refresh-token",value:c.refresh_token}].map(d=>{var _;return{name:`${this.cookieName()}-${d.key}`,value:d.value,domain:this.cookieOptions.domain,maxAge:(_=this.cookieOptions.lifetime)!==null&&_!==void 0?_:0,path:this.cookieOptions.path,sameSite:this.cookieOptions.sameSite}}))}o==="SIGNED_OUT"&&setCookies(e,s,["access-token","refresh-token"].map(d=>({name:`${this.cookieName()}-${d}`,value:"",maxAge:-1}))),s.status(200).json({})}deleteAuthCookie(e,s,{redirectTo:o="/"}){return setCookies(e,s,["access-token","refresh-token"].map(c=>({name:`${this.cookieName()}-${c}`,value:"",maxAge:-1}))),s.redirect(307,o)}getAuthCookieString(e,s){e.method!=="POST"&&(s.setHeader("Allow","POST"),s.status(405).end("Method Not Allowed"));const{event:o,session:c}=e.body;if(!o)throw new Error("Auth event missing!");if(o==="SIGNED_IN"){if(!c)throw new Error("Auth session missing!");return getCookieString(e,s,[{key:"access-token",value:c.access_token},{key:"refresh-token",value:c.refresh_token}].map(d=>{var _;return{name:`${this.cookieName()}-${d.key}`,value:d.value,domain:this.cookieOptions.domain,maxAge:(_=this.cookieOptions.lifetime)!==null&&_!==void 0?_:0,path:this.cookieOptions.path,sameSite:this.cookieOptions.sameSite}}))}return o==="SIGNED_OUT"?getCookieString(e,s,["access-token","refresh-token"].map(d=>({name:`${this.cookieName()}-${d}`,value:"",maxAge:-1}))):s.getHeader("Set-Cookie")}generateLink(e,s,o={}){return __awaiter$8(this,void 0,void 0,function*(){try{return{data:yield post$1(this.fetch,`${this.url}/admin/generate_link`,{type:e,email:s,password:o.password,data:o.data,redirect_to:o.redirectTo},{headers:this.headers}),error:null}}catch(c){return{data:null,error:c}}})}createUser(e){return __awaiter$8(this,void 0,void 0,function*(){try{const s=yield post$1(this.fetch,`${this.url}/admin/users`,e,{headers:this.headers});return{user:s,data:s,error:null}}catch(s){return{user:null,data:null,error:s}}})}listUsers(){return __awaiter$8(this,void 0,void 0,function*(){try{return{data:(yield get$1(this.fetch,`${this.url}/admin/users`,{headers:this.headers})).users,error:null}}catch(e){return{data:null,error:e}}})}getUserById(e){return __awaiter$8(this,void 0,void 0,function*(){try{return{data:yield get$1(this.fetch,`${this.url}/admin/users/${e}`,{headers:this.headers}),error:null}}catch(s){return{data:null,error:s}}})}getUserByCookie(e,s){return __awaiter$8(this,void 0,void 0,function*(){try{if(!e.cookies)throw new Error("Not able to parse cookies! When using Express make sure the cookie-parser middleware is in use!");const o=e.cookies[`${this.cookieName()}-access-token`],c=e.cookies[`${this.cookieName()}-refresh-token`];if(!o)throw new Error("No cookie found!");const{user:d,error:_}=yield this.getUser(o);if(_){if(!c)throw new Error("No refresh_token cookie found!");if(!s)throw new Error("You need to pass the res object to automatically refresh the session!");const{data:b,error:k}=yield this.refreshAccessToken(c);if(k)throw k;if(b)return setCookies(e,s,[{key:"access-token",value:b.access_token},{key:"refresh-token",value:b.refresh_token}].map($=>{var j;return{name:`${this.cookieName()}-${$.key}`,value:$.value,domain:this.cookieOptions.domain,maxAge:(j=this.cookieOptions.lifetime)!==null&&j!==void 0?j:0,path:this.cookieOptions.path,sameSite:this.cookieOptions.sameSite}})),{token:b.access_token,user:b.user,data:b.user,error:null}}return{token:o,user:d,data:d,error:null}}catch(o){return{token:null,user:null,data:null,error:o}}})}updateUserById(e,s){return __awaiter$8(this,void 0,void 0,function*(){try{const o=yield put$1(this.fetch,`${this.url}/admin/users/${e}`,s,{headers:this.headers});return{user:o,data:o,error:null}}catch(o){return{user:null,data:null,error:o}}})}deleteUser(e){return __awaiter$8(this,void 0,void 0,function*(){try{const s=yield remove$1(this.fetch,`${this.url}/admin/users/${e}`,{},{headers:this.headers});return{user:s,data:s,error:null}}catch(s){return{user:null,data:null,error:s}}})}getUser(e){return __awaiter$8(this,void 0,void 0,function*(){try{const s=yield get$1(this.fetch,`${this.url}/user`,{headers:this._createRequestHeaders(e)});return{user:s,data:s,error:null}}catch(s){return{user:null,data:null,error:s}}})}updateUser(e,s){return __awaiter$8(this,void 0,void 0,function*(){try{const o=yield put$1(this.fetch,`${this.url}/user`,s,{headers:this._createRequestHeaders(e)});return{user:o,data:o,error:null}}catch(o){return{user:null,data:null,error:o}}})}}function polyfillGlobalThis(){if(typeof globalThis!="object")try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self!="undefined"&&(self.globalThis=self)}}var __awaiter$7=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};polyfillGlobalThis();const DEFAULT_OPTIONS$1={url:GOTRUE_URL,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,multiTab:!0,headers:DEFAULT_HEADERS$3};class GoTrueClient{constructor(e){this.stateChangeEmitters=new Map,this.networkRetries=0;const s=Object.assign(Object.assign({},DEFAULT_OPTIONS$1),e);this.currentUser=null,this.currentSession=null,this.autoRefreshToken=s.autoRefreshToken,this.persistSession=s.persistSession,this.multiTab=s.multiTab,this.localStorage=s.localStorage||globalThis.localStorage,this.api=new GoTrueApi({url:s.url,headers:s.headers,cookieOptions:s.cookieOptions,fetch:s.fetch}),this._recoverSession(),this._recoverAndRefresh(),this._listenForMultiTabEvents(),this._handleVisibilityChange(),s.detectSessionInUrl&&isBrowser()&&!!getParameterByName("access_token")&&this.getSessionFromUrl({storeSession:!0}).then(({error:o})=>{o&&console.error("Error getting session from URL.",o)})}signUp({email:e,password:s,phone:o},c={}){return __awaiter$7(this,void 0,void 0,function*(){try{this._removeSession();const{data:d,error:_}=o&&s?yield this.api.signUpWithPhone(o,s,{data:c.data,captchaToken:c.captchaToken}):yield this.api.signUpWithEmail(e,s,{redirectTo:c.redirectTo,data:c.data,captchaToken:c.captchaToken});if(_)throw _;if(!d)throw"An error occurred on sign up.";let b=null,k=null;return d.access_token&&(b=d,k=b.user,this._saveSession(b),this._notifyAllSubscribers("SIGNED_IN")),d.id&&(k=d),{user:k,session:b,error:null}}catch(d){return{user:null,session:null,error:d}}})}signIn({email:e,phone:s,password:o,refreshToken:c,provider:d,oidc:_},b={}){return __awaiter$7(this,void 0,void 0,function*(){try{if(this._removeSession(),e&&!o){const{error:k}=yield this.api.sendMagicLinkEmail(e,{redirectTo:b.redirectTo,shouldCreateUser:b.shouldCreateUser,captchaToken:b.captchaToken});return{user:null,session:null,error:k}}if(e&&o)return this._handleEmailSignIn(e,o,{redirectTo:b.redirectTo});if(s&&!o){const{error:k}=yield this.api.sendMobileOTP(s,{shouldCreateUser:b.shouldCreateUser,captchaToken:b.captchaToken});return{user:null,session:null,error:k}}if(s&&o)return this._handlePhoneSignIn(s,o);if(c){const{error:k}=yield this._callRefreshToken(c);if(k)throw k;return{user:this.currentUser,session:this.currentSession,error:null}}if(d)return this._handleProviderSignIn(d,{redirectTo:b.redirectTo,scopes:b.scopes,queryParams:b.queryParams});if(_)return this._handleOpenIDConnectSignIn(_);throw new Error("You must provide either an email, phone number, a third-party provider or OpenID Connect.")}catch(k){return{user:null,session:null,error:k}}})}verifyOTP(e,s={}){return __awaiter$7(this,void 0,void 0,function*(){try{this._removeSession();const{data:o,error:c}=yield this.api.verifyOTP(e,s);if(c)throw c;if(!o)throw"An error occurred on token verification.";let d=null,_=null;return o.access_token&&(d=o,_=d.user,this._saveSession(d),this._notifyAllSubscribers("SIGNED_IN")),o.id&&(_=o),{user:_,session:d,error:null}}catch(o){return{user:null,session:null,error:o}}})}user(){return this.currentUser}session(){return this.currentSession}refreshSession(){var e;return __awaiter$7(this,void 0,void 0,function*(){try{if(!(!((e=this.currentSession)===null||e===void 0)&&e.access_token))throw new Error("Not logged in.");const{error:s}=yield this._callRefreshToken();if(s)throw s;return{data:this.currentSession,user:this.currentUser,error:null}}catch(s){return{data:null,user:null,error:s}}})}update(e){var s;return __awaiter$7(this,void 0,void 0,function*(){try{if(!(!((s=this.currentSession)===null||s===void 0)&&s.access_token))throw new Error("Not logged in.");const{user:o,error:c}=yield this.api.updateUser(this.currentSession.access_token,e);if(c)throw c;if(!o)throw Error("Invalid user data.");const d=Object.assign(Object.assign({},this.currentSession),{user:o});return this._saveSession(d),this._notifyAllSubscribers("USER_UPDATED"),{data:o,user:o,error:null}}catch(o){return{data:null,user:null,error:o}}})}setSession(e){return __awaiter$7(this,void 0,void 0,function*(){try{if(!e)throw new Error("No current session.");const{data:s,error:o}=yield this.api.refreshAccessToken(e);return o?{session:null,error:o}:(this._saveSession(s),this._notifyAllSubscribers("SIGNED_IN"),{session:s,error:null})}catch(s){return{error:s,session:null}}})}setAuth(e){return this.currentSession=Object.assign(Object.assign({},this.currentSession),{access_token:e,token_type:"bearer",user:this.user()}),this._notifyAllSubscribers("TOKEN_REFRESHED"),this.currentSession}getSessionFromUrl(e){return __awaiter$7(this,void 0,void 0,function*(){try{if(!isBrowser())throw new Error("No browser detected.");const s=getParameterByName("error_description");if(s)throw new Error(s);const o=getParameterByName("provider_token"),c=getParameterByName("access_token");if(!c)throw new Error("No access_token detected.");const d=getParameterByName("expires_in");if(!d)throw new Error("No expires_in detected.");const _=getParameterByName("refresh_token");if(!_)throw new Error("No refresh_token detected.");const b=getParameterByName("token_type");if(!b)throw new Error("No token_type detected.");const $=Math.round(Date.now()/1e3)+parseInt(d),{user:j,error:_e}=yield this.api.getUser(c);if(_e)throw _e;const et={provider_token:o,access_token:c,expires_in:parseInt(d),expires_at:$,refresh_token:_,token_type:b,user:j};if(e!=null&&e.storeSession){this._saveSession(et);const tt=getParameterByName("type");this._notifyAllSubscribers("SIGNED_IN"),tt==="recovery"&&this._notifyAllSubscribers("PASSWORD_RECOVERY")}return window.location.hash="",{data:et,error:null}}catch(s){return{data:null,error:s}}})}signOut(){var e;return __awaiter$7(this,void 0,void 0,function*(){const s=(e=this.currentSession)===null||e===void 0?void 0:e.access_token;if(this._removeSession(),this._notifyAllSubscribers("SIGNED_OUT"),s){const{error:o}=yield this.api.signOut(s);if(o)return{error:o}}return{error:null}})}onAuthStateChange(e){try{const s=uuid(),o={id:s,callback:e,unsubscribe:()=>{this.stateChangeEmitters.delete(s)}};return this.stateChangeEmitters.set(s,o),{data:o,error:null}}catch(s){return{data:null,error:s}}}_handleEmailSignIn(e,s,o={}){var c,d;return __awaiter$7(this,void 0,void 0,function*(){try{const{data:_,error:b}=yield this.api.signInWithEmail(e,s,{redirectTo:o.redirectTo});return b||!_?{data:null,user:null,session:null,error:b}:((((c=_==null?void 0:_.user)===null||c===void 0?void 0:c.confirmed_at)||((d=_==null?void 0:_.user)===null||d===void 0?void 0:d.email_confirmed_at))&&(this._saveSession(_),this._notifyAllSubscribers("SIGNED_IN")),{data:_,user:_.user,session:_,error:null})}catch(_){return{data:null,user:null,session:null,error:_}}})}_handlePhoneSignIn(e,s){var o;return __awaiter$7(this,void 0,void 0,function*(){try{const{data:c,error:d}=yield this.api.signInWithPhone(e,s);return d||!c?{data:null,user:null,session:null,error:d}:(!((o=c==null?void 0:c.user)===null||o===void 0)&&o.phone_confirmed_at&&(this._saveSession(c),this._notifyAllSubscribers("SIGNED_IN")),{data:c,user:c.user,session:c,error:null})}catch(c){return{data:null,user:null,session:null,error:c}}})}_handleProviderSignIn(e,s={}){const o=this.api.getUrlForProvider(e,{redirectTo:s.redirectTo,scopes:s.scopes,queryParams:s.queryParams});try{return isBrowser()&&(window.location.href=o),{provider:e,url:o,data:null,session:null,user:null,error:null}}catch(c){return o?{provider:e,url:o,data:null,session:null,user:null,error:null}:{data:null,user:null,session:null,error:c}}}_handleOpenIDConnectSignIn({id_token:e,nonce:s,client_id:o,issuer:c,provider:d}){return __awaiter$7(this,void 0,void 0,function*(){if(e&&s&&(o&&c||d))try{const{data:_,error:b}=yield this.api.signInWithOpenIDConnect({id_token:e,nonce:s,client_id:o,issuer:c,provider:d});return b||!_?{user:null,session:null,error:b}:(this._saveSession(_),this._notifyAllSubscribers("SIGNED_IN"),{user:_.user,session:_,error:null})}catch(_){return{user:null,session:null,error:_}}throw new Error("You must provide a OpenID Connect provider with your id token and nonce.")})}_recoverSession(){try{const e=getItemSynchronously(this.localStorage,STORAGE_KEY);if(!e)return null;const{currentSession:s,expiresAt:o}=e,c=Math.round(Date.now()/1e3);o>=c+EXPIRY_MARGIN&&(s==null?void 0:s.user)&&(this._saveSession(s),this._notifyAllSubscribers("SIGNED_IN"))}catch(e){console.log("error",e)}}_recoverAndRefresh(){return __awaiter$7(this,void 0,void 0,function*(){try{const e=yield getItemAsync(this.localStorage,STORAGE_KEY);if(!e)return null;const{currentSession:s,expiresAt:o}=e,c=Math.round(Date.now()/1e3);if(othis._recoverAndRefresh(),Math.pow(NETWORK_FAILURE.RETRY_INTERVAL,this.networkRetries)*100);return}yield this._removeSession()}this.networkRetries=0}else this._removeSession();else s?(this._saveSession(s),this._notifyAllSubscribers("SIGNED_IN")):(console.log("Current session is missing data."),this._removeSession())}catch(e){return console.error(e),null}})}_callRefreshToken(e){var s;return e===void 0&&(e=(s=this.currentSession)===null||s===void 0?void 0:s.refresh_token),__awaiter$7(this,void 0,void 0,function*(){try{if(!e)throw new Error("No current session.");const{data:o,error:c}=yield this.api.refreshAccessToken(e);if(c)throw c;if(!o)throw Error("Invalid session data.");return this._saveSession(o),this._notifyAllSubscribers("TOKEN_REFRESHED"),this._notifyAllSubscribers("SIGNED_IN"),{data:o,error:null}}catch(o){return{data:null,error:o}}})}_notifyAllSubscribers(e){this.stateChangeEmitters.forEach(s=>s.callback(e,this.currentSession))}_saveSession(e){this.currentSession=e,this.currentUser=e.user;const s=e.expires_at;if(s){const o=Math.round(Date.now()/1e3),c=s-o,d=c>EXPIRY_MARGIN?EXPIRY_MARGIN:.5;this._startAutoRefreshToken((c-d)*1e3)}this.persistSession&&e.expires_at&&this._persistSession(this.currentSession)}_persistSession(e){const s={currentSession:e,expiresAt:e.expires_at};setItemAsync(this.localStorage,STORAGE_KEY,s)}_removeSession(){return __awaiter$7(this,void 0,void 0,function*(){this.currentSession=null,this.currentUser=null,this.refreshTokenTimer&&clearTimeout(this.refreshTokenTimer),removeItemAsync(this.localStorage,STORAGE_KEY)})}_startAutoRefreshToken(e){this.refreshTokenTimer&&clearTimeout(this.refreshTokenTimer),!(e<=0||!this.autoRefreshToken)&&(this.refreshTokenTimer=setTimeout(()=>__awaiter$7(this,void 0,void 0,function*(){this.networkRetries++;const{error:s}=yield this._callRefreshToken();s||(this.networkRetries=0),(s==null?void 0:s.message)===NETWORK_FAILURE.ERROR_MESSAGE&&this.networkRetries{var s;if(e.key===STORAGE_KEY){const o=JSON.parse(String(e.newValue));!((s=o==null?void 0:o.currentSession)===null||s===void 0)&&s.access_token?(this._saveSession(o.currentSession),this._notifyAllSubscribers("SIGNED_IN")):(this._removeSession(),this._notifyAllSubscribers("SIGNED_OUT"))}})}catch(e){console.error("_listenForMultiTabEvents",e)}}_handleVisibilityChange(){if(!this.multiTab||!isBrowser()||!(window!=null&&window.addEventListener))return!1;try{window==null||window.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&this._recoverAndRefresh()})}catch(e){console.error("_handleVisibilityChange",e)}}}class SupabaseAuthClient extends GoTrueClient{constructor(e){super(e)}}var __awaiter$6=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class PostgrestBuilder{constructor(e){Object.assign(this,e);let s;e.fetch?s=e.fetch:typeof fetch=="undefined"?s=crossFetch:s=fetch,this.fetch=(...o)=>s(...o),this.shouldThrowOnError=e.shouldThrowOnError||!1,this.allowEmpty=e.allowEmpty||!1}throwOnError(e){return e==null&&(e=!0),this.shouldThrowOnError=e,this}then(e,s){typeof this.schema=="undefined"||(["GET","HEAD"].includes(this.method)?this.headers["Accept-Profile"]=this.schema:this.headers["Content-Profile"]=this.schema),this.method!=="GET"&&this.method!=="HEAD"&&(this.headers["Content-Type"]="application/json");let o=this.fetch(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(c=>__awaiter$6(this,void 0,void 0,function*(){var d,_,b,k;let $=null,j=null,_e=null,et=c.status,tt=c.statusText;if(c.ok){const it=(d=this.headers.Prefer)===null||d===void 0?void 0:d.split(",").includes("return=minimal");if(this.method!=="HEAD"&&!it){const ot=yield c.text();ot&&(this.headers.Accept==="text/csv"?j=ot:j=JSON.parse(ot))}const rt=(_=this.headers.Prefer)===null||_===void 0?void 0:_.match(/count=(exact|planned|estimated)/),st=(b=c.headers.get("content-range"))===null||b===void 0?void 0:b.split("/");rt&&st&&st.length>1&&(_e=parseInt(st[1]))}else{const it=yield c.text();try{$=JSON.parse(it)}catch{$={message:it}}if($&&this.allowEmpty&&((k=$==null?void 0:$.details)===null||k===void 0?void 0:k.includes("Results contain 0 rows"))&&($=null,et=200,tt="OK"),$&&this.shouldThrowOnError)throw $}return{error:$,data:j,count:_e,status:et,statusText:tt,body:j}}));return this.shouldThrowOnError||(o=o.catch(c=>({error:{message:`FetchError: ${c.message}`,details:"",hint:"",code:c.code||""},data:null,body:null,count:null,status:400,statusText:"Bad Request"}))),o.then(e,s)}}class PostgrestTransformBuilder extends PostgrestBuilder{select(e="*"){let s=!1;const o=e.split("").map(c=>/\s/.test(c)&&!s?"":(c==='"'&&(s=!s),c)).join("");return this.url.searchParams.set("select",o),this}order(e,{ascending:s=!0,nullsFirst:o=!1,foreignTable:c}={}){const d=typeof c=="undefined"?"order":`${c}.order`,_=this.url.searchParams.get(d);return this.url.searchParams.set(d,`${_?`${_},`:""}${e}.${s?"asc":"desc"}.${o?"nullsfirst":"nullslast"}`),this}limit(e,{foreignTable:s}={}){const o=typeof s=="undefined"?"limit":`${s}.limit`;return this.url.searchParams.set(o,`${e}`),this}range(e,s,{foreignTable:o}={}){const c=typeof o=="undefined"?"offset":`${o}.offset`,d=typeof o=="undefined"?"limit":`${o}.limit`;return this.url.searchParams.set(c,`${e}`),this.url.searchParams.set(d,`${s-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.Accept="application/vnd.pgrst.object+json",this}maybeSingle(){return this.headers.Accept="application/vnd.pgrst.object+json",this.allowEmpty=!0,this}csv(){return this.headers.Accept="text/csv",this}}class PostgrestFilterBuilder extends PostgrestTransformBuilder{constructor(){super(...arguments),this.cs=this.contains,this.cd=this.containedBy,this.sl=this.rangeLt,this.sr=this.rangeGt,this.nxl=this.rangeGte,this.nxr=this.rangeLte,this.adj=this.rangeAdjacent,this.ov=this.overlaps}not(e,s,o){return this.url.searchParams.append(`${e}`,`not.${s}.${o}`),this}or(e,{foreignTable:s}={}){const o=typeof s=="undefined"?"or":`${s}.or`;return this.url.searchParams.append(o,`(${e})`),this}eq(e,s){return this.url.searchParams.append(`${e}`,`eq.${s}`),this}neq(e,s){return this.url.searchParams.append(`${e}`,`neq.${s}`),this}gt(e,s){return this.url.searchParams.append(`${e}`,`gt.${s}`),this}gte(e,s){return this.url.searchParams.append(`${e}`,`gte.${s}`),this}lt(e,s){return this.url.searchParams.append(`${e}`,`lt.${s}`),this}lte(e,s){return this.url.searchParams.append(`${e}`,`lte.${s}`),this}like(e,s){return this.url.searchParams.append(`${e}`,`like.${s}`),this}ilike(e,s){return this.url.searchParams.append(`${e}`,`ilike.${s}`),this}is(e,s){return this.url.searchParams.append(`${e}`,`is.${s}`),this}in(e,s){const o=s.map(c=>typeof c=="string"&&new RegExp("[,()]").test(c)?`"${c}"`:`${c}`).join(",");return this.url.searchParams.append(`${e}`,`in.(${o})`),this}contains(e,s){return typeof s=="string"?this.url.searchParams.append(`${e}`,`cs.${s}`):Array.isArray(s)?this.url.searchParams.append(`${e}`,`cs.{${s.join(",")}}`):this.url.searchParams.append(`${e}`,`cs.${JSON.stringify(s)}`),this}containedBy(e,s){return typeof s=="string"?this.url.searchParams.append(`${e}`,`cd.${s}`):Array.isArray(s)?this.url.searchParams.append(`${e}`,`cd.{${s.join(",")}}`):this.url.searchParams.append(`${e}`,`cd.${JSON.stringify(s)}`),this}rangeLt(e,s){return this.url.searchParams.append(`${e}`,`sl.${s}`),this}rangeGt(e,s){return this.url.searchParams.append(`${e}`,`sr.${s}`),this}rangeGte(e,s){return this.url.searchParams.append(`${e}`,`nxl.${s}`),this}rangeLte(e,s){return this.url.searchParams.append(`${e}`,`nxr.${s}`),this}rangeAdjacent(e,s){return this.url.searchParams.append(`${e}`,`adj.${s}`),this}overlaps(e,s){return typeof s=="string"?this.url.searchParams.append(`${e}`,`ov.${s}`):this.url.searchParams.append(`${e}`,`ov.{${s.join(",")}}`),this}textSearch(e,s,{config:o,type:c=null}={}){let d="";c==="plain"?d="pl":c==="phrase"?d="ph":c==="websearch"&&(d="w");const _=o===void 0?"":`(${o})`;return this.url.searchParams.append(`${e}`,`${d}fts${_}.${s}`),this}fts(e,s,{config:o}={}){const c=typeof o=="undefined"?"":`(${o})`;return this.url.searchParams.append(`${e}`,`fts${c}.${s}`),this}plfts(e,s,{config:o}={}){const c=typeof o=="undefined"?"":`(${o})`;return this.url.searchParams.append(`${e}`,`plfts${c}.${s}`),this}phfts(e,s,{config:o}={}){const c=typeof o=="undefined"?"":`(${o})`;return this.url.searchParams.append(`${e}`,`phfts${c}.${s}`),this}wfts(e,s,{config:o}={}){const c=typeof o=="undefined"?"":`(${o})`;return this.url.searchParams.append(`${e}`,`wfts${c}.${s}`),this}filter(e,s,o){return this.url.searchParams.append(`${e}`,`${s}.${o}`),this}match(e){return Object.keys(e).forEach(s=>{this.url.searchParams.append(`${s}`,`eq.${e[s]}`)}),this}}class PostgrestQueryBuilder extends PostgrestBuilder{constructor(e,{headers:s={},schema:o,fetch:c,shouldThrowOnError:d}={}){super({fetch:c,shouldThrowOnError:d}),this.url=new URL(e),this.headers=Object.assign({},s),this.schema=o}select(e="*",{head:s=!1,count:o=null}={}){this.method="GET";let c=!1;const d=e.split("").map(_=>/\s/.test(_)&&!c?"":(_==='"'&&(c=!c),_)).join("");return this.url.searchParams.set("select",d),o&&(this.headers.Prefer=`count=${o}`),s&&(this.method="HEAD"),new PostgrestFilterBuilder(this)}insert(e,{upsert:s=!1,onConflict:o,returning:c="representation",count:d=null}={}){this.method="POST";const _=[`return=${c}`];if(s&&_.push("resolution=merge-duplicates"),s&&o!==void 0&&this.url.searchParams.set("on_conflict",o),this.body=e,d&&_.push(`count=${d}`),this.headers.Prefer&&_.unshift(this.headers.Prefer),this.headers.Prefer=_.join(","),Array.isArray(e)){const b=e.reduce((k,$)=>k.concat(Object.keys($)),[]);if(b.length>0){const k=[...new Set(b)].map($=>`"${$}"`);this.url.searchParams.set("columns",k.join(","))}}return new PostgrestFilterBuilder(this)}upsert(e,{onConflict:s,returning:o="representation",count:c=null,ignoreDuplicates:d=!1}={}){this.method="POST";const _=[`resolution=${d?"ignore":"merge"}-duplicates`,`return=${o}`];return s!==void 0&&this.url.searchParams.set("on_conflict",s),this.body=e,c&&_.push(`count=${c}`),this.headers.Prefer&&_.unshift(this.headers.Prefer),this.headers.Prefer=_.join(","),new PostgrestFilterBuilder(this)}update(e,{returning:s="representation",count:o=null}={}){this.method="PATCH";const c=[`return=${s}`];return this.body=e,o&&c.push(`count=${o}`),this.headers.Prefer&&c.unshift(this.headers.Prefer),this.headers.Prefer=c.join(","),new PostgrestFilterBuilder(this)}delete({returning:e="representation",count:s=null}={}){this.method="DELETE";const o=[`return=${e}`];return s&&o.push(`count=${s}`),this.headers.Prefer&&o.unshift(this.headers.Prefer),this.headers.Prefer=o.join(","),new PostgrestFilterBuilder(this)}}class PostgrestRpcBuilder extends PostgrestBuilder{constructor(e,{headers:s={},schema:o,fetch:c,shouldThrowOnError:d}={}){super({fetch:c,shouldThrowOnError:d}),this.url=new URL(e),this.headers=Object.assign({},s),this.schema=o}rpc(e,{head:s=!1,count:o=null}={}){return s?(this.method="HEAD",e&&Object.entries(e).forEach(([c,d])=>{this.url.searchParams.append(c,d)})):(this.method="POST",this.body=e),o&&(this.headers.Prefer!==void 0?this.headers.Prefer+=`,count=${o}`:this.headers.Prefer=`count=${o}`),new PostgrestFilterBuilder(this)}}const version$4="0.37.3",DEFAULT_HEADERS$2={"X-Client-Info":`postgrest-js/${version$4}`};class PostgrestClient{constructor(e,{headers:s={},schema:o,fetch:c,throwOnError:d}={}){this.url=e,this.headers=Object.assign(Object.assign({},DEFAULT_HEADERS$2),s),this.schema=o,this.fetch=c,this.shouldThrowOnError=d}auth(e){return this.headers.Authorization=`Bearer ${e}`,this}from(e){const s=`${this.url}/${e}`;return new PostgrestQueryBuilder(s,{headers:this.headers,schema:this.schema,fetch:this.fetch,shouldThrowOnError:this.shouldThrowOnError})}rpc(e,s,{head:o=!1,count:c=null}={}){const d=`${this.url}/rpc/${e}`;return new PostgrestRpcBuilder(d,{headers:this.headers,schema:this.schema,fetch:this.fetch,shouldThrowOnError:this.shouldThrowOnError}).rpc(s,{head:o,count:c})}}var PostgresTypes;(function(a){a.abstime="abstime",a.bool="bool",a.date="date",a.daterange="daterange",a.float4="float4",a.float8="float8",a.int2="int2",a.int4="int4",a.int4range="int4range",a.int8="int8",a.int8range="int8range",a.json="json",a.jsonb="jsonb",a.money="money",a.numeric="numeric",a.oid="oid",a.reltime="reltime",a.text="text",a.time="time",a.timestamp="timestamp",a.timestamptz="timestamptz",a.timetz="timetz",a.tsrange="tsrange",a.tstzrange="tstzrange"})(PostgresTypes||(PostgresTypes={}));const convertChangeData=(a,e,s={})=>{var o;const c=(o=s.skipTypes)!==null&&o!==void 0?o:[];return Object.keys(e).reduce((d,_)=>(d[_]=convertColumn(_,a,e,c),d),{})},convertColumn=(a,e,s,o)=>{const c=e.find(b=>b.name===a),d=c==null?void 0:c.type,_=s[a];return d&&!o.includes(d)?convertCell(d,_):noop$1(_)},convertCell=(a,e)=>{if(a.charAt(0)==="_"){const s=a.slice(1,a.length);return toArray(e,s)}switch(a){case PostgresTypes.bool:return toBoolean(e);case PostgresTypes.float4:case PostgresTypes.float8:case PostgresTypes.int2:case PostgresTypes.int4:case PostgresTypes.int8:case PostgresTypes.numeric:case PostgresTypes.oid:return toNumber(e);case PostgresTypes.json:case PostgresTypes.jsonb:return toJson(e);case PostgresTypes.timestamp:return toTimestampString(e);case PostgresTypes.abstime:case PostgresTypes.date:case PostgresTypes.daterange:case PostgresTypes.int4range:case PostgresTypes.int8range:case PostgresTypes.money:case PostgresTypes.reltime:case PostgresTypes.text:case PostgresTypes.time:case PostgresTypes.timestamptz:case PostgresTypes.timetz:case PostgresTypes.tsrange:case PostgresTypes.tstzrange:return noop$1(e);default:return noop$1(e)}},noop$1=a=>a,toBoolean=a=>{switch(a){case"t":return!0;case"f":return!1;default:return a}},toNumber=a=>{if(typeof a=="string"){const e=parseFloat(a);if(!Number.isNaN(e))return e}return a},toJson=a=>{if(typeof a=="string")try{return JSON.parse(a)}catch(e){return console.log(`JSON parse error: ${e}`),a}return a},toArray=(a,e)=>{if(typeof a!="string")return a;const s=a.length-1,o=a[s];if(a[0]==="{"&&o==="}"){let d;const _=a.slice(1,s);try{d=JSON.parse("["+_+"]")}catch{d=_?_.split(","):[]}return d.map(b=>convertCell(e,b))}return a},toTimestampString=a=>typeof a=="string"?a.replace(" ","T"):a,name="websocket",description="Websocket Client & Server Library implementing the WebSocket protocol as specified in RFC 6455.",keywords=["websocket","websockets","socket","networking","comet","push","RFC-6455","realtime","server","client"],author="Brian McKelvey (https://github.com/theturtle32)",contributors=["I\xF1aki Baz Castillo (http://dev.sipdoc.net)"],version$3="1.0.34",repository={type:"git",url:"https://github.com/theturtle32/WebSocket-Node.git"},homepage="https://github.com/theturtle32/WebSocket-Node",engines={node:">=4.0.0"},dependencies={bufferutil:"^4.0.1",debug:"^2.2.0","es5-ext":"^0.10.50","typedarray-to-buffer":"^3.1.5","utf-8-validate":"^5.0.2",yaeti:"^0.0.6"},devDependencies={"buffer-equal":"^1.0.0",gulp:"^4.0.2","gulp-jshint":"^2.0.4","jshint-stylish":"^2.2.1",jshint:"^2.0.0",tape:"^4.9.1"},config={verbose:!1},scripts={test:"tape test/unit/*.js",gulp:"gulp"},main="index",directories={lib:"./lib"},browser$1="lib/browser.js",license="Apache-2.0";var require$$0={name,description,keywords,author,contributors,version:version$3,repository,homepage,engines,dependencies,devDependencies,config,scripts,main,directories,browser:browser$1,license},version$2=require$$0.version,_globalThis;if(typeof globalThis=="object")_globalThis=globalThis;else try{_globalThis=require("es5-ext/global")}catch{}finally{if(!_globalThis&&typeof window!="undefined"&&(_globalThis=window),!_globalThis)throw new Error("Could not determine global this")}var NativeWebSocket=_globalThis.WebSocket||_globalThis.MozWebSocket,websocket_version=version$2;function W3CWebSocket(a,e){var s;return e?s=new NativeWebSocket(a,e):s=new NativeWebSocket(a),s}NativeWebSocket&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach(function(a){Object.defineProperty(W3CWebSocket,a,{get:function(){return NativeWebSocket[a]}})});var browser={w3cwebsocket:NativeWebSocket?W3CWebSocket:null,version:websocket_version};const version$1="1.7.2",DEFAULT_HEADERS$1={"X-Client-Info":`realtime-js/${version$1}`},VSN="1.0.0",DEFAULT_TIMEOUT=1e4,WS_CLOSE_NORMAL=1e3;var SOCKET_STATES;(function(a){a[a.connecting=0]="connecting",a[a.open=1]="open",a[a.closing=2]="closing",a[a.closed=3]="closed"})(SOCKET_STATES||(SOCKET_STATES={}));var CHANNEL_STATES;(function(a){a.closed="closed",a.errored="errored",a.joined="joined",a.joining="joining",a.leaving="leaving"})(CHANNEL_STATES||(CHANNEL_STATES={}));var CHANNEL_EVENTS;(function(a){a.close="phx_close",a.error="phx_error",a.join="phx_join",a.reply="phx_reply",a.leave="phx_leave",a.access_token="access_token"})(CHANNEL_EVENTS||(CHANNEL_EVENTS={}));var TRANSPORTS;(function(a){a.websocket="websocket"})(TRANSPORTS||(TRANSPORTS={}));var CONNECTION_STATE;(function(a){a.Connecting="connecting",a.Open="open",a.Closing="closing",a.Closed="closed"})(CONNECTION_STATE||(CONNECTION_STATE={}));class Timer{constructor(e,s){this.callback=e,this.timerCalc=s,this.timer=void 0,this.tries=0,this.callback=e,this.timerCalc=s}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}}class Serializer{constructor(){this.HEADER_LENGTH=1}decode(e,s){return e.constructor===ArrayBuffer?s(this._binaryDecode(e)):s(typeof e=="string"?JSON.parse(e):{})}_binaryDecode(e){const s=new DataView(e),o=new TextDecoder;return this._decodeBroadcast(e,s,o)}_decodeBroadcast(e,s,o){const c=s.getUint8(1),d=s.getUint8(2);let _=this.HEADER_LENGTH+2;const b=o.decode(e.slice(_,_+c));_=_+c;const k=o.decode(e.slice(_,_+d));_=_+d;const $=JSON.parse(o.decode(e.slice(_,e.byteLength)));return{ref:null,topic:b,event:k,payload:$}}}class Push{constructor(e,s,o={},c=DEFAULT_TIMEOUT){this.channel=e,this.event=s,this.payload=o,this.timeout=c,this.sent=!1,this.timeoutTimer=void 0,this.ref="",this.receivedResp=null,this.recHooks=[],this.refEvent=null}resend(e){this.timeout=e,this._cancelRefEvent(),this.ref="",this.refEvent=null,this.receivedResp=null,this.sent=!1,this.send()}send(){this._hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload,ref:this.ref}))}updatePayload(e){this.payload=Object.assign(Object.assign({},this.payload),e)}receive(e,s){var o;return this._hasReceived(e)&&s((o=this.receivedResp)===null||o===void 0?void 0:o.response),this.recHooks.push({status:e,callback:s}),this}startTimeout(){if(this.timeoutTimer)return;this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref);const e=s=>{this._cancelRefEvent(),this._cancelTimeout(),this.receivedResp=s,this._matchReceive(s)};this.channel instanceof RealtimeSubscription?this.channel.on(this.refEvent,e):this.channel.on(this.refEvent,{},e),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}trigger(e,s){this.refEvent&&this.channel.trigger(this.refEvent,{status:e,response:s})}destroy(){this._cancelRefEvent(),this._cancelTimeout()}_cancelRefEvent(){!this.refEvent||(this.channel instanceof RealtimeSubscription?this.channel.off(this.refEvent):this.channel.off(this.refEvent,{}))}_cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=void 0}_matchReceive({status:e,response:s}){this.recHooks.filter(o=>o.status===e).forEach(o=>o.callback(s))}_hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}}class RealtimeSubscription{constructor(e,s={},o){this.topic=e,this.params=s,this.socket=o,this.bindings=[],this.state=CHANNEL_STATES.closed,this.joinedOnce=!1,this.pushBuffer=[],this.timeout=this.socket.timeout,this.joinPush=new Push(this,CHANNEL_EVENTS.join,this.params,this.timeout),this.rejoinTimer=new Timer(()=>this.rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive("ok",()=>{this.state=CHANNEL_STATES.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(c=>c.send()),this.pushBuffer=[]}),this.onClose(()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this.joinRef()}`),this.state=CHANNEL_STATES.closed,this.socket.remove(this)}),this.onError(c=>{this.isLeaving()||this.isClosed()||(this.socket.log("channel",`error ${this.topic}`,c),this.state=CHANNEL_STATES.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("timeout",()=>{!this.isJoining()||(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=CHANNEL_STATES.errored,this.rejoinTimer.scheduleTimeout())}),this.on(CHANNEL_EVENTS.reply,(c,d)=>{this.trigger(this.replyEventName(d),c)})}rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this.rejoin()}subscribe(e=this.timeout){if(this.joinedOnce)throw"tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance";return this.joinedOnce=!0,this.rejoin(e),this.joinPush}onClose(e){this.on(CHANNEL_EVENTS.close,e)}onError(e){this.on(CHANNEL_EVENTS.error,s=>e(s))}on(e,s){this.bindings.push({event:e,callback:s})}off(e){this.bindings=this.bindings.filter(s=>s.event!==e)}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,s,o=this.timeout){if(!this.joinedOnce)throw`tried to push '${e}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let c=new Push(this,e,s,o);return this.canPush()?c.send():(c.startTimeout(),this.pushBuffer.push(c)),c}updateJoinPayload(e){this.joinPush.updatePayload(e)}unsubscribe(e=this.timeout){this.state=CHANNEL_STATES.leaving;let s=()=>{this.socket.log("channel",`leave ${this.topic}`),this.trigger(CHANNEL_EVENTS.close,"leave",this.joinRef())};this.joinPush.destroy();let o=new Push(this,CHANNEL_EVENTS.leave,{},e);return o.receive("ok",()=>s()).receive("timeout",()=>s()),o.send(),this.canPush()||o.trigger("ok",{}),o}onMessage(e,s,o){return s}isMember(e){return this.topic===e}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=CHANNEL_STATES.joining,this.joinPush.resend(e))}trigger(e,s,o){let{close:c,error:d,leave:_,join:b}=CHANNEL_EVENTS;if(o&&[c,d,_,b].indexOf(e)>=0&&o!==this.joinRef())return;let $=this.onMessage(e,s,o);if(s&&!$)throw"channel onMessage callbacks must return the payload, modified or unmodified";this.bindings.filter(j=>j.event==="*"?e===(s==null?void 0:s.type):j.event===e).map(j=>j.callback($,o))}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===CHANNEL_STATES.closed}isErrored(){return this.state===CHANNEL_STATES.errored}isJoined(){return this.state===CHANNEL_STATES.joined}isJoining(){return this.state===CHANNEL_STATES.joining}isLeaving(){return this.state===CHANNEL_STATES.leaving}}class RealtimePresence{constructor(e,s){this.channel=e,this.state={},this.pendingDiffs=[],this.joinRef=null,this.caller={onJoin:()=>{},onLeave:()=>{},onSync:()=>{}};const o=(s==null?void 0:s.events)||{state:"presence_state",diff:"presence_diff"};this.channel.on(o.state,{},c=>{const{onJoin:d,onLeave:_,onSync:b}=this.caller;this.joinRef=this.channel.joinRef(),this.state=RealtimePresence.syncState(this.state,c,d,_),this.pendingDiffs.forEach(k=>{this.state=RealtimePresence.syncDiff(this.state,k,d,_)}),this.pendingDiffs=[],b()}),this.channel.on(o.diff,{},c=>{const{onJoin:d,onLeave:_,onSync:b}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(c):(this.state=RealtimePresence.syncDiff(this.state,c,d,_),b())})}static syncState(e,s,o,c){const d=this.cloneDeep(e),_=this.transformState(s),b={},k={};return this.map(d,($,j)=>{_[$]||(k[$]=j)}),this.map(_,($,j)=>{const _e=d[$];if(_e){const et=j.map(rt=>rt.presence_id),tt=_e.map(rt=>rt.presence_id),nt=j.filter(rt=>tt.indexOf(rt.presence_id)<0),it=_e.filter(rt=>et.indexOf(rt.presence_id)<0);nt.length>0&&(b[$]=nt),it.length>0&&(k[$]=it)}else b[$]=j}),this.syncDiff(d,{joins:b,leaves:k},o,c)}static syncDiff(e,s,o,c){const{joins:d,leaves:_}={joins:this.transformState(s.joins),leaves:this.transformState(s.leaves)};return o||(o=()=>{}),c||(c=()=>{}),this.map(d,(b,k)=>{const $=e[b];if(e[b]=this.cloneDeep(k),$){const j=e[b].map(et=>et.presence_id),_e=$.filter(et=>j.indexOf(et.presence_id)<0);e[b].unshift(..._e)}o(b,$,k)}),this.map(_,(b,k)=>{let $=e[b];if(!$)return;const j=k.map(_e=>_e.presence_id);$=$.filter(_e=>j.indexOf(_e.presence_id)<0),e[b]=$,c(b,$,k),$.length===0&&delete e[b]}),e}static list(e,s){return s||(s=(o,c)=>c),this.map(e,(o,c)=>s(o,c))}static map(e,s){return Object.getOwnPropertyNames(e).map(o=>s(o,e[o]))}static transformState(e){return e=this.cloneDeep(e),Object.getOwnPropertyNames(e).reduce((s,o)=>{const c=e[o];return"metas"in c?s[o]=c.metas.map(d=>(d.presence_id=d.phx_ref,delete d.phx_ref,delete d.phx_ref_prev,d)):s[o]=c,s},{})}static cloneDeep(e){return JSON.parse(JSON.stringify(e))}onJoin(e){this.caller.onJoin=e}onLeave(e){this.caller.onLeave=e}onSync(e){this.caller.onSync=e}list(e){return RealtimePresence.list(this.state,e)}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel.joinRef()}}class RealtimeChannel{constructor(e,s={},o){this.topic=e,this.params=s,this.socket=o,this.bindings=[],this.state=CHANNEL_STATES.closed,this.joinedOnce=!1,this.pushBuffer=[],this.timeout=this.socket.timeout,this.joinPush=new Push(this,CHANNEL_EVENTS.join,this.params,this.timeout),this.rejoinTimer=new Timer(()=>this.rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive("ok",()=>{this.state=CHANNEL_STATES.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(c=>c.send()),this.pushBuffer=[]}),this.onClose(()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this.joinRef()}`),this.state=CHANNEL_STATES.closed,this.socket.remove(this)}),this.onError(c=>{this.isLeaving()||this.isClosed()||(this.socket.log("channel",`error ${this.topic}`,c),this.state=CHANNEL_STATES.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("timeout",()=>{!this.isJoining()||(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=CHANNEL_STATES.errored,this.rejoinTimer.scheduleTimeout())}),this.on(CHANNEL_EVENTS.reply,{},(c,d)=>{this.trigger(this.replyEventName(d),c)}),this.presence=new RealtimePresence(this)}list(){return this.presence.list()}rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this.rejoin()}subscribe(e=this.timeout){if(this.joinedOnce)throw"tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance";{const s=this.bindings.reduce((o,c)=>{const{type:d}=c;return["phx_close","phx_error","phx_reply","presence_diff","presence_state"].includes(d)||(o[d]=c),o},{});return Object.keys(s).length&&this.updateJoinPayload({configs:s}),this.joinedOnce=!0,this.rejoin(e),this.joinPush}}onClose(e){this.on(CHANNEL_EVENTS.close,{},e)}onError(e){this.on(CHANNEL_EVENTS.error,{},s=>e(s))}on(e,s,o){this.bindings.push({type:e,filter:s!=null?s:{},callback:o!=null?o:()=>{}})}off(e,s){this.bindings=this.bindings.filter(o=>!(o.type===e&&RealtimeChannel.isEqual(o.filter,s)))}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,s,o=this.timeout){if(!this.joinedOnce)throw`tried to push '${e}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let c=new Push(this,e,s,o);return this.canPush()?c.send():(c.startTimeout(),this.pushBuffer.push(c)),c}updateJoinPayload(e){this.joinPush.updatePayload(e)}unsubscribe(e=this.timeout){this.state=CHANNEL_STATES.leaving;const s=()=>{this.socket.log("channel",`leave ${this.topic}`),this.trigger(CHANNEL_EVENTS.close,"leave",this.joinRef())};this.joinPush.destroy();const o=new Push(this,CHANNEL_EVENTS.leave,{},e);return o.receive("ok",()=>s()).receive("timeout",()=>s()),o.send(),this.canPush()||o.trigger("ok",{}),o}onMessage(e,s,o){return s}isMember(e){return this.topic===e}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=CHANNEL_STATES.joining,this.joinPush.resend(e))}trigger(e,s,o){const{close:c,error:d,leave:_,join:b}=CHANNEL_EVENTS;if(o&&[c,d,_,b].indexOf(e)>=0&&o!==this.joinRef())return;const $=this.onMessage(e,s,o);if(s&&!$)throw"channel onMessage callbacks must return the payload, modified or unmodified";this.bindings.filter(j=>{var _e,et;return(j==null?void 0:j.type)===e&&(((_e=j==null?void 0:j.filter)===null||_e===void 0?void 0:_e.event)==="*"||((et=j==null?void 0:j.filter)===null||et===void 0?void 0:et.event)===(s==null?void 0:s.event))}).map(j=>j.callback($,o))}send(e){const s=this.push(e.type,e);return new Promise((o,c)=>{s.receive("ok",()=>o("ok")),s.receive("timeout",()=>c("timeout"))})}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===CHANNEL_STATES.closed}isErrored(){return this.state===CHANNEL_STATES.errored}isJoined(){return this.state===CHANNEL_STATES.joined}isJoining(){return this.state===CHANNEL_STATES.joining}isLeaving(){return this.state===CHANNEL_STATES.leaving}static isEqual(e,s){if(Object.keys(e).length!==Object.keys(s).length)return!1;for(const o in e)if(e[o]!==s[o])return!1;return!0}}var __awaiter$5=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})},__rest=globalThis&&globalThis.__rest||function(a,e){var s={};for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&e.indexOf(o)<0&&(s[o]=a[o]);if(a!=null&&typeof Object.getOwnPropertySymbols=="function")for(var c=0,o=Object.getOwnPropertySymbols(a);c{};class RealtimeClient{constructor(e,s){this.accessToken=null,this.channels=[],this.endPoint="",this.headers=DEFAULT_HEADERS$1,this.params={},this.timeout=DEFAULT_TIMEOUT,this.transport=browser.w3cwebsocket,this.heartbeatIntervalMs=3e4,this.longpollerTimeout=2e4,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.ref=0,this.logger=noop,this.conn=null,this.sendBuffer=[],this.serializer=new Serializer,this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.endPoint=`${e}/${TRANSPORTS.websocket}`,s!=null&&s.params&&(this.params=s.params),s!=null&&s.headers&&(this.headers=Object.assign(Object.assign({},this.headers),s.headers)),s!=null&&s.timeout&&(this.timeout=s.timeout),s!=null&&s.logger&&(this.logger=s.logger),s!=null&&s.transport&&(this.transport=s.transport),s!=null&&s.heartbeatIntervalMs&&(this.heartbeatIntervalMs=s.heartbeatIntervalMs),s!=null&&s.longpollerTimeout&&(this.longpollerTimeout=s.longpollerTimeout),this.reconnectAfterMs=s!=null&&s.reconnectAfterMs?s.reconnectAfterMs:o=>[1e3,2e3,5e3,1e4][o-1]||1e4,this.encode=s!=null&&s.encode?s.encode:(o,c)=>c(JSON.stringify(o)),this.decode=s!=null&&s.decode?s.decode:this.serializer.decode.bind(this.serializer),this.reconnectTimer=new Timer(()=>__awaiter$5(this,void 0,void 0,function*(){yield this.disconnect(),this.connect()}),this.reconnectAfterMs)}connect(){this.conn||(this.conn=new this.transport(this.endPointURL(),[],null,this.headers),this.conn&&(this.conn.binaryType="arraybuffer",this.conn.onopen=()=>this._onConnOpen(),this.conn.onerror=e=>this._onConnError(e),this.conn.onmessage=e=>this.onConnMessage(e),this.conn.onclose=e=>this._onConnClose(e)))}disconnect(e,s){return new Promise((o,c)=>{try{this.conn&&(this.conn.onclose=function(){},e?this.conn.close(e,s||""):this.conn.close(),this.conn=null,this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.reset()),o({error:null,data:!0})}catch(d){o({error:d,data:!1})}})}log(e,s,o){this.logger(e,s,o)}onOpen(e){this.stateChangeCallbacks.open.push(e)}onClose(e){this.stateChangeCallbacks.close.push(e)}onError(e){this.stateChangeCallbacks.error.push(e)}onMessage(e){this.stateChangeCallbacks.message.push(e)}connectionState(){switch(this.conn&&this.conn.readyState){case SOCKET_STATES.connecting:return CONNECTION_STATE.Connecting;case SOCKET_STATES.open:return CONNECTION_STATE.Open;case SOCKET_STATES.closing:return CONNECTION_STATE.Closing;default:return CONNECTION_STATE.Closed}}isConnected(){return this.connectionState()===CONNECTION_STATE.Open}remove(e){this.channels=this.channels.filter(s=>s.joinRef()!==e.joinRef())}channel(e,s={}){var o;const{selfBroadcast:c}=s,d=__rest(s,["selfBroadcast"]);c&&(d.self_broadcast=c);const _=!((o=this.params)===null||o===void 0)&&o.vsndate?new RealtimeChannel(e,d,this):new RealtimeSubscription(e,d,this);return _ instanceof RealtimeChannel&&(_.presence.onJoin((b,k,$)=>{_.trigger("presence",{event:"JOIN",key:b,currentPresences:k,newPresences:$})}),_.presence.onLeave((b,k,$)=>{_.trigger("presence",{event:"LEAVE",key:b,currentPresences:k,leftPresences:$})}),_.presence.onSync(()=>{_.trigger("presence",{event:"SYNC"})})),this.channels.push(_),_}push(e){const{topic:s,event:o,payload:c,ref:d}=e;let _=()=>{this.encode(e,b=>{var k;(k=this.conn)===null||k===void 0||k.send(b)})};this.log("push",`${s} ${o} (${d})`,c),this.isConnected()?_():this.sendBuffer.push(_)}onConnMessage(e){this.decode(e.data,s=>{let{topic:o,event:c,payload:d,ref:_}=s;(_&&_===this.pendingHeartbeatRef||c===(d==null?void 0:d.type))&&(this.pendingHeartbeatRef=null),this.log("receive",`${d.status||""} ${o} ${c} ${_&&"("+_+")"||""}`,d),this.channels.filter(b=>b.isMember(o)).forEach(b=>b.trigger(c,d,_)),this.stateChangeCallbacks.message.forEach(b=>b(s))})}endPointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:VSN}))}makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}setAuth(e){this.accessToken=e,this.channels.forEach(s=>{e&&s.updateJoinPayload({user_token:e}),s.joinedOnce&&s.isJoined()&&s.push(CHANNEL_EVENTS.access_token,{access_token:e})})}leaveOpenTopic(e){let s=this.channels.find(o=>o.topic===e&&(o.isJoined()||o.isJoining()));s&&(this.log("transport",`leaving duplicate topic "${e}"`),s.unsubscribe())}_onConnOpen(){this.log("transport",`connected to ${this.endPointURL()}`),this._flushSendBuffer(),this.reconnectTimer.reset(),this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.heartbeatTimer=setInterval(()=>this._sendHeartbeat(),this.heartbeatIntervalMs),this.stateChangeCallbacks.open.forEach(e=>e())}_onConnClose(e){this.log("transport","close",e),this._triggerChanError(),this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.scheduleTimeout(),this.stateChangeCallbacks.close.forEach(s=>s(e))}_onConnError(e){this.log("transport",e.message),this._triggerChanError(),this.stateChangeCallbacks.error.forEach(s=>s(e))}_triggerChanError(){this.channels.forEach(e=>e.trigger(CHANNEL_EVENTS.error))}_appendParams(e,s){if(Object.keys(s).length===0)return e;const o=e.match(/\?/)?"&":"?",c=new URLSearchParams(s);return`${e}${o}${c}`}_flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(e=>e()),this.sendBuffer=[])}_sendHeartbeat(){var e;if(!!this.isConnected()){if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.log("transport","heartbeat timeout. Attempting to re-establish connection"),(e=this.conn)===null||e===void 0||e.close(WS_CLOSE_NORMAL,"hearbeat timeout");return}this.pendingHeartbeatRef=this.makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef}),this.setAuth(this.accessToken)}}}class SupabaseRealtimeClient{constructor(e,s,o,c){const d={},_=c==="*"?`realtime:${o}`:`realtime:${o}:${c}`,b=s.Authorization.split(" ")[1];b&&(d.user_token=b),this.subscription=e.channel(_,d)}getPayloadRecords(e){const s={new:{},old:{}};return(e.type==="INSERT"||e.type==="UPDATE")&&(s.new=convertChangeData(e.columns,e.record)),(e.type==="UPDATE"||e.type==="DELETE")&&(s.old=convertChangeData(e.columns,e.old_record)),s}on(e,s){return this.subscription.on(e,o=>{let c={schema:o.schema,table:o.table,commit_timestamp:o.commit_timestamp,eventType:o.type,new:{},old:{},errors:o.errors};c=Object.assign(Object.assign({},c),this.getPayloadRecords(o)),s(c)}),this}subscribe(e=()=>{}){return this.subscription.onError(s=>e("SUBSCRIPTION_ERROR",s)),this.subscription.onClose(()=>e("CLOSED")),this.subscription.subscribe().receive("ok",()=>e("SUBSCRIBED")).receive("error",s=>e("SUBSCRIPTION_ERROR",s)).receive("timeout",()=>e("RETRYING_AFTER_TIMEOUT")),this.subscription}}class SupabaseQueryBuilder extends PostgrestQueryBuilder{constructor(e,{headers:s={},schema:o,realtime:c,table:d,fetch:_,shouldThrowOnError:b}){super(e,{headers:s,schema:o,fetch:_,shouldThrowOnError:b}),this._subscription=null,this._realtime=c,this._headers=s,this._schema=o,this._table=d}on(e,s){return this._realtime.isConnected()||this._realtime.connect(),this._subscription||(this._subscription=new SupabaseRealtimeClient(this._realtime,this._headers,this._schema,this._table)),this._subscription.on(e,s)}}const version="0.0.0",DEFAULT_HEADERS={"X-Client-Info":`storage-js/${version}`};var __awaiter$4=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};const _getErrorMessage=a=>a.msg||a.message||a.error_description||a.error||JSON.stringify(a),handleError=(a,e)=>{if(typeof a.json!="function")return e(a);a.json().then(s=>e({message:_getErrorMessage(s),status:(a==null?void 0:a.status)||500}))},_getRequestParams=(a,e,s,o)=>{const c={method:a,headers:(e==null?void 0:e.headers)||{}};return a==="GET"?c:(c.headers=Object.assign({"Content-Type":"application/json"},e==null?void 0:e.headers),c.body=JSON.stringify(o),Object.assign(Object.assign({},c),s))};function _handleRequest(a,e,s,o,c,d){return __awaiter$4(this,void 0,void 0,function*(){return new Promise((_,b)=>{a(s,_getRequestParams(e,o,c,d)).then(k=>{if(!k.ok)throw k;return o!=null&&o.noResolveJson?_(k):k.json()}).then(k=>_(k)).catch(k=>handleError(k,b))})})}function get(a,e,s,o){return __awaiter$4(this,void 0,void 0,function*(){return _handleRequest(a,"GET",e,s,o)})}function post(a,e,s,o,c){return __awaiter$4(this,void 0,void 0,function*(){return _handleRequest(a,"POST",e,o,c,s)})}function put(a,e,s,o,c){return __awaiter$4(this,void 0,void 0,function*(){return _handleRequest(a,"PUT",e,o,c,s)})}function remove(a,e,s,o,c){return __awaiter$4(this,void 0,void 0,function*(){return _handleRequest(a,"DELETE",e,o,c,s)})}const resolveFetch$1=a=>{let e;return a?e=a:typeof fetch=="undefined"?e=crossFetch:e=fetch,(...s)=>e(...s)};var __awaiter$3=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class StorageBucketApi{constructor(e,s={},o){this.url=e,this.headers=Object.assign(Object.assign({},DEFAULT_HEADERS),s),this.fetch=resolveFetch$1(o)}listBuckets(){return __awaiter$3(this,void 0,void 0,function*(){try{return{data:yield get(this.fetch,`${this.url}/bucket`,{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}})}getBucket(e){return __awaiter$3(this,void 0,void 0,function*(){try{return{data:yield get(this.fetch,`${this.url}/bucket/${e}`,{headers:this.headers}),error:null}}catch(s){return{data:null,error:s}}})}createBucket(e,s={public:!1}){return __awaiter$3(this,void 0,void 0,function*(){try{return{data:(yield post(this.fetch,`${this.url}/bucket`,{id:e,name:e,public:s.public},{headers:this.headers})).name,error:null}}catch(o){return{data:null,error:o}}})}updateBucket(e,s){return __awaiter$3(this,void 0,void 0,function*(){try{return{data:yield put(this.fetch,`${this.url}/bucket/${e}`,{id:e,name:e,public:s.public},{headers:this.headers}),error:null}}catch(o){return{data:null,error:o}}})}emptyBucket(e){return __awaiter$3(this,void 0,void 0,function*(){try{return{data:yield post(this.fetch,`${this.url}/bucket/${e}/empty`,{},{headers:this.headers}),error:null}}catch(s){return{data:null,error:s}}})}deleteBucket(e){return __awaiter$3(this,void 0,void 0,function*(){try{return{data:yield remove(this.fetch,`${this.url}/bucket/${e}`,{},{headers:this.headers}),error:null}}catch(s){return{data:null,error:s}}})}}var __awaiter$2=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};const DEFAULT_SEARCH_OPTIONS={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},DEFAULT_FILE_OPTIONS={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};class StorageFileApi{constructor(e,s={},o,c){this.url=e,this.headers=s,this.bucketId=o,this.fetch=resolveFetch$1(c)}uploadOrUpdate(e,s,o,c){return __awaiter$2(this,void 0,void 0,function*(){try{let d;const _=Object.assign(Object.assign({},DEFAULT_FILE_OPTIONS),c),b=Object.assign(Object.assign({},this.headers),e==="POST"&&{"x-upsert":String(_.upsert)});typeof Blob!="undefined"&&o instanceof Blob?(d=new FormData,d.append("cacheControl",_.cacheControl),d.append("",o)):typeof FormData!="undefined"&&o instanceof FormData?(d=o,d.append("cacheControl",_.cacheControl)):(d=o,b["cache-control"]=`max-age=${_.cacheControl}`,b["content-type"]=_.contentType);const k=this._removeEmptyFolders(s),$=this._getFinalPath(k),j=yield this.fetch(`${this.url}/object/${$}`,{method:e,body:d,headers:b});if(j.ok)return{data:{Key:$},error:null};{const _e=yield j.json();return{data:null,error:_e}}}catch(d){return{data:null,error:d}}})}upload(e,s,o){return __awaiter$2(this,void 0,void 0,function*(){return this.uploadOrUpdate("POST",e,s,o)})}update(e,s,o){return __awaiter$2(this,void 0,void 0,function*(){return this.uploadOrUpdate("PUT",e,s,o)})}move(e,s){return __awaiter$2(this,void 0,void 0,function*(){try{return{data:yield post(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:e,destinationKey:s},{headers:this.headers}),error:null}}catch(o){return{data:null,error:o}}})}copy(e,s){return __awaiter$2(this,void 0,void 0,function*(){try{return{data:yield post(this.fetch,`${this.url}/object/copy`,{bucketId:this.bucketId,sourceKey:e,destinationKey:s},{headers:this.headers}),error:null}}catch(o){return{data:null,error:o}}})}createSignedUrl(e,s){return __awaiter$2(this,void 0,void 0,function*(){try{const o=this._getFinalPath(e);let c=yield post(this.fetch,`${this.url}/object/sign/${o}`,{expiresIn:s},{headers:this.headers});const d=`${this.url}${c.signedURL}`;return c={signedURL:d},{data:c,error:null,signedURL:d}}catch(o){return{data:null,error:o,signedURL:null}}})}createSignedUrls(e,s){return __awaiter$2(this,void 0,void 0,function*(){try{return{data:(yield post(this.fetch,`${this.url}/object/sign/${this.bucketId}`,{expiresIn:s,paths:e},{headers:this.headers})).map(c=>Object.assign(Object.assign({},c),{signedURL:c.signedURL?`${this.url}${c.signedURL}`:null})),error:null}}catch(o){return{data:null,error:o}}})}download(e){return __awaiter$2(this,void 0,void 0,function*(){try{const s=this._getFinalPath(e);return{data:yield(yield get(this.fetch,`${this.url}/object/${s}`,{headers:this.headers,noResolveJson:!0})).blob(),error:null}}catch(s){return{data:null,error:s}}})}getPublicUrl(e){try{const s=this._getFinalPath(e),o=`${this.url}/object/public/${s}`;return{data:{publicURL:o},error:null,publicURL:o}}catch(s){return{data:null,error:s,publicURL:null}}}remove(e){return __awaiter$2(this,void 0,void 0,function*(){try{return{data:yield remove(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:e},{headers:this.headers}),error:null}}catch(s){return{data:null,error:s}}})}list(e,s,o){return __awaiter$2(this,void 0,void 0,function*(){try{const c=Object.assign(Object.assign(Object.assign({},DEFAULT_SEARCH_OPTIONS),s),{prefix:e||""});return{data:yield post(this.fetch,`${this.url}/object/list/${this.bucketId}`,c,{headers:this.headers},o),error:null}}catch(c){return{data:null,error:c}}})}_getFinalPath(e){return`${this.bucketId}/${e}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}}class StorageClient extends StorageBucketApi{constructor(e,s={},o){super(e,s,o)}from(e){return new StorageFileApi(this.url,this.headers,e,this.fetch)}}const resolveFetch=a=>{let e;return a?e=a:typeof fetch=="undefined"?e=crossFetch:e=fetch,(...s)=>e(...s)};var __awaiter$1=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class FunctionsClient{constructor(e,{headers:s={},customFetch:o}={}){this.url=e,this.headers=s,this.fetch=resolveFetch(o)}setAuth(e){this.headers.Authorization=`Bearer ${e}`}invoke(e,s){return __awaiter$1(this,void 0,void 0,function*(){try{const{headers:o,body:c}=s!=null?s:{},d=yield this.fetch(`${this.url}/${e}`,{method:"POST",headers:Object.assign({},this.headers,o),body:c}),_=d.headers.get("x-relay-error");if(_&&_==="true")return{data:null,error:new Error(yield d.text())};let b;const{responseType:k}=s!=null?s:{};return!k||k==="json"?b=yield d.json():k==="arrayBuffer"?b=yield d.arrayBuffer():k==="blob"?b=yield d.blob():b=yield d.text(),{data:b,error:null}}catch(o){return{data:null,error:o}}})}}var __awaiter=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};const DEFAULT_OPTIONS={schema:"public",autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,multiTab:!0,headers:DEFAULT_HEADERS$4};class SupabaseClient{constructor(e,s,o){if(this.supabaseUrl=e,this.supabaseKey=s,!e)throw new Error("supabaseUrl is required.");if(!s)throw new Error("supabaseKey is required.");const c=stripTrailingSlash(e),d=Object.assign(Object.assign({},DEFAULT_OPTIONS),o);if(this.restUrl=`${c}/rest/v1`,this.realtimeUrl=`${c}/realtime/v1`.replace("http","ws"),this.authUrl=`${c}/auth/v1`,this.storageUrl=`${c}/storage/v1`,c.match(/(supabase\.co)|(supabase\.in)/)){const b=c.split(".");this.functionsUrl=`${b[0]}.functions.${b[1]}.${b[2]}`}else this.functionsUrl=`${c}/functions/v1`;this.schema=d.schema,this.multiTab=d.multiTab,this.fetch=d.fetch,this.headers=Object.assign(Object.assign({},DEFAULT_HEADERS$4),o==null?void 0:o.headers),this.shouldThrowOnError=d.shouldThrowOnError||!1,this.auth=this._initSupabaseAuthClient(d),this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers},d.realtime)),this._listenForAuthEvents(),this._listenForMultiTabEvents()}get functions(){return new FunctionsClient(this.functionsUrl,{headers:this._getAuthHeaders(),customFetch:this.fetch})}get storage(){return new StorageClient(this.storageUrl,this._getAuthHeaders(),this.fetch)}from(e){const s=`${this.restUrl}/${e}`;return new SupabaseQueryBuilder(s,{headers:this._getAuthHeaders(),schema:this.schema,realtime:this.realtime,table:e,fetch:this.fetch,shouldThrowOnError:this.shouldThrowOnError})}rpc(e,s,{head:o=!1,count:c=null}={}){return this._initPostgRESTClient().rpc(e,s,{head:o,count:c})}channel(e,s){var o,c;const d=(c=(o=this.auth.session())===null||o===void 0?void 0:o.access_token)!==null&&c!==void 0?c:this.supabaseKey;return this.realtime.isConnected()||this.realtime.connect(),this.realtime.channel(e,Object.assign(Object.assign({},s),{user_token:d}))}removeAllSubscriptions(){return __awaiter(this,void 0,void 0,function*(){const e=this.getSubscriptions().slice(),s=e.map(c=>this.removeSubscription(c));return(yield Promise.all(s)).map(({error:c},d)=>({data:{subscription:e[d]},error:c}))})}removeChannel(e){return __awaiter(this,void 0,void 0,function*(){const{error:s}=yield this._closeSubscription(e),o=this.getSubscriptions(),c=o.filter(d=>d.isJoined()).length;return o.length===0&&(yield this.realtime.disconnect()),{data:{openChannels:c},error:s}})}removeSubscription(e){return __awaiter(this,void 0,void 0,function*(){const{error:s}=yield this._closeSubscription(e),o=this.getSubscriptions(),c=o.filter(d=>d.isJoined()).length;return o.length===0&&(yield this.realtime.disconnect()),{data:{openSubscriptions:c},error:s}})}_closeSubscription(e){return __awaiter(this,void 0,void 0,function*(){let s=null;if(!e.isClosed()){const{error:o}=yield this._unsubscribeSubscription(e);s=o}return this.realtime.remove(e),{error:s}})}_unsubscribeSubscription(e){return new Promise(s=>{e.unsubscribe().receive("ok",()=>s({error:null})).receive("error",o=>s({error:o})).receive("timeout",()=>s({error:new Error("timed out")}))})}getSubscriptions(){return this.realtime.channels}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:s,detectSessionInUrl:o,localStorage:c,headers:d,fetch:_,cookieOptions:b,multiTab:k}){const $={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new SupabaseAuthClient({url:this.authUrl,headers:Object.assign(Object.assign({},d),$),autoRefreshToken:e,persistSession:s,detectSessionInUrl:o,localStorage:c,fetch:_,cookieOptions:b,multiTab:k})}_initRealtimeClient(e){return new RealtimeClient(this.realtimeUrl,Object.assign(Object.assign({},e),{params:Object.assign(Object.assign({},e==null?void 0:e.params),{apikey:this.supabaseKey})}))}_initPostgRESTClient(){return new PostgrestClient(this.restUrl,{headers:this._getAuthHeaders(),schema:this.schema,fetch:this.fetch,throwOnError:this.shouldThrowOnError})}_getAuthHeaders(){var e,s;const o=Object.assign({},this.headers),c=(s=(e=this.auth.session())===null||e===void 0?void 0:e.access_token)!==null&&s!==void 0?s:this.supabaseKey;return o.apikey=this.supabaseKey,o.Authorization=o.Authorization||`Bearer ${c}`,o}_listenForMultiTabEvents(){if(!this.multiTab||!isBrowser$1()||!(window!=null&&window.addEventListener))return null;try{return window==null?void 0:window.addEventListener("storage",e=>{var s,o,c;if(e.key===STORAGE_KEY$1){const d=JSON.parse(String(e.newValue)),_=(o=(s=d==null?void 0:d.currentSession)===null||s===void 0?void 0:s.access_token)!==null&&o!==void 0?o:void 0,b=(c=this.auth.session())===null||c===void 0?void 0:c.access_token;_?!b&&_?this._handleTokenChanged("SIGNED_IN",_,"STORAGE"):b!==_&&this._handleTokenChanged("TOKEN_REFRESHED",_,"STORAGE"):this._handleTokenChanged("SIGNED_OUT",_,"STORAGE")}})}catch(e){return console.error("_listenForMultiTabEvents",e),null}}_listenForAuthEvents(){let{data:e}=this.auth.onAuthStateChange((s,o)=>{this._handleTokenChanged(s,o==null?void 0:o.access_token,"CLIENT")});return e}_handleTokenChanged(e,s,o){(e==="TOKEN_REFRESHED"||e==="SIGNED_IN")&&this.changedAccessToken!==s?(this.realtime.setAuth(s),o=="STORAGE"&&this.auth.setAuth(s),this.changedAccessToken=s):(e==="SIGNED_OUT"||e==="USER_DELETED")&&(this.realtime.setAuth(this.supabaseKey),o=="STORAGE"&&this.auth.signOut())}}const createClient=(a,e,s)=>new SupabaseClient(a,e,s);let nanoid=(a=21)=>crypto.getRandomValues(new Uint8Array(a)).reduce((e,s)=>(s&=63,s<36?e+=s.toString(36):s<62?e+=(s-26).toString(36).toUpperCase():s>62?e+="-":e+="_",e),"");const supabase=createClient("https://pidxdsxphlhzjnzmifth.supabase.co","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InBpZHhkc3hwaGxoempuem1pZnRoIiwicm9sZSI6ImFub24iLCJpYXQiOjE2NTYyMzA1NTYsImV4cCI6MTk3MTgwNjU1Nn0.bqlw7802fsWRnqU5BLYtmXk_k-D1VFmbkHMywWc15NM");evalScope(Tone,controls,{WebDirt},__vitePreload(()=>Promise.resolve().then(function(){return strudel}),void 0),__vitePreload(()=>import("./index.bc41bc99.js"),[]),__vitePreload(()=>import("./index.20351e53.js"),[]),__vitePreload(()=>import("./index.a99da263.js"),[]),__vitePreload(()=>import("./index.35ffa8cc.js"),[]),__vitePreload(()=>import("./index.ddbbce2d.js"),[]),__vitePreload(()=>import("./index.e22f1e0a.js"),[]),__vitePreload(()=>import("./osc.a89113a6.js"),[]),__vitePreload(()=>import("./index.8f3159df.js"),[]),__vitePreload(()=>import("./serial.ef76d3fb.js"),[]),__vitePreload(()=>import("./index.bfe9f6bc.js"),[]));loadWebDirt({sampleMapUrl:"EmuSP12.json",sampleFolder:"EmuSP12"});prebake();async function initCode(){var a,e;try{const o=(e=(a=window.location.href.split("?")[1])==null?void 0:a.split("#"))==null?void 0:e[0],c=window.location.href.split("#")[1];if(c)return console.log("decode hash from url"),atob(decodeURIComponent(c||""));if(o)return supabase.from("code").select("code").eq("hash",o).then(({data:d,error:_})=>{if(_&&console.warn("failed to load hash",err),d.length)return console.log("load hash from database",o),d[0].code})}catch(s){console.warn("failed to decode",s)}}function getRandomTune(){const a=Object.values(tunes);return(s=>s[Math.floor(Math.random()*s.length)])(a)}const randomTune=getRandomTune(),defaultSynth=getDefaultSynth(),isEmbedded=window.location!==window.parent.location;function App(){const[a,e]=react.exports.useState(),[s,o]=react.exports.useState(),{setCode:c,setPattern:d,error:_,code:b,cycle:k,dirty:$,log:j,togglePlay:_e,activeCode:et,setActiveCode:tt,activateCode:nt,pattern:it,pushLog:rt,pending:st,hideHeader:ot,hideConsole:at}=useRepl({tune:"// LOADING...",defaultSynth});react.exports.useEffect(()=>{initCode().then(lt=>c(lt||randomTune))},[]);const ht=react.exports.useRef();return react.exports.useLayoutEffect(()=>{var lt;ht.current&&(ht.current.scrollTop=(lt=ht.current)==null?void 0:lt.scrollHeight)},[j]),react.exports.useLayoutEffect(()=>{const lt=async ut=>{(ut.ctrlKey||ut.altKey)&&(ut.code==="Enter"?(ut.preventDefault(),flash(a),await nt()):ut.code==="Period"&&(k.stop(),ut.preventDefault()))};return window.addEventListener("keydown",lt,!0),()=>window.removeEventListener("keydown",lt,!0)},[it,b,nt,k,a]),useHighlighting({view:a,pattern:it,active:k.started&&!(et!=null&&et.includes("strudel disable-highlighting"))}),useWebMidi({ready:react.exports.useCallback(({outputs:lt})=>{rt(`WebMidi ready! Just add .midi(${lt.map(ut=>`'${ut.name}'`).join(" | ")}) to the pattern. `)},[rt]),connected:react.exports.useCallback(({outputs:lt})=>{rt(`Midi device connected! Available: ${lt.map(ut=>`'${ut.name}'`).join(", ")}`)},[rt]),disconnected:react.exports.useCallback(({outputs:lt})=>{rt(`Midi device disconnected! Available: ${lt.map(ut=>`'${ut.name}'`).join(", ")}`)},[rt])}),jsxs("div",{className:"min-h-screen flex flex-col",children:[!ot&&jsxs("header",{id:"header",className:cx("flex-none w-full px-2 flex border-b border-gray-200 justify-between z-[10] bg-gray-100",isEmbedded?"h-8":"h-14"),children:[jsxs("div",{className:"flex items-center space-x-2",children:[jsx("img",{src:logo,className:cx("Tidal-logo",isEmbedded?"w-6 h-6":"w-10 h-10"),alt:"logo"}),jsxs("h1",{className:isEmbedded?"text-l":"text-xl",children:["Strudel ",isEmbedded?"Mini ":"","REPL"]})]}),jsxs("div",{className:"flex",children:[jsx("button",{onClick:()=>{getAudioContext().resume(),_e()},className:cx("hover:bg-gray-300",isEmbedded?"px-2":"p-2"),children:st?jsx(Fragment,{children:"loading..."}):jsxs("span",{className:cx("flex items-center","w-16"),children:[k.started?jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zM7 8a1 1 0 012 0v4a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v4a1 1 0 102 0V8a1 1 0 00-1-1z",clipRule:"evenodd"})}):jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM9.555 7.168A1 1 0 008 8v4a1 1 0 001.555.832l3-2a1 1 0 000-1.664l-3-2z",clipRule:"evenodd"})}),k.started?"pause":"play"]})}),!isEmbedded&&jsx("button",{className:"hover:bg-gray-300 p-2",onClick:async()=>{const lt=getRandomTune();console.log("tune",lt),c(lt),cleanupDraw(),cleanupUi(),resetLoadedSamples(),prebake();const ut=await evaluate(lt);d(ut.pattern),tt(lt)},children:"\u{1F3B2} random"}),!isEmbedded&&jsx("button",{className:cx("hover:bg-gray-300",isEmbedded?"px-2":"p-2"),children:jsx("a",{href:"./tutorial",children:"\u{1F4DA} tutorial"})}),!isEmbedded&&jsxs("button",{className:cx("cursor-pointer hover:bg-gray-300",isEmbedded?"px-2":"p-2"),onClick:async()=>{const lt=et||b;if(s===lt){rt("Link already generated!");return}const ut=nanoid(12),{data:ct,error:dt}=await supabase.from("code").insert([{code:lt,hash:ut}]);if(dt){console.log("error",dt);const ft=`Error: ${dt.message}`;rt(ft)}else{o(et||b);const ft=window.location.origin+"?"+ut;navigator.clipboard.writeText(ft);const yt=`Link copied to clipboard: ${ft}`;rt(yt)}},children:["\u{1F4E3} share",s&&s===(et||b)?"d!":""]}),isEmbedded&&jsx("button",{className:cx("hover:bg-gray-300 px-2"),children:jsx("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",title:"Open in REPL",children:"\u{1F680} open"})}),isEmbedded&&jsx("button",{className:cx("hover:bg-gray-300 px-2"),children:jsx("a",{onClick:()=>{window.location.href=initialUrl,window.location.reload()},title:"Reset",children:"\u{1F494} reset"})})]})]}),jsxs("section",{className:"grow flex flex-col text-gray-100",children:[jsxs("div",{className:"grow relative flex overflow-auto pb-8 cursor-text",id:"code",children:[jsx(CodeMirror,{value:b,onChange:c,onViewChanged:e}),jsx("span",{className:"z-[20] bg-black rounded-t-md py-1 px-2 fixed bottom-0 right-1 text-xs whitespace-pre text-right pointer-events-none",children:k.started?$?`ctrl+enter to update +.pianoroll({vertical:1})`,bossaRandom=`const chords = "" +const roots = chords.rootNotes(2) + +stack( + chords.voicings(['F4', 'A5']).struct( + \` x@2 ~ x ~ ~ ~ x | + x? ~ ~ x@3 ~ x | + x? ~ ~ x ~ x@3\`), + roots.struct("x [~ x?0.2] x [~ x?] | x!4 | x@2 ~ ~ ~ x x x").transpose("0 7") +).slow(2).pianoroll().note().piano().out();`;var tunes=Object.freeze(Object.defineProperty({__proto__:null,timeCatMini,timeCat,shapeShifted,tetrisMini,whirlyStrudel,swimming,giantSteps,giantStepsReggae,transposedChordsHacked,scaleTranspose,struct,magicSofa,confusedPhone,zeldasRescue,technoDrums,caverave,callcenterhero,primalEnemy,synthDrums,sampleDrums,xylophoneCalling,sowhatelse,barryHarris,blippyRhodes,wavyKalimba,jemblung,risingEnemy,festivalOfFingers,festivalOfFingers2,undergroundPlumber,bridgeIsOver,goodTimes,echoPiano,sml1,speakerman,randomBells,waa,waa2,hyperpop,festivalOfFingers3,bossa,customTrigger,bornagain,meltingsubmarine,swimmingWithSoundfonts,outroMusic,bassFuge,bossaRandom},Symbol.toStringTag,{value:"Module"}));const bufferCache={},loadCache={},getCachedBuffer=a=>bufferCache[a],loadBuffer=(a,e)=>(loadCache[a]||(loadCache[a]=fetch(a).then(s=>s.arrayBuffer()).then(async s=>{const o=await e.decodeAudioData(s);return bufferCache[a]=o,o})),loadCache[a]),getLoadedBuffer=a=>bufferCache[a],githubCache={};let sampleCache={current:void 0};const loadGithubSamples=async(a,e)=>{const s="loadGithubSamples "+a,o=localStorage.getItem(s);if(o&&(console.log("[sampler]: loaded sample list from localstorage",a),githubCache[a]=JSON.parse(o)),githubCache[a])return sampleCache.current=githubCache[a],githubCache[a];console.log("[sampler]: fetching sample list from github",a);try{const[c,d,..._]=a.split("/"),b=`https://api.github.com/repos/${c}/${d}/contents`,k=await fetch(`${b}/${_.join("/")}`).then($=>$.json());githubCache[a]=(await Promise.all(k.map(async({name:$,path:j})=>({name:$,content:await fetch(`${b}/${j}`).then(_e=>_e.json()).catch(_e=>{console.error("could not load path",_e)})})))).filter(({content:$})=>!!$).reduce(($,{name:j,content:_e})=>kt(Dt({},$),{[(e==null?void 0:e(j))||j]:_e.map(({download_url:et})=>et)}),{})}catch(c){console.error("[sampler]: failed to fetch sample list from github",c);return}return sampleCache.current=githubCache[a],localStorage.setItem(s,JSON.stringify(sampleCache.current)),console.log("[sampler]: loaded samples:",sampleCache.current),githubCache[a]},samples=(a,e=a._base||"")=>{sampleCache.current=Dt(Dt({},sampleCache.current),Object.fromEntries(Object.entries(a).map(([s,o])=>{if(typeof o=="string"&&(o=[o]),typeof o!="object")throw new Error("wrong sample map format for "+s);e=o._base||e;const c=d=>(e+d).replace("github:","https://raw.githubusercontent.com/");return Array.isArray(o)?[s,o.map(c)]:[s,Object.fromEntries(Object.entries(o).map(([d,_])=>[d,(typeof _=="string"?[_]:_).map(c)]))]})))},resetLoadedSamples=()=>{sampleCache.current=void 0},getLoadedSamples$1=()=>sampleCache.current,{Pattern:Pattern$1}=strudel;let audioContext;const getAudioContext=()=>(audioContext||(audioContext=new AudioContext),audioContext),getFilter=(a,e,s)=>{const o=getAudioContext().createBiquadFilter();return o.type=a,o.frequency.value=e,o.Q.value=s,o},getADSR=(a,e,s,o,c,d,_)=>{const b=getAudioContext().createGain();return b.gain.setValueAtTime(0,d),b.gain.linearRampToValueAtTime(c,d+a),b.gain.linearRampToValueAtTime(s*c,d+a+e),b.gain.setValueAtTime(s*c,_),b.gain.linearRampToValueAtTime(0,_+o),b},getOscillator=({s:a,freq:e,t:s,duration:o,release:c})=>{const d=getAudioContext().createOscillator();return d.type=a||"triangle",d.frequency.value=Number(e),d.start(s),d.stop(s+o+c),d},getSoundfontKey=a=>{var o,c,d,_;if(!globalThis.soundfontList)return!1;if((c=(o=globalThis.soundfontList)==null?void 0:o.instruments)!=null&&c.includes(a))return a;const e=(_=(d=globalThis.soundfontList)==null?void 0:d.instrumentNames)==null?void 0:_.indexOf(a),s=e<10?`00${e}`:e<100?`0${e}`:e;if(e!==-1)return globalThis.soundfontList.instruments.find(b=>b.startsWith(s))},getSampleBufferSource=async(a,e,s)=>{let o=0;s&&(o=toMidi$1(s)-36);const c=getAudioContext(),d=getLoadedSamples();if(!d)throw new Error("no samples loaded");const _=d==null?void 0:d[a];if(!_)throw new Error("sample not found:",a,"try one of "+Object.keys(d));if(typeof _!="object")throw new Error("wrong format for sample bank:",a);let b;if(Array.isArray(_))b=_[e%_.length];else{if(!s)throw new Error("no note(...) set for sound",a);const _e=tt=>toMidi$1(tt)-toMidi$1(s),et=Object.keys(_).filter(tt=>!tt.startsWith("_")).reduce((tt,nt,it)=>!tt||Math.abs(_e(nt)){if(!a.includes(":"))return[a,e];let[s,o]=a.split(":");return isNaN(Number(o))?[a,e]:[s,o]};Pattern$1.prototype.out=function(){return this.onTrigger(async(a,e,s,o)=>{const c=e.duration/o;try{const d=getAudioContext();a=d.currentTime+a-s;let{freq:_,s:b,sf:k,clip:$=0,n:j=0,note:_e,gain:et=1,cutoff:tt,resonance:nt=1,hcutoff:it,hresonance:rt=1,bandf:st,bandq:ot=1,pan:at,attack:ht=.001,decay:lt=.05,sustain:ut=.5,release:ct=.001,speed:dt=1,begin:ft=0,end:Et=1}=e.value;const{velocity:yt=1}=e.context;et*=yt;const gt=[];if(typeof b=="string"&&([b,j]=splitSN(b,j)),typeof _e=="string"&&([_e,j]=splitSN(_e,j)),!b||["sine","square","triangle","sawtooth"].includes(b)){j=_e||j,typeof j=="string"&&(j=toMidi$1(j)),!_&&typeof j=="number"&&(_=fromMidi(j));const pt=getOscillator({t:a,s:b,freq:_,duration:c,release:ct});gt.push(pt);const mt=d.createGain();mt.gain.value=.3,gt.push(mt);const At=getADSR(ht,lt,ut,ct,1,a,a+c);gt.push(At)}else{if(dt===0)return;if(!b){console.warn("no sample specified");return}const pt=getSoundfontKey(b);let mt;try{pt?mt=await globalThis.getFontBufferSource(pt,_e||j,d):mt=await getSampleBufferSource(b,j,_e)}catch(vt){console.warn(vt);return}if(d.currentTime>a){console.warn("sample still loading:",b,j);return}if(!mt){console.warn("no buffer source");return}mt.playbackRate.value=Math.abs(dt)*mt.playbackRate.value;let At=pt||$?c:mt.buffer.duration;const Ot=ft*At;if(At=(Et-ft)*At/Math.abs(dt),pt||$?mt.start(a,Ot):mt.start(a,Ot,At),gt.push(mt),pt||$){const vt=d.createGain(),Ct=.1;vt.gain.value=.6,vt.gain.setValueAtTime(vt.gain.value,a+At),vt.gain.linearRampToValueAtTime(0,a+At+Ct),gt.push(vt),mt.stop(a+At+Ct)}else mt.stop(a+At)}const St=d.createGain();if(St.gain.value=et,gt.push(St),tt!==void 0&>.push(getFilter("lowpass",tt,nt)),it!==void 0&>.push(getFilter("highpass",it,rt)),st!==void 0&>.push(getFilter("bandpass",st,ot)),at!==void 0){const pt=d.createStereoPanner();pt.pan.value=2*at-1,gt.push(pt)}gt.push(d.destination),gt.slice(1).reduce((pt,mt)=>pt.connect(mt),gt[0])}catch(d){console.warn(".out error:",d)}})};async function prebake(a=!1){samples({piano:{A0:"A0v8.mp3",C1:"C1v8.mp3",Ds1:"Ds1v8.mp3",Fs1:"Fs1v8.mp3",A1:"A1v8.mp3",C2:"C2v8.mp3",Ds2:"Ds2v8.mp3",Fs2:"Fs2v8.mp3",A2:"A2v8.mp3",C3:"C3v8.mp3",Ds3:"Ds3v8.mp3",Fs3:"Fs3v8.mp3",A3:"A3v8.mp3",C4:"C4v8.mp3",Ds4:"Ds4v8.mp3",Fs4:"Fs4v8.mp3",A4:"A4v8.mp3",C5:"C5v8.mp3",Ds4:"Ds4v8.mp3",Fs5:"Fs5v8.mp3",A5:"A5v8.mp3",C6:"C6v8.mp3",Ds6:"Ds6v8.mp3",Fs6:"Fs6v8.mp3",A6:"A6v8.mp3",C7:"C7v8.mp3",Ds7:"Ds7v8.mp3",Fs7:"Fs7v8.mp3",A7:"A7v8.mp3",C8:"C8v8.mp3"}},"./piano/"),a||await fetch("EmuSP12.json").then(e=>e.json()).then(e=>samples(e,"./EmuSP12/"))}const maxPan=toMidi$1("C8"),panwidth=(a,e)=>a*e+(1-e)/2;Pattern$5.prototype.piano=function(){return this.clip(1).s("piano").fmap(a=>{const e=panwidth(Math.min(toMidi$1(a.note)/maxPan,1),.5);return kt(Dt({},a),{pan:(a.pan||1)*e})})};var WebDirtPacked$1={exports:{}};(function(a,e){(function(s,o){a.exports=o()})(self,()=>(()=>{var s={d:($,j)=>{for(var _e in j)s.o(j,_e)&&!s.o($,_e)&&Object.defineProperty($,_e,{enumerable:!0,get:j[_e]})},o:($,j)=>Object.prototype.hasOwnProperty.call($,j),r:$=>{typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty($,Symbol.toStringTag,{value:"Module"}),Object.defineProperty($,"__esModule",{value:!0})}},o={};function c($,j){if(this.msg=$,this.ac=j.ac,this.sampleBank=j.sampleBank,this.outputNode=j.destination,this.cutGroups=j.cutGroups,this.eventCounter=j.eventCounter,this.audioOutputs=j.audioOutputs,this.workletsAvailable=j.workletsAvailable,typeof $.buffer=="object")this.bufferContainer=$.buffer;else{if(this.sampleBank==null)return void console.log("WebDirt: there is no sample bank, cancelling event");if(typeof this.sampleBank!="object")return void console.log("WebDirt: buffer not provided by calling application + no WebDirt sample bank");if(this.msg.n=parseInt(this.msg.n),isNaN(this.msg.n)&&(this.msg.n=0),!this.sampleBank.sampleNameExists(this.msg.s))return void console.log("WebDirt: no sample named "+this.msg.s+" exists in sample map");if(!this.sampleBank.getBufferMightSucceed(this.msg.s,this.msg.n))return}if(this.when=this.msg.when,isNaN(this.when))console.log("WebDirt: 'when' is null or not a number");else if(this.nudge=parseFloat(this.msg.nudge),isNaN(this.nudge)||(this.when=this.when+this.nudge),isNaN(parseFloat(this.msg.speed))&&(this.msg.speed=1),this.msg.speed!=0)if(isNaN(parseFloat(this.msg.note))&&(this.msg.note=0),this.msg.speed=this.msg.speed*Math.pow(2,this.msg.note/12),this.msg.begin=d(this.msg.begin,0),this.msg.end=d(this.msg.end,1),this.msg.end!=this.msg.begin){if(this.msg.begin>this.msg.end&&(this.msg.speed=-1*this.msg.speed),this.msg.speed<0&&(this.msg.begin=1-this.msg.begin,this.msg.end=1-this.msg.end),this.msg.begin>this.msg.end){let dt=this.msg.begin;this.msg.begin=this.msg.end,this.msg.end=dt}var _e;if(this.source=_e=this.ac.createBufferSource(),this.source.onended=this.disconnectHandler(),this.disconnectOnEnd(this.source),this.source.playbackRate.value=Math.abs(this.msg.speed),this.prepareBuffer(),this.buffer!=null)this.source.buffer=this.buffer,this.start();else{var et=this,tt=1e3*(this.msg.when-this.ac.currentTime-.2);tt<=0&&(tt=1e3*(this.msg.when-this.ac.currentTime-.2)),tt>0&&setTimeout(function(){et.prepareBuffer(),et.buffer!=null?(et.source.buffer=et.buffer,et.start()):(console.log("WebDirt: unable to access sample "+$.s+":"+$.n+" on second attempt"),et.stopAll())},tt)}this.cut(this.msg.cut,this.msg.s),_e=this.shape(_e,this.msg.shape),_e=this.lowPassFilter(_e,this.msg.cutoff,this.msg.resonance),_e=this.highPassFilter(_e,this.msg.hcutoff,this.msg.hresonance),_e=this.bandPassFilter(_e,this.msg.bandf,this.msg.bandq),_e=this.vowel(_e,this.msg.vowel),_e=this.delay(_e,this.msg.delay,this.msg.delaytime,this.msg.delayfeedback),_e=this.loop(_e,this.msg.loop,this.msg.begin,this.msg.end,this.msg.speed),_e=this.crush(_e,this.msg.crush),_e=this.coarse(_e,this.msg.coarse),this.unit(this.msg.unit,this.msg.speed);var nt=parseFloat(this.msg.gain);isNaN(nt)&&(nt=1),nt>2&&(nt=2),nt<0&&(nt=0);var it=parseFloat(this.msg.overgain);isNaN(it)||(nt+=it),nt=Math.pow(nt,4);var rt,st,ot,at=parseFloat($.pan);if(isNaN(at)&&(at=.5),this.audioOutputs==2)(at>1||at<0)&&(at-=Math.floor(at)),rt=at,st=0,ot=1;else{var ht=(at-=Math.floor(at))*this.audioOutputs;(ot=(st=Math.floor(ht))+1)>=this.audioOutputs&&(ot=0),rt=ht-Math.floor(ht)}var lt=this.ac.createGain();this.disconnectOnEnd(lt);var ut=this.ac.createGain();this.disconnectOnEnd(ut),lt.gain.value=Math.cos(rt*Math.PI/2)*nt,ut.gain.value=Math.sin(rt*Math.PI/2)*nt,_e.connect(lt),_e.connect(ut),this.gain1=lt,this.gain2=ut;var ct=this.ac.createChannelMerger(this.audioOutputs);this.disconnectOnEnd(ct),lt.connect(ct,0,st),ut.connect(ct,0,ot),ct.connect(this.outputNode)}else this.stopAll()}function d($,j){let _e=parseFloat($);return isNaN(_e)?j:_e>1?1:_e<0?0:_e}s.r(o),s.d(o,{WebDirt:()=>k}),c.prototype.prepareBuffer=function(){typeof this.bufferContainer=="object"?typeof this.bufferContainer.buffer=="object"&&(this.msg.speed>=0?this.buffer=this.bufferContainer.buffer:(typeof this.bufferContainer.reverseBuffer=="object"||(this.bufferContainer.reverseBuffer=this.reverseBuffer(this.ac,this.bufferContainer.buffer)),this.buffer=this.bufferContainer.reverseBuffer)):(this.msg.speed>=0?this.buffer=this.sampleBank.getBuffer(this.msg.s,this.msg.n):this.buffer=this.sampleBank.getReverseBuffer(this.msg.s,this.msg.n),this.buffer=this.accel(this.buffer,this.msg.accelerate,this.msg.speed))},c.prototype.disconnectOnEnd=function($){this.source.disconnectQueue==null&&(this.source.disconnectQueue=new Array),this.source.disconnectQueue.unshift($)},c.prototype.start=function(){let $=Math.abs(this.msg.speed),j=(this.msg.end-this.msg.begin)*this.source.buffer.duration/$,_e=this.msg.begin*this.source.buffer.duration;this.source.start(this.when,_e,j)},c.prototype.stopAll=function(){if(this.source!=null&&this.source.disconnectQueue!=null){for(var $=0;$1&&this.workletsAvailable){var _e=new AudioWorkletNode(this.ac,"coarse-processor");return _e.parameters.get("coarse").value=j,$.connect(_e),this.disconnectOnEnd(_e),_e}return $},c.prototype.crush=function($,j){if(j=parseInt(j),isNaN(j)&&(j=null),j!=null&&j>0&&this.workletsAvailable){var _e=new AudioWorkletNode(this.ac,"crush-processor");return _e.parameters.get("crush").value=j,$.connect(_e),this.disconnectOnEnd(_e),_e}return $},c.prototype.cut=function($,j){if($=parseInt($),!isNaN($)&&$!=0){for(var _e={cutGroup:$,node:this,sampleName:j},et=0;et2e4&&(j=2e4),isNaN(parseFloat(_e))&&(_e=0),_e<0&&(_e=0),_e>1&&(_e=1),_e=1/(_e=1-.999*(_e*=_e));var et=this.ac.createBiquadFilter();return this.disconnectOnEnd(et),et.type="highpass",et.frequency.value=j,et.Q.value=_e,$.connect(et),et},c.prototype.lowPassFilter=function($,j,_e){if(isNaN(parseFloat(j))&&isNaN(parseFloat(_e)))return $;isNaN(parseFloat(j))&&(j=440),j<20&&(j=20),j>2e4&&(j=2e4),isNaN(parseFloat(_e))&&(_e=0),_e<0&&(_e=0),_e>1&&(_e=1),_e=1/(_e=1-.999*(_e*=_e));var et=this.ac.createBiquadFilter();return this.disconnectOnEnd(et),et.type="lowpass",et.frequency.value=j,et.Q.value=_e,$.connect(et),et},c.prototype.bandPassFilter=function($,j,_e){if(isNaN(parseFloat(j))&&isNaN(parseFloat(_e)))return $;isNaN(parseFloat(j))&&(j=440),j<20&&(j=20),j>2e4&&(j=2e4),isNaN(parseFloat(_e))&&(_e=10),_e<1&&(_e=1),_e>100&&(_e=100);var et=this.ac.createBiquadFilter();return this.disconnectOnEnd(et),et.type="bandpass",et.frequency.value=j,et.Q.value=_e,et.gain.value=_e,$.connect(et),et},c.prototype.loop=function($,j){if(isNaN(parseInt(j))||j==0)return $;try{var _e=this.source.buffer.duration-this.msg.begin*this.source.buffer.duration-(1-this.msg.end)*this.source.buffer.duration;return this.source.loop=!0,this.source.loopStart=this.msg.begin*this.source.buffer.duration,this.source.loopEnd=this.msg.end*this.source.buffer.duration,this.source.stop(this.when+_e*j/this.source.playbackRate.value),$}catch{return console.log("WebDirt Warning: buffer data not yet available to calculate loop time - no looping applied"),$}},c.prototype.accelerate=function($,j){if(j=Math.abs(j),isNaN(parseFloat($))&&($=0),$!=0){$=parseFloat($),this.source.playbackRate.setValueAtTime(j,this.when);var _e=Math.abs((this.source.buffer.length*$/this.ac.sampleRate+j)/j),et=j+this.source.buffer.length*$/this.ac.sampleRate;if(et<0)this.source.buffer=this.negativeAccelerateBuffer(this.source.buffer,$,j),this.source.playbackRate.linearRampToValueAtTime(0,this.when+_e),this.source.playbackRate.linearRampToValueAtTime(1,this.when+this.source.buffer.duration);else try{this.source.playbackRate.linearRampToValueAtTime(et,this.when+this.source.buffer.duration)}catch{console.log("WebDirt: Warning, buffer data not loaded, could not apply acclerate effect")}}},c.prototype.negativeAccelerateBuffer=function($,j,_e){var et=$.length,tt=new Float32Array(et),nt=this.ac.createBuffer($.numberOfChannels,$.length,this.ac.sampleRate),it=new Float32Array(et),rt=Math.abs(_e/(_e-j))*et;rt=et*Math.abs((this.source.buffer.length*j/this.ac.sampleRate+_e)/_e)/this.source.buffer.duration,rt=Math.trunc(rt);for(var st=0;st<$.numberOfChannels;st++){$.copyFromChannel(tt,st,0);for(var ot=0;ot=1&&(j=.999),j>0&&this.workletsAvailable){var _e=new AudioWorkletNode(this.ac,"shape-processor");return _e.parameters.get("shape").value=j,$.connect(_e),this.disconnectOnEnd(_e),_e}return $},c.prototype.stop=function($){this.gain1.gain.setValueAtTime(this.gain1.gain.value,$),this.gain1.gain.linearRampToValueAtTime(0,$+.02),this.gain2.gain.setValueAtTime(this.gain1.gain.value,$),this.gain2.gain.linearRampToValueAtTime(0,$+.02)},c.prototype.unit=function($,j){$=="c"&&(this.source.playbackRate.value=this.source.playbackRate.value*this.source.buffer.duration)},c.prototype.vowel=function($,j){if(typeof j!="string")return $;if((j=j.toLowerCase())=="a"||j=="e"||j=="i"||j=="o"||j=="u"){var _e,et,tt,nt=this.ac.createGain();switch(this.disconnectOnEnd(nt),j){case"a":_e=_.a.freqs,et=_.a.qs,tt=_.a.amps;break;case"e":_e=_.e.freqs,et=_.e.qs,tt=_.e.amps;break;case"i":_e=_.i.freqs,et=_.i.qs,tt=_.i.amps;break;case"o":_e=_.o.freqs,et=_.o.qs,tt=_.o.amps;break;case"u":_e=_.u.freqs,et=_.u.qs,tt=_.u.amps}for(var it=0;it<5;it++){var rt=this.ac.createGain();this.disconnectOnEnd(rt),rt.gain.value=tt[it];var st=this.ac.createBiquadFilter();this.disconnectOnEnd(st),st.type="bandpass",st.Q.value=et[it]/8,st.frequency.value=_e[it],$.connect(st),st.connect(rt),rt.connect(nt)}return nt.gain.value=8,nt}return $},c.prototype.reverseBuffer=function($,j){for(var _e=j.length,et=new Float32Array(_e),tt=$.createBuffer(j.numberOfChannels,j.length,$.sampleRate),nt=new Float32Array(_e),it=0;it{console.log("WebDirt: audio worklets added"),this.workletsAvailable=!0}).catch(j=>{console.log("WebDirt: error loading AudioWorklets.js: "+j),console.log("(WebDirt should still work but shape, coarse, and crush will have no effect)"),this.workletsAvailable=!1}):(console.log("WebDirt: browser does not support audio worklets"),console.log("(WebDirt should still work but shape, coarse, and crush will have no effect)"),this.workletsAvailable=!1),this.tempo={time:this.ac.currentTime,beats:0,bpm:30},this.clockDiff=Date.now()/1e3-this.ac.currentTime,this.sampleBank!=null&&(this.sampleBank.ac=this.ac),this.silentNote=this.ac.createOscillator(),this.silentNote.type="sine",this.silentNote.frequency.value=440,this.silentGain=this.ac.createGain(),this.silentGain.gain.value=0,this.silentNote.connect(this.silentGain),this.silentGain.connect(this.ac.destination),this.silentNote.start();var $=this;setTimeout(function(){$.silentGain.disconnect($.ac.destination),$.silentNote.disconnect($.silentGain),$.silentNote.stop(),$.silentGain=null,$.silentNote=null},500)}console.log("WebDirt: initializeWebAudio finished.")},k.prototype.playSample=function($,j){if(j==null&&(j=this.latency),$.whenPosix!=null&&($.when=$.whenPosix-(new Date().getTime()/1e3-this.ac.currentTime)),$.when==null&&($.when=this.ac.currentTime),$.when=$.when+j,typeof $.maxLateness!="number"&&($.maxLateness=this.maxLateness),this.ac.currentTime-$.when>$.maxLateness)return void console.log("WebDirt warning: dropping msg late by "+(this.ac.currentTime-$.when)+" seconds");let _e=new c($,this);return this.eventCounter++,_e},k.prototype.playScore=function($,j,_e){this.initializeWebAudio(),j==null&&(j=this.latency);for(var et=this.ac.currentTime,tt=0,nt=0;nt<$.length;nt++){var it=$[nt];it.when>tt&&(tt=it.when),it.when=it.when+et,it.s!=null&&(it.sample_name=it.s),it.n!=null&&(it.sample_n=it.n),this.playSample(it,j)}setTimeout(function(){typeof _e=="function"&&_e()},1e3*(tt+j))},k.prototype.playScoreWhenReady=function($,j,_e,et){this.initializeWebAudio(),j==null&&(j=this.latency);for(var tt=$.length,nt=0;nt<$.length;nt++){var it=$[nt],rt=this;it.s!=null&&(it.sample_name=it.s),it.n!=null&&(it.sample_n=it.n),this.sampleBank!=null&&this.sampleBank.load(it.sample_name,it.sample_n,function(){(tt-=1)<=0&&(rt.playScore($,j,et),typeof _e=="function"&&_e())})}},k.prototype.loadAndPlayScore=function($,j,_e,et){this.initializeWebAudio(),j==null&&(j=this.latency);var tt=new XMLHttpRequest;tt.open("GET",$,!0),tt.responseType="json";var nt=this;tt.onload=function(){if(tt.readyState!=4)throw Error("readyState != 4 in callback of loadAndPlayScore");if(tt.status!=200)throw Error("status != 200 in callback of loadAndPlayScore");if(tt.response==null)throw Error("JSON response null in callback of loadAndPlayScore");console.log("playing JSON score from "+$),nt.playScoreWhenReady(tt.response,j,_e,et)},tt.send()},k.prototype.renderAndPlayScore=function($,j,_e,et,tt,nt,it){this.initializeWebAudio(),tt==null&&(tt=this.latency),window.WebSocket=window.WebSocket||window.MozWebSocket,console.log("WebDirt.renderAndPlayScore: attempting websocket connection to "+$);var rt=new WebSocket($);rt.onerror=function(){console.log(" ERROR opening websocket connection to "+$)},rt.onopen=function(){console.log(" websocket connection to "+$+" established");try{var ot='{"render":'+JSON.stringify(j)+',"cps":'+_e+',"cycles":'+et+"}";console.log(ot),rt.send(ot),console.log(" render request sent")}catch{console.log(" EXCEPTION during transmission of render request"),rt.close()}};var st=this;rt.onmessage=function(ot){var at=JSON.parse(ot.data);if(!at instanceof Array)return console.log(" WebDirt warning: rendering socket received non-array message"),console.log(typeof at),void(globalX=at);console.log(" received score from "+$),st.playScoreWhenReady(at,tt,nt,it),console.log(" closing websocket connection to "+$),rt.close()}},k.prototype.subscribeToTidalSocket=function($,j){this.initializeWebAudio(),j==null&&(j=!1),window.WebSocket=window.WebSocket||window.MozWebSocket,console.log("WebDirt: attempting websocket connection to "+$),ws=new WebSocket($),ws.onopen=function(){console.log("websocket connection to tidalSocket opened")},ws.onerror=function(){console.log("ERROR opening websocket connection to tidalSocket")};var _e=this;ws.onmessage=function(et){if(et.data==null)throw Error("null data in tidalSocket onmessage handler");var tt=JSON.parse(et.data);if(tt.address==null)throw Error("received message from tidalSocket with no address: "+et.data);if(tt.address!="/play")throw Error("address of message from tidalSocket wasn't /play: "+et.data);if(tt.args.constructor!==Array)throw Error("ERROR: message from tidalSocket where args doesn't exist or isn't an array: "+et.data);if(tt.args.length!=30&&tt.args.length!=33)throw Error("ERROR: message from tidalSocket with "+tt.args.length+" args instead of 30 or 33: "+et.data);var nt={};nt.when=tt.args[0]+tt.args[1]/1e6+_e.clockDiff,nt.sample_name=tt.args[3],nt.begin=tt.args[5],nt.end=tt.args[6],nt.speed=tt.args[7],nt.pan=tt.args[8],nt.vowel=tt.args[10],nt.cutoff=tt.args[11],nt.resonance=tt.args[12],nt.accelerate=tt.args[13],nt.shape=tt.args[14],nt.gain=tt.args[16],nt.cut=tt.args[17],nt.delay=tt.args[18],nt.delaytime=tt.args[19],nt.delayfeedback=tt.args[20],nt.crush=tt.args[21],nt.coarse=tt.args[22],nt.hcutoff=tt.args[23],nt.hresonance=tt.args[24],nt.bandf=tt.args[25],nt.bandq=tt.args[26],nt.unit_name=tt.args[27],nt.sample_loop=tt.args[28],nt.sample_n=tt.args[29],tt.args.length==33&&(nt.attack=tt.args[30],nt.hold=tt.args[31],nt.release=tt.args[32]),_e.playSample(nt),j&&console.log(tt)}},k.prototype.getCurrentTime=function(){return this.ac.currentTime},k.prototype.syncWithEsp=function($){if(typeof EspClient=="function")if(this.espClient==null){this.espClient=new EspClient($,this.ac);var j=this;this.espClient.tempoCallback=function(_e){j.tempo=_e}}else this.espClient.setUrl($);else console.log("WebDirt ERROR: syncWithEsp called but EspClient does not exist")},k.prototype.setTempo=function($){if(typeof $.time!="number")throw Error("WebDirt: no time in setTempo");if(typeof $.beats!="number")throw Error("WebDirt: no beats in setTempo");if(typeof $.bpm!="number")throw Error("WebDirt: no bpm in setTempo");this.espClient!=null&&this.espClient.sendSetTempo($),this.tempo=$},k.prototype.sampleHint=function($){this.sampleBank!=null&&(console.log("WebDirt received sample hint: "+$),this.sampleBank.loadAllNamed($))},o})())})(WebDirtPacked$1);var WebDirtPacked=getDefaultExportFromCjs(WebDirtPacked$1.exports),WebDirt=_mergeNamespaces({__proto__:null,default:WebDirtPacked},[WebDirtPacked$1.exports]);const{Pattern}=strudel;let webDirt;function loadWebDirt(a){webDirt=new WebDirtPacked$1.exports.WebDirt(a),webDirt.initializeWebAudio()}Pattern.prototype.webdirt=function(){return this._withHap(a=>{const e=async(s,o,c)=>{if(!webDirt)throw new Error("WebDirt not initialized!");const d=s-c,j=o.value||{},{s:_,n:b=0}=j,k=dn(j,["s","n"]);_||console.warn('Pattern.webdirt: no "s" was set!');const $=getLoadedSamples$1();if(!($!=null&&$[_])){webDirt.playSample(Dt({s:_,n:b},k),d);return}if(!($!=null&&$[_]))console.warn(`Pattern.webdirt: sample "${_}" not found in loaded samples`,$);else{const _e=$[_],et=_e[b%_e.length],tt=getLoadedBuffer(et);if(!tt)console.log(`Pattern.webdirt: load ${_}:${b} from ${et}`),loadBuffer(et,webDirt.ac);else{const nt=Dt({buffer:{buffer:tt}},k);webDirt.playSample(nt,d)}}};return a.setContext(kt(Dt({},a.context),{onTrigger:e}))})};const version$6="1.35.3",DEFAULT_HEADERS$4={"X-Client-Info":`supabase-js/${version$6}`},STORAGE_KEY$1="supabase.auth.token";function stripTrailingSlash(a){return a.replace(/\/$/,"")}const isBrowser$1=()=>typeof window!="undefined",version$5="1.22.16",GOTRUE_URL="http://localhost:9999",DEFAULT_HEADERS$3={"X-Client-Info":`gotrue-js/${version$5}`},EXPIRY_MARGIN=10,NETWORK_FAILURE={ERROR_MESSAGE:"Request Failed",MAX_RETRIES:10,RETRY_INTERVAL:2},STORAGE_KEY="supabase.auth.token",COOKIE_OPTIONS={name:"sb",lifetime:60*60*8,domain:"",path:"/",sameSite:"lax"};var __awaiter$a=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};const _getErrorMessage$1=a=>a.msg||a.message||a.error_description||a.error||JSON.stringify(a),handleError$1=(a,e)=>{if(!(a!=null&&a.status))return e({message:NETWORK_FAILURE.ERROR_MESSAGE});if(typeof a.json!="function")return e(a);a.json().then(s=>e({message:_getErrorMessage$1(s),status:(a==null?void 0:a.status)||500}))},_getRequestParams$1=(a,e,s)=>{const o={method:a,headers:(e==null?void 0:e.headers)||{}};return a==="GET"||(o.headers=Object.assign({"Content-Type":"text/plain;charset=UTF-8"},e==null?void 0:e.headers),o.body=JSON.stringify(s)),o};function _handleRequest$1(a,e,s,o,c){return __awaiter$a(this,void 0,void 0,function*(){return new Promise((d,_)=>{a(s,_getRequestParams$1(e,o,c)).then(b=>{if(!b.ok)throw b;return o!=null&&o.noResolveJson?d:b.json()}).then(b=>d(b)).catch(b=>handleError$1(b,_))})})}function get$1(a,e,s){return __awaiter$a(this,void 0,void 0,function*(){return _handleRequest$1(a,"GET",e,s)})}function post$1(a,e,s,o){return __awaiter$a(this,void 0,void 0,function*(){return _handleRequest$1(a,"POST",e,o,s)})}function put$1(a,e,s,o){return __awaiter$a(this,void 0,void 0,function*(){return _handleRequest$1(a,"PUT",e,o,s)})}function remove$1(a,e,s,o){return __awaiter$a(this,void 0,void 0,function*(){return _handleRequest$1(a,"DELETE",e,o,s)})}function serialize(a,e,s){const o=s||{},c=encodeURIComponent,d=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;if(typeof c!="function")throw new TypeError("option encode is invalid");if(!d.test(a))throw new TypeError("argument name is invalid");const _=c(e);if(_&&!d.test(_))throw new TypeError("argument val is invalid");let b=a+"="+_;if(o.maxAge!=null){const k=o.maxAge-0;if(isNaN(k)||!isFinite(k))throw new TypeError("option maxAge is invalid");b+="; Max-Age="+Math.floor(k)}if(o.domain){if(!d.test(o.domain))throw new TypeError("option domain is invalid");b+="; Domain="+o.domain}if(o.path){if(!d.test(o.path))throw new TypeError("option path is invalid");b+="; Path="+o.path}if(o.expires){if(typeof o.expires.toUTCString!="function")throw new TypeError("option expires is invalid");b+="; Expires="+o.expires.toUTCString()}if(o.httpOnly&&(b+="; HttpOnly"),o.secure&&(b+="; Secure"),o.sameSite)switch(typeof o.sameSite=="string"?o.sameSite.toLowerCase():o.sameSite){case"lax":b+="; SameSite=Lax";break;case"strict":b+="; SameSite=Strict";break;case"none":b+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return b}function isSecureEnvironment(a){if(!a||!a.headers||!a.headers.host)throw new Error('The "host" request header is not available');const e=a.headers.host.indexOf(":")>-1&&a.headers.host.split(":")[0]||a.headers.host;return!(["localhost","127.0.0.1"].indexOf(e)>-1||e.endsWith(".local"))}function serializeCookie(a,e){var s,o,c;return serialize(a.name,a.value,{maxAge:a.maxAge,expires:new Date(Date.now()+a.maxAge*1e3),httpOnly:!0,secure:e,path:(s=a.path)!==null&&s!==void 0?s:"/",domain:(o=a.domain)!==null&&o!==void 0?o:"",sameSite:(c=a.sameSite)!==null&&c!==void 0?c:"lax"})}function getCookieString(a,e,s){const o=s.map(d=>serializeCookie(d,isSecureEnvironment(a))),c=e.getHeader("Set-Cookie");return c&&(c instanceof Array?Array.prototype.push.apply(o,c):typeof c=="string"&&o.push(c)),o}function setCookies(a,e,s){e.setHeader("Set-Cookie",getCookieString(a,e,s))}var browserPonyfill={exports:{}};(function(a,e){var s=typeof self!="undefined"?self:commonjsGlobal,o=function(){function d(){this.fetch=!1,this.DOMException=s.DOMException}return d.prototype=s,new d}();(function(d){(function(_){var b={searchParams:"URLSearchParams"in d,iterable:"Symbol"in d&&"iterator"in Symbol,blob:"FileReader"in d&&"Blob"in d&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in d,arrayBuffer:"ArrayBuffer"in d};function k(pt){return pt&&DataView.prototype.isPrototypeOf(pt)}if(b.arrayBuffer)var $=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],j=ArrayBuffer.isView||function(pt){return pt&&$.indexOf(Object.prototype.toString.call(pt))>-1};function _e(pt){if(typeof pt!="string"&&(pt=String(pt)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(pt))throw new TypeError("Invalid character in header field name");return pt.toLowerCase()}function et(pt){return typeof pt!="string"&&(pt=String(pt)),pt}function tt(pt){var mt={next:function(){var At=pt.shift();return{done:At===void 0,value:At}}};return b.iterable&&(mt[Symbol.iterator]=function(){return mt}),mt}function nt(pt){this.map={},pt instanceof nt?pt.forEach(function(mt,At){this.append(At,mt)},this):Array.isArray(pt)?pt.forEach(function(mt){this.append(mt[0],mt[1])},this):pt&&Object.getOwnPropertyNames(pt).forEach(function(mt){this.append(mt,pt[mt])},this)}nt.prototype.append=function(pt,mt){pt=_e(pt),mt=et(mt);var At=this.map[pt];this.map[pt]=At?At+", "+mt:mt},nt.prototype.delete=function(pt){delete this.map[_e(pt)]},nt.prototype.get=function(pt){return pt=_e(pt),this.has(pt)?this.map[pt]:null},nt.prototype.has=function(pt){return this.map.hasOwnProperty(_e(pt))},nt.prototype.set=function(pt,mt){this.map[_e(pt)]=et(mt)},nt.prototype.forEach=function(pt,mt){for(var At in this.map)this.map.hasOwnProperty(At)&&pt.call(mt,this.map[At],At,this)},nt.prototype.keys=function(){var pt=[];return this.forEach(function(mt,At){pt.push(At)}),tt(pt)},nt.prototype.values=function(){var pt=[];return this.forEach(function(mt){pt.push(mt)}),tt(pt)},nt.prototype.entries=function(){var pt=[];return this.forEach(function(mt,At){pt.push([At,mt])}),tt(pt)},b.iterable&&(nt.prototype[Symbol.iterator]=nt.prototype.entries);function it(pt){if(pt.bodyUsed)return Promise.reject(new TypeError("Already read"));pt.bodyUsed=!0}function rt(pt){return new Promise(function(mt,At){pt.onload=function(){mt(pt.result)},pt.onerror=function(){At(pt.error)}})}function st(pt){var mt=new FileReader,At=rt(mt);return mt.readAsArrayBuffer(pt),At}function ot(pt){var mt=new FileReader,At=rt(mt);return mt.readAsText(pt),At}function at(pt){for(var mt=new Uint8Array(pt),At=new Array(mt.length),Ot=0;Ot-1?mt:pt}function dt(pt,mt){mt=mt||{};var At=mt.body;if(pt instanceof dt){if(pt.bodyUsed)throw new TypeError("Already read");this.url=pt.url,this.credentials=pt.credentials,mt.headers||(this.headers=new nt(pt.headers)),this.method=pt.method,this.mode=pt.mode,this.signal=pt.signal,!At&&pt._bodyInit!=null&&(At=pt._bodyInit,pt.bodyUsed=!0)}else this.url=String(pt);if(this.credentials=mt.credentials||this.credentials||"same-origin",(mt.headers||!this.headers)&&(this.headers=new nt(mt.headers)),this.method=ct(mt.method||this.method||"GET"),this.mode=mt.mode||this.mode||null,this.signal=mt.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&At)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(At)}dt.prototype.clone=function(){return new dt(this,{body:this._bodyInit})};function ft(pt){var mt=new FormData;return pt.trim().split("&").forEach(function(At){if(At){var Ot=At.split("="),vt=Ot.shift().replace(/\+/g," "),Ct=Ot.join("=").replace(/\+/g," ");mt.append(decodeURIComponent(vt),decodeURIComponent(Ct))}}),mt}function Et(pt){var mt=new nt,At=pt.replace(/\r?\n[\t ]+/g," ");return At.split(/\r?\n/).forEach(function(Ot){var vt=Ot.split(":"),Ct=vt.shift().trim();if(Ct){var Tt=vt.join(":").trim();mt.append(Ct,Tt)}}),mt}lt.call(dt.prototype);function yt(pt,mt){mt||(mt={}),this.type="default",this.status=mt.status===void 0?200:mt.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in mt?mt.statusText:"OK",this.headers=new nt(mt.headers),this.url=mt.url||"",this._initBody(pt)}lt.call(yt.prototype),yt.prototype.clone=function(){return new yt(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new nt(this.headers),url:this.url})},yt.error=function(){var pt=new yt(null,{status:0,statusText:""});return pt.type="error",pt};var gt=[301,302,303,307,308];yt.redirect=function(pt,mt){if(gt.indexOf(mt)===-1)throw new RangeError("Invalid status code");return new yt(null,{status:mt,headers:{location:pt}})},_.DOMException=d.DOMException;try{new _.DOMException}catch{_.DOMException=function(mt,At){this.message=mt,this.name=At;var Ot=Error(mt);this.stack=Ot.stack},_.DOMException.prototype=Object.create(Error.prototype),_.DOMException.prototype.constructor=_.DOMException}function St(pt,mt){return new Promise(function(At,Ot){var vt=new dt(pt,mt);if(vt.signal&&vt.signal.aborted)return Ot(new _.DOMException("Aborted","AbortError"));var Ct=new XMLHttpRequest;function Tt(){Ct.abort()}Ct.onload=function(){var _t={status:Ct.status,statusText:Ct.statusText,headers:Et(Ct.getAllResponseHeaders()||"")};_t.url="responseURL"in Ct?Ct.responseURL:_t.headers.get("X-Request-URL");var bt="response"in Ct?Ct.response:Ct.responseText;At(new yt(bt,_t))},Ct.onerror=function(){Ot(new TypeError("Network request failed"))},Ct.ontimeout=function(){Ot(new TypeError("Network request failed"))},Ct.onabort=function(){Ot(new _.DOMException("Aborted","AbortError"))},Ct.open(vt.method,vt.url,!0),vt.credentials==="include"?Ct.withCredentials=!0:vt.credentials==="omit"&&(Ct.withCredentials=!1),"responseType"in Ct&&b.blob&&(Ct.responseType="blob"),vt.headers.forEach(function(_t,bt){Ct.setRequestHeader(bt,_t)}),vt.signal&&(vt.signal.addEventListener("abort",Tt),Ct.onreadystatechange=function(){Ct.readyState===4&&vt.signal.removeEventListener("abort",Tt)}),Ct.send(typeof vt._bodyInit=="undefined"?null:vt._bodyInit)})}return St.polyfill=!0,d.fetch||(d.fetch=St,d.Headers=nt,d.Request=dt,d.Response=yt),_.Headers=nt,_.Request=dt,_.Response=yt,_.fetch=St,Object.defineProperty(_,"__esModule",{value:!0}),_})({})})(o),o.fetch.ponyfill=!0,delete o.fetch.polyfill;var c=o;e=c.fetch,e.default=c.fetch,e.fetch=c.fetch,e.Headers=c.Headers,e.Request=c.Request,e.Response=c.Response,a.exports=e})(browserPonyfill,browserPonyfill.exports);var crossFetch=getDefaultExportFromCjs(browserPonyfill.exports),__awaiter$9=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};function expiresAt(a){return Math.round(Date.now()/1e3)+a}function uuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){const e=Math.random()*16|0;return(a=="x"?e:e&3|8).toString(16)})}const isBrowser=()=>typeof window!="undefined";function getParameterByName(a,e){var s;e||(e=((s=window==null?void 0:window.location)===null||s===void 0?void 0:s.href)||""),a=a.replace(/[\[\]]/g,"\\$&");const o=new RegExp("[?&#]"+a+"(=([^&#]*)|&|#|$)"),c=o.exec(e);return c?c[2]?decodeURIComponent(c[2].replace(/\+/g," ")):"":null}const resolveFetch$2=a=>{let e;return a?e=a:typeof fetch=="undefined"?e=crossFetch:e=fetch,(...s)=>e(...s)},setItemAsync=(a,e,s)=>__awaiter$9(void 0,void 0,void 0,function*(){isBrowser()&&(yield a==null?void 0:a.setItem(e,JSON.stringify(s)))}),getItemAsync=(a,e)=>__awaiter$9(void 0,void 0,void 0,function*(){const s=isBrowser()&&(yield a==null?void 0:a.getItem(e));if(!s)return null;try{return JSON.parse(s)}catch{return s}}),getItemSynchronously=(a,e)=>{const s=isBrowser()&&(a==null?void 0:a.getItem(e));if(!s||typeof s!="string")return null;try{return JSON.parse(s)}catch{return s}},removeItemAsync=(a,e)=>__awaiter$9(void 0,void 0,void 0,function*(){isBrowser()&&(yield a==null?void 0:a.removeItem(e))});var __awaiter$8=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class GoTrueApi{constructor({url:e="",headers:s={},cookieOptions:o,fetch:c}){this.url=e,this.headers=s,this.cookieOptions=Object.assign(Object.assign({},COOKIE_OPTIONS),o),this.fetch=resolveFetch$2(c)}_createRequestHeaders(e){const s=Object.assign({},this.headers);return s.Authorization=`Bearer ${e}`,s}cookieName(){var e;return(e=this.cookieOptions.name)!==null&&e!==void 0?e:""}getUrlForProvider(e,s){const o=[`provider=${encodeURIComponent(e)}`];if(s!=null&&s.redirectTo&&o.push(`redirect_to=${encodeURIComponent(s.redirectTo)}`),s!=null&&s.scopes&&o.push(`scopes=${encodeURIComponent(s.scopes)}`),s!=null&&s.queryParams){const c=new URLSearchParams(s.queryParams);o.push(`${c}`)}return`${this.url}/authorize?${o.join("&")}`}signUpWithEmail(e,s,o={}){return __awaiter$8(this,void 0,void 0,function*(){try{const c=Object.assign({},this.headers);let d="";o.redirectTo&&(d="?redirect_to="+encodeURIComponent(o.redirectTo));const _=yield post$1(this.fetch,`${this.url}/signup${d}`,{email:e,password:s,data:o.data,gotrue_meta_security:{hcaptcha_token:o.captchaToken}},{headers:c}),b=Object.assign({},_);return b.expires_in&&(b.expires_at=expiresAt(_.expires_in)),{data:b,error:null}}catch(c){return{data:null,error:c}}})}signInWithEmail(e,s,o={}){return __awaiter$8(this,void 0,void 0,function*(){try{const c=Object.assign({},this.headers);let d="?grant_type=password";o.redirectTo&&(d+="&redirect_to="+encodeURIComponent(o.redirectTo));const _=yield post$1(this.fetch,`${this.url}/token${d}`,{email:e,password:s},{headers:c}),b=Object.assign({},_);return b.expires_in&&(b.expires_at=expiresAt(_.expires_in)),{data:b,error:null}}catch(c){return{data:null,error:c}}})}signUpWithPhone(e,s,o={}){return __awaiter$8(this,void 0,void 0,function*(){try{const c=Object.assign({},this.headers),d=yield post$1(this.fetch,`${this.url}/signup`,{phone:e,password:s,data:o.data,gotrue_meta_security:{hcaptcha_token:o.captchaToken}},{headers:c}),_=Object.assign({},d);return _.expires_in&&(_.expires_at=expiresAt(d.expires_in)),{data:_,error:null}}catch(c){return{data:null,error:c}}})}signInWithPhone(e,s){return __awaiter$8(this,void 0,void 0,function*(){try{const o=Object.assign({},this.headers),c="?grant_type=password",d=yield post$1(this.fetch,`${this.url}/token${c}`,{phone:e,password:s},{headers:o}),_=Object.assign({},d);return _.expires_in&&(_.expires_at=expiresAt(d.expires_in)),{data:_,error:null}}catch(o){return{data:null,error:o}}})}signInWithOpenIDConnect({id_token:e,nonce:s,client_id:o,issuer:c,provider:d}){return __awaiter$8(this,void 0,void 0,function*(){try{const _=Object.assign({},this.headers),b="?grant_type=id_token",k=yield post$1(this.fetch,`${this.url}/token${b}`,{id_token:e,nonce:s,client_id:o,issuer:c,provider:d},{headers:_}),$=Object.assign({},k);return $.expires_in&&($.expires_at=expiresAt(k.expires_in)),{data:$,error:null}}catch(_){return{data:null,error:_}}})}sendMagicLinkEmail(e,s={}){var o;return __awaiter$8(this,void 0,void 0,function*(){try{const c=Object.assign({},this.headers);let d="";s.redirectTo&&(d+="?redirect_to="+encodeURIComponent(s.redirectTo));const _=(o=s.shouldCreateUser)!==null&&o!==void 0?o:!0;return{data:yield post$1(this.fetch,`${this.url}/otp${d}`,{email:e,create_user:_,gotrue_meta_security:{hcaptcha_token:s.captchaToken}},{headers:c}),error:null}}catch(c){return{data:null,error:c}}})}sendMobileOTP(e,s={}){var o;return __awaiter$8(this,void 0,void 0,function*(){try{const c=(o=s.shouldCreateUser)!==null&&o!==void 0?o:!0,d=Object.assign({},this.headers);return{data:yield post$1(this.fetch,`${this.url}/otp`,{phone:e,create_user:c,gotrue_meta_security:{hcaptcha_token:s.captchaToken}},{headers:d}),error:null}}catch(c){return{data:null,error:c}}})}signOut(e){return __awaiter$8(this,void 0,void 0,function*(){try{return yield post$1(this.fetch,`${this.url}/logout`,{},{headers:this._createRequestHeaders(e),noResolveJson:!0}),{error:null}}catch(s){return{error:s}}})}verifyMobileOTP(e,s,o={}){return __awaiter$8(this,void 0,void 0,function*(){try{const c=Object.assign({},this.headers),d=yield post$1(this.fetch,`${this.url}/verify`,{phone:e,token:s,type:"sms",redirect_to:o.redirectTo},{headers:c}),_=Object.assign({},d);return _.expires_in&&(_.expires_at=expiresAt(d.expires_in)),{data:_,error:null}}catch(c){return{data:null,error:c}}})}verifyOTP({email:e,phone:s,token:o,type:c="sms"},d={}){return __awaiter$8(this,void 0,void 0,function*(){try{const _=Object.assign({},this.headers),b=yield post$1(this.fetch,`${this.url}/verify`,{email:e,phone:s,token:o,type:c,redirect_to:d.redirectTo},{headers:_}),k=Object.assign({},b);return k.expires_in&&(k.expires_at=expiresAt(b.expires_in)),{data:k,error:null}}catch(_){return{data:null,error:_}}})}inviteUserByEmail(e,s={}){return __awaiter$8(this,void 0,void 0,function*(){try{const o=Object.assign({},this.headers);let c="";return s.redirectTo&&(c+="?redirect_to="+encodeURIComponent(s.redirectTo)),{data:yield post$1(this.fetch,`${this.url}/invite${c}`,{email:e,data:s.data},{headers:o}),error:null}}catch(o){return{data:null,error:o}}})}resetPasswordForEmail(e,s={}){return __awaiter$8(this,void 0,void 0,function*(){try{const o=Object.assign({},this.headers);let c="";return s.redirectTo&&(c+="?redirect_to="+encodeURIComponent(s.redirectTo)),{data:yield post$1(this.fetch,`${this.url}/recover${c}`,{email:e,gotrue_meta_security:{hcaptcha_token:s.captchaToken}},{headers:o}),error:null}}catch(o){return{data:null,error:o}}})}refreshAccessToken(e){return __awaiter$8(this,void 0,void 0,function*(){try{const s=yield post$1(this.fetch,`${this.url}/token?grant_type=refresh_token`,{refresh_token:e},{headers:this.headers}),o=Object.assign({},s);return o.expires_in&&(o.expires_at=expiresAt(s.expires_in)),{data:o,error:null}}catch(s){return{data:null,error:s}}})}setAuthCookie(e,s){e.method!=="POST"&&(s.setHeader("Allow","POST"),s.status(405).end("Method Not Allowed"));const{event:o,session:c}=e.body;if(!o)throw new Error("Auth event missing!");if(o==="SIGNED_IN"){if(!c)throw new Error("Auth session missing!");setCookies(e,s,[{key:"access-token",value:c.access_token},{key:"refresh-token",value:c.refresh_token}].map(d=>{var _;return{name:`${this.cookieName()}-${d.key}`,value:d.value,domain:this.cookieOptions.domain,maxAge:(_=this.cookieOptions.lifetime)!==null&&_!==void 0?_:0,path:this.cookieOptions.path,sameSite:this.cookieOptions.sameSite}}))}o==="SIGNED_OUT"&&setCookies(e,s,["access-token","refresh-token"].map(d=>({name:`${this.cookieName()}-${d}`,value:"",maxAge:-1}))),s.status(200).json({})}deleteAuthCookie(e,s,{redirectTo:o="/"}){return setCookies(e,s,["access-token","refresh-token"].map(c=>({name:`${this.cookieName()}-${c}`,value:"",maxAge:-1}))),s.redirect(307,o)}getAuthCookieString(e,s){e.method!=="POST"&&(s.setHeader("Allow","POST"),s.status(405).end("Method Not Allowed"));const{event:o,session:c}=e.body;if(!o)throw new Error("Auth event missing!");if(o==="SIGNED_IN"){if(!c)throw new Error("Auth session missing!");return getCookieString(e,s,[{key:"access-token",value:c.access_token},{key:"refresh-token",value:c.refresh_token}].map(d=>{var _;return{name:`${this.cookieName()}-${d.key}`,value:d.value,domain:this.cookieOptions.domain,maxAge:(_=this.cookieOptions.lifetime)!==null&&_!==void 0?_:0,path:this.cookieOptions.path,sameSite:this.cookieOptions.sameSite}}))}return o==="SIGNED_OUT"?getCookieString(e,s,["access-token","refresh-token"].map(d=>({name:`${this.cookieName()}-${d}`,value:"",maxAge:-1}))):s.getHeader("Set-Cookie")}generateLink(e,s,o={}){return __awaiter$8(this,void 0,void 0,function*(){try{return{data:yield post$1(this.fetch,`${this.url}/admin/generate_link`,{type:e,email:s,password:o.password,data:o.data,redirect_to:o.redirectTo},{headers:this.headers}),error:null}}catch(c){return{data:null,error:c}}})}createUser(e){return __awaiter$8(this,void 0,void 0,function*(){try{const s=yield post$1(this.fetch,`${this.url}/admin/users`,e,{headers:this.headers});return{user:s,data:s,error:null}}catch(s){return{user:null,data:null,error:s}}})}listUsers(){return __awaiter$8(this,void 0,void 0,function*(){try{return{data:(yield get$1(this.fetch,`${this.url}/admin/users`,{headers:this.headers})).users,error:null}}catch(e){return{data:null,error:e}}})}getUserById(e){return __awaiter$8(this,void 0,void 0,function*(){try{return{data:yield get$1(this.fetch,`${this.url}/admin/users/${e}`,{headers:this.headers}),error:null}}catch(s){return{data:null,error:s}}})}getUserByCookie(e,s){return __awaiter$8(this,void 0,void 0,function*(){try{if(!e.cookies)throw new Error("Not able to parse cookies! When using Express make sure the cookie-parser middleware is in use!");const o=e.cookies[`${this.cookieName()}-access-token`],c=e.cookies[`${this.cookieName()}-refresh-token`];if(!o)throw new Error("No cookie found!");const{user:d,error:_}=yield this.getUser(o);if(_){if(!c)throw new Error("No refresh_token cookie found!");if(!s)throw new Error("You need to pass the res object to automatically refresh the session!");const{data:b,error:k}=yield this.refreshAccessToken(c);if(k)throw k;if(b)return setCookies(e,s,[{key:"access-token",value:b.access_token},{key:"refresh-token",value:b.refresh_token}].map($=>{var j;return{name:`${this.cookieName()}-${$.key}`,value:$.value,domain:this.cookieOptions.domain,maxAge:(j=this.cookieOptions.lifetime)!==null&&j!==void 0?j:0,path:this.cookieOptions.path,sameSite:this.cookieOptions.sameSite}})),{token:b.access_token,user:b.user,data:b.user,error:null}}return{token:o,user:d,data:d,error:null}}catch(o){return{token:null,user:null,data:null,error:o}}})}updateUserById(e,s){return __awaiter$8(this,void 0,void 0,function*(){try{const o=yield put$1(this.fetch,`${this.url}/admin/users/${e}`,s,{headers:this.headers});return{user:o,data:o,error:null}}catch(o){return{user:null,data:null,error:o}}})}deleteUser(e){return __awaiter$8(this,void 0,void 0,function*(){try{const s=yield remove$1(this.fetch,`${this.url}/admin/users/${e}`,{},{headers:this.headers});return{user:s,data:s,error:null}}catch(s){return{user:null,data:null,error:s}}})}getUser(e){return __awaiter$8(this,void 0,void 0,function*(){try{const s=yield get$1(this.fetch,`${this.url}/user`,{headers:this._createRequestHeaders(e)});return{user:s,data:s,error:null}}catch(s){return{user:null,data:null,error:s}}})}updateUser(e,s){return __awaiter$8(this,void 0,void 0,function*(){try{const o=yield put$1(this.fetch,`${this.url}/user`,s,{headers:this._createRequestHeaders(e)});return{user:o,data:o,error:null}}catch(o){return{user:null,data:null,error:o}}})}}function polyfillGlobalThis(){if(typeof globalThis!="object")try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self!="undefined"&&(self.globalThis=self)}}var __awaiter$7=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};polyfillGlobalThis();const DEFAULT_OPTIONS$1={url:GOTRUE_URL,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,multiTab:!0,headers:DEFAULT_HEADERS$3};class GoTrueClient{constructor(e){this.stateChangeEmitters=new Map,this.networkRetries=0;const s=Object.assign(Object.assign({},DEFAULT_OPTIONS$1),e);this.currentUser=null,this.currentSession=null,this.autoRefreshToken=s.autoRefreshToken,this.persistSession=s.persistSession,this.multiTab=s.multiTab,this.localStorage=s.localStorage||globalThis.localStorage,this.api=new GoTrueApi({url:s.url,headers:s.headers,cookieOptions:s.cookieOptions,fetch:s.fetch}),this._recoverSession(),this._recoverAndRefresh(),this._listenForMultiTabEvents(),this._handleVisibilityChange(),s.detectSessionInUrl&&isBrowser()&&!!getParameterByName("access_token")&&this.getSessionFromUrl({storeSession:!0}).then(({error:o})=>{o&&console.error("Error getting session from URL.",o)})}signUp({email:e,password:s,phone:o},c={}){return __awaiter$7(this,void 0,void 0,function*(){try{this._removeSession();const{data:d,error:_}=o&&s?yield this.api.signUpWithPhone(o,s,{data:c.data,captchaToken:c.captchaToken}):yield this.api.signUpWithEmail(e,s,{redirectTo:c.redirectTo,data:c.data,captchaToken:c.captchaToken});if(_)throw _;if(!d)throw"An error occurred on sign up.";let b=null,k=null;return d.access_token&&(b=d,k=b.user,this._saveSession(b),this._notifyAllSubscribers("SIGNED_IN")),d.id&&(k=d),{user:k,session:b,error:null}}catch(d){return{user:null,session:null,error:d}}})}signIn({email:e,phone:s,password:o,refreshToken:c,provider:d,oidc:_},b={}){return __awaiter$7(this,void 0,void 0,function*(){try{if(this._removeSession(),e&&!o){const{error:k}=yield this.api.sendMagicLinkEmail(e,{redirectTo:b.redirectTo,shouldCreateUser:b.shouldCreateUser,captchaToken:b.captchaToken});return{user:null,session:null,error:k}}if(e&&o)return this._handleEmailSignIn(e,o,{redirectTo:b.redirectTo});if(s&&!o){const{error:k}=yield this.api.sendMobileOTP(s,{shouldCreateUser:b.shouldCreateUser,captchaToken:b.captchaToken});return{user:null,session:null,error:k}}if(s&&o)return this._handlePhoneSignIn(s,o);if(c){const{error:k}=yield this._callRefreshToken(c);if(k)throw k;return{user:this.currentUser,session:this.currentSession,error:null}}if(d)return this._handleProviderSignIn(d,{redirectTo:b.redirectTo,scopes:b.scopes,queryParams:b.queryParams});if(_)return this._handleOpenIDConnectSignIn(_);throw new Error("You must provide either an email, phone number, a third-party provider or OpenID Connect.")}catch(k){return{user:null,session:null,error:k}}})}verifyOTP(e,s={}){return __awaiter$7(this,void 0,void 0,function*(){try{this._removeSession();const{data:o,error:c}=yield this.api.verifyOTP(e,s);if(c)throw c;if(!o)throw"An error occurred on token verification.";let d=null,_=null;return o.access_token&&(d=o,_=d.user,this._saveSession(d),this._notifyAllSubscribers("SIGNED_IN")),o.id&&(_=o),{user:_,session:d,error:null}}catch(o){return{user:null,session:null,error:o}}})}user(){return this.currentUser}session(){return this.currentSession}refreshSession(){var e;return __awaiter$7(this,void 0,void 0,function*(){try{if(!(!((e=this.currentSession)===null||e===void 0)&&e.access_token))throw new Error("Not logged in.");const{error:s}=yield this._callRefreshToken();if(s)throw s;return{data:this.currentSession,user:this.currentUser,error:null}}catch(s){return{data:null,user:null,error:s}}})}update(e){var s;return __awaiter$7(this,void 0,void 0,function*(){try{if(!(!((s=this.currentSession)===null||s===void 0)&&s.access_token))throw new Error("Not logged in.");const{user:o,error:c}=yield this.api.updateUser(this.currentSession.access_token,e);if(c)throw c;if(!o)throw Error("Invalid user data.");const d=Object.assign(Object.assign({},this.currentSession),{user:o});return this._saveSession(d),this._notifyAllSubscribers("USER_UPDATED"),{data:o,user:o,error:null}}catch(o){return{data:null,user:null,error:o}}})}setSession(e){return __awaiter$7(this,void 0,void 0,function*(){try{if(!e)throw new Error("No current session.");const{data:s,error:o}=yield this.api.refreshAccessToken(e);return o?{session:null,error:o}:(this._saveSession(s),this._notifyAllSubscribers("SIGNED_IN"),{session:s,error:null})}catch(s){return{error:s,session:null}}})}setAuth(e){return this.currentSession=Object.assign(Object.assign({},this.currentSession),{access_token:e,token_type:"bearer",user:this.user()}),this._notifyAllSubscribers("TOKEN_REFRESHED"),this.currentSession}getSessionFromUrl(e){return __awaiter$7(this,void 0,void 0,function*(){try{if(!isBrowser())throw new Error("No browser detected.");const s=getParameterByName("error_description");if(s)throw new Error(s);const o=getParameterByName("provider_token"),c=getParameterByName("access_token");if(!c)throw new Error("No access_token detected.");const d=getParameterByName("expires_in");if(!d)throw new Error("No expires_in detected.");const _=getParameterByName("refresh_token");if(!_)throw new Error("No refresh_token detected.");const b=getParameterByName("token_type");if(!b)throw new Error("No token_type detected.");const $=Math.round(Date.now()/1e3)+parseInt(d),{user:j,error:_e}=yield this.api.getUser(c);if(_e)throw _e;const et={provider_token:o,access_token:c,expires_in:parseInt(d),expires_at:$,refresh_token:_,token_type:b,user:j};if(e!=null&&e.storeSession){this._saveSession(et);const tt=getParameterByName("type");this._notifyAllSubscribers("SIGNED_IN"),tt==="recovery"&&this._notifyAllSubscribers("PASSWORD_RECOVERY")}return window.location.hash="",{data:et,error:null}}catch(s){return{data:null,error:s}}})}signOut(){var e;return __awaiter$7(this,void 0,void 0,function*(){const s=(e=this.currentSession)===null||e===void 0?void 0:e.access_token;if(this._removeSession(),this._notifyAllSubscribers("SIGNED_OUT"),s){const{error:o}=yield this.api.signOut(s);if(o)return{error:o}}return{error:null}})}onAuthStateChange(e){try{const s=uuid(),o={id:s,callback:e,unsubscribe:()=>{this.stateChangeEmitters.delete(s)}};return this.stateChangeEmitters.set(s,o),{data:o,error:null}}catch(s){return{data:null,error:s}}}_handleEmailSignIn(e,s,o={}){var c,d;return __awaiter$7(this,void 0,void 0,function*(){try{const{data:_,error:b}=yield this.api.signInWithEmail(e,s,{redirectTo:o.redirectTo});return b||!_?{data:null,user:null,session:null,error:b}:((((c=_==null?void 0:_.user)===null||c===void 0?void 0:c.confirmed_at)||((d=_==null?void 0:_.user)===null||d===void 0?void 0:d.email_confirmed_at))&&(this._saveSession(_),this._notifyAllSubscribers("SIGNED_IN")),{data:_,user:_.user,session:_,error:null})}catch(_){return{data:null,user:null,session:null,error:_}}})}_handlePhoneSignIn(e,s){var o;return __awaiter$7(this,void 0,void 0,function*(){try{const{data:c,error:d}=yield this.api.signInWithPhone(e,s);return d||!c?{data:null,user:null,session:null,error:d}:(!((o=c==null?void 0:c.user)===null||o===void 0)&&o.phone_confirmed_at&&(this._saveSession(c),this._notifyAllSubscribers("SIGNED_IN")),{data:c,user:c.user,session:c,error:null})}catch(c){return{data:null,user:null,session:null,error:c}}})}_handleProviderSignIn(e,s={}){const o=this.api.getUrlForProvider(e,{redirectTo:s.redirectTo,scopes:s.scopes,queryParams:s.queryParams});try{return isBrowser()&&(window.location.href=o),{provider:e,url:o,data:null,session:null,user:null,error:null}}catch(c){return o?{provider:e,url:o,data:null,session:null,user:null,error:null}:{data:null,user:null,session:null,error:c}}}_handleOpenIDConnectSignIn({id_token:e,nonce:s,client_id:o,issuer:c,provider:d}){return __awaiter$7(this,void 0,void 0,function*(){if(e&&s&&(o&&c||d))try{const{data:_,error:b}=yield this.api.signInWithOpenIDConnect({id_token:e,nonce:s,client_id:o,issuer:c,provider:d});return b||!_?{user:null,session:null,error:b}:(this._saveSession(_),this._notifyAllSubscribers("SIGNED_IN"),{user:_.user,session:_,error:null})}catch(_){return{user:null,session:null,error:_}}throw new Error("You must provide a OpenID Connect provider with your id token and nonce.")})}_recoverSession(){try{const e=getItemSynchronously(this.localStorage,STORAGE_KEY);if(!e)return null;const{currentSession:s,expiresAt:o}=e,c=Math.round(Date.now()/1e3);o>=c+EXPIRY_MARGIN&&(s==null?void 0:s.user)&&(this._saveSession(s),this._notifyAllSubscribers("SIGNED_IN"))}catch(e){console.log("error",e)}}_recoverAndRefresh(){return __awaiter$7(this,void 0,void 0,function*(){try{const e=yield getItemAsync(this.localStorage,STORAGE_KEY);if(!e)return null;const{currentSession:s,expiresAt:o}=e,c=Math.round(Date.now()/1e3);if(othis._recoverAndRefresh(),Math.pow(NETWORK_FAILURE.RETRY_INTERVAL,this.networkRetries)*100);return}yield this._removeSession()}this.networkRetries=0}else this._removeSession();else s?(this._saveSession(s),this._notifyAllSubscribers("SIGNED_IN")):(console.log("Current session is missing data."),this._removeSession())}catch(e){return console.error(e),null}})}_callRefreshToken(e){var s;return e===void 0&&(e=(s=this.currentSession)===null||s===void 0?void 0:s.refresh_token),__awaiter$7(this,void 0,void 0,function*(){try{if(!e)throw new Error("No current session.");const{data:o,error:c}=yield this.api.refreshAccessToken(e);if(c)throw c;if(!o)throw Error("Invalid session data.");return this._saveSession(o),this._notifyAllSubscribers("TOKEN_REFRESHED"),this._notifyAllSubscribers("SIGNED_IN"),{data:o,error:null}}catch(o){return{data:null,error:o}}})}_notifyAllSubscribers(e){this.stateChangeEmitters.forEach(s=>s.callback(e,this.currentSession))}_saveSession(e){this.currentSession=e,this.currentUser=e.user;const s=e.expires_at;if(s){const o=Math.round(Date.now()/1e3),c=s-o,d=c>EXPIRY_MARGIN?EXPIRY_MARGIN:.5;this._startAutoRefreshToken((c-d)*1e3)}this.persistSession&&e.expires_at&&this._persistSession(this.currentSession)}_persistSession(e){const s={currentSession:e,expiresAt:e.expires_at};setItemAsync(this.localStorage,STORAGE_KEY,s)}_removeSession(){return __awaiter$7(this,void 0,void 0,function*(){this.currentSession=null,this.currentUser=null,this.refreshTokenTimer&&clearTimeout(this.refreshTokenTimer),removeItemAsync(this.localStorage,STORAGE_KEY)})}_startAutoRefreshToken(e){this.refreshTokenTimer&&clearTimeout(this.refreshTokenTimer),!(e<=0||!this.autoRefreshToken)&&(this.refreshTokenTimer=setTimeout(()=>__awaiter$7(this,void 0,void 0,function*(){this.networkRetries++;const{error:s}=yield this._callRefreshToken();s||(this.networkRetries=0),(s==null?void 0:s.message)===NETWORK_FAILURE.ERROR_MESSAGE&&this.networkRetries{var s;if(e.key===STORAGE_KEY){const o=JSON.parse(String(e.newValue));!((s=o==null?void 0:o.currentSession)===null||s===void 0)&&s.access_token?(this._saveSession(o.currentSession),this._notifyAllSubscribers("SIGNED_IN")):(this._removeSession(),this._notifyAllSubscribers("SIGNED_OUT"))}})}catch(e){console.error("_listenForMultiTabEvents",e)}}_handleVisibilityChange(){if(!this.multiTab||!isBrowser()||!(window!=null&&window.addEventListener))return!1;try{window==null||window.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&this._recoverAndRefresh()})}catch(e){console.error("_handleVisibilityChange",e)}}}class SupabaseAuthClient extends GoTrueClient{constructor(e){super(e)}}var __awaiter$6=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class PostgrestBuilder{constructor(e){Object.assign(this,e);let s;e.fetch?s=e.fetch:typeof fetch=="undefined"?s=crossFetch:s=fetch,this.fetch=(...o)=>s(...o),this.shouldThrowOnError=e.shouldThrowOnError||!1,this.allowEmpty=e.allowEmpty||!1}throwOnError(e){return e==null&&(e=!0),this.shouldThrowOnError=e,this}then(e,s){typeof this.schema=="undefined"||(["GET","HEAD"].includes(this.method)?this.headers["Accept-Profile"]=this.schema:this.headers["Content-Profile"]=this.schema),this.method!=="GET"&&this.method!=="HEAD"&&(this.headers["Content-Type"]="application/json");let o=this.fetch(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(c=>__awaiter$6(this,void 0,void 0,function*(){var d,_,b,k;let $=null,j=null,_e=null,et=c.status,tt=c.statusText;if(c.ok){const it=(d=this.headers.Prefer)===null||d===void 0?void 0:d.split(",").includes("return=minimal");if(this.method!=="HEAD"&&!it){const ot=yield c.text();ot&&(this.headers.Accept==="text/csv"?j=ot:j=JSON.parse(ot))}const rt=(_=this.headers.Prefer)===null||_===void 0?void 0:_.match(/count=(exact|planned|estimated)/),st=(b=c.headers.get("content-range"))===null||b===void 0?void 0:b.split("/");rt&&st&&st.length>1&&(_e=parseInt(st[1]))}else{const it=yield c.text();try{$=JSON.parse(it)}catch{$={message:it}}if($&&this.allowEmpty&&((k=$==null?void 0:$.details)===null||k===void 0?void 0:k.includes("Results contain 0 rows"))&&($=null,et=200,tt="OK"),$&&this.shouldThrowOnError)throw $}return{error:$,data:j,count:_e,status:et,statusText:tt,body:j}}));return this.shouldThrowOnError||(o=o.catch(c=>({error:{message:`FetchError: ${c.message}`,details:"",hint:"",code:c.code||""},data:null,body:null,count:null,status:400,statusText:"Bad Request"}))),o.then(e,s)}}class PostgrestTransformBuilder extends PostgrestBuilder{select(e="*"){let s=!1;const o=e.split("").map(c=>/\s/.test(c)&&!s?"":(c==='"'&&(s=!s),c)).join("");return this.url.searchParams.set("select",o),this}order(e,{ascending:s=!0,nullsFirst:o=!1,foreignTable:c}={}){const d=typeof c=="undefined"?"order":`${c}.order`,_=this.url.searchParams.get(d);return this.url.searchParams.set(d,`${_?`${_},`:""}${e}.${s?"asc":"desc"}.${o?"nullsfirst":"nullslast"}`),this}limit(e,{foreignTable:s}={}){const o=typeof s=="undefined"?"limit":`${s}.limit`;return this.url.searchParams.set(o,`${e}`),this}range(e,s,{foreignTable:o}={}){const c=typeof o=="undefined"?"offset":`${o}.offset`,d=typeof o=="undefined"?"limit":`${o}.limit`;return this.url.searchParams.set(c,`${e}`),this.url.searchParams.set(d,`${s-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.Accept="application/vnd.pgrst.object+json",this}maybeSingle(){return this.headers.Accept="application/vnd.pgrst.object+json",this.allowEmpty=!0,this}csv(){return this.headers.Accept="text/csv",this}}class PostgrestFilterBuilder extends PostgrestTransformBuilder{constructor(){super(...arguments),this.cs=this.contains,this.cd=this.containedBy,this.sl=this.rangeLt,this.sr=this.rangeGt,this.nxl=this.rangeGte,this.nxr=this.rangeLte,this.adj=this.rangeAdjacent,this.ov=this.overlaps}not(e,s,o){return this.url.searchParams.append(`${e}`,`not.${s}.${o}`),this}or(e,{foreignTable:s}={}){const o=typeof s=="undefined"?"or":`${s}.or`;return this.url.searchParams.append(o,`(${e})`),this}eq(e,s){return this.url.searchParams.append(`${e}`,`eq.${s}`),this}neq(e,s){return this.url.searchParams.append(`${e}`,`neq.${s}`),this}gt(e,s){return this.url.searchParams.append(`${e}`,`gt.${s}`),this}gte(e,s){return this.url.searchParams.append(`${e}`,`gte.${s}`),this}lt(e,s){return this.url.searchParams.append(`${e}`,`lt.${s}`),this}lte(e,s){return this.url.searchParams.append(`${e}`,`lte.${s}`),this}like(e,s){return this.url.searchParams.append(`${e}`,`like.${s}`),this}ilike(e,s){return this.url.searchParams.append(`${e}`,`ilike.${s}`),this}is(e,s){return this.url.searchParams.append(`${e}`,`is.${s}`),this}in(e,s){const o=s.map(c=>typeof c=="string"&&new RegExp("[,()]").test(c)?`"${c}"`:`${c}`).join(",");return this.url.searchParams.append(`${e}`,`in.(${o})`),this}contains(e,s){return typeof s=="string"?this.url.searchParams.append(`${e}`,`cs.${s}`):Array.isArray(s)?this.url.searchParams.append(`${e}`,`cs.{${s.join(",")}}`):this.url.searchParams.append(`${e}`,`cs.${JSON.stringify(s)}`),this}containedBy(e,s){return typeof s=="string"?this.url.searchParams.append(`${e}`,`cd.${s}`):Array.isArray(s)?this.url.searchParams.append(`${e}`,`cd.{${s.join(",")}}`):this.url.searchParams.append(`${e}`,`cd.${JSON.stringify(s)}`),this}rangeLt(e,s){return this.url.searchParams.append(`${e}`,`sl.${s}`),this}rangeGt(e,s){return this.url.searchParams.append(`${e}`,`sr.${s}`),this}rangeGte(e,s){return this.url.searchParams.append(`${e}`,`nxl.${s}`),this}rangeLte(e,s){return this.url.searchParams.append(`${e}`,`nxr.${s}`),this}rangeAdjacent(e,s){return this.url.searchParams.append(`${e}`,`adj.${s}`),this}overlaps(e,s){return typeof s=="string"?this.url.searchParams.append(`${e}`,`ov.${s}`):this.url.searchParams.append(`${e}`,`ov.{${s.join(",")}}`),this}textSearch(e,s,{config:o,type:c=null}={}){let d="";c==="plain"?d="pl":c==="phrase"?d="ph":c==="websearch"&&(d="w");const _=o===void 0?"":`(${o})`;return this.url.searchParams.append(`${e}`,`${d}fts${_}.${s}`),this}fts(e,s,{config:o}={}){const c=typeof o=="undefined"?"":`(${o})`;return this.url.searchParams.append(`${e}`,`fts${c}.${s}`),this}plfts(e,s,{config:o}={}){const c=typeof o=="undefined"?"":`(${o})`;return this.url.searchParams.append(`${e}`,`plfts${c}.${s}`),this}phfts(e,s,{config:o}={}){const c=typeof o=="undefined"?"":`(${o})`;return this.url.searchParams.append(`${e}`,`phfts${c}.${s}`),this}wfts(e,s,{config:o}={}){const c=typeof o=="undefined"?"":`(${o})`;return this.url.searchParams.append(`${e}`,`wfts${c}.${s}`),this}filter(e,s,o){return this.url.searchParams.append(`${e}`,`${s}.${o}`),this}match(e){return Object.keys(e).forEach(s=>{this.url.searchParams.append(`${s}`,`eq.${e[s]}`)}),this}}class PostgrestQueryBuilder extends PostgrestBuilder{constructor(e,{headers:s={},schema:o,fetch:c,shouldThrowOnError:d}={}){super({fetch:c,shouldThrowOnError:d}),this.url=new URL(e),this.headers=Object.assign({},s),this.schema=o}select(e="*",{head:s=!1,count:o=null}={}){this.method="GET";let c=!1;const d=e.split("").map(_=>/\s/.test(_)&&!c?"":(_==='"'&&(c=!c),_)).join("");return this.url.searchParams.set("select",d),o&&(this.headers.Prefer=`count=${o}`),s&&(this.method="HEAD"),new PostgrestFilterBuilder(this)}insert(e,{upsert:s=!1,onConflict:o,returning:c="representation",count:d=null}={}){this.method="POST";const _=[`return=${c}`];if(s&&_.push("resolution=merge-duplicates"),s&&o!==void 0&&this.url.searchParams.set("on_conflict",o),this.body=e,d&&_.push(`count=${d}`),this.headers.Prefer&&_.unshift(this.headers.Prefer),this.headers.Prefer=_.join(","),Array.isArray(e)){const b=e.reduce((k,$)=>k.concat(Object.keys($)),[]);if(b.length>0){const k=[...new Set(b)].map($=>`"${$}"`);this.url.searchParams.set("columns",k.join(","))}}return new PostgrestFilterBuilder(this)}upsert(e,{onConflict:s,returning:o="representation",count:c=null,ignoreDuplicates:d=!1}={}){this.method="POST";const _=[`resolution=${d?"ignore":"merge"}-duplicates`,`return=${o}`];return s!==void 0&&this.url.searchParams.set("on_conflict",s),this.body=e,c&&_.push(`count=${c}`),this.headers.Prefer&&_.unshift(this.headers.Prefer),this.headers.Prefer=_.join(","),new PostgrestFilterBuilder(this)}update(e,{returning:s="representation",count:o=null}={}){this.method="PATCH";const c=[`return=${s}`];return this.body=e,o&&c.push(`count=${o}`),this.headers.Prefer&&c.unshift(this.headers.Prefer),this.headers.Prefer=c.join(","),new PostgrestFilterBuilder(this)}delete({returning:e="representation",count:s=null}={}){this.method="DELETE";const o=[`return=${e}`];return s&&o.push(`count=${s}`),this.headers.Prefer&&o.unshift(this.headers.Prefer),this.headers.Prefer=o.join(","),new PostgrestFilterBuilder(this)}}class PostgrestRpcBuilder extends PostgrestBuilder{constructor(e,{headers:s={},schema:o,fetch:c,shouldThrowOnError:d}={}){super({fetch:c,shouldThrowOnError:d}),this.url=new URL(e),this.headers=Object.assign({},s),this.schema=o}rpc(e,{head:s=!1,count:o=null}={}){return s?(this.method="HEAD",e&&Object.entries(e).forEach(([c,d])=>{this.url.searchParams.append(c,d)})):(this.method="POST",this.body=e),o&&(this.headers.Prefer!==void 0?this.headers.Prefer+=`,count=${o}`:this.headers.Prefer=`count=${o}`),new PostgrestFilterBuilder(this)}}const version$4="0.37.3",DEFAULT_HEADERS$2={"X-Client-Info":`postgrest-js/${version$4}`};class PostgrestClient{constructor(e,{headers:s={},schema:o,fetch:c,throwOnError:d}={}){this.url=e,this.headers=Object.assign(Object.assign({},DEFAULT_HEADERS$2),s),this.schema=o,this.fetch=c,this.shouldThrowOnError=d}auth(e){return this.headers.Authorization=`Bearer ${e}`,this}from(e){const s=`${this.url}/${e}`;return new PostgrestQueryBuilder(s,{headers:this.headers,schema:this.schema,fetch:this.fetch,shouldThrowOnError:this.shouldThrowOnError})}rpc(e,s,{head:o=!1,count:c=null}={}){const d=`${this.url}/rpc/${e}`;return new PostgrestRpcBuilder(d,{headers:this.headers,schema:this.schema,fetch:this.fetch,shouldThrowOnError:this.shouldThrowOnError}).rpc(s,{head:o,count:c})}}var PostgresTypes;(function(a){a.abstime="abstime",a.bool="bool",a.date="date",a.daterange="daterange",a.float4="float4",a.float8="float8",a.int2="int2",a.int4="int4",a.int4range="int4range",a.int8="int8",a.int8range="int8range",a.json="json",a.jsonb="jsonb",a.money="money",a.numeric="numeric",a.oid="oid",a.reltime="reltime",a.text="text",a.time="time",a.timestamp="timestamp",a.timestamptz="timestamptz",a.timetz="timetz",a.tsrange="tsrange",a.tstzrange="tstzrange"})(PostgresTypes||(PostgresTypes={}));const convertChangeData=(a,e,s={})=>{var o;const c=(o=s.skipTypes)!==null&&o!==void 0?o:[];return Object.keys(e).reduce((d,_)=>(d[_]=convertColumn(_,a,e,c),d),{})},convertColumn=(a,e,s,o)=>{const c=e.find(b=>b.name===a),d=c==null?void 0:c.type,_=s[a];return d&&!o.includes(d)?convertCell(d,_):noop$1(_)},convertCell=(a,e)=>{if(a.charAt(0)==="_"){const s=a.slice(1,a.length);return toArray(e,s)}switch(a){case PostgresTypes.bool:return toBoolean(e);case PostgresTypes.float4:case PostgresTypes.float8:case PostgresTypes.int2:case PostgresTypes.int4:case PostgresTypes.int8:case PostgresTypes.numeric:case PostgresTypes.oid:return toNumber(e);case PostgresTypes.json:case PostgresTypes.jsonb:return toJson(e);case PostgresTypes.timestamp:return toTimestampString(e);case PostgresTypes.abstime:case PostgresTypes.date:case PostgresTypes.daterange:case PostgresTypes.int4range:case PostgresTypes.int8range:case PostgresTypes.money:case PostgresTypes.reltime:case PostgresTypes.text:case PostgresTypes.time:case PostgresTypes.timestamptz:case PostgresTypes.timetz:case PostgresTypes.tsrange:case PostgresTypes.tstzrange:return noop$1(e);default:return noop$1(e)}},noop$1=a=>a,toBoolean=a=>{switch(a){case"t":return!0;case"f":return!1;default:return a}},toNumber=a=>{if(typeof a=="string"){const e=parseFloat(a);if(!Number.isNaN(e))return e}return a},toJson=a=>{if(typeof a=="string")try{return JSON.parse(a)}catch(e){return console.log(`JSON parse error: ${e}`),a}return a},toArray=(a,e)=>{if(typeof a!="string")return a;const s=a.length-1,o=a[s];if(a[0]==="{"&&o==="}"){let d;const _=a.slice(1,s);try{d=JSON.parse("["+_+"]")}catch{d=_?_.split(","):[]}return d.map(b=>convertCell(e,b))}return a},toTimestampString=a=>typeof a=="string"?a.replace(" ","T"):a,name="websocket",description="Websocket Client & Server Library implementing the WebSocket protocol as specified in RFC 6455.",keywords=["websocket","websockets","socket","networking","comet","push","RFC-6455","realtime","server","client"],author="Brian McKelvey (https://github.com/theturtle32)",contributors=["I\xF1aki Baz Castillo (http://dev.sipdoc.net)"],version$3="1.0.34",repository={type:"git",url:"https://github.com/theturtle32/WebSocket-Node.git"},homepage="https://github.com/theturtle32/WebSocket-Node",engines={node:">=4.0.0"},dependencies={bufferutil:"^4.0.1",debug:"^2.2.0","es5-ext":"^0.10.50","typedarray-to-buffer":"^3.1.5","utf-8-validate":"^5.0.2",yaeti:"^0.0.6"},devDependencies={"buffer-equal":"^1.0.0",gulp:"^4.0.2","gulp-jshint":"^2.0.4","jshint-stylish":"^2.2.1",jshint:"^2.0.0",tape:"^4.9.1"},config={verbose:!1},scripts={test:"tape test/unit/*.js",gulp:"gulp"},main="index",directories={lib:"./lib"},browser$1="lib/browser.js",license="Apache-2.0";var require$$0={name,description,keywords,author,contributors,version:version$3,repository,homepage,engines,dependencies,devDependencies,config,scripts,main,directories,browser:browser$1,license},version$2=require$$0.version,_globalThis;if(typeof globalThis=="object")_globalThis=globalThis;else try{_globalThis=require("es5-ext/global")}catch{}finally{if(!_globalThis&&typeof window!="undefined"&&(_globalThis=window),!_globalThis)throw new Error("Could not determine global this")}var NativeWebSocket=_globalThis.WebSocket||_globalThis.MozWebSocket,websocket_version=version$2;function W3CWebSocket(a,e){var s;return e?s=new NativeWebSocket(a,e):s=new NativeWebSocket(a),s}NativeWebSocket&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach(function(a){Object.defineProperty(W3CWebSocket,a,{get:function(){return NativeWebSocket[a]}})});var browser={w3cwebsocket:NativeWebSocket?W3CWebSocket:null,version:websocket_version};const version$1="1.7.2",DEFAULT_HEADERS$1={"X-Client-Info":`realtime-js/${version$1}`},VSN="1.0.0",DEFAULT_TIMEOUT=1e4,WS_CLOSE_NORMAL=1e3;var SOCKET_STATES;(function(a){a[a.connecting=0]="connecting",a[a.open=1]="open",a[a.closing=2]="closing",a[a.closed=3]="closed"})(SOCKET_STATES||(SOCKET_STATES={}));var CHANNEL_STATES;(function(a){a.closed="closed",a.errored="errored",a.joined="joined",a.joining="joining",a.leaving="leaving"})(CHANNEL_STATES||(CHANNEL_STATES={}));var CHANNEL_EVENTS;(function(a){a.close="phx_close",a.error="phx_error",a.join="phx_join",a.reply="phx_reply",a.leave="phx_leave",a.access_token="access_token"})(CHANNEL_EVENTS||(CHANNEL_EVENTS={}));var TRANSPORTS;(function(a){a.websocket="websocket"})(TRANSPORTS||(TRANSPORTS={}));var CONNECTION_STATE;(function(a){a.Connecting="connecting",a.Open="open",a.Closing="closing",a.Closed="closed"})(CONNECTION_STATE||(CONNECTION_STATE={}));class Timer{constructor(e,s){this.callback=e,this.timerCalc=s,this.timer=void 0,this.tries=0,this.callback=e,this.timerCalc=s}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}}class Serializer{constructor(){this.HEADER_LENGTH=1}decode(e,s){return e.constructor===ArrayBuffer?s(this._binaryDecode(e)):s(typeof e=="string"?JSON.parse(e):{})}_binaryDecode(e){const s=new DataView(e),o=new TextDecoder;return this._decodeBroadcast(e,s,o)}_decodeBroadcast(e,s,o){const c=s.getUint8(1),d=s.getUint8(2);let _=this.HEADER_LENGTH+2;const b=o.decode(e.slice(_,_+c));_=_+c;const k=o.decode(e.slice(_,_+d));_=_+d;const $=JSON.parse(o.decode(e.slice(_,e.byteLength)));return{ref:null,topic:b,event:k,payload:$}}}class Push{constructor(e,s,o={},c=DEFAULT_TIMEOUT){this.channel=e,this.event=s,this.payload=o,this.timeout=c,this.sent=!1,this.timeoutTimer=void 0,this.ref="",this.receivedResp=null,this.recHooks=[],this.refEvent=null}resend(e){this.timeout=e,this._cancelRefEvent(),this.ref="",this.refEvent=null,this.receivedResp=null,this.sent=!1,this.send()}send(){this._hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload,ref:this.ref}))}updatePayload(e){this.payload=Object.assign(Object.assign({},this.payload),e)}receive(e,s){var o;return this._hasReceived(e)&&s((o=this.receivedResp)===null||o===void 0?void 0:o.response),this.recHooks.push({status:e,callback:s}),this}startTimeout(){if(this.timeoutTimer)return;this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref);const e=s=>{this._cancelRefEvent(),this._cancelTimeout(),this.receivedResp=s,this._matchReceive(s)};this.channel instanceof RealtimeSubscription?this.channel.on(this.refEvent,e):this.channel.on(this.refEvent,{},e),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}trigger(e,s){this.refEvent&&this.channel.trigger(this.refEvent,{status:e,response:s})}destroy(){this._cancelRefEvent(),this._cancelTimeout()}_cancelRefEvent(){!this.refEvent||(this.channel instanceof RealtimeSubscription?this.channel.off(this.refEvent):this.channel.off(this.refEvent,{}))}_cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=void 0}_matchReceive({status:e,response:s}){this.recHooks.filter(o=>o.status===e).forEach(o=>o.callback(s))}_hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}}class RealtimeSubscription{constructor(e,s={},o){this.topic=e,this.params=s,this.socket=o,this.bindings=[],this.state=CHANNEL_STATES.closed,this.joinedOnce=!1,this.pushBuffer=[],this.timeout=this.socket.timeout,this.joinPush=new Push(this,CHANNEL_EVENTS.join,this.params,this.timeout),this.rejoinTimer=new Timer(()=>this.rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive("ok",()=>{this.state=CHANNEL_STATES.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(c=>c.send()),this.pushBuffer=[]}),this.onClose(()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this.joinRef()}`),this.state=CHANNEL_STATES.closed,this.socket.remove(this)}),this.onError(c=>{this.isLeaving()||this.isClosed()||(this.socket.log("channel",`error ${this.topic}`,c),this.state=CHANNEL_STATES.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("timeout",()=>{!this.isJoining()||(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=CHANNEL_STATES.errored,this.rejoinTimer.scheduleTimeout())}),this.on(CHANNEL_EVENTS.reply,(c,d)=>{this.trigger(this.replyEventName(d),c)})}rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this.rejoin()}subscribe(e=this.timeout){if(this.joinedOnce)throw"tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance";return this.joinedOnce=!0,this.rejoin(e),this.joinPush}onClose(e){this.on(CHANNEL_EVENTS.close,e)}onError(e){this.on(CHANNEL_EVENTS.error,s=>e(s))}on(e,s){this.bindings.push({event:e,callback:s})}off(e){this.bindings=this.bindings.filter(s=>s.event!==e)}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,s,o=this.timeout){if(!this.joinedOnce)throw`tried to push '${e}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let c=new Push(this,e,s,o);return this.canPush()?c.send():(c.startTimeout(),this.pushBuffer.push(c)),c}updateJoinPayload(e){this.joinPush.updatePayload(e)}unsubscribe(e=this.timeout){this.state=CHANNEL_STATES.leaving;let s=()=>{this.socket.log("channel",`leave ${this.topic}`),this.trigger(CHANNEL_EVENTS.close,"leave",this.joinRef())};this.joinPush.destroy();let o=new Push(this,CHANNEL_EVENTS.leave,{},e);return o.receive("ok",()=>s()).receive("timeout",()=>s()),o.send(),this.canPush()||o.trigger("ok",{}),o}onMessage(e,s,o){return s}isMember(e){return this.topic===e}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=CHANNEL_STATES.joining,this.joinPush.resend(e))}trigger(e,s,o){let{close:c,error:d,leave:_,join:b}=CHANNEL_EVENTS;if(o&&[c,d,_,b].indexOf(e)>=0&&o!==this.joinRef())return;let $=this.onMessage(e,s,o);if(s&&!$)throw"channel onMessage callbacks must return the payload, modified or unmodified";this.bindings.filter(j=>j.event==="*"?e===(s==null?void 0:s.type):j.event===e).map(j=>j.callback($,o))}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===CHANNEL_STATES.closed}isErrored(){return this.state===CHANNEL_STATES.errored}isJoined(){return this.state===CHANNEL_STATES.joined}isJoining(){return this.state===CHANNEL_STATES.joining}isLeaving(){return this.state===CHANNEL_STATES.leaving}}class RealtimePresence{constructor(e,s){this.channel=e,this.state={},this.pendingDiffs=[],this.joinRef=null,this.caller={onJoin:()=>{},onLeave:()=>{},onSync:()=>{}};const o=(s==null?void 0:s.events)||{state:"presence_state",diff:"presence_diff"};this.channel.on(o.state,{},c=>{const{onJoin:d,onLeave:_,onSync:b}=this.caller;this.joinRef=this.channel.joinRef(),this.state=RealtimePresence.syncState(this.state,c,d,_),this.pendingDiffs.forEach(k=>{this.state=RealtimePresence.syncDiff(this.state,k,d,_)}),this.pendingDiffs=[],b()}),this.channel.on(o.diff,{},c=>{const{onJoin:d,onLeave:_,onSync:b}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(c):(this.state=RealtimePresence.syncDiff(this.state,c,d,_),b())})}static syncState(e,s,o,c){const d=this.cloneDeep(e),_=this.transformState(s),b={},k={};return this.map(d,($,j)=>{_[$]||(k[$]=j)}),this.map(_,($,j)=>{const _e=d[$];if(_e){const et=j.map(rt=>rt.presence_id),tt=_e.map(rt=>rt.presence_id),nt=j.filter(rt=>tt.indexOf(rt.presence_id)<0),it=_e.filter(rt=>et.indexOf(rt.presence_id)<0);nt.length>0&&(b[$]=nt),it.length>0&&(k[$]=it)}else b[$]=j}),this.syncDiff(d,{joins:b,leaves:k},o,c)}static syncDiff(e,s,o,c){const{joins:d,leaves:_}={joins:this.transformState(s.joins),leaves:this.transformState(s.leaves)};return o||(o=()=>{}),c||(c=()=>{}),this.map(d,(b,k)=>{const $=e[b];if(e[b]=this.cloneDeep(k),$){const j=e[b].map(et=>et.presence_id),_e=$.filter(et=>j.indexOf(et.presence_id)<0);e[b].unshift(..._e)}o(b,$,k)}),this.map(_,(b,k)=>{let $=e[b];if(!$)return;const j=k.map(_e=>_e.presence_id);$=$.filter(_e=>j.indexOf(_e.presence_id)<0),e[b]=$,c(b,$,k),$.length===0&&delete e[b]}),e}static list(e,s){return s||(s=(o,c)=>c),this.map(e,(o,c)=>s(o,c))}static map(e,s){return Object.getOwnPropertyNames(e).map(o=>s(o,e[o]))}static transformState(e){return e=this.cloneDeep(e),Object.getOwnPropertyNames(e).reduce((s,o)=>{const c=e[o];return"metas"in c?s[o]=c.metas.map(d=>(d.presence_id=d.phx_ref,delete d.phx_ref,delete d.phx_ref_prev,d)):s[o]=c,s},{})}static cloneDeep(e){return JSON.parse(JSON.stringify(e))}onJoin(e){this.caller.onJoin=e}onLeave(e){this.caller.onLeave=e}onSync(e){this.caller.onSync=e}list(e){return RealtimePresence.list(this.state,e)}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel.joinRef()}}class RealtimeChannel{constructor(e,s={},o){this.topic=e,this.params=s,this.socket=o,this.bindings=[],this.state=CHANNEL_STATES.closed,this.joinedOnce=!1,this.pushBuffer=[],this.timeout=this.socket.timeout,this.joinPush=new Push(this,CHANNEL_EVENTS.join,this.params,this.timeout),this.rejoinTimer=new Timer(()=>this.rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive("ok",()=>{this.state=CHANNEL_STATES.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(c=>c.send()),this.pushBuffer=[]}),this.onClose(()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this.joinRef()}`),this.state=CHANNEL_STATES.closed,this.socket.remove(this)}),this.onError(c=>{this.isLeaving()||this.isClosed()||(this.socket.log("channel",`error ${this.topic}`,c),this.state=CHANNEL_STATES.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("timeout",()=>{!this.isJoining()||(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=CHANNEL_STATES.errored,this.rejoinTimer.scheduleTimeout())}),this.on(CHANNEL_EVENTS.reply,{},(c,d)=>{this.trigger(this.replyEventName(d),c)}),this.presence=new RealtimePresence(this)}list(){return this.presence.list()}rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this.rejoin()}subscribe(e=this.timeout){if(this.joinedOnce)throw"tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance";{const s=this.bindings.reduce((o,c)=>{const{type:d}=c;return["phx_close","phx_error","phx_reply","presence_diff","presence_state"].includes(d)||(o[d]=c),o},{});return Object.keys(s).length&&this.updateJoinPayload({configs:s}),this.joinedOnce=!0,this.rejoin(e),this.joinPush}}onClose(e){this.on(CHANNEL_EVENTS.close,{},e)}onError(e){this.on(CHANNEL_EVENTS.error,{},s=>e(s))}on(e,s,o){this.bindings.push({type:e,filter:s!=null?s:{},callback:o!=null?o:()=>{}})}off(e,s){this.bindings=this.bindings.filter(o=>!(o.type===e&&RealtimeChannel.isEqual(o.filter,s)))}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,s,o=this.timeout){if(!this.joinedOnce)throw`tried to push '${e}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let c=new Push(this,e,s,o);return this.canPush()?c.send():(c.startTimeout(),this.pushBuffer.push(c)),c}updateJoinPayload(e){this.joinPush.updatePayload(e)}unsubscribe(e=this.timeout){this.state=CHANNEL_STATES.leaving;const s=()=>{this.socket.log("channel",`leave ${this.topic}`),this.trigger(CHANNEL_EVENTS.close,"leave",this.joinRef())};this.joinPush.destroy();const o=new Push(this,CHANNEL_EVENTS.leave,{},e);return o.receive("ok",()=>s()).receive("timeout",()=>s()),o.send(),this.canPush()||o.trigger("ok",{}),o}onMessage(e,s,o){return s}isMember(e){return this.topic===e}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=CHANNEL_STATES.joining,this.joinPush.resend(e))}trigger(e,s,o){const{close:c,error:d,leave:_,join:b}=CHANNEL_EVENTS;if(o&&[c,d,_,b].indexOf(e)>=0&&o!==this.joinRef())return;const $=this.onMessage(e,s,o);if(s&&!$)throw"channel onMessage callbacks must return the payload, modified or unmodified";this.bindings.filter(j=>{var _e,et;return(j==null?void 0:j.type)===e&&(((_e=j==null?void 0:j.filter)===null||_e===void 0?void 0:_e.event)==="*"||((et=j==null?void 0:j.filter)===null||et===void 0?void 0:et.event)===(s==null?void 0:s.event))}).map(j=>j.callback($,o))}send(e){const s=this.push(e.type,e);return new Promise((o,c)=>{s.receive("ok",()=>o("ok")),s.receive("timeout",()=>c("timeout"))})}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===CHANNEL_STATES.closed}isErrored(){return this.state===CHANNEL_STATES.errored}isJoined(){return this.state===CHANNEL_STATES.joined}isJoining(){return this.state===CHANNEL_STATES.joining}isLeaving(){return this.state===CHANNEL_STATES.leaving}static isEqual(e,s){if(Object.keys(e).length!==Object.keys(s).length)return!1;for(const o in e)if(e[o]!==s[o])return!1;return!0}}var __awaiter$5=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})},__rest=globalThis&&globalThis.__rest||function(a,e){var s={};for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&e.indexOf(o)<0&&(s[o]=a[o]);if(a!=null&&typeof Object.getOwnPropertySymbols=="function")for(var c=0,o=Object.getOwnPropertySymbols(a);c{};class RealtimeClient{constructor(e,s){this.accessToken=null,this.channels=[],this.endPoint="",this.headers=DEFAULT_HEADERS$1,this.params={},this.timeout=DEFAULT_TIMEOUT,this.transport=browser.w3cwebsocket,this.heartbeatIntervalMs=3e4,this.longpollerTimeout=2e4,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.ref=0,this.logger=noop,this.conn=null,this.sendBuffer=[],this.serializer=new Serializer,this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.endPoint=`${e}/${TRANSPORTS.websocket}`,s!=null&&s.params&&(this.params=s.params),s!=null&&s.headers&&(this.headers=Object.assign(Object.assign({},this.headers),s.headers)),s!=null&&s.timeout&&(this.timeout=s.timeout),s!=null&&s.logger&&(this.logger=s.logger),s!=null&&s.transport&&(this.transport=s.transport),s!=null&&s.heartbeatIntervalMs&&(this.heartbeatIntervalMs=s.heartbeatIntervalMs),s!=null&&s.longpollerTimeout&&(this.longpollerTimeout=s.longpollerTimeout),this.reconnectAfterMs=s!=null&&s.reconnectAfterMs?s.reconnectAfterMs:o=>[1e3,2e3,5e3,1e4][o-1]||1e4,this.encode=s!=null&&s.encode?s.encode:(o,c)=>c(JSON.stringify(o)),this.decode=s!=null&&s.decode?s.decode:this.serializer.decode.bind(this.serializer),this.reconnectTimer=new Timer(()=>__awaiter$5(this,void 0,void 0,function*(){yield this.disconnect(),this.connect()}),this.reconnectAfterMs)}connect(){this.conn||(this.conn=new this.transport(this.endPointURL(),[],null,this.headers),this.conn&&(this.conn.binaryType="arraybuffer",this.conn.onopen=()=>this._onConnOpen(),this.conn.onerror=e=>this._onConnError(e),this.conn.onmessage=e=>this.onConnMessage(e),this.conn.onclose=e=>this._onConnClose(e)))}disconnect(e,s){return new Promise((o,c)=>{try{this.conn&&(this.conn.onclose=function(){},e?this.conn.close(e,s||""):this.conn.close(),this.conn=null,this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.reset()),o({error:null,data:!0})}catch(d){o({error:d,data:!1})}})}log(e,s,o){this.logger(e,s,o)}onOpen(e){this.stateChangeCallbacks.open.push(e)}onClose(e){this.stateChangeCallbacks.close.push(e)}onError(e){this.stateChangeCallbacks.error.push(e)}onMessage(e){this.stateChangeCallbacks.message.push(e)}connectionState(){switch(this.conn&&this.conn.readyState){case SOCKET_STATES.connecting:return CONNECTION_STATE.Connecting;case SOCKET_STATES.open:return CONNECTION_STATE.Open;case SOCKET_STATES.closing:return CONNECTION_STATE.Closing;default:return CONNECTION_STATE.Closed}}isConnected(){return this.connectionState()===CONNECTION_STATE.Open}remove(e){this.channels=this.channels.filter(s=>s.joinRef()!==e.joinRef())}channel(e,s={}){var o;const{selfBroadcast:c}=s,d=__rest(s,["selfBroadcast"]);c&&(d.self_broadcast=c);const _=!((o=this.params)===null||o===void 0)&&o.vsndate?new RealtimeChannel(e,d,this):new RealtimeSubscription(e,d,this);return _ instanceof RealtimeChannel&&(_.presence.onJoin((b,k,$)=>{_.trigger("presence",{event:"JOIN",key:b,currentPresences:k,newPresences:$})}),_.presence.onLeave((b,k,$)=>{_.trigger("presence",{event:"LEAVE",key:b,currentPresences:k,leftPresences:$})}),_.presence.onSync(()=>{_.trigger("presence",{event:"SYNC"})})),this.channels.push(_),_}push(e){const{topic:s,event:o,payload:c,ref:d}=e;let _=()=>{this.encode(e,b=>{var k;(k=this.conn)===null||k===void 0||k.send(b)})};this.log("push",`${s} ${o} (${d})`,c),this.isConnected()?_():this.sendBuffer.push(_)}onConnMessage(e){this.decode(e.data,s=>{let{topic:o,event:c,payload:d,ref:_}=s;(_&&_===this.pendingHeartbeatRef||c===(d==null?void 0:d.type))&&(this.pendingHeartbeatRef=null),this.log("receive",`${d.status||""} ${o} ${c} ${_&&"("+_+")"||""}`,d),this.channels.filter(b=>b.isMember(o)).forEach(b=>b.trigger(c,d,_)),this.stateChangeCallbacks.message.forEach(b=>b(s))})}endPointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:VSN}))}makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}setAuth(e){this.accessToken=e,this.channels.forEach(s=>{e&&s.updateJoinPayload({user_token:e}),s.joinedOnce&&s.isJoined()&&s.push(CHANNEL_EVENTS.access_token,{access_token:e})})}leaveOpenTopic(e){let s=this.channels.find(o=>o.topic===e&&(o.isJoined()||o.isJoining()));s&&(this.log("transport",`leaving duplicate topic "${e}"`),s.unsubscribe())}_onConnOpen(){this.log("transport",`connected to ${this.endPointURL()}`),this._flushSendBuffer(),this.reconnectTimer.reset(),this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.heartbeatTimer=setInterval(()=>this._sendHeartbeat(),this.heartbeatIntervalMs),this.stateChangeCallbacks.open.forEach(e=>e())}_onConnClose(e){this.log("transport","close",e),this._triggerChanError(),this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.scheduleTimeout(),this.stateChangeCallbacks.close.forEach(s=>s(e))}_onConnError(e){this.log("transport",e.message),this._triggerChanError(),this.stateChangeCallbacks.error.forEach(s=>s(e))}_triggerChanError(){this.channels.forEach(e=>e.trigger(CHANNEL_EVENTS.error))}_appendParams(e,s){if(Object.keys(s).length===0)return e;const o=e.match(/\?/)?"&":"?",c=new URLSearchParams(s);return`${e}${o}${c}`}_flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(e=>e()),this.sendBuffer=[])}_sendHeartbeat(){var e;if(!!this.isConnected()){if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.log("transport","heartbeat timeout. Attempting to re-establish connection"),(e=this.conn)===null||e===void 0||e.close(WS_CLOSE_NORMAL,"hearbeat timeout");return}this.pendingHeartbeatRef=this.makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef}),this.setAuth(this.accessToken)}}}class SupabaseRealtimeClient{constructor(e,s,o,c){const d={},_=c==="*"?`realtime:${o}`:`realtime:${o}:${c}`,b=s.Authorization.split(" ")[1];b&&(d.user_token=b),this.subscription=e.channel(_,d)}getPayloadRecords(e){const s={new:{},old:{}};return(e.type==="INSERT"||e.type==="UPDATE")&&(s.new=convertChangeData(e.columns,e.record)),(e.type==="UPDATE"||e.type==="DELETE")&&(s.old=convertChangeData(e.columns,e.old_record)),s}on(e,s){return this.subscription.on(e,o=>{let c={schema:o.schema,table:o.table,commit_timestamp:o.commit_timestamp,eventType:o.type,new:{},old:{},errors:o.errors};c=Object.assign(Object.assign({},c),this.getPayloadRecords(o)),s(c)}),this}subscribe(e=()=>{}){return this.subscription.onError(s=>e("SUBSCRIPTION_ERROR",s)),this.subscription.onClose(()=>e("CLOSED")),this.subscription.subscribe().receive("ok",()=>e("SUBSCRIBED")).receive("error",s=>e("SUBSCRIPTION_ERROR",s)).receive("timeout",()=>e("RETRYING_AFTER_TIMEOUT")),this.subscription}}class SupabaseQueryBuilder extends PostgrestQueryBuilder{constructor(e,{headers:s={},schema:o,realtime:c,table:d,fetch:_,shouldThrowOnError:b}){super(e,{headers:s,schema:o,fetch:_,shouldThrowOnError:b}),this._subscription=null,this._realtime=c,this._headers=s,this._schema=o,this._table=d}on(e,s){return this._realtime.isConnected()||this._realtime.connect(),this._subscription||(this._subscription=new SupabaseRealtimeClient(this._realtime,this._headers,this._schema,this._table)),this._subscription.on(e,s)}}const version="0.0.0",DEFAULT_HEADERS={"X-Client-Info":`storage-js/${version}`};var __awaiter$4=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};const _getErrorMessage=a=>a.msg||a.message||a.error_description||a.error||JSON.stringify(a),handleError=(a,e)=>{if(typeof a.json!="function")return e(a);a.json().then(s=>e({message:_getErrorMessage(s),status:(a==null?void 0:a.status)||500}))},_getRequestParams=(a,e,s,o)=>{const c={method:a,headers:(e==null?void 0:e.headers)||{}};return a==="GET"?c:(c.headers=Object.assign({"Content-Type":"application/json"},e==null?void 0:e.headers),c.body=JSON.stringify(o),Object.assign(Object.assign({},c),s))};function _handleRequest(a,e,s,o,c,d){return __awaiter$4(this,void 0,void 0,function*(){return new Promise((_,b)=>{a(s,_getRequestParams(e,o,c,d)).then(k=>{if(!k.ok)throw k;return o!=null&&o.noResolveJson?_(k):k.json()}).then(k=>_(k)).catch(k=>handleError(k,b))})})}function get(a,e,s,o){return __awaiter$4(this,void 0,void 0,function*(){return _handleRequest(a,"GET",e,s,o)})}function post(a,e,s,o,c){return __awaiter$4(this,void 0,void 0,function*(){return _handleRequest(a,"POST",e,o,c,s)})}function put(a,e,s,o,c){return __awaiter$4(this,void 0,void 0,function*(){return _handleRequest(a,"PUT",e,o,c,s)})}function remove(a,e,s,o,c){return __awaiter$4(this,void 0,void 0,function*(){return _handleRequest(a,"DELETE",e,o,c,s)})}const resolveFetch$1=a=>{let e;return a?e=a:typeof fetch=="undefined"?e=crossFetch:e=fetch,(...s)=>e(...s)};var __awaiter$3=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class StorageBucketApi{constructor(e,s={},o){this.url=e,this.headers=Object.assign(Object.assign({},DEFAULT_HEADERS),s),this.fetch=resolveFetch$1(o)}listBuckets(){return __awaiter$3(this,void 0,void 0,function*(){try{return{data:yield get(this.fetch,`${this.url}/bucket`,{headers:this.headers}),error:null}}catch(e){return{data:null,error:e}}})}getBucket(e){return __awaiter$3(this,void 0,void 0,function*(){try{return{data:yield get(this.fetch,`${this.url}/bucket/${e}`,{headers:this.headers}),error:null}}catch(s){return{data:null,error:s}}})}createBucket(e,s={public:!1}){return __awaiter$3(this,void 0,void 0,function*(){try{return{data:(yield post(this.fetch,`${this.url}/bucket`,{id:e,name:e,public:s.public},{headers:this.headers})).name,error:null}}catch(o){return{data:null,error:o}}})}updateBucket(e,s){return __awaiter$3(this,void 0,void 0,function*(){try{return{data:yield put(this.fetch,`${this.url}/bucket/${e}`,{id:e,name:e,public:s.public},{headers:this.headers}),error:null}}catch(o){return{data:null,error:o}}})}emptyBucket(e){return __awaiter$3(this,void 0,void 0,function*(){try{return{data:yield post(this.fetch,`${this.url}/bucket/${e}/empty`,{},{headers:this.headers}),error:null}}catch(s){return{data:null,error:s}}})}deleteBucket(e){return __awaiter$3(this,void 0,void 0,function*(){try{return{data:yield remove(this.fetch,`${this.url}/bucket/${e}`,{},{headers:this.headers}),error:null}}catch(s){return{data:null,error:s}}})}}var __awaiter$2=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};const DEFAULT_SEARCH_OPTIONS={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},DEFAULT_FILE_OPTIONS={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};class StorageFileApi{constructor(e,s={},o,c){this.url=e,this.headers=s,this.bucketId=o,this.fetch=resolveFetch$1(c)}uploadOrUpdate(e,s,o,c){return __awaiter$2(this,void 0,void 0,function*(){try{let d;const _=Object.assign(Object.assign({},DEFAULT_FILE_OPTIONS),c),b=Object.assign(Object.assign({},this.headers),e==="POST"&&{"x-upsert":String(_.upsert)});typeof Blob!="undefined"&&o instanceof Blob?(d=new FormData,d.append("cacheControl",_.cacheControl),d.append("",o)):typeof FormData!="undefined"&&o instanceof FormData?(d=o,d.append("cacheControl",_.cacheControl)):(d=o,b["cache-control"]=`max-age=${_.cacheControl}`,b["content-type"]=_.contentType);const k=this._removeEmptyFolders(s),$=this._getFinalPath(k),j=yield this.fetch(`${this.url}/object/${$}`,{method:e,body:d,headers:b});if(j.ok)return{data:{Key:$},error:null};{const _e=yield j.json();return{data:null,error:_e}}}catch(d){return{data:null,error:d}}})}upload(e,s,o){return __awaiter$2(this,void 0,void 0,function*(){return this.uploadOrUpdate("POST",e,s,o)})}update(e,s,o){return __awaiter$2(this,void 0,void 0,function*(){return this.uploadOrUpdate("PUT",e,s,o)})}move(e,s){return __awaiter$2(this,void 0,void 0,function*(){try{return{data:yield post(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:e,destinationKey:s},{headers:this.headers}),error:null}}catch(o){return{data:null,error:o}}})}copy(e,s){return __awaiter$2(this,void 0,void 0,function*(){try{return{data:yield post(this.fetch,`${this.url}/object/copy`,{bucketId:this.bucketId,sourceKey:e,destinationKey:s},{headers:this.headers}),error:null}}catch(o){return{data:null,error:o}}})}createSignedUrl(e,s){return __awaiter$2(this,void 0,void 0,function*(){try{const o=this._getFinalPath(e);let c=yield post(this.fetch,`${this.url}/object/sign/${o}`,{expiresIn:s},{headers:this.headers});const d=`${this.url}${c.signedURL}`;return c={signedURL:d},{data:c,error:null,signedURL:d}}catch(o){return{data:null,error:o,signedURL:null}}})}createSignedUrls(e,s){return __awaiter$2(this,void 0,void 0,function*(){try{return{data:(yield post(this.fetch,`${this.url}/object/sign/${this.bucketId}`,{expiresIn:s,paths:e},{headers:this.headers})).map(c=>Object.assign(Object.assign({},c),{signedURL:c.signedURL?`${this.url}${c.signedURL}`:null})),error:null}}catch(o){return{data:null,error:o}}})}download(e){return __awaiter$2(this,void 0,void 0,function*(){try{const s=this._getFinalPath(e);return{data:yield(yield get(this.fetch,`${this.url}/object/${s}`,{headers:this.headers,noResolveJson:!0})).blob(),error:null}}catch(s){return{data:null,error:s}}})}getPublicUrl(e){try{const s=this._getFinalPath(e),o=`${this.url}/object/public/${s}`;return{data:{publicURL:o},error:null,publicURL:o}}catch(s){return{data:null,error:s,publicURL:null}}}remove(e){return __awaiter$2(this,void 0,void 0,function*(){try{return{data:yield remove(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:e},{headers:this.headers}),error:null}}catch(s){return{data:null,error:s}}})}list(e,s,o){return __awaiter$2(this,void 0,void 0,function*(){try{const c=Object.assign(Object.assign(Object.assign({},DEFAULT_SEARCH_OPTIONS),s),{prefix:e||""});return{data:yield post(this.fetch,`${this.url}/object/list/${this.bucketId}`,c,{headers:this.headers},o),error:null}}catch(c){return{data:null,error:c}}})}_getFinalPath(e){return`${this.bucketId}/${e}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}}class StorageClient extends StorageBucketApi{constructor(e,s={},o){super(e,s,o)}from(e){return new StorageFileApi(this.url,this.headers,e,this.fetch)}}const resolveFetch=a=>{let e;return a?e=a:typeof fetch=="undefined"?e=crossFetch:e=fetch,(...s)=>e(...s)};var __awaiter$1=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};class FunctionsClient{constructor(e,{headers:s={},customFetch:o}={}){this.url=e,this.headers=s,this.fetch=resolveFetch(o)}setAuth(e){this.headers.Authorization=`Bearer ${e}`}invoke(e,s){return __awaiter$1(this,void 0,void 0,function*(){try{const{headers:o,body:c}=s!=null?s:{},d=yield this.fetch(`${this.url}/${e}`,{method:"POST",headers:Object.assign({},this.headers,o),body:c}),_=d.headers.get("x-relay-error");if(_&&_==="true")return{data:null,error:new Error(yield d.text())};let b;const{responseType:k}=s!=null?s:{};return!k||k==="json"?b=yield d.json():k==="arrayBuffer"?b=yield d.arrayBuffer():k==="blob"?b=yield d.blob():b=yield d.text(),{data:b,error:null}}catch(o){return{data:null,error:o}}})}}var __awaiter=globalThis&&globalThis.__awaiter||function(a,e,s,o){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(o.next(j))}catch(_e){_(_e)}}function k(j){try{$(o.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((o=o.apply(a,e||[])).next())})};const DEFAULT_OPTIONS={schema:"public",autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,multiTab:!0,headers:DEFAULT_HEADERS$4};class SupabaseClient{constructor(e,s,o){if(this.supabaseUrl=e,this.supabaseKey=s,!e)throw new Error("supabaseUrl is required.");if(!s)throw new Error("supabaseKey is required.");const c=stripTrailingSlash(e),d=Object.assign(Object.assign({},DEFAULT_OPTIONS),o);if(this.restUrl=`${c}/rest/v1`,this.realtimeUrl=`${c}/realtime/v1`.replace("http","ws"),this.authUrl=`${c}/auth/v1`,this.storageUrl=`${c}/storage/v1`,c.match(/(supabase\.co)|(supabase\.in)/)){const b=c.split(".");this.functionsUrl=`${b[0]}.functions.${b[1]}.${b[2]}`}else this.functionsUrl=`${c}/functions/v1`;this.schema=d.schema,this.multiTab=d.multiTab,this.fetch=d.fetch,this.headers=Object.assign(Object.assign({},DEFAULT_HEADERS$4),o==null?void 0:o.headers),this.shouldThrowOnError=d.shouldThrowOnError||!1,this.auth=this._initSupabaseAuthClient(d),this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers},d.realtime)),this._listenForAuthEvents(),this._listenForMultiTabEvents()}get functions(){return new FunctionsClient(this.functionsUrl,{headers:this._getAuthHeaders(),customFetch:this.fetch})}get storage(){return new StorageClient(this.storageUrl,this._getAuthHeaders(),this.fetch)}from(e){const s=`${this.restUrl}/${e}`;return new SupabaseQueryBuilder(s,{headers:this._getAuthHeaders(),schema:this.schema,realtime:this.realtime,table:e,fetch:this.fetch,shouldThrowOnError:this.shouldThrowOnError})}rpc(e,s,{head:o=!1,count:c=null}={}){return this._initPostgRESTClient().rpc(e,s,{head:o,count:c})}channel(e,s){var o,c;const d=(c=(o=this.auth.session())===null||o===void 0?void 0:o.access_token)!==null&&c!==void 0?c:this.supabaseKey;return this.realtime.isConnected()||this.realtime.connect(),this.realtime.channel(e,Object.assign(Object.assign({},s),{user_token:d}))}removeAllSubscriptions(){return __awaiter(this,void 0,void 0,function*(){const e=this.getSubscriptions().slice(),s=e.map(c=>this.removeSubscription(c));return(yield Promise.all(s)).map(({error:c},d)=>({data:{subscription:e[d]},error:c}))})}removeChannel(e){return __awaiter(this,void 0,void 0,function*(){const{error:s}=yield this._closeSubscription(e),o=this.getSubscriptions(),c=o.filter(d=>d.isJoined()).length;return o.length===0&&(yield this.realtime.disconnect()),{data:{openChannels:c},error:s}})}removeSubscription(e){return __awaiter(this,void 0,void 0,function*(){const{error:s}=yield this._closeSubscription(e),o=this.getSubscriptions(),c=o.filter(d=>d.isJoined()).length;return o.length===0&&(yield this.realtime.disconnect()),{data:{openSubscriptions:c},error:s}})}_closeSubscription(e){return __awaiter(this,void 0,void 0,function*(){let s=null;if(!e.isClosed()){const{error:o}=yield this._unsubscribeSubscription(e);s=o}return this.realtime.remove(e),{error:s}})}_unsubscribeSubscription(e){return new Promise(s=>{e.unsubscribe().receive("ok",()=>s({error:null})).receive("error",o=>s({error:o})).receive("timeout",()=>s({error:new Error("timed out")}))})}getSubscriptions(){return this.realtime.channels}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:s,detectSessionInUrl:o,localStorage:c,headers:d,fetch:_,cookieOptions:b,multiTab:k}){const $={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new SupabaseAuthClient({url:this.authUrl,headers:Object.assign(Object.assign({},d),$),autoRefreshToken:e,persistSession:s,detectSessionInUrl:o,localStorage:c,fetch:_,cookieOptions:b,multiTab:k})}_initRealtimeClient(e){return new RealtimeClient(this.realtimeUrl,Object.assign(Object.assign({},e),{params:Object.assign(Object.assign({},e==null?void 0:e.params),{apikey:this.supabaseKey})}))}_initPostgRESTClient(){return new PostgrestClient(this.restUrl,{headers:this._getAuthHeaders(),schema:this.schema,fetch:this.fetch,throwOnError:this.shouldThrowOnError})}_getAuthHeaders(){var e,s;const o=Object.assign({},this.headers),c=(s=(e=this.auth.session())===null||e===void 0?void 0:e.access_token)!==null&&s!==void 0?s:this.supabaseKey;return o.apikey=this.supabaseKey,o.Authorization=o.Authorization||`Bearer ${c}`,o}_listenForMultiTabEvents(){if(!this.multiTab||!isBrowser$1()||!(window!=null&&window.addEventListener))return null;try{return window==null?void 0:window.addEventListener("storage",e=>{var s,o,c;if(e.key===STORAGE_KEY$1){const d=JSON.parse(String(e.newValue)),_=(o=(s=d==null?void 0:d.currentSession)===null||s===void 0?void 0:s.access_token)!==null&&o!==void 0?o:void 0,b=(c=this.auth.session())===null||c===void 0?void 0:c.access_token;_?!b&&_?this._handleTokenChanged("SIGNED_IN",_,"STORAGE"):b!==_&&this._handleTokenChanged("TOKEN_REFRESHED",_,"STORAGE"):this._handleTokenChanged("SIGNED_OUT",_,"STORAGE")}})}catch(e){return console.error("_listenForMultiTabEvents",e),null}}_listenForAuthEvents(){let{data:e}=this.auth.onAuthStateChange((s,o)=>{this._handleTokenChanged(s,o==null?void 0:o.access_token,"CLIENT")});return e}_handleTokenChanged(e,s,o){(e==="TOKEN_REFRESHED"||e==="SIGNED_IN")&&this.changedAccessToken!==s?(this.realtime.setAuth(s),o=="STORAGE"&&this.auth.setAuth(s),this.changedAccessToken=s):(e==="SIGNED_OUT"||e==="USER_DELETED")&&(this.realtime.setAuth(this.supabaseKey),o=="STORAGE"&&this.auth.signOut())}}const createClient=(a,e,s)=>new SupabaseClient(a,e,s);let nanoid=(a=21)=>crypto.getRandomValues(new Uint8Array(a)).reduce((e,s)=>(s&=63,s<36?e+=s.toString(36):s<62?e+=(s-26).toString(36).toUpperCase():s>62?e+="-":e+="_",e),"");const supabase=createClient("https://pidxdsxphlhzjnzmifth.supabase.co","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InBpZHhkc3hwaGxoempuem1pZnRoIiwicm9sZSI6ImFub24iLCJpYXQiOjE2NTYyMzA1NTYsImV4cCI6MTk3MTgwNjU1Nn0.bqlw7802fsWRnqU5BLYtmXk_k-D1VFmbkHMywWc15NM");evalScope(Tone,controls,{WebDirt},__vitePreload(()=>Promise.resolve().then(function(){return strudel}),void 0),__vitePreload(()=>import("./index.52697493.js"),[]),__vitePreload(()=>import("./index.8ac7fc56.js"),[]),__vitePreload(()=>import("./index.93bc31c4.js"),[]),__vitePreload(()=>import("./index.84c349f8.js"),[]),__vitePreload(()=>import("./index.8e1f8ae9.js"),[]),__vitePreload(()=>import("./index.90c431ba.js"),[]),__vitePreload(()=>import("./osc.6137292f.js"),[]),__vitePreload(()=>import("./index.fbfd1db4.js"),[]),__vitePreload(()=>import("./serial.9dcf36a7.js"),[]),__vitePreload(()=>import("./index.46571609.js"),[]));loadWebDirt({sampleMapUrl:"EmuSP12.json",sampleFolder:"EmuSP12"});prebake();async function initCode(){var a,e;try{const o=(e=(a=window.location.href.split("?")[1])==null?void 0:a.split("#"))==null?void 0:e[0],c=window.location.href.split("#")[1];if(c)return console.log("decode hash from url"),atob(decodeURIComponent(c||""));if(o)return supabase.from("code").select("code").eq("hash",o).then(({data:d,error:_})=>{if(_&&console.warn("failed to load hash",err),d.length)return console.log("load hash from database",o),d[0].code})}catch(s){console.warn("failed to decode",s)}}function getRandomTune(){const a=Object.values(tunes);return(s=>s[Math.floor(Math.random()*s.length)])(a)}const randomTune=getRandomTune(),defaultSynth=getDefaultSynth(),isEmbedded=window.location!==window.parent.location;function App(){const[a,e]=react.exports.useState(),[s,o]=react.exports.useState(),{setCode:c,setPattern:d,error:_,code:b,cycle:k,dirty:$,log:j,togglePlay:_e,activeCode:et,setActiveCode:tt,activateCode:nt,pattern:it,pushLog:rt,pending:st,hideHeader:ot,hideConsole:at}=useRepl({tune:"// LOADING...",defaultSynth});react.exports.useEffect(()=>{initCode().then(lt=>c(lt||randomTune))},[]);const ht=react.exports.useRef();return react.exports.useLayoutEffect(()=>{var lt;ht.current&&(ht.current.scrollTop=(lt=ht.current)==null?void 0:lt.scrollHeight)},[j]),react.exports.useLayoutEffect(()=>{const lt=async ut=>{(ut.ctrlKey||ut.altKey)&&(ut.code==="Enter"?(ut.preventDefault(),flash(a),await nt()):ut.code==="Period"&&(k.stop(),ut.preventDefault()))};return window.addEventListener("keydown",lt,!0),()=>window.removeEventListener("keydown",lt,!0)},[it,b,nt,k,a]),useHighlighting({view:a,pattern:it,active:k.started&&!(et!=null&&et.includes("strudel disable-highlighting"))}),useWebMidi({ready:react.exports.useCallback(({outputs:lt})=>{rt(`WebMidi ready! Just add .midi(${lt.map(ut=>`'${ut.name}'`).join(" | ")}) to the pattern. `)},[rt]),connected:react.exports.useCallback(({outputs:lt})=>{rt(`Midi device connected! Available: ${lt.map(ut=>`'${ut.name}'`).join(", ")}`)},[rt]),disconnected:react.exports.useCallback(({outputs:lt})=>{rt(`Midi device disconnected! Available: ${lt.map(ut=>`'${ut.name}'`).join(", ")}`)},[rt])}),jsxs("div",{className:"min-h-screen flex flex-col",children:[!ot&&jsxs("header",{id:"header",className:cx("flex-none w-full px-2 flex border-b border-gray-200 justify-between z-[10] bg-gray-100",isEmbedded?"h-8":"h-14"),children:[jsxs("div",{className:"flex items-center space-x-2",children:[jsx("img",{src:logo,className:cx("Tidal-logo",isEmbedded?"w-6 h-6":"w-10 h-10"),alt:"logo"}),jsxs("h1",{className:isEmbedded?"text-l":"text-xl",children:["Strudel ",isEmbedded?"Mini ":"","REPL"]})]}),jsxs("div",{className:"flex",children:[jsx("button",{onClick:()=>{getAudioContext().resume(),_e()},className:cx("hover:bg-gray-300",isEmbedded?"px-2":"p-2"),children:st?jsx(Fragment,{children:"loading..."}):jsxs("span",{className:cx("flex items-center","w-16"),children:[k.started?jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zM7 8a1 1 0 012 0v4a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v4a1 1 0 102 0V8a1 1 0 00-1-1z",clipRule:"evenodd"})}):jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor",children:jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM9.555 7.168A1 1 0 008 8v4a1 1 0 001.555.832l3-2a1 1 0 000-1.664l-3-2z",clipRule:"evenodd"})}),k.started?"pause":"play"]})}),!isEmbedded&&jsx("button",{className:"hover:bg-gray-300 p-2",onClick:async()=>{const lt=getRandomTune();c(lt),cleanupDraw(),cleanupUi(),resetLoadedSamples(),await prebake();const ut=await evaluate(lt);d(ut.pattern),tt(lt)},children:"\u{1F3B2} random"}),!isEmbedded&&jsx("button",{className:cx("hover:bg-gray-300",isEmbedded?"px-2":"p-2"),children:jsx("a",{href:"./tutorial",children:"\u{1F4DA} tutorial"})}),!isEmbedded&&jsxs("button",{className:cx("cursor-pointer hover:bg-gray-300",isEmbedded?"px-2":"p-2"),onClick:async()=>{const lt=et||b;if(s===lt){rt("Link already generated!");return}const ut=nanoid(12),{data:ct,error:dt}=await supabase.from("code").insert([{code:lt,hash:ut}]);if(dt){console.log("error",dt);const ft=`Error: ${dt.message}`;rt(ft)}else{o(et||b);const ft=window.location.origin+"?"+ut;navigator.clipboard.writeText(ft);const Et=`Link copied to clipboard: ${ft}`;rt(Et)}},children:["\u{1F4E3} share",s&&s===(et||b)?"d!":""]}),isEmbedded&&jsx("button",{className:cx("hover:bg-gray-300 px-2"),children:jsx("a",{href:window.location.href,target:"_blank",rel:"noopener noreferrer",title:"Open in REPL",children:"\u{1F680} open"})}),isEmbedded&&jsx("button",{className:cx("hover:bg-gray-300 px-2"),children:jsx("a",{onClick:()=>{window.location.href=initialUrl,window.location.reload()},title:"Reset",children:"\u{1F494} reset"})})]})]}),jsxs("section",{className:"grow flex flex-col text-gray-100",children:[jsxs("div",{className:"grow relative flex overflow-auto pb-8 cursor-text",id:"code",children:[jsx(CodeMirror,{value:b,onChange:c,onViewChanged:e}),jsx("span",{className:"z-[20] bg-black rounded-t-md py-1 px-2 fixed bottom-0 right-1 text-xs whitespace-pre text-right pointer-events-none",children:k.started?$?`ctrl+enter to update `:`no changes `:`press ctrl+enter to play -`}),_&&jsx("div",{className:cx("rounded-md fixed pointer-events-none left-2 bottom-1 text-xs bg-black px-2 z-[20]","text-red-500"),children:(_==null?void 0:_.message)||"unknown error"})]}),!isEmbedded&&!at&&jsx("textarea",{className:"z-[10] h-16 border-0 text-xs bg-[transparent] border-t border-slate-600 resize-none",value:j,readOnly:!0,ref:ht,style:{fontFamily:"monospace"}})]})]})}var index="";ReactDOM.render(jsx(React.StrictMode,{children:jsx(App,{})}),document.getElementById("root"));export{getAugmentedNamespace as A,commonjsGlobal as B,getDefaultExportFromCjs as C,reify$1 as D,stack as E,strudel as F,enableWebMidi as G,Hap as H,TimeSpan$1 as I,getAudioContext as J,getCachedBuffer as K,loadBuffer as L,getLoadedBuffer as M,loadGithubSamples as N,samples as O,Pattern$5 as P,resetLoadedSamples as Q,getLoadedSamples$1 as R,State$1 as S,Tone as T,loadWebDirt as U,WebMidi as W,amsynth as a,metal as b,monosynth as c,duosynth as d,polysynth as e,fmsynth as f,getDefaultSynth as g,players as h,synth as i,piano as j,highpass as k,lowpass as l,membrane as m,noise as n,adsr as o,pluck as p,osc as q,out as r,sampler as s,getDrawContext$1 as t,cleanupDraw as u,vol as v,hideHeader as w,backgroundImage as x,cleanupUi as y,mod as z}; +`}),_&&jsx("div",{className:cx("rounded-md fixed pointer-events-none left-2 bottom-1 text-xs bg-black px-2 z-[20]","text-red-500"),children:(_==null?void 0:_.message)||"unknown error"})]}),!isEmbedded&&!at&&jsx("textarea",{className:"z-[10] h-16 border-0 text-xs bg-[transparent] border-t border-slate-600 resize-none",value:j,readOnly:!0,ref:ht,style:{fontFamily:"monospace"}})]})]})}var index="";ReactDOM.render(jsx(React.StrictMode,{children:jsx(App,{})}),document.getElementById("root"));export{getAugmentedNamespace as A,commonjsGlobal as B,getDefaultExportFromCjs as C,reify$1 as D,stack as E,rand as F,chooseInWith as G,Hap as H,strudel as I,enableWebMidi as J,getAudioContext as K,getCachedBuffer as L,loadBuffer as M,getLoadedBuffer as N,loadGithubSamples as O,Pattern$5 as P,samples as Q,resetLoadedSamples as R,getLoadedSamples$1 as S,Tone as T,loadWebDirt as U,WebMidi as W,amsynth as a,metal as b,monosynth as c,duosynth as d,polysynth as e,fmsynth as f,getDefaultSynth as g,players as h,synth as i,piano as j,highpass as k,lowpass as l,membrane as m,noise as n,adsr as o,pluck as p,osc as q,out as r,sampler as s,getDrawContext$1 as t,cleanupDraw as u,vol as v,hideHeader as w,backgroundImage as x,cleanupUi as y,mod as z}; diff --git a/assets/index.2c734ac1.css b/assets/index.2c734ac1.css deleted file mode 100644 index 4523f37a6..000000000 --- a/assets/index.2c734ac1.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.pointer-events-none{pointer-events:none}.static{position:static}.fixed{position:fixed}.relative{position:relative}.bottom-0{bottom:0px}.right-1{right:.25rem}.left-2{left:.5rem}.bottom-1{bottom:.25rem}.right-4{right:1rem}.bottom-2{bottom:.5rem}.z-\[10\]{z-index:10}.z-\[20\]{z-index:20}.z-\[11\]{z-index:11}.flex{display:flex}.h-8{height:2rem}.h-14{height:3.5rem}.h-6{height:1.5rem}.h-10{height:2.5rem}.h-5{height:1.25rem}.h-16{height:4rem}.min-h-screen{min-height:100vh}.w-full{width:100%}.w-6{width:1.5rem}.w-10{width:2.5rem}.w-16{width:4rem}.w-5{width:1.25rem}.flex-none{flex:none}.grow{flex-grow:1}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize-none{resize:none}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.overflow-auto{overflow:auto}.whitespace-pre{white-space:pre}.rounded-md{border-radius:.375rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-slate-600{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-\[transparent\]{background-color:transparent}.p-2{padding:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.pb-8{padding-bottom:2rem}.text-right{text-align:right}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}body{background-color:#111}.react-codemirror2,.CodeMirror{height:100%!important;background-color:transparent!important;font-size:15px;z-index:20}.CodeMirror-line>span{background-color:#11111190}.darken:before{content:" ";position:fixed;top:0;left:0;width:100vw;height:100vh;display:block;background:black;opacity:.5}.hover\:bg-gray-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace} diff --git a/assets/index.35ffa8cc.js b/assets/index.35ffa8cc.js deleted file mode 100644 index 30cab48cb..000000000 --- a/assets/index.35ffa8cc.js +++ /dev/null @@ -1 +0,0 @@ -import{W as a,G as b}from"./index.4c53df7b.js";export{a as WebMidi,b as enableWebMidi}; diff --git a/assets/index.46571609.js b/assets/index.46571609.js new file mode 100644 index 000000000..d34222c42 --- /dev/null +++ b/assets/index.46571609.js @@ -0,0 +1 @@ +var fe=Object.defineProperty,ne=Object.defineProperties;var re=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var $=Object.prototype.hasOwnProperty,ee=Object.prototype.propertyIsEnumerable;var q=(S,L,c)=>L in S?fe(S,L,{enumerable:!0,configurable:!0,writable:!0,value:c}):S[L]=c,w=(S,L)=>{for(var c in L||(L={}))$.call(L,c)&&q(S,c,L[c]);if(H)for(var c of H(L))ee.call(L,c)&&q(S,c,L[c]);return S},K=(S,L)=>ne(S,re(L));var _e=(S,L)=>{var c={};for(var n in S)$.call(S,n)&&L.indexOf(n)<0&&(c[n]=S[n]);if(S!=null&&H)for(var n of H(S))L.indexOf(n)<0&&ee.call(S,n)&&(c[n]=S[n]);return c};import{P as Pattern}from"./index.29de87b8.js";let loadCache={};async function loadFont(name){if(loadCache[name])return loadCache[name];const load=async()=>{const url=`https://felixroos.github.io/webaudiofontdata/sound/${name}.js`;console.log("load font",name,url);const preset=await fetch(url).then(S=>S.text());let[_,data]=preset.split("={");return eval("{"+data)};return loadCache[name]=load(),loadCache[name]}async function getFontBufferSource(S,L,c){typeof L=="string"&&(L=toMidi(L));const{buffer:n,zone:e}=await getFontPitch(S,L,c),f=c.createBufferSource();f.buffer=n;const i=e.originalPitch-100*e.coarseTune-e.fineTune,l=1*Math.pow(2,(100*L-i)/1200);return f.playbackRate.value=l,e.loopStart>1&&e.loopStart{const f=await loadFont(S);if(!f)throw new Error(`Could not load soundfont ${S}`);const i=findZone(f,L);if(!i)throw new Error("no soundfont zone found for preset ",S,"pitch",L);const l=await getBuffer(i,c);if(!l)throw new Error(`no soundfont buffer found for preset ${S}, pitch: ${L}`);return{buffer:l,zone:i}};return bufferCache[n]=e(),bufferCache[n]}function findZone(S,L){return S.find(c=>c.keyRangeLow<=L&&c.keyRangeHigh+1>=L)}async function getBuffer(S,L){if(S.sample){console.warn("zone.sample untested!");const n=atob(S.sample);S.buffer=L.createBuffer(1,n.length/2,S.sampleRate);const e=S.buffer.getChannelData(0);let f,i,l;for(var c=0;c=65536/2&&(l=l-65536),e[c]=l/65536}else if(S.file){const n=S.file.length,e=new ArrayBuffer(n),f=new Uint8Array(e),i=atob(S.file);let l;for(let t=0;tL.decodeAudioData(e,t))}}const instruments=["0000_JCLive_sf2_file","0000_Aspirin_sf2_file","0000_Chaos_sf2_file","0000_FluidR3_GM_sf2_file","0000_GeneralUserGS_sf2_file","0000_SBLive_sf2","0000_SoundBlasterOld_sf2","0001_FluidR3_GM_sf2_file","0001_GeneralUserGS_sf2_file","0002_GeneralUserGS_sf2_file","0003_GeneralUserGS_sf2_file","0010_Aspirin_sf2_file","0010_Chaos_sf2_file","0010_FluidR3_GM_sf2_file","0010_GeneralUserGS_sf2_file","0010_JCLive_sf2_file","0010_SBLive_sf2","0010_SoundBlasterOld_sf2","0011_Aspirin_sf2_file","0011_FluidR3_GM_sf2_file","0011_GeneralUserGS_sf2_file","0012_GeneralUserGS_sf2_file","0020_Aspirin_sf2_file","0020_Chaos_sf2_file","0020_FluidR3_GM_sf2_file","0020_GeneralUserGS_sf2_file","0020_JCLive_sf2_file","0020_SBLive_sf2","0020_SoundBlasterOld_sf2","0021_Aspirin_sf2_file","0021_GeneralUserGS_sf2_file","0022_Aspirin_sf2_file","0030_Aspirin_sf2_file","0030_Chaos_sf2_file","0030_FluidR3_GM_sf2_file","0030_GeneralUserGS_sf2_file","0030_JCLive_sf2_file","0030_SBLive_sf2","0030_SoundBlasterOld_sf2","0031_Aspirin_sf2_file","0031_FluidR3_GM_sf2_file","0031_GeneralUserGS_sf2_file","0031_SoundBlasterOld_sf2","0040_Aspirin_sf2_file","0040_Chaos_sf2_file","0040_FluidR3_GM_sf2_file","0040_GeneralUserGS_sf2_file","0040_JCLive_sf2_file","0040_SBLive_sf2","0040_SoundBlasterOld_sf2","0041_FluidR3_GM_sf2_file","0041_GeneralUserGS_sf2_file","0041_SoundBlasterOld_sf2","0042_GeneralUserGS_sf2_file","0043_GeneralUserGS_sf2_file","0044_GeneralUserGS_sf2_file","0045_GeneralUserGS_sf2_file","0046_GeneralUserGS_sf2_file","0050_Aspirin_sf2_file","0050_Chaos_sf2_file","0050_FluidR3_GM_sf2_file","0050_GeneralUserGS_sf2_file","0050_JCLive_sf2_file","0050_SBLive_sf2","0050_SoundBlasterOld_sf2","0051_FluidR3_GM_sf2_file","0051_GeneralUserGS_sf2_file","0052_GeneralUserGS_sf2_file","0053_GeneralUserGS_sf2_file","0054_GeneralUserGS_sf2_file","0060_Aspirin_sf2_file","0060_Chaos_sf2_file","0060_FluidR3_GM_sf2_file","0060_GeneralUserGS_sf2_file","0060_JCLive_sf2_file","0060_SBLive_sf2","0060_SoundBlasterOld_sf2","0061_Aspirin_sf2_file","0061_GeneralUserGS_sf2_file","0061_SoundBlasterOld_sf2","0062_GeneralUserGS_sf2_file","0070_Aspirin_sf2_file","0070_Chaos_sf2_file","0070_FluidR3_GM_sf2_file","0070_GeneralUserGS_sf2_file","0070_JCLive_sf2_file","0070_SBLive_sf2","0070_SoundBlasterOld_sf2","0071_GeneralUserGS_sf2_file","0080_Aspirin_sf2_file","0080_Chaos_sf2_file","0080_FluidR3_GM_sf2_file","0080_GeneralUserGS_sf2_file","0080_JCLive_sf2_file","0080_SBLive_sf2","0080_SoundBlasterOld_sf2","0081_FluidR3_GM_sf2_file","0081_GeneralUserGS_sf2_file","0081_SoundBlasterOld_sf2","0090_Aspirin_sf2_file","0090_Chaos_sf2_file","0090_FluidR3_GM_sf2_file","0090_GeneralUserGS_sf2_file","0090_JCLive_sf2_file","0090_SBLive_sf2","0090_SoundBlasterOld_sf2","0091_SoundBlasterOld_sf2","0100_Aspirin_sf2_file","0100_Chaos_sf2_file","0100_FluidR3_GM_sf2_file","0100_GeneralUserGS_sf2_file","0100_JCLive_sf2_file","0100_SBLive_sf2","0100_SoundBlasterOld_sf2","0101_GeneralUserGS_sf2_file","0101_SoundBlasterOld_sf2","0110_Aspirin_sf2_file","0110_Chaos_sf2_file","0110_FluidR3_GM_sf2_file","0110_GeneralUserGS_sf2_file","0110_JCLive_sf2_file","0110_SBLive_sf2","0110_SoundBlasterOld_sf2","0111_FluidR3_GM_sf2_file","0120_Aspirin_sf2_file","0120_Chaos_sf2_file","0120_FluidR3_GM_sf2_file","0120_GeneralUserGS_sf2_file","0120_JCLive_sf2_file","0120_SBLive_sf2","0120_SoundBlasterOld_sf2","0121_FluidR3_GM_sf2_file","0121_GeneralUserGS_sf2_file","0130_Aspirin_sf2_file","0130_Chaos_sf2_file","0130_FluidR3_GM_sf2_file","0130_GeneralUserGS_sf2_file","0130_JCLive_sf2_file","0130_SBLive_sf2","0130_SoundBlasterOld_sf2","0131_FluidR3_GM_sf2_file","0140_Aspirin_sf2_file","0140_Chaos_sf2_file","0140_FluidR3_GM_sf2_file","0140_GeneralUserGS_sf2_file","0140_JCLive_sf2_file","0140_SBLive_sf2","0140_SoundBlasterOld_sf2","0141_FluidR3_GM_sf2_file","0141_GeneralUserGS_sf2_file","0142_GeneralUserGS_sf2_file","0143_GeneralUserGS_sf2_file","0150_Aspirin_sf2_file","0150_Chaos_sf2_file","0150_FluidR3_GM_sf2_file","0150_GeneralUserGS_sf2_file","0150_JCLive_sf2_file","0150_SBLive_sf2","0150_SoundBlasterOld_sf2","0151_FluidR3_GM_sf2_file","0160_Aspirin_sf2_file","0160_Chaos_sf2_file","0160_FluidR3_GM_sf2_file","0160_GeneralUserGS_sf2_file","0160_JCLive_sf2_file","0160_SBLive_sf2","0160_SoundBlasterOld_sf2","0161_Aspirin_sf2_file","0161_FluidR3_GM_sf2_file","0161_SoundBlasterOld_sf2","0170_Aspirin_sf2_file","0170_Chaos_sf2_file","0170_FluidR3_GM_sf2_file","0170_GeneralUserGS_sf2_file","0170_JCLive_sf2_file","0170_SBLive_sf2","0170_SoundBlasterOld_sf2","0171_FluidR3_GM_sf2_file","0171_GeneralUserGS_sf2_file","0172_FluidR3_GM_sf2_file","0180_Aspirin_sf2_file","0180_Chaos_sf2_file","0180_FluidR3_GM_sf2_file","0180_GeneralUserGS_sf2_file","0180_JCLive_sf2_file","0180_SBLive_sf2","0180_SoundBlasterOld_sf2","0181_Aspirin_sf2_file","0181_GeneralUserGS_sf2_file","0181_SoundBlasterOld_sf2","0190_Aspirin_sf2_file","0190_Chaos_sf2_file","0190_FluidR3_GM_sf2_file","0190_GeneralUserGS_sf2_file","0190_JCLive_sf2_file","0190_SBLive_sf2","0190_SoundBlasterOld_sf2","0191_Aspirin_sf2_file","0191_GeneralUserGS_sf2_file","0191_SoundBlasterOld_sf2","0200_Aspirin_sf2_file","0200_Chaos_sf2_file","0200_FluidR3_GM_sf2_file","0200_GeneralUserGS_sf2_file","0200_JCLive_sf2_file","0200_SBLive_sf2","0200_SoundBlasterOld_sf2","0201_Aspirin_sf2_file","0201_FluidR3_GM_sf2_file","0201_GeneralUserGS_sf2_file","0201_SoundBlasterOld_sf2","0210_Aspirin_sf2_file","0210_Chaos_sf2_file","0210_FluidR3_GM_sf2_file","0210_GeneralUserGS_sf2_file","0210_JCLive_sf2_file","0210_SBLive_sf2","0210_SoundBlasterOld_sf2","0211_Aspirin_sf2_file","0211_FluidR3_GM_sf2_file","0211_GeneralUserGS_sf2_file","0211_SoundBlasterOld_sf2","0212_GeneralUserGS_sf2_file","0220_Aspirin_sf2_file","0220_Chaos_sf2_file","0220_FluidR3_GM_sf2_file","0220_GeneralUserGS_sf2_file","0220_JCLive_sf2_file","0220_SBLive_sf2","0220_SoundBlasterOld_sf2","0221_FluidR3_GM_sf2_file","0230_Aspirin_sf2_file","0230_Chaos_sf2_file","0230_FluidR3_GM_sf2_file","0230_GeneralUserGS_sf2_file","0230_JCLive_sf2_file","0230_SBLive_sf2","0230_SoundBlasterOld_sf2","0231_FluidR3_GM_sf2_file","0231_GeneralUserGS_sf2_file","0231_JCLive_sf2_file","0231_SoundBlasterOld_sf2","0232_FluidR3_GM_sf2_file","0233_FluidR3_GM_sf2_file","0240_Aspirin_sf2_file","0240_Chaos_sf2_file","0240_FluidR3_GM_sf2_file","0240_GeneralUserGS_sf2_file","0240_JCLive_sf2_file","0240_LK_Godin_Nylon_SF2_file","0240_SBLive_sf2","0240_SoundBlasterOld_sf2","0241_GeneralUserGS_sf2_file","0241_JCLive_sf2_file","0242_JCLive_sf2_file","0243_JCLive_sf2_file","0253_Acoustic_Guitar_sf2_file","0250_Aspirin_sf2_file","0250_Chaos_sf2_file","0250_FluidR3_GM_sf2_file","0250_GeneralUserGS_sf2_file","0250_JCLive_sf2_file","0250_LK_AcousticSteel_SF2_file","0250_SBLive_sf2","0250_SoundBlasterOld_sf2","0251_Acoustic_Guitar_sf2_file","0251_GeneralUserGS_sf2_file","0252_Acoustic_Guitar_sf2_file","0252_GeneralUserGS_sf2_file","0253_Acoustic_Guitar_sf2_file","0253_GeneralUserGS_sf2_file","0254_Acoustic_Guitar_sf2_file","0254_GeneralUserGS_sf2_file","0255_GeneralUserGS_sf2_file","0260_Aspirin_sf2_file","0260_Chaos_sf2_file","0260_FluidR3_GM_sf2_file","0260_GeneralUserGS_sf2_file","0260_JCLive_sf2_file","0260_SBLive_sf2","0260_SoundBlasterOld_sf2","0260_Stratocaster_sf2_file","0261_GeneralUserGS_sf2_file","0261_SoundBlasterOld_sf2","0261_Stratocaster_sf2_file","0262_Stratocaster_sf2_file","0270_Aspirin_sf2_file","0270_Chaos_sf2_file","0270_FluidR3_GM_sf2_file","0270_GeneralUserGS_sf2_file","0270_Gibson_Les_Paul_sf2_file","0270_JCLive_sf2_file","0270_SBAWE32_sf2_file","0270_SBLive_sf2","0270_SoundBlasterOld_sf2","0270_Stratocaster_sf2_file","0271_GeneralUserGS_sf2_file","0271_Stratocaster_sf2_file","0272_Stratocaster_sf2_file","0280_Aspirin_sf2_file","0280_Chaos_sf2_file","0280_FluidR3_GM_sf2_file","0280_GeneralUserGS_sf2_file","0280_JCLive_sf2_file","0280_LesPaul_sf2","0280_LesPaul_sf2_file","0280_SBAWE32_sf2_file","0280_SBLive_sf2","0280_SoundBlasterOld_sf2","0281_Aspirin_sf2_file","0281_FluidR3_GM_sf2_file","0281_GeneralUserGS_sf2_file","0282_FluidR3_GM_sf2_file","0282_GeneralUserGS_sf2_file","0283_GeneralUserGS_sf2_file","0290_Aspirin_sf2_file","0290_Chaos_sf2_file","0290_FluidR3_GM_sf2_file","0290_GeneralUserGS_sf2_file","0290_JCLive_sf2_file","0290_LesPaul_sf2","0290_LesPaul_sf2_file","0290_SBAWE32_sf2_file","0290_SBLive_sf2","0290_SoundBlasterOld_sf2","0291_Aspirin_sf2_file","0291_LesPaul_sf2","0291_LesPaul_sf2_file","0291_SBAWE32_sf2_file","0291_SoundBlasterOld_sf2","0292_Aspirin_sf2_file","0292_LesPaul_sf2","0292_LesPaul_sf2_file","0300_Aspirin_sf2_file","0300_Chaos_sf2_file","0300_FluidR3_GM_sf2_file","0300_GeneralUserGS_sf2_file","0300_JCLive_sf2_file","0300_LesPaul_sf2","0300_LesPaul_sf2_file","0300_SBAWE32_sf2_file","0300_SBLive_sf2","0300_SoundBlasterOld_sf2","0301_Aspirin_sf2_file","0301_FluidR3_GM_sf2_file","0301_GeneralUserGS_sf2_file","0301_JCLive_sf2_file","0301_LesPaul_sf2","0301_LesPaul_sf2_file","0302_Aspirin_sf2_file","0302_GeneralUserGS_sf2_file","0302_JCLive_sf2_file","0303_Aspirin_sf2_file","0304_Aspirin_sf2_file","0310_Aspirin_sf2_file","0310_Chaos_sf2_file","0310_FluidR3_GM_sf2_file","0310_GeneralUserGS_sf2_file","0310_JCLive_sf2_file","0310_LesPaul_sf2","0310_LesPaul_sf2_file","0310_SBAWE32_sf2_file","0310_SBLive_sf2","0310_SoundBlasterOld_sf2","0311_FluidR3_GM_sf2_file","0311_GeneralUserGS_sf2_file","0320_Aspirin_sf2_file","0320_Chaos_sf2_file","0320_FluidR3_GM_sf2_file","0320_GeneralUserGS_sf2_file","0320_JCLive_sf2_file","0320_SBLive_sf2","0320_SoundBlasterOld_sf2","0321_GeneralUserGS_sf2_file","0322_GeneralUserGS_sf2_file","0330_Aspirin_sf2_file","0330_Chaos_sf2_file","0330_FluidR3_GM_sf2_file","0330_GeneralUserGS_sf2_file","0330_JCLive_sf2_file","0330_SBLive_sf2","0330_SoundBlasterOld_sf2","0331_GeneralUserGS_sf2_file","0332_GeneralUserGS_sf2_file","0340_Aspirin_sf2_file","0340_Chaos_sf2_file","0340_FluidR3_GM_sf2_file","0340_GeneralUserGS_sf2_file","0340_JCLive_sf2_file","0340_SBLive_sf2","0340_SoundBlasterOld_sf2","0341_Aspirin_sf2_file","0341_GeneralUserGS_sf2_file","0350_Aspirin_sf2_file","0350_Chaos_sf2_file","0350_FluidR3_GM_sf2_file","0350_GeneralUserGS_sf2_file","0350_JCLive_sf2_file","0350_SBLive_sf2","0350_SoundBlasterOld_sf2","0351_GeneralUserGS_sf2_file","0360_Aspirin_sf2_file","0360_Chaos_sf2_file","0360_FluidR3_GM_sf2_file","0360_GeneralUserGS_sf2_file","0360_JCLive_sf2_file","0360_SBLive_sf2","0360_SoundBlasterOld_sf2","0361_GeneralUserGS_sf2_file","0370_Aspirin_sf2_file","0370_Chaos_sf2_file","0370_FluidR3_GM_sf2_file","0370_GeneralUserGS_sf2_file","0370_JCLive_sf2_file","0370_SBLive_sf2","0370_SoundBlasterOld_sf2","0371_GeneralUserGS_sf2_file","0372_GeneralUserGS_sf2_file","0385_GeneralUserGS_sf2_file","0380_Aspirin_sf2_file","0380_Chaos_sf2_file","0380_FluidR3_GM_sf2_file","0380_GeneralUserGS_sf2_file","0380_JCLive_sf2_file","0380_SBLive_sf2","0380_SoundBlasterOld_sf2","0381_FluidR3_GM_sf2_file","0381_GeneralUserGS_sf2_file","0382_FluidR3_GM_sf2_file","0382_GeneralUserGS_sf2_file","0383_GeneralUserGS_sf2_file","0384_GeneralUserGS_sf2_file","0386_GeneralUserGS_sf2_file","0387_GeneralUserGS_sf2_file","0390_Aspirin_sf2_file","0390_Chaos_sf2_file","0390_FluidR3_GM_sf2_file","0390_GeneralUserGS_sf2_file","0390_JCLive_sf2_file","0390_SBLive_sf2","0390_SoundBlasterOld_sf2","0391_FluidR3_GM_sf2_file","0391_GeneralUserGS_sf2_file","0391_SoundBlasterOld_sf2","0392_FluidR3_GM_sf2_file","0392_GeneralUserGS_sf2_file","0393_GeneralUserGS_sf2_file","0400_Aspirin_sf2_file","0400_Chaos_sf2_file","0400_FluidR3_GM_sf2_file","0400_GeneralUserGS_sf2_file","0400_JCLive_sf2_file","0400_SBLive_sf2","0400_SoundBlasterOld_sf2","0401_Aspirin_sf2_file","0401_FluidR3_GM_sf2_file","0401_GeneralUserGS_sf2_file","0402_GeneralUserGS_sf2_file","0410_Aspirin_sf2_file","0410_Chaos_sf2_file","0410_FluidR3_GM_sf2_file","0410_GeneralUserGS_sf2_file","0410_JCLive_sf2_file","0410_SBLive_sf2","0410_SoundBlasterOld_sf2","0411_FluidR3_GM_sf2_file","0420_Aspirin_sf2_file","0420_Chaos_sf2_file","0420_FluidR3_GM_sf2_file","0420_GeneralUserGS_sf2_file","0420_JCLive_sf2_file","0420_SBLive_sf2","0420_SoundBlasterOld_sf2","0421_FluidR3_GM_sf2_file","0421_GeneralUserGS_sf2_file","0430_Aspirin_sf2_file","0430_Chaos_sf2_file","0430_FluidR3_GM_sf2_file","0430_GeneralUserGS_sf2_file","0430_JCLive_sf2_file","0430_SBLive_sf2","0430_SoundBlasterOld_sf2","0431_FluidR3_GM_sf2_file","0440_Aspirin_sf2_file","0440_Chaos_sf2_file","0440_FluidR3_GM_sf2_file","0440_GeneralUserGS_sf2_file","0440_JCLive_sf2_file","0440_SBLive_sf2","0440_SoundBlasterOld_sf2","0441_GeneralUserGS_sf2_file","0442_GeneralUserGS_sf2_file","0450_Aspirin_sf2_file","0450_Chaos_sf2_file","0450_FluidR3_GM_sf2_file","0450_GeneralUserGS_sf2_file","0450_JCLive_sf2_file","0450_SBLive_sf2","0450_SoundBlasterOld_sf2","0451_FluidR3_GM_sf2_file","0460_Aspirin_sf2_file","0460_Chaos_sf2_file","0460_FluidR3_GM_sf2_file","0460_GeneralUserGS_sf2_file","0460_JCLive_sf2_file","0460_SBLive_sf2","0460_SoundBlasterOld_sf2","0461_FluidR3_GM_sf2_file","0470_Aspirin_sf2_file","0470_Chaos_sf2_file","0470_FluidR3_GM_sf2_file","0470_GeneralUserGS_sf2_file","0470_JCLive_sf2_file","0470_SBLive_sf2","0470_SoundBlasterOld_sf2","0471_FluidR3_GM_sf2_file","0471_GeneralUserGS_sf2_file","0480_Aspirin_sf2_file","0480_Chaos_sf2_file","0480_FluidR3_GM_sf2_file","0480_GeneralUserGS_sf2_file","0480_JCLive_sf2_file","0480_SBLive_sf2","0480_SoundBlasterOld_sf2","04810_GeneralUserGS_sf2_file","04811_GeneralUserGS_sf2_file","04812_GeneralUserGS_sf2_file","04813_GeneralUserGS_sf2_file","04814_GeneralUserGS_sf2_file","04815_GeneralUserGS_sf2_file","04816_GeneralUserGS_sf2_file","04817_GeneralUserGS_sf2_file","0481_Aspirin_sf2_file","0481_FluidR3_GM_sf2_file","0481_GeneralUserGS_sf2_file","0482_Aspirin_sf2_file","0482_GeneralUserGS_sf2_file","0483_GeneralUserGS_sf2_file","0484_GeneralUserGS_sf2_file","0485_GeneralUserGS_sf2_file","0486_GeneralUserGS_sf2_file","0487_GeneralUserGS_sf2_file","0488_GeneralUserGS_sf2_file","0489_GeneralUserGS_sf2_file","0490_Aspirin_sf2_file","0490_Chaos_sf2_file","0490_FluidR3_GM_sf2_file","0490_GeneralUserGS_sf2_file","0490_JCLive_sf2_file","0490_SBLive_sf2","0490_SoundBlasterOld_sf2","0491_GeneralUserGS_sf2_file","0492_GeneralUserGS_sf2_file","0500_Aspirin_sf2_file","0500_Chaos_sf2_file","0500_FluidR3_GM_sf2_file","0500_GeneralUserGS_sf2_file","0500_JCLive_sf2_file","0500_SBLive_sf2","0500_SoundBlasterOld_sf2","0501_FluidR3_GM_sf2_file","0501_GeneralUserGS_sf2_file","0502_FluidR3_GM_sf2_file","0502_GeneralUserGS_sf2_file","0503_FluidR3_GM_sf2_file","0504_FluidR3_GM_sf2_file","0505_FluidR3_GM_sf2_file","0510_Aspirin_sf2_file","0510_Chaos_sf2_file","0510_FluidR3_GM_sf2_file","0510_GeneralUserGS_sf2_file","0510_JCLive_sf2_file","0510_SBLive_sf2","0510_SoundBlasterOld_sf2","0511_GeneralUserGS_sf2_file","0511_SoundBlasterOld_sf2","0520_Aspirin_sf2_file","0520_Chaos_sf2_file","0520_FluidR3_GM_sf2_file","0520_GeneralUserGS_sf2_file","0520_JCLive_sf2_file","0520_SBLive_sf2","0520_Soul_Ahhs_sf2_file","0520_SoundBlasterOld_sf2","0521_FluidR3_GM_sf2_file","0521_Soul_Ahhs_sf2_file","0521_SoundBlasterOld_sf2","0522_Soul_Ahhs_sf2_file","0530_Aspirin_sf2_file","0530_Chaos_sf2_file","0530_FluidR3_GM_sf2_file","0530_GeneralUserGS_sf2_file","0530_JCLive_sf2_file","0530_SBLive_sf2","0530_Soul_Ahhs_sf2_file","0530_SoundBlasterOld_sf2","0531_FluidR3_GM_sf2_file","0531_GeneralUserGS_sf2_file","0531_JCLive_sf2_file","0531_SoundBlasterOld_sf2","0540_Aspirin_sf2_file","0540_Chaos_sf2_file","0540_FluidR3_GM_sf2_file","0540_GeneralUserGS_sf2_file","0540_JCLive_sf2_file","0540_SBLive_sf2","0540_SoundBlasterOld_sf2","0541_FluidR3_GM_sf2_file","0550_Aspirin_sf2_file","0550_Chaos_sf2_file","0550_FluidR3_GM_sf2_file","0550_GeneralUserGS_sf2_file","0550_JCLive_sf2_file","0550_SBLive_sf2","0550_SoundBlasterOld_sf2","0551_Aspirin_sf2_file","0551_FluidR3_GM_sf2_file","0560_Aspirin_sf2_file","0560_Chaos_sf2_file","0560_FluidR3_GM_sf2_file","0560_GeneralUserGS_sf2_file","0560_JCLive_sf2_file","0560_SBLive_sf2","0560_SoundBlasterOld_sf2","0570_Aspirin_sf2_file","0570_Chaos_sf2_file","0570_FluidR3_GM_sf2_file","0570_GeneralUserGS_sf2_file","0570_JCLive_sf2_file","0570_SBLive_sf2","0570_SoundBlasterOld_sf2","0571_GeneralUserGS_sf2_file","0580_Aspirin_sf2_file","0580_Chaos_sf2_file","0580_FluidR3_GM_sf2_file","0580_GeneralUserGS_sf2_file","0580_JCLive_sf2_file","0580_SBLive_sf2","0580_SoundBlasterOld_sf2","0581_GeneralUserGS_sf2_file","0590_Aspirin_sf2_file","0590_Chaos_sf2_file","0590_FluidR3_GM_sf2_file","0590_GeneralUserGS_sf2_file","0590_JCLive_sf2_file","0590_SBLive_sf2","0590_SoundBlasterOld_sf2","0591_GeneralUserGS_sf2_file","0600_Aspirin_sf2_file","0600_Chaos_sf2_file","0600_FluidR3_GM_sf2_file","0600_GeneralUserGS_sf2_file","0600_JCLive_sf2_file","0600_SBLive_sf2","0600_SoundBlasterOld_sf2","0601_FluidR3_GM_sf2_file","0601_GeneralUserGS_sf2_file","0602_GeneralUserGS_sf2_file","0603_GeneralUserGS_sf2_file","0610_Aspirin_sf2_file","0610_Chaos_sf2_file","0610_FluidR3_GM_sf2_file","0610_GeneralUserGS_sf2_file","0610_JCLive_sf2_file","0610_SBLive_sf2","0610_SoundBlasterOld_sf2","0611_GeneralUserGS_sf2_file","0612_GeneralUserGS_sf2_file","0613_GeneralUserGS_sf2_file","0614_GeneralUserGS_sf2_file","0615_GeneralUserGS_sf2_file","0620_Aspirin_sf2_file","0620_Chaos_sf2_file","0620_FluidR3_GM_sf2_file","0620_GeneralUserGS_sf2_file","0620_JCLive_sf2_file","0620_SBLive_sf2","0620_SoundBlasterOld_sf2","0621_Aspirin_sf2_file","0621_FluidR3_GM_sf2_file","0621_GeneralUserGS_sf2_file","0622_FluidR3_GM_sf2_file","0622_GeneralUserGS_sf2_file","0630_Aspirin_sf2_file","0630_Chaos_sf2_file","0630_FluidR3_GM_sf2_file","0630_GeneralUserGS_sf2_file","0630_JCLive_sf2_file","0630_SBLive_sf2","0630_SoundBlasterOld_sf2","0631_Aspirin_sf2_file","0631_FluidR3_GM_sf2_file","0631_GeneralUserGS_sf2_file","0632_FluidR3_GM_sf2_file","0633_FluidR3_GM_sf2_file","0640_Aspirin_sf2_file","0640_Chaos_sf2_file","0640_FluidR3_GM_sf2_file","0640_GeneralUserGS_sf2_file","0640_JCLive_sf2_file","0640_SBLive_sf2","0640_SoundBlasterOld_sf2","0641_FluidR3_GM_sf2_file","0650_Aspirin_sf2_file","0650_Chaos_sf2_file","0650_FluidR3_GM_sf2_file","0650_GeneralUserGS_sf2_file","0650_JCLive_sf2_file","0650_SBLive_sf2","0650_SoundBlasterOld_sf2","0651_Aspirin_sf2_file","0651_FluidR3_GM_sf2_file","0660_Aspirin_sf2_file","0660_Chaos_sf2_file","0660_FluidR3_GM_sf2_file","0660_GeneralUserGS_sf2_file","0660_JCLive_sf2_file","0660_SBLive_sf2","0660_SoundBlasterOld_sf2","0661_FluidR3_GM_sf2_file","0661_GeneralUserGS_sf2_file","0670_Aspirin_sf2_file","0670_Chaos_sf2_file","0670_FluidR3_GM_sf2_file","0670_GeneralUserGS_sf2_file","0670_JCLive_sf2_file","0670_SBLive_sf2","0670_SoundBlasterOld_sf2","0671_FluidR3_GM_sf2_file","0680_Aspirin_sf2_file","0680_Chaos_sf2_file","0680_FluidR3_GM_sf2_file","0680_GeneralUserGS_sf2_file","0680_JCLive_sf2_file","0680_SBLive_sf2","0680_SoundBlasterOld_sf2","0681_FluidR3_GM_sf2_file","0690_Aspirin_sf2_file","0690_Chaos_sf2_file","0690_FluidR3_GM_sf2_file","0690_GeneralUserGS_sf2_file","0690_JCLive_sf2_file","0690_SBLive_sf2","0690_SoundBlasterOld_sf2","0691_FluidR3_GM_sf2_file","0700_Aspirin_sf2_file","0700_Chaos_sf2_file","0700_FluidR3_GM_sf2_file","0700_GeneralUserGS_sf2_file","0700_JCLive_sf2_file","0700_SBLive_sf2","0700_SoundBlasterOld_sf2","0701_FluidR3_GM_sf2_file","0701_GeneralUserGS_sf2_file","0710_Aspirin_sf2_file","0710_Chaos_sf2_file","0710_FluidR3_GM_sf2_file","0710_GeneralUserGS_sf2_file","0710_JCLive_sf2_file","0710_SBLive_sf2","0710_SoundBlasterOld_sf2","0711_FluidR3_GM_sf2_file","0720_Aspirin_sf2_file","0720_Chaos_sf2_file","0720_FluidR3_GM_sf2_file","0720_GeneralUserGS_sf2_file","0720_JCLive_sf2_file","0720_SBLive_sf2","0720_SoundBlasterOld_sf2","0721_FluidR3_GM_sf2_file","0721_SoundBlasterOld_sf2","0730_Aspirin_sf2_file","0730_Chaos_sf2_file","0730_FluidR3_GM_sf2_file","0730_GeneralUserGS_sf2_file","0730_JCLive_sf2_file","0730_SBLive_sf2","0730_SoundBlasterOld_sf2","0731_Aspirin_sf2_file","0731_FluidR3_GM_sf2_file","0731_SoundBlasterOld_sf2","0740_Aspirin_sf2_file","0740_Chaos_sf2_file","0740_FluidR3_GM_sf2_file","0740_GeneralUserGS_sf2_file","0740_JCLive_sf2_file","0740_SBLive_sf2","0740_SoundBlasterOld_sf2","0741_GeneralUserGS_sf2_file","0750_Aspirin_sf2_file","0750_Chaos_sf2_file","0750_FluidR3_GM_sf2_file","0750_GeneralUserGS_sf2_file","0750_JCLive_sf2_file","0750_SBLive_sf2","0750_SoundBlasterOld_sf2","0751_Aspirin_sf2_file","0751_FluidR3_GM_sf2_file","0751_GeneralUserGS_sf2_file","0751_SoundBlasterOld_sf2","0760_Aspirin_sf2_file","0760_Chaos_sf2_file","0760_FluidR3_GM_sf2_file","0760_GeneralUserGS_sf2_file","0760_JCLive_sf2_file","0760_SBLive_sf2","0760_SoundBlasterOld_sf2","0761_FluidR3_GM_sf2_file","0761_GeneralUserGS_sf2_file","0761_SoundBlasterOld_sf2","0762_GeneralUserGS_sf2_file","0770_Aspirin_sf2_file","0770_Chaos_sf2_file","0770_FluidR3_GM_sf2_file","0770_GeneralUserGS_sf2_file","0770_JCLive_sf2_file","0770_SBLive_sf2","0770_SoundBlasterOld_sf2","0771_FluidR3_GM_sf2_file","0771_GeneralUserGS_sf2_file","0772_GeneralUserGS_sf2_file","0780_Aspirin_sf2_file","0780_Chaos_sf2_file","0780_FluidR3_GM_sf2_file","0780_GeneralUserGS_sf2_file","0780_JCLive_sf2_file","0780_SBLive_sf2","0780_SoundBlasterOld_sf2","0781_GeneralUserGS_sf2_file","0790_Aspirin_sf2_file","0790_Chaos_sf2_file","0790_FluidR3_GM_sf2_file","0790_GeneralUserGS_sf2_file","0790_JCLive_sf2_file","0790_SBLive_sf2","0790_SoundBlasterOld_sf2","0791_GeneralUserGS_sf2_file","0800_Aspirin_sf2_file","0800_Chaos_sf2_file","0800_FluidR3_GM_sf2_file","0800_GeneralUserGS_sf2_file","0800_JCLive_sf2_file","0800_SBLive_sf2","0800_SoundBlasterOld_sf2","0801_FluidR3_GM_sf2_file","0801_GeneralUserGS_sf2_file","0810_Aspirin_sf2_file","0810_Chaos_sf2_file","0810_FluidR3_GM_sf2_file","0810_GeneralUserGS_sf2_file","0810_JCLive_sf2_file","0810_SBLive_sf2","0810_SoundBlasterOld_sf2","0811_Aspirin_sf2_file","0811_GeneralUserGS_sf2_file","0811_SoundBlasterOld_sf2","0820_Aspirin_sf2_file","0820_Chaos_sf2_file","0820_FluidR3_GM_sf2_file","0820_GeneralUserGS_sf2_file","0820_JCLive_sf2_file","0820_SBLive_sf2","0820_SoundBlasterOld_sf2","0821_FluidR3_GM_sf2_file","0821_GeneralUserGS_sf2_file","0821_SoundBlasterOld_sf2","0822_GeneralUserGS_sf2_file","0823_GeneralUserGS_sf2_file","0830_Aspirin_sf2_file","0830_Chaos_sf2_file","0830_FluidR3_GM_sf2_file","0830_GeneralUserGS_sf2_file","0830_JCLive_sf2_file","0830_SBLive_sf2","0830_SoundBlasterOld_sf2","0831_FluidR3_GM_sf2_file","0831_GeneralUserGS_sf2_file","0831_SoundBlasterOld_sf2","0840_Aspirin_sf2_file","0840_Chaos_sf2_file","0840_FluidR3_GM_sf2_file","0840_GeneralUserGS_sf2_file","0840_JCLive_sf2_file","0840_SBLive_sf2","0840_SoundBlasterOld_sf2","0841_Aspirin_sf2_file","0841_Chaos_sf2_file","0841_FluidR3_GM_sf2_file","0841_GeneralUserGS_sf2_file","0841_JCLive_sf2_file","0841_SoundBlasterOld_sf2","0842_FluidR3_GM_sf2_file","0850_Aspirin_sf2_file","0850_Chaos_sf2_file","0850_FluidR3_GM_sf2_file","0850_GeneralUserGS_sf2_file","0850_JCLive_sf2_file","0850_SBLive_sf2","0850_SoundBlasterOld_sf2","0851_FluidR3_GM_sf2_file","0851_GeneralUserGS_sf2_file","0851_JCLive_sf2_file","0851_SoundBlasterOld_sf2","0860_Aspirin_sf2_file","0860_Chaos_sf2_file","0860_FluidR3_GM_sf2_file","0860_GeneralUserGS_sf2_file","0860_JCLive_sf2_file","0860_SBLive_sf2","0860_SoundBlasterOld_sf2","0861_Aspirin_sf2_file","0861_FluidR3_GM_sf2_file","0861_SoundBlasterOld_sf2","0870_Aspirin_sf2_file","0870_Chaos_sf2_file","0870_FluidR3_GM_sf2_file","0870_GeneralUserGS_sf2_file","0870_JCLive_sf2_file","0870_SBLive_sf2","0870_SoundBlasterOld_sf2","0871_GeneralUserGS_sf2_file","0872_GeneralUserGS_sf2_file","0873_GeneralUserGS_sf2_file","0880_Aspirin_sf2_file","0880_Chaos_sf2_file","0880_FluidR3_GM_sf2_file","0880_GeneralUserGS_sf2_file","0880_JCLive_sf2_file","0880_SBLive_sf2","0880_SoundBlasterOld_sf2","0881_Aspirin_sf2_file","0881_FluidR3_GM_sf2_file","0881_GeneralUserGS_sf2_file","0881_SoundBlasterOld_sf2","0882_Aspirin_sf2_file","0882_FluidR3_GM_sf2_file","0882_GeneralUserGS_sf2_file","0883_GeneralUserGS_sf2_file","0884_GeneralUserGS_sf2_file","0885_GeneralUserGS_sf2_file","0886_GeneralUserGS_sf2_file","0887_GeneralUserGS_sf2_file","0888_GeneralUserGS_sf2_file","0889_GeneralUserGS_sf2_file","0890_Aspirin_sf2_file","0890_Chaos_sf2_file","0890_FluidR3_GM_sf2_file","0890_GeneralUserGS_sf2_file","0890_JCLive_sf2_file","0890_SBLive_sf2","0890_SoundBlasterOld_sf2","0891_Aspirin_sf2_file","0891_FluidR3_GM_sf2_file","0891_GeneralUserGS_sf2_file","0900_Aspirin_sf2_file","0900_Chaos_sf2_file","0900_FluidR3_GM_sf2_file","0900_GeneralUserGS_sf2_file","0900_JCLive_sf2_file","0900_SBLive_sf2","0900_SoundBlasterOld_sf2","0901_Aspirin_sf2_file","0901_FluidR3_GM_sf2_file","0901_GeneralUserGS_sf2_file","0901_SoundBlasterOld_sf2","0910_Aspirin_sf2_file","0910_Chaos_sf2_file","0910_FluidR3_GM_sf2_file","0910_GeneralUserGS_sf2_file","0910_JCLive_sf2_file","0910_SBLive_sf2","0910_SoundBlasterOld_sf2","0911_Aspirin_sf2_file","0911_GeneralUserGS_sf2_file","0911_JCLive_sf2_file","0911_SoundBlasterOld_sf2","0920_Aspirin_sf2_file","0920_Chaos_sf2_file","0920_FluidR3_GM_sf2_file","0920_GeneralUserGS_sf2_file","0920_JCLive_sf2_file","0920_SBLive_sf2","0920_SoundBlasterOld_sf2","0921_Aspirin_sf2_file","0921_GeneralUserGS_sf2_file","0921_SoundBlasterOld_sf2","0930_Aspirin_sf2_file","0930_Chaos_sf2_file","0930_FluidR3_GM_sf2_file","0930_GeneralUserGS_sf2_file","0930_JCLive_sf2_file","0930_SBLive_sf2","0930_SoundBlasterOld_sf2","0931_Aspirin_sf2_file","0931_FluidR3_GM_sf2_file","0931_GeneralUserGS_sf2_file","0931_SoundBlasterOld_sf2","0940_Aspirin_sf2_file","0940_Chaos_sf2_file","0940_FluidR3_GM_sf2_file","0940_GeneralUserGS_sf2_file","0940_JCLive_sf2_file","0940_SBLive_sf2","0940_SoundBlasterOld_sf2","0941_Aspirin_sf2_file","0941_FluidR3_GM_sf2_file","0941_GeneralUserGS_sf2_file","0941_JCLive_sf2_file","0950_Aspirin_sf2_file","0950_Chaos_sf2_file","0950_FluidR3_GM_sf2_file","0950_GeneralUserGS_sf2_file","0950_JCLive_sf2_file","0950_SBLive_sf2","0950_SoundBlasterOld_sf2","0951_FluidR3_GM_sf2_file","0951_GeneralUserGS_sf2_file","0960_Aspirin_sf2_file","0960_Chaos_sf2_file","0960_FluidR3_GM_sf2_file","0960_GeneralUserGS_sf2_file","0960_JCLive_sf2_file","0960_SBLive_sf2","0960_SoundBlasterOld_sf2","0961_Aspirin_sf2_file","0961_FluidR3_GM_sf2_file","0961_GeneralUserGS_sf2_file","0961_SoundBlasterOld_sf2","0962_GeneralUserGS_sf2_file","0970_Aspirin_sf2_file","0970_Chaos_sf2_file","0970_FluidR3_GM_sf2_file","0970_GeneralUserGS_sf2_file","0970_JCLive_sf2_file","0970_SBLive_sf2","0970_SoundBlasterOld_sf2","0971_FluidR3_GM_sf2_file","0971_GeneralUserGS_sf2_file","0971_SoundBlasterOld_sf2","0980_Aspirin_sf2_file","0980_Chaos_sf2_file","0980_FluidR3_GM_sf2_file","0980_GeneralUserGS_sf2_file","0980_JCLive_sf2_file","0980_SBLive_sf2","0980_SoundBlasterOld_sf2","0981_Aspirin_sf2_file","0981_FluidR3_GM_sf2_file","0981_GeneralUserGS_sf2_file","0981_SoundBlasterOld_sf2","0982_GeneralUserGS_sf2_file","0983_GeneralUserGS_sf2_file","0984_GeneralUserGS_sf2_file","0990_Aspirin_sf2_file","0990_Chaos_sf2_file","0990_FluidR3_GM_sf2_file","0990_GeneralUserGS_sf2_file","0990_JCLive_sf2_file","0990_SBLive_sf2","0990_SoundBlasterOld_sf2","0991_Aspirin_sf2_file","0991_FluidR3_GM_sf2_file","0991_GeneralUserGS_sf2_file","0991_JCLive_sf2_file","0991_SoundBlasterOld_sf2","0992_FluidR3_GM_sf2_file","0992_JCLive_sf2_file","0993_JCLive_sf2_file","0994_JCLive_sf2_file","1000_Aspirin_sf2_file","1000_Chaos_sf2_file","1000_FluidR3_GM_sf2_file","1000_GeneralUserGS_sf2_file","1000_JCLive_sf2_file","1000_SBLive_sf2","1000_SoundBlasterOld_sf2","1001_Aspirin_sf2_file","1001_FluidR3_GM_sf2_file","1001_GeneralUserGS_sf2_file","1001_JCLive_sf2_file","1001_SoundBlasterOld_sf2","1002_Aspirin_sf2_file","1002_FluidR3_GM_sf2_file","1002_GeneralUserGS_sf2_file","1010_Aspirin_sf2_file","1010_Chaos_sf2_file","1010_FluidR3_GM_sf2_file","1010_GeneralUserGS_sf2_file","1010_JCLive_sf2_file","1010_SBLive_sf2","1010_SoundBlasterOld_sf2","1011_Aspirin_sf2_file","1011_FluidR3_GM_sf2_file","1011_JCLive_sf2_file","1012_Aspirin_sf2_file","1020_Aspirin_sf2_file","1020_Chaos_sf2_file","1020_FluidR3_GM_sf2_file","1020_GeneralUserGS_sf2_file","1020_JCLive_sf2_file","1020_SBLive_sf2","1020_SoundBlasterOld_sf2","1021_Aspirin_sf2_file","1021_FluidR3_GM_sf2_file","1021_GeneralUserGS_sf2_file","1021_JCLive_sf2_file","1021_SoundBlasterOld_sf2","1022_GeneralUserGS_sf2_file","1030_Aspirin_sf2_file","1030_Chaos_sf2_file","1030_FluidR3_GM_sf2_file","1030_GeneralUserGS_sf2_file","1030_JCLive_sf2_file","1030_SBLive_sf2","1030_SoundBlasterOld_sf2","1031_Aspirin_sf2_file","1031_FluidR3_GM_sf2_file","1031_GeneralUserGS_sf2_file","1031_SoundBlasterOld_sf2","1032_FluidR3_GM_sf2_file","1040_Aspirin_sf2_file","1040_Chaos_sf2_file","1040_FluidR3_GM_sf2_file","1040_GeneralUserGS_sf2_file","1040_JCLive_sf2_file","1040_SBLive_sf2","1040_SoundBlasterOld_sf2","1041_FluidR3_GM_sf2_file","1041_GeneralUserGS_sf2_file","1050_Aspirin_sf2_file","1050_Chaos_sf2_file","1050_FluidR3_GM_sf2_file","1050_GeneralUserGS_sf2_file","1050_JCLive_sf2_file","1050_SBLive_sf2","1050_SoundBlasterOld_sf2","1051_GeneralUserGS_sf2_file","1060_Aspirin_sf2_file","1060_Chaos_sf2_file","1060_FluidR3_GM_sf2_file","1060_GeneralUserGS_sf2_file","1060_JCLive_sf2_file","1060_SBLive_sf2","1060_SoundBlasterOld_sf2","1061_FluidR3_GM_sf2_file","1061_GeneralUserGS_sf2_file","1061_SoundBlasterOld_sf2","1070_Aspirin_sf2_file","1070_Chaos_sf2_file","1070_FluidR3_GM_sf2_file","1070_GeneralUserGS_sf2_file","1070_JCLive_sf2_file","1070_SBLive_sf2","1070_SoundBlasterOld_sf2","1071_FluidR3_GM_sf2_file","1071_GeneralUserGS_sf2_file","1072_GeneralUserGS_sf2_file","1073_GeneralUserGS_sf2_file","1080_Aspirin_sf2_file","1080_Chaos_sf2_file","1080_FluidR3_GM_sf2_file","1080_GeneralUserGS_sf2_file","1080_JCLive_sf2_file","1080_SBLive_sf2","1080_SoundBlasterOld_sf2","1081_SoundBlasterOld_sf2","1090_Aspirin_sf2_file","1090_Chaos_sf2_file","1090_FluidR3_GM_sf2_file","1090_GeneralUserGS_sf2_file","1090_JCLive_sf2_file","1090_SBLive_sf2","1090_SoundBlasterOld_sf2","1091_SoundBlasterOld_sf2","1100_Aspirin_sf2_file","1100_Chaos_sf2_file","1100_FluidR3_GM_sf2_file","1100_GeneralUserGS_sf2_file","1100_JCLive_sf2_file","1100_SBLive_sf2","1100_SoundBlasterOld_sf2","1101_Aspirin_sf2_file","1101_FluidR3_GM_sf2_file","1101_GeneralUserGS_sf2_file","1102_GeneralUserGS_sf2_file","1110_Aspirin_sf2_file","1110_Chaos_sf2_file","1110_FluidR3_GM_sf2_file","1110_GeneralUserGS_sf2_file","1110_JCLive_sf2_file","1110_SBLive_sf2","1110_SoundBlasterOld_sf2","1120_Aspirin_sf2_file","1120_Chaos_sf2_file","1120_FluidR3_GM_sf2_file","1120_GeneralUserGS_sf2_file","1120_JCLive_sf2_file","1120_SBLive_sf2","1120_SoundBlasterOld_sf2","1121_SoundBlasterOld_sf2","1130_Aspirin_sf2_file","1130_Chaos_sf2_file","1130_FluidR3_GM_sf2_file","1130_GeneralUserGS_sf2_file","1130_JCLive_sf2_file","1130_SBLive_sf2","1130_SoundBlasterOld_sf2","1131_FluidR3_GM_sf2_file","1131_SoundBlasterOld_sf2","1140_Aspirin_sf2_file","1140_Chaos_sf2_file","1140_FluidR3_GM_sf2_file","1140_GeneralUserGS_sf2_file","1140_JCLive_sf2_file","1140_SBLive_sf2","1140_SoundBlasterOld_sf2","1141_FluidR3_GM_sf2_file","1150_Aspirin_sf2_file","1150_Chaos_sf2_file","1150_FluidR3_GM_sf2_file","1150_GeneralUserGS_sf2_file","1150_JCLive_sf2_file","1150_SBLive_sf2","1150_SoundBlasterOld_sf2","1151_FluidR3_GM_sf2_file","1151_GeneralUserGS_sf2_file","1152_FluidR3_GM_sf2_file","1152_GeneralUserGS_sf2_file","1160_Aspirin_sf2_file","1160_Chaos_sf2_file","1160_FluidR3_GM_sf2_file","1160_GeneralUserGS_sf2_file","1160_JCLive_sf2_file","1160_SBLive_sf2","1160_SoundBlasterOld_sf2","1161_FluidR3_GM_sf2_file","1161_GeneralUserGS_sf2_file","1161_SoundBlasterOld_sf2","1162_FluidR3_GM_sf2_file","1162_GeneralUserGS_sf2_file","1163_FluidR3_GM_sf2_file","1170_Aspirin_sf2_file","1170_Chaos_sf2_file","1170_FluidR3_GM_sf2_file","1170_GeneralUserGS_sf2_file","1170_JCLive_sf2_file","1170_SBLive_sf2","1170_SoundBlasterOld_sf2","1171_FluidR3_GM_sf2_file","1171_GeneralUserGS_sf2_file","1172_FluidR3_GM_sf2_file","1173_FluidR3_GM_sf2_file","1180_Aspirin_sf2_file","1180_Chaos_sf2_file","1180_FluidR3_GM_sf2_file","1180_GeneralUserGS_sf2_file","1180_JCLive_sf2_file","1180_SBLive_sf2","1180_SoundBlasterOld_sf2","1181_FluidR3_GM_sf2_file","1181_GeneralUserGS_sf2_file","1181_SoundBlasterOld_sf2","1190_Aspirin_sf2_file","1190_Chaos_sf2_file","1190_FluidR3_GM_sf2_file","1190_GeneralUserGS_sf2_file","1190_JCLive_sf2_file","1190_SBLive_sf2","1190_SoundBlasterOld_sf2","1191_GeneralUserGS_sf2_file","1192_GeneralUserGS_sf2_file","1193_GeneralUserGS_sf2_file","1194_GeneralUserGS_sf2_file","1200_Aspirin_sf2_file","1200_Chaos_sf2_file","1200_FluidR3_GM_sf2_file","1200_GeneralUserGS_sf2_file","1200_JCLive_sf2_file","1200_SBLive_sf2","1200_SoundBlasterOld_sf2","1201_Aspirin_sf2_file","1201_GeneralUserGS_sf2_file","1202_GeneralUserGS_sf2_file","1210_Aspirin_sf2_file","1210_Chaos_sf2_file","1210_FluidR3_GM_sf2_file","1210_GeneralUserGS_sf2_file","1210_JCLive_sf2_file","1210_SBLive_sf2","1210_SoundBlasterOld_sf2","1211_Aspirin_sf2_file","1211_GeneralUserGS_sf2_file","1212_GeneralUserGS_sf2_file","1220_Aspirin_sf2_file","1220_Chaos_sf2_file","1220_FluidR3_GM_sf2_file","1220_GeneralUserGS_sf2_file","1220_JCLive_sf2_file","1220_SBLive_sf2","1220_SoundBlasterOld_sf2","1221_Aspirin_sf2_file","1221_GeneralUserGS_sf2_file","1221_JCLive_sf2_file","1222_Aspirin_sf2_file","1222_GeneralUserGS_sf2_file","1223_Aspirin_sf2_file","1223_GeneralUserGS_sf2_file","1224_Aspirin_sf2_file","1224_GeneralUserGS_sf2_file","1225_GeneralUserGS_sf2_file","1226_GeneralUserGS_sf2_file","1230_Aspirin_sf2_file","1230_Chaos_sf2_file","1230_FluidR3_GM_sf2_file","1230_GeneralUserGS_sf2_file","1230_JCLive_sf2_file","1230_SBLive_sf2","1230_SoundBlasterOld_sf2","1231_Aspirin_sf2_file","1231_GeneralUserGS_sf2_file","1232_Aspirin_sf2_file","1232_GeneralUserGS_sf2_file","1233_GeneralUserGS_sf2_file","1234_GeneralUserGS_sf2_file","1240_Aspirin_sf2_file","1240_Chaos_sf2_file","1240_FluidR3_GM_sf2_file","1240_GeneralUserGS_sf2_file","1240_JCLive_sf2_file","1240_SBLive_sf2","1240_SoundBlasterOld_sf2","1241_Aspirin_sf2_file","1241_GeneralUserGS_sf2_file","1242_Aspirin_sf2_file","1242_GeneralUserGS_sf2_file","1243_Aspirin_sf2_file","1243_GeneralUserGS_sf2_file","1244_Aspirin_sf2_file","1244_GeneralUserGS_sf2_file","1250_Aspirin_sf2_file","1250_Chaos_sf2_file","1250_FluidR3_GM_sf2_file","1250_GeneralUserGS_sf2_file","1250_JCLive_sf2_file","1250_SBLive_sf2","1250_SoundBlasterOld_sf2","1251_Aspirin_sf2_file","1251_FluidR3_GM_sf2_file","1251_GeneralUserGS_sf2_file","1252_Aspirin_sf2_file","1252_FluidR3_GM_sf2_file","1252_GeneralUserGS_sf2_file","1253_Aspirin_sf2_file","1253_GeneralUserGS_sf2_file","1254_Aspirin_sf2_file","1254_GeneralUserGS_sf2_file","1255_Aspirin_sf2_file","1255_GeneralUserGS_sf2_file","1256_Aspirin_sf2_file","1256_GeneralUserGS_sf2_file","1257_Aspirin_sf2_file","1257_GeneralUserGS_sf2_file","1258_Aspirin_sf2_file","1258_GeneralUserGS_sf2_file","1259_GeneralUserGS_sf2_file","1260_Aspirin_sf2_file","1260_Chaos_sf2_file","1260_FluidR3_GM_sf2_file","1260_GeneralUserGS_sf2_file","1260_JCLive_sf2_file","1260_SBLive_sf2","1260_SoundBlasterOld_sf2","1261_Aspirin_sf2_file","1261_GeneralUserGS_sf2_file","1262_Aspirin_sf2_file","1262_GeneralUserGS_sf2_file","1263_Aspirin_sf2_file","1263_GeneralUserGS_sf2_file","1264_Aspirin_sf2_file","1264_GeneralUserGS_sf2_file","1265_Aspirin_sf2_file","1265_GeneralUserGS_sf2_file","1270_Aspirin_sf2_file","1270_Chaos_sf2_file","1270_FluidR3_GM_sf2_file","1270_GeneralUserGS_sf2_file","1270_JCLive_sf2_file","1270_SBLive_sf2","1270_SoundBlasterOld_sf2","1271_Aspirin_sf2_file","1271_GeneralUserGS_sf2_file","1272_Aspirin_sf2_file","1272_GeneralUserGS_sf2_file","1273_GeneralUserGS_sf2_file","1274_GeneralUserGS_sf2_file"],drums=["35_0_Chaos_sf2_file","35_12_JCLive_sf2_file","35_16_JCLive_sf2_file","35_18_JCLive_sf2_file","35_4_Chaos_sf2_file","36_0_SBLive_sf2","36_12_JCLive_sf2_file","36_16_JCLive_sf2_file","36_18_JCLive_sf2_file","36_4_Chaos_sf2_file","37_0_SBLive_sf2","37_12_JCLive_sf2_file","37_16_JCLive_sf2_file","37_18_JCLive_sf2_file","37_4_Chaos_sf2_file","38_0_SBLive_sf2","38_12_JCLive_sf2_file","38_16_JCLive_sf2_file","38_18_JCLive_sf2_file","38_4_Chaos_sf2_file","39_0_SBLive_sf2","39_12_JCLive_sf2_file","39_16_JCLive_sf2_file","39_18_JCLive_sf2_file","39_4_Chaos_sf2_file","40_0_SBLive_sf2","40_12_JCLive_sf2_file","40_16_JCLive_sf2_file","40_18_JCLive_sf2_file","40_4_Chaos_sf2_file","41_0_SBLive_sf2","41_12_JCLive_sf2_file","41_16_JCLive_sf2_file","41_18_JCLive_sf2_file","41_4_Chaos_sf2_file","42_0_SBLive_sf2","42_12_JCLive_sf2_file","42_16_JCLive_sf2_file","42_18_JCLive_sf2_file","42_4_Chaos_sf2_file","43_0_SBLive_sf2","43_12_JCLive_sf2_file","43_16_JCLive_sf2_file","43_18_JCLive_sf2_file","43_4_Chaos_sf2_file","44_0_SBLive_sf2","44_12_JCLive_sf2_file","44_16_JCLive_sf2_file","44_18_JCLive_sf2_file","44_4_Chaos_sf2_file","45_0_SBLive_sf2","45_12_JCLive_sf2_file","45_16_JCLive_sf2_file","45_18_JCLive_sf2_file","45_4_Chaos_sf2_file","46_0_SBLive_sf2","46_12_JCLive_sf2_file","46_16_JCLive_sf2_file","46_18_JCLive_sf2_file","46_4_Chaos_sf2_file","47_0_SBLive_sf2","47_12_JCLive_sf2_file","47_16_JCLive_sf2_file","47_18_JCLive_sf2_file","47_4_Chaos_sf2_file","48_0_SBLive_sf2","48_12_JCLive_sf2_file","48_16_JCLive_sf2_file","48_18_JCLive_sf2_file","48_4_Chaos_sf2_file","49_0_SBLive_sf2","49_12_JCLive_sf2_file","49_16_JCLive_sf2_file","49_18_JCLive_sf2_file","49_4_Chaos_sf2_file","50_0_SBLive_sf2","50_12_JCLive_sf2_file","50_16_JCLive_sf2_file","50_18_JCLive_sf2_file","50_4_Chaos_sf2_file","51_0_SBLive_sf2","51_12_JCLive_sf2_file","51_16_JCLive_sf2_file","51_18_JCLive_sf2_file","51_4_Chaos_sf2_file","52_0_SBLive_sf2","52_12_JCLive_sf2_file","52_16_JCLive_sf2_file","52_18_JCLive_sf2_file","52_4_Chaos_sf2_file","53_0_SBLive_sf2","53_12_JCLive_sf2_file","53_16_JCLive_sf2_file","53_18_JCLive_sf2_file","53_4_Chaos_sf2_file","54_0_SBLive_sf2","54_12_JCLive_sf2_file","54_16_JCLive_sf2_file","54_18_JCLive_sf2_file","54_4_Chaos_sf2_file","55_0_SBLive_sf2","55_12_JCLive_sf2_file","55_16_JCLive_sf2_file","55_18_JCLive_sf2_file","55_4_Chaos_sf2_file","56_0_SBLive_sf2","56_12_JCLive_sf2_file","56_16_JCLive_sf2_file","56_18_JCLive_sf2_file","56_4_Chaos_sf2_file","57_0_SBLive_sf2","57_12_JCLive_sf2_file","57_16_JCLive_sf2_file","57_18_JCLive_sf2_file","57_4_Chaos_sf2_file","58_0_SBLive_sf2","58_12_JCLive_sf2_file","58_16_JCLive_sf2_file","58_18_JCLive_sf2_file","58_4_Chaos_sf2_file","59_0_SBLive_sf2","59_12_JCLive_sf2_file","59_16_JCLive_sf2_file","59_18_JCLive_sf2_file","59_4_Chaos_sf2_file","60_0_SBLive_sf2","60_12_JCLive_sf2_file","60_16_JCLive_sf2_file","60_18_JCLive_sf2_file","60_4_Chaos_sf2_file","61_0_SBLive_sf2","61_12_JCLive_sf2_file","61_16_JCLive_sf2_file","61_18_JCLive_sf2_file","61_4_Chaos_sf2_file","62_0_SBLive_sf2","62_12_JCLive_sf2_file","62_16_JCLive_sf2_file","62_18_JCLive_sf2_file","62_4_Chaos_sf2_file","63_0_SBLive_sf2","63_12_JCLive_sf2_file","63_16_JCLive_sf2_file","63_18_JCLive_sf2_file","63_4_Chaos_sf2_file","64_0_SBLive_sf2","64_12_JCLive_sf2_file","64_16_JCLive_sf2_file","64_18_JCLive_sf2_file","64_4_Chaos_sf2_file","65_0_SBLive_sf2","65_12_JCLive_sf2_file","65_16_JCLive_sf2_file","65_18_JCLive_sf2_file","65_4_Chaos_sf2_file","66_0_SBLive_sf2","66_12_JCLive_sf2_file","66_16_JCLive_sf2_file","66_18_JCLive_sf2_file","66_4_Chaos_sf2_file","67_0_SBLive_sf2","67_12_JCLive_sf2_file","67_16_JCLive_sf2_file","67_18_JCLive_sf2_file","67_4_Chaos_sf2_file","68_0_SBLive_sf2","68_12_JCLive_sf2_file","68_16_JCLive_sf2_file","68_18_JCLive_sf2_file","68_4_Chaos_sf2_file","69_0_SBLive_sf2","69_12_JCLive_sf2_file","69_16_JCLive_sf2_file","69_18_JCLive_sf2_file","69_4_Chaos_sf2_file","70_0_SBLive_sf2","70_12_JCLive_sf2_file","70_16_JCLive_sf2_file","70_18_JCLive_sf2_file","70_4_Chaos_sf2_file","71_0_SBLive_sf2","71_12_JCLive_sf2_file","71_16_JCLive_sf2_file","71_18_JCLive_sf2_file","71_4_Chaos_sf2_file","72_0_SBLive_sf2","72_12_JCLive_sf2_file","72_16_JCLive_sf2_file","72_18_JCLive_sf2_file","72_4_Chaos_sf2_file","73_0_SBLive_sf2","73_12_JCLive_sf2_file","73_16_JCLive_sf2_file","73_18_JCLive_sf2_file","73_4_Chaos_sf2_file","74_0_SBLive_sf2","74_12_JCLive_sf2_file","74_16_JCLive_sf2_file","74_18_JCLive_sf2_file","74_4_Chaos_sf2_file","75_0_SBLive_sf2","75_12_JCLive_sf2_file","75_16_JCLive_sf2_file","75_18_JCLive_sf2_file","75_4_Chaos_sf2_file","76_0_SBLive_sf2","76_12_JCLive_sf2_file","76_16_JCLive_sf2_file","76_18_JCLive_sf2_file","76_4_Chaos_sf2_file","77_0_SBLive_sf2","77_12_JCLive_sf2_file","77_16_JCLive_sf2_file","77_18_JCLive_sf2_file","77_4_Chaos_sf2_file","78_0_SBLive_sf2","78_12_JCLive_sf2_file","78_16_JCLive_sf2_file","78_18_JCLive_sf2_file","78_4_Chaos_sf2_file","79_0_SBLive_sf2","79_12_JCLive_sf2_file","79_16_JCLive_sf2_file","79_18_JCLive_sf2_file","79_4_Chaos_sf2_file","80_0_SBLive_sf2","80_12_JCLive_sf2_file","80_16_JCLive_sf2_file","80_18_JCLive_sf2_file","80_4_Chaos_sf2_file","81_0_SBLive_sf2","81_12_JCLive_sf2_file","81_16_JCLive_sf2_file","81_18_JCLive_sf2_file","81_4_Chaos_sf2_file"],instrumentNames=[];instrumentNames[0]="Acoustic Grand Piano: Piano";instrumentNames[1]="Bright Acoustic Piano: Piano";instrumentNames[2]="Electric Grand Piano: Piano";instrumentNames[3]="Honky-tonk Piano: Piano";instrumentNames[4]="Electric Piano 1: Piano";instrumentNames[5]="Electric Piano 2: Piano";instrumentNames[6]="Harpsichord: Piano";instrumentNames[7]="Clavinet: Piano";instrumentNames[8]="Celesta: Chromatic Percussion";instrumentNames[9]="Glockenspiel: Chromatic Percussion";instrumentNames[10]="Music Box: Chromatic Percussion";instrumentNames[11]="Vibraphone: Chromatic Percussion";instrumentNames[12]="Marimba: Chromatic Percussion";instrumentNames[13]="Xylophone: Chromatic Percussion";instrumentNames[14]="Tubular Bells: Chromatic Percussion";instrumentNames[15]="Dulcimer: Chromatic Percussion";instrumentNames[16]="Drawbar Organ: Organ";instrumentNames[17]="Percussive Organ: Organ";instrumentNames[18]="Rock Organ: Organ";instrumentNames[19]="Church Organ: Organ";instrumentNames[20]="Reed Organ: Organ";instrumentNames[21]="Accordion: Organ";instrumentNames[22]="Harmonica: Organ";instrumentNames[23]="Tango Accordion: Organ";instrumentNames[24]="Acoustic Guitar (nylon): Guitar";instrumentNames[25]="Acoustic Guitar (steel): Guitar";instrumentNames[26]="Electric Guitar (jazz): Guitar";instrumentNames[27]="Electric Guitar (clean): Guitar";instrumentNames[28]="Electric Guitar (muted): Guitar";instrumentNames[29]="Overdriven Guitar: Guitar";instrumentNames[30]="Distortion Guitar: Guitar";instrumentNames[31]="Guitar Harmonics: Guitar";instrumentNames[32]="Acoustic Bass: Bass";instrumentNames[33]="Electric Bass (finger): Bass";instrumentNames[34]="Electric Bass (pick): Bass";instrumentNames[35]="Fretless Bass: Bass";instrumentNames[36]="Slap Bass 1: Bass";instrumentNames[37]="Slap Bass 2: Bass";instrumentNames[38]="Synth Bass 1: Bass";instrumentNames[39]="Synth Bass 2: Bass";instrumentNames[40]="Violin: Strings";instrumentNames[41]="Viola: Strings";instrumentNames[42]="Cello: Strings";instrumentNames[43]="Contrabass: Strings";instrumentNames[44]="Tremolo Strings: Strings";instrumentNames[45]="Pizzicato Strings: Strings";instrumentNames[46]="Orchestral Harp: Strings";instrumentNames[47]="Timpani: Strings";instrumentNames[48]="String Ensemble 1: Ensemble";instrumentNames[49]="String Ensemble 2: Ensemble";instrumentNames[50]="Synth Strings 1: Ensemble";instrumentNames[51]="Synth Strings 2: Ensemble";instrumentNames[52]="Choir Aahs: Ensemble";instrumentNames[53]="Voice Oohs: Ensemble";instrumentNames[54]="Synth Choir: Ensemble";instrumentNames[55]="Orchestra Hit: Ensemble";instrumentNames[56]="Trumpet: Brass";instrumentNames[57]="Trombone: Brass";instrumentNames[58]="Tuba: Brass";instrumentNames[59]="Muted Trumpet: Brass";instrumentNames[60]="French Horn: Brass";instrumentNames[61]="Brass Section: Brass";instrumentNames[62]="Synth Brass 1: Brass";instrumentNames[63]="Synth Brass 2: Brass";instrumentNames[64]="Soprano Sax: Reed";instrumentNames[65]="Alto Sax: Reed";instrumentNames[66]="Tenor Sax: Reed";instrumentNames[67]="Baritone Sax: Reed";instrumentNames[68]="Oboe: Reed";instrumentNames[69]="English Horn: Reed";instrumentNames[70]="Bassoon: Reed";instrumentNames[71]="Clarinet: Reed";instrumentNames[72]="Piccolo: Pipe";instrumentNames[73]="Flute: Pipe";instrumentNames[74]="Recorder: Pipe";instrumentNames[75]="Pan Flute: Pipe";instrumentNames[76]="Blown bottle: Pipe";instrumentNames[77]="Shakuhachi: Pipe";instrumentNames[78]="Whistle: Pipe";instrumentNames[79]="Ocarina: Pipe";instrumentNames[80]="Lead 1 (square): Synth Lead";instrumentNames[81]="Lead 2 (sawtooth): Synth Lead";instrumentNames[82]="Lead 3 (calliope): Synth Lead";instrumentNames[83]="Lead 4 (chiff): Synth Lead";instrumentNames[84]="Lead 5 (charang): Synth Lead";instrumentNames[85]="Lead 6 (voice): Synth Lead";instrumentNames[86]="Lead 7 (fifths): Synth Lead";instrumentNames[87]="Lead 8 (bass + lead): Synth Lead";instrumentNames[88]="Pad 1 (new age): Synth Pad";instrumentNames[89]="Pad 2 (warm): Synth Pad";instrumentNames[90]="Pad 3 (polysynth): Synth Pad";instrumentNames[91]="Pad 4 (choir): Synth Pad";instrumentNames[92]="Pad 5 (bowed): Synth Pad";instrumentNames[93]="Pad 6 (metallic): Synth Pad";instrumentNames[94]="Pad 7 (halo): Synth Pad";instrumentNames[95]="Pad 8 (sweep): Synth Pad";instrumentNames[96]="FX 1 (rain): Synth Effects";instrumentNames[97]="FX 2 (soundtrack): Synth Effects";instrumentNames[98]="FX 3 (crystal): Synth Effects";instrumentNames[99]="FX 4 (atmosphere): Synth Effects";instrumentNames[100]="FX 5 (brightness): Synth Effects";instrumentNames[101]="FX 6 (goblins): Synth Effects";instrumentNames[102]="FX 7 (echoes): Synth Effects";instrumentNames[103]="FX 8 (sci-fi): Synth Effects";instrumentNames[104]="Sitar: Ethnic";instrumentNames[105]="Banjo: Ethnic";instrumentNames[106]="Shamisen: Ethnic";instrumentNames[107]="Koto: Ethnic";instrumentNames[108]="Kalimba: Ethnic";instrumentNames[109]="Bagpipe: Ethnic";instrumentNames[110]="Fiddle: Ethnic";instrumentNames[111]="Shanai: Ethnic";instrumentNames[112]="Tinkle Bell: Percussive";instrumentNames[113]="Agogo: Percussive";instrumentNames[114]="Steel Drums: Percussive";instrumentNames[115]="Woodblock: Percussive";instrumentNames[116]="Taiko Drum: Percussive";instrumentNames[117]="Melodic Tom: Percussive";instrumentNames[118]="Synth Drum: Percussive";instrumentNames[119]="Reverse Cymbal: Percussive";instrumentNames[120]="Guitar Fret Noise: Sound effects";instrumentNames[121]="Breath Noise: Sound effects";instrumentNames[122]="Seashore: Sound effects";instrumentNames[123]="Bird Tweet: Sound effects";instrumentNames[124]="Telephone Ring: Sound effects";instrumentNames[125]="Helicopter: Sound effects";instrumentNames[126]="Applause: Sound effects";instrumentNames[127]="Gunshot: Sound effects";var list=Object.freeze(Object.defineProperty({__proto__:null,instruments,drums,instrumentNames},Symbol.toStringTag,{value:"Module"})),SoundFont2={exports:{}};(function(S,L){(function(c,n){S.exports=n()})(window,function(){return function(c){var n={};function e(f){if(n[f])return n[f].exports;var i=n[f]={i:f,l:!1,exports:{}};return c[f].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=c,e.c=n,e.d=function(f,i,l){e.o(f,i)||Object.defineProperty(f,i,{enumerable:!0,get:l})},e.r=function(f){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(f,"__esModule",{value:!0})},e.t=function(f,i){if(1&i&&(f=e(f)),8&i||4&i&&typeof f=="object"&&f&&f.__esModule)return f;var l=Object.create(null);if(e.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:f}),2&i&&typeof f!="string")for(var t in f)e.d(l,t,function(s){return f[s]}.bind(null,t));return l},e.n=function(f){var i=f&&f.__esModule?function(){return f.default}:function(){return f};return e.d(i,"a",i),i},e.o=function(f,i){return Object.prototype.hasOwnProperty.call(f,i)},e.p="",e(e.s="./src/index.ts")}({"./src/chunk.ts":function(c,n,e){e.r(n),e.d(n,"SF2Chunk",function(){return r});var f=e("./src/riff/index.ts"),i=e("./src/constants.ts"),l=e("./src/chunks/index.ts");function t(u){return(t=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o){return typeof o}:function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o})(u)}function s(u,o){for(var d=0;d>10&63,polarity:s>>9&1,direction:s>>8&1,palette:s>>7&1,index:127&s}},t=function(s,v){if(s.id!==v)throw new f.ParseError("Unexpected chunk ID","'".concat(v,"'"),"'".concat(s.id,"'"));if(s.length%i.SF_MODULATOR_SIZE)throw new f.ParseError("Invalid size for the '".concat(v,"' sub-chunk"));return s.iterate(function(p){return{source:l(p.getInt16BE()),id:p.getInt16BE(),value:p.getInt16BE(),valueSource:l(p.getInt16BE()),transform:p.getInt16BE()}})}},"./src/chunks/presets/headers.ts":function(c,n,e){e.r(n),e.d(n,"getPresetHeaders",function(){return l});var f=e("./src/riff/index.ts"),i=e("./src/constants.ts"),l=function(t){if(t.id!=="phdr")throw new f.ParseError("Invalid chunk ID","'phdr'","'".concat(t.id,"'"));if(t.length%i.SF_PRESET_HEADER_SIZE)throw new f.ParseError("Invalid size for the 'phdr' sub-chunk");return t.iterate(function(s){return{name:s.getString(),preset:s.getInt16(),bank:s.getInt16(),bagIndex:s.getInt16(),library:s.getUInt32(),genre:s.getUInt32(),morphology:s.getUInt32()}})}},"./src/chunks/presets/index.ts":function(c,n,e){e.r(n);var f=e("./src/chunks/presets/headers.ts");e.d(n,"getPresetHeaders",function(){return f.getPresetHeaders})},"./src/chunks/samples/headers.ts":function(c,n,e){e.r(n),e.d(n,"getSampleHeaders",function(){return l});var f=e("./src/riff/index.ts"),i=e("./src/constants.ts"),l=function(t){if(t.id!=="shdr")throw new f.ParseError("Unexpected chunk ID","'shdr'","'".concat(t.id,"'"));if(t.length%i.SF_SAMPLE_HEADER_SIZE)throw new f.ParseError("Invalid size for the 'shdr' sub-chunk");return t.iterate(function(s){return{name:s.getString(),start:s.getUInt32(),end:s.getUInt32(),startLoop:s.getUInt32(),endLoop:s.getUInt32(),sampleRate:s.getUInt32(),originalPitch:s.getByte(),pitchCorrection:s.getChar(),link:s.getInt16(),type:s.getInt16()}})}},"./src/chunks/samples/index.ts":function(c,n,e){e.r(n);var f=e("./src/chunks/samples/headers.ts");e.d(n,"getSampleHeaders",function(){return f.getSampleHeaders})},"./src/chunks/zones.ts":function(c,n,e){e.r(n),e.d(n,"getZones",function(){return t}),e.d(n,"getItemsInZone",function(){return s});var f=e("./src/riff/index.ts"),i=e("./src/constants.ts"),l=e("./src/types/index.ts"),t=function(r,u){if(r.id!==u)throw new f.ParseError("Unexpected chunk ID","'".concat(u,"'"),"'".concat(r.id,"'"));if(r.length%i.SF_BAG_SIZE)throw new f.ParseError("Invalid size for the '".concat(u,"' sub-chunk"));return r.iterate(function(o){return{generatorIndex:o.getInt16(),modulatorIndex:o.getInt16()}})},s=function(r,u,o,d,a,y){for(var g=[],U=0;U1&&arguments[1]!==void 0?arguments[1]:0;(function(u,o){if(!(u instanceof o))throw new TypeError("Cannot call a class as a function")})(this,s),l(this,"target",[]),l(this,"chunk",void 0),l(this,"position",0),this.chunk=h,this.position=r}var v,p;return v=s,(p=[{key:"iterate",value:function(h){for(;this.position0&&arguments[0]!==void 0?arguments[0]:20,r=Object(f.getStringFromBuffer)(this.getBuffer(this.position,h));return this.position+=h,r}},{key:"getInt16",value:function(){return this.chunk.buffer[this.position++]|this.chunk.buffer[this.position++]<<8}},{key:"getInt16BE",value:function(){return this.getInt16()<<16>>16}},{key:"getUInt32",value:function(){return(this.chunk.buffer[this.position++]|this.chunk.buffer[this.position++]<<8|this.chunk.buffer[this.position++]<<16|this.chunk.buffer[this.position++]<<24)>>>0}},{key:"getByte",value:function(){return this.chunk.buffer[this.position++]}},{key:"getChar",value:function(){return this.chunk.buffer[this.position++]<<24>>24}},{key:"skip",value:function(h){this.position+=h}},{key:"getBuffer",value:function(h,r){return this.chunk.buffer.subarray(h,h+r)}},{key:"currentPosition",get:function(){return this.position}}])&&i(v.prototype,p),s}()},"./src/riff/index.ts":function(c,n,e){e.r(n);var f=e("./src/riff/chunkIterator.ts");e.d(n,"ChunkIterator",function(){return f.ChunkIterator});var i=e("./src/riff/parseError.ts");e.d(n,"ParseError",function(){return i.ParseError});var l=e("./src/riff/parser.ts");e.d(n,"parseBuffer",function(){return l.parseBuffer}),e.d(n,"getChunk",function(){return l.getChunk}),e.d(n,"getChunkLength",function(){return l.getChunkLength}),e.d(n,"getSubChunks",function(){return l.getSubChunks}),e.d(n,"getChunkId",function(){return l.getChunkId});var t=e("./src/riff/riffChunk.ts");e.d(n,"RIFFChunk",function(){return t.RIFFChunk})},"./src/riff/parseError.ts":function(c,n,e){function f(h){return(f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(h)}function i(h,r){return!r||f(r)!=="object"&&typeof r!="function"?function(u){if(u===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return u}(h):r}function l(h){var r=typeof Map=="function"?new Map:void 0;return(l=function(u){if(u===null||(o=u,Function.toString.call(o).indexOf("[native code]")===-1))return u;var o;if(typeof u!="function")throw new TypeError("Super expression must either be null or a function");if(r!==void 0){if(r.has(u))return r.get(u);r.set(u,d)}function d(){return t(u,arguments,v(this).constructor)}return d.prototype=Object.create(u.prototype,{constructor:{value:d,enumerable:!1,writable:!0,configurable:!0}}),s(d,u)})(h)}function t(h,r,u){return(t=function(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}()?Reflect.construct:function(o,d,a){var y=[null];y.push.apply(y,d);var g=new(Function.bind.apply(o,y));return a&&s(g,a.prototype),g}).apply(null,arguments)}function s(h,r){return(s=Object.setPrototypeOf||function(u,o){return u.__proto__=o,u})(h,r)}function v(h){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)})(h)}e.r(n),e.d(n,"ParseError",function(){return p});var p=function(h){function r(u,o,d){return function(a,y){if(!(a instanceof y))throw new TypeError("Cannot call a class as a function")}(this,r),i(this,v(r).call(this,"".concat(u).concat(o&&d?", expected ".concat(o,", received ").concat(d):"")))}return function(u,o){if(typeof o!="function"&&o!==null)throw new TypeError("Super expression must either be null or a function");u.prototype=Object.create(o&&o.prototype,{constructor:{value:u,writable:!0,configurable:!0}}),o&&s(u,o)}(r,l(Error)),r}()},"./src/riff/parser.ts":function(c,n,e){e.r(n),e.d(n,"parseBuffer",function(){return t}),e.d(n,"getChunk",function(){return s}),e.d(n,"getChunkLength",function(){return v}),e.d(n,"getSubChunks",function(){return p}),e.d(n,"getChunkId",function(){return h});var f=e("./src/riff/parseError.ts"),i=e("./src/utils/buffer.ts"),l=e("./src/riff/riffChunk.ts"),t=function(r){var u=h(r);if(u!=="RIFF")throw new f.ParseError("Invalid file format","RIFF",u);var o=h(r,8);if(o!=="sfbk")throw new f.ParseError("Invalid signature","sfbk",o);var d=r.subarray(8),a=p(d.subarray(4));return new l.RIFFChunk(u,d.length,d,a)},s=function(r,u){var o=h(r,u),d=v(r,u+4),a=[];return o!=="RIFF"&&o!=="LIST"||(a=p(r.subarray(u+12))),new l.RIFFChunk(o,d,r.subarray(u+8),a)},v=function(r,u){return((r=r.subarray(u,u+4))[0]|r[1]<<8|r[2]<<16|r[3]<<24)>>>0},p=function(r){for(var u=[],o=0;o<=r.length-8;){var d=s(r,o);u.push(d),o=(o+=8+d.length)%2?o+1:o}return u},h=function(r){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return Object(i.getStringFromBuffer)(r.subarray(u,u+4))}},"./src/riff/riffChunk.ts":function(c,n,e){e.r(n),e.d(n,"RIFFChunk",function(){return s});var f=e("./src/riff/chunkIterator.ts"),i=e("./src/utils/index.ts");function l(v,p){for(var h=0;h0&&arguments[0]!==void 0?arguments[0]:0,u=arguments.length>1?arguments[1]:void 0;return Object(i.getStringFromBuffer)(this.getBuffer(r,u||this.length-r))}},{key:"getInt16",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.buffer[r++]|this.buffer[r]<<8}},{key:"getUInt32",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return(this.buffer[r++]|this.buffer[r++]<<8|this.buffer[r++]<<16|this.buffer[r]<<24)>>>0}},{key:"getByte",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.buffer[r]}},{key:"getChar",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.buffer[r]<<24>>24}},{key:"iterator",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return new f.ChunkIterator(this,r)}},{key:"iterate",value:function(r){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=new f.ChunkIterator(this,u);return o.iterate(r),o.target}},{key:"getBuffer",value:function(r,u){return this.buffer.subarray(r,r+u)}}])&&l(p.prototype,h),v}()},"./src/soundFont2.ts":function(c,n,e){e.r(n),e.d(n,"SoundFont2",function(){return u});var f=e("./src/types/index.ts"),i=e("./src/chunk.ts"),l=e("./src/riff/index.ts"),t=e("./src/chunks/index.ts"),s=e("./src/utils/index.ts");function v(o){for(var d=1;d1&&arguments[1]!==void 0?arguments[1]:0,g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return Object(s.memoize)(function(U,B,F){var M=a.banks[B];if(M){var O=M.presets[F];if(O){var R=O.zones.find(function(N){return a.isKeyInRange(N,U)});if(R){var E=R.instrument,A=E.zones.find(function(N){return a.isKeyInRange(N,U)});if(A){var k=A.sample,b=v({},R.generators,A.generators),P=v({},R.modulators,A.modulators);return{keyNumber:U,preset:O,instrument:E,sample:k,generators:b,modulators:P}}}}}return null})(d,y,g)}},{key:"isKeyInRange",value:function(d,a){return d.keyRange===void 0||d.keyRange.lo<=a&&d.keyRange.hi>=a}},{key:"getBanks",value:function(){return this.presets.reduce(function(d,a){var y=a.header.bank;return d[y]||(d[y]={presets:[]}),d[y].presets[a.header.preset]=a,d},[])}},{key:"getPresets",value:function(){var d=this.presetData,a=d.presetHeaders,y=d.presetZones,g=d.presetGenerators,U=d.presetModulators;return Object(t.getItemsInZone)(a,y,U,g,this.instruments,f.GeneratorType.Instrument).filter(function(B){return B.header.name!=="EOP"}).map(function(B){return{header:B.header,globalZone:B.globalZone,zones:B.zones.map(function(F){return{keyRange:F.keyRange,generators:F.generators,modulators:F.modulators,instrument:F.reference}})}})}},{key:"getInstruments",value:function(){var d=this.presetData,a=d.instrumentHeaders,y=d.instrumentZones,g=d.instrumentModulators,U=d.instrumentGenerators;return Object(t.getItemsInZone)(a,y,g,U,this.samples,f.GeneratorType.SampleId).filter(function(B){return B.header.name!=="EOI"}).map(function(B){return{header:B.header,globalZone:B.globalZone,zones:B.zones.map(function(F){return{keyRange:F.keyRange,generators:F.generators,modulators:F.modulators,sample:F.reference}})}})}},{key:"getSamples",value:function(){var d=this;return this.presetData.sampleHeaders.filter(function(a){return a.name!=="EOS"}).map(function(a){if(a.name!=="EOS"&&a.sampleRate<=0)throw new Error("Illegal sample rate of ".concat(a.sampleRate," hz in sample '").concat(a.name,"'"));return a.originalPitch>=128&&a.originalPitch<=254&&(a.originalPitch=60),a.startLoop-=a.start,a.endLoop-=a.start,{header:a,data:new Int16Array(new Uint8Array(d.sampleData.subarray(2*a.start,2*a.end)).buffer)}})}}]),o}()},"./src/types/bank.ts":function(c,n){},"./src/types/generator.ts":function(c,n,e){var f,i;function l(s,v,p){return v in s?Object.defineProperty(s,v,{value:p,enumerable:!0,configurable:!0,writable:!0}):s[v]=p,s}e.r(n),e.d(n,"GeneratorType",function(){return i}),e.d(n,"DEFAULT_GENERATOR_VALUES",function(){return t}),function(s){s[s.StartAddrsOffset=0]="StartAddrsOffset",s[s.EndAddrsOffset=1]="EndAddrsOffset",s[s.StartLoopAddrsOffset=2]="StartLoopAddrsOffset",s[s.EndLoopAddrsOffset=3]="EndLoopAddrsOffset",s[s.StartAddrsCoarseOffset=4]="StartAddrsCoarseOffset",s[s.ModLFOToPitch=5]="ModLFOToPitch",s[s.VibLFOToPitch=6]="VibLFOToPitch",s[s.ModEnvToPitch=7]="ModEnvToPitch",s[s.InitialFilterFc=8]="InitialFilterFc",s[s.InitialFilterQ=9]="InitialFilterQ",s[s.ModLFOToFilterFc=10]="ModLFOToFilterFc",s[s.ModEnvToFilterFc=11]="ModEnvToFilterFc",s[s.EndAddrsCoarseOffset=12]="EndAddrsCoarseOffset",s[s.ModLFOToVolume=13]="ModLFOToVolume",s[s.Unused1=14]="Unused1",s[s.ChorusEffectsSend=15]="ChorusEffectsSend",s[s.ReverbEffectsSend=16]="ReverbEffectsSend",s[s.Pan=17]="Pan",s[s.Unused2=18]="Unused2",s[s.Unused3=19]="Unused3",s[s.Unused4=20]="Unused4",s[s.DelayModLFO=21]="DelayModLFO",s[s.FreqModLFO=22]="FreqModLFO",s[s.DelayVibLFO=23]="DelayVibLFO",s[s.FreqVibLFO=24]="FreqVibLFO",s[s.DelayModEnv=25]="DelayModEnv",s[s.AttackModEnv=26]="AttackModEnv",s[s.HoldModEnv=27]="HoldModEnv",s[s.DecayModEnv=28]="DecayModEnv",s[s.SustainModEnv=29]="SustainModEnv",s[s.ReleaseModEnv=30]="ReleaseModEnv",s[s.KeyNumToModEnvHold=31]="KeyNumToModEnvHold",s[s.KeyNumToModEnvDecay=32]="KeyNumToModEnvDecay",s[s.DelayVolEnv=33]="DelayVolEnv",s[s.AttackVolEnv=34]="AttackVolEnv",s[s.HoldVolEnv=35]="HoldVolEnv",s[s.DecayVolEnv=36]="DecayVolEnv",s[s.SustainVolEnv=37]="SustainVolEnv",s[s.ReleaseVolEnv=38]="ReleaseVolEnv",s[s.KeyNumToVolEnvHold=39]="KeyNumToVolEnvHold",s[s.KeyNumToVolEnvDecay=40]="KeyNumToVolEnvDecay",s[s.Instrument=41]="Instrument",s[s.Reserved1=42]="Reserved1",s[s.KeyRange=43]="KeyRange",s[s.VelRange=44]="VelRange",s[s.StartLoopAddrsCoarseOffset=45]="StartLoopAddrsCoarseOffset",s[s.KeyNum=46]="KeyNum",s[s.Velocity=47]="Velocity",s[s.InitialAttenuation=48]="InitialAttenuation",s[s.Reserved2=49]="Reserved2",s[s.EndLoopAddrsCoarseOffset=50]="EndLoopAddrsCoarseOffset",s[s.CoarseTune=51]="CoarseTune",s[s.FineTune=52]="FineTune",s[s.SampleId=53]="SampleId",s[s.SampleModes=54]="SampleModes",s[s.Reserved3=55]="Reserved3",s[s.ScaleTuning=56]="ScaleTuning",s[s.ExclusiveClass=57]="ExclusiveClass",s[s.OverridingRootKey=58]="OverridingRootKey",s[s.Unused5=59]="Unused5",s[s.EndOper=60]="EndOper"}(i||(i={}));var t=(l(f={},i.StartAddrsOffset,0),l(f,i.EndAddrsOffset,0),l(f,i.StartLoopAddrsOffset,0),l(f,i.EndLoopAddrsOffset,0),l(f,i.StartAddrsCoarseOffset,0),l(f,i.ModLFOToPitch,0),l(f,i.VibLFOToPitch,0),l(f,i.ModEnvToPitch,0),l(f,i.InitialFilterFc,13500),l(f,i.InitialFilterQ,0),l(f,i.ModLFOToFilterFc,0),l(f,i.ModEnvToFilterFc,0),l(f,i.EndAddrsCoarseOffset,0),l(f,i.ModLFOToVolume,0),l(f,i.ChorusEffectsSend,0),l(f,i.ReverbEffectsSend,0),l(f,i.Pan,0),l(f,i.DelayModLFO,-12e3),l(f,i.FreqModLFO,0),l(f,i.DelayVibLFO,-12e3),l(f,i.FreqVibLFO,0),l(f,i.DelayModEnv,-12e3),l(f,i.AttackModEnv,-12e3),l(f,i.HoldModEnv,-12e3),l(f,i.DecayModEnv,-12e3),l(f,i.SustainModEnv,0),l(f,i.ReleaseModEnv,-12e3),l(f,i.KeyNumToModEnvHold,0),l(f,i.KeyNumToModEnvDecay,0),l(f,i.DelayVolEnv,-12e3),l(f,i.AttackVolEnv,-12e3),l(f,i.HoldVolEnv,-12e3),l(f,i.DecayVolEnv,-12e3),l(f,i.SustainVolEnv,0),l(f,i.ReleaseVolEnv,-12e3),l(f,i.KeyNumToVolEnvHold,0),l(f,i.KeyNumToVolEnvDecay,0),l(f,i.StartLoopAddrsCoarseOffset,0),l(f,i.KeyNum,-1),l(f,i.Velocity,-1),l(f,i.InitialAttenuation,0),l(f,i.EndLoopAddrsCoarseOffset,0),l(f,i.CoarseTune,0),l(f,i.FineTune,0),l(f,i.SampleModes,0),l(f,i.ScaleTuning,100),l(f,i.ExclusiveClass,0),l(f,i.OverridingRootKey,-1),f)},"./src/types/index.ts":function(c,n,e){e.r(n);var f=e("./src/types/bank.ts");for(var i in f)i!=="default"&&function(d){e.d(n,d,function(){return f[d]})}(i);var l=e("./src/types/generator.ts");e.d(n,"GeneratorType",function(){return l.GeneratorType}),e.d(n,"DEFAULT_GENERATOR_VALUES",function(){return l.DEFAULT_GENERATOR_VALUES});var t=e("./src/types/instrument.ts");for(var i in t)["GeneratorType","DEFAULT_GENERATOR_VALUES","default"].indexOf(i)<0&&function(a){e.d(n,a,function(){return t[a]})}(i);var s=e("./src/types/key.ts");for(var i in s)["GeneratorType","DEFAULT_GENERATOR_VALUES","default"].indexOf(i)<0&&function(a){e.d(n,a,function(){return s[a]})}(i);var v=e("./src/types/metaData.ts");for(var i in v)["GeneratorType","DEFAULT_GENERATOR_VALUES","default"].indexOf(i)<0&&function(a){e.d(n,a,function(){return v[a]})}(i);var p=e("./src/types/modulator.ts");e.d(n,"ControllerType",function(){return p.ControllerType}),e.d(n,"ControllerPolarity",function(){return p.ControllerPolarity}),e.d(n,"ControllerDirection",function(){return p.ControllerDirection}),e.d(n,"ControllerPalette",function(){return p.ControllerPalette}),e.d(n,"Controller",function(){return p.Controller}),e.d(n,"TransformType",function(){return p.TransformType}),e.d(n,"DEFAULT_INSTRUMENT_MODULATORS",function(){return p.DEFAULT_INSTRUMENT_MODULATORS});var h=e("./src/types/preset.ts");for(var i in h)["GeneratorType","DEFAULT_GENERATOR_VALUES","ControllerType","ControllerPolarity","ControllerDirection","ControllerPalette","Controller","TransformType","DEFAULT_INSTRUMENT_MODULATORS","default"].indexOf(i)<0&&function(a){e.d(n,a,function(){return h[a]})}(i);var r=e("./src/types/presetData.ts");for(var i in r)["GeneratorType","DEFAULT_GENERATOR_VALUES","ControllerType","ControllerPolarity","ControllerDirection","ControllerPalette","Controller","TransformType","DEFAULT_INSTRUMENT_MODULATORS","default"].indexOf(i)<0&&function(a){e.d(n,a,function(){return r[a]})}(i);var u=e("./src/types/sample.ts");e.d(n,"SampleType",function(){return u.SampleType});var o=e("./src/types/zone.ts");for(var i in o)["GeneratorType","DEFAULT_GENERATOR_VALUES","ControllerType","ControllerPolarity","ControllerDirection","ControllerPalette","Controller","TransformType","DEFAULT_INSTRUMENT_MODULATORS","SampleType","default"].indexOf(i)<0&&function(a){e.d(n,a,function(){return o[a]})}(i)},"./src/types/instrument.ts":function(c,n){},"./src/types/key.ts":function(c,n){},"./src/types/metaData.ts":function(c,n){},"./src/types/modulator.ts":function(c,n,e){e.r(n),e.d(n,"ControllerType",function(){return f}),e.d(n,"ControllerPolarity",function(){return i}),e.d(n,"ControllerDirection",function(){return l}),e.d(n,"ControllerPalette",function(){return t}),e.d(n,"Controller",function(){return s}),e.d(n,"TransformType",function(){return v}),e.d(n,"DEFAULT_INSTRUMENT_MODULATORS",function(){return h});var f,i,l,t,s,v,p=e("./src/types/generator.ts");(function(r){r[r.Linear=0]="Linear",r[r.Concave=1]="Concave",r[r.Convex=2]="Convex",r[r.Switch=3]="Switch"})(f||(f={})),function(r){r[r.Unipolar=0]="Unipolar",r[r.Bipolar=1]="Bipolar"}(i||(i={})),function(r){r[r.Increasing=0]="Increasing",r[r.Decreasing=1]="Decreasing"}(l||(l={})),function(r){r[r.GeneralController=0]="GeneralController",r[r.MidiController=1]="MidiController"}(t||(t={})),function(r){r[r.NoController=0]="NoController",r[r.NoteOnVelocity=2]="NoteOnVelocity",r[r.NoteOnKeyNumber=3]="NoteOnKeyNumber",r[r.PolyPressure=10]="PolyPressure",r[r.ChannelPressure=13]="ChannelPressure",r[r.PitchWheel=14]="PitchWheel",r[r.PitchWheelSensitivity=16]="PitchWheelSensitivity",r[r.Link=127]="Link"}(s||(s={})),function(r){r[r.Linear=0]="Linear",r[r.Absolute=2]="Absolute"}(v||(v={}));var h=[{id:p.GeneratorType.InitialAttenuation,source:{type:f.Concave,polarity:i.Unipolar,direction:l.Decreasing,palette:t.GeneralController,index:s.NoteOnVelocity},value:960,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:v.Linear},{id:p.GeneratorType.InitialFilterFc,source:{type:f.Linear,polarity:i.Unipolar,direction:l.Decreasing,palette:t.GeneralController,index:s.NoteOnVelocity},value:-2400,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:v.Linear},{id:p.GeneratorType.VibLFOToPitch,source:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.ChannelPressure},value:50,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:v.Linear},{id:p.GeneratorType.VibLFOToPitch,source:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.MidiController,index:1},value:50,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:v.Linear},{id:p.GeneratorType.InitialAttenuation,source:{type:f.Concave,polarity:i.Unipolar,direction:l.Decreasing,palette:t.MidiController,index:7},value:960,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:v.Linear},{id:p.GeneratorType.InitialAttenuation,source:{type:f.Linear,polarity:i.Bipolar,direction:l.Increasing,palette:t.MidiController,index:10},value:1e3,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:v.Linear},{id:p.GeneratorType.InitialAttenuation,source:{type:f.Concave,polarity:i.Unipolar,direction:l.Decreasing,palette:t.MidiController,index:11},value:960,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:v.Linear},{id:p.GeneratorType.ReverbEffectsSend,source:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.MidiController,index:91},value:200,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:v.Linear},{id:p.GeneratorType.ChorusEffectsSend,source:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.MidiController,index:93},value:200,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:v.Linear},{id:p.GeneratorType.CoarseTune,source:{type:f.Linear,polarity:i.Bipolar,direction:l.Increasing,palette:t.GeneralController,index:s.PitchWheel},value:12700,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.PitchWheelSensitivity},transform:v.Linear}]},"./src/types/preset.ts":function(c,n){},"./src/types/presetData.ts":function(c,n){},"./src/types/sample.ts":function(c,n,e){var f;e.r(n),e.d(n,"SampleType",function(){return f}),function(i){i[i.EOS=0]="EOS",i[i.Mono=1]="Mono",i[i.Right=2]="Right",i[i.Left=4]="Left",i[i.Linked=8]="Linked",i[i.RomMono=32769]="RomMono",i[i.RomRight=32770]="RomRight",i[i.RomLeft=32772]="RomLeft",i[i.RomLinked=32776]="RomLinked"}(f||(f={}))},"./src/types/zone.ts":function(c,n){},"./src/utils/buffer.ts":function(c,n,e){e.r(n),e.d(n,"getStringFromBuffer",function(){return f});var f=function(i){return new TextDecoder("utf8").decode(i).split(/\0/)[0].trim()}},"./src/utils/index.ts":function(c,n,e){e.r(n);var f=e("./src/utils/buffer.ts");e.d(n,"getStringFromBuffer",function(){return f.getStringFromBuffer});var i=e("./src/utils/memoize.ts");e.d(n,"memoize",function(){return i.memoize})},"./src/utils/memoize.ts":function(c,n,e){e.r(n),e.d(n,"memoize",function(){return f});var f=function(i){var l={};return function(){for(var t=arguments.length,s=new Array(t),v=0;vMath.pow(2,S/1200),Q=S=>S/1e3,G=(S,L)=>{const c=Math.pow(10,L);return Math.round(S*c)/c};typeof AudioParam<"u"&&(AudioParam.prototype.dahdsr=function(S,L,c,n,e,f,i,l,t){e=Math.max(G(e,4),.001),i=Math.max(G(i,4),.001),t=G(t,4),L=Math.max(L,.001);let s=S;return this.setValueAtTime(L,s),this.setValueAtTime(L,s+=n),this.exponentialRampToValueAtTime(c,s+=e),this.setValueAtTime(c,s+=f),this.exponentialRampToValueAtTime(Math.max(l*c,.001),s+=i),(v,p)=>{this.cancelAndHoldAtTime(v);const h=Math.max(p!=null?p:L,.001);this.exponentialRampToValueAtTime(h,v+t)}});const T={0:"startAddrOffset",1:"endAddrOffset",2:"startloopAddrsOffset",3:"endloopAddrsOffset",4:"startAddrsCoarseOffset",5:"modLfoToPitch",6:"vibLfoToPitch",7:"modEnvToPitch",8:"initialFilterFc",9:"initialFilterQ",10:"modLfoToFilterFc",11:"modEnvToFilterFc",12:"endAddrsCoarseOffset",13:"modLfoToVolume",14:"unused1",15:"chorusEffectsSend",16:"reverbEffectsSend",17:"pan",18:"unused2",19:"unused3",20:"unused4",21:"delayModLFO",22:"freqModLFO",23:"delayVibLFO",24:"freqVibLFO",25:"delayModEnv",26:"attackModEnv",27:"holdModEnv",28:"decayModEnv",29:"sustainModEnv",30:"releaseModEnv",31:"keyNumToModEnvHold",32:"keyNumToModEnvDecay",33:"delayVolEnv",34:"attackVolEnv",35:"holdVolEnv",36:"decayVolEnv",37:"sustainVolEnv",38:"releaseVolEnv",39:"keyNumToVolEnvHold",40:"keyNumToVolEnvDecay",41:"instrument",42:"reserved1",43:"keyRange",44:"velRange",45:"startloopAddrsCoarseOffset",46:"keyNum",47:"velocity",48:"initialAttenuation",49:"reserved2",50:"endloopAddrsCoarseOffset",51:"coarseTune",52:"fineTune",53:"sampleID",54:"sampleModes",55:"reserved3",56:"scaleTuning",57:"exclusiveClass",58:"overridingRootKey",59:"unused5",60:"endOper"};Object.fromEntries(Object.entries(SoundFont2.exports.DEFAULT_GENERATOR_VALUES).map(([S,L])=>[T[S],L]));const D=(S,L,c,n,e)=>{var f,i,l,t,s,v,p;const h=SoundFont2.exports.DEFAULT_GENERATOR_VALUES[S];if(typeof h!="number")throw new Error(`no default value found for generator with index ${S}`);const r=L.generators[S],u=(i=(f=c.globalZone)==null?void 0:f.generators)==null?void 0:i[S],o=(l=n==null?void 0:n.generators)==null?void 0:l[S],d=(s=(t=e.globalZone)==null?void 0:t.generators)==null?void 0:s[S],a=r&&"value"in r?r.value:void 0,y=u&&"value"in u?u.value:void 0,g=o&&"value"in o?o.value:void 0,U=d&&"value"in d?d.value:void 0,B=(v=a!=null?a:y)!=null?v:h,F=(p=g!=null?g:U)!=null?p:0;return B+F},J=S=>SoundFont2.exports.DEFAULT_GENERATOR_VALUES[S]!==void 0,W=(S,L,c)=>{var n,e,f,i;return Object.fromEntries(Array.from(new Set([Object.keys((e=(n=c.globalZone)==null?void 0:n.generators)!=null?e:{}),Object.keys(L.generators),Object.keys((i=(f=L.instrument.globalZone)==null?void 0:f.generators)!=null?i:{}),Object.keys(S.generators)].flat())).filter(J).map(l=>[T[l],D(parseInt(l),S,L.instrument,L,c)]))};async function ae(S){const L=await fetch(S).then(n=>n.arrayBuffer()),c=new Uint8Array(L);return new SoundFont2.exports.SoundFont2(c)}function X(S,L,c){let{time:n=S.currentTime}=c;const z=c,{midi:e,start:f,velocity:i=.3,startLoop:l,endLoop:t,sampleRate:s,originalPitch:v,pitchCorrection:p,type:h,sampleModes:r=0,overridingRootKey:u,fineTune:o=0,startloopAddrsOffset:d=0,startloopAddrsCoarseOffset:a=0,endloopAddrsOffset:y=0,endloopAddrsCoarseOffset:g=0,delayVolEnv:U=-12e3,attackVolEnv:B=-12e3,holdVolEnv:F=-12e3,decayVolEnv:M=-12e3,sustainVolEnv:O=0,releaseVolEnv:R=-12e3,pan:E=0}=z,A=_e(z,["midi","start","velocity","startLoop","endLoop","sampleRate","originalPitch","pitchCorrection","type","sampleModes","overridingRootKey","fineTune","startloopAddrsOffset","startloopAddrsCoarseOffset","endloopAddrsOffset","endloopAddrsCoarseOffset","delayVolEnv","attackVolEnv","holdVolEnv","decayVolEnv","sustainVolEnv","releaseVolEnv","pan"]),k=100*(u!==void 0&&u!==-1?u:v)+p-o,b=e*100-k,P=1*Math.pow(2,b/1200);L.playbackRate.value=P;const N=l+d+a*32768,I=t+y+g*32768;I>N&&r===1?(L.loopStart=N/s,L.loopEnd=I/s,L.loop=!0):r===3&&console.warn("unimplemented sampleMode 3 (play till end on note off)"),Object.keys(A).filter(V=>!["name","instrument","keyRange","sampleID","end"].includes(V)).length;const j=S.createGain(),se=[n,0,i,m(U),m(B),m(F),m(M),O>=960?0:1-Q(O),m(R)],ie=j.gain.dahdsr(...se),Z=S.createStereoPanner();return Z.pan.value=E/1e3,j.connect(Z),L.connect(j),Z.connect(S.destination),L.start(n),(V=S.currentTime)=>{L.stop(V+m(R)),ie(V)}}function Y(S,L,c={}){const{header:n,data:e}=L,f=new Float32Array(e.length);for(let t=0;t!S.keyRange||S.keyRange.lo<=L&&L<=S.keyRange.hi,x=(S,L)=>S.zones.filter(c=>C(c,L)&&c.instrument).map(c=>c.instrument.zones.filter(n=>C(n,L)).map(n=>{const e=W(n,c,S);return K(w({},n),{mergedGenerators:e})})).flat(),ce=(S,L,c,n=S.currentTime)=>{const e=x(L,c).map(f=>Y(S,f.sample,K(w({},f.mergedGenerators),{midi:c,time:n})));return(f=S.currentTime)=>{e.forEach(i=>i(f))}};Pattern.prototype.soundfont=function(S,L=0){return this.onTrigger((c,n,e)=>{const f=getAudioContext(),i=getPlayableNoteValue(n),l=S.presets[L%S.presets.length],t=f.currentTime+c-e,s=[f,l,toMidi(i),t];ce(...s)(t+n.duration)})};const soundfontCache=new Map;function loadSoundfont(S){if(soundfontCache.get(S))return soundfontCache.get(S);const L=ae(S);return soundfontCache.set(S,L),L}export{getFontBufferSource,loadSoundfont,list as soundfontList,ce as startPresetNote}; diff --git a/assets/index.bc41bc99.js b/assets/index.52697493.js similarity index 88% rename from assets/index.bc41bc99.js rename to assets/index.52697493.js index b62c87596..499dc3ced 100644 --- a/assets/index.bc41bc99.js +++ b/assets/index.52697493.js @@ -1 +1 @@ -import{T as e,o as n,a as o,x as t,u as h,y as l,d as p,f as r,g as m,t as y,w as u,k as c,l as d,m as g,b as i,c as f,n as w,q as b,r as k,j as x,h as D,p as v,e as T,s as j,i as q,v as C}from"./index.4c53df7b.js";export{e as Tone,n as adsr,o as amsynth,t as backgroundImage,h as cleanupDraw,l as cleanupUi,p as duosynth,r as fmsynth,m as getDefaultSynth,y as getDrawContext,u as hideHeader,c as highpass,d as lowpass,g as membrane,i as metal,f as monosynth,w as noise,b as osc,k as out,x as piano,D as players,v as pluck,T as polysynth,j as sampler,q as synth,C as vol}; +import{T as e,o as n,a as o,x as t,u as h,y as l,d as p,f as r,g as m,t as y,w as u,k as c,l as d,m as g,b as i,c as f,n as w,q as b,r as k,j as x,h as D,p as v,e as T,s as j,i as q,v as C}from"./index.29de87b8.js";export{e as Tone,n as adsr,o as amsynth,t as backgroundImage,h as cleanupDraw,l as cleanupUi,p as duosynth,r as fmsynth,m as getDefaultSynth,y as getDrawContext,u as hideHeader,c as highpass,d as lowpass,g as membrane,i as metal,f as monosynth,w as noise,b as osc,k as out,x as piano,D as players,v as pluck,T as polysynth,j as sampler,q as synth,C as vol}; diff --git a/assets/index.84c349f8.js b/assets/index.84c349f8.js new file mode 100644 index 000000000..0fe0a9924 --- /dev/null +++ b/assets/index.84c349f8.js @@ -0,0 +1 @@ +import{W as a,J as b}from"./index.29de87b8.js";export{a as WebMidi,b as enableWebMidi}; diff --git a/assets/index.20351e53.js b/assets/index.8ac7fc56.js similarity index 99% rename from assets/index.20351e53.js rename to assets/index.8ac7fc56.js index 9ff6e1512..fbed6e1b4 100644 --- a/assets/index.20351e53.js +++ b/assets/index.8ac7fc56.js @@ -1 +1 @@ -var Bn=Object.defineProperty,Hn=Object.defineProperties;var Ln=Object.getOwnPropertyDescriptors;var kt=Object.getOwnPropertySymbols;var Un=Object.prototype.hasOwnProperty,Xn=Object.prototype.propertyIsEnumerable;var Rt=(t,n,e)=>n in t?Bn(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e,y=(t,n)=>{for(var e in n||(n={}))Un.call(n,e)&&Rt(t,e,n[e]);if(kt)for(var e of kt(n))Xn.call(n,e)&&Rt(t,e,n[e]);return t},g=(t,n)=>Hn(t,Ln(n));import{P as w,z as Kn,A as Qn,B as Y,C as Yn,D as Zn,H as Jn,E as Wn}from"./index.4c53df7b.js";const x=(t,n)=>Array(Math.abs(n)+1).join(t);function v(t,n,e){return function(...o){return console.warn(`${t} is deprecated. Use ${n}.`),e.apply(this,o)}}function q(t){return t!==null&&typeof t=="object"&&typeof t.name=="string"}function G(t){return t!==null&&typeof t=="object"&&typeof t.step=="number"&&typeof t.alt=="number"}const Yt=[0,2,4,-1,1,3,5],Zt=Yt.map(t=>Math.floor(t*7/12));function et(t){const{step:n,alt:e,oct:o,dir:r=1}=t,i=Yt[n]+7*e;if(o===void 0)return[r*i];const a=o-Zt[n]-4*e;return[r*i,r*a]}const te=[3,0,4,1,5,2,6];function ot(t){const[n,e,o]=t,r=te[ne(n)],i=Math.floor((n+1)/7);if(e===void 0)return{step:r,alt:i,dir:o};const a=e+4*i+Zt[r];return{step:r,alt:i,oct:a,dir:o}}function ne(t){const n=(t+1)%7;return n<0?7+n:n}const Jt={empty:!0,name:"",pc:"",acc:""},Ot=new Map,vt=t=>"CDEFGAB".charAt(t),k=t=>t<0?x("b",-t):x("#",t),B=t=>t[0]==="b"?-t.length:t.length;function u(t){const n=Ot.get(t);if(n)return n;const e=typeof t=="string"?re(t):G(t)?u(ie(t)):q(t)?u(t.name):Jt;return Ot.set(t,e),e}const ee=/^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)$/;function rt(t){const n=ee.exec(t);return[n[1].toUpperCase(),n[2].replace(/x/g,"##"),n[3],n[4]]}function z(t){return u(ot(t))}const oe=(t,n)=>(t%n+n)%n,ht=[0,2,4,5,7,9,11];function re(t){const n=rt(t);if(n[0]===""||n[3]!=="")return Jt;const e=n[0],o=n[1],r=n[2],i=(e.charCodeAt(0)+3)%7,a=B(o),s=r.length?+r:void 0,c=et({step:i,alt:a,oct:s}),l=e+o+r,m=e+o,d=(ht[i]+a+120)%12,M=s===void 0?oe(ht[i]+a,12)-12*99:ht[i]+a+12*(s+1),b=M>=0&&M<=127?M:null,p=s===void 0?null:Math.pow(2,(M-69)/12)*440;return{empty:!1,acc:o,alt:a,chroma:d,coord:c,freq:p,height:M,letter:e,midi:b,name:l,oct:s,pc:m,step:i}}function ie(t){const{step:n,alt:e,oct:o}=t,r=vt(n);if(!r)return"";const i=r+k(e);return o||o===0?i+o:i}const yt={empty:!0,name:"",acc:""},ae="([-+]?\\d+)(d{1,4}|m|M|P|A{1,4})",se="(AA|A|P|M|m|d|dd)([-+]?\\d+)",ce=new RegExp("^"+ae+"|"+se+"$");function Nt(t){const n=ce.exec(`${t}`);return n===null?["",""]:n[1]?[n[1],n[2]]:[n[4],n[3]]}const Ft={};function f(t){return typeof t=="string"?Ft[t]||(Ft[t]=me(t)):G(t)?f(le(t)):q(t)?f(t.name):yt}const zt=[0,2,4,5,7,9,11],Wt="PMMPPMM";function me(t){const n=Nt(t);if(n[0]==="")return yt;const e=+n[0],o=n[1],r=(Math.abs(e)-1)%7,i=Wt[r];if(i==="M"&&o==="P")return yt;const a=i==="M"?"majorable":"perfectable",s=""+e+o,c=e<0?-1:1,l=e===8||e===-8?e:c*(r+1),m=ue(a,o),d=Math.floor((Math.abs(e)-1)/7),M=c*(zt[r]+m+12*d),b=(c*(zt[r]+m)%12+12)%12,p=et({step:r,alt:m,oct:d,dir:c});return{empty:!1,name:s,num:e,q:o,step:r,alt:m,dir:c,type:a,simple:l,semitones:M,chroma:b,coord:p,oct:d}}function H(t,n){const[e,o=0]=t,r=e*7+o*12<0,i=n||r?[-e,-o,-1]:[e,o,1];return f(ot(i))}function ue(t,n){return n==="M"&&t==="majorable"||n==="P"&&t==="perfectable"?0:n==="m"&&t==="majorable"?-1:/^A+$/.test(n)?n.length:/^d+$/.test(n)?-1*(t==="perfectable"?n.length:n.length+1):0}function le(t){const{step:n,alt:e,oct:o=0,dir:r}=t;if(!r)return"";const i=n+1+7*o,a=i===0?n+1:i,s=r<0?"-":"",c=Wt[n]==="M"?"majorable":"perfectable";return s+a+de(c,e)}function de(t,n){return n===0?t==="majorable"?"M":"P":n===-1&&t==="majorable"?"m":n>0?x("A",n):x("d",t==="perfectable"?n:n+1)}function P(t,n){const e=u(t),o=f(n);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=r.length===1?[r[0]+i[0]]:[r[0]+i[0],r[1]+i[1]];return z(a).name}function R(t,n){const e=u(t),o=u(n);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=i[0]-r[0],s=r.length===2&&i.length===2?i[1]-r[1]:-Math.floor(a*7/12),c=o.height===e.height&&o.midi!==null&&e.midi!==null&&e.step>o.step;return H([a,s],c).name}var tn=Object.freeze(Object.defineProperty({__proto__:null,accToAlt:B,altToAcc:k,coordToInterval:H,coordToNote:z,decode:ot,deprecate:v,distance:R,encode:et,fillStr:x,interval:f,isNamed:q,isPitch:G,note:u,stepToLetter:vt,tokenizeInterval:Nt,tokenizeNote:rt,transpose:P},Symbol.toStringTag,{value:"Module"}));const qt=(t,n)=>Array(n+1).join(t),Me=/^(_{1,}|=|\^{1,}|)([abcdefgABCDEFG])([,']*)$/;function nn(t){const n=Me.exec(t);return n?[n[1],n[2],n[3]]:["","",""]}function W(t){const[n,e,o]=nn(t);if(e==="")return"";let r=4;for(let a=0;a96?e.toUpperCase()+i+(r+1):e+i+r}function en(t){const n=u(t);if(n.empty||!n.oct&&n.oct!==0)return"";const{letter:e,acc:o,oct:r}=n,i=o[0]==="b"?o.replace(/b/g,"_"):o.replace(/#/g,"^"),a=r>4?e.toLowerCase():e,s=r===5?"":r>4?qt("'",r-5):qt(",",4-r);return i+a+s}function fe(t,n){return en(P(W(t),n))}function Pe(t,n){return R(W(t),W(n))}var pe={abcToScientificNotation:W,scientificToAbcNotation:en,tokenize:nn,transpose:fe,distance:Pe};function he(t,n){const e=[];for(;n--;e[n]=n+t);return e}function ye(t,n){const e=[];for(;n--;e[n]=t-n);return e}function ge(t,n){return tn===0||n)}function on(t){return t.map(e=>u(e)).filter(e=>!e.empty).sort((e,o)=>e.height-o.height).map(e=>e.name)}function ve(t){return on(t).filter((n,e,o)=>e===0||n!==o[e-1])}function Ne(t,n=Math.random){let e,o,r=t.length;for(;r;)e=Math.floor(n()*r--),o=t[r],t[r]=t[e],t[e]=o;return t}function rn(t){return t.length===0?[[]]:rn(t.slice(1)).reduce((n,e)=>n.concat(t.map((o,r)=>{const i=e.slice();return i.splice(r,0,t[0]),i})),[])}var $e=Object.freeze(Object.defineProperty({__proto__:null,compact:Ae,permutations:rn,range:ge,rotate:be,shuffle:Ne,sortedNoteNames:on,sortedUniqNoteNames:ve},Symbol.toStringTag,{value:"Module"}));function Ie(t,n){const e=[];for(;n--;e[n]=n+t);return e}function je(t,n){const e=[];for(;n--;e[n]=t-n);return e}function it(t,n){return tn===0||n)}function Te(t,n=Math.random){let e,o,r=t.length;for(;r;)e=Math.floor(n()*r--),o=t[r],t[r]=t[e],t[e]=o;return t}function an(t){return t.length===0?[[]]:an(t.slice(1)).reduce((n,e)=>n.concat(t.map((o,r)=>{const i=e.slice();return i.splice(r,0,t[0]),i})),[])}var Se={compact:$t,permutations:an,range:it,rotate:L,shuffle:Te};const C={empty:!0,name:"",setNum:0,chroma:"000000000000",normalized:"000000000000",intervals:[]},It=t=>Number(t).toString(2),Gt=t=>parseInt(t,2),_e=/^[01]{12}$/;function sn(t){return _e.test(t)}const Ce=t=>typeof t=="number"&&t>=0&&t<=4095,Ve=t=>t&&sn(t.chroma),Bt={[C.chroma]:C};function h(t){const n=sn(t)?t:Ce(t)?It(t):Array.isArray(t)?Be(t):Ve(t)?t.chroma:C.chroma;return Bt[n]=Bt[n]||Ge(n)}const we=v("Pcset.pcset","Pcset.get",h),xe=t=>h(t).chroma,Ee=t=>h(t).intervals,De=t=>h(t).setNum,ke=["1P","2m","2M","3m","3M","4P","5d","5P","6m","6M","7m","7M"];function Re(t){const n=[];for(let e=0;e<12;e++)t.charAt(e)==="1"&&n.push(ke[e]);return n}function Oe(){return it(2048,4095).map(It)}function jt(t,n=!0){const o=h(t).chroma.split("");return $t(o.map((r,i)=>{const a=L(i,o);return n&&a[0]==="0"?null:a.join("")}))}function Fe(t,n){return h(t).setNum===h(n).setNum}function at(t){const n=h(t).setNum;return e=>{const o=h(e).setNum;return n&&n!==o&&(o&n)===o}}function st(t){const n=h(t).setNum;return e=>{const o=h(e).setNum;return n&&n!==o&&(o|n)===o}}function cn(t){const n=h(t);return e=>{const o=u(e);return n&&!o.empty&&n.chroma.charAt(o.chroma)==="1"}}function ze(t){const n=cn(t);return e=>e.filter(n)}var mn={get:h,chroma:xe,num:De,intervals:Ee,chromas:Oe,isSupersetOf:st,isSubsetOf:at,isNoteIncludedIn:cn,isEqual:Fe,filter:ze,modes:jt,pcset:we};function qe(t){const n=t.split("");return n.map((e,o)=>L(o,n).join(""))}function Ge(t){const n=Gt(t),e=qe(t).map(Gt).filter(i=>i>=2048).sort()[0],o=It(e),r=Re(t);return{empty:!1,name:"",setNum:n,chroma:t,normalized:o,intervals:r}}function Be(t){if(t.length===0)return C.chroma;let n;const e=[0,0,0,0,0,0,0,0,0,0,0,0];for(let o=0;ot.name).filter(t=>t)}function Ke(){return O.map(t=>t.aliases[0]).filter(t=>t)}function Qe(){return Object.keys(S)}function F(){return O.slice()}const Ye=v("ChordType.entries","ChordType.all",F);function Ze(){O=[],S={}}function un(t,n,e){const o=We(t),r=g(y({},h(t)),{name:e||"",quality:o,intervals:t,aliases:n});O.push(r),r.name&&(S[r.name]=r),S[r.setNum]=r,S[r.chroma]=r,r.aliases.forEach(i=>Je(r,i))}function Je(t,n){S[n]=t}function We(t){const n=e=>t.indexOf(e)!==-1;return n("5A")?"Augmented":n("3M")?"Major":n("5d")?"Diminished":n("3m")?"Minor":"Unknown"}He.forEach(([t,n,e])=>un(t.split(" "),e.split(" "),n));O.sort((t,n)=>t.setNum-n.setNum);var ln={names:Xe,symbols:Ke,get:Tt,all:F,add:un,removeAll:Ze,keys:Qe,entries:Ye,chordType:Ue};const to=t=>{const n=t.reduce((e,o)=>{const r=u(o).chroma;return r!==void 0&&(e[r]=e[r]||u(o).name),e},{});return e=>n[e]};function no(t){const n=t.map(o=>u(o).pc).filter(o=>o);return u.length===0?[]:eo(n,1).filter(o=>o.weight).sort((o,r)=>r.weight-o.weight).map(o=>o.name)}function eo(t,n){const e=t[0],o=u(e).chroma,r=to(t),i=jt(t,!1),a=[];return i.forEach((s,c)=>{F().filter(m=>m.chroma===s).forEach(m=>{const d=m.aliases[0],M=r(c);c!==o?a.push({weight:.5*n,name:`${M}${d}/${e}`}):a.push({weight:1*n,name:`${M}${d}`})})}),a}const oo=[["1P 2M 3M 5P 6M","major pentatonic","pentatonic"],["1P 3M 4P 5P 7M","ionian pentatonic"],["1P 3M 4P 5P 7m","mixolydian pentatonic","indian"],["1P 2M 4P 5P 6M","ritusen"],["1P 2M 4P 5P 7m","egyptian"],["1P 3M 4P 5d 7m","neopolitan major pentatonic"],["1P 3m 4P 5P 6m","vietnamese 1"],["1P 2m 3m 5P 6m","pelog"],["1P 2m 4P 5P 6m","kumoijoshi"],["1P 2M 3m 5P 6m","hirajoshi"],["1P 2m 4P 5d 7m","iwato"],["1P 2m 4P 5P 7m","in-sen"],["1P 3M 4A 5P 7M","lydian pentatonic","chinese"],["1P 3m 4P 6m 7m","malkos raga"],["1P 3m 4P 5d 7m","locrian pentatonic","minor seven flat five pentatonic"],["1P 3m 4P 5P 7m","minor pentatonic","vietnamese 2"],["1P 3m 4P 5P 6M","minor six pentatonic"],["1P 2M 3m 5P 6M","flat three pentatonic","kumoi"],["1P 2M 3M 5P 6m","flat six pentatonic"],["1P 2m 3M 5P 6M","scriabin"],["1P 3M 5d 6m 7m","whole tone pentatonic"],["1P 3M 4A 5A 7M","lydian #5P pentatonic"],["1P 3M 4A 5P 7m","lydian dominant pentatonic"],["1P 3m 4P 5P 7M","minor #7M pentatonic"],["1P 3m 4d 5d 7m","super locrian pentatonic"],["1P 2M 3m 4P 5P 7M","minor hexatonic"],["1P 2A 3M 5P 5A 7M","augmented"],["1P 2M 3m 3M 5P 6M","major blues"],["1P 2M 4P 5P 6M 7m","piongio"],["1P 2m 3M 4A 6M 7m","prometheus neopolitan"],["1P 2M 3M 4A 6M 7m","prometheus"],["1P 2m 3M 5d 6m 7m","mystery #1"],["1P 2m 3M 4P 5A 6M","six tone symmetric"],["1P 2M 3M 4A 5A 7m","whole tone","messiaen's mode #1"],["1P 2m 4P 4A 5P 7M","messiaen's mode #5"],["1P 3m 4P 5d 5P 7m","minor blues","blues"],["1P 2M 3M 4P 5d 6m 7m","locrian major","arabian"],["1P 2m 3M 4A 5P 6m 7M","double harmonic lydian"],["1P 2M 3m 4P 5P 6m 7M","harmonic minor"],["1P 2m 2A 3M 4A 6m 7m","altered","super locrian","diminished whole tone","pomeroy"],["1P 2M 3m 4P 5d 6m 7m","locrian #2","half-diminished","aeolian b5"],["1P 2M 3M 4P 5P 6m 7m","mixolydian b6","melodic minor fifth mode","hindu"],["1P 2M 3M 4A 5P 6M 7m","lydian dominant","lydian b7","overtone"],["1P 2M 3M 4A 5P 6M 7M","lydian"],["1P 2M 3M 4A 5A 6M 7M","lydian augmented"],["1P 2m 3m 4P 5P 6M 7m","dorian b2","phrygian #6","melodic minor second mode"],["1P 2M 3m 4P 5P 6M 7M","melodic minor"],["1P 2m 3m 4P 5d 6m 7m","locrian"],["1P 2m 3m 4d 5d 6m 7d","ultralocrian","superlocrian bb7","superlocrian diminished"],["1P 2m 3m 4P 5d 6M 7m","locrian 6","locrian natural 6","locrian sharp 6"],["1P 2A 3M 4P 5P 5A 7M","augmented heptatonic"],["1P 2M 3m 4A 5P 6M 7m","dorian #4","ukrainian dorian","romanian minor","altered dorian"],["1P 2M 3m 4A 5P 6M 7M","lydian diminished"],["1P 2m 3m 4P 5P 6m 7m","phrygian"],["1P 2M 3M 4A 5A 7m 7M","leading whole tone"],["1P 2M 3M 4A 5P 6m 7m","lydian minor"],["1P 2m 3M 4P 5P 6m 7m","phrygian dominant","spanish","phrygian major"],["1P 2m 3m 4P 5P 6m 7M","balinese"],["1P 2m 3m 4P 5P 6M 7M","neopolitan major"],["1P 2M 3m 4P 5P 6m 7m","aeolian","minor"],["1P 2M 3M 4P 5P 6m 7M","harmonic major"],["1P 2m 3M 4P 5P 6m 7M","double harmonic major","gypsy"],["1P 2M 3m 4P 5P 6M 7m","dorian"],["1P 2M 3m 4A 5P 6m 7M","hungarian minor"],["1P 2A 3M 4A 5P 6M 7m","hungarian major"],["1P 2m 3M 4P 5d 6M 7m","oriental"],["1P 2m 3m 3M 4A 5P 7m","flamenco"],["1P 2m 3m 4A 5P 6m 7M","todi raga"],["1P 2M 3M 4P 5P 6M 7m","mixolydian","dominant"],["1P 2m 3M 4P 5d 6m 7M","persian"],["1P 2M 3M 4P 5P 6M 7M","major","ionian"],["1P 2m 3M 5d 6m 7m 7M","enigmatic"],["1P 2M 3M 4P 5A 6M 7M","major augmented","major #5","ionian augmented","ionian #5"],["1P 2A 3M 4A 5P 6M 7M","lydian #9"],["1P 2m 2M 4P 4A 5P 6m 7M","messiaen's mode #4"],["1P 2m 3M 4P 4A 5P 6m 7M","purvi raga"],["1P 2m 3m 3M 4P 5P 6m 7m","spanish heptatonic"],["1P 2M 3M 4P 5P 6M 7m 7M","bebop"],["1P 2M 3m 3M 4P 5P 6M 7m","bebop minor"],["1P 2M 3M 4P 5P 5A 6M 7M","bebop major"],["1P 2m 3m 4P 5d 5P 6m 7m","bebop locrian"],["1P 2M 3m 4P 5P 6m 7m 7M","minor bebop"],["1P 2M 3m 4P 5d 6m 6M 7M","diminished","whole-half diminished"],["1P 2M 3M 4P 5d 5P 6M 7M","ichikosucho"],["1P 2M 3m 4P 5P 6m 6M 7M","minor six diminished"],["1P 2m 3m 3M 4A 5P 6M 7m","half-whole diminished","dominant diminished","messiaen's mode #2"],["1P 3m 3M 4P 5P 6M 7m 7M","kafi raga"],["1P 2M 3M 4P 4A 5A 6A 7M","messiaen's mode #6"],["1P 2M 3m 3M 4P 5d 5P 6M 7m","composite blues"],["1P 2M 3m 3M 4A 5P 6m 7m 7M","messiaen's mode #3"],["1P 2m 2M 3m 4P 4A 5P 6m 6M 7M","messiaen's mode #7"],["1P 2m 2M 3m 3M 4P 5d 5P 6m 6M 7m 7M","chromatic"]],ro=g(y({},C),{intervals:[],aliases:[]});let ct=[],_={};function dn(){return ct.map(t=>t.name)}function mt(t){return _[t]||ro}const io=v("ScaleDictionary.scaleType","ScaleType.get",mt);function U(){return ct.slice()}const ao=v("ScaleDictionary.entries","ScaleType.all",U);function so(){return Object.keys(_)}function co(){ct=[],_={}}function Mn(t,n,e=[]){const o=g(y({},h(t)),{name:n,intervals:t,aliases:e});return ct.push(o),_[o.name]=o,_[o.setNum]=o,_[o.chroma]=o,o.aliases.forEach(r=>mo(o,r)),o}function mo(t,n){_[n]=t}oo.forEach(([t,n,...e])=>Mn(t.split(" "),n,e));var fn={names:dn,get:mt,all:U,add:Mn,removeAll:co,keys:so,entries:ao,scaleType:io};const gt={empty:!0,name:"",symbol:"",root:"",rootDegree:0,type:"",tonic:null,setNum:NaN,quality:"Unknown",chroma:"",normalized:"",aliases:[],notes:[],intervals:[]},uo=/^(6|64|7|9|11|13)$/;function ut(t){const[n,e,o,r]=rt(t);return n===""?["",t]:n==="A"&&r==="ug"?["","aug"]:!r&&(o==="4"||o==="5")?[n+e,o]:uo.test(o)?[n+e,o+r]:[n+e+o,r]}function X(t){if(t==="")return gt;if(Array.isArray(t)&&t.length===2)return Z(t[1],t[0]);{const[n,e]=ut(t),o=Z(e,n);return o.empty?Z(t):o}}function Z(t,n,e){const o=Tt(t),r=u(n||""),i=u(e||"");if(o.empty||n&&r.empty||e&&i.empty)return gt;const a=R(r.pc,i.pc),s=o.intervals.indexOf(a)+1;if(!i.empty&&!s)return gt;const c=Array.from(o.intervals);for(let M=1;MP(r,M));t=o.aliases.indexOf(t)!==-1?t:o.aliases[0];const m=`${r.empty?"":r.pc}${t}${i.empty||s<=1?"":"/"+i.pc}`,d=`${n?r.pc+" ":""}${o.name}${s>1&&e?" over "+i.pc:""}`;return g(y({},o),{name:d,symbol:m,type:o.name,root:i.name,intervals:c,rootDegree:s,tonic:r.name,notes:l})}const lo=v("Chord.chord","Chord.get",X);function Mo(t,n){const[e,o]=ut(t);return e?P(e,n)+o:t}function fo(t){const n=X(t),e=st(n.chroma);return U().filter(o=>e(o.chroma)).map(o=>o.name)}function Po(t){const n=X(t),e=st(n.chroma);return F().filter(o=>e(o.chroma)).map(o=>n.tonic+o.aliases[0])}function po(t){const n=X(t),e=at(n.chroma);return F().filter(o=>e(o.chroma)).map(o=>n.tonic+o.aliases[0])}var ho={getChord:Z,get:X,detect:no,chordScales:fo,extended:Po,reduced:po,tokenize:ut,transpose:Mo,chord:lo};const yo=[[.125,"dl",["large","duplex longa","maxima","octuple","octuple whole"]],[.25,"l",["long","longa"]],[.5,"d",["double whole","double","breve"]],[1,"w",["whole","semibreve"]],[2,"h",["half","minim"]],[4,"q",["quarter","crotchet"]],[8,"e",["eighth","quaver"]],[16,"s",["sixteenth","semiquaver"]],[32,"t",["thirty-second","demisemiquaver"]],[64,"sf",["sixty-fourth","hemidemisemiquaver"]],[128,"h",["hundred twenty-eighth"]],[256,"th",["two hundred fifty-sixth"]]],lt=[];yo.forEach(([t,n,e])=>jo(t,n,e));const go={empty:!0,name:"",value:0,fraction:[0,0],shorthand:"",dots:"",names:[]};function bo(){return lt.reduce((t,n)=>(n.names.forEach(e=>t.push(e)),t),[])}function Ao(){return lt.map(t=>t.shorthand)}const vo=/^([^.]+)(\.*)$/;function St(t){const[n,e,o]=vo.exec(t)||[],r=lt.find(s=>s.shorthand===e||s.names.includes(e));if(!r)return go;const i=To(r.fraction,o.length),a=i[0]/i[1];return g(y({},r),{name:t,dots:o,value:a,fraction:i})}const No=t=>St(t).value,$o=t=>St(t).fraction;var Io={names:bo,shorthands:Ao,get:St,value:No,fraction:$o};function jo(t,n,e){lt.push({empty:!1,dots:"",name:"",value:1/t,fraction:t<1?[1/t,1]:[1,t],shorthand:n,names:e})}function To(t,n){const e=Math.pow(2,n);let o=t[0]*e,r=t[1]*e;const i=o;for(let a=0;af(t).name,Co=t=>f(t).semitones,Vo=t=>f(t).q,wo=t=>f(t).num;function pn(t){const n=f(t);return n.empty?"":n.simple+n.q}function xo(t){const n=f(t);if(n.empty)return"";const e=(7-n.step)%7,o=n.type==="perfectable"?-n.alt:-(n.alt+1);return f({step:e,alt:o,oct:n.oct,dir:n.dir}).name}const Eo=[1,2,2,3,3,4,5,5,6,6,7,7],Do="P m M m M P d P m M m M".split(" ");function ko(t){const n=t<0?-1:1,e=Math.abs(t),o=e%12,r=Math.floor(e/12);return n*(Eo[o]+7*r)+Do[o]}const Ro=R,hn=gn((t,n)=>[t[0]+n[0],t[1]+n[1]]),Oo=t=>n=>hn(t,n),Fo=gn((t,n)=>[t[0]-n[0],t[1]-n[1]]);function yn(t,n){const e=Pn(t);if(e.empty)return"";const[o,r,i]=e.coord;return H([o+n,r,i]).name}var bt={names:So,get:Pn,name:_o,num:wo,semitones:Co,quality:Vo,fromSemitones:ko,distance:Ro,invert:xo,simplify:pn,add:hn,addTo:Oo,substract:Fo,transposeFifths:yn};function gn(t){return(n,e)=>{const o=f(n).coord,r=f(e).coord;if(o&&r){const i=t(o,r);return H(i).name}}}function bn(t){return+t>=0&&+t<=127}function An(t){if(bn(t))return+t;const n=u(t);return n.empty?null:n.midi}function zo(t,n=440){return Math.pow(2,(t-69)/12)*n}const qo=Math.log(2),Go=Math.log(440);function _t(t){const n=12*(Math.log(t)-Go)/qo+69;return Math.round(n*100)/100}const Bo="C C# D D# E F F# G G# A A# B".split(" "),Ho="C Db D Eb E F Gb G Ab A Bb B".split(" ");function T(t,n={}){if(isNaN(t)||t===-1/0||t===1/0)return"";t=Math.round(t);const o=(n.sharps===!0?Bo:Ho)[t%12];if(n.pitchClass)return o;const r=Math.floor(t/12)-1;return o+r}var Lo={isMidi:bn,toMidi:An,midiToFreq:zo,midiToNoteName:T,freqToMidi:_t};const Uo=["C","D","E","F","G","A","B"],vn=t=>t.name,Nn=t=>t.map(u).filter(n=>!n.empty);function Xo(t){return t===void 0?Uo.slice():Array.isArray(t)?Nn(t).map(vn):[]}const A=u,Ko=t=>A(t).name,Qo=t=>A(t).pc,Yo=t=>A(t).acc,Zo=t=>A(t).oct,Jo=t=>A(t).midi,Wo=t=>A(t).freq,tr=t=>A(t).chroma;function $n(t){return T(t)}function nr(t){return T(_t(t))}function er(t){return T(_t(t),{sharps:!0})}function or(t){return T(t,{sharps:!0})}const Ct=P,rr=P,In=t=>n=>Ct(n,t),ir=In,jn=t=>n=>Ct(t,n),ar=jn;function tt(t,n){const e=A(t);if(e.empty)return"";const[o,r]=e.coord;return z(r===void 0?[o+n]:[o+n,r]).name}const sr=tt,Vt=(t,n)=>t.height-n.height,cr=(t,n)=>n.height-t.height;function Tn(t,n){return n=n||Vt,Nn(t).sort(n).map(vn)}function Sn(t){return Tn(t,Vt).filter((n,e,o)=>e===0||n!==o[e-1])}const mr=t=>{const n=A(t);return n.empty?"":T(n.midi||n.chroma,{sharps:n.alt>0,pitchClass:n.midi===null})};function _n(t,n){const e=A(t);if(e.empty)return"";const o=A(n||T(e.midi||e.chroma,{sharps:e.alt<0,pitchClass:!0}));if(o.empty||o.chroma!==e.chroma)return"";if(e.oct===void 0)return o.pc;const r=e.chroma-e.alt,i=o.chroma-o.alt,a=r>11||i<0?-1:r<0||i>11?1:0,s=e.oct+a;return o.pc+s}var E={names:Xo,get:A,name:Ko,pitchClass:Qo,accidentals:Yo,octave:Zo,midi:Jo,ascending:Vt,descending:cr,sortedNames:Tn,sortedUniqNames:Sn,fromMidi:$n,fromMidiSharps:or,freq:Wo,fromFreq:nr,fromFreqSharps:er,chroma:tr,transpose:Ct,tr:rr,transposeBy:In,trBy:ir,transposeFrom:jn,trFrom:ar,transposeFifths:tt,trFifths:sr,simplify:mr,enharmonic:_n};const Cn={empty:!0,name:"",chordType:""},Ht={};function I(t){return typeof t=="string"?Ht[t]||(Ht[t]=pr(t)):typeof t=="number"?I(dt[t]||""):G(t)?dr(t):q(t)?I(t.name):Cn}const ur=v("RomanNumeral.romanNumeral","RomanNumeral.get",I);function lr(t=!0){return(t?dt:Pr).slice()}function dr(t){return I(k(t.alt)+dt[t.step])}const Mr=/^(#{1,}|b{1,}|x{1,}|)(IV|I{1,3}|VI{0,2}|iv|i{1,3}|vi{0,2})([^IViv]*)$/;function fr(t){return Mr.exec(t)||["","","",""]}const Vn="I II III IV V VI VII",dt=Vn.split(" "),Pr=Vn.toLowerCase().split(" ");function pr(t){const[n,e,o,r]=fr(t);if(!o)return Cn;const i=o.toUpperCase(),a=dt.indexOf(i),s=B(e),c=1;return{empty:!1,name:n,roman:o,interval:f({step:a,alt:s,dir:c}).name,acc:e,chordType:r,alt:s,step:a,major:o===i,oct:0,dir:c}}var hr={names:lr,get:I,romanNumeral:ur};const N=Object.freeze([]),wn={type:"major",tonic:"",alteration:0,keySignature:""},J={tonic:"",grades:N,intervals:N,scale:N,chords:N,chordsHarmonicFunction:N,chordScales:N},yr=g(y(y({},wn),J),{type:"major",minorRelative:"",scale:N,secondaryDominants:N,secondaryDominantsMinorRelative:N,substituteDominants:N,substituteDominantsMinorRelative:N}),gr=g(y({},wn),{type:"minor",relativeMajor:"",natural:J,harmonic:J,melodic:J}),Lt=(t,n,e="")=>n.map((o,r)=>`${t[r]}${e}${o}`);function Mt(t,n,e,o){return r=>{const i=t.map(s=>I(s).interval||""),a=i.map(s=>P(r,s));return{tonic:r,grades:t,intervals:i,scale:a,chords:Lt(a,n),chordsHarmonicFunction:e.slice(),chordScales:Lt(a,o," ")}}}const xn=(t,n)=>{const e=u(t),o=u(n);return e.empty||o.empty?0:o.coord[0]-e.coord[0]},br=Mt("I II III IV V VI VII".split(" "),"maj7 m7 m7 maj7 7 m7 m7b5".split(" "),"T SD T SD D T D".split(" "),"major,dorian,phrygian,lydian,mixolydian,minor,locrian".split(",")),Ar=Mt("I II bIII IV V bVI bVII".split(" "),"m7 m7b5 maj7 m7 m7 maj7 7".split(" "),"T SD T SD D SD SD".split(" "),"minor,locrian,major,dorian,phrygian,lydian,mixolydian".split(",")),vr=Mt("I II bIII IV V bVI VII".split(" "),"mMaj7 m7b5 +maj7 m7 7 maj7 o7".split(" "),"T SD T SD D SD D".split(" "),"harmonic minor,locrian 6,major augmented,lydian diminished,phrygian dominant,lydian #9,ultralocrian".split(",")),Nr=Mt("I II bIII IV V VI VII".split(" "),"m6 m7 +maj7 7 7 m7b5 m7b5".split(" "),"T SD T SD D ".split(" "),"melodic minor,dorian b2,lydian augmented,lydian dominant,mixolydian b6,locrian #2,altered".split(","));function $r(t){const n=u(t).pc;if(!n)return yr;const e=br(n),o=xn("C",n),r=i=>{const a=I(i);return a.empty?"":P(t,a.interval)+a.chordType};return g(y({},e),{type:"major",minorRelative:P(n,"-3m"),alteration:o,keySignature:k(o),secondaryDominants:"- VI7 VII7 I7 II7 III7 -".split(" ").map(r),secondaryDominantsMinorRelative:"- IIIm7b5 IV#m7 Vm7 VIm7 VIIm7b5 -".split(" ").map(r),substituteDominants:"- bIII7 IV7 bV7 bVI7 bVII7 -".split(" ").map(r),substituteDominantsMinorRelative:"- IIIm7 Im7 IIbm7 VIm7 IVm7 -".split(" ").map(r)})}function Ir(t){const n=u(t).pc;if(!n)return gr;const e=xn("C",n)-3;return{type:"minor",tonic:n,relativeMajor:P(n,"3m"),alteration:e,keySignature:k(e),natural:Ar(n),harmonic:vr(n),melodic:Nr(n)}}function jr(t){return typeof t=="number"?tt("C",t):typeof t=="string"&&/^b+|#+$/.test(t)?tt("C",B(t)):null}var Tr={majorKey:$r,majorTonicFromKeySignature:jr,minorKey:Ir};const wt=[[0,2773,0,"ionian","","Maj7","major"],[1,2902,2,"dorian","m","m7"],[2,3418,4,"phrygian","m","m7"],[3,2741,-1,"lydian","","Maj7"],[4,2774,1,"mixolydian","","7"],[5,2906,3,"aeolian","m","m7","minor"],[6,3434,5,"locrian","dim","m7b5"]],Ut=g(y({},C),{name:"",alt:0,modeNum:NaN,triad:"",seventh:"",aliases:[]}),xt=wt.map(Vr),At={};xt.forEach(t=>{At[t.name]=t,t.aliases.forEach(n=>{At[n]=t})});function V(t){return typeof t=="string"?At[t.toLowerCase()]||Ut:t&&t.name?V(t.name):Ut}const Sr=v("Mode.mode","Mode.get",V);function En(){return xt.slice()}const _r=v("Mode.mode","Mode.all",En);function Cr(){return xt.map(t=>t.name)}function Vr(t){const[n,e,o,r,i,a,s]=t,c=s?[s]:[],l=Number(e).toString(2),m=mt(r).intervals;return{empty:!1,intervals:m,modeNum:n,chroma:l,normalized:l,name:r,setNum:e,alt:o,triad:i,seventh:a,aliases:c}}function wr(t,n){return V(t).intervals.map(e=>P(n,e))}function Dn(t){return(n,e)=>{const o=V(n);if(o.empty)return[];const r=L(o.modeNum,t),i=o.intervals.map(a=>P(e,a));return r.map((a,s)=>i[s]+a)}}const xr=Dn(wt.map(t=>t[4])),Er=Dn(wt.map(t=>t[5]));function kn(t,n){const e=V(n),o=V(t);return e.empty||o.empty?"":pn(yn("1P",o.alt-e.alt))}function Dr(t,n,e){return P(e,kn(t,n))}var kr={get:V,names:Cr,all:En,distance:kn,relativeTonic:Dr,notes:wr,triads:xr,seventhChords:Er,entries:_r,mode:Sr};function Rr(t,n){return n.map(I).map(o=>P(t,f(o))+o.chordType)}function Or(t,n){return n.map(e=>{const[o,r]=ut(e),i=R(t,o);return I(f(i)).name+r})}var Fr={fromRomanNumerals:Rr,toRomanNumerals:Or};function Rn(t){const n=$t(t.map(An));return!t.length||n.length!==t.length?[]:n.reduce((e,o)=>{const r=e[e.length-1];return e.concat(it(r,o).slice(1))},[n[0]])}function zr(t,n){return Rn(t).map(e=>T(e,n))}var qr={numeric:Rn,chromatic:zr};const Gr={empty:!0,name:"",type:"",tonic:null,setNum:NaN,chroma:"",normalized:"",aliases:[],notes:[],intervals:[]};function On(t){if(typeof t!="string")return["",""];const n=t.indexOf(" "),e=u(t.substring(0,n));if(e.empty){const r=u(t);return r.empty?["",t]:[r.name,""]}const o=t.substring(e.name.length+1);return[e.name,o.length?o:""]}const Br=dn;function j(t){const n=Array.isArray(t)?t:On(t),e=u(n[0]).name,o=mt(n[1]);if(o.empty)return Gr;const r=o.name,i=e?o.intervals.map(s=>P(e,s)):[],a=e?e+" "+r:r;return g(y({},o),{name:a,type:r,tonic:e,notes:i})}const Hr=v("Scale.scale","Scale.get",j);function Lr(t){const n=j(t),e=at(n.chroma);return F().filter(o=>e(o.chroma)).map(o=>o.aliases[0])}function Ur(t){const n=j(t),e=st(n.chroma);return U().filter(o=>e(o.chroma)).map(o=>o.name)}function Xr(t){const n=at(j(t).chroma);return U().filter(e=>n(e.chroma)).map(e=>e.name)}function Fn(t){const n=t.map(r=>u(r).pc).filter(r=>r),e=n[0],o=Sn(n);return L(o.indexOf(e),o)}function Kr(t){const n=j(t);if(n.empty)return[];const e=n.tonic?n.notes:n.intervals;return jt(n.chroma).map((o,r)=>{const i=j(o).name;return i?[e[r],i]:["",""]}).filter(o=>o[0])}function Qr(t){const n=Array.isArray(t)?Fn(t):j(t).notes,e=n.map(o=>u(o).chroma);return o=>{const r=u(typeof o=="number"?$n(o):o),i=r.height;if(i===void 0)return;const a=i%12,s=e.indexOf(a);if(s!==-1)return _n(r.name,n[s])}}function Yr(t){const n=Qr(t);return(e,o)=>{const r=u(e).height,i=u(o).height;return r===void 0||i===void 0?[]:it(r,i).map(n).filter(a=>a)}}var nt={get:j,names:Br,extended:Ur,modeNames:Kr,reduced:Xr,scaleChords:Lr,scaleNotes:Fn,tokenize:On,rangeOf:Yr,scale:Hr};const Zr={empty:!0,name:"",upper:void 0,lower:void 0,type:void 0,additive:[]},Jr=["4/4","3/4","2/4","2/2","12/8","9/8","6/8","3/8"];function Wr(){return Jr.slice()}const ti=/^(\d?\d(?:\+\d)*)\/(\d)$/,Xt=new Map;function ni(t){const n=Xt.get(t);if(n)return n;const e=oi(Et(t));return Xt.set(t,e),e}function Et(t){if(typeof t=="string"){const[i,a,s]=ti.exec(t)||[];return Et([a,s])}const[n,e]=t,o=+e;if(typeof n=="number")return[n,o];const r=n.split("+").map(i=>+i);return r.length===1?[r[0],o]:[r,o]}var ei={names:Wr,parse:Et,get:ni};function oi([t,n]){const e=Array.isArray(t)?t.reduce((s,c)=>s+c,0):t,o=n;if(e===0||o===0)return Zr;const r=Array.isArray(t)?`${t.join("+")}/${n}`:`${t}/${n}`,i=Array.isArray(t)?t:[],a=o===4||o===2?"simple":o===8&&e%3===0?"compound":"irregular";return{empty:!1,name:r,type:a,upper:e,lower:o,additive:i}}const ri=tn,ii=mn,ai=ln,si=fn;var ci=Object.freeze(Object.defineProperty({__proto__:null,Array:$e,Core:tn,ChordDictionary:ai,PcSet:ii,ScaleDictionary:si,Tonal:ri,AbcNotation:pe,Chord:ho,ChordType:ln,Collection:Se,DurationValue:Io,Interval:bt,Key:Tr,Midi:Lo,Mode:kr,Note:E,Pcset:mn,Progression:Fr,Range:qr,RomanNumeral:hr,Scale:nt,ScaleType:fn,TimeSignature:ei,accToAlt:B,altToAcc:k,coordToInterval:H,coordToNote:z,decode:ot,deprecate:v,distance:R,encode:et,fillStr:x,interval:f,isNamed:q,isPitch:G,note:u,stepToLetter:vt,tokenizeInterval:Nt,tokenizeNote:rt,transpose:P},Symbol.toStringTag,{value:"Module"}));function zn(t,n,e){let[o,r]=nt.tokenize(t),{notes:i}=nt.get(`${o} ${r}`);if(i=i.map(b=>E.get(b).pc),n=Number(n),isNaN(n))throw new Error(`scale offset "${n}" not a number`);const{pc:a,oct:s=3}=E.get(e),c=i.indexOf(a);if(c===-1)throw new Error(`note "${e}" is not in scale "${t}"`);let l=c,m=s,d=a;const M=Math.sign(n);for(;Math.abs(l-c)0&&d[0]==="C"&&(m+=M)}return d+m}w.prototype._transpose=function(t){return this._withHap(n=>{const e=isNaN(Number(t))?String(t):bt.fromSemitones(t);if(typeof n.value=="number"){const o=typeof e=="string"?bt.semitones(e)||0:e;return n.withValue(()=>n.value+o)}return n.withValue(()=>E.simplify(E.transpose(n.value,e)))})};w.prototype._scaleTranspose=function(t){return this._withHap(n=>{if(!n.context.scale)throw new Error("can only use scaleTranspose after .scale");if(typeof n.value!="string")throw new Error("can only use scaleTranspose with notes");return n.withValue(()=>zn(n.context.scale,Number(t),n.value))})};w.prototype._scale=function(t){return this._withHap(n=>{let e=n.value;const o=Number(e);if(!isNaN(o)){let[r,i]=nt.tokenize(t);const{pc:a,oct:s=3}=E.get(r);e=zn(a+" "+i,o,a+s)}return n.withValue(()=>e).setContext(g(y({},n.context),{scale:t}))})};w.prototype.define("transpose",(t,n)=>n.transpose(t),{composable:!0,patternified:!0});w.prototype.define("scale",(t,n)=>n.scale(t),{composable:!0,patternified:!0});w.prototype.define("scaleTranspose",(t,n)=>n.scaleTranspose(t),{composable:!0,patternified:!0});var qn={},Dt={},K={};K.__esModule=!0;K.getBestVoicing=void 0;function mi(t){var n=t.chord,e=t.range,o=t.finder,r=t.picker,i=t.lastVoicing,a=o(n,e);return a.length?r(a,i):[]}K.getBestVoicing=mi;var ft={},Gn=Qn(ci),Q={};Q.__esModule=!0;Q.tokenizeChord=void 0;function ui(t){var n=(t||"").match(/^([A-G][b#]*)([^\/]*)[\/]?([A-G][b#]*)?$/);return n?n.slice(1):[]}Q.tokenizeChord=ui;ft.__esModule=!0;ft.voicingsInRange=void 0;var $=Gn,li=Dt,di=Q;function Mi(t,n,e){n===void 0&&(n=li.lefthand),e===void 0&&(e=["D3","A4"]);var o=(0,di.tokenizeChord)(t),r=o[0],i=o[1];if(!n[i])return[];var a=n[i].map(function(c){return c.split(" ")}),s=$.Range.chromatic(e);return a.reduce(function(c,l){var m=l.map(function(p){return $.Interval.substract(p,l[0])}),d=$.Note.transpose(r,l[0]),M=s.filter(function(p){return $.Note.chroma(p)===$.Note.chroma(d)}).filter(function(p){return $.Note.midi($.Note.transpose(p,m[m.length-1]))<=$.Note.midi(e[1])}).map(function(p){return $.Note.enharmonic(p,d)}),b=M.map(function(p){return m.map(function(pt){return $.Note.transpose(p,pt)})});return c.concat(b)},[])}ft.voicingsInRange=Mi;(function(t){var n=Y&&Y.__assign||function(){return n=Object.assign||function(s){for(var c,l=1,m=arguments.length;lPi({chord:t,dictionary:hi,range:e,picker:pi,lastVoicing:n}),D=w;D.prototype.fmapNested=function(t){return new D(n=>this.query(n).map(e=>Zn(t(e)).query(n).map(o=>new Jn(e.whole,e.part,o.value,o.context))).flat())};D.prototype.voicings=function(t){let n;return t!=null&&t.length||(t=["F3","A4"]),this.fmapNested(e=>(n=yi(e.value,n,t),Wn(...n)._withContext(()=>({locations:e.context.locations||[]}))))};D.prototype._rootNotes=function(t=2){return this.fmap(n=>{const[e,o]=n.match(/^([a-gA-G][b#]?).*$/);return o+t})};D.prototype.define("voicings",(t,n)=>n.voicings(t),{composable:!0});D.prototype.define("rootNotes",(t,n)=>n.rootNotes(t),{composable:!0,patternified:!0}); +var Bn=Object.defineProperty,Hn=Object.defineProperties;var Ln=Object.getOwnPropertyDescriptors;var kt=Object.getOwnPropertySymbols;var Un=Object.prototype.hasOwnProperty,Xn=Object.prototype.propertyIsEnumerable;var Rt=(t,n,e)=>n in t?Bn(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e,y=(t,n)=>{for(var e in n||(n={}))Un.call(n,e)&&Rt(t,e,n[e]);if(kt)for(var e of kt(n))Xn.call(n,e)&&Rt(t,e,n[e]);return t},g=(t,n)=>Hn(t,Ln(n));import{P as w,z as Kn,A as Qn,B as Y,C as Yn,D as Zn,H as Jn,E as Wn}from"./index.29de87b8.js";const x=(t,n)=>Array(Math.abs(n)+1).join(t);function v(t,n,e){return function(...o){return console.warn(`${t} is deprecated. Use ${n}.`),e.apply(this,o)}}function q(t){return t!==null&&typeof t=="object"&&typeof t.name=="string"}function G(t){return t!==null&&typeof t=="object"&&typeof t.step=="number"&&typeof t.alt=="number"}const Yt=[0,2,4,-1,1,3,5],Zt=Yt.map(t=>Math.floor(t*7/12));function et(t){const{step:n,alt:e,oct:o,dir:r=1}=t,i=Yt[n]+7*e;if(o===void 0)return[r*i];const a=o-Zt[n]-4*e;return[r*i,r*a]}const te=[3,0,4,1,5,2,6];function ot(t){const[n,e,o]=t,r=te[ne(n)],i=Math.floor((n+1)/7);if(e===void 0)return{step:r,alt:i,dir:o};const a=e+4*i+Zt[r];return{step:r,alt:i,oct:a,dir:o}}function ne(t){const n=(t+1)%7;return n<0?7+n:n}const Jt={empty:!0,name:"",pc:"",acc:""},Ot=new Map,vt=t=>"CDEFGAB".charAt(t),k=t=>t<0?x("b",-t):x("#",t),B=t=>t[0]==="b"?-t.length:t.length;function u(t){const n=Ot.get(t);if(n)return n;const e=typeof t=="string"?re(t):G(t)?u(ie(t)):q(t)?u(t.name):Jt;return Ot.set(t,e),e}const ee=/^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)$/;function rt(t){const n=ee.exec(t);return[n[1].toUpperCase(),n[2].replace(/x/g,"##"),n[3],n[4]]}function z(t){return u(ot(t))}const oe=(t,n)=>(t%n+n)%n,ht=[0,2,4,5,7,9,11];function re(t){const n=rt(t);if(n[0]===""||n[3]!=="")return Jt;const e=n[0],o=n[1],r=n[2],i=(e.charCodeAt(0)+3)%7,a=B(o),s=r.length?+r:void 0,c=et({step:i,alt:a,oct:s}),l=e+o+r,m=e+o,d=(ht[i]+a+120)%12,M=s===void 0?oe(ht[i]+a,12)-12*99:ht[i]+a+12*(s+1),b=M>=0&&M<=127?M:null,p=s===void 0?null:Math.pow(2,(M-69)/12)*440;return{empty:!1,acc:o,alt:a,chroma:d,coord:c,freq:p,height:M,letter:e,midi:b,name:l,oct:s,pc:m,step:i}}function ie(t){const{step:n,alt:e,oct:o}=t,r=vt(n);if(!r)return"";const i=r+k(e);return o||o===0?i+o:i}const yt={empty:!0,name:"",acc:""},ae="([-+]?\\d+)(d{1,4}|m|M|P|A{1,4})",se="(AA|A|P|M|m|d|dd)([-+]?\\d+)",ce=new RegExp("^"+ae+"|"+se+"$");function Nt(t){const n=ce.exec(`${t}`);return n===null?["",""]:n[1]?[n[1],n[2]]:[n[4],n[3]]}const Ft={};function f(t){return typeof t=="string"?Ft[t]||(Ft[t]=me(t)):G(t)?f(le(t)):q(t)?f(t.name):yt}const zt=[0,2,4,5,7,9,11],Wt="PMMPPMM";function me(t){const n=Nt(t);if(n[0]==="")return yt;const e=+n[0],o=n[1],r=(Math.abs(e)-1)%7,i=Wt[r];if(i==="M"&&o==="P")return yt;const a=i==="M"?"majorable":"perfectable",s=""+e+o,c=e<0?-1:1,l=e===8||e===-8?e:c*(r+1),m=ue(a,o),d=Math.floor((Math.abs(e)-1)/7),M=c*(zt[r]+m+12*d),b=(c*(zt[r]+m)%12+12)%12,p=et({step:r,alt:m,oct:d,dir:c});return{empty:!1,name:s,num:e,q:o,step:r,alt:m,dir:c,type:a,simple:l,semitones:M,chroma:b,coord:p,oct:d}}function H(t,n){const[e,o=0]=t,r=e*7+o*12<0,i=n||r?[-e,-o,-1]:[e,o,1];return f(ot(i))}function ue(t,n){return n==="M"&&t==="majorable"||n==="P"&&t==="perfectable"?0:n==="m"&&t==="majorable"?-1:/^A+$/.test(n)?n.length:/^d+$/.test(n)?-1*(t==="perfectable"?n.length:n.length+1):0}function le(t){const{step:n,alt:e,oct:o=0,dir:r}=t;if(!r)return"";const i=n+1+7*o,a=i===0?n+1:i,s=r<0?"-":"",c=Wt[n]==="M"?"majorable":"perfectable";return s+a+de(c,e)}function de(t,n){return n===0?t==="majorable"?"M":"P":n===-1&&t==="majorable"?"m":n>0?x("A",n):x("d",t==="perfectable"?n:n+1)}function P(t,n){const e=u(t),o=f(n);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=r.length===1?[r[0]+i[0]]:[r[0]+i[0],r[1]+i[1]];return z(a).name}function R(t,n){const e=u(t),o=u(n);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=i[0]-r[0],s=r.length===2&&i.length===2?i[1]-r[1]:-Math.floor(a*7/12),c=o.height===e.height&&o.midi!==null&&e.midi!==null&&e.step>o.step;return H([a,s],c).name}var tn=Object.freeze(Object.defineProperty({__proto__:null,accToAlt:B,altToAcc:k,coordToInterval:H,coordToNote:z,decode:ot,deprecate:v,distance:R,encode:et,fillStr:x,interval:f,isNamed:q,isPitch:G,note:u,stepToLetter:vt,tokenizeInterval:Nt,tokenizeNote:rt,transpose:P},Symbol.toStringTag,{value:"Module"}));const qt=(t,n)=>Array(n+1).join(t),Me=/^(_{1,}|=|\^{1,}|)([abcdefgABCDEFG])([,']*)$/;function nn(t){const n=Me.exec(t);return n?[n[1],n[2],n[3]]:["","",""]}function W(t){const[n,e,o]=nn(t);if(e==="")return"";let r=4;for(let a=0;a96?e.toUpperCase()+i+(r+1):e+i+r}function en(t){const n=u(t);if(n.empty||!n.oct&&n.oct!==0)return"";const{letter:e,acc:o,oct:r}=n,i=o[0]==="b"?o.replace(/b/g,"_"):o.replace(/#/g,"^"),a=r>4?e.toLowerCase():e,s=r===5?"":r>4?qt("'",r-5):qt(",",4-r);return i+a+s}function fe(t,n){return en(P(W(t),n))}function Pe(t,n){return R(W(t),W(n))}var pe={abcToScientificNotation:W,scientificToAbcNotation:en,tokenize:nn,transpose:fe,distance:Pe};function he(t,n){const e=[];for(;n--;e[n]=n+t);return e}function ye(t,n){const e=[];for(;n--;e[n]=t-n);return e}function ge(t,n){return tn===0||n)}function on(t){return t.map(e=>u(e)).filter(e=>!e.empty).sort((e,o)=>e.height-o.height).map(e=>e.name)}function ve(t){return on(t).filter((n,e,o)=>e===0||n!==o[e-1])}function Ne(t,n=Math.random){let e,o,r=t.length;for(;r;)e=Math.floor(n()*r--),o=t[r],t[r]=t[e],t[e]=o;return t}function rn(t){return t.length===0?[[]]:rn(t.slice(1)).reduce((n,e)=>n.concat(t.map((o,r)=>{const i=e.slice();return i.splice(r,0,t[0]),i})),[])}var $e=Object.freeze(Object.defineProperty({__proto__:null,compact:Ae,permutations:rn,range:ge,rotate:be,shuffle:Ne,sortedNoteNames:on,sortedUniqNoteNames:ve},Symbol.toStringTag,{value:"Module"}));function Ie(t,n){const e=[];for(;n--;e[n]=n+t);return e}function je(t,n){const e=[];for(;n--;e[n]=t-n);return e}function it(t,n){return tn===0||n)}function Te(t,n=Math.random){let e,o,r=t.length;for(;r;)e=Math.floor(n()*r--),o=t[r],t[r]=t[e],t[e]=o;return t}function an(t){return t.length===0?[[]]:an(t.slice(1)).reduce((n,e)=>n.concat(t.map((o,r)=>{const i=e.slice();return i.splice(r,0,t[0]),i})),[])}var Se={compact:$t,permutations:an,range:it,rotate:L,shuffle:Te};const C={empty:!0,name:"",setNum:0,chroma:"000000000000",normalized:"000000000000",intervals:[]},It=t=>Number(t).toString(2),Gt=t=>parseInt(t,2),_e=/^[01]{12}$/;function sn(t){return _e.test(t)}const Ce=t=>typeof t=="number"&&t>=0&&t<=4095,Ve=t=>t&&sn(t.chroma),Bt={[C.chroma]:C};function h(t){const n=sn(t)?t:Ce(t)?It(t):Array.isArray(t)?Be(t):Ve(t)?t.chroma:C.chroma;return Bt[n]=Bt[n]||Ge(n)}const we=v("Pcset.pcset","Pcset.get",h),xe=t=>h(t).chroma,Ee=t=>h(t).intervals,De=t=>h(t).setNum,ke=["1P","2m","2M","3m","3M","4P","5d","5P","6m","6M","7m","7M"];function Re(t){const n=[];for(let e=0;e<12;e++)t.charAt(e)==="1"&&n.push(ke[e]);return n}function Oe(){return it(2048,4095).map(It)}function jt(t,n=!0){const o=h(t).chroma.split("");return $t(o.map((r,i)=>{const a=L(i,o);return n&&a[0]==="0"?null:a.join("")}))}function Fe(t,n){return h(t).setNum===h(n).setNum}function at(t){const n=h(t).setNum;return e=>{const o=h(e).setNum;return n&&n!==o&&(o&n)===o}}function st(t){const n=h(t).setNum;return e=>{const o=h(e).setNum;return n&&n!==o&&(o|n)===o}}function cn(t){const n=h(t);return e=>{const o=u(e);return n&&!o.empty&&n.chroma.charAt(o.chroma)==="1"}}function ze(t){const n=cn(t);return e=>e.filter(n)}var mn={get:h,chroma:xe,num:De,intervals:Ee,chromas:Oe,isSupersetOf:st,isSubsetOf:at,isNoteIncludedIn:cn,isEqual:Fe,filter:ze,modes:jt,pcset:we};function qe(t){const n=t.split("");return n.map((e,o)=>L(o,n).join(""))}function Ge(t){const n=Gt(t),e=qe(t).map(Gt).filter(i=>i>=2048).sort()[0],o=It(e),r=Re(t);return{empty:!1,name:"",setNum:n,chroma:t,normalized:o,intervals:r}}function Be(t){if(t.length===0)return C.chroma;let n;const e=[0,0,0,0,0,0,0,0,0,0,0,0];for(let o=0;ot.name).filter(t=>t)}function Ke(){return O.map(t=>t.aliases[0]).filter(t=>t)}function Qe(){return Object.keys(S)}function F(){return O.slice()}const Ye=v("ChordType.entries","ChordType.all",F);function Ze(){O=[],S={}}function un(t,n,e){const o=We(t),r=g(y({},h(t)),{name:e||"",quality:o,intervals:t,aliases:n});O.push(r),r.name&&(S[r.name]=r),S[r.setNum]=r,S[r.chroma]=r,r.aliases.forEach(i=>Je(r,i))}function Je(t,n){S[n]=t}function We(t){const n=e=>t.indexOf(e)!==-1;return n("5A")?"Augmented":n("3M")?"Major":n("5d")?"Diminished":n("3m")?"Minor":"Unknown"}He.forEach(([t,n,e])=>un(t.split(" "),e.split(" "),n));O.sort((t,n)=>t.setNum-n.setNum);var ln={names:Xe,symbols:Ke,get:Tt,all:F,add:un,removeAll:Ze,keys:Qe,entries:Ye,chordType:Ue};const to=t=>{const n=t.reduce((e,o)=>{const r=u(o).chroma;return r!==void 0&&(e[r]=e[r]||u(o).name),e},{});return e=>n[e]};function no(t){const n=t.map(o=>u(o).pc).filter(o=>o);return u.length===0?[]:eo(n,1).filter(o=>o.weight).sort((o,r)=>r.weight-o.weight).map(o=>o.name)}function eo(t,n){const e=t[0],o=u(e).chroma,r=to(t),i=jt(t,!1),a=[];return i.forEach((s,c)=>{F().filter(m=>m.chroma===s).forEach(m=>{const d=m.aliases[0],M=r(c);c!==o?a.push({weight:.5*n,name:`${M}${d}/${e}`}):a.push({weight:1*n,name:`${M}${d}`})})}),a}const oo=[["1P 2M 3M 5P 6M","major pentatonic","pentatonic"],["1P 3M 4P 5P 7M","ionian pentatonic"],["1P 3M 4P 5P 7m","mixolydian pentatonic","indian"],["1P 2M 4P 5P 6M","ritusen"],["1P 2M 4P 5P 7m","egyptian"],["1P 3M 4P 5d 7m","neopolitan major pentatonic"],["1P 3m 4P 5P 6m","vietnamese 1"],["1P 2m 3m 5P 6m","pelog"],["1P 2m 4P 5P 6m","kumoijoshi"],["1P 2M 3m 5P 6m","hirajoshi"],["1P 2m 4P 5d 7m","iwato"],["1P 2m 4P 5P 7m","in-sen"],["1P 3M 4A 5P 7M","lydian pentatonic","chinese"],["1P 3m 4P 6m 7m","malkos raga"],["1P 3m 4P 5d 7m","locrian pentatonic","minor seven flat five pentatonic"],["1P 3m 4P 5P 7m","minor pentatonic","vietnamese 2"],["1P 3m 4P 5P 6M","minor six pentatonic"],["1P 2M 3m 5P 6M","flat three pentatonic","kumoi"],["1P 2M 3M 5P 6m","flat six pentatonic"],["1P 2m 3M 5P 6M","scriabin"],["1P 3M 5d 6m 7m","whole tone pentatonic"],["1P 3M 4A 5A 7M","lydian #5P pentatonic"],["1P 3M 4A 5P 7m","lydian dominant pentatonic"],["1P 3m 4P 5P 7M","minor #7M pentatonic"],["1P 3m 4d 5d 7m","super locrian pentatonic"],["1P 2M 3m 4P 5P 7M","minor hexatonic"],["1P 2A 3M 5P 5A 7M","augmented"],["1P 2M 3m 3M 5P 6M","major blues"],["1P 2M 4P 5P 6M 7m","piongio"],["1P 2m 3M 4A 6M 7m","prometheus neopolitan"],["1P 2M 3M 4A 6M 7m","prometheus"],["1P 2m 3M 5d 6m 7m","mystery #1"],["1P 2m 3M 4P 5A 6M","six tone symmetric"],["1P 2M 3M 4A 5A 7m","whole tone","messiaen's mode #1"],["1P 2m 4P 4A 5P 7M","messiaen's mode #5"],["1P 3m 4P 5d 5P 7m","minor blues","blues"],["1P 2M 3M 4P 5d 6m 7m","locrian major","arabian"],["1P 2m 3M 4A 5P 6m 7M","double harmonic lydian"],["1P 2M 3m 4P 5P 6m 7M","harmonic minor"],["1P 2m 2A 3M 4A 6m 7m","altered","super locrian","diminished whole tone","pomeroy"],["1P 2M 3m 4P 5d 6m 7m","locrian #2","half-diminished","aeolian b5"],["1P 2M 3M 4P 5P 6m 7m","mixolydian b6","melodic minor fifth mode","hindu"],["1P 2M 3M 4A 5P 6M 7m","lydian dominant","lydian b7","overtone"],["1P 2M 3M 4A 5P 6M 7M","lydian"],["1P 2M 3M 4A 5A 6M 7M","lydian augmented"],["1P 2m 3m 4P 5P 6M 7m","dorian b2","phrygian #6","melodic minor second mode"],["1P 2M 3m 4P 5P 6M 7M","melodic minor"],["1P 2m 3m 4P 5d 6m 7m","locrian"],["1P 2m 3m 4d 5d 6m 7d","ultralocrian","superlocrian bb7","superlocrian diminished"],["1P 2m 3m 4P 5d 6M 7m","locrian 6","locrian natural 6","locrian sharp 6"],["1P 2A 3M 4P 5P 5A 7M","augmented heptatonic"],["1P 2M 3m 4A 5P 6M 7m","dorian #4","ukrainian dorian","romanian minor","altered dorian"],["1P 2M 3m 4A 5P 6M 7M","lydian diminished"],["1P 2m 3m 4P 5P 6m 7m","phrygian"],["1P 2M 3M 4A 5A 7m 7M","leading whole tone"],["1P 2M 3M 4A 5P 6m 7m","lydian minor"],["1P 2m 3M 4P 5P 6m 7m","phrygian dominant","spanish","phrygian major"],["1P 2m 3m 4P 5P 6m 7M","balinese"],["1P 2m 3m 4P 5P 6M 7M","neopolitan major"],["1P 2M 3m 4P 5P 6m 7m","aeolian","minor"],["1P 2M 3M 4P 5P 6m 7M","harmonic major"],["1P 2m 3M 4P 5P 6m 7M","double harmonic major","gypsy"],["1P 2M 3m 4P 5P 6M 7m","dorian"],["1P 2M 3m 4A 5P 6m 7M","hungarian minor"],["1P 2A 3M 4A 5P 6M 7m","hungarian major"],["1P 2m 3M 4P 5d 6M 7m","oriental"],["1P 2m 3m 3M 4A 5P 7m","flamenco"],["1P 2m 3m 4A 5P 6m 7M","todi raga"],["1P 2M 3M 4P 5P 6M 7m","mixolydian","dominant"],["1P 2m 3M 4P 5d 6m 7M","persian"],["1P 2M 3M 4P 5P 6M 7M","major","ionian"],["1P 2m 3M 5d 6m 7m 7M","enigmatic"],["1P 2M 3M 4P 5A 6M 7M","major augmented","major #5","ionian augmented","ionian #5"],["1P 2A 3M 4A 5P 6M 7M","lydian #9"],["1P 2m 2M 4P 4A 5P 6m 7M","messiaen's mode #4"],["1P 2m 3M 4P 4A 5P 6m 7M","purvi raga"],["1P 2m 3m 3M 4P 5P 6m 7m","spanish heptatonic"],["1P 2M 3M 4P 5P 6M 7m 7M","bebop"],["1P 2M 3m 3M 4P 5P 6M 7m","bebop minor"],["1P 2M 3M 4P 5P 5A 6M 7M","bebop major"],["1P 2m 3m 4P 5d 5P 6m 7m","bebop locrian"],["1P 2M 3m 4P 5P 6m 7m 7M","minor bebop"],["1P 2M 3m 4P 5d 6m 6M 7M","diminished","whole-half diminished"],["1P 2M 3M 4P 5d 5P 6M 7M","ichikosucho"],["1P 2M 3m 4P 5P 6m 6M 7M","minor six diminished"],["1P 2m 3m 3M 4A 5P 6M 7m","half-whole diminished","dominant diminished","messiaen's mode #2"],["1P 3m 3M 4P 5P 6M 7m 7M","kafi raga"],["1P 2M 3M 4P 4A 5A 6A 7M","messiaen's mode #6"],["1P 2M 3m 3M 4P 5d 5P 6M 7m","composite blues"],["1P 2M 3m 3M 4A 5P 6m 7m 7M","messiaen's mode #3"],["1P 2m 2M 3m 4P 4A 5P 6m 6M 7M","messiaen's mode #7"],["1P 2m 2M 3m 3M 4P 5d 5P 6m 6M 7m 7M","chromatic"]],ro=g(y({},C),{intervals:[],aliases:[]});let ct=[],_={};function dn(){return ct.map(t=>t.name)}function mt(t){return _[t]||ro}const io=v("ScaleDictionary.scaleType","ScaleType.get",mt);function U(){return ct.slice()}const ao=v("ScaleDictionary.entries","ScaleType.all",U);function so(){return Object.keys(_)}function co(){ct=[],_={}}function Mn(t,n,e=[]){const o=g(y({},h(t)),{name:n,intervals:t,aliases:e});return ct.push(o),_[o.name]=o,_[o.setNum]=o,_[o.chroma]=o,o.aliases.forEach(r=>mo(o,r)),o}function mo(t,n){_[n]=t}oo.forEach(([t,n,...e])=>Mn(t.split(" "),n,e));var fn={names:dn,get:mt,all:U,add:Mn,removeAll:co,keys:so,entries:ao,scaleType:io};const gt={empty:!0,name:"",symbol:"",root:"",rootDegree:0,type:"",tonic:null,setNum:NaN,quality:"Unknown",chroma:"",normalized:"",aliases:[],notes:[],intervals:[]},uo=/^(6|64|7|9|11|13)$/;function ut(t){const[n,e,o,r]=rt(t);return n===""?["",t]:n==="A"&&r==="ug"?["","aug"]:!r&&(o==="4"||o==="5")?[n+e,o]:uo.test(o)?[n+e,o+r]:[n+e+o,r]}function X(t){if(t==="")return gt;if(Array.isArray(t)&&t.length===2)return Z(t[1],t[0]);{const[n,e]=ut(t),o=Z(e,n);return o.empty?Z(t):o}}function Z(t,n,e){const o=Tt(t),r=u(n||""),i=u(e||"");if(o.empty||n&&r.empty||e&&i.empty)return gt;const a=R(r.pc,i.pc),s=o.intervals.indexOf(a)+1;if(!i.empty&&!s)return gt;const c=Array.from(o.intervals);for(let M=1;MP(r,M));t=o.aliases.indexOf(t)!==-1?t:o.aliases[0];const m=`${r.empty?"":r.pc}${t}${i.empty||s<=1?"":"/"+i.pc}`,d=`${n?r.pc+" ":""}${o.name}${s>1&&e?" over "+i.pc:""}`;return g(y({},o),{name:d,symbol:m,type:o.name,root:i.name,intervals:c,rootDegree:s,tonic:r.name,notes:l})}const lo=v("Chord.chord","Chord.get",X);function Mo(t,n){const[e,o]=ut(t);return e?P(e,n)+o:t}function fo(t){const n=X(t),e=st(n.chroma);return U().filter(o=>e(o.chroma)).map(o=>o.name)}function Po(t){const n=X(t),e=st(n.chroma);return F().filter(o=>e(o.chroma)).map(o=>n.tonic+o.aliases[0])}function po(t){const n=X(t),e=at(n.chroma);return F().filter(o=>e(o.chroma)).map(o=>n.tonic+o.aliases[0])}var ho={getChord:Z,get:X,detect:no,chordScales:fo,extended:Po,reduced:po,tokenize:ut,transpose:Mo,chord:lo};const yo=[[.125,"dl",["large","duplex longa","maxima","octuple","octuple whole"]],[.25,"l",["long","longa"]],[.5,"d",["double whole","double","breve"]],[1,"w",["whole","semibreve"]],[2,"h",["half","minim"]],[4,"q",["quarter","crotchet"]],[8,"e",["eighth","quaver"]],[16,"s",["sixteenth","semiquaver"]],[32,"t",["thirty-second","demisemiquaver"]],[64,"sf",["sixty-fourth","hemidemisemiquaver"]],[128,"h",["hundred twenty-eighth"]],[256,"th",["two hundred fifty-sixth"]]],lt=[];yo.forEach(([t,n,e])=>jo(t,n,e));const go={empty:!0,name:"",value:0,fraction:[0,0],shorthand:"",dots:"",names:[]};function bo(){return lt.reduce((t,n)=>(n.names.forEach(e=>t.push(e)),t),[])}function Ao(){return lt.map(t=>t.shorthand)}const vo=/^([^.]+)(\.*)$/;function St(t){const[n,e,o]=vo.exec(t)||[],r=lt.find(s=>s.shorthand===e||s.names.includes(e));if(!r)return go;const i=To(r.fraction,o.length),a=i[0]/i[1];return g(y({},r),{name:t,dots:o,value:a,fraction:i})}const No=t=>St(t).value,$o=t=>St(t).fraction;var Io={names:bo,shorthands:Ao,get:St,value:No,fraction:$o};function jo(t,n,e){lt.push({empty:!1,dots:"",name:"",value:1/t,fraction:t<1?[1/t,1]:[1,t],shorthand:n,names:e})}function To(t,n){const e=Math.pow(2,n);let o=t[0]*e,r=t[1]*e;const i=o;for(let a=0;af(t).name,Co=t=>f(t).semitones,Vo=t=>f(t).q,wo=t=>f(t).num;function pn(t){const n=f(t);return n.empty?"":n.simple+n.q}function xo(t){const n=f(t);if(n.empty)return"";const e=(7-n.step)%7,o=n.type==="perfectable"?-n.alt:-(n.alt+1);return f({step:e,alt:o,oct:n.oct,dir:n.dir}).name}const Eo=[1,2,2,3,3,4,5,5,6,6,7,7],Do="P m M m M P d P m M m M".split(" ");function ko(t){const n=t<0?-1:1,e=Math.abs(t),o=e%12,r=Math.floor(e/12);return n*(Eo[o]+7*r)+Do[o]}const Ro=R,hn=gn((t,n)=>[t[0]+n[0],t[1]+n[1]]),Oo=t=>n=>hn(t,n),Fo=gn((t,n)=>[t[0]-n[0],t[1]-n[1]]);function yn(t,n){const e=Pn(t);if(e.empty)return"";const[o,r,i]=e.coord;return H([o+n,r,i]).name}var bt={names:So,get:Pn,name:_o,num:wo,semitones:Co,quality:Vo,fromSemitones:ko,distance:Ro,invert:xo,simplify:pn,add:hn,addTo:Oo,substract:Fo,transposeFifths:yn};function gn(t){return(n,e)=>{const o=f(n).coord,r=f(e).coord;if(o&&r){const i=t(o,r);return H(i).name}}}function bn(t){return+t>=0&&+t<=127}function An(t){if(bn(t))return+t;const n=u(t);return n.empty?null:n.midi}function zo(t,n=440){return Math.pow(2,(t-69)/12)*n}const qo=Math.log(2),Go=Math.log(440);function _t(t){const n=12*(Math.log(t)-Go)/qo+69;return Math.round(n*100)/100}const Bo="C C# D D# E F F# G G# A A# B".split(" "),Ho="C Db D Eb E F Gb G Ab A Bb B".split(" ");function T(t,n={}){if(isNaN(t)||t===-1/0||t===1/0)return"";t=Math.round(t);const o=(n.sharps===!0?Bo:Ho)[t%12];if(n.pitchClass)return o;const r=Math.floor(t/12)-1;return o+r}var Lo={isMidi:bn,toMidi:An,midiToFreq:zo,midiToNoteName:T,freqToMidi:_t};const Uo=["C","D","E","F","G","A","B"],vn=t=>t.name,Nn=t=>t.map(u).filter(n=>!n.empty);function Xo(t){return t===void 0?Uo.slice():Array.isArray(t)?Nn(t).map(vn):[]}const A=u,Ko=t=>A(t).name,Qo=t=>A(t).pc,Yo=t=>A(t).acc,Zo=t=>A(t).oct,Jo=t=>A(t).midi,Wo=t=>A(t).freq,tr=t=>A(t).chroma;function $n(t){return T(t)}function nr(t){return T(_t(t))}function er(t){return T(_t(t),{sharps:!0})}function or(t){return T(t,{sharps:!0})}const Ct=P,rr=P,In=t=>n=>Ct(n,t),ir=In,jn=t=>n=>Ct(t,n),ar=jn;function tt(t,n){const e=A(t);if(e.empty)return"";const[o,r]=e.coord;return z(r===void 0?[o+n]:[o+n,r]).name}const sr=tt,Vt=(t,n)=>t.height-n.height,cr=(t,n)=>n.height-t.height;function Tn(t,n){return n=n||Vt,Nn(t).sort(n).map(vn)}function Sn(t){return Tn(t,Vt).filter((n,e,o)=>e===0||n!==o[e-1])}const mr=t=>{const n=A(t);return n.empty?"":T(n.midi||n.chroma,{sharps:n.alt>0,pitchClass:n.midi===null})};function _n(t,n){const e=A(t);if(e.empty)return"";const o=A(n||T(e.midi||e.chroma,{sharps:e.alt<0,pitchClass:!0}));if(o.empty||o.chroma!==e.chroma)return"";if(e.oct===void 0)return o.pc;const r=e.chroma-e.alt,i=o.chroma-o.alt,a=r>11||i<0?-1:r<0||i>11?1:0,s=e.oct+a;return o.pc+s}var E={names:Xo,get:A,name:Ko,pitchClass:Qo,accidentals:Yo,octave:Zo,midi:Jo,ascending:Vt,descending:cr,sortedNames:Tn,sortedUniqNames:Sn,fromMidi:$n,fromMidiSharps:or,freq:Wo,fromFreq:nr,fromFreqSharps:er,chroma:tr,transpose:Ct,tr:rr,transposeBy:In,trBy:ir,transposeFrom:jn,trFrom:ar,transposeFifths:tt,trFifths:sr,simplify:mr,enharmonic:_n};const Cn={empty:!0,name:"",chordType:""},Ht={};function I(t){return typeof t=="string"?Ht[t]||(Ht[t]=pr(t)):typeof t=="number"?I(dt[t]||""):G(t)?dr(t):q(t)?I(t.name):Cn}const ur=v("RomanNumeral.romanNumeral","RomanNumeral.get",I);function lr(t=!0){return(t?dt:Pr).slice()}function dr(t){return I(k(t.alt)+dt[t.step])}const Mr=/^(#{1,}|b{1,}|x{1,}|)(IV|I{1,3}|VI{0,2}|iv|i{1,3}|vi{0,2})([^IViv]*)$/;function fr(t){return Mr.exec(t)||["","","",""]}const Vn="I II III IV V VI VII",dt=Vn.split(" "),Pr=Vn.toLowerCase().split(" ");function pr(t){const[n,e,o,r]=fr(t);if(!o)return Cn;const i=o.toUpperCase(),a=dt.indexOf(i),s=B(e),c=1;return{empty:!1,name:n,roman:o,interval:f({step:a,alt:s,dir:c}).name,acc:e,chordType:r,alt:s,step:a,major:o===i,oct:0,dir:c}}var hr={names:lr,get:I,romanNumeral:ur};const N=Object.freeze([]),wn={type:"major",tonic:"",alteration:0,keySignature:""},J={tonic:"",grades:N,intervals:N,scale:N,chords:N,chordsHarmonicFunction:N,chordScales:N},yr=g(y(y({},wn),J),{type:"major",minorRelative:"",scale:N,secondaryDominants:N,secondaryDominantsMinorRelative:N,substituteDominants:N,substituteDominantsMinorRelative:N}),gr=g(y({},wn),{type:"minor",relativeMajor:"",natural:J,harmonic:J,melodic:J}),Lt=(t,n,e="")=>n.map((o,r)=>`${t[r]}${e}${o}`);function Mt(t,n,e,o){return r=>{const i=t.map(s=>I(s).interval||""),a=i.map(s=>P(r,s));return{tonic:r,grades:t,intervals:i,scale:a,chords:Lt(a,n),chordsHarmonicFunction:e.slice(),chordScales:Lt(a,o," ")}}}const xn=(t,n)=>{const e=u(t),o=u(n);return e.empty||o.empty?0:o.coord[0]-e.coord[0]},br=Mt("I II III IV V VI VII".split(" "),"maj7 m7 m7 maj7 7 m7 m7b5".split(" "),"T SD T SD D T D".split(" "),"major,dorian,phrygian,lydian,mixolydian,minor,locrian".split(",")),Ar=Mt("I II bIII IV V bVI bVII".split(" "),"m7 m7b5 maj7 m7 m7 maj7 7".split(" "),"T SD T SD D SD SD".split(" "),"minor,locrian,major,dorian,phrygian,lydian,mixolydian".split(",")),vr=Mt("I II bIII IV V bVI VII".split(" "),"mMaj7 m7b5 +maj7 m7 7 maj7 o7".split(" "),"T SD T SD D SD D".split(" "),"harmonic minor,locrian 6,major augmented,lydian diminished,phrygian dominant,lydian #9,ultralocrian".split(",")),Nr=Mt("I II bIII IV V VI VII".split(" "),"m6 m7 +maj7 7 7 m7b5 m7b5".split(" "),"T SD T SD D ".split(" "),"melodic minor,dorian b2,lydian augmented,lydian dominant,mixolydian b6,locrian #2,altered".split(","));function $r(t){const n=u(t).pc;if(!n)return yr;const e=br(n),o=xn("C",n),r=i=>{const a=I(i);return a.empty?"":P(t,a.interval)+a.chordType};return g(y({},e),{type:"major",minorRelative:P(n,"-3m"),alteration:o,keySignature:k(o),secondaryDominants:"- VI7 VII7 I7 II7 III7 -".split(" ").map(r),secondaryDominantsMinorRelative:"- IIIm7b5 IV#m7 Vm7 VIm7 VIIm7b5 -".split(" ").map(r),substituteDominants:"- bIII7 IV7 bV7 bVI7 bVII7 -".split(" ").map(r),substituteDominantsMinorRelative:"- IIIm7 Im7 IIbm7 VIm7 IVm7 -".split(" ").map(r)})}function Ir(t){const n=u(t).pc;if(!n)return gr;const e=xn("C",n)-3;return{type:"minor",tonic:n,relativeMajor:P(n,"3m"),alteration:e,keySignature:k(e),natural:Ar(n),harmonic:vr(n),melodic:Nr(n)}}function jr(t){return typeof t=="number"?tt("C",t):typeof t=="string"&&/^b+|#+$/.test(t)?tt("C",B(t)):null}var Tr={majorKey:$r,majorTonicFromKeySignature:jr,minorKey:Ir};const wt=[[0,2773,0,"ionian","","Maj7","major"],[1,2902,2,"dorian","m","m7"],[2,3418,4,"phrygian","m","m7"],[3,2741,-1,"lydian","","Maj7"],[4,2774,1,"mixolydian","","7"],[5,2906,3,"aeolian","m","m7","minor"],[6,3434,5,"locrian","dim","m7b5"]],Ut=g(y({},C),{name:"",alt:0,modeNum:NaN,triad:"",seventh:"",aliases:[]}),xt=wt.map(Vr),At={};xt.forEach(t=>{At[t.name]=t,t.aliases.forEach(n=>{At[n]=t})});function V(t){return typeof t=="string"?At[t.toLowerCase()]||Ut:t&&t.name?V(t.name):Ut}const Sr=v("Mode.mode","Mode.get",V);function En(){return xt.slice()}const _r=v("Mode.mode","Mode.all",En);function Cr(){return xt.map(t=>t.name)}function Vr(t){const[n,e,o,r,i,a,s]=t,c=s?[s]:[],l=Number(e).toString(2),m=mt(r).intervals;return{empty:!1,intervals:m,modeNum:n,chroma:l,normalized:l,name:r,setNum:e,alt:o,triad:i,seventh:a,aliases:c}}function wr(t,n){return V(t).intervals.map(e=>P(n,e))}function Dn(t){return(n,e)=>{const o=V(n);if(o.empty)return[];const r=L(o.modeNum,t),i=o.intervals.map(a=>P(e,a));return r.map((a,s)=>i[s]+a)}}const xr=Dn(wt.map(t=>t[4])),Er=Dn(wt.map(t=>t[5]));function kn(t,n){const e=V(n),o=V(t);return e.empty||o.empty?"":pn(yn("1P",o.alt-e.alt))}function Dr(t,n,e){return P(e,kn(t,n))}var kr={get:V,names:Cr,all:En,distance:kn,relativeTonic:Dr,notes:wr,triads:xr,seventhChords:Er,entries:_r,mode:Sr};function Rr(t,n){return n.map(I).map(o=>P(t,f(o))+o.chordType)}function Or(t,n){return n.map(e=>{const[o,r]=ut(e),i=R(t,o);return I(f(i)).name+r})}var Fr={fromRomanNumerals:Rr,toRomanNumerals:Or};function Rn(t){const n=$t(t.map(An));return!t.length||n.length!==t.length?[]:n.reduce((e,o)=>{const r=e[e.length-1];return e.concat(it(r,o).slice(1))},[n[0]])}function zr(t,n){return Rn(t).map(e=>T(e,n))}var qr={numeric:Rn,chromatic:zr};const Gr={empty:!0,name:"",type:"",tonic:null,setNum:NaN,chroma:"",normalized:"",aliases:[],notes:[],intervals:[]};function On(t){if(typeof t!="string")return["",""];const n=t.indexOf(" "),e=u(t.substring(0,n));if(e.empty){const r=u(t);return r.empty?["",t]:[r.name,""]}const o=t.substring(e.name.length+1);return[e.name,o.length?o:""]}const Br=dn;function j(t){const n=Array.isArray(t)?t:On(t),e=u(n[0]).name,o=mt(n[1]);if(o.empty)return Gr;const r=o.name,i=e?o.intervals.map(s=>P(e,s)):[],a=e?e+" "+r:r;return g(y({},o),{name:a,type:r,tonic:e,notes:i})}const Hr=v("Scale.scale","Scale.get",j);function Lr(t){const n=j(t),e=at(n.chroma);return F().filter(o=>e(o.chroma)).map(o=>o.aliases[0])}function Ur(t){const n=j(t),e=st(n.chroma);return U().filter(o=>e(o.chroma)).map(o=>o.name)}function Xr(t){const n=at(j(t).chroma);return U().filter(e=>n(e.chroma)).map(e=>e.name)}function Fn(t){const n=t.map(r=>u(r).pc).filter(r=>r),e=n[0],o=Sn(n);return L(o.indexOf(e),o)}function Kr(t){const n=j(t);if(n.empty)return[];const e=n.tonic?n.notes:n.intervals;return jt(n.chroma).map((o,r)=>{const i=j(o).name;return i?[e[r],i]:["",""]}).filter(o=>o[0])}function Qr(t){const n=Array.isArray(t)?Fn(t):j(t).notes,e=n.map(o=>u(o).chroma);return o=>{const r=u(typeof o=="number"?$n(o):o),i=r.height;if(i===void 0)return;const a=i%12,s=e.indexOf(a);if(s!==-1)return _n(r.name,n[s])}}function Yr(t){const n=Qr(t);return(e,o)=>{const r=u(e).height,i=u(o).height;return r===void 0||i===void 0?[]:it(r,i).map(n).filter(a=>a)}}var nt={get:j,names:Br,extended:Ur,modeNames:Kr,reduced:Xr,scaleChords:Lr,scaleNotes:Fn,tokenize:On,rangeOf:Yr,scale:Hr};const Zr={empty:!0,name:"",upper:void 0,lower:void 0,type:void 0,additive:[]},Jr=["4/4","3/4","2/4","2/2","12/8","9/8","6/8","3/8"];function Wr(){return Jr.slice()}const ti=/^(\d?\d(?:\+\d)*)\/(\d)$/,Xt=new Map;function ni(t){const n=Xt.get(t);if(n)return n;const e=oi(Et(t));return Xt.set(t,e),e}function Et(t){if(typeof t=="string"){const[i,a,s]=ti.exec(t)||[];return Et([a,s])}const[n,e]=t,o=+e;if(typeof n=="number")return[n,o];const r=n.split("+").map(i=>+i);return r.length===1?[r[0],o]:[r,o]}var ei={names:Wr,parse:Et,get:ni};function oi([t,n]){const e=Array.isArray(t)?t.reduce((s,c)=>s+c,0):t,o=n;if(e===0||o===0)return Zr;const r=Array.isArray(t)?`${t.join("+")}/${n}`:`${t}/${n}`,i=Array.isArray(t)?t:[],a=o===4||o===2?"simple":o===8&&e%3===0?"compound":"irregular";return{empty:!1,name:r,type:a,upper:e,lower:o,additive:i}}const ri=tn,ii=mn,ai=ln,si=fn;var ci=Object.freeze(Object.defineProperty({__proto__:null,Array:$e,Core:tn,ChordDictionary:ai,PcSet:ii,ScaleDictionary:si,Tonal:ri,AbcNotation:pe,Chord:ho,ChordType:ln,Collection:Se,DurationValue:Io,Interval:bt,Key:Tr,Midi:Lo,Mode:kr,Note:E,Pcset:mn,Progression:Fr,Range:qr,RomanNumeral:hr,Scale:nt,ScaleType:fn,TimeSignature:ei,accToAlt:B,altToAcc:k,coordToInterval:H,coordToNote:z,decode:ot,deprecate:v,distance:R,encode:et,fillStr:x,interval:f,isNamed:q,isPitch:G,note:u,stepToLetter:vt,tokenizeInterval:Nt,tokenizeNote:rt,transpose:P},Symbol.toStringTag,{value:"Module"}));function zn(t,n,e){let[o,r]=nt.tokenize(t),{notes:i}=nt.get(`${o} ${r}`);if(i=i.map(b=>E.get(b).pc),n=Number(n),isNaN(n))throw new Error(`scale offset "${n}" not a number`);const{pc:a,oct:s=3}=E.get(e),c=i.indexOf(a);if(c===-1)throw new Error(`note "${e}" is not in scale "${t}"`);let l=c,m=s,d=a;const M=Math.sign(n);for(;Math.abs(l-c)0&&d[0]==="C"&&(m+=M)}return d+m}w.prototype._transpose=function(t){return this._withHap(n=>{const e=isNaN(Number(t))?String(t):bt.fromSemitones(t);if(typeof n.value=="number"){const o=typeof e=="string"?bt.semitones(e)||0:e;return n.withValue(()=>n.value+o)}return n.withValue(()=>E.simplify(E.transpose(n.value,e)))})};w.prototype._scaleTranspose=function(t){return this._withHap(n=>{if(!n.context.scale)throw new Error("can only use scaleTranspose after .scale");if(typeof n.value!="string")throw new Error("can only use scaleTranspose with notes");return n.withValue(()=>zn(n.context.scale,Number(t),n.value))})};w.prototype._scale=function(t){return this._withHap(n=>{let e=n.value;const o=Number(e);if(!isNaN(o)){let[r,i]=nt.tokenize(t);const{pc:a,oct:s=3}=E.get(r);e=zn(a+" "+i,o,a+s)}return n.withValue(()=>e).setContext(g(y({},n.context),{scale:t}))})};w.prototype.define("transpose",(t,n)=>n.transpose(t),{composable:!0,patternified:!0});w.prototype.define("scale",(t,n)=>n.scale(t),{composable:!0,patternified:!0});w.prototype.define("scaleTranspose",(t,n)=>n.scaleTranspose(t),{composable:!0,patternified:!0});var qn={},Dt={},K={};K.__esModule=!0;K.getBestVoicing=void 0;function mi(t){var n=t.chord,e=t.range,o=t.finder,r=t.picker,i=t.lastVoicing,a=o(n,e);return a.length?r(a,i):[]}K.getBestVoicing=mi;var ft={},Gn=Qn(ci),Q={};Q.__esModule=!0;Q.tokenizeChord=void 0;function ui(t){var n=(t||"").match(/^([A-G][b#]*)([^\/]*)[\/]?([A-G][b#]*)?$/);return n?n.slice(1):[]}Q.tokenizeChord=ui;ft.__esModule=!0;ft.voicingsInRange=void 0;var $=Gn,li=Dt,di=Q;function Mi(t,n,e){n===void 0&&(n=li.lefthand),e===void 0&&(e=["D3","A4"]);var o=(0,di.tokenizeChord)(t),r=o[0],i=o[1];if(!n[i])return[];var a=n[i].map(function(c){return c.split(" ")}),s=$.Range.chromatic(e);return a.reduce(function(c,l){var m=l.map(function(p){return $.Interval.substract(p,l[0])}),d=$.Note.transpose(r,l[0]),M=s.filter(function(p){return $.Note.chroma(p)===$.Note.chroma(d)}).filter(function(p){return $.Note.midi($.Note.transpose(p,m[m.length-1]))<=$.Note.midi(e[1])}).map(function(p){return $.Note.enharmonic(p,d)}),b=M.map(function(p){return m.map(function(pt){return $.Note.transpose(p,pt)})});return c.concat(b)},[])}ft.voicingsInRange=Mi;(function(t){var n=Y&&Y.__assign||function(){return n=Object.assign||function(s){for(var c,l=1,m=arguments.length;lPi({chord:t,dictionary:hi,range:e,picker:pi,lastVoicing:n}),D=w;D.prototype.fmapNested=function(t){return new D(n=>this.query(n).map(e=>Zn(t(e)).query(n).map(o=>new Jn(e.whole,e.part,o.value,o.context))).flat())};D.prototype.voicings=function(t){let n;return t!=null&&t.length||(t=["F3","A4"]),this.fmapNested(e=>(n=yi(e.value,n,t),Wn(...n)._withContext(()=>({locations:e.context.locations||[]}))))};D.prototype._rootNotes=function(t=2){return this.fmap(n=>{const[e,o]=n.match(/^([a-gA-G][b#]?).*$/);return o+t})};D.prototype.define("voicings",(t,n)=>n.voicings(t),{composable:!0});D.prototype.define("rootNotes",(t,n)=>n.rootNotes(t),{composable:!0,patternified:!0}); diff --git a/assets/index.ddbbce2d.js b/assets/index.8e1f8ae9.js similarity index 99% rename from assets/index.ddbbce2d.js rename to assets/index.8e1f8ae9.js index e677677b2..3d55fa746 100644 --- a/assets/index.ddbbce2d.js +++ b/assets/index.8e1f8ae9.js @@ -1 +1 @@ -var h=Object.defineProperty,q=Object.defineProperties;var g=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertySymbols;var y=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable;var m=(i,n,e)=>n in i?h(i,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[n]=e,c=(i,n)=>{for(var e in n||(n={}))y.call(n,e)&&m(i,e,n[e]);if(p)for(var e of p(n))b.call(n,e)&&m(i,e,n[e]);return i},a=(i,n)=>q(i,g(n));import{P as o,z as _}from"./index.4c53df7b.js";function S(i){if(!/^[1-9]+[0-9]*edo$/.test(i))throw new Error('not an edo scale: "'+i+'"');const[n,e]=i.match(/^([1-9]+[0-9]*)edo$/);return Array.from({length:e},(r,s)=>Math.pow(2,s/e))}const f={"12ji":[1/1,16/15,9/8,6/5,5/4,4/3,45/32,3/2,8/5,5/3,16/9,15/8]};function v(i,n){return n.map(e=>e*i)}const w=220;function k(i,n){if(typeof i=="string")if(/^[1-9]+[0-9]*edo$/.test(i))i=S(i);else if(f[i])i=f[i];else throw new Error('unknown scale name: "'+i+'"');return i=v(w,i),n?i.filter((e,r)=>n.includes(r)):i}function l(i,n,e=0){const r=_(e+n,i.length),s=Math.floor(n/i.length);return i[r]*Math.pow(2,s)}o.prototype._xen=function(i,n){return this._asNumber()._withHap(e=>{const r=k(i);n=n||r.length;const s=l(r,e.value);return e.withValue(()=>s).setContext(a(c({},e.context),{type:"frequency"}))})};o.prototype.tuning=function(i){return this._asNumber()._withHap(n=>{const e=l(i,n.value);return n.withValue(()=>e).setContext(a(c({},n.context),{type:"frequency"}))})};o.prototype.define("xen",(i,n)=>n.xen(i),{composable:!0,patternified:!0});function t(){this.scale=[],this.mode={output:"frequency",input:"step"},this.etmajor=[261.62558,293.664764,329.627563,349.228241,391.995422,440,493.883301,523.25116],this.tonic=440}t.prototype.tonicize=function(i){this.tonic=i};t.prototype.note=function(i,n){var e;return this.mode.output=="frequency"?e=this.frequency(i,n):this.mode.output=="ratio"?e=this.ratio(i,n):this.mode.output=="MIDI"?e=this.MIDI(i,n):e=this.frequency(i,n),e};t.prototype.frequency=function(i,n){(this.mode.input=="midi"||this.mode.input=="MIDI")&&(this.stepIn+=60);var e=Math.floor(i/this.scale.length);n&&(e+=n);for(var r=i%this.scale.length;r<0;)r+=this.scale.length;var s=this.tonic*this.scale[r];return s=s*Math.pow(2,e),s=Math.floor(s*1e11)/1e11,s};t.prototype.ratio=function(i,n){(this.mode.input=="midi"||this.mode.input=="MIDI")&&(this.stepIn+=60);var e=Math.floor(i/this.scale.length);n&&(e+=n);var r=i%this.scale.length,s=Math.pow(2,e)*this.scale[r];return s=Math.floor(s*1e11)/1e11,s};t.prototype.MIDI=function(i,n){var e=this.frequency(i,n),r=69+12*Math.log(e/440)/Math.log(2);return r=Math.floor(r*1e9)/1e9,r};t.prototype.loadScale=function(i){var n=u[i].frequencies;this.scale=[];for(var e=0;e[1, 1, -1]->[0, 1, -1]->[0, 0, -1]->[0, 0, 0]->[0, -1, 0],[0, -1, 1]->[0, -2, 1]->[-1, -2, 1]"},breedt1:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,326.6631048533,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,489.99465727995,523.2511306012],description:"Graham Breed's 1/4 P temperament, TL 10-06-99"},breedt2:{frequencies:[261.6255653006,276.37000081643,293.53214922797,310.91625060765,328.43856194079,349.78078158391,368.4933346061,392.4383479509,414.55500101742,439.10654054756,466.37437567834,492.65784266492,523.2511306012],description:"Graham Breed's 1/5 P temperament, TL 10-06-99"},breedt3:{frequencies:[261.6255653006,276.55731914056,293.33333347996,311.12698372208,328.88393162803,350.01785633742,368.74309237173,392.4383479509,414.83597850347,438.51190905657,466.69047534984,491.65745674141,523.2511306012],description:"Graham Breed's other 1/4 P temperament, TL 10-06-99"},brown:{frequencies:[261.6255653006,272.52663052146,275.62199471997,275.93321340298,279.38237857051,287.10624449997,290.69507255622,291.02331101095,294.32876096318,306.24666079997,306.59245933664,310.07474405997,310.42486507835,322.99452506247,327.03195662575,331.11985608357,344.52749339997,344.91651675372,348.83408706747,349.22797321314,363.36884069528,367.49599295996,367.91095120397,372.50983809402,382.80832599996,387.59343007496,388.03108134794,392.4383479509,408.78994578219,413.43299207996,413.89982010446,430.65936674996,436.04260883433,436.53496651643,441.49314144476,459.36999119996,459.88868900496,465.11211608996,465.63729761752,484.4917875937,489.99465727995,490.54793493862,496.67978412536,516.79124009995,517.37477513058,523.2511306012],description:"Tuning of Colin Brown's Voice Harmonium, Glasgow. Helmholtz/Ellis p. 470-473"},bruder:{frequencies:[261.6255653006,276.38325105256,293.66476791741,310.22971009486,327.53979283172,349.02656754477,368.60786575306,391.65594491223,414.34624765043,439.23819834286,465.62553897253,491.60634075178,523.2511306012],description:"Ignaz Bruder organ temperament (1829) according to P. Vier"},burma3:{frequencies:[261.6255653006,287.71029735626,317.68827763215,350.39147881787,389.32370520689,429.81331927092,476.14308821464,523.2511306012],description:"Burmese scale, von Hornbostel"},"burt-forks":{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Warren Burt 19-tone Forks. Interval 5(3): pp. 13+23 Winter 1986-87"},burt1:{frequencies:[261.6255653006,272.09058791262,283.42769574232,295.75063903546,309.19384990071,340.11323489078,358.01393146398,377.90359432309,415.52295665389,425.14154361347,453.48431318771,485.87604984397,523.2511306012],description:"W. Burt's 13diatsub #1"},burt10:{frequencies:[261.6255653006,265.11390617127,268.69652652494,272.3773008609,276.16031892841,355.06326719367,368.21375857121,382.37582620857,386.08821287079,389.87339142835,393.73352401674,397.67085925691,523.2511306012],description:"W. Burt's 19enhsub #10"},burt11:{frequencies:[261.6255653006,344.24416486921,347.6866065179,351.12904816659,354.57148981529,358.01393146398,371.78369805875,385.55346465352,495.71159741166,502.59648070905,509.48136400643,516.36624730382,523.2511306012],description:"W. Burt's 19enhharm #11"},burt12:{frequencies:[261.6255653006,302.93486508491,316.70463167967,330.47439827444,344.24416486921,358.01393146398,371.78369805875,385.55346465352,440.63253103259,468.17206422213,495.71159741166,509.48136400643,523.2511306012],description:"W. Burt's 19diatharm #12"},burt13:{frequencies:[261.6255653006,273.51763645063,286.54228580542,293.53112204458,300.86940009569,334.29933343966,353.96400011258,376.08675011961,401.15920012759,429.81342870813,445.73244458621,462.87600014722,523.2511306012],description:"W. Burt's 23diatsub #13"},burt14:{frequencies:[261.6255653006,264.50057151269,267.43946675172,270.4444045804,273.51763645063,334.29933343966,353.96400011258,376.08675011961,382.05638107389,388.21858076863,394.58281979763,401.15920012759,523.2511306012],description:"W. Burt's 23enhsub #14"},burt15:{frequencies:[261.6255653006,341.25073734861,346.93824963775,352.6257619269,358.31327421604,364.00078650518,386.75083566176,409.50088481833,500.50108144463,506.18859373377,511.87610602291,517.56361831206,523.2511306012],description:"W. Burt's 23enhharm #15"},burt16:{frequencies:[261.6255653006,295.75063903546,307.12566361375,318.50068819203,341.25073734861,364.00078650518,386.75083566176,409.50088481833,455.00098313148,466.37600770977,477.75103228805,500.50108144463,523.2511306012],description:"W. Burt's 23diatharm #16"},burt17:{frequencies:[261.6255653006,262.27760655527,262.77528702311,280.51080915002,281.04308772525,281.33584094163,286.12102533302,286.66394947976,306.91182648178,308.56189006502,309.14739649778,336.61297098002,337.2517052703,337.60300912996,338.42271813583,339.41807907152,363.01398831179,369.18841978454,370.27426807802,396.01525997649,398.14437427744,399.31538714296,403.93556517602,406.10726176299,434.33931739357,434.79175418253,435.61678597414,437.95881170519,475.21831197179,476.86837555503,477.77324913293,478.27092960078,479.17846457156,521.20718087229,521.75010501903,522.74014316897,523.2511306012],description:`W. Burt's "2 out of 3,5,11,17,31 dekany" CPS with 1/1=3/1. 1/1 vol. 10(1) '98`},burt18:{frequencies:[261.6255653006,268.26840191956,269.80136421624,270.50397193556,275.42222597075,281.04308772525,286.15296204753,295.09524211152,300.46061014991,306.59245933664,309.14739649778,314.76825825228,321.92208230347,324.60476632267,337.2517052703,343.38355445704,344.27778246344,354.11429053382,357.69120255941,367.91095120397,370.97687579734,375.57576268738,393.46032281536,404.70204632437,413.13333895612,421.56463158788,429.2294430713,432.80635509689,449.66894036041,463.72109474667,472.15238737843,490.54793493862,491.82540351919,500.76768358318,505.87755790546,515.07533168556,523.2511306012],description:`W. Burt's "2 out of 1,3,5,7,11 dekany" CPS with 1/1=1/1. 1/1 vol. 10(1) '98`},burt19:{frequencies:[261.6255653006,268.26840191956,286.15296204753,294.32876096318,300.46061014991,306.59245933664,321.92208230347,327.03195662575,343.38355445704,357.69120255941,367.91095120397,375.57576268738,392.4383479509,400.61414686654,408.78994578219,429.2294430713,457.84473927605,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:`W. Burt's "2 out of 2,3,4,5,7 dekany" CPS with 1/1=1/1. 1/1 vol. 10(1) '98`},burt2:{frequencies:[261.6255653006,264.16561933264,266.75547834571,269.39662169567,272.09058791262,340.11323489078,344.41846571218,348.83408706747,353.36439988652,358.01393146398,412.25846653428,485.87604984397,523.2511306012],description:"W. Burt's 13enhsub #2"},burt20:{frequencies:[261.6255653006,269.10058145205,279.06726965397,279.38237857051,294.32876096318,298.00787047521,330.74639366397,335.25885428462,367.91095120397,376.74081403286,412.06026534844,418.60090448096,523.2511306012],description:'Warren Burt tuning for "Commas" (1993) 1/1=263. XH 16'},burt3:{frequencies:[261.6255653006,281.75060878526,332.06321749692,382.37582620857,387.40708707973,392.4383479509,397.46960882207,402.50086969323,503.12608711654,508.1573479877,513.18860885887,518.21986973003,523.2511306012],description:"W. Burt's 13enhharm #3"},burt4:{frequencies:[261.6255653006,281.75060878526,301.87565226992,322.00069575458,342.12573923925,362.25078272391,382.37582620857,402.50086969323,442.75095666255,462.87600014722,483.00104363188,503.12608711654,523.2511306012],description:"W. Burt's 13diatharm #4, see his post 3/30/94 in Tuning Digest #57"},burt5:{frequencies:[261.6255653006,277.97716313189,296.50897400735,317.68818643644,342.12573923925,277.97716313189,386.75083566176,404.33041910093,423.58424858192,444.76346101102,468.17206422213,494.18162334558,523.2511306012],description:"W. Burt's 17diatsub #5"},burt6:{frequencies:[261.6255653006,265.53042448419,269.55361273395,273.7005913914,277.97716313189,370.63621750918,386.75083566176,404.33041910093,408.97789518255,413.73345210327,418.60090448096,423.58424858192,523.2511306012],description:"W. Burt's 17enhsub #6"},burt7:{frequencies:[261.6255653006,323.18452184192,327.03195662575,330.87939140958,334.72682619341,338.57426097725,353.96400011258,369.35373924791,492.47165233054,500.16652189821,507.86139146587,515.55626103354,523.2511306012],description:"W. Burt's 17enhharm #7"},burt8:{frequencies:[261.6255653006,277.01530443593,292.40504357126,307.79478270659,323.18452184192,338.57426097725,353.96400011258,369.35373924791,400.13321751856,430.91269578922,461.69217405988,492.47165233054,523.2511306012],description:"W. Burt's 17diatharm #8"},burt9:{frequencies:[261.6255653006,268.69652652494,276.16031892841,292.40504357126,310.68035879446,355.06326719367,368.21375857121,382.37582620857,397.67085925691,414.24047839262,432.2509339749,451.89870370104,523.2511306012],description:"W. Burt's 19diatsub #9"},burt_fibo:{frequencies:[261.6255653006,277.97716313189,294.32876096318,311.70233365892,327.03195662575,343.38355445704,363.82305174615,385.28452389971,392.4383479509,425.14154361347,449.66894036041,476.24028683625,523.2511306012],description:'Warren Burt, 3/2+5/3+8/5+etc. "Recurrent Sequences", 2002'},burt_fibo23:{frequencies:[261.6255653006,267.05480676802,277.97716313189,282.81557538079,294.32876096318,299.5065008038,311.70233365892,327.03195662575,330.09788121912,343.38355445704,349.5792770728,363.82305174615,370.21039464899,385.28452389971,392.4383479509,408.02346463385,425.14154361347,432.10374737758,449.66894036041,457.60521391719,476.24028683625,484.61169812829,504.34459560877,523.2511306012],description:'Warren Burt, 23-tone Fibonacci scale. "Recurrent Sequences", 2002'},burt_primes:{frequencies:[261.6255653006,267.75741448733,273.88926367407,277.97716313189,280.0211128608,284.10901231862,290.24086150535,298.416660421,302.50455987882,304.54850960773,308.63640906555,310.68035879446,320.90010743902,322.94405716793,327.03195662575,333.16380581248,335.20775554139,339.29565499922,341.33960472813,351.55935337268,353.60330310159,359.73515228832,363.82305174615,365.86700147506,369.95490093288,376.08675011961,384.26254903526,390.39439822199,392.4383479509,394.48229767981,396.52624740872,402.65809659545,406.74599605328,412.87784524001,421.05364415565,425.14154361347,431.27339280021,433.31734252912,437.40524198694,445.58104090258,455.80078954714,457.84473927605,461.93263873387,463.97658846278,468.0644879206,474.19633710734,476.24028683625,482.37213602298,488.50398520971,492.59188466754,498.72373385427,506.89953276991,513.03138195665,519.16323114338,523.2511306012],description:'Warren Burt, primes until 251. "Some Numbers", Dec. 2002'},bushmen:{frequencies:[261.6255653006,347.0163224393,394.26624244126,453.9405988926,523.2511306012],description:"Observed scale of South-African bushmen, almost (4 notes) equal pentatonic"},dan_semantic:{frequencies:[261.6255653006,272.52663052146,275.62199471997,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,322.99452506247,327.03195662575,331.11985608357,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,397.34382730029,408.78994578219,413.43299207996,418.60090448096,430.65936674996,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.67978412536,516.79124009995,523.2511306012],description:'The Semantic Scale, from Alain Dani\xEF\xBF\xBDlou: "S\xEF\xBF\xBDmantique Musicale" (1967)'},danielou5_53:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.62199471997,279.06726965397,282.55561052465,285.76488412567,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,479.0507177135,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"Dani\xEF\xBF\xBDlou's Harmonic Division in 5-limit, symmetrized"},danielou_53:{frequencies:[261.6255653006,264.89588486686,267.43946675172,272.52663052146,275.62199471997,279.06726965397,282.55561052465,287.78812183066,290.69507255622,294.32876096318,297.67175429757,301.87565226992,306.59245933664,310.07474405997,313.95067836072,318.93402246168,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,479.64686971777,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"Dani\xEF\xBF\xBDlou's Harmonic Division of the Octave, see p. 153"},darreg:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"This set of 19 ratios in 5-limit JI is for his megalyra family"},darreg_ennea:{frequencies:[261.6255653006,269.29177952703,277.18263097687,293.66476791741,349.22823143301,391.99543598175,403.48177901006,415.30469757995,440,523.2511306012],description:"Ivor Darreg's Mixed Enneatonic, a mixture of chromatic and enharmonic"},darreg_genus:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,348.83408706747,392.4383479509,406.97310157871,418.60090448096,436.04260883433,523.2511306012],description:"Ivor Darreg's Mixed JI Genus (Archytas Enh, Ptolemy Soft Chrom, Didymos Chrom"},darreg_genus2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,348.83408706747,392.4383479509,406.97310157871,418.60090448096,441.49314144476,523.2511306012],description:"Darreg's Mixed JI Genus 2 (Archytas Enharmonic and Chromatic Genera)"},david11:{frequencies:[261.6255653006,269.80136421624,274.70684356563,285.40970760065,294.32876096318,305.22982618403,314.76825825228,327.03195662575,332.97799220076,343.38355445704,359.73515228832,366.27579142084,374.60024122586,392.4383479509,406.97310157871,419.69101100305,428.11456140098,441.49314144476,457.84473927605,479.64686971777,490.54793493862,499.46698830115,523.2511306012],description:"11-limit system from Gary David, 1967"},david7:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,336.37572681506,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,488.36772189445,523.2511306012],description:"Gary David's Constant Structure, 1967. A mode of Fokker's 7-limit scale"},ddimlim1:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"First 27/25&2048/1875 scale"},de_caus:{frequencies:[261.6255653006,272.52663052146,290.69507255622,306.59245933664,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"De Caus (a mode of Ellis's duodene) (1615)"},degung1:{frequencies:[261.6255653006,286.1303811777,319.28416942365,390.63652710512,420.90734643474,523.2511306012],description:"Gamelan Degung, Kabupaten Sukabumi. 1/1=363 Hz"},degung2:{frequencies:[261.6255653006,276.67939184371,325.99375993805,390.36201910543,415.27879033283,523.2511306012],description:"Gamelan Degung, Kabupaten Bandung. 1/1=252 Hz"},degung3:{frequencies:[261.6255653006,282.83850205216,320.55017368416,393.28023705203,426.95140008307,523.2511306012],description:"Gamelan Degung, Kabupaten Sumedang. 1/1=388.5 Hz"},degung4:{frequencies:[261.6255653006,284.6485709981,319.18312009646,379.88037698982,415.46137490477,523.2511306012],description:"Gamelan Degung, Kasepuhan Cheribon. 1/1=250 Hz"},degung5:{frequencies:[261.6255653006,284.24274449773,317.86283634652,388.77066331187,430.33748813761,523.2511306012],description:"Gamelan Degung, Kanoman Cheribon. 1/1=428 Hz"},degung6:{frequencies:[261.6255653006,273.29426590363,298.47415715355,379.54129348313,409.02013274169,523.2511306012],description:"Gamelan Degung, Kacherbonan Cheribon. 1/1=426 Hz"},dekany:{frequencies:[261.6255653006,299.7792935736,305.22982618403,327.03195662575,359.73515228832,381.53728273004,419.69101100305,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"2)5 Dekany 1.3.5.7.11 (1.3 tonic)"},dekany2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,348.83408706747,358.80077526939,398.6675280771,418.60090448096,448.50096908674,465.11211608996,523.2511306012],description:"3)5 Dekany 1.3.5.7.9 (1.3.5.7.9 tonic)"},dekany3:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,343.38355445704,381.53728273004,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"2)5 Dekany 1.3.5.7.9 and 3)5 Dekany 1 1/3 1/5 1/7 1/9"},dekany4:{frequencies:[261.6255653006,270.96933548991,288.48890459486,310.68035879446,321.77608589426,355.06326719367,425.14154361347,440.3251701711,474.19633710734,485.87604984397,523.2511306012],description:"2)5 Dekany 1.7.13.19.29 (1.7 tonic)"},dekany_union:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,366.27579142084,381.53728273004,392.4383479509,412.06026534844,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Union of 2)5 and 3)5 [ 1 3 5 7 9] dekanies"},dent:{frequencies:[261.6255653006,276.73939277812,293.41671964988,311.13637945111,328.33487278761,349.18153137729,368.9858570375,391.91718148616,414.84850593482,438.82216331296,465.92281947955,491.98114271667,523.2511306012],description:"Tom Dent, well temperament with A=421 Hz. Integer Hz beat rates from A"},dent2:{frequencies:[261.6255653006,276.57667301797,293.18838124587,310.79781949647,328.55897053596,349.10502918563,369.05532299592,391.67735584266,414.54302837239,438.92977277749,465.83490899549,492.45596147139,523.2511306012],description:"Tom Dent, well-temperament, 2/32 and 5/32 comma. TL 3 & 5-9-2005"},dent3:{frequencies:[261.6255653006,276.38325105256,293.15632631094,310.94732162256,328.48713220126,349.22823143301,368.7143392539,391.76907592069,414.58565256441,438.73106346722,466.16376151809,492.17459484008,523.2511306012],description:'Tom Dent, Bach harpsichord "sine wave" temperament, TL 10-10-2005'},deporcy:{frequencies:[261.6255653006,272.52663052146,286.15296204753,299.00064605783,313.95067836072,327.03195662575,348.83408706747,358.80077526939,381.53728273004,392.4383479509,418.60090448096,436.04260883433,457.84473927605,478.40103369253,502.32108537715,523.2511306012],description:"A 15-note chord-based detempering of 7-limit porcupine"},diab19_612:{frequencies:[261.6255653006,267.01398215014,280.33982809972,299.03492334906,305.19382000629,313.95883772326,320.42510414137,327.02455105776,348.83292260574,366.24210002542,373.7851897098,392.43965797471,418.61038382265,427.23204601759,436.03127668087,448.5538823653,457.79225819026,488.32116993744,512.69177642068,523.2511306012],description:"diab19a in 612-tET"},diab19_72:{frequencies:[261.6255653006,266.71173418545,279.86396690685,299.37379946195,305.19382000629,314.13668154225,320.24370022528,326.46944327063,349.22823143301,366.44956000397,373.57357677338,391.99543598175,419.32216217931,427.47405410759,435.78442404634,448.5538823653,457.27406033445,489.15147723638,513.27277840175,523.2511306012],description:"diab19a in 72-tET"},diablack:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,331.11985608357,372.08969287196,392.4383479509,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"Unique 256/245&2048/2025 Fokker block"},diachrome1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"First 25/24&2048/2025 scale"},diacycle13:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,307.79478270659,317.12189733406,327.03195662575,337.58137458142,348.83408706747,360.86284869048,373.75080757229,387.59343007496,402.50086969323,413.09299784305,424.25767346043,436.04260883433,448.50096908674,461.69217405988,475.68284600109,490.54793493862,506.37206187213,523.2511306012],description:"Diacycle on 20/13, 13/10; there are also nodes at 3/2, 4/3; 13/9, 18/13"},diaddim1:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,334.88072358477,344.91651675372,357.20610515709,367.91095120397,392.4383479509,418.60090448096,446.50763144636,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"First 2048/2025&2048/1875 scale"},dialim1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,348.83408706747,353.19451315581,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"First 27/25&2048/2025 scale"},diamisty:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,413.89982010446,436.53496651643,470.39487098876,496.11959049595,523.2511306012],description:"Diamisty scale 2048/2025 and 67108864/66430125"},diamond11a:{frequencies:[261.6255653006,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,523.2511306012],description:"11-limit Diamond with added 16/15 & 15/8, Zoomoozophone tuning: 1/1 = 392 Hz"},diamond11ak:{frequencies:[261.6255653006,279.72330032405,285.63317938628,287.78812183066,290.69507255622,293.86839138568,299.07491977616,305.39295512204,314.19649759716,319.76457981184,326.52043447049,333.41680553884,335.93301933283,349.10721912206,359.17247822875,366.75848641051,373.2589099097,381.14243472333,392.13131479202,407.50942884268,410.58480125643,419.25667855894,428.11456140098,435.70146034294,448.26139746089,457.73103588952,465.84075338014,470.92601754108,475.68284600109,479.27160679251,489.39746055879,523.2511306012],description:"microtempered version of diamond11a, Dave Keenan TL 11-1-2000, 225/224&385/384"},diamond11at:{frequencies:[261.6255653006,279.83704120119,285.33574350137,287.98268367985,290.84948650387,293.82121114493,299.2738827313,305.22380787491,314.19079532693,320.23980272009,326.48518221507,332.71524733285,336.02719554531,349.1122100506,359.53680125564,366.52331521885,373.4984028396,380.75621844446,392.12570885984,407.39521875769,411.45055399509,419.30194782174,427.47925671618,435.70936791853,448.50981249085,457.42672761267,465.91555560021,470.67599975252,475.36147343465,479.7712027167,489.19854301666,523.2511306012],description:"microtempered version of diamond11a, OdC"},diamond11map:{frequencies:[195.99771799087,228.66400432268,261.33029065449,293.99657698631,326.66286331812,359.32914964993,391.99543598174,457.32800864536,522.66058130899,587.99315397261,653.32572663623,718.65829929986,213.81569235368,249.45164107929,285.0875898049,320.72353853051,356.35948725613,391.99543598174,427.63138470735,498.90328215858,570.1751796098,641.44707706103,712.71897451225,783.99087196348,235.19726158904,274.39680518722,313.59634878539,352.79589238357,391.99543598174,431.19497957991,470.39452317809,548.79361037444,627.19269757078,705.59178476713,783.99087196348,862.38995915983,261.33029065449,304.88533909691,348.44038753932,391.99543598174,435.55048442416,479.10553286657,522.66058130899,609.77067819382,696.88077507865,783.99087196348,871.10096884831,958.21106573314,293.99657698631,342.99600648402,391.99543598174,440.99486547946,489.99429497718,538.99372447489,587.99315397261,685.99201296804,783.99087196348,881.98973095892,979.98858995435,1077.98744894978,335.99608798435,391.99543598174,447.99478397913,503.99413197652,559.99347997391,615.99282797131,671.9921759687,783.99087196348,895.98956795826,1007.98826395305,1119.98695994783,1231.98565594261,783.99087196348],description:"11-limit diamond on a 'centreless' map"},diamond15:{frequencies:[261.6255653006,269.80136421624,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.87565226992,305.22982618403,309.19384990071,310.07474405997,313.95067836072,318.85615771011,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,343.38355445704,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,367.91095120397,372.08969287196,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,398.6675280771,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,429.33426100611,436.04260883433,441.49314144476,442.75095666255,448.50096908674,453.48431318771,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,507.3950357345,523.2511306012],description:"15-limit Diamond + 2nd ratios. See Novaro, 1927, Sistema Natural..."},diamond17:{frequencies:[261.6255653006,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,322.00069575458,327.03195662575,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,366.27579142084,369.35373924791,370.63621750918,373.75080757229,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,418.60090448096,425.14154361347,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,523.2511306012],description:"17-limit Diamond"},diamond17a:{frequencies:[261.6255653006,277.01530443593,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,494.18162334558,523.2511306012],description:"17-limit, +9 Diamond"},diamond19:{frequencies:[261.6255653006,275.39533189537,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,292.40504357126,299.00064605783,302.93486508491,305.22982618403,307.79478270659,309.19384990071,310.68035879446,313.95067836072,317.68818643644,322.00069575458,327.03195662575,330.47439827444,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,355.06326719367,358.01393146398,359.73515228832,366.27579142084,369.35373924791,370.63621750918,373.75080757229,380.54627680087,382.37582620857,385.55346465352,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,414.24047839262,418.60090448096,425.14154361347,430.91269578922,436.04260883433,440.63253103259,442.75095666255,444.76346101102,448.50096908674,451.89870370104,457.84473927605,468.17206422213,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,497.08857407114,523.2511306012],description:"19-limit Diamond"},diamond7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,523.2511306012],description:"7-limit Diamond, also double-tie circular mirroring of 4:5:6:7"},diamond9:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"9-limit Diamond"},diamond_chess:{frequencies:[261.6255653006,299.00064605783,313.95067836072,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,436.04260883433,457.84473927605,523.2511306012],description:"9-limit chessboard pattern diamond. OdC"},diamond_chess11:{frequencies:[261.6255653006,287.78812183066,299.00064605783,313.95067836072,319.76457981184,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,428.11456140098,436.04260883433,457.84473927605,475.68284600109,523.2511306012],description:"11-limit chessboard pattern diamond. OdC"},diamond_dup:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Two 7-limit diamonds 3/2 apart"},diamond_mod:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"13-tone Octave Modular Diamond, based on Archytas's Enharmonic"},diamond_tetr:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,339.14425131559,348.83408706747,358.80077526939,523.2511306012],description:"Tetrachord Modular Diamond based on Archytas's Enharmonic"},diaphonic_10:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,336.37572681506,362.25078272391,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"10-tone Diaphonic Cycle"},diaphonic_12:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,323.18452184192,343.38355445704,366.27579142084,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"12-tone Diaphonic Cycle, conjunctive form on 3/2 and 4/3"},diaphonic_12a:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,323.18452184192,343.38355445704,366.27579142084,385.55346465352,406.97310157871,430.91269578922,457.84473927605,488.36772189445,523.2511306012],description:"2nd 12-tone Diaphonic Cycle, conjunctive form on 10/7 and 7/5"},diaphonic_5:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:"D5-tone Diaphonic Cycle"},diaphonic_7:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"7-tone Diaphonic Cycle, disjunctive form on 4/3 and 3/2"},diaschismic:{frequencies:[261.6255653006,266.61097723855,278.05603152599,283.35453458855,295.51835494038,301.14961170579,314.07733767684,320.06224556188,333.80185153667,340.16262034629,354.76509561975,369.99442271164,377.04485988831,393.23061088369,400.72382577504,417.92606548687,425.88986517773,444.17243057662,452.63636847719,472.06710558841,481.06259110609,501.71360968203,523.2511306012],description:"diaschismic temperament, g=105.446531, p=600, 5-limit"},diat13:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,392.4383479509,418.60090448096,483.00104363188,523.2511306012],description:"This genus is from K.S's diatonic Hypodorian harmonia"},diat15:{frequencies:[261.6255653006,301.87565226992,327.03195662575,356.76213450082,373.75080757229,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Tonos-15 Diatonic and its own trite synemmenon Bb"},diat15_inv:{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,366.27579142084,383.71749577421,418.60090448096,453.48431318771,523.2511306012],description:"Inverted Tonos-15 Harmonia, a harmonic series from 15 from 30."},diat17:{frequencies:[261.6255653006,296.50897400735,342.12573923925,370.63621750918,386.75083566176,404.33041910093,444.76346101102,494.18162334558,523.2511306012],description:"Tonos-17 Diatonic and its own trite synemmenon Bb"},diat19:{frequencies:[261.6255653006,276.16031892841,310.68035879446,355.06326719367,368.21375857121,382.37582620857,414.24047839262,451.89870370104,523.2511306012],description:"Tonos-19 Diatonic and its own trite synemmenon Bb"},diat21:{frequencies:[261.6255653006,289.16509849014,305.22982618403,343.38355445704,366.27579142084,392.4383479509,422.62591317789,457.84473927605,523.2511306012],description:"Tonos-21 Diatonic and its own trite synemmenon Bb"},diat21_inv:{frequencies:[261.6255653006,299.00064605783,323.91736656265,348.83408706747,373.75080757229,398.6675280771,448.50096908674,473.41768959156,523.2511306012],description:"Inverted Tonos-21 Harmonia, a harmonic series from 21 from 42."},diat23:{frequencies:[261.6255653006,286.54228580542,300.86940009569,334.29933343966,353.96400011258,376.08675011961,429.81342870813,462.87600014722,523.2511306012],description:"Tonos-23 Diatonic and its own trite synemmenon Bb"},diat25:{frequencies:[261.6255653006,297.30177875068,327.03195662575,363.36884069528,384.74347838324,408.78994578219,467.18850946536,503.12608711654,523.2511306012],description:"Tonos-25 Diatonic and its own trite synemmenon Bb"},diat27:{frequencies:[261.6255653006,294.32876096318,336.37572681506,353.19451315581,371.78369805875,392.4383479509,441.49314144476,504.56359022259,523.2511306012],description:"Tonos-27 Diatonic and its own trite synemmenon Bb"},diat27_inv:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,377.90359432309,387.59343007496,406.97310157871,465.11211608996,523.2511306012],description:"Inverted Tonos-27 Harmonia, a harmonic series from 27 from 54"},diat29:{frequencies:[261.6255653006,291.81313052759,316.13089140489,344.87006335079,361.29244731988,379.35706968587,421.50785520652,474.19633710734,523.2511306012],description:"Tonos-29 Diatonic and its own trite synemmenon Bb"},diat31:{frequencies:[261.6255653006,289.65687586852,311.93817401225,337.93302184661,352.6257619269,368.65420565085,405.51962621593,450.57736246214,523.2511306012],description:"Tonos-31 Diatonic. The disjunctive and conjunctive diatonic forms are the same"},diat33:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,375.37581108347,392.4383479509,431.68218274599,479.64686971777,523.2511306012],description:"Tonos-33 Diatonic. The conjunctive form is 23 (Bb instead of B) 20 18 33/2"},diat_chrom:{frequencies:[261.6255653006,280.31310567921,301.87565226992,348.83408706747,392.4383479509,420.46965851882,452.81347840488,523.2511306012],description:"Diatonic- Chromatic, on the border between the chromatic and diatonic genera"},diat_dies2:{frequencies:[261.6255653006,266.71168334607,311.12698372208,349.22823143301,391.99543598175,399.61600264311,466.16376151809,523.2511306012],description:"Dorian Diatonic, 2 part Diesis"},diat_dies5:{frequencies:[261.6255653006,274.52693220706,311.12698372208,349.22823143301,391.99543598175,411.32564531909,466.16376151809,523.2511306012],description:"Dorian Diatonic, 5 part Diesis"},diat_enh:{frequencies:[261.6255653006,269.29177952703,311.12698372208,349.22823143301,391.99543598175,403.48177901006,466.16376151809,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode"},diat_enh2:{frequencies:[261.6255653006,269.29177952703,302.26980244078,349.22823143301,391.99543598175,403.48177901006,452.89298412314,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode 3 + 12 + 15 parts"},diat_enh3:{frequencies:[261.6255653006,302.26980244078,311.12698372208,349.22823143301,391.99543598175,452.89298412314,466.16376151809,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode, 15 + 3 + 12 parts"},diat_enh4:{frequencies:[261.6255653006,302.26980244078,339.28638158975,349.22823143301,391.99543598175,452.89298412314,508.3551866238,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode, 15 + 12 + 3 parts"},diat_enh5:{frequencies:[261.6255653006,293.66476791741,339.28638158975,349.22823143301,391.99543598175,440,508.3551866238,523.2511306012],description:"Dorian Mode, 12 + 15 + 3 parts"},diat_enh6:{frequencies:[261.6255653006,293.66476791741,302.26980244078,349.22823143301,391.99543598175,440,452.89298412314,523.2511306012],description:"Dorian Mode, 12 + 3 + 15 parts"},diat_eq:{frequencies:[261.6255653006,288.06466200271,317.1754314895,349.22823143301,391.99543598175,431.60932167676,475.22619361214,523.2511306012],description:"Equal Diatonic, Islamic form, similar to 11/10 x 11/10 x 400/363"},diat_eq2:{frequencies:[261.6255653006,287.78812183066,317.12189733406,348.83408706747,392.4383479509,431.68218274599,475.68284600109,523.2511306012],description:"Equal Diatonic, 11/10 x 400/363 x 11/10"},diat_gold:{frequencies:[261.6255653006,292.38332274669,326.75708630452,349.99258496952,391.13935185123,437.1232727958,488.51296691354,523.2511306012],description:"Diatonic scale with ratio between whole and half tone the Golden Section"},diat_hemchrom:{frequencies:[261.6255653006,273.20871865617,311.12698372208,349.22823143301,391.99543598175,409.35055662695,466.16376151809,523.2511306012],description:"Diat. + Hem. Chrom. Diesis, Another genus of Aristoxenos, Dorian Mode"},diat_smal:{frequencies:[261.6255653006,299.00064605783,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:'"Smallest number" diatonic scale'},diat_sofchrom:{frequencies:[261.6255653006,271.8968348557,311.12698372208,349.22823143301,391.99543598175,407.38495184466,466.16376151809,523.2511306012],description:"Diat. + Soft Chrom. Diesis, Another genus of Aristoxenos, Dorian Mode"},diat_soft:{frequencies:[261.6255653006,274.52693220706,302.26980244078,349.22823143301,391.99543598175,411.32564531909,452.89298412314,523.2511306012],description:"Soft Diatonic genus 5 + 10 + 15 parts"},diat_soft2:{frequencies:[261.6255653006,281.2143451833,302.26980244078,349.22823143301,391.99543598175,421.34544350737,452.89298412314,523.2511306012],description:"Soft Diatonic genus with equally divided Pyknon; Dorian Mode"},diat_soft3:{frequencies:[261.6255653006,281.2143451833,324.90175210669,349.22823143301,391.99543598175,421.34544350737,486.80259447109,523.2511306012],description:"New Soft Diatonic genus with equally divided Pyknon; Dorian Mode; 1:1 pyknon"},diat_soft4:{frequencies:[261.6255653006,302.26980244078,324.90175210669,349.22823143301,391.99543598175,452.89298412314,486.80259447109,523.2511306012],description:"New Soft Diatonic genus with equally divided Pyknon; Dorian Mode; 1:1 pyknon"},dicot:{frequencies:[261.6255653006,270.35822989652,294.32876096318,320.42456924675,331.11985608357,360.47764004221,392.4383479509,405.53734464206,441.49314144476,480.63685362987,523.2511306012],description:"Dicot temperament, g=350.9775, 5-limit"},didy_chrom:{frequencies:[261.6255653006,279.06726965397,290.69507255622,348.83408706747,392.4383479509,418.60090448096,436.04260883433,523.2511306012],description:"Didymus Chromatic"},didy_chrom1:{frequencies:[261.6255653006,279.06726965397,334.88072358477,348.83408706747,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Permuted Didymus Chromatic"},didy_chrom2:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,470.92601754108,490.54793493862,523.2511306012],description:"Didymos's Chromatic, 6/5 x 25/24 x 16/15"},didy_chrom3:{frequencies:[261.6255653006,272.52663052146,290.69507255622,348.83408706747,392.4383479509,408.78994578219,436.04260883433,523.2511306012],description:"Didymos's Chromatic, 25/24 x 16/15 x 6/5"},didy_diat:{frequencies:[261.6255653006,279.06726965397,310.07474405997,348.83408706747,392.4383479509,418.60090448096,465.11211608996,523.2511306012],description:"Didymus Diatonic"},didy_diatinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Inverse Didymus Diatonic, variant of Ptolemy with 2 identical triads"},didy_enh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,392.4383479509,405.0976494977,418.60090448096,523.2511306012],description:"Dorian mode of Didymos's Enharmonic"},didy_enh2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,348.83408706747,392.4383479509,413.43299207996,418.60090448096,523.2511306012],description:"Permuted Didymus Enharmonic"},"diesic-m":{frequencies:[261.6255653006,289.62525622617,320.62153003931,354.93508703008,392.92094947462,434.97213484265,481.52372211906,523.2511306012],description:"Minimal Diesic temperament, g=176.021, 5-limit"},"diesic-t":{frequencies:[261.6255653006,272.92239980638,281.87304203955,294.04415210774,303.68749398125,316.80053726141,327.19018747082,337.92057205022,352.51178108166,364.07260143821,379.79303732838,392.24856169057,409.18561859271,422.60509148244,436.46466102477,455.31094249407,470.24311865111,490.54793493862,506.63572944675,523.2511306012],description:"Tiny Diesic temperament, g=443.017, 5-limit"},diff31_72:{frequencies:[261.6255653006,269.29177952703,274.52698453615,279.86396690685,285.30470202322,293.66476791741,299.37379946195,305.19382000629,314.13668154225,320.24370022528,326.46944327063,336.03572815422,342.56848033562,352.60650301302,356.01745236555,366.44956000397,373.57357677338,384.52011812375,388.23978476841,399.61607881612,407.38487419079,419.32216217931,427.47405410759,435.78442404634,448.5538823653,457.27406033445,466.16376151809,479.82340237272,489.15147723638,498.66089874196,508.3551866238,523.2511306012],description:"Diff31, 11/9, 4/3, 7/5, 3/2, 7/4, 9/5 difference diamond, tempered to 72-et"},dimteta:{frequencies:[261.6255653006,282.55561052465,307.12566361375,336.37572681506,406.97310157871,439.53094970501,477.75103228805,523.2511306012],description:"A heptatonic form on the 9/7"},dimtetb:{frequencies:[261.6255653006,294.32876096318,336.37572681506,406.97310157871,457.84473927605,523.2511306012],description:"A pentatonic form on the 9/7"},div_fifth1:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #1, From Schlesinger, see Chapter 8, p. 160"},div_fifth2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #2, From Schlesinger, see Chapter 8, p. 160"},div_fifth3:{frequencies:[261.6255653006,271.31540105247,305.22982618403,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #3, From Schlesinger, see Chapter 8, p. 160"},div_fifth4:{frequencies:[261.6255653006,274.70684356563,305.22982618403,343.38355445704,392.4383479509,523.2511306012],description:"Divided Fifth #4, From Schlesinger, see Chapter 8, p. 160"},div_fifth5:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,411.12588832951,523.2511306012],description:"Divided Fifth #5, From Schlesinger, see Chapter 8, p. 160"},dkring1:{frequencies:[261.6255653006,274.70684356563,305.22982618403,313.95067836072,320.49131749323,327.03195662575,366.27579142084,392.4383479509,439.53094970501,448.50096908674,457.84473927605,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 4:5:6:7"},dkring2:{frequencies:[261.6255653006,274.70684356563,305.22982618403,329.64821227876,336.37572681506,353.19451315581,366.27579142084,392.4383479509,406.97310157871,427.32175665765,436.04260883433,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 3:5:7:9"},dkring3:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,348.83408706747,384.42940207435,392.4383479509,398.6675280771,448.50096908674,465.11211608996,504.56359022259,523.2511306012],description:"Double-tie circular mirroring of 6:7:8:9"},dkring4:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,327.03195662575,336.37572681506,367.91095120397,373.75080757229,378.42269266694,420.46965851882,467.18850946536,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 7:8:9:10"},dodeceny:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Degenerate eikosany 3)6 from 1.3.5.9.15.45 tonic 1.3.15"},dorian_chrom:{frequencies:[261.6255653006,279.06726965397,299.00064605783,310.07474405997,315.92521092903,322.00069575458,348.83408706747,380.54627680087,398.6675280771,408.39112632289,418.60090448096,465.11211608996,523.2511306012,558.13453930795,598.00129211566,620.14948811994,631.85042185805,644.00139150917,697.66817413493,761.09255360175,797.33505615421,816.78225264578,837.20180896192,930.22423217991,1046.5022612024],description:"Dorian Chromatic Tonos"},dorian_chrom2:{frequencies:[261.6255653006,274.08392555301,287.78812183066,359.73515228832,411.12588832951,426.35277308246,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the chromatic genus"},dorian_chrominv:{frequencies:[261.6255653006,273.00058987889,285.40970760065,332.97799220076,380.54627680087,404.33041910093,428.11456140098,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Dorian inverted"},dorian_diat:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012,558.13453930795,598.00129211566,644.00139150917,669.76144716954,697.66817413493,728.00157301037,761.09255360175,837.20180896192,881.26506206518,930.22423217991,984.94330466108,1046.5022612024],description:"Dorian Diatonic Tonos"},dorian_diat2:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,411.12588832951,442.75095666255,479.64686971777,523.2511306012],description:"Schlesinger's Dorian Harmonia, a subharmonic series through 13 from 22"},dorian_diat2inv:{frequencies:[261.6255653006,285.40970760065,309.19384990071,332.97799220076,356.76213450082,380.54627680087,428.11456140098,475.68284600109,523.2511306012],description:"Inverted Schlesinger's Dorian Harmonia, a harmonic series from 11 from 22"},dorian_diatcon:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,411.12588832951,479.64686971777,523.2511306012],description:"A Dorian Diatonic with its own trite synemmenon replacing paramese"},dorian_diatred11:{frequencies:[261.6255653006,287.78812183066,316.56693401373,348.83408706747,392.4383479509,431.68218274599,474.85040102059,523.2511306012],description:"Dorian mode of a diatonic genus with reduplicated 11/10"},dorian_enh:{frequencies:[261.6255653006,279.06726965397,299.00064605783,304.4370214407,307.2300216374,310.07474405997,348.83408706747,380.54627680087,389.39619021485,393.97732186443,398.6675280771,465.11211608996,523.2511306012,558.13453930795,598.00129211566,608.8740428814,614.4600432748,620.14948811994,697.66817413493,761.09255360175,778.79238042969,787.95464372887,797.33505615421,930.22423217991,1046.5022612024],description:"Dorian Enharmonic Tonos"},dorian_enh2:{frequencies:[261.6255653006,267.70988077271,274.08392555301,359.73515228832,411.12588832951,426.35277308246,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the enharmonic genus"},dorian_enhinv:{frequencies:[261.6255653006,267.19206668997,273.00058987889,332.97799220076,380.54627680087,392.4383479509,404.33041910093,523.2511306012],description:"A harmonic form of Schlesinger's Dorian enharmonic inverted"},dorian_pent:{frequencies:[261.6255653006,271.49822814213,287.78812183066,359.73515228832,411.12588832951,423.21782622156,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the pentachromatic genus"},dorian_pis:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the Dorian Tonos, a non-rep. 16 tone gamut"},dorian_schl:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,442.75095666255,460.46099492906,479.64686971777,523.2511306012],description:"Schlesinger's Dorian Piano Tuning (Sub 22)"},dorian_tri1:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,411.12588832951,421.15334902048,431.68218274599,523.2511306012],description:"Schlesinger's Dorian Harmonia in the first trichromatic genus"},dorian_tri2:{frequencies:[261.6255653006,269.80136421624,287.78812183066,359.73515228832,411.12588832951,421.15334902048,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the second trichromatic genus"},douwes:{frequencies:[261.6255653006,273.00058987889,292.50063201309,313.39353429974,327.01933943691,350.37786403433,365.61168556196,391.72680409,408.75840577964,436.81779569448,468.01906681552,488.36772189445,523.2511306012],description:"Claas Douwes recommendation of 24/23 and 15/14 steps for clavichord (1699)"},dow_high:{frequencies:[261.6255653006,277.01530443593,278.50463402967,294.32876096318,308.34441624714,313.31771328338,327.34193952303,331.11985608357,346.88746827803,348.83408706747,369.35373924791,392.4383479509,417.75695104451,441.49314144476,462.5166243707],description:"Highest octave of Dowlands lute tuning, strings 5,6. 1/1=G (1610)"},dow_lmh:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,371.33951203956,392.4383479509,411.12588832951,417.75695104451,436.45591936403,441.49314144476,462.5166243707,465.11211608996,492.47165233054,495.11934938608,523.2511306012,548.16785110602,557.00926805934,581.94122581871,588.65752192635,616.68883249427,620.14948811994,626.63542656676,656.62886977405,662.23971216714,693.77493655606,697.66817413493,736.51936392681,742.67902407912,784.8766959018,822.25177665903,831.04591330779,835.51390208901,882.98628288953,925.03324874141,939.95313985014,982.02581856908,993.35956825072,1040.66240483408,1046.5022612024,1108.06121774372,1114.01853611868,1177.3150438527,1233.37766498854,1253.27085313352,1309.3677580921,1324.47942433429,1387.54987311211,1395.33634826987,1477.41495699162,1569.7533918036,1671.02780417803,1765.97256577905,1850.06649748281],description:"All three octaves of Dowland's lute tuning"},dow_low:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,371.33951203956,392.4383479509,411.12588832951,417.75695104451,436.45591936403,441.49314144476,462.5166243707,465.11211608996,492.47165233054,495.11934938608,523.2511306012],description:"Lowest octave of Dowlands lute tuning, strings 1,2,3. 1/1=G. (1610)"},dow_middle:{frequencies:[261.6255653006,274.08392555301,278.50463402967,290.97061290936,294.32876096318,308.34441624714,310.07474405997,313.31771328338,328.31443488703,331.11985608357,346.88746827803,348.83408706747,368.2596819634,371.33951203956,392.4383479509,411.12588832951,415.52295665389,417.75695104451,441.49314144476,462.5166243707,469.97656992507,491.01290928454,496.67978412536,520.33120241704,523.2511306012],description:"Middle octave of Dowlands lute tuning, strings 3,4,5. 1/1=G (1610)"},dowland_12:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,392.4383479509,417.75695104451,441.49314144476,462.5166243707,492.47165233054,523.2511306012],description:"subset of Dowland's lute tuning, lowest octave"},druri:{frequencies:[261.6255653006,285.79952600623,326.97270111135,357.18467683857,523.2511306012],description:"Scale of druri dana of Siwoli, south Nias, Jaap Kunst"},dudon_a:{frequencies:[261.6255653006,285.85015468029,319.76457981184,348.83408706747,392.4383479509,428.77523202043,479.64686971777,523.2511306012],description:"Dudon Tetrachord A"},dudon_b:{frequencies:[261.6255653006,283.42769574232,321.58142401532,348.83408706747,392.4383479509,425.14154361347,482.37213602298,523.2511306012],description:"Dudon Tetrachord B"},dudon_c12:{frequencies:[261.6255653006,302.50455987882,327.03195662575,343.38355445704,392.4383479509,425.14154361347,474.19633710734,523.2511306012],description:"Differentially coherent scale in interval class 1 and 2"},dudon_diat:{frequencies:[261.6255653006,294.32876096318,321.08592105074,350.8160989258,392.4383479509,428.11456140098,481.6288815761,523.2511306012],description:"Dudon Neutral Diatonic"},dudon_moha_baya:{frequencies:[261.6255653006,285.30470202322,320.24370022528,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Mohajira + Bayati (Dudon) 3 + 4 + 3 Mohajira and 3 + 3 + 4 Bayati tetrachords"},dudon_mohajira:{frequencies:[261.6255653006,285.30470202322,320.24370022528,349.22823143301,391.99543598175,427.47405410759,479.82340237272,523.2511306012],description:"Dudon's Mohajira, two 3 + 4 + 3 tetrachords, neutral diatonic"},dudon_mohajira_r:{frequencies:[261.6255653006,283.42769574232,321.58142401532,348.83408706747,392.4383479509,425.14154361347,479.64686971777,523.2511306012],description:"Jacques Dudon, JI Mohajira, Lumi\xEF\xBF\xBDres audibles"},dudon_thai:{frequencies:[261.6255653006,288.26147859917,317.63518509943,350.43752981487,386.47021463976,426.17461277719,469.97930400405,523.2511306012],description:"Dudon, coherent Thai heptatonic scale, 1/1 vol. 11/2, 2003"},dudon_thai2:{frequencies:[261.6255653006,288.02814528506,314.43072526953,347.1339209321,383.13743909274,422.44127975143,475.35895071461,523.2511306012],description:"Slightly better version, 3.685 cents deviation"},dudon_thai3:{frequencies:[261.6255653006,291.60349465796,321.58142401532,354.2846196779,394.48229767981,434.67997568173,478.96555314146,523.2511306012],description:"Dudon, Thai scale with two 704/703 = 2.46 c. deviations and simpler numbers"},duncan:{frequencies:[261.6255653006,277.97716313189,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Dudley Duncan's Superparticular Scale"},duoden12:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,413.89982010446,440.99519155196,465.63729761752,496.11959049595,523.2511306012],description:"Almost equal 12-tone subset of Duodenarium"},duodenarium:{frequencies:[14.56761754744,14.73307690724,14.74971276678,14.91724036858,14.98726085128,15.00418372272,15.10370587319,15.17460161192,15.19173601925,15.34695511171,15.36428413207,15.5387920506,15.55633768372,15.71528203439,15.73302695124,15.80687667908,15.91172305982,15.92968978813,16.00446263757,16.18624171938,16.20451842054,16.38856974087,16.57471152064,16.59342686263,16.78189541465,16.86066845769,16.87970668806,16.99166910733,17.07142681341,17.26532450067,17.28481964857,17.48114105693,17.67969228869,17.69965532014,17.78273626396,17.90068844229,17.98471302153,18.00502046726,18.2095219343,18.41634613405,18.43714095848,18.64655046072,18.73407606409,18.85833844126,18.87963234148,18.9682520149,18.98967002407,19.18369388963,19.20535516508,19.42349006325,19.44542210465,19.64410254298,19.66628368904,19.88965382477,19.91211223516,20.00557829696,20.13827449758,20.23280214922,20.25564802567,20.48571217609,20.7183894008,20.74178357829,20.97736926831,21.07583557211,21.21563074642,21.23958638417,21.33928351676,21.58165562584,21.60602456072,21.85142632116,22.09961536086,22.12456915017,22.37586055287,22.48089127691,22.50627558408,22.65555880978,22.76190241787,23.02043266756,23.0464261981,23.3081880759,23.57292305158,23.59954042685,23.71031501862,23.86758458973,23.97961736204,24.00669395635,24.27936257907,24.30677763081,24.55512817873,24.5828546113,24.86206728096,24.89014029395,25.14445125502,25.17284312198,25.29100268653,25.31956003209,25.487503661,25.60714022011,25.897986751,25.92722947286,26.22171158539,26.51953843303,26.54948298021,26.67410439595,26.85103266344,26.9770695323,27.0075307009,27.31428290145,27.62451920107,27.65571143772,27.96982569108,28.10111409614,28.2875076619,28.31944851222,28.45237802234,28.77554083445,28.80803274762,29.13523509488],description:"Ellis's Duodenarium : genus [3^12 5^8]"},duodene:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ellis's Duodene : genus [33355]"},"duodene14-18-21":{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,378.42269266694,392.4383479509,406.97310157871,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:"14-18-21 Duodene"},"duodene3-11_9":{frequencies:[261.6255653006,285.40970760065,294.32876096318,319.76457981184,321.08592105074,348.83408706747,359.73515228832,392.4383479509,426.35277308246,428.11456140098,479.64686971777,481.6288815761,523.2511306012],description:"3-11/9 Duodene"},"duodene3-7":{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,515.07533168556,523.2511306012],description:"3-7 Duodene"},"duodene6-7-9":{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,406.97310157871,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:"6-7-9 Duodene"},duodene_min:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,353.19451315581,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Minor Duodene"},"duodene_r-45":{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,353.19451315581,376.74081403286,401.85686830172,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated -45 degrees"},duodene_r45:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,313.95067836072,334.88072358477,383.2405741708,408.78994578219,436.04260883433,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated 45 degrees"},duodene_r90:{frequencies:[261.6255653006,272.52663052146,279.06726965397,306.59245933664,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated 90 degrees: genus [33555]"},duodene_skew:{frequencies:[261.6255653006,282.55561052465,290.69507255622,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,502.32108537715,523.2511306012],description:"Rotated 6/5x3/2 duodene"},duodene_t:{frequencies:[261.6255653006,279.3825857701,293.66476791741,313.59634948548,327.03195662575,349.22823143301,367.08095907728,391.99543598175,418.60090448096,436.53528831673,469.86362971679,489.99429388332,523.2511306012],description:"Duodene with equal tempered fifths"},duowell:{frequencies:[261.6255653006,278.41172412276,294.03623226919,312.90189200955,327.96500300935,349.00756672938,368.59392213143,392.24328034087,417.4100028405,437.50413894442,469.11953885575,491.70297432358,523.2511306012],description:"Ellis duodene well-tuned to fifth=(7168/11)^(1/16) third=(11/7)^(1/2)"},dwarf6_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,373.75080757229,392.4383479509,448.50096908674,523.2511306012],description:"Dwarf(<6 10 14 17|)"},cairo:{frequencies:[261.6255653006,269.38381929633,276.03456984659,285.15047989166,293.63138642043,300.85736580106,309.799366845,312.20234522745,320.03127253896,327.93377450564,337.66851484331,348.83408706747,357.41197445437,367.9166999024,380.21445327801,392.4383479509,401.02017979859,414.62054722758,417.26565438692,427.77234352616,440.44707963064,451.93568025669,468.86302025197,480.04690880844,491.77737838459,510.98743222773,523.2511306012],description:"P.42, of d'Erlanger, vol.5. Congress of Arabic Music, Cairo, 1932"},canright:{frequencies:[261.6255653006,286.48426603331,306.03443598155,335.11270457212,357.98136125932,391.99543598175,418.74586628806,458.53356119912,489.82466832727,523.2511306012],description:`David Canright's piano tuning for "Fibonacci Suite" (2001)`},carlos_alpha:{frequencies:[261.6255653006,273.68256372566,286.29520819723,299.48910562989,313.29104303136,327.729041887,342.83241505062,358.63182625716,375.1593523779,392.44854854484,410.5345162762,429.45397474154,449.24533531117,469.94877954106,491.60634075178,514.26198936695,537.96172218451,562.75365576207,588.68812410589],description:"Wendy Carlos' Alpha scale with perfect fifth divided in nine"},carlos_alpha2:{frequencies:[261.6255653006,267.58616452957,273.68256372566,279.91785681123,286.29520819723,292.81785438923,299.48910562989,306.31234757893,313.29104303136,320.42873367481,327.729041887,335.19567257401,342.83241505062,350.6431449633,358.63182625716,366.8025131876,375.1593523779,383.7065849236,392.44854854484,401.3896797878,410.5345162762,419.88769901416,429.45397474154,439.23819834286,449.24533531117,459.48046426806,469.94877954106,480.6555937997,491.60634075178,502.8065779009,514.26198936695,525.97838877075,537.96172218451,550.21807114943,562.75365576207,575.57483783111,588.68812410589],description:"Wendy Carlos' Alpha prime scale with perfect fifth divided by eightteen"},carlos_beta:{frequencies:[261.6255653006,271.44693432634,281.63699549204,292.20958942356,303.17907632096,314.56035546319,326.36888544505,338.62070517372,351.33245565363,364.52140258903,378.2054598351,392.40321372938,407.13394833666,422.41767164147,438.27514272393,454.72789995564,471.7982902542,489.50949943583,507.88558370741,526.95150234083,546.73315157381,567.25739978343,588.55212398003],description:"Wendy Carlos' Beta scale with perfect fifth divided by eleven"},carlos_beta2:{frequencies:[261.6255653006,266.49100855797,271.44693432634,276.49502530642,281.63699549204,286.87459075215,292.20958942356,297.64380291476,303.17907632096,308.81728905054,314.56035546319,320.41022551991,326.36888544505,332.43835840072,338.62070517372,344.91802487526,351.33245565363,357.86617542024,364.52140258903,371.30039682974,378.2054598351,385.23893610237,392.40321372938,399.70072522531,407.13394833666,414.70540688852,422.41767164147,430.27336116448,438.27514272393,446.42573318931,454.72789995564,463.18446188312,471.7982902542,480.57230974851,489.50949943583,498.61289378764,507.88558370741,517.33071758003,526.95150234083,536.75120456442,546.73315157381,556.90073257014,567.25739978343,577.80666964473,588.55212398003],description:"Wendy Carlos' Beta prime scale with perfect fifth divided by twentytwo"},carlos_gamma:{frequencies:[261.6255653006,266.98388983977,272.45195763676,278.03201633122,283.72635959645,289.53732808222,295.4673103769,301.51874398927,307.69411635045,313.99596583639,320.42688281121,326.98951069203,333.68654703547,340.52074464653,347.49491271011,354.6119179457,361.87468578579,369.2862015783,376.84951181374,384.56772537748,392.44401482761,400.48161769905,408.68383783428,417.05404674148,425.59568498025,434.31226357598,443.20736546293,452.28464695708,461.547839259,471.00074998758,480.64726474513,490.49134871455,500.53704828923,510.78849273629,521.24989589392,531.92555790347],description:"Wendy Carlos' Gamma scale with third divided by eleven or fifth by twenty"},carlos_harm:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Carlos Harmonic & Ben Johnston's scale of 'Blues' from Suite f.micr.piano (1977) & David Beardsley's scale of 'Science Friction'"},carlos_super:{frequencies:[261.6255653006,277.97716313189,294.32876096318,313.95067836072,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Carlos Super Just"},carlson:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Brian Carlson's guitar scale (or 7 is 21/16 instead) fretted by Mark Rankin"},cassandra1:{frequencies:[261.6255653006,265.52313139125,271.43629763673,275.48001908354,279.58398024378,283.7490817683,290.06813927787,294.38942683035,298.7750924519,305.42877739024,309.97889991383,314.59680966486,319.28351286859,326.39391783308,331.25637026535,336.19125912653,343.67819754196,348.79814248043,353.99435973883,359.26798967332,367.26884406885,372.74022844163,378.29312490007,386.71766674112,392.47878977853,398.32574139651,407.19640716832,413.26261206104,419.41919061043,425.66748431192,435.14704737009,441.62964923022,448.20882304357,458.19037897128,465.01626879626,471.9438445688,478.97462660712,489.64133323501,496.93576068834,504.33885972365,515.57042175735,523.2511306012],description:"Cassandra temperament (Erv Wilson), 13-limit, g=497.866"},cassandra2:{frequencies:[261.6255653006,265.34593985135,270.18130909623,275.10479273152,279.0168449367,284.10133754875,289.27848429833,293.3920895946,298.7385406747,304.18241953205,309.72550158209,314.12986807617,319.85422136322,325.68288889698,330.31417303802,336.33345109576,342.46241778116,348.70307193775,353.66170827405,360.10644584283,366.66862514012,371.88273569526,378.65951299923,385.5597827545,392.58579535013,398.16845391153,405.42423290482,412.81223314336,418.68251621245,426.31212065787,434.08075852776,440.25348482514,448.27617460765,456.44506096456,464.76280801961,471.37183998139,479.96159605313,488.70788228454,495.65741860341,504.6897280454,513.8866322474,523.2511306012],description:"Cassandra temperament, schismic variant, 13-limit, g=497.395"},catler:{frequencies:[261.6255653006,269.80136421624,279.06726965397,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,322.00069575458,327.03195662575,343.38355445704,348.83408706747,359.73515228832,367.91095120397,380.54627680087,392.4383479509,418.60090448096,425.14154361347,436.04260883433,441.49314144476,457.84473927605,465.11211608996,483.00104363188,490.54793493862,523.2511306012],description:'Catler 24-tone JI from "Over and Under the 13 Limit", 1/1 3(3)'},cbrat19:{frequencies:[261.6255653006,272.05448646742,281.65887246066,291.7164960911,303.76422848609,314.23522436032,325.78124145721,339.14379232251,350.05979530932,364.18597952318,377.95660802413,389.93691761381,406.2330981776,420.87727247778,436.65546295526,454.14747622901,467.92430113657,486.684954898,506.27371414348,523.2511306012],description:"brats = -1 -1 -1 -1 -1 -1 -1 -1 0 3/7 390808/591947 1/2 1/2 1/2 1/2 1/4 0 0 -1"},ceb88f:{frequencies:[261.6255653006,275.30280934529,289.60851057007,304.80308899558,320.69584574771,337.31885569235,354.97473368038,373.44187862432,393.05647479461,413.57234190108,435.03089105397,457.82276134277,481.66189358475,506.59641128799],description:"88 cents steps with equal beating fifths"},ceb88s:{frequencies:[261.6255653006,275.27750547448,289.60710371138,304.74878776577,320.64207659236,337.32428016541,354.95189689869,373.45451504132,392.8755714351,413.39725679488,434.93759942207,457.54716438978,481.43806014345,506.51485544552,533.01280425363],description:"88 cents steps with equal beating sevenths"},ceb88t:{frequencies:[261.6255653006,275.20384442973,289.60910777612,304.54100616185,320.3823320487,337.18847246966,354.60902163481,373.09056856306,392.69773188536,413.02170471677,434.58350960486,457.45853552679,481.16983689269,506.32527343025,533.01280425363],description:"88 cents steps with equal beating 7/6 thirds"},cet105:{frequencies:[261.6255653006,277.98437592617,295.36606150822,313.83458334354,333.45789502888,354.30820661869,376.46223533368,400.00150378562,425.01262301844,451.58762919357,479.82430313337,509.82655042708,541.70476218406,575.57624366132],description:"Equal temperament with very good 6/5 and 13/8"},cet105a:{frequencies:[261.6255653006,278.09098920184,295.59266404146,314.19580976213,333.96974580612,354.98815389674,377.32935907335,401.07660961589,426.31839262878,453.14877154631,481.66772230429,511.98151233648,544.20310589723,578.45256778249,614.85751848055,653.5536209391,694.68506540856,738.40511604959,784.8766959018],description:"18th root of 3"},cet111:{frequencies:[261.6255653006,279.02234237845,297.57591715819,317.3632108372,338.46625752841,360.97255206362,384.97540137331,410.57431878206,437.87543474729,466.99193686517,498.04453913461,531.16197935691,566.48156495049,604.14972437838,644.32262592407,687.16682227215,732.8599410185,781.59142109591,833.56329335333,888.99103711409,948.10444554232,1011.14859670036,1078.38486510237,1150.09200534594,1226.56730779978,1308.127826503],description:'25th root of 5, Karlheinz Stockhausen in "Studie II" (1954)'},cet111a:{frequencies:[261.6255653006,279.09119608948,297.72279782842,317.59821198502,338.80046946076,361.41815173468,385.54574794778,411.2840547398,438.74060487161,468.03009995854,499.27490936609,532.60556349815,568.16130614457,606.09068659426,646.55215742719,689.71476370538,735.75882016749,784.8766959018],description:"17th root of 3. McLaren 'Microtonal Music', volume 1, track 8"},cet112:{frequencies:[261.6255653006,279.13807488234,297.82282461384,317.75828292395,339.02816520012,361.72179601836,385.93447726538,411.76789245756,439.33052439618,468.73812456399,500.11419015728,533.59048802364,569.30759588159,607.4155105893,648.07426630787,691.45461344743,737.73872000797,787.12095980595,839.80871352279,896.02324851892,956.00062766807,1019.99273078287,1088.26829265547,1161.11404316696,1238.83588500259,1321.76021726874,1410.23528064063,1504.63263477595,1605.34868446028,1712.8063948195,1827.45703443292,1949.78208984359,2080.29524321777,2219.54459500735,2368.11492276755,2526.63016208001,2695.75596930795,2876.20260183901,3068.72784518,3274.14022786751,3493.30234242079,3727.13457771193,3976.61891204907,4242.80307922676,4526.8048719912,4829.81697864182,5153.11189830808,5498.04733953642,5866.07179694692,6258.73081875602,6677.6733762505,7124.65885956048,7601.56430418436,8110.3925243186],description:"53rd root of 31. McLaren 'Microtonal Music', volume 4, track 16"},cet114:{frequencies:[261.6255653006,279.47933554513,298.55147893584,318.92513586406,340.68912750315,363.93832870511,388.77409689134,415.30469757995,443.64579124771,473.92093172942,506.26209616971,540.81027939262,577.71608583803,617.1404103833,659.25511382574,704.24379572788,752.30258557703,803.64098403142,858.48280642307,917.06712239825,979.64933665453,1046.5022612024],description:"21st root of 4"},cet115:{frequencies:[261.6255653006,279.68949451567,299.00064605783,319.64513593742,341.71502406609,365.30872604057,390.53145607553,417.49568846357,446.32166408632,477.13792869952,510.08190181294],description:"2nd root of 8/7. Werner Linden, Musiktheorie, 2003 no.1 midi 15.Eb=19.44544 Hz"},cet117:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,342.56848033562,366.44956000397,391.99543598175,419.32216217931,448.5538823653,479.82340237272,513.27277840175,549.0539690723,587.32953583482,628.27336308449,672.07145630843,718.92279942609,769.0402362475,822.65144744826,880,941.34642612261,1006.96941915374,1077.1671181081,1152.25842837255,1232.58448551457,1318.51022765149,1410.42601205207,1508.74940691646,1613.92711604023,1726.4369576214,1846.79005749489,1975.53320502451,2113.25127526858,2260.56991361642,2418.15841952625,2586.73271138559,2767.05861265008,2959.95538169309],description:"72nd root of 128, step = generator of Miracle"},cet118:{frequencies:[261.6255653006,280.22072913446,300.13755324878,321.46997343155,344.3186075731,368.79121945838,395.0032340925,423.07827792492,453.14877154631,485.35654007358,519.85349135637,556.8023269521,596.37732215892,638.76512932755,684.16567043124,732.79307276157,784.8766959018],description:"16th root of 3. McLaren 'Microtonal Music', volume 1, track 7"},cet126:{frequencies:[261.6255653006,281.50639381697,302.89795903081,325.91506125677,350.68122444233,377.32935907335,406.00247545366,436.85445118639,470.05085697597,505.76984518255,544.20310589723,585.55689566922,630.05314440547,677.93064638327,729.44634176744,784.8766959018],description:"15th root of 3. McLaren 'Microtonal Music', volume 1, track 6"},cet126a:{frequencies:[261.6255653006,281.42815779395,302.72962012827,325.64340264099,350.29154279212,376.80531512858,405.32593044476,436.00528786292,469.00678383895,504.50618240233,542.69254813034,583.76926541313,627.95510352048,675.48539363125,726.61327927927,781.61106458091,840.77166451082,904.41016494992,972.86550081423,1046.5022612024],description:"19th root of 4"},cet133:{frequencies:[261.6255653006,282.54488373859,305.13688994853,329.53533037111,355.88464567857,384.34082587483,415.07233376839,448.26110228542,484.10361152681,522.81205194575,564.61558053174,609.76167743791,658.5176110828,711.17202040031],description:"13th root of e"},cet140:{frequencies:[261.6255653006,283.72172983292,307.68407293041,333.67021037701,361.85106232365,392.4119924075,425.55401329039,461.49511402661,500.47170241421,542.7401414615,588.57845795114,638.28815062634,692.19618110881,750.65713728047,814.05554253056,882.80839491877,957.36792629418,1038.22454144983,1125.91008648826,1221.00130775733,1324.12366033919,1435.95544645068,1557.23222387914,1688.75170820144,1831.3789571042],description:"24th root of 7"},cet141:{frequencies:[261.6255653006,283.85429714132,307.97166902637,334.13814720468,362.52783176564,393.32961502355,426.7484383229,463.0066556268,502.34551296122,545.02675670673,591.33436279611,641.57644431325,696.08728968715,755.22958979995,819.39685117042,889.01601417107,964.55029369918,1046.5022612024],description:"17th root of 4"},cet146:{frequencies:[261.6255653006,284.69629445872,309.80145226022,337.12043918596,366.84847565362,399.19799705513,434.40017432099,472.70655602525,514.39088038704,559.75102196641,609.11112257023,662.82390755693,721.27320639821,784.8766959018],description:"13th root of 3, Bohlen-Pierce approximation"},cet148:{frequencies:[261.6255653006,284.92791524313,310.30575035912,337.94392545772,368.04376529149,400.82452432448,436.52498800167,475.40520223986,517.74838217475,563.86296895784,614.08486606944,668.77990486322,728.34649714081,793.21854485147,863.86858278563,940.81124699851,1024.60701225804,1115.86625569541,1215.25373699679,1323.49342609599,1441.37375222579,1569.7533918036],description:"21th root of 6, Moreno's C-21"},cet152:{frequencies:[261.6255653006,285.70808394691,312.0073878821,340.72733440875,372.0911362405,406.34196228781,443.74556186468,484.59214639302,529.19833545193,577.91081034511,631.10724720728,689.20039277289,752.64098693245,821.92125998587],description:"13th root of pi"},cet158:{frequencies:[261.6255653006,286.70831230381,314.19580976213,344.3186075731,377.32935907335,413.50494015483,453.14877154631,496.5933637384,544.20310589723,596.37732215892,653.5536209391,716.21156534988,784.8766959018],description:`12th root of 3, Moreno's A-12, see dissertation "Embedding Equal Pitch Spaces.`},cet159:{frequencies:[261.6255653006,286.82842069679,314.45911373416,344.75151869218,377.96204482418,414.37180231943,454.28897403052,498.05144066897,546.02962057131],description:"4e-th root of e. e-th root of e is highest x-th root of x"},cet160:{frequencies:[261.6255653006,286.95745534843,314.74210513576,345.21700307457,378.64263238751,415.30469757995,455.51656649021,499.62194879119,547.99783383788,601.05771297194,659.25511382574,723.0874768355,793.10040709753,869.89233791055,954.11964586525,1046.5022612024],description:'15th root of 4, Rudolf Escher in "The Long Christmas Dinner" (1960)'},cet160a:{frequencies:[261.6255653006,287.06963246392,314.98822873932,345.62201499981,379.23505183234,416.11708252541,456.58602635137,500.99072933585,549.71395617638,603.17569602575,661.83679400878,726.20290371434,796.8288589228,874.32344802967,959.35468153537,1052.65552131526,1155.03021091382,1267.36122959081,1390.6168610076,1525.85955590014,1674.2551187631,1837.08270650821,2015.74588766663,2211.78472029595,2426.88907720145,2662.91313932742,2921.89140956529,3206.0563044734,3517.85730085803,3859.98211320646,4235.37982185266,4647.28638964387,5099.2524155536,5595.17379976366,6139.32543031277,6736.39784717273,7391.53779523322,8110.3925243186],description:"37th root of 31. McLaren 'Microtonal Music', volume 2, track 7"},cet163:{frequencies:[261.6255653006,287.45276480522,315.82957660097,347.00769742017,381.26366336311,418.90131810157,460.25449359467,505.68997636603,555.61077020009,610.45965236807],description:'9th root of 7/3. Jeff Scott in "Quiet Moonlight" (2001)'},cet163a:{frequencies:[261.6255653006,287.41152361975,315.7389582221,346.85836204295,381.04491126651,418.60090448096,459.85843616195,505.18233428314,554.97338050766],description:"5th root of 8/5"},cet166:{frequencies:[261.6255653006,287.95619440582,316.93680165166,348.83408706747],description:"3rd root of 4/3"},cet173:{frequencies:[261.6255653006,289.10449173793,319.46957112932,353.02394045842,390.10257564198,431.07563562091,476.35215768611,526.38414093011,581.67105858963,642.7648443263,710.27540222401,784.8766959018],description:"11th root of 3, Moreno's A-11"},cet175:{frequencies:[261.6255653006,289.48414624674,320.30918244523,354.41654988346,392.15575985798,433.91353804458,480.11779720922,531.2420078798,587.8100594825,650.40162657281,719.65810898332,796.28920449429,881.08018137935,974.89992535123,1078.70983713651,1193.57370864212,1320.66858845324,1461.29686662697,1616.89961515233,1789.07135516847,1979.57639663535,2190.36691789568,2423.60297039629,2681.67459807517,2967.22638952895,3283.18448966052,3632.78664249769,4019.61535560076,4447.6346101102],description:"28th root of 7. McLaren 'Microtonal Music', volume 6, track 3"},cet175a:{frequencies:[261.6255653006,289.53628281337,320.42456924675,354.60807736883,392.4383479509,434.30442400296,480.63685362987,531.91211578736],description:"4th root of 3/2"},cet178:{frequencies:[261.6255653006,289.91935960089,321.27301846367,356.01745236555,394.51936464224,437.18511000944,484.46499093218,536.85800524663,594.91712478053,659.25511382574,730.5510078664,809.55727745129,897.10776473059,994.12650420781,1101.63744560301,1220.77528002516,1352.79740322961,1499.09721690784,1661.21879031979,1840.87318566558,2039.95650991293,2260.56991361642,2505.04181781964,2775.9524141353,3076.16094499002,3408.83584914421,3777.48827884202,4186.0090448096],description:"27th root of 16"},cet181:{frequencies:[261.6255653006,290.48091212946,322.51878830959,358.09020513941,397.58488163802,441.43552612833,490.12256936272,544.17943316245,604.19836236377,670.83693141722,744.82523718317,826.97390553231,918.18295398723,1019.45167961503,1131.88958971281,1256.72856920928,1395.33634826987],description:"6.625 tET. The 16/3 is the so-called Kidjel Ratio promoted by Maurice Kidjel in 1958"},cet182:{frequencies:[261.6255653006,290.70585738945,323.0184918031,358.92275093366,398.81785224951,443.14738973192,492.40425618917,547.1361382945,607.95159681319,675.52683545966,750.61321956915,834.04563048717,926.75174856904,1029.76237395443,1144.22286477952,1271.40590625444,1412.7256395721,1569.7533918036],description:"17th root of 6, Moreno's C-17"},cet195:{frequencies:[261.6255653006,292.81795587218,327.72927094457,366.80289667873,410.53509014096,459.48126579586,514.26306468681,575.57624366132],description:"7th root of 11/5"},cet21k:{frequencies:[261.6255653006,264.89588486686,268.20708342769,271.55967197054,274.95416787017,278.3910952928,281.87098404962,285.39437141672,288.96180112674,292.57382370898,296.23099657435,299.9338841014,303.68305772341,307.47909424051,311.32258299104,315.21411535185,319.1542918681,323.14372059172,327.18301717534,331.2728049672,335.41371510742,339.60638662537,343.85146653829,348.14960995112,352.50148015762,356.90774874273,361.36909568619,365.8862094675,370.45978717215,375.09053459917,379.77916637013,384.52640603933,389.33298620552,394.19964862491,399.1271443257,404.11623372391,409.16768674077,414.28228292154,419.46080913287,424.70406934596,430.01287031296,435.38803129329,440.83038178715,446.34076166346,451.92002128953,457.56902166224,463.28863454093,469.07974258197,474.94323947488,480.88003008033,486.89103056976,492.97716856672,499.13938329007,505.37862569893,511.69585863936,518.09205699304,524.56820782765],description:"scale of syntonic comma's, almost 56-tET"},cet222:{frequencies:[261.6255653006,297.3462123974,337.94392545772,384.08458333231,436.52498800167,496.12526073276,563.86296895784,640.8491384935,728.34649714081,827.79017883768,940.81124699851,1069.2634803114,1215.25373699679,1381.1765584523,1569.7533918036],description:"14th root of 6, Moreno's C-14"},cet233:{frequencies:[261.6255653006,299.41460910537,342.66187834083,392.15575985798,448.79850611373,513.6227001391,587.8100594825,672.71300106294,769.87926947615,881.08018137935,1008.34288220748,1153.98733901804,1320.66858845324,1511.42518780658,1729.7345489351,1979.57639663535,2265.50524176842,2592.73349533282,2967.22638952895,3395.81083571538,3886.29974647262,4447.6346101102],description:"21st root of 17. McLaren 'Microtonal Music', volume 2, track 15"},cet24:{frequencies:[261.6255653006,265.3411057651,269.1094134006,272.9312375932,276.80733837157,280.73848655813,284.72546392233,288.7690633361,292.87008893155,297.02935626086,301.24769245848,305.52593640563,309.86493889709,314.26556281043,318.72868327757,323.25518785885,327.84597671953,332.50196280875,337.22407204116,342.01324348101,346.8704295289,351.79659611118,356.79272287204,361.85980336835,366.9988452672,372.21087054633,377.49691569736,382.85803193188,388.29528539052,393.80975735501,399.40254446313,405.07475892685,410.82752875349,416.66199797006,422.57932685074,428.58069214763,434.66728732478,440.84032279551,447.10102616311,453.45064246502,459.89043442035,466.42168268106,473.04568608657,479.76376192214,486.57724618073,493.48749382879,500.49587907561,507.6037956467,514.81265706088,522.12389691142,529.53896915113],description:"least squares fit primes 2-13"},cet258:{frequencies:[261.6255653006,303.75687573192,352.67287219582,409.46613795376,475.40520223986,551.96287401486,640.8491384935,744.04935121924,863.86858278563,1002.98310468409,1164.50016626124,1352.0273979586,1569.7533918036],description:"12th root of 6, Moreno's C-12"},cet29:{frequencies:[51.91308719749,52.80006242627,53.70219231256,54.6197354699,55.55295587693,56.50212107609,57.46750349647,58.44938022184,59.44803272677,60.46374832519,61.49681820986,62.54753889218,63.61621194966,64.70314373878,65.80864697157,66.93303858176,68.07664129187,69.2397833384,70.42279815925,71.62602610967,72.84981213985,74.09450750046,75.36046944358,76.64806088248,77.95765225928,79.28961901721,80.64434345693,82.02221441105,83.42362735565,84.84898403373,86.29869452271,87.77317443616,89.27284697886,90.79814258634,92.34949851506,93.9273610926,95.53218267212,97.16442386902,98.82455316866,100.51304648023,102.230389586,103.97707482641,105.75360353451,107.56048560902,109.39823902877,111.26739251837,113.16848194039,115.10205294491,117.06866050489,119.06886838764,121.10325205621,123.17239474253,125.2768903313,127.4173428542,129.59436591466,131.80858584574,134.06063743615,136.35116706905,138.68083217153,141.05030058861,143.46025402018,145.91138336926,148.40439215824,150.93999592972,153.51892156515,156.14191102559,158.8097162888,161.52310306741,164.28285015685,167.08974869373,169.94460622727,172.84824120887,175.80148703892,178.80519135714,181.8602162858,184.96743760879,188.12774927869,191.34205731671,194.61128429254,197.93636853869,201.31826325695,204.75794142387,208.2563891515,211.8146105632,215.43362693858,219.11447574094,222.85821595641,226.66592086774,230.53868336123,234.47761499594,238.48384494529,242.55852580808,246.70282574354,250.91793424736,255.20506113867,259.56543598745],description:"95th root of 5"},cet39:{frequencies:[261.6255653006,267.55763511324,273.62420803617,279.82833216202,286.17312954462,292.66178817784,299.29756995616,306.08381073387,313.02392200207,320.12139075456,327.37978859613,334.80276256646,342.39404424694,350.15744982839,358.09687996112,366.21632994368,374.51987945827,383.01170275779,391.6960687417,400.57734310204,409.65998815178,418.94857448076,428.44776921301,438.16234766073,448.09719341103,458.25729813392,468.64777462103,479.27384364987,490.14084702027,501.25424765147,512.61963232837,524.24271148185,536.12933410494,548.28547272565,560.71723832061,573.43088042607,586.43278689221,599.72950056876,613.32770249519,627.23422858353,641.45606974252,656.00037539202,670.87445318194,686.08578808043,701.64202314362,717.55097860059,733.82065199545,750.45921787297,767.47504913108,784.8766959018],description:"49th root of 3"},cet39a:{frequencies:[261.6255653006,267.54999903763,273.60843178624,279.80421399945,286.14029787289,292.61969147246,299.24597805224,306.02231493662,312.9519192023,320.03862308027,327.28580327671,334.69690040195,342.27601296361,350.02675229311,357.95279806627,366.05853356918,374.34782106107,382.82459589435,391.49354592099,400.35880176332,409.42457221564,418.6958708581,428.17711532294,437.87280684605,447.78830736843,457.9283414747,468.29772316218,478.90218693807,489.74678566745,500.83666784082,512.17796641877,523.77608535691],description:"31-tET with least squares octave; equal weight to 5/4, 3/2, 7/4 and 2/1"},cet39b:{frequencies:[261.6255653006,267.54443554965,273.59736903996,279.78708267123,286.11699418435,292.58994480246,299.2095086599,305.97865699219,312.90112748358,319.98002733127,327.21907624411,334.6220906301,342.19239338178,349.93416455252,357.85087908811,365.94690831825,374.22588619981,382.6921630398,391.3502022376,400.20389001205,409.25811505631,418.51694141988,427.98548149913,437.66798531163,447.56979919346,457.69536764001,468.05001127562,478.63918904181,489.46765396188,500.54138513107,511.86535306771,523.4458104663],description:"31-tET with l.s. 8/7, 5/4, 4/3, 3/2, 8/5, 7/4, 2/1; equal weights"},cet39c:{frequencies:[261.6255653006,267.52919373065,273.56603860918,279.73910598956,286.05147140959,292.50627485027,299.10673210371,305.85612987468,312.75782903301,319.8152662872,327.03195662575,334.41149334841,341.95754947331,349.67388372612,357.56433846376,365.63284274659,373.88341429498,382.32016148985,390.94728541851,399.7690842757,408.78994578219,418.01436575232,427.44693588739,437.09235368188,446.9554220819,457.04105241293,467.35426952494,477.9002035559,488.68410850494,499.71135422907,510.98743222773,522.51795602393],description:"10th root of 5/4"},cet39d:{frequencies:[261.6255653006,267.55786538889,273.62467903016,279.82905628857,286.1741163878,292.66304927922,299.29911724561,306.08565654127,313.02607906932,320.12387409698,327.38261000985,334.80593610581,342.39758442978,350.16137164992,358.1012009765,366.22106412416,374.52504331879,383.0173133498,391.70214366901,400.58390053708,409.66704921865,418.95615622721,428.45589162089,438.17103135034,448.1064596598,458.26717154264,468.65827525256,479.28499487175,490.15267293726,501.26677312698,512.63288300643,524.25671683791],description:"31-tET with l.s. 5/4, 3/2, 7/4"},cet39e:{frequencies:[261.6255653006,267.56053134626,273.63013029147,279.83741943955,286.18551905392,292.67762672082,299.3170076044,306.10700082387,313.05102655064,320.15257723818,327.41522444303,334.84262641603,342.43851674365,350.20672153383,358.15114775562,366.27579142084],description:"15th root of 7/5, X.J. Scott"},cet44:{frequencies:[261.6255653006,268.36512159638,275.27829096782,282.369545742,289.64347345451,297.10477981732,304.75829176301,312.60896056742,320.66186505284,328.92221487359,337.3953538863,346.08676360706,355.00206675748,364.14703090225,373.52757218034,383.14975913231,393.01981662619,403.14412988459,413.52924861543,424.18189124916,435.1089492851,446.31749174973,457.81476976988,469.60822126365,481.70547575226,494.11435929576,506.84289955596,519.89933098975,533.2921001762],description:"least maximum error of 10.0911 cents to a set of 11-limit consonances"},cet45:{frequencies:[261.6255653006,268.55812265554,275.67437899809,282.97903853108,290.47742047479,298.17449463282,306.07552595385,314.18591889722,322.51122112969,331.05693609414,339.82928674186,348.83408706747],description:"11th root of 4/3"},cet45a:{frequencies:[261.6255653006,268.48547646737,275.52525683447,282.74962263341,290.1634137569,297.77159700127,305.57926939395,313.59166160814,321.8141414671,330.2522175402,338.9115428334,347.79791857637,356.91729810903,366.27579142084],description:"13th root of 7/5, X.J. Scott"},cet49:{frequencies:[261.6255653006,269.10883825956,276.80615518671,284.72363837915,292.86758524998,301.24447333711,309.86096545541,318.72391499615,327.84037137809,337.21758565441,346.86301628009,356.78433504421,366.98943317194,377.48642760107,388.28366743806,399.38974059878,410.81348063915,422.56397378117,434.65056613995,447.08287115744,459.87077724873,473.02445566714,486.55436859423,500.47127746122,514.78625150841,529.51067658945],description:"least squares fit primes 3-13"},cet49a:{frequencies:[261.6255653006,269.10939785623,276.80730639354,284.72541458317,292.8700212642,301.24760545475,309.86483150611,318.72855440416,327.84582522255,337.22389673177,346.87022916874,356.7924961714,366.99859088307,377.49663223147,388.29497138724,399.40219840734,410.82714906841,422.57891189558,434.66683539241,447.10053547759,459.8899031344,473.04511227892,486.57662785344,500.49521415122,514.81194337949,529.53820446742],description:"least squares fit primes 5-13"},cet49b:{frequencies:[261.6255653006,269.11089011973,276.81037630182,284.73015118141,292.87651740119,301.25595792767,309.87514121046,318.74092648901,327.86036925135,337.24072684885,346.88946427176,356.81426008988,367.0230125633,377.52384592787,388.3251168606,399.43542112995,410.86360043647,422.61874944911,434.71022304287,447.14764374346,459.94090938509,473.10020098719,486.63599085665,500.55905092174,514.88046130456,529.61161913871],description:"least squares fit primes 3-11"},cet51:{frequencies:[261.6255653006,269.45730810595,277.52349357863,285.8311397433,294.38747470873,303.19994295657,312.27621181854,321.62417814738,331.25197518754,341.1679796516,351.38081900843,361.89937898954,372.73281132023,383.89054168203,395.38227791356,407.21801845694,419.40806105693,431.96301172054,444.89379394488,458.21165822114,471.92819182319,486.05532888913,500.60536080461,515.59094689708,531.0251223827,546.92132188791,563.29337300176,580.1555203085,597.52243480304,615.40922665547,633.83145835774,652.80515826392,672.34683453572,692.47348950549,713.20263446921,734.55230492227,756.54107625132,779.18807989593,802.51301999392,826.53619052513,851.2784929682,876.7614544861,903.00724665589,930.0387047592,957.87934765022,986.55339821839,1016.08580446361,1046.5022612024],description:"47nd root of 4"},cet53:{frequencies:[261.6255653006,269.81714175785,278.26519897904,286.97776745533,295.963129115,305.22982618403],description:"5th root of 7/6, X.J. Scott"},cet54:{frequencies:[261.6255653006,269.96706985652,278.57452968396,287.45642599351,296.6215054241,306.0787984682,315.83762188043,325.9075894649,336.29862154621,347.0209567468,358.08515411748,369.5021153806,381.28308783765,393.43967739203,405.98385998242,418.92799580061,432.28483186346,446.06752886518,460.28966468743,474.96525012045,490.10874266572,505.73506369981,521.85960157932,538.49824405725,555.66738252045,573.38393096839,591.66534267587,610.52963091344,629.99537269573,650.08174791487,670.80854445602,692.19618110881,714.26572768264,737.03893002078,760.53821452531,784.78673539949,809.80838082331,835.62780061242,862.2704354823,889.76252234217,918.13114956434,947.40426420901,977.61070438283,1008.78022764847,1040.94354635268,1074.13233401713,1108.37929206026,1143.71815851921,1180.1837471134,1217.81198154093,1256.63993812708,1296.7058535394,1338.04920533515,1380.71072249048,1424.73243255855,1470.15770307252,1517.03129303135,1565.39936221354,1615.30956841503,1666.81108016015,1719.95463363144,1774.79258265191,1831.3789571042],description:"62nd root of 7"},cet54a:{frequencies:[36.70809598968,37.88151295543,39.09243955873,40.34207507177,41.63165640381,42.96246070241,44.33580570763,45.75305128262,47.21560103286,48.72490261351,50.28245077394,51.88978777214,53.5485051662,55.26024570942,57.02670371,58.84962859429,60.73082539186,62.67215683218,64.67554556259,66.74297456936,68.87649134796,71.07820847085,73.35030604133,75.69503428946,78.11471406483,80.61174171737,83.18858976192,85.8478097501,88.59203530858,91.42398271579,94.34645661434,97.36235078878,100.47465152683,103.6864411753,107.00089881505,110.42130694669,113.95105240089,117.59363027227,121.3526480812,125.23182656372,129.23500749643,133.36615476182,137.62935895249,142.02884224198,146.56895930934,151.25420649717,156.08922305851,161.0787965455,166.22786851013,171.54153558634,177.0250602084,182.68387207023,188.52357443227,194.5499507934,200.76896615752,207.18677957808,213.80974586608,220.64442297146,227.69757979185,234.97619765489,242.48748500016,250.23887937817,258.23805608937,266.49293732345,275.01169389411,283.8027624226,292.87484767725,302.23693268442,311.89828942495,321.86848086456,332.15738106504,342.77517792247,353.73238500089,365.03985405114,376.70877738729,388.75071142436,401.17757988308,414.00168763976,427.23573537822,440.89282237095,454.98647402737,469.53064564449,484.53973861665,500.02861758376,516.01261368641,532.50755680773,549.52977996323,567.09613827221,585.22402902787,603.93139550692,623.23676470498,643.1592524742,663.71858572717,684.9351219702,706.82987354375,729.42451222373,752.74141479803,776.80366927173,801.63510168485,827.26030448295,853.70464190233,880.99430375232],description:"101st root of 24"},cet54b:{frequencies:[261.6255653006,269.96795403263,278.5763544202,287.45924871019,296.62539133416,306.08381073387,315.84382837889,325.91506125677,336.30743300953,347.03118371184,358.09687996112,369.51542742358,381.29807310848,393.45642905887,406.00247545366,418.94857448076,432.30748251802,446.09236270275,460.31680056078,474.99480683953,490.14084702027,505.76984518255,521.89720128632,538.53880634615,555.71105808945,573.43088042607,591.71572697754,610.58361784146,630.05314440547,650.14349087612,670.87445318194,692.26646247798,714.3405894063,737.11858847932,760.62290389144,784.8766959018],description:"35th root of 3 or shrunk 22-tET"},cet55:{frequencies:[261.6255653006,270.01349691657,278.67035254505,287.60475577316,296.82560168354,306.34207552634,316.16365537714,326.30012507123,336.76157646737,347.55843063202,358.70144085484,370.20170518484,382.07067969055,394.32018111076,406.96241165943,420.00996255663,433.47583121124,447.37342422819,461.71658555081,476.51960046685,491.79721226214,507.56463983627,523.83758122386,540.63224654693,557.96536270557,575.85419620437,594.31655714751,613.37083662462,633.03601203256,653.33166919923,674.2780257851,695.8959359612,718.20693418482,741.23324143097,764.99779551626,789.52425640623,814.83705588084,840.96140460432,867.92332151557,895.74966491622,924.46813868508,954.10735043232,984.69681977767,1016.26701863443,1048.84937826003,1082.47635523452,1117.18144085251,1152.9992001672,1189.96531328939,1228.1165836432,1267.49101522141,1308.127826503],description:"51th root of 5"},cet55a:{frequencies:[261.6255653006,270.1234331478,278.89732210685,287.95619440582,297.30930820811,306.96622255393,316.93680165166,327.23123542864,337.86004496999,348.83408706747],description:"9th root of 4/3"},cet63:{frequencies:[261.6255653006,271.38398887572,281.50639381697,292.00635633712,302.89795903081,314.19580976213,325.91506125677,338.07143142496,350.68122444233,363.76135261718,377.32935907335,391.4034412791,406.00247545366,421.14604188408,436.85445118639,453.14877154631,470.05085697597,487.58337662462,505.76984518255,524.63465441916,544.20310589723,564.50144490757,585.55689566922,607.39769784277,630.05314440547,653.5536209391,677.93064638327,703.21691530872,729.44634176744,756.65410477833,784.8766959018],description:"30th root of 3 or stretched 19-tET"},cet63a:{frequencies:[261.6255653006,271.37251603396,281.48259278098,291.96932561311,302.84674360983,314.12940356828,325.83240291761,337.9714015469,350.5626427598,363.62297711023,377.1698766242,391.22147055517,405.79656146784,420.91465242294,436.59597307447,452.86150935499,469.73302118774,487.23308701689,505.38512383853,524.21342105699,543.74317298677,564.00051582303,585.01254970054,606.80739415229,629.41421305643,652.8632568014,677.18590276436,702.41470135475,728.58340348685,755.72702964881,783.88190097186,813.08569174348,843.37747981977,874.79780396885,907.38869808556,941.19377721109,976.25827622702,1012.62911525602,1050.35496244617,1089.48630538731,1130.07549372248,1172.17684627813,1215.84669925421,1261.14348767523,1308.127826503],description:"44th root of 5"},cet67:{frequencies:[261.6255653006,271.89449162354,282.56647812794,293.65734341902,305.18353207836,317.16212905639,329.61089159214,342.54827390456,355.99345454941,369.96636271272,384.48771622149,399.57903967613,415.26270466472,431.56196087069,448.50096908674],description:"14th root of 12/7, X.J. Scott"},cet70:{frequencies:[261.6255653006,272.49048247121,283.80660334964,295.59266404146,307.86818385681,320.65348759128,333.96974580612,347.83900623503,362.28423824861,377.32935907335,392.99928119148,409.31995166322,426.31839262878,444.02275580482,462.46235461904,481.66772230429,501.67065719504,522.50428685614,544.20310589723,566.80304433509,590.34152430617,614.85751848055,640.39162865951,666.98613212152,694.68506540856,723.53429383412,753.58158307649,784.8766959018],description:"27th root of 3"},cet78:{frequencies:[261.6255653006,273.68177330057,286.29355449603,299.48651076576,313.28742377221,327.72430932822,342.82647426905,358.62457594514,375.15068445646,392.4383479509],description:"9th root of 3/2"},cet79:{frequencies:[261.6255653006,273.87994580863,286.70831230381,300.13755324878,314.19580976213,328.91254817579,344.3186075731,360.44627930254,377.32935907335,395.0032340925,413.50494015483,432.87325713404,453.14877154631,474.3739811962,496.5933637384,519.85349135637,544.20310589723,569.69324454502,596.37732215892,624.31126899512,653.5536209391,684.16567043124,716.21156534988,749.7584744066,784.8766959018],description:"24th root of 3, James Heffernan (1906)."},cet80:{frequencies:[261.6255653006,273.93704112612,286.82786567404,300.32530171503,314.4578949408,329.25553433534,344.74951538696,360.97260627516,377.95911717185,395.74497280393,414.36778843034,433.8669493945,454.28369442026,475.66120282759,498.04439817054,521.48118104407,546.02084308555,571.71528316122,598.61884237431,626.7884189909,656.28358877393,687.16673097983,719.50316028422,753.36126491573,788.81265129014,825.93229545055,864.79870163404,905.49406830005,948.10446197172,992.7199992577,1039.43503743958,1088.34837402783,1139.56345570838,1193.18859712177,1249.33720993748,1308.127826503],description:"35th root of 5"},cet84:{frequencies:[261.6255653006,274.70153691096,288.43104187674,302.84674360983,317.98293803021,333.87563322966,350.5626427598,368.08366429725,386.48038152577,405.79656146784,426.0781586093,447.37342422819,469.73302118774,493.21014446673,517.86064472263,543.74317298677,570.91930267857,599.45368763079,629.41421305643,660.87215705217,693.9023601738,728.58340348685,764.99779551626,803.23216389999,843.37747981977,885.52924725223,929.78774807537,976.25827622702,1025.05138820617,1076.28316609431,1130.07549372248,1186.55634664103,1245.86008938569,1308.127826503],description:"33rd root of 5"},cet87:{frequencies:[261.6255653006,275.05808287728,289.18026151691,304.0275068203,319.63704721237,336.04802279017,353.30157737897,371.44097305523,390.51169339433,410.56155044631,431.64081781968,453.80235066263,477.10170997643,501.59731726833,527.35059397819,554.42610593952],description:"Least-squares stretched ET to telephone dial tones. 1/1=697 Hz"},cet88:{frequencies:[261.6255653006,275.26799068863,289.6217982776,304.72408298441,320.61387403473,337.33223582731,354.92237405774,373.42974737602,392.90218486657,413.39000965417,434.94616895528,457.62637091093,481.48922855473,506.59641128799,533.01280425363],description:"88 cents steps by Gary Morrison"},cet88_appr:{frequencies:[261.6255653006,275.62199471997,290.69507255622,305.22982618403,320.49131749323,336.37572681506,354.37113606854,373.75080757229,392.4383479509,413.43299207996,436.04260883433,457.84473927605,482.33849075995,504.56359022259,531.55670410281,560.62621135843,588.65752192635,620.14948811994,654.0639132515,686.76710891407,723.50773613993,763.07456546008,801.22829373309],description:"88 cents scale approximated"},cet88b:{frequencies:[261.6255653006,275.26385669298,289.61326650562,304.7105300898,320.59498481995,337.30729585456,354.89100872976,373.39113880701,392.85588995712,413.33509311257,434.8821088097,457.55209870333,481.40413163568,506.49927024418,532.9029023296],description:"87.9745 cents steps. Least squares of 7/6, 11/9, 10/7, 3/2, 7/4."},cet88bis:{frequencies:[261.6255653006,289.53272725508,320.41669955092,337.26306895804,373.23835706057,392.86190344834,434.76782633734,457.62637091093],description:"Bistep approximation of 2212121 mode in 7/4 to 11/9 9/7 10/7 3/2"},cet88bm:{frequencies:[261.6255653006,275.22889829239,289.53954239223,304.59427454323,320.43178392135,337.09277136281,354.62005396115,373.05867644715,392.45602022512,412.86193859025,434.32887139488,456.91198653787,480.66932039657,505.66192697453,531.95403480429],description:"87.75412 cents steps. Minimal highest deviation for 7/6, 11/9, 10/7, 3/2, 7/4."},cet88c:{frequencies:[261.6255653006,275.37188725148,289.84046967782,305.06925821769,321.09819727018,337.96933026971,355.72690383892,374.4174952616,394.09012940783,414.79640018179,436.59061916193,459.52995194191,483.67455974508,509.0877727469,535.83624905561,563.99013984227,593.62329144382,624.813430743,657.64235771869,692.19618110881,728.56553457307,766.84580121693,807.13738838693,849.54597972796,894.18279699007,941.16492045434,990.61558284509,1042.66447461031,1097.44811755542,1155.11020756021,1215.8019705522,1279.68259818323,1346.91964745566,1417.68945580607,1492.17764912727,1570.57960775359,1653.10095047047,1739.95812689496,1831.3789571042],description:"38th root of 7. McLaren 'Microtonal Music', volume 3, track 7"},cet89:{frequencies:[261.6255653006,275.56724848068,290.25186566903,305.71900507847,322.01036982349,339.16988002511,357.2437980159,376.28084921395,396.33236207144,417.45239374596,439.69788420361,463.12880499146,487.80833148705,513.80299757552,541.1828853206,570.0218080747,600.39752248465,632.39191886931,666.09125466774,701.58637981228,738.97299766656,778.35189934333,819.82925103406,863.51687139942,909.53255273344,958.00034936337,1009.05093129669,1062.82192563509,1119.45831186524,1179.11277682321,1241.94614996535,1308.127826503],description:"31st root of 5. McLaren 'Microtonal Music', volume 2, track 22"},cet90:{frequencies:[261.6255653006,275.62199471997,290.36720431405,305.90125228146,322.26633935092,339.50692625527,357.66984706396,376.80444887746,396.96271256675,418.19939952297,440.572208006,464.1419130862,488.97255163391,515.13157534193,542.69005603758,571.72285881831,602.3088534069,634.53113933145],description:"Scale with limma steps"},cet93:{frequencies:[261.6255653006,275.99488223824,291.15340824655,307.14448922429,324.01384989472,341.80973194459,360.58302103444,380.38739950036,401.27949808494,423.31905787312],description:"Tuning used in John Chowning's STRIA, 9th root of Phi"},cet98:{frequencies:[261.6255653006,276.83245825991,292.92324815749,309.94930780463,327.96500300935,347.02785219778,367.1987248383,388.54202015806,411.12588832951],description:"8th root of 11/7, X.J. Scott"},chahargah:{frequencies:[261.6255653006,277.18263097687,283.66146785671,311.12698372208,326.97270111135,348.82502010853,367.86341164695,392.44854854484,415.30469757995,425.01198472693,466.16376151809,493.88330125613,523.2511306012],description:"Chahargah in C"},chahargah2:{frequencies:[261.6255653006,283.66146785671,327.729041887,348.82502010853,392.44854854484,425.01198472693,493.88330125613,523.2511306012],description:"Dastgah Chahargah in C, Mohammad Reza Gharib"},chalmers:{frequencies:[261.6255653006,274.70684356563,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,418.60090448096,436.04260883433,457.84473927605,470.92601754108,488.36772189445,515.07533168556,523.2511306012],description:"Chalmers' 19-tone with more hexanies than Perrett's Tierce-Tone"},chalmers_17:{frequencies:[261.6255653006,269.10058145205,286.15296204753,294.32876096318,313.95067836072,327.03195662575,336.37572681506,343.38355445704,376.74081403286,384.42940207435,392.4383479509,400.61414686654,408.78994578219,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"7-limit figurative scale, Chalmers '96 Adnexed S&H decads"},chalmers_19:{frequencies:[261.6255653006,269.10058145205,290.69507255622,294.32876096318,305.22982618403,313.95067836072,336.37572681506,348.83408706747,356.10146388137,363.36884069528,376.74081403286,384.42940207435,392.4383479509,406.97310157871,436.04260883433,448.50096908674,465.11211608996,470.92601754108,508.71637697339,523.2511306012],description:"7-limit figurative scale. Reversed S&H decads"},chalmers_csurd:{frequencies:[261.6255653006,273.35108123154,287.04667286017,303.37994773979,315.80837468238,323.38635505005,348.83408706747,357.38803216938,383.0466618906,392.4383479509,423.31690179539,433.47765231178,451.2357321491,476.91154755397,500.80604115761,523.2511306012],description:"Combined Surd Scale, combination of Surd and Inverted Surd, JHC, 26-6-97"},chalmers_isurd:{frequencies:[261.6255653006,273.35108123154,287.04667286017,303.37994773979,323.38635505005,348.83408706747,383.0466618906,433.47765231178,523.2511306012],description:"Inverted Surd Scale, of the form 4/(SQRT(N)+1, JHC, 26-6-97"},chalmers_ji1:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,466.02053819169,490.54793493862,523.2511306012],description:"Based loosely on Wronski's and similar JI scales, May 2, 1997."},chalmers_ji2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,466.02053819169,490.54793493862,523.2511306012],description:"Based loosely on Wronski's and similar JI scales, May 2, 1997."},chalmers_ji3:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,366.27579142084,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"15 16 17 18 19 20 21 on 1/1, 15-20 on 3/2, May 2, 1997. See other scales"},chalmers_ji4:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,372.08969287196,395.34529867646,418.60090448096,441.85651028546,465.11211608996,496.11959049595,523.2511306012],description:"15 16 17 18 19 20 on 1/1, same on 4/3, + 16/15 on 16/9"},chalmers_surd:{frequencies:[261.6255653006,315.80837468238,357.38803216938,392.4383479509,423.31690179539,451.2357321491,476.91154755397,500.80604115761,523.2511306012],description:"Surd Scale, Surds of the form (SQRT(N)+1)/2, JHC, 26-6-97"},chalmers_surd2:{frequencies:[261.6255653006,272.2395613933,282.33485096279,291.98077704337,301.23248980765,310.13469895524,318.72425558532,327.03195662575,335.08385052998,342.90220911983,350.50624086893,357.91266581346,365.13613061818,372.18956061116,379.08442465499,385.8309605564,392.4383479509,398.91485744029,405.26796981327,411.50448329997,417.63058822561,423.65195171798,429.57376586736,435.40081471708,441.13750301549,446.78791303515,452.35581962987,457.84473927605,463.2579384726,468.59846621725,473.86917438523,479.07273156015,484.21164154672,489.28825377326,494.3047826718,499.26331035461,504.16580309972,509.01411882861,513.81001953884,518.55516185524,523.2511306012],description:"Surd Scale, Surds of the form (SQRT(N)+1)/4"},chalung:{frequencies:[261.6255653006,328.09251713275,362.03316295439,390.31715077734,479.41117101029,527.4935758042,647.70012555753,728.30917696308,823.06004869243,961.65052057178,1054.9871516084,1301.05663342451],description:'Tuning of chalung from Tasikmalaya. "slendroid". 1/1=185 Hz'},chaumont:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.49749487796,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.40109831725,489.02683710225,523.2511306012],description:"Lambert Chaumont organ temperament (1695), 1st interpretation"},chaumont2:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.30531842668,327.84547867349,349.70184487387,366.99801003998,391.46454285105,410.8262805401,438.2147004401,465.11211608996,490.54793493862,523.2511306012],description:"Lambert Chaumont organ temperament (1695), 2nd interpretation"},chimes:{frequencies:[261.6255653006,288.69027895239,130.8127826503,144.34513947619],description:"Heavenly Chimes"},chimes_peck:{frequencies:[261.6255653006,327.03195662575,392.4383479509,457.84473927605,588.65752192635,719.47030457665,850.28308722695,981.09586987725,1046.5022612024],description:"Kris Peck, 9-tone windchime tuning. TL 7-3-2001"},chin_12:{frequencies:[261.6255653006,277.05457499359,293.57996645301,310.53449241474,329.24697610111,347.79893712036,368.97000115401,391.76907592069,413.1274313058,439.00991514661,462.11551390967,491.43599249807,523.2511306012],description:"Chinese scale, 4th cent."},chin_5:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,441.49314144476,523.2511306012],description:"Chinese pentatonic from Zhou period"},chin_60:{frequencies:[261.6255653006,262.17244551937,265.19499215873,268.81311753311,272.48060600886,276.1981310001,279.38237857051,283.19406633357,287.05775848811,290.97416342694,294.32876096318,294.94400091442,298.34436617857,302.41475692242,306.54068145351,310.72289706448,314.30517589183,318.59332496145,322.93997797627,327.34593352805,331.11985608357,331.812000697,335.63741195089,340.21660119759,344.85826629043,349.56326086722,353.59332287831,358.41749022331,363.30747486009,368.26417485089,372.50983809402,373.28850041093,377.59208844475,382.74367817547,387.96555142985,392.4383479509,393.25866808247,397.79248823809,403.21967609811,408.72090880899,414.29719629306,419.07356785577,424.79110016094,430.58663751693,436.46124492224,441.49314144476,442.41600115048,447.51654926786,453.62213515688,459.81102195042,466.08434536373,471.45776383774,477.8899872033,484.40996672226,491.01890004663,496.67978412536,497.7180007967,503.45611792634,510.32490448905,517.28740216504,523.2511306012],description:'Chinese scale of fifths (the 60 lu")'},chin_7:{frequencies:[261.6255653006,294.32876096318,331.11985608357,348.83408706747,392.4383479509,441.49314144476,496.67978412536,523.2511306012],description:"Chinese heptatonic scale and tritriadic of 64:81:96 triad"},chin_bianzhong:{frequencies:[261.6255653006,277.82379926216,312.56802260838,375.1593523779,420.13030572059,469.40618689596,506.59641128799,563.72967895209,627.66881138238,764.75812197709,849.53311813274,949.1724262561,1225.95732655636],description:"Pitches of Bianzhong bells (Xinyang). 1/1=b, Liang Mingyue, 1975."},chin_bianzhong2a:{frequencies:[261.6255653006,284.81073476233,312.56802260838,372.56793743951,413.39000965417,447.94973572445,491.60634075178,562.75365576207,652.05945856061,695.63805470995,863.88355261715,960.75607282217,1173.30283584026],description:"A-tones (GU) of 13 Xinyang bells (Ma Cheng-Yuan) 1/1=d#=619 Hz"},chin_bianzhong2b:{frequencies:[261.6255653006,279.59231184543,312.74738729016,375.37536096215,418.43048063126,468.86028020615,505.12945327459,562.08698385796,624.42058858709,762.97988553915,849.53425657971,936.08862980659,1215.37624187632],description:"B-tones (SUI) of 13 Xinyang bells (Ma Cheng-Yuan) 1/1=b+=506.6 Hz"},chin_bianzhong3:{frequencies:[261.6255653006,508.3551866238,542.32970395878,608.04166718582,619.02750937577,673.88551872153,729.80120031671,739.56153452917,812.57643344187,881.52624580654,911.03313298042,978.11461117351,982.0774855146,1059.88575280263,1092.20381072382,1163.18085489566,1213.27682870749,1331.52122774489,1483.40111876828,1542.82606951623,1645.93659621657,1649.74391394557,1818.91159982256,2044.01922018919,2273.22753490632,2362.92760489328,2776.13057951436],description:"A and B-tones of 13 Xinyang bells (Ma Cheng-Yuan) abs. pitches wrt middle-C"},chin_bronze:{frequencies:[261.6255653006,299.00064605783,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:`Scale found on ancient Chinese bronze instrument 3rd c.BC & "Scholar's Lute"`},chin_chime:{frequencies:[261.6255653006,248.6592656401,341.74499057264,392.56190849927,548.78974538591,648.86582834888,714.36935367713,785.57745330134,889.7110417619,886.88898199546,992.62825668803,1044.08711871947,1326.14827969763],description:"Pitches of 12 stone chimes, F. Kuttner, 1951, ROMA Toronto. %1=b4"},chin_ching:{frequencies:[261.6255653006,276.1981310001,294.32876096318,310.72289706448,331.11985608357,349.56326086722,368.26417485089,392.4383479509,414.29719629306,441.49314144476,466.08434536373,496.67978412536,524.34489103873],description:"Scale of Ching Fang, c.45 BC. Pyth.steps 0 1 2 3 4 5 47 48 49 50 51 52 53"},chin_di:{frequencies:[261.6255653006,298.70635408336,316.56004827153,360.50766037677,409.94872043165,433.75364775074,527.37121036213],description:"Chinese di scale"},chin_di2:{frequencies:[261.6255653006,289.95657583698,318.21537073485,338.89464890898,383.48501130814,436.9606979923,494.73987775324,522.04355935974],description:"Observed tuning from Chinese flute dizi, Helmholtz/Ellis p. 518, nr.103"},chin_huang:{frequencies:[261.6255653006,331.11985608357,392.4383479509,441.49314144476,523.2511306012,588.65752192635,662.23971216714],description:"Huang Zhong qin tuning"},"chin_liu-an":{frequencies:[261.6255653006,278.83777354406,294.32876096318,311.64221749042,331.11985608357,353.19451315581,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,492.82955324067],description:'Scale of Liu An, in: "Huai Nan Tzu", c.122 BC, 1st known corr. to Pyth. scale'},chin_lu:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,328.55303549378,348.83408706747,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,495.71159741166,523.2511306012],description:"Chinese L\xEF\xBF\xBD scale by Huai Nan zi, Han era. P\xEF\xBF\xBDre Amiot 1780, Kurt Reinhard"},chin_lu2:{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,331.11985608357,353.59332287831,372.50983809402,392.4383479509,419.07356785577,441.49314144476,471.45776383774,496.67978412536,523.2511306012],description:"Chinese L\xEF\xBF\xBD (Lushi chunqiu, by Lu Buwei). Mingyue: Music of the billion, p.67"},chin_lu3:{frequencies:[261.6255653006,277.34278419245,293.66476791741,310.58830860439,329.24697610111,347.81902735497,369.14054089803,391.76907592069,413.1512951712,439.23819834286,462.1422075194,491.60634075178,523.2511306012],description:"Chinese L\xEF\xBF\xBD scale by Ho Ch'\xEF\xBF\xBDng-T'ien, reported in Sung Shu (500 AD)"},chin_lu3a:{frequencies:[261.6255653006,277.06033146978,293.58830182213,310.53780743131,329.25144446584,347.79484055318,368.74579520635,391.78066943209,413.13681807919,438.99947255393,462.1072190611,491.17907538715,523.2511306012],description:`Chinese L\xEF\xBF\xBD scale by Ho Ch'\xEF\xBF\xBDng-T'ien, calc. basis is "big number" 177147`},chin_lu4:{frequencies:[261.6255653006,276.78521684908,293.5444075184,310.55356739316,329.35741152087,348.44172229085,369.5396750577,391.9150968203,414.62425518576,439.72952246257,465.20924434298,493.37740286979,523.2511306012],description:'Chinese L\xEF\xBF\xBD "749-Temperament"'},chin_lu5:{frequencies:[261.6255653006,277.35401920913,293.41471131112,311.37240624271,329.40299530711,349.20610523279,369.80535913035,392.03738806826,415.16320853113,440.12206674667,466.08434536373,494.10449271367,522.71643616375],description:"Chinese L\xEF\xBF\xBD scale by Ch'ien Lo-Chih, c.450 AD Pyth.steps 0 154 255 103 204 etc."},chin_lusheng:{frequencies:[261.6255653006,316.38258506467,348.82502010853,389.28772571905,466.97226207056,520.53801357752],description:"Observed tuning of a small Lusheng, 1/1=d, OdC '97"},chin_pan:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Pan Huai-su pure system, in: Sin-Yan Shen, 1991"},chin_pipa:{frequencies:[261.6255653006,284.4818984792,320.42873367481,380.17671965621,433.44136952667,521.74210224793],description:"Observed tuning from Chinese balloon lute p'i-p'a, Helmholtz/Ellis p. 518, nr.109"},chin_sheng:{frequencies:[261.6255653006,295.36595061166,318.03161540472,348.82502010853,395.40657391157,442.03793673691,477.05982293263,522.94897617031],description:"Observed tuning from Chinese sheng or mouth organ, Helmholtz/Ellis p. 518, nr.105"},chin_sientsu:{frequencies:[261.6255653006,291.80478157373,326.97270111135,392.44854854484,438.22451411849,523.2511306012],description:"Observed tuning from Chinese tamboura sienzi, Helmholtz/Ellis p. 518, nr.108"},chin_sona:{frequencies:[261.6255653006,284.4818984792,310.58830860439,337.33223582731,377.98706287655,418.43499793376,469.94877954106,528.10941333272],description:"Observed tuning from Chinese oboe (so-na), Helmholtz/Ellis p. 518, nr.104"},"chin_wang-po":{frequencies:[261.6255653006,294.32876096318,330.24264909897,371.97947673071,392.4383479509,440.94196398978,495.71159741166,517.50111817701],description:"Scale of Wang Po, 958 AD. H. Pischner: Musik in China, Berlin, 1955, p.20"},chin_yangqin:{frequencies:[261.6255653006,288.45311779165,306.48933163909,347.41744306689,383.26356564167,434.44398956347,465.08793784701,522.64699622026],description:"Observed tuning from Chinese dulcimer yangqin, Helmholtz/Ellis p. 518, nr.107"},chin_yunlo:{frequencies:[261.6255653006,288.45311779165,323.40385076956,367.0144478307,386.1523605003,409.35055662695,483.1608380663,525.67465946865],description:"Observed tuning from Chinese gong-chime (y\xEF\xBF\xBDn-lo), Helmholtz/Ellis p. 518, nr.106"},choquel:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,475.68284600109,490.54793493862,523.2511306012],description:"Choquel/Barbour/Marpurg?"},chordal:{frequencies:[261.6255653006,392.4383479509,327.03195662575,457.84473927605,588.65752192635,719.47030457665,850.28308722695,981.09586987725,981.09586987725,490.54793493862,555.95432626377,621.36071758893,310.68035879446,523.2511306012,348.83408706747,418.60090448096,299.00064605783,465.11211608996,380.54627680087,322.00069575458,279.06726965397,610.45965236807,915.6894785521,872.08521766867,697.66817413493,654.0639132515,627.90135672144,448.50096908674,319.76457981184,377.90359432309,444.76346101102,889.52692202204,336.37572681506,294.32876096318,465.11211608996,411.12588832951,305.22982618403,366.27579142084,373.75080757229,313.95067836072,470.92601754108],description:"Chordal Notes S&H"},chrom15:{frequencies:[261.6255653006,280.31310567921,301.87565226992,356.76213450082,392.4383479509,413.09299784305,436.04260883433,523.2511306012],description:"Tonos-15 Chromatic"},chrom15_inv:{frequencies:[261.6255653006,313.95067836072,331.39238271409,348.83408706747,383.71749577421,453.48431318771,488.36772189445,523.2511306012],description:"Inverted Chromatic Tonos-15 Harmonia"},chrom15_inv2:{frequencies:[261.6255653006,279.06726965397,296.50897400735,348.83408706747,383.71749577421,401.15920012759,418.60090448096,523.2511306012],description:"A harmonic form of the Chromatic Tonos-15 inverted"},chrom17:{frequencies:[261.6255653006,277.97716313189,296.50897400735,370.63621750918,404.33041910093,423.58424858192,444.76346101102,523.2511306012],description:"Tonos-17 Chromatic"},chrom17_con:{frequencies:[261.6255653006,277.97716313189,296.50897400735,370.63621750918,386.75083566176,404.33041910093,494.18162334558,523.2511306012],description:"Conjunct Tonos-17 Chromatic"},chrom19:{frequencies:[261.6255653006,276.16031892841,292.40504357126,355.06326719367,382.37582620857,397.67085925691,414.24047839262,523.2511306012],description:"Tonos-19 Chromatic"},chrom19_con:{frequencies:[261.6255653006,276.16031892841,292.40504357126,355.06326719367,368.21375857121,382.37582620857,451.89870370104,523.2511306012],description:"Conjunct Tonos-19 Chromatic"},chrom21:{frequencies:[261.6255653006,274.70684356563,289.16509849014,343.38355445704,392.4383479509,406.97310157871,422.62591317789,523.2511306012],description:"Tonos-21 Chromatic"},chrom21_inv:{frequencies:[261.6255653006,323.91736656265,336.37572681506,348.83408706747,398.6675280771,473.41768959156,498.33441009638,523.2511306012],description:"Inverted Chromatic Tonos-21 Harmonia"},chrom21_inv2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,398.6675280771,423.58424858192,448.50096908674,523.2511306012],description:"Inverted harmonic form of the Chromatic Tonos-21"},chrom23:{frequencies:[261.6255653006,273.51763645063,286.54228580542,334.29933343966,376.08675011961,401.15920012759,429.81342870813,523.2511306012],description:"Tonos-23 Chromatic"},chrom23_con:{frequencies:[261.6255653006,273.51763645063,286.54228580542,334.29933343966,353.96400011258,376.08675011961,462.87600014722,523.2511306012],description:"Conjunct Tonos-23 Chromatic"},chrom25:{frequencies:[261.6255653006,278.32506946872,297.30177875068,363.36884069528,408.78994578219,436.04260883433,467.18850946536,523.2511306012],description:"Tonos-25 Chromatic"},chrom25_con:{frequencies:[261.6255653006,278.32506946872,297.30177875068,363.36884069528,384.74347838324,408.78994578219,503.12608711654,523.2511306012],description:"Conjunct Tonos-25 Chromatic"},chrom27:{frequencies:[261.6255653006,277.01530443593,294.32876096318,353.19451315581,392.4383479509,415.52295665389,441.49314144476,523.2511306012],description:"Tonos-27 Chromatic"},chrom27_inv:{frequencies:[261.6255653006,310.07474405997,329.45441556372,348.83408706747,387.59343007496,465.11211608996,494.18162334558,523.2511306012],description:"Inverted Chromatic Tonos-27 Harmonia"},chrom27_inv2:{frequencies:[261.6255653006,271.31540105247,281.00523680435,348.83408706747,387.59343007496,406.97310157871,436.04260883433,523.2511306012],description:"Inverted harmonic form of the Chromatic Tonos-27"},chrom29:{frequencies:[261.6255653006,270.96933548991,281.00523680435,344.87006335079,379.35706968587,399.32323124828,421.50785520652,523.2511306012],description:"Tonos-29 Chromatic"},chrom29_con:{frequencies:[261.6255653006,270.96933548991,281.00523680435,344.87006335079,361.29244731988,379.35706968587,474.19633710734,523.2511306012],description:"Conjunct Tonos-29 Chromatic"},chrom31:{frequencies:[261.6255653006,279.66870773512,300.3849083081,337.93302184661,352.6257619269,368.65420565085,386.2091678247,405.51962621593,523.2511306012],description:"Tonos-31 Chromatic. Tone 24 alternates with 23 as MESE or A"},chrom31_con:{frequencies:[261.6255653006,279.66870773512,300.3849083081,337.93302184661,352.6257619269,368.65420565085,386.2091678247,450.57736246214,523.2511306012],description:"Conjunct Tonos-31 Chromatic"},chrom33:{frequencies:[261.6255653006,278.50463402967,297.71185016965,359.73515228832,392.4383479509,411.12588832951,431.68218274599,523.2511306012],description:"Tonos-33 Chromatic. A variant is 66 63 60 48"},chrom33_con:{frequencies:[261.6255653006,278.50463402967,297.71185016965,359.73515228832,375.37581108347,392.4383479509,479.64686971777,523.2511306012],description:"Conjunct Tonos-33 Chromatic"},chrom_new:{frequencies:[261.6255653006,273.20871865617,297.93622032612,349.22823143301,391.99543598175,409.35055662695,446.39994737251,523.2511306012],description:"New Chromatic genus 4.5 + 9 + 16.5"},chrom_new2:{frequencies:[261.6255653006,273.6474710507,299.37374239667,349.22823143301,391.99543598175,410.00794244467,448.55379686399,523.2511306012],description:"New Chromatic genus 14/3 + 28/3 + 16 parts"},chrom_soft:{frequencies:[261.6255653006,271.68808704293,282.55561052465,348.83408706747,392.4383479509,407.5321305644,423.83341578697,523.2511306012],description:"100/81 Chromatic. This genus is a good approximation to the soft chromatic"},chrom_soft2:{frequencies:[261.6255653006,268.42893440103,282.57118533961,349.22823143301,391.99543598175,402.18897205153,423.37840671577,523.2511306012],description:"1:2 Soft Chromatic"},chrom_soft3:{frequencies:[261.6255653006,271.31540105247,281.75060878526,348.83408706747,392.4383479509,406.97310157871,422.62591317789,523.2511306012],description:"Soft chromatic genus is from K. Schlesinger's modified Mixolydian Harmonia"},cifariello:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"F. Cifariello Ciardi, ICMC 86 Proc. 15-tone 5-limit tuning"},ckring1:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,523.2511306012],description:"Double-tie circular mirroring with common pivot of 4:5:6:7 = square 1 3 5 7"},ckring2:{frequencies:[261.6255653006,290.69507255622,305.22982618403,313.95067836072,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,436.04260883433,448.50096908674,470.92601754108,523.2511306012],description:"Double-tie circular mirroring with common pivot of 3:5:7:9"},"clampitt-phi":{frequencies:[261.6255653006,289.46753582364,320.2724252102,340.92857683151,377.20990650852,444.26963537301,491.54843559637,523.2511306012],description:'David Clampitt, phi+1 mod 3phi+2, from "Pairwise Well-Formed Scales", 1997'},classr:{frequencies:[261.6255653006,275.93321340298,287.4304306281,313.95067836072,327.03195662575,344.91651675372,367.91095120397,392.4383479509,408.78994578219,441.49314144476,459.88868900496,490.54793493862,523.2511306012],description:"Marvel projection to the 5-limit of class"},cluster:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"13-tone 5-limit Tritriadic Cluster"},cluster6a:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Six-Tone Triadic Cluster 4:5:6"},cluster6b:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Six-Tone Triadic Cluster 4:6:5"},cluster6c:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,418.60090448096,436.04260883433,523.2511306012],description:"Six-Tone Triadic Cluster 3:4:5"},cluster6d:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Six-Tone Triadic Cluster 3:5:4"},cluster6e:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Six-Tone Triadic Cluster 5:6:8"},cluster6f:{frequencies:[261.6255653006,313.95067836072,348.83408706747,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"Six-Tone Triadic Cluster 5:8:6"},cluster6g:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,457.84473927605,523.2511306012],description:"Six-Tone Triadic Cluster 4:5:7"},cluster6h:{frequencies:[261.6255653006,286.15296204753,327.03195662575,366.27579142084,418.60090448096,457.84473927605,523.2511306012],description:"Six-Tone Triadic Cluster 4:7:5"},cluster6i:{frequencies:[261.6255653006,313.95067836072,366.27579142084,373.75080757229,439.53094970501,448.50096908674,523.2511306012],description:"Six-Tone Triadic Cluster 5:6:7"},cluster6j:{frequencies:[261.6255653006,305.22982618403,313.95067836072,366.27579142084,436.04260883433,439.53094970501,523.2511306012],description:"Six-Tone Triadic Cluster 5:7:6"},cluster8a:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Eight-Tone Triadic Cluster 4:5:6"},cluster8b:{frequencies:[261.6255653006,306.59245933664,313.95067836072,327.03195662575,392.4383479509,408.78994578219,418.60090448096,490.54793493862,523.2511306012],description:"Eight-Tone Triadic Cluster 4:6:5"},cluster8c:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,363.36884069528,418.60090448096,436.04260883433,484.4917875937,523.2511306012],description:"Eight-Tone Triadic Cluster 3:4:5"},cluster8d:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,387.59343007496,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"Eight-Tone Triadic Cluster 3:5:4"},cluster8e:{frequencies:[261.6255653006,313.95067836072,327.03195662575,334.88072358477,392.4383479509,401.85686830172,418.60090448096,502.32108537715,523.2511306012],description:"Eight-Tone Triadic Cluster 5:6:8"},cluster8f:{frequencies:[261.6255653006,301.39265122629,313.95067836072,348.83408706747,376.74081403286,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"Eight-Tone Triadic Cluster 5:8:6"},cluster8g:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Eight-Tone Triadic Cluster 4:5:7"},cluster8h:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,366.27579142084,408.78994578219,418.60090448096,457.84473927605,523.2511306012],description:"Eight-Tone Triadic Cluster 4:7:5"},cluster8i:{frequencies:[261.6255653006,307.67166479351,313.95067836072,366.27579142084,373.75080757229,439.53094970501,448.50096908674,512.78610798918,523.2511306012],description:"Eight-Tone Triadic Cluster 5:6:7"},cluster8j:{frequencies:[261.6255653006,263.718569823,305.22982618403,313.95067836072,366.27579142084,376.74081403286,436.04260883433,439.53094970501,523.2511306012],description:"Eight-Tone Triadic Cluster 5:7:6"},cohenf_11:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,523.2511306012],description:`Flynn Cohen, 7-limit scale of "Rameau's nephew", 1996`},coleman:{frequencies:[261.6255653006,276.70272600503,293.15632631094,310.58830860439,328.48713220126,349.43001184052,368.92737853004,391.76907592069,414.58565256441,438.98455767189,465.89457252293,491.89038573682,523.2511306012],description:"Jim Coleman's ModX piano temperament. TL 16 Mar 1999"},collengettes:{frequencies:[261.6255653006,269.10058145205,275.62199471997,285.40970760065,294.32876096318,302.73815413355,310.07474405997,321.08592105074,331.11985608357,340.58042340025,348.83408706747,358.80077526939,367.49599295996,380.54627680087,392.4383479509,403.65087217807,413.43299207996,428.11456140098,441.49314144476,454.10723120033,465.11211608996,478.40103369253,496.67978412536,507.3950357345,523.2511306012],description:"R.P. Collengettes, from p.23 of d'Erlanger, vol 5. 24 tone Arabic system"},colonna1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,308.86351459099,327.03195662575,348.83408706747,363.36884069528,392.4383479509,399.70572476481,436.04260883433,463.29527188648,490.54793493862,523.2511306012],description:"Colonna 1"},colonna2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,479.64686971777,523.2511306012],description:"Colonna 2"},concertina:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"English Concertina, Helmholtz/Ellis, p. 470"},cons11:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 11 not exceeding 2/1"},cons12:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 12 not exceeding 2/1"},cons13:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 13 not exceeding 2/1"},cons14:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 14 not exceeding 2/1"},cons15:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 15 not exceeding 2/1"},cons16:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 16 not exceeding 2/1"},cons17:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 17 not exceeding 2/1"},cons18:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 18 not exceeding 2/1"},cons19:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 19 not exceeding 2/1"},cons20:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Set of intervals with num + den <= 20 not exceeding 2/1"},cons21:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Set of intervals with num + den <= 21 not exceeding 2/1"},cons8:{frequencies:[261.6255653006,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Set of intervals with num + den <= 8 not exceeding 2/1"},cons9:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Set of intervals with num + den <= 9 not exceeding 2/1"},cons_5:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,523.2511306012],description:"Set of consonant 5-limit intervals within the octave"},cons_7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605],description:"Set of consonant 7-limit intervals of tetrad 4:5:6:7 and inverse"},cons_7a:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605],description:"Set of consonant 7-limit intervals, harmonic entropy minima"},cont_frac1:{frequencies:[261.6255653006,264.29672053658,267.01859068163,284.39991302433,288.64312378534,304.51680721446,328.36325429535,342.47239171077,368.24757473349,390.36247006958,408.23697512781,419.80330474394,448.3033221197,488.42606438843,498.20005830409],description:"Continued fraction scale 1, see McLaren in Xenharmonikon 15, pp.33-38"},cont_frac2:{frequencies:[261.6255653006,268.67076720771,283.00159623424,287.78825007941,303.56038377389,306.30898587133,329.63288816559,333.85601282718,352.97051886932,380.09613548074,393.10104267352,426.45795861378,432.83315799354,472.91012288255,483.94654132265,519.4303061261],description:"Continued fraction scale 2, see McLaren in Xenharmonikon 15, pp.33-38"},cordier:{frequencies:[261.6255653006,277.2273508585,293.75953199293,311.27759533081,329.84032939425,349.51003591412,370.35272620855,392.4383479509,415.84102607989,440.63929776914,466.91639276282,494.76049384407,524.26505360912],description:"Serge Cordier, piano tuning, 1975 (Piano bien temp\xEF\xBF\xBDr\xEF\xBF\xBD et justesse orchestrale)"},corner11:{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,314.76825825228,327.03195662575,343.38355445704,359.73515228832,392.4383479509,400.61414686654,408.78994578219,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 11-limit. Chalmers '96"},corner13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,359.73515228832,371.99885066179,392.4383479509,400.61414686654,408.78994578219,425.14154361347,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 13-limit. Chalmers '96"},corner17:{frequencies:[261.6255653006,265.71346475842,269.80136421624,277.97716313189,286.15296204753,292.28481123426,294.32876096318,295.35073582763,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,347.47145391486,359.73515228832,371.99885066179,382.21859930635,392.4383479509,400.61414686654,408.78994578219,416.96574469783,425.14154361347,449.66894036041,451.71289008932,457.84473927605,486.4600354808,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 17-limit."},corner17a:{frequencies:[261.6255653006,265.71346475842,269.80136421624,275.93321340298,277.97716313189,286.15296204753,292.28481123426,294.32876096318,295.35073582763,306.59245933664,312.72430852337,314.76825825228,318.85615771011,327.03195662575,331.11985608357,337.2517052703,343.38355445704,345.42750418595,347.47145391486,359.73515228832,367.91095120397,371.99885066179,382.21859930635,392.4383479509,398.57019713763,400.61414686654,404.70204632437,408.78994578219,416.96574469783,425.14154361347,429.2294430713,441.49314144476,449.66894036041,451.71289008932,457.84473927605,459.88868900496,478.28423656516,486.4600354808,490.54793493862,494.63583439645,515.07533168556,521.20718087229,523.2511306012],description:"Quadratic Corner 17 odd limit."},corner7:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,343.38355445704,392.4383479509,400.61414686654,408.78994578219,457.84473927605,490.54793493862,523.2511306012],description:"Quadratic corner 7-limit. Chalmers '96"},corner9:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,331.11985608357,343.38355445704,367.91095120397,392.4383479509,400.61414686654,408.78994578219,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"First 9 harmonics of 5th through 9th harmonics"},corners11:{frequencies:[261.6255653006,269.80136421624,276.76092858245,279.06726965397,286.15296204753,294.32876096318,299.00064605783,304.4370214407,314.76825825228,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,359.73515228832,380.54627680087,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,434.91003062957,449.66894036041,457.84473927605,465.11211608996,478.40103369253,490.54793493862,494.63583439645,507.3950357345,523.2511306012],description:"Quadratic Corners 11-limit. Chalmers '96"},corners13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,276.76092858245,279.06726965397,286.15296204753,292.28481123426,294.32876096318,299.00064605783,304.4370214407,314.76825825228,318.85615771011,322.00069575458,327.03195662575,334.88072358477,341.71502406609,343.38355445704,345.42750418595,348.83408706747,359.73515228832,368.0007951481,371.99885066179,380.54627680087,392.4383479509,396.30854862103,398.6675280771,400.61414686654,408.78994578219,418.60090448096,425.14154361347,429.33426100611,434.91003062957,449.66894036041,457.84473927605,465.11211608996,468.3646483703,478.40103369253,490.54793493862,494.63583439645,507.3950357345,515.20111320734,523.2511306012],description:"Quadratic Corners 13-limit. Chalmers '96"},corners7:{frequencies:[261.6255653006,279.06726965397,286.15296204753,294.32876096318,299.00064605783,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,457.84473927605,465.11211608996,478.40103369253,490.54793493862,523.2511306012],description:"Quadratic Corners 7-limit. Chalmers '96"},corrette:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.11326130363,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.33704984564,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Corrette temperament"},corrette2:{frequencies:[261.6255653006,272.8349596094,292.34127285051,310.42509491746,326.6631048533,350.01785633742,365.01443422269,391.11111150212,409.71484950008,437.02884834934,466.16376151809,488.33748205014,523.2511306012],description:"Michel Corrette, modified meantone temperament (1753)"},coul_12:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,340.65828815182,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Scale 1 5/4 3/2 2 successively split largest intervals by smallest interval"},coul_12a:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Scale 1 6/5 3/2 2 successively split largest intervals by smallest interval"},coul_12sup:{frequencies:[261.6255653006,280.31310567921,294.32876096318,310.68035879446,331.39238271409,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,466.02053819169,497.08857407114,523.2511306012],description:"Superparticular approximation to Pythagorean scale. Op de Coul, 2003"},coul_13:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Symmetrical 13-tone 5-limit just system"},coul_17sup:{frequencies:[261.6255653006,276.16031892841,279.06726965397,294.57100685697,310.07474405997,313.95067836072,331.39238271409,348.83408706747,368.21375857121,372.08969287196,392.76134247596,413.43299207996,418.60090448096,441.85651028546,465.11211608996,470.92601754108,497.08857407114,523.2511306012],description:"Superparticular approximation to Pythagorean 17-tone scale. Op de Coul, 2003"},coul_20:{frequencies:[261.6255653006,277.18263097687,282.2367833559,293.66476791741,305.55548036855,311.12698372208,329.62755691287,335.63799088232,349.22823143301,363.36884069528,369.99442271164,391.99543598175,399.14308682247,415.30469757995,432.12070439462,440,466.16376151809,474.66379875343,493.88330125613,513.88101620607,523.2511306012],description:"Tuning for a 3-row symmetrical keyboard, Op de Coul, 1989"},coul_27:{frequencies:[261.6255653006,275.62199471997,275.93321340298,279.06726965397,293.99679436797,294.32876096318,310.07474405997,310.42486507835,327.03195662575,330.74639366397,331.11985608357,348.83408706747,367.49599295996,367.91095120397,372.08969287196,372.50983809402,392.4383479509,413.43299207996,413.89982010446,418.60090448096,440.99519155196,441.49314144476,465.11211608996,465.63729761752,490.54793493862,496.11959049595,496.67978412536,523.2511306012],description:"Symmetrical 27-tone 5-limit just system, 67108864/66430125 and 25/24"},counterschismic:{frequencies:[261.6255653006,265.12640119254,268.67408364533,272.2692364133,275.65170316539,279.34022410565,283.07810312094,286.865997406,290.70457953408,294.3160713245,298.25434362449,302.24531258767,306.28968684494,310.09479611189,314.24420508029,318.4491358588,322.71033506911,327.0285519162,331.0913069245,335.5216703313,340.01131880467,344.56104171562,348.84160709651,353.50948891197,358.2398341551,363.03347451625,367.54352740958,372.46166135084,377.44560747755,382.49624206822,387.61445966759,392.4298881006,397.68103103357,403.0024376988,408.3950505989,413.46864135256,419.00130591222,424.60800114791,430.28972009123,436.04746916004,441.46459261549,447.37187116862,453.35819556254,459.4246261707,465.13216971689,471.35614630867,477.663406507,484.05506753352,490.06860102591,496.62625431187,503.27165616309,510.00598369715,516.83042094502,523.2511306012],description:"Counterschismic temperament, g=498.082318, 5-limit"},couperin:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.28785294636,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.24345038333,489.02683710225,523.2511306012],description:"Couperin modified meantone"},cross13:{frequencies:[261.6255653006,281.75060878526,285.40970760065,290.69507255622,299.00064605783,305.22982618403,322.00069575458,332.97799220076,336.37572681506,366.27579142084,373.75080757229,406.97310157871,411.12588832951,425.14154361347,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"13-limit harmonic/subharmonic cross"},cross2:{frequencies:[261.6255653006,282.55561052465,339.14425131559,366.27579142084,436.04260883433,470.92601754108,560.62621135843,605.4763082671,726.73768139056,784.8766959018],description:"Pusey's double 5-7 cross reduced by 3/1"},cross2_5:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,392.4383479509,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"double 3-5 cross reduced by 2/1"},cross2_7:{frequencies:[261.6255653006,294.32876096318,299.00064605783,327.03195662575,334.88072358477,341.71502406609,348.83408706747,392.4383479509,400.61414686654,408.78994578219,418.60090448096,457.84473927605,465.11211608996,523.2511306012],description:"longer 3-5-7 cross reduced by 2/1"},cross3:{frequencies:[261.6255653006,282.55561052465,311.45900631024,336.37572681506,363.28578496026,403.74315632809,436.04260883433,470.92601754108,508.60009894437,565.24041885932,610.45965236807,659.29642455751,726.73768139056,784.8766959018],description:"Pusey's triple 5-7 cross reduced by 3/1"},cross_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,348.83408706747,392.4383479509,418.60090448096,457.84473927605,523.2511306012],description:"3-5-7 cross reduced by 2/1, quasi diatonic, similar to Zalzal's, Flynn Cohen"},cross_72:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,313.95067836072,343.38355445704,348.83408706747,392.4383479509,398.6675280771,436.04260883433,448.50096908674,465.11211608996,490.54793493862,523.2511306012],description:"double 3-5-7 cross reduced by 2/1"},cross_7a:{frequencies:[261.6255653006,336.37572681506,392.4383479509,436.04260883433,470.92601754108,523.2511306012,610.45965236807,784.8766959018],description:"2-5-7 cross reduced by 3/1"},cruciform:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Cruciform Lattice"},galilei:{frequencies:[261.6255653006,277.66336828161,293.32570896007,311.30674962848,328.86683469969,348.2210758395,368.7143392539,390.41365788584,413.39000965417,437.71854962063,463.47885582013,490.75518955849,523.2511306012],description:"Vincenzo Galilei's approximation"},gamelan_om:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Other Music gamelan (7 limit black keys)"},gamelan_udan:{frequencies:[261.6255653006,261.6255653006,290.69507255622,305.22982618403,334.88072358477,351.32575911795,364.00078650518,392.4383479509,402.50086969323,465.11211608996,465.11211608996,501.44900015948,523.2511306012],description:"Gamelan Udan Mas (approx) s6,p6,p7,s1,p1,s2,p2,p3,s3,p4,s5,p5"},ganassi:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,369.35373924791,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Sylvestro Ganassi's temperament (1543)"},gann_custer:{frequencies:[261.6255653006,269.80136421624,274.70684356563,279.06726965397,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,380.54627680087,392.4383479509,406.97310157871,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,507.3950357345,523.2511306012],description:"Kyle Gann, scale from Custer's Ghost to Sitting Bull, 1/1=G"},gann_frac:{frequencies:[261.6255653006,264.89588486686,294.32876096318,305.22982618403,309.04519901133,313.95067836072,348.83408706747,353.19451315581,366.27579142084,392.4383479509,397.34382730029,412.06026534844,418.60090448096,423.83341578697,457.84473927605,470.92601754108,523.2511306012],description:"Kyle Gann, scale from Fractured Paradise, 1/1=B"},gann_ghost:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Kyle Gann, scale from Ghost Town, 1/1=E"},gann_super:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"Kyle Gann, scale from Superparticular Woman (1992), 1/1=G"},gann_things:{frequencies:[261.6255653006,266.47048317654,272.52663052146,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,343.38355445704,348.83408706747,373.75080757229,387.59343007496,392.4383479509,406.97310157871,408.78994578219,436.04260883433,448.50096908674,465.11211608996,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Kyle Gann, scale from How Miraculous Things Happen, 1/1=A"},garcia:{frequencies:[261.6255653006,268.33391312882,271.68808704293,279.06726965397,286.22284067074,294.32876096318,301.87565226992,310.07474405997,313.95067836072,322.00069575458,331.11985608357,339.61010880366,348.83408706747,357.77855083843,362.25078272391,372.08969287196,381.63045422766,392.4383479509,402.50086969323,407.5321305644,418.60090448096,429.33426100611,441.49314144476,452.81347840488,465.11211608996,470.92601754108,483.00104363188,496.11959049595,509.4151632055,523.2511306012],description:"Linear 29-tone scale by Jos\xEF\xBF\xBD L. Garcia, 1988 15/13-52/45 alternating"},garibaldi24:{frequencies:[261.6255653006,271.45160478635,275.48458787532,290.07776082447,294.38747453868,305.44397410364,309.9819851541,326.40257969757,331.25197480486,343.69301829526,348.79929894143,361.89937857146,367.27615309757,386.73177659938,392.47748849606,407.21801775129,413.26809573999,435.16003837828,441.62525370518,458.21165716245,465.0193526482,489.65270106975,496.92751922541,515.59094540799,523.2511306012],description:"Garibaldi[24] in 94-tET tuning."},genovese:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,296.50897400735,299.00064605783,301.87565226992,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,338.57426097725,340.11323489078,342.12573923925,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,400.13321751856,402.50086969323,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,453.48431318771,457.84473927605,461.69217405988,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Denny Genovese's 65-note scale. 3/2=384 Hz"},genovese_12:{frequencies:[261.6255653006,285.40970760065,294.32876096318,313.95067836072,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Denny Genovese's superposition of harmonics 8-16 and subharmonics 6-12"},genovese_38:{frequencies:[261.6255653006,280.31310567921,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Denny Genovese's 38-note scale. Harm 1..16 x Subh. 1..12"},"gf1-2":{frequencies:[261.6255653006,269.29177952703,277.18263097687,285.30470202322,293.66476791741,311.12698372208,320.24370022528,339.28638158975,349.22823143301,359.46139971304,380.8360868427,403.48177901006,415.30469757995,440,466.16376151809,493.88330125613,523.2511306012],description:"16-note scale with all possible quadruplets of 50 & 100 c. Galois Field GF(2)"},"gf2-3":{frequencies:[261.6255653006,270.85177093588,280.40333801024,290.29174037004,300.52885648597,316.56538760238,327.729041887,345.21700307457,357.39105439675,369.99442271164,389.73770840504,410.5345162762,425.01198472693,447.69106452518,471.58032351597,496.7443381147,523.2511306012],description:"16-note scale with all possible quadruplets of 60 & 90 c. Galois Field GF(2)"},gilson7:{frequencies:[261.6255653006,261.6255653006,299.00064605783,313.95067836072,327.03195662575,392.4383479509,373.75080757229,392.4383479509,408.78994578219,408.78994578219,467.18850946536,490.54793493862,523.2511306012],description:"Gilson septimal"},gilson7a:{frequencies:[261.6255653006,261.6255653006,280.31310567921,299.00064605783,313.95067836072,336.37572681506,373.75080757229,373.75080757229,392.4383479509,418.60090448096,470.92601754108,470.92601754108,523.2511306012],description:"Gilson septimal 2"},golden_10:{frequencies:[261.6255653006,287.58715183149,304.90466328003,323.26497397694,342.73087946949,376.74069565061,399.42672527674,423.47882962254,465.50141625349,493.53231135469,523.2511306012],description:"Golden version of Rapoport's Major 10 out of 13"},golden_5:{frequencies:[261.6255653006,327.03195662575,343.38355445704,392.4383479509,425.14154361347,523.2511306012],description:"Golden pentatonic"},gradus10:{frequencies:[261.6255653006,290.69507255622,299.00064605783,305.22982618403,490.54793493862,882.98628288953,930.22423217991,941.85203508216,1220.91930473613,1255.80271344288,1674.40361792384,2747.0684356563,3270.3195662575,3488.34087067467,5886.5752192635,10595.8353946743,10988.2737426252,11162.69078615893,13081.27826503,14651.0316568336,23546.300877054,31395.067836072,41860.090448096,42383.3415786972,56511.1221049296,75348.1628065728,100464.2170754304,133952.2894339072],description:"Intervals > 1 with Gradus = 10"},gradus3:{frequencies:[261.6255653006,784.8766959018,1046.5022612024],description:"Intervals > 1 with Gradus = 3"},gradus4:{frequencies:[261.6255653006,392.4383479509,1569.7533918036,2093.0045224048],description:"Intervals > 1 with Gradus = 4"},gradus5:{frequencies:[261.6255653006,348.83408706747,1308.127826503,2354.6300877054,3139.5067836072,4186.0090448096],description:"Intervals > 1 with Gradus = 5"},gradus6:{frequencies:[261.6255653006,654.0639132515,697.66817413493,1177.3150438527,2616.255653006,4709.2601754108,6279.0135672144,8372.0180896192],description:"Intervals > 1 with Gradus = 6"},gradus7:{frequencies:[261.6255653006,327.03195662575,436.04260883433,588.65752192635,1395.33634826987,1831.3789571042,3924.383479509,5232.511306012,7063.8902631162,9418.5203508216,12558.0271344288,16744.0361792384],description:"Intervals > 1 with Gradus = 7"},gradus8:{frequencies:[261.6255653006,294.32876096318,313.95067836072,418.60090448096,872.08521766867,915.6894785521,1962.1917397545,2790.67269653973,3531.9451315581,3662.7579142084,7848.766959018,10465.022612024,14127.7805262324,18837.0407016432,25116.0542688576,33488.0723584768],description:"Intervals > 1 with Gradus = 8"},gradus9:{frequencies:[261.6255653006,457.84473927605,465.11211608996,470.92601754108,610.45965236807,627.90135672144,837.20180896192,981.09586987725,1744.17043533733,1765.97256577905,5494.1368713126,5581.34539307947,6540.639132515,7325.5158284168,11773.150438527,15697.533918036,20930.045224048,21191.6707893486,28255.5610524648,37674.0814032864,50232.1085377152,66976.1447169536],description:"Intervals > 1 with Gradus = 9"},grady11:{frequencies:[261.6255653006,277.4816601673,290.69507255622,305.22982618403,332.97799220076,356.76213450082,378.42269266694,392.4383479509,420.46965851882,458.69417292962,481.6288815761,504.56359022259,523.2511306012],description:"Kraig Grady's dual [5 7 9 11] hexany scale"},grady7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:`Kraig Grady's 7-limit "Centaur" scale (1987), see Xenharmonikon 16`},grady7t:{frequencies:[261.6255653006,274.79177208104,293.65339461903,305.54250820508,326.68804977983,349.10444036529,366.6627351378,392.00975085961,407.77240291308,436.0718257558,457.96530027286,489.37179607373,523.2511306012],description:"Tempered version of grady7 with egalised 225/224"},grady_14:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Kraig Grady, letter to Lou Harrison, published in 1/1 7 (1) 1991 p 5."},grammateus:{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,348.83408706747,369.99442271164,392.4383479509,416.24372513446,441.49314144476,468.27419030811,496.67978412536,523.2511306012],description:"H. Grammateus (Heinrich Schreiber) (1518). B-F# and Bb-F 1/2 P. Also Marpurg temp.nr.6"},graupner:{frequencies:[261.6255653006,277.083518473,293.59062125964,310.9808189359,329.55130849159,349.11528328816,370.00708353276,392.01655298731,415.20348378516,439.96413779539,466.04943410823,493.90517116572,523.2511306012],description:"Johann Gottlieb Graupner's temperament (1819)"},groenewald_21:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,330.74639366397,348.83408706747,367.91095120397,372.08969287196,392.4383479509,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"J\xEF\xBF\xBDrgen Gr\xEF\xBF\xBDnewald, new meantone temperament I (2000)"},gross:{frequencies:[13.75,13.83042567154,13.91662997964,13.99803029322,14.07990672861,14.1622619889,14.24509903843,14.32842061343,14.41222946472,14.49652860895,14.58132083065,14.67220542837,14.75802520833,14.84434696019,14.93117353378,15.01850805439,15.10635340681,15.19471249121,15.28358848801,15.37298433293,15.46880332718,15.55928251958,15.65029093742,15.74183158529,15.83390775812,15.92652249736,16.01967895316,16.113380201,16.20762961362,16.30865090754,16.4040424858,16.49999202274,16.59650278193,16.69357794961,16.79122101993,16.88943521823,16.98822378696,17.08759028197,17.18753798549,17.29466699621,17.39582592037,17.49757653721,17.59992220598,17.70286661052,17.80641315127,17.91056524676,18.01532664586,18.12070080902,18.23364617402,18.34029731861,18.44757228066,18.55547460176,18.66400816581,18.77317655783,18.88298349104,18.99343259063,19.10452783216,19.2236053387,19.33604689279,19.44914613325,19.56290690697,19.67733296969,19.79242844011,19.90819712001,20.02464283144,20.14176976577,20.26731246322,20.38585868839,20.50509842475,20.62503561099,20.74567420676,20.86701855437,20.98907266203,21.11184068121,21.23532666504,21.36768545088,21.49266790503,21.61838152318,21.74483045784,21.87201888365,21.99995137868,22.12863216875,22.25806563075,22.38825603783,22.52780097787,22.65956910312,22.79210808945,22.92542231482,23.05951631373,23.1943945132,23.33006176809,23.46652255971,23.60378139323,23.75090264526,23.88982499399,24.02955978014,24.17011203339,24.3114863964,24.45368753658,24.59672057234,24.74059022832,24.88530139802,25.04041015894,25.18687501732,25.33419642278,25.48237967807,25.63142967793,25.78135134315,25.93215007005,26.08383083979,26.23639881154,26.39992889083,26.55434576426,26.70966568928,26.86589425653,27.0230366265,27.18109814415,27.34008402779,27.5],description:"Gross temperament, g=91.531021, 5-limit"},groven:{frequencies:[261.6255653006,264.7464578752,272.5650766677,275.81646505128,279.10663876478,290.77709705464,294.24573392894,297.75574765819,306.54921255625,310.20599265769,313.90639394672,327.03195662575,330.93307160522,334.88072358477,344.77058253591,348.88329767713,353.04507480266,363.47137260637,367.80716871461,372.19468374184,387.75749219625,392.38299382393,397.06367008113,408.78994578219,413.66634097248,418.60090448096,436.10412364188,441.30634506723,446.57062302059,459.75895986689,465.24335632603,470.79317533731,484.69686416326,490.47874118496,496.32958936031,517.08292506126,523.2511306012],description:"Eivind Groven's 36-tone scale with 1/8-schisma temp. fifths and 5/4 (1948)"},groven_ji:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.11959049595,517.37477513058,523.2511306012],description:"Untempered version of Groven's 36-tone scale"},gumbeng:{frequencies:[261.6255653006,305.03156112838,348.43777142572,394.8168394034,470.9259392365,525.62941881859],description:"Scale of gumbeng ensemble, Java. 1/1=440 Hz."},gunkali:{frequencies:[261.6255653006,275.93321340298,282.55561052465,348.83408706747,392.4383479509,408.78994578219,418.60090448096,523.2511306012],description:"Indian mode Gunkali, see Dani\xEF\xBF\xBDlou: Intr. to the Stud. of Mus. Scales, p.175"},gyaling:{frequencies:[261.6255653006,283.49766588023,307.55338551939,339.28638158975,347.81902735497,393.58362272115,435.9522698367],description:'Tibetan Buddhist Gyaling tones measured from CD "The Diamond Path", Ligon 2002'},far12_104:{frequencies:[261.6255653006,276.7193479141,294.32876096318,311.93817401225,329.54758706133,349.67263054599,369.79767403066,392.4383479509,415.07902187114,440.23532622697,465.3916305828,493.06356537421,523.2511306012],description:"Farey approximation to 12-tET with den=104"},far12_65:{frequencies:[261.6255653006,277.72560008833,293.82563487606,309.92566966379,330.05071314845,350.17575663311,370.30080011777,390.42584360243,414.57589578403,438.72594796562,466.90100884415,495.07606972267,523.2511306012],description:"Farey approximation to 12-tET with den=65"},far12_80:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,330.30227619201,349.92419358955,369.5461109871,392.4383479509,415.3305849147,441.49314144476,467.65569797482,493.81825450488,523.2511306012],description:"Farey approximation to 12-tET with den=80"},farey3:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,418.60090448096,523.2511306012],description:"Farey fractions between 0 and 1 until 3rd level, normalised by 2/1"},farey4:{frequencies:[261.6255653006,299.00064605783,313.95067836072,327.03195662575,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Farey fractions between 0 and 1 until 4th level, normalised by 2/1"},farey5:{frequencies:[261.6255653006,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,322.00069575458,327.03195662575,332.97799220076,348.83408706747,366.27579142084,373.75080757229,380.54627680087,392.4383479509,402.50086969323,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"Farey fractions between 0 and 1 until 5th level, normalised by 2/1"},farnsworth:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Farnsworth's scale"},fibo_9:{frequencies:[261.6255653006,277.97716313189,327.03195662575,343.38355445704,363.82305174615,392.4383479509,425.14154361347,449.66894036041,523.2511306012],description:"First 9 Fibonacci terms reduced by 2/1, B. McLaren, XH 13, 1991"},finnamore:{frequencies:[261.6255653006,277.97716313189,310.68035879446,348.83408706747,392.4383479509,416.96574469783,457.84473927605,466.02053819169,523.2511306012],description:"David J. Finnamore, Tuning List 9 May '97. Tetrachordal scale, 17/16x19/17x64/57"},finnamore53:{frequencies:[261.6255653006,286.15296204753,310.68035879446,327.03195662575,343.38355445704,359.73515228832,367.91095120397,376.08675011961,392.4383479509,408.78994578219,416.96574469783,425.14154361347,433.31734252912,441.49314144476,457.84473927605,474.19633710734,523.2511306012],description:'David J. Finnamore, tuning for "Crawlspace", 53-limit, 1998.'},finnamore_11:{frequencies:[261.6255653006,287.78812183066,294.32876096318,305.22982618403,323.76163705949,331.11985608357,343.38355445704,348.83408706747,392.4383479509,431.68218274599,441.49314144476,457.84473927605,485.64245558924,515.07533168556,523.2511306012],description:"David J. Finnamore, 11-limit scale, Tuning List 3 Sept '98"},finnamore_7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,309.04519901133,331.11985608357,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,463.567798517,496.67978412536,523.2511306012],description:"David J. Finnamore, TL 1 Sept '98. 7-tone Pyth. with 9/8 div. in 21/20 &15/14"},finnamore_7a:{frequencies:[261.6255653006,280.31310567921,294.32876096318,315.35224388912,331.11985608357,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,473.02836583367,496.67978412536,523.2511306012],description:"David J. Finnamore, TL 1 Sept '98. 7-tone Pyth. with 9/8 div. in 15/14 &21/20"},finnamore_jc:{frequencies:[261.6255653006,276.16031892841,310.68035879446,348.83408706747,392.4383479509,414.24047839262,466.02053819169,523.2511306012],description:"Chalmers' modification of Finnamore. Tuning List 9-5-97 19/18 x 9/8 x 64/57"},fisher:{frequencies:[261.6255653006,273.37431312998,292.50627485027,310.67535808973,327.03195662575,349.71841093413,365.63284485857,391.22147055517,410.55062036439,437.39890198442,467.47330218196,489.02683992698,523.2511306012],description:"Alexander Metcalf Fisher's modified meantone temperament (1818)"},"fj-10tet":{frequencies:[261.6255653006,280.31310567921,300.51585203447,322.00069575458,345.20039866051,370.01329949656,396.52624740872,425.14154361347,455.42228033808,488.36772189445,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 10-tet"},"fj-12tet":{frequencies:[261.6255653006,277.19851561611,293.6613488068,311.12229387098,329.64821227876,348.83408706747,370.01329949656,391.99491478937,415.52295665389,440.00663255101,466.16918908107,490.54793493862,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 12-tet"},"fj-13tet":{frequencies:[261.6255653006,275.96121271433,291.05844139692,306.97399661937,323.91736656265,341.56671025356,360.27127025001,379.97998769849,400.78810003496,422.62591317789,445.95266812602,41.6222490251,496.18641694941,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 13-tet"},"fj-14tet":{frequencies:[261.6255653006,274.92856014639,288.87822835275,303.4856557487,318.85615771011,335.0643204727,352.18826098158,370.01329949656,388.70083987518,408.5030756448,429.33426100611,451.0785608631,473.88781639354,497.93252750759,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 14-tet"},"fj-15tet":{frequencies:[261.6255653006,274.08392555301,286.94416839421,300.51585203447,314.76825825228,329.64821227876,345.20039866051,361.51896296083,378.66858135613,396.52624740872,415.52295665389,392.4383479509,455.42228033808,477.08191319521,499.46698830115,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 15-tet"},"fj-16tet":{frequencies:[261.6255653006,273.25336820285,285.40970760065,297.96244937013,311.12229387098,324.92207303462,339.29565499922,354.2846196779,370.01329949656,386.4008349055,403.52417698906,421.50785520652,440.00663255101,459.44001711325,479.64686971777,500.9851250437,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 16-tet"},"fj-17tet":{frequencies:[261.6255653006,272.52663052146,283.8915708581,295.75063903546,307.98958953109,320.70230585235,334.29933343966,348.03400888612,362.53828334512,373.75080757229,392.4383479509,409.71550792358,426.86276443782,444.76346101102,462.87600014722,482.37213602298,502.32108537715,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 17-tet"},"fj-18tet":{frequencies:[261.6255653006,271.88539139082,282.55561052465,293.6613488068,305.22982618403,317.12189733406,329.64821227876,342.60490694126,355.98232655655,370.01329949656,384.51030051755,399.57359064092,415.52295665389,431.68218274599,448.50096908674,466.16918908107,484.4917875937,503.12608711654,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 18-tet"},"fj-19tet":{frequencies:[261.6255653006,271.31540105247,281.44568388398,291.81313052759,302.73815413355,313.95067836072,325.69713231299,337.73482066077,350.31219760589,363.36884069528,376.74081403286,390.78248994267,405.26313056367,420.46965851882,436.04260883433,451.89870370104,468.95148497277,485.87604984397,504.56359022259,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 19-tet"},"fj-20tet":{frequencies:[261.6255653006,270.8594087818,280.31310567921,290.29686012806,300.51585203447,311.12229387098,322.00069575458,333.44434793214,345.20039866051,357.34223553253,370.01329949656,383.09457776159,396.52624740872,410.48149038542,425.14154361347,440.00663255101,455.42228033808,470.92601754108,488.36772189445,505.41302387616,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 20-tet"},"fj-21tet":{frequencies:[261.6255653006,270.34641747729,279.46367202564,288.87822835275,298.56093922539,308.58400009814,318.85615771011,329.64821227876,340.72166643799,352.18826098158,364.00078650518,376.08675011961,388.70083987518,401.78211814021,415.52295665389,429.33426100611,443.62595855319,457.84473927605,473.88781639354,489.85212226495,506.18859373377,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 21-tet"},"fj-22tet":{frequencies:[261.6255653006,270.06509966514,278.68810216803,287.55242312318,296.76929795292,306.29334474217,316.13089140489,326.18252297218,336.37572681506,347.40443916965,358.52392281934,370.01329949656,381.83190611439,392.4383479509,392.4383479509,419.69101100305,433.03541842858,446.94367405519,461.28718092474,475.68284600109,491.34557385722,506.89953276991,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 22-tet"},"fj-23tet":{frequencies:[261.6255653006,269.55361273395,277.97716313189,286.37392958579,295.1673044417,304.21577360535,313.47928094576,323.18452184192,332.97799220076,343.1154954762,353.6790049434,364.40703738298,375.66747838035,387.20583664489,398.97898708342,411.12588832951,423.58424858192,436.04260883433,449.99597231703,463.79077485106,477.96978276071,492.47165233054,507.86139146587,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 23-tet"},"fj-24tet":{frequencies:[261.6255653006,269.32043486826,277.19851561611,285.40970760065,293.6613488068,302.32287545847,311.12229387098,320.2657782128,329.64821227876,339.29565499922,348.83408706747,348.83408706747,370.01329949656,380.54627680087,391.99491478937,403.52417698906,415.52295665389,427.53446036927,440.00663255101,452.81347840488,466.16918908107,479.64686971777,490.54793493862,508.30109829831,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 24-tet"},"fj-26tet":{frequencies:[261.6255653006,268.69652652494,275.96121271433,283.42769574232,291.05844139692,299.00064605783,306.97399661937,315.29234792636,323.91736656265,332.57487114483,341.56671025356,350.8160989258,360.27127025001,370.01329949656,379.97998769849,390.22118214327,400.78810003496,411.12588832951,422.62591317789,434.18710837121,445.95266812602,457.84473927605,457.84473927605,483.00104363188,496.18641694941,509.48136400643,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 26-tet"},"fj-30tet":{frequencies:[261.6255653006,267.70988077271,274.08392555301,280.31310567921,286.94416839421,293.6613488068,300.51585203447,307.52478728316,314.76825825228,322.00069575458,329.64821227876,337.35928157183,345.20039866051,353.19451315581,361.51896296083,370.01329949656,378.66858135613,387.59343007496,396.52624740872,405.78659107848,415.52295665389,425.14154361347,392.4383479509,444.76346101102,455.42228033808,466.16918908107,477.08191319521,488.36772189445,499.46698830115,511.35905945117,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 30-tet"},"fj-31tet":{frequencies:[261.6255653006,267.57160087561,273.51763645063,279.79400733536,286.15296204753,292.60754013883,299.00064605783,305.96888145324,312.81317590289,319.76457981184,327.03195662575,334.53760808929,342.12573923925,349.884792149,357.81143489641,366.27579142084,373.75080757229,382.37582620857,391.25985441351,400.13321751856,409.20921752145,418.60090448096,428.11456140098,437.54620403721,447.51741432997,457.84473927605,467.90726101838,478.40103369253,489.12605686634,500.50108144463,511.62332769895,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 31-tet"},"fj-36tet":{frequencies:[261.6255653006,266.75547834571,271.88539139082,277.19851561611,282.55561052465,288.08208313999,293.6613488068,299.00064605783,305.22982618403,311.12229387098,317.12189733406,323.18452184192,329.64821227876,327.03195662575,342.60490694126,348.83408706747,355.98232655655,362.89997767503,370.01329949656,377.22755927063,384.51030051755,391.99491478937,399.57359064092,406.97310157871,415.52295665389,423.35773294097,431.68218274599,440.00663255101,448.50096908674,436.04260883433,466.16918908107,475.19745534191,484.4917875937,490.54793493862,503.12608711654,513.18860885887,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 36-tet"},"fj-41tet":{frequencies:[261.6255653006,266.05989691586,270.64713651786,275.21650375777,279.87851171692,284.71017400359,289.532292266,294.32876096318,299.49242343621,304.63250754179,309.81974838229,315.13988547572,320.49131749323,325.95972070239,331.39238271409,337.09447836808,342.81970625596,348.83408706747,354.64798851859,360.72615821749,366.27579142084,373.13810133036,379.35706968587,386.00493241072,392.4383479509,399.32323124828,405.97070477679,413.09299784305,419.97788114044,427.14378008261,434.48531380278,441.85651028546,449.45930449077,436.04260883433,465.11211608996,472.93852188955,480.82536325516,489.12605686634,497.08857407114,505.80942624783,514.53027842451,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 41-tet"},"fj-42tet":{frequencies:[261.6255653006,265.98599138894,270.34641747729,274.92856014639,279.46367202564,284.05061375494,288.87822835275,293.6613488068,298.56093922539,303.4856557487,308.58400009814,313.7026920429,318.85615771011,324.18820048118,329.64821227876,335.0643204727,340.72166643799,346.37750898953,352.18826098158,358.01393146398,364.00078650518,370.01329949656,376.08675011961,382.37582620857,388.70083987518,395.22159864559,401.78211814021,408.5030756448,415.52295665389,422.16852582597,429.33426100611,436.04260883433,443.62595855319,451.0785608631,457.84473927605,466.16918908107,473.88781639354,481.94183081689,489.85212226495,497.93252750759,506.18859373377,514.81159623666,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 42-tet"},"fj-43tet":{frequencies:[261.6255653006,265.84533248287,270.2034526875,274.70684356563,279.06726965397,283.42769574232,288.1672893166,292.86443876933,297.71185016965,302.50455987882,307.4100392282,312.38873468728,317.43901923139,322.67153053741,327.85988562987,332.97799220076,338.57426097725,344.24416486921,348.83408706747,355.41586229515,361.11697745717,367.05676325756,372.95559308809,379.09010482332,385.17097113699,391.45479319413,397.88888056133,404.33041910093,392.4383479509,417.48760420309,424.25767346043,431.1976909584,438.2228218785,445.32011114996,452.54151835779,459.82675113439,467.18850946536,475.05694751951,483.00104363188,490.54793493862,498.33441009638,506.89953276991,514.81159623666,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 43-tet"},"fj-53tet":{frequencies:[261.6255653006,265.06800694929,268.51044859798,272.09058791262,275.69145590816,279.30296836145,282.98275430473,286.71294827463,290.48132617934,294.32876096318,298.13145813324,302.11523612093,306.05254808749,310.07474405997,313.95067836072,318.31110444906,322.46872002167,326.7649917632,331.03642956402,335.41739141103,336.37572681506,344.24416486921,348.83408706747,353.42400926572,358.01393146398,362.89997767503,367.52162744608,372.31330446624,377.3445653374,382.37582620857,387.20583664489,392.4383479509,397.67085925691,402.82031482791,408.13588186894,413.53718386224,418.60090448096,424.41480593208,429.81342870813,436.04260883433,441.49314144476,447.29532132038,453.1728541814,459.07882213124,465.11211608996,470.92601754108,477.46665667359,483.76047923507,485.87604984397,496.55464434604,503.12608711654,509.83443494476,516.36624730382,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 53-tet"},"fj-54tet":{frequencies:[261.6255653006,265.02329991489,268.42103452919,271.88539139082,275.39533189537,279.06726965397,282.55561052465,286.15296204753,289.90941019796,293.6613488068,297.46468383493,301.26580246736,305.22982618403,309.19384990071,313.15787361738,317.12189733406,321.29455387793,325.43667878855,329.64821227876,333.91683992313,338.19890148614,342.60490694126,346.93824963775,351.55935337268,355.98232655655,360.61902244137,365.28852513669,370.01329949656,374.76094489005,379.61356533813,384.51030051755,389.53139722534,394.5147413263,399.57359064092,404.77917650282,409.88005230427,415.52295665389,420.652869699,426.07592063241,431.68218274599,436.04260883433,442.75095666255,448.50096908674,454.40229762736,460.26719821402,466.16918908107,472.20223981084,478.40103369253,484.4917875937,490.54793493862,497.08857407114,503.12608711654,510.16985233617,516.54278277298,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 54-tet"},"fj-55tet":{frequencies:[261.6255653006,264.93728131706,268.33391312882,271.68808704293,275.15792212649,278.68810216803,282.14521748104,285.77561748219,289.37373131733,293.02063313667,296.76929795292,300.51585203447,304.33994330886,308.21641939523,312.11470948142,316.13089140489,319.76457981184,324.10331223806,328.22116374075,332.33517754401,336.37572681506,340.90603963412,345.20039866051,348.83408706747,353.96400011258,358.52392281934,363.07221307022,367.68998366571,372.31330446624,377.04860881557,381.83190611439,386.75083566176,391.58336244338,396.52624740872,401.56482115906,406.65712867376,411.81801945465,416.96574469783,418.60090448096,427.65717404906,433.03541842858,438.60756535689,444.15502946381,449.8123754291,455.42228033808,461.28718092474,467.18850946536,472.93852188955,479.03272519828,485.0974023282,491.34557385722,497.60156537565,503.87145909745,510.16985233617,516.71049146868,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 55-tet"},"fj-5tet":{frequencies:[261.6255653006,300.51585203447,345.20039866051,396.52624740872,455.42228033808,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 5-tet"},"fj-60tet":{frequencies:[261.6255653006,264.66772303665,267.70988077271,270.8594087818,274.08392555301,277.19851561611,280.31310567921,283.6903720127,286.94416839421,290.29686012806,293.6613488068,297.10021822272,300.51585203447,304.05133264664,307.52478728316,311.12229387098,314.76825825228,318.50068819203,322.00069575458,325.79787377056,329.64821227876,333.44434793214,337.35928157183,341.25073734861,345.20039866051,348.83408706747,353.19451315581,357.34223553253,361.51896296083,365.74186169574,370.01329949656,374.3258088147,378.66858135613,383.09457776159,387.59343007496,391.99491478937,396.52624740872,401.15920012759,405.78659107848,410.48149038542,415.52295665389,420.18651396763,425.14154361347,429.81342870813,434.91003062957,440.00663255101,444.76346101102,450.23934493592,455.42228033808,460.95932933915,466.16918908107,470.92601754108,477.08191319521,482.55382044333,488.36772189445,490.54793493862,499.46698830115,505.41302387616,511.35905945117,517.30509502619,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 60-tet"},"fj-66tet":{frequencies:[261.6255653006,264.37951861955,267.19206668997,270.06509966514,272.83808952777,275.76748774928,278.68810216803,281.58005756929,284.57517629188,287.55242312318,290.69507255622,293.6613488068,296.76929795292,299.91223339337,302.93486508491,306.29334474217,309.48390041656,312.81317590289,316.13089140489,319.38705374359,322.78478835788,326.18252297218,329.64821227876,332.97799220076,336.37572681506,340.11323489078,343.8507429665,347.40443916965,351.12904816659,354.74652922115,358.52392281934,362.25078272391,366.27579142084,370.01329949656,373.75080757229,377.90359432309,381.83190611439,385.89770881839,389.97018224052,392.4383479509,398.12586024004,402.50086969323,406.65712867376,411.12588832951,415.52295665389,419.69101100305,424.01384721132,428.62060698183,433.03541842858,437.71969579139,442.27178896054,446.94367405519,451.89870370104,456.45311392871,461.28718092474,466.16918908107,470.92601754108,475.68284600109,481.05345877852,485.87604984397,491.34557385722,496.41773928832,501.44900015948,506.89953276991,512.35006538034,517.80059799077,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 66-tet"},"fj-72tet":{frequencies:[195.99771799087,197.9006084568,199.84081050049,201.76235675531,203.68390301012,205.67661764474,207.66424882366,209.67197738558,211.67753543014,213.81569235368,215.817711945,217.77524221208,219.99743856118,222.13074705632,223.99739198957,226.48625190056,228.66400432268,230.8417567448,233.07836734049,235.19726158904,237.57299150408,239.92824098882,242.11482810637,244.5635242187,246.9571246685,249.45164107929,251.74018824515,254.18454051941,256.66367832138,259.11562717437,261.33029065449,264.17083729204,266.68541956135,269.28382123963,271.86780237443,274.39680518722,277.19677258709,279.99673998696,282.60136082405,285.0875898049,288.0572521987,290.83532347032,293.66437746429,296.5093682426,299.34196929515,302.30156503677,304.88533909691,307.99641398565,311.29049327962,313.59634878539,317.15994365795,320.28895378996,323.39623468494,326.46784071315,329.63252571192,332.8263135694,335.99608798435,339.22681959958,342.55457018224,345.87832586624,349.232297511,352.79589238357,355.99585512627,359.32914964993,362.95873702013,366.4305162438,367.49572123288,373.6206499201,376.91868844398,380.79556638226,384.45706221286,388.2262490973,391.99543598174],description:"Franck Jedrzejewski continued fractions approx. of 72-tet"},"fj-78tet":{frequencies:[138.59131548844,139.82873794816,141.06616040788,142.33702671786,143.60064014465,144.89092073791,146.18536017274,147.4753741736,148.781853392,150.14059177914,151.48353088271,152.80580938469,154.18283848089,155.56168065029,156.95883922787,158.39007484393,159.76498868806,161.21846903757,162.6138101731,164.12129465736,165.53962683341,167.02030328094,168.55700532378,170.00534699915,171.58924774759,173.06676710248,174.62505751543,176.17540104463,177.75842638735,179.35346710269,180.93866188769,182.53490332624,184.15558359423,185.8383548595,187.50589742554,188.98815748424,190.84705739392,192.48793817839,194.02784168382,196.00771761937,197.74614527009,199.57149430335,201.28738678083,203.10796235375,204.87411854813,206.71247055903,207.88697323266,210.45347907504,212.31010032272,214.18657848213,216.10849194808,217.78635291041,220.11561871693,221.7461047815,223.87827886594,225.96410133985,228.00506741647,230.00260868294,232.05987709692,234.17153306667,236.2351968553,238.37706264012,240.41350645954,242.53480210477,244.7463656498,246.9445257794,249.1343885566,251.39820018833,253.59261982991,255.8608901325,258.1602935569,260.55167311827,262.84559834014,265.13121223875,267.51346943117,269.88835121433,272.23294113801,274.70778605744,277.18263097688],description:"Franck Jedrzejewski continued fractions approx. of 78-tet"},"fj-7tet":{frequencies:[261.6255653006,288.87822835275,318.85615771011,352.18826098158,388.70083987518,429.33426100611,473.88781639354,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 7-tet"},"fj-84tet":{frequencies:[97.99885899544,98.81551615374,99.63217331203,100.44883047033,101.26548762862,102.12512674262,102.98185182572,103.83212441184,104.68059938149,105.53723276432,106.39876119505,107.33208366167,108.20707347413,109.09306944775,109.9987192806,110.89344570537,111.83399203009,112.76581035092,113.67867643471,114.64017467391,115.58839778949,116.53918367025,117.50574088079,118.47623251688,119.43610940069,120.45693084856,121.43336875522,122.4985737443,123.47856233425,124.48503710232,125.50731064328,126.58185953578,127.62642101732,128.62350243151,129.74496824748,130.66514532725,131.9215409554,132.99845149381,134.10370178323,135.17083999371,136.34623860235,137.19840259362,138.59838629355,139.73911375276,140.87335980595,142.09834554339,143.22910160872,144.41937115117,145.59830479323,146.83218873215,148.0408295463,149.25980062382,150.498247743,151.74016876713,153.01576229113,154.29607586516,155.64524663982,156.7981743927,158.13452246991,159.45577056885,160.81864040277,162.07503603092,163.33143165907,164.81626285597,166.17197829662,167.54643634704,168.96354999214,170.33135015874,171.49800324202,173.20728566636,174.61614875551,176.03498745477,177.50736723702,178.95443816559,180.52421393897,181.99788099153,183.48722535316,183.74786061645,186.51395744293,188.05186455882,189.60648805639,191.21728584476,192.8364644749,194.36440367429,195.99771799088],description:"Franck Jedrzejewski continued fractions approx. of 84-tet"},"fj-8tet":{frequencies:[261.6255653006,285.40970760065,311.12229387098,339.29565499922,370.01329949656,403.52417698906,440.00663255101,479.64686971777,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 8-tet"},"fj-90tet":{frequencies:[69.29565774422,69.83283338565,70.37840239647,70.9071846685,71.46114704873,72.0131345185,72.59545097014,73.14541650779,73.69538204544,74.24534758309,74.83931036376,75.40998048636,76.00168913882,76.58993750677,77.19009976571,77.78084032514,78.38361285822,78.99704982841,79.59636362512,80.23707738804,80.84493403492,81.4527906818,82.08870225085,82.70772053342,83.37133822351,83.99473665966,84.69469279849,85.2869633775,85.97794571968,86.61957218027,87.31252875772,87.95218098305,88.65767976099,89.35492709123,90.08435506749,90.74431371267,91.43177063473,92.14038007748,92.85618137725,93.5491379547,94.28753430771,95.03404490636,95.75399979201,96.51895185802,97.25706350066,98.00385880968,98.74631228551,99.50145727375,100.29634673506,101.05616754365,101.84361819984,102.66023369514,103.42635484212,103.94348661633,105.02623126858,105.83336819117,106.60870422188,107.47897935838,108.27446522534,109.14066094715,110.05780935847,110.87305239075,111.72157064884,112.60544383436,113.39289449054,114.33783527796,115.19278170468,116.11704811194,116.93642244337,117.80261816517,118.79255613295,119.69249974002,120.62577459179,121.5942673625,122.52275717094,123.4722628897,124.41720367712,125.39214258478,126.36267000417,127.35418180019,128.32529211893,129.35189445588,130.27583655913,131.29703572589,132.29171023897,133.26088027735,134.39157865546,135.4415128637,136.49144707195,137.52522844622,138.59131548844],description:"Franck Jedrzejewski continued fractions approx. of 90-tet"},"fj-96tet":{frequencies:[48.99942949772,49.35708956705,49.70956615711,50.0646344868,50.44058918883,50.81422318282,51.17718191984,51.5338827476,51.91606220592,52.2660581309,52.67438671005,53.04896912563,53.45392308842,53.81904551389,54.21213476343,54.59936429746,54.9993596403,55.39065943221,55.80490581685,56.20522795327,56.62156297514,57.01751796098,57.44760699733,57.85474808165,58.26959183513,58.69162434342,59.11042288614,59.54361052887,59.98206024721,60.41025554513,60.85413018265,61.24928687215,61.73928116713,62.19158359326,62.61038213598,63.09515579158,63.54613512986,63.99925485416,64.47293354963,64.92424408448,65.33257266363,65.89578449693,66.3533941115,66.81740386053,67.32095530991,67.84536391992,68.30223505743,68.78766064103,69.29919314678,69.78706625433,70.30352927934,70.77695371893,71.27189745123,71.86582992999,72.36838818125,72.90159022832,73.41609436608,73.94459360565,74.47913283653,75.03037641838,75.5753912592,76.10549687944,76.66039776256,77.21122223883,77.82262331991,78.34524166943,78.94352530188,79.48796340741,80.07223844749,80.64489438166,81.23589627254,81.66571582953,82.40813142798,82.999033639,83.58726208435,84.21776944921,84.8067048999,85.43490271397,86.04777863014,86.69129834212,87.30807437776,87.94769397027,88.57589178434,89.20408959841,89.83228741249,90.46048522656,91.16172929808,91.87393030822,92.49330511929,93.09891604567,93.82869478287,94.4988997456,95.19889159557,95.91377688915,96.59887529551,97.28872233605,97.99885899544],description:"Franck Jedrzejewski continued fractions approx. of 96-tet"},"fj-9tet":{frequencies:[261.6255653006,282.55561052465,305.22982618403,329.64821227876,355.98232655655,384.51030051755,415.52295665389,448.50096908674,484.4917875937,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 9-tet"},flavel:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Bill Flavel's just tuning. Tuning List 6-5-98"},fogliano:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Fogliano's Monochord with D-/D and Bb-/Bb"},fogliano1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Fogliano's Monochord no.1, Musica theorica (1529)"},fogliano2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Fogliano's Monochord no.2"},"fokker-h":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Fokker-H 5-limit per.bl. synt.comma&small diesis, KNAW B71, 1968"},"fokker-ht":{frequencies:[261.6255653006,272.31140503734,279.67242998298,290.89121260742,305.67073265504,313.92185180985,326.66733279836,335.5942968927,349.22294231864,363.36596605244,376.74379448613,392.00137290182,407.92073675044,419.068143928,436.08264938702,447.85404100892,470.60848490625,489.4864783277,502.71810253025,523.2511306012],description:"Tempered version of Fokker-H per.bl. with better 6 tetrads, OdC"},"fokker-k":{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"Fokker-K 5-limit per.bl. of 225/224 & 81/80 & 10976/10935, KNAW B71, 1968"},"fokker-l":{frequencies:[261.6255653006,271.31540105247,282.62020942966,291.99281841585,301.39265122629,313.95067836072,325.57848126297,339.14425131559,350.39138209902,363.36884069528,376.74081403286,390.69417751556,403.65087217807,420.46965851882,436.04260883433,454.2110508691,468.83301301868,484.38104661368,504.56359022259,523.2511306012],description:"Fokker-L 7-limit periodicity block 10976/10935 & 225/224 & 15625/15552, 1969"},"fokker-lt":{frequencies:[261.6255653006,272.07297743248,282.57734531132,291.77233860052,302.20925621315,313.90139500947,326.42149564976,339.58797317787,349.9403315901,363.14714144228,376.97081214523,391.19775936204,403.12344267272,419.38375585596,436.11106867998,452.98371913917,469.18728997524,484.4545223075,503.15865298196,523.2511306012],description:"Tempered version of Fokker-L per.bl. with more triads"},"fokker-m":{frequencies:[261.6255653006,265.7783520514,274.70684356563,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,336.37572681506,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,406.97310157871,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker-M 7-limit periodicity block 81/80 & 225/224 & 1029/1024, KNAW B72, 1969"},"fokker-n":{frequencies:[261.6255653006,265.7783520514,273.37201925287,277.71125765371,286.15296204753,290.69507255622,299.00064605783,303.74668805875,313.95067836072,318.93402246168,328.62879235146,333.84512238879,343.38355445704,348.83408706747,358.80077526939,364.4960256705,375.57576268738,381.53728273004,392.4383479509,398.6675280771,410.05802887931,416.56688648057,429.2294430713,436.04260883433,450.69091522486,457.84473927605,470.92601754108,478.40103369253,492.94318852719,500.76768358318,515.07533168556,523.2511306012],description:"Fokker-N 7-limit periodicity block 81/80 & 2100875/2097152 & 1029/1024, 1969"},"fokker-n2":{frequencies:[261.6255653006,265.7783520514,272.52663052146,279.06726965397,286.15296204753,290.69507255622,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,334.88072358477,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,478.40103369253,490.54793493862,502.32108537715,515.07533168556,523.2511306012],description:"Fokker-N different block shape"},"fokker-p":{frequencies:[261.6255653006,267.90457886781,273.37201925287,280.31310567921,286.15296204753,290.69507255622,299.00064605783,306.17666156322,312.97980223949,320.35783506196,327.03195662575,334.88072358477,341.85740532612,350.39138209902,357.69120255941,366.27579142084,373.75080757229,382.72082695402,390.69417751556,400.44729382745,408.78994578219,418.60090448096,427.32175665765,437.39523080459,447.11400319927,457.84473927605,470.92601754108,478.40103369253,488.36772189445,500.76768358318,510.98743222773,523.2511306012],description:"Fokker-P 7-limit periodicity block 65625/65536 & 6144/6125 & 2401/2400, 1969"},"fokker-q":{frequencies:[261.6255653006,265.7783520514,269.10058145205,272.52663052146,274.70684356563,279.06726965397,284.76252005507,286.15296204753,290.69507255622,294.32876096318,299.00064605783,301.39265122629,305.22982618403,311.45900631024,313.95067836072,318.93402246168,321.92208230347,327.03195662575,332.22294006425,334.88072358477,340.65828815182,343.38355445704,348.83408706747,353.19451315581,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,381.53728273004,387.59343007496,392.4383479509,398.6675280771,401.85686830172,408.78994578219,412.06026534844,418.60090448096,425.24536328225,429.2294430713,436.04260883433,439.53094970501,448.50096908674,454.2110508691,457.84473927605,465.11211608996,470.92601754108,478.40103369253,480.73697623985,490.54793493862,498.33441009638,502.32108537715,508.71637697339,515.07533168556,523.2511306012],description:"Fokker-Q 7-limit per.bl. 225/224 & 4000/3969 & 6144/6125, KNAW B72, 1969"},"fokker-r":{frequencies:[261.6255653006,264.95644634031,268.26840191956,272.52663052146,275.55899540689,279.06726965397,282.62020942966,287.04062021552,290.69507255622,294.32876096318,298.07600213285,301.80195215951,306.17666156322,310.07474405997,313.95067836072,317.94773560837,322.92069774245,327.03195662575,331.19555792538,334.88072358477,340.1962906258,344.44874425862,348.83408706747,353.19451315581,357.69120255941,363.36884069528,367.91095120397,372.08969287196,376.74081403286,382.72082695402,387.59343007496,392.4383479509,397.43466951046,402.40260287934,408.78994578219,413.33849311034,418.60090448096,423.93031414449,430.56093032327,436.04260883433,441.49314144476,447.11400319927,453.59505416773,459.26499234482,465.11211608996,470.92601754108,476.92160341255,484.38104661368,490.54793493862,496.79333688808,502.32108537715,510.29443593869,516.67311638793,523.2511306012],description:"Fokker-R 7-limit per.bl. 4375/4374 & 65625/65536 & 6144/6125, 1969"},"fokker-s":{frequencies:[261.6255653006,265.7783520514,269.10058145205,273.37201925287,273.85732695955,278.20426865732,282.55561052465,286.15296204753,290.69507255622,295.2417807931,299.00064605783,303.74668805875,304.28591884395,309.04519901133,313.95067836072,317.94773560837,322.92069774245,328.04642310345,332.22294006425,333.84512238879,338.01818641865,343.38355445704,348.83408706747,353.19451315581,358.80077526939,364.4960256705,369.13660007139,370.8542388136,375.57576268738,381.53728273004,387.59343007496,392.4383479509,398.6675280771,404.99558407833,410.05802887931,412.06026534844,417.30640298598,423.93031414449,430.56093032327,436.04260883433,442.96392008567,449.89223739901,450.69091522486,457.84473927605,463.67378109554,470.92601754108,478.40103369253,484.4917875937,492.06963465517,499.88026377668,500.76768358318,508.71637697339,515.07533168556,523.2511306012],description:"Fokker-S 7-limit per.bl. 4375/4374 & 323/322 & 64827/65536, 1969"},fokker_12:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,348.83408706747,367.91095120397,392.4383479509,420.46965851882,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Fokker's 7-limit 12-tone just scale"},fokker_12a:{frequencies:[261.6255653006,274.70684356563,293.02063313667,309.04519901133,327.03195662575,348.83408706747,367.91095120397,390.69417751556,412.06026534844,439.53094970501,465.11211608996,490.54793493862,523.2511306012],description:"Fokker's 7-limit periodicity block of 2048/2025 & 3969/4000 & 225/224"},fokker_12b:{frequencies:[261.6255653006,275.93321340298,293.02063313667,309.04519901133,332.22294006425,348.83408706747,367.91095120397,392.4383479509,412.06026534844,439.53094970501,467.18850946536,496.11959049595,523.2511306012],description:"Fokker's 7-limit semitone scale KNAW B72, 1969"},fokker_12c:{frequencies:[261.6255653006,275.93321340298,293.02063313667,311.45900631024,332.22294006425,348.83408706747,372.08969287196,392.4383479509,412.06026534844,442.96392008567,467.18850946536,496.11959049595,523.2511306012],description:"Fokker's 7-limit complementary semitone scale, KNAW B72, 1969"},fokker_12t:{frequencies:[261.6255653006,279.53180800295,293.53544531438,305.4439412874,326.66157401657,349.08351368992,366.63408494061,391.81886165309,419.06057467847,436.03416050506,457.88164994338,489.21957814041,523.2511306012],description:"Tempered version of fokker_12 with egalised 225/224, see also lumma"},fokker_12t2:{frequencies:[261.6255653006,279.53060025556,293.5302824794,305.44678713816,326.66192308793,349.10467831311,366.62831408589,391.81689264402,419.03095498017,436.04260883433,457.88067400285,489.21694446174,523.2511306012],description:"Another tempered version of fokker_12 with egalised 225/224"},fokker_22:{frequencies:[261.6255653006,272.52663052146,279.06726965397,287.4304306281,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Fokker's 22-tone periodicity block of 2048/2025 & 3125/3072. KNAW B71, 1968"},fokker_22a:{frequencies:[261.6255653006,269.46602871384,279.06726965397,287.4304306281,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,431.14564594215,446.50763144636,459.88868900496,476.27480687611,490.54793493862,502.32108537715,523.2511306012],description:"Fokker's 22-tone periodicity block of 2048/2025 & 2109375/2097152 = semicomma"},fokker_31:{frequencies:[261.6255653006,265.7783520514,275.93321340298,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,315.35224388912,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,406.97310157871,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,482.88312345521,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone just system"},fokker_31a:{frequencies:[261.6255653006,269.10058145205,272.52663052146,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,311.45900631024,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,412.06026534844,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,476.92160341255,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone first alternate septimal tuning"},fokker_31b:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,480.53675259294,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone second alternate septimal tuning"},fokker_31c:{frequencies:[261.6255653006,269.46602871384,272.52663052146,279.06726965397,287.4304306281,294.32876096318,297.67175429757,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,344.91651675372,348.83408706747,359.28803828513,367.91095120397,372.08969287196,383.2405741708,392.4383479509,396.89567239676,408.78994578219,418.60090448096,431.14564594215,436.04260883433,446.50763144636,459.88868900496,465.11211608996,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Fokker's 31-tone periodicity block of 81/80 & 2109375/2097152 = semicomma"},fokker_31d:{frequencies:[261.6255653006,266.13928761861,272.52663052146,279.06726965397,287.4304306281,294.32876096318,299.40669857094,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,359.28803828513,367.91095120397,376.74081403286,383.2405741708,392.4383479509,399.20893142792,408.78994578219,418.60090448096,425.82286018978,436.04260883433,443.56547936435,459.88868900496,470.92601754108,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Fokker's 31-tone periodicity block of 81/80 & W\xEF\xBF\xBDrschmidt's comma"},fokker_31d2:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,290.69507255622,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,425.82286018978,436.04260883433,446.50763144636,454.2110508691,465.11211608996,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Reduced version of fokker_31d by Prooijen expressibility"},fokker_41:{frequencies:[261.6255653006,264.89588486686,271.31540105247,274.70684356563,280.31310567921,283.8170195002,290.69507255622,294.32876096318,300.33547037059,305.22982618403,311.45900631024,313.95067836072,321.55899383997,325.57848126297,329.64821227876,336.37572681506,341.85740532612,348.83408706747,353.19451315581,361.75386806997,366.27579142084,373.75080757229,378.42269266694,387.59343007496,392.4383479509,400.44729382745,406.97310157871,415.27867508032,420.46965851882,425.72552925031,436.04260883433,439.53094970501,448.50096908674,455.80987376816,465.11211608996,470.92601754108,482.33849075995,488.36772189445,498.33441009638,504.56359022259,516.79124009995,523.2511306012],description:"Fokker's 7-limit supracomma per.bl. 10976/10935 & 225/224 & 496125/262144"},fokker_41a:{frequencies:[261.6255653006,264.59711493117,272.83435407277,275.93321340298,279.06726965397,287.4304306281,291.02331101095,294.32876096318,297.67175429757,306.59245933664,310.42486507835,313.95067836072,323.35923445661,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.77913876369,367.91095120397,372.08969287196,376.315896791,388.03108134794,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,431.14564594215,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,485.03885168492,490.54793493862,496.11959049595,502.32108537715,517.37477513058,523.2511306012],description:"Fokker's 41-tone periodicity block of schisma & 34171875/33554432"},fokker_41b:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,287.4304306281,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.42486507835,313.95067836072,323.35923445661,327.03195662575,331.11985608357,340.65828815182,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,383.2405741708,388.03108134794,392.4383479509,397.34382730029,408.78994578219,413.89982010446,418.60090448096,431.14564594215,436.04260883433,441.49314144476,454.2110508691,459.88868900496,465.11211608996,470.92601754108,485.03885168492,490.54793493862,496.67978412536,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 41-tone periodicity block of schisma & 3125/3072"},fokker_53:{frequencies:[261.6255653006,263.718569823,268.26840191956,272.52663052146,274.70684356563,279.06726965397,282.55561052465,286.15296204753,290.69507255622,294.32876096318,299.00064605783,300.46061014991,305.22982618403,309.04519901133,313.95067836072,317.87506184023,321.92208230347,327.03195662575,329.64821227876,334.88072358477,340.65828815182,343.38355445704,348.83408706747,353.19451315581,357.69120255941,360.55273217989,366.27579142084,373.75080757229,376.74081403286,381.53728273004,386.30649876417,392.4383479509,398.6675280771,400.61414686654,410.05802887931,412.06026534844,418.60090448096,423.83341578697,429.2294430713,436.04260883433,439.53094970501,448.50096908674,450.69091522486,457.84473927605,465.11211608996,470.92601754108,476.92160341255,480.73697623985,490.54793493862,498.33441009638,502.32108537715,508.71637697339,515.07533168556,523.2511306012],description:"Fokker's 53-tone system, degree 37 has alternatives"},fokker_53a:{frequencies:[261.6255653006,264.89588486686,269.46602871384,272.52663052146,275.93321340298,279.38237857051,283.88190679319,287.4304306281,290.69507255622,294.32876096318,298.00787047521,302.80736724606,306.59245933664,310.42486507835,313.95067836072,319.36714514233,323.35923445661,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,359.28803828513,363.36884069528,367.91095120397,372.50983809402,378.50920905758,383.2405741708,388.03108134794,392.4383479509,397.34382730029,403.74315632809,408.78994578219,413.89982010446,418.60090448096,425.82286018978,431.14564594215,436.04260883433,441.49314144476,447.01180571282,454.2110508691,459.88868900496,465.63729761752,470.92601754108,479.0507177135,484.4917875937,490.54793493862,496.67978412536,504.67894541011,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 53-tone periodicity block of schisma & kleisma"},fokker_53b:{frequencies:[261.6255653006,264.59711493117,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.51653791741,323.35923445661,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,388.03108134794,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.89982010446,418.60090448096,423.35538388988,431.14564594215,436.04260883433,441.49314144476,446.50763144636,451.5790761492,459.88868900496,465.11211608996,470.92601754108,476.27480687611,485.03885168492,490.54793493862,496.11959049595,502.32108537715,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 53-tone periodicity block of schisma & 2109375/2097152"},fokker_av:{frequencies:[261.6255653006,267.53238172257,273.57240048543,279.74894499065,286.06477437084,292.52336378682,299.12777114678,305.88111195206,312.78710209553,319.84901131344,327.07017092477,334.45455423048,342.00545991849,349.72704272607,357.62295854304,365.69693211485,373.95340598657,382.39606841888,391.02956482064,399.85798283974,408.88548711149,418.11704484248,427.5567798744,437.20988623572,447.08093432269,457.17458061119,467.49637893146,478.0512162812,488.84407170063,499.88088374606,511.16658268681,522.70737825664],description:"Fokker's suggestion for a shrinked octave by averaging approximations"},fokker_bosch:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,348.83408706747,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'Scale of "Naar Den Bosch toe", genus diatonicum cum septimis. 1/1=D'},fokker_sr:{frequencies:[261.6255653006,269.10058145205,279.06726965397,287.04062021552,296.75121990114,305.22982618403,315.35224388912,325.57848126297,336.37572681506,347.28371334717,358.80077526939,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,434.10464168396,446.50763144636,461.31528248922,474.80195184183,490.54793493862,506.45541529795,523.2511306012],description:"Fokker's 7-limit sruti scale, KNAW B72, 1969"},fokker_sr2:{frequencies:[261.6255653006,270.30192333353,279.06726965397,288.32205155576,296.75121990114,306.59245933664,315.35224388912,327.03195662575,336.37572681506,348.83408706747,358.80077526939,372.08969287196,381.53728273004,394.1903048614,406.97310157871,420.46965851882,434.10464168396,448.50096908674,461.31528248922,476.92160341255,490.54793493862,508.71637697339,523.2511306012],description:"Fokker's complementary 7-limit sruti scale, KNAW B72, 1969"},fokker_sra:{frequencies:[261.6255653006,269.76956886185,278.7476190342,287.42460593148,296.37169586701,305.59729331129,315.11006948887,325.59707150921,336.43308557971,346.90573279191,357.7043774887,368.83916960349,381.11429755927,392.97780480816,406.05627704035,419.57000893919,433.5334812886,447.02871783796,460.94403787128,475.29252052682,490.08765232515,506.39798251136,523.2511306012],description:"Two-step approximation 9-13 to Fokker's 7-limit sruti scale"},fokker_srb:{frequencies:[261.6255653006,269.31534001393,278.64197723942,286.83190328195,296.76515515861,305.48776291796,316.06708432391,325.35701999957,336.62443200122,346.51859521924,358.51885197895,369.0565423573,381.83730669135,393.06038214356,406.67242132093,418.62545783369,433.12283887627,445.85331391262,461.29362042034,474.85209942927,491.29666030217,505.73699464332,523.2511306012],description:"Two-step maximally even approximation 11-11 to Fokker's 7-limit sruti scale"},fokker_uv:{frequencies:[220,220.05029721079,220.09166666667,220.14198483463,220.15668113546,220.24841308594,220.29876708984,220.3905582428,220.5253936656,220.68244897959,220.7744,220.82487425697,220.98214285714,221.03266460905,221.0236875,221.07421875,221.28224372864,221.41762468656,221.66763848397,221.71831695641,221.76,221.81069958848,222.01040039062,222.06115722656,222.40609622534,222.44790857143,222.4987654321,222.65722615577,222.75,222.80092592593,223.00151824951,223.05250167847,223.14544022083,223.18896568405,223.23999196793,223.44097959184,223.49206349206,223.58518518519,223.79557291667,223.88882107205,224.18534499514,224.23659907493,224.33003099121,224.48979591837,224.58333333333,224.79466029576,224.83692169189,224.88832473755,225.18617242815,225.28,225.33150434385,225.49198250729,225.5859375,225.67993164062,225.9788277551,226.03049186753,226.28571428571,226.4317558299,226.68743133545,227.08224,227.1341563786,227.29591836735,227.390625,227.44261188272,228.096,228.14814814815,229.16666666667,231,232.03125,233.6237037037,233.84353741497],description:"Table of Unison Vectors, Microsons and Minisons, from article KNAW, 1969"},foote:{frequencies:[261.6255653006,276.70272600503,293.15632631094,310.58830860439,328.48713220126,349.43001184052,368.92737853004,391.76907592069,414.58565256441,438.98455767189,465.89457252293,492.17459484008,523.2511306012],description:"Ed Foote, piano temperament. TL 9 Jun 1999, almost equal to Coleman"},forster:{frequencies:[261.6255653006,279.06726965397,283.42769574232,287.78812183066,299.00064605783,309.19384990071,319.76457981184,327.03195662575,336.37572681506,340.11323489078,343.38355445704,353.19451315581,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,387.59343007496,392.4383479509,398.6675280771,402.50086969323,406.97310157871,418.60090448096,428.11456140098,441.49314144476,442.75095666255,448.50096908674,457.84473927605,465.11211608996,483.00104363188,490.54793493862,507.3950357345,523.2511306012],description:"Cris Forster's Chrysalis tuning, XH 7+8"},fortuna11:{frequencies:[261.6255653006,274.70684356563,299.00064605783,305.22982618403,332.97799220076,343.38355445704,373.75080757229,398.6675280771,411.12588832951,448.50096908674,457.84473927605,498.33441009638,523.2511306012],description:"11-limit scale from Clem Fortuna"},fortuna_a1:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,320.24370022528,349.22823143301,369.99442271164,391.99543598175,415.30469757995,440,466.16376151809,479.82340237272,523.2511306012],description:"Clem Fortuna, Arabic mode of 24-tET, try C or G major, superset of Basandida, trivalent"},fortuna_a2:{frequencies:[261.6255653006,277.18263097687,285.30470202322,311.12698372208,329.62755691287,349.22823143301,369.99442271164,391.99543598175,428.11456140098,440,466.16376151809,493.88330125613,523.2511306012],description:"Clem Fortuna, Arabic mode of 24-tET, try C or F minor"},fortuna_bag:{frequencies:[261.6255653006,266.17557513191,291.58269109838,303.42373253797,318.96815495553,348.01136516401,359.18086083642,388.55281975337,398.8194592997,432.92801877123,462.35552488468,479.64686971777,523.2511306012],description:"Bagpipe tuning from Fortuna, try key of G with F natural"},fortuna_eth:{frequencies:[261.6255653006,280.31310567921,288.69027895239,305.7551787248,323.91736656265,346.02090894595,368.95913055213,385.17097113699,414.24047839262,422.62591317789,469.58434797544,484.00729580611,523.2511306012],description:"Ethiopian Tunings from Fortuna"},fortuna_sheng:{frequencies:[261.6255653006,275.29257244317,286.94416839421,312.81317590289,320.2657782128,348.83408706747,367.19377586049,382.62738925213,417.81993264424,433.74764773521,467.75479856774,484.77678276288,523.2511306012],description:"Sheng scale on naturals starting on d, from Fortuna"},"francis_r12-14p":{frequencies:[261.6255653006,277.2273508585,293.19140419912,311.27759533081,328.56574776048,349.51003591412,369.636465861,391.67937618637,415.43871422078,438.93656251816,466.46466724696,492.84862139436,523.2511306012],description:"Bach WTC theoretical temperament, 1/14 Pyth. comma, Cornet-ton"},"francis_r12-2":{frequencies:[261.6255653006,277.2831963903,293.15801965318,311.35818177599,328.6319369554,349.45847225471,369.71092870521,391.50168688506,415.45657533448,438.80025285527,466.56783666625,492.94847466277,523.2511306012],description:"J. Charles Francis, Bach WTC temperament R12-2, fifths beat ratios 0, 1, 2. C=279.331 Cornet-ton"},"francis_r2-1":{frequencies:[261.6255653006,276.41735337657,293.40958958006,310.96959408698,328.77281747949,349.18425877583,368.55655650762,391.91325216238,414.62612565656,439.06418506387,465.92902003736,492.10921220871,523.2511306012],description:"J. Charles Francis, Bach WTC temperament R2-1, fifths beat ratios 0, 1, 2. C=249.072 Cammerton"},"francis_r2-14p":{frequencies:[261.6255653006,276.42350693124,293.47533146651,310.97644498676,328.88393162803,349.17189700163,368.56467609256,392.05867944486,414.6352601896,439.36162975058,466.01338145177,492.37181018521,523.2511306012],description:"Bach WTC theoretical temperament, 1/14 Pyth. comma, Cammerton"},francis_seal:{frequencies:[261.6255653006,275.89934348748,293.01242796531,310.38672525582,327.92787107993,349.18506556371,367.865749003,391.38524198103,413.84896721463,437.93907827641,465.58008765101,490.83740312498,523.2511306012],description:"J. Charles Francis, Bach tuning interpretion as beats/sec. from seal"},francis_suppig:{frequencies:[261.6255653006,276.33536163417,293.13939342657,310.64213412049,328.58201670643,349.47038191026,368.45885450371,391.47500324588,414.51381656966,438.73106346722,465.97531289569,491.91879926026,523.2511306012],description:"J. Charles Francis, Suppig Calculus musicus, 5ths beat ratios 0, 1, 2."},efg333:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,523.2511306012],description:"Genus primum [333]"},efg333333333337:{frequencies:[261.6255653006,275.01702890535,279.38237857051,289.72987407313,294.32876096318,309.39415751852,314.30517589183,325.94610833227,331.11985608357,343.38355445704,353.59332287831,366.6893718738,372.50983809402,386.30649876417,392.4383479509,412.52554335802,419.07356785577,434.59481110969,441.49314144476,457.84473927605,471.45776383774,488.9191624984,496.67978412536,515.07533168556,523.2511306012],description:"Genus [333333333337]"},efg333333355:{frequencies:[261.6255653006,264.89588486686,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.42486507835,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,397.34382730029,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Genus [333333355]"},efg33335:{frequencies:[261.6255653006,275.93321340298,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Genus [33335]"},efg3333555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Genus [3333555]"},efg33335555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Genus bis-ultra-chromaticum [33335555]"},efg333355577:{frequencies:[261.6255653006,267.07609791103,268.26840191956,272.52663052146,274.70684356563,278.20426865732,279.06726965397,281.68182201554,284.8811711051,286.15296204753,290.69507255622,294.32876096318,300.46061014991,305.22982618403,306.59245933664,312.97980223949,313.95067836072,317.94773560837,320.49131749323,321.92208230347,325.57848126297,327.03195662575,333.84512238879,343.38355445704,348.83408706747,352.10227751942,356.10146388137,357.69120255941,360.55273217989,363.36884069528,366.27579142084,367.91095120397,372.08969287196,375.57576268738,381.53728273004,392.4383479509,400.61414686654,402.40260287934,406.97310157871,408.78994578219,412.06026534844,417.30640298598,418.60090448096,427.32175665765,429.2294430713,436.04260883433,445.12682985172,450.69091522486,457.84473927605,459.88868900496,465.11211608996,469.46970335923,470.92601754108,476.92160341255,480.73697623985,488.36772189445,490.54793493862,500.76768358318,508.71637697339,515.07533168556,523.2511306012],description:"Genus [333355577]"},efg33337:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,386.30649876417,392.4383479509,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"Genus [33337]"},efg3335:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Genus diatonicum veterum correctum [3335]"},efg33355:{frequencies:[261.6255653006,272.52663052146,290.69507255622,310.07474405997,327.03195662575,348.83408706747,363.36884069528,387.59343007496,408.78994578219,436.04260883433,465.11211608996,484.4917875937,523.2511306012],description:"Genus diatonico-chromaticum hodiernum correctum [33355]"},efg333555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Genus diatonico-hyperchromaticum [333555]"},efg33355555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,287.4304306281,294.32876096318,306.59245933664,313.95067836072,319.36714514233,327.03195662575,340.65828815182,348.83408706747,359.28803828513,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,425.82286018978,436.04260883433,459.88868900496,470.92601754108,479.0507177135,490.54793493862,510.98743222773,523.2511306012],description:"Genus [33355555]"},efg333555777:{frequencies:[261.6255653006,262.79353657426,267.07609791103,268.26840191956,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,281.68182201554,286.15296204753,294.32876096318,299.00064605783,300.46061014991,305.22982618403,306.59245933664,311.45900631024,312.97980223949,313.95067836072,318.93402246168,320.49131749323,321.92208230347,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,350.39138209902,352.10227751942,357.69120255941,358.80077526939,360.55273217989,366.27579142084,367.91095120397,373.75080757229,375.57576268738,381.53728273004,392.4383479509,398.6675280771,400.61414686654,402.40260287934,408.78994578219,412.06026534844,417.30640298598,418.60090448096,420.46965851882,427.32175665765,429.2294430713,436.04260883433,448.50096908674,450.69091522486,457.84473927605,459.88868900496,467.18850946536,469.46970335923,470.92601754108,476.92160341255,478.40103369253,480.73697623985,488.36772189445,490.54793493862,498.33441009638,500.76768358318,515.07533168556,523.2511306012],description:"Genus [333555777]"},efg333557:{frequencies:[261.6255653006,265.7783520514,279.06726965397,280.31310567921,290.69507255622,299.00064605783,313.95067836072,318.93402246168,327.03195662575,332.22294006425,348.83408706747,358.80077526939,372.08969287196,373.75080757229,392.4383479509,398.6675280771,418.60090448096,425.24536328225,436.04260883433,448.50096908674,465.11211608996,478.40103369253,490.54793493862,498.33441009638,523.2511306012],description:"Genus diatonico-enharmonicum [333557]"},efg33357:{frequencies:[261.6255653006,274.70684356563,279.06726965397,305.22982618403,313.95067836072,325.57848126297,343.38355445704,348.83408706747,366.27579142084,372.08969287196,392.4383479509,406.97310157871,418.60090448096,457.84473927605,465.11211608996,488.36772189445,523.2511306012],description:"Genus diatonico-enharmonicum [33357]"},efg3335711:{frequencies:[261.6255653006,265.58571790036,269.80136421624,275.93321340298,286.15296204753,294.32876096318,295.09524211152,303.52653474327,314.76825825228,321.92208230347,327.03195662575,331.98214737546,337.2517052703,343.38355445704,354.11429053382,359.73515228832,367.91095120397,379.40816842909,386.30649876417,392.4383479509,393.46032281536,404.70204632437,429.2294430713,441.49314144476,442.64286316727,449.66894036041,457.84473927605,472.15238737843,482.88312345521,490.54793493862,505.87755790546,515.07533168556,523.2511306012],description:"Genus [3 3 3 5 7 11], expanded hexany 1 3 5 7 9 11"},efg333577:{frequencies:[261.6255653006,267.07609791103,281.68182201554,286.15296204753,294.32876096318,300.46061014991,305.22982618403,321.92208230347,327.03195662575,333.84512238879,343.38355445704,348.83408706747,367.91095120397,375.57576268738,381.53728273004,392.4383479509,400.61414686654,429.2294430713,436.04260883433,450.69091522486,457.84473927605,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:"Genus [333577]"},efg3337:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,392.4383479509,457.84473927605,515.07533168556,523.2511306012],description:"Genus [3337]"},efg33377:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,515.07533168556,523.2511306012],description:"Genus [33377] Bi-enharmonicum simplex"},efg335:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Genus secundum [335]"},efg3355:{frequencies:[261.6255653006,279.06726965397,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Genus chromaticum veterum correctum [3355]"},efg33555:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,367.91095120397,392.4383479509,408.78994578219,418.60090448096,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"Genus bichromaticum [33555]"},efg335555577:{frequencies:[261.6255653006,267.07609791103,268.26840191956,272.52663052146,274.70684356563,279.06726965397,286.15296204753,293.02063313667,300.46061014991,305.22982618403,306.59245933664,312.97980223949,313.95067836072,320.49131749323,327.03195662575,333.84512238879,334.88072358477,341.85740532612,343.38355445704,348.83408706747,357.69120255941,366.27579142084,375.57576268738,381.53728273004,384.58958099188,390.69417751556,392.4383479509,400.61414686654,408.78994578219,417.30640298598,418.60090448096,427.32175665765,429.2294430713,436.04260883433,439.53094970501,446.50763144636,457.84473927605,469.46970335923,476.92160341255,480.73697623985,488.36772189445,490.54793493862,500.76768358318,502.32108537715,512.78610798918,523.2511306012],description:"Genus [335555577]"},efg33557:{frequencies:[261.6255653006,274.70684356563,279.06726965397,286.15296204753,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,418.60090448096,429.2294430713,436.04260883433,457.84473927605,488.36772189445,490.54793493862,523.2511306012],description:"Genus chromatico-enharmonicum [33557]"},efg335577:{frequencies:[261.6255653006,274.70684356563,279.06726965397,280.31310567921,286.15296204753,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,478.40103369253,488.36772189445,490.54793493862,498.33441009638,523.2511306012],description:"Genus chromaticum septimis triplex [335577]"},efg3357:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,343.38355445704,348.83408706747,381.53728273004,392.4383479509,429.2294430713,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Genus enharmonicum vocale [3357]"},efg33577:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,305.22982618403,327.03195662575,343.38355445704,348.83408706747,373.75080757229,381.53728273004,392.4383479509,398.6675280771,429.2294430713,436.04260883433,448.50096908674,457.84473927605,490.54793493862,498.33441009638,523.2511306012],description:"Genus [33577]"},efg337:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,457.84473927605,515.07533168556,523.2511306012],description:"Genus quintum [337]"},efg3377:{frequencies:[261.6255653006,299.00064605783,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,523.2511306012],description:"Genus [3377]"},efg33777:{frequencies:[261.6255653006,267.07609791103,299.00064605783,300.46061014991,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [33777]"},efg33777a:{frequencies:[261.6255653006,267.07609791103,299.00064605783,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,523.2511306012],description:"Genus [33777] with comma discarded which disappears in 31-tET"},efg355:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Genus tertium [355]"},efg3555:{frequencies:[261.6255653006,306.59245933664,327.03195662575,383.2405741708,392.4383479509,408.78994578219,490.54793493862,510.98743222773,523.2511306012],description:"Genus enharmonicum veterum correctum [3555]"},efg35555:{frequencies:[261.6255653006,306.59245933664,313.95067836072,327.03195662575,334.88072358477,392.4383479509,408.78994578219,418.60090448096,490.54793493862,502.32108537715,523.2511306012],description:"Genus [35555]"},efg35557:{frequencies:[261.6255653006,268.26840191956,274.70684356563,286.15296204753,306.59245933664,313.95067836072,327.03195662575,343.38355445704,357.69120255941,366.27579142084,392.4383479509,408.78994578219,418.60090448096,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus [35557]"},efg3557:{frequencies:[261.6255653006,274.70684356563,286.15296204753,313.95067836072,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus enharmonicum instrumentale [3557]"},efg35577:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,358.80077526939,366.27579142084,373.75080757229,392.4383479509,418.60090448096,429.2294430713,448.50096908674,457.84473927605,478.40103369253,490.54793493862,523.2511306012],description:"Genus [35577]"},efg357:{frequencies:[261.6255653006,286.15296204753,327.03195662575,343.38355445704,392.4383479509,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus sextum [357] & 7-limit Octony, see ch.6 p.118"},efg35711:{frequencies:[261.6255653006,269.80136421624,286.15296204753,295.09524211152,314.76825825228,327.03195662575,337.2517052703,343.38355445704,359.73515228832,392.4383479509,393.46032281536,429.2294430713,449.66894036041,457.84473927605,472.15238737843,490.54793493862,523.2511306012],description:"Genus [3 5 7 11]"},efg3571113:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.01701053212,278.99913799634,286.15296204753,292.28481123426,295.09524211152,314.76825825228,318.85615771011,319.68651228748,327.03195662575,337.2517052703,343.38355445704,348.74892249543,359.73515228832,365.35601404283,371.99885066179,383.62381474497,392.4383479509,393.46032281536,398.57019713763,425.14154361347,429.2294430713,438.4272168514,449.66894036041,457.84473927605,464.99856332724,472.15238737843,479.52976843121,490.54793493862,511.49841965996,523.2511306012],description:"Genus [3 5 7 11 13]"},efg3577:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,327.03195662575,343.38355445704,373.75080757229,392.4383479509,429.2294430713,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Genus [3577]"},efg35777:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,300.46061014991,327.03195662575,343.38355445704,373.75080757229,375.57576268738,392.4383479509,400.61414686654,429.2294430713,448.50096908674,457.84473927605,490.54793493862,500.76768358318,523.2511306012],description:"Genus [35777]"},efg35777a:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,327.03195662575,343.38355445704,373.75080757229,392.4383479509,400.61414686654,429.2294430713,448.50096908674,457.84473927605,490.54793493862,500.76768358318,523.2511306012],description:"Genus [35777] with comma discarded which disappears in 31-tET"},efg377:{frequencies:[261.6255653006,300.46061014991,343.38355445704,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Genus octavum [377]"},efg3777:{frequencies:[261.6255653006,262.90303388117,300.46061014991,343.38355445704,350.53737850823,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Genus [3777]"},efg37777:{frequencies:[261.6255653006,262.90303388117,299.00064605783,300.46061014991,343.38355445704,350.53737850823,392.4383479509,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [37777]"},efg37777a:{frequencies:[261.6255653006,299.00064605783,343.38355445704,350.53737850823,392.4383479509,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [37777] with comma discarded that disappears in 31-tET"},efg555:{frequencies:[261.6255653006,327.03195662575,408.78994578219,510.98743222773,523.2511306012],description:"Genus quartum [555]"},efg55557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,366.27579142084,408.78994578219,418.60090448096,447.11400319927,457.84473927605,510.98743222773,523.2511306012],description:"Genus [55557]"},efg5557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,408.78994578219,447.11400319927,457.84473927605,510.98743222773,523.2511306012],description:"Genus [5557]"},efg55577:{frequencies:[261.6255653006,286.15296204753,291.99281841585,299.00064605783,327.03195662575,357.69120255941,373.75080757229,408.78994578219,447.11400319927,457.84473927605,467.18850946536,510.98743222773,523.2511306012],description:"Genus [55577]"},efg557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,366.27579142084,418.60090448096,457.84473927605,523.2511306012],description:"Genus septimum [557]"},efg5577:{frequencies:[261.6255653006,293.02063313667,320.49131749323,334.88072358477,366.27579142084,400.61414686654,418.60090448096,457.84473927605,512.78610798918,523.2511306012],description:"Genus [5577]"},efg55777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,320.49131749323,327.03195662575,366.27579142084,373.75080757229,400.61414686654,418.60090448096,457.84473927605,478.40103369253,500.76768358318,523.2511306012],description:"Genus [55777]"},efg577:{frequencies:[261.6255653006,286.15296204753,327.03195662575,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Genus nonum [577]"},efg5777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Genus [5777]"},efg57777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,350.53737850823,373.75080757229,400.61414686654,438.17172313528,457.84473927605,500.76768358318,523.2511306012],description:"Genus [57777]"},efg777:{frequencies:[261.6255653006,350.53737850823,400.61414686654,457.84473927605,523.2511306012],description:"Genus decimum [777]"},efg77777:{frequencies:[261.6255653006,299.00064605783,341.71502406609,350.53737850823,400.61414686654,457.84473927605,523.2511306012],description:"Genus [77777]"},eikohole1:{frequencies:[261.6255653006,277.4816601673,305.22982618403,332.97799220076,436.04260883433,475.68284600109,523.2511306012],description:"First eikohole ball <6 9 13 17 20|-epimorphic"},eikohole2:{frequencies:[261.6255653006,266.38239376061,274.70684356563,285.40970760065,299.68019298069,313.95067836072,332.97799220076,348.83408706747,366.27579142084,380.54627680087,392.4383479509,399.57359064092,418.60090448096,428.11456140098,443.97065626768,470.92601754108,488.36772189445,499.46698830115,523.2511306012],description:"Second eikohole ball"},eikohole4:{frequencies:[261.6255653006,274.70684356563,279.79400733536,287.78812183066,305.22982618403,313.95067836072,319.76457981184,335.75280880244,348.83408706747,359.73515228832,366.27579142084,373.05867644715,383.71749577421,392.4383479509,406.97310157871,418.60090448096,419.69101100305,431.68218274599,447.67041173658,457.84473927605,470.92601754108,479.64686971777,488.36772189445,503.62921320365,523.2511306012],description:"Fourth eikohole ball"},eikohole5:{frequencies:[261.6255653006,266.38239376061,274.70684356563,279.06726965397,285.40970760065,287.78812183066,294.32876096318,295.98043751179,299.68019298069,305.22982618403,313.95067836072,321.08592105074,325.57848126297,332.97799220076,342.49164912079,348.83408706747,353.19451315581,355.17652501415,363.24871876447,366.27579142084,374.60024122586,380.54627680087,392.4383479509,399.57359064092,406.97310157871,412.06026534844,418.60090448096,428.11456140098,439.53094970501,443.97065626768,448.50096908674,449.52028947103,456.65553216105,457.84473927605,465.11211608996,466.16918908107,470.92601754108,475.68284600109,488.36772189445,499.46698830115,507.3950357345,513.73747368118,523.2511306012],description:"Fifth eikohole ball"},eikohole6:{frequencies:[261.6255653006,266.38239376061,272.43653907335,274.70684356563,279.06726965397,285.40970760065,287.78812183066,293.02063313667,294.32876096318,295.98043751179,299.00064605783,299.68019298069,305.22982618403,310.77945938738,313.95067836072,317.12189733406,321.08592105074,325.57848126297,329.64821227876,332.97799220076,336.37572681506,342.49164912079,348.83408706747,349.6268918108,353.19451315581,355.17652501415,356.76213450082,363.24871876447,366.27579142084,374.60024122586,380.54627680087,383.71749577421,392.4383479509,399.57359064092,406.97310157871,412.06026534844,418.60090448096,428.11456140098,431.68218274599,439.53094970501,443.97065626768,448.50096908674,449.52028947103,456.65553216105,457.84473927605,465.11211608996,466.16918908107,470.92601754108,475.68284600109,484.33162501929,488.36772189445,499.46698830115,507.3950357345,513.73747368118,523.2511306012],description:"Sixth eikohole ball"},eikosany:{frequencies:[261.6255653006,269.80136421624,274.70684356563,287.78812183066,294.32876096318,305.22982618403,323.76163705949,335.75280880244,343.38355445704,359.73515228832,366.27579142084,377.72190990274,392.4383479509,412.06026534844,419.69101100305,431.68218274599,457.84473927605,470.92601754108,479.64686971777,503.62921320365,523.2511306012],description:"3)6 1.3.5.7.9.11 Eikosany (1.3.5 tonic)"},ekring1:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,353.19451315581,367.91095120397,376.74081403286,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Single-tie circular mirroring of 3:4:5"},ekring2:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,384.42940207435,400.61414686654,448.50096908674,457.84473927605,504.56359022259,515.07533168556,523.2511306012],description:"Single-tie circular mirroring of 6:7:8"},ekring3:{frequencies:[261.6255653006,266.96486255163,299.00064605783,305.10270005901,327.03195662575,333.70607818954,341.71502406609,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,523.2511306012],description:"Single-tie circular mirroring of 4:5:7"},ekring4:{frequencies:[261.6255653006,279.06726965397,313.95067836072,334.88072358477,348.83408706747,376.74081403286,392.4383479509,401.85686830172,436.04260883433,446.50763144636,465.11211608996,502.32108537715,523.2511306012],description:"Single-tie circular mirroring of 4:5:6"},ekring5:{frequencies:[261.6255653006,263.718569823,269.10058145205,305.22982618403,322.92069774245,366.27579142084,373.75080757229,376.74081403286,384.42940207435,439.53094970501,448.50096908674,512.78610798918,523.2511306012],description:"Single-tie circular mirroring of 3:5:7"},ekring5bp:{frequencies:[261.6255653006,282.55561052465,336.37572681506,363.28578496026,366.27579142084,395.57785473451,432.48307733364,512.78610798918,560.62621135843,605.4763082671,610.45965236807,659.29642455751,784.8766959018],description:"Single-tie BP circular mirroring of 3:5:7"},ekring6:{frequencies:[261.6255653006,288.32205155576,299.00064605783,336.37572681506,348.83408706747,384.42940207435,392.4383479509,406.97310157871,432.48307733364,465.11211608996,494.26637409559,512.57253609913,523.2511306012],description:"Single-tie circular mirroring of 6:7:9"},ekring7:{frequencies:[261.6255653006,266.96486255163,290.69507255622,296.62762505737,322.99452506247,336.37572681506,343.24053756638,406.97310157871,415.27867508032,432.48307733364,470.92601754108,480.53675259294,523.2511306012],description:"Single-tie circular mirroring of 5:7:9"},ekring7bp:{frequencies:[261.6255653006,311.45900631024,336.37572681506,400.44729382745,432.48307733364,436.04260883433,470.92601754108,514.86080634958,610.45965236807,667.41215637908,720.80512888941,726.73768139056,784.8766959018],description:"Single-tie BP circular mirroring of 5:7:9"},ellis:{frequencies:[261.6255653006,277.10015133873,293.57875905702,310.98767008297,329.52610437773,349.11112716429,369.96685849926,391.93834696391,415.15022554673,439.86813926913,465.98150356841,493.78915701915,523.2511306012],description:"Alexander John Ellis' imitation equal temperament (1875)"},ellis_24:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,294.32876096318,298.00787047521,306.59245933664,310.42486507835,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.50983809402,392.4383479509,397.34382730029,408.78994578219,413.89982010446,436.04260883433,441.49314144476,459.88868900496,465.63729761752,490.54793493862,496.67978412536,523.2511306012],description:"Ellis, from p.421 of Helmholtz, 24 tones of JI for 1 manual harmonium"},ellis_eb:{frequencies:[261.6255653006,277.21587437848,293.6537610003,311.19285946782,329.68548178616,349.2169654334,370.02116610622,391.93834696391,415.32381240723,439.98064151826,466.28928903228,494.02822100775,523.2511306012],description:"Ellis' new equal beating temperament for pianofortes (1885)"},ellis_harm:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,353.19451315581,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ellis's Just Harmonium"},ellis_mteb:{frequencies:[261.6255653006,273.31920907322,292.34465012884,313.05587813274,326.9349299255,350.18846153218,365.78692922515,391.15004079048,408.78346942429,437.23842445073,468.2723780569,489.17031487243,523.2511306012],description:"Ellis' equal beating meantone tuning (1885)"},enh14:{frequencies:[261.6255653006,267.70988077271,274.08392555301,348.83408706747,392.4383479509,401.56482115906,411.12588832951,523.2511306012],description:"14/11 Enharmonic"},enh15:{frequencies:[261.6255653006,270.64713651786,280.31310567921,356.76213450082,392.4383479509,402.50086969323,413.09299784305,523.2511306012],description:"Tonos-15 Enharmonic"},enh15_inv:{frequencies:[261.6255653006,331.39238271409,340.11323489078,348.83408706747,383.71749577421,488.36772189445,505.80942624783,523.2511306012],description:"Inverted Enharmonic Tonos-15 Harmonia"},enh15_inv2:{frequencies:[261.6255653006,270.34641747729,279.06726965397,348.83408706747,383.71749577421,392.4383479509,401.15920012759,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-15"},enh17:{frequencies:[261.6255653006,269.55361273395,277.97716313189,370.63621750918,404.33041910093,413.73345210327,423.58424858192,523.2511306012],description:"Tonos-17 Enharmonic"},enh17_con:{frequencies:[261.6255653006,269.55361273395,277.97716313189,370.63621750918,378.52209447746,386.75083566176,494.18162334558,523.2511306012],description:"Conjunct Tonos-17 Enharmonic"},enh19:{frequencies:[261.6255653006,268.69652652494,276.16031892841,355.06326719367,382.37582620857,389.87339142835,397.67085925691,523.2511306012],description:"Tonos-19 Enharmonic"},enh19_con:{frequencies:[261.6255653006,268.69652652494,276.16031892841,355.06326719367,361.51896296083,368.21375857121,451.89870370104,523.2511306012],description:"Conjunct Tonos-19 Enharmonic"},enh2:{frequencies:[261.6255653006,266.71168334607,277.18263097687,349.22823143301,391.99543598175,399.61600264311,415.30469757995,523.2511306012],description:"1:2 Enharmonic. New genus 2 + 4 + 24 parts"},enh21:{frequencies:[261.6255653006,268.0066766494,274.70684356563,343.38355445704,392.4383479509,399.57359064092,406.97310157871,523.2511306012],description:"Tonos-21 Enharmonic"},enh21_inv:{frequencies:[261.6255653006,336.37572681506,342.60490694126,348.83408706747,398.6675280771,498.33441009638,510.79277034879,523.2511306012],description:"Inverted Enharmonic Tonos-21 Harmonia"},enh21_inv2:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,398.6675280771,411.12588832951,423.58424858192,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-21"},enh23:{frequencies:[261.6255653006,267.43946675172,273.51763645063,334.29933343966,376.08675011961,388.21858076863,401.15920012759,523.2511306012],description:"Tonos-23 Enharmonic"},enh23_con:{frequencies:[261.6255653006,267.43946675172,273.51763645063,334.29933343966,343.8507429665,353.96400011258,462.87600014722,523.2511306012],description:"Conjunct Tonos-23 Enharmonic"},enh25:{frequencies:[261.6255653006,269.71707762948,278.32506946872,363.36884069528,408.78994578219,421.97671822677,436.04260883433,523.2511306012],description:"Tonos-25 Enharmonic"},enh25_con:{frequencies:[261.6255653006,269.71707762948,278.32506946872,363.36884069528,373.75080757229,384.74347838324,503.12608711654,523.2511306012],description:"Conjunct Tonos-25 Enharmonic"},enh27:{frequencies:[261.6255653006,269.10058145205,277.01530443593,353.19451315581,392.4383479509,403.65087217807,415.52295665389,523.2511306012],description:"Tonos-27 Enharmonic"},enh27_inv:{frequencies:[261.6255653006,329.45441556372,339.14425131559,348.83408706747,387.59343007496,494.18162334558,508.71637697339,523.2511306012],description:"Inverted Enharmonic Tonos-27 Harmonia"},enh27_inv2:{frequencies:[261.6255653006,266.38239376061,271.31540105247,348.83408706747,387.59343007496,397.28326582684,406.97310157871,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-27"},enh29:{frequencies:[261.6255653006,266.21548749886,270.96933548991,344.87006335079,379.35706968587,389.08417403679,399.32323124828,523.2511306012],description:"Tonos-29 Enharmonic"},enh29_con:{frequencies:[261.6255653006,266.21548749886,270.96933548991,344.87006335079,352.8902973822,361.29244731988,474.19633710734,523.2511306012],description:"Conjunct Tonos-29 Enharmonic"},enh31:{frequencies:[261.6255653006,270.34641747729,279.66870773512,337.93302184661,352.6257619269,368.65420565085,377.22755927063,386.2091678247,523.2511306012],description:"Tonos-31 Enharmonic. Tone 24 alternates with 23 as MESE or A"},enh31_con:{frequencies:[261.6255653006,270.34641747729,279.66870773512,337.93302184661,352.6257619269,360.46188996972,368.65420565085,450.57736246214,523.2511306012],description:"Conjunct Tonos-31 Enharmonic"},enh33:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,392.4383479509,401.56482115906,411.12588832951,523.2511306012],description:"Tonos-33 Enharmonic"},enh33_con:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,367.38909169871,375.37581108347,479.64686971777,523.2511306012],description:"Conjunct Tonos-33 Enharmonic"},enh_invcon:{frequencies:[261.6255653006,283.42769574232,370.63621750918,381.53728273004,392.4383479509,501.44900015948,512.35006538034,523.2511306012],description:"Inverted Enharmonic Conjunct Phrygian Harmonia"},enh_mod:{frequencies:[261.6255653006,294.32876096318,305.22982618403,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Enharmonic After Wilson's Purvi Modulations, See page 111"},enh_perm:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Permuted Enharmonic, After Wilson's Marwa Permutations, See page 110."},enn45ji:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,276.85245005354,282.55561052465,288.32205155576,290.69507255622,296.75121990114,299.00064605783,305.22982618403,311.45900631024,313.95067836072,320.49131749323,322.92069774245,329.64821227876,336.37572681506,339.14425131559,346.06556256693,348.83408706747,356.10146388137,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,392.4383479509,395.57785473451,403.65087217807,406.97310157871,415.27867508032,423.93031414449,427.32175665765,436.04260883433,439.53094970501,448.50096908674,457.84473927605,461.31528248922,470.92601754108,474.80195184183,484.4917875937,494.47231841813,498.33441009638,508.71637697339,512.78610798918,523.2511306012],description:"Detempered Ennealimma[45], Hahn reduced"},enn72synch:{frequencies:[195.99771799087,197.54967854522,199.11392792408,201.62391554947,203.22042578925,204.82957760946,207.41161549338,209.05395423619,211.68924370912,213.36545381699,215.05493658943,217.76587316352,219.49019959291,221.22817968434,224.01693484168,225.790758792,228.63703016722,230.44743589451,232.27217821307,235.20015301436,237.06252857463,238.93964952543,241.95167308427,243.86750892427,246.94165062806,248.89699839908,250.8678291188,254.03021536301,256.04169222048,258.06909647124,261.3222603528,263.39147750593,266.71173418544,268.8236265844,270.95224149283,274.36780754746,276.54032271274,278.73004041423,282.24365173996,284.47852987378,288.0646054292,290.34557537779,292.64460663558,296.33362372129,298.68006816723,301.0450940916,304.84000597616,307.25380610435,311.12698372207,313.59056753865,316.0736586482,320.05801564518,322.59231767928,325.14668697146,329.24541662461,331.85246687263,336.03572815421,338.69654584276,341.37843257302,345.68177614255,348.4189737305,351.17784515594,355.60471802638,358.42048803112,362.93866010991,365.81250216232,368.70910003837,373.35696816148,376.31330506793,379.29305101359,384.07434037944,387.11553797119,391.99543598174],description:"Poptimal synchonized beating ennealimmal tuning, TM 10-10-2005"},ennea45:{frequencies:[261.6255653006,267.02028728287,269.13615104392,274.68574138534,276.8623300691,282.57123430547,288.39787286736,290.68311542614,296.67700440585,299.02785016604,305.1938252949,311.48692526882,313.95512370264,320.42888174436,322.96795420876,329.62755691287,336.42448069667,339.09030198792,346.08234767737,348.824677577,356.01744619623,363.3585507705,366.23777597441,373.78960287068,376.751482929,384.52012478698,392.44893391322,395.5586690753,403.715093104,406.91412394911,415.30469757995,423.86828492968,427.22700928979,436.03643483576,439.49155400205,448.55387459245,457.80308677504,461.43068321685,470.94538888861,474.67712392136,484.46499932732,494.45467284607,498.37269363637,508.649143962,512.67967026301,523.2511306012],description:"Ennealimmal-45, in a 7-limit least-squares tuning, g=48.999, G.W. Smith"},epimore_enh:{frequencies:[261.6255653006,265.11390617127,279.06726965397,348.83408706747,392.4383479509,397.67085925691,418.60090448096,523.2511306012],description:"New Epimoric Enharmonic, Dorian mode of the 4th new Enharmonic on Hofmann's list"},eratos_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,392.4383479509,413.09299784305,436.04260883433,523.2511306012],description:"Dorian mode of Eratosthenes's Chromatic. same as Ptol. Intense Chromatic"},eratos_diat:{frequencies:[261.6255653006,275.62199471997,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Dorian mode of Eratosthenes's Diatonic, Pythagorean"},eratos_enh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,392.4383479509,402.50086969323,413.09299784305,523.2511306012],description:"Dorian mode of Eratosthenes's Enharmonic"},erlangen:{frequencies:[261.6255653006,275.62199471997,293.99679436797,310.07474405997,327.03195662575,348.83408706747,367.49599295996,392.4383479509,413.43299207996,440.99519155196,465.11211608996,490.54793493862,523.2511306012],description:"Anonymus: Pro clavichordiis faciendis, Erlangen 15th century"},erlangen2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Revised Erlangen"},erlich1:{frequencies:[261.6255653006,278.64199172491,296.7651860139,326.1838132033,347.39918201406,369.99442271164,394.05928374402,433.12277132725,461.29357245868,491.2966347616,523.2511306012],description:"Asymmetrical Major decatonic mode of 22-tET, Paul Erlich"},erlich10:{frequencies:[261.6255653006,274.70684356563,299.00064605783,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Canonical JI interpretation of the Pentachordal decatonic mode of 22-tET"},erlich10s1:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Superparticular version of erlich10 using 50/49 decatonic comma"},erlich10s2:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Other superparticular version of erlich10 using 50/49 decatonic comma"},erlich11:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Canonical JI interpretation of the Symmetrical decatonic mode of 22-tET"},erlich11s1:{frequencies:[261.6255653006,274.70684356563,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Superparticular version of erlich11 using 50/49 decatonic comma"},erlich11s2:{frequencies:[261.6255653006,280.31310567921,305.22982618403,311.45900631024,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Other superparticular version of erlich11 using 50/49 decatonic comma"},erlich12:{frequencies:[261.6255653006,267.01308914069,282.57123920205,288.39008844866,305.19382000629,311.47852302926,329.62755691287,336.41541160581,356.01745236555,363.34874301751,384.52011812375,392.4383479509,415.30469757995,423.85685859121,448.5538823653,457.7907297806,484.46499093218,494.44133512215,523.2511306012],description:"Two 9-tET scales 3/2 shifted, Paul Erlich, TL 5-12-2001"},erlich13:{frequencies:[261.6255653006,269.80136421624,294.32876096318,327.03195662575,343.38355445704,359.73515228832,392.4383479509,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Just scale by Paul Erlich (2002)"},erlich2:{frequencies:[261.6255653006,278.64199172491,296.7651860139,316.06713361714,347.39918201406,369.99442271164,394.05928374402,419.68935090103,446.98642698175,476.05893615592,523.2511306012],description:"Asymmetrical Minor decatonic mode of 22-tET, Paul Erlich"},erlich3:{frequencies:[261.6255653006,278.64199172491,296.7651860139,326.1838132033,347.39918201406,369.99442271164,394.05928374402,419.68935090103,461.29357245868,491.2966347616,523.2511306012],description:"Symmetrical Major decatonic mode of 22-tET, Paul Erlich"},erlich4:{frequencies:[261.6255653006,278.64199172491,296.7651860139,316.06713361714,347.39918201406,369.99442271164,394.05928374402,419.68935090103,446.98642698175,491.2966347616,523.2511306012],description:"Symmetrical Minor decatonic mode of 22-tET, Paul Erlich"},erlich5:{frequencies:[261.6255653006,269.33066959279,278.10477655849,287.16472157287,295.62197660533,306.17967660611,315.19693888202,326.45372959864,335.05049156411,348.07025322573,357.23626005287,368.87410717392,380.89108570115,393.29954676976,406.11224388345,419.34234602259,433.00345117936,444.40607048653,461.67529188567,473.83294924974,490.75518955849,505.2083639382,523.2511306012],description:"Unequal 22-note compromise between decatonic & Indian srutis, Paul Erlich"},erlich6:{frequencies:[261.6255653006,274.70684356563,280.31310567921,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Scale of consonant tones against 1/1-3/2 drone. TL 23-9-1998"},erlich7:{frequencies:[261.6255653006,272.64118737561,277.98432293805,281.84855879469,292.47977325983,303.51199286577,307.73108663824,313.76190292287,326.97270111135,337.05955506058,340.85784563832,350.05627231138,365.1325261687,373.60234843661,378.13992750117,391.18115131013,406.9458559663,413.62886206386,420.42161880722,437.36472209676,452.44848028305,457.94368329907,468.56640608675,488.7466646507,501.93603498211,507.59230220159,523.2511306012],description:"Meantone-like circle of sinuoidally varying fifths, TL 08-12-99"},erlich8:{frequencies:[261.6255653006,263.902226729,277.18263097687,279.59466973861,293.66476791741,296.22023396764,311.12698372208,313.83440569119,329.62755691287,332.49597057,349.22823143301,352.26720984209,369.99442271164,373.21410818061,391.99543598175,395.40657391157,415.30469757995,418.91867232636,440,443.82887286778,466.16376151809,470.22031101449,493.88330125613,498.18106573801,523.2511306012],description:"Two 12-tET scales 15 cents shifted, Paul Erlich"},erlich9:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,302.70726563706,308.34441624714,319.76457981184,332.97799220076,345.34574619679,356.76213450082,369.97554688974,383.71749577421,396.40237166758,411.12588832951,428.11456140098,436.04260883433,452.23847716247,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"11-limit periodicity block, u.v.: 9801/9800 243/242 126/125 100/99"},erlich_bpf:{frequencies:[261.6255653006,269.93113880221,277.4816601673,282.55561052465,293.6613488068,301.87565226992,311.45900631024,319.76457981184,328.70904358281,336.37572681506,347.05432131712,356.76213450082,366.27579142084,377.90359432309,388.47432423422,400.44729382745,411.12588832951,422.62591317789,436.04260883433,447.67041173658,458.69417292962,470.92601754108,485.87604984397,499.46698830115,512.78610798918,528.59042785223,543.37617408586,560.62621135843,575.57624366132,591.67627844905,610.45965236807,624.69777837082,642.17184210147,659.29642455751,680.22646978156,699.2537836216,726.73768139056,740.02659899313,760.72664372021,784.8766959018],description:"Erlich's 39-tone Triple Bohlen-Pierce scale"},erlich_bpp:{frequencies:[261.6255653006,268.60224704195,277.4816601673,282.55561052465,293.6613488068,299.68019298069,311.45900631024,319.76457981184,323.65460841914,336.37572681506,345.34574619679,356.76213450082,366.27579142084,380.67211882362,385.30310526088,400.44729382745,411.12588832951,419.55227017296,436.04260883433,447.67041173658,458.69417292962,470.92601754108,489.43558134466,499.46698830115,512.78610798918,528.59042785223,539.42434736524,560.62621135843,575.57624366132,594.60355750136,610.45965236807,629.27431887171,642.17184210147,659.29642455751,685.20981388252,699.2537836216,720.80512888941,740.02659899313,764.49028821604,784.8766959018],description:"Periodicity block for erlich_bpf, 1625/1617 1331/1323 275/273 245/243"},erlich_bpp2:{frequencies:[261.6255653006,268.60224704195,277.4816601673,282.55561052465,293.92501780685,299.68019298069,311.45900631024,319.76457981184,326.02570445152,336.37572681506,345.34574619679,356.76213450082,366.27579142084,377.90359432309,385.30310526088,400.44729382745,411.12588832951,422.62591317789,436.04260883433,447.67041173658,458.69417292962,470.92601754108,485.87604984397,499.46698830115,512.78610798918,528.59042785223,543.37617408586,560.62621135843,575.57624366132,594.60355750136,610.45965236807,629.83932387181,642.17184210147,659.29642455751,685.20981388252,698.62650953896,726.73768139056,740.02659899313,764.49028821604,784.8766959018],description:"Improved shape for erlich_bpp"},erlich_bppe:{frequencies:[261.6255653006,269.03526454087,276.77324548748,284.61195549492,292.79795257063,301.09050901183,309.7504615497,318.52314490095,327.68449417797,337.10934179701,346.6568752383,356.62740568226,366.72772736951,377.27553481706,387.96064596243,399.11915372018,410.59860200806,422.22748385656,434.37157296247,446.67374500165,459.5209564409,472.53540627884,486.12644973042,499.89441151621,514.27235352402,529.06383329425,544.0478609495,559.69574261012,575.54731703113,592.10118472076,608.870542156,626.38285104305,644.39884822068,662.64936456684,681.70845767885,701.01565227402,721.17823493702,741.60327945962,762.93324174612,784.8766959018],description:"LS optimal 3:5:7:11:13 tempering, virtually equal, g=780.2702 cents"},erlich_bppm:{frequencies:[261.6255653006,269.3148593258,276.83859227209,284.97500405989,292.93622770824,301.54575630263,309.96990811138,319.08006614158,327.99406628962,337.15709295818,347.06629484351,356.76213450082,367.24753706379,377.50717076432,388.60227773252,399.45849178361,410.61798882758,422.6862401977,434.49464068244,447.26463523836,459.75967424319,473.27221959449,486.49381977384,500.79209531182,514.78250488433,529.16376146212,544.7161244152,559.93362036345,576.39032675477,592.49269103014,609.9063234692,626.94500947499,644.45969779399,663.40066444061,681.93379843592,701.97614206495,721.5869464624,742.79471409673,763.54584931731,784.8766959018],description:"MM optimal 3:5:7:11:13 tempering, g=780.352 cents"},erlich_paj:{frequencies:[261.6255653006,269.74106841426,278.59741216196,287.23937405609,296.67040683594,305.87298460253,315.91563888094,325.71519477697,336.4093235789,346.84458402385,358.23265591403,369.99442271164,381.47147728046,393.99623872149,406.21781843768,419.55531290213,432.56972318844,446.77218107119,460.63084592459,475.75462791404,490.51231476219,506.61748047856,523.2511306012],description:"Erlich's Pajara or Twintone, with RMS optimal generator"},erlich_paj2:{frequencies:[261.6255653006,270.25447814202,278.68577354399,287.87753105276,296.85845221806,306.64959036092,316.21614384055,326.645747324,336.83612131731,347.94582350257,358.80069640371,369.99442271164,382.1975482805,394.12120058634,407.1203087173,419.82124923186,433.66800958456,447.19715926063,461.9468459571,476.35821106408,492.06970256841,507.42081104304,523.2511306012],description:"Erlich's Pajara or Twintone with minimax optimal generator"},escapade:{frequencies:[261.6255653006,270.11362843741,278.8770761192,287.9248395776,297.26614463769,306.91051483225,316.86778450163,327.1481015562,337.76194863153,348.72014864112,360.03386958939,371.71464785337,383.77439429365,392.56657056143,405.30282760495,418.45229174958,432.02837124332,446.04490958069,460.51619165905,475.45697355792,490.88248752006,506.80846290374,523.2511306012],description:"Escapade temperament, g=55.275493, 5-limit"},"et-mix6":{frequencies:[261.6255653006,293.66476791741,300.52885648597,311.12698372208,329.62755691287,345.21700307457,369.99442271164,396.55020354877,415.30469757995,440,455.51656649021,466.16376151809,523.2511306012],description:"Mix of equal temperaments from 1-6 (= 4-6)"},euler:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Euler's Monochord (a mode of Ellis's duodene) (1739), genus [33355]"},euler20:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,320.58100381398,326.62388782443,329.50688232588,342.79852229325,366.55580177366,381.34192228364,391.95955371998,407.7704102616,411.36965665618,427.96347506501,439.87918162894,457.62301915088,489.33808574423,509.07699553894,513.57043963064,523.2511306012],description:"Genus [3333555] tempered by 225/224-planar"},euler24:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,308.1508239679,320.58100381398,326.62388782443,329.50688232588,342.79852229325,366.55580177366,381.34192228364,384.70789368407,391.95955371998,407.7704102616,411.36965665618,427.96347506501,439.87918162894,457.62301915088,480.28481865546,489.33808574423,493.65730140218,509.07699553894,513.57043963064,523.2511306012],description:"Genus [33333555] tempered by 225/224-planar"},euler_diat:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Euler's genus diatonicum veterum correctum"},euler_enh:{frequencies:[261.6255653006,267.90457886781,275.62199471997,348.83408706747,392.4383479509,401.85686830172,413.43299207996,523.2511306012],description:"Euler's Old Enharmonic, From Tentamen Novae Theoriae Musicae"},euler_gm:{frequencies:[261.6255653006,271.31540105247,279.06726965397,289.40309445597,348.83408706747,361.75386806997,372.08969287196,385.87079260796,523.2511306012],description:"Euler's Genus Musicum, Octony based on Archytas's Enharmonic"},exptriad2:{frequencies:[261.6255653006,306.59245933664,327.03195662575,367.91095120397,392.4383479509,459.88868900496,490.54793493862,523.2511306012],description:"Two times expanded major triad"},exptriad3:{frequencies:[261.6255653006,269.46602871384,275.93321340298,279.06726965397,287.4304306281,294.32876096318,297.67175429757,303.14928230307,306.59245933664,313.95067836072,323.35923445661,327.03195662575,344.91651675372,348.83408706747,359.28803828513,367.91095120397,372.08969287196,378.93660287884,383.2405741708,392.4383479509,404.19904307077,408.78994578219,418.60090448096,431.14564594215,436.04260883433,446.50763144636,459.88868900496,490.54793493862,505.24880383846,517.37477513058,523.2511306012],description:"Three times expanded major triad"},iivv17:{frequencies:[261.6255653006,269.80136421624,277.97716313189,283.42769574232,294.32876096318,305.22982618403,318.85615771011,327.03195662575,343.38355445704,348.83408706747,359.73515228832,367.91095120397,370.63621750918,392.4383479509,416.96574469783,425.14154361347,436.04260883433,441.49314144476,457.84473927605,479.64686971777,490.54793493862,523.2511306012],description:"17-limit IIVV"},"indian-ayyar":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Carnatic sruti system, C.Subrahmanya Ayyar, 1976. alt:21/20 25/16 63/40 40/21"},"indian-dk":{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,348.83408706747,392.4383479509,406.97310157871,418.60090448096,465.11211608996,523.2511306012],description:"Raga Darbari Kanada"},"indian-ellis":{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,358.01393146398,367.68998366571,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Ellis's Indian Chromatic, theoretical #74 of App.XX, p.517 of Helmholtz"},"indian-hahn":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Indian shrutis Paul Hahn proposal"},"indian-hrdaya1":{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,328.55303549378,348.83408706747,375.07381928051,392.4383479509,428.11456140098,441.49314144476,470.92601754108,492.82955324067,523.2511306012],description:"From Hrdayakautaka of Hrdaya Narayana (17th c) Bhatkande's interpretation"},"indian-hrdaya2":{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,330.47439827444,348.83408706747,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012],description:"From Hrdayakautaka of Hrdaya Narayana (17th c) Levy's interpretation"},"indian-invrot":{frequencies:[261.6255653006,267.90457886781,279.06726965397,313.95067836072,327.03195662575,334.88072358477,348.83408706747,392.4383479509,418.60090448096,446.50763144636,490.54793493862,502.32108537715,523.2511306012],description:"Inverted and rotated North Indian gamut"},"indian-magrama":{frequencies:[261.6255653006,294.32876096318,327.03195662575,367.91095120397,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Indian mode Ma-grama (Sa Ri Ga Ma Pa Dha Ni Sa)"},"indian-newbengali":{frequencies:[261.6255653006,269.13627541126,277.02257024271,285.46954808622,294.32876096318,303.84527498141,313.95067836072,324.71413568646,336.35938765066,348.83408706747,358.01090280364,367.91095120397,377.98706287655,388.6137256405,400.23209335925,412.19781491431,425.25755219187,438.98455767189,453.41648894489,469.13512554326,485.39868175205,503.9696508909,523.2511306012],description:"Modern Bengali scale,S.M. Tagore: The mus. scales of the Hindus,Calcutta 1884"},"indian-old2ellis":{frequencies:[261.6255653006,270.06509966514,277.97716313189,285.40970760065,294.32876096318,305.22982618403,316.13089140489,327.03195662575,337.93302184661,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,404.33041910093,415.52295665389,428.11456140098,441.49314144476,457.84473927605,474.19633710734,490.54793493862,505.80942624783,523.2511306012],description:"Ellis Old Indian Chrom2, Helmholtz, p. 517. This is a 4 cent appr. to #73"},"indian-oldellis":{frequencies:[261.6255653006,269.44737349144,277.4816601673,285.79952600623,294.32876096318,304.84150796353,315.71315096976,327.03195662575,337.72216249472,348.83408706747,359.25382662183,369.99442271164,381.0561299374,392.4383479509,404.18156579781,416.22249025095,428.71043212875,441.49314144476,457.27414749797,473.58203588493,490.54793493862,506.59641128799,523.2511306012],description:"Ellis Old Indian Chromatic, Helmholtz, p. 517. This is a 0.5 cent appr. to #73"},"indian-raja":{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,490.54793493862,523.2511306012],description:"A folk scale from Rajasthan, India"},"indian-sagrama":{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Indian mode Sa-grama (Sa Ri Ga Ma Pa Dha Ni Sa), inverse of Didymus' diatonic"},"indian-srutiharm":{frequencies:[261.6255653006,275.04226095704,278.87560257317,292.29229825722,294.20896982953,310.50067090621,313.3756771183,327.75070817877,332.5423844325,351.70909240436,354.58409877157,369.9174668925,374.70914348171,393.87585105695,414.95923028882,421.66757847392,437.95928040996,441.79262140873,467.66767825558,473.41768959156,493.54273382289,499.29274676062,523.2511306012],description:"B. Chaitanya Deva's sruti harmonium. The Music of India, 1981, p. 109"},"indian-srutivina":{frequencies:[261.6255653006,268.56758546278,278.98051393788,288.52577197574,297.52863491406,305.33829130574,314.01573591759,327.57422802312,336.57725592546,350.35262131413,358.2707318239,366.40588882483,378.77125721528,394.82459335461,403.28512412878,416.95215854696,428.77531684666,444.28620821491,453.93981227417,469.5594057965,487.34812384257,504.37765306036,529.32520658991],description:"Raja S.M. Tagore's sruti vina, measured by Ellis and Hipkins, 1886. 1/1=241.2"},"indian-srutivina2":{frequencies:[261.6255653006,275.04226095704,278.87560257317,292.29229825722,294.20896982953,310.50067090621,313.3756771183,327.75070817877,332.5423844325,351.70909240436,354.58409877157,369.9174668925,374.70914348171,393.87585105695,414.95923028882,421.66757847392,437.95928040996,441.79262140873,467.66767825558,473.41768959156,493.54273382289,499.29274676062,523.2511306012],description:"S. Ramanathan's sruti vina, 1973. In B.C. Deva, The Music of India, p. 110"},"indian-vina":{frequencies:[261.6255653006,276.70272600503,292.81785438923,313.29104303136,329.05685050583,352.26720984209,369.14054089803,390.18821123181,411.0090584005,435.70052664441,465.35666077712,491.60634075178,525.37110555681],description:"Observed South Indian tuning of a vina, Ellis"},"indian-vina2":{frequencies:[261.6255653006,277.02257024271,292.81785438923,308.97787266236,326.21810583671,344.81842302716,363.84824628932,386.37547528213,409.11417474979,432.19134773437,455.25352578019,480.93331155807,507.76825077597,539.82938999168,571.59905201246,602.44805673853,637.90290877605,678.5727631795,715.19510239543,756.4109196702,799.53998816902,846.10508618474,890.73947019126,943.16064703194,1001.55531043729],description:"Observed tuning of old vina in Tanjore Palace, Ellis and Hipkins. 1/1=210.7 Hz"},"indian-vina3":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Tuning of K.S. Subramanian's vina (1983)"},indian:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.50983809402,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Indian shruti scale"},indian2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Indian shruti scale with tritone 64/45 schisma lower (Mr.Devarajan, Madurai)"},indian2_sm:{frequencies:[261.6255653006,275.80107697063,279.12844116922,290.7446524607,294.25230137258,310.19560923413,313.9379197281,327.00276442799,330.9478443499,348.87940629173,353.08841191408,367.78254402461,372.21960384438,392.38737044642,413.64787586584,418.63827382983,436.06032987759,441.3211172644,465.23297251763,470.84571179248,490.44043044945,496.35728163707,523.2511306012],description:"Shruti/Mathieu's Magic Mode scale in 289-equal (schismic) temperament"},indian3:{frequencies:[261.6255653006,270.06509966514,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,506.89953276991,523.2511306012],description:"Indian shruti scale with 32/31 and 31/16 and tritone schisma lower"},indian4:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,330.74639366397,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"Indian shruti scale according to Firoze Framjee: Text book of Indian music"},indian5:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"23 Shrutis, Amit Mitra, 1/1 no. 12:2, Table C."},indian6:{frequencies:[146.8323839587,148.66778875818,150.35636117371,151.0621234143,152.23581568838,152.95039995698,154.68761437624,154.86227995644,156.62120955595,158.5789746754,159.32333328852,163.14709328744,165.18643195354,167.06262352634,169.15090632042,169.94488884109,172.0691999516,174.02356617327,176.19886075044,178.40134650982,179.23874994958,180.42763340845,181.27454809716,183.54047994838,185.62513725149,185.83473594773,187.94545146714,188.82765426788,190.29476961048,191.18799994622,193.3595179703,193.57784994555,195.77651194493,198.22371834425,200.47514823161,202.98108758451,203.93386660931,206.48303994192,208.82827940793,209.0640779412,211.43863290053,212.43111105136,214.08161581178,215.0864999395,217.52945771659,220.24857593805,223.00168313728,225.53454176056,226.59318512145,228.35372353257,229.42559993547,232.03142156437,232.29341993466,234.93181433392,237.86846201309,238.98499993278,240.57017787793,241.69939746288,244.72063993117,247.77964793031,250.59393528951,253.72635948063,254.91733326163,258.1037999274,261.03534925991,264.29829112566,267.60201976473,270.64145011268,271.91182214574,275.31071992256,278.43770587724,278.75210392159,281.9181772007,283.24148140181,285.44215441571,286.78199991934,290.03927695546,293.6647679174],description:"Shrutis calculated by generation method, Amit Mitra, 1/1 no. 12:2, Table B."},indian_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"North Indian Gamut, modern Hindustani gamut out of 22 or more shrutis"},indian_12c:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,328.55303549378,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,470.92601754108,492.82955324067,523.2511306012],description:"Carnatic gamut. Kuppuswami: Carnatic music and the Tamils, p. v"},indian_a:{frequencies:[261.6255653006,290.79521372391,318.76727400207,355.94891173479,388.6137256405,432.69092326853,486.52148746092,523.2511306012],description:"One observed indian mode"},indian_b:{frequencies:[261.6255653006,290.79521372391,305.95868600104,356.15457528086,388.83826257328,432.94092754357,461.60862817266,523.2511306012],description:"Observed Indian mode"},indian_c:{frequencies:[261.6255653006,278.94941459687,313.65318017499,356.15457528086,388.83826257328,422.07621250312,470.76384471612,523.2511306012],description:"Observed Indian mode"},indian_d:{frequencies:[261.6255653006,289.28740724512,320.24370022528,344.61930560862,391.31674786192,442.03793673691,485.39868175205,523.2511306012],description:"Indian D (Ellis, correct)"},indian_e:{frequencies:[261.6255653006,275.58617649731,323.21709932123,347.81902735497,393.58362272115,410.77171881178,488.21056770985,523.2511306012],description:"Observed Indian mode"},indian_g:{frequencies:[261.6255653006,275.48458755707,279.57748987366,290.07776015425,294.38747470873,309.98198497505,314.58741860623,326.40257913196,331.25197518754,348.79929894143,353.98144532328,367.27615246113,372.73281132023,392.47748849606,413.26809526256,419.40806105693,435.16003737285,441.62525396027,465.0193523796,471.92819182319,489.65270022124,496.92751979948,523.2511306012],description:"Shruti/Mathieu's Magic Mode scale in 94-et (garibaldi) temperament"},indian_rat:{frequencies:[261.6255653006,269.55361273395,277.4816601673,285.40970760065,294.32876096318,302.93486508491,315.75499260417,327.03195662575,337.58137458142,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,404.33041910093,416.22249025095,428.77523202043,441.49314144476,457.84473927605,473.41768959156,490.54793493862,506.37206187213,523.2511306012],description:"Indian Raga, From Fortuna, after Helmholtz, ratios by JC"},indian_rot:{frequencies:[261.6255653006,272.52663052146,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,510.98743222773,523.2511306012],description:"Rotated North Indian Gamut"},ionic:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Ancient greek Ionic"},iran_diat:{frequencies:[261.6255653006,297.21429859784,337.6441411202,347.13660997509,394.35734781054,448.00148789644,460.59652406882,523.2511306012],description:"Iranian Diatonic from Dariush Anooshfar, Safi-a-ddin Armavi's scale from 125 ET"},iraq:{frequencies:[261.6255653006,290.3675288125,326.6631048533,348.83408706747,387.1561215731,435.55129321875,465.11211608996,516.20736538157,523.2511306012],description:"Iraq 8-tone scale, Ellis"},isfahan_5:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,523.2511306012],description:"Isfahan (IG #2, DF #8), from Rouanet"},islamic:{frequencies:[261.6255653006,283.42769574232,305.22982618403,330.6656450327,348.83408706747,523.2511306012],description:"Islamic Genus (DF#7), from Rouanet"},italian:{frequencies:[261.6255653006,274.68983337859,292.34127285051,309.02606224197,326.6631048533,348.44038788768,366.66693712906,391.11111150212,411.56972129721,437.02884834934,464.06284405662,489.44164088633,523.2511306012],description:"Italian organ temperament, G.C. Klop (1974), 1/12 P.comma, also d'Alembert/Rousseau (1752/67)"},iter1:{frequencies:[261.6255653006,264.43874342211,268.51044859798,278.54662176283,304.33994330886,376.91818729747,631.61998662719],description:"McLaren style, IE= 2.414214, PD=5, SD=0"},iter10:{frequencies:[261.6255653006,277.06070189651,293.38358189778,297.59908052943,301.91391280887,310.68035879446,328.97472072452,338.5155215149,348.35227203008,368.89204707385,413.65123162392,438.0707139917,463.89070822207,520.1365405381,535.27989222422,550.79066379074,583.29634230953,654.0639132515],description:"Iterated 5/2 Scale, IE=5/2, PD=4, SD=3"},iter11:{frequencies:[261.6255653006,278.87608544381,297.26403435806,306.90779184711,316.86440944623,337.75715313333,360.02747892105,383.76621672426,396.21625406084,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #2"},iter12:{frequencies:[261.6255653006,297.26403435806,306.90779184711,316.86440944623,337.75715313333,360.02747892105,383.76621672426,396.21625406084,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #4"},iter13:{frequencies:[261.6255653006,297.26403435806,337.75715313333,383.76621672426,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #6"},iter14:{frequencies:[261.6255653006,280.22072913446,300.13755324878,344.3186075731,368.79121945838,395.0032340925,453.14877154631,519.85349135637,596.37732215892,638.76512932755,684.16567043124,784.8766959018],description:"Binary Divided 3/1 Scale #2"},iter15:{frequencies:[261.6255653006,285.30470202322,311.12698372208,324.90175210669,339.28638158975,369.99442271164,403.48177901006,440,459.48046426806,479.82340237272,523.2511306012],description:"Binary Division Scale"},iter16:{frequencies:[261.6255653006,273.20871865617,285.30470202322,311.12698372208,324.90175210669,339.28638158975,369.99442271164,403.48177901006,440,459.48046426806,479.82340237272,523.2511306012],description:"Binary Division Scale 4+2"},iter17:{frequencies:[261.6255653006,278.49896488475,296.46060526524,301.12918013362,305.87127435301,315.58067012184,335.93387506143,346.5975621448,357.59974896504,380.66295170881,431.34763334053,459.16716607109,488.78090454553,553.8613271114,571.44277158458,589.58231097183,627.60710380636,711.17202040031],description:"Binary E Scale #2"},iter18:{frequencies:[261.6255653006,296.46060526524,335.93387506143,357.59974896504,380.66295170881,431.34763334053,488.78090454553,553.8613271114,589.58231097183,627.60710380636,711.17202040031],description:"Binary E Scale #4"},iter19:{frequencies:[261.6255653006,322.51878830959,331.06584352035,339.83940187549,358.09020513941,397.58488163802,418.936859706,441.43552612833,490.12256936272,604.19836236377,670.83693141722,744.82523718317,918.18295398723,967.49323514067,1019.45167961503,1131.88958971281,1395.33634826987],description:"Binary Kidjel Ratio scale #2, IE=16/3"},iter2:{frequencies:[261.6255653006,264.43874342211,268.51044859798,278.54662176283,304.33994330886,376.91818729747,466.76379263857,529.06503205232,631.63886479716],description:"Iterated 1 + SQR(2) Scale, IE=2.414214, PD=5, SD=1"},iter20:{frequencies:[261.6255653006,269.61366892789,277.84567157694,295.07138236029,304.08067308856,313.36504071103,332.79286022776,353.42515415018,375.3365967665,386.79659161311,398.60648967463,423.31905787312],description:"Binary PHI Scale #2"},iter21:{frequencies:[261.6255653006,265.58958666715,269.61366892789,277.84567157694,295.07138236029,304.08067308856,313.36504071103,332.79286022776,353.42515415018,375.3365967665,386.79659161311,398.60648967463,423.31905787312],description:"Binary PHI Scale 5+2 #2"},iter22:{frequencies:[261.6255653006,301.8727519909,307.3207469799,312.86706369289,324.26179396336,348.311367392,360.99698978488,374.14462916403,401.89387036212,463.7192413329,498.11197631533,535.05552246568,617.36582527423,639.85050556571,663.15408964479,712.33833913185,821.92095613931],description:"Binary PI Scale #2"},iter23:{frequencies:[261.6255653006,280.22072913446,282.63618845904,285.07246866924,290.00821285991,300.13755151512,305.33413252207,310.62068712289,321.46997343155,344.3186075731,356.34488692223,368.79121945838,395.00323181087,401.84231702948,408.7998141568,423.07827792492,453.14877154631],description:"Binary SQR(3) Scale #2"},iter24:{frequencies:[261.6255653006,289.31157243481,292.97226416221,296.67927674571,304.23460945445,319.92739457651,328.07477344771,336.42963427227,353.78307729046,391.22147055517,411.40114203819,432.62170761687,478.4030399831,490.58621022536,503.07964402145,529.02909391167,585.01254970054],description:"Binary SQR(5) Scale #2"},iter25:{frequencies:[261.6255653006,295.4600775297,299.98610231105,304.581459303,313.98443628203,333.67021037701,343.97120738708,354.59021667251,376.82183739983,425.55401329039,452.23482674104,480.58843796626,542.7401414615,559.49550492793,576.76813324226,612.92956630767,692.19618110881],description:"Binary SQR(7) Scale #2"},iter26:{frequencies:[261.6255653006,266.56189672137,275.04226095704,276.16031892841,278.32506946872,283.8915708581,299.68019298069,302.93486508491,309.19384990071,326.13597866239,377.90359432309,389.87339142835,411.92110281371,477.08191319521,486.74523776856,503.12608711654,552.32063785682,711.29450566101],description:"E Scale"},iter27:{frequencies:[261.6255653006,264.53251602616,264.59858308811,264.97973921471,266.91093025617,277.4816601673,277.93638607994,279.98525409362,291.05844139692,358.0999925052,361.3330282979,375.61956161015,462.09190754392,465.48964215821,480.4396744611,568.53247844169,1395.33634826987],description:"Iterated Kidjel Ratio Scale, IE=16/3, PD=3, SD=3"},iter28:{frequencies:[261.6255653006,265.20947715403,272.47639519786,295.60291144354,377.3445653374,784.8766959018],description:"McLaren 3-Division Scale"},iter29:{frequencies:[261.6255653006,264.46932144517,267.35459227799,273.20191774753,285.29018929764,311.12229387098,370.01329949656,523.2511306012],description:"Iterated Binary Division of the Octave, IE=2, PD=6, SD=0"},iter3:{frequencies:[261.6255653006,291.72408166262,314.40967058055,328.65360269166,338.82655178274,356.71329642628,384.4758307461,404.77917650282,417.30358762823,426.15298265459,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=3, SD=2"},iter30:{frequencies:[261.6255653006,263.40533105094,266.47048317654,274.97380842818,299.54231389489,377.98194879009,711.1793535636],description:"Iterated E-scale, IE= 2.71828, PD=5, SD=0"},iter31:{frequencies:[261.6255653006,264.53251602616,277.4816601673,358.0999925052,1395.33634826987],description:"Iterated Kidjel Ratio Scale, IE=16/3, PD=3, SD=0"},iter32:{frequencies:[261.6255653006,264.32273607689,265.98599138894,268.74462830198,273.21657135822,280.65287914064,293.09931751721,314.43072526953,352.25402909754,423.30428543018],description:"Iterated PHI scale, IE= 1.61803339, PD=8, SD=0"},iter33:{frequencies:[261.6255653006,264.70351312767,271.46111286829,293.79264300149,376.62581378438,821.87425059077],description:"Iterated PI Scale, IE= 3.14159, PD=4, SD=0"},iter34:{frequencies:[261.6255653006,263.41752122732,264.70351312767,267.00143308075,271.01725226011,278.10591587072,290.81088732616,314.21361862735,359.24704489038,453.1728541814],description:"Iterated SQR3 Scale, IE= 1.73205, PD=8, SD=0"},iter35:{frequencies:[261.6255653006,263.32443260775,265.41724016003,270.17542037578,281.14986121856,307.30621955943,374.94109676838,585.0238335194],description:"Iterated SQR 5 Scale, IE= 2.23607, PD=6, SD=0"},iter36:{frequencies:[261.6255653006,263.60757715894,266.85807660661,275.72514666411,300.63990398578,377.90359432309,692.2176415245],description:"Iterated SQR 7 Scale, IE= 2.64575, PD=5, SD=0"},iter37:{frequencies:[261.6255653006,295.02271214403,313.28742377221,326.0879260201,332.68289475257,342.82647426905,364.05069339959,375.15068445646,382.73792346942,386.58911684499,392.4383479509],description:"Iterated 3/2 scale, IE=3/2, PD=3, SD=2"},iter4:{frequencies:[261.6255653006,267.82522324611,277.41331493081,278.97828136646,281.37089098366,287.35922746131,302.93486508491,307.2300216374,313.76772341995,330.79094463294,377.42704502382,390.96854140427,412.14986314478,470.26367433779,480.2976795817,495.79659597089,536.59937372878,654.0639132515],description:"Iterated 5/2 Scale, IE=5/2, PD=4, SD=3"},iter5:{frequencies:[261.6255653006,292.148547919,314.45380444784,328.62723446295,338.43307070995,355.46951807147,382.59222452561,401.8431885336,413.81298563886,422.03832066739,436.04260883433],description:"Iterated 5/3 Scale, analog of Hexachord, IE=5/3, PD=3, SD=2"},iter6:{frequencies:[261.6255653006,276.4345595629,292.10621368514,326.13597866239,344.58001283494,364.1180547998,406.52587839016,453.84026633778,506.69255051888,535.41976154541,565.73733351326,631.63886479716],description:"Iterated binary 1+SQR(2) scale, IE= 2.414214, G=2, PD=4, SD=2"},iter7:{frequencies:[261.6255653006,279.30296836145,298.19688088025,308.09852755794,318.34159693919,339.84351781315,362.8203594263,387.34174602946,400.24806631808,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=3, SD=2"},iter8:{frequencies:[261.6255653006,298.19688088025,308.09852755794,318.34159693919,339.84351781315,362.8203594263,387.34174602946,400.24806631808,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=2, SD=2"},iter9:{frequencies:[261.6255653006,298.19688088025,339.84351781315,387.34174602946,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=2, SD=12"},ives:{frequencies:[261.6255653006,302.26980244078,349.22823143301,375.37611551499,433.69180740168,501.06699929295,578.9091089468,622.25396744417],description:`Charles Ives' stretched major scale, "Scrapbook" pp. 108-110`},ives2a:{frequencies:[261.6255653006,303.72829164664,352.60650301302,379.92060676531,441.0602510811,512.03893786214,594.44004134205,640.48740045057],description:"Speculation by Joe Monzo for Ives' other stretched scale"},ives2b:{frequencies:[261.6255653006,300.81831683262,345.88232658126,370.885984045,426.44646246473,490.3301667422,563.78395315523,604.53960488156],description:"Alt. speculation by Joe Monzo for Ives' other stretched scale"},abell1:{frequencies:[261.6255653006,273.68256372566,292.6487650037,305.95868600104,327.16162250699,342.04121835587,365.95599773772,391.31674786192,409.35055662695,437.71854962063,457.62637091093,489.33987776603,523.2511306012],description:"Ross Abell's French Baroque Meantone 1, a'=520"},abell2:{frequencies:[261.6255653006,275.90473010106,294.68429813772,308.79945157961,330.00857764288,348.01999353916,369.14054089803,392.90218486657,412.67427966689,441.52756934418,463.21121723949,493.59810545034,523.2511306012],description:"Ross Abell's French Baroque Meantone 2, a'=520"},abell3:{frequencies:[261.6255653006,275.90505521365,293.49576926806,308.08682543008,329.24698751194,350.03632176331,368.71497179837,392.44893164635,412.28324979826,440.25465969448,462.14293627657,492.7440237889,523.2511306012],description:"Ross Abell's French Baroque Meantone 3, a' = 520"},abell4:{frequencies:[261.6255653006,274.95017225036,292.98704147282,308.2648062752,328.10786809908,346.01554587335,367.43868454848,391.54284657258,411.48414905414,438.47771564426,461.87534079415,491.0387427573,523.2511306012],description:"Ross Abell's French Baroque Meantone 4, a'=520"},abell5:{frequencies:[261.6255653006,277.98432293805,295.87822452474,311.66659310186,331.15428443044,349.43001184052,371.27895029721,395.6350356808,416.26536455926,442.29334161825,466.70260620202,495.88429116026,523.2511306012],description:"Ross Abell's French Baroque Meantone 5, a'=520"},abell6:{frequencies:[261.6255653006,277.02257024271,293.32570896007,311.66659310186,330.00857764288,349.43001184052,369.99442271164,391.76907592069,414.82519580403,440.76312290327,466.70260620202,494.16866184506,523.2511306012],description:"Ross Abell's French Baroque Meantone 6, a'=520"},abell7:{frequencies:[261.6255653006,277.50302994288,294.34406205295,310.05056613125,328.86683469969,348.82502010853,369.99442271164,392.44854854484,416.26536455926,438.47771564426,465.08793784701,493.31307433255,523.2511306012],description:"Ross Abell's French Baroque Meantone 7, a'=520"},abell8:{frequencies:[261.6255653006,277.82379926216,294.68429813772,311.48661940174,329.62755691287,350.03605285217,371.27895029721,392.44854854484,415.30469757995,441.01779121056,467.78216486233,494.45418731234,523.2511306012],description:"Ross Abell's French Baroque Meantone 8, a'=520"},abell9:{frequencies:[261.6255653006,276.06414495892,293.32570896007,309.69258848748,330.19925313612,348.62358905703,369.14054089803,391.99543598175,412.67427966689,440,464.55095742407,493.88330125613,523.2511306012],description:"Ross Abell's French Baroque Meantone 9, a'=520"},"ad-dik":{frequencies:[261.6255653006,269.0348830679,275.62199471997,285.40970760065,294.32876096318,300.46061014991,310.07474405997,321.08592105074,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.49599295996,378.42269266694,392.4383479509,400.61414686654,413.43299207996,428.11456140098,441.49314144476,453.48431318771,470.92601754108,479.64686971777,490.54793493862,508.71637697339,523.2511306012],description:"Amin Ad-Dik, d'Erlanger, vol 5, p.42"},adjeng:{frequencies:[261.6255653006,285.30470202322,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Soeroepan adjeng"},aeolic:{frequencies:[261.6255653006,294.32876096318,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Ancient Greek Aeolic, also tritriadic scale of the 54:64:81 triad"},agricola:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,331.11985608357,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Agricola's Monochord, Rudimenta musices (1539)"},"al-din":{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,516.20836322497,523.2511306012,551.24398943995,580.73440862809,588.65752192635,620.14948811994,653.3262097066,688.27781763329,697.66817413493,734.99198591993,774.31254483746,784.8766959018,826.86598415992,871.10161294214,917.70375684439,930.22423217991,979.98931455991,1032.41672644994,1046.5022612024,1102.48797887989],description:"Safi al-Din's complete lute tuning on 5 strings 4/3 apart"},"al-din_19":{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,516.20836322497,523.2511306012],description:"Arabic scale by Safi al-Din"},"al-farabi":{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Al-Farabi Syn Chrom"},"al-farabi_19":{frequencies:[261.6255653006,275.62199471997,285.40970760065,294.32876096318,310.07474405997,326.6631048533,331.11985608357,336.87132687997,348.83408706747,367.49599295996,380.54627680087,392.4383479509,413.43299207996,435.55080647107,441.49314144476,455.28980211491,465.11211608996,489.99465727995,507.3950357345,523.2511306012],description:"Arabic scale by Al Farabi"},"al-farabi_22":{frequencies:[261.6255653006,275.62199471997,277.01530443593,285.40970760065,294.32876096318,310.07474405997,321.08592105074,326.6631048533,331.11985608357,348.83408706747,367.49599295996,369.35373924791,380.54627680087,392.4383479509,413.43299207996,428.11456140098,435.55080647107,441.49314144476,465.11211608996,489.99465727995,492.47165233054,507.3950357345,523.2511306012],description:"Al-Farabi 22 note ud scale"},"al-farabi_9":{frequencies:[261.6255653006,294.32876096318,321.08592105074,331.11985608357,348.83408706747,392.4383479509,428.11456140098,441.49314144476,465.11211608996,523.2511306012],description:"Al-Farabi 9 note ud scale"},"al-farabi_blue":{frequencies:[261.6255653006,294.32876096318,367.91095120397,380.81054504865,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Another tuning from Al Farabi, c700 AD"},"al-farabi_chrom":{frequencies:[261.6255653006,294.32876096318,353.19451315581,372.50983809402,392.4383479509,470.92601754108,497.08857407114,523.2511306012],description:"Al Farabi's Chromatic c700 AD"},"al-farabi_chrom2":{frequencies:[261.6255653006,279.06726965397,325.57848126297,348.83408706747,392.4383479509,418.60090448096,488.36772189445,523.2511306012],description:"Al-Farabi's Chromatic permuted"},"al-farabi_diat":{frequencies:[261.6255653006,299.00064605783,341.71502406609,348.83408706747,392.4383479509,448.50096908674,512.57253609913,523.2511306012],description:"Al-Farabi's Diatonic"},"al-farabi_diat2":{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Old Phrygian, permuted form of Al-Farabi's reduplicated 10/9 diatonic genus, same as ptolemy_diat"},"al-farabi_div":{frequencies:[261.6255653006,275.62199471997,277.01530443593,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,321.08592105074,331.11985608357,348.83408706747],description:"Al Farabi's 10 intervals for the division of the tetrachord"},"al-farabi_div2":{frequencies:[261.6255653006,275.62199471997,277.01530443593,279.38237857051,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,314.30517589183,321.08592105074,331.11985608357,348.83408706747],description:"Al-Farabi's tetrachord division, incl. extra 2187/2048 & 19683/16384"},"al-farabi_divo":{frequencies:[261.6255653006,275.62199471997,277.01530443593,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,321.08592105074,331.11985608357,348.83408706747,367.49599295996,369.35373924791,379.26927587201,392.4383479509,413.43299207996,415.52295665389,426.67793535601,432.48307733364,441.49314144476,465.11211608996,467.46332623563,481.6288815761,496.67978412536,523.2511306012],description:"Al Farabi's theoretical octave division with identical tetrachords, 10th c."},"al-farabi_dor":{frequencies:[261.6255653006,282.55561052465,313.95067836072,348.83408706747,392.4383479509,423.83341578697,470.92601754108,523.2511306012],description:"Dorian mode of Al-Farabi's 10/9 Diatonic"},"al-farabi_dor2":{frequencies:[261.6255653006,267.07609791103,305.22982618403,348.83408706747,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Dorian mode of Al-Farabi's Diatonic"},"al-farabi_g1":{frequencies:[261.6255653006,294.32876096318,331.11985608357,367.91095120397,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Al-Farabi's Greek genus conjunctum medium, Land"},"al-farabi_g10":{frequencies:[261.6255653006,294.32876096318,343.38355445704,367.91095120397,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Al-Farabi's Greek genus chromaticum forte"},"al-farabi_g11":{frequencies:[261.6255653006,294.32876096318,353.19451315581,372.50983809402,392.4383479509,470.92601754108,496.67978412536,523.2511306012],description:"Al-Farabi's Greek genus chromaticum mollissimum"},"al-farabi_g12":{frequencies:[261.6255653006,294.32876096318,367.91095120397,380.17464957743,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Al-Farabi's Greek genus mollissimum ordinantium"},"al-farabi_g3":{frequencies:[261.6255653006,294.32876096318,336.37572681506,378.42269266694,392.4383479509,448.50096908674,504.56359022259,523.2511306012],description:"Al-Farabi's Greek genus conjunctum primum"},"al-farabi_g4":{frequencies:[261.6255653006,294.32876096318,336.37572681506,384.42940207435,392.4383479509,448.50096908674,512.57253609913,523.2511306012],description:"Al-Farabi's Greek genus forte duplicatum primum"},"al-farabi_g5":{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Al-Farabi's Greek genus conjunctum tertium, or forte aequatum"},"al-farabi_g6":{frequencies:[261.6255653006,294.32876096318,336.37572681506,373.75080757229,392.4383479509,448.50096908674,498.33441009638,523.2511306012],description:"Al-Farabi's Greek genus forte disjunctum primum"},"al-farabi_g7":{frequencies:[261.6255653006,294.32876096318,343.38355445704,374.60024122586,392.4383479509,457.84473927605,499.46698830115,523.2511306012],description:"Al-Farabi's Greek genus non continuum acre"},"al-farabi_g8":{frequencies:[261.6255653006,294.32876096318,353.19451315581,378.42269266694,392.4383479509,470.92601754108,504.56359022259,523.2511306012],description:"Al-Farabi's Greek genus non continuum mediocre"},"al-farabi_g9":{frequencies:[261.6255653006,294.32876096318,367.91095120397,383.71749577421,392.4383479509,490.54793493862,511.62332769895,523.2511306012],description:"Al-Farabi's Greek genus non continuum laxum"},"al-hwarizmi":{frequencies:[261.6255653006,294.32876096318,302.73815413355,311.64221749042,321.08592105074,331.11985608357,348.83408706747],description:"Al-Hwarizmi's tetrachord division"},"al-kindi":{frequencies:[261.6255653006,275.62199471997,279.38237857051,294.32876096318,310.07474405997,331.11985608357,348.83408706747],description:"Al-Kindi's tetrachord division"},"al-kindi2":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,523.2511306012],description:"Arabic mode by al-Kindi"},"al-mausili":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,441.49314144476,465.11211608996,523.2511306012],description:"Arabic mode by Ishaq al-Mausili, ? - 850 AD"},albion:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Terry Riley's Harp of New Albion scale, inverse Malcolm's Monochord, 1/1 on C#"},alembert:{frequencies:[261.6255653006,273.70610837433,292.50627485027,307.8325111191,327.03195662575,347.99121610009,365.92863081328,391.22147055517,409.45161370755,437.39890198442,462.86717295458,489.22460251523,523.2511306012],description:"Jean-Le Rond d'Alembert modified meantone (1752)"},alembert2:{frequencies:[261.6255653006,274.99999938609,292.5775112526,309.28790118232,327.03195662575,348.53877105022,367.08095907728,391.31674786192,412.03444522126,437.50542525192,464.32494005553,489.99429388332,523.2511306012],description:"d'Alembert (?)"},alves:{frequencies:[261.6255653006,267.07609791103,294.32876096318,305.22982618403,327.03195662575,336.37572681506,348.83408706747,359.73515228832,392.4383479509,425.14154361347,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:'Bill Alves, tuning for "Instantaneous Motion", 1/1 vol. 6/3'},alves_22:{frequencies:[261.6255653006,269.80136421624,279.06726965397,287.78812183066,297.30177875068,305.22982618403,317.12189733406,327.03195662575,336.37572681506,348.83408706747,359.73515228832,370.01329949656,380.54627680087,392.4383479509,406.97310157871,418.60090448096,431.68218274599,448.50096908674,460.46099492906,475.68284600109,490.54793493862,507.3950357345,523.2511306012],description:"11-limit rational interpretation of 22-tET, Bill Alves, tuning list 9-1-98"},amity:{frequencies:[261.6255653006,265.19165427121,275.22357733525,278.97501409741,282.77758484276,286.63198489776,290.53892403345,294.49911672845,305.63971046081,309.80573452349,314.02854360428,318.30891171173,322.64762154083,327.04547204619,339.41726037801,344.04368955469,348.73317930436,353.48658917459,358.304790429,371.85908609843,376.92771379174,382.0654272409,387.27317253358,392.55190203235,397.90258328792,412.95482206782,418.58360545772,424.28911201625,430.07238503487,435.93448947821,452.42543551278,458.59222335614,464.84306764133,471.17911410024,477.60152408164,484.11147196776,502.42490579041,509.27320879713,516.21486058423,523.2511306012],description:"Amity temperament, g=339.508826, 5-limit"},angklung:{frequencies:[261.6255653006,294.70472480469,326.28010551578,372.13971319976,421.00655337609,533.77627782773,589.40944960937,672.10704388342,757.81210779894],description:"Scale of an anklung set from Tasikmalaya. 1/1=174 Hz"},appunn:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.38237857051,287.10624449997,290.69507255622,294.32876096318,302.46583782713,306.24666079997,310.07474405997,322.99452506247,327.03195662575,331.11985608357,340.27406755552,344.52749339997,348.83408706747,363.36884069528,367.91095120397,372.50983809402,382.80832599996,387.59343007496,392.4383479509,408.78994578219,413.89982010446,419.07356785577,430.65936674996,436.04260883433,441.49314144476,453.6987567407,459.36999119996,465.11211608996,484.4917875937,490.54793493862,496.67978412536,510.41110133328,516.79124009995,523.2511306012],description:"Probable tuning of A. Appunn's 36-tone harmonium w. 3 manuals 80/81 apart,1887"},arabic:{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,516.20836322497,523.2511306012],description:"Arabic 17-tone Pythagorean mode, Safi al-Din"},arabic_s:{frequencies:[261.6255653006,275.62199471997,290.69507255622,294.32876096318,310.07474405997,327.03195662575,331.11985608357,348.83408706747,367.91095120397,387.59343007496,392.4383479509,413.43299207996,436.04260883433,441.49314144476,465.11211608996,490.54793493862,516.79124009995,523.2511306012],description:"Schimatically altered Arabic 17-tone Pythagorean mode"},arch_chrom:{frequencies:[261.6255653006,271.31540105247,294.32876096318,348.83408706747,392.4383479509,406.97310157871,441.49314144476,523.2511306012],description:"Archytas' Chromatic"},arch_chromc2:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,331.11985608357,343.38355445704,348.83408706747,361.75386806997,392.4383479509,406.97310157871,422.04617941496,441.49314144476,457.84473927605,496.67978412536,523.2511306012],description:"Product set of 2 of Archytas' Chromatic"},arch_dor:{frequencies:[261.6255653006,271.31540105247,294.32876096318,348.83408706747,392.4383479509,406.97310157871,465.11211608996,441.49314144476,523.2511306012],description:"Dorian mode of Archytas' Chromatic with added 16/9"},arch_enh:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Archytas' Enharmonic"},arch_enh2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,465.11211608996,418.60090448096,523.2511306012],description:"Archytas' Enharmonic with added 16/9"},arch_enh3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,358.80077526939,448.50096908674,523.2511306012],description:"Complex 9 of p. 113 based on Archytas's Enharmonic"},arch_enhp:{frequencies:[261.6255653006,269.10058145205,279.06726965397,348.83408706747,392.4383479509,403.65087217807,418.60090448096,523.2511306012],description:"Permutation of Archytas's Enharmonic with the 36/35 first"},arch_enht:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,336.37572681506,348.83408706747,504.56359022259,523.2511306012],description:"Complex 6 of p. 113 based on Archytas's Enharmonic"},arch_enht2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,348.83408706747,490.54793493862,508.71637697339,523.2511306012],description:"Complex 5 of p. 113 based on Archytas's Enharmonic"},arch_enht3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,281.36411960997,289.40309445597,348.83408706747,361.75386806997,523.2511306012],description:"Complex 1 of p. 113 based on Archytas's Enharmonic"},arch_enht4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,339.14425131559,348.83408706747,436.04260883433,523.2511306012],description:"Complex 8 of p. 113 based on Archytas's Enharmonic"},arch_enht5:{frequencies:[261.6255653006,263.77886213435,271.31540105247,279.06726965397,339.14425131559,348.83408706747,508.71637697339,523.2511306012],description:"Complex 10 of p. 113 based on Archytas's Enharmonic"},arch_enht6:{frequencies:[261.6255653006,271.31540105247,279.06726965397,289.40309445597,297.67175429757,348.83408706747,372.08969287196,523.2511306012],description:"Complex 2 of p. 113 based on Archytas's Enharmonic"},arch_enht7:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,287.04062021552,348.83408706747,358.80077526939,523.2511306012],description:"Complex 11 of p. 113 based on Archytas's Enharmonic"},arch_mult:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,490.54793493862,504.56359022259,523.2511306012],description:"Multiple Archytas"},arch_ptol:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,310.07474405997,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,436.04260883433,465.11211608996,523.2511306012],description:"Archytas/Ptolemy Hybrid 1"},arch_ptol2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,313.95067836072,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"Archytas/Ptolemy Hybrid 2"},arch_sept:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,310.07474405997,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,441.49314144476,465.11211608996,523.2511306012],description:"Archytas Septimal"},ariel1:{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ariel 1"},ariel2:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ariel 2"},ariel3:{frequencies:[261.6255653006,279.06726965397,290.69507255622,310.07474405997,322.99452506247,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,465.11211608996,484.4917875937,523.2511306012],description:"Ariel's 12-tone JI scale"},ariel_19:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,302.80736724606,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,452.08897683944,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Ariel 19-tone scale"},ariel_31:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Ariel's 31-tone system"},arist_archenh:{frequencies:[261.6255653006,271.89678302796,279.86396690685,349.22823143301,391.99543598175,407.38487419079,419.32216217931,523.2511306012],description:"PsAristo Arch. Enharmonic, 4 + 3 + 23 parts, similar to Archytas' enharmonic"},arist_chrom:{frequencies:[261.6255653006,277.18263097687,329.62755691287,349.22823143301,391.99543598175,415.30469757995,493.88330125613,523.2511306012],description:"Dorian, Neo-Chromatic,6+18+6 parts = Athanasopoulos' Byzant.liturg. 2nd chromatic"},arist_chrom2:{frequencies:[261.6255653006,282.57123920205,336.03572815422,349.22823143301,391.99543598175,423.37848741825,503.48470957687,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 8 + 18 + 4 parts"},arist_chrom3:{frequencies:[261.6255653006,279.86388595857,299.37253740865,349.22869576324,391.99491478937,419.32387668214,448.55625766774,523.2511306012],description:"PsAristo 3 Chromatic, 7 + 7 + 16 parts"},arist_chrom4:{frequencies:[261.6255653006,275.85166538713,290.85115308106,349.22823143301,391.99543598175,413.31050241775,435.7843409791,523.2511306012],description:"PsAristo Chromatic, 5.5 + 5.5 + 19 parts"},arist_chromenh:{frequencies:[261.6255653006,269.29177952703,293.66476791741,349.22823143301,391.99543598175,403.48177901006,440,523.2511306012],description:"Aristoxenos' Chromatic/Enharmonic, 3 + 9 + 18 parts"},arist_chrominv:{frequencies:[261.6255653006,311.12698372208,329.62755691287,349.22823143301,391.99543598175,466.16376151809,493.88330125613,523.2511306012],description:"Aristoxenos' Inverted Chromatic, Dorian mode, 18 + 6 + 6 parts"},arist_chromrej:{frequencies:[261.6255653006,277.18263097687,285.30470202322,349.22823143301,391.99543598175,415.30469757995,427.47405410759,523.2511306012],description:"Aristoxenos Rejected Chromatic, 6 + 3 + 21 parts"},arist_chromunm:{frequencies:[261.6255653006,273.20871865617,282.57118533961,349.22823143301,391.99543598175,409.35055662695,423.37840671577,523.2511306012],description:"Unmelodic Chromatic, genus of Aristoxenos, Dorian Mode, 4.5 + 3.5 + 22 parts"},arist_diat:{frequencies:[261.6255653006,293.66476791741,311.12698372208,349.22823143301,391.99543598175,440,466.16376151809,523.2511306012],description:"Phrygian octave species on E, 12 + 6 + 12 parts"},arist_diat2:{frequencies:[261.6255653006,279.86396690685,311.12698372208,349.22823143301,391.99543598175,419.32216217931,466.16376151809,523.2511306012],description:"PsAristo 2 Diatonic, 7 + 11 + 12 parts"},arist_diat3:{frequencies:[261.6255653006,286.68133251996,314.13668154225,349.22823143301,391.99543598175,429.53666932309,470.6732130613,523.2511306012],description:"PsAristo Diat 3, 9.5 + 9.5 + 11 parts"},arist_diat4:{frequencies:[261.6255653006,282.57123920205,305.19382000629,349.22823143301,391.99543598175,423.37848741825,457.27406033445,523.2511306012],description:"PsAristo Diatonic, 8 + 8 + 14 parts"},arist_diatdor:{frequencies:[261.6255653006,299.37379946195,305.19382000629,349.22823143301,391.99543598175,448.5538823653,457.27406033445,523.2511306012],description:"PsAristo Redup. Diatonic, 14 + 2 + 14 parts"},arist_diatinv:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,440,493.88330125613,523.2511306012],description:"Lydian octave species on E, major mode, 12 + 12 + 6 parts"},arist_diatred:{frequencies:[261.6255653006,299.37379946195,342.56848033562,349.22823143301,391.99543598175,448.5538823653,513.27277840175,523.2511306012],description:"Aristo Redup. Diatonic, Dorian Mode, 14 + 14 + 2 parts"},arist_diatred2:{frequencies:[261.6255653006,271.89678302796,308.14612137864,349.22823143301,391.99543598175,407.38487419079,461.69751437372,523.2511306012],description:"PsAristo 2 Redup. Diatonic 2, 4 + 13 + 13 parts"},arist_diatred3:{frequencies:[261.6255653006,282.57123920205,314.13668154225,349.22823143301,391.99543598175,423.37848741825,470.6732130613,523.2511306012],description:"PsAristo 3 Redup. Diatonic, 8 + 11 + 11 parts"},arist_enh:{frequencies:[261.6255653006,269.29177952703,277.18263097687,349.22823143301,391.99543598175,403.48177901006,415.30469757995,523.2511306012],description:"Aristoxenos' Enharmonion, Dorian mode"},arist_enh2:{frequencies:[261.6255653006,270.59109411209,279.86402025325,349.22823143301,391.99543598175,405.42855124795,419.32224210861,523.2511306012],description:"PsAristo 2 Enharmonic, 3.5 + 3.5 + 23 parts"},arist_enh3:{frequencies:[261.6255653006,267.99870394401,274.52693220706,349.22823143301,391.99543598175,401.54435471309,411.32564531909,523.2511306012],description:"PsAristo Enharmonic, 2.5 + 2.5 + 25 parts"},arist_hemchrom:{frequencies:[261.6255653006,273.20871865617,285.30470202322,349.22823143301,391.99543598175,409.35055662695,427.47405410759,523.2511306012],description:"Aristoxenos's Chromatic Hemiolion, Dorian Mode"},arist_hemchrom2:{frequencies:[261.6255653006,273.20871865617,293.66476791741,349.22823143301,391.99543598175,409.35055662695,440,523.2511306012],description:"PsAristo C/H Chromatic, 4.5 + 7.5 + 18 parts"},arist_hemchrom3:{frequencies:[261.6255653006,271.81876914348,282.83844897362,348.83408706747,392.4383479509,407.72815371522,424.25767346043,523.2511306012],description:"Dorian mode of Aristoxenos' Hemiolic Chromatic according to Ptolemy's interpret"},arist_hypenh2:{frequencies:[261.6255653006,267.3544191957,273.20871865617,349.22823143301,391.99543598175,400.57901831518,409.35055662695,523.2511306012],description:"PsAristo 2nd Hyperenharmonic, 37.5 + 37.5 + 425 cents"},arist_hypenh3:{frequencies:[261.6255653006,265.43099677612,269.29177952703,349.22823143301,391.99543598175,397.69714089209,403.48177901006,523.2511306012],description:"PsAristo 3 Hyperenharmonic, 1.5 + 1.5 + 27 parts"},arist_hypenh4:{frequencies:[261.6255653006,266.71168334607,271.8968348557,349.22823143301,391.99543598175,399.61600264311,407.38495184466,523.2511306012],description:"PsAristo 4 Hyperenharmonic, 2 + 2 + 26 parts"},arist_hypenh5:{frequencies:[261.6255653006,265.12453591719,268.67030163715,349.22823143301,391.99543598175,397.23796841836,402.55061428954,523.2511306012],description:"PsAristo Hyperenharmonic, 23 + 23 + 454 cents"},arist_intdiat:{frequencies:[261.6255653006,275.39533189537,307.79478270659,348.83408706747,392.4383479509,413.09299784305,461.69217405988,523.2511306012],description:"Dorian mode of Aristoxenos's Intense Diatonic according to Ptolemy"},arist_penh2:{frequencies:[261.6255653006,269.29177952703,339.28638158975,349.22823143301,391.99543598175,403.48177901006,508.3551866238,523.2511306012],description:"Permuted Aristoxenos's Enharmonion, 3 + 24 + 3 parts"},arist_penh3:{frequencies:[261.6255653006,329.62755691287,339.28638158975,349.22823143301,391.99543598175,493.88330125613,508.3551866238,523.2511306012],description:"Permuted Aristoxenos's Enharmonion, 24 + 3 + 3 parts"},arist_pschrom2:{frequencies:[261.6255653006,278.52001838539,296.50560089735,349.22823143301,391.99543598175,417.30851459865,444.25644015807,523.2511306012],description:"PsAristo 2 Chromatic, 6.5 + 6.5 + 17 parts"},arist_softchrom:{frequencies:[261.6255653006,271.89678302796,282.57123920205,349.22823143301,391.99543598175,407.38487419079,423.37848741825,523.2511306012],description:"Aristoxenos's Chromatic Malakon, Dorian Mode"},arist_softchrom2:{frequencies:[261.6255653006,277.18263097687,324.90175210669,349.22823143301,391.99543598175,415.30469757995,486.80259447109,523.2511306012],description:"Aristoxenos' Soft Chromatic, 6 + 16.5 + 9.5 parts"},arist_softchrom3:{frequencies:[261.6255653006,281.2143451833,329.62755691287,349.22823143301,391.99543598175,421.34544350737,493.88330125613,523.2511306012],description:"Aristoxenos's Chromatic Malakon, 9.5 + 16.5 + 6 parts"},arist_softchrom4:{frequencies:[261.6255653006,277.18263097687,297.93622032612,349.22823143301,391.99543598175,415.30469757995,446.39994737251,523.2511306012],description:"PsAristo S. Chromatic, 6 + 7.5 + 16.5 parts"},arist_softchrom5:{frequencies:[261.6255653006,270.64713651786,280.31310567921,348.83408706747,392.4383479509,405.97070477679,420.46965851882,523.2511306012],description:"Dorian mode of Aristoxenos' Soft Chromatic according to Ptolemy's interpretati"},arist_softdiat:{frequencies:[261.6255653006,277.18263097687,302.26980244078,349.22823143301,391.99543598175,415.30469757995,452.89298412314,523.2511306012],description:"Aristoxenos's Diatonon Malakon, Dorian Mode"},arist_softdiat2:{frequencies:[261.6255653006,277.18263097687,320.24370022528,349.22823143301,391.99543598175,415.30469757995,479.82340237272,523.2511306012],description:"Dorian Mode, 6 + 15 + 9 parts"},arist_softdiat3:{frequencies:[261.6255653006,285.30470202322,329.62755691287,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Dorian Mode, 9 + 15 + 6 parts"},arist_softdiat4:{frequencies:[261.6255653006,285.30470202322,302.26980244078,349.22823143301,391.99543598175,427.47405410759,452.89298412314,523.2511306012],description:"Dorian Mode, 9 + 6 + 15 parts"},arist_softdiat5:{frequencies:[261.6255653006,302.26980244078,320.24370022528,349.22823143301,391.99543598175,452.89298412314,479.82340237272,523.2511306012],description:"Dorian Mode, 15 + 6 + 9 parts"},arist_softdiat6:{frequencies:[261.6255653006,302.26980244078,329.62755691287,349.22823143301,391.99543598175,452.89298412314,493.88330125613,523.2511306012],description:"Dorian Mode, 15 + 9 + 6 parts"},arist_softdiat7:{frequencies:[261.6255653006,275.39533189537,299.00064605783,348.83408706747,392.4383479509,413.09299784305,448.50096908674,523.2511306012],description:"Dorian mode of Aristoxenos's Soft Diatonic according to Ptolemy"},arist_synchrom:{frequencies:[261.6255653006,277.18263097687,293.66476791741,349.22823143301,391.99543598175,415.30469757995,440,523.2511306012],description:"Aristoxenos's Chromatic Syntonon, Dorian Mode"},arist_syndiat:{frequencies:[261.6255653006,277.18263097687,311.12698372208,349.22823143301,391.99543598175,415.30469757995,466.16376151809,523.2511306012],description:"Aristoxenos's Diatonon Syntonon, Dorian Mode"},arist_unchrom:{frequencies:[261.6255653006,271.89678302796,293.66476791741,349.22823143301,391.99543598175,407.38487419079,440,523.2511306012],description:"Aristoxenos's Unnamed Chromatic, Dorian Mode, 4 + 8 + 18 parts"},arist_unchrom2:{frequencies:[261.6255653006,282.57123920205,293.66476791741,349.22823143301,391.99543598175,423.37848741825,440,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 8 + 4 + 18 parts"},arist_unchrom3:{frequencies:[261.6255653006,311.12698372208,323.3415889232,349.22823143301,391.99543598175,466.16376151809,484.46499093218,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 18 + 4 + 8 parts"},arist_unchrom4:{frequencies:[261.6255653006,311.12698372208,336.03572815422,349.22823143301,391.99543598175,466.16376151809,503.48470957687,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 18 + 8 + 4 parts"},arith13:{frequencies:[261.6255653006,269.80136421624,294.32876096318,318.85615771011,327.03195662575,343.38355445704,367.91095120397,371.99885066179,392.4383479509,449.66894036041,457.84473927605,490.54793493862,523.2511306012],description:"The first 13 terms of the arithmetic series, octave reduced"},arith22:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,312.72430852337,318.85615771011,327.03195662575,343.38355445704,349.51540364377,367.91095120397,371.99885066179,388.35044849308,392.4383479509,429.2294430713,449.66894036041,457.84473927605,472.15238737843,490.54793493862,517.11928141447,523.2511306012],description:"The first 22 terms of the arithmetic series, octave reduced"},arnautoff_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,361.75386806997,367.91095120397,372.08969287196,378.42269266694,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,523.2511306012],description:"Philip Arnautoff, transposed Archytas enharmonic (2005), 1/1 vol 12/1"},"aron-neidhardt":{frequencies:[261.6255653006,275.62199471997,292.53519855339,310.07474405997,327.04005607367,348.83408706747,367.49599295996,391.42133845759,413.43299207996,437.43855491017,465.11211608996,489.99465727995,523.2511306012],description:"Aron-Neidhardt equal beating well temperament"},art_nam:{frequencies:[261.6255653006,287.78812183066,317.68818643644,324.77656382143,348.83408706747,353.19451315581,392.4383479509,431.68218274599,473.41768959156,523.2511306012],description:"Artificial Nam System"},artusi:{frequencies:[261.6255653006,276.63528606528,292.50629850443,309.28767786778,327.03195662575,349.91920725962,369.99442271164,391.22137338448,413.66637442451,437.39882871549,462.49310482954,489.02679755603,523.2511306012],description:"Lute tuning of Giovanni Maria Artusi (1603). 1/4-comma w. acc. 1/2-way naturals"},astro:{frequencies:[13.75,13.8316453704,13.91377553836,13.99639338254,14.07098381034,14.15453513289,14.23858257025,14.32312915102,14.40817767355,14.49373120103,14.57979273211,14.66636528323,14.75345188876,14.84105560105,14.92917949063,15.01782664621,15.10700017487,15.1875093157,15.27769039377,15.36840704189,15.45966226264,15.55145934276,15.64380149972,15.73669197012,15.83013400973,15.92413089371,16.01868591662,16.11380239262,16.20948365552,16.30573305894,16.39263055969,16.48996755631,16.58788242969,16.68637870643,16.78545983879,16.88512929958,16.98539058219,17.08624720077,17.18770269033,17.28976060687,17.39242452751,17.49569805061,17.59958489756,17.69337767194,17.7984382082,17.90412257766,18.01043448453,18.11737765504,18.22495583753,18.33317280261,18.44203234327,18.55153827502,18.66169443603,18.77250468726,18.88397302169,18.99610312873,19.09733831271,19.21073534981,19.32480572095,19.43955342429,19.55498248173,19.67109693902,19.78790086598,19.90539835657,20.02359352906,20.14249064253,20.26209363229,20.38240680608,20.50343438087,20.62518059864,20.73509756099,20.85821935885,20.98207223488,21.1066605301,21.23198861133,21.35806087129,21.4848817288,21.61245575376,21.74078716869,21.86988059568,21.99974055944,22.13037161156,22.26177833063,22.38041714879,22.51330859954,22.64698913914,22.78146345308,22.91673625467,23.0528122852,23.18969644807,23.32739327396,23.46590772227,23.60524464792,23.74540893465,23.88640549521,24.02823927151,24.15629202037,24.29972834105,24.44401636439,24.58916114767,24.73516777819,24.8820415172,25.02978722599,25.17841022592,25.32791572621,25.478308967,25.62959521956,25.78177978645,25.93486800174,26.07308167197,26.22789959273,26.38363679833,26.54029874734,26.69789108494,26.85641902723,27.01588828389,27.17630444429,27.33767313101,27.5],description:"Astro temperament, g=132.194511, 5-limit"},athan_chrom:{frequencies:[261.6255653006,285.30470202322,329.62755691287,349.22823143301,391.99543598175,427.47405410759,493.88330125613,523.2511306012],description:"Athanasopoulos's Byzantine Liturgical mode Chromatic"},auftetf:{frequencies:[261.6255653006,264.29521392612,269.80136421624,287.78812183066,359.73515228832,380.54627680087,384.42940207435,392.4383479509,418.60090448096],description:"5/4 C.I. again"},augmented:{frequencies:[261.6255653006,312.71213182188,329.62755691287,393.99259743989,415.30469757995,496.39956701727,523.2511306012],description:"Augmented temperament, g=91.2, oct=1/3, 5-limit"},augteta:{frequencies:[261.6255653006,280.76889934699,302.93486508491,328.90071066361,359.73515228832,380.54627680087,408.39112632289,440.63253103259,478.40103369253],description:"Linear Division of the 11/8, duplicated on the 16/11"},augteta2:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,366.27579142084,373.75080757229,402.50086969323,436.04260883433,475.68284600109],description:"Linear Division of the 7/5, duplicated on the 10/7"},augtetb:{frequencies:[261.6255653006,270.8594087818,280.76889934699,302.93486508491,359.73515228832,380.54627680087,295.48299139832,408.39112632289,440.63253103259],description:"Harmonic mean division of 11/8"},augtetc:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,359.73515228832,380.54627680087,407.72815371522,439.09185784716,475.68284600109],description:"11/10 C.I."},augtetd:{frequencies:[261.6255653006,271.68808704293,282.55561052465,294.32876096318,359.73515228832,380.54627680087,395.18267206244,410.98997894494,428.11456140098],description:"11/9 C.I."},augtete:{frequencies:[261.6255653006,269.80136421624,278.50463402967,287.78812183066,359.73515228832,380.54627680087,392.4383479509,405.0976494977,418.60090448096],description:"5/4 C.I."},augtetg:{frequencies:[261.6255653006,278.50463402967,297.71185016965,319.76457981184,359.73515228832,380.54627680087,405.0976494977,433.03541842858,465.11211608996],description:"9/8 C.I."},augteth:{frequencies:[261.6255653006,278.50463402967,287.78812183066,319.76457981184,359.73515228832,380.54627680087,405.0976494977,418.60090448096,465.11211608996],description:"9/8 C.I. A gapped version of this scale is called AugTetI"},augtetj:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,380.54627680087,428.11456140098,475.68284600109],description:"9/8 C.I. comprised of 11:10:9:8 subharmonic series on 1 and 8:9:10:11 on 16/11"},augtetk:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,380.54627680087,418.60090448096,465.11211608996],description:"9/8 C.I. This is the converse form of AugTetJ"},augtetl:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,380.54627680087,428.11456140098,475.68284600109],description:"9/8 C.I. This is the harmonic form of AugTetI"},avg_bac:{frequencies:[261.6255653006,290.69507255622,307.79478270659,348.83408706747,392.4383479509,436.04260883433,461.69217405988,523.2511306012],description:"Average Bac System"},avicenna:{frequencies:[261.6255653006,290.69507255622,299.00064605783,348.83408706747,392.4383479509,436.04260883433,448.50096908674,523.2511306012],description:"Soft diatonic of Avicenna (Ibn Sina)"},avicenna_17:{frequencies:[261.6255653006,278.99913799634,283.42769574232,294.32876096318,310.07474405997,318.85615771011,331.11985608357,348.83408706747,371.99885066179,377.90359432309,392.4383479509,413.43299207996,425.14154361347,441.49314144476,465.11211608996,495.99846754905,503.87145909745,523.2511306012],description:"Tuning by Avicenna (Ibn Sina), Ahmed Mahmud Hifni, Cairo, 1977"},avicenna_19:{frequencies:[261.6255653006,275.62199471997,283.49690885483,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,358.80077526939,372.50983809402,377.99587847311,392.4383479509,413.43299207996,425.24536328225,441.49314144476,465.11211608996,478.40103369253,496.67978412536,503.45611792634,523.2511306012],description:"Arabic scale by Ibn Sina"},avicenna_chrom:{frequencies:[261.6255653006,269.10058145205,299.00064605783,348.83408706747,392.4383479509,403.65087217807,448.50096908674,523.2511306012],description:"Dorian mode a chromatic genus of Avicenna"},avicenna_chrom2:{frequencies:[261.6255653006,271.8968348557,323.34165055711,349.22823143301,391.99543598175,407.38495184466,484.46508327871,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 4 + 18 + 8 parts"},avicenna_chrom3:{frequencies:[261.6255653006,290.69507255622,339.14425131559,348.83408706747,392.4383479509,436.04260883433,508.71637697339,523.2511306012],description:"Avicenna's Chromatic permuted"},avicenna_diat:{frequencies:[261.6255653006,281.75060878526,305.22982618403,348.83408706747,392.4383479509,422.62591317789,457.84473927605,523.2511306012],description:"Dorian mode a soft diatonic genus of Avicenna"},avicenna_diff:{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,310.68035879446,343.38355445704,367.91095120397,392.4383479509,400.61414686654,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"Difference tones of Avicenna's Soft diatonic reduced by 2/1"},avicenna_enh:{frequencies:[261.6255653006,268.33391312882,279.06726965397,348.83408706747,392.4383479509,402.50086969323,418.60090448096,523.2511306012],description:"Dorian mode of Avicenna's (Ibn Sina) Enharmonic genus"},awad:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,307.79478270659,317.12189733406,327.03195662575,337.58137458142,348.83408706747,358.80077526939,369.35373924791,380.54627680087,392.4383479509,402.50086969323,413.09299784305,424.25767346043,436.04260883433,448.50096908674,461.69217405988,475.68284600109,490.54793493862,506.37206187213,523.2511306012],description:"d'Erlanger vol.5, p.37, after Mans.ur 'Awad"},awraamoff:{frequencies:[261.6255653006,294.32876096318,299.00064605783,313.95067836072,327.03195662575,343.38355445704,348.83408706747,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Awraamoff Septimal Just"},ayers:{frequencies:[261.6255653006,268.89294211451,276.57559760349,284.71017400359,293.33775503401,302.50455987882,312.26277148781,322.67153053741,333.7981350387,345.71949700436,358.52392281934,372.31330446624,387.20583664489,403.33941317176,420.87590939662,440.00663255101,460.95932933915,484.00729580611,509.48136400643,537.78588422901,569.42034800719,605.00911975764,645.34306107481,691.43899400873,744.62660893248,806.67882634352,880.01326510202,968.01459161222,1075.57176845802,1210.01823951527,1382.87798801746,1613.35765268703,1936.02918322444,2420.03647903055,3226.71530537407,4840.0729580611,9680.1459161222],description:"Lydia Ayers, algorithmic composition, subharmonics 1-37"},ayers_19:{frequencies:[261.6255653006,268.89294211451,276.57559760349,284.71017400359,293.33775503401,302.50455987882,312.26277148781,322.67153053741,333.7981350387,345.71949700436,358.52392281934,372.31330446624,387.20583664489,403.33941317176,420.87590939662,440.00663255101,460.95932933915,484.00729580611,509.48136400643,523.2511306012],description:"Scale for NINETEEN, for 19 for the 90's CD. Repeats at 37/19 (or 2/1)"},ayers_ap:{frequencies:[261.6255653006,299.00064605783,336.37572681506,388.70083987518,448.50096908674,523.2511306012],description:"Lydia Ayers' Appetizer, ICMC 96, Balinese Slendro from Singaraja,"},ayers_me:{frequencies:[261.6255653006,280.31310567921,299.00064605783,308.34441624714,336.37572681506,392.4383479509,420.46965851882,448.50096908674,504.56359022259,523.2511306012],description:"Scale for Merapi (1996), Lydia Ayers. Slendro 0 2 4 5 7 9, Pelog 0 1 3 6 8 9"},h10_27:{frequencies:[261.6255653006,281.00523680435,300.3849083081,319.76457981184,348.83408706747,368.21375857121,397.28326582684,426.35277308246,455.42228033808,484.4917875937,523.2511306012],description:"10-tET harmonic approximation, fundamental=27"},h12_24:{frequencies:[261.6255653006,272.52663052146,294.32876096318,316.13089140489,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,468.74580449691,490.54793493862,523.2511306012],description:"12-tET harmonic approximation, fundamental=24"},h14_27:{frequencies:[261.6255653006,271.31540105247,290.69507255622,300.3849083081,319.76457981184,339.14425131559,348.83408706747,368.21375857121,387.59343007496,406.97310157871,426.35277308246,455.42228033808,474.80195184183,494.18162334558,523.2511306012],description:"14-tET harmonic approximation, fundamental=27"},h15_24:{frequencies:[261.6255653006,272.52663052146,283.42769574232,305.22982618403,316.13089140489,327.03195662575,348.83408706747,359.73515228832,381.53728273004,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"15-tET harmonic approximation, fundamental=24"},hahn9:{frequencies:[261.6255653006,286.15296204753,313.95067836072,327.03195662575,366.27579142084,392.4383479509,418.60090448096,457.84473927605,490.54793493862,523.2511306012],description:"Paul Hahn's just version of 9 out of 31 scale. TL 6-8-'98"},hahn_7:{frequencies:[261.6255653006,274.70684356563,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Paul Hahn's scale with 32 consonant 7-limit dyads. TL '99, see also smithgw_hahn12"},hahn_g:{frequencies:[261.6255653006,280.50183143454,294.66523452594,309.54379154736,331.87735433448,348.63486612079,373.78884718875,392.66259958718,420.99317852788,442.25042328711,464.58101193362,498.10049926644,523.2511306012],description:'fourth of sqrt(2)-1 octave "recursive" meantone, Paul Hahn'},hahnmaxr:{frequencies:[261.6255653006,275.93321340298,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Paul Hahn's hahn_7 marvel projected to the 5-limit"},halfefg357777:{frequencies:[261.6255653006,280.31310567921,299.00064605783,320.35783506196,341.71502406609,375.57576268738,400.61414686654,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Half genus [357777]"},hamilton:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,426.35277308246,442.75095666255,479.64686971777,523.2511306012],description:"Elsie Hamilton's gamut, from article The Modes of Ancient Greek Music (1953)"},hamilton_jc:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,359.73515228832,338.57426097725,411.12588832951,383.71749577421,442.75095666255,426.35277308246,479.64686971777,523.2511306012],description:"Chalmers' permutation of Hamilton's gamut. Diatonic notes on white"},hamilton_jc2:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,359.73515228832,383.71749577421,411.12588832951,426.35277308246,442.75095666255,460.46099492906,479.64686971777,523.2511306012],description:"EH gamut, diatonic notes on white and drops 17 for 25. JC Dorian Harmonia on C"},hammond:{frequencies:[261.6255653006,226.52945288223,240.12209418,254.35818848669,269.43528366778,285.40970760065,302.50455987882,320.49131749323,339.40613876835,359.73515228832,381.06332337261,403.65087217807,427.65717404906,453.05890576445],description:'Hammond organ pitch wheel ratios, 1/1=320 Hz. Do "del 0" to get 12-tone scale'},hammond12:{frequencies:[261.6255653006,277.32410877127,293.76579515365,311.17877832054,329.62811300357,349.37146352202,370.1449018936,391.99018843668,415.46876743159,440.10130305006,466.18833124791,493.91391932426,523.2511306012],description:"Hammond organ scale, 1/1=277.0731707 Hz, A=440, see hammond for the ratios"},handblue:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'"Handy Blues" of Pitch Palette, 7-limit'},handel:{frequencies:[261.6255653006,276.07055536165,292.89641271707,310.57937447136,328.79480940231,349.02322090701,368.4933346061,391.37619916626,414.10583283548,438.86859125239,465.61660972366,492.3908742288,523.2511306012],description:"Well temperament according to Georg Friedrich H\xEF\xBF\xBDndel's rules (c. 1780)"},hanson_19:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,302.80736724606,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"JI version of Hanson's 19 out of 53-tET scale"},"harm-doreninv1":{frequencies:[261.6255653006,321.08592105074,327.03195662575,332.97799220076,380.54627680087,499.46698830115,511.35905945117,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Dorian Harmonia"},"harm-dorinv1":{frequencies:[261.6255653006,309.19384990071,321.08592105074,332.97799220076,380.54627680087,475.68284600109,499.46698830115,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Dorian Harmonia"},"harm-lydchrinv1":{frequencies:[261.6255653006,322.00069575458,342.12573923925,362.25078272391,402.50086969323,483.00104363188,503.12608711654,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Lydian Harmonia"},"harm-lydeninv1":{frequencies:[261.6255653006,342.12573923925,352.18826098158,362.25078272391,402.50086969323,503.12608711654,513.18860885887,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Lydian Harmonia"},"harm-mixochrinv1":{frequencies:[261.6255653006,336.37572681506,355.06326719367,373.75080757229,411.12588832951,485.87604984397,504.56359022259,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Mixolydian Harmonia"},"harm-mixoeninv1":{frequencies:[261.6255653006,355.06326719367,364.40703738298,373.75080757229,411.12588832951,504.56359022259,513.90736041189,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Mixolydian Harmonia"},harm10:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,331.11985608357,343.38355445704,367.91095120397,392.4383479509,400.61414686654,408.78994578219,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"6/7/8/9/10 harmonics"},harm11s:{frequencies:[261.6255653006,65.40639132515,95.13656920022,104.65022612024,116.27802902249,130.8127826503,149.50032302891,174.41704353373,196.21917397545,209.30045224048,261.6255653006,327.03195662575,348.83408706747,392.4383479509,457.84473927605,523.2511306012,588.65752192635,654.0639132515,719.47030457665,1046.5022612024],description:"Harm. 1/4-11/4 and subh. 4/1-4/11. Joseph Pehrson 1999"},harm12s:{frequencies:[261.6255653006,294.32876096318,299.00064605783,327.03195662575,348.83408706747,359.73515228832,380.54627680087,392.4383479509,418.60090448096,457.84473927605,465.11211608996,523.2511306012],description:"Harmonics 1 to 12 and subharmonics mixed"},"harm15-30":{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,366.27579142084,383.71749577421,418.60090448096,436.04260883433,453.48431318771,488.36772189445,523.2511306012],description:"Harmonics 15 to 30"},harm15:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991],description:"Fifth octave of the harmonic overtone series"},"harm16-32":{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Harmonics 16-32 & Tom Stone's Guitar Scale"},harm16:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,2093.0045224048,1395.33634826987,1046.5022612024,837.20180896192,697.66817413493,598.00129211566,523.2511306012,465.11211608996,418.60090448096,380.54627680087,348.83408706747,322.00069575458,299.00064605783,279.06726965397,261.6255653006],description:"First 16 harmonics and subharmonics"},"harm1c-dorian":{frequencies:[261.6255653006,309.19384990071,321.08592105074,332.97799220076,380.54627680087,475.68284600109,499.46698830115,523.2511306012],description:"Harm1C-Dorian"},"harm1c-hypod":{frequencies:[261.6255653006,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"HarmC-Hypodorian"},"harm1c-hypol":{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,366.27579142084,392.4383479509,418.60090448096,444.76346101102,523.2511306012],description:"HarmC-Hypolydian"},"harm1c-lydian":{frequencies:[261.6255653006,271.68808704293,281.75060878526,362.25078272391,382.37582620857,402.50086969323,422.62591317789,442.75095666255,523.2511306012],description:"Harm1C-Lydian"},"harm1c-mix":{frequencies:[261.6255653006,299.00064605783,373.75080757229,392.4383479509,411.12588832951,485.87604984397,504.56359022259,523.2511306012],description:"Harm1C-Con Mixolydian"},"harm1c-mixolydian":{frequencies:[261.6255653006,280.31310567921,299.00064605783,373.75080757229,411.12588832951,429.81342870813,448.50096908674,523.2511306012],description:"Harm1C-Mixolydian"},harm24:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"Harmonics 12 to 24"},harm24_2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Harmonics 12 to 24, mode 9"},harm3:{frequencies:[261.6255653006,327.03195662575,392.4383479509,457.84473927605],description:"Third octave of the harmonic overtone series"},"harm30-60":{frequencies:[261.6255653006,270.34641747729,279.06726965397,287.78812183066,296.50897400735,305.22982618403,313.95067836072,322.67153053741,331.39238271409,340.11323489078,348.83408706747,357.55493924415,366.27579142084,374.99664359753,383.71749577421,392.4383479509,401.15920012759,409.88005230427,418.60090448096,427.32175665765,436.04260883433,444.76346101102,453.48431318771,462.20516536439,470.92601754108,479.64686971777,488.36772189445,497.08857407114,505.80942624783,514.53027842451,523.2511306012],description:"Harmonics 30-60"},harm30:{frequencies:[261.6255653006,279.06726965397,288.69027895239,299.00064605783,310.07474405997,322.00069575458,334.88072358477,348.83408706747,364.00078650518,398.6675280771,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024,1196.00258423131,1395.33634826987,1674.40361792384,2093.0045224048,2790.67269653973,4186.0090448096,8372.0180896192,8633.6436549198,8895.2692202204,9156.894785521,9418.5203508216,9680.1459161222,9941.7714814228,10203.3970467234,10465.022612024,10726.6481773246,10988.2737426252,11249.8993079258,11511.5248732264,11773.150438527,12034.7760038276,12296.4015691282,12558.0271344288,12819.6526997294,13081.27826503,13342.9038303306,13604.5293956312,13866.1549609318,14127.7805262324,14389.406091533,14651.0316568336,14912.6572221342,15174.2827874348,15435.9083527354,15697.533918036,15959.1594833366,16220.7850486372],description:"First 30 harmonics and subharmonics"},"harm32-64":{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,335.20775554139,343.38355445704,351.55935337268,359.73515228832,367.91095120397,376.08675011961,384.26254903526,392.4383479509,400.61414686654,408.78994578219,416.96574469783,425.14154361347,433.31734252912,441.49314144476,449.66894036041,457.84473927605,466.02053819169,474.19633710734,482.37213602298,490.54793493862,498.72373385427,506.89953276991,515.07533168556,523.2511306012],description:"Harmonics 32-64"},harm37odd:{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Odd harmonics until 37"},harm4:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,490.54793493862],description:"Fourth octave of the harmonic overtone series"},"harm6-12":{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,314.76825825228,327.03195662575,331.11985608357,343.38355445704,359.73515228832,367.91095120397,392.4383479509,400.61414686654,404.70204632437,408.78994578219,441.49314144476,449.66894036041,457.84473927605,490.54793493862,494.63583439645,515.07533168556,523.2511306012],description:"First 12 harmonics of 6th through 12th harmonics"},harm6:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,523.2511306012],description:"Harmonics 6-12"},"harm60-30":{frequencies:[261.6255653006,280.31310567921,290.69507255622,313.95067836072,327.03195662575,348.83408706747,373.75080757229,392.4383479509,413.09299784305,436.04260883433,448.50096908674,490.54793493862,523.2511306012],description:"Harmonics 60 to 30 (Perkis)"},harm7lim:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,3139.5067836072,3662.7579142084,3924.383479509,4186.0090448096,4709.2601754108,5232.511306012,5494.1368713126,5755.7624366132,6279.0135672144,6540.639132515,7325.5158284168,7848.766959018,8372.0180896192,9156.894785521,9418.5203508216,10465.022612024,10988.2737426252,11773.150438527,12558.0271344288,12819.6526997294,13081.27826503,14651.0316568336,15697.533918036,16482.4106139378,16744.0361792384,18313.789571042,18837.0407016432,19621.917397545,20930.045224048,21191.6707893486,21976.5474852504,23546.300877054,25116.0542688576,25639.3053994588,26162.55653006,27470.684356563,29302.0633136672,31395.067836072],description:"7-limit harmonics"},harm8:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Harmonics 8-16"},harm9:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,356.10146388137,392.4383479509,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"6/7/8/9 harmonics, First 9 overtones of 5th through 9th harmonics"},harm_bastard:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:`Schlesinger's "Bastard" Hypodorian Harmonia & inverse 1)7 from 1.3.5.7.9.11.13`},harm_bastinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,523.2511306012],description:`Inverse Schlesinger's "Bastard" Hypodorian Harmonia & 1)7 from 1.3.5.7.9.11.13`},harm_darreg:{frequencies:[261.6255653006,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,5232.511306012,6279.0135672144,7325.5158284168,8372.0180896192,9418.5203508216,10465.022612024,11511.5248732264,12558.0271344288,13604.5293956312,14651.0316568336,15697.533918036],description:"Darreg Harmonics 4-15"},harm_mean:{frequencies:[261.6255653006,270.06509966514,279.06726965397,299.00064605783,348.83408706747,392.4383479509,405.0976494977,418.60090448096,448.50096908674,523.2511306012],description:"Harm. Mean 9-tonic 8/7 is HM of 1/1 and 4/3, etc."},"harmc-hypop":{frequencies:[261.6255653006,319.76457981184,334.29933343966,348.83408706747,363.36884069528,377.90359432309,406.97310157871,465.11211608996,494.18162334558,523.2511306012],description:"HarmC-Hypophrygian"},"harmd-15":{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,383.71749577421,418.60090448096,453.48431318771,523.2511306012],description:"HarmD-15-Harmonia"},"harmd-conmix":{frequencies:[261.6255653006,299.00064605783,336.37572681506,392.4383479509,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"HarmD-ConMixolydian"},"harmd-hypod":{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"HarmD-Hypodorian"},"harmd-hypol":{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"HarmD-Hypolydian"},"harmd-hypop":{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,363.36884069528,377.90359432309,406.97310157871,436.04260883433,465.11211608996,523.2511306012],description:"HarmD-Hypophrygian"},"harmd-lyd":{frequencies:[261.6255653006,281.75060878526,301.87565226992,322.00069575458,362.25078272391,382.37582620857,402.50086969323,442.75095666255,483.00104363188,523.2511306012],description:"HarmD-Lydian"},"harmd-mix":{frequencies:[261.6255653006,299.00064605783,336.37572681506,373.75080757229,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"HarmD-Mixolydian. Harmonics 7-14"},"harmd-phr":{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,348.83408706747,327.03195662575,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"HarmD-Phryg (with 5 extra tones)"},"harme-hypod":{frequencies:[261.6255653006,343.38355445704,351.55935337268,359.73515228832,376.08675011961,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"HarmE-Hypodorian"},"harme-hypol":{frequencies:[261.6255653006,281.24748269815,274.70684356563,340.11323489078,366.27579142084,392.4383479509,405.51962621593,418.60090448096,523.2511306012],description:"HarmE-Hypolydian"},"harme-hypop":{frequencies:[261.6255653006,334.29933343966,341.56671025356,348.83408706747,363.36884069528,377.90359432309,406.97310157871,494.18162334558,508.71637697339,523.2511306012],description:"HarmE-Hypophrygian"},"harmjc-15":{frequencies:[261.6255653006,280.31310567921,301.87565226992,313.95067836072,327.03195662575,356.76213450082,373.75080757229,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Rationalized JC Sub-15 Harmonia on C. MD=15, No planetary assignment."},"harmjc-17-2":{frequencies:[261.6255653006,277.97716313189,296.50897400735,317.68818643644,342.12573923925,370.63621750918,386.75083566176,404.33041910093,423.58424858192,444.76346101102,468.17206422213,494.18162334558,523.2511306012],description:"Rationalized JC Sub-17 Harmonia on C. MD=17, No planetary assignment."},"harmjc-17":{frequencies:[261.6255653006,269.55361273395,277.97716313189,296.50897400735,317.68818643644,342.12573923925,355.81076880882,370.63621750918,386.75083566176,404.33041910093,423.58424858192,444.76346101102,523.2511306012],description:"Rationalized JC Sub-17 Harmonia on C. MD=17, No planetary assignment."},"harmjc-19-2":{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,368.21375857121,382.37582620857,397.67085925691,414.24047839262,432.2509339749,451.89870370104,523.2511306012],description:"Rationalized JC Sub-19 Harmonia on C. MD=19, No planetary assignment."},"harmjc-19":{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,382.37582620857,414.24047839262,432.2509339749,451.89870370104,473.41768959156,497.08857407114,523.2511306012],description:"Rationalized JC Sub-19 Harmonia on C. MD=19, No planetary assignment."},"harmjc-21":{frequencies:[261.6255653006,268.0066766494,274.70684356563,289.16509849014,305.22982618403,343.38355445704,366.27579142084,392.4383479509,406.97310157871,422.62591317789,439.53094970501,457.84473927605,523.2511306012],description:"Rationalized JC Sub-21 Harmonia on C. MD=21, No planetary assignment."},"harmjc-23-2":{frequencies:[261.6255653006,273.51763645063,286.54228580542,300.86940009569,316.70463167967,334.29933343966,353.96400011258,376.08675011961,401.15920012759,429.81342870813,462.87600014722,501.44900015948,523.2511306012],description:"Rationalized JC Sub-23 Harmonia on C. MD=23, No planetary assignment."},"harmjc-23":{frequencies:[261.6255653006,273.51763645063,300.86940009569,316.70463167967,334.29933343966,376.08675011961,401.15920012759,429.81342870813,445.73244458621,462.87600014722,481.3910401531,501.44900015948,523.2511306012],description:"Rationalized JC Sub-23 Harmonia on C. MD=23, No planetary assignment."},"harmjc-25":{frequencies:[261.6255653006,272.52663052146,297.30177875068,311.45900631024,327.03195662575,363.36884069528,384.74347838324,408.78994578219,436.04260883433,467.18850946536,484.4917875937,503.12608711654,523.2511306012],description:"Rationalized JC Sub-25 Harmonia on C. MD=25, No planetary assignment."},"harmjc-27":{frequencies:[261.6255653006,271.68808704293,294.32876096318,307.12566361375,321.08592105074,353.19451315581,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,504.56359022259,523.2511306012],description:"Rationalized JC Sub-27 Harmonia on C. MD=27, No planetary assignment."},"harmjc-hypod16":{frequencies:[261.6255653006,279.06726965397,299.00064605783,310.07474405997,322.00069575458,348.83408706747,364.00078650518,380.54627680087,398.6675280771,418.60090448096,440.63253103259,465.11211608996,523.2511306012],description:"Rationalized JC Hypodorian Harmonia on C. Saturn Scale on C, MD=16. (Steiner)"},"harmjc-hypol20":{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,455.00098313148,575.57624366132,523.2511306012],description:"Rationalized JC Hypolydian Harmonia on C. Mars scale on C., MD=20"},"harmjc-hypop18":{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,336.37572681506,362.25078272391,376.74081403286,392.4383479509,409.50088481833,428.11456140098,448.50096908674,470.92601754108,523.2511306012],description:"Rationalized JC Hypophrygian Harmonia on C. Jupiter scale on C, MD =18"},"harmjc-lydian13":{frequencies:[261.6255653006,272.09058791262,283.42769574232,295.75063903546,309.19384990071,340.11323489078,358.01393146398,377.90359432309,400.13321751856,425.14154361347,453.48431318771,485.87604984397,523.2511306012],description:"Rationalized JC Lydian Harmonia on C. Mercury scale on C, MD = 26 or 13"},"harmjc-mix14":{frequencies:[261.6255653006,271.31540105247,281.75060878526,293.02063313667,305.22982618403,332.97799220076,348.83408706747,366.27579142084,385.55346465352,406.97310157871,430.91269578922,457.84473927605,523.2511306012],description:"Rationalized JC Mixolydian Harmonia on C. Moon Scale on C, MD = 14"},"harmjc-phryg12":{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,465.11211608996,483.00104363188,523.2511306012],description:"Rationalized JC Phrygian Harmonia on C. Venus scale on C, MD = 24 or 12"},harmonical:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"See pp 17 and 466-468 Helmholtz. lower 4 oct. Instr. designed & tuned by Ellis"},harmonical_up:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,359.73515228832,457.84473927605,392.4383479509,408.78994578219,425.14154361347,474.19633710734,490.54793493862,523.2511306012],description:"Upper 2 octaves of Ellis's Harmonical"},harmsub16:{frequencies:[261.6255653006,280.31310567921,294.32876096318,301.87565226992,327.03195662575,356.76213450082,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"16 harmonics on 1/1 and 16 subharmonics on 15/8"},harrison_16:{frequencies:[261.6255653006,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,370.63621750918,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:'Lou Harrison 16-tone superparticular "Ptolemy Duple"'},harrison_5:{frequencies:[261.6255653006,279.06726965397,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_1:{frequencies:[261.6255653006,285.40970760065,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_3:{frequencies:[261.6255653006,271.31540105247,348.83408706747,392.4383479509,406.97310157871,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_4:{frequencies:[261.6255653006,279.06726965397,313.95067836072,392.4383479509,490.54793493862,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_8:{frequencies:[261.6255653006,279.06726965397,313.95067836072,327.03195662575,367.91095120397,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:'Lou Harrison 8-tone tuning for "Serenade for Guitar"'},harrison_cinna:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,343.38355445704,367.91095120397,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:`Lou Harrison, "Incidental Music for Corneille's Cinna" (1955-56) 1/1=C`},harrison_diat:{frequencies:[261.6255653006,274.70684356563,313.95067836072,348.83408706747,392.4383479509,412.06026534844,470.92601754108,523.2511306012],description:"From Lou Harrison, a soft diatonic"},harrison_joy:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Lou Harrison's Joyous 6"},harrison_mid:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Lou Harrison mid mode"},harrison_mid2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,448.50096908674,470.92601754108,523.2511306012],description:"Lou Harrison mid mode 2"},harrison_min:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"From Lou Harrison, a symmetrical pentatonic with minor thirds"},harrison_mix1:{frequencies:[261.6255653006,285.40970760065,313.95067836072,392.4383479509,425.14154361347,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix2:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,490.54793493862,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix3:{frequencies:[261.6255653006,313.95067836072,336.37572681506,392.4383479509,418.60090448096,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix4:{frequencies:[261.6255653006,280.31310567921,327.03195662575,392.4383479509,448.50096908674,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_songs:{frequencies:[261.6255653006,271.31540105247,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,406.97310157871,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:'Shared gamut of "Four Strict Songs" (1951-55), each pentatonic'},harrisonj:{frequencies:[261.6255653006,272.17712546173,292.13970819848,313.56642833783,326.21280531667,350.13858362887,364.25994396351,390.97625694066,406.744629928,436.57694340361,468.59728067062,487.49616921257,523.2511306012],description:"John Harrison's temperament (1775), almost 3/10-comma. Third = 1200/pi"},harrisonm_rev:{frequencies:[261.6255653006,257.53766584278,294.32876096318,289.72987407313,331.11985608357,343.38355445704,372.50983809402,392.4383479509,386.30649876417,441.49314144476,457.84473927605,496.67978412536,523.2511306012],description:'Michael Harrison, piano tuning for "Revelation" (2001), 1/1=F'},haverstick13:{frequencies:[261.6255653006,283.85429714132,301.75671459889,307.97166902637,320.78822215662,341.02002673508,362.52783176564,377.61479489998,401.43059675514,426.7484383229,444.50800708553,482.27514684959,502.34551296122,523.2511306012],description:"Neil Haverstick, scale in 34-tET, MMM 21-5-2006"},hawkes:{frequencies:[261.6255653006,274.56549986328,292.86986732103,310.24975557428,327.84547867349,349.70184487387,366.99801003998,391.46454285105,411.84824958905,438.2147004401,467.42901507992,490.54793493862,523.2511306012],description:"William Hawkes' modified 1/5-comma meantone (1807)"},hawkes2:{frequencies:[261.6255653006,275.15193010334,293.04845178801,312.10900487995,328.24542585003,349.59527202198,367.66978141816,391.58387939843,411.8292495232,438.61558204759,467.14415995873,491.2960898965,523.2511306012],description:"Meantone with fifth tempered 1/6 of 53-tET step by William Hawkes (1808)"},hawkes3:{frequencies:[261.6255653006,274.56549986328,292.86986732103,311.6193417424,327.84547867349,349.70184487387,366.99801003998,391.46454285105,411.84824958905,438.2147004401,467.42901237995,490.54793493862,523.2511306012],description:"William Hawkes' modified 1/5-comma meantone (1811)"},hbarnes:{frequencies:[261.6255653006,276.71351472429,293.33333347996,310.95136287868,328.88393162803,349.42547049952,369.15973155124,391.77416758435,414.83597850347,439.25532436715,466.16376151809,493.04743111995,523.2511306012],description:"Variation on Barnes with 1/6P -> 1/8P. OdC '99"},hebdome1:{frequencies:[261.6255653006,265.71346475842,267.23182741418,269.80136421624,273.30527803723,280.31310567921,283.42769574232,287.78812183066,289.07289023169,292.28481123426,294.32876096318,300.63580584096,303.67253115248,308.34441624714,311.77046531655,315.35224388912,318.85615771011,323.76163705949,327.03195662575,334.03978426773,336.37572681506,340.11323489078,341.63159754654,346.88746827803,350.74177348112,359.73515228832,364.40703738298,367.91095120397,370.01329949656,375.7947573012,382.62738925213,385.43052030892,389.71308164569,392.4383479509,400.84774112128,404.70204632437,409.95791705585,411.12588832951,417.54973033466,420.46965851882,425.14154361347,431.68218274599,437.28844485957,441.49314144476,445.38637902364,449.66894036041,455.50879672872,462.5166243707,467.65569797482,470.92601754108,478.28423656516,479.64686971777,485.87604984397,490.54793493862,501.0596764016,504.56359022259,510.16985233617,513.90736041189,523.2511306012],description:"Wilson 1.3.5.7.9.11.13.15 hebdomekontany, 1.3.5.7 tonic"},helmholtz:{frequencies:[261.6255653006,279.06726965397,327.03195662575,348.83408706747,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Helmholtz's Chromatic scale and Gipsy major from Slovakia"},helmholtz_24:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,327.03195662575,331.11985608357,344.91651675372,348.83408706747,367.91095120397,372.50983809402,388.03108134794,392.4383479509,408.78994578219,413.89982010446,436.04260883433,441.49314144476,459.88868900496,465.63729761752,490.54793493862,496.67978412536,517.37477513058,523.2511306012],description:"Simplified Helmholtz 24"},helmholtz_hd:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,523.2511306012],description:"Helmholtz Harmonic Decad"},helmholtz_pure:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,327.03195662575,330.74639366397,344.91651675372,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,408.78994578219,413.43299207996,436.04260883433,441.49314144476,459.88868900496,465.11211608996,490.54793493862,496.11959049595,516.79124009995,523.2511306012],description:"Helmholtz's two-keyboard harmonium tuning untempered"},helmholtz_temp:{frequencies:[261.6255653006,275.81645389904,279.10671937395,290.77707354032,294.24580701304,306.54917537161,310.20605716322,327.03195662575,330.9330448436,344.77062435684,348.88325535732,367.80710710303,372.19474608839,387.75741156435,392.38304142029,408.78994578219,413.66637442451,436.10414127513,441.30625330017,459.75895986689,465.24324076996,490.4788828408,496.3296094287,517.08305349316,523.2511306012],description:"Helmholtz's two-keyboard harmonium tuning"},hem_chrom:{frequencies:[261.6255653006,269.55361273395,285.40970760065,348.83408706747,392.4383479509,404.33041910093,428.11456140098,523.2511306012],description:"Hemiolic Chromatic genus has the strong or 1:2 division of the 12/11 pyknon"},hem_chrom11:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"11'al Hemiolic Chromatic genus with a CI of 11/9, Winnington-Ingram"},hem_chrom13:{frequencies:[261.6255653006,272.09058791262,283.42769574232,348.83408706747,392.4383479509,408.13588186894,425.14154361347,523.2511306012],description:"13'al Hemiolic Chromatic or neutral-third genus has a CI of 16/13"},hem_chrom2:{frequencies:[261.6255653006,269.29177952703,285.30470202322,349.22823143301,391.99543598175,403.48177901006,427.47405410759,523.2511306012],description:"1:2 Hemiolic Chromatic genus 3 + 6 + 21 parts"},hemiwuer24:{frequencies:[261.6255653006,274.60778382002,280.48822448524,286.49458884928,292.62957327549,307.15025309186,313.72755695954,320.44570714783,327.30771955335,350.90592546776,358.42021185082,366.09540888186,373.9349620795,392.49012653442,400.89489544613,409.47964376542,418.24822532303,439.00227453173,448.4030528436,458.00513880662,467.8128437444,491.02635713596,501.54117720983,512.28116095218,523.2511306012],description:"Hemiw\xEF\xBF\xBDrschmidt[24] in 229-tET tuning."},hen12:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Adjusted Hahn12"},hen22:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,366.27579142084,381.53728273004,392.4383479509,415.27867508032,418.60090448096,436.04260883433,448.50096908674,457.84473927605,484.4917875937,490.54793493862,508.71637697339,523.2511306012],description:"Adjusted Hahn22"},hept_diamond:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,316.53463456122,325.57848126297,327.03195662575,334.88072358477,336.37572681506,348.83408706747,392.4383479509,406.97310157871,408.78994578219,418.60090448096,420.46965851882,432.48307733364,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Inverted-Prime Heptatonic Diamond based on Archytas's Enharmonic"},hept_diamondi:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,281.36411960997,289.40309445597,294.32876096318,297.67175429757,327.03195662575,336.37572681506,348.83408706747,361.75386806997,367.91095120397,372.08969287196,378.42269266694,392.4383479509,406.97310157871,418.60090448096,459.88868900496,465.11211608996,473.02836583367,486.54346200035,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Prime-Inverted Heptatonic Diamond based on Archytas's Enharmonic"},hept_diamondp:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,339.14425131559,348.83408706747,358.80077526939,361.75386806997,367.91095120397,372.08969287196,378.42269266694,381.53728273004,392.4383479509,403.65087217807,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Heptatonic Diamond based on Archytas's Enharmonic, 27 tones"},herf:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Sims:Reflections on This and That, 1991. Used by Herf in Ekmelischer Gesang"},heun:{frequencies:[261.6255653006,275.15237829755,293.0485888979,312.10878854255,328.24573110938,349.59519124833,367.67029324081,391.58396987353,411.83001550364,438.61588607285,467.14394139401,491.29666030217,523.2511306012],description:"Well temperament for organ of Jan Heun (1805), subset of 55-tET"},hexagonal13:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Star hexagonal 13-tone scale"},hexagonal37:{frequencies:[261.6255653006,272.52663052146,279.06726965397,282.55561052465,283.88190679319,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,313.95067836072,322.99452506247,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,423.83341578697,436.04260883433,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,482.22824196207,484.4917875937,490.54793493862,502.32108537715,523.2511306012],description:"Star hexagonal 37-tone scale"},hexany1:{frequencies:[261.6255653006,305.22982618403,327.03195662575,381.53728273004,436.04260883433,457.84473927605,523.2511306012],description:"Two out of 1 3 5 7 hexany on 1.3"},hexany10:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"1.3.5.9 Hexany"},hexany11:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:"1.3.7.9 Hexany on 1.3"},hexany12:{frequencies:[261.6255653006,290.69507255622,305.22982618403,339.14425131559,406.97310157871,436.04260883433,523.2511306012],description:"3.5.7.9 Hexany on 3.9"},hexany13:{frequencies:[261.6255653006,285.40970760065,327.03195662575,356.76213450082,392.4383479509,475.68284600109,523.2511306012],description:"1.3.5.11 Hexany on 1.11"},hexany14:{frequencies:[261.6255653006,287.78812183066,340.11323489078,383.71749577421,453.48431318771,498.83274450648,523.2511306012],description:"5.11.13.15 Hexany (5.15), used in The Giving, by Stephen J. Taylor"},hexany15:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,418.60090448096,523.2511306012],description:"1.3.5.15 2)4 hexany (1.15 tonic) degenerate, symmetrical pentatonic"},hexany16:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,465.11211608996,523.2511306012],description:"1.3.9.27 Hexany, a degenerate pentatonic form"},hexany17:{frequencies:[261.6255653006,327.03195662575,334.88072358477,408.78994578219,418.60090448096,523.2511306012],description:"1.5.25.125 Hexany, a degenerate pentatonic form"},hexany18:{frequencies:[261.6255653006,299.00064605783,341.71502406609,400.61414686654,457.84473927605,523.2511306012],description:"1.7.49.343 Hexany, a degenerate pentatonic form"},hexany19:{frequencies:[261.6255653006,299.00064605783,327.03195662575,418.60090448096,457.84473927605,523.2511306012],description:"1.5.7.35 Hexany, a degenerate pentatonic form"},hexany2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,490.54793493862,523.2511306012],description:"Hexany Cluster 2"},hexany20:{frequencies:[261.6255653006,279.06726965397,305.22982618403,398.6675280771,436.04260883433,465.11211608996,523.2511306012],description:"3.5.7.105 Hexany"},hexany21:{frequencies:[261.6255653006,279.06726965397,310.07474405997,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"3.5.9.135 Hexany"},hexany21a:{frequencies:[261.6255653006,279.06726965397,310.07474405997,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"3.5.9.135 Hexany + 4/3. Is Didymos Diatonic tetrachord on 1/1 and inv. on 3/2"},hexany22:{frequencies:[261.6255653006,276.76092858245,359.73515228832,380.54627680087,494.63583439645,523.2511306012],description:"1.11.121.1331 Hexany, a degenerate pentatonic form"},hexany23:{frequencies:[261.6255653006,348.83408706747,359.73515228832,380.54627680087,392.4383479509,523.2511306012],description:"1.3.11.33 Hexany, degenerate pentatonic form"},hexany24:{frequencies:[261.6255653006,327.03195662575,359.73515228832,380.54627680087,418.60090448096,523.2511306012],description:"1.5.11.55 Hexany, a degenerate pentatonic form"},hexany25:{frequencies:[261.6255653006,299.00064605783,359.73515228832,380.54627680087,457.84473927605,523.2511306012],description:"1.7.11.77 Hexany, a degenerate pentatonic form"},hexany26:{frequencies:[261.6255653006,294.32876096318,359.73515228832,380.54627680087,465.11211608996,523.2511306012],description:"1.9.11.99 Hexany, a degenerate pentatonic form"},hexany3:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 3"},hexany4:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Hexany Cluster 4"},hexany49:{frequencies:[261.6255653006,299.00064605783,305.22982618403,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"1.3.21.49 2)4 hexany (1.21 tonic)"},hexany5:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 5"},hexany6:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Hexany Cluster 6"},hexany7:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Hexany Cluster 7"},hexany8:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,340.65828815182,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 8"},hexany9:{frequencies:[261.6255653006,299.00064605783,313.95067836072,358.80077526939,418.60090448096,448.50096908674,523.2511306012],description:"1.3.5.7 Hexany on 5.7"},hexany_cl:{frequencies:[261.6255653006,294.32876096318,301.39265122629,313.95067836072,327.03195662575,348.83408706747,353.19451315581,376.74081403286,392.4383479509,418.60090448096,470.92601754108,502.32108537715,523.2511306012],description:"Hexany Cluster 1"},hexany_cl2:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,490.54793493862,502.32108537715,523.2511306012],description:"Composed of 1.3.5.45, 1.3.5.75, 1.3.5.9, and 1.3.5.25 hexanies"},hexany_flank:{frequencies:[261.6255653006,267.07609791103,299.00064605783,305.22982618403,327.03195662575,348.83408706747,373.75080757229,381.53728273004,427.14378008261,436.04260883433,457.84473927605,498.33441009638,523.2511306012],description:"Hexany Flanker, 7-limit, from Wilson"},hexany_tetr:{frequencies:[261.6255653006,269.10058145205,279.06726965397,336.37572681506,348.83408706747,358.80077526939,523.2511306012],description:"Complex 12 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans:{frequencies:[261.6255653006,271.31540105247,279.06726965397,339.14425131559,348.83408706747,361.75386806997,523.2511306012],description:"Complex 1 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,358.80077526939,372.08969287196,523.2511306012],description:"Complex 2 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,523.2511306012],description:"Complex 9 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_u2:{frequencies:[261.6255653006,274.70684356563,279.06726965397,280.31310567921,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,418.60090448096,436.04260883433,448.50096908674,457.84473927605,478.40103369253,488.36772189445,490.54793493862,498.33441009638,523.2511306012],description:"Hexany union = genus [335577] minus two corners"},hexany_union:{frequencies:[261.6255653006,274.70684356563,280.31310567921,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,488.36772189445,498.33441009638,523.2511306012],description:"The union of all of the pitches of the 1.3.5.7 hexany on each tone as 1/1"},hexany_urot:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,290.69507255622,299.00064605783,305.22982618403,327.03195662575,333.84512238879,343.38355445704,348.83408706747,356.10146388137,373.75080757229,381.53728273004,392.4383479509,400.61414686654,406.97310157871,436.04260883433,445.12682985172,448.50096908674,457.84473927605,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Aggregate rotations of 1.3.5.7 hexany, 1.3 = 1/1"},hexanys:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,343.38355445704,367.91095120397,392.4383479509,429.2294430713,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Hexanys 1 3 5 7 9"},hexanys2:{frequencies:[261.6255653006,314.76825825228,425.14154361347,457.84473927605,269.80136421624,371.99885066179,392.4383479509,472.15238737843,318.85615771011,359.73515228832,343.38355445704,292.28481123426,523.2511306012],description:"Hexanys 1 3 7 11 13"},higgs:{frequencies:[261.6255653006,392.4383479509,418.60090448096,422.62591317789,423.58424858192,425.14154361347,436.04260883433,523.2511306012],description:"From Greg Higgs announcement of the formation of an Internet Tuning list"},hinsz_gr:{frequencies:[261.6255653006,274.68983337859,292.34127285051,310.07474405997,326.6631048533,348.83408706747,366.25311135453,391.11111150212,412.03474986192,437.02884834934,465.11211608996,489.99465727995,523.2511306012],description:"Reconstructed Hinsz temperament, organ Pelstergasthuiskerk Groningen. Ortgies,2002"},hipkins:{frequencies:[261.6255653006,275.62199471997,299.00064605783,348.83408706747,392.4383479509,413.43299207996,448.50096908674,523.2511306012],description:"Hipkins' Chromatic"},hirajoshi:{frequencies:[261.6255653006,291.13134764929,317.84796618517,388.16504068057,412.91271853531,523.2511306012],description:"Observed Japanese pentatonic koto scale. Helmholtz/Ellis p.519, nr.112"},hirajoshi2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"Japanese pentatonic koto scale, theoretical. Helmholz/Ellis p.519, nr.110"},hirajoshi3:{frequencies:[261.6255653006,292.47977325983,321.54118165335,396.32121331049,415.54465627623,522.94897617031],description:"Observed Japanese pentatonic koto scale. Helmholtz/Ellis p.519, nr.111"},hirashima:{frequencies:[261.6255653006,277.33928225406,292.50627485027,312.00669222389,327.03195662575,349.91912034749,369.78570985692,391.22147055517,416.00892317314,437.39889945791,468.01003810189,489.02683710225,523.2511306012],description:"Tatsushi Hirashima, temperament of chapel organ of Kobe Shoin Women's Univ."},hjelmboogie:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,367.91095120397,392.4383479509,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:`Paul Hjelmstad's "Boogie Woogie" scale, TL 20-3-2006`},ho_mai_nhi:{frequencies:[261.6255653006,287.78812183066,348.83408706747,392.4383479509,431.68218274599,523.2511306012],description:"Ho Mai Nhi (Nam Hue) dan tranh scale, Vietnam"},hochgartz:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.86458629683,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.49999887294,438.2147004401,465.53241962975,490.54793493862,523.2511306012],description:"Michael Hochgartz, modified 1/5-comma meantone temperament"},hofmann1:{frequencies:[261.6255653006,262.65154790962,279.06726965397,348.83408706747,392.4383479509,393.97732186443,418.60090448096,523.2511306012],description:"Hofmann's Enharmonic #1, Dorian mode"},hofmann2:{frequencies:[261.6255653006,263.56353245097,279.06726965397,348.83408706747,392.4383479509,395.34529867646,418.60090448096,523.2511306012],description:"Hofmann's Enharmonic #2, Dorian mode"},hofmann_chrom:{frequencies:[261.6255653006,264.26824777838,290.69507255622,348.83408706747,392.4383479509,396.40237166758,436.04260883433,523.2511306012],description:"Hofmann's Chromatic"},holder:{frequencies:[261.6255653006,274.23214485994,292.57879058083,312.45989404005,327.40114268825,349.76744711215,366.57630213591,391.03837375367,409.94826565972,437.46806069696,467.28984664562,489.70152554512,523.2511306012],description:"William Holder's equal beating meantone temperament (1694). 3/2 beats 2.8 Hz"},holder2:{frequencies:[261.6255653006,274.23214485994,292.57879058083,312.45989404005,327.40114268825,349.76744711215,366.57630213591,391.03837375367,410.64811919433,437.46806069696,467.46154552107,489.70152554512,523.2511306012],description:"Holder's irregular e.b. temperament with improved Eb and G#"},hummel:{frequencies:[261.6255653006,277.1703574486,293.54676487235,311.03465677994,329.45811370906,349.13199096171,369.8583804246,391.99149393462,415.308682162,439.8732919971,466.10512967869,493.74031485884,523.2511306012],description:"Johann Nepomuk Hummel's quasi-equal temperament (1829)"},hummel2:{frequencies:[261.6255653006,277.22760066578,293.66431501254,311.21660561883,329.70790803338,349.18845812715,369.99117208793,391.90679138833,415.30984563838,439.96491544382,466.29335337935,494.03030700757,523.2511306012],description:"Johann Nepomuk Hummel's temperament according to the second bearing plan"},husmann:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,314.30517589183,331.11985608357,348.83408706747],description:"Tetrachord division according to Husmann"},hwerck3:{frequencies:[261.6255653006,276.40121172404,293.00227310437,310.60041853231,328.69828757761,349.03110370139,368.74309237173,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Variation on Werckmeister III with 1/4P -> 1/6P and 0P -> 1/24P. OdC '99"},hyper_enh:{frequencies:[261.6255653006,264.93728131706,268.33391312882,348.83408706747,392.4383479509,397.40592197559,402.50086969323,523.2511306012],description:"13/10 HyperEnharmonic. This genus is at the limit of usable tunings"},hyper_enh2:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,392.4383479509,400.78810003496,409.50088481833,523.2511306012],description:"Hyperenharmonic genus from Kathleen Schlesinger's enharmonic Phrygian Harmonia"},hypo_chrom:{frequencies:[261.6255653006,275.39533189537,282.83844897362,290.69507255622,348.83408706747,373.75080757229,387.59343007496,402.50086969323,418.60090448096,427.14378008261,436.04260883433,455.00098313148,523.2511306012],description:"Hypolydian Chromatic Tonos"},hypo_diat:{frequencies:[261.6255653006,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,387.59343007496,402.50086969323,436.04260883433,455.00098313148,475.68284600109,498.33441009638,523.2511306012],description:"Hypolydian Diatonic Tonos"},hypo_enh:{frequencies:[261.6255653006,268.33391312882,271.81876914348,275.39533189537,348.83408706747,373.75080757229,387.59343007496,402.50086969323,410.39304360878,414.45634107026,418.60090448096,465.11211608996,523.2511306012],description:"Hypolydian Enharmonic Tonos"},hypod_chrom:{frequencies:[261.6255653006,279.06726965397,288.69027895239,299.00064605783,322.00069575458,348.83408706747,364.00078650518,380.54627680087,398.6675280771,408.39112632289,418.60090448096,465.11211608996,523.2511306012],description:"Hypodorian Chromatic Tonos"},hypod_chrom2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,380.54627680087,398.6675280771,418.60090448096,523.2511306012],description:"Schlesinger's Chromatic Hypodorian Harmonia"},hypod_chrom2inv:{frequencies:[261.6255653006,327.03195662575,343.38355445704,359.73515228832,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypodorian Harmonia"},hypod_chromenh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,380.54627680087,398.6675280771,418.60090448096,523.2511306012],description:"Schlesinger's Hypodorian Harmonia in a mixed chromatic-enharmonic genus"},hypod_chrominv:{frequencies:[261.6255653006,277.97716313189,294.32876096318,359.73515228832,392.4383479509,408.78994578219,425.14154361347,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypodorian Inverted"},hypod_diat:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012],description:"Hypodorian Diatonic Tonos"},hypod_diat2:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,364.00078650518,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"Schlesinger's Hypodorian Harmonia, a subharmonic series through 13 from 16"},hypod_diatcon:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,364.00078650518,418.60090448096,465.11211608996,523.2511306012],description:"A Hypodorian Diatonic with its own trite synemmenon replacing paramese"},hypod_diatinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Inverted Schlesinger's Hypodorian Harmonia, a harmonic series from 8 from 16"},hypod_enh:{frequencies:[261.6255653006,270.06509966514,274.49239638096,279.06726965397,310.07474405997,348.83408706747,364.00078650518,380.54627680087,389.39619021485,393.97732186443,398.6675280771,452.54151835779,523.2511306012],description:"Hypodorian Enharmonic Tonos"},hypod_enhinv:{frequencies:[261.6255653006,343.38355445704,351.55935337268,359.73515228832,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypodorian Harmonia"},hypod_enhinv2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,359.73515228832,392.4383479509,400.61414686654,408.78994578219,523.2511306012],description:"A harmonic form of Schlesinger's Hypodorian enharmonic inverted"},hypodorian_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,392.4383479509,418.60090448096,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,784.8766959018,897.00193817349,966.00208726375,1046.5022612024],description:"Diatonic Perfect Immutable System in the Hypodorian Tonos"},hypol_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the chromatic genus"},hypol_chrominv:{frequencies:[261.6255653006,313.95067836072,327.03195662575,340.11323489078,366.27579142084,392.4383479509,470.92601754108,497.08857407114,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypolydian Harmonia"},hypol_chrominv2:{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,366.27579142084,392.4383479509,418.60090448096,523.2511306012],description:"harmonic form of Schlesinger's Chromatic Hypolydian inverted"},hypol_chrominv3:{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,392.4383479509,418.60090448096,444.76346101102,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypolydian inverted"},hypol_diat:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,373.75080757229,402.50086969323,436.04260883433,475.68284600109,523.2511306012],description:"Schlesinger's Hypolydian Harmonia, a subharmonic series through 13 from 20"},hypol_diatcon:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,402.50086969323,436.04260883433,475.68284600109,523.2511306012],description:"A Hypolydian Diatonic with its own trite synemmenon replacing paramese"},hypol_diatinv:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Inverted Schlesinger's Hypolydian Harmonia, a harmonic series from 10 from 20"},hypol_enh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the enharmonic genus"},hypol_enhinv:{frequencies:[261.6255653006,327.03195662575,333.57259575826,340.11323489078,366.27579142084,392.4383479509,497.08857407114,510.16985233617,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypolydian Harmonia"},hypol_enhinv2:{frequencies:[261.6255653006,268.16620443312,274.70684356563,340.11323489078,366.27579142084,379.35706968587,392.4383479509,523.2511306012],description:"A harmonic form of Schlesinger's Hypolydian enharmonic inverted"},hypol_enhinv3:{frequencies:[261.6255653006,268.16620443312,274.70684356563,340.11323489078,392.4383479509,405.51962621593,418.60090448096,523.2511306012],description:"A harmonic form of Schlesinger's Hypolydian enharmonic inverted"},hypol_pent:{frequencies:[261.6255653006,272.52663052146,290.69507255622,348.83408706747,373.75080757229,402.50086969323,415.27867508032,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the pentachromatic genus"},hypol_tri:{frequencies:[261.6255653006,270.64713651786,280.31310567921,348.83408706747,373.75080757229,402.50086969323,413.09299784305,424.25767346043,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the first trichromatic genus"},hypol_tri2:{frequencies:[261.6255653006,270.64713651786,290.69507255622,348.83408706747,373.75080757229,402.50086969323,413.09299784305,436.04260883433,2093.0045224048],description:"Schlesinger's Hypolydian Harmonia in the second trichromatic genus"},hypolydian_pis:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,366.27579142084,406.97310157871,457.84473927605,488.36772189445,523.2511306012,563.50121757052,610.45965236807,665.95598440153,732.55158284168,813.94620315742,915.6894785521,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Hypolydian Tonos"},hypop_chrom:{frequencies:[261.6255653006,277.01530443593,285.40970760065,294.32876096318,336.37572681506,362.25078272391,376.74081403286,392.4383479509,409.50088481833,418.60090448096,428.11456140098,470.92601754108,523.2511306012],description:"Hypophrygian Chromatic Tonos"},hypop_chromenh:{frequencies:[261.6255653006,269.10058145205,277.01530443593,362.25078272391,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Schlesinger's Hypophrygian Harmonia in a mixed chromatic-enharmonic genus"},hypop_chrominv:{frequencies:[261.6255653006,319.76457981184,334.29933343966,348.83408706747,377.90359432309,465.11211608996,494.18162334558,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypophrygian Harmonia"},hypop_chrominv2:{frequencies:[261.6255653006,276.16031892841,290.69507255622,348.83408706747,377.90359432309,406.97310157871,436.04260883433,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypophrygian inverted"},hypop_diat:{frequencies:[261.6255653006,294.32876096318,303.82323712328,313.95067836072,336.37572681506,362.25078272391,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012],description:"Hypophrygian Diatonic Tonos"},hypop_diat2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,362.25078272391,376.74081403286,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Schlesinger's Hypophrygian Harmonia"},hypop_diat2inv:{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,363.36884069528,377.90359432309,436.04260883433,465.11211608996,523.2511306012],description:"Inverted Schlesinger's Hypophrygian Harmonia, a harmonic series from 9 from 18"},hypop_diatcon:{frequencies:[261.6255653006,294.32876096318,313.95067836072,362.25078272391,376.74081403286,428.11456140098,470.92601754108,523.2511306012],description:"A Hypophrygian Diatonic with its own trite synemmenon replacing paramese"},hypop_enh:{frequencies:[261.6255653006,269.10058145205,273.00058987889,277.01530443593,313.95067836072,362.25078272391,376.74081403286,392.4383479509,400.78810003496,405.0976494977,409.50088481833,470.92601754108,523.2511306012],description:"Hypophrygian Enharmonic Tonos"},hypop_enhinv:{frequencies:[261.6255653006,334.29933343966,341.56671025356,348.83408706747,377.90359432309,494.18162334558,508.71637697339,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypophrygian Harmonia"},hypop_enhinv2:{frequencies:[261.6255653006,268.89294211451,276.16031892841,348.83408706747,377.90359432309,392.4383479509,406.97310157871,523.2511306012],description:"A harmonic form of Schlesinger's Hypophrygian enharmonic inverted"},hypophryg_pis:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,377.90359432309,425.14154361347,453.48431318771,523.2511306012,544.18117582525,566.85539148463,618.38769980142,680.22646978156,755.80718864618,850.28308722695,971.75209968794,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Hypophrygian Tonos"},kanzelmeyer_11:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,474.19633710734,506.89953276991,523.2511306012],description:"Bruce Kanzelmeyer, 11 harmonics from 16 to 32. Base 388.3614815 Hz"},kanzelmeyer_18:{frequencies:[261.6255653006,277.97716313189,302.50455987882,310.68035879446,327.03195662575,335.20775554139,351.55935337268,359.73515228832,376.08675011961,384.26254903526,392.4383479509,425.14154361347,433.31734252912,457.84473927605,474.19633710734,482.37213602298,498.72373385427,506.89953276991,523.2511306012],description:"Bruce Kanzelmeyer, 18 harmonics from 32 to 64. Base 388.3614815 Hz"},kayolonian:{frequencies:[261.6255653006,267.90457886781,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:"19-tone 5-limit scale of the Kayenian Imperium on Kayolonia (reeks van Sjauriek)"},kayolonian_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"See Barnard: De Keiaanse Muziek, p. 11. (uitgebreide reeks)"},kayolonian_40:{frequencies:[261.6255653006,267.90457886781,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,319.36714514233,327.03195662575,331.11985608357,334.88072358477,340.65828815182,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,401.85686830172,408.78994578219,413.43299207996,418.60090448096,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,490.54793493862,496.11959049595,502.32108537715,510.98743222773,523.2511306012],description:"See Barnard: De Keiaanse Muziek"},kayolonian_f:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"Kayolonian scale F and periodicity block (128/125, 16875/16384)"},kayolonian_p:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,418.60090448096,459.88868900496,490.54793493862,523.2511306012],description:"Kayolonian scale P"},kayolonian_s:{frequencies:[261.6255653006,287.4304306281,306.59245933664,327.03195662575,359.28803828513,392.4383479509,418.60090448096,459.88868900496,490.54793493862,523.2511306012],description:"Kayolonian scale S"},kayolonian_t:{frequencies:[261.6255653006,279.06726965397,297.67175429757,317.51653791741,348.83408706747,381.01984550089,418.60090448096,446.50763144636,476.27480687611,523.2511306012],description:"Kayolonian scale T"},kayolonian_z:{frequencies:[261.6255653006,279.06726965397,297.67175429757,327.03195662575,348.83408706747,392.4383479509,418.60090448096,446.50763144636,476.27480687611,523.2511306012],description:"Kayolonian scale Z"},kayoloniana:{frequencies:[261.6255653006,267.90457886781,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:"Amendment by Rasch of Kayolonian scale's note 9"},"kebyar-b":{frequencies:[261.6255653006,280.40333801024,299.48910562989,384.37207420335,402.78320381033,523.2511306012],description:"Gamelan Kebyar tuning begbeg, Andrew Toth, 1993"},"kebyar-s":{frequencies:[261.6255653006,283.00682726281,309.51375468789,385.26118901859,416.26536455926,523.2511306012],description:"Gamelan kebyar tuning sedung, Andrew Toth, 1993"},"kebyar-t":{frequencies:[261.6255653006,293.15632631094,325.27731021818,397.46748834812,422.07621250312,523.2511306012],description:"Gamelan kebyar tuning tirus, Andrew Toth, 1993"},keenan:{frequencies:[261.6255653006,279.77706779472,292.57243455474,305.95298478736,327.17991022208,349.87955533643,365.88099775759,391.26571058456,418.41160951721,437.54730686196,457.55816161244,489.30340830564,523.2511306012],description:"Dave Keenan 31-ET mode has 3 4:5:6:7 tetrads + 3 inv. is Fokker's 12-tone mode"},keenan2:{frequencies:[261.6255653006,278.14493936283,295.70736791055,306.84360659709,326.21810583671,346.81593583087,369.99442271164,393.35634555235,418.19337019276,433.94238997708,461.34206956593,490.47180009913,523.2511306012],description:"Dave Keenan strange 9-limit temperament TL 19-11-98"},keenan3:{frequencies:[261.6255653006,272.10155294862,282.99701916355,314.19580976213,326.77681046955,339.86157848985,377.32935907335,392.4383479509,408.1523292189,453.14877154631,471.29371440761,523.2511306012],description:"Chain of 1/6 kleisma tempered 6/5s, 10 tetrads, Dave Keenan, 30-Jun-99, TD235"},keenan3eb:{frequencies:[261.6255653006,272.52625793573,283.88113057344,314.31833892864,327.41448875753,341.05629284549,377.62371824792,393.35750206077,409.74683779238,453.67913385439,472.5817850056,523.2511306012],description:"Chain of 11 equal beating minor thirds, 6/5=3/2 same"},keenan3eb2:{frequencies:[261.6255653006,271.88912362492,282.55531921581,314.13446783,326.45794787121,339.26487744082,377.18204004818,391.97887331053,407.35618327602,452.88341485066,470.6500094,523.2511306012],description:"Chain of 11 equal beating minor thirds, 6/5=3/2 opposite"},keenan3j:{frequencies:[261.6255653006,291.88463270656,302.72962012827,313.97755176024,350.29154279212,363.30663963964,405.32593044476,420.38583225541,436.00528786292,486.43275040712,504.50618240233,523.2511306012],description:"Chain of 11 nearly just 19-tET minor thirds, Dave Keenan, 1-Jul-99"},keenan7:{frequencies:[261.6255653006,269.29177952703,279.86396690685,288.06460709314,296.5055443788,305.19382000629,314.13668154225,326.46944327063,336.03572815422,349.22823143301,359.46139971304,369.99442271164,380.8360868427,391.99543598175,407.38487419079,419.32216217931,435.78442404634,448.5538823653,461.69751437372,475.22628419761,489.15147723638,508.3551866238,523.2511306012],description:"Dave Keenan, 22 out of 72-tET periodicity block. TL 29-04-2001"},keenanmt:{frequencies:[261.6255653006,279.93529690293,292.50627485027,305.64177427204,327.03195662575,349.91912034749,365.63284274659,391.22147055517,418.60090448096,437.39890198442,457.04105241293,489.02683710225,523.2511306012],description:"Dave Keenan 1/4-comma tempered version of keenan with 6 7-limit tetrads"},keenanst:{frequencies:[261.6255653006,268.50609092997,277.46533822773,286.72352888229,294.26410920268,304.08282473376,314.22916151277,322.49311613356,333.25374941849,342.01803421352,353.43015577174,365.22306367425,374.82811589307,387.33500976677,397.52158713557,410.7856943143,424.4923875554,435.65616946139,450.19271626925,462.0323945472,477.44903730562,493.38008744487,506.35555615636,523.2511306012],description:"Dave Keenan, 7-limit temperament, g=260.353"},kelletat:{frequencies:[261.6255653006,275.58617649731,292.98704147282,310.05056613125,327.14272545641,348.82502010853,367.43868454848,391.99543598175,413.39000965417,437.97145880542,465.08793784701,489.90551202062,523.2511306012],description:"Herbert Kelletat's Bach-tuning (1967)"},kellner:{frequencies:[261.6255653006,275.62199471997,292.73769384471,310.07474405997,327.54963108844,348.83408706747,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,491.32444638706,523.2511306012],description:"Herbert Anton Kellner's Bach tuning. 5 1/5 Pyth. comma and 7 pure fifths"},kellners:{frequencies:[261.6255653006,275.84425785506,292.86986732103,310.2247482054,327.84547867349,348.89032888179,367.85164222246,391.46454285105,413.69968681881,438.2147004401,465.26210635182,491.68894399626,523.2511306012],description:"Kellner's temperament with 1/5 synt. comma instead of 1/5 Pyth. comma"},kepler1:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Kepler's Monochord no.1, Harmonices Mundi (1619)"},kepler2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Kepler's Monochord no.2"},kepler3:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,496.67978412536,523.2511306012],description:"Kepler's choice system, Harmonices Mundi, Liber III (1619)"},kilroy:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Kilroy"},kimball:{frequencies:[261.6255653006,272.52663052146,275.93321340298,290.69507255622,294.32876096318,306.59245933664,327.03195662575,331.11985608357,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Buzz Kimball 18-note just scale"},kimball_53:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,281.75060878526,283.42769574232,285.40970760065,287.78812183066,296.50897400735,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,461.69217405988,475.68284600109,479.64686971777,483.00104363188,485.87604984397,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Buzz Kimball 53-note just scale"},kirkwood:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Scale based on Kirkwood gaps of the asteroid belt"},"kirn-stan":{frequencies:[261.6255653006,276.16031892841,292.60754013883,310.68035879446,327.03195662575,348.83408706747,368.21375857121,392.4383479509,414.24047839262,437.1900893839,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger temperament improved by Charles Earl Stanhope (1806)"},kirnberger:{frequencies:[261.6255653006,275.62199471997,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.22147055517,413.43299207996,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger's well-temperament, also called Kirnberger III, letter to Forkel 1779"},kirnberger1:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,438.75944753732,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger's temperament 1 (1766)"},kirnberger2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,438.75941205608,465.11211608996,490.54793493862,523.2511306012],description:'Kirnberger 2: 1/2 synt. comma. "Die Kunst des reinen Satzes" (1774)'},kirnberger3:{frequencies:[261.6255653006,275.93321340298,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.22147055517,413.89982010446,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger 3: 1/4 synt. comma (1744)"},kirnberger3v:{frequencies:[261.6255653006,275.93321340298,292.50063201309,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.21579858034,413.43299207996,437.39258595147,465.11211608996,490.54793493862,523.2511306012],description:"Variant well-temperament like Kirnberger 3, Kenneth Scholz, MTO 4.4, 1998"},klais:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,327.21690075602,348.83408706747,367.49599295996,391.99543598175,413.43299207996,438.01699797506,465.11211608996,489.99465727995,523.2511306012],description:"Johannes Klais, Bach temperament"},klonaris:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Johnny Klonaris, 19-limit harmonic scale"},knot:{frequencies:[261.6255653006,268.26840191956,280.31310567921,286.15296204753,294.32876096318,299.00064605783,306.59245933664,327.03195662575,348.83408706747,357.69120255941,366.27579142084,367.91095120397,381.53728273004,392.4383479509,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,459.88868900496,476.92160341255,478.40103369253,490.54793493862,523.2511306012],description:"Smallest knot in 3-D, American Scientist, Nov-Dec '97 p506-510, trefoil knot"},koepf_36:{frequencies:[261.6255653006,272.26348829648,274.95017225036,277.18263097687,288.45311779165,291.29956028699,293.66476791741,305.60543275312,308.62113352716,311.12698372208,323.77767743764,326.97270111135,329.62755691287,343.03050002254,346.41550969045,349.22823143301,363.4281550135,367.0144478307,369.99442271164,385.03871768789,388.83826257328,391.99543598175,407.93431128975,411.95978887118,415.30469757995,432.19134773437,436.45619266906,440,457.89078262597,462.40922843744,466.16376151809,485.11838543951,489.90551202062,493.88330125613,513.96502576833,519.03680970905,523.2511306012],description:"Siegfried Koepf, 36-tone subset of 48-tone scale (1991)"},koepf_48:{frequencies:[261.6255653006,269.44737349144,272.26348829648,274.95017225036,277.18263097687,285.46954808622,288.45311779165,291.29956028699,293.66476791741,302.44445076078,305.60543275312,308.62113352716,311.12698372208,320.42873367481,323.77767743764,326.97270111135,329.62755691287,339.48241770075,343.03050002254,346.41550969045,349.22823143301,359.66909273781,363.4281550135,367.0144478307,369.99442271164,381.0561299374,385.03871768789,388.83826257328,391.99543598175,403.71490654806,407.93431128975,411.95978887118,415.30469757995,427.72104413038,432.19134773437,436.45619266906,440,453.15466093696,457.89078262597,462.40922843744,466.16376151809,480.10063929961,485.11838543951,489.90551202062,493.88330125613,508.64890891624,513.96502576833,519.03680970905,523.2511306012],description:"Siegfried Koepf, 48-tone scale (1991)"},kolinsky:{frequencies:[261.6255653006,277.2273508585,293.75953199293,311.27759533081,329.84032939425,349.51003591412,370.35272620855,392.4383479509,415.84102607989,440.63929776914,466.91639276282,494.76049384407,524.26505360912],description:"Kolinsky's 7th root of 3/2, also invented by Augusto Novaro"},kora1:{frequencies:[261.6255653006,293.66476791741,326.78388880949,349.22823143301,391.99543598175,440,489.62261321254,523.2511306012],description:"Kora tuning Tomora Ba, also called Silaba, 1/1=F, R. King"},kora2:{frequencies:[261.6255653006,298.79793764201,315.65242990842,349.22823143301,391.99543598175,447.69106452518,472.94426956511,523.2511306012],description:"Kora tuning Tomora Mesengo, also called Tomora, 1/1=F, R. King"},kora3:{frequencies:[261.6255653006,291.13134764929,330.58093469714,349.22823143301,391.99543598175,436.20415848357,495.31175393723,523.2511306012],description:"Kora tuning Hardino, 1/1=F, R.King"},kora4:{frequencies:[261.6255653006,291.13134764929,330.58093469714,371.06455309218,391.99543598175,436.20415848357,495.31175393723,523.2511306012],description:"Kora tuning Sauta, 1/1=F, R. King"},korea_5:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,470.92601754108,523.2511306012],description:'According to Lou Harrison, called "the Delightful" in Korea'},kornerup:{frequencies:[261.6255653006,272.97226153513,280.22976278938,292.38332274669,305.0639823888,313.17470478367,326.75708630452,340.92853547661,349.99278713323,365.17196824772,374.88056242272,391.13935185123,408.10305876469,418.95303445734,437.12302030357,456.08130156398,468.2068441924,488.51296691354,509.70006023951,523.2511306012],description:"Kornerup's temperament with fifth of (15 - sqrt 5) / 22 octaves"},kornerup_11:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Kornerup's doric minor"},kraeh_22:{frequencies:[261.6255653006,267.07609791103,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,320.49131749323,336.37572681506,343.38355445704,353.19451315581,366.27579142084,381.53728273004,392.4383479509,400.61414686654,412.06026534844,436.04260883433,441.49314144476,457.84473927605,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"Kraehenbuehl & Schmidt 7-limit 22-tone tuning"},kraeh_22a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,311.45900631024,313.95067836072,318.93402246168,320.49131749323,327.03195662575,336.37572681506,343.38355445704,348.83408706747,350.39138209902,353.19451315581,358.80077526939,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,400.61414686654,403.65087217807,408.78994578219,412.06026534844,418.60090448096,420.46965851882,436.04260883433,441.49314144476,448.50096908674,457.84473927605,467.18850946536,470.92601754108,476.92160341255,478.40103369253,488.36772189445,490.54793493862,498.33441009638,504.56359022259,523.2511306012],description:'Kraehenbuehl & Schmidt 7-limit 22-tone tuning with "inflections" for some tones'},kraeh_22b:{frequencies:[261.6255653006,269.10058145205,279.06726965397,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.91095120397,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,448.50096908674,457.84473927605,476.92160341255,490.54793493862,504.56359022259,523.2511306012],description:"Best 22-tET approximation of KRAEH_22A"},kring1:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,523.2511306012],description:"Double-tie circular mirroring of 4:5:6 and Partch's 5-limit tonality Diamond"},kring1p3:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,282.55561052465,290.69507255622,294.32876096318,301.39265122629,306.59245933664,310.07474405997,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,436.04260883433,441.49314144476,446.50763144636,454.2110508691,465.11211608996,470.92601754108,484.4917875937,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Third carthesian power of double-tie mirroring of 4:5:6 with kleismas removed"},kring2:{frequencies:[261.6255653006,299.00064605783,305.22982618403,348.83408706747,392.4383479509,448.50096908674,457.84473927605,523.2511306012],description:"Double-tie circular mirroring of 6:7:8"},kring2p3:{frequencies:[261.6255653006,265.7783520514,271.31540105247,288.32205155576,294.32876096318,299.00064605783,305.22982618403,310.07474405997,329.51091606373,336.37572681506,343.38355445704,348.83408706747,356.10146388137,384.42940207435,392.4383479509,398.6675280771,406.97310157871,415.4517078616,441.49314144476,448.50096908674,457.84473927605,465.11211608996,474.80195184183,504.56359022259,515.07533168556,523.2511306012],description:"Third power of 6:7:8 mirroring with 1029/1024 intervals removed"},kring3:{frequencies:[261.6255653006,305.22982618403,313.95067836072,366.27579142084,373.75080757229,436.04260883433,448.50096908674,523.2511306012],description:"Double-tie circular mirroring of 3:5:7"},kring3bp:{frequencies:[261.6255653006,336.37572681506,366.27579142084,436.04260883433,470.92601754108,560.62621135843,610.45965236807,784.8766959018],description:"Double-tie BP circular mirroring of 3:5:7"},kring4:{frequencies:[261.6255653006,299.00064605783,327.03195662575,366.27579142084,373.75080757229,418.60090448096,457.84473927605,523.2511306012],description:"Double-tie circular mirroring of 4:5:7"},kring4p3:{frequencies:[261.6255653006,267.90457886781,273.37201925287,280.42990280658,286.15296204753,293.02063313667,299.00064605783,305.10270005901,320.49131749323,327.03195662575,334.88072358477,341.71502406609,350.53737850823,357.69120255941,366.27579142084,373.75080757229,382.72082695402,390.53145607553,400.61414686654,408.78994578219,418.60090448096,427.14378008261,448.68784449053,457.84473927605,467.18850946536,478.40103369253,488.16432009441,500.76768358318,510.98743222773,523.2511306012],description:"Third power of 4:5:7 mirroring with 3136/3125 intervals removed"},kring5:{frequencies:[261.6255653006,290.69507255622,336.37572681506,366.27579142084,373.75080757229,406.97310157871,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 5:7:9"},kring5p3:{frequencies:[261.6255653006,266.96486255163,272.4643387202,278.02483542877,284.8811711051,290.69507255622,296.68339105088,302.73815413355,308.91648380975,316.53463456122,322.99452506247,329.64821227876,336.37572681506,343.24053756638,351.70514951247,358.88280562497,366.27579142084,373.75080757229,381.45007420827,389.23476960028,398.83363954714,406.97310157871,415.27867508032,423.83341578697,432.48307733364,443.14848838571,452.19233508746,461.42075008924,470.92601754108,480.53675259294,492.38720931745,502.43592787495,512.78610798918,523.2511306012],description:"Third power of 5:7:9 mirroring with 250047/250000 intervals removed"},kring6:{frequencies:[261.6255653006,305.22982618403,336.37572681506,348.83408706747,392.4383479509,406.97310157871,448.50096908674,523.2511306012],description:"Double-tie circular mirroring of 6:7:9"},kring6p3:{frequencies:[261.6255653006,267.07609791103,271.31540105247,276.96780524107,288.32205155576,294.32876096318,299.00064605783,305.22982618403,310.07474405997,316.53463456122,324.36230800023,329.51091606373,336.37572681506,343.38355445704,348.83408706747,356.10146388137,361.75386806997,369.29040698809,378.42269266694,384.42940207435,392.4383479509,398.6675280771,406.97310157871,415.4517078616,422.04617941496,432.48307733364,441.49314144476,448.50096908674,457.84473927605,465.11211608996,474.80195184183,494.26637409559,504.56359022259,512.57253609913,523.2511306012],description:"Third power of 6:7:9 mirroring with 118098/117649 intervals removed"},krousseau:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,343.38355445704,348.83408706747,366.27579142084,392.4383479509,406.97310157871,457.84473927605,465.11211608996,488.36772189445,523.2511306012],description:"Kami Rousseau's tri-blues scale"},krousseau2:{frequencies:[261.6255653006,271.34627406517,291.88463270656,302.72962012827,337.74269681563,350.29154279212,363.30663963964,390.80553229045,405.32593044476,452.20508247496,469.00678383895,486.43275040712,523.2511306012],description:"19-tET version of Kami Rousseau's tri-blues scale"},kukuya:{frequencies:[261.6255653006,307.37578701508,361.96165147221,412.67427966689,460.80941404108],description:"African Kukuya Horns (aerophone, ivory, one note only)"},kurzw_arab:{frequencies:[261.6255653006,282.02769802256,290.29174037004,302.26980244078,321.16993719469,349.63190883464,374.94271441196,393.35634555235,411.95978887118,429.20598402782,447.69106452518,496.7443381147,523.2511306012],description:'Kurzweil "Empirical Arabic"'},kurzw_harmp:{frequencies:[261.6255653006,285.46954808622,287.62123438446,306.48933163909,308.79945157961,324.90175210669,345.81573716922,348.42227432308,427.72104413038,430.94493093825,458.94995811222,462.40922843744,523.2511306012],description:'Kurzweil "Empirical Bali/Java Harmonic Pelog"'},kurzw_melp:{frequencies:[261.6255653006,281.53940445957,283.98935579354,303.66981774726,307.02089761314,323.96475278212,344.02264297658,347.0163224393,421.10213511252,424.76655906637,451.06547253417,454.99063696457,523.2511306012],description:'Kurzweil "Empirical Bali/Java Melodic Pelog"'},kurzw_slen:{frequencies:[261.6255653006,266.96862289802,288.95340229325,306.66641795878,318.95145438803,352.26720984209,352.26720984209,389.06292924114,404.41509766528,429.20598402782,464.81937009253,474.03826620294,523.2511306012],description:'Kurzweil "Empirical Bali/Java Slendro, Siam 7"'},kurzw_tibet:{frequencies:[261.6255653006,270.53905136894,299.14332201883,312.9293240034,325.46525203475,353.69443592699,373.86139962101,397.69714089209,408.87792937274,438.98455767189,471.30800669535,489.90551202062,523.2511306012],description:'Kurzweil "Empirical Tibetian Ceremonial"'},kwazy:{frequencies:[13.75,13.8425266748,13.92142234948,14.00076777204,14.0805654254,14.16081788707,14.25610896047,14.337361936,14.41907801447,14.50125983535,14.58391005315,14.66703125278,14.76572882594,14.84988638999,14.93452361174,15.01964313826,15.10524789197,15.20689431811,15.29356631363,15.38073220905,15.46839499707,15.55655742089,15.66124080485,15.75050226619,15.84027256598,15.93055451337,16.0213510245,16.11266503216,16.22109048883,16.31354291552,16.40652227664,16.50003157548,16.59407373656,16.70573878851,16.80095347779,16.89671084507,16.99301388521,17.08986590459,17.18726993397,17.30292672931,17.40154500258,17.50072545316,17.60047118468,17.70078541898,17.81989766631,17.92146252619,18.023606257,18.12633215803,18.22964354736,18.35231459047,18.45691397115,18.56210951808,18.66790462912,18.77430261304,18.88130712282,19.00836345475,19.11670199894,19.22565790976,19.335234928,19.44543648263,19.57628896102,19.68786429416,19.80007566685,19.91292659048,20.02642071019,20.16118263857,20.27609169854,20.39165568498,20.50787833065,20.62476338959,20.74231451743,20.88189396397,21.00091073243,21.12060583931,21.24098302814,21.36204643183,21.50579618625,21.62836889778,21.75164008927,21.875613993,22.00029448845,22.14833914981,22.27457391904,22.40152829449,22.52920624893,22.65761190639,22.78674941445,22.94008616579,23.07083364148,23.202326315,23.33456843363,23.46756413327,23.62548236417,23.76013626908,23.89555763659,24.03175070206,24.16872014141,24.30647024079,24.47003364934,24.60950094889,24.74976328722,24.89082505353,25.03269080417,25.2011409598,25.3447753621,25.48922841152,25.63450477396,25.78060914191,25.95409219477,26.10201805756,26.25078702673,26.40040390759,26.55087337946,26.70220060843,26.88188539622,27.03509923475,27.18918616153,27.34415146685,27.5],description:"Kwazy temperament, g=162.741892, p=600, 5-limit"},lambdoma5_12:{frequencies:[261.6255653006,21.80213044172,23.78414230005,26.16255653006,29.06950725562,32.70319566257,37.37508075723,43.60426088343,47.56828460011,52.32511306012,58.13901451124,65.40639132515,71.35242690016,74.75016151446,78.48766959018,87.20852176687,95.13656920022,98.10958698772,104.65022612024,109.01065220858,112.12524227169,116.27802902249,118.92071150027,130.8127826503,145.34753627811,149.50032302891,156.97533918036,163.51597831288,174.41704353373,186.87540378614,196.21917397545,209.30045224048,218.02130441717,261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012,654.0639132515,784.8766959018,1046.5022612024,1308.127826503],description:"5x12 Lambdoma"},lambdoma_prim:{frequencies:[261.6255653006,8.43953436454,9.02157121726,11.37502457829,13.76976659477,15.38973913533,16.87906872907,18.04314243452,20.12504348466,22.75004915657,23.78414230005,25.31860309361,27.06471365179,27.53953318954,30.77947827066,34.12507373486,37.37508075723,40.25008696932,41.30929978431,42.19767182268,45.10785608631,46.16921740599,47.56828460011,52.32511306012,56.87512289143,59.07674055175,60.37513045398,63.15099852083,68.84883297384,71.35242690016,74.75016151446,76.94869567665,79.62517204801,87.20852176687,96.38836616338,100.62521742331,104.65022612024,107.72817394731,112.12524227169,118.92071150027,130.8127826503,140.87530439263,156.97533918036,166.48899610038,174.41704353373,186.87540378614,261.6255653006,366.27579142084,392.4383479509,436.04260883433,523.2511306012,610.45965236807,654.0639132515,784.8766959018,915.6894785521,1308.127826503,1831.3789571042],description:"Prime Lambdoma"},lambert:{frequencies:[261.6255653006,276.15600972046,293.19138048956,310.67551062492,328.56569462012,349.50994910362,368.20801314466,391.67947347082,414.23401437362,438.93663604468,466.01326570444,491.89550004992,523.2511306012],description:"Lambert's temperament (1774) 1/7 Pyth. comma, 5 pure"},lara:{frequencies:[261.6255653006,286.4606265643,298.28060863281,313.11013128311,341.05478972476,377.11473546037,395.40657391157,420.13030572059,450.02449304881,492.74350578058,523.2511306012,577.23956595248,599.67057787333],description:"Sundanese 'multi-laras' gamelan Ki Barong tuning, Weintraub, TL 15-2-99 1/1=497"},lebanon:{frequencies:[261.6255653006,285.30470202322,311.12698372208,349.22823143301,391.99543598175,415.30469757995,466.16376151809,523.2511306012],description:"Lebanese scale? Dastgah Shur"},leedy:{frequencies:[261.6255653006,269.80136421624,290.69507255622,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,436.04260883433,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:'Douglas Leedy, scale for "Pastorale" (1987), 1/1=f, 10/9 only in vocal parts'},leeuw1:{frequencies:[261.6255653006,311.12698372208,349.22823143301,380.8360868427,415.30469757995,466.16376151809,508.3551866238,554.36526195375,604.53960488156,659.25511382574,739.98884542327,806.96355802011,880,987.76660251225],description:'Ton de Leeuw: non-oct. mode from "Car nos vignes sont en fleurs",part 5. 1/1=A'},leftpistol:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Left Pistol"},legros1:{frequencies:[261.6255653006,274.22463192287,292.50627485027,309.49749487796,327.03195662575,348.83408706747,365.63284274659,391.22147055517,411.33694767869,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Example of temperament with 3 just major thirds"},legros2:{frequencies:[261.6255653006,275.07759559501,292.50627485027,309.49749487796,327.03195662575,348.83408706747,366.77012764335,391.22147055517,412.61639318626,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Example of temperament with 2 just major thirds"},"lehman-bach":{frequencies:[261.6255653006,276.86979852503,293.00227310437,310.77584116741,328.14198392915,349.6228209638,369.15973155124,391.5530240856,414.83597850347,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Brad Lehman's Bach keyboard temperament"},lemba10:{frequencies:[261.6255653006,283.65327551057,298.9489942119,324.1191713102,341.59697290141,370.35792032269,401.5404117335,423.19307614937,458.82405293702,483.56568031466,524.27976214079],description:"10-note Lemba scale, Herman Miller"},lemba12:{frequencies:[261.6255653006,276.1173031791,283.29759227608,298.9897683987,323.75689816556,341.69016129748,369.99442271164,390.48883496177,400.64329718448,422.83538548023,457.86139629758,483.22286023634,523.2511306012],description:"Lemba[12] in 270-et (poptimal)"},lemba22:{frequencies:[261.6255653006,268.42900262332,276.1173031791,283.29759227608,298.9897683987,306.76484424299,315.55115201964,323.75689816556,341.69016129748,350.57563899649,360.61677037127,369.99442271164,379.61593604418,390.48883496177,400.64329718448,422.83538548023,433.83100318771,446.25671880862,457.86139629758,483.22286023634,495.78882330645,509.98912747823,523.2511306012],description:"Lemba[22] in 270-et (poptimal)"},lemba24:{frequencies:[261.6255653006,275.73346179752,283.65327551057,290.60211247891,298.9489942119,307.53562105228,315.06951922004,324.1191713102,332.05932738876,341.59697290141,351.40856549044,360.01724743313,370.35792032269,390.32910012969,401.5404117335,411.37720579947,423.19307614937,435.34833037897,446.01333880095,458.82405293702,470.06416125332,483.56568031466,497.45499966368,509.64147516102,524.27976214079],description:"24-note Lemba scale for mapping millerlemba24.kbm"},lemba8:{frequencies:[261.6255653006,275.73334871592,283.6533803711,298.94898212432,307.53584843097,324.11927802481,341.59694330429,351.4088110982,370.358025147],description:"Lemba temperament (4 down, 3 up) TOP tuning, Herman Miller, TL 22-11-2004"},leusden:{frequencies:[261.6255653006,275.54404190554,292.50627485027,310.51268695591,327.03195662575,349.91912034749,367.08095907728,391.22147055517,413.66634097248,437.39890198442,466.16376151809,489.02683710225,523.2511306012],description:"Organ in Gereformeerde kerk De Koningshof, Henk van Eeken, 1984, a'=415, modif. 1/4 mean"},leven:{frequencies:[261.6255653006,279.06726965397,298.97057995496,313.95067836072,330.39003879965,348.83408706747,369.35382642901,392.4383479509,418.60090448096,448.46752658184,465.11211608996,502.32108537715,523.2511306012],description:"Leven's monochord ?"},ligon:{frequencies:[261.6255653006,279.66870773512,292.40504357126,309.19384990071,329.87571277032,342.12573923925,366.27579142084,392.4383479509,411.12588832951,436.04260883433,462.87600014722,485.87604984397,523.2511306012],description:"Jacky Ligon, strictly proper all prime scale, TL 08-09-2000"},ligon2:{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,382.37582620857,411.78935130154,441.2028763945,470.61640148747,500.02992658044,529.4434516734,558.85697676637],description:"Jacky Ligon, 19-limit symmetrical non-octave scale, 2001"},ligon3:{frequencies:[261.6255653006,273.51763645063,286.54228580542,300.86940009569,316.70463167967,334.29933343966,341.25073734861,376.08675011961,401.15920012759,427.90314680276,471.58492637221,481.3910401531,508.13498682828,534.87893350345,561.62288017862,588.36682685379,615.11077352897],description:"Jacky Ligon, 23-limit non-octave scale (2001)"},ligon4:{frequencies:[261.6255653006,278.49926570678,289.46759601673,308.13698517552,320.27237341115,340.92853547661,362.91692931321,386.32347802158,401.53832428939,427.43578342293,444.26952759254,472.92296174596,491.54841572131,523.2511306012,556.99853141357,592.92249142473,616.27397035104,640.54474682231,681.85707095323,725.83385862642,754.41987838254,803.07664857879],description:"Jacky Ligon, 2/1 Phi Scale, TL 12-04-2001"},ligon5:{frequencies:[261.6255653006,273.22765669781,280.653851324,293.09977429907,314.41721066027,328.36040925687,337.28508524374,352.24238645938,377.86132347501,394.61802538749,405.34378524393,423.31898451752,454.1076550834,474.24531572837,487.13535379632,508.73764640933,545.73895363303],description:'Jacky Ligon, scale for "Two Golden Flutes" (2001)'},ligon6:{frequencies:[261.6255653006,280.653851324,293.09977429907,314.41721066027,328.36040925687,352.24238645938,377.86132347501,394.61802538749,423.31898451752,442.09155952525,474.24531572837,508.73764640933,531.29821178855,569.94005600595],description:'Jacky Ligon, "Primal Golden Tuning" (2001)'},ligon7:{frequencies:[261.6255653006,294.32876096318,321.08592105074,361.22166118208,394.05999401681,443.31749326891,483.61908356609,527.58445479937],description:"Jacky Ligon, 7 tone, 27/22=generator, MMM 22-01-2002"},lindley_ea:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,349.6228209638,367.9112241576,391.5530240856,413.43299207996,438.51190905657,465.63764214343,491.10256480205,523.2511306012],description:"Mark Lindley +J. de Boer +W. Drake (1991), for organ Grosvenor Chapel, London"},lindley_sf:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.07474405997,328.14198392915,349.6228209638,368.32692341742,391.5530240856,413.90012676351,438.51190905657,465.63764214343,491.10256480205,523.2511306012],description:"Lindley (1988) suggestion nr. 2 for Stanford Fisk organ"},"ling-lun":{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,331.11985608357,353.59332287831,372.50983809402,392.4383479509,419.07356785577,441.49314144476,471.45776383774,496.67978412536,523.2511306012],description:"Scale of Ling Lun from C"},liu_major:{frequencies:[261.6255653006,290.69507255622,322.99452506247,348.83408706747,392.4383479509,436.04260883433,484.4917875937,523.2511306012],description:`Linus Liu's Major Scale, see his 1978 book, "Intonation Theory"`},liu_mel:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,423.83341578697,436.04260883433,470.92601754108,484.4917875937,523.2511306012],description:"Linus Liu's Melodic Minor, use 5 and 7 descending and 6 and 8 ascending"},liu_minor:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,387.59343007496,418.60090448096,484.4917875937,523.2511306012],description:"Linus Liu's Harmonic Minor"},liu_pent:{frequencies:[261.6255653006,294.32876096318,331.11985608357,353.19451315581,392.4383479509,441.49314144476,496.67978412536,529.79176973372],description:`Linus Liu's "pentatonic scale"`},lorina:{frequencies:[261.6255653006,271.31540105247,293.02063313667,305.22982618403,313.95067836072,348.83408706747,348.83408706747,385.55346465352,406.97310157871,457.84473927605,457.84473927605,465.11211608996,523.2511306012],description:"Lorina"},lt46a:{frequencies:[261.6255653006,265.62583852249,273.73233506765,277.91772325275,286.39934942254,290.77841553921,299.65253047503,308.79746990018,313.51900484808,323.08712797864,328.02715279963,338.03804253716,348.35444940179,353.68081538041,364.47461587782,370.04745828823,381.3407438317,387.1714705201,398.98735486934,411.16384203565,417.45056598488,430.19052226982,436.76816801564,450.09766813034,463.83396431287,470.92601754108,485.29796386361,492.71820372913,507.75521382755,523.2511306012],description:"13-limit temperament, minimax g=495.66296 cents"},lucy_19:{frequencies:[261.6255653006,272.17716319349,280.81422591737,292.13972001074,301.4102593031,313.56641022552,326.2128298123,336.56461921066,350.13857756143,364.25998604447,375.81913491042,390.97626371576,406.74469336313,419.65201956185,436.57696862128,450.43096951372,468.59726172356,487.49621708267,502.96605061019,523.2511306012],description:"Lucy's 19-tone scale"},lucy_24:{frequencies:[261.6255653006,269.92785558198,272.17712546173,280.81425349217,292.13970819848,301.41031849758,303.92192719902,313.56642833783,326.21280343239,336.56467170065,339.36921655583,350.13858362887,364.25994396351,375.81917832675,390.97625694066,403.38329512334,406.744629928,419.65205349792,436.57694340361,450.43105016925,454.18442712942,468.59728067062,487.49616921257,502.96612033609,523.2511306012],description:"Lucy/Harrison, meantone tuning from Bbb to Cx, third=1200.0/pi, 1/1=A"},lucy_31:{frequencies:[261.6255653006,269.92785558198,272.17712546173,280.81425349217,283.15423815518,292.13970819848,301.41031849758,303.92192719902,313.56642833783,323.51698308414,326.21280343239,336.56467170065,339.36921655583,350.13858362887,361.24970022276,364.25994396351,375.81917832675,378.95082751155,390.97625694066,403.38329512334,406.744629928,419.65205349792,432.96907456701,436.57694340361,450.43105016925,454.18442712942,468.59728067062,483.46750424654,487.49616921257,502.96612033609,507.15726445705,523.2511306012],description:"Lucy/Harrison's meantone tuning, 1/1=A"},lucy_7:{frequencies:[261.6255653006,292.13972001074,326.2128298123,350.13857756143,390.97626371576,436.57696862128,487.49621708267,523.2511306012],description:"Diatonic Lucy's scale"},lumma5:{frequencies:[261.6255653006,279.06726965397,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Carl Lumma's 5-limit version of lumma7, also Fokker 12-tone just."},lumma7:{frequencies:[261.6255653006,279.06726965397,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,390.69417751556,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Carl Lumma's 7-limit 12-tone scale, a.k.a GW Smith's Prism. TL 21-11-98"},lumma7t:{frequencies:[261.6255653006,279.68948643792,293.67396186758,305.56991806333,326.66797434652,349.22276480589,366.68390442934,392.00157215927,419.06732091375,436.04260883433,457.84473927605,489.45662770953,523.2511306012],description:"Tempered lumma7, 6 tetrads + 4 triads within 2c of Just, TL 19-2-99"},lumma7t72:{frequencies:[261.6255653006,279.86396690685,293.66476791741,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,435.78442404634,457.27406033445,489.15147723638,523.2511306012],description:"72-tET version of lumma7t"},lumma7t_keen:{frequencies:[261.6255653006,279.95098841649,293.39965821869,305.14186035122,326.51537799354,349.38597341375,366.17023517096,391.81845653432,419.26317124465,436.04260556019,456.98979229899,488.99939844699,523.2511306012],description:"Dave Keenan's adaptation of lumma7t to include 6:8:11, TL 17-04-9"},lumma_10:{frequencies:[261.6255653006,281.2143451833,302.26980244078,324.90175210669,349.22823143301,375.37611551499,391.99543598175,421.34544350737,452.89298412314,486.80259447109,523.2511306012],description:"Carl Lumma's 10-tone 125 cent Pyth. scale, TL 29-12-1999"},lumma_12_fun:{frequencies:[261.6255653006,276.16031892841,293.246794009,310.68035879446,327.94037872749,348.23056788569,368.93292606842,390.99572534534,413.52379936426,439.8701910135,464.30742384759,491.05951174505,522.34585182853],description:"Rational well temperament based on 577/289, 3/2, and 19/16."},"lumma_12_moh-ha-ha":{frequencies:[261.6255653006,276.16031892841,293.42033886144,310.68035879446,330.09788121912,349.51540364377,368.93292606842,391.72740891476,414.24047839262,440.13050829216,466.02053819169,493.4335110265,523.2511306012],description:"Rational well temperament."},lumma_12_strangeion:{frequencies:[261.6255653006,277.97716313189,292.40504357126,310.68035879446,330.09788121912,349.23197505989,368.93292606842,391.9912339477,414.71297038361,440.63253103259,468.17206422213,492.47165233054,523.2511306012],description:'19-limit "dodekaphonic" scale.'},lumma_22:{frequencies:[261.6255653006,263.29318697558,262.98919438538,262.83732973433,262.68555277841,262.53386346698,263.29318697558,262.38226174944,262.98919438538,262.23074757519,263.29318697558,262.68555277841,262.07932089369,263.29318697558,262.83732973433,263.59753095473,262.38226174944,263.44531501617,262.68555277841,262.98919438538,263.29318697558,263.902226729,261.92798165442],description:"Carl Lumma, intervals of attraction by trial and error, 1999."},lumma_5151:{frequencies:[261.6255653006,276.7826524273,292.81785438923,309.78204413166,327.729041887,346.71578592374,369.67398581173,391.09077971329,413.74834001613,437.71854962063,463.0774559108,489.90551202062,522.3451906503],description:"Carl Lumma's 5151 temperament III (1197/709.5/696). June 2003"},lumma_al1:{frequencies:[261.6255653006,274.63272075836,292.81785438923,309.78204413166,327.729041887,346.71578592374,366.8025131876,391.09077971329,413.74834001613,437.71854962063,463.0774559108,489.90551202062,522.3451906503],description:"Alaska I (1197/709.5/696), Carl Lumma, 6 June 2003."},lumma_al2:{frequencies:[261.6255653006,275.18850165466,292.98704147282,310.05056613125,328.10786809908,347.216824829,367.43868454848,391.20374747207,413.98739946535,438.09796819065,463.6127330944,490.61347436729,522.3451906503],description:"Alaska II (1197/707/696.5), Carl Lumma, 6 June 2003."},lumma_al3:{frequencies:[261.6255653006,275.18850165466,292.98704147282,310.05056613125,328.10786809908,349.32910706765,367.43868454848,391.20374747207,413.98739946535,438.09796819065,463.6127330944,490.61347436729,522.3451906503],description:"Alaska III (1197/707/696.5), Carl Lumma, 6 June 2003."},lumma_al4:{frequencies:[261.6255653006,276.38325105256,293.32570896007,309.87152561537,328.86683469969,349.02656754477,368.7143392539,391.31674786192,413.39000965417,438.73106346722,464.55095742407,491.89038573682,522.04355935974],description:"Alaska IV (1196/701/697), Carl Lumma, 6 June 2003."},lumma_al5:{frequencies:[261.6255653006,276.84261239447,293.89809826895,310.99222741882,329.08061019985,349.35433052883,369.67398581173,391.17550247358,415.27471248744,439.42852501549,464.98720675925,493.63374591774,522.3451906503],description:"Alaska V (1197/702/696.375), Carl Lumma, 6 June 2003."},lumma_al6:{frequencies:[261.6255653006,276.86260193655,293.83444433876,310.94732162256,329.05685050583,349.22823143301,369.56723519412,391.09077971329,415.06487744922,439.23819834286,464.81937009253,493.31307433255,522.04355935974],description:"Alaska VI (1196/701/696), Carl Lumma, 6 June 2003."},lumma_al7:{frequencies:[261.6255653006,276.11677207256,293.26810788146,310.16878953668,328.73958549954,348.42227432308,368.499294457,391.39134599911,413.94674961638,438.72852926454,464.99660740427,491.79379203259,522.3451906503],description:"Alaska VII, Carl Lumma, 27 Jan 2004"},lumma_dec1:{frequencies:[261.6255653006,286.10322937235,299.18791603519,327.17991022208,342.14320575162,374.15409293384,391.26571058456,427.87249484695,457.55816161244,489.30340830564,523.2511306012],description:"Carl Lumma, two 5-tone 7/4-chains, 5/4 apart in 31-tET, TL 9-2-2000"},lumma_dec2:{frequencies:[261.6255653006,286.10322937235,292.57243455474,327.17991022208,342.14320575162,382.6142546815,391.26571058456,437.54730686196,457.55816161244,511.68128147674,523.2511306012],description:"Carl Lumma, two 5-tone 3/2-chains, 7/4 apart in 31-tET, TL 9-2-2000"},lumma_magic:{frequencies:[261.6255653006,293.02063313667,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,418.60090448096,436.04260883433,457.84473927605,467.18850946536,523.2511306012],description:"Magic chord test, Carl Lumma, TL 24-06-99"},"lumma_synchtrines+2":{frequencies:[261.6255653006,277.1478691313,293.59111644706,311.009943641,329.46223568632,349.00930447981,369.71610741159,391.65144749868,414.88821865981,439.50363030131,465.57948255979,493.20241832805,522.46423212702],description:"The 12-tone equal temperament with 2:3:4 brats of +2"},"lumma_synchtrines-2":{frequencies:[261.6255653006,277.19623399848,293.69359242342,311.17279259662,329.69226891672,349.31393351076,370.10338321153,392.13011885309,415.46777761785,440.19437666896,466.39258399594,494.14997995304,523.55935978973],description:"The 12-tone equal temperament with 2:3:4 brats of -2"},lydian_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,317.12189733406,327.03195662575,373.75080757229,402.50086969323,418.60090448096,427.14378008261,436.04260883433,475.68284600109,523.2511306012,550.79066379074,581.39014511244,615.58956541318,634.24379466812,654.0639132515,747.50161514457,805.00173938646,837.20180896192,854.28756016522,872.08521766867,951.36569200218,1046.5022612024],description:"Lydian Chromatic Tonos"},lydian_chrom2:{frequencies:[261.6255653006,272.09058791262,283.42769574232,340.11323489078,377.90359432309,400.13321751856,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the chromatic genus"},lydian_chrominv:{frequencies:[261.6255653006,271.68808704293,281.75060878526,362.25078272391,402.50086969323,422.62591317789,442.75095666255,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Lydian inverted"},lydian_diat:{frequencies:[261.6255653006,275.39533189537,290.69507255622,327.03195662575,348.83408706747,373.75080757229,387.59343007496,402.50086969323,436.04260883433,455.00098313148,475.68284600109,498.33441009638,523.2511306012,550.79066379074,581.39014511244,654.0639132515,697.66817413493,747.50161514457,852.70554616492,805.00173938646,872.08521766867,910.00196626296,951.36569200218,996.66882019276,1046.5022612024],description:"Lydian Diatonic Tonos"},lydian_diat2:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,358.01393146398,377.90359432309,425.14154361347,485.87604984397,523.2511306012],description:"Schlesinger's Lydian Harmonia, a subharmonic series through 13 from 26"},lydian_diat2inv:{frequencies:[261.6255653006,281.75060878526,322.00069575458,362.25078272391,382.37582620857,402.50086969323,442.75095666255,483.00104363188,523.2511306012],description:"Inverted Schlesinger's Lydian Harmonia, a harmonic series from 13 from 26"},lydian_diatcon:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,358.01393146398,425.14154361347,485.87604984397,523.2511306012],description:"A Lydian Diatonic with its own trite synemmenon replacing paramese"},lydian_enh:{frequencies:[261.6255653006,275.39533189537,290.69507255622,299.00064605783,303.33398875432,307.79478270659,373.75080757229,402.50086969323,410.39304360878,414.45634107026,418.60090448096,475.68284600109,523.2511306012,550.79066379074,581.39014511244,598.00129211566,606.66797750864,615.58956541318,747.50161514457,805.00173938646,820.78608721757,828.91268214051,837.20180896192,951.36569200218,1046.5022612024],description:"Lydian Enharmonic Tonos"},lydian_enh2:{frequencies:[261.6255653006,266.75547834571,272.09058791262,340.11323489078,377.90359432309,388.70083987518,400.13321751856,523.2511306012],description:"Schlesinger's Lydian Harmonia in the enharmonic genus"},lydian_enhinv:{frequencies:[261.6255653006,266.65682617177,271.68808704293,362.25078272391,402.50086969323,412.56339143556,422.62591317789,523.2511306012],description:"A harmonic form of Schlesinger's Enharmonic Lydian inverted"},lydian_pent:{frequencies:[261.6255653006,269.93113880221,283.42769574232,340.11323489078,377.90359432309,395.48050568695,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the pentachromatic genus"},lydian_pis:{frequencies:[261.6255653006,290.69507255622,327.03195662575,373.75080757229,402.50086969323,436.04260883433,475.68284600109,523.2511306012,550.79066379074,581.39014511244,654.0639132515,747.50161514457,805.00173938646,872.08521766867,951.36569200218,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Lydian Tonos"},lydian_tri:{frequencies:[261.6255653006,268.51044859798,275.76748774928,340.11323489078,377.90359432309,392.4383479509,408.13588186894,523.2511306012],description:"Schlesinger's Lydian Harmonia in the first trichromatic genus"},lydian_tri2:{frequencies:[261.6255653006,268.51044859798,283.42769574232,340.11323489078,377.90359432309,392.4383479509,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the second trichromatic genus"},nachbaur_6:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,523.2511306012],description:`Fred Nachbaur's harmonic hexatonic, as used in "Void of Sensation"`},nassarre:{frequencies:[261.6255653006,277.66336828161,294.34406205295,311.66659310186,331.15428443044,350.6431449633,372.56793743951,394.49404533893,419.16071913933,443.82887286778,471.58032351597,495.88429116026,523.2511306012],description:"Nassarre's Equal Semitones"},negri5_19:{frequencies:[261.6255653006,271.22480440713,281.41555648081,291.74090527404,302.70251050738,313.80889368201,325.59966315504,337.54616011163,350.22880998446,363.07896889448,376.72096510961,390.54314115106,405.21705098851,420.08476989056,435.86864979507,451.86099895106,468.83881245397,486.04086171852,504.30291533224,523.2511306012],description:"Negri temperament, g=126.238272, 5-limit"},negri_19:{frequencies:[261.6255653006,269.02825605326,281.18681366715,289.14299126725,302.21061955257,310.76166549402,324.80633749066,333.99672707734,349.09149261831,358.96903024071,375.19240283292,392.14898023137,403.24482870584,421.46921730446,433.39468387282,452.98167562873,465.79878414581,486.85025820508,500.62567766841,523.2511306012],description:"Negri temperament, 13-limit, g=124.831"},negri_29:{frequencies:[261.6255653006,269.02825605326,276.64040740805,281.18681366715,289.14299126725,297.32428710198,302.21061955257,310.76166549402,319.55466133443,324.80633749066,333.99672707734,343.44715857517,349.09149261831,358.96903024071,369.1260526158,375.19240283292,385.80846524917,392.14898023137,403.24482870584,414.65463641221,421.46921730446,433.39468387282,445.65757880387,452.98167562873,465.79878414581,478.97855252217,486.85025820508,500.62567766841,514.79087238232,523.2511306012],description:"Negri temperament, 13-limit, g=124.831"},"neid-mar-morg":{frequencies:[261.6255653006,277.49581689502,293.99657683935,311.12698372208,329.99999983505,349.6228209638,369.99442271164,392.4383479509,415.77394625748,440,466.69047534984,494.44133512215,523.2511306012],description:"Neidhardt-Marpurg-de Morgan temperament (1858)"},neidhardt1:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.42509491746,328.14198392915,348.83408706747,368.32692341742,391.5530240856,414.36778843034,438.51190905657,465.11211608996,491.65745674141,523.2511306012],description:"Neidhardt I temperament (1724)"},neidhardt2:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,349.22823143301,369.15973155124,391.5530240856,414.36778843034,438.51190905657,466.16376151809,492.7691222293,523.2511306012],description:"Neidhardt II temperament (1724)"},neidhardt3:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,348.83408706747,369.15973155124,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Neidhardt III temperament (1724) 'Grosse Stadt'"},neidhardt4:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,329.62755691287,349.22823143301,369.99442271164,391.99543598175,415.30469757995,440,466.16376151809,493.88330125613,523.2511306012],description:"Neidhardt IV temperament (1724), equal temperament"},neidhardtn:{frequencies:[261.6255653006,276.86979852503,293.66476791741,310.77584116741,329.62755691287,348.83408706747,369.99442271164,391.5530240856,415.30469757995,439.50340943686,466.16376151809,493.32589719545,523.2511306012],description:"Johann Georg Neidhardt's temperament (1732), alt. 1/6 & 0 P, also Marpurg nr.10"},neogeb24:{frequencies:[261.6255653006,270.11478301563,282.39420473706,291.55732426372,295.23185084282,304.81152420286,308.65309481038,318.66826025208,333.15492371116,343.96512368902,348.30015108876,359.6017829051,375.94928703407,388.14807710176,393.03994675222,405.79329398283,424.24066266408,438.00640969567,443.52664897728,457.91818970179,463.68937649142,478.73515685363,500.49846361623,516.73862125829,523.2511306012],description:"Neo-Gothic e-based lineotuning (T/S or Blackwood's R=e, ~2.71828), 24 notes"},neogji12:{frequencies:[261.6255653006,282.52678126125,294.32876096318,317.84262891891,332.97799220076,348.83408706747,374.60024122586,392.4383479509,423.79017189188,441.49314144476,443.97065626768,499.46698830115,523.2511306012],description:"M. Schulter, neo-Gothic 12-note JI (prim. 2/3/7/11) 1/1=F with Eb key as D+1"},neogp16a:{frequencies:[261.6255653006,274.38778799819,281.28352228595,295.02457363685,309.19384990071,317.19205704586,332.33517754401,348.83408706747,366.27579142084,374.86334014511,392.4383479509,411.12588832951,422.62591317789,442.75095666255,464.34856430463,498.91386871277,523.2511306012],description:"M. Schulter, scale from mainly prime-to-prime ratios and octave complements (Gb-D#)"},neutr_diat:{frequencies:[261.6255653006,294.32876096318,320.24370022528,348.83408706747,392.4383479509,427.47405410759,479.82340237272,523.2511306012],description:"Neutral Diatonic, 9 + 9 + 12 parts, geometric mean of major and minor"},neutr_pent1:{frequencies:[261.6255653006,302.32287545847,348.83408706747,392.4383479509,453.48431318771,523.2511306012],description:"Quasi-Neutral Pentatonic 1, 15/13 x 52/45 in each trichord, after Dudon"},neutr_pent2:{frequencies:[261.6255653006,301.87565226992,348.83408706747,392.4383479509,452.81347840488,523.2511306012],description:"Quasi-Neutral Pentatonic 2, 15/13 x 52/45 in each trichord, after Dudon"},new_enh:{frequencies:[261.6255653006,264.89588486686,279.06726965397,348.83408706747,392.4383479509,397.34382730029,418.60090448096,523.2511306012],description:"New Enharmonic"},new_enh2:{frequencies:[261.6255653006,327.03195662575,331.11985608357,348.83408706747,392.4383479509,490.54793493862,496.67978412536,523.2511306012],description:"New Enharmonic permuted"},newcastle:{frequencies:[261.6255653006,273.65745935891,291.9012907804,312.65334602246,327.03195662575,350.28154752005,366.3906401674,390.81668391305,410.48618883318,436.04260883433,467.04206359353,490.54793493862,523.2511306012],description:"Newcastle modified 1/3-comma meantone"},norden:{frequencies:[261.6255653006,274.87601291722,292.73769384471,310.07474405997,327.54963108844,349.78078158391,366.5013507395,391.37619916626,412.31401916973,437.91808280662,466.37437567834,489.99465727995,523.2511306012],description:"Reconstructed Schnitger temperament, organ in Norden. Ortgies, 2002"},novaro:{frequencies:[261.6255653006,274.70684356563,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,498.33441009638,523.2511306012],description:"9-limit diamond with 21/20, 16/15, 15/8 and 40/21 added for evenness"},novaro15:{frequencies:[261.6255653006,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.87565226992,305.22982618403,309.19384990071,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,442.75095666255,448.50096908674,453.48431318771,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,523.2511306012],description:"1-15 diamond, see Novaro, 1927, Sistema Natural base del Natural-Aproximado, p"},novaro_eb:{frequencies:[261.6255653006,277.27733921611,293.70273468471,311.34510173929,329.85947563084,349.74559786079,370.61463194963,392.51515715445,416.03831243363,440.72414616847,467.23897542105,495.06435356607,524.26505360912],description:"Novaro (?) equal beating 4/3 with strectched octave, almost pure 3/2"},janke1:{frequencies:[261.6255653006,276.38325105256,293.32570896007,310.58830860439,328.86683469969,349.02656754477,368.7143392539,391.76907592069,414.34624765043,439.23819834286,465.62553897253,492.45896815637,523.2511306012],description:"Rainer Janke, Temperatur I"},janke2:{frequencies:[261.6255653006,276.38325105256,292.98704147282,310.58830860439,328.48713220126,349.02656754477,368.7143392539,391.54284657258,414.34624765043,438.73106346722,465.62553897253,491.89038573682,523.2511306012],description:"Rainer Janke, Temperatur II"},janke3:{frequencies:[261.6255653006,276.22365192501,292.98704147282,310.40895756597,328.29744538229,349.02656754477,368.50142299854,391.54284657258,414.10698098223,438.47771564426,465.62553897253,491.60634075178,523.2511306012],description:"Rainer Janke, Temperatur III"},janke4:{frequencies:[261.6255653006,275.90473010106,292.98704147282,310.76776326996,328.10786809908,349.22823143301,368.07595926604,391.54284657258,413.86785247997,438.47771564426,465.89457252293,491.32245979018,523.2511306012],description:"Rainer Janke, Temperatur IV"},janke5:{frequencies:[261.6255653006,275.58617649731,292.98704147282,310.05056613125,328.10786809908,348.82502010853,367.43868454848,391.54284657258,413.39000965417,438.47771564426,465.08793784701,491.0387427573,523.2511306012],description:"Rainer Janke, Temperatur V"},janke6:{frequencies:[261.6255653006,275.74540729824,292.98704147282,310.58830860439,328.10786809908,349.43001184052,367.65098676472,391.54284657258,413.86785247997,438.47771564426,465.89457252293,491.0387427573,523.2511306012],description:"Rainer Janke, Temperatur VI"},janke7:{frequencies:[261.6255653006,275.42703764514,292.81785438923,311.12698372208,327.91840028839,349.63190883464,367.0144478307,391.54284657258,413.62886206386,438.22451411849,467.24207374344,490.75518955849,523.2511306012],description:"Rainer Janke, Temperatur VII"},jemblung1:{frequencies:[261.6255653006,298.87388797409,337.89601991959,388.44742741354,452.30188977628,523.2511306012],description:"Scale of bamboo gamelan jemblung from Kalijering, slendro-like. 1/1=590 Hz."},jemblung2:{frequencies:[261.6255653006,300.03885820455,355.06324470257,391.40016308218,451.61555914985,523.2511306012],description:"Bamboo gamelan jemblung at Royal Batavia Society. 1/1=504 Hz."},ji_10coh:{frequencies:[261.6255653006,283.42769574232,299.7792935736,327.03195662575,348.83408706747,370.63621750918,392.4383479509,436.04260883433,457.84473927605,485.0974023282,523.2511306012],description:"Differentially coherent 10-tone scale"},ji_10coh2:{frequencies:[261.6255653006,305.22982618403,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,479.64686971777,523.2511306012],description:"Other diff. coherent 10-tone scale"},ji_11:{frequencies:[261.6255653006,276.96780524107,294.32876096318,316.53463456122,336.37572681506,356.10146388137,384.42940207435,406.97310157871,432.48307733364,465.11211608996,494.26637409559,523.2511306012],description:"3 and 7 prime rational interpretation of 11-tET. OdC 2000"},ji_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Basic JI with 7-limit tritone"},ji_12a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"7-limit 12-tone scale"},ji_12b:{frequencies:[261.6255653006,272.52663052146,290.69507255622,305.22982618403,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"alternate 7-limit 12-tone scale"},ji_12c:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'Kurzweil "Just with natural b7th", is Sauveur Just with 7/4'},ji_13:{frequencies:[261.6255653006,279.06726965397,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,418.60090448096,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"5-limit 12-tone symmetrical scale with two tritones"},ji_17:{frequencies:[261.6255653006,271.31540105247,283.8170195002,294.32876096318,310.07474405997,321.55899383997,336.37572681506,348.83408706747,361.75386806997,378.42269266694,392.4383479509,406.97310157871,425.72552925031,441.49314144476,465.11211608996,482.33849075995,504.56359022259,523.2511306012],description:"3 and 7 prime rational interpretation of 17-tET. OdC"},ji_17a:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,310.07474405997,321.08592105074,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,426.35277308246,441.49314144476,465.11211608996,484.4917875937,502.32108537715,523.2511306012],description:"3, 5 and 11 prime rational interpretation of 17-tET, OdC"},ji_17b:{frequencies:[261.6255653006,272.52663052146,285.40970760065,294.32876096318,310.07474405997,319.76457981184,334.88072358477,348.83408706747,359.73515228832,380.54627680087,392.4383479509,408.78994578219,428.11456140098,441.49314144476,465.11211608996,479.64686971777,502.32108537715,523.2511306012],description:"Alt. 3, 5 and 11 prime rational interpretation of 17-tET, OdC"},ji_19:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,353.19451315581,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"5-limit 19-tone scale"},ji_20:{frequencies:[261.6255653006,271.31540105247,279.38237857051,288.32205155576,299.00064605783,310.07474405997,321.55899383997,331.11985608357,348.83408706747,356.10146388137,372.50983809402,384.42940207435,392.4383479509,413.43299207996,425.72552925031,441.49314144476,457.84473927605,474.80195184183,489.99465727995,504.56359022259,523.2511306012],description:"3 and 7 prime rational interpretation of 20-tET. OdC"},ji_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"7-limit 21-tone just scale, Op de Coul, 2001"},ji_22:{frequencies:[261.6255653006,272.52663052146,279.06726965397,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"5-limit 22-tone scale (Zarlino?)"},ji_27:{frequencies:[261.6255653006,267.90457886781,275.62199471997,282.55561052465,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,331.11985608357,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,413.43299207996,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.4917875937,496.67978412536,510.98743222773,523.2511306012],description:"7-limit rational interpretation of 27-tET, OdC"},ji_29:{frequencies:[261.6255653006,267.90457886781,275.62199471997,282.55561052465,287.78812183066,294.32876096318,301.39265122629,310.07474405997,317.12189733406,323.76163705949,331.11985608357,340.65828815182,348.83408706747,356.76213450082,367.91095120397,372.08969287196,383.71749577421,392.4383479509,401.85686830172,413.43299207996,422.82919644541,431.68218274599,441.49314144476,454.2110508691,465.11211608996,475.68284600109,484.4917875937,496.67978412536,510.98743222773,523.2511306012],description:"3,5,11-prime rational interpretation of 29-tET, OdC"},ji_30:{frequencies:[261.6255653006,267.57160087561,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.7792935736,308.34441624714,313.95067836072,321.92208230347,329.64821227876,336.37572681506,344.91651675372,353.19451315581,360.81424763342,370.01329949656,379.40816842909,387.59343007496,396.89567239676,406.97310157871,415.27867508032,425.24536328225,436.04260883433,443.97065626768,456.65553216105,465.11211608996,478.40103369253,488.36772189445,498.33441009638,511.62332769895,523.2511306012],description:"11-limit rational interpretation of 30-tET"},ji_31:{frequencies:[261.6255653006,267.57160087561,274.08392555301,280.31310567921,285.40970760065,293.02063313667,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,334.88072358477,343.38355445704,348.83408706747,356.76213450082,366.27579142084,373.75080757229,383.71749577421,392.4383479509,398.6675280771,408.78994578219,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,467.18850946536,479.64686971777,490.54793493862,499.46698830115,512.78610798918,523.2511306012],description:"A just 11-limit 31-tone scale, optimized for Mann complexity"},ji_31a:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,334.88072358477,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"A just 7-limit 31-tone scale"},ji_31b:{frequencies:[261.6255653006,267.90457886781,275.93321340298,282.55561052465,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,344.91651675372,353.19451315581,359.28803828513,367.91095120397,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,431.14564594215,441.49314144476,452.08897683944,459.88868900496,470.92601754108,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"A just 5-limit 31-tone scale, corner clipped genus"},ji_31c:{frequencies:[261.6255653006,267.57160087561,272.52663052146,279.06726965397,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,334.88072358477,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,398.6675280771,408.78994578219,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,479.64686971777,490.54793493862,502.32108537715,511.62332769895,523.2511306012],description:"A just 11-limit 31-tone scale"},ji_5coh:{frequencies:[261.6255653006,305.22982618403,348.83408706747,381.53728273004,446.94367405519,523.2511306012],description:"Differential fully coherent pentatonic scale"},ji_6coh:{frequencies:[261.6255653006,294.32876096318,330.74639366397,372.08969287196,418.60090448096,465.11211608996,523.2511306012],description:"Differential coherent 6-tone scale, OdC 2003"},ji_7:{frequencies:[261.6255653006,290.69507255622,318.93402246168,348.83408706747,392.4383479509,429.2294430713,470.92601754108,523.2511306012],description:"7-limit rational interpretation of 7-tET. OdC"},ji_7a:{frequencies:[261.6255653006,287.78812183066,319.76457981184,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Superparticular approximation to 7-tET. Op de Coul, 1998"},ji_8coh:{frequencies:[261.6255653006,286.99041781007,312.35527031954,339.96223546814,370.00947616612,405.83764015148,441.71144237774,480.75585116768,523.2511306012],description:"Differential coherent 8-tone scale, OdC, 2003"},ji_8coh3:{frequencies:[261.6255653006,277.97716313189,302.50455987882,327.03195662575,359.73515228832,392.4383479509,425.14154361347,466.02053819169,523.2511306012],description:"Differential fully coherent 8-tone scale, OdC, 2003"},ji_9coh:{frequencies:[261.6255653006,287.78812183066,313.95067836072,327.03195662575,366.27579142084,392.4383479509,418.60090448096,470.92601754108,497.08857407114,523.2511306012],description:"Differentially coherent 9-tone scale"},ji_ri24a:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,301.87565226992,310.68035879446,319.76457981184,329.87571277032,340.11323489078,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,402.50086969323,414.99227599406,428.11456140098,440.63253103259,453.48431318771,465.11211608996,479.64686971777,494.18162334558,508.71637697339,523.2511306012],description:"M. Schulter, just/rational intonation system - with circulating 24-note set"},jioct12:{frequencies:[261.6255653006,272.52663052146,282.55561052465,302.80736724606,313.95067836072,327.03195662575,363.36884069528,376.74081403286,392.4383479509,436.04260883433,454.2110508691,470.92601754108,523.2511306012],description:"12-tone JI version of Messiaen's octatonic scale, Erlich & Par\xEF\xBF\xBDzek"},"jobin-bach":{frequencies:[261.6255653006,275.07759559501,292.50627485027,309.76836826904,327.03195662575,348.83408706747,366.77012764335,391.22147055517,412.61639318626,437.39890198442,464.6525521713,489.02683710225,523.2511306012],description:"Emile Jobin, WTC temperament after Bach's signet"},"johnson-secor_rwt":{frequencies:[261.6255653006,276.16031892841,293.03678286293,310.07474405997,327.94037872749,348.83408706747,368.21375857121,391.52992584916,414.24047839262,438.40450629885,465.11211608996,490.95167809495,523.2511306012],description:"Johnson/Secor proportional-beating well-temperament with five 24/19s."},johnson_44:{frequencies:[261.6255653006,265.7783520514,269.99705605222,274.2827236086,278.63641763414,283.05921791404,287.55222124002,292.11654190835,296.75331210627,301.46368356757,306.24882108355,311.17820103386,316.11753722951,321.13527558179,326.23266245367,331.4109583385,336.67144939063,342.01544029518,347.44425644654,352.9592442771,358.56177366235,364.2532300084,370.03502692537,375.90859839047,381.87540114246,387.93691728375,394.09464571975,400.35011587045,406.70487919155,413.16051176499,419.71861468993,426.38081694263,433.14876596753,440.02414274758,447.00865248514,454.10402744924,461.31203006992,468.63444275836,476.07308421189,483.62979961065,491.30646309654,499.10497838378,507.02727962797,515.07533168556,523.2511306012],description:"Aaron Johnson, 44-tET approximation"},johnson_7:{frequencies:[261.6255653006,288.83389952765,318.87182567809,352.10227751942,388.71994014354,429.2294430713,473.86811641255,523.2511306012],description:"Aaron Johnson, 7-tET approximation"},johnson_eb:{frequencies:[261.6255653006,273.1678696521,292.40504357126,312.71949922989,327.03195662575,349.65487315468,365.50630446407,390.89937403737,408.78994578219,437.06859144336,467.84806971401,488.62421754671,523.2511306012],description:'Aaron Johnson, "1/4-comma tempered" equal beating C-G-D-A-E plus just thirds'},johnson_ratwell:{frequencies:[261.6255653006,276.16031892841,292.90688289089,310.07474405997,327.94037872749,348.83408706747,368.21375857121,391.49724879514,414.24047839262,438.30776524386,465.11211608996,490.95167809495,523.2511306012],description:"Aaron Johnson, rational well-temperament with five 24/19's"},johnson_temp:{frequencies:[261.6255653006,275.52965735686,292.50638298357,309.88336774144,327.03195662575,348.76230617841,367.55223824197,391.22154286826,413.09299784305,437.39914452994,464.92072007996,490.30891677011,523.2511306012],description:"Aaron Johnson, temperament with just 5/4, 24/19 and 19/15"},johnston:{frequencies:[261.6255653006,275.93321340298,294.32876096318,315.35224388912,327.03195662575,359.73515228832,367.91095120397,392.4383479509,401.35740131342,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Ben Johnston's combined otonal-utonal scale"},johnston_21:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Johnston 21-note just enharmonic scale"},johnston_22:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,353.19451315581,367.91095120397,378.42269266694,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Johnston 22-note scale from end of string quartet nr. 4"},johnston_25:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,331.11985608357,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Johnston 25-note just enharmonic scale"},"johnston_6-qt":{frequencies:[261.6255653006,262.79353657426,266.47048317654,267.57160087561,271.31540105247,272.52663052146,277.4816601673,280.31310567921,284.23518205497,290.69507255622,294.32876096318,297.30177875068,299.7792935736,300.33547037059,305.22982618403,306.59245933664,310.07474405997,311.45900631024,316.53463456122,317.12189733406,319.76457981184,322.99452506247,327.03195662575,334.46450109452,339.14425131559,342.60490694126,348.83408706747,350.39138209902,355.29397756872,356.76213450082,361.75386806997,363.36884069528,367.91095120397,373.75080757229,381.53728273004,382.24514410802,387.59343007496,390.82337532559,392.4383479509,396.40237166758,399.70572476481,406.97310157871,408.78994578219,413.43299207996,420.46965851882,426.35277308246,436.04260883433,445.95266812602,452.19233508746,459.88868900496,465.11211608996,467.18850946536,475.68284600109,479.64686971777,484.4917875937,486.49381977384,490.54793493862,248.7057842981,498.33441009638,508.71637697339,516.79124009995,523.2511306012],description:"11-limit complete system from Ben Johnston's _6th Quartet_"},"johnston_6-qt_row":{frequencies:[261.6255653006,272.52663052146,290.69507255622,306.59245933664,327.03195662575,350.39138209902,363.36884069528,399.70572476481,408.78994578219,436.04260883433,445.95266812602,490.54793493862,508.71637697339],description:`11-limit 'prime row' from Ben Johnston's "6th Quartet"`},johnston_81:{frequencies:[116.54094037952,117.99770213426,119.33792294863,119.89808681021,120.82964698549,121.39681289533,122.77564089365,122.91427305652,124.31033640482,124.45070146973,125.86421560988,127.43751830501,127.89129259755,128.03570110055,129.48993375502,131.10855792696,132.74741490105,134.25516331721,134.88534766148,135.93335285867,136.57141450725,138.12259600536,138.27855718859,139.84912845542,141.59724256112,142.26189011172,143.87770417225,145.6761754744,147.49712766783,149.17240368579,151.03705873186,151.74601611917,153.46955111706,155.38792050603,157.33026951235,159.11723059817,159.29689788126,161.10619598065,161.86241719378,163.70085452487,163.8856974087,165.74711520643,165.93426862631,167.81895414651,169.91669107334,170.71426813406,172.6532450067,174.81141056928,176.9965532014,179.00688442294,179.84713021531,181.24447047823,182.095219343,184.16346134048,184.37140958479,186.46550460723,188.79632341482,189.68252014896,191.15627745751,191.83693889633,194.23490063253,196.66283689044,198.89653824771,199.12112235157,199.83014468368,201.38274497581,202.32802149222,204.62606815608,204.85712176088,207.18389400804,207.41783578289,209.77369268314,212.39586384168,213.39283516758,215.81655625837,218.5142632116,221.24569150175,223.75860552868,226.55558809779,227.61902417875,230.2043266756,233.08188075904],description:"Johnston 81-note 5-limit scale of Sonata for Microtonal Piano"},jorgensen:{frequencies:[261.6255653006,269.51415085551,288.85811466493,309.59046173614,318.92511007349,352.12195684808,355.62605411908,388.77403176757,408.50706336067,429.24143792307,469.25139168707,473.92081401802,523.2511306012],description:"Jorgensen's 5&7 temperament"},jousse:{frequencies:[261.6255653006,276.90198715646,293.15566421679,311.51473523959,328.62702621286,349.28097970329,369.20264759391,391.76800554826,415.35298052707,439.0631553946,466.60176257857,492.27019703794,523.2511306012],description:"Temperament of Jean Jousse (1832)"},jousse2:{frequencies:[261.6255653006,277.21176919085,293.63180098233,311.16627887077,329.63881547742,349.36510452864,370.14670828388,392.04008509316,415.41939014292,440.0494382652,466.3511549761,494.0599599767,523.2511306012],description:"Jean Jousse's quasi-equal temperament"},quasi_5:{frequencies:[261.6255653006,302.26980244078,349.22823143301,391.99543598175,452.89298412314,523.2511306012],description:"Quasi-Equal 5-Tone in 24-tET, 5 5 4 5 5 steps"},quasi_9:{frequencies:[261.6255653006,281.2143451833,302.26980244078,324.90175210669,349.22823143301,391.99543598175,421.34544350737,452.89298412314,486.80259447109,523.2511306012],description:'Quasi-Equal Enneatonic, Each "tetrachord" has 125 + 125 + 125 + 125 cents'},quint_chrom:{frequencies:[261.6255653006,277.01530443593,294.32876096318,348.83408706747,392.4383479509,415.52295665389,441.49314144476,523.2511306012],description:"Aristides Quintilianus' Chromatic genus"},oconnell:{frequencies:[261.6255653006,267.57429119961,272.27874977392,278.46970304972,283.3657217904,288.34782337261,294.90414810658,300.08911516052,305.36524364276,312.30850472426,317.79947295261,323.38698268281,330.74001416845,336.55504284097,344.20748191927,350.25929591231,356.41751010259,364.52157313929,370.93054700815,377.45220049416,386.03454097812,392.82175095637,399.72829510222,408.81713953112,416.00491024634,423.31905787312],description:"Walter O'Connell, Pythagorean scale of 25 octaves reduced by Phi. XH 15 (1993)"},oconnell_11:{frequencies:[261.6255653006,272.27874977392,288.34782337261,300.08911516052,312.30850472426,323.38698268281,344.20748191927,356.41751010259,370.93054700815,386.03454097812,408.81713953112,423.31905787312],description:"Walter O'Connell, 11-note mode of 25-tone scale"},oconnell_14:{frequencies:[261.6255653006,272.27874977392,283.3657217904,288.34782337261,300.08911516052,312.30850472426,323.38698268281,336.55504284097,344.20748191927,356.41751010259,370.93054700815,386.03454097812,399.72829510222,408.81713953112,423.31905787312],description:"Walter O'Connell, 14-note mode of 25-tone scale"},oconnell_7:{frequencies:[261.6255653006,283.3657217904,300.08911516052,323.38698268281,344.20748191927,370.93054700815,392.82175095637,423.31905787312],description:"Walter O'Connell, 7-note mode of 25-tone scale"},oconnell_9:{frequencies:[261.6255653006,278.46970304972,294.90414810658,305.36524364276,323.38698268281,344.20748191927,364.52157313929,377.45220049416,399.72829510222,423.31905787312],description:"Walter O'Connell, 9-tone mode of 25-tone scale"},oconnell_9a:{frequencies:[261.6255653006,272.27874977392,288.34782337261,305.36524364276,323.38698268281,344.20748191927,356.41751010259,377.45220049416,399.72829510222,423.31905787312],description:"Walter O'Connell, 7+2 major mode analogy for 25-tone scale"},octony_min:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Octony on Harmonic Minor, from Palmer on an album of Turkish music"},octony_rot:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Rotated Octony on Harmonic Minor"},octony_trans:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,348.83408706747,408.78994578219,420.46965851882,436.04260883433,523.2511306012],description:"Complex 10 of p. 115, an Octony based on Archytas's Enharmonic,"},octony_trans2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,315.35224388912,324.36230800023,336.37572681506,348.83408706747,504.56359022259,523.2511306012],description:"Complex 6 of p. 115 based on Archytas's Enharmonic, an Octony"},octony_trans3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,306.59245933664,315.35224388912,327.03195662575,348.83408706747,490.54793493862,523.2511306012],description:"Complex 5 of p. 115 based on Archytas's Enharmonic, an Octony"},octony_trans4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,420.46965851882,432.48307733364,448.50096908674,523.2511306012],description:"Complex 11 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_trans5:{frequencies:[261.6255653006,271.31540105247,279.06726965397,317.94773560837,327.03195662575,339.14425131559,348.83408706747,508.71637697339,523.2511306012],description:"Complex 15 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_trans6:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,336.37572681506,345.98646186692,348.83408706747,358.80077526939,523.2511306012],description:"Complex 14 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_u:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,356.76213450082,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"7)8 octony from 1.3.5.7.9.11.13.15, 1.3.5.7.9.11.13 tonic (subharmonics 8-16)"},odd1:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"ODD-1"},odd2:{frequencies:[261.6255653006,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"ODD-2"},oettingen:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,298.00787047521,301.39265122629,306.59245933664,310.42486507835,313.95067836072,317.87506184023,323.35923445661,327.03195662575,331.11985608357,334.88072358477,339.06673262958,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.50983809402,376.74081403286,383.2405741708,388.03108134794,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.89982010446,418.60090448096,423.83341578697,431.14564594215,436.04260883433,441.49314144476,446.50763144636,452.08897683944,459.88868900496,465.11211608996,470.92601754108,476.81259276034,485.03885168492,490.54793493862,496.67978412536,502.32108537715,510.98743222773,517.37477513058,523.2511306012],description:"von Oettingen's Orthotonophonium tuning"},oettingen2:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.51653791741,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,431.14564594215,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.27480687611,484.4917875937,490.54793493862,496.11959049595,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"von Oettingen's Orthotonophonium tuning with central 1/1"},ogr10:{frequencies:[261.6255653006,264.15640940857,271.89678302796,296.5055443788,342.56848033562,359.46139971304,411.32572372413,440,484.46499093218,513.27277840175,523.2511306012],description:"Optimal Golomb Ruler of 10 segments, length 72"},ogr10a:{frequencies:[261.6255653006,264.15640940857,285.30470202322,314.13668154225,329.62755691287,352.60650301302,431.60923940535,448.5538823653,457.27406033445,508.3551866238,523.2511306012],description:"2nd Optimal Golomb Ruler of 10 segments, length 72"},ogr11:{frequencies:[261.6255653006,265.92749183559,274.74472021414,318.1829357186,331.4244391468,362.52783176564,371.50609336774,409.69842558521,455.51656649021,482.27514684959,486.22402266421,523.2511306012],description:"Optimal Golomb Ruler of 11 segments, length 85"},ogr12:{frequencies:[261.6255653006,265.06964174786,270.3209511875,308.09015504092,333.2396629384,346.57411320722,384.79959982017,413.49815209867,456.11269186454,468.20039948765,496.58195036371,499.83980314828,523.2511306012],description:"Optimal Golomb Ruler of 12 segments, length 106"},ogr2:{frequencies:[261.6255653006,329.62755691287,523.2511306012],description:"Optimal Golomb Ruler of 2 segments, length 3"},ogr3:{frequencies:[261.6255653006,293.66476791741,415.30469757995,523.2511306012],description:"Optimal Golomb Ruler of 3 segments, length 6"},ogr4:{frequencies:[261.6255653006,278.64197723942,336.62443200122,461.29362042034,523.2511306012],description:"Optimal Golomb Ruler of 4 segments, length 11"},ogr4a:{frequencies:[261.6255653006,296.76515515861,406.67242132093,433.12283887627,523.2511306012],description:"2nd Optimal Golomb Ruler of 4 segments, length 11"},ogr5:{frequencies:[261.6255653006,272.51337835337,307.97166902637,393.32961502355,426.7484383229,523.2511306012],description:"Optimal Golomb Ruler of 5 segments, length 17"},ogr5a:{frequencies:[261.6255653006,272.51337835337,307.97166902637,393.32961502355,482.27514684959,523.2511306012],description:"2nd Optimal Golomb Ruler of 5 segments, length 17"},ogr5b:{frequencies:[261.6255653006,272.51337835337,362.52783176564,426.7484383229,463.0066556268,523.2511306012],description:"3rd Optimal Golomb Ruler of 5 segments, length 17"},ogr5c:{frequencies:[261.6255653006,272.51337835337,362.52783176564,409.69842558521,444.50800708553,523.2511306012],description:"4th Optimal Golomb Ruler of 5 segments, length 17"},ogr6:{frequencies:[261.6255653006,268.98086109226,292.31087910123,345.21700307457,430.94493093825,495.02573326308,523.2511306012],description:"Optimal Golomb Ruler of 6 segments, length 25"},ogr6a:{frequencies:[261.6255653006,276.5429423948,284.31762274025,345.21700307457,407.69874723177,468.32288027948,523.2511306012],description:"2nd Optimal Golomb Ruler of 6 segments, length 25"},ogr6b:{frequencies:[261.6255653006,268.98086109226,354.92237405774,407.69874723177,443.06044202496,495.02573326308,523.2511306012],description:"3rd Optimal Golomb Ruler of 6 segments, length 25"},ogr6c:{frequencies:[261.6255653006,268.98086109226,317.66442301495,354.92237405774,455.51656649021,495.02573326308,523.2511306012],description:"4th Optimal Golomb Ruler of 6 segments, length 25"},ogr6d:{frequencies:[261.6255653006,276.5429423948,317.66442301495,375.1593523779,468.32288027948,481.48922855473,523.2511306012],description:"5th Optimal Golomb Ruler of 6 segments, length 25"},ogr7:{frequencies:[261.6255653006,267.01398215014,283.85429714132,314.3146261019,355.21191871351,409.69842558521,502.34551296122,523.2511306012],description:"Optimal Golomb Ruler of 7 segments, length 34"},ogr8:{frequencies:[261.6255653006,265.77967818767,283.06627815664,316.06708432391,387.90015179087,400.3161696196,454.08364189083,499.09751029017,523.2511306012],description:"Optimal Golomb Ruler of 8 segments, length 44"},ogr9:{frequencies:[261.6255653006,264.94361147373,282.17583275232,296.76515515861,349.59519124833,363.06573983159,401.57942110183,438.61588607285,510.2272282764,523.2511306012],description:"Optimal Golomb Ruler of 9 segments, length 55"},oldani:{frequencies:[261.6255653006,272.52663052146,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"This scale by Norbert L. Oldani appeared in Interval 5(3), p.10-11"},oljare:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,381.53728273004,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:'Mats \xEF\xBF\xBDljare, scale for "Tampere" (2001)'},oljare17:{frequencies:[261.6255653006,272.51337835337,320.78822215662,334.13814720468,393.32961502355,409.69842558521,426.7484383229,502.34551296122,523.2511306012],description:'Mats \xEF\xBF\xBDljare, scale for "Fafner" (2001), MOS in 17-tET'},olympos:{frequencies:[261.6255653006,279.06726965397,348.83408706747,372.08969287196,465.11211608996,523.2511306012],description:"Scale of ancient Greek flutist Olympos, 6th century BC as reported by Partch"},opelt:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Friederich Wilhelm Opelt 19-tone"},organ1373a:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"English organ tuning (1373) with 18:17:16 ficta semitones (Eb-G#)"},organ1373b:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,467.46332623563,496.67978412536,523.2511306012],description:"English organ tuning (1373) with 18:17:16 accidental semitones (Eb-G#)"},ragib:{frequencies:[261.6255653006,269.99542342683,281.01564479119,288.12007609225,294.32876096318,303.49446183192,311.45900631024,323.77767743764,335.77702597132,341.99420300732,348.83408706747,360.36579242507,371.06455309218,381.37837507376,392.4383479509,407.46331920162,417.22825371678,432.79663407874,450.28451247858,458.15534711532,465.11211608996,476.50902003141,487.19844562495,503.12608711654,523.2511306012],description:"Idris Ragib Bey, vol.5 d'Erlanger, p 40. Idris Rag'ib Bey"},ragib7:{frequencies:[261.6255653006,270.30192333353,281.29980781121,288.32205155576,294.32876096318,303.74668805875,311.45900631024,324.36230800023,336.37572681506,341.71502406609,348.83408706747,360.4025644447,370.6997805717,381.53728273004,392.4383479509,406.97310157871,417.13259773693,432.48307733364,450.69091522486,457.84473927605,465.11211608996,476.92160341255,486.65469735975,502.32108537715,523.2511306012],description:"7-limit version of Idris Rag'ib Bey scale"},"rameau-flat":{frequencies:[261.6255653006,276.01120901503,292.50629850443,312.00666699279,327.03195662575,349.91920725962,366.20974703841,391.22137338448,415.30469757995,437.39882871549,468.01000025525,489.02679755603,523.2511306012],description:'Rameau bemols, see Pierre-Yves Asselin in "Musique et temperament"'},"rameau-gall":{frequencies:[261.6255653006,274.65078342868,292.50627485027,310.49874388777,327.03195662575,349.91912034749,366.20104475463,391.22147055517,412.61639318626,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"Rameau's temperament, after Gallimard (1st solution)"},"rameau-merc":{frequencies:[261.6255653006,273.37431312998,292.50627485027,308.72950296259,327.03195662575,348.83408706747,365.63284274659,391.22147055517,409.55238583376,437.39890198442,464.53468854848,489.02683710225,523.2511306012],description:"Rameau's temperament, after Mercadier"},"rameau-minor":{frequencies:[261.6255653006,294.32876096318,313.95067836072,353.19451315581,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Rameau's systeme diatonique mineur on E. Asc. 4-6-8-9, desc. 9-7-5-4"},"rameau-nouv":{frequencies:[261.6255653006,275.98004852257,292.50627485027,311.49614460359,327.03195662575,349.91912034749,367.37127028704,391.22147055517,414.64857675456,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"Temperament by Rameau in Nouveau Systeme (1726)"},"rameau-sharp":{frequencies:[261.6255653006,273.37431312998,292.50629850443,308.54983514133,327.03195662575,348.83408706747,365.63293356166,391.22137338448,409.42528169498,437.39882871549,464.33633889105,489.02679755603,523.2511306012],description:'Rameau dieses, see Pierre-Yves Asselin in "Musique et temperament"'},rameau:{frequencies:[261.6255653006,275.07757335026,292.50629850443,310.73186404381,327.03195662575,349.91920725962,366.77009798369,391.22137338448,412.61635981914,437.39882871549,468.01000025525,489.02679755603,523.2511306012],description:"Rameau's modified meantone temperament (1725)"},ramis:{frequencies:[261.6255653006,275.93321340298,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Monochord of Ramos de Pareja (Ramis de Pareia), Musica practica (1482). Carlos: Switched on Bach"},rapoport_8:{frequencies:[261.6255653006,297.86386736488,316.53463456122,336.37572681506,382.96782946913,406.97310157871,432.48307733364,492.38720931745,523.2511306012],description:"Paul Rapoport, cycle of 14/9 close to 8 out of 11-tET, XH 13, 1991"},rast_moha:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,427.47405410759,479.82340237272,523.2511306012],description:"Rast + Mohajira (Dudon) 4 + 3 + 3 Rast and 3 + 4 + 3 Mohajira tetrachords"},rat_dorenh:{frequencies:[261.6255653006,267.70988077271,274.08392555301,359.73515228832,411.12588832951,418.60090448096,426.35277308246,523.2511306012],description:"Rationalized Schlesinger's Dorian Harmonia in the enharmonic genus"},rat_hypodenh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,380.54627680087,389.39619021485,398.6675280771,523.2511306012],description:"1+1 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodenh2:{frequencies:[261.6255653006,270.06509966514,288.69027895239,348.83408706747,380.54627680087,389.39619021485,408.39112632289,523.2511306012],description:"1+2 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodenh3:{frequencies:[261.6255653006,270.06509966514,299.00064605783,348.83408706747,380.54627680087,389.39619021485,418.60090448096,523.2511306012],description:"1+3 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,380.54627680087,386.4008349055,392.4383479509,523.2511306012],description:"1+1 rationalized hexachromatic/hexenharmonic genus derived from K.S.'Bastard'"},rat_hypodhex2:{frequencies:[261.6255653006,267.19206668997,279.06726965397,348.83408706747,380.54627680087,386.4008349055,398.6675280771,523.2511306012],description:"1+2 rat. hexachromatic/hexenharmonic genus derived from K.S.'s 'Bastard' Hypodo"},rat_hypodhex3:{frequencies:[261.6255653006,267.19206668997,285.40970760065,348.83408706747,380.54627680087,386.4008349055,405.0976494977,523.2511306012],description:"1+3 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex4:{frequencies:[261.6255653006,267.19206668997,292.04714266113,348.83408706747,380.54627680087,386.4008349055,411.73859457144,523.2511306012],description:"1+4 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex5:{frequencies:[261.6255653006,267.19206668997,299.00064605783,348.83408706747,380.54627680087,386.4008349055,418.60090448096,523.2511306012],description:"1+5 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex6:{frequencies:[261.6255653006,273.00058987889,292.04714266113,348.83408706747,380.54627680087,392.4383479509,411.73859457144,523.2511306012],description:"2+3 rationalized hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' hypod"},rat_hypodpen:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,380.54627680087,387.59343007496,394.90651366128,523.2511306012],description:"1+1 rationalized pentachromatic/pentenharmonic genus derived from K.S.'s 'Bastar"},rat_hypodpen2:{frequencies:[261.6255653006,268.33391312882,282.83844897362,348.83408706747,380.54627680087,387.59343007496,402.50086969323,523.2511306012],description:"1+2 rationalized pentachromatic/pentenharmonic genus from K.S.'s 'Bastard' hyp"},rat_hypodpen3:{frequencies:[261.6255653006,268.33391312882,290.69507255622,348.83408706747,380.54627680087,387.59343007496,410.39304360878,523.2511306012],description:"1+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen4:{frequencies:[261.6255653006,268.33391312882,299.00064605783,348.83408706747,380.54627680087,387.59343007496,418.60090448096,523.2511306012],description:"1+4 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen5:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,380.54627680087,394.90651366128,410.39304360878,523.2511306012],description:"2+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen6:{frequencies:[261.6255653006,268.33391312882,299.00064605783,348.83408706747,380.54627680087,394.90651366128,418.60090448096,523.2511306012],description:"2+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodtri:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,380.54627680087,392.4383479509,405.0976494977,523.2511306012],description:"rationalized first (1+1) trichromatic genus derived from K.S.'s 'Bastard' hyp"},rat_hypodtri2:{frequencies:[261.6255653006,273.00058987889,299.00064605783,348.83408706747,380.54627680087,392.4383479509,418.60090448096,523.2511306012],description:"rationalized second (1+2) trichromatic genus derived from K.S.'s 'Bastard' hyp"},rat_hypolenh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,373.75080757229,402.50086969323,410.39304360878,418.60090448096,523.2511306012],description:"Rationalized Schlesinger's Hypolydian Harmonia in the enharmonic genus"},rat_hypopchrom:{frequencies:[261.6255653006,277.01530443593,294.32876096318,362.25078272391,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the chromatic genus"},rat_hypopenh:{frequencies:[261.6255653006,269.10058145205,277.01530443593,362.25078272391,392.4383479509,400.78810003496,409.50088481833,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the enharmonic genus"},rat_hypoppen:{frequencies:[261.6255653006,273.79419624481,294.32876096318,362.25078272391,392.4383479509,405.97070477679,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the pentachromatic genus"},rat_hypoptri:{frequencies:[261.6255653006,271.68808704293,282.55561052465,362.25078272391,392.4383479509,403.65087217807,415.52295665389,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in first trichromatic genus"},rat_hypoptri2:{frequencies:[261.6255653006,271.68808704293,294.32876096318,362.25078272391,392.4383479509,403.65087217807,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in second trichromatic genus"},rectsp10:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,340.11323489078,348.83408706747,359.73515228832,366.27579142084,373.75080757229,377.90359432309,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,523.2511306012],description:"Rectangle minimal beats spectrum of order 10"},rectsp10a:{frequencies:[261.6255653006,275.39533189537,277.01530443593,279.06726965397,281.75060878526,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.79478270659,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,523.2511306012],description:"Rectangle minimal beats spectrum of order 10 union with inversion"},rectsp11:{frequencies:[261.6255653006,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,451.89870370104,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,499.46698830115,523.2511306012],description:"Rectangle minimal beats spectrum of order 11"},rectsp12:{frequencies:[261.6255653006,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,404.33041910093,406.97310157871,411.12588832951,414.24047839262,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,451.89870370104,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,499.46698830115,501.44900015948,523.2511306012],description:"Rectangle minimal beats spectrum of order 12"},rectsp6:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Rectangle minimal beats spectrum of order 6 (=songlines)"},rectsp6a:{frequencies:[261.6255653006,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Rectangle minimal beats spectrum of order 6 union with inversion"},rectsp7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Rectangle minimal beats spectrum of order 7"},rectsp7a:{frequencies:[261.6255653006,281.75060878526,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,332.97799220076,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Rectangle minimal beats spectrum of order 7 union with inversion"},rectsp8:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Rectangle minimal beats spectrum of order 8"},rectsp8a:{frequencies:[261.6255653006,279.06726965397,281.75060878526,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,322.00069575458,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Rectangle minimal beats spectrum of order 8 union with inversion"},rectsp9:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,377.90359432309,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,523.2511306012],description:"Rectangle minimal beats spectrum of order 9"},rectsp9a:{frequencies:[261.6255653006,277.01530443593,279.06726965397,281.75060878526,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,523.2511306012],description:"Rectangle minimal beats spectrum of order 9 union with inversion"},redfield:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Redfield New Diatonic"},reinhard:{frequencies:[261.6255653006,277.01530443593,294.32876096318,309.81974838229,327.03195662575,348.83408706747,369.35373924791,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Reinhard 19-limit superparticular"},reinhard17:{frequencies:[261.6255653006,277.01530443593,277.97716313189,286.94416839421,292.40504357126,296.50897400735,307.79478270659,317.68818643644,338.57426097725,342.12573923925,369.35373924791,400.13321751856,404.33041910093,430.91269578922,444.76346101102,477.08191319521,492.47165233054,523.2511306012],description:`Reinhard's Harmonic-17 tuning for "Tresspass", 1998`},renteng1:{frequencies:[261.6255653006,285.40970760065,313.15788183285,391.64553850062,426.52890806662,523.2511306012],description:"Gamelan Renteng from Chileunyi (Tg. Sari). 1/1=330 Hz"},renteng2:{frequencies:[261.6255653006,294.32876096318,311.77048523333,396.07199334683,425.86840190162,523.2511306012],description:"Gamelan Renteng from Chikebo (Tg. Sari). 1/1=360 Hz"},renteng3:{frequencies:[261.6255653006,278.97471276149,312.97903559457,379.60005211265,409.44065404912,468.42785143649,523.2511306012],description:"Gamelan Renteng from Lebakwangi (Pameungpeuk). 1/1=377 Hz"},renteng4:{frequencies:[261.6255653006,296.45730715573,311.93819010347,397.0826586675,424.17395032031,523.2511306012],description:"Gamelan Renteng Bale` bandung from Kanoman (Cheribon). 1/1=338 Hz"},robot:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Dead Robot (see lattice)"},robot_live:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,376.74081403286,392.4383479509,418.60090448096,446.50763144636,490.54793493862,502.32108537715,523.2511306012],description:"Live Robot"},romieu:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Romieu's Monochord, Memoire theorique & pratique (1758)"},romieu_inv:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Romieu inverted, Pure (just) C minor in Wilkinson: Tuning In"},rosati_21:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Dante Rosati, JI guitar tuning"},rosati_21a:{frequencies:[261.6255653006,280.31310567921,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,488.36772189445,523.2511306012],description:"Alternative version of rosati_21 with more tetrads"},rousseau:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Rousseau's Monochord, Dictionnaire de musique (1768)"},rousseauw:{frequencies:[261.6255653006,276.81658657456,293.31219032635,311.14941643136,328.83652403056,349.33732971591,369.19521129916,391.76004912942,415.1051791302,439.20783490896,466.32059269121,492.40223109551,523.2511306012],description:"Jean-Jacques Rousseau's temperament (1768)"},rsr_12:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"RSR - 7 limit JI"},"rvf-1":{frequencies:[261.6255653006,272.14556467328,280.20095193414,292.09989854643,304.19649364034,313.29104303136,326.0297292803,340.21856244106,350.08660369014,364.11104988921,374.67209286633,390.97784457618,406.87534373272,419.03967825638,436.39317047385,454.92493848389,468.39051363853,487.22455955444,508.94280091833,523.2511306012],description:"D-A 695 cents, the increment is 0.25 cents, interval range 49.5 to 75.5"},"rvf-2":{frequencies:[261.6255653006,272.87751533003,278.75612859219,292.27711197479,305.71136588092,312.51386339015,326.29348693151,342.97106251658,349.87433921674,364.79522794952,372.13777859784,391.13596290168,408.38225803817,417.4934384938,436.65792486176,457.83788806384,467.7011114131,487.81592522452,513.9947144098,523.2511306012],description:"695 cents, 0.607 cents, 31-90 cents, C-A# is 7/4."},"rvf-3":{frequencies:[261.6255653006,272.98787180262,278.19314238431,292.29399505039,306.11778315204,312.24320803046,326.25579420701,343.90343447252,349.81371586656,364.81629995674,371.08598724028,391.15855645336,408.71263878415,416.89098941754,436.60748307387,458.73792719255,467.48503753613,487.78774868553,515.83876338215,523.2511306012],description:"694.737, 0.082, 25-97, the fifth E#-B# is 3/2."},majmin:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Malcolm & Marpurg 4 (Yamaha major & minor) mixed. Mersenne/Ban without D#"},major_clus:{frequencies:[261.6255653006,275.93321340298,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Chalmers' Major Mode Cluster"},major_wing:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Chalmers' Major Wing with 7 major and 6 minor triads"},malcolm:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Malcolm's Monochord (1721), and C major in Yamaha synths, Wilkinson: Tuning In"},malcolm2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,463.29527188648,490.54793493862,523.2511306012],description:"Malcolm 2"},malcolm_ap:{frequencies:[261.6255653006,279.47938236087,293.66476791741,313.97746652079,326.1838132033,349.22823143301,369.99442271164,391.99543598175,419.68935090103,436.0054062308,466.16376151809,489.82458627646,523.2511306012],description:"Best approximations in mix of all ETs from 12-23 to Malcolm's Monochord"},malcolm_me:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Malcolm's Mid-East"},malcolme:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,496.11959049595,523.2511306012],description:"Most equal interval permutation of Malcolm's Monochord"},malcolme2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Inverse most equal interval permutation of Malcolm's Monochord"},malcolms:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,369.99442271164,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Symmetrical version of Malcolm's Monochord and Albion scale"},malerbi:{frequencies:[261.6255653006,275.62199471997,292.73769384471,310.07474405997,327.54963108844,348.83408706747,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,489.99465727995,523.2511306012],description:"Luigi Malerbi's well-temperament nr.1 (1794) (nr.2 = Young)"},malgache:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,353.19451315581,367.91095120397,392.4383479509,413.89982010446,441.49314144476,459.88868900496,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malgache1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,310.07474405997,327.03195662575,353.19451315581,376.74081403286,392.4383479509,418.60090448096,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malgache2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,353.19451315581,367.91095120397,392.4383479509,408.78994578219,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malkauns:{frequencies:[261.6255653006,313.95067836072,348.83408706747,418.60090448096,465.11211608996,523.2511306012],description:"Raga Malkauns, inverse of prime_5"},mambuti:{frequencies:[261.6255653006,294.34406205295,331.72862856444,394.26624244126,466.16376151809,525.06772693396,590.39077962608,792.18471060794,999.82182774046],description:"African Mambuti Flutes (aerophone; vertical wooden; one note each)"},mandelbaum5:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,454.2110508691,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"Mandelbaum's 5-limit 19-tone scale, kleismic detempered circle of minor thirds"},mandelbaum7:{frequencies:[261.6255653006,272.52663052146,280.31310567921,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Mandelbaum's 7-limit 19-tone scale"},marimba1:{frequencies:[261.6255653006,284.4818984792,319.50463429683,342.83241505062,371.92288545737,411.72190027758,457.09800545097,500.48847822777,547.68138927822,612.97866327818,651.68292300609,728.11694797601,807.8963375694,903.69557412727,1013.19282257599,1069.7265813247,1225.95732655636,1303.36584601218],description:"Marimba of the Bakwese, SW Belgian Congo (Zaire). 1/1=140.5 Hz"},marimba2:{frequencies:[261.6255653006,279.11058864149,318.03161540472,343.03050002254,379.95718438213,421.58889248327,458.6849347701,519.33670373121,571.2689787911,613.68721319418,694.83488613378,761.23234162637,846.59395682498,953.56868388592,1049.52904699774,1145.8425062572,1271.3918647407,1389.66977226756],description:"Marimba of the Bakubu, S. Belgian Congo (Zaire). 1/1=141.5 Hz"},marimba3:{frequencies:[261.6255653006,296.73398952435,348.2210758395,420.13030572059,476.50902003141,518.73708886244,603.49292471609,696.44215167899,840.26061144117,953.01804006282,1037.47417772488],description:"Marimba from the Yakoma tribe, Zaire. 1/1=185.5 Hz"},marion:{frequencies:[261.6255653006,269.91407136119,278.46532473603,287.28749371714,296.38899008685,305.77900572762,315.46632790985,325.46074015958,335.7715953476,346.4093067252,357.3838291689,368.70624618807,380.38737313392,392.4383479509,411.71310103548,431.93429139282,453.14890242083,475.40520223986,498.75490298644,523.2511306012],description:"scale with two different ET step sizes"},marion1:{frequencies:[261.6255653006,262.79353657426,272.52663052146,280.31310567921,286.15296204753,294.32876096318,305.22982618403,311.45900631024,327.03195662575,336.37572681506,343.38355445704,350.39138209902,367.91095120397,373.75080757229,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,457.84473927605,467.18850946536,476.92160341255,490.54793493862,515.07533168556,523.2511306012],description:"Marion's 7-limit Scale # 1"},marion10:{frequencies:[261.6255653006,267.07609791103,272.52663052146,286.15296204753,290.69507255622,296.75121990114,305.22982618403,317.94773560837,327.03195662575,339.14425131559,356.10146388137,363.36884069528,370.93902487643,381.53728273004,400.61414686654,406.97310157871,408.78994578219,423.93031414449,436.04260883433,445.12682985172,457.84473927605,474.80195184183,476.92160341255,484.4917875937,508.71637697339,523.2511306012],description:"Marion's 7-limit Scale # 10"},marion15:{frequencies:[261.6255653006,269.10058145205,280.31310567921,288.32205155576,299.00064605783,313.95067836072,320.35783506196,327.03195662575,336.37572681506,353.19451315581,358.80077526939,360.4025644447,373.75080757229,384.42940207435,392.4383479509,403.65087217807,418.60090448096,420.46965851882,427.14378008261,448.50096908674,461.31528248922,470.92601754108,480.53675259294,504.56359022259,523.2511306012],description:"Marion's 7-limit Scale # 15"},marion19:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,294.32876096318,309.04519901133,313.95067836072,315.35224388912,327.03195662575,336.37572681506,343.38355445704,353.19451315581,366.27579142084,367.91095120397,373.75080757229,392.4383479509,403.65087217807,412.06026534844,420.46965851882,441.49314144476,457.84473927605,470.92601754108,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Marion's 7-limit Scale # 19"},marion26:{frequencies:[261.6255653006,271.31540105247,279.06726965397,284.8811711051,293.02063313667,303.87324917877,305.22982618403,310.07474405997,325.57848126297,334.88072358477,341.85740532612,348.83408706747,366.27579142084,379.84156147346,390.69417751556,406.97310157871,418.60090448096,427.32175665765,434.10464168396,455.80987376816,465.11211608996,474.80195184183,488.36772189445,512.78610798918,523.2511306012],description:"Marion's 7-limit Scale # 26"},marissing:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Peter van Marissing, just scale, Mens en Melodie, 1979"},"marpurg-1":{frequencies:[261.6255653006,276.86979852503,294.32876096318,311.47852302926,329.62755691287,348.83408706747,370.83100115625,392.4383479509,415.30469757995,439.50340943686,467.21778431035,494.44133512215,523.2511306012],description:"Other temperament by Marpurg, 3 fifths 1/3 Pyth. comma flat"},"marpurg-t1":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Marpurg's temperament nr.1, Kirnbergersche Temperatur (1766)"},"marpurg-t11":{frequencies:[261.6255653006,278.12325072816,294.32876096318,311.47852302926,331.11985608357,348.83408706747,371.66947115233,392.4383479509,416.24372513446,441.49314144476,466.16376151809,496.67978412536,523.2511306012],description:"Marpurg's temperament nr.11, 6 tempered fifths"},"marpurg-t12":{frequencies:[261.6255653006,279.06706247425,294.66131982972,310.42509491746,330.74614861362,349.22823143301,372.08941681833,392.88175996935,418.60059350213,441.99197952365,465.63764214343,496.11922267243,523.2511306012],description:"Marpurg's temperament nr.12, 4 tempered fifths"},"marpurg-t2":{frequencies:[261.6255653006,278.75210322491,294.32876096318,313.59611581451,331.11985608357,348.83408706747,371.66947115233,392.4383479509,418.12815462835,441.49314144476,470.39417348663,495.55929511749,523.2511306012],description:"Marpurg's temperament nr.2, 2 tempered fifths, Neue Methode (1790)"},"marpurg-t3":{frequencies:[261.6255653006,276.55731914056,294.32876096318,311.12698372208,331.11985608357,348.83408706747,368.74309237173,392.4383479509,414.83597850347,441.49314144476,465.11211608996,491.65745674141,523.2511306012],description:"Marpurg's temperament nr.3, 2 tempered fifths"},"marpurg-t4":{frequencies:[261.6255653006,276.86979852503,294.32876096318,310.07474405997,331.11985608357,348.83408706747,369.15973155124,392.4383479509,415.30469757995,441.49314144476,465.11211608996,492.21297564769,523.2511306012],description:"Marpurg's temperament nr.4, 2 tempered fifths"},"marpurg-t5":{frequencies:[261.6255653006,277.80935667884,294.32876096318,312.53552595124,331.11985608357,348.83408706747,370.41247575694,392.4383479509,416.71403480995,441.49314144476,468.80328869252,493.88330125613,523.2511306012],description:"Marpurg's temperament nr.5, 2 tempered fifths"},"marpurg-t7":{frequencies:[261.6255653006,276.86979852503,293.00227310437,310.07474405997,329.62755691287,348.83408706747,369.15973155124,390.66969766777,415.30469757995,439.50340943686,465.11211608996,492.21297564769,523.2511306012],description:"Marpurg's temperament nr.7, 3 tempered fifths"},"marpurg-t8":{frequencies:[261.6255653006,277.49581689502,293.33333347996,311.12698372208,329.99999983505,348.83408706747,369.99442271164,391.11111150212,414.83597850347,440,466.69047534984,493.32589719545,523.2511306012],description:"Marpurg's temperament nr.8, 4 tempered fifths"},"marpurg-t9":{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,350.01785633742,371.24999944327,392.4383479509,416.24372513446,441.49314144476,468.27419030811,496.67978412536,523.2511306012],description:"Marpurg's temperament nr.9, 4 tempered fifths"},marpurg:{frequencies:[261.6255653006,277.49581689502,293.83071040301,311.12698372208,329.99999983505,349.42557141756,369.99442271164,392.4383479509,415.53937569366,440,466.69047534984,494.16238213869,523.2511306012],description:"Marpurg, Versuch ueber die musikalische Temperatur (1776), p. 153"},marpurg1:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Marpurg's Monochord no.1 (1776)"},marpurg3:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Marpurg 3"},marpurg4:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Marpurg 4, also Yamaha Pure Minor"},marsh:{frequencies:[261.6255653006,275.50659558095,293.15632631094,311.93674864629,328.48713220126,349.53094576004,368.07595926604,391.65594491223,412.43597848639,438.85779226656,466.97226207056,491.74834273545,523.2511306012],description:"John Marsh's meantone temperament (1809)"},marsh2:{frequencies:[261.6255653006,277.22760066578,293.66431501254,311.21660561883,329.70790803338,349.18845812715,369.99117208793,391.90679138833,415.30984563838,439.96491544382,466.29335337935,494.03030700757,523.2511306012],description:"John Marsh's quasi-equal temperament (1840)"},mavila12:{frequencies:[261.6255653006,256.98292999787,287.53945699376,321.72930260925,316.02010771872,353.59644178868,347.32175377489,388.62000642034,381.72381344999,427.11263899087,477.89842030218,469.41794908116,525.2340355968],description:"A 12-note mavila scale (for warping meantone-based music)"},mavila9:{frequencies:[261.6255653006,287.53945699376,316.02010771872,321.72930260925,353.59644178868,388.62000642034,427.11263899087,434.82882549415,477.89842030218,525.2340355968],description:"9-note scale of mavila temperament (TOP tuning)"},mavlim1:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,465.11211608996,523.2511306012],description:"First 27/25&135/128 scale"},mbira_banda:{frequencies:[261.6255653006,291.13134764929,327.53979283172,368.50142299854,404.88256627495,443.57258128492,480.10063929961,555.00605988575],description:"Mubayiwa Bandambira's tuning of keys R2-R9 from Berliner: The soul of mbira."},mbira_banda2:{frequencies:[261.6255653006,321.16993719469,360.29289210659,380.8360868427,422.32008370967,461.34206956593,587.32953583482,513.96502576833,761.67217368541,711.48673390068,849.04255025658,936.10488897708,1046.50286568598,633.49659152295,1055.60951665979,1174.65975017952,1321.5609185619,1486.83332446121,1633.62433483289,1789.73120457747,1937.11498804338,2239.34414798534],description:"Mubayiwa Bandambira's Mbira DzaVadzimu tuning B1=114 Hz"},mbira_gondo:{frequencies:[261.6255653006,315.28798447451,345.21700307457,379.51849407657,422.56409582244,461.07566488503,564.05539604512,516.94239487354,778.57545143809,697.24717811406,842.69088701475,926.42243447898,1029.11884353824,628.3943418294,1040.47545270591,1153.813137635,1308.64724593201,1415.59600512246,1572.51770682594,1715.83353717518,1883.05646656025,2103.91477035149],description:"John Gondo's Mbira DzaVadzimu tuning B1=122 Hz"},mbira_kunaka:{frequencies:[261.6255653006,292.98704147282,325.27731021818,350.44066402496,386.59871897734,434.19311733646,479.82340237272,507.76825077597],description:"John Kunaka's mbira tuning of keys R2-R9"},mbira_kunaka2:{frequencies:[261.6255653006,340.26769547546,358.83903996308,405.11650317313,448.98591596033,490.75518955849,622.61349925697,541.70354187177,817.28364083393,724.3415782324,907.35693646861,997.5144154576,1094.73088724383,673.88551872153,1085.91380691742,1216.08403680913,1350.10935126711,1454.55340013417,1604.63250673428,1802.17976955899,1991.5747030301,2107.56373750553],description:"John Kunaka's Mbira DzaVadzimu tuning B1=113 Hz"},mbira_mude:{frequencies:[261.6255653006,289.28740724512,309.15639683494,364.68988616898,372.56793743951,408.17001145418,507.1819925915,459.74594725879,689.63684605432,610.50517472746,760.79276355093,824.39562982862,887.65774573556,562.75365576207,888.68380073365,1015.53708814899,1126.80895076279,1206.28956516212,1365.00817887311,1507.58874420517,1666.02447560859,1935.99638964471],description:"Hakurotwi Mude's Mbira DzaVadzimu tuning B1=132 Hz"},mbira_mujuru:{frequencies:[261.6255653006,281.37682788104,301.05008478933,329.43721154897,394.9500460767,419.64523240241,533.01280425363,488.77489658044,700.88132804992,602.10016957865,765.19999119503,809.29752893,942.6160133907,577.57308891646,937.72844143307,1046.50286568598,1145.18149427149,1243.7900049313,1411.51350174391,1540.15576038017,1658.34356815416,1904.9365287586],description:"Ephat Mujuru's Mbira DzaVadzimu tuning, B1=106 Hz"},mbira_zimb:{frequencies:[261.6255653006,276.86260193655,305.95868600104,343.62544191138,379.08031027329,408.40584780369,453.41648894489,507.76825077597],description:"Shona mbira scale"},mboko_bow:{frequencies:[261.6255653006,347.61817721989,375.37611551499],description:"African Mboko Mouth Bow (chordophone, single string, plucked)"},mboko_zither:{frequencies:[261.6255653006,294.68429813772,319.3201344739,354.92237405774,396.55020354877,418.67676528474,472.67116512585,513.07516347663],description:"African Mboko Zither (chordophone; idiochordic palm fibre, plucked)"},mcclain:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,331.11985608357,367.91095120397,392.4383479509,408.78994578219,441.49314144476,490.54793493862,510.98743222773,523.2511306012],description:"McClain's 12-tone scale, see page 119 of The Myth of Invariance"},mcclain_18:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,319.36714514233,327.03195662575,331.11985608357,344.91651675372,367.91095120397,383.2405741708,392.4383479509,408.78994578219,413.89982010446,441.49314144476,459.88868900496,490.54793493862,496.67978412536,510.98743222773,523.2511306012],description:"McClain's 18-tone scale, see page 143 of The Myth of Invariance"},mcclain_8:{frequencies:[261.6255653006,294.32876096318,327.03195662575,367.91095120397,392.4383479509,408.78994578219,441.49314144476,490.54793493862,523.2511306012],description:"McClain's 8-tone scale, see page 51 of The Myth of Invariance"},mccoskey_22:{frequencies:[261.6255653006,270.06509966514,279.06726965397,287.78812183066,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,382.37582620857,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,506.89953276991,523.2511306012],description:"31-limit rational interpretation of 22-tET, Marion McCoskey"},mclaren_bar:{frequencies:[261.6255653006,281.77400528964,292.14326370913,304.76756192248,325.50548568708,328.66136118639,353.45752508165,360.67039921732,379.1552038283,397.63971531932,405.75513620619,436.411067852,476.98680497297,521.16951219839],description:"Metal bar scale. see McLaren, Xenharmonicon 15, pp.31-33"},mclaren_cps:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,306.59245933664,327.03195662575,343.38355445704,367.91095120397,392.4383479509,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"2)12 [1,2,3,4,5,6,8,9,10,12,14,15] a degenerate CPS"},mclaren_harm:{frequencies:[261.6255653006,279.06726965397,299.00064605783,304.4370214407,307.2300216374,348.83408706747,380.54627680087,389.39619021485,393.97732186443,398.6675280771,465.11211608996,523.2511306012],description:'from "Wilson part 9", claimed to be Schlesingers Dorian Enharmonic, prov. unkn'},mclaren_rath1:{frequencies:[261.6255653006,279.06726965397,299.00064605783,334.88072358477,341.71502406609,348.83408706747,372.08969287196,380.54627680087,389.39619021485,398.6675280771,492.47165233054,507.3950357345,523.2511306012],description:"McLaren Rat H1"},mclaren_rath2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,334.88072358477,341.71502406609,348.83408706747,380.54627680087,389.39619021485,398.6675280771,440.63253103259,452.54151835779,465.11211608996,523.2511306012],description:"McLaren Rat H2"},mean10:{frequencies:[261.6255653006,272.18829429226,292.14313377277,313.56091500001,326.220453695,350.13653284039,364.27275363262,390.97854693193,406.76370320307,436.58461973079,468.59178605305,487.51045723915,523.2511306012],description:"3/10-comma meantone scale"},mean11:{frequencies:[261.6255653006,272.83457350033,292.34115464648,313.24237654315,326.6628419965,350.01792709981,365.01399145768,391.11103243201,407.86767761879,437.02858581415,468.2743796482,488.33699124025,523.2511306012],description:"3/11-comma meantone scale. A.J. Ellis no. 10"},mean11ls_19:{frequencies:[261.6255653006,272.93479580544,280.25721516838,292.37183188538,305.01012622427,313.1930753928,326.73140514978,340.85495140859,349.99956372811,365.12891753666,374.92476290643,391.13155279262,408.03891236124,418.98596425085,437.09738047696,455.99169236578,468.2252457596,488.46511500326,509.57988860269,523.2511306012],description:"Least squares appr. to 3/2, 5/4, 7/6, 15/14 and 11/8, Petr Par\xEF\xBF\xBDzek"},mean13:{frequencies:[261.6255653006,273.83184954717,292.64606374809,312.75295135888,327.34460995374,349.8355370417,366.15730590163,391.31494185909,409.57195510156,437.7124891801,467.78648270341,489.61131479929,523.2511306012],description:"3/13-comma meantone scale"},mean14:{frequencies:[261.6255653006,274.22463192287,292.76593693997,312.56088569186,327.61283758281,349.76390952171,366.60744235102,391.39507854003,410.24343789088,437.98145930734,467.59494724206,490.11285326462,523.2511306012],description:"3/14-comma meantone scale (Giordano Riccati, 1762)"},mean14_15:{frequencies:[261.6255653006,274.22463192287,279.31500250577,292.76593693997,306.86462618694,312.56088569186,327.61283758281,349.76390952171,366.60744235102,391.39507854003,410.24343789088,417.8586951835,437.98145930734,467.59494724206,490.11285326462,523.2511306012],description:"15 of 3/14-comma meantone scale"},mean14_19:{frequencies:[261.6255653006,274.22463192287,279.31500250577,292.76593693997,306.86462618694,312.56088569186,327.61283758281,343.38964426558,349.76390952171,366.60744235102,373.41269440635,391.39507854003,410.24343789088,417.8586951835,437.98145930734,459.07327263526,467.59494724206,490.11285326462,513.71515101261,523.2511306012],description:"19 of 3/14-comma meantone scale"},mean14_7:{frequencies:[261.6255653006,292.76593693997,327.61283758281,349.76390952171,391.39507854003,437.98145930734,490.11285326462,523.2511306012],description:"Least squares appr. of 5L+2S to Ptolemy's Intense Diatonic scale"},mean14a:{frequencies:[261.6255653006,274.24690838881,292.77273178776,312.55000460003,327.62804498858,349.75985073129,366.63296888199,391.39962048672,410.28152481852,437.9967071602,467.58409501387,490.1412915133,523.2511306012],description:'fifth of sqrt(5/2)-1 octave "recursive" meantone, Paul Hahn'},mean16:{frequencies:[261.6255653006,274.864106667,292.9608347655,312.24903186879,328.04917632434,349.64754658398,367.34009701877,391.52533508436,411.33694767869,438.41888642025,467.28387071703,490.92894854125,523.2511306012],description:"3/16-comma meantone scale"},mean17:{frequencies:[261.6255653006,273.72412433093,292.61316553779,312.80569569783,327.2710181906,349.85520131118,366.03383354947,391.29294726693,409.38781813791,437.63868343995,467.83907547741,489.47372981579,523.2511306012],description:"4/17-comma meantone scale, least squares error of 5/4 and 3/2"},mean17_17:{frequencies:[261.6255653006,273.72412433093,279.67971414776,292.61316553779,306.14471057197,312.80569569783,327.2710181906,349.85520131118,366.03383354947,373.99786656393,391.29294726693,409.38781813791,418.29512920081,437.63868343995,457.8767570375,467.83907547741,489.47372981579,523.2511306012],description:"4/17-comma meantone scale with split C#/Db, D#/Eb, F#/Gb, G#/Ab and A#/Bb"},mean17_19:{frequencies:[261.6255653006,273.72412433093,279.67971414776,292.61316553779,306.14471057197,312.80569569783,327.2710181906,342.40527209253,349.85520131118,366.03383354947,373.99786656393,391.29294726693,409.38781813791,418.29512920081,437.63868343995,457.8767570375,467.83907547741,489.47372981579,512.10885267608,523.2511306012],description:"4/17-comma meantone scale, least squares error of 5/4 and 3/2"},mean18:{frequencies:[261.6255653006,272.71477685134,292.30447317753,313.30134186202,326.58087306932,350.03988839382,364.87661266094,391.0864943589,407.66301227525,436.94633423564,468.33314368944,488.18382342185,523.2511306012],description:"5/18-comma meantone scale (Smith). 3/2 and 5/3 eq. beat. A.J. Ellis no. 9"},mean19:{frequencies:[261.6255653006,273.06170311607,292.41066686775,313.13068664042,326.81820677503,349.97632128221,365.27443420834,391.15752841841,408.25574814862,437.18446858874,468.16306089008,488.62733218513,523.2511306012],description:"5/19-comma meantone scale, fifths beats three times third. A.J. Ellis no. 11"},mean19r:{frequencies:[261.6255653006,273.04332227389,292.40504357126,313.13971948727,326.80563693258,349.97968716666,365.25335892465,391.15376651139,408.22434232755,437.17185753972,468.17206422213,488.60384173026,523.2511306012],description:"Approximate 5/19-comma meantone with 19/17 tone, Petr Parizek, 2002"},mean23:{frequencies:[261.6255653006,274.15058593695,292.74334833321,312.59706303545,327.56228503462,349.77740346966,366.52259116395,391.37997903742,410.11684180717,437.93077103284,467.63102771476,490.01832104213,523.2511306012],description:"5/23-comma meantone scale, A.J. Ellis no. 4"},mean23six:{frequencies:[261.6255653006,273.11604376732,292.42729246507,313.10398392891,326.85537164611,349.96637341293,365.33674088125,391.16864715511,408.34860251967,437.22175336101,468.13644404983,488.69678846289,523.2511306012],description:"6/23-comma meantone scale"},mean25:{frequencies:[261.6255653006,272.66208311698,292.28833573479,313.32728859832,326.54481265413,350.04955123355,364.81618195011,391.07569872695,407.57299290994,436.91015056532,468.35900068872,488.11644468937,523.2511306012],description:"7/25-comma meantone scale, least square weights 3/2:0 5/4:1 6/5:1"},mean26:{frequencies:[261.6255653006,272.91754119498,292.36655103694,313.20156187458,326.7196004604,350.00272362315,365.10913291207,391.12802157824,408.00943064927,437.08553692506,468.23370304224,488.44305713046,523.2511306012],description:"7/26-comma meantone scale (Woolhouse 1835). Almost equal to meaneb742"},mean26_21:{frequencies:[261.6255653006,272.91754592428,280.26986822267,292.36655272572,304.98534036063,313.20156006546,326.71960423481,335.52133892506,340.8210986211,350.00272362315,365.10913712997,374.9450750913,391.12802157824,408.00943771953,419.00109777107,437.08553944976,455.95052092314,468.23370033762,488.44306277317,501.60158217053,509.52467838008,523.2511306012],description:"21 of 7/26-comma meantone scale (Woolhouse 1835)"},mean27:{frequencies:[261.6255653006,273.15429014256,292.43899158768,313.08519355925,326.88152513903,349.9593710588,365.38059276675,391.17647406766,408.41395592075,437.24799400905,468.11771609009,488.74567091648,523.2511306012],description:"7/27-comma meantone scale, least square weights 3/2:2 5/4:1 6/5:1"},mean29:{frequencies:[261.6255653006,273.57932033947,292.56893127899,312.87664195194,327.1720749345,349.88164908166,365.86785468743,391.26336919078,409.14031659695,437.53944680455,467.90980928584,489.28875967044,523.2511306012],description:"7/29-comma meantone scale, least square weights 3/2:4 5/4:1 6/5:1"},mean2sev:{frequencies:[261.6255653006,272.52663052146,292.24684137387,313.39402123097,326.45210604021,350.07440004945,364.66083404534,391.04793957621,407.34160211012,436.81711699543,468.42550014967,487.94322738789,523.2511306012],description:"2/7-comma meantone scale. Zarlino's temperament (1558). See also meaneb371"},mean2sev_15:{frequencies:[261.6255653006,272.52663052146,280.55692507618,292.24689370448,304.42377254813,313.39402847191,326.45203249943,350.07447082328,364.66081719444,391.04786051887,407.34165622677,419.34452602299,436.81710690282,468.42541627199,487.94330348661,523.2511306012],description:"15 of 2/7-comma meantone scale"},mean2sev_19:{frequencies:[261.6255653006,272.52663052146,280.55692507618,292.24689370448,304.42377254813,313.39402847191,326.45203249943,340.0543130973,350.07447082328,364.66081719444,375.40603866065,391.04786051887,407.34165622677,419.34452602299,436.81710690282,455.01770749831,468.42541627199,487.94330348661,508.27414914183,523.2511306012],description:"19 of 2/7-comma meantone scale"},mean2sev_31:{frequencies:[261.6255653006,264.72620698393,272.52663052146,280.55692507618,283.88190679319,292.24689370448,300.8583415146,304.42377254813,313.39402847191,317.10820138491,326.45203249943,336.07138073182,340.0543130973,350.07447082328,354.22315547012,364.66081719444,375.40603866065,379.85514366424,391.04786051887,395.6823437549,407.34165622677,419.34452602299,424.31412061457,436.81710690282,449.68851049921,455.01770749831,468.42541627199,473.97693555703,487.94330348661,502.32108537715,508.27414914183,523.2511306012],description:"31 of 2/7-comma meantone scale"},mean2seveb:{frequencies:[261.6255653006,274.26749945295,292.59076110537,312.44357330613,327.42660602987,349.76102048238,366.6169314736,391.04794861134,410.01084835752,437.49574139527,467.27496094916,489.74950989452,523.2511306012],description:'"2/7-comma" meantone with equal beating fifths. A.J. Ellis no. 8'},mean2sevr:{frequencies:[261.6255653006,272.52663052146,292.24289114742,313.39346366789,326.45152465405,350.07234194042,364.65868952128,391.04531121882,407.33886585294,436.81651812993,468.41855142334,487.93599106598,523.2511306012],description:"Rational approximation to 2/7-comma meantone, 1/1 = 262.9333"},mean9:{frequencies:[261.6255653006,274.03547926168,292.70827332867,306.59245933664,327.48360691354,349.79835961887,366.39065074918,391.35653176554,409.92008797511,437.85206746661,467.68706357679,489.87127257422,523.2511306012],description:"2/9-comma meantone scale, Lemme Rossi, Sistema musico (1666)"},mean94:{frequencies:[261.6255653006,268.79084150406,291.09659021292,315.25339315665,323.88740273232,350.76536842075,360.37196303797,390.27761906502,400.96635635801,434.24075936811,470.27645613296,483.15616342113,523.2511306012],description:"4/9-comma meantone scale"},mean9_15:{frequencies:[261.6255653006,274.03547926168,279.45274708261,292.70827332867,306.59245933664,312.65343270838,327.48360691354,349.79835961887,366.39065074918,391.35653176554,409.92008797511,418.0235894185,437.85206746661,467.68706357679,489.87127257422,523.2511306012],description:"15 of 2/9-comma meantone scale"},mean9_19:{frequencies:[261.6255653006,274.03547926168,279.45274708261,292.70827332867,306.59245933664,312.65343270838,327.48360691354,343.0174228875,349.79835961887,366.39065074918,373.63364091796,391.35653176554,409.92008797511,418.0235894185,437.85206746661,458.62082212371,467.68706357679,489.87127257422,513.10776453427,523.2511306012],description:"19 of 2/9-comma meantone scale"},mean9_31:{frequencies:[261.6255653006,268.72322665693,274.03547926168,279.45274708261,287.03404351137,292.70827332867,298.49467410529,306.59245933664,312.65343270838,321.13524775754,327.48360691354,333.95746354843,343.0174228875,349.79835961887,359.28803828513,366.39065074918,373.63364091796,383.76997851754,391.35653176554,401.97367512027,409.92008797511,418.0235894185,429.36393755067,437.85181455341,446.50763144636,458.62082212371,467.68706357679,480.3749841712,489.87127257422,499.55528826613,513.10776453427,523.2511306012],description:"31 of 2/9-comma meantone scale"},meaneb1071:{frequencies:[261.6255653006,273.45959631537,292.5323192343,305.76452283047,327.09038632535,349.9034421565,365.73073124967,391.23900009103,408.93579686983,437.45744778434,457.24482979639,489.13584427285,523.2511306012],description:"Equal beating 7/4 = 3/2 same."},meaneb1071a:{frequencies:[261.6255653006,273.94115519525,292.67936294368,306.45675889694,327.41929816594,349.81553441422,366.28252094772,391.33731744348,409.75863641311,437.78732645584,458.39517452459,489.75074612717,523.2511306012],description:"Equal beating 7/4 = 3/2 opposite."},meaneb341:{frequencies:[261.6255653006,272.43747957464,292.21954801903,313.43802026715,326.39113133433,350.09085029289,364.55867287416,391.02956482064,407.18921698842,436.75579855003,468.46925117002,487.82916876009,523.2511306012],description:"Equal beating 6/5 = 5/4 same. Almost 4/15 Pyth. comma"},meaneb371:{frequencies:[261.6255653006,272.52577151658,292.24657972098,313.39444482621,326.45151771442,350.07455777399,364.65985037488,391.0477633913,407.34013625771,436.81652657765,468.42591953828,487.94213100406,523.2511306012],description:"Equal beating 6/5 = 3/2 same. Practically 2/7-comma (Zarlino)"},meaneb371a:{frequencies:[261.6255653006,269.83862220337,291.42039690163,314.72828847419,324.6081803116,350.57044084899,361.57569171511,390.49462500658,421.72650333798,434.96526321606,469.75391665508,484.50062400899,523.2511306012],description:"Equal beating 6/5 = 3/2 opposite. Almost 2/5-comma"},meaneb381:{frequencies:[261.6255653006,275.92799893014,293.28437056932,311.73248946737,328.77414682856,349.45463702831,368.55847249214,391.74146894101,416.38271791821,439.14534885862,466.76838786866,492.28548089506,523.2511306012],description:"Equal beating 6/5 = 8/5 same. Almost 1/7-comma"},meaneb451:{frequencies:[261.6255653006,274.36682021224,292.8092284668,312.49148032108,327.70992276921,349.73795145032,366.77030983847,391.42412846541,410.48661799548,438.07873640926,467.5258138363,490.29448158868,523.2511306012],description:"Equal beating 5/4 = 4/3 same, 5/24 comma meantone. A.J. Ellis no. 6"},meaneb471:{frequencies:[261.6255653006,272.3284467197,292.18612898941,313.49179640307,326.31648163178,350.11087068539,364.43361138613,391.00720457415,407.00321492741,436.68087780422,468.52283272721,487.68970701588,523.2511306012],description:"Equal beating 5/4 = 3/2 same. Almost 5/17-comma"},meaneb471a:{frequencies:[261.6255653006,274.14912748586,292.7429036132,312.59777626068,327.56128980523,349.7776701617,366.52092076205,391.37968062521,410.11434970273,437.92977184699,467.63173811584,490.01645860508,523.2511306012],description:"Equal beating 5/4 = 3/2 opposite. Almost 1/5 Pyth. Gottfried Keller (1707)"},meaneb471b:{frequencies:[261.6255653006,272.31089540773,292.18072491748,313.50040506268,326.30440921209,350.11400731728,364.41338872146,391.00370158472,406.97310157871,436.668886633,468.53149836075,487.66729542944,523.2511306012],description:"21/109-comma meantone with 9/7 major thirds, almost equal beating 5/4 and 3/2"},meaneb472:{frequencies:[261.6255653006,270.83769079127,291.72826852127,314.23020335825,325.29440843388,350.38540704884,362.72286472858,390.7008399429,404.45761497645,435.65472502222,469.25816799182,485.78126704788,523.2511306012],description:"Beating of 5/4 = twice 3/2 same. Almost 5/14-comma"},meaneb472_19:{frequencies:[261.6255653006,270.8378472333,281.80541953687,291.72826852127,302.00051792575,314.23002185182,325.29459633135,336.74877333101,350.38540704884,362.72307424558,377.41153667283,390.7008399429,404.45808222448,420.83660282593,435.65497666633,450.99513069838,469.25816799182,485.78154764623,502.88674365212,523.2511306012],description:"Beating of 5/4 = twice 3/2 same, 19 tones"},meaneb472a:{frequencies:[261.6255653006,274.74648495017,292.92493846141,312.30633997417,327.96897748493,349.66886860972,367.20529370531,391.50146074488,411.13561642091,438.33843670622,467.34113372786,490.7787182415,523.2511306012],description:"Beating of 5/4 = twice 3/2 opposite. Almost 3/17-comma"},meaneb591:{frequencies:[261.6255653006,273.06215106005,292.41085266114,313.13038820279,326.81843330822,349.97621009739,365.27491737756,391.15765268623,418.87439289145,437.18488525956,468.16276342643,488.62782610925,523.2511306012],description:"Equal beating 4/3 = 5/3 same."},meaneb732:{frequencies:[261.6255653006,272.00548436883,292.08705896894,313.65121264041,326.09523618955,350.1701397801,364.06303937825,390.94102347986,406.4514961644,436.45893055948,468.68174619223,487.27655969467,523.2511306012],description:"Beating of 3/2 = twice 6/5 same. Almost 4/13-comma"},meaneb732_19:{frequencies:[261.6255653006,272.00553778846,280.94077405591,292.08707584055,303.67560621907,313.65118727632,326.09527197795,339.03307470248,350.17012966679,364.06310036266,376.02237826726,390.94103477068,406.45158772689,419.80330474394,436.45896585468,453.77543893118,468.68171912011,487.27662724555,506.60928680033,523.2511306012],description:"Beating of 3/2 = twice 6/5 same, 19 tones"},meaneb732a:{frequencies:[261.6255653006,270.68848625127,291.6822692306,314.3042667302,325.1920204578,350.41293324447,362.5515203525,390.67014898736,404.20304509584,435.55206635241,469.33217160858,485.59021720901,523.2511306012],description:"Beating of 3/2 = twice 6/5 opposite. Almost 1/3 Pyth. comma"},meaneb742:{frequencies:[261.6255653006,272.89343543801,292.35917287023,313.21341909223,326.70311046689,350.00714105462,365.08148980199,391.12308516115,407.96824372307,437.06899032128,468.24551969328,488.41224041213,523.2511306012],description:"Beating of 3/2 = twice 5/4 same."},meaneb742a:{frequencies:[261.6255653006,273.78850133971,292.63287562287,312.77409391616,327.31510698093,349.84341999552,366.10759179471,391.30612443552,409.49789158088,437.68290117536,467.80756449982,489.55615570194,523.2511306012],description:"Beating of 3/2 = twice 5/4 opposite. Almost 3/13-comma, 3/14 Pyth. comma"},meaneb781:{frequencies:[261.6255653006,273.88372205101,292.66195046404,312.72748571568,327.38015167213,349.82604176358,366.21672762941,391.32556326448,418.15568884829,437.74813244966,467.76108961433,489.67748280644,523.2511306012],description:"Equal beating 3/2 = 8/5 same."},meaneb891:{frequencies:[261.6255653006,272.7426257605,292.31307409948,313.28760473417,326.59990179186,350.03483972175,364.90860969063,391.092135133,419.1546662649,436.96549358815,468.31936361194,488.21959184068,523.2511306012],description:"Equal beating 8/5 = 5/3 same. Almost 5/18-comma"},meaneight:{frequencies:[261.6255653006,276.08926119362,293.33333347996,311.65444160511,328.88393162803,349.42547049952,368.74309237173,391.77416758435,413.43299207996,439.25532436715,466.69047534984,492.49097043477,523.2511306012],description:"1/8 Pyth. comma meantone scale"},meanfifth:{frequencies:[261.6255653006,274.56546814423,292.86978442859,312.39456569414,327.84548435462,349.70179235499,366.99791252626,391.46460164194,410.82629477826,438.21464222188,467.42914467878,490.54793493862,523.2511306012],description:"1/5-comma meantone scale (Verheijen)"},meanfifth2:{frequencies:[261.6255653006,279.06726965397,292.86986732103,312.39452419152,327.84547867349,349.70184487387,366.99801003998,391.46454285105,417.56218018201,438.2147004401,467.42901237995,490.54793493862,523.2511306012],description:"1/5-comma meantone by John Holden (1770)"},meanfifth_19:{frequencies:[261.6255653006,274.56546814423,279.06726965397,292.86978442859,307.35519222791,312.39456569414,327.84548435462,344.06059968708,349.70179235499,366.99791252626,373.01539917593,391.46460164194,410.82629477826,417.56217294621,438.21464222188,459.88868900496,467.42914467878,490.54793493862,514.81033759999,523.2511306012],description:"19 of 1/5-comma meantone scale"},meanfifth_43:{frequencies:[261.6255653006,265.91515911649,270.13633240739,274.56546814423,279.06726965397,283.49717461664,288.14537375445,292.86978442859,297.67175429757,302.39711110066,307.35519222791,312.39456569414,317.35355938713,322.556865357,327.84548435462,333.22081516619,338.51040756711,344.06059968708,349.70179235499,355.43547760922,361.07770857381,366.99791252626,373.01539917593,378.93660287884,385.14971481892,391.46460164194,397.88302689184,404.19904307077,410.82629477826,417.56217294621,424.19061149626,431.14564594215,438.21464222188,445.39957775044,452.46991103879,459.88868900496,467.42914467878,475.09307907327,482.63477102771,490.54793493862,498.59100550039,506.50570672499,514.81033759999,523.2511306012],description:"Complete 1/5-comma meantone scale"},meanfiftheb:{frequencies:[261.6255653006,275.80023422757,293.11157312801,311.73372470712,328.53333183909,349.48325286892,368.3828117434,391.46459711956,412.7266004334,438.69360944226,466.62683936965,491.82624824197,523.2511306012],description:'"1/5-comma" meantone with equal beating fifths'},meangold:{frequencies:[261.6255653006,272.97231199113,292.38331430233,313.17462880702,326.75706743029,349.99269211627,365.17193449866,391.13923210785,408.10300926149,437.12312635029,468.20685771475,488.51307131873,523.2511306012],description:"Meantone scale with Blackwood's R = phi, and diat./chrom. ST = phi, ~4/15-comma"},meanhalf:{frequencies:[261.6255653006,267.49544939623,290.69507255622,315.90677595028,322.99452506247,351.00752840096,358.88280562497,390.00836666198,398.75867291663,433.34262909025,470.92601754108,481.49180950675,523.2511306012],description:"1/2-comma meantone scale"},meanhar2:{frequencies:[261.6255653006,273.08769296879,292.41861893027,305.22982618403,326.83598255713,349.97156260351,365.30423365264,391.16284711627,408.30015740759,437.20230245522,456.35665612784,488.66055322307,523.2511306012],description:"1/9-Harrison's comma meantone scale"},meanhar3:{frequencies:[261.6255653006,274.22153683641,292.76499331753,306.86017365004,327.61072570921,343.38355445704,366.60389537541,391.39444778107,410.23814647641,437.9793418028,459.06587176894,490.10890120058,523.2511306012],description:"1/11-Harrison's comma meantone scale"},meanharris:{frequencies:[261.6255653006,273.71072489962,292.60907359238,306.12544311476,327.26186315247,349.85764856047,366.01847563765,391.29021017831,409.36491649663,437.62950220286,457.84473927605,489.45661357347,523.2511306012],description:"1/10-Harrison's comma meantone scale"},meanhsev:{frequencies:[261.6255653006,265.69493617871,271.18768033644,275.4057836544,279.68949451567,284.03983498254,289.91182549392,294.4211659268,299.00064605783,305.1819244006,309.92877868547,314.74946639166,321.25632089757,326.25319922315,331.32779988873,336.4813337451,343.43745382287,348.77934146077,354.20431777528,361.52682728594,367.15008027699,372.86080050545,378.66034414493,386.48843610249,392.49994642563,398.60496085649,406.84537033315,413.17351844213,419.60009331305,426.12662827999,434.93599657884,441.70106893056,448.57136642871,457.84473927605,464.96613926104,472.19830582795,481.96011959425,489.45661357347,497.06970936204,504.80122352123,515.23704142273,523.2511306012],description:"1/14-septimal schisma tempered meantone scale"},meanhskl:{frequencies:[261.6255653006,275.0605216927,293.02063313667,312.15345277639,328.18310911307,349.61186736411,367.56508220664,391.56529173291,411.67289207144,438.55312706018,467.18850946536,491.17950266504,523.2511306012],description:"Half septimal kleisma meantone"},meanlst357_19:{frequencies:[261.6255653006,273.71260157103,279.68803244686,292.60971924044,306.12821574316,312.81131320311,327.26311833974,342.38279105966,349.85736361975,366.02068710341,374.01129952811,391.29052886394,409.36829077259,418.30522648629,437.63082426891,457.84952434322,467.84458559023,489.45917220726,512.07206464598,523.2511306012],description:"19 of mean-tone scale, least square error in 3/2, 5/4 and 7/4"},meanmalc:{frequencies:[261.6255653006,279.16226462633,292.82999876562,312.45832383396,327.75622702832,349.72564885805,366.84815356577,391.43789792004,417.67588698136,438.12522309524,467.49265244264,490.38100841085,523.2511306012],description:"Meantone approximation to Malcolm's Monochord, 3/16 Pyth. comma"},meannkleis:{frequencies:[261.6255653006,277.55670411237,293.77792781181,311.66693695111,329.88161264913,349.96913477239,370.42222384066,392.07096746411,415.94530241673,440.25439013544,467.06275302556,494.35929617392,523.2511306012],description:"1/5 kleisma tempered meantone scale"},meanpi:{frequencies:[261.6255653006,275.38456311745,294.43027471344,309.91448590794,326.2128298123,348.77404705732,367.11600789597,392.50613131028,413.14795414706,434.87532652316,464.95175460796,489.40347900327,523.2511306012],description:"Pi-based meantone with Harrison's major third by Erv Wilson"},meanpi2:{frequencies:[261.6255653006,287.5806999253,296.7710142931,326.2128298123,336.6377243117,370.0346037192,381.85992557156,394.06315326167,433.15704755212,446.99959483943,491.34516423327,507.04724898227,523.2511306012],description:"Pi-based meantone by Erv Wilson analogous to 22-tET"},meanpkleis:{frequencies:[261.6255653006,274.33428876064,294.88060759996,309.2047285643,324.22465805628,348.50752497012,365.43662717622,392.80607455881,411.88702081614,442.73537947933,464.24169412807,486.7926967469,523.2511306012],description:"1/5 kleisma positive temperament"},meanquar:{frequencies:[261.6255653006,273.37431312998,292.50627485027,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale. Pietro Aaron's temp. (1523). 6/5 beats twice 3/2"},meanquar_14:{frequencies:[261.6255653006,273.37431312998,292.50627485027,305.64177427204,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,418.60090448096,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split D#/Eb and G#/Ab, Otto Gibelius (1666)"},meanquar_15:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177427204,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,418.60090448096,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb and G#/Ab"},meanquar_16:{frequencies:[261.6255653006,273.37431312998,279.93548123753,292.50629850443,305.64179898843,312.97722776199,327.03195662575,349.91920725962,365.63293356166,391.22137338448,408.78994578219,418.60090448096,437.39882871549,457.04097849371,468.01000025525,489.02679755603,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb, G#/Ab and A#/Bb"},meanquar_17:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177250659,312.977175335,327.03195662575,349.91912034749,365.63284274659,374.40803131735,391.22147055517,408.78994578219,418.60090448096,437.39889945791,457.04105241293,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb, F#/Gb, G#/Ab and A#/Bb"},meanquar_19:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177427204,312.977175335,327.03195662575,341.71789064962,349.91912034749,365.63284274659,374.40803131735,391.22147055517,408.78994578219,418.60090448096,437.39890198442,457.04105241293,468.01003810189,489.02683710225,510.98743222773,523.2511306012],description:"19 of 1/4-comma meantone scale"},meanquar_27:{frequencies:[261.6255653006,273.37431312998,279.93529690293,285.65065877038,292.50627485027,299.52642572255,305.64177427204,312.977175335,327.03195662575,334.88072358477,341.71789064962,349.91912034749,365.63284274659,374.40803131735,382.05221698715,391.22147055517,400.61078621746,408.78994578219,418.60090448096,427.14736482575,437.39890198442,447.89647345742,457.04105241293,468.01003810189,489.02683710225,500.76348165392,510.98743222773,523.2511306012],description:"27 of 1/4-comma meantone scale"},meanquar_31:{frequencies:[261.6255653006,267.90457886781,273.37431312998,279.93529690293,285.65065877038,292.50627485027,299.52642572255,305.64177427204,312.977175335,320.48862783822,327.03195662575,334.88072358477,341.71789064962,349.91912034749,358.31717956585,365.63284274659,374.40803131735,382.05221698715,391.22147055517,400.61078621746,408.78994578219,418.60090448096,427.14736482575,437.39890198442,447.89647345742,457.04105241293,468.01003810189,479.24227945773,489.02683710225,500.76348165392,510.98743222773,523.2511306012],description:"31 of 1/4-comma meantone scale"},meanquareb:{frequencies:[261.6255653006,274.90575459855,292.80763523599,312.14798050979,327.88746490679,349.6453532581,367.3522744581,391.22144795733,411.14173398328,437.99455416256,467.00507093977,490.61429903129,523.2511306012],description:"Variation on 1/4-comma meantone with equal beating fifths"},meanquarm23:{frequencies:[261.6255653006,273.51763645063,292.40504357126,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,408.78994578219,436.04260883433,468.17206422213,489.12605686634,523.2511306012],description:"1/4-comma meantone approximation with minimal order 23 beatings"},meanquarr:{frequencies:[261.6255653006,273.37036621967,292.50063201309,312.98169478553,327.03195662575,349.92419358955,365.62579001637,391.21579858034,408.78994578219,437.39258595147,468.01906681552,489.01974822542,523.2511306012],description:"Rational approximation to 1/4-comma meantone, Kenneth Scholz, MTO 4.4, 1998"},meansabat:{frequencies:[261.6255653006,279.13726386405,294.25495796556,313.95067836072,330.95382015833,348.87783040382,372.229687597,392.38914286775,418.65339720992,441.32709511026,470.8669722571,496.36848628125,523.2511306012],description:"1/9-schisma meantone scale of Eduard Sa'bat-Garibaldi"},meansabat_53:{frequencies:[261.6255653006,264.79625752493,268.00537599851,271.25338610366,275.79485124716,279.13726386405,282.52018221184,285.94410045135,290.73152483281,294.25495796556,297.82109228474,301.4304452945,305.08354077075,310.19140758515,313.95067836072,317.75550958044,321.60645175541,326.99095182327,330.95382015833,334.96471528237,339.02421924159,343.13292113612,348.87783040382,353.10595017045,357.38531136087,361.71653498009,367.77258074571,372.229687597,376.74081403286,381.30660995465,385.92774054592,392.38914286775,397.14458487807,401.95765903525,406.82906379475,413.640406907,418.65339720992,423.72714093867,428.86237189887,436.04260883433,441.32709511026,446.67562589029,452.08897683944,457.56793273834,465.22877230071,470.8669722571,476.57350267936,482.349191678,490.42492909292,496.36848628125,502.38407462043,508.4725670703,514.63484717027,523.2511306012],description:"53-tone 1/9-schisma meantone scale"},meanschis:{frequencies:[261.6255653006,275.81646505128,294.24573392894,310.20599265769,327.03195662575,348.88329767713,367.80716871461,392.38299382393,413.66634097248,436.10412364188,465.24335632603,490.47874118496,523.2511306012],description:"1/8-schisma temperament, Helmholtz"},meanschis7:{frequencies:[261.6255653006,275.84425785506,294.23387584933,310.2247482054,327.0846843223,348.89032888179,367.85164222246,392.37508610937,413.69968681881,436.18322603255,465.26210635182,490.54793493862,523.2511306012],description:"1/7-schisma linear temperament"},meanschis_17:{frequencies:[261.6255653006,275.81646505128,290.77709705464,294.24573392894,310.20599265769,327.03195662575,330.93307160522,348.88329767713,367.80716871461,372.19468374184,392.38299382393,413.66634097248,436.10412364188,441.30634506723,465.24335632603,490.47874118496,496.32958936031,523.2511306012],description:"17-tone 1/8-schisma linear temperament"},meansept:{frequencies:[261.6255653006,273.93523095528,292.67762672082,312.70235991264,327.41522444303,349.81667202162,366.27579142084,391.33604481052,409.74867679276,437.78330574787,467.73603562223,489.74334292241,523.2511306012],description:"Meantone scale with septimal diminished fifth"},meansept2:{frequencies:[261.6255653006,273.61459551034,286.15296204753,292.57963558274,305.98714063953,320.00886175336,327.19620693615,342.18982383643,349.87514759905,365.9082279648,382.67602660872,391.27063976147,409.20043831214,427.95210889573,437.56358849756,457.61500463173,478.58500343311,489.333659422,511.75744671018,523.2511306012],description:"Meantone scale with septimal neutral second"},meansept3:{frequencies:[261.6255653006,267.11515986718,271.23581508831,275.42019673559,281.19923906193,285.53716249988,289.94217244295,296.02592413073,300.59257160392,305.22982618403,309.9384746623,316.44180152381,321.32358037849,326.28048244956,333.12670774706,338.26588629419,343.48414905091,348.7829114007,356.10146388137,361.59490682213,367.17305499414,374.87731434423,380.66058361349,386.53284867747,394.643327573,400.73152907611,406.91341882127,413.19091223118,421.86074762795,428.36858751681,434.97682067587,444.1040384307,450.95501471222,457.91167766162,464.97592623609,474.73234784313,482.05581210758,489.49253462334,499.76337935275,507.47298512535,515.30182087389,523.2511306012],description:"Pythagorean scale with septimal minor third"},meansept4:{frequencies:[261.6255653006,266.94086705872,271.13211808455,275.38917613856,280.98410555769,285.39585012732,289.87686370457,295.76613145071,300.40996929954,305.12672026341,309.91752915454,316.21395200486,321.17884203959,326.22168604472,332.8493514236,338.07543464185,343.38355445704,348.77505435772,355.86092403367,361.44831302863,367.12342987925,374.58207334188,380.46340397682,386.43730087372,394.28810581018,400.47907310734,406.76701374557,413.15368163355,421.54749623588,428.16623317002,434.88889120201,443.72428802318,450.69091522486,457.76754776364,464.95497741911,474.40121026751,481.84980583512,489.41535214975,499.35853288878,507.19898454493,515.16253949886,523.2511306012],description:"Pythagorean scale with septimal narrow fourth"},meansev:{frequencies:[261.6255653006,275.93321340298,293.28595453555,311.72996498387,328.77769811601,349.45369437647,368.5644419122,391.74252566418,413.16594588103,439.14890519043,466.76586696593,492.29212632197,523.2511306012],description:"1/7-comma meantone scale, Jean-Baptiste Romieu (1755)"},meansev2:{frequencies:[261.6255653006,273.98141462199,292.76593693997,312.83835055233,327.61283758281,350.07440004945,366.60744235102,391.74252566418,410.24343789088,438.37026184168,468.42550014967,490.54793493862,524.18054130269],description:"Meantone scale with 1/7-comma stretched octave (stretched meansept)"},meansev_19:{frequencies:[261.6255653006,275.93321340298,278.07859353335,293.28589524255,309.32501829942,311.72996858511,328.77775508885,346.75764506664,349.4536277652,368.56443339655,371.42996022741,391.74260033637,413.16585280598,416.37814821359,439.14890011719,463.16493144882,466.76596133102,492.29202110912,496.11959049595,523.2511306012],description:"19 of 1/7-comma meantone scale"},meanseveb:{frequencies:[261.6255653006,276.822915312,293.45907344559,311.2600957924,329.2717708679,349.29792128041,369.56105314287,391.74259807358,414.53862252605,439.49286138442,466.19439430972,493.21190508606,523.2511306012],description:'"1/7-comma" meantone with equal beating fifths'},meansixth:{frequencies:[261.6255653006,275.36245350283,293.11247215425,312.00666699279,328.38886075091,349.55699144229,367.91095120397,391.62676241399,412.18948168074,438.75944753732,467.04212833931,491.56459996916,523.2511306012],description:"1/6-comma meantone scale (tritonic temperament of Salinas)"},meansixth_19:{frequencies:[261.6255653006,275.36245350283,278.49009641114,293.11247215425,308.50278723002,312.00666699279,328.38886075091,345.6314161331,349.55699144229,367.91095120397,372.08969287196,391.62676241399,412.18948168074,416.87124381956,438.75944753732,461.79691129422,467.04212833931,491.56459996916,517.37477513058,523.2511306012],description:"19 of 1/6-comma meantone scale"},meansixtheb:{frequencies:[261.6255653006,276.39673661379,293.31426069206,311.4574698476,328.96404447481,349.37515437283,369.07004939896,391.62674884124,413.78350416977,439.15979251365,466.37460465854,492.63446576705,523.2511306012],description:'"1/6-comma" meantone with equal beating fifths'},meansixthm:{frequencies:[261.6255653006,275.36250599118,293.11251278827,312.00669222389,328.38895179964,349.55706816887,367.91095120397,391.62667645325,414.52369088643,438.75941205608,467.04206359353,491.56462836305,523.2511306012],description:"modified 1/6-comma meantone scale, wolf spread over 2 fifths"},meansixthm2:{frequencies:[261.6255653006,276.14113065853,293.11251278827,310.24975557428,328.38895179964,349.55706816887,367.91095120397,391.62667645325,414.52380581681,438.75941205608,465.72523006308,491.56462836305,523.2511306012],description:"modified 1/6-comma meantone scale, wolf spread over 4 fifths"},meansixthpm:{frequencies:[261.6255653006,275.00020270933,293.00227310437,309.72478954314,328.14198392915,348.83408706747,367.49599295996,391.5530240856,412.50030385781,438.51190905657,465.11211608996,491.10256480205,523.2511306012],description:"modified 1/6P-comma temperament, French 18th century"},meansixthso:{frequencies:[261.6255653006,273.09145986506,292.50627485027,313.30134186202,327.03195662575,350.28154752005,365.63284274659,391.62667645325,408.78994578219,437.85193595173,468.98001879925,489.53334447372,524.3356019912],description:"1/6-comma meantone scale with 1/6-comma stretched oct, Dave Keenan TL 13-12-99"},meanstr:{frequencies:[261.6255653006,272.52663052146,292.30447317753,313.51763757869,326.58087306932,350.28154752005,364.87661266094,391.35649333595,407.66301227525,437.24799400905,468.98001879925,488.52085380073,523.97386302914],description:"Meantone with 1/9-comma stretched octave, Petr Parizek (2006)"},meanten:{frequencies:[261.6255653006,276.96346718799,293.59840699152,311.2324721493,329.47860040677,349.26769656434,369.74365294187,391.95114287501,414.92943551322,439.85086739936,466.26912673157,493.60433806962,523.2511306012],description:"1/10-comma meantone scale"},meanthird:{frequencies:[261.6255653006,271.40047399919,291.9012907804,313.95067836072,325.68056936328,350.28154752005,363.36884069528,390.81668391305,405.4184580124,436.04260883433,468.98001879925,486.50215045777,523.2511306012],description:"1/3-comma meantone scale (Salinas)"},meanthird_19:{frequencies:[261.6255653006,271.40047399919,281.38801176707,291.9012907804,302.80736724606,313.95067836072,325.68056936328,337.848714425,350.28154752005,363.36884069528,376.74081403286,390.81668391305,405.4184580124,420.33785775232,436.04260883433,452.33412516107,468.98001879925,486.50215045777,504.40543017669,523.2511306012],description:"Complete 1/3-comma meantone scale"},meanthirdeb:{frequencies:[261.6255653006,273.41679662438,292.30169912182,312.83755546226,326.81234905863,349.91518709086,365.63683018302,390.81669745772,408.5035451685,436.83089868331,467.63468237516,488.59687355467,523.2511306012],description:'"1/3-comma" meantone with equal beating fifths'},meanvar1:{frequencies:[261.6255653006,274.22463192287,292.50627485027,312.00669222389,327.03195662575,349.55706816887,366.3906401674,391.22147055517,410.48618883318,437.39890198442,467.04206359353,489.53334447372,523.2511306012],description:"Variable meantone 1: C-G-D-A-E 1/4, others 1/6"},meanvar2:{frequencies:[261.6255653006,274.19219069011,292.50627485027,312.04360750473,327.03195662575,349.70184487387,366.23895640989,391.22147055517,410.65012590831,437.39890198442,467.23549927892,489.3306802979,523.2511306012],description:"Variable meantone 2: C..E 1/4, 1/5-1/6-1/7-1/8 outward both directions"},meanvar3:{frequencies:[261.6255653006,275.36250599118,292.50627485027,310.71739423852,327.03195662575,349.55706816887,367.15000817177,391.22147055517,413.04376116614,437.39890198442,466.0760911248,489.53334447372,523.2511306012],description:"Variable meantone 3: C..E 1/4, 1/6 next, then Pyth."},meanvar4:{frequencies:[261.6255653006,275.07759559501,292.50627485027,311.03921839762,327.03195662575,349.91912034749,366.77012764335,391.22147055517,412.61639318626,437.39890198442,466.55882736321,489.02683710225,523.2511306012],description:"Variable meantone 4: naturals 1/4-comma, accidentals Pyth."},mediant16:{frequencies:[261.6255653006,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,523.2511306012],description:"Mediant doubling of octave done four times"},mercadier:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.42509491746,328.14198392915,349.22823143301,368.74309237173,391.5530240856,413.90012676351,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Mercadier's well-temperament (1777), 1/12 and 1/6 Pyth. comma"},mercadier2:{frequencies:[261.6255653006,276.14388692511,292.95319623755,310.40895756597,328.03206784165,349.20805980193,368.45885450371,391.49761638186,413.86785247997,438.37641748302,465.57175090792,491.63473786767,523.2511306012],description:"Mercadier de Belestas (1776)"},mercator:{frequencies:[261.6255653006,272.09448029963,279.3054110864,290.48161516351,306.08206748155,318.32990397837,326.76614606023,335.42596179815,348.84778913489,362.80689075348,372.42184279259,387.32403355801,408.12545368833,418.94141877379,435.70530841001,453.13974129598,465.14865565404,490.12996697565,509.74216322321,523.2511306012],description:"19 out of 53-tET, see Mandelbaum p. 331"},merrick:{frequencies:[261.6255653006,278.62147458377,295.28844751169,312.94924079019,329.91874474504,349.29981986967,371.62722343835,394.01440557319,416.60121863153,438.96906929631,468.0242659544,493.6331420766,523.2511306012],description:"A. Merrick's melodically tuned equal temperament (1811)"},mersen_l1:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Mersenne lute 1"},mersen_l2:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Mersenne lute 2"},mersen_s1:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Mersenne spinet 1"},mersen_s2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Mersenne spinet 2"},mersenmt1:{frequencies:[261.6255653006,273.37431312998,292.50627485027,311.03921839762,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,466.55882736321,489.02683710225,523.2511306012],description:"Mersenne's Improved Meantone 1"},mersenmt2:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.11326130363,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Mersenne's Improved Meantone 2"},mersenne:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,313.95067836072,322.99452506247,327.03195662575,340.65828815182,344.52749339997,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,408.78994578219,413.43299207996,418.60090448096,430.65936674996,436.04260883433,454.2110508691,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,510.98743222773,523.2511306012],description:"31-note choice system of Mersenne, Harmonie universelle (1636)"},meyer:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Max Meyer, see Doty, David, 1/1 August 1992 (7:4) p.1 and 10-14"},meyer_29:{frequencies:[261.6255653006,268.26840191956,275.93321340298,286.15296204753,289.72987407313,294.32876096318,306.59245933664,321.92208230347,327.03195662575,331.11985608357,343.38355445704,344.91651675372,357.69120255941,367.91095120397,372.50983809402,383.2405741708,386.30649876417,392.4383479509,408.78994578219,413.89982010446,429.2294430713,441.49314144476,457.84473927605,459.88868900496,482.88312345521,490.54793493862,496.67978412536,510.98743222773,515.07533168556,523.2511306012],description:"Max Meyer, see Doty, David, 1/1 August 1992 (7:4) p.1 and 10-14"},mid_enh1:{frequencies:[261.6255653006,269.10058145205,336.37572681506,348.83408706747,392.4383479509,403.65087217807,504.56359022259,523.2511306012],description:"Mid-Mode1 Enharmonic, permutation of Archytas's with the 5/4 lying medially"},mid_enh2:{frequencies:[261.6255653006,271.31540105247,339.14425131559,348.83408706747,392.4383479509,406.97310157871,508.71637697339,523.2511306012],description:"Permutation of Archytas' Enharmonic with the 5/4 medially and 28/27 first"},miller19:{frequencies:[261.6255653006,271.16557874802,283.07475767856,293.39690257971,304.09543631541,315.18408718336,326.67707691855,338.58915326012,350.93559605343,363.73224209988,376.99551198295,390.74241649248,407.9032302438,422.77716528297,438.1934715504,454.17192383337,470.73301771751,487.89800430439,505.68889852562,524.12852955557],description:"TOP tempered nr. 64 [1202.9, 570.4479508], 7-limit {225/224, 1029/1000}"},miller7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,313.95067836072,329.64821227876,353.19451315581,366.27579142084,392.4383479509,412.06026534844,439.53094970501,470.92601754108,494.47231841813,523.2511306012],description:"Herman Miller, 7-limit JI. mode of parizek_ji1"},miller_12:{frequencies:[261.6255653006,273.36657578691,291.63627719304,313.29104303136,327.35065305942,349.22823143301,364.90060015836,391.99543598175,418.19337019276,436.9606979923,456.57025003029,487.08386390194,523.2511306012],description:"Herman Miller, scale with appr. to three 7/4 and one 11/8. Tuning List 19-11-99"},miller_12a:{frequencies:[261.6255653006,273.46133384191,291.68681828778,313.23675853409,327.40738352015,349.22823143301,365.02708698668,391.99543598175,418.12090908234,437.03642407223,456.80766452229,487.25270356141,523.85596330884],description:'Herman Miller, "Starling" scale, alternative version TL 25-11-99'},miller_12r:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,454.2110508691,484.4917875937,523.2511306012],description:'Herman Miller, "Starling" scale rational version'},miller_ar1:{frequencies:[261.6255653006,276.1828093671,293.13465239421,310.07474405997,327.9937953665,348.83408706747,368.24374600687,391.64146650178,414.27421384356,438.21489534465,465.11211608996,490.99166158792,523.2511306012],description:'Herman Miller, "Arrow I" well-temperament'},miller_ar2:{frequencies:[261.6255653006,276.1828093671,293.13465239421,310.2849072826,328.2161033156,349.07052034394,368.24374600687,391.64146650178,414.27421384356,438.51190905657,465.42736069124,491.32444638706,523.2511306012],description:'Herman Miller, "Arrow II" well-temperament'},miller_b1:{frequencies:[261.6255653006,276.37000081643,292.93610587951,310.49521248455,328.2161033156,348.83408706747,368.4933346061,391.64146650178,413.993616853,438.80912407872,465.11211608996,491.32444638706,523.2511306012],description:'Herman Miller, "Butterfly I" well-temperament'},miller_b2:{frequencies:[261.6255653006,276.55731914056,293.13465239421,310.70566022736,328.2161033156,349.07052034394,368.74309237173,392.17254067411,414.27421384356,439.10654054756,465.42736069124,491.99069280383,523.2511306012],description:'Herman Miller, "Butterfly II" well-temperament'},miller_bug:{frequencies:[261.6255653006,275.99574470663,292.73769384471,310.49521248455,327.54963108844,348.83408706747,368.4933346061,391.64146650178,413.993616853,437.62147130622,465.11211608996,491.32444638706,523.2511306012],description:'Herman Miller, "Bug I" well-temperament'},miller_dim:{frequencies:[261.6255653006,272.37088095799,275.97178311718,291.10467300644,307.06737543415,311.12698372208,323.9053895548,328.18760802294,346.1837483498,365.1667076515,369.99442271164,385.1905938463,390.2830385166,411.68417663589,434.25884690128,440,458.07139483414,464.12736626882,489.57775198944,516.42371048788,523.2511306012],description:"Diminished temperament, g=92.421, oct=1/4, 7-limit"},miller_nikta:{frequencies:[261.6255653006,272.78230567952,282.82337239762,292.30660227893,305.1368529352,315.1779191367,326.89249731477,341.39626079795,349.76381456689,364.82541608424,379.88701473,391.60159255926,407.77886614283,422.28262813098,436.22855406869,456.86852448015,469.69877536137,488.10739794888,508.74736733766,523.2511306012],description:'Herman Miller, 19-tone scale of "Nikta". Tuning List 22-1-99'},miller_sp:{frequencies:[261.6255653006,276.74268633071,292.73329748773,304.15432597486,321.72882314722,340.31880135827,353.5963846,374.02771873076,395.63960626236,411.07553805605,434.82810464551,459.95313047266,477.89826295658,505.51194770063,525.23456349057],description:"Herman Miller, Superpelog temperament, TOP tuning"},minor_5:{frequencies:[261.6255653006,299.00064605783,348.83408706747,418.60090448096,465.11211608996,523.2511306012],description:"A minor pentatonic"},minor_clus:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,353.19451315581,372.08969287196,392.4383479509,418.60090448096,441.49314144476,465.11211608996,470.92601754108,523.2511306012],description:"Chalmers' Minor Mode Cluster, Genus [333335]"},minor_wing:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Chalmers' Minor Wing with 7 minor and 6 major triads"},minortone:{frequencies:[261.6255653006,264.87670583656,269.18630372462,273.56601964703,276.96554054138,281.47182622933,286.05143175444,290.70554674078,294.31805527354,299.10666990622,303.97319627313,307.75057781118,312.75774231814,317.84637624619,323.01780144749,327.03184444407,332.35271908155,337.76016543181,341.95740725719,347.52112383796,353.17536321933,358.9216002989,363.3818066762,369.29410472703,375.30259493676,379.96636500161,386.14849505708,392.43120962619,398.81614754309,403.7721109712,410.34156772664,417.0179085097,422.20006196255,429.06934285921,436.05038835349,443.14501943782,448.65184388114,455.95150328441,463.36992699746,469.12808274602,476.76089208744,484.51788878959,492.4010934061,498.52001054206,506.63103252794,514.8740254656,523.2511306012],description:"Minortone temperament, g=182.466089, 5-limit"},miracle1:{frequencies:[261.6255653006,266.71173418545,279.86396690685,285.30470202322,299.37379946195,305.19382000629,320.24370022528,326.46944327063,342.56848033562,349.22823143301,366.44956000397,373.57357677338,391.99543598175,399.61607881612,419.32216217931,427.47405410759,448.5538823653,457.27406033445,479.82340237272,489.15147723638,513.27277840175,523.2511306012],description:'21 out of 72-tET Pyth. scale "Miracle/Blackjack", Keenan & Erlich, TL 2-5-2001'},miracle1a:{frequencies:[261.6255653006,266.57640943865,279.87817034289,285.17441410431,299.40418912991,305.0699313594,320.29246281951,326.35348199782,342.63803067389,349.1219037468,366.54256247747,373.47879032775,392.11482112276,399.53496279579,419.47115746916,427.40897376302,448.73603972606,457.22764679928,480.04261976898,489.12665346498,513.5333359992,523.2511306012],description:"Version of Blackjack with just 11/8 intervals"},miracle2:{frequencies:[261.6255653006,266.71172956369,274.52699087907,279.86396690685,285.30469707927,293.66477470251,299.3738011912,305.19381471768,314.13668880034,320.24370207508,326.46943949911,336.03573785931,342.56848231438,349.22822739856,359.4614100947,366.44956423737,373.57357245769,380.83607584373,391.99544051026,399.61607650784,407.38486242506,419.32216702351,427.4740516384,435.78441397758,448.55389013814,457.27405769313,466.16375074742,479.82341068742,489.15147723638,498.66088722045,513.27278729609,523.2511306012],description:'31 out of 72-tET Pythagorean scale "Miracle/Canasta", tempered Fokker-M, 36 7-limit tetrads'},miracle24:{frequencies:[261.6255653006,266.71173418545,274.52698453615,279.86396690685,285.30470202322,299.37379946195,305.19382000629,320.24370022528,326.46944327063,342.56848033562,349.22823143301,366.44956000397,373.57357677338,391.99543598175,399.61607881612,419.32216217931,427.47405410759,448.5538823653,457.27406033445,466.16376151809,479.82340237272,489.15147723638,498.66089874196,513.27277840175,523.2511306012],description:"Miracle[24] in 72-tET tuning."},miracle2a:{frequencies:[261.6255653006,266.57640943865,274.68028654691,279.87817034289,285.17441410431,293.84366906071,299.40418912991,305.0699313594,314.34400674513,320.29246281951,326.35348199782,336.27457379784,342.63803067389,349.1219037468,359.73515228832,366.54256247747,373.47879032775,380.54627680087,392.11482112276,399.53496279579,407.09552105481,419.47115746916,427.40897376302,435.49700296564,448.73603972606,457.22764679928,465.87994655565,480.04261976898,489.12665346498,498.38259075187,513.5333359992,523.2511306012],description:"Version of Canasta with just 11/8 intervals"},miracle3:{frequencies:[261.6255653006,266.71172956369,271.8967720342,274.52699087907,279.86396690685,285.30469707927,290.85119844166,293.66477470251,299.3738011912,305.19381471768,311.12697293924,314.13668880034,320.24370207508,326.46943949911,332.81620914398,336.03573785931,342.56848231438,349.22822739856,356.01744208336,359.4614100947,366.44956423737,373.57357245769,380.83607584373,384.52012922913,391.99544051026,399.61607650784,407.38486242506,411.32573797959,419.32216702351,427.4740516384,435.78441397758,440.00001524924,448.55389013814,457.27405769313,466.16375074742,470.67322937359,479.82341068742,489.15147723638,498.66088722045,503.48472993456,513.27278729609,523.2511306012],description:'41 out of 72-tET Pythagorean scale "Miracle/Studloco", Erlich/Keenan 2001'},miracle31s:{frequencies:[261.6255653006,266.63636836248,274.61234258734,279.87187586531,285.23214274484,293.7643779857,299.39072204343,305.12482507342,314.2521161294,320.27085311289,326.40486440328,336.1687117034,342.60720791066,349.16901789451,359.61381619398,366.50134650551,373.52079096839,380.6746756467,392.06191220286,399.57090708206,407.22371854314,419.40512463865,427.43781242392,435.62434685833,448.6553095271,457.24821364991,466.00569400686,479.94546308962,489.13765420145,498.50589943595,513.41785698047,523.2511306012],description:"Canasta with Secor's minimax generator of 116.7155941 cents (5:9 exact). XH5, 1976"},miracle3a:{frequencies:[261.6255653006,266.57640943865,271.6209387912,274.68028654691,279.87817034289,285.17441410431,290.57088243021,293.84366906071,299.40418912991,305.0699313594,310.84289043406,314.34400674513,320.29246281951,326.35348199782,332.52919812642,336.27457379784,342.63803067389,349.1219037468,355.72847573316,359.73515228832,366.54256247747,373.47879032775,380.54627680087,384.83248369581,392.11482112276,399.53496279579,407.09552105481,411.6807594913,419.47115746916,427.40897376302,435.49700296564,440.40213577526,448.73603972606,457.22764679928,465.87994655565,471.12729153307,480.04261976898,489.12665346498,498.38259075187,503.99602271809,513.5333359992,523.2511306012],description:"Version of Studloco with just 11/8 intervals"},miracle3ls:{frequencies:[261.6255653006,266.8561524992,272.19132869617,274.36355553357,279.84880885615,285.44374339214,291.1505189834,293.47406686496,299.34138986722,305.32601617869,311.43030899178,313.91568307924,320.1916880693,326.59318586748,333.12264767748,335.78115718319,342.4943108472,349.34167821305,356.32594256772,359.16962765504,366.35037871957,373.67471357934,381.14545968569,384.18721873359,391.86813762951,399.70261841457,407.69373119716,410.94736065575,419.16328558448,427.54349328421,436.09121881038,439.57145109254,448.35967321435,457.32356924795,466.46667727785,470.18934850506,479.58967749961,489.177972196,498.95793401383,502.93987502638,512.99500332159,523.2511306012],description:"Miracle-41 in a 7-limit least-squares tuning, Gene Ward Smith, 2001"},miracle3p:{frequencies:[261.6255653006,266.34679554672,270.06721067987,274.94077677072,279.90228841312,284.95333588433,290.09553330897,294.14767822015,299.45579274291,304.85969791727,310.36112062791,314.69634158508,320.37527393455,326.15668500873,332.04242788125,336.6805001021,342.75615313904,348.94144590806,355.2383548887,360.20043713509,366.70052302062,373.3179099666,380.0547104455,385.36343543368,392.31760641523,399.39727291251,406.60469732047,412.28427858225,419.7242587073,427.29849640545,435.00941939202,441.0857666732,449.04549132915,457.14885520764,465.39844769831,471.89927840742,480.41505607532,489.08450736089,497.91040254418,504.86537329764,513.97604599191,523.2511306012],description:"Least squares Pythagorean approximation to partch_43"},miracle41s:{frequencies:[261.6255653006,266.63636836248,269.45164985995,274.61234258734,279.87187586531,285.23214274484,290.69507255622,293.7643779857,299.39072204343,305.12482507342,310.96875093738,314.2521161294,320.27085311289,326.40486440328,332.65635780028,336.1687117034,342.60720791066,349.16901789451,355.85650343121,359.61381619398,366.50134650551,373.52079096839,380.6746756467,384.69403121132,392.06191220286,399.57090708206,407.22371854314,411.52339231679,419.40512463865,427.43781242392,435.62434685833,440.22388881539,448.6553095271,457.24821364991,466.00569400686,470.92601754108,479.94546308962,489.13765420145,498.50589943595,503.76937659657,513.41785698047,523.2511306012],description:"StudLoco with Secor's minimax generator of 116.7155941 cents (5:9 exact). XH5, 1976"},miracle_12:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,336.03572815422,342.56848033562,359.46139971304,366.44956000397,384.52011812375,411.32572372413,440,470.6732130613,523.2511306012],description:"A 12-tone subset of Blackjack with six 4-7-9-11 tetrads"},miracle_12a:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,342.56848033562,366.44956000397,391.99543598175,419.32216217931,448.5538823653,479.82339960115,489.15147723638,513.27277840175,523.2511306012],description:"A 12-tone chain of Miracle generators and subset of Blackjack"},"24erlich-keenan":{frequencies:[261.6255653006,266.71173469898,279.86396636799,285.30470202322,290.8512090818,299.37380003836,305.19381941867,320.24370022528,326.46944389922,342.56847967604,349.22823143301,356.01745305102,366.44956070954,373.5735760541,391.99543598175,399.61607958554,407.38487340641,419.32216137194,427.47405410759,448.55388322895,457.27405945401,479.82340237272,489.15147817819,498.66089778183,523.2511306012],description:"24 note mapping for Erlich/Keenan Miracle scale low version, tuned to 72-equal"},miracle_8:{frequencies:[261.6255653006,279.86396690685,314.13668154225,336.03572815422,366.44956000397,391.99543598175,419.32216217931,448.5538823653,523.2511306012],description:"tet3a in 72-et"},miring1:{frequencies:[261.6255653006,285.29448470177,307.6953604706,387.15515639797,420.96788906714,523.2511306012],description:"Gamelan Miring from Serdang wetan, Tangerang. 1/1=309.5 Hz"},miring2:{frequencies:[261.6255653006,279.34865171253,304.66723527068,384.42070010042,412.69311132744,523.2511306012],description:"Gamelan Miring (Melog gender) from Serdang wetan"},misca:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,348.83408706747,392.4383479509,412.06026534844,433.74764773521,457.84473927605,523.2511306012],description:"21/20 x 20/19 x 19/18=7/6 7/6 x 8/7=4/3"},miscb:{frequencies:[261.6255653006,269.80136421624,278.50463402967,319.76457981184,348.83408706747,392.4383479509,404.70204632437,417.75695104451,479.64686971777,523.2511306012],description:"33/32 x 32/31x 31/27=11/9 11/9 x 12/11=4/3"},miscc:{frequencies:[261.6255653006,276.00059636107,292.04714266113,310.07474405997,348.83408706747,392.4383479509,414.00089454161,438.0707139917,465.11211608996,523.2511306012],description:"96/91 x 91/86 x 86/54=32/27. 32/27 x 9/8=4/3."},miscd:{frequencies:[261.6255653006,271.68808704293,282.55561052465,294.32876096318,348.83408706747,392.4383479509,407.5321305644,423.83341578697,441.49314144476,523.2511306012],description:"27/26 x 26/25 x 25/24=9/8. 9/8 x 32/27=4/3."},misce:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,348.83408706747,392.4383479509,420.46965851882,452.81347840488,490.54793493862,523.2511306012],description:"15/14 x 14/13 x 13/12=5/4. 5/4 x 16/15= 4/3."},miscf:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,378.42269266694,392.4383479509,406.97310157871,418.60090448096,504.56359022259,523.2511306012],description:"SupraEnh1"},miscg:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,504.56359022259,523.2511306012],description:"SupraEnh 2"},misch:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,392.4383479509,406.97310157871,490.54793493862,504.56359022259,523.2511306012],description:"SupraEnh 3"},misty:{frequencies:[261.6255653006,268.57642185399,270.57706033988,272.59260010205,274.62315370363,276.66883458144,284.01936005382,286.13503371773,288.26646546986,290.41377434565,292.57708030445,300.35025535204,302.58757688062,304.84156607104,307.11234355974,309.40003795144,311.70477168653,319.9861304005,322.36972224007,324.77106769218,327.19030275625,329.62755691287,338.38508739928,340.90573394089,343.44515491415,346.00349213972,348.58088853904,357.84197030948,360.50755209334,363.19298782427,365.89842747751,368.62402219236,378.41760905933,381.23645754858,384.07630597582,386.93730633346,389.81962065329,392.72340320054,403.157261366,406.16039889903,409.18590458221,412.23394976407,415.30469757995,426.33849458487,429.51431022199,432.71378016074,435.93708308397,439.18439906139,450.85263092877,454.21105352848,457.59449053401,461.00313090234,464.43716505707,476.77631130474,480.3278378528,483.9058226648,487.51045723915,491.14194572312,494.80048247871,507.94632001299,511.73003620658,515.54193450341,519.38223078906,523.2511306012],description:"Misty temperament, g=96.787939, p=400, 5-limit"},mistyschism:{frequencies:[261.6255653006,278.75251614148,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,418.12877421223,440.99519155196,465.63729761752,496.11959049595,523.2511306012],description:"Mistyschism scale 32805/32768 and 67108864/66430125"},mixed9_3:{frequencies:[261.6255653006,273.20871865617,285.30470202322,311.12698372208,349.22823143301,391.99543598175,409.35055662695,427.47405410759,466.16376151809,523.2511306012],description:"A mixture of the hemiolic chromatic and diatonic genera, 75 + 75 + 150 + 200 c"},mixed9_4:{frequencies:[261.6255653006,271.89678302796,282.57123920205,305.19382000629,349.22823143301,391.99543598175,407.38487419079,423.37848741825,457.27406033445,523.2511306012],description:'Mixed enneatonic 4, each "tetrachord" contains 67 + 67 + 133 + 233 cents.'},mixed9_5:{frequencies:[261.6255653006,277.18263097687,293.66476791741,329.62755691287,349.22823143301,391.99543598175,415.30469757995,440,493.88330125613,523.2511306012],description:"A mixture of the intense chromatic genus and the permuted intense diatonic"},mixed9_6:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,349.22823143301,391.99543598175,415.30469757995,440,466.16376151809,523.2511306012],description:"Mixed 9-tonic 6, Mixture of Chromatic and Diatonic"},mixed9_7:{frequencies:[261.6255653006,277.18263097687,311.12698372208,329.62755691287,349.22823143301,391.99543598175,415.30469757995,466.16376151809,493.88330125613,523.2511306012],description:"Mixed 9-tonic 7, Mixture of Chromatic and Diatonic"},mixed9_8:{frequencies:[261.6255653006,293.66476791741,311.12698372208,329.62755691287,349.22823143301,391.99543598175,440,466.16376151809,493.88330125613,523.2511306012],description:"Mixed 9-tonic 8, Mixture of Chromatic and Diatonic"},mixol_chrom:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,311.12229387098,319.76457981184,359.73515228832,411.12588832951,426.35277308246,434.39716502741,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,605.86973016981,622.24458774197,639.52915962369,719.47030457665,822.25177665903,852.70554616492,868.79433005482,885.50191332511,959.29373943553,1046.5022612024],description:"Mixolydian chromatic tonos"},mixol_chrom2:{frequencies:[261.6255653006,271.31540105247,281.75060878526,332.97799220076,366.27579142084,385.55346465352,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the chromatic genus"},mixol_chrominv:{frequencies:[261.6255653006,279.06726965397,299.00064605783,373.75080757229,411.12588832951,429.81342870813,448.50096908674,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Mixolydian inverted"},mixol_diat:{frequencies:[261.6255653006,274.08392555301,287.78812183066,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,442.75095666255,460.46099492906,479.64686971777,500.50108144463,523.2511306012,548.16785110602,575.57624366132,639.52915962369,677.14852195449,719.47030457665,767.43499154843,822.25177665903,885.50191332511,920.92198985811,959.29373943553,1001.00216288925,1046.5022612024],description:"Mixolydian diatonic tonos"},mixol_diat2:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,348.83408706747,366.27579142084,406.97310157871,457.84473927605,523.2511306012],description:"Schlesinger's Mixolydian Harmonia, a subharmonic series though 13 from 28"},mixol_diatcon:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"A Mixolydian Diatonic with its own trite synemmenon replacing paramese"},mixol_diatinv:{frequencies:[261.6255653006,299.00064605783,336.37572681506,348.83408706747,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"A Mixolydian Diatonic with its own trite synemmenon replacing paramese"},mixol_diatinv2:{frequencies:[261.6255653006,299.00064605783,336.37572681506,348.83408706747,373.75080757229,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"Inverted Schlesinger's Mixolydian Harmonia, a harmonic series from 14 from 28"},mixol_enh:{frequencies:[261.6255653006,274.08392555301,287.78812183066,295.1673044417,299.00064605783,302.93486508491,348.83408706747,411.12588832951,418.60090448096,422.44127975143,426.35277308246,469.85815809087,523.2511306012,548.16785110602,575.57624366132,590.33460888341,598.00129211566,605.86973016981,697.66817413493,822.25177665903,837.20180896192,844.88255950285,852.70554616492,939.71631618175,1046.5022612024],description:"Mixolydian Enharmonic Tonos"},mixol_enh2:{frequencies:[261.6255653006,266.38239376061,271.31540105247,332.97799220076,366.27579142084,375.66747838035,385.55346465352,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the enharmonic genus"},mixol_enhinv:{frequencies:[261.6255653006,270.34641747729,279.06726965397,373.75080757229,411.12588832951,420.46965851882,429.81342870813,523.2511306012],description:"A harmonic form of Schlesinger's Mixolydian inverted"},mixol_penta:{frequencies:[261.6255653006,269.32043486826,281.75060878526,332.97799220076,366.27579142084,381.53728273004,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the pentachromatic genus"},mixol_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,411.12588832951,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,822.25177665903,885.50191332511,959.29373943553,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Mixolydian Tonos"},mixol_tri1:{frequencies:[261.6255653006,268.0066766494,274.70684356563,332.97799220076,366.27579142084,378.90599112501,392.4383479509,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the first trichromatic genus"},mixol_tri2:{frequencies:[261.6255653006,268.0066766494,281.75060878526,332.97799220076,366.27579142084,378.90599112501,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the second trichromatic genus"},mmmgeo1:{frequencies:[261.6255653006,291.52662303231,317.822348206,348.40303271111,392.9238840789,423.23948674937,463.96335069158,523.2511306012],description:"Scale for MakeMicroMusic in Peppermint 24, maybe a bit like Georgian tunings"},mmmgeo2:{frequencies:[261.6255653006,295.05751399041,323.4477810403,352.62279726972,392.9238840789,430.73079539701,485.77193724523,529.58860866211],description:"Scale for MakeMicroMusic in Peppermint 24, maybe a bit like Georgian tunings"},mmmgeo3a:{frequencies:[261.6255653006,281.81099471089,317.822348206,348.40303271111,392.9238840789,423.23948674937,463.96335069158,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmmgeo4a:{frequencies:[261.6255653006,281.81099471089,317.822348206,348.40303271111,392.9238840789,423.23948674937,477.32335087626,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmmgeo4b:{frequencies:[261.6255653006,295.05751399041,323.4477810403,348.40303271111,392.9238840789,430.73079539701,485.77193724523,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmswap:{frequencies:[261.6255653006,251.16054268858,294.32876096318,282.55561052465,313.95067836072,348.83408706747,353.19451315581,392.4383479509,376.74081403286,418.60090448096,423.83341578697,470.92601754108,523.2511306012],description:"Swapping major and minor in 5-limit JI"},mokhalif:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,425.01198472693,477.05982293263,523.2511306012],description:"Iranian mode Mokhalif from C"},montvallon:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Montvallon's Monochord, Nouveau sisteme de musique (1742)"},monzismic:{frequencies:[261.6255653006,265.20988799749,268.52946324281,272.20837072565,275.61554447717,279.39153269358,282.88861654172,286.76424730356,290.69297498385,294.33151655947,298.3639173457,302.09847446042,306.23728412706,310.07039048391,314.31841699833,318.25267316085,322.61279858837,327.03265671938,331.12605620426,335.66254762155,339.86396564906,344.52016812641,348.83245514045,353.61152766937,358.03760933268,362.94279426564,367.48567344471,372.52029869489,377.62390147213,382.35053879638,387.58881783384,392.44018387738,397.81669307529,402.79607923799,408.31446627855,413.42525081527,419.08925963743,424.33490995001,430.14838328955,436.04150237937,441.49934027584,447.54796975207,453.14983163098,459.35807517454,465.10776160818,471.47983118983,477.38124304179,483.92146177974,489.97860285142,496.69140794435,503.49617981289,509.7983334288,516.78267280423,523.2511306012],description:"Monzismic temperament, g=249.018448, 5-limit"},sevengroups:{frequencies:[261.6255653006,261.6255653006,275.62199471997,265.19499215873,270.69536599394,266.7406479561],description:"Here are some suggestions for a logical system encompassing intervals into seven broad groups: skhisma, kleisma, comma,"},"monzo-sym-11":{frequencies:[261.6255653006,269.80136421624,276.76092858245,279.06726965397,285.40970760065,286.15296204753,287.78812183066,294.32876096318,299.00064605783,304.4370214407,305.22982618403,313.95067836072,314.76825825228,327.03195662575,332.97799220076,334.88072358477,341.71502406609,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,398.6675280771,400.61414686654,408.78994578219,411.12588832951,418.60090448096,434.91003062957,436.04260883433,448.50096908674,449.66894036041,457.84473927605,465.11211608996,475.68284600109,478.40103369253,479.64686971777,490.54793493862,494.63583439645,507.3950357345,523.2511306012],description:"Monzo symmetrical system: 11-limit"},"monzo-sym-5":{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Monzo symmetrical system: 5-limit"},"monzo-sym-7":{frequencies:[261.6255653006,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,523.2511306012],description:"Monzo symmetrical system: 7-limit"},monzo_sumerian_2place12:{frequencies:[261.6255653006,277.17835052447,293.68632213351,311.15032543183,329.66469551353,349.22211163595,369.93402791915,391.94841243536,415.27867508032,439.91220695103,466.03267445926,493.6331420766,523.2511306012],description:"Monzo - most accurate 2-place sexagesimal 12-tET approximation"},monzo_sumerian_simp12:{frequencies:[261.6255653006,277.34158865788,293.41184893525,310.84225580269,329.78012432849,348.83408706747,370.22485655745,392.4383479509,415.27867508032,440.11777340288,466.26338370404,493.6331420766,523.2511306012],description:"Monzo - simplified 2-place sexagesimal 12-tET approximation"},morgan:{frequencies:[261.6255653006,277.18263097687,294.07958763262,310.86358783941,330.18637907377,349.03110370139,370.30791823326,392.32757291716,415.07027187895,440.74593809176,465.76911360306,494.58094207912,523.2511306012],description:"Augustus de Morgan's temperament (1843)"},"mos11-34":{frequencies:[261.6255653006,272.51337835337,301.75671459889,314.3146261019,348.04364484358,362.52783176564,377.61479489998,418.13653788176,435.53771116377,453.66305442345,502.34551296122,523.2511306012],description:"Wilson 11 of 34-tET, G=9, Chain of minor & major thirds with Kleismatic fusion"},"mos12-17":{frequencies:[261.6255653006,272.51337835337,283.85429714132,307.97166902637,320.78822215662,348.04364484358,362.52783176564,377.61479489998,409.69842558521,426.7484383229,463.0066556268,482.27514684959,523.2511306012],description:"MOS 12 of 17, generator 7"},"mos12-22":{frequencies:[261.6255653006,287.56082683758,296.76515515861,326.18384711731,336.62443200122,347.39920007397,381.83730669135,394.05926325844,433.12283887627,446.9863572706,491.29666030217,507.02222283506,523.2511306012],description:"MOS 12 of 22, contains nearly just, recognizable diatonic, and pentatonic scales"},"mos13-22":{frequencies:[261.6255653006,278.64197723942,296.76515515861,316.06708432391,326.18384711731,347.39920007397,369.99442271164,381.83730669135,406.67242132093,433.12283887627,446.9863572706,476.05883716226,507.02222283506,523.2511306012],description:"MOS 13 of 22, contains 5 and 9 tone MOS as well. G=5 or 17"},"mos15-22":{frequencies:[261.6255653006,278.64197723942,287.56082683758,306.26409645618,316.06708432391,336.62443200122,347.39920007397,369.99442271164,381.83730669135,406.67242132093,419.68930726506,446.9863572706,461.29362042034,491.29666030217,507.02222283506,523.2511306012],description:"MOS 15 in 22, contains 7 and 8 tone MOS as well. G= 3 or 19"},moscow:{frequencies:[261.6255653006,277.4816141504,293.64820765919,311.48626315692,329.67368081467,349.7414907984,370.88289054572,392.4383479509,416.22242101754,440.4723112686,467.22939450183,494.51052097482,523.2511306012],description:"Charles E. Moscow's equal beating piano tuning (1895)"},mundeuc45:{frequencies:[261.6255653006,267.57160087561,269.80136421624,271.31540105247,274.70684356563,280.31310567921,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,488.36772189445,499.46698830115,504.56359022259,507.3950357345,513.90736041189,523.2511306012],description:"Euclidean reduced detempered Miracle[45] with Tenney tie-breaker"},musaqa:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Egyptian scale by Miha'il Musaqa"},musaqa_24:{frequencies:[261.6255653006,269.02051582234,276.67624041581,284.6011815168,292.80374147632,300.29158209195,310.07474405997,319.15917884888,328.55303549378,338.26335715633,348.29659232622,358.65845048745,369.35373924791,380.38618160659,391.75821216589,403.47075130695,415.52295665389,427.91195157543,440.63253103259,453.67684579974,467.03406698289,480.69003385373,494.62688932105,508.8227088795,523.2511306012],description:"from d'Erlanger vol.5, p.34, after Mih.a'il Mu^saqah, 1899, a Lebanese scholar"},myna23:{frequencies:[261.6255653006,267.85369360167,274.23008563259,291.58574485564,298.52709031489,305.63367799752,312.90944157785,320.35840837329,327.98470157359,348.7424193045,357.04440817535,365.54403007102,374.24598974517,383.15510395049,392.27630410488,417.10295228105,427.03229805648,437.19801690717,447.60573581317,458.26121570764,469.17035466565,498.86352554567,510.73922293119,522.89762727195],description:"23 notes of Myna temperament, 7-limit TOP tuning (Paul Erlich)"},"mystic-r":{frequencies:[261.6255653006,367.91095120397,465.11211608996,654.0639132515,872.08521766867,1177.3150438527],description:"Skriabin's mystic chord, op. 60 rationalised"},mystic:{frequencies:[261.6255653006,369.99442271164,466.16376151809,659.25511382574,880,1174.65907166964],description:"Skriabin's mystic chord, op. 60"},urmawi:{frequencies:[261.6255653006,294.32876096318,326.6631048533,348.83408706747,392.4383479509,441.49314144476,471.45776383774,523.2511306012],description:"al-Urmawi, one of twelve maqam rows. First tetrachord is Rast"},valentine:{frequencies:[261.6255653006,276.16031892841,294.32876096318,310.68035879446,330.47439827444,348.83408706747,371.78369805875,392.4383479509,414.24047839262,440.63253103259,466.02053819169,495.71159741166,523.2511306012],description:"Robert Valentine, tuning with primes 3 & 19, TL 7-2-2002"},valentine2:{frequencies:[261.6255653006,286.10322937235,312.87102146627,349.87955533643,382.6142546815,418.41160951721,467.90420651233,511.68128147674,559.55413558945,625.74204293254,684.28641150324,748.30818586768,782.53142116911,855.74498969389,935.80841302466,1046.5022612024],description:"Robert Valentine, two octave 31-tET subset for guitar, TL 10-5-2002"},vallotti:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.14198392915,349.6228209638,368.32692341742,391.5530240856,414.36778843034,438.51190905657,466.16376151809,491.10256480205,523.2511306012],description:"Vallotti & Young scale (Vallotti version)"},vavoom:{frequencies:[164.81377845643,165.83014536684,167.75567809608,168.79018601865,170.75008918846,172.7327497266,173.79795102719,175.81600173949,176.90021569146,178.95428827501,180.05785630665,182.14859375797,184.26360775673,185.39991601304,187.55268266167,188.70927492235,190.90046811205,192.07770535997,194.30800987601,196.56421264146,197.77637683895,200.07285246365,201.3066535986,203.64411977036,206.00872855044,207.27913480479,209.68595147418,210.9790342774,213.42881100738,214.74497512464,217.23848121866,219.76094059848,221.11615343515,223.68363702025,225.06304018178,227.6763542391,229.0803795269,231.74034082302,234.43118684139,235.87686755635,238.61574610914,240.08723199411,242.87499909192,244.37274935352,247.21027763268,250.08075380295,251.62294163139,254.54465534315,256.1143694988,259.0882353168,260.68597011615,263.71291896434,266.77501515601,268.42015092639,271.53690502834,273.21140777811,276.38379544331,278.08818779989,281.31720045362,284.58370833477,286.33866758091,289.66348210637,291.44976709494,294.83392732599,296.65209720599,300.09666587055,303.58123106099,305.45334345815,309.00010579622,310.90563508986,314.51570836542,316.45525105281,320.12976356015,323.84694071013,325.84402686189,329.62755691286],description:"Vavoom temperament, g=111.875426, 5-limit"},veroli:{frequencies:[261.6255653006,276.87699530057,293.57148765354,310.97965314221,329.42008585855,349.28270065725,369.64409253099,391.93430587921,414.97617910427,439.79164309579,466.09106516521,493.49262474744,523.2511306012],description:"Claudio di Veroli's well temperament (1978)"},vertex_chrom:{frequencies:[261.6255653006,271.89678302796,317.17549194805,349.22823143301,391.99543598175,407.38487419079,448.5538823653,523.2511306012],description:"A vertex tetrachord from Chapter 5, 66.7 + 266.7 + 166.7 cents"},vertex_chrom2:{frequencies:[261.6255653006,274.52698453615,323.3415889232,349.22823143301,391.99543598175,411.32572372413,484.46499093218,523.2511306012],description:"A vertex tetrachord from Chapter 5, 83.3 + 283.3 + 133.3 cents"},vertex_chrom3:{frequencies:[261.6255653006,275.18850165466,324.90175210669,349.22823143301,391.99543598175,412.31687950427,486.80259447109,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 287.5 + 125 cents"},vertex_chrom4:{frequencies:[261.6255653006,275.40936140075,325.42347822215,349.22823143301,391.99543598175,412.64779522483,487.58430040208,523.2511306012],description:"A vertex tetrachord from Chapter 5, 88.9 + 288.9 + 122.2 cents"},vertex_chrom5:{frequencies:[261.6255653006,282.57123920205,329.62755691287,349.22823143301,391.99543598175,423.37848741825,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 133.3 + 266.7 + 100 cents"},vertex_diat:{frequencies:[261.6255653006,299.37379946195,323.3415889232,349.22823143301,391.99543598175,448.5538823653,484.46499932732,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.3 + 133.3 + 133.3 cents"},vertex_diat10:{frequencies:[261.6255653006,295.79278388132,324.90175210669,349.22823143301,391.99543598175,443.18842137843,486.80259447109,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 162.5 + 125 cents"},vertex_diat11:{frequencies:[261.6255653006,295.79278388132,306.66641795878,349.22823143301,391.99543598175,443.18842137843,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 62.5 + 225 cents"},vertex_diat12:{frequencies:[261.6255653006,293.66476791741,315.65242990842,349.22823143301,391.99543598175,440,472.94426956511,523.2511306012],description:"A vertex tetrachord from Chapter 5, 200 + 125 + 175 cents"},vertex_diat2:{frequencies:[261.6255653006,299.37379946195,329.62755691287,349.22823143301,391.99543598175,448.5538823653,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.3 + 166.7 + 100 cents"},vertex_diat3:{frequencies:[261.6255653006,273.20871865617,311.12698372208,349.22823143301,391.99543598175,409.35055662695,466.16376151809,523.2511306012],description:"A vertex tetrachord from Chapter 5, 75 + 225 + 200 cents"},vertex_diat4:{frequencies:[261.6255653006,297.93622032612,329.62755691287,349.22823143301,391.99543598175,446.39994737251,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 225 + 175 + 100 cents"},vertex_diat5:{frequencies:[261.6255653006,275.18850165466,315.65242990842,349.22823143301,391.99543598175,412.31687950427,472.94426956511,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 237.5 + 175 cents"},vertex_diat7:{frequencies:[261.6255653006,293.66476791741,306.66641795878,349.22823143301,391.99543598175,440,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 200 + 75 + 225 cents"},vertex_diat8:{frequencies:[261.6255653006,277.18263097687,306.66641795878,349.22823143301,391.99543598175,415.30469757995,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 100 + 175 + 225 cents"},vertex_diat9:{frequencies:[261.6255653006,295.79278388132,320.24370022528,349.22823143301,391.99543598175,443.18842137843,479.82340237272,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 137.5 + 150 cents"},vertex_sdiat:{frequencies:[261.6255653006,275.18850165466,306.66641795878,349.22823143301,391.99543598175,412.31687950427,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 187.5 + 225 cents"},vertex_sdiat2:{frequencies:[261.6255653006,273.20871865617,302.26980244078,349.22823143301,391.99543598175,409.35055662695,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 75 + 175 + 250 cents"},vertex_sdiat3:{frequencies:[261.6255653006,265.43099677612,302.26980244078,349.22823143301,391.99543598175,397.69714089209,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 25 + 225 + 250 cents"},vertex_sdiat4:{frequencies:[261.6255653006,271.8968348557,302.26980244078,349.22823143301,391.99543598175,407.38495184466,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 66.7 + 183.3 + 250 cents"},vertex_sdiat5:{frequencies:[261.6255653006,299.37374239667,302.26980244078,349.22823143301,391.99543598175,448.55379686399,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.33 + 16.67 + 250 cents"},vicentino1:{frequencies:[261.6255653006,267.54129532085,273.59078691818,279.77706779472,286.10322937235,292.57243455474,295.8616864168,299.18791603519,305.95298478736,312.87102146627,319.94548489658,327.17991022208,330.85823737058,334.57791819083,342.14320575162,349.87955533643,357.79083283678,365.88099775759,374.15409293384,382.6142546815,391.26571058456,395.66452371628,400.11279059885,409.15991580663,418.41160951721,427.87249484695,437.54730686196,442.46644183113,447.44088028055,457.55816161244,467.90420651233,478.48419305869,489.30340830564,494.80441235385,500.36726155789,511.68128147674,523.2511306012],description:"Usual Archicembalo tuning, 31-tET plus D,E,G,A,B a 10th tone higher"},vicentino2:{frequencies:[261.6255653006,262.40966637115,273.59078691818,274.41074818102,279.77706779472,280.61556956011,292.57243455474,293.44928279173,305.95298478736,306.86993670158,312.87102146627,313.80870698104,327.17991022208,328.16047998243,342.14320575162,343.16862103779,349.87955533643,350.92815470883,365.88099775759,366.97755604579,374.15409293384,391.26571058456,392.4383479509,409.15991580663,410.38618254261,418.41160951721,419.66560148231,437.54730686196,438.85865161274,457.55816161244,458.92947695163,467.90420651233,469.30653196482,489.30340830564,490.7698679226,511.68128147674,523.2511306012],description:"Alternative Archicembalo tuning, lower 3 rows the same upper 3 rows 3/2 higher"},vicentino2q217:{frequencies:[261.6255653006,262.46259217279,273.59078691818,274.46609608433,279.77706779472,280.67216895906,292.57243455474,293.50847071582,305.95298478736,306.93183153514,312.87102146627,313.87199953275,327.17991022208,328.2266690608,342.14320575162,343.23783523487,349.87955533643,350.99893596542,365.88099775759,367.05157442308,374.15409293384,391.26571058456,392.51750150462,409.15991580663,410.46895395112,418.41160951721,419.7502468954,437.54730686196,438.9471656765,457.55816161244,459.02204178186,467.90420651233,469.40118981889,489.30340830564,490.86885203792,511.68128147674,523.2511306012],description:"Vicentino's second tuning, 217-tET version"},vicentino36:{frequencies:[261.6255653006,262.43934012943,273.37431312998,274.22463192287,279.93529690293,280.80602334765,292.50627485027,293.41610276971,305.64177427204,306.59245933664,312.97717714283,313.95067836072,327.03195662575,328.04917632434,341.71789064962,349.91912034749,351.00752840096,365.63284274659,366.77012764335,374.40803131735,375.5726110527,391.22147055517,392.4383479509,408.78994578219,410.06146948999,418.60090448096,419.90294514449,437.39889945791,438.75941205608,457.04105505291,458.46266117889,468.01003810189,469.46576276783,489.02683710225,490.54793493862,510.98743222773,523.2511306012],description:"Vicentino's second tuning of 1555"},victor_eb:{frequencies:[261.6255653006,276.45300885359,293.16631378471,311.00963644582,328.52867116285,348.83408706747,368.60401198904,391.83966133014,414.6795130731,439.03603741286,465.77732204887,492.79300649794,523.2511306012],description:"Equal beating Victorian piano temperament, interpr. by Bill Bremmer (improved)"},victorian:{frequencies:[261.6255653006,276.5429423948,293.32570896007,310.76776326996,328.29744538229,349.22823143301,368.92737853004,391.99543598175,414.58565256441,438.73106346722,465.89457252293,492.17459484008,523.2511306012],description:"Form of Victorian temperament (1885)"},vitale1:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,336.37572681506,343.38355445704,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,457.84473927605,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Rami Vitale's 7-limit just scale"},vitale2:{frequencies:[261.6255653006,274.70684356563,294.32876096318,299.00064605783,305.22982618403,313.95067836072,336.37572681506,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,448.50096908674,457.84473927605,470.92601754108,504.56359022259,523.2511306012],description:"Rami Vitale, inverse mode of vitale1"},vitale3:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,412.06026534844,420.46965851882,441.49314144476,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Superset of several Byzantine scales by Rami Vitale, TL 29-Aug-2001"},vogel_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,310.07474405997,313.95067836072,321.55899383997,330.74639366397,348.83408706747,361.75386806997,372.08969287196,392.4383479509,406.97310157871,413.43299207996,418.60090448096,428.74532511996,440.99519155196,465.11211608996,482.33849075995,496.11959049595,523.2511306012],description:"Martin Vogel's 21-tone Archytas system, see Divisions of the tetrachord"},vogelh_b:{frequencies:[261.6255653006,276.37000081643,292.73769384471,310.07474405997,327.54963108844,349.78078158391,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,489.99465727995,523.2511306012],description:"Harald Vogel's temperament, van Eeken organ in Bunschoten, Immanuelkerk, 1992"},vogelh_fisk:{frequencies:[261.6255653006,274.01856817608,292.73769384471,312.85332572834,327.54963108844,349.78078158391,366.49445363528,391.37619916626,409.75340805561,437.91808280662,467.82492621575,489.99465727995,523.2511306012],description:"Modified meantone tuning of Fisk organ in Memorial Church at Stanford"},vogelh_hb:{frequencies:[261.6255653006,276.50527247638,293.79744652436,312.85332572834,329.92547760025,349.78078158391,369.82037393809,392.08397832814,413.47189899094,440.29822362186,467.82492621575,494.44133512215,523.2511306012],description:"Harald Vogel hybrid meantone (1984)"},vogelh_jakobi:{frequencies:[261.6255653006,275.2485073924,292.86986732103,310.4251397446,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.87276088221,438.2147004401,466.26912673157,490.54793493862,523.2511306012],description:"Harald Vogel's temperament for the Schnitger organ in St. Jakobi, Hamburg"},volans:{frequencies:[261.6255653006,288.78654445823,322.09885310804,352.06379107796,388.6137256405,429.95038611107,482.60299106564,523.2511306012],description:"African scale according to Kevin Volans 1/1=G"},vong:{frequencies:[261.6255653006,287.78812183066,324.77656382143,353.19451315581,392.4383479509,431.68218274599,476.53227965466,523.2511306012],description:"Vong Co Dan Tranh scale, Vietnam"},"vries19-72":{frequencies:[261.6255653006,271.89678302796,282.57123920205,293.66476791741,305.19382000629,314.13668154225,326.46944327063,339.28638158975,352.60650301302,366.44956000397,377.18735172911,391.99543598175,407.38487419079,423.37848741825,452.89298412314,470.6732130613,489.15147723638,508.3551866238,523.2511306012],description:"Leo de Vries 19/72 Through-Transposing-Tonality 18 tone scale"},"vries35-72":{frequencies:[261.6255653006,320.24370022528,326.46944327063,332.81622067851,339.28638158975,345.88232658126,352.60650301302,359.46139971304,366.44956000397,448.5538823653,457.27406033445,466.16376151809,475.22628419761,484.46499093218,493.88330125613,503.48470957687,513.27277840175,523.2511306012],description:"Leo de Vries 35/72 Through-Transposing-Tonality 17 tone scale"},"vries5-72":{frequencies:[261.6255653006,269.29177952703,274.52698453615,282.57123920205,288.06460709314,296.5055443788,302.26980244078,317.17549194805,332.81622067851,349.22823143301,366.44956000397,384.52011812375,403.48177901006,423.37848741825,444.25635547592,466.16376151809,489.15147723638,513.27277840175,523.2511306012],description:"Leo de Vries 5/72 Through-Transposing-Tonality 18 tone scale"},"vries6-31":{frequencies:[261.6255653006,292.57243455474,299.18791603519,334.57791819083,342.14320575162,382.6142546815,391.26571058456,437.54730686196,447.44088028055,500.36726155789,511.68128147674,523.2511306012],description:'Leo de Vries 6/31 TTT used in "For 31-tone organ" (1995)'},vulture:{frequencies:[261.6255653006,265.58852967049,269.02996542365,272.51599294435,276.04719319079,279.62414831161,283.24745441839,286.9177088442,290.63552324927,294.40151054717,298.21629835234,302.73351960911,306.6562716924,310.62985211059,314.65492307423,318.73214815075,322.86220682342,327.0457799678,331.28356479042,335.57625992643,339.9245807679,344.32924417279,349.54496173019,354.07428378691,358.66229781376,363.30976018416,368.01744541334,372.78612960355,377.61660747204,382.50967536449,387.46614872711,392.486844677,398.43202813578,403.59481739244,408.82450722915,414.12195980508,419.48805795853,424.92368633675,430.42975080549,436.00715908665,441.65684067409,447.37972696622,453.17677170128,460.0412514682,466.0023613576,472.04071122634,478.15730738573,484.35315820906,490.6292962557,496.98675620078,503.42659462849,509.94988192555,516.55769649554,523.2511306012],description:"Vulture temperament, g=475.542233, 5-limit"},walker_21:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,327.03195662575,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:'Douglas Walker, 1977, for "out of the fathomless dark/into the limitless light'},walkerr_11:{frequencies:[261.6255653006,291.47537246454,299.00064605783,333.11471138804,341.71502406609,380.70252730062,390.53145607553,435.08860262928,484.72943438718,497.2441172906,510.08190181294,523.2511306012],description:'Robert Walker, "Seven to Pi" scale, TL 09-07-2002'},wauchope:{frequencies:[261.6255653006,274.70684356563,305.22982618403,327.03195662575,366.27579142084,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Symmetrical 7-limit JI whole-half step scale, Ken Wauchope"},wendell1:{frequencies:[261.6255653006,276.25045813601,293.35468319005,310.78176509232,328.42642049784,348.83408706747,369.47972269069,391.8804287311,414.37568699689,438.92294511207,466.17264740545,492.63963050051,523.2511306012],description:"Robert Wendell's Natural Synchronous well-temperament (2003)"},wendell1r:{frequencies:[261.6255653006,276.25560153172,293.36810129327,310.78755172318,328.43721515437,348.83408706747,369.49186704867,391.89926583958,414.38340229758,438.93945576706,466.18132758477,492.65582273156,523.2511306012],description:"Rational version of wendell1 by Gene Ward Smith"},wendell2:{frequencies:[261.6255653006,276.37223575148,293.46077701205,310.91876490958,328.50868755512,348.91469434159,369.57235851938,392.00856887742,414.55835341999,438.92345217603,466.37814713124,492.76314493882,523.2511306012],description:"Robert Wendell's Very Mild Synchronous well-temperament (2003)"},werck1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Werckmeister I (just intonation)"},werck3:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,327.77163799145,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,491.65745674141,523.2511306012],description:"Andreas Werckmeister's temperament III (the most famous one, 1681)"},werck3_eb:{frequencies:[261.6255653006,275.62199471997,292.52927773082,310.07474405997,328.06371231954,348.83408706747,367.49599295996,391.41011079897,413.43299207996,437.41828331138,465.11211608996,492.10978071589,523.2511306012],description:"Werckmeister III equal beating version, 5/4 beats twice 3/2"},werck3_mod:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,327.77163799145,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,490.82535372381,523.2511306012],description:"Modified Werckmeister III with B between E and F#, Nijsse (1997), organ Soest"},werck4:{frequencies:[261.6255653006,274.37997440822,293.00227310437,310.07474405997,328.14198392915,348.83408706747,367.49599295996,390.66969766777,411.5699614066,437.52264545758,467.21778431035,489.99465727995,523.2511306012],description:"Andreas Werckmeister's temperament IV"},werck5:{frequencies:[261.6255653006,276.55731914056,294.32876096318,311.12698372208,328.88393162803,350.01785633742,369.99442271164,392.4383479509,413.43299207996,440,466.69047534984,493.32589719545,523.2511306012],description:"Andreas Werckmeister's temperament V"},werck6:{frequencies:[261.6255653006,275.69145590816,291.35574317567,310.77945938738,328.70904358281,348.83408706747,368.91086905696,391.43977709097,413.53718386224,438.27872477707,466.16918908107,493.06356537421,523.2511306012],description:`Andreas Werckmeister's "septenarius" tuning VI`},werck6_dup:{frequencies:[261.6255653006,275.62199471997,291.49363009634,310.67551062492,328.56569462012,348.83408706747,368.92162485303,391.67947347082,413.43299207996,438.08759304581,466.01326570444,492.84854168382,523.2511306012],description:"Andreas Werckmeister's VI in the interpretation by Dupont (1935)"},werck_cl5:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.97737261399,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.14811800305,438.2147004401,466.26912673157,490.54793493862,523.2511306012],description:"Werckmeister Clavier temperament (Nothw. Anm.) Poletti reconstr. 1/5-comma"},werck_cl6:{frequencies:[261.6255653006,275.36250599118,293.11251278827,310.35057963607,328.38895179964,349.55706816887,367.91095120397,391.62667645325,413.31226430431,438.75941205608,466.0760911248,491.56462836305,523.2511306012],description:"Werckmeister Clavier temperament (Nothw. Anm.) Poletti reconstr. 1/6-comma"},werck_puzzle:{frequencies:[261.6255653006,272.52663052146,291.60349465796,306.59245933664,327.03195662575,347.47145391486,365.18568489875,389.71308164569,408.78994578219,436.04260883433,461.93263873387,490.54793493862,523.2511306012],description:"From Hypomnemata Musica, 1697, p. 49, 1/1=192, fifths tempered superparticular"},white:{frequencies:[261.6255653006,275.93321340298,289.72987407313,294.32876096318,305.22982618403,310.42486507835,327.03195662575,331.11985608357,343.38355445704,348.83408706747,367.91095120397,386.30649876417,392.4383479509,406.97310157871,413.89982010446,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:"Justin White's 22-tone scale based on Al-Farabi's tetrachord"},wicks:{frequencies:[261.6255653006,276.65728054629,293.45376109391,310.36444075595,329.26048109616,348.28499607284,369.54304125029,391.93835601961,414.48592121967,439.68064187634,465.04666232412,493.39072329352,523.2511306012],description:"Mark Wicks' equal beating temperament for organs (1887)"},wier_cl:{frequencies:[261.6255653006,276.16031892841,290.69507255622,305.22982618403,319.76457981184,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"Danny Wier, ClownTone (2003)"},wiesse:{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,348.83408706747,369.99442271164,392.4383479509,416.24372513446,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Von Wiesse's 1/2 Pyth. comma tuning"},wilson1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson's 19-tone Scott scale (1976)"},wilson11:{frequencies:[261.6255653006,271.31540105247,277.4816601673,291.35574317567,305.22982618403,312.16686768822,325.57848126297,332.97799220076,348.83408706747,366.27579142084,374.60024122586,392.4383479509,406.97310157871,416.22249025095,437.0336147635,457.84473927605,468.25030153232,488.36772189445,499.46698830115,523.2511306012],description:"Wilson 11-limit 19-tone scale, 1977"},wilson1t:{frequencies:[261.6255653006,273.34666024156,279.64601698606,292.92954243175,306.05308604033,313.10617410217,327.13365148064,334.67254769546,349.66622272551,366.27579142084,374.71672979763,391.50442319155,409.04422481132,418.47077311482,437.21869500104,457.98711402938,468.54156606881,489.53271107931,500.81414097667,523.2511306012],description:"Wilson's Scott scale, wilson1, in minimax minerva tempering"},wilson2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,372.08969287196,392.4383479509,406.97310157871,418.60090448096,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 19-tone, 1975"},wilson3:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,515.07533168556,523.2511306012],description:"Wilson 19-tone"},wilson5:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson's 22-tone 5-limit scale"},wilson7:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson's 22-tone 7-limit 'marimba' scale"},wilson7_2:{frequencies:[261.6255653006,263.718569823,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,329.64821227876,343.38355445704,353.19451315581,366.27579142084,376.74081403286,392.4383479509,408.78994578219,412.06026534844,436.04260883433,439.53094970501,457.84473927605,470.92601754108,490.54793493862,494.47231841813,523.2511306012],description:"Wilson 7-limit scale"},wilson7_3:{frequencies:[261.6255653006,267.90457886781,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson 7-limit scale"},wilson7_4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,372.08969287196,387.59343007496,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 7-limit 22-tone scale XH 3, 1975"},wilson_17:{frequencies:[261.6255653006,275.93321340298,290.69507255622,294.32876096318,310.42486507835,327.03195662575,331.11985608357,348.83408706747,367.91095120397,372.50983809402,392.4383479509,413.89982010446,436.04260883433,441.49314144476,465.11211608996,490.54793493862,496.67978412536,523.2511306012],description:"Wilson's 17-tone 5-limit scale"},wilson_31:{frequencies:[261.6255653006,265.7783520514,271.31540105247,279.06726965397,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,321.08592105074,327.03195662575,332.22294006425,339.14425131559,348.83408706747,354.37113606854,361.75386806997,372.08969287196,380.54627680087,392.4383479509,398.6675280771,406.97310157871,418.60090448096,428.11456140098,441.49314144476,448.50096908674,457.84473927605,470.92601754108,481.6288815761,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Wilson 11-limit 31-tone scale XH 3, 1975"},wilson_41:{frequencies:[261.6255653006,265.7783520514,271.31540105247,275.62199471997,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,321.08592105074,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,354.37113606854,361.75386806997,367.49599295996,372.08969287196,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,413.43299207996,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,481.6288815761,490.54793493862,496.67978412536,504.56359022259,515.07533168556,523.2511306012],description:"Wilson 11-limit 41-tone scale XH 3, 1975"},wilson_alessandro:{frequencies:[261.6255653006,265.58571790036,269.80136421624,270.50397193556,275.93321340298,278.232656848,284.55612632182,286.15296204753,288.53757006459,294.32876096318,295.09524211152,303.52653474327,304.3169684275,305.22982618403,309.14739649778,314.76825825228,321.92208230347,324.60476632267,327.03195662575,331.98214737546,337.2517052703,340.06213614756,343.38355445704,347.79082106,351.18772614924,354.11429053382,359.73515228832,365.180362113,367.91095120397,370.97687579734,379.40816842909,386.30649876417,391.2646736925,392.4383479509,393.46032281536,404.70204632437,405.75595790334,413.89982010446,417.348985272,419.69101100305,429.2294430713,432.80635509689,441.49314144476,442.64286316727,449.66894036041,456.47545264125,457.84473927605,463.72109474667,472.15238737843,482.88312345521,486.907149484,490.54793493862,494.63583439645,505.87755790546,515.07533168556,521.68623159,523.2511306012],description:"D'Alessandro, genus [3 3 3 5 7 11 11] plus 8 pigtails, XH 12, 1989"},wilson_bag:{frequencies:[261.6255653006,294.32876096318,318.85615771011,349.51540364377,392.4383479509,425.14154361347,466.02053819169,523.2511306012],description:"Erv's bagpipe, mar '97, after Theodore Podnos (37-39)."},wilson_class:{frequencies:[261.6255653006,272.52663052146,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,381.53728273004,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Class Scale, Erv Wilson, 9 july 1967"},wilson_dia1:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,362.25078272391,371.78369805875,381.83190611439,392.4383479509,403.65087217807,415.52295665389,428.11456140098,441.49314144476,455.73485568492,470.92601754108,487.16484573215,504.56359022259,523.2511306012],description:"Wilson Diaphonic cycles, tetrachordal form"},wilson_dia2:{frequencies:[261.6255653006,268.51044859798,275.76748774928,283.42769574232,291.52562990638,300.09991313892,309.19384990071,318.85615771011,329.14184021688,340.11323489078,351.84127747322,364.40703738298,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Wilson Diaphonic cycle, conjunctive form"},wilson_dia3:{frequencies:[261.6255653006,268.51044859798,275.76748774928,283.42769574232,291.52562990638,300.09991313892,309.19384990071,318.85615771011,329.14184021688,340.11323489078,351.84127747322,364.40703738298,377.90359432309,392.4383479509,403.65087217807,415.52295665389,428.11456140098,441.49314144476,455.73485568492,470.92601754108,487.16484573215,504.56359022259,523.2511306012],description:"Wilson Diaphonic cycle on 3/2"},wilson_dia4:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,358.01393146398,381.83190611439,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Wilson Diaphonic cycle on 4/3"},wilson_duo:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 'duovigene'"},wilson_enh:{frequencies:[261.6255653006,264.37951861955,279.06726965397,348.83408706747,392.4383479509,396.56927792933,418.60090448096,523.2511306012],description:"Wilson's Enharmonic & 3rd new Enharmonic on Hofmann's list of superp. 4chords"},wilson_enh2:{frequencies:[261.6255653006,265.7783520514,275.62199471997,348.83408706747,392.4383479509,398.6675280771,413.43299207996,523.2511306012],description:"Wilson's 81/64 Enharmonic, a strong division of the 256/243 pyknon"},wilson_facet:{frequencies:[261.6255653006,271.31540105247,274.70684356563,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,366.27579142084,387.59343007496,392.4383479509,406.97310157871,412.06026534844,436.04260883433,452.19233508746,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Wilson study in 'conjunct facets', Hexany based"},wilson_gh1:{frequencies:[261.6255653006,286.54684077898,313.84200313831,343.73718179912,398.2573899082,436.19359890902,477.74343791599,523.2511306012],description:"Golden Horagram nr.1: 1phi+0 / 7phi+1"},wilson_gh11:{frequencies:[261.6255653006,294.51148904212,316.87124012705,356.70145865606,383.78276711707,432.02365977685,464.82353976398,523.2511306012],description:"Golden Horagram nr.11: 1phi+0 / 3phi+1"},wilson_gh2:{frequencies:[261.6255653006,290.51361927671,322.59142140135,358.21117585067,382.16527586729,424.3630293795,471.22015545621,523.2511306012],description:"Golden Horagram nr.2: 1phi+0 / 6phi+1"},wilson_gh50:{frequencies:[261.6255653006,270.80964219588,280.31611759965,306.81496952381,317.58537244461,347.60736272384,359.80973785756,372.44046183271,407.64801512355,421.95805149354,461.8466031062,478.05922145,523.2511306012],description:"Golden Horagram nr.50: 7phi+2 / 17phi+5"},wilson_helix:{frequencies:[261.6255653006,283.42769574232,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"Wilson's Helix Song, see David Rosenthal, Helix Song, XH 7&8, 1979. Also Secor, 1964"},wilson_hypenh:{frequencies:[261.6255653006,266.38239376061,271.31540105247,348.83408706747,392.4383479509,399.57359064092,406.97310157871,523.2511306012],description:"Wilson's Hyperenharmonic, this genus has a CI of 9/7"},wilson_l1:{frequencies:[261.6255653006,269.80136421624,274.70684356563,286.15296204753,294.32876096318,305.22982618403,314.76825825228,327.03195662575,337.2517052703,343.38355445704,359.73515228832,366.27579142084,377.72190990274,392.4383479509,404.70204632437,419.69101100305,431.68218274599,449.66894036041,457.84473927605,472.15238737843,490.54793493862,503.62921320365,523.2511306012],description:"Wilson 11-limit scale"},wilson_l2:{frequencies:[261.6255653006,267.07609791103,279.79400733536,287.78812183066,294.32876096318,305.22982618403,314.76825825228,327.03195662575,335.75280880244,348.83408706747,359.73515228832,373.05867644715,381.53728273004,392.4383479509,411.12588832951,419.69101100305,436.04260883433,447.67041173658,457.84473927605,479.64686971777,490.54793493862,503.62921320365,523.2511306012],description:"Wilson 11-limit scale"},wilson_l3:{frequencies:[261.6255653006,269.80136421624,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,332.97799220076,343.38355445704,359.73515228832,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,499.46698830115,523.2511306012],description:"Wilson 11-limit scale"},wilson_l4:{frequencies:[261.6255653006,267.07609791103,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,356.10146388137,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Wilson 11-limit scale"},wilson_l5:{frequencies:[261.6255653006,267.07609791103,279.79400733536,285.40970760065,299.00064605783,305.22982618403,313.95067836072,327.03195662575,332.97799220076,348.83408706747,356.10146388137,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,479.64686971777,488.36772189445,508.71637697339,523.2511306012],description:"Wilson 11-limit scale"},wilson_l6:{frequencies:[261.6255653006,267.57160087561,277.4816601673,285.40970760065,294.32876096318,305.22982618403,312.16686768822,327.03195662575,332.97799220076,348.83408706747,356.76213450082,369.97554688974,381.53728273004,392.4383479509,406.97310157871,416.22249025095,436.04260883433,443.97065626768,457.84473927605,475.68284600109,490.54793493862,499.46698830115,523.2511306012],description:"Wilson 1 3 7 9 11 15 eikosany plus 9/8 and tritone. Used Stearns: Jewel"},window:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,297.67175429757,306.59245933664,327.03195662575,334.88072358477,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,446.50763144636,459.88868900496,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"Window lattice"},wonder1:{frequencies:[261.6255653006,272.72256190885,277.86237426839,283.09905309511,288.43442562998,293.8703485525,299.4087202614,312.10830899518,317.99039712482,323.98334274799,330.08923137594,336.31019538088,342.64839962317,357.18202566262,363.91358676728,370.77201292014,377.75969724053,384.87907140314,392.13262172187,408.76514672187,416.46885901676,424.31776026786,432.3145818485,440.46211650535,448.76319953449,467.79774494453,476.61400354229,485.59641603135,494.74811665626,504.07229015717,513.57219283465,523.2511306012],description:"Wonder Scale, gen=~233.54 cents, 8/7+1029/1024^7/25, LS 12:14:18:21, M.Schulter"},wonder36:{frequencies:[261.6255653006,271.89678302796,277.18263097687,282.57123920205,288.06460709314,293.66476791741,299.37379946195,311.12698372208,317.17549194805,323.3415889232,329.62755691287,336.03572815422,342.56848033562,356.01745236555,362.93866220634,369.99442271164,377.18735172911,384.52011812375,391.99543598175,407.38487419079,415.30469757995,423.37848741825,431.60923940535,440,448.5538823653,466.16376151809,475.22628419761,484.46499093218,493.88330125613,503.48470957687,513.27277840175,523.2511306012],description:"Wonder Scale, 36-tET version"},wronski:{frequencies:[261.6255653006,277.97716313189,294.32876096318,308.86351459099,327.03195662575,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,463.29527188648,494.18162334558,523.2511306012],description:`Wronski's scale, from Jocelyn Godwin, "Music and the Occult", p. 105.`},wurschmidt:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,331.11985608357,353.19451315581,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's normalised 12-tone system"},wurschmidt1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,502.32108537715,523.2511306012],description:"W\xEF\xBF\xBDrschmidt-1 19-tone scale"},wurschmidt2:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,484.4917875937,502.32108537715,523.2511306012],description:"W\xEF\xBF\xBDrschmidt-2 19-tone scale"},wurschmidt_31:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,476.27480687611,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 31-tone system"},wurschmidt_31a:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,372.08969287196,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,476.27480687611,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 31-tone system with alternative tritone"},wurschmidt_53:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,319.36714514233,321.48549464138,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.43299207996,418.60090448096,425.82286018978,428.6473261885,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.27480687611,484.4917875937,490.54793493862,496.11959049595,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 53-tone system"},wurschmidt_temp:{frequencies:[261.6255653006,270.6876810201,276.46178051834,282.35904862511,288.38211267756,294.53365605714,300.81641938515,307.23320174366,313.78686192261,320.48031969341,327.31655710978,338.6540596739,345.87796520471,353.25596548096,360.79134753214,368.48746850413,376.34775715481,384.37571538166,392.57491978195,400.94902556208,409.5017589506,423.68596790742,432.72370810117,441.95423435346,451.38165902684,461.01018486849,470.84409628664,480.88777706987,491.14570185547,501.62244073019,512.32266126632,523.2511306012],description:"W\xEF\xBF\xBDrschmidt temperament, 5-limit, g=387.744375, 5-limit"},"t-side":{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Tau-on-Side"},"t-side2":{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"Tau-on-Side opposite"},tagawa_55:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,296.50897400735,299.00064605783,301.87565226992,305.22982618403,307.79478270659,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,442.75095666255,444.76346101102,448.50096908674,453.48431318771,457.84473927605,461.69217405988,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Rick Tagawa, 17-limit diamond subset with good 72-tET approximation, 2003"},tamil:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,372.50983809402,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Possible Tamil sruti scale. Alternative 11th sruti is 45/32 or 64/45"},tamil_vi:{frequencies:[261.6255653006,275.62199471997,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.91095120397,387.59343007496,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Vilarippalai scale in Tamil music, Vidyasankar Sundaresan"},tamil_vi2:{frequencies:[261.6255653006,275.62199471997,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.49599295996,387.59343007496,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Vilarippalai scale with 1024/729 tritone"},tanaka:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,331.11985608357,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"26-note choice system of Shoh\xEF\xBF\xBD Tanaka, Studien i.G.d. reinen Stimmung (1890)"},tanbur:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,306.66732929008,314.73752216614,323.24394168414,332.22294006425,341.71502406609,351.76546595039,523.2511306012],description:"Sub-40 tanbur scale"},tansur:{frequencies:[261.6255653006,275.71279889585,293.19126194179,310.07474405997,328.21516866261,348.83408706747,367.61706537823,391.78834765065,413.56919813705,438.48689188122,465.11211608996,491.022754507,523.2511306012],description:"William Tans'ur temperament from A New Musical Grammar (1746) p. 73"},tartini_7:{frequencies:[261.6255653006,294.32876096318,313.95067836072,367.91095120397,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Tartini (1754) with 2 neochromatic tetrachords, 1/1=d, Minor Gipsy (Slovakia)"},taylor_g:{frequencies:[261.6255653006,274.70684356563,287.78812183066,294.32876096318,313.95067836072,353.19451315581,366.27579142084,392.4383479509,412.06026534844,418.60090448096,431.68218274599,470.92601754108,523.2511306012],description:"Gregory Taylor's Dutch train ride scale based on pelog_schmidt"},taylor_n:{frequencies:[261.6255653006,275.93341798027,292.67158636845,310.42509491746,327.40170814054,348.83408706747,367.9112241576,391.33200541501,413.90012676351,437.76975193523,465.63764214343,491.10256480205,523.2511306012],description:"Nigel Taylor's Circulating Balanced temperament (20th cent.)"},telemann:{frequencies:[261.6255653006,264.94361147373,271.70648167539,275.15237829755,278.64197723942,282.17583275232,289.3785657319,293.0485888979,296.76515515861,300.52885648597,304.34029066685,308.20006306951,312.10878854255,316.06708432391,324.13491490251,328.24573110938,332.40868242763,336.62443200122,345.21700307457,349.59519124833,354.02890545793,363.06573983159,367.67029324081,372.33324354561,377.05533136015,386.67993129161,391.58396987353,396.55020354877,406.67242132093,411.83001550364,417.05301810033,422.34226102699,433.12283887627,438.61588607285,444.17860098504,449.81186203693,461.29362042034,467.14394139401,473.06846134744,485.14386048744,491.29666030217,497.52749252881,503.83734680745,516.69814597997,523.2511306012],description:"G.Ph. Telemann (1767). 55-tET interpretation of Klang- und Intervallen-Tafel"},telemann_28:{frequencies:[261.6255653006,264.94361147373,275.15237829755,278.64197723942,293.0485888979,296.76515515861,308.20006306951,312.10878854255,328.24573110938,332.40868242763,345.21700307457,349.59519124833,354.02890545793,367.67029324081,372.33324354561,386.67993129161,391.58396987353,396.55020354877,406.67242132093,411.83001550364,438.61588607285,444.17860098504,461.29362042034,467.14394139401,473.06846134744,491.29666030217,497.52749252881,516.69814597997,523.2511306012],description:"Telemann's tuning as described on Sorge's monochord, 1746, 1748, 1749"},"temes-mix":{frequencies:[261.6255653006,306.31659399917,323.38698268281,342.47239171077,361.55773069062,378.62819763364,399.72843132859,423.31905787312,446.91000942727,523.2511306012],description:"Temes' 5-tone Phi scale mixed with its octave inverse"},"temes-ur":{frequencies:[261.6255653006,306.31659399917,323.38703872151,342.47239171077,361.55773069062,423.31905787312],description:"Temes' Ur 5-tone phi scale"},temes:{frequencies:[261.6255653006,306.31659399917,323.38703872151,342.47239171077,361.55773069062,423.31905787312,495.63057556553,523.2511306012,554.13187513888,585.01259700885,684.94462120932],description:"Temes' 5-tone Phi scale / 2 cycle"},"temes2-mix":{frequencies:[261.6255653006,306.31659399917,323.38698268281,342.47239171077,361.55773069062,399.72843132859,423.31905787312,468.0102705885,495.63057556553,523.2511306012,552.41124604023,585.01259700885,646.77396536561,684.94438778203,757.25639526728,799.45686265718,846.63811574624,893.82001885454,1046.5022612024],description:"Temes' 2 cycle Phi scale mixed with its 4/1 inverse"},temp10coh:{frequencies:[261.6255653006,279.06726965397,299.10339764541,320.57805584394,343.5945271479,368.2635494613,394.70435354475,423.05284121745,453.57582505819,488.36772189445,523.2511306012],description:"Differential coherent 10-tone scale, OdC, 2003"},temp10ebss:{frequencies:[261.6255653006,280.43397904206,300.58585223371,322.17714382919,345.31067040124,370.09659148016,396.65293718743,425.1061627261,455.59176355181,488.25490599611,523.2511306012],description:`Cycle of 10 equal "beating" 15/14's`},temp11ebst:{frequencies:[261.6255653006,278.68301283272,296.80966039395,316.07252488244,336.70993118161,358.64093492832,381.94662420398,406.71316497313,433.24697173408,461.44397806515,491.40843569917,523.2511306012],description:"Cycle of 11 equal beating 9/7's"},temp12coh3:{frequencies:[261.6255653006,279.8393060116,294.68135606466,311.32770136359,332.21069717879,353.56473801237,370.2386298036,397.61708850394,418.97112933752,440.1984563065,471.2874275201,496.80305467842,523.2511306012],description:"Differential coherent scale, interval=3, OdC, 2003"},temp12ebf:{frequencies:[261.6255653006,277.18807786937,293.58315284916,311.09098010692,329.5354160273,349.23174343306,369.98176018664,391.84186131702,415.18563115404,439.77824302677,466.03998256716,493.70667148145,523.2511306012],description:"Equal beating temperament tuned by The Best Factory Tuners (1840)"},temp12ebf4:{frequencies:[261.6255653006,276.98801737971,293.51517393789,310.79793252689,329.39098365485,348.83408706747,369.75126958642,391.78747833067,414.83115644933,439.62189128662,465.54602917011,493.43560586205,523.2511306012],description:"Eleven equal beating fifths and just fourth"},temp12ebfo:{frequencies:[261.6255653006,277.20265787963,293.64844512428,311.16011036869,329.64835309433,349.33484978517,370.11921182839,392.06266066657,415.42830219132,440.09698059047,466.36447845344,494.0968438935,523.62658899088],description:"Equal beating fifths and fifth beats twice octave at C"},temp12ebfp:{frequencies:[261.6255653006,277.75307788644,293.77513637875,310.82931496301,329.94340332986,349.12935317325,370.63270249518,391.99544730302,416.18671544528,440.21980402758,465.80107112682,494.47220378931,523.2511306012],description:"All fifths except G#-Eb beat same as 700 c. C-G"},temp12ebfr:{frequencies:[261.6255653006,277.1880780098,293.58315312731,311.09097992515,329.53543943235,349.23174457993,369.98176152553,391.84186168221,415.185630746,439.77824342227,466.03998361904,493.70667287983,523.2511306012],description:"Exact values of equal beating temperament of Best Factory Tuners (1840)"},temp12ep:{frequencies:[261.6255653006,277.19910487213,293.6996776193,311.18246278326,329.70593120198,349.3320268423,370.12638880276,392.15855510068,415.50221189151,440.23542223935,466.44090588941,494.20629608476,523.62445363767],description:"Pythagorean comma distributed equally over octave and fifth: 1/19-Pyth comma"},temp12fo1o:{frequencies:[261.6255653006,277.20349049726,293.7089710611,311.19723286579,329.72679517909,349.35966199273,370.1615231373,392.20198585541,415.5548023839,440.29810917508,466.51470234738,494.29230838881,523.72386870485],description:"Fifth beats same octave opposite"},temp12fo2o:{frequencies:[261.6255653006,277.19623399848,293.69359242342,311.17279259662,329.69226891672,349.31393351076,370.10338107372,392.13011658806,415.46777521802,440.19437666896,466.39258399594,494.14997995304,523.55935978973],description:"Fifth beats twice octave opposite"},temp12p10:{frequencies:[261.6255653006,277.12003622197,293.53214922797,310.91625060765,329.32990524605,349.3071136959,369.493381814,391.90691363044,415.11714643072,439.70197837153,465.74281849401,493.32589719545,523.2511306012],description:"1/10-Pyth. comma well temperament"},temp12p6:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,349.6228209638,367.9112241576,391.5530240856,413.43299207996,438.51190905657,466.16376151809,491.10256480205,523.2511306012],description:"Modified 1/6-Pyth. comma temperament"},temp12p8:{frequencies:[261.6255653006,277.02617059261,293.33333347996,310.60041853231,328.88393162803,349.42547049952,369.36822764145,391.77416758435,414.83597850347,439.25532436715,465.90062756558,492.49097043477,523.2511306012],description:"1/8-Pyth. comma well temperament"},temp12p8a:{frequencies:[261.6255653006,276.55731914056,293.33333347996,311.12698372208,328.88393162803,349.42547049952,368.74309237173,391.77416758435,414.83597850347,439.25532436715,466.69047534984,492.49097043477,523.2511306012],description:"1/8-Pyth. comma well temperament, consecutive just fifths"},temp12s17:{frequencies:[261.6255653006,275.41266079541,292.61316553779,309.9334225479,327.2710181906,348.78108411875,367.16108497228,391.29294726693,413.18177371806,437.63868343995,464.97078294553,490.98112850332,523.2511306012],description:'4/17th synt. comma "well"-temperament. OdC 1999'},temp12s3:{frequencies:[261.6255653006,275.79485124716,293.07576161921,310.19140758515,326.99095182327,348.87783040382,367.77258074571,390.81668391305,413.640406907,437.79703699716,465.22877230071,490.42492909292,523.2511306012],description:'1/3 synt. comma "well"-temperament. OdC 1999'},temp12septendec:{frequencies:[261.6255653006,277.01530443593,293.31032234393,310.5638707171,328.83233370046,348.17541215342,368.65631875068,390.34198455955,413.30334035457,437.61515184999,463.35732874365,494.18162334558,523.2511306012],description:"Scale with 18/17 steps"},temp12w2b:{frequencies:[261.6255653006,276.80621914251,293.38957467182,310.9374037046,329.12408537692,349.33498699812,369.32540968366,391.68699838314,414.83365420901,439.33301386008,466.03043161756,492.93477894539,523.2511306012],description:"The fifths on white keys beat twice the amount of fifths on black keys"},temp15coh:{frequencies:[261.6255653006,273.98642352939,286.93424587686,300.52595924487,314.76156220527,329.6715499436,345.28562122078,360.48992106995,377.61407292725,395.54746439596,414.33033691342,434.93480826785,455.53927928881,477.11963158959,499.65025190386,523.2511306012],description:"Differential coherent 15-tone scale, OdC, 2003"},temp15ebmt:{frequencies:[261.6255653006,274.13344448045,287.10161388969,300.54701305042,315.02372625978,330.03318193885,345.59498492211,361.72946206059,379.10151766291,397.1128647533,415.78702800292,435.14840215297,455.99486887387,477.60848441971,500.01748339385,523.2511306012],description:"Cycle of 15 equal beating minor thirds"},temp15ebsi:{frequencies:[261.6255653006,274.09084013406,287.01483652929,300.41443756554,314.84183942382,329.80016763418,345.30896502873,361.38848559819,378.7013656391,396.65136316555,415.2619179078,434.55734100747,455.33280077531,476.87279531786,499.20546063174,523.2511306012],description:"Cycle of 15 equal beating major sixths"},temp15mt:{frequencies:[261.6255653006,272.10155294862,290.46827626332,302.09918118188,314.19580976213,326.77681046955,348.83408706747,362.80207077951,377.32935907335,392.4383479509,418.92774655891,435.70241417719,453.14877154631,471.29371440761,503.10581234929,523.2511306012],description:"Cycle of 15 minor thirds, Petr Parizek"},temp16d3:{frequencies:[261.6255653006,272.52663052146,287.69189096389,299.67905363019,312.16568143019,325.17258353382,338.72144179457,352.83483584176,372.46899992671,387.98854005196,404.15472995283,420.99451113006,438.53594735503,462.93911228358,482.22824196207,502.32108537715,523.2511306012],description:"Cycle of 16 thirds tempered by 1/3 small diesis"},temp16d4:{frequencies:[261.6255653006,271.36369423603,291.82218013836,302.68427617679,313.95067836072,325.63643364742,337.75715313333,350.32902355546,376.74081403286,390.76372105392,405.30858212106,420.39482899491,436.04260883433,468.91646607712,486.37029938793,504.47379566792,523.2511306012],description:"Cycle of 16 thirds tempered by 1/4 small diesis"},temp16ebs:{frequencies:[261.6255653006,273.35566334732,285.38860666159,297.73221513295,311.13803992337,324.88997598926,338.996955196,354.31789928052,370.0343963911,386.15666093499,403.66631166114,421.62802297921,440.05346707662,460.0644954801,480.59216613216,501.64981691394,523.2511306012],description:"Cycle of 16 equal beating sevenths"},temp16ebt:{frequencies:[261.6255653006,273.54317752885,285.74681450472,298.24333695649,311.03977535434,324.14332902314,339.04034606654,354.29488987405,369.91554384313,385.91109319424,402.29053605603,420.91180538217,439.97998583037,459.50580330844,479.50024102158,499.97454326842,523.2511306012],description:"Cycle of 16 equal beating thirds"},temp16l4:{frequencies:[261.6255653006,278.81939890042,286.59644689091,305.43134787805,313.95067836072,322.70763593891,343.91573686494,353.50850469302,376.74081403286,387.24916379762,412.69888495295,424.21020636659,436.04260883433,464.69899736225,477.66074674968,509.05224558146,523.2511306012],description:"Cycle of 16 fifths tempered by 1/4 major limma"},temp17c10:{frequencies:[261.6255653006,278.13248184697,287.25399162485,296.67464640038,315.39293803189,325.73642523995,336.41913481987,347.45218787195,369.37422084479,381.48805431277,393.9991677018,418.85802036446,432.59470262079,446.78188702878,474.97099505857,490.54793493862,506.63572944675,523.2511306012],description:'Cycle of 17 fifths tempered by 1/10 of "17-tET comma"'},temp17c11:{frequencies:[261.6255653006,276.93071634298,286.5293181416,296.46061382736,313.80362259461,324.68026371274,335.93389640617,347.57758745223,367.91095120397,380.66298908833,393.8570200719,416.89773925535,431.34769064645,446.29848691039,472.40704302301,488.78098359819,505.72245578392,523.2511306012],description:'Cycle of 17 fifths tempered by 1/11 of "17-tET comma"'},temp17c12:{frequencies:[261.6255653006,275.93321340298,285.92682111936,296.28237159295,312.48531442823,323.80274674587,335.53006800342,347.68212334757,366.69599021774,379.97679689512,393.73860099464,415.27118158544,430.3112595477,445.8960513142,470.2809925818,487.31338757149,504.96265307831,523.2511306012],description:'Cycle of 17 fifths tempered by 1/12 of "17-tET comma"'},temp17c13:{frequencies:[261.6255653006,275.09197878886,285.41800532755,296.13163442011,311.37414725128,323.06208421743,335.18874504319,347.77059980835,365.67107999768,379.3971387881,393.63842979584,413.89982010446,429.43622376713,445.55581352332,468.48950048969,486.07501593832,504.32063522708,523.2511306012],description:'Cycle of 17 fifths tempered by 1/13 of "17-tET comma"'},temp17c14:{frequencies:[261.6255653006,274.37296298479,284.98259752889,296.00249241327,310.42486507835,322.42857866752,334.89645942743,347.84645641687,364.79486552165,378.90099378095,393.5525871037,412.72797362103,428.68761089217,445.26438593469,466.95936897503,485.01606158014,503.77098227424,523.2511306012],description:'Cycle of 17 fifths tempered by 1/14 of "17-tET comma"'},temp17c15:{frequencies:[261.6255653006,273.75133628611,284.60578240525,295.8906154666,309.60449456672,321.88054534371,334.64335075548,347.91221098893,364.0371787025,378.47152629398,393.47820661021,411.71505587788,428.03986711385,445.01196937812,465.63729761752,484.10016650719,503.29510175355,523.2511306012],description:'Cycle of 17 fifths tempered by 1/15 of "17-tET comma"'},temp17ebf:{frequencies:[261.6255653006,272.44226039746,283.83762774933,295.84262353625,308.01140541539,320.83119298602,334.33681303028,348.02669374128,362.44895565855,377.64277622383,393.64943714798,409.87448211667,426.96753159265,444.97502525992,463.22819966593,482.45788080796,502.71631088044,523.2511306012],description:"Cycle of 17 equal beating fifths"},temp17ebs:{frequencies:[261.6255653006,272.25303191034,284.09302419378,294.99486987374,307.14054534497,320.67196534338,333.1312181383,347.01199086095,362.47647062671,376.71561430061,392.57935523584,410.25304697073,426.52635565248,444.65634289229,464.854847056,483.45291583119,504.17290303449,523.2511306012],description:"Cycle of 17 equal beating sevenths"},temp17fo2:{frequencies:[261.6255653006,272.49443630436,283.81483782984,295.60553136463,307.88605111976,320.67674980257,333.99881838086,347.87433573796,362.32629011314,377.37863296804,393.05630224552,409.38528080469,426.39262165238,444.10651133426,462.55629730628,481.77255670213,501.78712602614,522.6331757532],description:"Fifth beats twice octave"},temp17nt:{frequencies:[261.6255653006,272.67141175251,283.62400127587,295.59862296305,308.07881564783,321.08592105074,333.98321109015,348.08400151932,362.78013022893,377.35217954558,393.28401259522,409.88848628312,426.35277308246,444.35341180422,463.11404114636,482.66674266598,502.05436630802,523.2511306012],description:"17-tone temperament with 27/22 neutral thirds"},temp17s:{frequencies:[261.6255653006,272.47577100117,283.83144686231,295.66037914716,307.98229466369,320.75501909295,334.12277657932,348.04764753103,362.48197303348,377.58873713905,393.32509157531,409.63717539588,426.70917767843,444.49267120113,463.01730800927,482.21968335939,502.31662775181,523.2511306012],description:"Cycle of 17 fifths tempered by 2 schismas. Schulter, Tuning List 10-9-98"},temp19d5:{frequencies:[261.6255653006,270.66831710441,280.02362001571,289.70227696231,304.50185643804,315.02657220273,325.91506125677,337.17989695691,348.83408706747,360.89108965294,379.3273836973,392.4383479509,406.00247545366,420.03542981361,434.55341522625,449.57319616728,472.53985806789,488.87259164079,505.76984518255,523.2511306012],description:"Cycle of 19 thirds tempered by 1/5 small diesis. Third = 3\\5"},temp19ebf:{frequencies:[261.6255653006,271.21349495395,281.45216719787,291.55303152151,302.33945232218,313.85796000757,325.22143162672,337.35615460362,350.31447634238,363.09838134063,376.74994653359,390.21776437961,404.59965986997,419.95766938963,435.10896436483,451.288596451,468.56635736893,485.61156561298,503.81364896584,523.2511306012],description:"Cycle of 19 equal beating fifths"},temp19ebmt:{frequencies:[261.6255653006,271.3515811897,281.43551369743,291.89053542337,302.73030209663,313.98726376766,325.65848288741,337.75920164946,350.30522706536,363.3129458114,376.82130195458,390.82676353803,405.34762742982,420.40285701732,436.01212051281,452.22214724761,469.0287008844,486.45373685079,504.52001310976,523.2511306012],description:"Cycle of 19 equal beating minor thirds"},temp19ebo:{frequencies:[261.6255653006,277.22364042749,293.65618047886,311.2040149966,329.6906225544,349.43193638686,370.22936988938,392.1394232912,415.53653598153,440.18534605859,466.50709783521,494.2370091719,523.84897992059,555.04513017437,587.91021027711,623.0058793126,659.97909442818,699.46172209312,741.05658909815,784.8766959018],description:"Cycle of 19 equal beating octaves in twelfth"},temp19ebt:{frequencies:[261.6255653006,271.59402175166,281.80172126331,292.25440577595,302.95795550425,313.91838845704,325.14187338321,337.60244413755,350.36206814823,363.42792409681,376.80735887968,390.50790160795,404.53725818867,420.11297167574,436.06250107414,452.39482160095,469.11911613638,486.2447950704,503.78149001575,523.2511306012],description:"Cycle of 19 equal beating thirds"},temp19k10:{frequencies:[261.6255653006,271.76196854941,282.29109592175,293.22816309454,304.58897525989,314.09773337131,326.2671147593,338.90798583865,352.03861397416,365.67797428016,377.09383089344,391.70392883316,406.88007915549,422.6442137645,439.01911266466,452.72455471179,470.26488431194,488.48479525859,507.41061720556,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/10 kleisma"},temp19k3:{frequencies:[261.6255653006,272.95237156345,284.76956174698,297.09836322231,309.96092731219,314.44113201634,328.05453510669,342.25731432435,357.07498823553,372.53417996774,377.91882441317,394.28042610165,411.35038641496,429.15937528906,447.73938330242,454.2110508691,473.87564511273,494.39160029408,515.79576952378,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/3 kleisma"},temp19k4:{frequencies:[261.6255653006,272.52663052146,283.88190679319,295.71031957624,308.03158289191,314.31844786309,327.4150485592,341.05734286691,355.26806612985,370.07090075127,377.62397563434,393.35830866491,409.74823893478,426.8210805314,444.6052930255,453.67960031314,472.58291784883,492.27387080735,512.78528301977,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/4 kleisma"},temp19k5:{frequencies:[261.6255653006,272.27150423996,283.35064249518,294.88062803952,306.8797443789,314.24485853342,327.03195662575,340.33937954017,354.18830437416,368.6007608062,377.44717941318,392.80607455881,408.78994578219,425.42422593284,442.73537947933,453.36102900438,471.8089732132,491.00759210237,510.98743222773,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/5 kleisma"},temp19k6:{frequencies:[261.6255653006,272.10155294862,282.99701916355,294.32876096318,306.11424676116,314.19580976213,326.77681046955,339.86157848985,353.47028562902,367.62391141072,377.32935907335,392.4383479509,408.1523292189,424.49552853314,441.49314144476,453.14877154631,471.29371440761,490.16521545931,509.79236747994,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/6 kleisma"},temp19k7:{frequencies:[261.6255653006,271.9802243463,282.7447017667,293.93521741989,305.56863311614,314.16077935352,326.59468561952,339.52070304385,352.95830848174,366.92774752709,377.24522513926,392.17589782962,407.69749910471,423.83341578697,440.60837682578,452.99722066906,470.92601754108,489.56440442681,508.94046380742,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/7 kleisma"},temp19k8:{frequencies:[261.6255653006,271.88926339885,282.55561052465,293.64040364533,305.16005936662,314.13450956378,326.45815718343,339.26526937521,352.57481080357,366.4064920117,377.18213591051,391.97917444376,407.35670799125,423.33750965456,439.94524339387,452.88359011983,470.65043349884,489.11427877975,508.30246674991,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/8 kleisma"},temp19k9:{frequencies:[261.6255653006,271.81853598083,282.40862793607,293.41130980736,304.84265779003,314.11407882217,326.35200974457,339.06673262958,352.27682225125,366.00158141044,377.13307501509,391.82623534045,407.09184571451,422.95220417284,439.43048454013,452.79523167251,470.4362008006,488.76446469244,507.80680338678,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/9 kleisma"},temp19lst:{frequencies:[261.6255653006,270.56149416036,279.80263334807,289.3594074481,304.78245180412,315.19242188443,325.95794877725,337.09117667186,348.60466454729,360.5114003397,379.7268899367,392.69661814622,406.10933276067,419.98016416303,434.32475952075,449.15930043669,473.09978287909,489.25870067642,505.96953296163,523.2511306012],description:"Cycle of 19 least squares thirds 5/4^5 = 3/2"},temp19lst2:{frequencies:[261.6255653006,270.86681403244,280.43448605562,290.34011310859,303.98143643885,314.71879896063,325.83542931914,337.34472599098,349.26055890156,361.59728998429,378.58655645252,391.95915298383,405.80409975455,420.1380835834,434.97837844393,450.34287106955,471.50175486263,488.15634183652,505.39920634693,523.2511306012],description:"Cycle of 19 least squares thirds 5/4, 3/2 (5), 6/5 (4)"},temp21ebs:{frequencies:[261.6255653006,270.48603901573,279.57527100587,288.89916626223,298.46378542286,308.59004184051,318.97773454914,329.63361550747,340.56460989801,352.13747205507,364.00912264098,376.18727282918,388.67983604901,401.90596519454,415.47356606258,429.3914526989,443.66866815503,458.78424493347,474.29007331382,490.19622772738,506.51304733863,523.2511306012],description:"Cycle of 21 equal beating sevenths"},temp22ebf:{frequencies:[261.6255653006,269.81217946012,278.43675961795,287.52273893052,297.09479717246,306.30473778727,316.00739221221,326.22911792828,336.99768333647,347.35886661388,358.27435338478,369.77379349451,381.88843101834,394.65117841871,406.93109909525,419.8679691216,433.49693671533,447.85502662133,461.66993710068,476.2239184443,491.55650493929,507.70935693135,523.2511306012],description:"Cycle of 22 equal beating fifths"},temp22ebt:{frequencies:[261.6255653006,270.16401944699,278.90739732088,287.86061708193,297.02871287074,306.4168425362,316.03028815926,325.87445510174,336.54752540671,347.4767459334,358.66827061689,370.12838991426,381.86355177507,393.88036006393,406.18556836568,419.52690380046,433.1884314408,447.17783799964,461.50298590676,476.17193984405,491.19294816955,506.57446222015,523.2511306012],description:"Cycle of 22 equal beating thirds"},temp22fo2:{frequencies:[261.6255653006,269.97341665226,278.58762814388,287.47669703533,296.64939669548,306.114775449,315.88217199169,325.96122111215,336.36187067071,347.09438029185,358.16933884319,369.59767092309,381.39065611261,393.55992749281,406.11749146369,419.07573510033,432.44744798202,446.24582051114,460.48446638525,475.17743368268,490.33921589034,505.98477744485,522.12955176559],description:"Fifth beats twice opposite rate as octave"},temp23ebs:{frequencies:[261.6255653006,269.54528659271,277.75645349026,286.26979186473,295.09642104593,304.24787054065,313.41421505132,322.9178815064,332.77128133421,342.98728793362,353.5792427091,364.56098080918,375.56059498003,386.96499273375,398.78907363541,411.04828247111,423.75862731373,436.93671323096,450.13624919654,463.82153026575,478.01042762353,492.72147385367,507.97388874722,523.2511306012],description:"Cycle of 23 equal beating major sixths"},temp24ebaf:{frequencies:[261.6255653006,269.28287293678,277.23083697142,285.33112867981,293.73889258015,302.30779732819,311.20195864933,320.26658492056,329.67528611807,339.26431305611,349.21731641877,359.36108127338,369.88988063787,380.8183283077,391.95623237686,403.5169050439,415.29914897519,427.52862168357,439.9924847314,452.92944495636,466.1143590732,479.79973930305,493.74741628009,508.22451419243,523.2511306012],description:"Cycle of 24 equal beating 11/8's"},temp24ebf:{frequencies:[261.6255653006,269.29177952703,277.18807786937,285.37455545576,293.58315284916,302.20762754558,311.09098010692,320.17688686519,329.5354160273,339.23795459232,349.23174343306,359.45337270909,369.98176018664,380.89707445632,391.84186131702,403.3411703213,415.18563115404,427.4653330282,439.77824302677,452.71493931339,466.03998256716,479.66882917609,493.70667148145,508.26043277122,523.2511306012],description:"24-tone ET with 23 equal beatings fifths. Fifth on 17 slightly smaller."},temp25ebt:{frequencies:[261.6255653006,269.07040607882,276.69392272178,284.50040351526,292.49424189123,300.67993013952,309.06207502162,317.64539198503,326.43470939254,335.74076076764,345.27015661764,355.02825763358,365.02055286832,375.25266439783,385.73034580726,396.45949385543,407.44613828076,419.07870286007,430.99044652419,443.18807578441,455.67844358274,468.46858279232,481.56568677979,494.97711759939,508.71042703507,523.2511306012],description:"Cycle of 25 equal beating thirds"},temp26eb3:{frequencies:[261.6255653006,268.53506427639,276.23413316293,283.52944261778,291.01742029734,298.70315454572,307.26715974579,315.38204761281,323.71124866952,332.26042290088,341.78653782772,350.81307822085,360.07800843467,370.40166886388,380.18393134541,390.22454217496,400.5303243006,412.0137801623,422.89501338113,434.06361862988,445.5271853685,458.30072684004,470.40439262311,482.82771472967,495.57913524385,509.78770018956,523.2511306012],description:"Cycle of 26 fifths, 5/4 beats three times 3/2"},temp26ebf:{frequencies:[261.6255653006,268.42568455944,275.6873347244,283.44184249631,290.6057533496,298.25588724353,306.42524452376,315.14906491362,323.2084665433,331.81486605817,341.00539333861,350.8196903474,359.88651586494,369.56871668171,379.90806097321,389.45994242989,399.66012078319,410.55259814459,422.18435687733,432.93022440227,444.40542617247,456.65946119637,469.74519313893,481.83429211771,494.74389287961,508.52968420524,523.2511306012],description:"Cycle of 26 equal beating fifths"},temp26ebmt:{frequencies:[261.6255653006,268.65375733515,276.22103845862,283.50786797993,291.35362426947,298.90860888253,307.04308924768,315.80151824033,324.23534814673,333.31608510092,342.06028051348,351.47518831899,360.54116941247,370.30254728737,380.81265974123,390.93325547321,401.83014055422,412.32317421544,423.62106542614,434.50024245702,446.21389528982,458.82603004394,470.97074536855,484.04700949484,496.63864979835,510.1961187079,523.2511306012],description:"Cycle of 26 equal beating minor thirds"},temp26ebs:{frequencies:[261.6255653006,268.70854008298,275.97438147252,283.42781183148,291.07367309004,298.91693448926,307.01176285104,315.31558194419,323.83378869523,332.57191674,341.53564330438,350.78687613393,360.27695513986,370.01204624828,379.9984780646,390.24273934583,400.81557597059,411.66137956276,422.7871998129,434.200265189,445.90799193987,457.99123299379,470.38643795716,483.10166179174,496.14516363988,509.5254229925,523.2511306012],description:"Cycle of 26 equal beating sevenths"},temp27c8:{frequencies:[261.6255653006,268.8683660761,273.88218275531,281.46429379013,289.25630678777,297.26403435806,305.49344487497,313.95067836072,319.80518189674,328.65861797738,337.75715313333,347.10756874671,356.7168418477,363.36884069528,373.42828707985,383.76621672426,394.39034225616,405.30858212106,412.86671295557,424.29645219584,436.04260883433,448.1139452722,460.51946086698,473.26841152735,482.09384659572,495.44005640506,509.15574351714,523.2511306012],description:"Cycle of 27 fifths tempered by 1/8 of difference between augm. 2nd and 5/4"},temp27eb2:{frequencies:[261.6255653006,268.46319812592,275.47953375729,282.6792426258,290.06711722511,297.6480770209,305.21714541248,313.19405229436,321.37943712173,329.77875040935,338.39757940759,347.00289091411,356.07187808578,365.37788286775,374.92710181611,384.72589137834,394.78077412888,404.81988946592,415.39993259502,426.25648711974,437.39677971686,448.82822593369,460.24174609969,472.27024976331,484.61312060812,497.27857467888,510.27504274822,523.2511306012],description:"Cycle of 27 fourths, 5/4 beats twice 4/3"},temp28ebt:{frequencies:[261.6255653006,268.20719354764,274.94677993062,281.84811597329,288.91508487862,296.15166190523,303.56191452522,311.15001492268,318.92023016627,326.87692943437,335.10396312415,343.5284476344,352.15511767098,360.98882840285,370.03454814671,379.29736707683,388.78249121135,398.49525813745,408.44113355924,418.72492751128,429.25553103998,440.03886948281,451.08100913788,462.38815755283,473.96667987616,485.82308640697,497.96404651665,510.39638953936,523.2511306012],description:"Cycle of 28 equal beating thirds"},temp29c14:{frequencies:[261.6255653006,268.03384168485,274.59908446169,281.12309545065,288.00894581307,294.85155418799,302.07367045706,309.47268578827,316.82523654187,324.58557784847,332.29718551084,340.4364979057,348.77517523396,357.06148706459,365.80737813473,374.49834647311,383.67133729641,392.78672100419,402.40767098088,412.26427490957,422.0589810157,432.39692561869,442.66994710331,453.51274088813,464.62111626441,475.65973015548,487.31057837675,498.88825560972,511.10806227553,523.2511306012],description:"Cycle of 29 fifths 1/14 comma positive"},temp29ebf:{frequencies:[261.6255653006,267.97141371953,274.40384216744,281.08918054527,287.86573007783,294.90872015661,302.04780073409,309.28428172011,316.80528774769,324.42890571749,332.35226986162,340.383734589,348.52477529448,356.98590767403,365.56247629567,374.47626314535,383.51165984234,392.90231649713,402.42108995343,412.06973029551,422.09773822292,432.26256191617,442.8270465847,453.53566813958,464.39038927288,475.67189906986,487.10732348594,498.99237046175,511.03956815915,523.2511306012],description:"Cycle of 29 equal beating fifths"},temp29fo:{frequencies:[261.6255653006,267.94780983951,274.42283293416,281.05432651499,287.84607006616,294.80193939197,301.92589896847,309.2220107369,316.69443479624,324.34743177532,332.18536334326,340.21270232633,348.43402388135,356.85401564372,365.47747852664,374.30932945854,383.35460418662,392.61845788025,402.10617708826,411.82316930666,421.77497497272,431.96726840975,442.4058610624,453.0967048103,464.04589268124,475.25967298378,486.74443697706,498.50673304697,510.55326782272,522.89091000079],description:"Fifth beats with opposite equal rate as octave"},temp31c51:{frequencies:[261.6255653006,267.17944246504,273.80687224646,279.61933836952,286.55534345926,292.63843680803,298.85066583755,306.26370726525,312.76517639908,319.40466275447,327.32754956004,334.27616903285,342.56794607269,349.84009583671,357.26662128823,366.1286782788,373.90098334082,383.17565840352,391.30984260196,399.61670205031,409.52926208827,418.22288720188,428.59697681668,437.69538032917,446.98692528774,458.07451174337,467.79867446983,477.72926229583,489.57941763243,499.97237729845,512.37427391379,523.2511306012],description:"Cycle of 31 51/220-comma tempered fifths (twice diff. of 31-tET and 1/4-comma)"},temp31coh:{frequencies:[261.6255653006,267.17903658035,272.71444919697,278.8328003927,286.67318542907,292.31259119845,298.22448926086,305.9625493141,312.79375273624,319.37019903425,325.99008611032,333.53448283298,342.55073731576,349.35067604096,356.49690427728,365.94514964733,373.94225818849,381.74854907994,389.68867781295,401.66236977474,409.34549662494,417.52928752537,426.20510506248,437.61344561246,447.02040600938,456.30467151405,466.17931462488,479.8608061495,489.18804557359,499.02680928636,509.58872491278,523.2511306012],description:"Differential coherent 31-tone scale, interval=8, OdC, 2003"},temp31eb1:{frequencies:[261.6255653006,267.35556661283,273.21106374578,279.19480525048,287.36432599524,293.65804565963,300.08960744161,306.66203029506,313.37839929357,320.24186707858,327.25565533923,334.42305632458,341.74743438901,349.23222958864,356.8809512704,367.32364464292,375.36859607341,383.58974428421,391.99094825517,400.57615379751,409.34938620036,418.31476585427,427.47650107887,436.83889236244,446.40633438056,459.46863260649,469.5317006585,479.81516534138,490.32385367952,501.06269841655,512.03674033076,523.2511306012],description:"Cycle of 31 thirds, 3/2 beats equal 5/4. Third 1/18 synt. comma higher"},temp31eb1a:{frequencies:[261.6255653006,267.52830363402,273.56421824856,279.73631545395,286.19123047598,292.64821393201,299.25087842544,306.00251077972,312.90647197491,319.96619882071,327.18520755731,334.56708808783,342.11551697966,349.83425186023,357.90667665031,365.98168819447,374.23888853079,382.68238383924,391.31637942763,400.14517332125,409.17316051655,418.40483516889,427.84479530109,437.49773526159,447.36846272566,457.69148927209,468.01782376277,478.57713873597,489.37469064597,500.41585743254,511.7061296998,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats equal 7/4"},temp31eb2:{frequencies:[261.6255653006,267.43633367564,273.37616065041,279.44791264824,286.8151286113,293.18536340431,299.69708268426,306.35342885652,313.15761412007,320.11292201761,327.22270902014,334.4904061467,341.91952062013,349.51363755953,357.2764217104,366.69546492458,374.83986170174,383.16514754137,391.67534003419,400.37454600262,409.26696348258,418.35688374945,427.64869338884,437.14687641357,446.85601642745,458.63669049374,468.82312458207,479.23580188553,489.87974732177,500.7600974131,511.88210276525,523.2511306012],description:"Cycle of 31 thirds, 3/2 beats twice 5/4"},temp31eb2a:{frequencies:[261.6255653006,267.30377559621,273.10522335955,279.03258328435,287.71713441117,293.9616250555,300.34164347605,306.86013111019,313.520093235,320.3246003528,327.27678960683,334.37986622751,341.63710501026,349.05185182525,356.62752721996,367.72712485201,375.70811839104,383.86232802855,392.19351543866,400.70551714108,409.40225971792,418.28775270674,427.36609266644,436.64146506587,446.11814621352,460.00303307438,469.98674378481,480.18713671772,490.60891465214,501.25688243424,512.13594919255,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats twice 3/2"},temp31eb2b:{frequencies:[261.6255653006,267.52098517401,273.5492512983,279.71335720518,286.24081966732,292.69091492047,299.28635537219,306.03041620307,312.92644639599,319.97787039914,327.18818982659,334.56098519707,342.09991771207,349.80873107384,357.97195918064,366.0384300542,374.28666922186,382.72077261519,391.34492846269,400.16341936959,409.18062444454,418.40102147414,427.82918914659,437.46980932536,447.32766937413,457.76662230541,468.08184681118,478.62951259033,489.41485742956,500.44323714283,511.72012823096,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats twice 7/4 (7/4 beats twice 5/4 gives 31-tET)"},temp31ebf:{frequencies:[261.6255653006,267.58895287558,273.47207673981,279.84020613447,286.1226232561,292.32048149598,299.02929415269,305.64780689513,312.81195283539,319.87967238294,326.85226402826,334.39967773649,341.84550545999,349.90516819854,357.85635261941,365.7005167875,374.19135817901,382.56791460144,390.83172556312,399.77680617055,408.60149248083,418.153686518,427.57731316062,436.87410111252,446.93731687602,456.86508723973,467.61130449655,478.21288647115,488.67177324268,499.99289085438,511.16163412976,523.2511306012],description:"Cycle of 31 equal beating fifths"},temp31ebf2:{frequencies:[261.6255653006,268.47208070676,273.9410776603,281.1098810272,286.83632036086,292.67941197057,300.33857976184,306.45672349367,312.69950064833,320.88257689406,327.41921873353,335.98749730659,342.8318387903,349.81560715632,358.96997989875,366.28249344322,375.86779039798,383.5245262314,391.33723606718,401.57819634767,409.75867428285,420.48170539436,429.04726334649,437.78730875453,449.24382765192,458.39529367535,467.73318258368,479.97335657757,489.75080836323,502.56716753771,512.80487382351,523.2511306012],description:"Cycle of 31 fifths, 3/2 beats equal 7/4"},temp31ebs:{frequencies:[261.6255653006,267.49970467488,273.5255021102,279.70687352555,286.04783307233,292.55250379055,299.22511217624,305.93841412724,312.82503848113,319.88946348152,327.13627425327,334.57018402367,342.19602042672,349.86836735032,357.73879552978,365.81242398075,374.09449397971,382.59039112658,391.30563169636,400.0740276901,409.06880268892,418.29580572823,427.76103041037,437.4706255228,447.4309015606,457.4519243295,467.73166961576,478.27681510244,489.09421437332,500.19089295757,511.57406697079,523.2511306012],description:"Cycle of 31 equal beating sevenths"},temp31ebs1:{frequencies:[261.6255653006,267.15774161678,272.80689957055,278.57550963341,287.00766304701,293.07655388437,299.27377555355,305.60203820353,312.06411627904,318.6628357552,328.30838543699,335.25059642555,342.33960321815,349.5785118895,356.97048813578,364.51877275634,375.55232561156,383.49353066309,391.60265342908,399.88324912115,408.33893898267,416.9734277591,429.59472356821,438.6786743379,447.954711436,457.42689142912,467.09936712211,476.97636845082,491.41388278482,501.80502418824,512.41589335668,523.2511306012],description:"Cycle of 31 sevenths, 3/2 beats equal 7/4. 17/9 schisma fifth"},temp31ebs2:{frequencies:[261.6255653006,267.52957387699,273.56681763873,279.74030009523,286.13080593576,292.58781532731,299.19053769144,305.94226304679,312.84635035505,319.90623967996,327.21431324819,334.59843914397,342.14920188821,349.87035796113,357.76575454309,365.83932576918,374.19671203989,382.64107477964,391.27599615891,400.10577865514,409.13482199124,418.3676180873,427.92498506647,437.58181190976,447.45656083737,457.55415226032,467.87960969795,478.43807796233,489.36771995709,500.41110255739,511.70370009509,523.2511306012],description:"Cycle of 31 sevenths, 3/2 beats twice 7/4. Almost 31-tET"},temp31ebsi:{frequencies:[261.6255653006,267.31506098272,273.2139312212,279.32987994092,285.67089487749,292.24525964349,299.06156112772,306.12870201667,312.71376833043,319.5411631371,326.61980701828,333.95894503443,341.56816427739,349.45740040562,357.63696227352,366.11753111539,374.01961057916,382.2124855973,390.7068565555,399.51382386635,408.64488423766,418.11197066674,427.92744450622,438.10412760018,447.58662182594,457.41807184609,467.61131789159,478.17967690081,489.136951815,500.49745466086,512.27602199232,523.2511306012],description:"Cycle of 31 equal beating major sixths"},temp31ebt:{frequencies:[261.6255653006,267.508686718,273.53300221315,279.70190221389,286.0188552526,292.48741633838,299.11122072338,305.89399777728,312.83956126154,319.95181832117,327.23477005018,334.588671338,342.11906613961,349.83019225353,357.72638299858,365.81208378543,374.09184045976,382.57031224079,391.25226584136,400.14258695229,409.24627647794,418.43865241641,427.85164834976,437.49055334209,447.36079317794,457.46791872903,467.81761394993,478.41570188597,489.26814549043,500.38104816704,511.76065992154,523.2511306012],description:"Cycle of 31 equal beating thirds"},temp31g3:{frequencies:[261.6255653006,266.21023205793,270.87523947024,275.62199471997,289.25983723073,294.32876096318,299.48651076576,304.73464409936,310.07474405997,315.5084236529,331.11985608357,336.92232427465,342.82647426905,348.83408706747,354.94697625466,361.16698614085,379.03761443004,385.6797831671,392.4383479509,399.31534788729,406.31285900225,413.43299207996,433.88975562921,441.49314144476,449.22976592409,457.10196592055,465.11211608996,473.26263524279,496.67978412536,505.38348615935,514.23971114652,523.2511306012],description:"Wonder Scale, cycle of 31 sevenths tempered by 1/3 gamelan residue, s.wonder1"},temp31g4:{frequencies:[261.6255653006,266.75106828164,271.97698492363,277.30528403104,287.97116616014,293.61280545832,299.36497003718,305.22982618403,311.20958045219,317.30648321666,329.51091606373,335.96636137331,342.54827390456,349.25913259695,356.10146388137,363.07784268567,377.0427625798,384.42940207435,391.96075366681,399.63965159508,407.46898671086,415.4517078616,431.43106138252,439.88322158593,448.50096908674,457.28754710584,466.24626137824,475.38048570318,493.66485502092,503.33623955776,513.19709315346,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/4 gamelan residue"},temp31g5:{frequencies:[261.6255653006,267.07609791103,272.64018328418,278.3201871026,287.20071989568,293.1840695693,299.2920706603,305.52732176658,311.89247392994,318.39023342226,328.54930692245,335.39408374843,342.38146206091,349.5144087687,356.79595852417,364.22920722399,375.85089312601,383.68111960674,391.67447579625,399.83436022994,408.16424460367,416.66766586736,429.96253800336,438.92009035289,448.06425836543,457.39892986705,466.92807368021,476.65574406444,491.86469103391,502.11187209711,512.57253609913,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/5 gamelan residue"},temp31g6:{frequencies:[261.6255653006,267.29300481931,273.08321314304,278.9988528944,286.68823620156,292.89859205665,299.24348036203,305.72581270733,312.34856974117,319.11478979112,327.9097940226,335.01310892782,342.27029731995,349.68469585889,357.2597060542,364.99881126821,375.05840734677,383.18307527508,391.48374080678,399.96422099622,408.62840644009,417.48028065389,428.98629965513,438.27917301224,447.77335490729,457.47320099372,467.3831713443,477.50781354513,490.66822826519,501.2972832058,512.15658610391,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/6 gamelan residue"},temp31g7:{frequencies:[261.6255653006,267.44804485495,273.40010374961,279.48462577409,286.32273545638,292.69485077785,299.20877758909,305.86767190621,312.6747599825,319.63333987564,327.45376040978,334.74124806474,342.19091885571,349.80638115363,357.59132564064,365.54952414453,374.49336901227,382.82772265927,391.34755742947,400.0570012071,408.96027492626,418.06169111145,428.2903432132,437.821949061,447.565680886,457.52625955954,467.70851101039,478.11736856842,489.81539667363,500.71624319167,511.85968815724,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/7 gamelan residue"},temp31h10:{frequencies:[261.6255653006,267.8597617245,273.71072489962,279.68949451567,286.35413084244,292.60907359238,299.00064605783,306.12544311476,312.81225819702,320.26616683613,327.26186315247,334.41036913783,342.37893460431,349.85764856047,358.19430059608,366.01847563765,374.01355928612,382.92581520849,391.29021017831,400.61414686654,409.36491649663,418.30683086326,428.27453775026,437.62950220286,447.18881072031,457.84473927605,467.84561789912,478.99376955124,489.45661357347,500.14800438647,512.06587983104,523.2511306012],description:"Cycle of 31 fifths tempered by 1/10 Harrison's comma"},temp31h11:{frequencies:[261.6255653006,269.21878403965,274.22153683641,279.31725480271,287.42394184039,292.76499331753,298.20529308835,306.86017365004,312.56239683413,321.63396690808,327.61072570921,333.69854562169,343.38355445704,349.7644731902,359.91576765193,366.60389537541,373.41630725864,384.25405432087,391.39444778107,402.75397853578,410.23814647641,417.86138882164,429.98907567166,437.9793418028,446.11808436842,459.06587176894,467.59645436585,481.16761342105,490.10890120058,499.21634316923,513.70521350358,523.2511306012],description:"Cycle of 31 fifths tempered by 1/11 Harrison's comma"},temp31h12:{frequencies:[261.6255653006,270.35656674398,274.64794212014,279.0074329748,288.31850430385,292.89498819461,297.54411640065,307.47379627264,312.35433239663,322.77826253379,327.90172667751,333.10651564349,344.2229903876,349.68684701428,361.35664068489,367.0924599966,372.91932620731,385.3644371109,391.48133253101,404.54589939324,410.96726244836,417.49055189439,431.4231018689,438.27108715714,445.22777061734,460.08596806997,467.38892215786,482.98668436162,490.65313915878,498.44128370652,515.07533168556,523.2511306012],description:"Cycle of 31 fifths tempered by 1/12 Harrison's comma"},temp31h8:{frequencies:[261.6255653006,264.15772162327,272.31089540773,280.71571360382,283.4326348965,292.18072491748,301.19882119914,304.11398928909,313.50040506268,316.53463456122,326.30440921209,336.37572681506,339.63135730234,350.11400731728,353.50260556257,364.41338872146,375.66093089504,379.29678648678,391.00370158472,394.788050771,406.97310157871,419.5342415638,423.59472503043,436.668886633,450.14658206855,454.50334862767,468.53149836075,473.06620699858,487.66729542944,502.71904336675,507.58463809481,523.2511306012],description:"Cycle of 31 fifths tempered by 1/8 Harrison's comma"},temp31h9:{frequencies:[261.6255653006,266.20804854623,273.08769296879,280.14512719472,285.05198845745,292.41861893027,299.97562432697,305.22982618403,313.11791376428,318.60230743232,326.83598255713,335.28243953396,341.15505431438,349.97156260351,356.10146388137,365.30423365264,374.74482972428,381.30864508241,391.16284711627,398.01423104415,408.30015740759,418.85190169901,426.18827121524,437.20230245522,448.50096908674,456.35665612784,468.15032961482,476.35018210031,488.66055322307,501.28905975035,510.06935121341,523.2511306012],description:"Cycle of 31 fifths tempered by 1/9 Harrison's comma"},temp31ms:{frequencies:[261.6255653006,267.90457886781,273.56603860918,280.13162379381,286.05147140959,292.91670530125,299.10673210371,306.2852939563,312.75782903301,320.26401722477,327.03195662575,334.88072358477,341.95754947331,350.16453098318,357.56433846376,366.14588292411,373.88341429498,382.85661659068,390.94728541851,400.33002063726,408.78994578219,418.60090448096,427.44693588739,437.70566275183,446.9554220819,457.68235263341,467.35426952494,478.57076966998,488.68410850494,500.41252756995,510.98743222773,523.2511306012],description:"Cycle of 31 5th root of 5/4 chromatic semitones"},temp31mt:{frequencies:[261.6255653006,267.90457886781,274.33428876064,280.9183116909,285.65057792122,292.50627485027,299.52642572255,306.71505845072,314.07622014281,319.36714514233,327.03195662575,334.88072358477,342.9178609508,351.14788961362,359.57543896435,365.63273925968,374.40803131735,383.39382442208,392.5952765698,402.01756125559,408.78994578219,418.60090448096,428.6473261885,438.93486201703,449.46929870544,457.04092569426,468.01003810189,479.24227945773,490.7440946167,502.52195335034,510.98743222773,523.2511306012],description:"Cycle of 31 square root of 5/4 meantones"},temp31to:{frequencies:[261.6255653006,267.53589118464,273.57973594714,279.76011588387,286.08011543105,292.54288870475,299.15166280294,305.90973254237,312.82047235615,319.88733118052,327.11383586587,334.50359293692,342.06029039257,349.78769954651,357.68967690936,365.77016611333,374.03319988033,382.48290424395,391.12349182016,399.95927701915,408.9946695077,418.23417857039,427.68241536008,437.34409519915,447.22403993284,457.32718033558,467.65855857191,478.22333071276,489.02676930874,500.07426891005,511.37133726836,522.92361522538],description:"Third beats with opposite equal rate as octave"},temp31w10:{frequencies:[261.6255653006,267.37376533775,273.24825962152,279.25182297475,287.24047076273,293.55146000581,300.00110689476,306.59245933664,313.32863150945,320.21280450383,327.24823031411,334.4382321302,341.78620813039,349.29562523194,356.97015906904,367.18199034811,375.24938058245,383.49402021056,391.91980359563,400.53071066429,409.33081115087,418.32425711308,427.51529892703,436.90827798988,446.50763144636,459.28102021135,469.37192694062,479.68454193593,490.22373920221,500.99449133668,512.00188868489,523.2511306012],description:"Cycle of 31 thirds tempered by 1/10 Wuerschmidt comma"},temp31w11:{frequencies:[261.6255653006,267.42197848694,273.34681181717,279.40291364591,286.91265577589,293.26931399985,299.76680465545,306.40825140143,313.19684009872,320.13583435099,327.22856275086,334.47843511672,341.88893114233,349.46360748692,357.20610515709,366.80702823839,374.93377645155,383.2405741708,391.73141324262,400.41036830387,409.28161120445,418.34939984118,427.61808628905,437.09212645494,446.77606497733,458.78443573652,468.94897543376,479.33871705477,489.95864449434,500.81386326642,511.90958055231,523.2511306012],description:"Cycle of 31 thirds tempered by 1/11 Wuerschmidt comma"},temp31w12:{frequencies:[261.6255653006,267.46216197987,273.42896553533,279.52888390694,286.63976159726,293.03439921138,299.57169286871,306.25482853931,313.08705807777,320.0717057658,327.2121755928,334.51194000906,341.9745565771,349.60365642833,357.40295156876,366.49485373999,374.67097398132,383.02949720151,391.57448819698,400.31011139524,409.24061734241,418.37035125513,427.70376253715,437.24539007841,446.99988402026,458.37102198078,468.59680699416,479.0507177135,489.73784363297,500.66339010461,511.83267129957,523.2511306012],description:"Cycle of 31 thirds tempered by 1/12 Wuerschmidt comma"},temp31w13:{frequencies:[261.6255653006,267.49616787535,273.49850059869,279.63551774138,286.40905375482,292.83577174957,299.40669857094,306.12507001426,312.99419468163,320.01745343487,327.19830857776,334.54029455907,342.04702698539,349.72220057363,357.56974544479,366.23091133098,374.44874787361,382.85098402684,391.44175752404,400.22529663315,409.2059314354,418.38808223908,427.77627085136,437.37511801764,447.18935574711,458.02150335998,468.29902426597,478.80716193382,489.55109116118,500.53609997149,511.7676037195,523.2511306012],description:"Cycle of 31 thirds tempered by 1/13 Wuerschmidt comma"},temp31w14:{frequencies:[261.6255653006,267.52531966849,273.55811412425,279.72695193191,286.21145362846,292.66562728487,299.26534666214,306.01389218024,312.91461811683,319.97095981222,327.18642276261,334.56459899164,342.10915585471,349.82384327668,357.71250180664,366.00482869479,374.25837321367,382.69803863807,391.32802257119,400.15261355898,409.17620468607,418.4030501472,427.83842920638,437.48634583318,447.35182400506,457.72212848121,468.04393370572,478.5984967348,489.39107187298,500.42702361787,511.71183724724,523.2511306012],description:"Cycle of 31 thirds tempered by 1/14 Wuerschmidt comma"},temp31w15:{frequencies:[261.6255653006,267.55058630145,273.60979095449,279.80621811014,286.0403087015,292.51824916652,299.142895223,305.91756930507,312.84566908988,319.93066920159,327.176122954,334.58566413263,342.16300881716,349.91195724514,357.83639571789,365.80900091179,374.09345893182,382.56553686518,391.22947931103,400.08963362509,409.15044340767,418.41645289306,427.89230922859,437.58276480531,447.49267964143,457.46282942114,467.82296651709,478.41773025336,489.25243249537,500.33250769337,511.66351279634,523.2511306012],description:"Cycle of 31 thirds tempered by 1/15 Wuerschmidt comma, almost 31-tET"},temp31w8:{frequencies:[261.6255653006,267.24122592191,272.97742543896,278.83674800471,288.14389744169,294.32876096318,300.64638059818,307.09960331181,313.69134300364,320.42456924675,327.30232268102,334.32770172848,341.50387698892,348.83408706747,356.32163474066,368.21511264804,376.11866406852,384.19186344763,392.4383479509,400.86184099795,409.46613795376,418.25512179799,427.23275920923,436.40309460541,445.77026919414,460.64940473745,470.53701427025,480.63685362987,490.95348377613,501.49155234204,512.25581818623,523.2511306012],description:"Cycle of 31 thirds tempered by 1/8 Wuerschmidt comma"},temp31w9:{frequencies:[261.6255653006,267.31485098896,273.12785536516,279.06726965397,287.64164332106,293.89667226994,300.28772424256,306.81775371411,313.48978461115,320.30690488373,327.27226963218,334.38910256736,341.66069947616,349.09042189481,356.68171037974,367.64079770339,375.63548096925,383.80401588848,392.15018302326,400.67784514756,409.39095139962,418.29352970104,427.38970265849,436.68368016368,446.1797636563,459.88868900496,469.88938665048,480.10755840871,490.54793493862,501.21534712998,512.11473036853,523.2511306012],description:"Cycle of 31 thirds tempered by 1/9 Wuerschmidt comma"},temp32ebf:{frequencies:[261.6255653006,266.99024669658,272.64192755012,278.59596223891,284.86852586219,291.47665855944,298.4383110444,304.47357861204,310.83171904039,317.53000821614,324.58664278196,332.02079024875,339.85265231199,346.64232633314,353.79523650997,361.33080945807,369.26952339658,377.6329406438,386.44378308989,395.72598875513,403.77301123196,412.25053247262,421.18158418009,430.59042797451,440.50262726312,450.945108697,459.9980085603,469.53522100534,479.58265227668,490.16760508681,501.31882698223,513.0666164148,523.2511306012],description:"Cycle of 32 equal beating fifths"},temp33a12:{frequencies:[261.6255653006,266.94139439278,272.36523138282,277.89927397158,284.73748648557,290.5229142688,296.42589304627,302.44880952638,308.5941041528,316.1876182869,322.61206437627,329.16704532903,335.85521147284,342.67927280589,351.11151394887,358.24555988319,365.52455654698,372.95145333883,382.12859604556,389.89286138208,397.81488464837,405.89786889835,414.14508930077,424.3358756666,432.95772800787,441.75476312782,450.73053786756,459.88868900496,471.20507923536,480.77924170569,490.54793493862,500.51511311891,512.83118959171,523.2511306012],description:'Cycle of 33 fifths tempered by 1/12 "11 fifths" comma'},temp34eb2a:{frequencies:[261.6255653006,267.30377714022,273.10522651459,279.03258811962,285.08859470169,291.27603831759,293.96161656556,300.34163653669,306.86012579271,313.52008961307,320.32459850253,327.27678960683,334.37986815896,341.63710895701,349.05185787385,356.62753339984,364.36762821878,372.27571081823,375.70810971034,383.86232137672,392.19350864246,400.70551251195,409.40225735312,418.28775270674,427.36609513501,436.64147011015,446.11815394416,455.80051576031,465.69301950749,469.98673021106,480.18712562304,490.60890615053,501.2568766435,512.13594623433,523.2511306012],description:"Cycle of 34 thirds, 5/4 beats twice 3/2"},temp34ebsi:{frequencies:[261.6255653006,266.99788221884,272.57696520339,278.14698300137,283.93137567849,289.70637009331,295.70363067102,301.69114426564,307.90910207865,314.36637542255,320.81315450625,327.50805511637,334.19207543599,341.13334896852,348.06334108321,355.26005273528,362.44506998142,369.90662102486,377.65534755435,385.39148338011,393.42536256589,401.44618836017,409.77571602141,418.09170597447,426.72775997548,435.3497813463,444.30364141769,453.60211446558,462.88547695756,472.52613162558,482.15112257833,492.14655599832,502.125745683,512.48900933996,523.2511306012],description:"Cycle of 34 equal beating major sixths"},temp34ebt:{frequencies:[261.6255653006,266.93199967636,272.36578831151,277.92998813547,283.62773001764,289.46221547291,295.43672985114,301.55463262869,307.81936583026,314.23445063866,320.80349820247,327.5302045997,334.16324661664,340.95548417522,347.91073392156,355.03290870525,362.32601803901,369.79415983503,377.44153922514,385.2724539348,393.29131162714,401.50262139782,409.91100286066,418.20230551726,426.69260242977,435.3866631899,444.28938530291,453.40576935587,462.74094691381,472.3001707563,482.08881469934,492.11238732973,502.37652397446,512.8870010249,523.2511306012],description:"Cycle of 34 equal beating thirds"},temp34w10:{frequencies:[261.6255653006,267.37376533775,273.24825962152,279.25182297475,281.06516151868,287.24047076273,293.55146000581,300.00110689476,306.59245933664,313.32863150945,320.21280450383,327.24823031411,334.4382321302,341.78620813039,349.29562523194,351.5637974276,359.28803828513,367.18199034811,375.24938058245,383.49402021056,391.91980359563,400.53071066429,409.33081115087,418.32425711308,427.51529892703,436.90827798988,446.50763144636,449.40705529895,459.28102021135,469.37192694062,479.68454193593,490.22373920221,500.99449133668,512.00188868489,523.2511306012],description:"Cycle of 34 thirds tempered by 1/10 Wuerschmidt comma"},temp34w5:{frequencies:[261.6255653006,266.84400329087,272.16653090376,277.59522118835,285.18293865736,290.87125860088,296.67303727804,302.5905394405,308.62607485572,314.78199505921,321.06070411799,327.46464776022,333.99632772474,340.65828815182,347.45313114562,356.95032497057,364.07013256472,371.33195122039,378.73861781039,386.29301712643,393.99809806388,401.85686830172,409.8723892274,418.04779164423,426.38625992488,434.89105154177,443.56547936435,455.68978545099,464.77906877635,474.04965097839,483.50514461458,493.14924173292,502.98569917153,513.01835960126,523.2511306012],description:"Cycle of 34 thirds tempered by 1/5 Wuerschmidt comma"},temp34w6:{frequencies:[261.6255653006,267.02047390967,272.52663052146,278.06968704778,283.80368699438,289.65592453275,295.6288411546,301.72492193478,307.94670831505,314.29679425134,320.77782174252,327.39249271371,334.14356492035,341.03384719449,348.06621207862,355.14570764395,362.46906930947,369.94344613252,377.57194788125,385.35775486011,393.30411308867,401.41432870635,409.69178284295,418.13992649314,426.76227456772,435.56242170336,444.42154779224,453.58584388327,462.93911228358,472.48525217168,482.22824196207,492.17213857029,502.32108537715,512.67931193931,523.2511306012],description:"Cycle of 34 thirds tempered by 1/6 Wuerschmidt comma"},temp34w7:{frequencies:[261.6255653006,267.14659557842,272.78413659373,276.97759061533,282.82259314675,288.79093992594,294.88523549471,301.10813946365,307.46236235072,313.95067836072,320.57591524951,327.34096447962,334.24877325582,341.30235609413,348.50479124753,353.86228320674,361.3297679824,368.9548354601,376.74081403286,384.69109896591,392.80915578714,401.0985286019,409.56282802254,418.20574780595,427.03105980737,436.04260883433,442.74580331919,452.08897683944,461.62931955889,471.37098776125,481.31823237599,491.47539447856,501.84689823661,512.43727265667,523.2511306012],description:"Cycle of 34 thirds tempered by 1/7 Wuerschmidt comma"},temp34w8:{frequencies:[261.6255653006,267.24122592191,272.97742543896,276.16133434798,282.08899791039,288.14389744169,294.32876096318,300.64638059818,307.09960331181,313.69134300364,320.42456924675,327.30232268102,334.32770172848,341.50387698892,348.83408706747,352.90276052629,360.47764004221,368.21511264804,376.11866406852,384.19186344763,392.4383479509,400.86184099795,409.46613795376,418.25512179799,427.23275920923,436.40309460541,441.49314144476,450.96957067185,460.64940473745,470.53701427025,480.63685362987,490.95348377613,501.49155234204,512.25581818623,523.2511306012],description:"Cycle of 34 thirds tempered by 1/8 Wuerschmidt comma"},temp34w9:{frequencies:[261.6255653006,267.31485098896,273.12785536516,279.06726965397,281.5197407082,287.64164332106,293.89667226994,300.28772424256,306.81775371411,313.48978461115,320.30690488373,327.27226963218,334.38910256736,341.66069947616,349.09042189481,352.15826244648,359.81626391233,367.64079770339,375.63548096925,383.80401588848,392.15018302326,400.67784514756,409.39095139962,418.29352970104,427.38970265849,436.68368016368,440.52130132575,450.10083737825,459.88868900496,469.88938665048,480.10755840871,490.54793493862,501.21534712998,512.11473036853,523.2511306012],description:"Cycle of 34 thirds tempered by 1/9 Wuerschmidt comma"},temp35ebsi:{frequencies:[261.6255653006,266.57889315685,271.71450319234,277.03910343536,282.55964921963,288.28335166643,294.21768457231,300.3704033182,306.74954035112,312.48255822683,318.42655208483,324.58928450704,330.97880464114,337.6034601246,344.47190142434,351.59310182482,358.97636423712,366.63132974323,373.51095055492,380.64374131787,388.03901984907,395.70644562254,403.65603146762,411.89816253905,420.4436041444,429.30351656419,438.48947534443,446.74502047858,455.30437022365,464.17870575399,473.37961532931,482.91911915131,492.80967579032,503.06420520117,513.69610107468,523.2511306012],description:"Cycle of 35 equal beating major sixths"},temp37ebs:{frequencies:[261.6255653006,266.54882370674,271.76117582243,276.81154351547,282.15846820925,287.3392230449,292.82419544994,298.13870690002,303.76528724985,309.7222634282,315.49411047005,321.60488016898,327.52574544851,333.79428377068,339.86801168664,346.29839044807,353.1063601343,359.70275861181,366.68649693083,373.45319917734,380.61724149647,387.55864668979,394.907650003,402.68818871569,410.22692643911,418.2083422233,425.94171605945,434.12919568644,442.06222705415,450.46108885682,459.35313199837,467.96883572953,477.09045247204,485.92859505436,495.28571063961,504.35203618851,513.95073426779,523.2511306012],description:"Cycle of 37 equal beating sevenths"},temp37ebt:{frequencies:[261.6255653006,266.44794669373,271.38606435347,276.44269655507,281.62068893017,286.92295259461,292.35247205526,297.91229840101,303.60556084342,309.43546158348,315.40528084,321.51837488336,327.7781831369,333.8061589736,339.9788066307,346.29959662983,352.77208770341,359.39991652139,366.18681567584,373.13659908053,380.25317623321,387.54055229398,395.00282568127,402.64419215928,410.46895395112,418.00392297279,425.71973353547,433.62072344005,441.71133574434,449.99612361773,458.47974493329,467.16697490003,476.06269518051,485.17191513214,494.49975815874,504.05146656861,513.83241864047,523.2511306012],description:"Cycle of 37 equal beating thirds"},temp3ebt:{frequencies:[261.6255653006,330.24866439584,416.02753826489,523.2511306012],description:"Cycle of 3 equal beating thirds"},temp4ebmt:{frequencies:[261.6255653006,310.36356181711,368.84915763691,439.03187262068,523.2511306012],description:"Cycle of 4 equal beating minor thirds"},temp4ebsi:{frequencies:[261.6255653006,310.92686529443,370.08842528703,441.08229727815,523.2511306012],description:"Cycle of 4 equal beating major sixths"},temp53ebs:{frequencies:[261.6255653006,264.97369574946,268.51842903659,272.2713107977,275.7058824095,279.342132921,283.19190440533,286.71515038985,290.44528277978,294.39444663109,298.00865518834,301.83509073593,305.88621462445,310.17522146598,314.10044576101,318.25616227247,322.65590013911,326.68246801001,330.94547393755,335.45880590636,339.58933056423,343.96239778214,348.59225483118,353.4939765515,357.97994689961,362.72933676467,367.75761084241,372.35940104854,377.23140801172,382.38950169412,387.11009989437,392.10789272021,397.3991578827,403.00112480292,408.12795020911,413.55582307376,419.3024201087,424.56160969567,430.12961973912,436.02458225248,441.41955172249,447.13131541518,453.17847579573,459.58072182695,465.43995070361,471.64323472325,478.21077610462,484.22127701861,490.5847168482,497.32181757346,503.48749858841,510.01522804676,516.92626488088,523.2511306012],description:"Cycle of 53 equal beating harmonic sevenths"},temp53ebsi:{frequencies:[261.6255653006,265.08815342092,268.54511416675,272.14096825888,275.73097879106,279.31515577755,283.04333763043,286.76545980208,290.48153462492,294.34691329876,298.20601137227,302.05883614112,306.06646174912,310.06757319581,314.22944103195,318.38454699407,322.53289853772,326.84792360782,331.1559371129,335.45694960827,339.93076775401,344.39731584765,348.85660497561,353.49505873963,358.12597594237,362.74936749482,367.55851619873,372.35985057275,377.35409330215,382.34021841275,387.3182413058,392.49627136254,397.66588656991,402.8271015422,408.19568270781,413.55554119639,418.90668980097,424.47283359145,430.02993471298,435.57800299537,441.34898312942,447.11058430799,453.10367443873,459.08702461554,465.06065502782,471.27428848056,477.47782740925,483.67128540638,490.11358366391,496.54541154487,502.96678854317,509.64616466331,516.31468511822,523.2511306012],description:"Cycle of 53 equal beating major sixths"},temp53ebt:{frequencies:[261.6255653006,265.06408390481,268.61942739596,272.14046995187,275.78114176924,279.3866896354,283.11473715719,286.8068186786,290.62433945466,294.40503066492,298.31417332138,302.18560037327,306.18856199636,310.15290198883,314.25193588094,318.31142144389,322.50883104059,326.66574402863,330.9638909587,335.40807143415,339.80937339101,344.36021509659,348.86714800611,353.52720940583,358.14231011275,362.91421253104,367.64007568808,372.5265022753,377.36578530136,382.3694885676,387.32491504393,392.44870495902,397.52306357866,402.76982394565,407.96596497751,413.33865052838,418.89387526617,424.39550434456,430.08405345947,435.71772111176,441.54279782575,447.31167294612,453.27655186057,459.18388087721,465.29191391782,471.34101945319,477.59564801313,483.78993007475,490.19466758193,496.53761595054,503.09606844751,509.59124455492,516.30709807412,523.2511306012],description:"Cycle of 53 equal beating thirds"},temp57ebs:{frequencies:[261.6255653006,264.8277951114,268.04955507264,271.33445958124,274.63939933433,278.00911284632,281.39937814535,284.85609135359,288.33388628378,291.8798428433,295.4474281527,299.08493440323,302.74462553584,306.42663750246,310.18081323211,313.95788745209,317.80898926922,321.68357852782,325.63410692083,329.60872876069,333.66125215256,337.73849074816,341.89564167341,346.07814569972,350.28615866377,354.57664765081,358.89330206442,363.2945606359,367.72266219717,372.23755268366,376.77997919433,381.41143316036,386.07113633698,390.82216502962,395.60217018381,400.41132814233,405.3147417445,410.24806349136,415.27807310888,420.33876095689,425.4986359826,430.68997922537,435.98307052812,441.30844296951,446.73819252663,452.20105472878,457.69723413281,463.30113726238,468.93921588924,474.68780077646,480.47144432851,486.36844238798,492.30140788993,498.35065469266,504.4367956254,510.6422225112,516.88549425379,523.2511306012],description:"Cycle of 57 equal beating harmonic sevenths"},temp59ebt:{frequencies:[261.6255653006,264.71774803536,267.84005552541,271.00645194849,274.20369404321,277.44608402629,280.72006081878,284.04026812198,287.39281927261,290.79271098314,294.22572486522,297.70721418515,301.22261902261,304.78766466692,308.38743972219,312.03804524126,315.72421513091,319.46243532331,323.23707283878,327.06501147453,330.93024062011,334.83312418563,338.79111909993,342.78767359614,346.84065928187,350.93313112856,355.08338946648,359.27407840069,363.52394351295,367.81521017702,372.16707169716,376.56132871014,381.01763522853,385.51735474883,390.08061088885,394.68832388107,399.36109834092,404.07939600279,408.86431870994,413.69585627072,418.57446131049,423.52195428502,428.51764625978,433.58387848862,438.69946807471,443.88729218006,449.12565432864,454.4379830027,459.80206875391,465.24189440938,470.73471441434,476.30509804765,481.92974808423,487.63381799831,493.39345924022,499.23442935246,505.13230099895,511.11345315981,517.15287439575,523.2511306012],description:"Cycle of 59 equal beating thirds"},temp5ebf:{frequencies:[261.6255653006,300.99242152138,345.28013476976,397.76927639746,456.81956072863,523.2511306012],description:"Cycle of 5 equal beating fifths"},temp5ebs:{frequencies:[261.6255653006,300.72264357012,345.40501873528,396.4705903526,454.83124362955,523.2511306012],description:"Cycle of 5 equal beating harmonic sevenths"},temp6:{frequencies:[261.6255653006,292.50629174609,327.17562781541,373.91502405318,418.23333786749,467.5991148023,523.2511306012],description:"Tempered wholetone scale with approximations to 5/4 (4), 7/5 (4) and 7/4 (1)"},temp65ebf:{frequencies:[261.6255653006,264.41601755103,267.24454169377,270.11165630441,273.01788702098,275.96376822181,278.903505094,281.88335012505,284.90384796088,287.96555727487,291.06903608099,294.16604397209,297.30530343106,300.48739162418,303.71289539257,306.98240612292,310.29652144782,313.60372560746,316.95605020285,320.35411162765,323.7985328567,327.28994911888,330.77408078649,334.30574717623,337.88559766085,341.51429052286,345.19248907458,348.92086961342,352.64147345074,356.41283883338,360.23565716142,364.11063345825,368.0384739541,371.95812372083,375.93124824951,379.95858022583,384.04085801267,388.17883226226,392.30817269042,396.49385281186,400.73664000181,405.03730976228,409.39665754461,413.81548025993,418.22508312451,422.69484912531,427.22559773342,431.81816208034,436.47338166162,441.11888946365,445.82778005125,450.60091414809,455.43916939942,460.34343547357,465.31460883154,470.27541574397,475.30390033467,480.4009926512,485.56762723834,490.80474851567,496.03094699932,501.32844669322,506.69822455894,512.14126217109,517.65855736571,523.2511306012],description:"Cycle of 65 equal beating fifths"},temp65ebt:{frequencies:[261.6255653006,264.43406811535,267.2034679247,270.07937559507,272.91523803531,275.86016780291,278.76409255008,281.77970028627,284.75331888701,287.84130158502,290.886287826,294.04838131756,297.16644728835,300.4044304772,303.59732911309,306.91302510559,310.18255295306,313.57782661988,316.92582314139,320.40258196387,323.83093239735,327.39113302053,330.90176198948,334.36350914498,337.95839429282,341.50322405771,345.18438591943,348.81429298672,352.58380229516,356.30082494405,360.1608038988,363.96703524466,367.91965255368,371.81723365001,375.86471396542,379.85583700975,384.00045811272,388.08736764479,392.33145942297,396.5164558179,400.86240365726,405.1478399234,409.59809307723,413.98637838791,418.31356254814,422.80716945583,427.23820566351,431.83965831621,436.37704077554,441.08892851835,445.73520856761,450.56017999004,455.31796985254,460.25874195194,465.13071889642,470.19006822446,475.1789734801,480.35974823468,485.46838574269,490.77349931217,496.0047455553,501.43718079349,506.7939752079,512.35679191473,517.84214996629,523.2511306012],description:"Cycle of 65 equal beating thirds"},temp6eb2:{frequencies:[261.6255653006,293.46010680596,329.2739659995,369.56455759223,414.89147313404,465.88425311859,523.2511306012],description:"Cycle of 6 equal beating 9/8 seconds"},temp6s:{frequencies:[261.6255653006,271.93638072959,309.96730300827,353.31693843766,402.72911708552,459.05170412301,523.2511306012],description:"Cycle of 6 tempered harmonic sevenths, 6/5 and 4/3 minimax, Op de Coul, 2002"},temp6teb:{frequencies:[261.6255653006,314.31996068356,377.55323514312,453.43316449459,544.48907971635,653.75617798246,784.8766959018],description:"Cycle of 6 equal beating 6/5's in a twelfth"},"temp7-5ebf":{frequencies:[261.6255653006,272.53310095338,288.29512120063,313.54121701986,318.29837158817,352.05202827415,359.67534615791,387.61143614087,414.35283422339,427.61576999092,475.86500581459,472.62064557223,523.2511306012],description:"7 equal beating fifths on white, 5 equal beating fifths on black"},temp7ebf:{frequencies:[261.6255653006,288.29512120063,318.29837158817,352.05202827415,387.61143614087,427.61576999092,472.62064557223,523.2511306012],description:"Cycle of 7 equal beating fifths"},temp7ebnt:{frequencies:[261.6255653006,288.84289825546,318.65722544634,351.9228541964,388.36258888271,429.02057812008,473.55803233064,523.2511306012],description:"Cycle of 7 equal beating 11/9 neutral thirds"},temp8eb3q:{frequencies:[261.6255653006,285.27029088455,311.06453578321,339.20371183191,369.9009952302,403.38894083349,439.92124473489,479.77466958441,523.2511306012],description:`Cycle of 8 equal "beating" 12/11's`},temp9ebmt:{frequencies:[261.6255653006,282.57058469242,305.18178513943,329.6176429161,355.99737593287,384.50587463168,415.28223014648,448.54214811156,484.4478959333,523.2511306012],description:"Cycle of 9 equal beating 7/6 septimal minor thirds"},tenney_11:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,523.2511306012],description:`Scale of James Tenney's "Spectrum II" for wind quintet`},tertiadia:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,431.14564594215,459.88868900496,490.54793493862,523.2511306012],description:"Tertiadia 2048/2025 and 262144/253125 scale"},tertiadie:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,383.2405741708,408.78994578219,436.04260883433,476.27480687611,490.54793493862,523.2511306012],description:"First Tertiadie 262144/253125 and 128/125 scale"},tet3a:{frequencies:[261.6255653006,280.31310567921,313.95067836072,336.37572681506,366.27579142084,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Eight notes, two major one minor tetrad"},tetracot:{frequencies:[261.6255653006,266.81074454173,272.09868928948,277.49143626213,289.66902367154,295.4099985897,301.26475437609,307.23554606336,320.71844041089,327.07478634962,333.55710924695,340.16790585091,355.09602205939,362.13370020095,369.31085868177,376.6302618745,393.15851224787,400.95055410677,408.89702710335,417.00099192139,435.30089370336,443.92815899023,452.72640877864,461.69903182491,481.96048707062,491.51250279099,501.25383072009,523.2511306012],description:"tetracot temperament, g=176.28227, 5-limit"},"tetragam-di":{frequencies:[261.6255653006,279.06726965397,290.69507255622,290.69507255622,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,436.04260883433,457.84473927605,523.2511306012],description:"Tetragam Dia2"},"tetragam-enh":{frequencies:[261.6255653006,271.31540105247,279.06726965397,279.06726965397,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,418.60090448096,418.60090448096,457.84473927605,523.2511306012],description:"Tetragam Enharm."},"tetragam-hex":{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,327.03195662575,343.38355445704,381.53728273004,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Tetragam/Hexgam"},"tetragam-py":{frequencies:[261.6255653006,275.62199471997,294.32876096318,294.32876096318,331.11985608357,348.83408706747,372.50983809402,392.4383479509,413.43299207996,441.49314144476,441.49314144476,465.11211608996,523.2511306012],description:"Tetragam Pyth."},"tetragam-slpe":{frequencies:[261.6255653006,261.6255653006,300.52885648597,300.52885648597,279.06726965397,345.21700307457,348.83408706747,396.55020354877,455.51656649021,392.4383479509,455.51656649021,418.60090448096,523.2511306012],description:"Tetragam Slendro as 5-tET, Pelog-like pitches on C# E F# A B"},"tetragam-slpe2":{frequencies:[261.6255653006,261.6255653006,300.52885648597,300.52885648597,286.29520819723,345.21700307457,313.29104303136,396.55020354877,396.55020354877,387.04559340587,455.51656649021,423.54155496477,523.2511306012],description:"Tetragam Slendro as 5-tET, Pelog-like pitches on C# E F# A B"},"tetragam-sp":{frequencies:[261.6255653006,271.31540105247,271.31540105247,271.31540105247,336.37572681506,348.83408706747,366.27579142084,392.4383479509,406.97310157871,406.97310157871,406.97310157871,457.84473927605,523.2511306012],description:"Tetragam Septimal"},"tetragam-un":{frequencies:[261.6255653006,269.80136421624,285.40970760065,285.40970760065,319.76457981184,348.83408706747,359.73515228832,392.4383479509,404.70204632437,428.11456140098,428.11456140098,479.64686971777,523.2511306012],description:"Tetragam Undecimal"},tetragam13:{frequencies:[261.6255653006,275.95382006469,307.00724256551,307.00724256551,341.55514486295,341.55514486295,400.80167111126,400.80167111126,445.90437572008,445.90437572008,445.90437572008,496.08254310677,523.2511306012],description:"Tetragam (13-tET)"},tetragam5:{frequencies:[261.6255653006,300.52885648597,300.52885648597,300.52885648597,300.52885648597,345.21700307457,345.21700307457,396.55020354877,455.51656649021,455.51656649021,455.51656649021,455.51656649021,523.2511306012],description:"Tetragam (5-tET)"},tetragam7:{frequencies:[261.6255653006,288.85811466493,288.85811466493,288.85811466493,318.92511007349,352.12195684808,352.12195684808,388.77403176757,429.24143792307,429.24143792307,429.24143792307,473.92081401802,523.2511306012],description:"Tetragam (7-tET)"},tetragam8:{frequencies:[261.6255653006,285.30470202322,311.12698372208,311.12698372208,339.28638158975,339.28638158975,403.48177901006,403.48177901006,440,440,440,440,523.2511306012],description:"Tetragam (8-tET)"},tetragam9a:{frequencies:[261.6255653006,282.57118533961,305.19387818096,305.19387818096,329.62755691287,356.01738450312,415.30469757995,415.30469757995,448.55379686399,448.55379686399,448.55379686399,484.46508327871,523.2511306012],description:"Tetragam (9-tET) A"},tetragam9b:{frequencies:[261.6255653006,282.57118533961,282.57118533961,282.57118533961,305.19387818096,305.19387818096,384.52019141924,384.52019141924,415.30469757995,415.30469757995,415.30469757995,448.55379686399,523.2511306012],description:"Tetragam (9-tET) B"},tetraphonic_31:{frequencies:[261.6255653006,266.96486255163,272.52663052146,278.32506946872,284.37561445717,290.69507255622,297.30177875068,304.21577360535,311.45900631024,319.05556743976,327.03195662575,333.99008336247,341.25073734861,348.83408706747,356.76213450082,365.05892832642,373.75080757229,382.86668092771,392.4383479509,400.61414686654,409.13785211902,418.03215325205,427.32175665765,437.0336147635,447.19718719986,457.84473927605,467.58611670746,477.75103228805,488.36772189445,499.46698830115,511.08249965699,523.2511306012],description:"31-tone Tetraphonic Cycle, conjunctive form on 5/4, 6/5, 7/6 and 8/7"},tetratriad:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"4:5:6 Tetratriadic scale"},tetratriad1:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"3:5:9 Tetratriadic scale"},tetratriad2:{frequencies:[261.6255653006,296.75121990114,305.22982618403,356.10146388137,373.75080757229,415.4517078616,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"3:5:7 Tetratriadic scale"},thailand:{frequencies:[261.6255653006,281.86483947605,307.02089761314,350.84574289301,397.92692612688,408.40584780369,474.03826620294,539.82938999168],description:"Observed ranat tuning from Thailand, Helmholtz/Ellis p. 518, nr.85"},thailand2:{frequencies:[261.6255653006,293.66476791741,318.39923223688,356.77227917518,391.76907592069,435.19747628762,477.88722128969,525.37110555681],description:"Observed ranat t'hong tuning, Helmholtz/Ellis p. 518"},thailand3:{frequencies:[261.6255653006,293.32570896007,322.47117131255,354.92237405774,396.55020354877,437.46578647972,488.21056770985,538.58355905405],description:"Observed tak'hay tuning. Helmholtz, p. 518"},thailand4:{frequencies:[261.6255653006,281.88044777549,304.38587215019,332.5176539627,392.71966479735,416.35036198375,461.923848369,523.2511306012,563.76089555097,608.77174430039,665.59794246809,786.00196746963,831.57545378481,924.97296635309,1046.5022612024,1127.52179110194],description:"Khong mon (bronze percussion vessels) tuning, Gemeentemuseum Den Haag 1/1=465"},thirds:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,454.2110508691,502.32108537715,523.2511306012],description:"Major and minor thirds parallellogram"},thomas:{frequencies:[261.6255653006,280.80530480292,294.66217084622,313.95044496966,332.05645032639,350.21604710412,374.62015588545,391.99543598175,420.73257541073,441.99197952365,468.79922683914,499.49209883845,523.2511306012],description:"Tuning of the Thomas/Philpott organ, Gereformeerde Kerk, St. Jansklooster"},tiby1:{frequencies:[261.6255653006,295.66718139806,337.56154978455,348.04364484358,393.32961502355,444.50800708553,507.49227916989,523.2511306012],description:"Tiby's 1st Byzantine Liturgical genus, 12 + 13 + 3 parts"},tiby2:{frequencies:[261.6255653006,295.66718139806,311.12698372208,348.04364484358,393.32961502355,444.50800708553,467.75037672729,523.2511306012],description:"Tiby's second Byzantine Liturgical genus, 12 + 5 + 11 parts"},tiby3:{frequencies:[261.6255653006,295.66718139806,324.07484847125,348.04364484358,393.32961502355,444.50800708553,487.21628271135,523.2511306012],description:"Tiby's third Byzantine Liturgical genus, 12 + 9 + 7 parts"},tiby4:{frequencies:[261.6255653006,286.76251801126,324.07484847125,348.04364484358,393.32961502355,431.12067692221,487.21628271135,523.2511306012],description:"Tiby's fourth Byzantine Liturgical genus, 9 + 12 + 7 parts"},todi_av:{frequencies:[261.6255653006,276.38325105256,310.05056613125,371.27895029721,392.44854854484,413.39000965417,495.88429116026,523.2511306012],description:"Average of 8 interpretations of raga Todi, in B. Bel, 1988."},tonos15_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,767.43499154843,885.50191332511,959.29373943553,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-15"},tonos17_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,418.60090448096,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,738.70747849581,784.8766959018,897.00193817349,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-17"},tonos19_pis:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,385.55346465352,406.97310157871,457.84473927605,523.2511306012,542.63080210495,563.50121757052,610.45965236807,665.95598440153,771.10692930703,813.94620315742,915.6894785521,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-19"},tonos21_pis:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,398.6675280771,440.63253103259,465.11211608996,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,797.33505615421,881.26506206518,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-21"},tonos23_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,409.50088481833,448.50096908674,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,819.00176963666,897.00193817349,941.85203508216,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-23"},tonos25_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,376.74081403286,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,753.48162806573,856.22912280196,941.85203508216,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-25"},tonos27_pis:{frequencies:[261.6255653006,290.69507255622,327.03195662575,373.75080757229,387.59343007496,436.04260883433,498.33441009638,523.2511306012,550.79066379074,581.39014511244,654.0639132515,747.50161514457,775.18686014993,872.08521766867,996.66882019276,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-27"},tonos29_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,396.94913355953,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,793.89826711906,885.50191332511,959.29373943553,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-29"},tonos31_pis:{frequencies:[261.6255653006,273.51763645063,300.86940009569,334.29933343966,388.21858076863,429.81342870813,462.87600014722,501.44900015948,523.2511306012,547.03527290125,601.73880019138,668.59866687931,776.43716153726,859.62685741626,925.75200029443,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-31"},tonos31_pis2:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,405.0976494977,448.50096908674,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,810.19529899541,897.00193817349,966.00208726375,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-31B"},tonos33_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-33"},top31:{frequencies:[261.6255653006,267.49189720203,273.48976766293,279.62212612306,285.89198815637,292.30243695391,298.85662483994,305.55777482212,312.40918217641,319.41421606749,326.57632120555,333.89901954025,341.38591199258,349.04068022565,358.99452880887,367.04412845091,375.2742212459,383.6888543241,392.29216556304,401.08838562235,410.08184002413,419.27695128006,428.67824106611,438.29033244612,448.11795214515,458.16593287385,468.4392157049,478.94285250284,489.68200840824,500.66196437769,511.88811978069,523.36599505479],description:"Top temperament, 11-limit, {225/224, 385/384, 1331/1323}, Gene Ward Smith"},trab19:{frequencies:[261.6255653006,279.06726965397,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Diamond {1,3,5,45,75,225}"},trab19a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,344.91651675372,348.83408706747,367.91095120397,372.08969287196,392.4383479509,396.89567239676,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Diamond {1,3,9,15,675}"},tranh:{frequencies:[261.6255653006,290.69507255622,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Bac Dan Tranh scale, Vietnam"},tranh2:{frequencies:[261.6255653006,290.69507255622,307.79478270659,392.4383479509,436.04260883433,523.2511306012],description:"Dan Ca Dan Tranh Scale"},tranh3:{frequencies:[261.6255653006,317.68818643644,348.83408706747,392.4383479509,473.41768959156,476.53227965466,523.2511306012],description:"Sa Mac Dan Tranh scale"},"tri12-1":{frequencies:[261.6255653006,264.29521392612,275.21650375777,319.76457981184,323.02748368748,332.97799220076,336.37572681506,406.97310157871,411.12588832951,428.11456140098,432.48307733364,502.48719684718,523.2511306012],description:"12-tone Tritriadic of 7:9:11"},"tri12-2":{frequencies:[261.6255653006,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,448.50096908674,457.84473927605,474.80195184183,504.56359022259,523.2511306012],description:"12-tone Tritriadic of 6:7:9"},"tri19-1":{frequencies:[261.6255653006,266.96486255163,269.10058145205,305.22982618403,311.45900631024,313.95067836072,320.35783506196,356.10146388137,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,427.32175665765,436.04260883433,439.53094970501,448.50096908674,508.71637697339,512.78610798918,523.2511306012],description:"3:5:7 Tritriadic 19-Tone Matrix"},"tri19-2":{frequencies:[261.6255653006,282.55561052465,290.69507255622,294.32876096318,313.95067836072,322.99452506247,327.03195662575,348.83408706747,353.19451315581,363.36884069528,376.74081403286,387.59343007496,392.4383479509,418.60090448096,423.83341578697,436.04260883433,465.11211608996,470.92601754108,484.4917875937,523.2511306012],description:"3:5:9 Tritriadic 19-Tone Matrix"},"tri19-3":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"4:5:6 Tritriadic 19-Tone Matrix"},"tri19-4":{frequencies:[261.6255653006,264.89588486686,290.69507255622,294.32876096318,322.99452506247,327.03195662575,331.11985608357,334.88072358477,363.36884069528,367.91095120397,372.08969287196,376.74081403286,408.78994578219,413.43299207996,418.60090448096,423.83341578697,465.11211608996,470.92601754108,516.79124009995,523.2511306012],description:"4:5:9 Tritriadic 19-Tone Matrix"},"tri19-5":{frequencies:[261.6255653006,266.96486255163,284.8811711051,290.69507255622,302.73815413355,316.53463456122,322.99452506247,329.64821227876,336.37572681506,366.27579142084,373.75080757229,406.97310157871,415.27867508032,423.83341578697,432.48307733364,452.19233508746,470.92601754108,480.53675259294,512.78610798918,523.2511306012],description:"5:7:9 Tritriadic 19-Tone Matrix"},"tri19-6":{frequencies:[261.6255653006,267.07609791103,294.32876096318,299.00064605783,305.22982618403,336.37572681506,341.71502406609,343.38355445704,348.83408706747,356.10146388137,384.42940207435,392.4383479509,398.6675280771,400.61414686654,406.97310157871,448.50096908674,457.84473927605,465.11211608996,512.57253609913,523.2511306012],description:"6:7:8 Tritriadic 19-Tone Matrix"},"tri19-7":{frequencies:[261.6255653006,271.31540105247,288.32205155576,294.32876096318,299.00064605783,305.22982618403,316.53463456122,336.37572681506,348.83408706747,356.10146388137,384.42940207435,392.4383479509,406.97310157871,432.48307733364,448.50096908674,457.84473927605,465.11211608996,474.80195184183,504.56359022259,523.2511306012],description:"6:7:9 Tritriadic 19-Tone Matrix"},"tri19-8":{frequencies:[261.6255653006,264.29521392612,272.43653907335,275.21650375777,316.53463456122,319.76457981184,323.02748368748,332.97799220076,336.37572681506,350.27555023717,390.82337532559,406.97310157871,411.12588832951,423.79017189188,428.11456140098,432.48307733364,497.4115685962,502.48719684718,517.96576564563,523.2511306012],description:"7:9:11 Tritriadic 19-Tone Matrix"},"tri19-9":{frequencies:[261.6255653006,266.96486255163,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,334.88072358477,341.71502406609,366.27579142084,373.75080757229,400.61414686654,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.78610798918,523.2511306012],description:"4:5:7 Tritriadic 19-Tone Matrix"},triang11:{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,327.03195662575,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,418.60090448096,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"11-limit triangular diamond lattice with 64/63 intervals removed"},triaphonic_12:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,367.19377586049,387.59343007496,410.39304360878,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"12-tone Triaphonic Cycle, conjunctive form on 4/3, 5/4 and 6/5"},triaphonic_17:{frequencies:[261.6255653006,271.31540105247,281.75060878526,293.02063313667,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,390.69417751556,406.97310157871,422.62591317789,439.53094970501,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:"17-tone Triaphonic Cycle, conjunctive form on 4/3, 7/6 and 9/7"},trichord7:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,392.4383479509,436.04260883433,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Trichordal undecatonic, 7-limit"},tricot:{frequencies:[261.6255653006,264.94025538413,268.70564228797,272.11003565477,275.55755973666,279.4738436282,283.01466417842,286.6003471482,290.673570175,294.35628843049,298.08566525814,302.32211998602,306.15242072385,310.03124984507,314.43747949204,318.42127516569,322.45554578164,327.03835025925,331.18179578139,335.37773516927,339.62683737367,344.45368576554,348.81777463097,353.23715677741,358.25743790514,362.79641682209,367.39290067029,372.61436622199,377.33523951767,382.11592657559,387.54663888312,392.45669803325,397.4289679423,403.0773124301,408.18413893183,413.35566924724,419.23036738005,424.541846554,429.92062250389,436.03074525334,441.55507841911,447.14940523431,453.50438708518,459.25010687752,465.06861996272,470.9608512551,477.65424916833,483.70593529179,489.8342966599,496.79592520903,503.09012862502,509.46407999504,516.70469117363,523.2511306012],description:"Tricot temperament, g=565.988015, 5-limit"},tritriad:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Tritriadic scale of the 10:12:15 triad, natural minor mode"},tritriad10:{frequencies:[261.6255653006,274.70684356563,294.32876096318,348.83408706747,366.27579142084,392.4383479509,488.36772189445,523.2511306012],description:"Tritriadic scale of the 10:14:15 triad"},tritriad11:{frequencies:[261.6255653006,309.19384990071,356.76213450082,383.71749577421,421.62797713733,453.48431318771,486.49381977384,523.2511306012],description:"Tritriadic scale of the 11:13:15 triad"},tritriad13:{frequencies:[261.6255653006,294.32876096318,340.11323489078,348.83408706747,392.4383479509,453.48431318771,510.16985233617,523.2511306012],description:"Tritriadic scale of the 10:13:15 triad"},tritriad14:{frequencies:[261.6255653006,294.32876096318,336.37572681506,348.83408706747,392.4383479509,448.50096908674,504.56359022259,523.2511306012],description:"Tritriadic scale of the 14:18:21 triad"},tritriad18:{frequencies:[261.6255653006,294.32876096318,319.76457981184,348.83408706747,392.4383479509,426.35277308246,479.64686971777,523.2511306012],description:"Tritriadic scale of the 18:22:27 triad"},tritriad22:{frequencies:[261.6255653006,294.32876096318,321.08592105074,348.83408706747,392.4383479509,428.11456140098,481.6288815761,523.2511306012],description:"Tritriadic scale of the 22:27:33 triad"},tritriad26:{frequencies:[261.6255653006,294.32876096318,301.87565226992,348.83408706747,392.4383479509,402.50086969323,452.81347840488,523.2511306012],description:"Tritriadic scale of the 26:30:39 triad"},tritriad3:{frequencies:[261.6255653006,305.22982618403,356.10146388137,373.75080757229,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"Tritriadic scale of the 3:5:7 triad. Possibly Mathews's 3.5.7a"},tritriad32:{frequencies:[261.6255653006,294.32876096318,322.00069575458,348.83408706747,392.4383479509,429.33426100611,483.00104363188,523.2511306012],description:"Tritriadic scale of the 26:32:39 triad"},tritriad3c:{frequencies:[261.6255653006,305.22982618403,366.27579142084,373.75080757229,427.32175665765,436.04260883433,512.78610798918,523.2511306012],description:"From 1/1 7/6 7/5, a variant of the 3.5.7 triad"},tritriad3d:{frequencies:[261.6255653006,305.22982618403,313.95067836072,363.36884069528,366.27579142084,436.04260883433,508.71637697339,523.2511306012],description:"From 1/1 7/6 5/3, a variant of the 3.5.7 triad"},tritriad5:{frequencies:[261.6255653006,290.69507255622,329.64821227876,366.27579142084,406.97310157871,423.83341578697,470.92601754108,523.2511306012],description:"Tritriadic scale of the 5:7:9 triad. Possibly Mathews's 5.7.9a."},tritriad68:{frequencies:[261.6255653006,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"Tritriadic scale of the 6:7:8 triad"},tritriad68i:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,398.6675280771,448.50096908674,465.11211608996,523.2511306012],description:"Tritriadic scale of the subharmonic 6:7:8 triad"},tritriad69:{frequencies:[261.6255653006,294.32876096318,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Tritriadic scale of the 6:7:9 triad, septimal natural minor"},tritriad7:{frequencies:[261.6255653006,264.29521392612,323.02748368748,332.97799220076,336.37572681506,411.12588832951,428.11456140098,523.2511306012],description:"Tritriadic scale of the 7:9:11 triad"},tritriad9:{frequencies:[261.6255653006,272.93037367779,319.76457981184,362.25078272391,377.90359432309,442.75095666255,461.88217083933,523.2511306012],description:"Tritriadic scale of the 9:11:13 triad"},tsjerepnin:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,367.91095120397,392.4383479509,418.60090448096,470.92601754108,490.54793493862,523.2511306012],description:"Scale from Ivan Tsjerepnin's Santur Opera (1977) & suite from it Santur Live!"},tsuda13:{frequencies:[261.6255653006,281.75060878526,283.42769574232,322.00069575458,340.11323489078,362.25078272391,377.90359432309,402.50086969323,425.14154361347,442.75095666255,485.87604984397,518.26778650024,523.2511306012],description:"Mayumi Tsuda's Harmonic-13 scale. 1/1=440 Hz."},tuneable3:{frequencies:[36.70809598968,41.95210970249,42.82611198796,43.59086398774,44.04971518762,44.86545065405,45.8851199871,46.71939489596,47.1961234153,47.72052478658,48.94412798624,49.55592958607,50.47363198581,51.39133438555,52.00313598538,52.44013712811,53.02280531843,53.39359416681,55.06214398452,57.10148265061,57.68415084093,58.73295358349,59.65065598323,61.1801599828,62.40376318246,62.92816455374,64.23916798194,66.07457278142,66.74199270851,67.29817598108,68.17217826655,68.82767998065,70.35718398022,73.41619197936,79.53420797764,80.7578111773,82.59321597678,85.65222397592,87.18172797549,88.09943037523,89.14823311779,89.73090130811,90.10169015649,91.7702399742,94.39224683061,95.44104957317,96.35875197291,97.88825597248,100.94726397162,102.7826687711,104.00627197076,104.88027425623,105.53577597033,110.12428796904,114.20296530123,114.71279996775,115.36830168185,116.24230396732,117.46590716698,119.30131196646,120.61231539466,122.3603199656,123.88982396517,124.80752636491,125.85632910747,128.47833596388,132.14914556285,134.59635196216,137.6553599613,139.49076476078,140.71436796044,141.58837024591,146.83238395872,152.950399957,154.17400315666,156.00940795614,159.06841595528,161.51562235459,165.18643195356,168.85724155253,171.30444795184,174.36345595098,176.19886075046,183.5404799484,190.88209914634,192.71750394582,195.77651194496,201.89452794324,205.56533754221,208.01254394152,211.07155194066,220.24857593808,229.4255999355,232.48460793464,238.60262393292,244.7206399312,247.77964793034,256.95667192776,269.19270392432,275.3107199226,281.42873592088,293.66476791744],description:"Marc Sabat, 3 octaves of intervals tuneable by ear"},tuners1:{frequencies:[261.6255653006,276.50456653385,293.15590636358,311.0676370396,328.627540632,349.28088891463,369.11955599459,391.76814585061,414.75684959346,439.06365754828,466.60145532616,492.6062100846,523.2511306012],description:"The Tuner's Guide well temperament no. 1 (1840)"},tuners2:{frequencies:[261.6255653006,276.9861853325,293.55936848273,311.27971878774,329.48489606404,349.42029142443,369.90111701824,391.99869425741,415.03962525779,439.89939957166,466.4799232208,493.78769382322,523.2511306012],description:"The Tuner's Guide well temperament no. 2 (1840)"},tuners3:{frequencies:[261.6255653006,276.9180796764,293.64050032496,311.25753558078,329.38199580693,349.20116137147,369.59117881045,391.8877401954,415.37711930697,439.91014033466,466.33569310799,493.52238512763,523.2511306012],description:"The Tuner's Guide well temperament no. 3 (1840)"},turkish:{frequencies:[261.6255653006,279.06726965397,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"Turkish, 5-limit from Palmer on a Turkish music record, harmonic minor inverse"},turkish_24:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Ra'uf Yekta, 24-tone Pythagorean Turkish Theoretical Gamut, 1/1=D (perde yegah) at 294 Hz"},turkish_24a:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,344.52749339997,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,459.36999119996,465.11211608996,490.54793493862,496.67978412536,516.79124009995,523.2511306012],description:"Turkish gamut with schismatic simplifications"},turkish_41:{frequencies:[261.6255653006,266.80864394988,272.09440643071,275.67629620338,281.13773466533,286.70737164501,290.48162858661,294.30556868769,300.13607443832,306.08208692954,310.11139540064,316.25503135793,322.52037740267,326.76608188608,333.2396629384,339.84149442859,344.31521657963,348.8478314504,355.75887527351,362.80683626646,367.58287746967,374.8650823332,382.29155536296,387.32409620162,392.42288612931,400.19720009986,408.12552912594,413.49815209867,421.6899870258,430.04411333507,435.70527569249,441.44096240275,450.1863739015,459.10504388656,465.14876849982,474.36385666592,483.76150545705,490.12981126508,499.83980314828,509.74215733443,516.45247616827,523.2511306012],description:"Abd\xEF\xBF\xBDlkadir T\xEF\xBF\xBDre and M. Ekrem Karadeniz theoretical Turkish gamut"},turkish_41a:{frequencies:[261.6255653006,268.5590565112,272.09440643071,275.67629620338,279.3053384865,286.70737164501,290.48162858661,294.30556868769,298.17984938441,306.08208692954,310.11139540064,314.19374626607,322.52037740267,326.76608188608,335.42589979828,339.84149442859,344.31521657963,348.8478314504,353.4401143131,362.80683626646,367.58287746967,377.32440283229,382.29155536296,387.32409620162,392.42288612931,402.82271318249,408.12552912594,413.49815209867,424.45650702809,430.04411333507,435.70527569249,441.44096240275,453.1398459935,459.10504388656,465.14876849982,477.47594368525,483.76150545705,490.12981126508,503.11902634639,509.74215733443,516.45247616827,523.2511306012],description:"Karadeniz's theoretical Turkish gamut, quantized to subset of 53-tET"},turkish_aeu:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,465.11211608996,471.45776383774,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Arel-Ezgi-Uzdilek (AEU) 24 tone theoretical system"},turkish_bagl:{frequencies:[261.6255653006,277.01530443593,285.40970760065,294.32876096318,311.64221749042,321.08592105074,331.11985608357,348.83408706747,369.35373924791,380.54627680087,392.4383479509,415.52295665389,428.11456140098,441.49314144476,465.11211608996,492.47165233054,507.3950357345,523.2511306012],description:'Ratios of the 17 frets on the neck of "Baglama" ("saz") according to Yal\xEF\xBF\xBD\xEF\xBF\xBDn Tura'},two29:{frequencies:[261.6255653006,265.43099677612,267.95417262175,271.85165581044,274.43586616969,278.42762776199,281.0743490329,285.16266958193,287.87341387594,292.06062910037,294.83694510625,299.12544722478,301.96892109338,306.36116019141,309.2734164419,313.77190187131,316.75460431924,321.36190613206,324.41675883995,329.13550925662,332.26425750751,337.09715242073,340.3015837153,345.25138423021,348.53332930799,353.60286331966,356.96419720496,362.15636101402,365.59900408717,370.91676405444,374.44268531179,379.88907958456,383.50028913155,389.07842928561,392.77699240278,398.49006531303,402.2780950448,408.12936467525,412.00902517967,418.00183444819,421.97534223334,428.1131149215,432.1827401118,438.46898282094,442.63705045414,449.07535460876,453.34424596425,459.9382898638,464.31044382305,471.06399474345,475.54190918343,482.45882552933,487.04505874954,494.12929225872,498.82646444278,506.0820624438,510.89285715645,518.32396488098,523.2511306012],description:"Two 29-tET scales 25 cents shifted, many near just intervals"},two29a:{frequencies:[261.6255653006,264.02813680074,267.95417262175,270.41486126945,274.43586616969,276.95607779319,281.0743490329,283.65552346679,287.87341387594,290.51702578379,294.83694510625,297.54450482308,301.96892109338,304.74197548856,309.2734164419,312.11354980287,316.75460431924,319.66343925668,324.41675883995,327.39595721478,332.26425750751,335.31552138031,340.3015837153,343.42665631876,348.53332930799,351.73399604284,356.96419720496,360.24228665998,365.59900408717,368.95638908389,374.44268531179,377.88128181162,383.50028913155,387.02206376789,392.77699240278,396.38395721814,402.2780950448,405.97231075214,412.00902517967,415.79260233969,421.97534223334,425.85044246025,432.1827401118,436.15157730833,442.63705045414,446.70189207635,453.34424596425,457.50741431695,464.31044382305,468.5743173866,475.54190918343,479.90892674463,487.04505874954,491.51771254425,498.82646444278,503.40730976502,510.89285715645,515.58451111167,523.2511306012],description:"Two 29-tET scales 15.826 cents shifted, 13-limit chords, Mystery temperament, Gene Ward Smith"},xenakis_chrom:{frequencies:[261.6255653006,274.52698453615,329.62755691287,349.22823143301,391.99543598175,411.32572372413,493.88330125613,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 5 + 19 + 6 parts"},xenakis_diat:{frequencies:[261.6255653006,293.66476791741,326.46944327063,349.22823143301,391.99543598175,440,489.15147723638,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 12 + 11 + 7 parts"},xenakis_schrom:{frequencies:[261.6255653006,279.86396690685,326.46944327063,349.22823143301,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 7 + 16 + 7 parts"},xenoga24:{frequencies:[261.6255653006,265.7783520514,279.38237857051,283.8170195002,294.32876096318,299.00064605783,310.07474405997,314.99656539426,331.11985608357,336.37572681506,348.83408706747,354.37113606854,372.50983809402,378.42269266694,392.4383479509,398.6675280771,419.07356785577,425.72552925031,441.49314144476,448.50096908674,465.11211608996,472.49484809138,496.67978412536,504.56359022259,523.2511306012],description:"M. Schulter, 3+7 ratios Xeno-Gothic adaptive tuning (keyboards 64:63 apart)"},xylophone2:{frequencies:[261.6255653006,295.19538981304,332.68808325276,388.83826257328,446.65787257783,506.59641128799,527.19506190947,579.57827742703,633.13077520476,751.1860077911,842.69088701475],description:"African Yaswa xylophones (idiophone; calbash resonators with membrane)"},xylophone3:{frequencies:[261.6255653006,292.47977325983,348.01999353916,392.4383479509,442.29334161825,523.2511306012],description:"African Banyoro xylophone (idiophone; loose log)"},xylophone4:{frequencies:[261.6255653006,281.70207497315,314.1971709147,349.63190883464,391.76907592069,436.9606979923,505.71930677521,568.9637969584,597.94115990992,660.7800775993,716.43551549302],description:"African Bapare xylophone (idiophone, loose-log)"},zalzal:{frequencies:[261.6255653006,294.32876096318,321.08592105074,348.83408706747,392.4383479509,428.11456140098,465.11211608996,523.2511306012],description:"Tuning of popular flute by Al Farabi & Zalzal. First tetrachord is modern Rast"},zalzal2:{frequencies:[261.6255653006,294.32876096318,331.11985608357,348.83408706747,387.59343007496,419.89288258121,465.11211608996,523.2511306012],description:"Zalzal's Scale, a medieval Islamic with Ditone Diatonic & 10/9 x 13/12 x 72/65"},zarlino:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Ptolemy's Intense Diatonic Systonon, also Zarlino's scale"},zarlino2:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"16-note choice system of Zarlino, Sopplimenti musicali (1588)"},zartehijaz1:{frequencies:[261.6255653006,280.55696721076,336.07142343876,350.07440004945,375.4060213132,393.89732161404,446.43551156053,468.42549744394,502.32108537715,523.2511306012],description:"Scale from Zarlino temperament extraordinaire -- lower Hijaz tetrachord"},zesster_a:{frequencies:[261.6255653006,279.06726965397,313.95067836072,334.88072358477,348.83408706747,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Harmonic six-star, group A, from Fokker"},zesster_b:{frequencies:[261.6255653006,293.02063313667,299.00064605783,334.88072358477,366.27579142084,418.60090448096,457.84473927605,478.40103369253,523.2511306012],description:"Harmonic six-star, group B, from Fokker"},zesster_c:{frequencies:[261.6255653006,299.00064605783,305.22982618403,348.83408706747,398.6675280771,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"Harmonic six-star, group C on Eb, from Fokker"},zesster_mix:{frequencies:[261.6255653006,274.70684356563,279.06726965397,293.02063313667,299.00064605783,313.95067836072,334.88072358477,348.83408706747,358.80077526939,366.27579142084,392.4383479509,418.60090448096,457.84473927605,478.40103369253,488.36772189445,502.32108537715,523.2511306012],description:"Harmonic six-star, groups A, B and C mixed, from Fokker"},zest24:{frequencies:[261.6255653006,269.33468959023,272.52663052146,280.55696721076,292.24684137387,300.8582598368,308.87634556583,317.97777315513,326.45210604021,336.07142343876,350.07440004945,360.38977980792,364.66083404534,375.4060213132,391.04793957621,402.57065589001,410.30971075781,422.39999923493,436.81711699543,449.68847932918,465.03699205118,478.73988827571,487.94322738789,502.32108537715,523.2511306012],description:"Zarlino Extraordinaire Spectrum Temperament (two circles at ~50.28c apart)"},zir_bouzourk:{frequencies:[261.6255653006,281.75060878526,305.22982618403,313.95067836072,353.19451315581,392.4383479509,523.2511306012],description:"Zirafkend Bouzourk (IG #3, DF #9), from both Rouanet and Safi al-Din"},zwolle:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Henri Arnaut De Zwolle. Pythagorean on G flat."},zwolle2:{frequencies:[261.6255653006,273.37431312998,292.50627485027,311.68386704488,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,467.04206359353,489.02683710225,523.2511306012],description:"Henri Arnaut De Zwolle's modified meantone tuning (c. 1440)"},yarman12:{frequencies:[261.6255653006,283.42769574232,294.32876096318,309.19384990071,332.97799220076,348.83408706747,377.90359432309,392.4383479509,411.12588832951,442.75095666255,465.11211608996,499.46698830115,523.2511306012],description:"Detempered Yarman 13-limit, [<1 1 -20 -6 -3 -1|, <0 1 38 15 11 8|]"},yarman12_80:{frequencies:[261.6255653006,282.84340331238,295.36595061166,319.3201344739,333.45764463229,348.2210758395,376.46181130035,393.12919962609,425.01198472693,443.82887286778,479.82340237272,501.06699929295,523.2511306012],description:"Ozan Yarman MOS, 80-et version"},yarman17:{frequencies:[261.6255653006,274.08392555301,283.42769574232,294.32876096318,309.19384990071,322.00069575458,332.97799220076,348.83408706747,362.25078272391,377.90359432309,392.4383479509,411.12588832951,425.14154361347,442.75095666255,465.11211608996,485.87604984397,499.46698830115,523.2511306012],description:"80-et commas 13-limit detempering of a chain of 16 fifths"},"yarman_ney-ahengs":{frequencies:[261.6255653006,275.39533189537,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,494.18162334558,523.2511306012],description:"Well Temperament for piano by Ozan Yarman from Ney Ahengs"},yasser_6:{frequencies:[261.6255653006,291.88463270656,325.64340264099,363.30663963964,405.32593044476,452.20508247496,523.2511306012],description:"Yasser Hexad, 6 of 19 as whole tone scale"},yasser_diat:{frequencies:[261.6255653006,281.42815779395,291.88463270656,313.97755176024,325.64340264099,350.29154279212,376.80531512858,390.80553229045,420.38583225541,436.00528786292,469.00678383895,486.43275040712,523.2511306012],description:"Yasser's Supra-Diatonic, the flat notes are V,W,X,Y,and Z"},yasser_ji:{frequencies:[261.6255653006,282.64904822654,294.32876096318,304.39128270551,327.03195662575,347.87575166344,359.73515228832,391.36022062136,425.14154361347,434.84468957929,457.84473927605,478.32915853722,523.2511306012],description:"Yasser's just scale, 2 Yasser hexads, 121/91 apart"},yekta:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,502.32108537715,523.2511306012],description:"Rauf Yekta's 12-tone tuning suggested in 1922 Lavignac Music Encyclopedia"},"young-g":{frequencies:[261.6255653006,299.07507698093,319.76457981184,341.88537054616,390.82337532559,446.76650366117,477.67301428683,510.71739232152,583.82257301724,667.39198333921,713.56092257662,762.92356430953,872.13001648254,996.96833978235,1065.93668681199,1139.67601990796,1302.81150610354,1489.29848625885,1592.32474578757,1702.47910946196,1946.17475603251,2224.75468143463,2378.65811671778,2543.20970830682,2907.24890901465,3323.39919648924,3553.30434397593,3799.11599765247,4342.92768045015],description:"Gayle Young's Harmonium, see PNM 26(2): 204-212 (1988)"},"young-lm_guitar":{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"LaMonte Young, Tuning of For Guitar '58. 1/1 March '92, inv.of Mersenne lute 1"},"young-lm_piano":{frequencies:[261.6255653006,289.72987407313,294.32876096318,300.46061014991,343.38355445704,338.01818641865,386.30649876417,392.4383479509,400.61414686654,457.84473927605,450.69091522486,515.07533168556,523.2511306012],description:"LaMonte Young's Well-Tempered Piano"},"young-w10":{frequencies:[261.6255653006,277.18263097687,302.26980244078,320.24370022528,349.22823143301,369.99442271164,391.99543598175,427.47405410759,452.89298412314,493.88330125613,523.2511306012],description:"William Lyman Young 10 out of 24-tET (1961)"},"young-w14":{frequencies:[261.6255653006,277.18263097687,293.66476791741,302.26980244078,320.24370022528,339.28638158975,359.46139971304,369.99442271164,391.99543598175,415.30469757995,427.47405410759,452.89298412314,479.82340237272,508.3551866238,523.2511306012],description:"William Lyman Young 14 out of 24-tET (1961)"},"young-wt":{frequencies:[261.6255653006,285.40970760065,309.19384990071,348.83408706747,392.4383479509,428.11456140098,463.79077485106,523.2511306012],description:'William Lyman Young "exquisite 3/4 tone Hellenic Lyre" dorian'},young:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,348.83408706747,367.49599295996,391.5530240856,413.43299207996,438.51190905657,465.11211608996,491.10256480205,523.2511306012],description:"Thomas Young well temperament (1807), also Luigi Malerbi nr.2 (1794)"},young2:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.14198392915,349.22823143301,368.32692341742,391.5530240856,414.36778843034,438.51190905657,466.16376151809,491.65745674141,523.2511306012],description:"Thomas Young well temperament no.2 (1799)"},yugo_bagpipe:{frequencies:[261.6255653006,277.02257024271,294.00421879736,322.47117131255,341.84370465044,381.9375744369,404.41509766528,430.1988069325,452.63145841613,463.74664903953,478.99265177484,502.22604835608,523.2511306012],description:"Yugoslavian Bagpipe"},yves:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:`St Yves's scale II from Jocelyn Godwin, "Music and the Occult", 1995.`},saba_sup:{frequencies:[261.6255653006,287.78812183066,313.95067836072,327.03195662575,392.4383479509,418.60090448096,470.92601754108,497.08857407114,523.2511306012],description:"Superparticular version of maqam Sab"},sabagh:{frequencies:[261.6255653006,275.67629620338,279.3053384865,286.70737164501,294.30556868769,310.11139540064,314.19374626607,322.52037740267,326.76608188608,331.06767743197,348.8478314504,362.80683626646,367.58287746967,372.42178901277,392.42288612931,413.49815209867,418.94150105041,430.04411333507,441.44096240275,465.14876849982,471.27205084813,483.76150545705,490.12981126508,496.58195036371,523.2511306012],description:"Twfiq Al-Sabagh, Arabic master musical scale in 53-tET (1954)"},sabbagh:{frequencies:[261.6255653006,294.30556868769,321.46759848648,348.8478314504,392.42288612931,428.64035280622,465.14876849982,523.2511306012],description:"Tawfiq as-Sabbagh, a composer from Syria. 1/1=G"},safi_diat:{frequencies:[261.6255653006,276.16031892841,305.22982618403,348.83408706747,392.4383479509,414.24047839262,457.84473927605,523.2511306012],description:"Safi al-Din's Diatonic, also the strong form of Avicenna's 8/7 diatonic"},safi_diat2:{frequencies:[261.6255653006,283.79722337692,310.07474405997,348.83408706747,392.4383479509,425.69583506538,465.11211608996,523.2511306012],description:"Safi al-Din's 2nd Diatonic, a 3/4 tone diatonic like Ptolemy's Equable Diatonic"},safi_major:{frequencies:[261.6255653006,281.75060878526,322.00069575458,348.83408706747,375.66747838035,392.4383479509,523.2511306012],description:"Singular Major (DF #6), from Safi al-Din, strong 32/27 chromatic"},salinas_19:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:`Salinas' enharmonic tuning for his 19-tone instr. "instrumentum imperfectum"`},salinas_24:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,459.88868900496,465.11211608996,470.92601754108,490.54793493862,510.98743222773,523.2511306012],description:'Salinas enharmonic system "instrumentum perfectum". Subset of Mersenne'},salinas_enh:{frequencies:[261.6255653006,272.52663052146,279.06726965397,348.83408706747,392.4383479509,408.78994578219,418.60090448096,523.2511306012],description:"Salinas's and Euler's enharmonic"},salunding:{frequencies:[261.6255653006,282.38958039978,310.76686573877,390.36201910543,419.43149305958,523.2511306012],description:"Gamelan slunding, Kengetan, South-Bali. 1/1=378 Hz"},sankey:{frequencies:[261.6255653006,274.88665260982,292.54735824399,309.58527581215,327.03195662575,348.83408706747,366.73895666255,391.24894371175,412.31687950427,437.13741259348,464.79252184829,489.99465727995,523.2511306012],description:"John Sankey's Scarlatti tuning, personal evaluation based on d'Alembert's"},santur1:{frequencies:[261.6255653006,282.02765077995,319.3201344739,347.21689301951,376.46192220133,427.47393558663,475.68393915562,504.55222794679,523.2511306012],description:"Persian santur tuning. 1/1=E"},santur2:{frequencies:[261.6255653006,281.2143451833,317.48098583281,345.21700307457,375.37611551499,423.78627283082,475.68393915562,498.18106573801,523.2511306012],description:"Persian santur tuning. 1/1=E"},sanza:{frequencies:[261.6255653006,293.15632631094,308.97787266236,346.21547002486,390.18821123181,462.40922843744,524.46149515038,595.18445928535,620.10113226249],description:"African N'Gundi Sanza (idiophone; set of lamellas, thumb-plucked)"},sanza2:{frequencies:[261.6255653006,390.63923480058,465.35666077712,523.2511306012,588.68812410589,663.45725712889,702.9084786129,783.08569314515],description:"African Baduma Sanza (idiophone, like mbira)"},sauveur:{frequencies:[261.6255653006,274.85950244128,292.7026939092,313.25286195357,328.80795208256,349.69755047152,367.27338607435,391.35133250294,417.15885134862,438.29716799286,468.84228427561,491.11646492505,523.2511306012],description:"Sauveur's tempered system of the harpsichord. Trait\xEF\xBF\xBD (1697)"},sauveur2:{frequencies:[261.6255653006,278.64199172491,293.04864983565,312.10886966906,328.2456799168,349.5951549002,372.33322418948,391.58401058733,417.05308314313,438.61577206336,467.14384425417,491.2966347616,523.2511306012],description:"Sauveur's Syste^me Chromatique des Musiciens (Memoires 1701), 12 out of 55."},sauveur_17:{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,441.49314144476,465.11211608996,489.99465727995,496.67978412536,523.2511306012],description:"Sauveur's oriental system, aft. Kitab al-adwar (Bagdad 1294) by Safi al-Din"},sauveur_ji:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Aplication des sons harmoniques aux jeux d'orgues (1702) (PB 81/80 & 128/125)"},savas_bardiat:{frequencies:[261.6255653006,282.57123920205,317.17549194805,349.22823143301,391.99543598175,423.37848741825,475.22628419761,523.2511306012],description:"Savas's Byzantine Liturgical mode, 8 + 12 + 10 parts"},savas_barenh:{frequencies:[261.6255653006,282.57123920205,329.62755691287,349.22823143301,391.99543598175,423.37848741825,493.88330125613,523.2511306012],description:"Savas's Byzantine Liturgical mode, 8 + 16 + 6 parts"},savas_chrom:{frequencies:[261.6255653006,282.57123920205,323.3415889232,349.22823143301,391.99543598175,423.37848741825,484.46499093218,523.2511306012],description:"Savas's Chromatic, Byzantine Liturgical mode, 8 + 14 + 8 parts"},savas_diat:{frequencies:[261.6255653006,288.06460709314,311.12698372208,349.22823143301,391.99543598175,431.60923940535,466.16376151809,523.2511306012],description:"Savas's Diatonic, Byzantine Liturgical mode, 10 + 8 + 12 parts"},savas_palace:{frequencies:[261.6255653006,277.18263097687,336.03572815422,349.22823143301,391.99543598175,415.30469757995,503.48470957687,523.2511306012],description:"Savas's Byzantine Liturgical mode, 6 + 20 + 4 parts"},scalatron:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,510.98743222773,523.2511306012],description:"Scalatron (tm) 19-tone scale, see manual, 1974"},scheengaas:{frequencies:[261.6255653006,273.84069463911,292.6487650037,312.74862113192,327.53979283172,350.03605285217,366.8025131876,391.54284657258,418.19337019276,437.97145880542,467.51204131067,489.62261321254,523.2511306012],description:"Scheengaas' variation"},scheffer:{frequencies:[261.6255653006,274.56546814423,292.86978442859,309.86465789076,327.84548435462,349.70179235499,366.99791252626,391.46460164194,410.82629477826,438.21464222188,467.42914467878,490.54793493862,523.2511306012],description:"H.Th. Scheffer (1748) modified 1/5-comma temperament, Sweden"},schidlof:{frequencies:[261.6255653006,264.89588486686,274.70684356563,280.31310567921,294.32876096318,305.22982618403,315.35224388912,322.99452506247,327.03195662575,348.83408706747,353.19451315581,366.27579142084,373.75080757229,392.4383479509,406.97310157871,420.46965851882,436.04260883433,457.84473927605,467.18850946536,484.4917875937,490.54793493862,523.2511306012],description:"Schidlof"},schillinger:{frequencies:[261.6255653006,262.8879410321,275.85161280553,277.18263097687,278.52007147562,292.25460328695,293.66476791741,295.08173676673,309.63296633914,311.12698372208,312.62820992379,328.04470063332,329.62755691287,331.21805066987,347.55125362114,349.22823143301,350.91330087035,368.21772660991,369.99442271164,371.77969159194,390.11309203208,391.99543598175,393.88686247394,413.31042363438,415.30469757995,417.30859414412,437.88714035463,440,442.12305445465,463.92526470026,466.16376151809,468.41305936011,491.51169649079,493.88330125613,496.26634930797,520.73850287792,523.2511306012],description:"Joseph Schillinger's double equal temperament, p.664 Mathematical Basis..."},schis41:{frequencies:[261.6255653006,266.96486255163,272.52663052146,275.21650375777,280.31310567921,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,311.45900631024,313.95067836072,321.08592105074,327.03195662575,329.64821227876,336.37572681506,343.38355445704,348.83408706747,355.95315006884,363.36884069528,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,415.27867508032,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,484.4917875937,490.54793493862,497.4115685962,504.56359022259,512.78610798918,523.2511306012],description:"41&53 <<1 -8 -14 23 -15 -25 33 -10 81 113||"},schisynch17:{frequencies:[261.6255653006,275.80289341725,290.74848220557,294.25152581512,310.19683462128,327.0062098829,330.94609980123,348.87986495302,367.78544978395,387.71551660339,392.38685458718,413.65005636851,436.06549769577,441.31937388998,465.23419873014,490.4449531872,496.35401261224,523.2511306012],description:"fifth satisfies f^9 + f^8 - 64 = 0"},schlick:{frequencies:[261.6255653006,275.62199471997,293.00227310437,311.47852302926,328.14198392915,349.6228209638,367.9112241576,391.5530240856,414.36778843034,438.51190905657,466.69047534984,491.10256480205,523.2511306012],description:"Reconstructed temp. A. Schlick, Spiegel d. Orgelmacher und Organisten (1511)"},schlick2:{frequencies:[261.6255653006,275.31092272332,293.00227310437,311.83045953724,328.14198392915,349.6228209638,367.9112241576,391.5530240856,415.30469757995,438.51190905657,466.69047534984,491.10256480205,523.2511306012],description:"Schlick's temperament reconstructed by F.J. Ratte (1991)"},schlick3:{frequencies:[261.6255653006,275.31092431358,293.00227310437,311.83045953724,328.14198392915,349.6228209638,367.70355049744,391.5530240856,415.07027187895,438.51190905657,466.95405539699,491.10256480205,523.2511306012],description:"Possible well-tempered interpretation of 1555 tuning, Margo Schulter"},schlick4:{frequencies:[261.6255653006,275.29566620843,293.00166043901,311.83758337792,328.14192706649,349.6222474261,367.6987228158,391.55300599201,415.35839309639,438.51185079886,466.95962791236,491.10245700671,523.2511306012],description:"Another reconstructed Schlick's modified meantone (Poletti?)"},scholz:{frequencies:[261.6255653006,271.31540105247,299.00064605783,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Simple Tune #1 Carter Scholz"},scholz_epi:{frequencies:[261.6255653006,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,4709.2601754108,5232.511306012,5494.1368713126,5755.7624366132,6279.0135672144,6540.639132515,6802.2646978156,7063.8902631162,7325.5158284168,8372.0180896192,8633.6436549198,9156.894785521,9418.5203508216,10203.3970467234,10465.022612024,10988.2737426252,11511.5248732264,11773.150438527,12558.0271344288,12819.6526997294,13081.27826503,14127.7805262324,14389.406091533,14651.0316568336,16482.4106139378,16744.0361792384,17005.661744539],description:"Carter Scholz, Epimore"},schulter:{frequencies:[261.6255653006,277.184065539,293.66520219021,311.12905403417,329.62853176407,349.23107169224,369.99606406306,391.99572582396,415.30715405467,440.00097595231,466.1672081452,493.88512703986,523.25577305438],description:`Margo Schulter's 5-limit JI virt. ET, "scintilla of Artusi" tempered 22-08-98`},schulter_17:{frequencies:[261.6255653006,272.43653907335,282.13181390574,295.15344695336,308.77608605158,319.09647917983,332.97799220076,348.34640884647,361.82138782225,375.64984936577,392.98775403209,410.26687922759,423.79017189188,443.34998408798,463.81254988138,480.53289366295,500.16624277499,523.2511306012],description:"Neo-Gothic well-temperament (14:11, 9:7 hypermeantone fifths) TL 04-09-2000"},schulter_24:{frequencies:[261.6255653006,270.06509966514,283.8170195002,292.97240722602,295.75063903546,305.22982618403,307.79478270659,317.68818643644,334.29933343966,345.08318290545,348.06842720833,359.29644098925,377.90359432309,390.09403284964,393.30161007617,406.07983174306,426.86276443782,440.63253103259,444.76346101102,458.66231916761,462.87600014722,477.80748402293,502.32108537715,518.89070451286,523.2511306012],description:'Rational intonation (RI) scale with some "17-ish" features (24 notes)'},schulter_cart34:{frequencies:[261.6255653006,270.08718526646,272.51337835337,281.3271372098,283.85429714132,293.03484945212,295.66718139806,305.22982618403,307.97166902637,317.93223698752,320.78822215662,331.16330924834,334.13814720468,344.94500399825,348.04364484358,359.30023993517,362.52783176564,374.2528814026,377.61479489998,389.82779436071,393.32961502355,406.05087076101,409.69842558521,422.94908927295,426.7484383229,440.55054172958,444.50800708553,458.88449901367,463.0066556268,477.98143975034,482.27514684959,497.87312179111,502.34551296122,518.59261334435,523.2511306012],description:'"Carthesian tuning" with two 17-tET chains 55.106 cents apart'},schulter_diat7:{frequencies:[261.6255653006,295.1673044417,332.97799220076,348.83408706747,392.4383479509,442.75095666255,499.46698830115,523.2511306012],description:"Diatonic scale, symmetrical tetrachords based on 14/11 and 13/11 triads"},schulter_ham:{frequencies:[261.6255653006,272.52663052146,283.8170195002,295.75063903546,307.79478270659,320.70230585235,334.29933343966,348.01136516401,362.25078272391,377.90359432309,393.36609818246,409.50088481833,426.86276443782,444.76346101102,462.87600014722,482.33849075995,502.32108537715,523.2511306012],description:'New rational tuning of "Hammond organ type", TL 01-03-2002'},schulter_jot17a:{frequencies:[261.6255653006,271.31540105247,281.75060878526,295.1673044417,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,392.4383479509,406.97310157871,422.62591317789,442.75095666255,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:"Just octachord tuning -- 4:3-9:8-4:3 division, 17 steps (7 + 3 + 7), Bb-Bb"},schulter_jot17bb:{frequencies:[261.6255653006,271.31540105247,281.75060878526,295.15228855401,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,392.4383479509,406.97310157871,422.62591317789,442.72843283101,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:'"Just Octachord Tuning" (Bb-Eb, F-Bb) -- 896:891 divided into 1792:1787:1782'},schulter_jwt17:{frequencies:[261.6255653006,272.43653907335,282.34838235411,295.1673044417,308.34441624714,319.76457981184,332.97799220076,347.8430811383,362.25078272391,376.08675011961,393.55640592227,409.81906732402,425.14154361347,443.97065626768,462.87600014722,481.6288815761,500.8899711738,523.2511306012],description:'"Just well-tuned 17" circulating system'},"schulter_lin76-34":{frequencies:[261.6255653006,270.6250663876,281.88470155261,291.58108453077,295.07956188513,305.22982618403,308.89206602106,319.51745915009,332.81131277165,344.25948974019,348.39001840879,360.3740779397,375.36781334896,388.27986588625,392.93856423817,406.45502016129,423.36600317146,437.92911415628,443.18352164838,458.42832346067,463.9286840578,479.88708893184,499.85328649772,517.04744024951,523.2511306012],description:"Two 12-note chains, ~704.160 cents, 34 4ths apart (32 4ths = 7:6), TL 29-11-02"},schulter_pel:{frequencies:[261.6255653006,271.31540105247,305.22982618403,392.4383479509,406.97310157871,523.2511306012],description:"Just pelog-style Phrygian pentatonic"},schulter_pepr:{frequencies:[261.6255653006,270.64528702739,281.81099471089,291.52662303231,295.05751399041,305.22982618403,308.92668738628,319.57714790608,332.76158224462,344.23376719628,348.40303271111,360.41446953256,375.28368107222,388.22184469544,392.9238840789,406.47020586181,423.23948674937,437.83095983374,443.13385158124,458.41119660824,463.96335069158,479.95880706014,499.75992392917,516.98949183803,523.2511306012],description:"Peppermint 24: Wilson/Pepper apotome/limma=Phi, 2 chains spaced for pure 7:6"},schulter_qcm62a:{frequencies:[261.6255653006,262.43934012943,267.90457886781,268.73788454005,273.37431312998,274.22463192287,279.93529690293,280.80602334765,285.65065877038,286.53916259713,292.50627485027,293.41610276971,299.52642572255,300.45808951291,305.64177427204,306.59245933664,312.977175335,313.95067836072,320.36052345918,320.48862783822,327.03195662575,328.04917632434,334.88072358477,335.92235492515,341.71789064962,342.78078913836,349.91912034749,351.00752840096,358.31717956585,359.43170941363,365.63284274659,366.77012764335,374.40803131735,375.5726110527,382.05221698715,383.2405741708,391.22147055517,392.4383479509,400.61078621746,401.85686830172,408.78994578219,410.06146948999,418.60090448096,419.90294514449,427.14736482575,428.47598794138,437.39890198442,438.75941205608,447.89647345742,449.28963835923,457.04105241293,458.46266117889,468.01003810189,469.46576276783,479.24227945773,480.73294151703,489.02683710225,490.54793493862,500.76348165392,502.32108537715,510.98743222773,512.57683571821,523.2511306012],description:"1/4-comma meantone, two 31-notes at 1/4-comma (Vicentino-like system)"},schulter_qcmlji24:{frequencies:[261.6255653006,262.43934012943,273.37431312998,274.22463192287,292.50627485027,293.41610276971,306.59245933664,312.977175335,327.03195662575,328.04917632434,349.91912034749,351.00752840096,365.63284274659,366.77012764335,391.22147055517,392.4383479509,408.78994578219,410.06146948999,437.39890198442,438.75941205608,458.46266117889,468.01003810189,489.02683710225,490.54793493862,523.2511306012],description:"24-note adaptive JI (Eb-G#/F'-A#') for Lasso's Prologue to _Prophetiae_"},schulter_qcmqd8_4:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.28772967674,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.22091428214,437.39890198442,465.24335632603,489.02683710225,523.2511306012],description:"F-C# in 1/4-comma meantone, other 5ths ~4.888 cents wide or (2048/2025)^(1/4)"},schulter_sq:{frequencies:[261.6255653006,271.31540105247,279.38237857051,289.72987407313,294.32876096318,305.22982618403,310.07474405997,325.94610833227,331.11985608357,343.38355445704,348.83408706747,361.75386806997,372.50983809402,386.30649876417,392.4383479509,406.97310157871,419.07356785577,434.59481110969,441.49314144476,457.84473927605,465.11211608996,488.9191624984,496.67978412536,515.07533168556,523.2511306012],description:'"Sesquisexta" tuning, two 12-tone Pyth. manuals a 7/6 apart. TL 16-5-2001'},schulter_tedorian:{frequencies:[261.6255653006,295.99553712036,309.28772789022,347.85054122562,393.54796334264,442.61656607198,462.49302735707,523.2511306012],description:"Eb Dorian in temperament extraordinaire -- neo-medieval style"},schulter_zarte84:{frequencies:[261.6255653006,272.52663052146,292.24684137387,308.87634556583,326.45210604021,350.07440004945,364.66083404534,391.04793957621,410.30971075781,436.81711699543,465.03699205118,487.94322738789,523.2511306012],description:"Temperament extraordinaire, Zarlino's 2/7-comma meantone (F-C#)"},schulter_zarte84n:{frequencies:[261.6255653006,272.46997760396,292.1447183254,308.81896225817,326.44489157977,350.01709816983,364.52535053201,391.11195868293,410.09013064752,436.73596474349,465.11312402839,488.01232708701,523.2511306012],description:"Zarlino temperament extraordinaire, 1024-tET mapping"},scotbag:{frequencies:[261.6255653006,290.69507255622,327.03195662575,356.76213450082,387.59343007496,436.04260883433,479.64686971777,523.2511306012],description:"Scottish bagpipe tuning"},scotbag2:{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Scottish bagpipe tuning 2"},scotbag3:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,441.49314144476,479.64686971777,523.2511306012],description:"Scottish bagpipe tuning 3"},scotbag4:{frequencies:[261.6255653006,293.15632631094,318.58319997217,348.2210758395,392.67530119805,428.21545238314,468.59347232539,523.2511306012],description:"Scottish Higland Bagpipe by Macdonald, Edinburgh. Helmholtz/Ellis p. 515, nr.52"},scottd1:{frequencies:[261.6255653006,275.93341798027,292.67158636845,310.42509491746,327.40170814054,349.22823143301,367.9112241576,391.5530240856,413.90012676351,437.52264545758,465.63764214343,490.54829628849,523.2511306012],description:"Dale Scott's temperament 1, TL 9-6-1999"},scottd2:{frequencies:[261.6255653006,276.1828093671,292.93610587951,310.70566022736,327.9937953665,349.3071136959,368.24374600687,391.64146650178,414.27421384356,438.21489534465,466.05849010807,491.32444638706,523.2511306012],description:"Dale Scott's temperament 2, TL 9-6-1999"},scottd3:{frequencies:[261.6255653006,276.40121172404,293.16775656083,310.95136287868,328.51274831708,349.22813057195,368.53494914961,391.77416758435,414.60181737882,438.75957425603,466.42704408487,491.93513777943,523.2511306012],description:"Dale Scott's temperament 3, TL 9-6-1999"},scottd4:{frequencies:[261.6255653006,276.60439543337,293.30494246724,310.98285414553,328.78580734933,349.37474066871,369.05201453919,391.83105388699,414.77686160481,439.10664961187,466.16991430388,492.5350487994,523.2511306012],description:"Dale Scott's temperament 4, TL 9-6-1999"},scottj:{frequencies:[261.6255653006,294.32876096318,336.37572681506,348.83408706747,392.4383479509],description:`Jeff Scott's "seven and five" tuning, fifth-repeating. TL 20-04-99`},scottj2:{frequencies:[261.6255653006,290.69507255622,299.00064605783,305.22982618403,313.95067836072,348.83408706747,366.27579142084,406.97310157871,418.60090448096,428.11456140098,436.04260883433,485.87604984397,523.2511306012,566.85539148463,581.39014511244,598.00129211566,610.45965236807,680.22646978156,719.47030457665,784.8766959018],description:`Jeff Scott's "just tritone/13" tuning. TL 17-03-2001`},secor12_1:{frequencies:[261.6255653006,275.03488264166,292.74290192225,310.07362690431,327.56128791316,349.21167447253,366.91716522699,391.37968062521,412.76363757129,437.92977184699,465.61556619611,490.01645577464,523.2511306012],description:"George Secor's 12-tone temperament ordinaire #1, proportional beating"},secor12_2:{frequencies:[261.6255653006,275.62199471997,292.79557634972,310.07474405997,327.35540669465,348.83408706747,367.49599295996,391.60840570078,413.43299207996,437.83150862942,465.11211608996,489.99465727995,523.2511306012],description:"George Secor's closed 12-tone well-temperament #2, with 7 just fifths"},secor12_3:{frequencies:[261.6255653006,274.49585366342,292.50627485027,309.76836826904,327.03195662575,349.57337698802,365.99447173417,391.22147055517,411.74378028931,437.39890198442,466.09783352473,489.02683710225,523.2511306012],description:"George Secor's closed 12-tone temperament #3 with 5 meantone, 3 just, and 2 wide fifths"},secor17htt1:{frequencies:[261.6255653006,266.21235100401,283.6936382117,294.88137067808,304.94368688875,319.75456524059,327.03195662575,348.50707605838,360.3992766165,372.69727792826,392.80658053205,399.69321489333,425.93975025566,435.63385416574,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #1 on C (5/4 & 7/4 exact)"},secor17htt2:{frequencies:[261.6255653006,266.21235100401,279.78524030783,294.88137067808,300.05119287674,319.75456524059,327.03195662575,348.50707605838,360.3992766165,372.69727792826,392.80658053205,399.69321489333,425.93975025566,442.73709545768,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #2 on Eo (5/4 & 7/4 exact)"},secor17htt3:{frequencies:[261.6255653006,270.55308473255,279.78524030783,294.88137067808,300.05119287674,319.75456524059,327.03195662575,343.70575469589,360.3992766165,368.60172104124,392.80658053205,399.69321489333,425.93975025566,442.73709545768,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #3 on G (5/4 & 7/4 exact)"},secor17htt4:{frequencies:[261.6255653006,270.55308473255,279.78524030783,294.88137067808,300.05119287674,319.75456524059,332.36439517321,343.70575469589,360.3992766165,368.60172104124,392.80658053205,399.69321489333,420.07165483694,442.73709545768,450.49910517366,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #4 on Bo (5/4 & 7/4 exact)"},secor17wt:{frequencies:[261.6255653006,271.90848849519,284.45827635845,296.12458543709,307.25838681362,320.91221742866,335.17278980765,347.77473997341,362.0378075073,378.74746489181,393.63374363584,408.43373030454,427.2847686483,445.53990619223,462.29147990415,482.0422296857,504.29062567056,523.2511306012],description:"George Secor's well temperament with 5 pure 11/7 and 3 near just 11/6"},secor19wt:{frequencies:[261.6255653006,272.32755795875,282.27948808054,292.18583194851,304.13791554835,314.37102040472,326.31582004031,339.6640167515,350.11094753355,364.43250202589,378.27942889874,391.0071187494,407.00156221801,421.24111755476,436.68033801788,454.54308187078,469.17957429271,487.6886112017,506.92782577841,523.2511306012],description:"George Secor's 19-tone well temperament with ten 5/17-comma fifths"},secor19wt1:{frequencies:[261.6255653006,272.32845615788,282.22605479514,292.18610873661,304.13920677667,314.3856167727,326.31643450984,339.6657766488,350.11078170334,364.43353349925,378.23315721313,391.00730395019,407.00309738029,421.33223555387,436.68095599763,454.54522431957,469.16941157468,487.689760539,506.89867708289,523.2511306012],description:"George Secor's 19-tone proportional-beating (5/17-comma) well temperament (v.1)"},secor19wt2:{frequencies:[261.6255653006,272.32845615788,282.22605479514,292.18610873661,304.13920677667,314.27577204952,326.31643450984,339.6657766488,350.11078170334,364.43353349925,378.23315721313,391.00730395019,407.00309738029,421.20165315727,436.68095599763,454.54522431957,469.03541436973,487.689760539,506.89867708289,523.2511306012],description:"George Secor's 19-tone proportional-beating (5/17-comma) well temperament (v.2)"},secor1_4tx:{frequencies:[261.6255653006,274.52656755164,292.65557420835,309.65910769439,327.20096538886,349.14957009195,366.50113643833,391.42429537222,412.04336447213,437.62002395673,465.5327601226,489.58458498887,523.2511306012],description:"George Secor's rational 1/4-comma temperament extraordinaire"},secor1_5tx:{frequencies:[261.6255653006,275.23833828784,292.86443876933,310.12174699459,327.84546895566,349.26796031009,366.98445105045,391.462133155,412.85750743176,438.21197504744,465.69061374678,490.54793493862,523.2511306012],description:"George Secor's 1/5-comma temperament extraordinaire (ratios supplied by G. W. Smith)"},secor1_5wt:{frequencies:[261.6255653006,275.62199471997,292.86443876933,310.07474405997,327.84546895566,348.83408706747,367.44664657419,391.462133155,413.43299207996,438.21197504744,465.11211608996,490.54793493862,523.2511306012],description:"George Secor's 1/5-comma well-temperament (ratios supplied by G. W. Smith)"},secor1_7wt:{frequencies:[261.6255653006,276.40791719395,293.28186156416,310.6264877857,328.77715667764,349.45479875891,368.54388959194,391.74026793015,414.61187579093,439.14616729155,465.93973167855,492.29203182992,523.2511306012],description:"George Secor's 1/7-comma well-temperament (ratios supplied by G. W. Smith)"},secor22_19p3:{frequencies:[261.6255653006,266.86058412305,272.32845615788,282.28026746552,292.18610873661,304.13920677667,314.37137994881,326.31643450984,339.6657766488,350.11078170334,357.11635499175,364.43353349925,378.28077924825,391.00730395019,407.00309738029,421.28573964817,436.68095599763,454.54522431957,469.17973147781,477.89781576412,487.689760539,506.93004530576,523.2511306012],description:"George Secor's 19+3 well temperament with ten ~5/17-comma (equal-beating) fifths and 3 pure 9:11. TL 28-6-2002,26-10-2006. Aux=1,10,19"},secor22_ji29:{frequencies:[261.6255653006,272.52663052146,283.42769574232,286.15296204753,294.32876096318,305.22982618403,316.13089140489,327.03195662575,340.65828815182,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,414.24047839262,425.14154361347,436.04260883433,441.49314144476,457.84473927605,479.64686971777,490.54793493862,501.44900015948,523.2511306012],description:"George Secor's 22-tone just intonation (29-limit otonality on 4/3)"},secor29htt:{frequencies:[261.6255653006,270.55308473255,276.71069203503,283.6936382117,290.1503157249,294.88137067808,304.94368688875,310.54087273367,319.75456524059,327.03195662575,332.36439517321,343.70575469589,348.50707605838,360.3992766165,368.60172104124,377.19539564757,387.3949548402,392.80658053205,406.21042497925,415.4555026381,425.93975025566,435.63385416574,442.73709545768,457.84473927605,464.24049278842,480.08189580921,491.0082387498,499.01438878341,516.04239079678,523.2511306012],description:"George Secor's 29-tone 13-limit high-tolerance temperament (5/4 & 7/4 exact)"},secor2_11wt:{frequencies:[261.6255653006,275.91396717201,292.9984614786,310.40321306851,328.14053952957,349.20361470207,367.88528956268,391.55148162785,413.87095075801,438.50612639837,465.60481960276,491.10222639053,523.2511306012],description:"George Secor's rational 2/11-comma well-temperament"},secor41htt:{frequencies:[261.6255653006,266.21235100401,270.55308473255,276.71069203503,279.78524030783,283.6936382117,290.1503157249,294.88137067808,300.05119287674,304.94368688875,310.54087273367,315.34936221801,319.75456524059,327.03195662575,332.36439517321,338.19136297459,343.70575469589,348.50707605838,354.61705516636,360.3992766165,368.60172104124,372.69727792826,377.90358994896,387.3949548402,392.80658053205,399.69321489333,406.21042497925,415.4555026381,420.07165483694,425.93975025566,435.63385416574,442.73709545768,450.49910517366,457.84473927605,464.24049278842,473.46789104304,480.08189580921,491.0082387498,499.01438878341,507.7630447553,516.04239079678,523.2511306012],description:"George Secor's 13-limit high-tolerance temperament superset (5/4 & 7/4 exact)"},secor5_23tx:{frequencies:[261.6255653006,275.02417915696,292.7420830065,310.0721322444,327.56084927797,349.21018850905,366.91927748105,391.38056264645,412.75664067387,437.92311604224,465.61358467873,490.0190422864,523.2511306012],description:"George Secor's rational 5/23-comma temperament extraordinaire"},secor5_23wt:{frequencies:[261.6255653006,275.62199471997,292.75872440224,310.07474405997,327.56278518065,348.83408706747,367.49599295996,391.3766908411,413.43299207996,437.81158306864,465.11211608996,489.99465727995,523.2511306012],description:"George Secor's rational 5/23-comma proportional-beating well-temperament"},secor7p:{frequencies:[261.6255653006,281.10327891957,302.03108525935,356.94582815655,383.52002471837,412.07263653985,442.75095666255,523.2511306012],description:"George Secor's pelog-like MOS with near just 11:13:15:19 tetrads (1979)"},secor_vrwt:{frequencies:[261.6255653006,276.32932769153,293.15777167588,310.55777256823,328.11844153148,349.04269216937,368.62018440632,392.00375398861,414.25255044712,438.65017260809,465.6191423793,491.6947801169,523.2511306012],description:"George Secor's Victorian rational well-temperament (based on Ellis #2)"},"secor_wt1-7":{frequencies:[261.6255653006,276.2204353545,293.2843722634,310.74798946314,328.77415062671,349.45463702831,368.55847674989,391.74146894101,414.33065282463,439.14535139523,466.13275379077,492.28548658217,523.2511306012],description:"George Secor's 1/7-comma well-temperament"},secor_wt10:{frequencies:[261.6255653006,276.4188590209,293.2843722634,310.62634254146,328.77415062671,349.45463500978,368.55847887877,391.7414712038,414.6282883241,439.14535393183,465.93951357928,492.28548942572,523.2511306012],description:"George Secor's 12-tone well-temperament, proportional beating"},"secor_wtpb-24a":{frequencies:[261.6255653006,275.62199471997,292.84836938997,310.07474405997,327.30111872997,348.83408706747,367.49599295996,391.90002374246,413.43299207996,437.54991661796,465.11211608996,490.95167809495,523.2511306012],description:"George Secor's 24-triad proportional-beating well-temperament (24a)"},"secor_wtpb-24b":{frequencies:[261.6255653006,275.62199471997,292.56126314547,310.07474405997,327.51644841334,348.83408706747,367.49599295996,391.46936437571,413.43299207996,437.76524630133,465.11211608996,490.37746560595,523.2511306012],description:"George Secor's 24-triad proportional-beating well-temperament (24b)"},segah:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,440,479.82340237272,523.2511306012],description:"Arabic SEGAH (Dudon) Two 4 + 3 + 3 tetrachords"},segah2:{frequencies:[261.6255653006,293.66476791741,318.39923223688,349.22823143301,391.99543598175,425.01198472693,466.16376151809,523.2511306012],description:"Iranian mode Segah from C"},segah_rat:{frequencies:[261.6255653006,294.32876096318,319.76457981184,348.83408706747,392.4383479509,441.49314144476,479.64686971777,523.2511306012],description:"Rationalized Arabic Seg\xEF\xBF\xBDh\r"},seidel974:{frequencies:[261.6255653006,262.64754016506,266.73543962288,267.75741448733,268.77938935179,273.88926367407,274.91123853852,276.95518826743,277.97716313189,280.0211128608,283.08703745416,284.10901231862,285.13098718308,287.17493691199,289.2188866409,290.24086150535,294.32876096318,457.84473927605,461.93263873387,463.97658846278,468.0644879206,474.19633710734,476.24028683625,482.37213602298,486.4600354808,488.50398520971,492.59188466754,498.72373385427,506.89953276991,513.03138195665,515.07533168556,519.16323114338,523.2511306012],description:"Dave Seidel, Base 9:7:4 Symmetry, scale for Passacaglia and Fugue State (2005)"},seikilos:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,441.49314144476,457.84473927605,504.56359022259,523.2511306012],description:"Seikilos Tuning"},sekati1:{frequencies:[261.6255653006,285.2147362526,318.99014578736,340.97107458785,383.86043226246,424.60539155549,468.56721805116,523.2511306012],description:"Gamelan sekati from Sumenep, East-Madura. 1/1=244 Hz."},sekati2:{frequencies:[261.6255653006,288.87830434024,317.34219433319,357.31261688157,393.64955765984,420.29657220667,469.35141988267,523.2511306012],description:"Gamelan Kyahi Sepuh from kraton Solo. 1/1=216 Hz."},sekati3:{frequencies:[261.6255653006,291.90272733088,308.20569577938,369.53649673407,403.69531865382,425.43272843735,475.11832680028,523.2511306012],description:"Gamelan Kyahi Henem from kraton Solo. 1/1=168.5 Hz."},sekati4:{frequencies:[261.6255653006,271.36353278789,288.89182053123,342.12578909252,379.12979967788,410.29128883625,439.50493264224,523.2511306012],description:"Gamelan Kyahi Guntur madu from kraton Jogya. 1/1=201.5 Hz."},sekati5:{frequencies:[261.6255653006,274.79663866182,311.31645994273,355.61927540077,375.97459751383,397.52718524897,433.44837981883,523.2511306012],description:"Gamelan Kyahi Naga Ilaga from kraton Jogya. 1/1=218.5 Hz."},sekati6:{frequencies:[261.6255653006,284.57524936299,310.80330758934,358.01400474517,390.79902205709,427.51850178351,468.18764285778,523.2511306012],description:"Gamelan Kyahi Munggang from Paku Alaman, Jogya. 1/1=199.5 Hz."},sekati7:{frequencies:[261.6255653006,286.67481979642,318.21831168293,371.10013445627,390.58282835584,422.12643845206,463.87524473877,523.2511306012],description:"Gamelan of Sultan Anom from Cheribon. 1/1=282 Hz."},sekati8:{frequencies:[261.6255653006,287.04067548259,315.94410704802,350.82750428678,381.72407804086,425.57749367468,447.5043967797,523.2511306012],description:"The old Sultans-gamelan Kyahi Suka rame from Banten. 1/1=262.5 Hz."},sekati9:{frequencies:[261.6255653006,280.44107893528,310.90439774384,346.74342440827,376.31071188751,412.14996063869,455.1567650372,523.2511306012],description:"Gamelan Sekati from Katjerbonan, Cheribon. 1/1=292 Hz."},selisir:{frequencies:[261.6255653006,278.78833362316,320.24370022528,380.8360868427,417.71053321823,524.76452349887],description:"Gamelan semara pagulingan, Bali. Pagan Kelod"},selisir2:{frequencies:[261.6255653006,279.59466973861,299.66214729245,376.46181130035,408.17001145418,520.23742585195],description:"Gamelan semara pagulingan, Bali. Kamasan"},selisir3:{frequencies:[261.6255653006,284.98499077387,305.5412851438,378.42269266694,406.45400323486,523.2511306012],description:"Gamelan gong, Pliatan, Bali. 1/1=280 Hz, McPhee, 1966"},selisir4:{frequencies:[261.6255653006,277.23130136276,295.59098907682,376.373620257,399.32323124828,523.2511306012],description:"Gamelan gong, Apuan, Bali. 1/1=285 Hz. McPhee, 1966"},selisir5:{frequencies:[261.6255653006,275.89605068063,309.19384990071,383.40037296022,406.23315014465,523.2511306012],description:"Gamelan gong, Sayan, Bali. 1/1=275 Hz. McPhee, 1966"},selisir6:{frequencies:[261.6255653006,282.63199755101,312.23197007902,396.25769882774,415.35445602102,523.2511306012],description:"Gamelan gong, Gianyar, Bali. 1/1=274 Hz. McPhee, 1966"},semipor1:{frequencies:[261.6255653006,290.69507255622,313.95067836072,327.03195662575,353.19451315581,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"First 16/15&250/243 = 648/625&250/243 scale"},semisixths:{frequencies:[261.6255653006,264.19830736984,270.23055453212,272.88791531122,275.57140613391,281.86332858923,284.63508234504,291.13394747727,293.99686553194,300.70948316519,303.66656221886,306.65272199551,313.65430163898,316.7386758187,323.97054074552,327.15636145846,330.37351240232,337.91669168384,341.23965429995,349.03093233441,352.46319080675,360.51072564419,364.05587272954,367.63587953306,376.02984347246,379.72760059524,388.39764380609,392.21702191873,396.07395857323,405.11722624758,409.10101938242,418.44172684717,422.55654641528,426.71183224275,436.45463212963,440.74658728358,450.80983509489,455.24295209046,465.63718490681,470.21611194415,474.84006394159,485.68174342829,490.45777940536,501.656046885,506.58917188228,511.57080469686,523.2511306012],description:"Semisixths temperament, 13-limit, g=443.0"},"scalamakesrc2\\semisixths_8":{frequencies:[261.6255653006,282.20554108354,304.40437778605,337.94858305883,364.53227585368,393.20709362444,436.53702313055,470.87587163898,522.76460573117],description:"8-note MOS of Semisixths [7, 9, 13, -2, 1, 5] temperament, TOP tuning"},semisuper:{frequencies:[261.6255653006,267.78942821112,272.60119889127,277.49943141001,284.03728045772,289.141002119,295.95312328758,301.27095467792,308.36885759663,313.90977919898,321.30545111289,327.07882560827,334.78475653951,340.80033382945,348.82954357113,355.09748450744,363.46353108469,369.99442271164,378.7114412363,385.5163125912,392.44345945086,401.68937424288,408.90712663484,418.54092077997,426.06147005461,436.09942062666,443.93546710474,454.39452662825,462.55931114028,473.45714317395,481.96445416288,493.31947147471,502.18367855499,514.01505508798,523.2511306012],description:"Semisuper temperament, g=71.146064, p=600, 5-limit"},semithirds:{frequencies:[13.75,13.81661017188,13.90316796691,13.99026794524,14.07791366516,14.14611237417,14.23473442257,14.3239115844,14.41364750281,14.48347263281,14.57420816344,14.665512046,14.73655738771,14.82887834882,14.92177776458,15.01525908647,15.08799873642,15.18252139242,15.27763629821,15.37334698758,15.4478213521,15.54459820959,15.64198144101,15.73997475533,15.81622511342,15.91530993122,16.01501558389,16.11534586889,16.19341466585,16.29486248479,16.39694594444,16.47637891809,16.57959953527,16.68346670883,16.78798468204,16.86931199442,16.97499424439,17.08133847,17.18834901569,17.27161584349,17.37981843193,17.48869878298,17.59826134469,17.68351394199,17.7942969746,17.90577393328,18.01794937217,18.10523509614,18.21866011204,18.33279560295,18.42160666689,18.53701356879,18.6531435747,18.77000099922,18.86093005309,18.97908920954,19.09798871479,19.21763298632,19.3107305405,19.43170758802,19.55344264036,19.67594033402,19.77125798984,19.89512013023,20.01975835255,20.14517740386,20.24276822054,20.36958425827,20.49719488615,20.62560496443,20.72552315291,20.85536353332,20.98601745346,21.08768161561,21.21979095359,21.352727802,21.48649759166,21.59058626784,21.72584618454,21.86195334633,21.99891331359,22.10548432428,22.24396995552,22.38332303719,22.52354926226,22.63266180681,22.7744500803,22.91712649141,23.06069686887,23.17241155847,23.3175812365,23.46366023269,23.57732716458,23.72503340608,23.87366512928,24.02322785632,24.1396055475,24.29083432682,24.44301065897,24.59614033986,24.71529329517,24.87012861873,25.02593409262,25.18271565096,25.30471019771,25.46323807533,25.62275923969,25.78327976642,25.90818367164,26.07049216435,26.23381763196,26.36090411207,26.52604894185,26.69222821075,26.85944870765,26.98956598001,27.15864922771,27.32879158412,27.5],description:"Semithirds temperament, g=193.199615, 5-limit"},sensisynch19:{frequencies:[261.6255653006,272.4389540986,281.73678149918,293.38139793239,303.39395317428,313.74821628003,326.71591476706,337.86611241253,351.83064080634,363.83795665907,376.25506171692,391.80626469239,405.17787315281,421.92450060765,436.32398762558,454.35793210906,469.86431365505,485.89989602801,505.98288939536,523.2511306012],description:"Sensi[19] in synch (brat=-1) tuning, generator ~162/125 satisfies g^9-g^7-4=0"},serre_enh:{frequencies:[261.6255653006,265.7783520514,279.06726965397,348.83408706747,392.4383479509,398.6675280771,418.60090448096,523.2511306012],description:"Dorian mode of the Serre's Enharmonic"},"sev-elev":{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,336.37572681506,359.73515228832,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'"Seven-Eleven Blues" of Pitch Palette'},sha:{frequencies:[261.6255653006,266.96486255163,280.31310567921,284.82183961519,290.63452941521,294.32876096318,300.33547037059,305.16625703708,320.42456924675,326.96384715385,343.31203882349,348.83408706747,355.95315006884,373.75080757229,392.4383479509,400.44729382745,406.8883429195,420.46965851882,427.23275920923,435.9517939049,457.74938532681,480.63685362987,490.44577048562,498.33441009638,523.2511306012],description:"Three chains of sqrt(3/2) separated by 10/7"},shahin:{frequencies:[261.6255653006,277.01530443593,282.55561052465,294.32876096318,310.50067090621,317.47821407264,328.55303549378,348.83408706747,357.66532977804,371.78369805875,376.74081403286,392.4383479509,415.52295665389,428.11456140098,441.49314144476,463.20591889287,478.90781444856,495.71159741166,523.2511306012],description:"Mohajeri Shahin Iranian style scale, TL 9-4-2006"},shahin_wt:{frequencies:[261.6255653006,276.93928561067,294.25491037444,311.47852302926,329.62755691287,348.92163548373,370.73795561568,392.4383479509,415.30469757995,439.61371330969,467.10055427519,494.44133512215,523.2511306012],description:"Mohajeri Shahin, well temperament, TL 28-12-2006"},shalfun:{frequencies:[261.6255653006,269.43930514995,277.46904793785,285.74220762407,294.32876096318,302.80736724606,311.45900631024,320.30554027987,329.50323085718,338.98103822311,348.83408706747,359.12912189513,369.78878487717,380.87868001252,392.4383479509,404.24222079821,416.2697936366,428.68354137408,441.49314144476,454.4477424016,467.68960547122,481.19471271032,494.94053216156,508.90014647073,523.2511306012],description:"d'Erlanger vol.5, p.40. After Alexandre ^Salfun (Chalfoun)"},"sharm1c-conm":{frequencies:[261.6255653006,305.22982618403,318.50068819203,332.97799220076,406.97310157871,430.91269578922,457.84473927605,523.2511306012],description:"Subharm1C-ConMixolydian"},"sharm1c-conp":{frequencies:[261.6255653006,313.95067836072,330.47439827444,348.83408706747,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Subharm1C-ConPhryg"},"sharm1c-dor":{frequencies:[261.6255653006,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,479.64686971777,547.03527290125,523.2511306012],description:"Subharm1C-Dorian"},"sharm1c-lyd":{frequencies:[261.6255653006,309.19384990071,323.91736656265,340.11323489078,382.37582620857,377.90359432309,485.87604984397,503.87145909745,523.2511306012],description:"Subharm1C-Lydian"},"sharm1c-mix":{frequencies:[261.6255653006,305.22982618403,318.50068819203,332.97799220076,366.27579142084,457.84473927605,488.36772189445,523.2511306012],description:"Subharm1C-Mixolydian"},"sharm1c-phr":{frequencies:[261.6255653006,313.95067836072,330.47439827444,348.83408706747,392.4383479509,483.00104363188,502.32108537715,523.2511306012],description:"Subharm1C-Phrygian"},"sharm1e-conm":{frequencies:[261.6255653006,318.50068819203,325.57848126297,332.97799220076,430.91269578922,443.97065626768,457.84473927605,523.2511306012],description:"Subharm1E-ConMixolydian"},"sharm1e-conp":{frequencies:[261.6255653006,330.47439827444,339.40613876835,348.83408706747,448.50096908674,465.11211608996,483.00104363188,523.2511306012],description:"Subharm1E-ConPhrygian"},"sharm1e-dor":{frequencies:[261.6255653006,338.57426097725,348.83408706747,359.73515228832,383.71749577421,411.12588832951,500.50108144463,511.62332769895,523.2511306012],description:"Subharm1E-Dorian"},"sharm1e-lyd":{frequencies:[261.6255653006,323.91736656265,331.81779013735,340.11323489078,382.37582620857,377.90359432309,503.87145909745,513.37846775967,523.2511306012],description:"Subharm1E-Lydian"},"sharm1e-mix":{frequencies:[261.6255653006,318.50068819203,325.57848126297,332.97799220076,366.27579142084,488.36772189445,505.20798816668,523.2511306012],description:"Subharm1E-Mixolydian"},"sharm1e-phr":{frequencies:[261.6255653006,330.47439827444,339.40613876835,348.83408706747,392.4383479509,502.32108537715,512.57253609913,523.2511306012],description:"Subharm1E-Phrygian"},"sharm2c-15":{frequencies:[261.6255653006,327.03195662575,341.25073734861,356.76213450082,392.4383479509,461.69217405988,490.54793493862,523.2511306012],description:"Subharm2C-15-Harmonia"},"sharm2c-hypod":{frequencies:[261.6255653006,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,465.11211608996,492.47165233054,523.2511306012],description:"SHarm2C-Hypodorian"},"sharm2c-hypol":{frequencies:[261.6255653006,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,475.68284600109,498.33441009638,523.2511306012],description:"SHarm2C-Hypolydian"},"sharm2c-hypop":{frequencies:[261.6255653006,336.37572681506,348.83408706747,362.25078272391,376.74081403286,392.4383479509,470.92601754108,495.71159741166,523.2511306012],description:"SHarm2C-Hypophrygian"},"sharm2e-15":{frequencies:[261.6255653006,341.25073734861,348.83408706747,356.76213450082,392.4383479509,490.54793493862,506.37206187213,523.2511306012],description:"Subharm2E-15-Harmonia"},"sharm2e-hypod":{frequencies:[261.6255653006,334.88072358477,341.71502406609,348.83408706747,364.00078650518,380.54627680087,492.47165233054,507.3950357345,523.2511306012],description:"SHarm2E-Hypodorian"},"sharm2e-hypol":{frequencies:[261.6255653006,327.03195662575,337.58137458142,348.83408706747,373.75080757229,402.50086969323,498.33441009638,510.48890790361,523.2511306012],description:"SHarm2E-Hypolydian"},"sharm2e-hypop":{frequencies:[261.6255653006,348.83408706747,355.41586229515,362.25078272391,376.74081403286,392.4383479509,495.71159741166,509.10920815252,523.2511306012],description:"SHarm2E-Hypophrygian"},sherwood:{frequencies:[261.6255653006,279.50101530337,292.73346657716,312.73435005323,327.54017122074,349.91920725962,366.48547573919,391.52543233055,418.27599117656,438.07873640926,468.01000025525,490.16733894289,523.65750116998],description:"Sherwood's improved meantone temperament"},shrutar:{frequencies:[261.6255653006,269.80136421624,277.49581689502,285.40970760065,294.32876096318,304.37698984459,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,368.95121675679,379.48299988042,392.4383479509,405.83598431812,417.42065019394,428.11456140098,441.49314144476,457.84473927605,470.92601754108,490.54793493862,505.97733342682,523.2511306012],description:"Paul Erlich's Shrutar tuning (from 9th fret) tempered with Dave Keenan"},shrutar_temp:{frequencies:[261.6255653006,269.67683152447,277.97586744827,286.53029793775,295.34798250635,304.4370214407,313.80576690868,327.74897996102,337.83512841993,348.23166805304,358.94815083964,369.99442271164,381.38063259971,393.11724175776,405.21503337437,417.68512248001,430.53896367224,443.78837151315,463.50705251482,477.77102045752,492.47394780842,507.62934310616,523.2511306012],description:"Shrutar temperament, 11-limit, g=52.474, 1/2 oct."},shrutart:{frequencies:[261.6255653006,269.83675183105,278.27349931787,286.14641333958,294.32706056425,305.2349557921,313.94319125793,327.02936607233,337.2932679302,348.82502010853,358.79758764604,369.99442271164,381.540672377,392.44854854484,405.86600994967,418.6042204156,436.0530078362,448.49343183014,465.11480315564,478.41198231361,491.94721442498,507.32849364948,523.2511306012],description:"Paul Erlich's 'Shrutar' tuning tempered by Dave Keenan, TL 29-12-2000"},siamese:{frequencies:[261.6255653006,269.26067151764,288.95340229325,296.22023396764,319.13574119147,352.26720984209,362.5475414329,388.79334481031,400.18585940536,429.40436513853,443.77760270734,473.98350631811,523.2511306012],description:"Siamese Tuning, after Clem Fortuna's Microtonal Guide"},silbermann1:{frequencies:[261.6255653006,275.15551885617,293.66476791741,312.53552595124,327.77163799145,349.82028288879,367.9112241576,391.99543598175,411.56972129721,438.75957425603,467.74568907204,491.10256480205,523.2511306012],description:"Gottfried Silbermann's temperament nr. 1"},silbermann2:{frequencies:[261.6255653006,275.00020270933,293.00227310437,312.18279369479,328.14198392915,349.6228209638,367.49599295996,391.5530240856,411.56972129721,438.51190905657,467.21778431035,491.10256480205,523.2511306012],description:"Gottfried Silbermann's temperament nr. 2, 1/6 Pyth. comma meantone"},silbermann2a:{frequencies:[261.6255653006,275.00020270933,293.00227310437,310.77584116741,328.14198392915,349.6228209638,367.49599295996,391.5530240856,411.56972129721,438.51190905657,467.21778431035,491.10256480205,523.2511306012],description:"Modified Silbermann's temperament nr. 2, also used by Hinsz in Midwolda"},silver:{frequencies:[261.6255653006,277.18807786937,293.58315284916,311.09098010692,329.53543886896,349.23174545031,369.98176232374,391.84186131702,415.18563115404,439.77824302677,466.03998256716,493.70667148145,523.2511306012],description:"Equal beating chromatic scale, A.L.Leigh Silver JASA 29/4, 476-481, 1957"},silver_10:{frequencies:[261.6255653006,270.26884019355,294.27266239927,320.41022551991,330.99364634362,360.39280035711,392.40094712608,405.36462386145,441.36692569059,480.56953386201,523.2511306012],description:"Ten-tone MOS from 350.9 cents"},silver_11:{frequencies:[261.6255653006,277.73657748574,294.83971256733,315.81001885226,335.25773244276,355.90304440354,381.21644531515,404.69191411574,429.61301214396,460.16899244324,488.50639225338,523.2511306012],description:"Eleven-tone MOS from 1+sqr(2), 1525.864 cents"},silver_11a:{frequencies:[261.6255653006,272.21316796874,283.22923537857,314.22802528801,326.94437231289,340.17533123945,377.40674067136,392.67983758722,408.5710143206,453.28817432381,471.63208149661,523.2511306012],description:"Eleven-tone MOS from 317.17 cents"},silver_11b:{frequencies:[261.6255653006,281.48899567641,302.85877036442,316.87090334834,340.92873240472,366.81310701257,383.78194911277,412.91987382947,444.27004083312,464.82473992747,500.11279777071,523.2511306012],description:"Eleven-tone MOS from 331.67 cents"},silver_7:{frequencies:[261.6255653006,277.73649727228,315.81000061035,335.2576162513,381.21640127531,404.69175048432,460.16888612163,523.2511306012],description:"Seven-tone MOS from 1+sqr(2), 1525.864 cents"},silver_8:{frequencies:[261.6255653006,288.49477506296,306.46277751246,337.93681424842,358.98416079003,395.852196628,420.50662316693,492.57276348379,523.2511306012],description:"Eight-tone MOS from 273.85 cents"},silver_9:{frequencies:[261.6255653006,294.18258755347,307.6617709921,345.94759796409,361.79860795042,406.82129262791,425.46148093979,478.40645551359,500.32661205896,523.2511306012],description:"Nine-tone MOS from 280.61 cents"},silvermean:{frequencies:[261.6255653006,286.15296204753,327.03195662575,345.42750418595,392.4383479509,416.96574469783,474.19633710734,523.2511306012],description:"First 6 approximants to the Silver Mean, 1+ sqr(2) reduced by 2/1"},simonton:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,465.11211608996,494.18162334558,523.2511306012],description:"Simonton Integral Ratio Scale, JASA 25/6 (1953): A new integral ratio scale"},sims:{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,316.13089140489,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Ezra Sims' 18-tone mode"},sims2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Sims II"},sims_24:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.97716313189,283.42769574232,286.15296204753,294.32876096318,302.50455987882,305.22982618403,310.68035879446,316.13089140489,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"See his article, Reflections on This and That, 1991 p.93-106"},sin:{frequencies:[261.6255653006,275.08939827539,302.09917071192,334.63165645627,369.99442271164,407.01712569342,445.10399729103,483.9175316883,523.2511306012,562.97086325858,602.98541169118,643.23087116255,683.66056756853,724.23972686276,764.94197926416,805.74682982871,846.63811574624,887.6028851904,928.63083777952,969.71346974542,1010.84345850104,1052.01529432917],description:"1/sin(2pi/n), n=4..25"},sinemod12:{frequencies:[261.6255653006,270.6035983646,282.0485507085,292.16840832754,301.82804372114,314.42520179993,326.24260278214,336.76433478807,350.4641458176,364.21811789193,375.86233664064,390.61306119732,406.50371126161,419.61372202861,435.38454314112,453.55584308858,468.551249676,485.36279478778,505.89080731022,523.2511306012],description:"Sine modulated F=12, A=-.08203754"},sinemod8:{frequencies:[261.6255653006,272.43905323978,281.98404270447,290.99567087708,301.68076007415,314.40050256998,326.99158834066,337.97331861211,348.96407538813,362.38276875396,377.76595534172,392.29216556304,405.04934945717,418.6525822649,435.418746849,453.77727371169,470.43955130022,485.47382867757,502.48255971303,523.2511306012],description:"Sine modulated F=8, A=.11364155. Deviation minimal3/2, 4/3, 5/4, 6/5, 5/3, 8/5"},singapore:{frequencies:[261.6255653006,291.46787011619,321.35550581422,354.51258839996,385.70651737906,428.95813651779,462.1422075194,523.2511306012],description:"An observed xylophone tuning from Singapore"},sintemp6:{frequencies:[261.6255653006,277.18263097687,292.42974339757,312.08834713741,327.870830746,349.91196330865,369.15973155124,391.11111150212,416.11779639122,437.6550518996,467.60417912673,491.80624587316,523.2511306012],description:"Sine modulated fifths, A=1/6 Pyth, one cycle, f0=-90 degrees"},sintemp6a:{frequencies:[261.6255653006,276.17281343288,293.21211353711,310.64741311165,328.42667470471,349.22823143301,368.43838932195,391.77416758435,414.19655102258,438.82595961933,465.90062756558,491.80624587316,523.2511306012],description:"Sine modulated fifths, A=1/12 Pyth, one cycle, f0= D-A"},sintemp_19:{frequencies:[261.6255653006,272.86445838226,281.30973389888,292.50627485027,304.14845459111,313.56198179795,327.03195662575,338.65502209741,350.02113164026,365.30494475029,376.98581738134,391.19763056219,407.47965586966,419.94695489748,437.42555500456,453.91586039553,468.43012697388,488.88431353627,505.29249383438,523.2511306012],description:"Sine modulated thirds, A=7.366 cents, one cycle over fifths, f0=90 degrees"},sintemp_7:{frequencies:[261.6255653006,291.06608881088,319.67397341855,351.09362859375,390.60192440975,432.07134328681,473.03044489876,523.2511306012],description:"Sine modulated fifths, A=8.12 cents, one cycle, f0=90 degrees"},slen_pel:{frequencies:[261.6255653006,261.6255653006,283.17034563789,298.45295203849,338.50336851425,364.68988616898,346.01554587335,389.06292924114,398.38689497567,420.13030572059,455.51656649021,493.31307433255,523.2511306012],description:"Pelog white, Slendro black"},slen_pel16:{frequencies:[261.6255653006,261.6255653006,285.30470202322,285.30470202322,297.93622032612,311.12698372208,339.28638158975,386.37547528213,386.37547528213,403.48177901006,421.34544350737,440,523.2511306012],description:"16-tET Slendro and Pelog"},slen_pel23:{frequencies:[261.6255653006,261.6255653006,295.14355885465,295.14355885465,286.38154466424,343.14246862785,313.47984535337,398.94762483098,398.94762483098,387.10394860926,450.05828708186,423.73315704439,523.2511306012],description:"23-tET Slendro and Pelog"},slen_pel_jc:{frequencies:[261.6255653006,261.6255653006,299.00064605783,299.00064605783,279.06726965397,341.71502406609,348.83408706747,392.4383479509,392.4383479509,392.4383479509,448.50096908674,418.60090448096,523.2511306012],description:"Slendro/JC PELOG S1c,P1c#,S2d,eb,P2e,S3f,P3f#,S4g,ab,P4a,S5bb,P5b"},slen_pel_schmidt:{frequencies:[261.6255653006,261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,392.4383479509,457.84473927605,457.84473927605,490.54793493862,523.2511306012],description:"Dan Schmidt (Pelog white, Slendro black)"},slendro:{frequencies:[261.6255653006,298.45295203849,346.01554587335,398.38689497567,455.51656649021,523.2511306012],description:"Observed Javanese Slendro scale, Helmholtz/Ellis p. 518, nr.94"},slendro10:{frequencies:[261.6255653006,304.21577360535,342.24274530602,391.67780832635,463.92905474816,523.2511306012],description:"Low gender from Singaraja (banjar Lod Peken), Bali. 1/1=172 Hz. McPhee, 1966."},slendro11:{frequencies:[261.6255653006,299.11221417218,343.62760815601,387.36203100102,452.96366529656,523.2511306012],description:"Low gender from Sawan, Bali. 1/1=167.5 Hz. McPhee, 1966."},slendro2:{frequencies:[261.6255653006,299.13295468097,343.58614396263,395.91119354826,450.08870388136,523.2511306012],description:"Gamelan slendro from Ranchaiyuh, distr. Tanggerang, Batavia. 1/1=282.5 Hz"},slendro3:{frequencies:[261.6255653006,298.44694115772,339.14425131559,391.46936437571,453.48431318771,522.28214737536],description:"Gamelan kodok ngorek. 1/1=270 Hz"},slendro4:{frequencies:[261.6255653006,294.5074669504,344.54514337401,400.3014113889,467.49486258632,523.2511306012],description:"Low gender in saih lima from Kuta, Bali. 1/1=183 Hz. McPhee, 1966"},slendro5_1:{frequencies:[261.6255653006,299.00064605783,336.37572681506,392.4383479509,448.50096908674,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7; from Lou Harrison"},slendro5_2:{frequencies:[261.6255653006,305.22982618403,348.83408706747,392.4383479509,457.84473927605,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7, no. 2"},slendro5_4:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7, no. 4"},slendro6:{frequencies:[261.6255653006,295.05549864457,341.56671025356,398.25224940202,461.478427683,523.2511306012],description:"Low gender from Klandis, Bali. 1/1=180 Hz. McPhee, 1966"},slendro8:{frequencies:[261.6255653006,309.85821141747,350.78288084997,406.32350365121,467.71050779996,523.2511306012],description:"Low gender from Tabanan, Bali. 1/1=179 Hz. McPhee, 1966."},slendro9:{frequencies:[261.6255653006,299.00064605783,336.37572681506,388.70083987518,448.50096908674,523.2511306012],description:"Low gender from Singaraja (banjar Panataran), Bali. 1/1=175 Hz. McPhee, 1966."},slendro_7_1:{frequencies:[261.6255653006,299.00064605783,341.71502406609,392.4383479509,448.50096908674,523.2511306012],description:"Septimal Slendro 1, From HMSL Manual, also Lou Harrison, Jacques Dudon"},slendro_7_2:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,448.50096908674,523.2511306012],description:"Septimal Slendro 2, From Lou Harrison, Jacques Dudon's APTOS"},slendro_7_3:{frequencies:[261.6255653006,294.32876096318,336.37572681506,392.4383479509,448.50096908674,523.2511306012],description:'Septimal Slendro 3, Harrison, Dudon, called "MILLS" after Mills Gamelan'},slendro_7_4:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:'Septimal Slendro 4, from Lou Harrison, Jacques Dudon, called "NAT"'},slendro_7_5:{frequencies:[261.6255653006,305.22982618403,343.38355445704,400.61414686654,467.3831713443,523.2511306012],description:"Septimal Slendro 5, from Jacques Dudon"},slendro_7_6:{frequencies:[261.6255653006,299.00064605783,341.71502406609,390.53145607553,455.62003208812,523.2511306012],description:"Septimal Slendro 6, from Robert Walker"},slendro_a1:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,457.84473927605,523.2511306012],description:`Dudon's Slendro A1, "Seven-Limit Slendro Mutations", 1/1 8:2'94 hexany 1.3.7.21`},slendro_a2:{frequencies:[261.6255653006,299.00064605783,341.71502406609,398.6675280771,448.50096908674,523.2511306012],description:`Dudon's Slendro A2 from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_alv:{frequencies:[261.6255653006,299.00064605783,348.83408706747,406.97310157871,465.11211608996,523.2511306012],description:"Bill Alves, slendro for Gender Barung, 1/1 vol.9 no.4, 1997. 1/1=282.86"},slendro_ang:{frequencies:[261.6255653006,299.00064605783,340.82516392797,388.43396508487,445.83123341082,523.2511306012],description:"Gamelan Angklung Sangsit, North Bali. 1/1=294 Hz"},slendro_av:{frequencies:[261.6255653006,298.97057995496,344.02264297658,395.86362945285,454.20288100724,525.67465946865],description:"Average of 30 measured slendro gamelans, W. Surjodiningrat et al., 1993."},slendro_dudon:{frequencies:[261.6255653006,305.22982618403,348.83408706747,399.70572476481,457.84473927605,523.2511306012],description:'Dudon\'s Slendro from "Fleurs de lumie`re"'},slendro_gum:{frequencies:[261.6255653006,305.03156112838,348.43777142572,394.8168394034,470.92601754108,525.62941881859],description:"Gumbeng, bamboo idiochord from Banyumas. 1/1=440 Hz"},slendro_ky1:{frequencies:[261.6255653006,297.58776037991,344.33874539242,394.68595744625,449.52853279627,523.2511306012],description:"Kyahi Kanyut Me`sem slendro, Mangku Nagaran, Solo. 1/1=291 Hz"},slendro_ky2:{frequencies:[261.6255653006,302.42139140287,345.87786599062,395.54249276388,453.1886900261,523.2511306012],description:"Kyahi Pengawe' sari, Paku Alaman, Jogya. 1/1=295 Hz"},slendro_laras:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012,598.00129211566,697.66817413493],description:'Lou Harrison, gamelan "Si Betty"'},slendro_m:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:`Dudon's Slendro M from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_madu:{frequencies:[261.6255653006,300.52885648597,345.61604384578,394.49404533893,447.94973572445,522.94897617031],description:"Sultan's gamelan Madoe kentir, Jogjakarta, Jaap Kunst"},slendro_mat:{frequencies:[261.6255653006,261.6255653006,299.00064605783,299.00064605783,341.71502406609,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,455.62003208812,457.84473927605,523.2511306012],description:`Dudon's Slendro Matrix from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_pa:{frequencies:[261.6255653006,304.19649364034,353.69443592699,411.24653512154,478.16333951147,523.2511306012],description:'"Blown fifth" primitive slendro, von Hornbostel'},slendro_pas:{frequencies:[261.6255653006,300.35531433711,343.03050002254,393.12919962609,450.54468214486,523.2511306012],description:"Gamelan slendro of regent of Pasoeroean, Jaap Kunst"},slendro_pb:{frequencies:[261.6255653006,304.72408298441,342.83241505062,399.30842833955,449.24533531117,523.2511306012],description:'"Blown fifth" medium slendro, von Hornbostel'},slendro_pc:{frequencies:[261.6255653006,299.48910562989,342.83241505062,392.44854854484,449.24533531117,523.2511306012],description:'"Blown fifth" modern slendro, von Hornbostel'},slendro_pliat:{frequencies:[261.6255653006,299.73468146833,339.98478643783,393.08060743874,447.03290350508,523.2511306012,599.46936293666,679.96957287566,786.16121487749,894.06580701017],description:"Gender wayang from Pliatan, South Bali (Slendro), 1/1=305.5 Hz"},slendro_q13:{frequencies:[261.6255653006,307.00725675226,360.2608752926,400.8015646157,470.32478922042,523.2511306012],description:"13-tET quasi slendro, Blackwood"},slendro_s1:{frequencies:[261.6255653006,299.00064605783,348.83408706747,398.6675280771,457.84473927605,523.2511306012],description:`Dudon's Slendro S1 from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_s2:{frequencies:[261.6255653006,299.00064605783,341.71502406609,398.6675280771,455.62003208812,523.2511306012],description:"Dudon's Slendro S2"},slendro_udan:{frequencies:[261.6255653006,305.22982618403,351.32575911795,402.50086969323,465.11211608996,523.2511306012],description:"Slendro Udan Mas (approx)"},slendro_wolf:{frequencies:[261.6255653006,298.18866107946,339.86157848985,395.0032340925,450.20632964813,523.2511306012],description:"Daniel Wolf's slendro. Tuning List 30 5 1997"},slendrob1:{frequencies:[261.6255653006,307.44024341205,355.66611281954,409.9203247543,476.83364134848,523.2511306012],description:"Gamelan miring of Musadikrama, desa Katur, Bajanegara. 1/1=434 Hz"},slendrob2:{frequencies:[261.6255653006,307.55978097874,346.50416420081,398.42969909174,449.35693171058,523.2511306012],description:"Gamelan miring from Bajanegara. 1/1=262 Hz"},slendrob3:{frequencies:[261.6255653006,304.90191053936,342.27700149692,398.33972372326,447.51732140012,523.2511306012],description:"Gamelan miring from Ngumpak, Bajanegara. 1/1=266 Hz"},slendroc1:{frequencies:[261.6255653006,297.59222964268,344.42030317161,394.72197985873,449.50490455178,523.2511306012],description:"Kyahi Kanyut mesem slendro (Mangku Nagaran Solo). 1/1=291 Hz"},slendroc2:{frequencies:[261.6255653006,302.44445076078,346.01554587335,396.09235530397,453.15466093696,523.2511306012],description:"Kyahi Pengawe sari (Paku Alaman, Jogja). 1/1=295 Hz."},slendroc3:{frequencies:[261.6255653006,301.39807245198,344.42030317161,395.40657391157,451.84778706363,523.2511306012],description:"Gamelan slendro of R.M. Jayadipura, Jogja. 1/1=231 Hz"},slendroc4:{frequencies:[261.6255653006,299.14332201883,343.8239850859,396.09235530397,450.28451247858,523.2511306012],description:"Gamelan slendro, Rancha iyuh, Tanggerang, Batavia. 1/1=282.5 Hz"},slendroc5:{frequencies:[261.6255653006,299.83528893666,340.07120590121,393.12919962609,447.17417015401,523.2511306012],description:"Gender wayang from Pliatan, South Bali. 1/1=611 Hz"},slendroc6:{frequencies:[261.6255653006,296.73398952435,343.8239850859,396.7793260952,453.9405988926,527.19506190947,607.33963549452,696.44215167899,797.23415748628,918.4302691641,1071.58188326661],description:"from William Malm: Music Cultures of the Pacific, the Near East and Asia."},slendrod1:{frequencies:[261.6255653006,292.47977325983,340.6610152784,389.06292924114,444.85552088095,523.2511306012],description:"Gender wayang from Ubud (S. Bali). 1/1=347 Hz"},smith_eh:{frequencies:[261.6255653006,272.7117507892,292.30354792656,313.30283124826,326.5788018031,350.04044239751,364.87314355143,391.08587539224,407.65784362321,436.94425707006,468.33462614046,488.17995458879,523.2511306012],description:"Robert Smith's Equal Harmony temperament (1749)"},smith_mq:{frequencies:[261.6255653006,273.37438418823,292.50629623572,312.97714101186,327.03200500996,349.91910755601,365.63292511375,391.22148485648,408.79006910398,437.39894995248,468.01000388518,489.02693031834,523.2511306012],description:"Robert Smith approximation of quarter comma meantone fifth"},"scalamakesrc2\\smithgw-ball":{frequencies:[261.6255653006,267.07609791103,272.52663052146,274.70684356563,280.31310567921,286.15296204753,294.32876096318,300.46061014991,305.22982618403,306.59245933664,313.95067836072,320.49131749323,327.03195662575,333.84512238879,336.37572681506,343.38355445704,350.39138209902,357.69120255941,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,470.92601754108,476.92160341255,480.73697623985,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:"Ball 2 around tetrad lattice hole"},smithgw46:{frequencies:[261.6255653006,273.72380653152,313.47993226845,327.97605323154,364.46098649856,392.98113253789,436.69740466987,456.89141950378,523.2511306012],description:'Gene Ward Smith 46-tET subset "Star"'},smithgw46a:{frequencies:[261.6255653006,282.09853500802,313.47993226845,327.97605323154,375.61187043063,392.98113253789,436.69740466987,470.87026054824,523.2511306012],description:'46-tET version of "Star", alternative version'},smithgw72a:{frequencies:[261.6255653006,285.30470202322,299.37379946195,326.46944327063,342.56848033562,373.57357677338,391.99543598175,427.47405410759,435.78442404634,457.27406033445,498.66089874196,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72c:{frequencies:[261.6255653006,279.86396690685,305.19382000629,326.46944327063,349.22823143301,391.99543598175,419.32216217931,457.27406033445,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72d:{frequencies:[261.6255653006,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72e:{frequencies:[261.6255653006,279.86396690685,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72f:{frequencies:[261.6255653006,326.46944327063,349.22823143301,435.78442404634,466.16376151809,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72g:{frequencies:[261.6255653006,326.46944327063,349.22823143301,391.99543598175,419.32216217931,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72h:{frequencies:[261.6255653006,279.86396690685,314.13668154225,349.22823143301,391.99543598175,435.78442404634,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 09-01-2002"},smithgw72i:{frequencies:[261.6255653006,279.86396690685,293.66476791741,314.13668154225,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,435.78442404634,470.6732130613,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset version of Duodene, TL 02-06-2002"},smithgw72j:{frequencies:[261.6255653006,274.52698453615,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,435.78442404634,457.27406033445,489.15147723638,523.2511306012],description:"{225/224, 441/440} tempering of decad, 72-et version (2002)"},smithgw84:{frequencies:[261.6255653006,286.48426603331,306.03443598155,335.11270457212,357.98136125932,391.99543598175,418.74586628806,458.53356119912,489.82466832727,523.2511306012],description:'Gene Ward Smith 84-tET subset, 11-limit temperament "Orwell", 2002'},smithgw_18:{frequencies:[261.6255653006,272.52663052146,280.31310567921,286.15296204753,294.32876096318,306.59245933664,327.03195662575,343.38355445704,350.39138209902,367.91095120397,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,457.84473927605,467.18850946536,490.54793493862,523.2511306012],description:"Gene Ward Smith chord analogue to periodicity blocks, TL 12-07-2002"},smithgw_21:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,299.00064605783,305.22982618403,320.49131749323,327.03195662575,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,418.60090448096,427.14378008261,448.50096908674,457.84473927605,478.40103369253,488.36772189445,512.57253609913,523.2511306012],description:"Gene Ward Smith symmetrical 7-limit JI version of Blackjack, TL 10-5-2002"},smithgw_45:{frequencies:[261.6255653006,267.02002970726,269.13627541126,274.68560334708,276.86260193655,282.57123920205,288.39758300936,290.68325478745,296.67686217097,299.02814898089,305.19382000629,311.48661940174,313.95528147508,320.42873367481,322.96826575344,329.62755691287,336.42415617173,339.09045868095,346.08217376006,348.82502010853,356.01745236555,363.35818557229,366.23795155866,373.78942366597,376.75185941212,384.52011812375,392.44854854484,395.55886785613,403.71490654806,406.9145164708,415.30469757995,423.86787605389,427.22720671064,436.03621571368,439.49198556474,448.5538823653,457.80262665414,461.43090443914,470.94516310483,474.67759826036,484.46499093218,494.45418731234,498.37294408452,508.64890891624,512.68016480935,523.2511306012],description:"Gene Ward Smith large limma repeating 5-tone MOS"},smithgw_58:{frequencies:[261.6255653006,264.89588486686,267.57160087561,269.80136421624,274.70684356563,279.06726965397,282.55561052465,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.49231810831,305.22982618403,310.07474405997,313.95067836072,317.12189733406,319.76457981184,323.76163705949,327.03195662575,332.97799220076,336.37572681506,340.54567384169,343.38355445704,348.83408706747,353.19451315581,356.76213450082,359.73515228832,366.27579142084,370.01329949656,373.75080757229,380.54627680087,383.71749577421,387.59343007496,392.4383479509,398.6675280771,401.98975747775,406.97310157871,411.12588832951,418.60090448096,423.83341578697,428.11456140098,431.68218274599,436.04260883433,441.49314144476,448.50096908674,452.23847716247,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,484.4917875937,490.54793493862,498.33441009638,507.3950357345,511.62332769895,516.79124009995,523.2511306012],description:"Gene Ward Smith 58-tone epimorphic superset of Partch's 43-tone scale"},smithgw_9:{frequencies:[261.6255653006,279.06726965397,305.22982618403,327.03195662575,348.83408706747,392.4383479509,418.60090448096,448.50096908674,490.54793493862,523.2511306012],description:'Gene Ward Smith "Miracle-Magic square" tuning, genus chromaticum of ji_12a'},"smithgw_al-baked":{frequencies:[261.6255653006,277.59364499865,293.85651796007,311.0721560172,330.05816364769,349.39467974592,369.86402907174,392.4383479509,415.42941801053,439.76742419786,466.60823379256,493.94455998605,522.88238970142],description:"Baked alaska, with beat ratios of 2 and 3/2"},"smithgw_al-fried":{frequencies:[261.6255653006,277.00141553195,293.28091128458,310.96067952124,329.23597434237,348.58531822795,369.59898601143,391.32048195179,414.31855981944,439.29480556849,465.11235566178,492.44721175277,522.13326741512],description:"Fried alaska, with octave-fifth brats of 1 and 2"},smithgw_asbru:{frequencies:[261.6255653006,275.52281548997,293.66476791741,313.00128725319,329.62755691287,351.33206601369,367.77883484915,391.99543598175,415.30469757995,440,468.97204376297,490.92584627687,523.2511306012],description:"Modified bifrost (2003)"},smithgw_bifrost:{frequencies:[261.6255653006,275.07759559501,292.50627485027,311.03921839762,327.03195662575,349.91912034749,366.77012764335,391.22147055517,413.66634097248,437.39889945791,466.55882736321,489.02683710225,523.2511306012],description:"Six meantone fifths, four pure, two of sqrt(2048/2025 sqrt(5))"},smithgw_cauldron:{frequencies:[261.6255653006,275.03056468741,291.83931845209,312.58541512404,325.54230007562,350.31873582686,364.83969341757,390.77519652096,414.65779561271,435.90375768372,469.07960710644,486.243977751,523.2511306012],description:"Circulating temperament with two pure 9/7 thirds"},smithgw_ck:{frequencies:[195.99771799087,198.06437430898,200.15282320192,202.2632921446,203.72940721765,205.87758869102,208.04842120778,210.24214482145,211.76609376362,213.99901760782,216.25548480725,218.5357448459,220.11981156469,222.44081817627,224.78629944762,227.15651084977,228.80306427848,231.21563094,233.65363506284,235.34728316698,237.82885399313,240.33658984216,242.87076938222,244.63122826831,247.21069030843,249.81735238129,252.45149840587,254.28140507407,256.96262135434,259.67210915034,262.4101678886,264.31225911206,267.09924514556,269.91561641866,272.7616843206,274.73881033537,277.63573538138,280.56320805899,282.59688215652,285.57666497222,288.58786914203,291.63082264784,293.74472081062,296.84205135845,299.9720393359,303.13503255793,305.33231946532,308.55183127196,311.80529233825,315.09305703284,317.37702217863,320.72353853051,324.10533989702,327.52280172307,329.89686439088,333.37539375097,336.89059979959,339.33256534187,342.91058750208,346.52633537645,350.18021075922,352.71850659998,356.43767199462,360.19605541958,363.99406623991,366.6324923874,370.49837299068,374.40501441099,378.35285076765,381.09535716275,385.11373623244,389.17448849491,391.99543598174],description:"Catakleismic temperament, g=316.745, 11-limit"},smithgw_decab:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,439.53094970501,488.36772189445,523.2511306012],description:"(10/9) <==> (16/15) transform of decaa"},smithgw_decac:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,498.33441009638,523.2511306012],description:"inversion of decaa"},smithgw_decad:{frequencies:[261.6255653006,280.31310567921,311.45900631024,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,467.18850946536,498.33441009638,523.2511306012],description:"inversion of decab"},smithgw_diff13:{frequencies:[261.6255653006,274.70684356563,280.31310567921,299.00064605783,313.95067836072,320.35783506196,336.37572681506,406.97310157871,427.32175665765,436.04260883433,457.84473927605,488.36772189445,498.33441009638,523.2511306012],description:"mod 13 perfect difference set, 7-limit"},smithgw_dwarf6_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,373.75080757229,392.4383479509,448.50096908674,523.2511306012],description:"Dwarf(<6 10 14 17|)"},smithgw_exotic1:{frequencies:[261.6255653006,274.95996987324,293.39100498914,313.05750197389,327.96500300935,349.94905375768,367.78508905896,392.4383479509,411.12588832951,438.68435539504,468.09011223803,491.94750426812,523.2511306012],description:"Exotic temperament featuring four pure 14/11 thirds and two pure fifths"},smithgw_glumma:{frequencies:[261.6255653006,269.10058145205,299.00064605783,313.95067836072,327.03195662575,358.80077526939,373.75080757229,392.4383479509,436.04260883433,448.50096908674,457.84473927605,512.57253609913,523.2511306012],description:"Gene Smith's Glumma scale, 7-limit, 2002"},smithgw_gm:{frequencies:[261.6255653006,264.89588486686,269.80136421624,274.70684356563,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,498.33441009638,507.3950357345,516.79124009995,523.2511306012],description:'Gene Ward Smith "Genesis Minus" periodicity block'},smithgw_graileq:{frequencies:[261.6255653006,274.83794140225,293.02845982215,312.42294214419,328.20064112269,350.39711148969,365.67350481015,391.53226450123,414.40482204179,438.61355268439,469.63029662389,490.10494633744,523.2511306012],description:"56% RMS grail + 44% JI grail"},smithgw_grailrms:{frequencies:[261.6255653006,274.64037495938,293.11160698959,312.82513967025,328.38692028068,350.6222941497,365.93760986436,391.94882001935,414.52240989365,438.39608269016,469.55771333591,490.068176414,523.2511306012],description:"RMS optimized Holy Grail"},smithgw_hahn12:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Hahn-reduced 12 note scale, Fokker block 225/224, 126/125, 64/63"},smithgw_hahn15:{frequencies:[261.6255653006,279.06726965397,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Hahn-reduced 15 note scale"},smithgw_hahn16:{frequencies:[261.6255653006,280.31310567921,294.32876096318,299.00064605783,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,408.78994578219,418.60090448096,436.04260883433,457.84473927605,488.36772189445,490.54793493862,523.2511306012],description:"Hahn-reduced 16 note scale"},smithgw_hahn19:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Hahn-reduced 19 note scale"},smithgw_hahn22:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Hahn-reduced 22 note scale"},smithgw_indianred:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"32805/32768 Hahn-reduced"},smithgw_klv:{frequencies:[261.6255653006,271.78681896552,282.34272472006,293.30861211826,314.10491445143,326.30440921209,338.97771913949,352.14324873572,377.11107157735,391.75765725694,406.97310157871,422.77949745352,452.75560414132,470.34014155688,488.60764618722,523.2511306012],description:"Variant of kleismic with 9/7 thirds, g=316.492"},smithgw_meandin:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,336.37572681506,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,470.92601754108,504.56359022259,523.2511306012],description:"Gene Smith, inverted detempered 7-limit meantone"},smithgw_meanred:{frequencies:[261.6255653006,281.29980781121,291.99281841585,313.95067836072,325.57848126297,350.39138209902,363.36884069528,390.69417751556,420.46965851882,436.04260883433,468.83301301868,486.65469735975,523.2511306012],description:"171-et Hahn reduced rational Meantone[12]"},smithgw_meantune:{frequencies:[261.6255653006,273.55401844854,279.77233440758,292.56174910339,312.85829351777,327.16018629281,334.59705725462,349.85254391288,365.77071543428,374.29488261541,391.03456781852,418.40555295943,437.51985793188,468.14464283802,489.08159472971,500.47948461038,523.2511306012],description:"Meantune scale/temperament, Gene Ward Smith, 2003"},smithgw_mir22:{frequencies:[261.6255653006,267.57160087561,274.70684356563,280.31310567921,285.40970760065,299.00064605783,305.22982618403,319.76457981184,327.03195662575,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,418.60090448096,428.11456140098,448.50096908674,457.84473927605,479.64686971777,490.54793493862,512.78610798918,523.2511306012],description:"11-limit Miracle[22]"},smithgw_mmt:{frequencies:[261.6255653006,273.37431312998,292.50627485027,307.38829724655,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.12588832951,437.39890198442,459.65271605653,489.02683710225,523.2511306012],description:"Modified meantone with 5/4, 14/11 and 44/35 major thirds, TL 17-03-2003"},smithgw_modmos12a:{frequencies:[261.6255653006,265.27772209197,292.31087910123,304.72408298441,326.59518553839,340.46429857933,364.90060015836,391.09077971329,407.69874723177,425.01198472693,455.51656649021,488.21056770985,523.2511306012],description:"A 12-note modmos in 50-et meantone"},smithgw_octoid:{frequencies:[261.6255653006,272.34559486824,274.88944875317,277.45706359738,280.04865972334,282.66446436432,285.30470202322,296.99497716113,299.76906949343,302.56907333554,305.39522895084,308.24778413898,311.12698372208,323.87531915696,326.90048829645,329.95391413777,333.03585868997,336.14659218049,339.28638158975,353.18853996009,356.48751029933,359.81729479041,363.17817915623,366.5704580819,369.99442271164,385.15483391523,388.75238658,392.38354231563,396.04861270515,399.74791910495,403.48177901006,420.01432465796,423.93748365756,427.89728706578,431.89407466632,435.9281969008,440,458.02886886968,462.30710409523,466.62530033172,470.98382811593,475.38306960714,479.82340237272,499.48402328631,504.14947188193,508.85849826899,513.6115065207,518.40891338474,523.2511306012],description:"Octoid temperament, g=16.096, oct=1/8, 11-limit"},smithgw_orw18r:{frequencies:[261.6255653006,269.10058145205,280.31310567921,286.15296204753,299.00064605783,305.22982618403,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,448.50096908674,457.84473927605,474.80195184183,490.54793493862,523.2511306012],description:'Rational version of two cycles of 9-tone "Orwell"'},smithgw_pel1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 1"},smithgw_pel2:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 2"},smithgw_pel3:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 3"},smithgw_pk:{frequencies:[261.6255653006,271.01659746112,280.74472171431,290.822034715,313.8821415949,325.1489200649,336.82012073975,348.91025643633,376.57634157395,390.09352641046,404.09590743895,418.60090448096,451.79296003201,468.01003810189,484.80922990434,523.2511306012],description:"Parakleismic temperament, g=315.263, 5-limit"},smithgw_pris:{frequencies:[261.6255653006,279.06726965397,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"optimized (15/14)^3 (16/15)^4 (21/20)^3 (25/24)^2 scale"},smithgw_prisa:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,439.53094970501,457.84473927605,488.36772189445,523.2511306012],description:"optimized (15/14)^3 (16/15)^4 (21/20)^3 (25/24)^2 scale"},smithgw_pum13marv:{frequencies:[261.6255653006,293.67396865289,305.56991629828,343.00138030143,326.66798000724,366.68389807519,349.22276077151,392.00157668785,407.88051296056,457.84473927605,436.04260883433,489.45661357347,549.41368713126,523.2511306012],description:"pum13 marvel tempered and in epimorphic order"},smithgw_qm3a:{frequencies:[261.6255653006,279.86396690685,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,457.27406033445,489.15147723638,523.2511306012],description:"Qm(3) 10-note quasi-miracle scale, mode A, 72-tET, TL 04-01-2002"},smithgw_qm3b:{frequencies:[261.6255653006,279.86396690685,299.37379946195,326.46944327063,349.22823143301,373.57357677338,391.99543598175,419.32216217931,448.5538823653,489.15147723638,523.2511306012],description:"Qm(3) 10-note quasi-miracle scale, mode B"},smithgw_ragasyn1:{frequencies:[261.6255653006,269.16210421872,290.69507255622,313.95067836072,322.99452506247,348.83408706747,363.36884069528,392.4383479509,403.74315632809,436.04260883433,470.92601754108,484.4917875937,523.2511306012],description:"Ragasyn 6561/6250 81/80 scale"},smithgw_rainbow:{frequencies:[261.6255653006,273.37431312998,292.50627485027,310.51268695591,327.03195662575,349.91912034749,365.63284274659,391.22147055517,412.03444522126,437.39889945791,468.01003810189,489.02683710225,523.2511306012],description:"Circulating 1/4-comma meantone, Gene Ward SMith"},smithgw_ratwell:{frequencies:[261.6255653006,275.62199471997,293.02063313667,310.07474405997,326.72451751701,348.83408706747,367.49599295996,392.4383479509,413.43299207996,437.57747881743,465.11211608996,489.99465727995,523.2511306012],description:"7-limit rational well-temperament"},smithgw_ratwolf:{frequencies:[261.6255653006,272.55669785235,292.25605339318,313.37920299881,326.47268679644,350.06888377949,364.69531895389,391.05410158062,407.39296674476,436.83777202739,468.410735204,487.98168129749,523.2511306012],description:"Eleven fifths of (418/5)^(1/11) and one 20/13 wolf, G.W. Smith 2003"},smithgw_rectoo:{frequencies:[261.6255653006,290.69507255622,299.00064605783,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Hahn-reduced circle of fifths via <12 19 27 34| kernel"},smithgw_sc19:{frequencies:[261.6255653006,269.16210421872,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,508.60009894437,523.2511306012],description:"Fokker block from commas <81/80, 78732/78125>, Gene Ward Smith 2002"},smithgw_sch13:{frequencies:[261.6255653006,269.71217215021,278.04872701265,282.14859498561,290.86954990528,295.15846273282,304.2815407612,313.68660297237,318.31195648825,328.15068782436,332.98931632582,343.28171142549,353.89223299652,359.11042631209,370.21019888355,375.66900084958,387.28058594818,392.99109319609,405.13808832031,417.66053353744,423.81899742763,436.9188548657,443.36128543927,457.06517711961,471.19264083172,478.14044600934,492.91932687455,500.18749236202,515.64783010531,523.2511306012],description:"13-limit schismic temperament, g=704.3917, TL 31-10-2002"},smithgw_sch13a:{frequencies:[261.6255653006,266.49502311502,271.45511438723,280.18048669638,285.39529457963,294.56874561631,300.051354061,305.6360048159,315.46005229837,321.33149462105,331.66004360268,337.8330052901,344.12086009392,355.18192699392,361.79268541866,373.4217751344,380.37201938485,392.59830625439,399.90547017058,407.34863733398,420.4420328577,428.26743302475,442.03321824291,450.26048038501,458.64087358289,473.38295124548,482.19370453904,497.69284002863,506.95605959354,523.2511306012],description:"13-limit schismic temperament, g=702.660507, TL 31-10-2002"},smithgw_scj22a:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,301.39265122629,313.95067836072,327.03195662575,334.88072358477,348.83408706747,361.67118147155,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"225/224 ^ 15625/15552 = [6,5,22,37,-18,-6] catakleismic"},smithgw_scj22b:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,372.08969287196,387.59343007496,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"5120/5103 ^ 225/224 = [1,-8,-14,-10,25,-15] schismic candidate"},smithgw_scj22c:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"225/224 ^ 65625/65536 = [7,-3,827,7,-21] orwell candidate"},smithgw_secab:{frequencies:[261.6255653006,274.07613169002,291.39807132323,313.10572011471,348.73657263424,365.33268718488,392.54808236386,417.35759110361,437.21932894603,486.97408086388,523.2511306012],description:"{126/125, 176/175} tempering of decab, 328-et version"},smithgw_secac:{frequencies:[261.6255653006,281.11531641881,298.8821409504,313.10572011471,348.73657263424,374.71564313773,392.54808236386,417.35759110361,448.44857247831,499.48119153644,523.2511306012],description:"{126/125, 176/175} tempering of decac, 328-et version"},smithgw_secad:{frequencies:[261.6255653006,281.11531641881,313.10572011471,328.00618883132,348.73657263424,374.71564313773,392.54808236386,437.21932894603,469.78990700991,499.48119153644,523.2511306012],description:"{126/125, 176/175} tempering of decad, 328-et version"},smithgw_smalldi11:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,322.92069774245,366.27579142084,373.75080757229,423.93031414449,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"Small diesic 11-note block, <10/9, 126/125, 1728/1715> commas"},smithgw_smalldi19a:{frequencies:[261.6255653006,269.10058145205,272.52663052146,299.00064605783,305.22982618403,313.95067836072,317.94773560837,327.03195662575,358.80077526939,366.27579142084,373.75080757229,381.53728273004,418.60090448096,430.56093032327,436.04260883433,448.50096908674,457.84473927605,502.32108537715,508.71637697339,523.2511306012],description:"Small diesic 19-note block, <16/15, 126/125, 1728/1715> commas"},smithgw_smalldi19b:{frequencies:[261.6255653006,266.96486255163,274.70684356563,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,358.80077526939,366.27579142084,373.75080757229,381.53728273004,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,498.33441009638,512.78610798918,523.2511306012],description:"Small diesic 19-note block, <16/15, 126/125, 2401/2400> commas"},smithgw_smalldi19c:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,286.15296204753,313.95067836072,320.49131749323,327.03195662575,336.37572681506,343.38355445704,373.75080757229,381.53728273004,392.4383479509,400.61414686654,436.04260883433,448.50096908674,457.84473927605,470.92601754108,508.71637697339,523.2511306012],description:"Small diesic 19-note scale containing glumma"},smithgw_smalldiglum19:{frequencies:[261.6255653006,267.74077300753,273.99891691894,280.40333801024,286.95745534843,312.9293240034,320.24370022528,327.729041887,335.38934511627,343.22869944589,374.29355081838,383.0422478503,391.99543598175,401.15789496562,437.46578647972,447.69106452518,458.15534711532,468.86422071654,511.30005826145,523.2511306012],description:'Small diesic "glumma" variant of 19-note MOS, 31/120 version'},smithgw_smalldimos11:{frequencies:[261.6255653006,267.74077300753,305.78200836532,312.9293240034,320.24370022528,365.74467430283,374.29355081838,427.47405410759,437.46578647972,447.69106452518,511.30005826145,523.2511306012],description:"Small diesic 11-note MOS, 31/120 version"},smithgw_smalldimos19:{frequencies:[261.6255653006,267.74077300753,273.99891691894,298.79793764201,305.78200836532,312.9293240034,320.24370022528,327.729041887,357.39105439675,365.74467430283,374.29355081838,383.0422478503,417.71053321823,427.47405410759,437.46578647972,447.69106452518,458.15534711532,499.62194879119,511.30005826145,523.2511306012],description:"Small diesic 19-note MOS, 31/120 version"},smithgw_star:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:'Gene Ward Smith "Star" scale, untempered version'},smithgw_star2:{frequencies:[261.6255653006,282.55561052465,313.95067836072,327.03195662575,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:'Gene Ward Smith "Star" scale, alternative untempered version'},starra:{frequencies:[261.6255653006,274.07613169002,294.49338559574,313.10572011471,328.00618883132,343.61575980934,374.71564313773,392.54808236386,411.22915413197,437.21932894603,458.02627217006,492.14685988839,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_starrb:{frequencies:[261.6255653006,274.07613169002,287.1192112957,305.26548915336,328.00618883132,343.61575980934,365.33268718488,392.54808236386,411.22915413197,437.21932894603,458.02627217006,479.82340237272,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_starrc:{frequencies:[261.6255653006,274.07613169002,287.1192112957,313.10572011471,328.00618883132,343.61575980934,365.33268718488,392.54808236386,411.22915413197,437.21932894603,458.02627217006,492.14685988839,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_tetra:{frequencies:[261.6255653006,274.84135386022,293.90210492181,314.2847539672,326.44746606412,342.93767672779,366.7210324511,392.15380743582,419.35039192746,435.57910814854,457.58200907672,489.31615916483,523.2511306012],description:"{225/224, 385/384} tempering of two-tetrachord 12-note scale"},smithgw_tr31:{frequencies:[261.6255653006,267.54129532085,292.57243455474,299.18791603519,305.95298478736,334.57791819083,342.14320575162,349.87955533643,391.26571058456,400.11279059885,409.15991580663,447.44088028055,457.55816161244,467.90420651233,511.68128147674,523.2511306012],description:"6/31 generator supermajor seconds tripentatonic scale"},smithgw_tr7_13:{frequencies:[261.6255653006,183.87449048025,346.05860897284,243.21533855007,457.74028507734,321.70694650116,605.46440189891,425.52973856044,299.06887661109,562.85871464284,395.58580335293,744.50714985079,523.2511306012],description:"81/80 ==> 28561/28672"},smithgw_tr7_13b:{frequencies:[261.6255653006,372.25357492539,395.58580335293,281.42935732142,299.06887661109,425.52973856044,302.73220094945,321.70694650116,457.74028507734,486.43067710015,346.05860897284,367.7489809605,523.2511306012],description:"reverse reduced 81/80 ==> 28561/28672"},smithgw_tr7_13r:{frequencies:[261.6255653006,367.7489809605,346.05860897284,486.43067710015,457.74028507734,321.70694650116,302.73220094945,425.52973856044,299.06887661109,281.42935732142,395.58580335293,372.25357492539,523.2511306012],description:"reduced 81/80 ==> 28561/28672"},smithgw_tra:{frequencies:[261.6255653006,128.35937755236,399.56478905052,196.03545836752,610.23096296248,299.39301413087,931.96857771927,457.24471305759,224.33452437931,698.32199734535,342.61245382262,1066.50464849657,523.2511306012],description:"81/80 ==> 1029/512"},smithgw_tre:{frequencies:[261.6255653006,256.71872396454,399.56476227799,392.07084290614,305.11544059319,299.39293769309,465.98419519089,457.24482979639,448.66910888407,349.16106442144,342.6124767791,533.2523889322,523.2511306012],description:"81/80 ==> 1029/512 ==> reduction"},smithgw_treb:{frequencies:[261.6255653006,266.6261944661,342.6124767791,349.16106442144,448.66910888407,457.24482979639,465.98419519089,299.39293769309,305.11544059319,392.07084290614,399.56476227799,513.43744792908,523.2511306012],description:"reversed 81/80 ==> 1029/512 ==> reduction"},smithgw_trx:{frequencies:[261.6255653006,490.17835855476,354.35176059633,331.954494127,479.94227969828,449.60690021487,325.02250210538,304.47902995326,285.23403465053,412.39349145653,386.32762147798,279.2776760715,523.2511306012],description:"reduced 3/2->7/6 5/4->11/6 scale"},smithgw_trxb:{frequencies:[261.6255653006,279.2776760715,386.32762147798,412.39349145653,285.23403465053,304.47902995326,325.02250210538,449.60690021487,479.94227969828,331.954494127,354.35176059633,490.17835855476,523.2511306012],description:"reversed reduced 3/2->7/6 5/4->11/6 scale"},smithgw_wa:{frequencies:[261.6255653006,273.6474362764,299.37379946195,313.13022722746,327.51877211613,349.22823143301,374.77430422696,391.99543598175,417.97870684853,437.18511000944,469.1652354389,500.26367760099,523.2511306012],description:"Wreckmeister A temperament, TL 2-6-2002"},smithgw_wa120:{frequencies:[261.6255653006,273.99891691894,298.79793764201,312.9293240034,327.729041887,349.22823143301,374.29355081838,391.99543598175,417.71053321823,437.46578647972,468.86422071654,499.62194879119,523.2511306012],description:"120-tET version of Wreckmeister A temperament"},smithgw_wb:{frequencies:[261.6255653006,280.76349612739,291.78605424516,313.13022722746,327.51877211613,349.22823143301,365.2755039332,391.99543598175,417.97870684853,437.18511000944,469.1652354389,487.58430040208,523.2511306012],description:"Wreckmeister B temperament, TL 2-6-2002"},smithgw_well1:{frequencies:[261.6255653006,275.92984511873,292.92635710626,310.42107575858,327.5229776175,349.2237102284,367.90646015831,391.734151992,413.8947676781,437.99072463899,465.63161363786,490.54194687775,523.2511306012],description:"Well-temperament, Gene Ward Smith (2005)"},smithgw_whelp1:{frequencies:[261.6255653006,275.93321340298,292.50627485027,310.07474405997,327.03195662575,348.05120395042,368.50381975103,390.45372436301,413.66634097248,438.25895612273,464.36382062247,491.65133958137,523.2511306012],description:"well-temperament with one pure third, Gene Ward Smith, 2003"},smithgw_whelp2:{frequencies:[261.6255653006,275.85000668176,292.43269265164,309.98104674077,327.03195662575,347.97308568611,368.21146504308,391.7894791814,413.34036955908,438.14417346548,464.48314871299,489.73685071229,523.2511306012],description:"well-temperament with two pure thirds"},smithgw_whelp3:{frequencies:[261.6255653006,275.96871294479,292.50627485027,310.03485655885,327.03195662575,349.46135677641,368.11883862276,391.73393619399,413.66634097248,436.82669499534,464.84945270756,489.66742197778,523.2511306012],description:"well-temperament with three pure thirds"},smithgw_wiz28:{frequencies:[261.6255653006,269.80136421624,277.4816601673,280.31310567921,287.78812183066,297.30177875068,305.22982618403,308.34441624714,317.12189733406,327.03195662575,336.37572681506,345.34574619679,348.83408706747,359.73515228832,370.01329949656,380.54627680087,392.4383479509,396.40237166758,406.97310157871,418.60090448096,431.68218274599,436.04260883433,448.50096908674,460.46099492906,475.68284600109,490.54793493862,493.35106599542,508.71637697339,523.2511306012],description:"11-limit Wizard[28]"},smithgw_wiz34:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.4816601673,280.31310567921,287.78812183066,297.30177875068,305.22982618403,308.34441624714,313.95067836072,317.12189733406,327.03195662575,336.37572681506,345.34574619679,348.83408706747,356.76213450082,359.73515228832,370.01329949656,380.54627680087,383.71749577421,392.4383479509,396.40237166758,406.97310157871,418.60090448096,431.68218274599,436.04260883433,443.97065626768,448.50096908674,460.46099492906,475.68284600109,490.54793493862,493.35106599542,504.56359022259,508.71637697339,523.2511306012],description:"11-limit Wizard[34]"},smithgw_wiz38:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.4816601673,280.31310567921,285.40970760065,287.78812183066,297.30177875068,305.22982618403,308.34441624714,313.95067836072,317.12189733406,327.03195662575,336.37572681506,339.14425131559,345.34574619679,348.83408706747,356.76213450082,359.73515228832,370.01329949656,380.54627680087,383.71749577421,392.4383479509,396.40237166758,403.65087217807,406.97310157871,418.60090448096,431.68218274599,436.04260883433,443.97065626768,448.50096908674,460.46099492906,475.68284600109,479.64686971777,490.54793493862,493.35106599542,504.56359022259,508.71637697339,523.2511306012],description:"11-limit Wizard[38]"},smithgw_wreckpop:{frequencies:[261.6255653006,272.73569398658,292.31087910123,313.29104303136,326.59518553839,350.03605285217,364.90060015836,391.09077971329,419.16071913933,436.9606979923,455.51656649021,501.93603498211,523.2511306012],description:'"Wreckmeister" 13-limit meanpop (50-et) tempered thirds'},smithj12:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,331.11985608357,344.91651675372,363.36884069528,392.4383479509,408.78994578219,441.49314144476,459.88868900496,496.67978412536,523.2511306012],description:"J. Smith, 5-limit JI scale, MMM 21-3-2006"},smithj17:{frequencies:[261.6255653006,272.57820116223,283.17034563789,295.02492750576,308.97787266236,319.3201344739,332.68808325276,348.42227432308,363.00854876594,377.11473546037,392.90218486657,411.48414905414,425.25755219187,443.06044202496,464.01459698705,479.54632553791,499.62194879119,523.2511306012],description:"J. Smith 17-tone well temperament, MMM 12-2006"},smithrk_19:{frequencies:[261.6255653006,274.68253637698,286.11368885031,294.3308008075,305.19387818096,313.95878694534,327.0246436172,343.34529416761,348.83287827711,366.24211271841,381.48359653409,392.43970784476,406.92376081862,418.61050714007,436.03134720211,457.79213919624,470.93981233279,488.32112480698,508.64303280756,523.2511306012],description:"19 out of 612-tET by Roger K. Smith, 1978"},smithrk_mult:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:'Roger K. Smith, "Multitonic" scale, just version'},solar:{frequencies:[261.6255653006,394.58976180129,774.00176545642,2207.36533954793,5481.83445910426,34573.03685904828,65024.37680021134,105705.6559450381],description:"Solar system scale: 0=Pluto, 8=Mercury. 1/1=248.54 years period"},solemn:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Solemn 6"},songlines:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Songlines.DEM, Bill Thibault and Scott Gresham-Lancaster. 1992 ICMC (=rectsp6)"},sorge:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Sorge's Monochord (1756)"},sorge1:{frequencies:[261.6255653006,276.86979852503,293.00227310437,311.47852302926,328.88393162803,349.6228209638,369.57684148724,391.5530240856,415.30469757995,439.00737933323,466.69047534984,493.32589719545,523.2511306012],description:"Georg Andreas Sorge, 1744 (A)"},sorge2:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.88393162803,348.83408706747,368.74309237173,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Georg Andreas Sorge, 1744 (B)"},sorge3:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,348.83408706747,369.15973155124,391.5530240856,414.83597850347,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Georg Andreas Sorge, well temperament, (1756, 1758)"},sparschuh:{frequencies:[261.6255653006,276.27659695743,293.02063313667,310.81117157711,328.60171001755,349.008504111,368.36879594324,391.3918456897,414.41489543615,439.53094970501,465.69350623507,491.85606276513,523.2511306012],description:"Andreas Sparschuh WTC temperament, 1/1=C=250, modified Collatz sequence"},sparschuh2:{frequencies:[261.6255653006,276.27659695743,293.02063313667,310.81117157711,328.60171001755,349.008504111,368.36879594324,391.3918456897,414.41489543615,438.48444744381,465.69350623507,491.85606276513,523.2511306012],description:"Modified Sparschuh temperament with A=419Hz by Tom Dent"},spec1_14:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,523.2511306012],description:"Spectrum sequence of 8/7: 1 to 27 reduced by 2/1"},spec1_17:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,490.54793493862,523.2511306012],description:"Spectrum sequence of 7/6: 1 to 27 reduced by 2/1"},spec1_25:{frequencies:[261.6255653006,277.97716313189,294.32876096318,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 5/4: 1 to 25 reduced by 2/1"},spec1_33:{frequencies:[261.6255653006,277.97716313189,294.32876096318,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,474.19633710734,490.54793493862,523.2511306012],description:"Spectrum sequence of 4/3: 1 to 29 reduced by 2/1"},spec1_4:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 7/5: 1 to 25 reduced by 2/1"},spec1_5:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 1.5: 1 to 27 reduced by 2/1"},specr2:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,474.19633710734,490.54793493862,523.2511306012],description:"Spectrum sequence of sqrt(2): 1 to 29 reduced by 2/1"},specr3:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Spectrum sequence of sqrt(3): 1 to 31 reduced by 2/1"},spon_chal1:{frequencies:[261.6255653006,280.31310567921,285.40970760065,286.15296204753,348.83408706747,392.4383479509,420.46965851882,428.11456140098,429.2294430713,523.2511306012],description:"JC Spondeion, from discussions with George Kahrimanis about tritone of spondeion"},spon_chal2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,285.40970760065,348.83408706747,392.4383479509,413.43299207996,418.60090448096,428.11456140098,523.2511306012],description:"JC Spondeion II, 10 May 1997. Various tunings for the parhypatai and hence trito"},spon_mont:{frequencies:[261.6255653006,271.31540105247,348.83408706747,392.4383479509,428.11456140098,523.2511306012],description:"Montford's Spondeion, a mixed septimal and undecimal pentatonic, 1923"},spon_terp:{frequencies:[261.6255653006,285.40970760065,348.83408706747,392.4383479509,428.11456140098,523.2511306012],description:"Subharm. 6-tone series, guess at Greek poet Terpander's, 6th c. BC & Spondeion, Winnington-Ingram (1928)"},stade:{frequencies:[261.6255653006,274.22463192287,292.50627485027,309.28772967674,327.03195662575,348.83408706747,365.63284274659,391.22147055517,411.33694767869,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Organs in St. Cosmae, Stade; Magnuskerk, Anloo; H.K. Sluipwijk, modif. 1/4 mean"},stanhope:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,326.6631048533,348.83408706747,367.49599295996,392.4383479509,413.43299207996,437.52264545758,465.11211608996,489.99465727995,523.2511306012],description:"Well temperament of Charles, third earl of Stanhope (1806)"},stanhope2:{frequencies:[261.6255653006,275.85537639807,293.11251278827,310.16223770573,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.66634097248,437.85193595173,465.11211608996,490.54793493862,523.2511306012],description:"Stanhope temperament (real version?) with 1/3 synt. comma temp."},stanhope_f:{frequencies:[261.6255653006,275.62199471997,292.46014274879,310.07474405997,326.6631048533,348.83408706747,367.49599295996,392.4383479509,413.43299207996,436.79202494356,465.11211608996,489.99465727995,523.2511306012],description:"Stanhope temperament, equal beating version by Farey (1807)"},stanhope_s:{frequencies:[261.6255653006,275.77758308753,293.11247215425,310.2497806633,327.03195662575,348.83408706747,367.7034443005,392.4383479509,413.66637442451,437.85181455341,465.11211608996,490.54793493862,523.2511306012],description:"Stanhope temperament, alt. version with 1/3 syntonic comma"},starling:{frequencies:[261.6255653006,278.9816419584,293.66476791741,313.14630527334,327.50195613664,349.22823143301,367.60851651046,391.99543598175,418.00016846495,437.16266336983,466.16376151809,490.69849857048,523.2511306012],description:"Starling temperament, Herman Miller (1999)"},stearns:{frequencies:[261.6255653006,299.00064605783,336.37572681506,366.27579142084,398.6675280771,448.50096908674,504.56359022259,523.2511306012],description:"Dan Stearns, guitar scale"},stearns2:{frequencies:[261.6255653006,280.31310567921,287.78812183066,299.00064605783,313.95067836072,317.68818643644,336.37572681506,340.11323489078,355.06326719367,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,429.81342870813,444.76346101102,448.50096908674,467.18850946536,470.92601754108,485.87604984397,497.08857407114,504.56359022259,523.2511306012],description:'Dan Stearns, scale for "At A Day Job" based on harmonics 10-20 and 14-28'},stearns3:{frequencies:[261.6255653006,304.11599009871,327.88291945286,364.30920726489,423.47641042702,470.52269644143,546.93995798074,607.70247408742,706.39900722312,784.8766959018],description:"Dan Stearns, trivalent version of Bohlen's Lambda scale"},stearns4:{frequencies:[261.6255653006,296.65550714972,336.37572681506,347.46339693852,393.986457405,446.73865184892,461.46412096988,523.2511306012],description:"Dan Stearns, 1/4-septimal comma temperament, tuning-math 2-12-2001"},steldek1:{frequencies:[261.6255653006,274.70684356563,275.93321340298,280.31310567921,286.15296204753,294.32876096318,305.22982618403,309.04519901133,315.35224388912,321.92208230347,327.03195662575,331.11985608357,343.38355445704,353.19451315581,367.91095120397,381.53728273004,386.30649876417,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,441.49314144476,457.84473927605,490.54793493862,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Stellated two out of 1 3 5 7 9 dekany"},steldek1s:{frequencies:[261.6255653006,274.70684356563,275.93321340298,280.31310567921,286.15296204753,294.32876096318,305.22982618403,309.04519901133,315.35224388912,321.92208230347,327.03195662575,331.11985608357,339.14425131559,343.38355445704,353.19451315581,360.4025644447,367.91095120397,381.53728273004,386.30649876417,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,441.49314144476,457.84473927605,482.88312345521,490.54793493862,494.47231841813,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Superstellated two out of 1 3 5 7 9 dekany"},steldek2:{frequencies:[261.6255653006,262.3068818769,269.80136421624,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.7792935736,308.34441624714,312.16686768822,314.76825825228,327.03195662575,337.2517052703,343.38355445704,356.76213450082,359.73515228832,377.72190990274,381.53728273004,385.43052030892,392.4383479509,393.46032281536,400.61414686654,408.78994578219,416.22249025095,419.69101100305,429.2294430713,431.68218274599,449.66894036041,457.84473927605,472.15238737843,490.54793493862,494.63583439645,499.46698830115,503.62921320365,513.90736041189,523.2511306012],description:"Stellated two out of 1 3 5 7 11 dekany"},steldek2s:{frequencies:[261.6255653006,262.3068818769,269.80136421624,274.70684356563,280.31310567921,286.15296204753,294.32876096318,295.09524211152,299.7792935736,302.17752792219,308.34441624714,312.16686768822,314.76825825228,327.03195662575,337.2517052703,343.38355445704,349.7425091692,356.76213450082,359.73515228832,377.72190990274,381.53728273004,385.43052030892,392.4383479509,393.46032281536,400.61414686654,408.78994578219,416.22249025095,419.69101100305,429.2294430713,431.68218274599,440.49202321019,449.66894036041,454.06089845559,457.84473927605,472.15238737843,490.54793493862,494.63583439645,499.46698830115,503.62921320365,513.90736041189,523.2511306012],description:"Superstellated two out of 1 3 5 7 11 dekany"},steleik1:{frequencies:[220,220.57291666667,224.58333333333,225,226.875,229.16666666667,232.03125,235.27777777778,238.21875,240.625,242.63020833333,243.08035714286,247.5,248.14453125,252.08333333333,252.65625,255.234375,256.66666666667,257.8125,262.5,264.6875,270.703125,272.25,275,277.29166666667,278.4375,280.72916666667,283.59375,288.75,294.09722222222,297.7734375,302.5,308.80208333333,309.375,311.953125,315,315.10416666667,317.625,320.83333333333,324.10714285714,324.84375,330,330.859375,336.11111111111,336.875,340.3125,343.75,346.5,346.61458333333,350,352.91666666667,353.57142857143,360.9375,366.66666666667,371.25,378.125,385,388.92857142857,392.12962962963,393.75,397.03125,401.04166666667,403.33333333333,412.5,415.9375,423.5,425.390625,427.77777777778,432.14285714286,433.125,440],description:"Stellated Eikosany 3 out of 1 3 5 7 9 11"},steleik1s:{frequencies:[123.47082531403,123.79236392162,125.33976847064,127.32928860509,129.9819821177,130.22313607339,131.308328874,132.59082945654,132.63467563031,133.69575303535,135.04621518722,136.42423779117,136.73429287706,138.90467847828,139.26640941182,141.47698733899,141.79852594658,143.24544968073,144.69237341488,145.8499124022,145.89814319334,147.3231438406,148.55083670594,148.82644122673,151.92699208562,154.33853164254,156.26776328807,156.6747105883,159.16161075637,160.43490364242,160.48795751267,162.05545822466,163.70908534941,165.05648522882,165.43161360434,165.73853682068,167.11969129419,168.80776898403,169.77238480679,173.63084809785,175.077771832,175.80123369908,178.26100404713,179.05681210091,180.06162024963,181.89898372156,182.31239050275,185.20623797104,185.68854588243,189.06470126211,189.41547065221,190.99393290764,192.92316455317,195.33470411009,198.06778227459,200.54362955302,202.56932278083,204.25740047067,204.63635668676,208.35701771743,208.89961411773,212.21548100849,212.69778891987,214.8681745211,216.07394429955,217.03856012232,220.07531363843,220.98471576091,222.82625505891,227.89048812843,229.19271948917,231.50779746381,233.43702910934,233.87012192772,234.4016449321,236.33087657764,238.74241613455,241.07423537553,241.15395569146,243.083187337,246.94165062806],description:"Superstellated Eikosany 3 out of 1 3 5 7 9 11"},steleik2:{frequencies:[123.47082531403,124.49974885831,126.04313417474,126.11662871362,127.68005799519,128.74405847848,129.64436657973,130.41605923794,132.04518818306,132.96858110742,133.76006075687,135.81790784543,137.94006265552,138.64744759221,140.44806379471,141.47698733899,144.0492961997,145.92006628022,146.26543921816,147.13606683255,148.16499037684,148.55083670594,151.25176100969,152.15206911093,154.33853164254,154.49287017418,155.62468607289,156.05340421634,157.14468676331,157.64578589202,158.45422581967,160.51207290824,160.9300730981,163.85607442716,164.62776708537,167.20007594608,169.77238480679,170.24007732692,171.65874463798,172.85915543964,173.88807898393,175.56007974339,176.56328019906,180.06162024963,181.09054379391,182.8317990227,183.92008354069,185.20623797104,186.74962328747,187.26408505961,190.14507098361,193.11608771773,194.02558263633,197.55332050245,198.06778227459,200.6400911353,201.66901467958,202.31209189476,203.72686176815,204.2880927923,205.78470885672,205.99049356557,208.95062745451,210.19438118936,214.01609721099,214.57343079747,216.07394429955,217.36009872991,217.87456050205,220.70410024883,224.71690207153,226.36317974239,229.30296129748,230.47887391952,234.08010632452,237.68133872951,239.0961086029,240.76810936236,243.77573203026,245.22677805425,246.94165062806],description:"Stellated Eikosany 3 out of 1 3 5 7 11 13"},steleik2s:{frequencies:[61.73541265702,61.89618196081,62.32902239411,62.70002847979,63.66464430255,64.65940436978,64.99099105886,65.83502990378,66.22690508177,66.31733781516,67.05419712422,67.52310759362,68.40003106886,68.56192463352,68.97003132776,69.45233923915,69.63320470592,70.8992629733,71.32128239576,72.34618670745,72.41853289415,72.94907159667,73.15003322642,73.66157192031,73.89646213689,74.27541835298,75.24003417574,75.43597176474,76.80753488774,77.16926582128,78.37503559973,79.58080537819,79.800036247,80.24397875634,80.46503654906,81.02772911234,81.51003702372,82.29378737972,82.71580680218,82.76403759332,84.40388449202,84.45309958502,84.8861924034,85.7024057919,86.21253915971,86.81542404893,87.05458499673,87.53888591601,87.7800398717,89.13050202357,90.52316611769,90.94949186079,92.60311898553,92.84427294122,94.05004271968,94.53235063106,94.83379307568,95.49696645383,95.7600434964,96.46158227659,96.55804385887,97.94560661931,98.52861618252,100.32004556766,100.58129568632,101.28466139042,101.88754627965,102.12870023534,103.45504699165,104.17850885872,105.33604784604,105.47988405157,106.10774050425,107.4857631082,108.03697214979,109.72504983963,111.41312752947,112.07630090762,112.86005126361,113.15395764711,114.2698743892,114.95005221294,115.75389873191,115.86965263064,116.71851455468,118.16543828883,118.23433941902,119.7000543705,120.57697784574,120.69755482359,121.54159366851,122.26505553558,123.47082531404],description:"Superstellated Eikosany 3 out of 1 3 5 7 11 13"},stelhex1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,294.32876096318,327.03195662575,343.38355445704,381.53728273004,392.4383479509,400.61414686654,408.78994578219,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 7 hexany, also dekatesserany, mandala, tetradekany"},stelhex2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,327.03195662575,331.11985608357,353.19451315581,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 9 hexany"},stelhex3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,281.36411960997,289.40309445597,297.67175429757,339.14425131559,348.83408706747,358.80077526939,361.75386806997,372.08969287196,385.87079260796,434.10464168396,465.11211608996,523.2511306012],description:"Stellated Tetrachordal Hexany based on Archytas's Enharmonic"},stelhex4:{frequencies:[261.6255653006,269.10058145205,276.78916949353,279.06726965397,287.04062021552,297.67175429757,336.37572681506,348.83408706747,358.80077526939,361.75386806997,372.08969287196,382.72082695402,430.56093032327,465.11211608996,523.2511306012],description:"Stellated Tetrachordal Hexany based on the 1/1 35/36 16/15 4/3 tetrachord"},stelhex5:{frequencies:[261.6255653006,294.32876096318,305.22982618403,331.11985608357,343.38355445704,386.30649876417,392.4383479509,400.61414686654,441.49314144476,457.84473927605,504.56359022259,515.07533168556,523.2511306012],description:"Stellated two out of 1 3 7 9 hexany, stellation is degenerate"},stelhex6:{frequencies:[261.6255653006,269.80136421624,294.32876096318,299.7792935736,327.03195662575,337.2517052703,356.76213450082,359.73515228832,392.4383479509,408.78994578219,431.68218274599,449.66894036041,490.54793493862,494.63583439645,523.2511306012],description:"Stellated two out of 1 3 5 11 hexany, from The Giving, by Stephen J. Taylor"},stelpd1:{frequencies:[207.65234878997,208.19311011494,212.37172035338,214.14148468966,218.03496622947,219.00833661442,222.07265078927,222.48465941783,222.99030637105,224.84855892414,227.11975648903,229.43730502463,233.60889238872,237.93498298851,240.90917027586,242.2610735883,244.73312535961,245.28933700815,247.76700707894,249.83173213793,250.29524184505,254.84606442405,255.50972605016,256.96978162759,259.56543598746,262.81000393731,267.67685586207,272.54370778684,275.32476602956,277.59081348659,280.33067086646,281.06069865517,283.1622938045,285.52197958621,292.0111154859,297.32040849473,299.79807856552,302.82634198537,305.91640669951,306.61167126019,311.47852318496,312.28966517242,317.24664398468,317.96765908464,318.55758053007,321.21222703448,324.45679498433,327.0524493442,330.35600943859,333.10897618391,333.72698912674,340.67963473354,342.62637550345,346.08724798328,350.41333858307,356.90247448276,363.39161038245,367.09968803941,371.65051061841,374.7475982069,380.69597278161,385.45467244138,389.34815398119,392.59272193104,396.42721132631,399.73077142069,400.47238695209,401.51528379311,403.7684559805,407.88854226601,408.81556168025,415.30469757994],description:"Stellated two out of 1 3 5 7 9 11 pentadekany"},stelpd1s:{frequencies:[21.82676446456,21.88360499702,22.15715005948,22.2309638065,22.3228272933,22.50885085408,22.68892166091,22.91810268779,23.02041564622,23.14959867453,23.15196087848,23.34251199682,23.38581906917,23.43896865797,23.624449876,23.63429339678,23.87302363311,24.11662591508,24.35217522905,24.55511002263,24.61905562165,25.00983428231,25.20991295657,25.32245721084,25.46455854199,25.72440097609,25.78286552376,25.93612444091,26.04329850885,26.26032599642,26.30904645282,26.78739275196,26.85715158725,27.01062102489,27.2834555807,27.56185818867,27.62449877546,27.69643757435,28.01101439619,28.1360635676,28.29395393554,28.36115207614,28.41087110056,28.58266775121,28.64762835974,28.9399510981,29.17813999603,29.29871082246,29.46613202716,29.54286674598,29.7637697244,30.01180113877,30.06748166036,30.69388752829,30.99367756425,31.12334932909,31.25195821062,31.51239119571,31.65307151355,31.83069817748,32.15550122011,32.2285819047,32.41274522987,32.74014669684,32.82540749553,33.0742298264,33.34644570974,33.42223308636,33.48424093995,33.76327628112,34.09304532068,34.10431947588,34.37715403168,34.58149925455,34.7243980118,35.01376799523,35.07872860376,35.45144009517,35.80953544967,36.01416136652,36.17493887262,36.37794077427,36.74914425156,36.83266503394,36.92858343247,37.50234985274,37.51475142346,37.81486943485,37.88116146742,38.19683781298,38.26770393137,38.58660146413,38.90418666137,39.06494776328,39.39048899464,40.01573485169,40.28572738088,40.51593153734,40.92518337105,41.25258483802,41.26622656581,41.342787283,41.66927761416,42.01652159428,42.09447432451,42.2040953514,42.44093090331,42.61630665085,42.87400162681,42.9714425396,43.65352892912],description:"Superstellated two out of 1 3 5 7 9 11 pentadekany"},stelpent1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,353.19451315581,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,406.97310157871,412.06026534844,420.46965851882,436.04260883433,441.49314144476,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Stellated one out of 1 3 5 7 9 pentany"},stelpent1s:{frequencies:[261.6255653006,271.31540105247,274.70684356563,275.93321340298,280.31310567921,282.55561052465,286.15296204753,288.32205155576,290.69507255622,294.32876096318,301.46155672497,305.22982618403,309.04519901133,313.95067836072,315.35224388912,320.35783506196,321.92208230347,327.03195662575,329.64821227876,336.37572681506,339.14425131559,343.38355445704,348.83408706747,353.19451315581,360.4025644447,366.27579142084,367.91095120397,373.75080757229,381.53728273004,386.30649876417,387.59343007496,392.4383479509,395.57785473451,403.65087217807,406.97310157871,411.88864507966,412.06026534844,420.46965851882,429.2294430713,436.04260883433,439.53094970501,441.49314144476,448.50096908674,452.19233508746,457.84473927605,470.92601754108,480.53675259294,482.88312345521,488.36772189445,490.54793493862,494.47231841813,498.33441009638,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Superstellated one out of 1 3 5 7 9 pentany"},steltet1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,305.22982618403,313.95067836072,327.03195662575,343.38355445704,366.27579142084,373.75080757229,381.53728273004,392.4383479509,436.04260883433,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Stellated one out of 1 3 5 7 tetrany"},steltet1s:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,305.22982618403,313.95067836072,320.35783506196,327.03195662575,343.38355445704,366.27579142084,373.75080757229,381.53728273004,392.4383479509,429.2294430713,436.04260883433,439.53094970501,448.50096908674,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:"Superstellated one out of 1 3 5 7 tetrany"},steltet2:{frequencies:[261.6255653006,267.07609791103,272.52663052146,286.15296204753,305.22982618403,327.03195662575,333.84512238879,343.38355445704,381.53728273004,392.4383479509,400.61414686654,408.78994578219,436.04260883433,457.84473927605,476.92160341255,490.54793493862,523.2511306012],description:"Stellated three out of 1 3 5 7 tetrany"},steltet2s:{frequencies:[261.6255653006,286.15296204753,294.32876096318,300.46061014991,306.59245933664,327.03195662575,343.38355445704,350.53737850823,357.69120255941,367.91095120397,392.4383479509,400.61414686654,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Superstellated three out of 1 3 5 7 tetrany"},steltri1:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Stellated one out of 1 3 5 triany"},steltri2:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,408.78994578219,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 triany"},stevin:{frequencies:[261.6255653006,277.20445571159,293.66434538175,311.1256573916,329.66931111467,349.25319089654,369.99797100919,392.00714009679,415.41055144586,440.15068186507,466.27261682516,494.00597677606,523.2511306012],description:"Simon Stevin, monochord division of 10000 parts for 12-tET (1585)"},stopper:{frequencies:[261.6255653006,277.19910487213,293.6996776193,311.18246278326,329.70593120198,349.3320268423,370.12638880276,392.15855510068,415.50221189151,440.23542223935,466.44090588941,494.20629608476,523.62445363767,554.79375523088,587.81844599272,622.80896314278,659.88233179115,699.16252826162,740.78092441407,784.8766959018],description:"Bernard Stopper, piano tuning with 19th root of 3 (1988)"},storbeck:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,358.80077526939,381.53728273004,387.59343007496,392.4383479509,403.65087217807,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"Ulrich Storbeck, 2001"},strahle:{frequencies:[261.6255653006,278.94941459687,296.90543930973,315.65242990842,335.0021118691,355.12744448111,376.24442122187,398.15684412917,421.10213511252,444.85552088095,469.94877954106,496.17080790016,523.2511306012],description:"Strahle's Geometrical scale"},"sub24-12":{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Subharmonics 24-12"},sub24:{frequencies:[261.6255653006,10.90106522086,11.37502457829,11.89207115003,12.45836025241,13.08127826503,13.76976659477,14.53475362781,15.38973913533,16.35159783129,17.44170435337,18.68754037861,20.12504348466,21.80213044172,23.78414230005,26.16255653006,29.06950725562,32.70319566257,37.37508075723,43.60426088343,52.32511306012,65.40639132515,87.20852176687,130.8127826503,261.6255653006],description:"Subharmonics 24-1"},sub40:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,475.68284600109,498.33441009638,523.2511306012],description:"sub 40-20"},sub48:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,465.11211608996,502.32108537715,523.2511306012],description:"12 of sub 48 (Leven)"},sub50:{frequencies:[261.6255653006,272.52663052146,290.69507255622,311.45900631024,327.03195662575,344.24416486921,373.75080757229,384.74347838324,408.78994578219,436.04260883433,467.18850946536,484.4917875937,523.2511306012],description:"12 of sub 50"},sub8:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"Subharmonic series 1/16 - 1/8"},sumatra:{frequencies:[261.6255653006,266.79889483106,324.44528279699,356.96377863828,390.9602296356,474.47355835313,530.64156666967,639.28283484968,713.92755727656,784.8766959018],description:'"Archeological" tuning of Pasirah Rus orch. in Muaralakitan, Sumatra. 1/1=354 Hz'},super_10:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"A superparticular 10-tone scale"},super_11:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"A superparticular 11-tone scale"},super_12:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,372.08969287196,395.34529867646,418.60090448096,441.85651028546,465.11211608996,494.18162334558,523.2511306012],description:"A superparticular 12-tone scale"},super_12_1:{frequencies:[261.6255653006,280.31310567921,299.00064605783,317.68818643644,336.37572681506,355.06326719367,373.75080757229,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"Another superparticular 12-tone scale"},super_12_2:{frequencies:[261.6255653006,280.31310567921,299.00064605783,317.68818643644,336.37572681506,355.06326719367,373.75080757229,392.4383479509,420.46965851882,448.50096908674,473.41768959156,498.33441009638,523.2511306012],description:"Another superparticular 12-tone scale"},super_13:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"A superparticular 13-tone scale"},super_14:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"A superparticular 14-tone scale"},super_15:{frequencies:[261.6255653006,276.16031892841,290.69507255622,305.22982618403,319.76457981184,334.29933343966,348.83408706747,363.36884069528,381.53728273004,399.70572476481,417.87416679957,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"A superparticular 15-tone scale"},super_17:{frequencies:[261.6255653006,274.08392555301,286.54228580542,299.00064605783,311.45900631024,323.91736656265,336.37572681506,348.83408706747,363.36884069528,377.90359432309,392.4383479509,411.12588832951,429.81342870813,448.50096908674,467.18850946536,485.87604984397,504.56359022259,523.2511306012],description:"Superparticular 17-tone scale"},super_19:{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,316.13089140489,327.03195662575,340.11323489078,353.19451315581,366.27579142084,379.35706968587,392.4383479509,408.13588186894,423.83341578697,439.53094970501,455.22848362304,470.92601754108,488.36772189445,505.80942624783,523.2511306012],description:"Superparticular 19-tone scale"},super_19_1:{frequencies:[261.6255653006,272.09058791262,282.55561052465,293.02063313667,303.4856557487,313.95067836072,325.57848126297,337.20628416522,348.83408706747,363.36884069528,377.90359432309,392.4383479509,408.13588186894,423.83341578697,439.53094970501,455.22848362304,470.92601754108,488.36772189445,505.80942624783,523.2511306012],description:"Superparticular 19-tone scale"},super_19_2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Superparticular 19-tone scale"},super_22:{frequencies:[261.6255653006,270.96933548991,280.31310567921,289.65687586852,299.00064605783,308.34441624714,317.68818643644,327.03195662575,337.93302184661,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,406.45400323486,420.46965851882,434.48531380278,448.50096908674,463.45100138963,478.40103369253,493.35106599542,508.30109829831,523.2511306012],description:"Superparticular 22-tone scale"},super_22_1:{frequencies:[261.6255653006,272.09058791262,282.55561052465,293.02063313667,303.4856557487,313.95067836072,325.16320258789,336.37572681506,347.58825104223,358.80077526939,370.01329949656,381.22582372373,392.4383479509,405.51962621593,418.60090448096,431.68218274599,444.76346101102,457.84473927605,470.92601754108,484.00729580611,497.08857407114,510.16985233617,523.2511306012],description:"Superparticular 22-tone scale"},super_24:{frequencies:[261.6255653006,270.34641747729,279.06726965397,287.78812183066,296.50897400735,305.22982618403,313.95067836072,322.67153053741,331.39238271409,340.11323489078,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,405.51962621593,418.60090448096,431.68218274599,444.76346101102,457.84473927605,470.92601754108,484.00729580611,497.08857407114,510.16985233617,523.2511306012],description:"Superparticular 24-tone scale, inverse of Mans.ur 'Awad"},super_7:{frequencies:[261.6255653006,287.78812183066,313.95067836072,353.19451315581,392.4383479509,431.68218274599,470.92601754108,523.2511306012],description:"A superparticular 7-tone scale"},super_8:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"A superparticular 8 tone scale"},super_9:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"A superparticular 9-tone scale"},suppig:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Friedrich Suppig's 19-tone JI scale. Calculus Musicus, Berlin 1722"},sur_7:{frequencies:[261.6255653006,280.40333801024,327.729041887,351.25128999693,383.0422478503,410.5345162762,479.82340237272,523.2511306012],description:"7-tone surupan"},sur_9:{frequencies:[261.6255653006,280.40333801024,305.78200836532,327.729041887,351.25128999693,383.0422478503,410.5345162762,447.69106452518,479.82340237272,523.2511306012],description:"Theoretical nine-tone surupan gamut"},sur_ajeng:{frequencies:[261.6255653006,285.30470202322,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Surupan ajeng"},sur_degung:{frequencies:[261.6255653006,322.09885310804,345.21700307457,396.55020354877,488.21056770985,523.2511306012],description:"Surupan degung"},sur_madenda:{frequencies:[261.6255653006,322.09885310804,345.21700307457,425.01198472693,488.21056770985,523.2511306012],description:"Surupan madenda"},sur_melog:{frequencies:[261.6255653006,280.40333801024,305.78200836532,383.0422478503,410.5345162762,523.2511306012],description:"Surupan melog"},sur_miring:{frequencies:[261.6255653006,285.30470202322,305.78200836532,389.73770840504,417.71053321823,523.2511306012],description:"Surupan miring"},sur_x:{frequencies:[261.6255653006,280.40333801024,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Surupan tone-gender X (= unmodified nyorog)"},sur_y:{frequencies:[261.6255653006,280.40333801024,300.52885648597,383.0422478503,410.5345162762,523.2511306012],description:"Surupan tone-gender Y (= mode on pamiring)"},sverige:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,440,466.16376151809,493.88330125613,523.2511306012,554.36526195375,587.32953583482,622.25396744417,659.25511382574,698.45646286601,739.98884542327,783.9908719635,830.60939515989,880,932.32752303618,987.76660251225,1046.5022612024,1174.65907166964,1318.51022765149,1396.91292573202,1567.98174392701],description:"Scale on Swedish 50 crown banknote of some kind of violin."},syntonolydian:{frequencies:[261.6255653006,294.32876096318,331.11985608357,372.50983809402,392.4383479509,441.49314144476,496.67978412536,523.2511306012],description:"Greek Syntonolydian, also genus duplicatum medium, or ditonum (Al-Farabi)"},syrian:{frequencies:[261.6255653006,268.67837258085,275.62199471997,279.38237857051,286.74979536837,294.32876096318,302.10804307229,310.07474405997,314.30517589183,322.59351978942,326.6631048533,331.11985608357,339.85160932548,348.83408706747,358.05397697456,367.49599295996,372.50983809402,382.33306049116,392.4383479509,402.81072409638,413.43299207996,419.07356785577,430.12469305256,441.49314144476,453.13547910064,465.11211608996,477.40530263275,489.99465727995,496.67978412536,509.77741398822,523.2511306012],description:"After ^Sayh.'Ali ad-Darwis^ (Shaykh Darvish) from d'Erlanger vol.5, p.29"},szpak_24:{frequencies:[261.6255653006,270.98948203641,277.18263097687,287.10335517712,293.66476791741,304.17540907689,311.12698372208,322.26262012861,329.62755691287,341.42535271779,349.22823143301,361.7275606831,369.99442271164,383.23700075636,391.99543598175,406.02545869431,415.30469757995,430.16898885692,440,455.74816803176,466.16376151809,482.84836435151,493.88330125613,511.56002220218,523.2511306012],description:"Stephen Szpak's scale, TL 2-1-2004"},pagano_b:{frequencies:[261.6255653006,277.97716313189,289.55954492905,312.72430852337,333.57259575826,351.8148470888,370.63621750918,389.16802838464,416.96574469783,444.76346101102,463.29527188648,486.4600354808,523.2511306012],description:"Pat Pagano and David Beardsley, 17-limit scale, TL 27-2-2001"},palace:{frequencies:[261.6255653006,277.01530443593,294.32876096318,299.00064605783,336.37572681506,348.83408706747,373.75080757229,392.4383479509,409.50088481833,428.11456140098,448.50096908674,470.92601754108,523.2511306012],description:"Palace mode+"},palace2:{frequencies:[261.6255653006,277.01530443593,336.37572681506,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Byzantine Palace mode, 17-limit"},panpipe1:{frequencies:[261.6255653006,305.78200836532,346.61566493686,386.59871897734,424.03113209229,475.68400784708,523.2511306012],description:"Palina panpipe of Solomon Islands. 1/1=f+45c. From Ocora CD Guadalcanal"},panpipe2:{frequencies:[261.6255653006,301.39807245198,340.46429857933,389.512652082,435.70052664441,481.48922855473,540.45338572244,606.98892366383,675.83458963267,749.45240308975,819.17415016614,915.78156525194,979.24522642508,1073.44040298899,1178.73719255088,1360.28482360484],description:"Lalave panpipe of Solomon Islands. 1/1=f'+47c."},panpipe3:{frequencies:[261.6255653006,302.44445076078,341.44901934006,382.59999559751,433.19107626846,482.88183400971,542.01653249392,602.10016957865,677.78929781797,755.1012944609,822.018116801,906.30932187391,994.06270356141,1067.87449159209,1155.14617783291,1300.35790771888],description:"Tenaho panpipe of Solomon Islands. 1/1=f'+67c."},parachrom:{frequencies:[261.6255653006,274.52698453615,288.06460709314,349.22823143301,391.99543598175,411.32572372413,431.60923940535,523.2511306012],description:"Parachromatic, new genus 5 + 5 + 20 parts"},parakleismic:{frequencies:[261.6255653006,269.41173453909,271.00883762044,279.07425994419,280.72864356353,282.39283618632,290.79705467987,292.52093234567,301.22657042972,303.0122754386,312.03014360907,313.87989341557,323.22118988972,325.13728335605,327.06473376202,336.79842078181,338.79499972275,348.87778808468,350.94597487438,361.39038519337,363.53274806687,374.35175001315,376.5709514911,387.77797996035,390.07677146523,392.38919046486,404.06698135965,406.46233589795,418.55895395107,421.04021853379,433.57068509561,436.14094342919,449.12081866987,451.783257426,465.22865943552,467.98658728446,470.76086444006,484.77105399159,487.64483417146,502.15750307968,505.13434926963,520.16751901001,523.2511306012],description:"Parakleismic temperament, g=315.250913, 5-limit"},parizek:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Petr Parizek, 12-tone Linear Level tuning, 1/1=Ab"},parizek_13lqmt:{frequencies:[261.6255653006,272.70676208351,292.18581651805,313.05623198362,325.57848126297,348.83408706747,365.23227064756,391.32028997953,406.97310157871,436.04260883433,467.18850946536,486.97636086341,523.2511306012],description:"April 2003 - Petr Parizek"},parizek_17lqmt:{frequencies:[261.6255653006,272.52663052146,291.99281841585,312.60407618638,327.03195662575,350.39138209902,364.70475555078,390.75509523297,408.78994578219,436.04260883433,467.18850946536,488.44386904122,523.2511306012],description:"To tune the scale by ear, please choose the intervals in the following order:"},parizek_7lmtd1:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,418.60090448096,437.98922762377,468.83301301868,490.54793493862,523.2511306012],description:"Use SET MIDDLE 62"},parizek_7lqmtd2:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,390.69417751556,418.60090448096,437.98922762377,468.83301301868,488.36772189445,523.2511306012],description:"Use SET MIDDLE 62"},parizek_cirot:{frequencies:[261.6255653006,273.76082553017,293.33333347996,307.98092841354,327.40170814054,348.04713286849,366.66693712906,392.88175996935,409.71484950008,438.01699797506,463.01593599647,491.10256480205,523.2511306012],description:"Overtempered circular tuning (1/1 is F)"},parizek_epi:{frequencies:[261.6255653006,283.42769574232,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"In The Epimoric World"},parizek_epi2:{frequencies:[261.6255653006,283.42769574232,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,523.2511306012,523.2511306012],description:"In the Epimoric World - extended (version for two keyboards)"},parizek_epi2a:{frequencies:[261.6255653006,283.42769574232,287.78812183066,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012,523.2511306012],description:"April 2003 - Petr Parizek"},parizek_ji1:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,366.27579142084,392.4383479509,412.06026534844,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Petr Parizek, 12-tone septimal tuning, 2002."},parizek_jiweltmp:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,329.45441556372,348.83408706747,370.63621750918,392.4383479509,416.96574469783,440.63253103259,465.11211608996,494.18162334558,523.2511306012],description:"April 2003 - Petr Parizek"},jiwt2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,331.11985608357,348.83408706747,372.08969287196,392.4383479509,415.8649508569,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"June 2003 - Petr Parizek"},parizek_llt7:{frequencies:[261.6255653006,283.42769574232,327.03195662575,359.73515228832,392.4383479509,425.14154361347,479.64686971777,523.2511306012],description:"7-tone mode of Linear Level Tuning 2000 (= wilson_helix)"},parizek_qmeb1:{frequencies:[261.6255653006,273.53155294581,293.066620053,305.25690181412,326.9069921792,350.33366042609,366.2083106197,392.1884190578,408.50877577745,437.87542071709,457.7197748295,488.61098601707,523.2511306012],description:"Equal beating quasi-meantone tuning no. 1 - F...A# (1/1 = 261.7Hz)(3/2 5/3 5/4 7/4 7/6)"},parizek_qmeb2:{frequencies:[261.6255653006,274.12423619715,293.39509530855,306.21121252767,327.1564453797,350.32795211486,366.55713600477,391.6914154272,409.44351174042,438.20041390279,457.4712730142,489.73875803795,523.2511306012],description:"Equal beating quasi-meantone tuning no. 2 - F...A# (1/1 = 262.7Hz)"},parizek_qmeb3:{frequencies:[261.6255653006,274.23252240717,293.57983281823,306.4052273004,327.28159934073,350.29865766202,366.78755898655,391.93906252094,409.53887392713,438.37260750749,457.59509656107,490.04864950866,523.2511306012],description:"Equal beating quasi-meantone tuning no. 3 - F...A#. 1/1 = 262Hz"},parizek_qmtp12:{frequencies:[261.6255653006,273.55480692456,293.00227310437,305.44101254122,326.6631048533,350.4133380576,366.39100206434,391.84790908124,408.48291326839,437.52264545758,457.47219685667,489.2574430773,523.2511306012],description:"12-tone quasi-meantone tuning with 1/9 Pyth. comma as basic tempering unit (F...A#)"},parizek_qmtp24:{frequencies:[261.6255653006,273.14323313659,280.64720643091,285.59764149034,293.00227310437,305.44101254122,313.83229199844,326.6631048533,335.63741195089,341.5578378819,350.4133380576,365.83975262993,375.89034660662,381.37064019061,391.84790908124,407.86833637529,419.07356785577,437.52264545758,448.86620556368,457.47219685667,469.33298761093,489.2574430773,502.69865025911,510.02774559919,523.2511306012],description:"24-tone quasi-meantone tuning with 1/9 Pyth. comma as basic tempering unit (Bbb...C##)"},parizek_syndiat:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,353.19451315581,387.59343007496,392.4383479509,436.04260883433,441.49314144476,484.4917875937,490.54793493862,523.2511306012],description:"Petr Parizek, diatonic scale with syntonic alternatives"},parizek_syntonal:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Petr Parizek, Syntonic corrections in JI tonality, Jan. 2004"},parizek_temp19:{frequencies:[261.6255653006,276.69969455132,294.32876096318,310.68035879446,328.58088727969,349.51540364377,368.93292606842,392.4383479509,415.04954182698,438.10784970625,466.02053819169,492.87133091954,523.2511306012],description:"Petr Parizek, genus [3 3 19 19 19] well temperament"},"partch-barstow":{frequencies:[261.6255653006,279.06726965397,287.78812183066,290.69507255622,294.32876096318,299.00064605783,313.95067836072,327.03195662575,348.83408706747,359.73515228832,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,470.92601754108,479.64686971777,490.54793493862,523.2511306012],description:"Guitar scale for Partch's Barstow (1941, 1968)"},"partch-greek":{frequencies:[261.6255653006,261.6255653006,271.31540105247,294.32876096318,279.06726965397,348.83408706747,313.95067836072,392.4383479509,392.4383479509,406.97310157871,418.60090448096,418.60090448096,523.2511306012],description:'Partch Greek scales from "Two Studies on Ancient Greek Scales" on black/white'},"partch-grm":{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,313.95067836072,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:'Partch Greek scales from "Two Studies on Ancient Greek Scales" mixed'},"partch-indian":{frequencies:[261.6255653006,269.80136421624,277.97716313189,285.40970760065,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,383.71749577421,392.4383479509,406.97310157871,411.12588832951,428.11456140098,441.49314144476,457.84473927605,475.68284600109,490.54793493862,507.3950357345,523.2511306012],description:"Partch's Indian Chromatic, Exposition of Monophony, 1933."},"partch-ur":{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"Ur-Partch curved keyboard, published in Interval"},"partch_29-av":{frequencies:[261.6255653006,269.80136421624,274.70684356563,280.31310567921,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,488.36772189445,498.33441009638,507.3950357345,523.2511306012],description:"29-tone JI scale from Partch's Adapted Viola 1928-30"},partch_29:{frequencies:[261.6255653006,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,523.2511306012],description:"Partch/Ptolemy 11-limit Diamond"},partch_37:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol.9(2)'},partch_39:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"Ur-Partch Keyboard 39 tones, published in Interval"},partch_41:{frequencies:[261.6255653006,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,442.75095666255,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,523.2511306012],description:"13-limit Diamond after Partch, Genesis of a Music, p 454, 2nd edition"},partch_41a:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol. 9(2)'},partch_41comb:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,274.70684356563,279.06726965397,280.31310567921,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,488.36772189445,490.54793493862,498.33441009638,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"41-tone JI combination from Partch's 29-tone and 37-tone scales"},partch_43:{frequencies:[261.6255653006,264.89588486686,269.80136421624,274.70684356563,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,498.33441009638,507.3950357345,516.79124009995,523.2511306012],description:"Harry Partch's 43-tone pure scale"},partch_43a:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.70684356563,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,498.33441009638,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol. 9(2)'},patala:{frequencies:[261.6255653006,289.6217982776,320.24370022528,355.94891173479,393.58362272115,439.74591942221,480.6555937997,537.34060327431],description:"Observed patala tuning from Burma, Helmholtz/Ellis p. 518, nr.83"},pelog1:{frequencies:[261.6255653006,285.79952600623,313.83440569119,359.87690576543,393.35634555235,426.98050185716,482.04578814299,523.2511306012],description:"Gamelan Saih pitu from Ksatria, Den Pasar (South Bali). 1/1=312.5 Hz"},pelog10:{frequencies:[261.6255653006,290.16653606067,310.14521470005,342.49164912079,385.30310526088,418.60090448096,442.38504678101,523.2511306012],description:"Balinese saih 7 scale, Krobokan. 1/1=275 Hz. McPhee, 1966"},pelog11:{frequencies:[261.6255653006,289.11520789678,327.03195662575,352.6257619269,388.64667309147,441.73012112348,478.69895237627,523.2511306012],description:"Balinese saih pitu, gamelan luang, banjar Se`se'h. 1/1=276 Hz. McPhee, 1966"},pelog11i:{frequencies:[261.6255653006,267.83009854382,287.76973397991,309.19384990071,332.21296611011,356.94582815655,383.52002471837,392.61532371972,421.84506978464,453.25093845942,486.99493426005,523.2511306012],description:"George Secor's isopelogic scale with ~537.84194 generator and just 13/11"},pelog12:{frequencies:[261.6255653006,284.41230790592,308.04300430555,358.68021049276,385.68672051706,409.31741667997,472.61392441399,523.2511306012],description:"Balinese saih pitu, gamelan Semar Pegulingan, Tampak Gangsai, 1/1=310, McPhee"},pelog13:{frequencies:[261.6255653006,289.80062617913,323.61069924911,351.78575931905,394.45085229937,454.02098012766,494.27106657141,523.2511306012],description:"Balinese saih pitu, gamelan Semar Pegulingan, Klungkung, 1/1=325. McPhee, 1966"},pelog14:{frequencies:[261.6255653006,287.66412867175,309.98289727559,347.18084494866,375.69927149802,402.97776645827,427.77639824032,523.2511306012],description:"Balinese saih pitu, suling gambuh, Tabanan, 1/1=211 Hz, McPhee, 1966"},pelog15:{frequencies:[261.6255653006,284.9387344858,307.6043148279,344.51683351465,375.60105909492,407.98046074103,427.4081017287,523.2511306012],description:"Balinese saih pitu, suling gambuh, Batuan, 1/1=202 Hz. McPhee, 1966"},pelog2:{frequencies:[261.6255653006,285.30470202322,314.92395982138,345.81573716922,388.6137256405,424.52127512829,466.97226207056,523.2511306012],description:"Bamboo gambang from Batu lulan (South Bali). 1/1=315 Hz"},pelog3:{frequencies:[261.6255653006,285.63448939555,315.83481057014,390.18821123181,421.34544350737,523.2511306012],description:"Gamelan Gong from Padangtegal, distr. Ubud (South Bali). 1/1=555 Hz"},pelog4:{frequencies:[261.6255653006,290.96323214696,317.29765457754,352.87817160549,385.03871768789,434.94616895528,470.49199937597,523.2511306012],description:"Hindu-Jav. demung, excavated in Banjarnegara. 1/1=427 Hz"},pelog5:{frequencies:[261.6255653006,284.64626913494,310.94732162256,358.21775774651,390.8649420513,427.47405410759,468.32288027948,523.2511306012],description:"Gamelan Kyahi Munggang (Paku Alaman, Jogja). 1/1=199.5 Hz"},pelog6:{frequencies:[261.6255653006,282.02769802256,315.83481057014,354.51258839996,386.37547528213,413.39000965417,523.2511306012],description:"Gamelan Semar pegulingan, Ubud (S. Bali). 1/1=263.5 Hz"},pelog7:{frequencies:[261.6255653006,281.2143451833,303.31920717687,353.89879686059,384.81637482457,412.43597848639,448.72664641273,523.2511306012],description:"Gamelan Kantjilbelik (kraton Jogja). Measured by Surjodiningrat, 1972."},pelog8:{frequencies:[261.6255653006,281.2143451833,305.0763174688,362.1707891162,386.59871897734,415.30469757995,456.83405152976,529.33101587613,573.91491069685,623.33318620372,730.64478690489,786.25839925218,840.74610520523,945.88853913022,1075.30214607265],description:"from William Malm: Music Cultures of the Pacific, the Near East and Asia."},pelog9:{frequencies:[261.6255653006,282.57123920205,305.19382000629,356.01745236555,384.52011812375,415.30469757995,448.5538823653,523.2511306012],description:"9-tET Pelog"},pelog9i:{frequencies:[261.6255653006,287.76973397991,309.19384990071,332.21296611011,356.94582815655,383.52002471837,421.84506978464,453.25093845942,486.99493426005,523.2511306012],description:"George Secor's isopelogic scale with ~537.84194 generator and just 13/11"},pelog_24:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,440,479.82340237272,523.2511306012],description:"Subset of 24-tET (Sumatra?)"},pelog_a:{frequencies:[261.6255653006,280.7274598329,305.95868600104,363.84824628932,386.82209166041,411.72190027758,452.10885997356,523.2511306012],description:"Pelog, average class A. Kunst 1949"},pelog_alv:{frequencies:[261.6255653006,299.00064605783,313.95067836072,343.38355445704,392.4383479509,418.60090448096,457.84473927605,523.2511306012],description:"Bill Alves JI Pelog, 1/1 vol. 9 no. 4, 1997. 1/1=293.33"},pelog_av:{frequencies:[261.6255653006,280.40333801024,305.78200836532,357.39105439675,385.26118901859,411.72190027758,452.89298412314,523.2511306012],description:'"Normalised Pelog", Kunst, 1949. Average of 39 Javanese gamelans'},pelog_b:{frequencies:[261.6255653006,280.07959041159,302.79405018898,354.30787302884,382.82105786018,408.64182041696,451.58686491179,523.2511306012],description:"Pelog, average class B. Kunst 1949"},pelog_c:{frequencies:[261.6255653006,279.91785681123,304.37225518229,350.84574289301,384.81637482457,410.29745071461,451.58686491179,523.2511306012],description:"Pelog, average class C. Kunst 1949"},pelog_he:{frequencies:[261.6255653006,283.17034563789,338.50336851425,364.68988616898,389.06292924114,420.13030572059,493.31307433255,523.2511306012],description:"Observed Javanese Pelog scale, Helmholtz/Ellis p. 518, nr.96"},pelog_jc:{frequencies:[261.6255653006,294.32876096318,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"John Chalmers' Pelog, on keys C# E F# A B c#, like Olympos' Enharmonic on 4/3"},pelog_laras:{frequencies:[261.6255653006,283.42769574232,305.22982618403,370.63621750918,392.4383479509,414.24047839262,457.84473927605,523.2511306012],description:'Lou Harrison, gamelan "Si Betty"'},pelog_me1:{frequencies:[261.6255653006,281.13654920971,305.96893643544,353.85975480175,389.33427481332,412.3928606827,454.07565526112,523.2511306012],description:"Gamelan Kyahi Kanyut Mesem pelog (Mangku Nagaran). 1/1=295 Hz"},pelog_me2:{frequencies:[261.6255653006,277.86440299076,299.96729002515,349.58586605592,383.41679241104,405.97081699752,447.47001910635,523.2511306012],description:"Gamelan Kyahi Bermara (kraton Jogja). 1/1=290 Hz"},pelog_me3:{frequencies:[261.6255653006,281.75056896146,306.90688773629,358.59164065877,385.12012728597,411.64865826518,457.38747412584,523.2511306012],description:"Gamelan Kyahi Pangasih (kraton Solo). 1/1=286 Hz"},pelog_pa:{frequencies:[261.6255653006,286.29520819723,313.29104303136,342.83241505062,387.04559340587,423.54155496477,463.47885582013,523.2511306012],description:'"Blown fifth" pelog, von Hornbostel, type a.'},pelog_pa2:{frequencies:[261.6255653006,286.29520819723,313.29104303136,353.69443592699,387.04559340587,423.54155496477,463.47885582013,523.2511306012],description:"New mixed gender Pelog"},pelog_pb:{frequencies:[261.6255653006,277.98432293805,304.19649364034,353.69443592699,387.04559340587,411.24653512154,450.02449304881,523.2511306012],description:'"Primitive" Pelog, step of blown semi-fourths, von Hornbostel, type b.'},pelog_pb2:{frequencies:[261.6255653006,277.50302994288,303.66981774726,353.69443592699,387.04559340587,410.5345162762,449.24533531117,523.2511306012],description:'"Primitive" Pelog, Kunst: Music in Java, p. 28'},pelog_schmidt:{frequencies:[261.6255653006,287.78812183066,313.95067836072,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Modern Pelog designed by Dan Schmidt and used by Berkeley Gamelan"},pelog_selun:{frequencies:[261.6255653006,281.10829462369,350.68958753059,378.52209447746,416.55977244877,523.2511306012,562.21664032682,701.37917506118,757.04418895493,833.11970794305,1046.5022612024,1124.43328065364],description:"Gamelan selunding from Kengetan, South Bali (Pelog), 1/1=141 Hz"},pelog_slen:{frequencies:[261.6255653006,289.4545544734,306.66641795878,334.42210013281,344.22141564971,354.30787302884,386.37547528213,397.69714089209,446.39994737251,459.48046426806,493.88330125613,523.2511306012],description:"W.P. Malm, pelog+slendro, Musical Cultures Of The Pacific, The Near East, And Asia. P: 1,3,5,6,8,10; S: 2,4,7,9"},pelog_str:{frequencies:[261.6255653006,282.73796785026,305.22982618403,329.86096249197,356.10146388137,384.83778957396,415.4517078616,448.97742116962,484.69365917187,523.80699136456],description:"JI Pelog with stretched 2/1 and extra tones between 2-3, 6-7. Wolf, XH 11, '87"},pelogic:{frequencies:[261.6255653006,268.93425429917,294.59920226397,322.71340889889,353.51061198674,363.38617257172,398.06486099125,436.0530078362,477.66644151787,523.2511306012],description:"Pelogic temperament, g=521.1, 5-limit"},pelogic2:{frequencies:[261.6255653006,252.56770712848,285.96465797334,276.06414495892,312.56802260838,301.74646235804,341.64630500046,386.82209166041,373.42974737602,422.80824892286,408.17001145418,462.1422075194,523.2511306012],description:"Pelogic temperament, g=677.0 in cycle of fifths order"},penta1:{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,331.11985608357,372.50983809402,376.74081403286,397.34382730029,423.83341578697,441.49314144476,470.92601754108,496.67978412536,523.2511306012],description:"Pentagonal scale 9/8 3/2 16/15 4/3 5/3"},penta2:{frequencies:[261.6255653006,267.07609791103,286.15296204753,305.22982618403,312.97980223949,333.84512238879,356.10146388137,363.36884069528,400.61414686654,436.04260883433,457.84473927605,476.92160341255,523.2511306012],description:"Pentagonal scale 7/4 4/3 15/8 32/21 6/5"},penta_opt:{frequencies:[261.6255653006,292.5084949701,327.03692214239,391.62201198054,436.95817401562,523.2511306012],description:"Optimally consonant major pentatonic, John deLaubenfels, 2001"},pentadekany:{frequencies:[261.6255653006,283.42769574232,299.7792935736,305.22982618403,327.03195662575,354.2846196779,359.73515228832,381.53728273004,389.71308164569,419.69101100305,425.14154361347,436.04260883433,457.84473927605,479.64686971777,495.99846754905,523.2511306012],description:"2)6 1.3.5.7.11.13 Pentadekany (1.3 tonic)"},pentadekany2:{frequencies:[261.6255653006,269.80136421624,294.32876096318,299.7792935736,305.22982618403,327.03195662575,343.38355445704,359.73515228832,381.53728273004,392.4383479509,419.69101100305,436.04260883433,457.84473927605,479.64686971777,490.54793493862,523.2511306012],description:"2)6 1.3.5.7.9.11 Pentadekany (1.3 tonic)"},pentadekany3:{frequencies:[261.6255653006,277.97716313189,278.79474302345,287.78812183066,291.4672313427,300.86940009569,305.77487944508,319.67373760167,359.73515228832,376.08675011961,405.51962621593,413.69542513157,430.86460285443,444.76346101102,506.89953276991,523.2511306012],description:"2)6 1.5.11.17.23.31 Pentadekany (1.5 tonic)"},pentatetra1:{frequencies:[261.6255653006,275.39533189537,290.69507255622,327.03195662575,348.83408706747,392.4383479509,413.09299784305,436.04260883433,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatetra2:{frequencies:[261.6255653006,275.39533189537,307.79478270659,327.03195662575,348.83408706747,392.4383479509,413.09299784305,461.69217405988,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatetra3:{frequencies:[261.6255653006,290.69507255622,307.79478270659,327.03195662575,348.83408706747,392.4383479509,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatriad:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"4:5:6 Pentatriadic scale"},pentatriad1:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,387.59343007496,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"3:5:9 Pentatriadic scale"},pepper:{frequencies:[261.6255653006,274.70684356563,290.69507255622,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,367.91095120397,392.4383479509,406.97310157871,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"Keenan Pepper's 17-tone jazz tuning, TL 07-06-2000"},pepper2:{frequencies:[261.6255653006,281.81099471089,295.05751399041,308.92668738628,332.76158224462,348.40303271111,375.28368107222,392.9238840789,423.23948674937,443.13385158124,463.96335069158,499.75992392917,523.2511306012],description:`Keenan Pepper's "Noble Fifth" with chromatic/diatonic semitone = Phi (12)`},peprmint:{frequencies:[261.6255653006,270.64528749638,281.81099405977,291.52662269553,295.0575145017,305.22982618403,308.92668738628,319.57714845986,332.76158147578,344.23376699744,348.40303331485,360.41446869983,375.28368085545,388.22184514393,392.92388339801,406.47020562703,423.23948723831,437.83096109824,443.13385158124,458.41119713782,463.9633498876,479.95880678291,499.75992479518,516.98949333115,523.2511306012],description:"Peppermint 24: Wilson/Pepper apotome/limma=Phi, 2 chains spaced for pure 7:6"},"perkis-indian":{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.01393146398,369.99442271164,377.90359432309,388.70083987518,400.13321751856,412.18367363396,425.14154361347,438.99882991118,453.48431318771,469.12170329763,485.27322596079,503.87145909745,523.2511306012],description:"Indian 22 Perkis"},"perrett-tt":{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,515.07533168556,523.2511306012],description:"Perrett Tierce-Tone"},perrett:{frequencies:[261.6255653006,274.70684356563,279.06726965397,348.83408706747,392.4383479509,412.06026534844,418.60090448096,523.2511306012],description:"Perrett / Tartini / Pachymeres Enharmonic"},perrett_14:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,412.06026534844,436.04260883433,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Perrett's 14-tone system (subscale of tierce-tone)"},perrett_chrom:{frequencies:[261.6255653006,274.70684356563,294.32876096318,348.83408706747,392.4383479509,412.06026534844,441.49314144476,523.2511306012],description:"Perrett's Chromatic"},perry:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Robin Perry, Tuning List 22-9-'98"},perry2:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,415.27867508032,436.04260883433,457.84473927605,498.33441009638,523.2511306012],description:"Robin Perry, 7-limit scale, TL 22-10-2006"},perry3:{frequencies:[261.6255653006,277.97716313189,294.32876096318,307.79478270659,327.03195662575,348.83408706747,369.35373924791,370.63621750918,392.4383479509,418.60090448096,444.76346101102,465.11211608996,492.47165233054,523.2511306012],description:"Robin Perry, symmetrical 3,5,17 scale, TL 22-10-2006"},"persian-far":{frequencies:[261.6255653006,275.58617649731,282.84340331238,294.51413096332,310.22971009486,318.39923223688,331.53706992441,349.22823143301,362.58942698662,376.46181130035,391.99543598175,412.91271853531,423.78627283082,441.27260666252,464.81937009253,477.05982293263,496.7443381147,523.2511306012],description:"Hormoz Farhat, average of observed Persian tar and sehtar tunings (1966)"},"persian-vaz":{frequencies:[261.6255653006,277.18263097687,285.30470202322,293.66476791741,311.12698372208,320.24370022528,329.62755691287,349.22823143301,359.46139971304,380.8360868427,391.99543598175,415.30469757995,427.47405410759,440,466.16376151809,479.82340237272,493.88330125613,523.2511306012],description:"Vaziri's Persian tuning, using quartertones"},persian:{frequencies:[261.6255653006,275.62199471997,282.55561052465,294.32876096318,310.07474405997,317.87506184023,331.11985608357,348.83408706747,363.36884069528,376.74081403286,392.4383479509,413.43299207996,423.83341578697,441.49314144476,465.11211608996,476.81259276034,496.67978412536,523.2511306012],description:"Persian Tar Scale, from Dariush Anooshfar, Internet Tuning List 2/10/94"},persian2:{frequencies:[261.6255653006,275.62199471997,288.32205155576,294.32876096318,310.07474405997,321.08592105074,331.11985608357,348.83408706747,367.49599295996,384.42940207435,392.4383479509,413.43299207996,428.11456140098,441.49314144476,465.11211608996,489.99465727995,512.57253609913,523.2511306012],description:"Traditional Persian scale, from Mark Rankin"},phi1_13:{frequencies:[261.6255653006,272.27874348295,293.41755524936,305.36527715608,329.07281683115,342.47239171077,356.41758627629,384.088434771,399.72820043646,416.00480451705,448.3020273708,466.55651779723,502.7784067407,523.2511306012],description:"Pythagorean scale with (Phi + 1) / 2 as fifth"},phi_10:{frequencies:[261.6255653006,277.06593756944,293.41755524936,323.38703872151,342.47239171077,362.68389667063,399.72820043646,423.31898451752,448.3020273708,494.09131284284,523.2511306012],description:"Pythagorean scale with Phi as fifth"},phi_12:{frequencies:[261.6255653006,280.653851324,301.06608340242,314.41721066027,337.28508524374,352.24238645938,377.86132347501,405.34355110824,423.31898451752,454.10739278061,474.24531572837,508.73764640933,531.29821178855],description:"Non-Octave Pythagorean scale with Phi as fourth. Jacky Ligon TL 12-04-2001"},phi_13:{frequencies:[261.6255653006,277.06593756944,293.41755524936,305.36527715608,323.38703872151,342.47239171077,362.68389667063,377.45230514615,399.72820043646,423.31898451752,448.3020273708,466.55651779723,494.09131284284,523.2511306012],description:"Pythagorean scale with Phi as fifth"},phi_13a:{frequencies:[261.6255653006,280.653851324,293.09977429907,314.41721066027,328.36040925687,352.24238645938,377.86132347501,394.61802538749,423.31898451752,442.09155952525,474.24531572837,508.73764640933,531.29821178855,569.94005600595],description:"Non-Octave Pythagorean scale with Phi as fifth, Jacky Ligon TL 12-04-2001"},phi_13b:{frequencies:[261.6255653006,277.56939878091,287.90530191745,305.45065986668,316.82478268872,336.13253486432,356.61692887617,369.89633953852,392.4383479509,407.05164722964,431.8579526603,458.17598957099,475.23717379553,504.19880204444],description:"Non-Octave Pythagorean scale with 12 3/2s, Jacky Ligon, TL 12-04-2001"},phi_17:{frequencies:[261.6255653006,276.86436108535,292.99059544936,310.05629713556,328.11582814217,347.22745468775,367.4522682176,388.8548834608,411.50435256812,435.47307590797,460.83762934409,487.67984759381,516.08523529366,546.14543793146,577.9565447239,611.62018657326,647.24497389216,684.94478342154],description:"Phi + 1 equal division by 17, Brouncker (1653)"},phi_7b:{frequencies:[261.6255653006,277.06593756944,299.7954575021,323.38703872151,342.47239171077,369.42210382256,399.72820043646,423.31898451752],description:"Heinz Bohlen's Pythagorean scale with Phi as fifth (1999)"},phi_7be:{frequencies:[261.6255653006,277.18263097687,299.37379946195,323.3415889232,342.56848033562,369.99442271164,399.61607881612,423.37848741825],description:"36-tET approximation of phi_7b"},phi_8:{frequencies:[261.6255653006,280.010356995,292.01318753119,312.53354015396,325.93049860793,348.83408706747,373.34714284662,389.35091690288,416.71138708025],description:"Non-Octave Pythagorean scale with 4/3s, Jacky Ligon, TL 12-04-2001"},phi_8a:{frequencies:[261.6255653006,275.77662731691,284.90271245142,300.31281179658,310.2506767011,327.03195662575,344.72084112096,356.12824371673,375.39107678967],description:"Non-Octave Pythagorean scale with 5/4s, Jacky Ligon, TL 12-04-2001"},phillips_19:{frequencies:[261.6255653006,274.63272075836,286.12988535196,293.66476791741,305.42895910556,326.59518553839,329.62755691287,342.83241505062,349.22823143301,366.5907009274,384.81637482457,391.99543598175,407.69874723177,428.71043212875,440,457.62637091093,489.33987776603,493.88330125613,513.66823365307,523.2511306012],description:"Pauline Phillips, organ manual scale, TL 7-10-2002"},phillips_19a:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,326.62388782443,329.50688232588,342.79852229325,349.26020182051,366.55580177366,381.34192228364,391.95955371998,407.7704102616,427.96347506501,439.87918162894,457.62301915088,489.33808574423,493.65730140218,509.07699553894,523.2511306012],description:"Adaptation by Gene Ward Smith with more consonant chords, TL 25-10-2002"},phillips_22:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.5744765615,306.59245933664,327.03195662575,331.11985608357,343.38355445704,349.22797321314,367.91095120397,392.4383479509,407.76797091773,408.78994578219,416.96574469783,429.2294430713,441.49314144476,457.84473927605,459.88868900496,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:"All-key 19-limit JI scale (2002), TL 21-10-2002"},phillips_ji:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.5744765615,306.59245933664,327.03195662575,331.11985608357,349.22797321314,367.91095120397,386.30649876417,392.4383479509,407.76797091773,408.78994578219,429.2294430713,441.49314144476,457.84473927605,459.88868900496,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:'Pauline Phillips, JI 0 #/b "C" scale (2002), TL 8-10-2002'},phryg_chromcon2:{frequencies:[261.6255653006,283.42769574232,294.32876096318,305.22982618403,392.4383479509,414.24047839262,436.04260883433,523.2511306012],description:"Harmonic Conjunct Chromatic Phrygian"},phryg_chromconi:{frequencies:[261.6255653006,283.42769574232,348.83408706747,370.63621750918,392.4383479509,479.64686971777,501.44900015948,523.2511306012],description:"Inverted Conjunct Chromatic Phrygian"},phryg_chrominv:{frequencies:[261.6255653006,272.52663052146,283.42769574232,348.83408706747,392.4383479509,414.24047839262,436.04260883433,523.2511306012],description:"Inverted Schlesinger's Chromatic Phrygian"},phryg_chromt:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,324.77656382143,336.37572681506,362.25078272391,392.4383479509,409.50088481833,418.60090448096,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,627.90135672144,649.55312764287,672.75145363011,724.50156544782,784.8766959018,819.00176963666,837.20180896192,856.22912280196,941.85203508216,1046.5022612024],description:"Phrygian Chromatic Tonos"},phryg_diat:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,392.4383479509,448.50096908674,483.00104363188,523.2511306012],description:"Schlesinger's Phrygian Harmonia, a subharmonic series through 13 from 24"},phryg_diatcon:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,448.50096908674,483.00104363188,523.2511306012],description:"A Phrygian Diatonic with its own trite synemmenon replacing paramese"},phryg_diatinv:{frequencies:[261.6255653006,283.42769574232,305.22982618403,370.63621750918,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Inverted Conjunct Phrygian Harmonia with 17, the local Trite Synemmenon"},phryg_diatsinv:{frequencies:[261.6255653006,283.42769574232,305.22982618403,348.83408706747,370.63621750918,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Inverted Schlesinger's Phrygian Harmonia, a harmonic series from 12 from 24"},phryg_enh:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,392.4383479509,405.0976494977,418.60090448096,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the enharmonic genus"},phryg_enhcon:{frequencies:[261.6255653006,283.42769574232,288.87822835275,294.32876096318,392.4383479509,403.33941317176,414.24047839262,523.2511306012],description:"Harmonic Conjunct Enharmonic Phrygian"},phryg_enhinv:{frequencies:[261.6255653006,327.03195662575,337.93302184661,348.83408706747,392.4383479509,501.44900015948,512.35006538034,523.2511306012],description:"Inverted Schlesinger's Enharmonic Phrygian Harmonia"},phryg_enhinv2:{frequencies:[261.6255653006,267.07609791103,272.52663052146,348.83408706747,392.4383479509,403.33941317176,414.24047839262,523.2511306012],description:"Inverted harmonic form of Schlesinger's Enharmonic Phrygian"},phryg_penta:{frequencies:[261.6255653006,270.64713651786,285.40970760065,348.83408706747,392.4383479509,413.09299784305,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the pentachromatic genus"},phryg_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,392.4383479509,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,784.8766959018,856.22912280196,941.85203508216,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Phrygian Tonos"},phryg_tri1:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the chromatic genus"},phryg_tri1inv:{frequencies:[261.6255653006,305.22982618403,327.03195662575,348.83408706747,392.4383479509,479.64686971777,501.44900015948,523.2511306012],description:"Inverted Schlesinger's Chromatic Phrygian Harmonia"},phryg_tri2:{frequencies:[261.6255653006,269.10058145205,285.40970760065,348.83408706747,392.4383479509,409.50088481833,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the second trichromatic genus"},phryg_tri3:{frequencies:[261.6255653006,269.10058145205,277.01530443593,348.83408706747,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the first trichromatic genus"},phrygian:{frequencies:[261.6255653006,290.69507255622,313.95067836072,327.03195662575,348.83408706747,353.19451315581,387.59343007496,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,523.2511306012],description:"Old Phrygian ??"},phrygian_diat:{frequencies:[261.6255653006,277.01530443593,294.32876096318,336.37572681506,348.83408706747,362.25078272391,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012,554.03060887186,588.65752192635,672.75145363011,697.66817413493,724.50156544782,753.48162806573,784.8766959018,856.22912280196,897.00193817349,941.85203508216,991.42319482333,1046.5022612024],description:"Phrygian Diatonic Tonos"},phrygian_enh:{frequencies:[261.6255653006,277.01530443593,294.32876096318,303.82323712328,308.80394592858,313.95067836072,348.83408706747,392.4383479509,400.78810003496,405.0976494977,409.50088481833,459.44001711325,523.2511306012],description:"Phrygian Enharmonic Tonos"},phrygian_harm:{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Phrygian Harmonia-Aliquot 24 (flute tuning)"},piano:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"Enhanced Piano Total Gamut, see 1/1 vol. 8/2 January 1994"},piano7:{frequencies:[261.6255653006,275.93321340298,294.32876096318,305.22982618403,327.03195662575,348.83408706747,367.91095120397,392.4383479509,406.97310157871,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Enhanced piano 7-limit"},pipedum_10:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,372.08969287196,396.89567239676,431.14564594215,459.88868900496,490.54793493862,523.2511306012],description:"2048/2025 and 34171875/33554432 are homophonic intervals"},pipedum_10a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,465.11211608996,490.54793493862,523.2511306012],description:"2048/2025 and 25/24, Manuel Op de Coul, 2001"},pipedum_10b:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,367.91095120397,392.4383479509,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"225/224, 64/63 and 25/24 are homophonic intervals"},pipedum_10c:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 64/63 and 49/48 are homophonic intervals"},pipedum_10d:{frequencies:[261.6255653006,279.06726965397,299.00064605783,318.93402246168,343.38355445704,372.08969287196,392.4383479509,425.24536328225,448.50096908674,488.36772189445,523.2511306012],description:"1029/1024, 2048/2025 and 64/63 are homophonic intervals"},pipedum_10e:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,367.91095120397,406.97310157871,429.2294430713,465.11211608996,490.54793493862,523.2511306012],description:"2048/2025, 64/63 and 49/48 are homophonic intervals"},pipedum_10f:{frequencies:[261.6255653006,280.31310567921,294.32876096318,327.03195662575,348.83408706747,373.75080757229,392.4383479509,420.46965851882,465.11211608996,490.54793493862,523.2511306012],description:"225/224, 64/63 and 28/27 are homophonic intervals"},pipedum_10g:{frequencies:[261.6255653006,280.31310567921,299.00064605783,325.57848126297,348.83408706747,372.08969287196,398.6675280771,425.24536328225,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 1029/1024 and 2048/2025 are homophonic intervals"},pipedum_10h:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,373.75080757229,400.61414686654,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 1029/1024 and 64/63 are homophonic intervals"},pipedum_10i:{frequencies:[261.6255653006,279.06726965397,294.32876096318,321.92208230347,343.38355445704,367.91095120397,392.4383479509,418.60090448096,457.84473927605,488.36772189445,523.2511306012],description:"225/224, 2048/2025 and 49/48 are homophonic intervals"},pipedum_10j:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,457.84473927605,488.36772189445,523.2511306012],description:"25/24, 28/27 and 49/48, Gene Ward Smith, 2002"},pipedum_10k:{frequencies:[261.6255653006,280.31310567921,299.00064605783,320.49131749323,343.38355445704,367.91095120397,394.1903048614,420.46965851882,455.80987376816,488.36772189445,523.2511306012],description:"2048/2025, 225/224 and 2401/2400"},pipedum_11:{frequencies:[261.6255653006,272.52663052146,282.55561052465,313.95067836072,327.03195662575,363.36884069528,376.74081403286,392.4383479509,436.04260883433,454.2110508691,470.92601754108,523.2511306012],description:"16/15 and 15625/15552 are homophonic intervals"},pipedum_11a:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,322.92069774245,366.27579142084,376.74081403286,381.53728273004,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"126/125, 1728/1715 and 10/9, Gene Ward Smith, 2002"},pipedum_12:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"81/80 and 2048/2025 are homophonic intervals"},pipedum_12a:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"81/80 and 2048/2025 are homophonic intervals"},pipedum_12b:{frequencies:[261.6255653006,274.70684356563,299.00064605783,313.95067836072,320.49131749323,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,488.36772189445,523.2511306012],description:"64/63, 50/49 comma and 36/35 chroma"},pipedum_12c:{frequencies:[261.6255653006,280.31310567921,294.32876096318,315.35224388912,327.03195662575,348.83408706747,367.91095120397,392.4383479509,420.46965851882,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 64/63 and 36/35 are homophonic intervals"},pipedum_12d:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"50/49, 128/125 and 225/224 are homophonic intervals"},pipedum_12e:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,373.75080757229,392.4383479509,418.60090448096,439.53094970501,467.18850946536,500.55911728431,523.2511306012],description:"50/49, 225/224 and 3136/3125 are homophonic intervals"},pipedum_12f:{frequencies:[261.6255653006,273.74326726486,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,408.78994578219,437.98922762377,468.83301301868,490.54793493862,523.2511306012],description:"128/125, 3136/3125 and 703125/702464 are homophonic intervals"},pipedum_12g:{frequencies:[261.6255653006,279.06726965397,286.15296204753,306.59245933664,327.03195662575,348.83408706747,366.27579142084,390.69417751556,408.78994578219,437.98922762377,457.84473927605,488.36772189445,523.2511306012],description:"50/49, 225/224 and 28672/28125 are homophonic intervals"},pipedum_12h:{frequencies:[261.6255653006,275.93321340298,291.02331101095,310.42486507835,330.74639366397,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.53496651643,465.11211608996,496.11959049595,523.2511306012],description:"2048/2025 and 67108864/66430125, Gene Ward Smith, 2004"},pipedum_12i:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,378.42269266694,392.4383479509,406.97310157871,441.49314144476,465.11211608996,504.56359022259,523.2511306012],description:"64/63 and 6561/6272, Gene Ward Smith, 2004"},pipedum_12j:{frequencies:[261.6255653006,283.8170195002,285.83021674664,310.07474405997,336.37572681506,348.83408706747,378.42269266694,392.4383479509,413.43299207996,448.50096908674,465.11211608996,504.56359022259,523.2511306012],description:"6561/6272 and 59049/57344"},pipedum_12k:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,448.50096908674,457.84473927605,474.80195184183,523.2511306012],description:"64/63 and 729/686, Gene Ward Smith, 2004"},pipedum_12l:{frequencies:[261.6255653006,276.16031892841,294.32876096318,310.68035879446,331.39238271409,348.83408706747,368.21375857121,392.4383479509,414.24047839262,441.49314144476,465.11211608996,497.08857407114,523.2511306012],description:"81/80, 361/360 and 513/512, Gene Ward Smith"},pipedum_13:{frequencies:[261.6255653006,276.76092858245,287.78812183066,309.14739649778,327.03195662575,345.95116072807,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"33275/32768 and 163840/161051 are homophonic intervals. Op de Coul, 2001"},pipedum_13a:{frequencies:[261.6255653006,266.96486255163,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,512.78610798918,523.2511306012],description:"15/14, 3136/3125, 2401/2400, Gene Ward Smith, 2002"},pipedum_13b:{frequencies:[261.6255653006,267.90457886781,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,510.98743222773,523.2511306012],description:"15/14, 3136/3125, 6144/6125, Gene Ward Smith, 2002"},pipedum_13bp:{frequencies:[261.6255653006,282.55561052465,305.16005936662,336.45263027341,363.36884069528,392.4383479509,436.04260883433,470.92601754108,508.60009894437,545.05326104292,605.61473449213,654.0639132515,706.38902631162,784.8766959018],description:"78732/78125 and 250/243, twelfth based, Manuel Op de Coul, 2003"},pipedum_13bp2:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012,565.1112210493,627.90135672144,678.13346525916,726.73768139056,784.8766959018],description:"250/243 and 648/625, twelfth based, Manuel Op de Coul, 2003"},pipedum_13c:{frequencies:[261.6255653006,267.07609791103,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,512.57253609913,523.2511306012],description:"15/14, 2401/2400, 6144/6125, Gene Ward Smith, 2002"},pipedum_13d:{frequencies:[261.6255653006,281.04308772525,287.78812183066,309.14739649778,327.03195662575,334.88072358477,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"125/121 and 33275/32768, Joe Monzo, 2003"},pipedum_13e:{frequencies:[261.6255653006,276.76092858245,287.78812183066,304.4370214407,327.03195662575,334.88072358477,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"33275/32768 and 163840/161051, Manuel Op de Coul, 2004"},pipedum_14:{frequencies:[261.6255653006,274.70684356563,284.76252005507,305.22982618403,320.49131749323,336.37572681506,348.83408706747,373.90653707544,392.4383479509,406.97310157871,427.14378008261,448.50096908674,480.73697623985,498.33441009638,523.2511306012],description:"81/80, 49/48 and 2401/2400, Paul Erlich, TL 17-1-2001"},pipedum_14a:{frequencies:[261.6255653006,274.70684356563,284.8811711051,305.22982618403,320.35783506196,336.37572681506,348.83408706747,366.27579142084,392.4383479509,406.97310157871,427.32175665765,448.50096908674,480.53675259294,498.33441009638,523.2511306012],description:"81/80, 50/49 and 2401/2400, Paul Erlich, 2001"},pipedum_14b:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,313.95067836072,339.14425131559,353.19451315581,366.27579142084,392.4383479509,406.97310157871,418.60090448096,457.84473927605,470.92601754108,508.71637697339,523.2511306012],description:"245/243, 81/80 comma and 25/24 chroma"},pipedum_14c:{frequencies:[261.6255653006,280.31310567921,282.55561052465,305.22982618403,327.03195662575,336.37572681506,363.36884069528,366.27579142084,392.4383479509,403.65087217807,436.04260883433,467.18850946536,470.92601754108,508.71637697339,523.2511306012],description:"245/243, 50/49 comma and 25/24 chroma"},pipedum_15:{frequencies:[261.6255653006,272.52663052146,290.69507255622,301.39265122629,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,454.2110508691,470.92601754108,502.32108537715,523.2511306012],description:"126/125, 128/125 and 875/864, 5-limit, Paul Erlich, 2001"},pipedum_15a:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,381.53728273004,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,502.32108537715,523.2511306012],description:"Septimal version of pipedum_15, Manuel Op de Coul, 2001"},pipedum_15b:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,311.45900631024,327.03195662575,343.38355445704,357.69120255941,382.72082695402,398.6675280771,418.60090448096,439.53094970501,457.84473927605,478.40103369253,498.33441009638,523.2511306012],description:"126/125, 128/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15c:{frequencies:[261.6255653006,274.70684356563,284.76252005507,299.00064605783,313.95067836072,327.03195662575,341.71502406609,358.80077526939,381.53728273004,400.61414686654,418.60090448096,436.04260883433,457.84473927605,480.73697623985,498.33441009638,523.2511306012],description:"49/48, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15d:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,360.55273217989,379.68336007343,398.6675280771,418.60090448096,436.04260883433,457.84473927605,478.40103369253,498.33441009638,523.2511306012],description:"64/63, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15e:{frequencies:[261.6255653006,273.37201925287,286.15296204753,299.00064605783,313.95067836072,332.22294006425,343.38355445704,358.80077526939,381.53728273004,398.6675280771,412.06026534844,436.04260883433,457.84473927605,478.40103369253,500.76768358318,523.2511306012],description:"64/63, 875/864 and 1029/1024, Paul Erlich, 2001"},pipedum_15f:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,387.59343007496,392.4383479509,418.60090448096,436.04260883433,465.11211608996,488.36772189445,490.54793493862,523.2511306012],description:"126/125, 64/63 comma and 28/27 chroma"},pipedum_15g:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"128/125 and 250/243"},pipedum_16:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,355.95315006884,373.75080757229,384.58958099188,400.61414686654,418.60090448096,439.53094970501,457.84473927605,480.73697623985,498.33441009638,523.2511306012],description:"50/49, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_16a:{frequencies:[261.6255653006,272.52663052146,283.88190679319,301.39265122629,313.95067836072,327.03195662575,340.65828815182,354.85238349148,363.36884069528,385.78259356965,401.85686830172,418.60090448096,436.04260883433,454.2110508691,482.22824196207,502.32108537715,523.2511306012],description:"3125/3072 and 1990656/1953125, OdC 2004"},pipedum_17:{frequencies:[261.6255653006,269.10058145205,286.15296204753,294.32876096318,305.22982618403,318.93402246168,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,429.2294430713,448.50096908674,465.11211608996,478.40103369253,508.71637697339,523.2511306012],description:"245/243, 64/63 and 525/512, Paul Erlich, 2001"},pipedum_17a:{frequencies:[261.6255653006,271.31540105247,286.15296204753,296.75121990114,305.22982618403,318.93402246168,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,429.2294430713,448.50096908674,461.31528248922,478.40103369253,504.56359022259,523.2511306012],description:"245/243, 525/512 and 1728/1715, Paul Erlich, 2001"},pipedum_17b:{frequencies:[261.6255653006,264.89588486686,286.15296204753,294.32876096318,305.22982618403,327.03195662575,339.14425131559,343.38355445704,367.91095120397,381.53728273004,392.4383479509,406.97310157871,436.04260883433,441.49314144476,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:"245/243, 64/63 comma and 25/24 chroma"},pipedum_17c:{frequencies:[261.6255653006,273.6806973752,285.83021674664,299.00064605783,310.07474405997,321.55899383997,336.37572681506,348.83408706747,364.90759650026,378.42269266694,392.4383479509,413.43299207996,428.74532511996,448.50096908674,465.11211608996,486.54346200035,504.56359022259,523.2511306012],description:"1605632/1594323 and 177147/175616, Manuel Op de Coul, 2002"},pipedum_17d:{frequencies:[261.6255653006,274.08392555301,284.23518205497,299.00064605783,308.34441624714,319.76457981184,336.37572681506,348.83408706747,365.44523407068,373.05867644715,392.4383479509,411.12588832951,426.35277308246,448.50096908674,465.11211608996,479.64686971777,504.56359022259,523.2511306012],description:"243/242, 99/98 and 64/63, Manuel Op de Coul, 2002"},pipedum_17e:{frequencies:[261.6255653006,271.31540105247,286.15296204753,296.75121990114,310.07474405997,321.92208230347,336.37572681506,348.83408706747,362.16234259141,378.42269266694,395.66829320152,413.43299207996,429.2294430713,445.12682985172,465.11211608996,482.88312345521,504.56359022259,523.2511306012],description:"245/243, 1728/1715 and 32805/32768, Manuel Op de Coul, 2003"},pipedum_17f:{frequencies:[261.6255653006,269.80136421624,285.40970760065,294.32876096318,310.07474405997,319.76457981184,331.11985608357,348.83408706747,359.73515228832,380.54627680087,392.4383479509,413.43299207996,428.11456140098,441.49314144476,465.11211608996,479.64686971777,507.3950357345,523.2511306012],description:"243/242 and 8192/8019, Manuel Op de Coul"},pipedum_17g:{frequencies:[261.6255653006,274.08392555301,285.40970760065,299.00064605783,305.22982618403,319.76457981184,336.37572681506,348.83408706747,359.73515228832,380.54627680087,392.4383479509,406.97310157871,428.11456140098,448.50096908674,457.84473927605,479.64686971777,499.46698830115,523.2511306012],description:"243/242, 896/891 and 99/98, Manuel Op de Coul"},pipedum_18:{frequencies:[261.6255653006,272.52663052146,280.31310567921,296.75121990114,305.22982618403,317.94773560837,327.03195662575,340.65828815182,350.39138209902,379.84156147346,390.69417751556,406.97310157871,418.60090448096,436.04260883433,448.50096908674,474.80195184183,488.36772189445,508.71637697339,523.2511306012],description:"875/864, 686/675 and 128/125, Paul Erlich, 2001"},pipedum_18a:{frequencies:[261.6255653006,269.10058145205,280.31310567921,293.02063313667,305.22982618403,313.95067836072,327.03195662575,341.85740532612,356.10146388137,366.27579142084,384.42940207435,400.44729382745,418.60090448096,436.04260883433,448.50096908674,467.18850946536,488.36772189445,508.71637697339,523.2511306012],description:"875/864, 686/675 and 50/49, Paul Erlich, 2001"},pipedum_18b:{frequencies:[261.6255653006,272.52663052146,280.31310567921,296.75121990114,305.22982618403,317.94773560837,327.03195662575,346.20975655133,356.10146388137,373.75080757229,384.42940207435,400.44729382745,418.60090448096,436.04260883433,448.50096908674,467.18850946536,488.36772189445,508.71637697339,523.2511306012],description:"1728/1715, 875/864 and 686/675, Paul Erlich, 2001"},pipedum_19:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,301.39265122629,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,401.85686830172,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"81/80 and 15625/15552 are homophonic intervals, inverse of Mandelbaum"},pipedum_19a:{frequencies:[261.6255653006,271.25338610366,282.55561052465,294.32876096318,301.39265122629,313.95067836072,327.03195662575,339.06673262958,353.19451315581,361.67118147155,376.74081403286,392.4383479509,408.78994578219,416.64520105522,434.00541776586,452.08897683944,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"3125/3072 and 15625/15552 are homophonic intervals"},pipedum_19b:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"15625/15552 and 78732/78125, Paul Erlich, TL 19-2-2001"},pipedum_19c:{frequencies:[261.6255653006,269.10058145205,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19d:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19e:{frequencies:[261.6255653006,269.10058145205,280.31310567921,287.04062021552,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,476.92160341255,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19f:{frequencies:[261.6255653006,269.10058145205,279.06726965397,287.04062021552,305.22982618403,315.35224388912,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,434.10464168396,448.50096908674,476.92160341255,490.54793493862,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19g:{frequencies:[261.6255653006,269.10058145205,280.31310567921,288.32205155576,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,360.4025644447,379.84156147346,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,474.80195184183,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19h:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,353.19451315581,366.27579142084,381.53728273004,392.4383479509,412.06026534844,415.27867508032,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"126/125, 81/80 comma and 49/48 chroma"},pipedum_19i:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.22982618403,321.92208230347,327.03195662575,343.38355445704,348.83408706747,367.91095120397,381.53728273004,392.4383479509,406.97310157871,429.2294430713,436.04260883433,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"225/224, 81/80 comma and 49/48 chroma"},pipedum_19j:{frequencies:[261.6255653006,266.96486255163,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,333.70607818954,358.95027559242,366.27579142084,373.75080757229,381.37837507376,410.22888639134,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.78610798918,523.2511306012],description:"21/20, 3136/3125 and 2401/2400, Gene Ward Smith, 2002"},pipedum_19k:{frequencies:[261.6255653006,267.90457886781,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,334.88072358477,357.69120255941,366.27579142084,373.75080757229,382.72082695402,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,510.98743222773,523.2511306012],description:"21/20, 3136/3125 and 6144/6125, Gene Ward Smith, 2002"},pipedum_19l:{frequencies:[261.6255653006,267.07609791103,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,333.84512238879,358.80077526939,366.27579142084,373.75080757229,381.53728273004,410.05802887931,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.57253609913,523.2511306012],description:"21/20, 2401/2400 and 6144/6125, Gene Ward Smith, 2002"},pipedum_19m:{frequencies:[261.6255653006,269.10058145205,293.02063313667,299.00064605783,305.22982618403,313.95067836072,317.94773560837,348.83408706747,358.80077526939,366.27579142084,373.75080757229,406.97310157871,418.60090448096,430.56093032327,436.04260883433,448.50096908674,488.36772189445,502.32108537715,508.71637697339,523.2511306012],description:"126/125, 1728/1715 and 16/15, Gene Ward Smith, 2002"},pipedum_19n:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,305.22982618403,313.95067836072,320.49131749323,327.03195662575,333.70607818954,366.27579142084,373.75080757229,381.53728273004,392.4383479509,427.32175665765,436.04260883433,448.50096908674,457.84473927605,467.18850946536,512.78610798918,523.2511306012],description:"126/125, 2401/2400 and 16/15, Gene Ward Smith, 2002"},pipedum_19o:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,502.32108537715,523.2511306012],description:"225/224, 3136/3125 and 4375/4374, OdC 2000"},pipedum_21:{frequencies:[261.6255653006,267.07609791103,280.31310567921,284.8811711051,299.00064605783,305.22982618403,320.35783506196,327.03195662575,341.85740532612,348.83408706747,366.27579142084,373.75080757229,392.4383479509,400.44729382745,418.60090448096,427.32175665765,448.50096908674,457.84473927605,480.53675259294,488.36772189445,512.57253609913,523.2511306012],description:"36/35, 225/224 and 2401/2400, P. Erlich, 2001. Just PB version of miracle1"},pipedum_21a:{frequencies:[261.6255653006,265.7783520514,286.15296204753,290.69507255622,299.00064605783,305.22982618403,327.03195662575,332.22294006425,343.38355445704,348.83408706747,373.75080757229,381.53728273004,392.4383479509,398.6675280771,429.2294430713,436.04260883433,448.50096908674,457.84473927605,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"1029/1024, 81/80 comma and 25/24 chroma"},pipedum_21b:{frequencies:[261.6255653006,267.07609791103,279.06726965397,284.8811711051,299.00064605783,305.22982618403,318.93402246168,325.57848126297,343.38355445704,348.83408706747,366.27579142084,372.08969287196,392.4383479509,398.6675280771,418.60090448096,427.32175665765,448.50096908674,457.84473927605,478.40103369253,488.36772189445,496.11959049595,523.2511306012],description:"36/35, 225/224 and 1029/1024, Gene Ward Smith, 2002"},pipedum_21c:{frequencies:[261.6255653006,269.46602871384,279.06726965397,287.4304306281,297.67175429757,306.59245933664,317.51653791741,327.03195662575,344.91651675372,348.83408706747,367.91095120397,372.08969287196,392.4383479509,396.89567239676,418.60090448096,431.14564594215,446.50763144636,459.88868900496,476.27480687611,490.54793493862,508.02646066786,523.2511306012],description:"First 128/125 and ampersand comma Fokker block"},pipedum_22:{frequencies:[261.6255653006,267.90457886781,279.06726965397,285.76488412567,299.40669857094,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,365.77905168086,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,457.22381460107,479.0507177135,490.54793493862,510.98743222773,523.2511306012],description:"3125/3072 and 2109375/2097152 are homophonic intervals"},pipedum_22a:{frequencies:[261.6255653006,267.90457886781,279.06726965397,287.4304306281,297.67175429757,306.59245933664,317.51653791741,327.03195662575,334.88072358477,348.83408706747,357.20610515709,372.08969287196,381.01984550089,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,476.27480687611,490.54793493862,508.02646066786,523.2511306012],description:"2048/2025 and 2109375/2097152 are homophonic intervals"},pipedum_22b:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,357.69120255941,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:'2025/2048, 245/243 and 64/63. P. Erlich "7-limit Indian", TL 19-12-2000'},pipedum_22b2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,448.50096908674,465.11211608996,478.40103369253,490.54793493862,504.56359022259,523.2511306012],description:"Version of pipedum_22b with other shape, Paul Erlich"},pipedum_22c:{frequencies:[261.6255653006,267.07609791103,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,512.57253609913,523.2511306012],description:"1728/1715, 64/63 and 50/49, Paul Erlich, 2001"},pipedum_22d:{frequencies:[261.6255653006,269.10058145205,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,333.84512238879,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,410.05802887931,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,508.71637697339,523.2511306012],description:"1728/1715, 875/864 and 64/63, Paul Erlich, 2001"},pipedum_22e:{frequencies:[261.6255653006,269.10058145205,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,384.42940207435,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 50/49, Paul Erlich, 2001"},pipedum_22f:{frequencies:[261.6255653006,269.10058145205,276.78916949353,290.69507255622,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,470.92601754108,494.58536650191,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 875/864, Paul Erlich, 2001"},pipedum_22g:{frequencies:[261.6255653006,267.07609791103,279.06726965397,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,478.40103369253,490.54793493862,512.57253609913,523.2511306012],description:"225/224, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_22h:{frequencies:[261.6255653006,269.10058145205,280.31310567921,287.04062021552,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,476.92160341255,488.36772189445,508.71637697339,523.2511306012],description:"225/224, 1728/1715 and 875/864, Paul Erlich, 2001"},pipedum_22i:{frequencies:[261.6255653006,269.10058145205,279.06726965397,288.32205155576,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,474.80195184183,490.54793493862,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 245/243, Paul Erlich, 2001"},pipedum_22j:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,299.00064605783,305.22982618403,320.35783506196,332.22294006425,336.37572681506,348.83408706747,353.19451315581,373.75080757229,387.59343007496,392.4383479509,406.97310157871,427.14378008261,436.04260883433,448.50096908674,465.11211608996,480.53675259294,498.33441009638,504.56359022259,523.2511306012],description:"50/49, 64/63 and 245/243, Gene Ward Smith, 2002"},pipedum_22k:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,359.73515228832,367.91095120397,380.54627680087,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"121/120, 2048/2025 and 4125/4096, Manuel Op de Coul"},pipedum_22l:{frequencies:[261.6255653006,275.62199471997,284.23518205497,290.69507255622,303.18419419197,310.07474405997,319.76457981184,330.74639366397,341.08221846597,348.83408706747,363.82103303037,372.08969287196,387.59343007496,404.24559225596,413.43299207996,426.35277308246,440.99519155196,454.77629128796,465.11211608996,485.09471070715,496.11959049595,511.62332769895,523.2511306012],description:"121/120, 736/729, 100/99 and 2048/2025"},pipedum_23:{frequencies:[261.6255653006,271.25338610366,276.85245005354,287.04062021552,297.60371503945,302.80736724606,313.95067836072,325.50406332439,332.22294006425,344.44874425862,348.83408706747,363.36884069528,376.74081403286,384.51729174103,398.6675280771,413.33849311034,420.56578784176,436.04260883433,452.08897683944,461.42075008924,478.40103369253,496.00619173241,504.67894541011,523.2511306012],description:"6144/6125, 15625/1552 and 5103/5000, Manuel Op de Coul, 2003"},pipedum_24:{frequencies:[261.6255653006,267.57160087561,275.93321340298,285.40970760065,290.69507255622,299.7792935736,310.07474405997,319.76457981184,327.03195662575,338.26335715633,348.83408706747,356.76213450082,367.91095120397,380.54627680087,392.4383479509,401.35740131342,413.43299207996,426.35277308246,436.04260883433,449.66894036041,465.11211608996,479.64686971777,490.54793493862,507.3950357345,523.2511306012],description:"121/120, 16384/16335 and 32805/32768. Manuel Op de Coul, 2001"},pipedum_24a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,321.92208230347,327.03195662575,343.38355445704,348.83408706747,366.27579142084,367.91095120397,381.53728273004,392.4383479509,412.06026534844,418.60090448096,429.2294430713,436.04260883433,457.84473927605,470.92601754108,488.36772189445,490.54793493862,515.07533168556,523.2511306012],description:"49/48, 81/80 and 128/125, Gene Ward Smith, 2002"},pipedum_24b:{frequencies:[261.6255653006,271.31540105247,275.62199471997,289.72987407313,294.32876096318,305.22982618403,310.07474405997,325.94610833227,331.11985608357,343.38355445704,348.83408706747,361.75386806997,372.50983809402,386.30649876417,392.4383479509,406.97310157871,413.43299207996,434.59481110969,441.49314144476,457.84473927605,465.11211608996,482.33849075995,496.67978412536,515.07533168556,523.2511306012],description:"49/48, 81/80 and 531441/524288"},pipedum_25:{frequencies:[261.6255653006,268.26840191956,274.70684356563,281.29980781121,291.99281841585,299.00064605783,306.17666156322,313.95067836072,327.03195662575,335.33550239945,343.38355445704,351.62475976401,364.99102301981,373.75080757229,382.72082695402,392.4383479509,408.78994578219,418.60090448096,429.2294430713,439.53094970501,447.89271634391,467.18850946536,478.40103369253,490.54793493862,502.32108537715,523.2511306012],description:"65625/65536, 1029/1024 and 3125/3072, Manuel Op de Coul, 2003"},pipedum_26:{frequencies:[261.6255653006,267.07609791103,274.70684356563,286.15296204753,292.89859205665,299.00064605783,305.22982618403,313.95067836072,327.03195662575,333.84512238879,341.71502406609,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,400.61414686654,410.05802887931,418.60090448096,436.04260883433,448.50096908674,457.84473927605,467.3831713443,478.40103369253,498.33441009638,512.57253609913,523.2511306012],description:"1029/1024, 1728/1715 and 50/49, Paul Erlich, 2001"},pipedum_26a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,294.32876096318,305.22982618403,306.59245933664,321.92208230347,325.57848126297,327.03195662575,343.38355445704,348.83408706747,366.27579142084,367.91095120397,381.53728273004,392.4383479509,408.78994578219,412.06026534844,429.2294430713,436.04260883433,457.84473927605,459.88868900496,465.11211608996,488.36772189445,490.54793493862,515.07533168556,523.2511306012],description:"50/49, 81/80 and 525/512, Gene Ward Smith, 2002"},pipedum_26b:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,290.69507255622,301.39265122629,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,392.4383479509,401.85686830172,408.78994578219,418.60090448096,436.04260883433,446.50763144636,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"81/80 and 78125/73728, Gene Ward Smith, 2005"},pipedum_27:{frequencies:[261.6255653006,271.20240005245,278.95104005395,284.76252005507,292.89859205665,299.00064605783,307.54352165948,316.40280006119,325.44288006294,332.22294006425,341.71502406609,351.47831046798,358.80077526939,369.05222599138,379.68336007343,390.53145607553,398.6675280771,410.05802887931,418.60090448096,430.56093032327,442.86267118965,455.62003208812,468.63774729064,478.40103369253,492.06963465517,502.32108537715,516.67311638793,523.2511306012],description:"126/125, 1728/1715 and 4000/3969 are homophonic intervals, Paul Erlich"},pipedum_27a:{frequencies:[261.6255653006,269.10058145205,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,508.71637697339,523.2511306012],description:"126/126, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_27b:{frequencies:[261.6255653006,266.96486255163,272.52663052146,280.31310567921,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,333.70607818954,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,410.22888639134,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,467.18850946536,488.36772189445,502.32108537715,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 128/125, Paul Erlich, 2001"},pipedum_27c:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 686/675, Paul Erlich, 2001"},pipedum_27d:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,355.95315006884,366.27579142084,373.75080757229,384.58958099188,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 64/63, Paul Erlich, 2001"},pipedum_27e:{frequencies:[261.6255653006,269.10058145205,274.70684356563,282.55561052465,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.35783506196,329.64821227876,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,415.27867508032,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.4917875937,498.33441009638,508.71637697339,523.2511306012],description:"2401/2400, 126/125 and 245/243, Paul Erlich, 2001"},pipedum_27f:{frequencies:[261.6255653006,267.07609791103,272.52663052146,280.31310567921,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,333.84512238879,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,410.05802887931,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,467.18850946536,488.36772189445,502.32108537715,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 128/125, Paul Erlich, 2001"},pipedum_27g:{frequencies:[261.6255653006,267.07609791103,274.59243005311,280.31310567921,290.81619550312,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.72988009104,488.36772189445,498.54204943392,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 686/675, Paul Erlich, 2001"},pipedum_27h:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_27i:{frequencies:[261.6255653006,269.10058145205,274.70684356563,282.43792805463,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,329.51091606373,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,415.4517078616,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.69365917187,498.33441009638,508.71637697339,523.2511306012],description:"2401/2400, 1728/1715 and 245/243, Paul Erlich, 2001"},pipedum_27j:{frequencies:[261.6255653006,269.16210421872,276.91574508099,282.55561052465,290.69507255622,299.06900468747,305.16005936662,313.95067836072,322.99452506247,329.57286411595,339.06673262958,348.83408706747,358.88280562497,366.19207123994,376.74081403286,387.59343007496,395.48743693914,406.88007915549,418.60090448096,423.83341578697,436.04260883433,448.60350703121,461.52624180165,470.92601754108,484.4917875937,498.44834114579,508.60009894437,523.2511306012],description:"78732/78125 and 390625000/387420489"},pipedum_27k:{frequencies:[261.6255653006,264.89588486686,275.62199471997,279.38237857051,290.69507255622,294.32876096318,298.00787047521,310.07474405997,313.95067836072,331.11985608357,344.52749339997,348.83408706747,353.19451315581,367.49599295996,372.50983809402,387.59343007496,392.4383479509,397.34382730029,413.43299207996,418.60090448096,441.49314144476,447.01180571282,459.36999119996,465.11211608996,470.92601754108,496.67978412536,516.79124009995,523.2511306012],description:"67108864/66430125 and 25/24"},pipedum_28:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,285.76488412567,299.40669857094,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,457.22381460107,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"393216/390625 and 16875/16384"},pipedum_29:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,288.44218574391,294.32876096318,300.33547037059,310.07474405997,316.40280006119,325.57848126297,332.22294006425,341.85740532612,348.83408706747,355.95315006884,366.27579142084,373.75080757229,384.58958099188,392.4383479509,400.44729382745,412.06026534844,420.46965851882,434.10464168396,442.96392008567,455.80987376816,465.11211608996,474.60420009179,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"5120/5103, 225/224 and 50421/50000, Manuel Op de Coul, 2003"},pipedum_29a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,290.69507255622,294.32876096318,305.22982618403,313.95067836072,317.94773560837,327.03195662575,339.14425131559,343.38355445704,348.83408706747,363.36884069528,366.27579142084,372.60080508745,381.53728273004,392.4383479509,408.78994578219,412.06026534844,429.2294430713,436.04260883433,441.49314144476,457.84473927605,470.92601754108,476.92160341255,490.54793493862,508.71637697339,515.07533168556,523.2511306012],description:"49/48, 55/54, 65/64, 91/90 and 100/99"},pipedum_31:{frequencies:[261.6255653006,271.62175694356,275.93321340298,281.68182201554,289.72987407313,294.32876096318,300.46061014991,310.42486507835,316.89204976748,321.92208230347,331.11985608357,338.01818641865,343.38355445704,356.50355598842,362.16234259141,367.91095120397,380.27045972098,386.30649876417,392.4383479509,407.43263541533,413.89982010446,422.52273302331,434.59481110969,441.49314144476,450.69091522486,465.63729761752,475.33807465122,482.88312345521,496.67978412536,507.02727962797,515.07533168556,523.2511306012],description:"81/80, 225/224 and 1029/1024 are homophonic intervals"},pipedum_31a:{frequencies:[261.6255653006,269.46602871384,275.93321340298,282.55561052465,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,321.48549464138,329.20114651277,336.83253589231,344.91651675372,353.19451315581,359.28803828513,367.91095120397,376.74081403286,385.78259356965,392.4383479509,401.85686830172,411.50143314096,421.04066986538,431.14564594215,441.49314144476,452.08897683944,459.88868900496,470.92601754108,482.22824196207,490.54793493862,502.32108537715,514.3767914262,523.2511306012],description:"393216/390625 and 2109375/2097152 are homophonic intervals"},pipedum_31b:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.54352165948,327.03195662575,333.84512238879,339.14425131559,343.38355445704,348.83408706747,356.10146388137,373.75080757229,381.53728273004,387.59343007496,392.4383479509,400.61414686654,406.97310157871,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"245/243, 1029/1024 comma and 25/24 chroma"},pipedum_31c:{frequencies:[261.6255653006,265.7783520514,274.70684356563,279.06726965397,286.15296204753,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,334.88072358477,343.38355445704,348.83408706747,360.55273217989,366.27579142084,373.75080757229,384.58958099188,392.4383479509,398.6675280771,412.06026534844,418.60090448096,429.2294430713,439.53094970501,448.50096908674,457.84473927605,470.92601754108,480.73697623985,490.54793493862,502.32108537715,515.07533168556,523.2511306012],description:"126/125, 225/224 and 1029/1024, Op de Coul"},pipedum_31d:{frequencies:[261.6255653006,269.10058145205,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,316.53463456122,327.03195662575,336.37572681506,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,403.65087217807,406.97310157871,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,478.40103369253,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"1728/1715, 225/224 and 81/80"},pipedum_31e:{frequencies:[261.6255653006,267.07609791103,272.52663052146,276.85245005354,286.15296204753,290.69507255622,299.00064605783,305.22982618403,311.45900631024,317.94773560837,327.03195662575,332.22294006425,343.38355445704,348.83408706747,357.69120255941,363.36884069528,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,415.27867508032,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,476.92160341255,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:'81/80, 126/125 and 1029/1024, Gene Smith (2005) "Synstargam"'},pipedum_32:{frequencies:[261.6255653006,267.07609791103,270.30192333353,280.31310567921,286.15296204753,292.11448209019,299.00064605783,305.22982618403,311.5887808962,315.35224388912,325.57848126297,333.84512238879,337.87740416691,348.83408706747,356.10146388137,360.4025644447,367.91095120397,379.84156147346,384.42940207435,394.1903048614,406.97310157871,415.4517078616,420.46965851882,429.2294430713,443.14848838571,448.50096908674,457.84473927605,474.80195184183,480.53675259294,490.54793493862,500.76768358318,512.57253609913,523.2511306012],description:"225/224, 2048/2025 and 117649/116640"},pipedum_32a:{frequencies:[261.6255653006,268.26840191956,274.59243005311,280.31310567921,286.15296204753,292.89859205665,299.00064605783,305.22982618403,311.5887808962,320.35783506196,327.03195662575,333.84512238879,341.71502406609,348.83408706747,356.10146388137,364.4960256705,372.08969287196,381.53728273004,390.53145607553,398.6675280771,406.97310157871,416.56688648057,425.24536328225,434.10464168396,438.17172313528,450.50320555588,459.88868900496,469.46970335923,480.53675259294,490.54793493862,500.76768358318,512.57253609913,523.2511306012],description:"589824/588245, 225/224 and 2048/2025"},pipedum_34:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,290.69507255622,294.32876096318,301.39265122629,306.59245933664,313.95067836072,321.48549464138,327.03195662575,334.88072358477,340.65828815182,348.83408706747,354.85238349148,363.36884069528,367.91095120397,376.74081403286,385.78259356965,392.4383479509,401.85686830172,408.78994578219,418.60090448096,425.82286018978,436.04260883433,446.50763144636,454.2110508691,465.11211608996,470.92601754108,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"15625/15552 and 393216/390625 are homophonic intervals"},pipedum_34a:{frequencies:[261.6255653006,264.89588486686,272.52663052146,279.06726965397,282.55561052465,290.69507255622,294.32876096318,301.39265122629,306.59245933664,313.95067836072,317.87506184023,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,423.83341578697,436.04260883433,441.49314144476,452.08897683944,465.11211608996,470.92601754108,484.4917875937,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"15625/15552 and 2048/2025, Manuel Op de Coul, 2001"},pipedum_34b:{frequencies:[261.6255653006,267.57160087561,272.52663052146,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.7792935736,310.07474405997,313.95067836072,319.76457981184,327.03195662575,334.88072358477,342.49164912079,348.83408706747,356.76213450082,359.73515228832,367.91095120397,380.54627680087,383.71749577421,392.4383479509,399.70572476481,408.78994578219,418.60090448096,428.11456140098,436.04260883433,441.49314144476,449.66894036041,465.11211608996,470.92601754108,479.64686971777,490.54793493862,502.32108537715,511.62332769895,523.2511306012],description:"100/99, 243/242 and 5632/5625, Manuel Op de Coul"},pipedum_36:{frequencies:[261.6255653006,267.07609791103,269.10058145205,280.31310567921,286.15296204753,290.69507255622,294.32876096318,300.46061014991,305.22982618403,311.5887808962,320.35783506196,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,356.10146388137,367.91095120397,373.75080757229,381.53728273004,384.42940207435,392.4383479509,400.61414686654,406.97310157871,420.46965851882,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,467.3831713443,480.53675259294,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"1029/1024, 245/243 comma and 50/49 chroma, Gene Ward Smith, 2001"},pipedum_36a:{frequencies:[261.6255653006,264.89588486686,275.62199471997,275.93321340298,279.06726965397,290.69507255622,293.99679436797,294.32876096318,310.07474405997,310.42486507835,313.95067836072,327.03195662575,330.74639366397,331.11985608357,348.83408706747,349.22797321314,353.19451315581,367.91095120397,372.08969287196,372.50983809402,387.59343007496,392.4383479509,397.34382730029,413.43299207996,413.89982010446,418.60090448096,436.04260883433,440.99519155196,441.49314144476,465.11211608996,465.63729761752,470.92601754108,490.54793493862,496.11959049595,496.67978412536,516.79124009995,523.2511306012],description:"1125/1024 and 531441/524288, Op de Coul"},pipedum_37:{frequencies:[261.6255653006,263.718569823,276.85245005354,279.06726965397,280.31310567921,290.69507255622,293.02063313667,299.00064605783,308.98710943476,311.45900631024,313.95067836072,325.57848126297,332.22294006425,333.70607818954,346.06556256693,348.83408706747,351.62475976401,353.19451315581,370.78453132171,373.75080757229,376.74081403286,390.69417751556,392.4383479509,400.44729382745,415.27867508032,418.60090448096,421.94971171681,436.04260883433,444.94143758605,448.50096908674,465.11211608996,467.18850946536,470.92601754108,494.37937509562,498.33441009638,502.32108537715,519.0983438504,523.2511306012],description:"250/243, 3136/3125 and 3125/3087, Gene Ward Smith, 2002"},pipedum_38:{frequencies:[261.6255653006,271.25338610366,272.52663052146,280.3771918945,282.55561052465,290.69507255622,292.95365699196,301.39265122629,302.80736724606,313.95067836072,315.42434088132,325.50406332439,327.03195662575,336.45263027341,339.06673262958,348.83408706747,350.47148986813,361.67118147155,363.36884069528,376.74081403286,378.50920905758,390.60487598927,392.4383479509,403.74315632809,406.88007915549,418.60090448096,420.56578784176,434.00541776586,436.04260883433,452.08897683944,454.2110508691,467.29531982417,470.92601754108,484.4917875937,488.25609498659,502.32108537715,504.67894541011,519.21702202686,523.2511306012],description:"81/80 and 1224440064/1220703125, Manuel Op de Coul, 2001"},pipedum_38a:{frequencies:[261.6255653006,268.26840191956,272.52663052146,274.70684356563,279.06726965397,286.15296204753,293.02063313667,294.32876096318,305.22982618403,306.59245933664,313.95067836072,321.92208230347,327.03195662575,329.64821227876,340.65828815182,343.38355445704,348.83408706747,357.69120255941,366.27579142084,367.91095120397,381.53728273004,383.2405741708,390.69417751556,392.4383479509,408.78994578219,412.06026534844,418.60090448096,429.2294430713,436.04260883433,439.53094970501,457.84473927605,459.88868900496,470.92601754108,476.92160341255,488.36772189445,490.54793493862,510.98743222773,515.07533168556,523.2511306012],description:"50/49, 81/80 and 3125/3072, Gene Ward Smith, 2002"},pipedum_41:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.70684356563,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,303.67253115248,308.34441624714,313.95067836072,320.49131749323,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,354.2846196779,359.73515228832,366.27579142084,373.75080757229,381.53728273004,387.40708707973,392.4383479509,400.61414686654,406.97310157871,412.06026534844,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,495.99846754905,503.62921320365,513.90736041189,523.2511306012],description:"100/99 105/104 196/195 275/273 385/384, Paul Erlich, TL 3-11-2000"},pipedum_41a:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.70684356563,280.31310567921,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,400.61414686654,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,495.99846754905,503.62921320365,513.90736041189,523.2511306012],description:"pipedum_41 improved shape by Manuel Op de Coul, all intervals superparticular"},pipedum_41b:{frequencies:[261.6255653006,265.7783520514,271.31540105247,274.70684356563,279.06726965397,284.8811711051,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,498.33441009638,504.56359022259,515.07533168556,523.2511306012],description:"pipedum_41 more improved shape by M. OdC, all intervals superparticular"},pipedum_41c:{frequencies:[261.6255653006,267.07609791103,271.31540105247,275.93321340298,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,315.35224388912,320.35783506196,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,356.10146388137,360.4025644447,367.91095120397,373.75080757229,381.53728273004,384.42940207435,392.4383479509,398.6675280771,406.97310157871,410.05802887931,420.46965851882,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,474.80195184183,480.53675259294,490.54793493862,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"225/224, 245/243 and 1029/1024, Gene Ward Smith, 2002"},pipedum_41d:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,282.55561052465,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,317.51653791741,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,423.83341578697,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.11959049595,502.32108537715,517.37477513058,523.2511306012],description:"3125/3072 and 32805/32768"},pipedum_43:{frequencies:[261.6255653006,269.10058145205,273.37201925287,274.70684356563,282.55561052465,286.15296204753,287.04062021552,290.69507255622,299.00064605783,305.22982618403,307.54352165948,313.95067836072,322.92069774245,327.03195662575,328.04642310345,332.22294006425,341.71502406609,343.38355445704,348.83408706747,358.80077526939,366.27579142084,369.05222599138,376.74081403286,379.68336007343,381.53728273004,392.4383479509,398.6675280771,410.05802887931,412.06026534844,418.60090448096,423.93031414449,430.56093032327,436.04260883433,448.50096908674,455.62003208812,457.84473927605,470.92601754108,478.40103369253,492.06963465517,494.47231841813,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 126/125 and 12288/12005, Gene Ward Smith, 2002"},pipedum_45:{frequencies:[261.6255653006,265.7783520514,267.07609791103,274.70684356563,279.06726965397,280.31310567921,284.8811711051,293.02063313667,294.32876096318,299.00064605783,303.74668805875,305.22982618403,313.95067836072,320.49131749323,325.57848126297,327.03195662575,336.37572681506,341.85740532612,343.38355445704,348.83408706747,356.10146388137,358.80077526939,366.27579142084,372.08969287196,373.75080757229,384.58958099188,392.4383479509,398.6675280771,400.61414686654,406.97310157871,418.60090448096,420.46965851882,427.32175665765,436.04260883433,439.53094970501,448.50096908674,455.80987376816,457.84473927605,465.11211608996,478.40103369253,480.73697623985,488.36772189445,498.33441009638,512.78610798918,515.07533168556,523.2511306012],description:"81/80, 525/512 and 2401/2400, Gene Ward Smith, 2002"},scala205pipedum_45a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,276.85245005354,282.55561052465,288.32205155576,290.69507255622,296.75121990114,299.00064605783,305.22982618403,311.45900631024,313.95067836072,320.49131749323,322.99452506247,329.64821227876,336.37572681506,339.14425131559,345.98646186692,348.83408706747,356.10146388137,363.28578496026,366.27579142084,373.75080757229,376.82694590621,384.42940207435,392.4383479509,395.66829320152,403.65087217807,406.97310157871,415.27867508032,423.83341578697,427.14378008261,436.04260883433,439.53094970501,448.50096908674,457.84473927605,461.31528248922,470.92601754108,474.80195184183,484.4917875937,494.47231841813,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 2401/2400 and 4375/4374, Gene Ward Smith"},pipedum_46:{frequencies:[261.6255653006,265.7783520514,270.41454913492,274.70684356563,279.06726965397,280.31310567921,286.15296204753,290.69507255622,295.30928005711,300.46061014991,305.22982618403,310.07474405997,313.95067836072,320.49131749323,325.57848126297,327.03195662575,332.22294006425,339.14425131559,343.38355445704,348.83408706747,354.37113606854,360.55273217989,366.27579142084,372.08969287196,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,427.32175665765,429.2294430713,436.04260883433,442.96392008567,450.69091522486,457.84473927605,465.11211608996,470.92601754108,480.73697623985,488.36772189445,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"126/125, 1029/1024 and 5120/5103. Manuel Op de Coul, 2001"},pipedum_46a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,279.06726965397,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.54352165948,313.95067836072,320.35783506196,320.49131749323,327.03195662575,332.22294006425,336.37572681506,343.38355445704,348.83408706747,353.19451315581,358.80077526939,366.12324007081,366.27579142084,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,427.14378008261,427.32175665765,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,470.92601754108,478.40103369253,488.36772189445,490.54793493862,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"126/125, 1029/1024 and 245/243, Gene Ward Smith, 2002"},pipedum_46b:{frequencies:[261.6255653006,264.89588486686,271.25338610366,272.52663052146,279.06726965397,282.55561052465,283.88190679319,290.69507255622,294.32876096318,301.39265122629,302.80736724606,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,334.88072358477,339.06673262958,340.65828815182,348.83408706747,353.19451315581,361.67118147155,363.36884069528,372.08969287196,376.74081403286,381.45007420827,387.59343007496,392.4383479509,401.85686830172,403.74315632809,408.78994578219,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,452.08897683944,454.2110508691,465.11211608996,470.92601754108,482.22824196207,484.4917875937,490.54793493862,502.32108537715,508.60009894437,516.79124009995,523.2511306012],description:"2048/2025 and 78732/78125"},pipedum_46c:{frequencies:[261.6255653006,266.47048317654,271.31540105247,274.08392555301,279.06726965397,282.62020942966,287.78812183066,290.69507255622,297.67175429757,299.7792935736,306.97399661937,310.07474405997,313.95067836072,319.76457981184,325.57848126297,328.90071066361,332.22294006425,339.14425131559,342.60490694126,348.83408706747,355.29397756872,359.73515228832,363.36884069528,372.08969287196,374.72411696701,383.71749577421,387.59343007496,394.68085279633,399.70572476481,406.97310157871,411.12588832951,418.60090448096,426.35277308246,431.68218274599,436.04260883433,446.50763144636,449.66894036041,460.46099492906,465.11211608996,467.18850946536,479.64686971777,484.4917875937,496.11959049595,499.63215595601,511.62332769895,516.79124009995,523.2511306012],description:"126/125, 176/175, 385/384 and 896/891, Paul Erlich"},pipedum_46d:{frequencies:[261.6255653006,267.23182741418,272.79915715198,274.70684356563,278.36648688978,283.42769574232,287.78812183066,291.52562990638,297.59908052943,299.7792935736,303.67253115248,311.77046531655,313.95067836072,320.67819289702,324.7609013714,327.03195662575,334.03978426773,340.11323489078,343.04051394309,345.34574619679,354.2846196779,359.73515228832,366.27579142084,374.12455837986,376.74081403286,381.53728273004,389.71308164569,392.4383479509,402.90337056292,408.13588186894,411.12588832951,419.69101100305,425.14154361347,431.68218274599,439.53094970501,445.38637902364,448.50096908674,457.84473927605,467.65569797482,470.92601754108,479.64686971777,485.87604984397,490.54793493862,503.62921320365,510.16985233617,519.61744219425,523.2511306012],description:"91/90, 121/120, 126/125, 169/168 and 176/175"},pipedum_5:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"16/15 and 27/25"},pipedum_50:{frequencies:[261.6255653006,267.07609791103,269.10058145205,273.37201925287,274.70684356563,276.85245005354,284.76252005507,286.15296204753,290.69507255622,299.00064605783,300.46061014991,305.22982618403,307.54352165948,313.95067836072,316.40280006119,320.49131749323,327.03195662575,332.22294006425,333.84512238879,341.71502406609,343.38355445704,348.83408706747,358.80077526939,360.55273217989,361.60320006994,366.27579142084,373.75080757229,379.68336007343,381.53728273004,392.4383479509,398.6675280771,400.61414686654,410.05802887931,412.06026534844,418.60090448096,423.93031414449,427.14378008261,436.04260883433,445.12682985172,448.50096908674,455.62003208812,457.84473927605,470.92601754108,478.40103369253,480.73697623985,484.4917875937,498.33441009638,500.76768358318,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 126/125 and 16807/16384, Gene Ward Smith, 2002"},pipedum_53:{frequencies:[261.6255653006,264.89588486686,269.16210421872,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,298.00787047521,302.80736724606,306.59245933664,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,403.74315632809,408.78994578219,413.89982010446,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.81259276034,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"15625/15552 and 32805/32768, Manuel Op de Coul, 2001"},pipedum_53a:{frequencies:[261.6255653006,266.96486255163,269.10058145205,272.52663052146,276.85245005354,280.31310567921,282.55561052465,288.32205155576,290.69507255622,294.32876096318,299.00064605783,302.80736724606,305.22982618403,311.45900631024,313.95067836072,320.35783506196,322.99452506247,327.03195662575,332.22294006425,336.37572681506,339.14425131559,346.06556256693,348.83408706747,353.19451315581,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,387.59343007496,392.4383479509,398.6675280771,403.65087217807,406.97310157871,415.27867508032,418.60090448096,423.83341578697,430.56093032327,436.04260883433,441.49314144476,448.50096908674,454.2110508691,457.84473927605,467.18850946536,470.92601754108,480.53675259294,484.4917875937,490.54793493862,498.33441009638,504.56359022259,508.71637697339,519.0983438504,523.2511306012],description:"225/224, 1728/1715 and 4375/4374, Manuel Op de Coul, 2001"},pipedum_53b:{frequencies:[261.6255653006,266.96486255163,269.10058145205,272.52663052146,274.70684356563,280.31310567921,286.03378130532,288.32205155576,290.69507255622,293.02063313667,299.00064605783,301.39265122629,305.22982618403,311.45900631024,313.95067836072,320.35783506196,322.92069774245,327.03195662575,333.70607818954,336.37572681506,341.85740532612,343.24053756638,348.83408706747,351.62475976401,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,389.3237578878,392.4383479509,400.44729382745,403.65087217807,406.97310157871,410.22888639134,418.60090448096,427.14378008261,430.56093032327,436.04260883433,439.53094970501,448.50096908674,457.65405008851,457.84473927605,467.18850946536,470.92601754108,478.60036745656,480.53675259294,488.36772189445,498.33441009638,502.32108537715,512.57253609913,512.78610798918,523.2511306012],description:"225/224, 1728/1715 and 3125/3087, Gene Ward Smith, 2002"},pipedum_55:{frequencies:[261.6255653006,267.07609791103,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,286.15296204753,293.02063313667,294.32876096318,296.75121990114,299.00064605783,305.22982618403,306.59245933664,313.95067836072,317.94773560837,320.49131749323,325.57848126297,327.03195662575,333.84512238879,336.37572681506,340.65828815182,343.38355445704,348.83408706747,356.10146388137,358.80077526939,366.27579142084,367.91095120397,373.75080757229,376.74081403286,381.53728273004,390.69417751556,392.4383479509,400.61414686654,403.65087217807,406.97310157871,408.78994578219,418.60090448096,427.32175665765,429.2294430713,436.04260883433,439.53094970501,445.12682985172,448.50096908674,457.84473927605,459.88868900496,470.92601754108,474.80195184183,476.92160341255,488.36772189445,490.54793493862,502.32108537715,504.56359022259,508.71637697339,520.92557002075,523.2511306012],description:"81/80, 686/675 and 6144/6125, Gene Ward Smith, 2002"},pipedum_58:{frequencies:[261.6255653006,264.29521392612,268.60224704195,271.31540105247,275.62199471997,277.50997462242,280.31310567921,284.8811711051,287.78812183066,292.35618725654,295.30928005711,297.33211566688,302.17752792219,305.22982618403,310.07474405997,313.23877206058,315.35224388912,320.49131749323,323.76163705949,328.90071066361,332.22294006425,337.63694353197,339.94971891247,343.38355445704,348.83408706747,352.39361856816,358.13632938927,361.75386806997,364.23184169193,370.01329949656,373.75080757229,379.84156147346,383.71749577421,389.80824967539,392.4383479509,396.44282088917,402.90337056292,406.97310157871,413.43299207996,417.65169608078,420.46965851882,427.32175665765,431.68218274599,438.53428088482,442.96392008567,445.99817350032,453.26629188329,457.84473927605,465.11211608996,469.85815809087,477.51510585235,480.73697623985,485.64245558924,493.35106599542,498.33441009638,506.45541529795,511.62332769895,515.07533168556,523.2511306012],description:"9801/9800, 2401/2400, 5120/5103 and 896/891"},pipedum_58a:{frequencies:[261.6255653006,265.65057399753,267.66008354786,270.48058443385,272.52663052146,277.4816601673,281.75060878526,285.40970760065,287.78812183066,293.02063313667,295.1673044417,297.30177875068,301.87565226992,305.22982618403,309.92566966379,313.95067836072,316.2506833304,322.00069575458,323.72860352852,327.03195662575,332.97799220076,338.10073054231,342.60490694126,344.24801655217,348.83408706747,352.18826098158,358.59168390851,362.25078272391,366.27579142084,368.95913055213,375.66747838035,379.50081999647,381.53728273004,388.47432423422,392.4383479509,399.57359064092,402.50086969323,406.97310157871,411.12588832951,418.60090448096,422.62591317789,428.25613367658,430.31002069022,436.04260883433,442.75095666255,450.80097405642,455.40098399577,457.84473927605,466.16918908107,469.58434797544,475.68284600109,483.00104363188,488.36772189445,495.88107146206,499.46698830115,503.12608711654,512.27383415502,516.54278277298,523.2511306012],description:"126/125, 144/143, 176/175, 196/195 and 364/363"},pipedum_5a:{frequencies:[261.6255653006,290.69507255622,348.83408706747,392.4383479509,470.92601754108,523.2511306012],description:"27/25 and 81/80"},pipedum_64:{frequencies:[261.6255653006,267.90457886781,266.96486255163,273.37201925287,274.70684356563,273.74326726486,280.31310567921,280.42990280658,284.76252005507,286.15296204753,294.32876096318,300.05312833195,299.00064605783,300.46061014991,307.67166479351,306.59245933664,313.95067836072,312.84944830269,320.35783506196,320.49131749323,328.18310911307,327.03195662575,336.37572681506,336.5158833679,341.71502406609,343.38355445704,351.62475976401,348.83408706747,358.80077526939,358.95027559242,366.12324007081,366.27579142084,375.06641041494,373.75080757229,382.72082695402,384.58958099188,383.2405741708,392.4383479509,392.60186392921,398.6675280771,400.61414686654,412.06026534844,408.78994578219,418.60090448096,428.6473261885,427.14378008261,429.2294430713,439.53094970501,437.98922762377,448.50096908674,448.68784449053,455.62003208812,457.84473927605,468.83301301868,467.18850946536,478.40103369253,480.73697623985,488.16432009441,490.54793493862,502.32108537715,500.55911728431,512.57253609913,512.78610798918,520.70860810071,523.2511306012],description:"225/224 235298/234375 and 67108864/66706983"},pipedum_65:{frequencies:[261.6255653006,264.59711493117,267.38234771992,270.72462706642,273.0589090967,275.93321340298,279.06726965397,282.00481986086,285.20783756792,287.99181818792,291.26283636981,294.32876096318,297.67175429757,300.80514118491,303.39878788522,306.84479880935,310.42486507835,313.95067836072,317.25542234346,320.85881726391,323.62537374423,327.30111872997,331.11985608357,334.60532825287,338.40578383303,341.32363637087,345.20039866051,348.83408706747,352.79615324157,356.9123501364,360.9661694219,364.07854546226,367.91095120397,372.08969287196,376.00642648114,380.70650681216,383.98909091723,388.35044849308,392.4383479509,396.89567239676,401.07352157989,404.53171718029,409.58836364504,413.89982010446,418.60090448096,423.00722979129,427.81175635188,431.50049832564,436.89425455471,441.49314144476,446.50763144636,451.20771177737,455.09818182783,460.26719821402,465.11211608996,470.92601754108,475.8831335152,481.28822589586,485.43806061635,490.95167809495,496.11959049595,501.90799237931,507.60867574954,511.9854545563,517.80059799077,523.2511306012],description:"1216/1215, 32805/32768 and 39858075/39845888. Manuel Op de Coul, 2001"},pipedum_65a:{frequencies:[261.6255653006,264.89588486686,267.90457886781,269.16210421872,272.52663052146,275.93321340298,279.06726965397,282.55561052465,286.08755565621,287.10624449997,290.69507255622,294.32876096318,298.00787047521,301.39265122629,302.80736724606,306.59245933664,310.07474405997,313.95067836072,317.87506184023,319.0069383333,322.99452506247,327.03195662575,331.11985608357,334.88072358477,339.06673262958,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.60944457026,358.88280562497,363.36884069528,367.91095120397,372.08969287196,376.74081403286,381.45007420827,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,403.74315632809,408.78994578219,413.43299207996,418.60090448096,423.83341578697,429.13133348431,430.65936674996,436.04260883433,441.49314144476,446.50763144636,452.08897683944,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.81259276034,478.51040749995,484.4917875937,490.54793493862,496.67978412536,502.32108537715,508.60009894437,510.98743222773,516.79124009995,523.2511306012],description:"78732/78125 and 32805/32768"},pipedum_67:{frequencies:[261.6255653006,262.79353657426,266.96486255163,267.07609791103,272.52663052146,274.70684356563,279.06726965397,280.31310567921,284.8811711051,286.15296204753,293.02063313667,294.32876096318,299.00064605783,299.12522966035,300.33547037059,305.22982618403,306.59245933664,311.45900631024,313.95067836072,320.35783506196,320.49131749323,325.57848126297,327.03195662575,332.22294006425,336.5158833679,339.00300006557,341.85740532612,343.38355445704,348.83408706747,350.39138209902,355.95315006884,360.55273217989,366.27579142084,367.91095120397,373.75080757229,373.90653707544,381.53728273004,384.58958099188,390.69417751556,392.4383479509,398.83363954714,400.44729382745,400.61414686654,406.97310157871,408.78994578219,418.60090448096,420.46965851882,427.32175665765,429.2294430713,436.04260883433,439.53094970501,448.50096908674,448.68784449053,455.80987376816,457.84473927605,459.88868900496,465.11211608996,467.18850946536,474.60420009179,480.73697623985,488.36772189445,490.54793493862,498.33441009638,504.77382505185,512.78610798918,515.07533168556,520.92557002075,523.2511306012],description:"81/80, 1029/1024 and 9604/9375, Gene Ward Smith, 2002"},pipedum_68:{frequencies:[246.94165062806,250.86135936819,252.08626834948,253.99712636029,258.02882677871,259.28873315946,263.4044273366,264.58033995864,268.89201957278,272.13977824317,273.16014686758,276.57464870343,277.80935695657,282.21902928921,286.81815421096,288.0985923994,291.6998248044,292.67158592955,296.32998075367,301.03363124183,302.50352201937,307.30516522603,308.67706328508,311.01688942076,316.08531280392,317.49640795036,322.53603347338,324.11091644933,329.25553417075,333.37122834788,334.48181249092,338.66283514705,340.17472280396,345.71831087928,351.20590311546,352.77378661151,357.18345894416,358.5226927637,362.85303765756,368.76619827124,370.41247594209,376.29203905228,378.12940252422,384.13145653254,387.04324016806,388.93309973919,395.1066410049,396.87050993795,403.33802935916,409.74022030137,411.56941771343,414.86197305514,416.71403543485,423.32854393382,430.22723131644,432.1478885991,439.00737889433,441.15096961159,444.49497113051,451.55044686274,453.56629707195,460.95774783905,468.27453748728,470.36504881535,474.12796920588,476.24461192554,483.80405021008,491.68826436165,493.88330125612],description:"245/243, 2048/2025 and 2401/2400, Gene Ward Smith, 2002"},pipedum_7:{frequencies:[261.6255653006,290.69507255622,317.94773560837,347.75533582165,392.4383479509,429.2294430713,476.92160341255,523.2511306012],description:"81/80, 64/63 and 6144/6125, Manuel Op de Coul"},pipedum_72:{frequencies:[195.99771799087,198.44768946576,200.08100378235,201.59765279061,204.16428957382,205.79760389041,208.41771227328,209.06423252359,211.67753543014,214.37250405251,216.08748408493,217.77524221208,220.49743273973,222.31222642483,223.99739198957,226.79735938944,228.66400432268,231.52230437672,232.29359169288,235.19726158904,238.19167116946,240.09720453882,241.91718334873,244.99714748859,246.9571246685,250.10125472793,251.99706598826,254.07111591409,257.24700486302,258.04499557198,261.33029065449,264.59691928767,266.7746717098,268.79687038748,272.2190527651,274.39680518722,277.89028303104,279.99673998696,282.23671390685,285.83000540335,289.40288047089,290.3669896161,293.99657698631,296.41630189977,300.12150567352,302.39647918591,304.88533909691,308.69640583562,311.1074888744,313.59634878539,317.58889489261,321.55875607877,322.55624446497,326.66286331812,329.27616622466,333.46833963724,335.99608798435,338.76148788545,342.99600648402,347.28345656507,348.44038753932,352.79589238357,357.28750675419,360.14580680822,362.95873702013,365.86240691629,370.43568700274,373.32898664928,376.31561854247,381.10667387114,385.87050729453,387.1559861548,391.99543598174],description:"225/224, 1029/1024 and 4375/4374, Gene Ward Smith, 2002"},pipedum_72a:{frequencies:[195.99771799087,197.5656997348,200.08100378235,201.59765279061,203.21043401293,205.79760389041,207.44398472154,209.99755499022,211.67753543014,213.41973736784,216.04686727389,217.77524221208,219.51744414977,222.31222642483,223.99739198957,226.84921063758,228.66400432268,230.49331635726,233.3306166558,235.19726158904,237.07883968176,240.09720453882,241.91718334873,244.99714748859,246.9571246685,248.93278166584,251.99706598826,254.07111591409,256.1036848414,259.25624072866,261.33029065449,264.65741241051,266.7746717098,268.79687038748,272.2190527651,274.39680518722,276.59197962872,279.99673998696,282.23671390685,285.83000540335,288.11664544658,290.30062001848,293.99657698631,296.3485496022,298.59492344758,302.46561418344,304.88533909691,308.7669811456,311.1074888744,313.59634878539,317.58889489261,320.12960605175,322.55624446497,326.66286331812,329.27616622466,333.46833963724,335.99608798435,338.68405668822,342.99600648402,345.73997453589,348.36074402217,352.79589238357,355.69956227973,360.07811212314,362.95873702013,365.86240691629,370.52037737472,373.32898664928,376.31561854247,381.10667387114,384.15552726211,388.884361093,391.99543598174],description:"4375/4374, 2401/2400 and 15625/15552, Manuel Op de Coul, 2002"},pipedum_72b:{frequencies:[195.99771799087,197.5656997348,200.51849868858,202.12264667808,204.16428957382,205.79760389041,207.94510975112,209.60867062912,211.67753543014,213.41973736784,215.59748978996,218.74745311481,220.49743273973,222.7983318762,224.58071853121,226.79735938944,228.66400432268,230.99731048924,232.89852292125,235.19726158904,238.19167116946,240.62219842629,242.5471760137,244.99714748859,246.9571246685,249.53413170134,251.53040475495,254.07111591409,256.1036848414,259.87197430039,262.49694373777,264.59691928767,267.35799825143,269.49686223745,272.2190527651,274.39680518722,277.19677258709,279.4782275055,283.49669923679,285.83000540335,288.74663811155,291.12315365156,293.99657698631,296.3485496022,299.44095804161,301.83648570594,304.88533909691,309.37139797666,311.91766462667,314.99633248533,317.51630314521,320.82959790172,323.39623468494,326.66286331812,329.27616622466,332.71217560179,336.87107779681,340.19603908415,342.99600648402,346.49596573386,349.34778438187,352.79589238357,355.69956227973,359.32914964993,362.08404605941,367.49572123288,371.24567757199,374.30119755201,377.99559898239,381.10667387114,384.99551748207,388.16420486875,391.99543598174],description:"225/224, 3025/3024, 1375/1372 and 4375/4374"},pipedum_72b2:{frequencies:[195.99771799087,198.44768946576,200.45221158157,202.12264667808,204.16428957382,205.79760389041,207.87636756607,209.06423252359,211.67753543014,213.81569235368,215.59748978996,217.77524221208,220.49743273973,222.72467953508,223.99739198957,226.79735938944,228.66400432268,230.99731048924,233.3306166558,235.19726158904,237.57299150408,239.55276643329,241.97249134675,244.99714748859,246.39713118852,249.45164107929,251.99706598826,254.07111591409,257.24700486302,258.71698774795,261.33029065449,264.59691928767,267.2696154421,269.49686223745,272.2190527651,274.39680518722,277.19677258709,279.99673998696,282.23671390685,285.0875898049,287.46331971994,290.3669896161,293.99657698631,296.96623938011,298.66318931942,302.39647918591,304.88533909691,307.99641398565,311.81455134911,313.59634878539,317.51630314521,320.72353853051,323.39623468494,326.66286331812,329.27616622466,332.60218810572,335.99608798435,338.76148788545,342.99600648402,344.95598366393,348.44038753932,352.79589238357,356.35948725613,359.32914964993,362.95873702013,367.49572123288,369.59569678278,374.17746161893,376.31561854247,380.11678640654,383.28442629326,387.1559861548,391.99543598174],description:"Optimised version of pipedum_72b, Manuel Op de Coul"},pipedum_72c:{frequencies:[195.99771799087,197.5656997348,199.99767141926,201.59765279061,203.25689273127,205.79760389041,207.40499258293,209.99755499022,211.67753543014,213.41973736784,215.9974851328,217.77524221208,219.51744414977,222.31222642483,223.99739198957,226.79735938944,228.66400432268,230.49331635726,233.3306166558,235.19726158904,237.13304151982,239.99720570311,241.91718334873,244.99714748859,246.9571246685,248.88599109952,251.99706598826,254.07111591409,256.1036848414,259.19698215935,261.33029065449,264.59691928767,266.7746717098,268.79687038748,272.2190527651,274.39680518722,276.47678096998,279.99673998696,282.23671390685,285.83000540335,287.99664684373,290.3669896161,293.99657698631,296.41630189977,298.66318931942,302.39647918591,304.88533909691,308.69640583562,311.1074888744,313.59634878539,317.58889489261,320.12960605175,322.55624446497,326.66286331812,329.27616622466,333.32945236543,335.99608798435,338.76148788545,342.99600648402,345.59597621247,348.44038753932,352.79589238357,355.69956227973,359.99580855466,362.95873702013,365.86240691629,370.43568700274,373.32898664928,376.31561854247,381.10667387114,384.15552726211,388.884361093,391.99543598174],description:"441/440, 2401/2400, 4375/4374 and 1375/1372"},pipedum_74:{frequencies:[174.6141157165,175.4667237034,177.38576834692,178.25190979393,182.45393315683,183.34482150233,186.25505676427,187.16450528362,187.6669026756,191.57662981467,192.51206257744,194.01568412944,194.96302633711,195.48635695375,199.55898939029,200.53339851817,202.72659239648,203.71646833592,208.51878075067,209.5369388598,210.56006844408,212.8629220163,213.90229175271,216.62558481901,218.9447197882,220.01378580279,221.73221043365,222.81488724241,228.06741644604,229.18102687791,231.68753416741,232.81882095533,233.95563160453,239.47078726834,240.6400782218,243.27191087578,244.4597620031,249.5526737115,250.2225369008,251.44432663176,253.4082404956,254.6455854199,259.95070178281,260.64847593833,261.92117357475,266.07865252038,267.37786469089,273.68089973525,275.01723225349,278.02504100089,279.3825851464,280.74675792544,285.20305567028,287.36494472201,291.02352619417,291.92629305093,292.44453950566,297.08651632321,299.33848408543,304.08988859472,305.57470250388,310.42509460711,311.94084213937,312.778171126,319.29438302446,320.85343762907,325.94634933747,328.4170796823,333.63004920107,334.22233086361,335.25910217568,339.52744722653,342.10112466906,347.53130125111,349.228231433],description:"81/80, 126/125 and 4194304/4117715, Gene Ward Smith, 2002"},pipedum_81:{frequencies:[116.54094037952,117.10998793997,118.96887663743,119.87068153322,121.77339076391,122.3679873985,122.96548733697,124.86529326377,124.9173204693,126.84728204574,127.4666535401,128.08904930934,130.12220882219,130.47149010419,131.10855792696,133.18964614802,133.83998621711,135.96443044277,136.62831926329,136.99506460939,139.16958944446,139.84912845542,140.53198552796,142.70319230145,142.76265196491,144.96832233798,145.6761754744,146.38748492496,148.71109579678,149.83835191653,152.21673845488,152.95998424812,153.70685917121,155.38792050603,156.14665058662,156.56578812502,159.82757537763,160.60798346053,163.08936263023,163.15731653133,163.95398311595,166.48705768503,167.29998277138,169.12970939431,169.95553805347,170.78539907912,173.96198680558,174.81141056928,175.66498190995,177.58619486403,178.45331495614,182.66008614586,183.55198109774,184.08675852442,184.44823100545,186.46550460723,187.37598070395,190.2709230686,191.19998031015,193.29109645065,194.23490063253,195.18331323328,199.78446922203,200.75997932566,202.95565127318,203.94664566416,204.94247889494,208.7543841667,209.77369268314,210.79797829194,213.10343383684,214.14397794737,217.45248350698,218.5142632116,218.60531082127,221.98274358004,223.06664369518,227.71386543882,228.32510768232,229.43997637218,231.94931574077,233.08188075904],description:"81/80, 126/125 and 17294403/16777216, Gene Ward Smith, 2002"},pipedum_87:{frequencies:[82.40688922822,83.34286871081,83.43697534357,84.3846545697,84.87648045204,85.84050961273,86.81548824043,86.91351598289,87.90068184343,87.99993493267,88.99944036648,90.43280025045,90.53491248218,91.56321025358,92.60318745646,92.70775038175,93.76072729966,93.86659726152,95.37834401414,96.46165360048,96.57057331432,97.66742427048,97.77770548075,98.88826707386,100.01144245297,100.59434720242,101.73690028175,101.85177654245,103.00861153527,104.17858588852,104.29621917947,105.48081821212,105.59992191921,107.30063701591,108.51936030054,108.64189497861,109.87585230429,111.12382494775,111.2493004581,112.5128727596,113.16864060272,114.45401281697,115.75398432057,115.88468797718,117.20090912458,117.3332465769,118.66592048864,120.5770670006,120.7132166429,122.0842803381,122.22213185094,123.61033384233,125.01430306622,125.15546301536,127.17112535219,128.61553813397,128.76076441909,130.22323236064,130.37027397433,131.85102276515,133.3485899373,133.49916054972,135.64920037567,135.80236872326,137.34481538037,138.90478118469,139.06162557262,140.6410909495,140.79989589228,143.06751602122,144.69248040072,144.85585997148,146.50113640572,146.66655822112,148.3324006108,150.01716367946,150.89152080363,152.60535042263,154.33864576076,154.51291730291,156.26787883277,156.4443287692,158.22122731818,160.76942266746,160.95095552387,162.7790404508,162.96284246792,164.81377845644],description:"67108864/66430125 and 15625/15552, Op de Coul"},pipedum_9:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,392.4383479509,420.46965851882,448.50096908674,490.54793493862,523.2511306012],description:"225/224, 49/48 and 36/35 are homophonic intervals"},pipedum_99:{frequencies:[41.20344461411,41.53307217102,41.72802550619,42.06184971024,42.3806858888,42.72949811834,42.92025480636,43.26361684482,43.60972577957,43.95034092172,44.14654780083,44.49972018324,44.86597302425,45.06626754668,45.407877738,45.78160512679,46.1478579678,46.35387519087,46.73538856693,47.08965098755,47.46636819545,47.68917200707,48.07068538313,48.45525086619,48.65129757643,49.0517197787,49.44413353693,49.83968660523,50.07363060743,50.47421965228,50.85682306656,51.275397742,51.50430576764,51.91634021378,52.34363519496,52.55541404861,52.975857361,53.41187264792,53.8391676291,54.07952105602,54.50191086522,54.93792615215,55.37742956136,55.62465022905,56.08246628032,56.50758118507,56.7598471725,57.22700640849,57.68482245975,58.14630103943,58.41923570866,58.86206373444,59.33296024432,59.82129736567,60.08835672891,60.56906358274,61.04214016905,61.31464972338,61.80516692116,62.29960825653,62.81236223395,63.06649685833,63.5710288332,64.0942471775,64.60700115492,64.89542526722,65.40229303827,65.92551138258,66.21982170125,66.7648408099,67.29895953638,67.80909742208,68.12738858153,68.67240769018,69.2217869517,69.77556124732,70.1030828504,70.63447648133,71.19955229318,71.53375801061,72.10602807469,72.68287629929,73.25056820286,73.57757966805,74.1662003054,74.77662170709,75.37483468075,75.67979623,76.30267521131,76.91309661301,77.25645865146,77.87451032067,78.48275164592,79.11061365909,79.4637860415,80.11780897188,80.75875144366,81.37091690649,81.75286629784,82.40688922822],description:"2401/2400, 3136/3125 and 4375/4374, Gene Ward Smith, 2002"},pipedum_9a:{frequencies:[261.6255653006,282.62020942966,305.22982618403,329.72357766794,356.10146388137,384.67750727926,415.4517078616,448.79042515914,484.69365917187,523.2511306012],description:"4375/4374, 2401/2400 and 21/20 are homophonic intervals"},pipedum_9b:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,357.20610515709,383.2405741708,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"128/125 and 2109375/2097152 are homophonic intervals"},pipedum_9c:{frequencies:[261.6255653006,285.40970760065,305.22982618403,332.97799220076,348.83408706747,392.4383479509,411.12588832951,448.50096908674,479.64686971777,523.2511306012],description:"49/48, 21/20, 99/98 and 121/120, Gene Ward Smith, 2002"},pipedum_9d:{frequencies:[261.6255653006,277.4816601673,308.34441624714,327.03195662575,346.85207520913,394.68085279633,418.60090448096,443.97065626768,493.35106599542,523.2511306012],description:"128/125, 36/35, 99/98 and 121/120, Gene Ward Smith, 2002"},pipedum_9e:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"21/20, 27/25 and 128/125"},polansky_ps:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,4447.6346101102,327.03195662575,654.0639132515,981.09586987725,1308.127826503,1635.15978312875,1962.1917397545,2289.22369638025,2616.255653006,2943.28760963175,3270.3195662575,3597.35152288325,3924.383479509,4251.41543613475,4578.4473927605,4905.47934938625,5232.511306012,5559.54326263775,392.4383479509,784.8766959018,1177.3150438527,1569.7533918036,1962.1917397545,2354.6300877054,2747.0684356563,3139.5067836072,3531.9451315581,3924.383479509,4316.8218274599,4709.2601754108,5101.6985233617,5494.1368713126,5886.5752192635,6279.0135672144,6671.4519151653],description:"Three interlocking harmonic series on 1:5:3 by Larry Polansky in Psaltery"},poole:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Poole's double diatonic or dichordal scale"},porcupine:{frequencies:[261.6255653006,268.5059110196,275.56719913678,277.81869773502,285.12489766782,287.45448663717,295.01409284105,302.77250493809,305.24628043356,313.27378316024,315.83336022842,324.13928669805,332.66364612382,335.38164643474,344.20166244741,347.01393314922,356.13986022226,365.50578499276,368.49211923405,378.18288921726,381.27279846892,391.29968045081,401.5902538439,404.87141319969,415.51890206933,418.91386427268,429.93064777916,441.23715556831,444.84224659643,456.54090625717,460.27103529174,472.37544811397,484.79818817936,488.75918813348,501.6127950959,505.71118020326,519.01059820838,523.2511306012],description:"porcupine temperament, g=162.996, 5-limit"},portbag1:{frequencies:[261.6255653006,281.75060878526,311.64221749042,334.88072358477,376.74081403286,413.43299207996,457.84473927605,523.2511306012],description:"Portugese bagpipe tuning"},portbag2:{frequencies:[261.6255653006,274.70684356563,281.75060878526,310.07474405997,317.68818643644,343.38355445704,372.08969287196,392.4383479509,408.78994578219,482.37213602298,523.2511306012],description:"Portugese bagpipe tuning 2"},prelleur:{frequencies:[261.6255653006,276.42153822591,293.20376052703,310.91918875105,328.72923110101,349.43408698743,368.89538496172,391.53834819612,414.55891854195,438.90564190541,466.17878415199,492.19384741628,523.2511306012],description:"Peter Prelleur's well temperament (1731)"},preston:{frequencies:[261.6255653006,276.24946721727,293.45376109391,311.26733605541,328.91048112005,349.30075403587,368.79929095641,391.73834630677,413.67420227347,439.48064068428,466.20100528964,492.6657196346,523.2511306012],description:"Preston's equal beating temperament (1785)"},preston2:{frequencies:[261.6255653006,276.2302000593,293.37610901672,311.58628319174,328.97985807656,349.39999567988,368.9044325484,391.80273191286,413.67420227347,439.35140993827,466.62242981045,492.67053466508,523.2511306012],description:"Preston's theoretically correct well temperament"},prime_10:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,474.19633710734,523.2511306012],description:"First 10 prime numbers reduced by 2/1"},prime_5:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,523.2511306012],description:'What Lou Harrison calls "the Prime Pentatonic", a widely used scale'},primes6:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1308.127826503,1831.3789571042,2877.8812183066,3401.1323489078],description:"First 6 primes"},prinz:{frequencies:[261.6255653006,275.62199471997,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.49599295996,391.22147055517,413.43299207996,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Prinz well-tempermament (1808)"},prinz2:{frequencies:[261.6255653006,275.62199471997,291.81313052759,310.07474405997,327.03195662575,348.83408706747,367.49599295996,390.42584360243,413.43299207996,436.71344361716,465.11211608996,490.54793493862,523.2511306012],description:"Prinz equal beating temperament (1808)"},"prod13-2":{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,359.73515228832,371.99885066179,392.4383479509,400.61414686654,408.78994578219,425.14154361347,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"13-limit binary products [1 3 5 7 11 13]"},prod13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,331.11985608357,343.38355445704,345.42750418595,359.73515228832,367.91095120397,371.99885066179,392.4383479509,400.61414686654,404.70204632437,408.78994578219,425.14154361347,441.49314144476,449.66894036041,457.84473927605,478.28423656516,490.54793493862,494.63583439645,515.07533168556,523.2511306012],description:"13-limit binary products [1 3 5 7 9 11 13]"},prod7d:{frequencies:[261.6255653006,265.7783520514,267.90457886781,273.37201925287,279.06726965397,286.15296204753,294.32876096318,299.00064605783,300.46061014991,306.59245933664,310.07474405997,318.93402246168,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,350.53737850823,357.69120255941,367.91095120397,372.08969287196,382.72082695402,390.53145607553,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,429.2294430713,441.49314144476,446.50763144636,455.62003208812,457.84473927605,465.11211608996,478.40103369253,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Double Cubic Corner 7-limit. Chalmers '96"},prod7s:{frequencies:[261.6255653006,286.15296204753,294.32876096318,300.46061014991,306.59245933664,327.03195662575,343.38355445704,350.53737850823,357.69120255941,367.91095120397,392.4383479509,400.61414686654,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Single Cubic Corner 7-limit"},prodq13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,276.76092858245,279.06726965397,286.15296204753,292.28481123426,294.32876096318,299.00064605783,304.4370214407,314.76825825228,318.85615771011,322.00069575458,327.03195662575,334.88072358477,341.71502406609,343.38355445704,345.42750418595,348.83408706747,359.73515228832,368.0007951481,371.99885066179,380.54627680087,392.4383479509,396.30854862103,400.61414686654,408.78994578219,418.60090448096,425.14154361347,429.33426100611,434.91003062957,449.66894036041,457.84473927605,465.11211608996,468.3646483703,478.40103369253,490.54793493862,494.63583439645,507.3950357345,515.20111320734,523.2511306012],description:"13-limit Binary products and quotients. Chalmers '96"},prog_ennea:{frequencies:[261.6255653006,269.29177952703,285.30470202322,311.12698372208,349.22823143301,391.99543598175,403.48177901006,427.47405410759,466.16376151809,523.2511306012],description:"Progressive Enneatonic, 50+100+150+200 cents in each half (500 cents)"},prog_ennea1:{frequencies:[261.6255653006,269.10058145205,285.40970760065,310.68035879446,348.83408706747,392.4383479509,404.33041910093,428.11456140098,465.11211608996,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+150+200 cents in each half (500 cents)"},prog_ennea2:{frequencies:[261.6255653006,269.55361273395,285.40970760065,321.08592105074,348.83408706747,392.4383479509,404.33041910093,428.11456140098,481.6288815761,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+200+150 cents in each half (500 cents)"},prog_ennea3:{frequencies:[261.6255653006,269.55361273395,285.40970760065,310.07474405997,348.83408706747,392.4383479509,404.33041910093,428.11456140098,465.11211608996,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+150+200 cents in each half (500 cents)"},prooijen1:{frequencies:[261.6255653006,339.14425131559,366.27579142084,436.04260883433,470.92601754108,610.45965236807,726.73768139056,784.8766959018],description:"Kees van Prooijen, major mode of Bohlen-Pierce"},prooijen2:{frequencies:[261.6255653006,311.45900631024,336.37572681506,436.04260883433,470.92601754108,560.62621135843,726.73768139056,784.8766959018],description:"Kees van Prooijen, minor mode of Bohlen-Pierce"},"ps-dorian":{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,490.54793493862,504.56359022259,523.2511306012],description:"Complex 4 of p. 115 based on Archytas's Enharmonic"},"ps-enh":{frequencies:[261.6255653006,266.38239376061,279.06726965397,348.83408706747,392.4383479509,399.57359064092,418.60090448096,523.2511306012],description:"Dorian mode of an Enharmonic genus found in Ptolemy's Harmonics"},"ps-hypod":{frequencies:[261.6255653006,294.32876096318,367.91095120397,378.42269266694,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Complex 7 of p. 115 based on Archytas's Enharmonic"},"ps-hypod2":{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,392.4383479509,490.54793493862,504.56359022259,523.2511306012],description:"Complex 8 of p. 115 based on Archytas's Enharmonic"},"ps-mixol":{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"Complex 3 of p. 115 based on Archytas's Enharmonic"},ptolemy:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Intense Diatonic Syntonon, also Zarlino's scale"},ptolemy_chrom:{frequencies:[261.6255653006,271.31540105247,290.69507255622,348.83408706747,392.4383479509,406.97310157871,436.04260883433,523.2511306012],description:"Ptolemy Soft Chromatic"},ptolemy_ddiat:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Lyra tuning, Dorian mode, comb. of diatonon toniaion & diatonon ditoniaion"},ptolemy_diat:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Ptolemy's Diatonon Ditoniaion & Archytas' Diatonic, also Lyra tuning"},ptolemy_diat2:{frequencies:[261.6255653006,271.31540105247,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Dorian mode of a permutation of Ptolemy's Tonic Diatonic"},ptolemy_diat3:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,441.49314144476,470.92601754108,523.2511306012],description:"Dorian mode of the remaining permutation of Ptolemy's Intense Diatonic"},ptolemy_diat4:{frequencies:[261.6255653006,299.00064605783,310.07474405997,348.83408706747,392.4383479509,448.50096908674,465.11211608996,523.2511306012],description:"permuted Ptolemy's diatonic"},ptolemy_diat5:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Sterea lyra, Dorian, comb. of 2 Tonic Diatonic 4chords, also Archytas' diatonic"},ptolemy_diff:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,392.4383479509,425.14154361347,490.54793493862,523.2511306012],description:"Difference tones of Intense Diatonic reduced by 2/1"},ptolemy_enh:{frequencies:[261.6255653006,267.43946675172,279.06726965397,348.83408706747,392.4383479509,401.15920012759,418.60090448096,523.2511306012],description:"Dorian mode of Ptolemy's Enharmonic"},ptolemy_exp:{frequencies:[261.6255653006,272.52663052146,275.93321340298,287.4304306281,290.69507255622,294.32876096318,306.59245933664,327.03195662575,340.65828815182,344.91651675372,348.83408706747,363.36884069528,367.91095120397,383.2405741708,392.4383479509,408.78994578219,413.89982010446,431.14564594215,436.04260883433,441.49314144476,459.88868900496,490.54793493862,510.98743222773,517.37477513058,523.2511306012],description:"Intense Diatonic expanded: all interval combinations"},ptolemy_hom:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Dorian mode of Ptolemy's Equable Diatonic or Diatonon Homalon"},ptolemy_iast:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Ptolemy's Iastia or Lydia tuning, mixture of Tonic Diatonic & Intense Diatonic"},ptolemy_iastaiol:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,441.49314144476,465.11211608996,523.2511306012],description:"Ptolemy's kithara tuning, mixture of Tonic Diatonic and Ditone Diatonic"},ptolemy_ichrom:{frequencies:[261.6255653006,274.08392555301,299.00064605783,348.83408706747,392.4383479509,411.12588832951,448.50096908674,523.2511306012],description:"Dorian mode of Ptolemy's Intense Chromatic"},ptolemy_idiat:{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Dorian mode of Ptolemy's Intense Diatonic (Diatonon Syntonon)"},ptolemy_imix:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Ptolemy Intense Diatonic mixed with its inverse"},ptolemy_malak:{frequencies:[261.6255653006,274.08392555301,299.00064605783,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Ptolemy's Malaka lyra tuning, a mixture of Intense Chrom. & Tonic Diatonic"},ptolemy_malak2:{frequencies:[261.6255653006,271.31540105247,290.69507255622,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Malaka lyra, mixture of his Soft Chromatic and Tonic Diatonic."},ptolemy_mdiat:{frequencies:[261.6255653006,274.70684356563,305.22982618403,348.83408706747,392.4383479509,412.06026534844,457.84473927605,523.2511306012],description:"Ptolemy soft diatonic"},ptolemy_mdiat2:{frequencies:[261.6255653006,290.69507255622,305.22982618403,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"permuted Ptolemy soft diatonic"},ptolemy_mdiat3:{frequencies:[261.6255653006,299.00064605783,313.95067836072,348.83408706747,392.4383479509,448.50096908674,470.92601754108,523.2511306012],description:"permuted Ptolemy soft diatonic"},ptolemy_meta:{frequencies:[261.6255653006,274.70684356563,305.22982618403,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Metabolika lyra tuning, mixture of Soft Diatonic & Tonic Diatonic"},ptolemy_mix:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,348.83408706747,353.19451315581,367.91095120397,372.08969287196,387.59343007496,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"All modes of Ptolemy Intense Diatonic mixed"},ptolemy_prod:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,331.11985608357,348.83408706747,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,484.4917875937,490.54793493862,523.2511306012],description:"Product of Intense Diatonic with its intervals"},ptolemy_tree:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Intense Diatonic with all their Farey parent fractions"},pygmie:{frequencies:[261.6255653006,299.00064605783,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:"Pygmie scale"},pyle:{frequencies:[261.6255653006,277.19063644077,293.6461094938,311.15753660095,329.66944764997,349.23831768549,369.99228554622,391.93430587921,415.28070933274,439.96441988338,466.23108306565,493.99742571239,523.2511306012],description:"Howard Willet Pyle quasi equal temperament"},pyramid:{frequencies:[261.6255653006,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:'This scale may also be called the "Wedding Cake"'},pyramid_down:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,348.83408706747,392.4383479509,418.60090448096,441.49314144476,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"Upside-Down Wedding Cake (divorce cake)"},pyth_12:{frequencies:[261.6255653006,279.38237857051,294.32876096318,310.07474405997,331.11985608357,348.83408706747,372.50983809402,392.4383479509,419.07356785577,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"12-tone Pythagorean scale"},pyth_12s:{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,326.6631048533,348.83408706747,367.49599295996,392.4383479509,419.07356785577,435.55080647107,471.45776383774,489.99465727995,523.2511306012],description:"Scale with major thirds flat by a schisma"},pyth_17:{frequencies:[261.6255653006,275.62199471997,279.38237857051,294.32876096318,310.07474405997,314.30517589183,331.11985608357,348.83408706747,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,441.49314144476,465.11211608996,471.45776383774,496.67978412536,523.2511306012],description:"17-tone Pythagorean scale"},pyth_17s:{frequencies:[261.6255653006,275.62199471997,279.06726965397,294.32876096318,310.07474405997,313.95067836072,331.11985608357,348.83408706747,367.49599295996,372.08969287196,392.4383479509,413.43299207996,418.60090448096,441.49314144476,465.11211608996,470.92601754108,496.67978412536,523.2511306012],description:"Schismatically altered 17-tone Pythagorean scale"},pyth_22:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,465.11211608996,471.45776383774,489.99465727995,496.67978412536,523.2511306012],description:"Pythagorean shrutis"},pyth_27:{frequencies:[261.6255653006,265.19499215873,275.62199471997,279.38237857051,290.36720431405,294.32876096318,298.34436617857,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,387.15627241873,392.4383479509,397.79248823809,413.43299207996,419.07356785577,435.55080647107,441.49314144476,447.51654926786,465.11211608996,471.45776383774,489.99465727995,496.67978412536,523.2511306012],description:"27-tone Pythagorean scale"},pyth_31:{frequencies:[261.6255653006,265.19499215873,275.62199471997,279.38237857051,283.19406633357,294.32876096318,298.34436617857,310.07474405997,314.30517589183,318.59332496145,326.6631048533,331.11985608357,335.63741195089,348.83408706747,353.59332287831,367.49599295996,372.50983809402,377.59208844475,392.4383479509,397.79248823809,413.43299207996,419.07356785577,424.79110016094,441.49314144476,447.51654926786,465.11211608996,471.45776383774,477.8899872033,489.99465727995,496.67978412536,503.45611792634,523.2511306012],description:"31-tone Pythagorean scale"},pyth_7a:{frequencies:[261.6255653006,277.97716313189,294.32876096318,312.72430852337,331.11985608357,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,469.08646278506,496.67978412536,523.2511306012],description:"Pythagorean 7-tone with whole tones divided arithmetically"},pyth_7h:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,467.46332623563,496.67978412536,523.2511306012],description:"Pythagorean 7-tone with whole tones divided harmonically"},pyth_chrom:{frequencies:[261.6255653006,275.62199471997,294.32876096318,348.83408706747,392.4383479509,413.43299207996,441.49314144476,465.11211608996,523.2511306012],description:"Dorian mode of the so-called Pythagorean chromatic, recorded by Gaudentius"},pyth_sev:{frequencies:[261.6255653006,268.38018042036,275.30918532257,282.41708286353,291.47537246454,299.00064605783,306.7202061947,314.63906894008,322.76237975718,333.11471138804,341.71502406609,350.53737850823,359.58750736009,368.87129039875,380.70252730062,390.53145607553,400.61414686654,410.95715126868,421.56719060242,435.08860262928,446.32166408632,457.84473927605,469.66531573563,481.7910743145,497.2441172906,510.08190181294,523.2511306012],description:"26-tone Pythagorean scale based on 7/4"},pyth_sev_16:{frequencies:[261.6255653006,268.38018042036,275.30918532257,282.41708286353,306.7202061947,314.63906894008,322.76237975718,350.53737850823,359.58750736009,368.87129039875,400.61414686654,410.95715126868,421.56719060242,457.84473927605,469.66531573563,481.7910743145,523.2511306012],description:'16-tone Pythagorean scale based on 7/4, "Armodue"'},pyth_third:{frequencies:[261.6255653006,267.90457886781,274.33428876064,280.9183116909,287.66035117148,290.46272611903,297.43383186155,304.57224382623,311.88197767806,319.36714514233,327.03195662575,334.88072358477,342.9178609508,351.14788961362,359.57543896435,363.07840893547,371.79228894479,380.71530478279,389.85247209758,399.20893142792,408.78994578219,418.60090448096,428.6473261885,438.93486201703,449.46929870544,453.84801015616,464.74036282794,475.89413097849,487.31559012197,499.0111642849,510.98743222773,523.2511306012],description:"Cycle of 5/4 thirds"}};o.prototype._tune=function(i,n=220){const e=new t;if(!e.isValidScale(i))throw new Error('not a valid tune.js scale name: "'+i+'". See http://abbernie.github.io/tune/scales.html');return e.loadScale(i),e.tonicize(n),this._asNumber()._withHap(r=>r.withValue(()=>e.note(r.value)).setContext(a(c({},r.context),{type:"frequency"})))};o.prototype.define("tune",(i,n)=>n.tune(i),{composable:!0,patternified:!0}); +var h=Object.defineProperty,q=Object.defineProperties;var g=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertySymbols;var y=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable;var m=(i,n,e)=>n in i?h(i,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[n]=e,c=(i,n)=>{for(var e in n||(n={}))y.call(n,e)&&m(i,e,n[e]);if(p)for(var e of p(n))b.call(n,e)&&m(i,e,n[e]);return i},a=(i,n)=>q(i,g(n));import{P as o,z as _}from"./index.29de87b8.js";function S(i){if(!/^[1-9]+[0-9]*edo$/.test(i))throw new Error('not an edo scale: "'+i+'"');const[n,e]=i.match(/^([1-9]+[0-9]*)edo$/);return Array.from({length:e},(r,s)=>Math.pow(2,s/e))}const f={"12ji":[1/1,16/15,9/8,6/5,5/4,4/3,45/32,3/2,8/5,5/3,16/9,15/8]};function v(i,n){return n.map(e=>e*i)}const w=220;function k(i,n){if(typeof i=="string")if(/^[1-9]+[0-9]*edo$/.test(i))i=S(i);else if(f[i])i=f[i];else throw new Error('unknown scale name: "'+i+'"');return i=v(w,i),n?i.filter((e,r)=>n.includes(r)):i}function l(i,n,e=0){const r=_(e+n,i.length),s=Math.floor(n/i.length);return i[r]*Math.pow(2,s)}o.prototype._xen=function(i,n){return this._asNumber()._withHap(e=>{const r=k(i);n=n||r.length;const s=l(r,e.value);return e.withValue(()=>s).setContext(a(c({},e.context),{type:"frequency"}))})};o.prototype.tuning=function(i){return this._asNumber()._withHap(n=>{const e=l(i,n.value);return n.withValue(()=>e).setContext(a(c({},n.context),{type:"frequency"}))})};o.prototype.define("xen",(i,n)=>n.xen(i),{composable:!0,patternified:!0});function t(){this.scale=[],this.mode={output:"frequency",input:"step"},this.etmajor=[261.62558,293.664764,329.627563,349.228241,391.995422,440,493.883301,523.25116],this.tonic=440}t.prototype.tonicize=function(i){this.tonic=i};t.prototype.note=function(i,n){var e;return this.mode.output=="frequency"?e=this.frequency(i,n):this.mode.output=="ratio"?e=this.ratio(i,n):this.mode.output=="MIDI"?e=this.MIDI(i,n):e=this.frequency(i,n),e};t.prototype.frequency=function(i,n){(this.mode.input=="midi"||this.mode.input=="MIDI")&&(this.stepIn+=60);var e=Math.floor(i/this.scale.length);n&&(e+=n);for(var r=i%this.scale.length;r<0;)r+=this.scale.length;var s=this.tonic*this.scale[r];return s=s*Math.pow(2,e),s=Math.floor(s*1e11)/1e11,s};t.prototype.ratio=function(i,n){(this.mode.input=="midi"||this.mode.input=="MIDI")&&(this.stepIn+=60);var e=Math.floor(i/this.scale.length);n&&(e+=n);var r=i%this.scale.length,s=Math.pow(2,e)*this.scale[r];return s=Math.floor(s*1e11)/1e11,s};t.prototype.MIDI=function(i,n){var e=this.frequency(i,n),r=69+12*Math.log(e/440)/Math.log(2);return r=Math.floor(r*1e9)/1e9,r};t.prototype.loadScale=function(i){var n=u[i].frequencies;this.scale=[];for(var e=0;e[1, 1, -1]->[0, 1, -1]->[0, 0, -1]->[0, 0, 0]->[0, -1, 0],[0, -1, 1]->[0, -2, 1]->[-1, -2, 1]"},breedt1:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,326.6631048533,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,489.99465727995,523.2511306012],description:"Graham Breed's 1/4 P temperament, TL 10-06-99"},breedt2:{frequencies:[261.6255653006,276.37000081643,293.53214922797,310.91625060765,328.43856194079,349.78078158391,368.4933346061,392.4383479509,414.55500101742,439.10654054756,466.37437567834,492.65784266492,523.2511306012],description:"Graham Breed's 1/5 P temperament, TL 10-06-99"},breedt3:{frequencies:[261.6255653006,276.55731914056,293.33333347996,311.12698372208,328.88393162803,350.01785633742,368.74309237173,392.4383479509,414.83597850347,438.51190905657,466.69047534984,491.65745674141,523.2511306012],description:"Graham Breed's other 1/4 P temperament, TL 10-06-99"},brown:{frequencies:[261.6255653006,272.52663052146,275.62199471997,275.93321340298,279.38237857051,287.10624449997,290.69507255622,291.02331101095,294.32876096318,306.24666079997,306.59245933664,310.07474405997,310.42486507835,322.99452506247,327.03195662575,331.11985608357,344.52749339997,344.91651675372,348.83408706747,349.22797321314,363.36884069528,367.49599295996,367.91095120397,372.50983809402,382.80832599996,387.59343007496,388.03108134794,392.4383479509,408.78994578219,413.43299207996,413.89982010446,430.65936674996,436.04260883433,436.53496651643,441.49314144476,459.36999119996,459.88868900496,465.11211608996,465.63729761752,484.4917875937,489.99465727995,490.54793493862,496.67978412536,516.79124009995,517.37477513058,523.2511306012],description:"Tuning of Colin Brown's Voice Harmonium, Glasgow. Helmholtz/Ellis p. 470-473"},bruder:{frequencies:[261.6255653006,276.38325105256,293.66476791741,310.22971009486,327.53979283172,349.02656754477,368.60786575306,391.65594491223,414.34624765043,439.23819834286,465.62553897253,491.60634075178,523.2511306012],description:"Ignaz Bruder organ temperament (1829) according to P. Vier"},burma3:{frequencies:[261.6255653006,287.71029735626,317.68827763215,350.39147881787,389.32370520689,429.81331927092,476.14308821464,523.2511306012],description:"Burmese scale, von Hornbostel"},"burt-forks":{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Warren Burt 19-tone Forks. Interval 5(3): pp. 13+23 Winter 1986-87"},burt1:{frequencies:[261.6255653006,272.09058791262,283.42769574232,295.75063903546,309.19384990071,340.11323489078,358.01393146398,377.90359432309,415.52295665389,425.14154361347,453.48431318771,485.87604984397,523.2511306012],description:"W. Burt's 13diatsub #1"},burt10:{frequencies:[261.6255653006,265.11390617127,268.69652652494,272.3773008609,276.16031892841,355.06326719367,368.21375857121,382.37582620857,386.08821287079,389.87339142835,393.73352401674,397.67085925691,523.2511306012],description:"W. Burt's 19enhsub #10"},burt11:{frequencies:[261.6255653006,344.24416486921,347.6866065179,351.12904816659,354.57148981529,358.01393146398,371.78369805875,385.55346465352,495.71159741166,502.59648070905,509.48136400643,516.36624730382,523.2511306012],description:"W. Burt's 19enhharm #11"},burt12:{frequencies:[261.6255653006,302.93486508491,316.70463167967,330.47439827444,344.24416486921,358.01393146398,371.78369805875,385.55346465352,440.63253103259,468.17206422213,495.71159741166,509.48136400643,523.2511306012],description:"W. Burt's 19diatharm #12"},burt13:{frequencies:[261.6255653006,273.51763645063,286.54228580542,293.53112204458,300.86940009569,334.29933343966,353.96400011258,376.08675011961,401.15920012759,429.81342870813,445.73244458621,462.87600014722,523.2511306012],description:"W. Burt's 23diatsub #13"},burt14:{frequencies:[261.6255653006,264.50057151269,267.43946675172,270.4444045804,273.51763645063,334.29933343966,353.96400011258,376.08675011961,382.05638107389,388.21858076863,394.58281979763,401.15920012759,523.2511306012],description:"W. Burt's 23enhsub #14"},burt15:{frequencies:[261.6255653006,341.25073734861,346.93824963775,352.6257619269,358.31327421604,364.00078650518,386.75083566176,409.50088481833,500.50108144463,506.18859373377,511.87610602291,517.56361831206,523.2511306012],description:"W. Burt's 23enhharm #15"},burt16:{frequencies:[261.6255653006,295.75063903546,307.12566361375,318.50068819203,341.25073734861,364.00078650518,386.75083566176,409.50088481833,455.00098313148,466.37600770977,477.75103228805,500.50108144463,523.2511306012],description:"W. Burt's 23diatharm #16"},burt17:{frequencies:[261.6255653006,262.27760655527,262.77528702311,280.51080915002,281.04308772525,281.33584094163,286.12102533302,286.66394947976,306.91182648178,308.56189006502,309.14739649778,336.61297098002,337.2517052703,337.60300912996,338.42271813583,339.41807907152,363.01398831179,369.18841978454,370.27426807802,396.01525997649,398.14437427744,399.31538714296,403.93556517602,406.10726176299,434.33931739357,434.79175418253,435.61678597414,437.95881170519,475.21831197179,476.86837555503,477.77324913293,478.27092960078,479.17846457156,521.20718087229,521.75010501903,522.74014316897,523.2511306012],description:`W. Burt's "2 out of 3,5,11,17,31 dekany" CPS with 1/1=3/1. 1/1 vol. 10(1) '98`},burt18:{frequencies:[261.6255653006,268.26840191956,269.80136421624,270.50397193556,275.42222597075,281.04308772525,286.15296204753,295.09524211152,300.46061014991,306.59245933664,309.14739649778,314.76825825228,321.92208230347,324.60476632267,337.2517052703,343.38355445704,344.27778246344,354.11429053382,357.69120255941,367.91095120397,370.97687579734,375.57576268738,393.46032281536,404.70204632437,413.13333895612,421.56463158788,429.2294430713,432.80635509689,449.66894036041,463.72109474667,472.15238737843,490.54793493862,491.82540351919,500.76768358318,505.87755790546,515.07533168556,523.2511306012],description:`W. Burt's "2 out of 1,3,5,7,11 dekany" CPS with 1/1=1/1. 1/1 vol. 10(1) '98`},burt19:{frequencies:[261.6255653006,268.26840191956,286.15296204753,294.32876096318,300.46061014991,306.59245933664,321.92208230347,327.03195662575,343.38355445704,357.69120255941,367.91095120397,375.57576268738,392.4383479509,400.61414686654,408.78994578219,429.2294430713,457.84473927605,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:`W. Burt's "2 out of 2,3,4,5,7 dekany" CPS with 1/1=1/1. 1/1 vol. 10(1) '98`},burt2:{frequencies:[261.6255653006,264.16561933264,266.75547834571,269.39662169567,272.09058791262,340.11323489078,344.41846571218,348.83408706747,353.36439988652,358.01393146398,412.25846653428,485.87604984397,523.2511306012],description:"W. Burt's 13enhsub #2"},burt20:{frequencies:[261.6255653006,269.10058145205,279.06726965397,279.38237857051,294.32876096318,298.00787047521,330.74639366397,335.25885428462,367.91095120397,376.74081403286,412.06026534844,418.60090448096,523.2511306012],description:'Warren Burt tuning for "Commas" (1993) 1/1=263. XH 16'},burt3:{frequencies:[261.6255653006,281.75060878526,332.06321749692,382.37582620857,387.40708707973,392.4383479509,397.46960882207,402.50086969323,503.12608711654,508.1573479877,513.18860885887,518.21986973003,523.2511306012],description:"W. Burt's 13enhharm #3"},burt4:{frequencies:[261.6255653006,281.75060878526,301.87565226992,322.00069575458,342.12573923925,362.25078272391,382.37582620857,402.50086969323,442.75095666255,462.87600014722,483.00104363188,503.12608711654,523.2511306012],description:"W. Burt's 13diatharm #4, see his post 3/30/94 in Tuning Digest #57"},burt5:{frequencies:[261.6255653006,277.97716313189,296.50897400735,317.68818643644,342.12573923925,277.97716313189,386.75083566176,404.33041910093,423.58424858192,444.76346101102,468.17206422213,494.18162334558,523.2511306012],description:"W. Burt's 17diatsub #5"},burt6:{frequencies:[261.6255653006,265.53042448419,269.55361273395,273.7005913914,277.97716313189,370.63621750918,386.75083566176,404.33041910093,408.97789518255,413.73345210327,418.60090448096,423.58424858192,523.2511306012],description:"W. Burt's 17enhsub #6"},burt7:{frequencies:[261.6255653006,323.18452184192,327.03195662575,330.87939140958,334.72682619341,338.57426097725,353.96400011258,369.35373924791,492.47165233054,500.16652189821,507.86139146587,515.55626103354,523.2511306012],description:"W. Burt's 17enhharm #7"},burt8:{frequencies:[261.6255653006,277.01530443593,292.40504357126,307.79478270659,323.18452184192,338.57426097725,353.96400011258,369.35373924791,400.13321751856,430.91269578922,461.69217405988,492.47165233054,523.2511306012],description:"W. Burt's 17diatharm #8"},burt9:{frequencies:[261.6255653006,268.69652652494,276.16031892841,292.40504357126,310.68035879446,355.06326719367,368.21375857121,382.37582620857,397.67085925691,414.24047839262,432.2509339749,451.89870370104,523.2511306012],description:"W. Burt's 19diatsub #9"},burt_fibo:{frequencies:[261.6255653006,277.97716313189,294.32876096318,311.70233365892,327.03195662575,343.38355445704,363.82305174615,385.28452389971,392.4383479509,425.14154361347,449.66894036041,476.24028683625,523.2511306012],description:'Warren Burt, 3/2+5/3+8/5+etc. "Recurrent Sequences", 2002'},burt_fibo23:{frequencies:[261.6255653006,267.05480676802,277.97716313189,282.81557538079,294.32876096318,299.5065008038,311.70233365892,327.03195662575,330.09788121912,343.38355445704,349.5792770728,363.82305174615,370.21039464899,385.28452389971,392.4383479509,408.02346463385,425.14154361347,432.10374737758,449.66894036041,457.60521391719,476.24028683625,484.61169812829,504.34459560877,523.2511306012],description:'Warren Burt, 23-tone Fibonacci scale. "Recurrent Sequences", 2002'},burt_primes:{frequencies:[261.6255653006,267.75741448733,273.88926367407,277.97716313189,280.0211128608,284.10901231862,290.24086150535,298.416660421,302.50455987882,304.54850960773,308.63640906555,310.68035879446,320.90010743902,322.94405716793,327.03195662575,333.16380581248,335.20775554139,339.29565499922,341.33960472813,351.55935337268,353.60330310159,359.73515228832,363.82305174615,365.86700147506,369.95490093288,376.08675011961,384.26254903526,390.39439822199,392.4383479509,394.48229767981,396.52624740872,402.65809659545,406.74599605328,412.87784524001,421.05364415565,425.14154361347,431.27339280021,433.31734252912,437.40524198694,445.58104090258,455.80078954714,457.84473927605,461.93263873387,463.97658846278,468.0644879206,474.19633710734,476.24028683625,482.37213602298,488.50398520971,492.59188466754,498.72373385427,506.89953276991,513.03138195665,519.16323114338,523.2511306012],description:'Warren Burt, primes until 251. "Some Numbers", Dec. 2002'},bushmen:{frequencies:[261.6255653006,347.0163224393,394.26624244126,453.9405988926,523.2511306012],description:"Observed scale of South-African bushmen, almost (4 notes) equal pentatonic"},dan_semantic:{frequencies:[261.6255653006,272.52663052146,275.62199471997,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,322.99452506247,327.03195662575,331.11985608357,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,397.34382730029,408.78994578219,413.43299207996,418.60090448096,430.65936674996,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.67978412536,516.79124009995,523.2511306012],description:'The Semantic Scale, from Alain Dani\xEF\xBF\xBDlou: "S\xEF\xBF\xBDmantique Musicale" (1967)'},danielou5_53:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.62199471997,279.06726965397,282.55561052465,285.76488412567,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,479.0507177135,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"Dani\xEF\xBF\xBDlou's Harmonic Division in 5-limit, symmetrized"},danielou_53:{frequencies:[261.6255653006,264.89588486686,267.43946675172,272.52663052146,275.62199471997,279.06726965397,282.55561052465,287.78812183066,290.69507255622,294.32876096318,297.67175429757,301.87565226992,306.59245933664,310.07474405997,313.95067836072,318.93402246168,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,479.64686971777,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"Dani\xEF\xBF\xBDlou's Harmonic Division of the Octave, see p. 153"},darreg:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"This set of 19 ratios in 5-limit JI is for his megalyra family"},darreg_ennea:{frequencies:[261.6255653006,269.29177952703,277.18263097687,293.66476791741,349.22823143301,391.99543598175,403.48177901006,415.30469757995,440,523.2511306012],description:"Ivor Darreg's Mixed Enneatonic, a mixture of chromatic and enharmonic"},darreg_genus:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,348.83408706747,392.4383479509,406.97310157871,418.60090448096,436.04260883433,523.2511306012],description:"Ivor Darreg's Mixed JI Genus (Archytas Enh, Ptolemy Soft Chrom, Didymos Chrom"},darreg_genus2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,348.83408706747,392.4383479509,406.97310157871,418.60090448096,441.49314144476,523.2511306012],description:"Darreg's Mixed JI Genus 2 (Archytas Enharmonic and Chromatic Genera)"},david11:{frequencies:[261.6255653006,269.80136421624,274.70684356563,285.40970760065,294.32876096318,305.22982618403,314.76825825228,327.03195662575,332.97799220076,343.38355445704,359.73515228832,366.27579142084,374.60024122586,392.4383479509,406.97310157871,419.69101100305,428.11456140098,441.49314144476,457.84473927605,479.64686971777,490.54793493862,499.46698830115,523.2511306012],description:"11-limit system from Gary David, 1967"},david7:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,336.37572681506,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,488.36772189445,523.2511306012],description:"Gary David's Constant Structure, 1967. A mode of Fokker's 7-limit scale"},ddimlim1:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"First 27/25&2048/1875 scale"},de_caus:{frequencies:[261.6255653006,272.52663052146,290.69507255622,306.59245933664,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"De Caus (a mode of Ellis's duodene) (1615)"},degung1:{frequencies:[261.6255653006,286.1303811777,319.28416942365,390.63652710512,420.90734643474,523.2511306012],description:"Gamelan Degung, Kabupaten Sukabumi. 1/1=363 Hz"},degung2:{frequencies:[261.6255653006,276.67939184371,325.99375993805,390.36201910543,415.27879033283,523.2511306012],description:"Gamelan Degung, Kabupaten Bandung. 1/1=252 Hz"},degung3:{frequencies:[261.6255653006,282.83850205216,320.55017368416,393.28023705203,426.95140008307,523.2511306012],description:"Gamelan Degung, Kabupaten Sumedang. 1/1=388.5 Hz"},degung4:{frequencies:[261.6255653006,284.6485709981,319.18312009646,379.88037698982,415.46137490477,523.2511306012],description:"Gamelan Degung, Kasepuhan Cheribon. 1/1=250 Hz"},degung5:{frequencies:[261.6255653006,284.24274449773,317.86283634652,388.77066331187,430.33748813761,523.2511306012],description:"Gamelan Degung, Kanoman Cheribon. 1/1=428 Hz"},degung6:{frequencies:[261.6255653006,273.29426590363,298.47415715355,379.54129348313,409.02013274169,523.2511306012],description:"Gamelan Degung, Kacherbonan Cheribon. 1/1=426 Hz"},dekany:{frequencies:[261.6255653006,299.7792935736,305.22982618403,327.03195662575,359.73515228832,381.53728273004,419.69101100305,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"2)5 Dekany 1.3.5.7.11 (1.3 tonic)"},dekany2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,348.83408706747,358.80077526939,398.6675280771,418.60090448096,448.50096908674,465.11211608996,523.2511306012],description:"3)5 Dekany 1.3.5.7.9 (1.3.5.7.9 tonic)"},dekany3:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,343.38355445704,381.53728273004,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"2)5 Dekany 1.3.5.7.9 and 3)5 Dekany 1 1/3 1/5 1/7 1/9"},dekany4:{frequencies:[261.6255653006,270.96933548991,288.48890459486,310.68035879446,321.77608589426,355.06326719367,425.14154361347,440.3251701711,474.19633710734,485.87604984397,523.2511306012],description:"2)5 Dekany 1.7.13.19.29 (1.7 tonic)"},dekany_union:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,366.27579142084,381.53728273004,392.4383479509,412.06026534844,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Union of 2)5 and 3)5 [ 1 3 5 7 9] dekanies"},dent:{frequencies:[261.6255653006,276.73939277812,293.41671964988,311.13637945111,328.33487278761,349.18153137729,368.9858570375,391.91718148616,414.84850593482,438.82216331296,465.92281947955,491.98114271667,523.2511306012],description:"Tom Dent, well temperament with A=421 Hz. Integer Hz beat rates from A"},dent2:{frequencies:[261.6255653006,276.57667301797,293.18838124587,310.79781949647,328.55897053596,349.10502918563,369.05532299592,391.67735584266,414.54302837239,438.92977277749,465.83490899549,492.45596147139,523.2511306012],description:"Tom Dent, well-temperament, 2/32 and 5/32 comma. TL 3 & 5-9-2005"},dent3:{frequencies:[261.6255653006,276.38325105256,293.15632631094,310.94732162256,328.48713220126,349.22823143301,368.7143392539,391.76907592069,414.58565256441,438.73106346722,466.16376151809,492.17459484008,523.2511306012],description:'Tom Dent, Bach harpsichord "sine wave" temperament, TL 10-10-2005'},deporcy:{frequencies:[261.6255653006,272.52663052146,286.15296204753,299.00064605783,313.95067836072,327.03195662575,348.83408706747,358.80077526939,381.53728273004,392.4383479509,418.60090448096,436.04260883433,457.84473927605,478.40103369253,502.32108537715,523.2511306012],description:"A 15-note chord-based detempering of 7-limit porcupine"},diab19_612:{frequencies:[261.6255653006,267.01398215014,280.33982809972,299.03492334906,305.19382000629,313.95883772326,320.42510414137,327.02455105776,348.83292260574,366.24210002542,373.7851897098,392.43965797471,418.61038382265,427.23204601759,436.03127668087,448.5538823653,457.79225819026,488.32116993744,512.69177642068,523.2511306012],description:"diab19a in 612-tET"},diab19_72:{frequencies:[261.6255653006,266.71173418545,279.86396690685,299.37379946195,305.19382000629,314.13668154225,320.24370022528,326.46944327063,349.22823143301,366.44956000397,373.57357677338,391.99543598175,419.32216217931,427.47405410759,435.78442404634,448.5538823653,457.27406033445,489.15147723638,513.27277840175,523.2511306012],description:"diab19a in 72-tET"},diablack:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,331.11985608357,372.08969287196,392.4383479509,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"Unique 256/245&2048/2025 Fokker block"},diachrome1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"First 25/24&2048/2025 scale"},diacycle13:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,307.79478270659,317.12189733406,327.03195662575,337.58137458142,348.83408706747,360.86284869048,373.75080757229,387.59343007496,402.50086969323,413.09299784305,424.25767346043,436.04260883433,448.50096908674,461.69217405988,475.68284600109,490.54793493862,506.37206187213,523.2511306012],description:"Diacycle on 20/13, 13/10; there are also nodes at 3/2, 4/3; 13/9, 18/13"},diaddim1:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,334.88072358477,344.91651675372,357.20610515709,367.91095120397,392.4383479509,418.60090448096,446.50763144636,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"First 2048/2025&2048/1875 scale"},dialim1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,348.83408706747,353.19451315581,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"First 27/25&2048/2025 scale"},diamisty:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,413.89982010446,436.53496651643,470.39487098876,496.11959049595,523.2511306012],description:"Diamisty scale 2048/2025 and 67108864/66430125"},diamond11a:{frequencies:[261.6255653006,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,523.2511306012],description:"11-limit Diamond with added 16/15 & 15/8, Zoomoozophone tuning: 1/1 = 392 Hz"},diamond11ak:{frequencies:[261.6255653006,279.72330032405,285.63317938628,287.78812183066,290.69507255622,293.86839138568,299.07491977616,305.39295512204,314.19649759716,319.76457981184,326.52043447049,333.41680553884,335.93301933283,349.10721912206,359.17247822875,366.75848641051,373.2589099097,381.14243472333,392.13131479202,407.50942884268,410.58480125643,419.25667855894,428.11456140098,435.70146034294,448.26139746089,457.73103588952,465.84075338014,470.92601754108,475.68284600109,479.27160679251,489.39746055879,523.2511306012],description:"microtempered version of diamond11a, Dave Keenan TL 11-1-2000, 225/224&385/384"},diamond11at:{frequencies:[261.6255653006,279.83704120119,285.33574350137,287.98268367985,290.84948650387,293.82121114493,299.2738827313,305.22380787491,314.19079532693,320.23980272009,326.48518221507,332.71524733285,336.02719554531,349.1122100506,359.53680125564,366.52331521885,373.4984028396,380.75621844446,392.12570885984,407.39521875769,411.45055399509,419.30194782174,427.47925671618,435.70936791853,448.50981249085,457.42672761267,465.91555560021,470.67599975252,475.36147343465,479.7712027167,489.19854301666,523.2511306012],description:"microtempered version of diamond11a, OdC"},diamond11map:{frequencies:[195.99771799087,228.66400432268,261.33029065449,293.99657698631,326.66286331812,359.32914964993,391.99543598174,457.32800864536,522.66058130899,587.99315397261,653.32572663623,718.65829929986,213.81569235368,249.45164107929,285.0875898049,320.72353853051,356.35948725613,391.99543598174,427.63138470735,498.90328215858,570.1751796098,641.44707706103,712.71897451225,783.99087196348,235.19726158904,274.39680518722,313.59634878539,352.79589238357,391.99543598174,431.19497957991,470.39452317809,548.79361037444,627.19269757078,705.59178476713,783.99087196348,862.38995915983,261.33029065449,304.88533909691,348.44038753932,391.99543598174,435.55048442416,479.10553286657,522.66058130899,609.77067819382,696.88077507865,783.99087196348,871.10096884831,958.21106573314,293.99657698631,342.99600648402,391.99543598174,440.99486547946,489.99429497718,538.99372447489,587.99315397261,685.99201296804,783.99087196348,881.98973095892,979.98858995435,1077.98744894978,335.99608798435,391.99543598174,447.99478397913,503.99413197652,559.99347997391,615.99282797131,671.9921759687,783.99087196348,895.98956795826,1007.98826395305,1119.98695994783,1231.98565594261,783.99087196348],description:"11-limit diamond on a 'centreless' map"},diamond15:{frequencies:[261.6255653006,269.80136421624,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.87565226992,305.22982618403,309.19384990071,310.07474405997,313.95067836072,318.85615771011,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,343.38355445704,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,367.91095120397,372.08969287196,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,398.6675280771,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,429.33426100611,436.04260883433,441.49314144476,442.75095666255,448.50096908674,453.48431318771,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,507.3950357345,523.2511306012],description:"15-limit Diamond + 2nd ratios. See Novaro, 1927, Sistema Natural..."},diamond17:{frequencies:[261.6255653006,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,322.00069575458,327.03195662575,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,366.27579142084,369.35373924791,370.63621750918,373.75080757229,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,418.60090448096,425.14154361347,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,523.2511306012],description:"17-limit Diamond"},diamond17a:{frequencies:[261.6255653006,277.01530443593,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,494.18162334558,523.2511306012],description:"17-limit, +9 Diamond"},diamond19:{frequencies:[261.6255653006,275.39533189537,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,292.40504357126,299.00064605783,302.93486508491,305.22982618403,307.79478270659,309.19384990071,310.68035879446,313.95067836072,317.68818643644,322.00069575458,327.03195662575,330.47439827444,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,355.06326719367,358.01393146398,359.73515228832,366.27579142084,369.35373924791,370.63621750918,373.75080757229,380.54627680087,382.37582620857,385.55346465352,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,414.24047839262,418.60090448096,425.14154361347,430.91269578922,436.04260883433,440.63253103259,442.75095666255,444.76346101102,448.50096908674,451.89870370104,457.84473927605,468.17206422213,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,497.08857407114,523.2511306012],description:"19-limit Diamond"},diamond7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,523.2511306012],description:"7-limit Diamond, also double-tie circular mirroring of 4:5:6:7"},diamond9:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"9-limit Diamond"},diamond_chess:{frequencies:[261.6255653006,299.00064605783,313.95067836072,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,436.04260883433,457.84473927605,523.2511306012],description:"9-limit chessboard pattern diamond. OdC"},diamond_chess11:{frequencies:[261.6255653006,287.78812183066,299.00064605783,313.95067836072,319.76457981184,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,428.11456140098,436.04260883433,457.84473927605,475.68284600109,523.2511306012],description:"11-limit chessboard pattern diamond. OdC"},diamond_dup:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Two 7-limit diamonds 3/2 apart"},diamond_mod:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"13-tone Octave Modular Diamond, based on Archytas's Enharmonic"},diamond_tetr:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,339.14425131559,348.83408706747,358.80077526939,523.2511306012],description:"Tetrachord Modular Diamond based on Archytas's Enharmonic"},diaphonic_10:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,336.37572681506,362.25078272391,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"10-tone Diaphonic Cycle"},diaphonic_12:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,323.18452184192,343.38355445704,366.27579142084,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"12-tone Diaphonic Cycle, conjunctive form on 3/2 and 4/3"},diaphonic_12a:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,323.18452184192,343.38355445704,366.27579142084,385.55346465352,406.97310157871,430.91269578922,457.84473927605,488.36772189445,523.2511306012],description:"2nd 12-tone Diaphonic Cycle, conjunctive form on 10/7 and 7/5"},diaphonic_5:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:"D5-tone Diaphonic Cycle"},diaphonic_7:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"7-tone Diaphonic Cycle, disjunctive form on 4/3 and 3/2"},diaschismic:{frequencies:[261.6255653006,266.61097723855,278.05603152599,283.35453458855,295.51835494038,301.14961170579,314.07733767684,320.06224556188,333.80185153667,340.16262034629,354.76509561975,369.99442271164,377.04485988831,393.23061088369,400.72382577504,417.92606548687,425.88986517773,444.17243057662,452.63636847719,472.06710558841,481.06259110609,501.71360968203,523.2511306012],description:"diaschismic temperament, g=105.446531, p=600, 5-limit"},diat13:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,392.4383479509,418.60090448096,483.00104363188,523.2511306012],description:"This genus is from K.S's diatonic Hypodorian harmonia"},diat15:{frequencies:[261.6255653006,301.87565226992,327.03195662575,356.76213450082,373.75080757229,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Tonos-15 Diatonic and its own trite synemmenon Bb"},diat15_inv:{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,366.27579142084,383.71749577421,418.60090448096,453.48431318771,523.2511306012],description:"Inverted Tonos-15 Harmonia, a harmonic series from 15 from 30."},diat17:{frequencies:[261.6255653006,296.50897400735,342.12573923925,370.63621750918,386.75083566176,404.33041910093,444.76346101102,494.18162334558,523.2511306012],description:"Tonos-17 Diatonic and its own trite synemmenon Bb"},diat19:{frequencies:[261.6255653006,276.16031892841,310.68035879446,355.06326719367,368.21375857121,382.37582620857,414.24047839262,451.89870370104,523.2511306012],description:"Tonos-19 Diatonic and its own trite synemmenon Bb"},diat21:{frequencies:[261.6255653006,289.16509849014,305.22982618403,343.38355445704,366.27579142084,392.4383479509,422.62591317789,457.84473927605,523.2511306012],description:"Tonos-21 Diatonic and its own trite synemmenon Bb"},diat21_inv:{frequencies:[261.6255653006,299.00064605783,323.91736656265,348.83408706747,373.75080757229,398.6675280771,448.50096908674,473.41768959156,523.2511306012],description:"Inverted Tonos-21 Harmonia, a harmonic series from 21 from 42."},diat23:{frequencies:[261.6255653006,286.54228580542,300.86940009569,334.29933343966,353.96400011258,376.08675011961,429.81342870813,462.87600014722,523.2511306012],description:"Tonos-23 Diatonic and its own trite synemmenon Bb"},diat25:{frequencies:[261.6255653006,297.30177875068,327.03195662575,363.36884069528,384.74347838324,408.78994578219,467.18850946536,503.12608711654,523.2511306012],description:"Tonos-25 Diatonic and its own trite synemmenon Bb"},diat27:{frequencies:[261.6255653006,294.32876096318,336.37572681506,353.19451315581,371.78369805875,392.4383479509,441.49314144476,504.56359022259,523.2511306012],description:"Tonos-27 Diatonic and its own trite synemmenon Bb"},diat27_inv:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,377.90359432309,387.59343007496,406.97310157871,465.11211608996,523.2511306012],description:"Inverted Tonos-27 Harmonia, a harmonic series from 27 from 54"},diat29:{frequencies:[261.6255653006,291.81313052759,316.13089140489,344.87006335079,361.29244731988,379.35706968587,421.50785520652,474.19633710734,523.2511306012],description:"Tonos-29 Diatonic and its own trite synemmenon Bb"},diat31:{frequencies:[261.6255653006,289.65687586852,311.93817401225,337.93302184661,352.6257619269,368.65420565085,405.51962621593,450.57736246214,523.2511306012],description:"Tonos-31 Diatonic. The disjunctive and conjunctive diatonic forms are the same"},diat33:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,375.37581108347,392.4383479509,431.68218274599,479.64686971777,523.2511306012],description:"Tonos-33 Diatonic. The conjunctive form is 23 (Bb instead of B) 20 18 33/2"},diat_chrom:{frequencies:[261.6255653006,280.31310567921,301.87565226992,348.83408706747,392.4383479509,420.46965851882,452.81347840488,523.2511306012],description:"Diatonic- Chromatic, on the border between the chromatic and diatonic genera"},diat_dies2:{frequencies:[261.6255653006,266.71168334607,311.12698372208,349.22823143301,391.99543598175,399.61600264311,466.16376151809,523.2511306012],description:"Dorian Diatonic, 2 part Diesis"},diat_dies5:{frequencies:[261.6255653006,274.52693220706,311.12698372208,349.22823143301,391.99543598175,411.32564531909,466.16376151809,523.2511306012],description:"Dorian Diatonic, 5 part Diesis"},diat_enh:{frequencies:[261.6255653006,269.29177952703,311.12698372208,349.22823143301,391.99543598175,403.48177901006,466.16376151809,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode"},diat_enh2:{frequencies:[261.6255653006,269.29177952703,302.26980244078,349.22823143301,391.99543598175,403.48177901006,452.89298412314,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode 3 + 12 + 15 parts"},diat_enh3:{frequencies:[261.6255653006,302.26980244078,311.12698372208,349.22823143301,391.99543598175,452.89298412314,466.16376151809,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode, 15 + 3 + 12 parts"},diat_enh4:{frequencies:[261.6255653006,302.26980244078,339.28638158975,349.22823143301,391.99543598175,452.89298412314,508.3551866238,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode, 15 + 12 + 3 parts"},diat_enh5:{frequencies:[261.6255653006,293.66476791741,339.28638158975,349.22823143301,391.99543598175,440,508.3551866238,523.2511306012],description:"Dorian Mode, 12 + 15 + 3 parts"},diat_enh6:{frequencies:[261.6255653006,293.66476791741,302.26980244078,349.22823143301,391.99543598175,440,452.89298412314,523.2511306012],description:"Dorian Mode, 12 + 3 + 15 parts"},diat_eq:{frequencies:[261.6255653006,288.06466200271,317.1754314895,349.22823143301,391.99543598175,431.60932167676,475.22619361214,523.2511306012],description:"Equal Diatonic, Islamic form, similar to 11/10 x 11/10 x 400/363"},diat_eq2:{frequencies:[261.6255653006,287.78812183066,317.12189733406,348.83408706747,392.4383479509,431.68218274599,475.68284600109,523.2511306012],description:"Equal Diatonic, 11/10 x 400/363 x 11/10"},diat_gold:{frequencies:[261.6255653006,292.38332274669,326.75708630452,349.99258496952,391.13935185123,437.1232727958,488.51296691354,523.2511306012],description:"Diatonic scale with ratio between whole and half tone the Golden Section"},diat_hemchrom:{frequencies:[261.6255653006,273.20871865617,311.12698372208,349.22823143301,391.99543598175,409.35055662695,466.16376151809,523.2511306012],description:"Diat. + Hem. Chrom. Diesis, Another genus of Aristoxenos, Dorian Mode"},diat_smal:{frequencies:[261.6255653006,299.00064605783,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:'"Smallest number" diatonic scale'},diat_sofchrom:{frequencies:[261.6255653006,271.8968348557,311.12698372208,349.22823143301,391.99543598175,407.38495184466,466.16376151809,523.2511306012],description:"Diat. + Soft Chrom. Diesis, Another genus of Aristoxenos, Dorian Mode"},diat_soft:{frequencies:[261.6255653006,274.52693220706,302.26980244078,349.22823143301,391.99543598175,411.32564531909,452.89298412314,523.2511306012],description:"Soft Diatonic genus 5 + 10 + 15 parts"},diat_soft2:{frequencies:[261.6255653006,281.2143451833,302.26980244078,349.22823143301,391.99543598175,421.34544350737,452.89298412314,523.2511306012],description:"Soft Diatonic genus with equally divided Pyknon; Dorian Mode"},diat_soft3:{frequencies:[261.6255653006,281.2143451833,324.90175210669,349.22823143301,391.99543598175,421.34544350737,486.80259447109,523.2511306012],description:"New Soft Diatonic genus with equally divided Pyknon; Dorian Mode; 1:1 pyknon"},diat_soft4:{frequencies:[261.6255653006,302.26980244078,324.90175210669,349.22823143301,391.99543598175,452.89298412314,486.80259447109,523.2511306012],description:"New Soft Diatonic genus with equally divided Pyknon; Dorian Mode; 1:1 pyknon"},dicot:{frequencies:[261.6255653006,270.35822989652,294.32876096318,320.42456924675,331.11985608357,360.47764004221,392.4383479509,405.53734464206,441.49314144476,480.63685362987,523.2511306012],description:"Dicot temperament, g=350.9775, 5-limit"},didy_chrom:{frequencies:[261.6255653006,279.06726965397,290.69507255622,348.83408706747,392.4383479509,418.60090448096,436.04260883433,523.2511306012],description:"Didymus Chromatic"},didy_chrom1:{frequencies:[261.6255653006,279.06726965397,334.88072358477,348.83408706747,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Permuted Didymus Chromatic"},didy_chrom2:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,470.92601754108,490.54793493862,523.2511306012],description:"Didymos's Chromatic, 6/5 x 25/24 x 16/15"},didy_chrom3:{frequencies:[261.6255653006,272.52663052146,290.69507255622,348.83408706747,392.4383479509,408.78994578219,436.04260883433,523.2511306012],description:"Didymos's Chromatic, 25/24 x 16/15 x 6/5"},didy_diat:{frequencies:[261.6255653006,279.06726965397,310.07474405997,348.83408706747,392.4383479509,418.60090448096,465.11211608996,523.2511306012],description:"Didymus Diatonic"},didy_diatinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Inverse Didymus Diatonic, variant of Ptolemy with 2 identical triads"},didy_enh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,392.4383479509,405.0976494977,418.60090448096,523.2511306012],description:"Dorian mode of Didymos's Enharmonic"},didy_enh2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,348.83408706747,392.4383479509,413.43299207996,418.60090448096,523.2511306012],description:"Permuted Didymus Enharmonic"},"diesic-m":{frequencies:[261.6255653006,289.62525622617,320.62153003931,354.93508703008,392.92094947462,434.97213484265,481.52372211906,523.2511306012],description:"Minimal Diesic temperament, g=176.021, 5-limit"},"diesic-t":{frequencies:[261.6255653006,272.92239980638,281.87304203955,294.04415210774,303.68749398125,316.80053726141,327.19018747082,337.92057205022,352.51178108166,364.07260143821,379.79303732838,392.24856169057,409.18561859271,422.60509148244,436.46466102477,455.31094249407,470.24311865111,490.54793493862,506.63572944675,523.2511306012],description:"Tiny Diesic temperament, g=443.017, 5-limit"},diff31_72:{frequencies:[261.6255653006,269.29177952703,274.52698453615,279.86396690685,285.30470202322,293.66476791741,299.37379946195,305.19382000629,314.13668154225,320.24370022528,326.46944327063,336.03572815422,342.56848033562,352.60650301302,356.01745236555,366.44956000397,373.57357677338,384.52011812375,388.23978476841,399.61607881612,407.38487419079,419.32216217931,427.47405410759,435.78442404634,448.5538823653,457.27406033445,466.16376151809,479.82340237272,489.15147723638,498.66089874196,508.3551866238,523.2511306012],description:"Diff31, 11/9, 4/3, 7/5, 3/2, 7/4, 9/5 difference diamond, tempered to 72-et"},dimteta:{frequencies:[261.6255653006,282.55561052465,307.12566361375,336.37572681506,406.97310157871,439.53094970501,477.75103228805,523.2511306012],description:"A heptatonic form on the 9/7"},dimtetb:{frequencies:[261.6255653006,294.32876096318,336.37572681506,406.97310157871,457.84473927605,523.2511306012],description:"A pentatonic form on the 9/7"},div_fifth1:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #1, From Schlesinger, see Chapter 8, p. 160"},div_fifth2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #2, From Schlesinger, see Chapter 8, p. 160"},div_fifth3:{frequencies:[261.6255653006,271.31540105247,305.22982618403,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #3, From Schlesinger, see Chapter 8, p. 160"},div_fifth4:{frequencies:[261.6255653006,274.70684356563,305.22982618403,343.38355445704,392.4383479509,523.2511306012],description:"Divided Fifth #4, From Schlesinger, see Chapter 8, p. 160"},div_fifth5:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,411.12588832951,523.2511306012],description:"Divided Fifth #5, From Schlesinger, see Chapter 8, p. 160"},dkring1:{frequencies:[261.6255653006,274.70684356563,305.22982618403,313.95067836072,320.49131749323,327.03195662575,366.27579142084,392.4383479509,439.53094970501,448.50096908674,457.84473927605,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 4:5:6:7"},dkring2:{frequencies:[261.6255653006,274.70684356563,305.22982618403,329.64821227876,336.37572681506,353.19451315581,366.27579142084,392.4383479509,406.97310157871,427.32175665765,436.04260883433,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 3:5:7:9"},dkring3:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,348.83408706747,384.42940207435,392.4383479509,398.6675280771,448.50096908674,465.11211608996,504.56359022259,523.2511306012],description:"Double-tie circular mirroring of 6:7:8:9"},dkring4:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,327.03195662575,336.37572681506,367.91095120397,373.75080757229,378.42269266694,420.46965851882,467.18850946536,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 7:8:9:10"},dodeceny:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Degenerate eikosany 3)6 from 1.3.5.9.15.45 tonic 1.3.15"},dorian_chrom:{frequencies:[261.6255653006,279.06726965397,299.00064605783,310.07474405997,315.92521092903,322.00069575458,348.83408706747,380.54627680087,398.6675280771,408.39112632289,418.60090448096,465.11211608996,523.2511306012,558.13453930795,598.00129211566,620.14948811994,631.85042185805,644.00139150917,697.66817413493,761.09255360175,797.33505615421,816.78225264578,837.20180896192,930.22423217991,1046.5022612024],description:"Dorian Chromatic Tonos"},dorian_chrom2:{frequencies:[261.6255653006,274.08392555301,287.78812183066,359.73515228832,411.12588832951,426.35277308246,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the chromatic genus"},dorian_chrominv:{frequencies:[261.6255653006,273.00058987889,285.40970760065,332.97799220076,380.54627680087,404.33041910093,428.11456140098,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Dorian inverted"},dorian_diat:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012,558.13453930795,598.00129211566,644.00139150917,669.76144716954,697.66817413493,728.00157301037,761.09255360175,837.20180896192,881.26506206518,930.22423217991,984.94330466108,1046.5022612024],description:"Dorian Diatonic Tonos"},dorian_diat2:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,411.12588832951,442.75095666255,479.64686971777,523.2511306012],description:"Schlesinger's Dorian Harmonia, a subharmonic series through 13 from 22"},dorian_diat2inv:{frequencies:[261.6255653006,285.40970760065,309.19384990071,332.97799220076,356.76213450082,380.54627680087,428.11456140098,475.68284600109,523.2511306012],description:"Inverted Schlesinger's Dorian Harmonia, a harmonic series from 11 from 22"},dorian_diatcon:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,411.12588832951,479.64686971777,523.2511306012],description:"A Dorian Diatonic with its own trite synemmenon replacing paramese"},dorian_diatred11:{frequencies:[261.6255653006,287.78812183066,316.56693401373,348.83408706747,392.4383479509,431.68218274599,474.85040102059,523.2511306012],description:"Dorian mode of a diatonic genus with reduplicated 11/10"},dorian_enh:{frequencies:[261.6255653006,279.06726965397,299.00064605783,304.4370214407,307.2300216374,310.07474405997,348.83408706747,380.54627680087,389.39619021485,393.97732186443,398.6675280771,465.11211608996,523.2511306012,558.13453930795,598.00129211566,608.8740428814,614.4600432748,620.14948811994,697.66817413493,761.09255360175,778.79238042969,787.95464372887,797.33505615421,930.22423217991,1046.5022612024],description:"Dorian Enharmonic Tonos"},dorian_enh2:{frequencies:[261.6255653006,267.70988077271,274.08392555301,359.73515228832,411.12588832951,426.35277308246,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the enharmonic genus"},dorian_enhinv:{frequencies:[261.6255653006,267.19206668997,273.00058987889,332.97799220076,380.54627680087,392.4383479509,404.33041910093,523.2511306012],description:"A harmonic form of Schlesinger's Dorian enharmonic inverted"},dorian_pent:{frequencies:[261.6255653006,271.49822814213,287.78812183066,359.73515228832,411.12588832951,423.21782622156,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the pentachromatic genus"},dorian_pis:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the Dorian Tonos, a non-rep. 16 tone gamut"},dorian_schl:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,442.75095666255,460.46099492906,479.64686971777,523.2511306012],description:"Schlesinger's Dorian Piano Tuning (Sub 22)"},dorian_tri1:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,411.12588832951,421.15334902048,431.68218274599,523.2511306012],description:"Schlesinger's Dorian Harmonia in the first trichromatic genus"},dorian_tri2:{frequencies:[261.6255653006,269.80136421624,287.78812183066,359.73515228832,411.12588832951,421.15334902048,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the second trichromatic genus"},douwes:{frequencies:[261.6255653006,273.00058987889,292.50063201309,313.39353429974,327.01933943691,350.37786403433,365.61168556196,391.72680409,408.75840577964,436.81779569448,468.01906681552,488.36772189445,523.2511306012],description:"Claas Douwes recommendation of 24/23 and 15/14 steps for clavichord (1699)"},dow_high:{frequencies:[261.6255653006,277.01530443593,278.50463402967,294.32876096318,308.34441624714,313.31771328338,327.34193952303,331.11985608357,346.88746827803,348.83408706747,369.35373924791,392.4383479509,417.75695104451,441.49314144476,462.5166243707],description:"Highest octave of Dowlands lute tuning, strings 5,6. 1/1=G (1610)"},dow_lmh:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,371.33951203956,392.4383479509,411.12588832951,417.75695104451,436.45591936403,441.49314144476,462.5166243707,465.11211608996,492.47165233054,495.11934938608,523.2511306012,548.16785110602,557.00926805934,581.94122581871,588.65752192635,616.68883249427,620.14948811994,626.63542656676,656.62886977405,662.23971216714,693.77493655606,697.66817413493,736.51936392681,742.67902407912,784.8766959018,822.25177665903,831.04591330779,835.51390208901,882.98628288953,925.03324874141,939.95313985014,982.02581856908,993.35956825072,1040.66240483408,1046.5022612024,1108.06121774372,1114.01853611868,1177.3150438527,1233.37766498854,1253.27085313352,1309.3677580921,1324.47942433429,1387.54987311211,1395.33634826987,1477.41495699162,1569.7533918036,1671.02780417803,1765.97256577905,1850.06649748281],description:"All three octaves of Dowland's lute tuning"},dow_low:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,371.33951203956,392.4383479509,411.12588832951,417.75695104451,436.45591936403,441.49314144476,462.5166243707,465.11211608996,492.47165233054,495.11934938608,523.2511306012],description:"Lowest octave of Dowlands lute tuning, strings 1,2,3. 1/1=G. (1610)"},dow_middle:{frequencies:[261.6255653006,274.08392555301,278.50463402967,290.97061290936,294.32876096318,308.34441624714,310.07474405997,313.31771328338,328.31443488703,331.11985608357,346.88746827803,348.83408706747,368.2596819634,371.33951203956,392.4383479509,411.12588832951,415.52295665389,417.75695104451,441.49314144476,462.5166243707,469.97656992507,491.01290928454,496.67978412536,520.33120241704,523.2511306012],description:"Middle octave of Dowlands lute tuning, strings 3,4,5. 1/1=G (1610)"},dowland_12:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,392.4383479509,417.75695104451,441.49314144476,462.5166243707,492.47165233054,523.2511306012],description:"subset of Dowland's lute tuning, lowest octave"},druri:{frequencies:[261.6255653006,285.79952600623,326.97270111135,357.18467683857,523.2511306012],description:"Scale of druri dana of Siwoli, south Nias, Jaap Kunst"},dudon_a:{frequencies:[261.6255653006,285.85015468029,319.76457981184,348.83408706747,392.4383479509,428.77523202043,479.64686971777,523.2511306012],description:"Dudon Tetrachord A"},dudon_b:{frequencies:[261.6255653006,283.42769574232,321.58142401532,348.83408706747,392.4383479509,425.14154361347,482.37213602298,523.2511306012],description:"Dudon Tetrachord B"},dudon_c12:{frequencies:[261.6255653006,302.50455987882,327.03195662575,343.38355445704,392.4383479509,425.14154361347,474.19633710734,523.2511306012],description:"Differentially coherent scale in interval class 1 and 2"},dudon_diat:{frequencies:[261.6255653006,294.32876096318,321.08592105074,350.8160989258,392.4383479509,428.11456140098,481.6288815761,523.2511306012],description:"Dudon Neutral Diatonic"},dudon_moha_baya:{frequencies:[261.6255653006,285.30470202322,320.24370022528,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Mohajira + Bayati (Dudon) 3 + 4 + 3 Mohajira and 3 + 3 + 4 Bayati tetrachords"},dudon_mohajira:{frequencies:[261.6255653006,285.30470202322,320.24370022528,349.22823143301,391.99543598175,427.47405410759,479.82340237272,523.2511306012],description:"Dudon's Mohajira, two 3 + 4 + 3 tetrachords, neutral diatonic"},dudon_mohajira_r:{frequencies:[261.6255653006,283.42769574232,321.58142401532,348.83408706747,392.4383479509,425.14154361347,479.64686971777,523.2511306012],description:"Jacques Dudon, JI Mohajira, Lumi\xEF\xBF\xBDres audibles"},dudon_thai:{frequencies:[261.6255653006,288.26147859917,317.63518509943,350.43752981487,386.47021463976,426.17461277719,469.97930400405,523.2511306012],description:"Dudon, coherent Thai heptatonic scale, 1/1 vol. 11/2, 2003"},dudon_thai2:{frequencies:[261.6255653006,288.02814528506,314.43072526953,347.1339209321,383.13743909274,422.44127975143,475.35895071461,523.2511306012],description:"Slightly better version, 3.685 cents deviation"},dudon_thai3:{frequencies:[261.6255653006,291.60349465796,321.58142401532,354.2846196779,394.48229767981,434.67997568173,478.96555314146,523.2511306012],description:"Dudon, Thai scale with two 704/703 = 2.46 c. deviations and simpler numbers"},duncan:{frequencies:[261.6255653006,277.97716313189,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Dudley Duncan's Superparticular Scale"},duoden12:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,413.89982010446,440.99519155196,465.63729761752,496.11959049595,523.2511306012],description:"Almost equal 12-tone subset of Duodenarium"},duodenarium:{frequencies:[14.56761754744,14.73307690724,14.74971276678,14.91724036858,14.98726085128,15.00418372272,15.10370587319,15.17460161192,15.19173601925,15.34695511171,15.36428413207,15.5387920506,15.55633768372,15.71528203439,15.73302695124,15.80687667908,15.91172305982,15.92968978813,16.00446263757,16.18624171938,16.20451842054,16.38856974087,16.57471152064,16.59342686263,16.78189541465,16.86066845769,16.87970668806,16.99166910733,17.07142681341,17.26532450067,17.28481964857,17.48114105693,17.67969228869,17.69965532014,17.78273626396,17.90068844229,17.98471302153,18.00502046726,18.2095219343,18.41634613405,18.43714095848,18.64655046072,18.73407606409,18.85833844126,18.87963234148,18.9682520149,18.98967002407,19.18369388963,19.20535516508,19.42349006325,19.44542210465,19.64410254298,19.66628368904,19.88965382477,19.91211223516,20.00557829696,20.13827449758,20.23280214922,20.25564802567,20.48571217609,20.7183894008,20.74178357829,20.97736926831,21.07583557211,21.21563074642,21.23958638417,21.33928351676,21.58165562584,21.60602456072,21.85142632116,22.09961536086,22.12456915017,22.37586055287,22.48089127691,22.50627558408,22.65555880978,22.76190241787,23.02043266756,23.0464261981,23.3081880759,23.57292305158,23.59954042685,23.71031501862,23.86758458973,23.97961736204,24.00669395635,24.27936257907,24.30677763081,24.55512817873,24.5828546113,24.86206728096,24.89014029395,25.14445125502,25.17284312198,25.29100268653,25.31956003209,25.487503661,25.60714022011,25.897986751,25.92722947286,26.22171158539,26.51953843303,26.54948298021,26.67410439595,26.85103266344,26.9770695323,27.0075307009,27.31428290145,27.62451920107,27.65571143772,27.96982569108,28.10111409614,28.2875076619,28.31944851222,28.45237802234,28.77554083445,28.80803274762,29.13523509488],description:"Ellis's Duodenarium : genus [3^12 5^8]"},duodene:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ellis's Duodene : genus [33355]"},"duodene14-18-21":{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,378.42269266694,392.4383479509,406.97310157871,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:"14-18-21 Duodene"},"duodene3-11_9":{frequencies:[261.6255653006,285.40970760065,294.32876096318,319.76457981184,321.08592105074,348.83408706747,359.73515228832,392.4383479509,426.35277308246,428.11456140098,479.64686971777,481.6288815761,523.2511306012],description:"3-11/9 Duodene"},"duodene3-7":{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,515.07533168556,523.2511306012],description:"3-7 Duodene"},"duodene6-7-9":{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,406.97310157871,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:"6-7-9 Duodene"},duodene_min:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,353.19451315581,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Minor Duodene"},"duodene_r-45":{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,353.19451315581,376.74081403286,401.85686830172,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated -45 degrees"},duodene_r45:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,313.95067836072,334.88072358477,383.2405741708,408.78994578219,436.04260883433,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated 45 degrees"},duodene_r90:{frequencies:[261.6255653006,272.52663052146,279.06726965397,306.59245933664,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated 90 degrees: genus [33555]"},duodene_skew:{frequencies:[261.6255653006,282.55561052465,290.69507255622,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,502.32108537715,523.2511306012],description:"Rotated 6/5x3/2 duodene"},duodene_t:{frequencies:[261.6255653006,279.3825857701,293.66476791741,313.59634948548,327.03195662575,349.22823143301,367.08095907728,391.99543598175,418.60090448096,436.53528831673,469.86362971679,489.99429388332,523.2511306012],description:"Duodene with equal tempered fifths"},duowell:{frequencies:[261.6255653006,278.41172412276,294.03623226919,312.90189200955,327.96500300935,349.00756672938,368.59392213143,392.24328034087,417.4100028405,437.50413894442,469.11953885575,491.70297432358,523.2511306012],description:"Ellis duodene well-tuned to fifth=(7168/11)^(1/16) third=(11/7)^(1/2)"},dwarf6_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,373.75080757229,392.4383479509,448.50096908674,523.2511306012],description:"Dwarf(<6 10 14 17|)"},cairo:{frequencies:[261.6255653006,269.38381929633,276.03456984659,285.15047989166,293.63138642043,300.85736580106,309.799366845,312.20234522745,320.03127253896,327.93377450564,337.66851484331,348.83408706747,357.41197445437,367.9166999024,380.21445327801,392.4383479509,401.02017979859,414.62054722758,417.26565438692,427.77234352616,440.44707963064,451.93568025669,468.86302025197,480.04690880844,491.77737838459,510.98743222773,523.2511306012],description:"P.42, of d'Erlanger, vol.5. Congress of Arabic Music, Cairo, 1932"},canright:{frequencies:[261.6255653006,286.48426603331,306.03443598155,335.11270457212,357.98136125932,391.99543598175,418.74586628806,458.53356119912,489.82466832727,523.2511306012],description:`David Canright's piano tuning for "Fibonacci Suite" (2001)`},carlos_alpha:{frequencies:[261.6255653006,273.68256372566,286.29520819723,299.48910562989,313.29104303136,327.729041887,342.83241505062,358.63182625716,375.1593523779,392.44854854484,410.5345162762,429.45397474154,449.24533531117,469.94877954106,491.60634075178,514.26198936695,537.96172218451,562.75365576207,588.68812410589],description:"Wendy Carlos' Alpha scale with perfect fifth divided in nine"},carlos_alpha2:{frequencies:[261.6255653006,267.58616452957,273.68256372566,279.91785681123,286.29520819723,292.81785438923,299.48910562989,306.31234757893,313.29104303136,320.42873367481,327.729041887,335.19567257401,342.83241505062,350.6431449633,358.63182625716,366.8025131876,375.1593523779,383.7065849236,392.44854854484,401.3896797878,410.5345162762,419.88769901416,429.45397474154,439.23819834286,449.24533531117,459.48046426806,469.94877954106,480.6555937997,491.60634075178,502.8065779009,514.26198936695,525.97838877075,537.96172218451,550.21807114943,562.75365576207,575.57483783111,588.68812410589],description:"Wendy Carlos' Alpha prime scale with perfect fifth divided by eightteen"},carlos_beta:{frequencies:[261.6255653006,271.44693432634,281.63699549204,292.20958942356,303.17907632096,314.56035546319,326.36888544505,338.62070517372,351.33245565363,364.52140258903,378.2054598351,392.40321372938,407.13394833666,422.41767164147,438.27514272393,454.72789995564,471.7982902542,489.50949943583,507.88558370741,526.95150234083,546.73315157381,567.25739978343,588.55212398003],description:"Wendy Carlos' Beta scale with perfect fifth divided by eleven"},carlos_beta2:{frequencies:[261.6255653006,266.49100855797,271.44693432634,276.49502530642,281.63699549204,286.87459075215,292.20958942356,297.64380291476,303.17907632096,308.81728905054,314.56035546319,320.41022551991,326.36888544505,332.43835840072,338.62070517372,344.91802487526,351.33245565363,357.86617542024,364.52140258903,371.30039682974,378.2054598351,385.23893610237,392.40321372938,399.70072522531,407.13394833666,414.70540688852,422.41767164147,430.27336116448,438.27514272393,446.42573318931,454.72789995564,463.18446188312,471.7982902542,480.57230974851,489.50949943583,498.61289378764,507.88558370741,517.33071758003,526.95150234083,536.75120456442,546.73315157381,556.90073257014,567.25739978343,577.80666964473,588.55212398003],description:"Wendy Carlos' Beta prime scale with perfect fifth divided by twentytwo"},carlos_gamma:{frequencies:[261.6255653006,266.98388983977,272.45195763676,278.03201633122,283.72635959645,289.53732808222,295.4673103769,301.51874398927,307.69411635045,313.99596583639,320.42688281121,326.98951069203,333.68654703547,340.52074464653,347.49491271011,354.6119179457,361.87468578579,369.2862015783,376.84951181374,384.56772537748,392.44401482761,400.48161769905,408.68383783428,417.05404674148,425.59568498025,434.31226357598,443.20736546293,452.28464695708,461.547839259,471.00074998758,480.64726474513,490.49134871455,500.53704828923,510.78849273629,521.24989589392,531.92555790347],description:"Wendy Carlos' Gamma scale with third divided by eleven or fifth by twenty"},carlos_harm:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Carlos Harmonic & Ben Johnston's scale of 'Blues' from Suite f.micr.piano (1977) & David Beardsley's scale of 'Science Friction'"},carlos_super:{frequencies:[261.6255653006,277.97716313189,294.32876096318,313.95067836072,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Carlos Super Just"},carlson:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Brian Carlson's guitar scale (or 7 is 21/16 instead) fretted by Mark Rankin"},cassandra1:{frequencies:[261.6255653006,265.52313139125,271.43629763673,275.48001908354,279.58398024378,283.7490817683,290.06813927787,294.38942683035,298.7750924519,305.42877739024,309.97889991383,314.59680966486,319.28351286859,326.39391783308,331.25637026535,336.19125912653,343.67819754196,348.79814248043,353.99435973883,359.26798967332,367.26884406885,372.74022844163,378.29312490007,386.71766674112,392.47878977853,398.32574139651,407.19640716832,413.26261206104,419.41919061043,425.66748431192,435.14704737009,441.62964923022,448.20882304357,458.19037897128,465.01626879626,471.9438445688,478.97462660712,489.64133323501,496.93576068834,504.33885972365,515.57042175735,523.2511306012],description:"Cassandra temperament (Erv Wilson), 13-limit, g=497.866"},cassandra2:{frequencies:[261.6255653006,265.34593985135,270.18130909623,275.10479273152,279.0168449367,284.10133754875,289.27848429833,293.3920895946,298.7385406747,304.18241953205,309.72550158209,314.12986807617,319.85422136322,325.68288889698,330.31417303802,336.33345109576,342.46241778116,348.70307193775,353.66170827405,360.10644584283,366.66862514012,371.88273569526,378.65951299923,385.5597827545,392.58579535013,398.16845391153,405.42423290482,412.81223314336,418.68251621245,426.31212065787,434.08075852776,440.25348482514,448.27617460765,456.44506096456,464.76280801961,471.37183998139,479.96159605313,488.70788228454,495.65741860341,504.6897280454,513.8866322474,523.2511306012],description:"Cassandra temperament, schismic variant, 13-limit, g=497.395"},catler:{frequencies:[261.6255653006,269.80136421624,279.06726965397,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,322.00069575458,327.03195662575,343.38355445704,348.83408706747,359.73515228832,367.91095120397,380.54627680087,392.4383479509,418.60090448096,425.14154361347,436.04260883433,441.49314144476,457.84473927605,465.11211608996,483.00104363188,490.54793493862,523.2511306012],description:'Catler 24-tone JI from "Over and Under the 13 Limit", 1/1 3(3)'},cbrat19:{frequencies:[261.6255653006,272.05448646742,281.65887246066,291.7164960911,303.76422848609,314.23522436032,325.78124145721,339.14379232251,350.05979530932,364.18597952318,377.95660802413,389.93691761381,406.2330981776,420.87727247778,436.65546295526,454.14747622901,467.92430113657,486.684954898,506.27371414348,523.2511306012],description:"brats = -1 -1 -1 -1 -1 -1 -1 -1 0 3/7 390808/591947 1/2 1/2 1/2 1/2 1/4 0 0 -1"},ceb88f:{frequencies:[261.6255653006,275.30280934529,289.60851057007,304.80308899558,320.69584574771,337.31885569235,354.97473368038,373.44187862432,393.05647479461,413.57234190108,435.03089105397,457.82276134277,481.66189358475,506.59641128799],description:"88 cents steps with equal beating fifths"},ceb88s:{frequencies:[261.6255653006,275.27750547448,289.60710371138,304.74878776577,320.64207659236,337.32428016541,354.95189689869,373.45451504132,392.8755714351,413.39725679488,434.93759942207,457.54716438978,481.43806014345,506.51485544552,533.01280425363],description:"88 cents steps with equal beating sevenths"},ceb88t:{frequencies:[261.6255653006,275.20384442973,289.60910777612,304.54100616185,320.3823320487,337.18847246966,354.60902163481,373.09056856306,392.69773188536,413.02170471677,434.58350960486,457.45853552679,481.16983689269,506.32527343025,533.01280425363],description:"88 cents steps with equal beating 7/6 thirds"},cet105:{frequencies:[261.6255653006,277.98437592617,295.36606150822,313.83458334354,333.45789502888,354.30820661869,376.46223533368,400.00150378562,425.01262301844,451.58762919357,479.82430313337,509.82655042708,541.70476218406,575.57624366132],description:"Equal temperament with very good 6/5 and 13/8"},cet105a:{frequencies:[261.6255653006,278.09098920184,295.59266404146,314.19580976213,333.96974580612,354.98815389674,377.32935907335,401.07660961589,426.31839262878,453.14877154631,481.66772230429,511.98151233648,544.20310589723,578.45256778249,614.85751848055,653.5536209391,694.68506540856,738.40511604959,784.8766959018],description:"18th root of 3"},cet111:{frequencies:[261.6255653006,279.02234237845,297.57591715819,317.3632108372,338.46625752841,360.97255206362,384.97540137331,410.57431878206,437.87543474729,466.99193686517,498.04453913461,531.16197935691,566.48156495049,604.14972437838,644.32262592407,687.16682227215,732.8599410185,781.59142109591,833.56329335333,888.99103711409,948.10444554232,1011.14859670036,1078.38486510237,1150.09200534594,1226.56730779978,1308.127826503],description:'25th root of 5, Karlheinz Stockhausen in "Studie II" (1954)'},cet111a:{frequencies:[261.6255653006,279.09119608948,297.72279782842,317.59821198502,338.80046946076,361.41815173468,385.54574794778,411.2840547398,438.74060487161,468.03009995854,499.27490936609,532.60556349815,568.16130614457,606.09068659426,646.55215742719,689.71476370538,735.75882016749,784.8766959018],description:"17th root of 3. McLaren 'Microtonal Music', volume 1, track 8"},cet112:{frequencies:[261.6255653006,279.13807488234,297.82282461384,317.75828292395,339.02816520012,361.72179601836,385.93447726538,411.76789245756,439.33052439618,468.73812456399,500.11419015728,533.59048802364,569.30759588159,607.4155105893,648.07426630787,691.45461344743,737.73872000797,787.12095980595,839.80871352279,896.02324851892,956.00062766807,1019.99273078287,1088.26829265547,1161.11404316696,1238.83588500259,1321.76021726874,1410.23528064063,1504.63263477595,1605.34868446028,1712.8063948195,1827.45703443292,1949.78208984359,2080.29524321777,2219.54459500735,2368.11492276755,2526.63016208001,2695.75596930795,2876.20260183901,3068.72784518,3274.14022786751,3493.30234242079,3727.13457771193,3976.61891204907,4242.80307922676,4526.8048719912,4829.81697864182,5153.11189830808,5498.04733953642,5866.07179694692,6258.73081875602,6677.6733762505,7124.65885956048,7601.56430418436,8110.3925243186],description:"53rd root of 31. McLaren 'Microtonal Music', volume 4, track 16"},cet114:{frequencies:[261.6255653006,279.47933554513,298.55147893584,318.92513586406,340.68912750315,363.93832870511,388.77409689134,415.30469757995,443.64579124771,473.92093172942,506.26209616971,540.81027939262,577.71608583803,617.1404103833,659.25511382574,704.24379572788,752.30258557703,803.64098403142,858.48280642307,917.06712239825,979.64933665453,1046.5022612024],description:"21st root of 4"},cet115:{frequencies:[261.6255653006,279.68949451567,299.00064605783,319.64513593742,341.71502406609,365.30872604057,390.53145607553,417.49568846357,446.32166408632,477.13792869952,510.08190181294],description:"2nd root of 8/7. Werner Linden, Musiktheorie, 2003 no.1 midi 15.Eb=19.44544 Hz"},cet117:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,342.56848033562,366.44956000397,391.99543598175,419.32216217931,448.5538823653,479.82340237272,513.27277840175,549.0539690723,587.32953583482,628.27336308449,672.07145630843,718.92279942609,769.0402362475,822.65144744826,880,941.34642612261,1006.96941915374,1077.1671181081,1152.25842837255,1232.58448551457,1318.51022765149,1410.42601205207,1508.74940691646,1613.92711604023,1726.4369576214,1846.79005749489,1975.53320502451,2113.25127526858,2260.56991361642,2418.15841952625,2586.73271138559,2767.05861265008,2959.95538169309],description:"72nd root of 128, step = generator of Miracle"},cet118:{frequencies:[261.6255653006,280.22072913446,300.13755324878,321.46997343155,344.3186075731,368.79121945838,395.0032340925,423.07827792492,453.14877154631,485.35654007358,519.85349135637,556.8023269521,596.37732215892,638.76512932755,684.16567043124,732.79307276157,784.8766959018],description:"16th root of 3. McLaren 'Microtonal Music', volume 1, track 7"},cet126:{frequencies:[261.6255653006,281.50639381697,302.89795903081,325.91506125677,350.68122444233,377.32935907335,406.00247545366,436.85445118639,470.05085697597,505.76984518255,544.20310589723,585.55689566922,630.05314440547,677.93064638327,729.44634176744,784.8766959018],description:"15th root of 3. McLaren 'Microtonal Music', volume 1, track 6"},cet126a:{frequencies:[261.6255653006,281.42815779395,302.72962012827,325.64340264099,350.29154279212,376.80531512858,405.32593044476,436.00528786292,469.00678383895,504.50618240233,542.69254813034,583.76926541313,627.95510352048,675.48539363125,726.61327927927,781.61106458091,840.77166451082,904.41016494992,972.86550081423,1046.5022612024],description:"19th root of 4"},cet133:{frequencies:[261.6255653006,282.54488373859,305.13688994853,329.53533037111,355.88464567857,384.34082587483,415.07233376839,448.26110228542,484.10361152681,522.81205194575,564.61558053174,609.76167743791,658.5176110828,711.17202040031],description:"13th root of e"},cet140:{frequencies:[261.6255653006,283.72172983292,307.68407293041,333.67021037701,361.85106232365,392.4119924075,425.55401329039,461.49511402661,500.47170241421,542.7401414615,588.57845795114,638.28815062634,692.19618110881,750.65713728047,814.05554253056,882.80839491877,957.36792629418,1038.22454144983,1125.91008648826,1221.00130775733,1324.12366033919,1435.95544645068,1557.23222387914,1688.75170820144,1831.3789571042],description:"24th root of 7"},cet141:{frequencies:[261.6255653006,283.85429714132,307.97166902637,334.13814720468,362.52783176564,393.32961502355,426.7484383229,463.0066556268,502.34551296122,545.02675670673,591.33436279611,641.57644431325,696.08728968715,755.22958979995,819.39685117042,889.01601417107,964.55029369918,1046.5022612024],description:"17th root of 4"},cet146:{frequencies:[261.6255653006,284.69629445872,309.80145226022,337.12043918596,366.84847565362,399.19799705513,434.40017432099,472.70655602525,514.39088038704,559.75102196641,609.11112257023,662.82390755693,721.27320639821,784.8766959018],description:"13th root of 3, Bohlen-Pierce approximation"},cet148:{frequencies:[261.6255653006,284.92791524313,310.30575035912,337.94392545772,368.04376529149,400.82452432448,436.52498800167,475.40520223986,517.74838217475,563.86296895784,614.08486606944,668.77990486322,728.34649714081,793.21854485147,863.86858278563,940.81124699851,1024.60701225804,1115.86625569541,1215.25373699679,1323.49342609599,1441.37375222579,1569.7533918036],description:"21th root of 6, Moreno's C-21"},cet152:{frequencies:[261.6255653006,285.70808394691,312.0073878821,340.72733440875,372.0911362405,406.34196228781,443.74556186468,484.59214639302,529.19833545193,577.91081034511,631.10724720728,689.20039277289,752.64098693245,821.92125998587],description:"13th root of pi"},cet158:{frequencies:[261.6255653006,286.70831230381,314.19580976213,344.3186075731,377.32935907335,413.50494015483,453.14877154631,496.5933637384,544.20310589723,596.37732215892,653.5536209391,716.21156534988,784.8766959018],description:`12th root of 3, Moreno's A-12, see dissertation "Embedding Equal Pitch Spaces.`},cet159:{frequencies:[261.6255653006,286.82842069679,314.45911373416,344.75151869218,377.96204482418,414.37180231943,454.28897403052,498.05144066897,546.02962057131],description:"4e-th root of e. e-th root of e is highest x-th root of x"},cet160:{frequencies:[261.6255653006,286.95745534843,314.74210513576,345.21700307457,378.64263238751,415.30469757995,455.51656649021,499.62194879119,547.99783383788,601.05771297194,659.25511382574,723.0874768355,793.10040709753,869.89233791055,954.11964586525,1046.5022612024],description:'15th root of 4, Rudolf Escher in "The Long Christmas Dinner" (1960)'},cet160a:{frequencies:[261.6255653006,287.06963246392,314.98822873932,345.62201499981,379.23505183234,416.11708252541,456.58602635137,500.99072933585,549.71395617638,603.17569602575,661.83679400878,726.20290371434,796.8288589228,874.32344802967,959.35468153537,1052.65552131526,1155.03021091382,1267.36122959081,1390.6168610076,1525.85955590014,1674.2551187631,1837.08270650821,2015.74588766663,2211.78472029595,2426.88907720145,2662.91313932742,2921.89140956529,3206.0563044734,3517.85730085803,3859.98211320646,4235.37982185266,4647.28638964387,5099.2524155536,5595.17379976366,6139.32543031277,6736.39784717273,7391.53779523322,8110.3925243186],description:"37th root of 31. McLaren 'Microtonal Music', volume 2, track 7"},cet163:{frequencies:[261.6255653006,287.45276480522,315.82957660097,347.00769742017,381.26366336311,418.90131810157,460.25449359467,505.68997636603,555.61077020009,610.45965236807],description:'9th root of 7/3. Jeff Scott in "Quiet Moonlight" (2001)'},cet163a:{frequencies:[261.6255653006,287.41152361975,315.7389582221,346.85836204295,381.04491126651,418.60090448096,459.85843616195,505.18233428314,554.97338050766],description:"5th root of 8/5"},cet166:{frequencies:[261.6255653006,287.95619440582,316.93680165166,348.83408706747],description:"3rd root of 4/3"},cet173:{frequencies:[261.6255653006,289.10449173793,319.46957112932,353.02394045842,390.10257564198,431.07563562091,476.35215768611,526.38414093011,581.67105858963,642.7648443263,710.27540222401,784.8766959018],description:"11th root of 3, Moreno's A-11"},cet175:{frequencies:[261.6255653006,289.48414624674,320.30918244523,354.41654988346,392.15575985798,433.91353804458,480.11779720922,531.2420078798,587.8100594825,650.40162657281,719.65810898332,796.28920449429,881.08018137935,974.89992535123,1078.70983713651,1193.57370864212,1320.66858845324,1461.29686662697,1616.89961515233,1789.07135516847,1979.57639663535,2190.36691789568,2423.60297039629,2681.67459807517,2967.22638952895,3283.18448966052,3632.78664249769,4019.61535560076,4447.6346101102],description:"28th root of 7. McLaren 'Microtonal Music', volume 6, track 3"},cet175a:{frequencies:[261.6255653006,289.53628281337,320.42456924675,354.60807736883,392.4383479509,434.30442400296,480.63685362987,531.91211578736],description:"4th root of 3/2"},cet178:{frequencies:[261.6255653006,289.91935960089,321.27301846367,356.01745236555,394.51936464224,437.18511000944,484.46499093218,536.85800524663,594.91712478053,659.25511382574,730.5510078664,809.55727745129,897.10776473059,994.12650420781,1101.63744560301,1220.77528002516,1352.79740322961,1499.09721690784,1661.21879031979,1840.87318566558,2039.95650991293,2260.56991361642,2505.04181781964,2775.9524141353,3076.16094499002,3408.83584914421,3777.48827884202,4186.0090448096],description:"27th root of 16"},cet181:{frequencies:[261.6255653006,290.48091212946,322.51878830959,358.09020513941,397.58488163802,441.43552612833,490.12256936272,544.17943316245,604.19836236377,670.83693141722,744.82523718317,826.97390553231,918.18295398723,1019.45167961503,1131.88958971281,1256.72856920928,1395.33634826987],description:"6.625 tET. The 16/3 is the so-called Kidjel Ratio promoted by Maurice Kidjel in 1958"},cet182:{frequencies:[261.6255653006,290.70585738945,323.0184918031,358.92275093366,398.81785224951,443.14738973192,492.40425618917,547.1361382945,607.95159681319,675.52683545966,750.61321956915,834.04563048717,926.75174856904,1029.76237395443,1144.22286477952,1271.40590625444,1412.7256395721,1569.7533918036],description:"17th root of 6, Moreno's C-17"},cet195:{frequencies:[261.6255653006,292.81795587218,327.72927094457,366.80289667873,410.53509014096,459.48126579586,514.26306468681,575.57624366132],description:"7th root of 11/5"},cet21k:{frequencies:[261.6255653006,264.89588486686,268.20708342769,271.55967197054,274.95416787017,278.3910952928,281.87098404962,285.39437141672,288.96180112674,292.57382370898,296.23099657435,299.9338841014,303.68305772341,307.47909424051,311.32258299104,315.21411535185,319.1542918681,323.14372059172,327.18301717534,331.2728049672,335.41371510742,339.60638662537,343.85146653829,348.14960995112,352.50148015762,356.90774874273,361.36909568619,365.8862094675,370.45978717215,375.09053459917,379.77916637013,384.52640603933,389.33298620552,394.19964862491,399.1271443257,404.11623372391,409.16768674077,414.28228292154,419.46080913287,424.70406934596,430.01287031296,435.38803129329,440.83038178715,446.34076166346,451.92002128953,457.56902166224,463.28863454093,469.07974258197,474.94323947488,480.88003008033,486.89103056976,492.97716856672,499.13938329007,505.37862569893,511.69585863936,518.09205699304,524.56820782765],description:"scale of syntonic comma's, almost 56-tET"},cet222:{frequencies:[261.6255653006,297.3462123974,337.94392545772,384.08458333231,436.52498800167,496.12526073276,563.86296895784,640.8491384935,728.34649714081,827.79017883768,940.81124699851,1069.2634803114,1215.25373699679,1381.1765584523,1569.7533918036],description:"14th root of 6, Moreno's C-14"},cet233:{frequencies:[261.6255653006,299.41460910537,342.66187834083,392.15575985798,448.79850611373,513.6227001391,587.8100594825,672.71300106294,769.87926947615,881.08018137935,1008.34288220748,1153.98733901804,1320.66858845324,1511.42518780658,1729.7345489351,1979.57639663535,2265.50524176842,2592.73349533282,2967.22638952895,3395.81083571538,3886.29974647262,4447.6346101102],description:"21st root of 17. McLaren 'Microtonal Music', volume 2, track 15"},cet24:{frequencies:[261.6255653006,265.3411057651,269.1094134006,272.9312375932,276.80733837157,280.73848655813,284.72546392233,288.7690633361,292.87008893155,297.02935626086,301.24769245848,305.52593640563,309.86493889709,314.26556281043,318.72868327757,323.25518785885,327.84597671953,332.50196280875,337.22407204116,342.01324348101,346.8704295289,351.79659611118,356.79272287204,361.85980336835,366.9988452672,372.21087054633,377.49691569736,382.85803193188,388.29528539052,393.80975735501,399.40254446313,405.07475892685,410.82752875349,416.66199797006,422.57932685074,428.58069214763,434.66728732478,440.84032279551,447.10102616311,453.45064246502,459.89043442035,466.42168268106,473.04568608657,479.76376192214,486.57724618073,493.48749382879,500.49587907561,507.6037956467,514.81265706088,522.12389691142,529.53896915113],description:"least squares fit primes 2-13"},cet258:{frequencies:[261.6255653006,303.75687573192,352.67287219582,409.46613795376,475.40520223986,551.96287401486,640.8491384935,744.04935121924,863.86858278563,1002.98310468409,1164.50016626124,1352.0273979586,1569.7533918036],description:"12th root of 6, Moreno's C-12"},cet29:{frequencies:[51.91308719749,52.80006242627,53.70219231256,54.6197354699,55.55295587693,56.50212107609,57.46750349647,58.44938022184,59.44803272677,60.46374832519,61.49681820986,62.54753889218,63.61621194966,64.70314373878,65.80864697157,66.93303858176,68.07664129187,69.2397833384,70.42279815925,71.62602610967,72.84981213985,74.09450750046,75.36046944358,76.64806088248,77.95765225928,79.28961901721,80.64434345693,82.02221441105,83.42362735565,84.84898403373,86.29869452271,87.77317443616,89.27284697886,90.79814258634,92.34949851506,93.9273610926,95.53218267212,97.16442386902,98.82455316866,100.51304648023,102.230389586,103.97707482641,105.75360353451,107.56048560902,109.39823902877,111.26739251837,113.16848194039,115.10205294491,117.06866050489,119.06886838764,121.10325205621,123.17239474253,125.2768903313,127.4173428542,129.59436591466,131.80858584574,134.06063743615,136.35116706905,138.68083217153,141.05030058861,143.46025402018,145.91138336926,148.40439215824,150.93999592972,153.51892156515,156.14191102559,158.8097162888,161.52310306741,164.28285015685,167.08974869373,169.94460622727,172.84824120887,175.80148703892,178.80519135714,181.8602162858,184.96743760879,188.12774927869,191.34205731671,194.61128429254,197.93636853869,201.31826325695,204.75794142387,208.2563891515,211.8146105632,215.43362693858,219.11447574094,222.85821595641,226.66592086774,230.53868336123,234.47761499594,238.48384494529,242.55852580808,246.70282574354,250.91793424736,255.20506113867,259.56543598745],description:"95th root of 5"},cet39:{frequencies:[261.6255653006,267.55763511324,273.62420803617,279.82833216202,286.17312954462,292.66178817784,299.29756995616,306.08381073387,313.02392200207,320.12139075456,327.37978859613,334.80276256646,342.39404424694,350.15744982839,358.09687996112,366.21632994368,374.51987945827,383.01170275779,391.6960687417,400.57734310204,409.65998815178,418.94857448076,428.44776921301,438.16234766073,448.09719341103,458.25729813392,468.64777462103,479.27384364987,490.14084702027,501.25424765147,512.61963232837,524.24271148185,536.12933410494,548.28547272565,560.71723832061,573.43088042607,586.43278689221,599.72950056876,613.32770249519,627.23422858353,641.45606974252,656.00037539202,670.87445318194,686.08578808043,701.64202314362,717.55097860059,733.82065199545,750.45921787297,767.47504913108,784.8766959018],description:"49th root of 3"},cet39a:{frequencies:[261.6255653006,267.54999903763,273.60843178624,279.80421399945,286.14029787289,292.61969147246,299.24597805224,306.02231493662,312.9519192023,320.03862308027,327.28580327671,334.69690040195,342.27601296361,350.02675229311,357.95279806627,366.05853356918,374.34782106107,382.82459589435,391.49354592099,400.35880176332,409.42457221564,418.6958708581,428.17711532294,437.87280684605,447.78830736843,457.9283414747,468.29772316218,478.90218693807,489.74678566745,500.83666784082,512.17796641877,523.77608535691],description:"31-tET with least squares octave; equal weight to 5/4, 3/2, 7/4 and 2/1"},cet39b:{frequencies:[261.6255653006,267.54443554965,273.59736903996,279.78708267123,286.11699418435,292.58994480246,299.2095086599,305.97865699219,312.90112748358,319.98002733127,327.21907624411,334.6220906301,342.19239338178,349.93416455252,357.85087908811,365.94690831825,374.22588619981,382.6921630398,391.3502022376,400.20389001205,409.25811505631,418.51694141988,427.98548149913,437.66798531163,447.56979919346,457.69536764001,468.05001127562,478.63918904181,489.46765396188,500.54138513107,511.86535306771,523.4458104663],description:"31-tET with l.s. 8/7, 5/4, 4/3, 3/2, 8/5, 7/4, 2/1; equal weights"},cet39c:{frequencies:[261.6255653006,267.52919373065,273.56603860918,279.73910598956,286.05147140959,292.50627485027,299.10673210371,305.85612987468,312.75782903301,319.8152662872,327.03195662575,334.41149334841,341.95754947331,349.67388372612,357.56433846376,365.63284274659,373.88341429498,382.32016148985,390.94728541851,399.7690842757,408.78994578219,418.01436575232,427.44693588739,437.09235368188,446.9554220819,457.04105241293,467.35426952494,477.9002035559,488.68410850494,499.71135422907,510.98743222773,522.51795602393],description:"10th root of 5/4"},cet39d:{frequencies:[261.6255653006,267.55786538889,273.62467903016,279.82905628857,286.1741163878,292.66304927922,299.29911724561,306.08565654127,313.02607906932,320.12387409698,327.38261000985,334.80593610581,342.39758442978,350.16137164992,358.1012009765,366.22106412416,374.52504331879,383.0173133498,391.70214366901,400.58390053708,409.66704921865,418.95615622721,428.45589162089,438.17103135034,448.1064596598,458.26717154264,468.65827525256,479.28499487175,490.15267293726,501.26677312698,512.63288300643,524.25671683791],description:"31-tET with l.s. 5/4, 3/2, 7/4"},cet39e:{frequencies:[261.6255653006,267.56053134626,273.63013029147,279.83741943955,286.18551905392,292.67762672082,299.3170076044,306.10700082387,313.05102655064,320.15257723818,327.41522444303,334.84262641603,342.43851674365,350.20672153383,358.15114775562,366.27579142084],description:"15th root of 7/5, X.J. Scott"},cet44:{frequencies:[261.6255653006,268.36512159638,275.27829096782,282.369545742,289.64347345451,297.10477981732,304.75829176301,312.60896056742,320.66186505284,328.92221487359,337.3953538863,346.08676360706,355.00206675748,364.14703090225,373.52757218034,383.14975913231,393.01981662619,403.14412988459,413.52924861543,424.18189124916,435.1089492851,446.31749174973,457.81476976988,469.60822126365,481.70547575226,494.11435929576,506.84289955596,519.89933098975,533.2921001762],description:"least maximum error of 10.0911 cents to a set of 11-limit consonances"},cet45:{frequencies:[261.6255653006,268.55812265554,275.67437899809,282.97903853108,290.47742047479,298.17449463282,306.07552595385,314.18591889722,322.51122112969,331.05693609414,339.82928674186,348.83408706747],description:"11th root of 4/3"},cet45a:{frequencies:[261.6255653006,268.48547646737,275.52525683447,282.74962263341,290.1634137569,297.77159700127,305.57926939395,313.59166160814,321.8141414671,330.2522175402,338.9115428334,347.79791857637,356.91729810903,366.27579142084],description:"13th root of 7/5, X.J. Scott"},cet49:{frequencies:[261.6255653006,269.10883825956,276.80615518671,284.72363837915,292.86758524998,301.24447333711,309.86096545541,318.72391499615,327.84037137809,337.21758565441,346.86301628009,356.78433504421,366.98943317194,377.48642760107,388.28366743806,399.38974059878,410.81348063915,422.56397378117,434.65056613995,447.08287115744,459.87077724873,473.02445566714,486.55436859423,500.47127746122,514.78625150841,529.51067658945],description:"least squares fit primes 3-13"},cet49a:{frequencies:[261.6255653006,269.10939785623,276.80730639354,284.72541458317,292.8700212642,301.24760545475,309.86483150611,318.72855440416,327.84582522255,337.22389673177,346.87022916874,356.7924961714,366.99859088307,377.49663223147,388.29497138724,399.40219840734,410.82714906841,422.57891189558,434.66683539241,447.10053547759,459.8899031344,473.04511227892,486.57662785344,500.49521415122,514.81194337949,529.53820446742],description:"least squares fit primes 5-13"},cet49b:{frequencies:[261.6255653006,269.11089011973,276.81037630182,284.73015118141,292.87651740119,301.25595792767,309.87514121046,318.74092648901,327.86036925135,337.24072684885,346.88946427176,356.81426008988,367.0230125633,377.52384592787,388.3251168606,399.43542112995,410.86360043647,422.61874944911,434.71022304287,447.14764374346,459.94090938509,473.10020098719,486.63599085665,500.55905092174,514.88046130456,529.61161913871],description:"least squares fit primes 3-11"},cet51:{frequencies:[261.6255653006,269.45730810595,277.52349357863,285.8311397433,294.38747470873,303.19994295657,312.27621181854,321.62417814738,331.25197518754,341.1679796516,351.38081900843,361.89937898954,372.73281132023,383.89054168203,395.38227791356,407.21801845694,419.40806105693,431.96301172054,444.89379394488,458.21165822114,471.92819182319,486.05532888913,500.60536080461,515.59094689708,531.0251223827,546.92132188791,563.29337300176,580.1555203085,597.52243480304,615.40922665547,633.83145835774,652.80515826392,672.34683453572,692.47348950549,713.20263446921,734.55230492227,756.54107625132,779.18807989593,802.51301999392,826.53619052513,851.2784929682,876.7614544861,903.00724665589,930.0387047592,957.87934765022,986.55339821839,1016.08580446361,1046.5022612024],description:"47nd root of 4"},cet53:{frequencies:[261.6255653006,269.81714175785,278.26519897904,286.97776745533,295.963129115,305.22982618403],description:"5th root of 7/6, X.J. Scott"},cet54:{frequencies:[261.6255653006,269.96706985652,278.57452968396,287.45642599351,296.6215054241,306.0787984682,315.83762188043,325.9075894649,336.29862154621,347.0209567468,358.08515411748,369.5021153806,381.28308783765,393.43967739203,405.98385998242,418.92799580061,432.28483186346,446.06752886518,460.28966468743,474.96525012045,490.10874266572,505.73506369981,521.85960157932,538.49824405725,555.66738252045,573.38393096839,591.66534267587,610.52963091344,629.99537269573,650.08174791487,670.80854445602,692.19618110881,714.26572768264,737.03893002078,760.53821452531,784.78673539949,809.80838082331,835.62780061242,862.2704354823,889.76252234217,918.13114956434,947.40426420901,977.61070438283,1008.78022764847,1040.94354635268,1074.13233401713,1108.37929206026,1143.71815851921,1180.1837471134,1217.81198154093,1256.63993812708,1296.7058535394,1338.04920533515,1380.71072249048,1424.73243255855,1470.15770307252,1517.03129303135,1565.39936221354,1615.30956841503,1666.81108016015,1719.95463363144,1774.79258265191,1831.3789571042],description:"62nd root of 7"},cet54a:{frequencies:[36.70809598968,37.88151295543,39.09243955873,40.34207507177,41.63165640381,42.96246070241,44.33580570763,45.75305128262,47.21560103286,48.72490261351,50.28245077394,51.88978777214,53.5485051662,55.26024570942,57.02670371,58.84962859429,60.73082539186,62.67215683218,64.67554556259,66.74297456936,68.87649134796,71.07820847085,73.35030604133,75.69503428946,78.11471406483,80.61174171737,83.18858976192,85.8478097501,88.59203530858,91.42398271579,94.34645661434,97.36235078878,100.47465152683,103.6864411753,107.00089881505,110.42130694669,113.95105240089,117.59363027227,121.3526480812,125.23182656372,129.23500749643,133.36615476182,137.62935895249,142.02884224198,146.56895930934,151.25420649717,156.08922305851,161.0787965455,166.22786851013,171.54153558634,177.0250602084,182.68387207023,188.52357443227,194.5499507934,200.76896615752,207.18677957808,213.80974586608,220.64442297146,227.69757979185,234.97619765489,242.48748500016,250.23887937817,258.23805608937,266.49293732345,275.01169389411,283.8027624226,292.87484767725,302.23693268442,311.89828942495,321.86848086456,332.15738106504,342.77517792247,353.73238500089,365.03985405114,376.70877738729,388.75071142436,401.17757988308,414.00168763976,427.23573537822,440.89282237095,454.98647402737,469.53064564449,484.53973861665,500.02861758376,516.01261368641,532.50755680773,549.52977996323,567.09613827221,585.22402902787,603.93139550692,623.23676470498,643.1592524742,663.71858572717,684.9351219702,706.82987354375,729.42451222373,752.74141479803,776.80366927173,801.63510168485,827.26030448295,853.70464190233,880.99430375232],description:"101st root of 24"},cet54b:{frequencies:[261.6255653006,269.96795403263,278.5763544202,287.45924871019,296.62539133416,306.08381073387,315.84382837889,325.91506125677,336.30743300953,347.03118371184,358.09687996112,369.51542742358,381.29807310848,393.45642905887,406.00247545366,418.94857448076,432.30748251802,446.09236270275,460.31680056078,474.99480683953,490.14084702027,505.76984518255,521.89720128632,538.53880634615,555.71105808945,573.43088042607,591.71572697754,610.58361784146,630.05314440547,650.14349087612,670.87445318194,692.26646247798,714.3405894063,737.11858847932,760.62290389144,784.8766959018],description:"35th root of 3 or shrunk 22-tET"},cet55:{frequencies:[261.6255653006,270.01349691657,278.67035254505,287.60475577316,296.82560168354,306.34207552634,316.16365537714,326.30012507123,336.76157646737,347.55843063202,358.70144085484,370.20170518484,382.07067969055,394.32018111076,406.96241165943,420.00996255663,433.47583121124,447.37342422819,461.71658555081,476.51960046685,491.79721226214,507.56463983627,523.83758122386,540.63224654693,557.96536270557,575.85419620437,594.31655714751,613.37083662462,633.03601203256,653.33166919923,674.2780257851,695.8959359612,718.20693418482,741.23324143097,764.99779551626,789.52425640623,814.83705588084,840.96140460432,867.92332151557,895.74966491622,924.46813868508,954.10735043232,984.69681977767,1016.26701863443,1048.84937826003,1082.47635523452,1117.18144085251,1152.9992001672,1189.96531328939,1228.1165836432,1267.49101522141,1308.127826503],description:"51th root of 5"},cet55a:{frequencies:[261.6255653006,270.1234331478,278.89732210685,287.95619440582,297.30930820811,306.96622255393,316.93680165166,327.23123542864,337.86004496999,348.83408706747],description:"9th root of 4/3"},cet63:{frequencies:[261.6255653006,271.38398887572,281.50639381697,292.00635633712,302.89795903081,314.19580976213,325.91506125677,338.07143142496,350.68122444233,363.76135261718,377.32935907335,391.4034412791,406.00247545366,421.14604188408,436.85445118639,453.14877154631,470.05085697597,487.58337662462,505.76984518255,524.63465441916,544.20310589723,564.50144490757,585.55689566922,607.39769784277,630.05314440547,653.5536209391,677.93064638327,703.21691530872,729.44634176744,756.65410477833,784.8766959018],description:"30th root of 3 or stretched 19-tET"},cet63a:{frequencies:[261.6255653006,271.37251603396,281.48259278098,291.96932561311,302.84674360983,314.12940356828,325.83240291761,337.9714015469,350.5626427598,363.62297711023,377.1698766242,391.22147055517,405.79656146784,420.91465242294,436.59597307447,452.86150935499,469.73302118774,487.23308701689,505.38512383853,524.21342105699,543.74317298677,564.00051582303,585.01254970054,606.80739415229,629.41421305643,652.8632568014,677.18590276436,702.41470135475,728.58340348685,755.72702964881,783.88190097186,813.08569174348,843.37747981977,874.79780396885,907.38869808556,941.19377721109,976.25827622702,1012.62911525602,1050.35496244617,1089.48630538731,1130.07549372248,1172.17684627813,1215.84669925421,1261.14348767523,1308.127826503],description:"44th root of 5"},cet67:{frequencies:[261.6255653006,271.89449162354,282.56647812794,293.65734341902,305.18353207836,317.16212905639,329.61089159214,342.54827390456,355.99345454941,369.96636271272,384.48771622149,399.57903967613,415.26270466472,431.56196087069,448.50096908674],description:"14th root of 12/7, X.J. Scott"},cet70:{frequencies:[261.6255653006,272.49048247121,283.80660334964,295.59266404146,307.86818385681,320.65348759128,333.96974580612,347.83900623503,362.28423824861,377.32935907335,392.99928119148,409.31995166322,426.31839262878,444.02275580482,462.46235461904,481.66772230429,501.67065719504,522.50428685614,544.20310589723,566.80304433509,590.34152430617,614.85751848055,640.39162865951,666.98613212152,694.68506540856,723.53429383412,753.58158307649,784.8766959018],description:"27th root of 3"},cet78:{frequencies:[261.6255653006,273.68177330057,286.29355449603,299.48651076576,313.28742377221,327.72430932822,342.82647426905,358.62457594514,375.15068445646,392.4383479509],description:"9th root of 3/2"},cet79:{frequencies:[261.6255653006,273.87994580863,286.70831230381,300.13755324878,314.19580976213,328.91254817579,344.3186075731,360.44627930254,377.32935907335,395.0032340925,413.50494015483,432.87325713404,453.14877154631,474.3739811962,496.5933637384,519.85349135637,544.20310589723,569.69324454502,596.37732215892,624.31126899512,653.5536209391,684.16567043124,716.21156534988,749.7584744066,784.8766959018],description:"24th root of 3, James Heffernan (1906)."},cet80:{frequencies:[261.6255653006,273.93704112612,286.82786567404,300.32530171503,314.4578949408,329.25553433534,344.74951538696,360.97260627516,377.95911717185,395.74497280393,414.36778843034,433.8669493945,454.28369442026,475.66120282759,498.04439817054,521.48118104407,546.02084308555,571.71528316122,598.61884237431,626.7884189909,656.28358877393,687.16673097983,719.50316028422,753.36126491573,788.81265129014,825.93229545055,864.79870163404,905.49406830005,948.10446197172,992.7199992577,1039.43503743958,1088.34837402783,1139.56345570838,1193.18859712177,1249.33720993748,1308.127826503],description:"35th root of 5"},cet84:{frequencies:[261.6255653006,274.70153691096,288.43104187674,302.84674360983,317.98293803021,333.87563322966,350.5626427598,368.08366429725,386.48038152577,405.79656146784,426.0781586093,447.37342422819,469.73302118774,493.21014446673,517.86064472263,543.74317298677,570.91930267857,599.45368763079,629.41421305643,660.87215705217,693.9023601738,728.58340348685,764.99779551626,803.23216389999,843.37747981977,885.52924725223,929.78774807537,976.25827622702,1025.05138820617,1076.28316609431,1130.07549372248,1186.55634664103,1245.86008938569,1308.127826503],description:"33rd root of 5"},cet87:{frequencies:[261.6255653006,275.05808287728,289.18026151691,304.0275068203,319.63704721237,336.04802279017,353.30157737897,371.44097305523,390.51169339433,410.56155044631,431.64081781968,453.80235066263,477.10170997643,501.59731726833,527.35059397819,554.42610593952],description:"Least-squares stretched ET to telephone dial tones. 1/1=697 Hz"},cet88:{frequencies:[261.6255653006,275.26799068863,289.6217982776,304.72408298441,320.61387403473,337.33223582731,354.92237405774,373.42974737602,392.90218486657,413.39000965417,434.94616895528,457.62637091093,481.48922855473,506.59641128799,533.01280425363],description:"88 cents steps by Gary Morrison"},cet88_appr:{frequencies:[261.6255653006,275.62199471997,290.69507255622,305.22982618403,320.49131749323,336.37572681506,354.37113606854,373.75080757229,392.4383479509,413.43299207996,436.04260883433,457.84473927605,482.33849075995,504.56359022259,531.55670410281,560.62621135843,588.65752192635,620.14948811994,654.0639132515,686.76710891407,723.50773613993,763.07456546008,801.22829373309],description:"88 cents scale approximated"},cet88b:{frequencies:[261.6255653006,275.26385669298,289.61326650562,304.7105300898,320.59498481995,337.30729585456,354.89100872976,373.39113880701,392.85588995712,413.33509311257,434.8821088097,457.55209870333,481.40413163568,506.49927024418,532.9029023296],description:"87.9745 cents steps. Least squares of 7/6, 11/9, 10/7, 3/2, 7/4."},cet88bis:{frequencies:[261.6255653006,289.53272725508,320.41669955092,337.26306895804,373.23835706057,392.86190344834,434.76782633734,457.62637091093],description:"Bistep approximation of 2212121 mode in 7/4 to 11/9 9/7 10/7 3/2"},cet88bm:{frequencies:[261.6255653006,275.22889829239,289.53954239223,304.59427454323,320.43178392135,337.09277136281,354.62005396115,373.05867644715,392.45602022512,412.86193859025,434.32887139488,456.91198653787,480.66932039657,505.66192697453,531.95403480429],description:"87.75412 cents steps. Minimal highest deviation for 7/6, 11/9, 10/7, 3/2, 7/4."},cet88c:{frequencies:[261.6255653006,275.37188725148,289.84046967782,305.06925821769,321.09819727018,337.96933026971,355.72690383892,374.4174952616,394.09012940783,414.79640018179,436.59061916193,459.52995194191,483.67455974508,509.0877727469,535.83624905561,563.99013984227,593.62329144382,624.813430743,657.64235771869,692.19618110881,728.56553457307,766.84580121693,807.13738838693,849.54597972796,894.18279699007,941.16492045434,990.61558284509,1042.66447461031,1097.44811755542,1155.11020756021,1215.8019705522,1279.68259818323,1346.91964745566,1417.68945580607,1492.17764912727,1570.57960775359,1653.10095047047,1739.95812689496,1831.3789571042],description:"38th root of 7. McLaren 'Microtonal Music', volume 3, track 7"},cet89:{frequencies:[261.6255653006,275.56724848068,290.25186566903,305.71900507847,322.01036982349,339.16988002511,357.2437980159,376.28084921395,396.33236207144,417.45239374596,439.69788420361,463.12880499146,487.80833148705,513.80299757552,541.1828853206,570.0218080747,600.39752248465,632.39191886931,666.09125466774,701.58637981228,738.97299766656,778.35189934333,819.82925103406,863.51687139942,909.53255273344,958.00034936337,1009.05093129669,1062.82192563509,1119.45831186524,1179.11277682321,1241.94614996535,1308.127826503],description:"31st root of 5. McLaren 'Microtonal Music', volume 2, track 22"},cet90:{frequencies:[261.6255653006,275.62199471997,290.36720431405,305.90125228146,322.26633935092,339.50692625527,357.66984706396,376.80444887746,396.96271256675,418.19939952297,440.572208006,464.1419130862,488.97255163391,515.13157534193,542.69005603758,571.72285881831,602.3088534069,634.53113933145],description:"Scale with limma steps"},cet93:{frequencies:[261.6255653006,275.99488223824,291.15340824655,307.14448922429,324.01384989472,341.80973194459,360.58302103444,380.38739950036,401.27949808494,423.31905787312],description:"Tuning used in John Chowning's STRIA, 9th root of Phi"},cet98:{frequencies:[261.6255653006,276.83245825991,292.92324815749,309.94930780463,327.96500300935,347.02785219778,367.1987248383,388.54202015806,411.12588832951],description:"8th root of 11/7, X.J. Scott"},chahargah:{frequencies:[261.6255653006,277.18263097687,283.66146785671,311.12698372208,326.97270111135,348.82502010853,367.86341164695,392.44854854484,415.30469757995,425.01198472693,466.16376151809,493.88330125613,523.2511306012],description:"Chahargah in C"},chahargah2:{frequencies:[261.6255653006,283.66146785671,327.729041887,348.82502010853,392.44854854484,425.01198472693,493.88330125613,523.2511306012],description:"Dastgah Chahargah in C, Mohammad Reza Gharib"},chalmers:{frequencies:[261.6255653006,274.70684356563,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,418.60090448096,436.04260883433,457.84473927605,470.92601754108,488.36772189445,515.07533168556,523.2511306012],description:"Chalmers' 19-tone with more hexanies than Perrett's Tierce-Tone"},chalmers_17:{frequencies:[261.6255653006,269.10058145205,286.15296204753,294.32876096318,313.95067836072,327.03195662575,336.37572681506,343.38355445704,376.74081403286,384.42940207435,392.4383479509,400.61414686654,408.78994578219,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"7-limit figurative scale, Chalmers '96 Adnexed S&H decads"},chalmers_19:{frequencies:[261.6255653006,269.10058145205,290.69507255622,294.32876096318,305.22982618403,313.95067836072,336.37572681506,348.83408706747,356.10146388137,363.36884069528,376.74081403286,384.42940207435,392.4383479509,406.97310157871,436.04260883433,448.50096908674,465.11211608996,470.92601754108,508.71637697339,523.2511306012],description:"7-limit figurative scale. Reversed S&H decads"},chalmers_csurd:{frequencies:[261.6255653006,273.35108123154,287.04667286017,303.37994773979,315.80837468238,323.38635505005,348.83408706747,357.38803216938,383.0466618906,392.4383479509,423.31690179539,433.47765231178,451.2357321491,476.91154755397,500.80604115761,523.2511306012],description:"Combined Surd Scale, combination of Surd and Inverted Surd, JHC, 26-6-97"},chalmers_isurd:{frequencies:[261.6255653006,273.35108123154,287.04667286017,303.37994773979,323.38635505005,348.83408706747,383.0466618906,433.47765231178,523.2511306012],description:"Inverted Surd Scale, of the form 4/(SQRT(N)+1, JHC, 26-6-97"},chalmers_ji1:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,466.02053819169,490.54793493862,523.2511306012],description:"Based loosely on Wronski's and similar JI scales, May 2, 1997."},chalmers_ji2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,466.02053819169,490.54793493862,523.2511306012],description:"Based loosely on Wronski's and similar JI scales, May 2, 1997."},chalmers_ji3:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,366.27579142084,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"15 16 17 18 19 20 21 on 1/1, 15-20 on 3/2, May 2, 1997. See other scales"},chalmers_ji4:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,372.08969287196,395.34529867646,418.60090448096,441.85651028546,465.11211608996,496.11959049595,523.2511306012],description:"15 16 17 18 19 20 on 1/1, same on 4/3, + 16/15 on 16/9"},chalmers_surd:{frequencies:[261.6255653006,315.80837468238,357.38803216938,392.4383479509,423.31690179539,451.2357321491,476.91154755397,500.80604115761,523.2511306012],description:"Surd Scale, Surds of the form (SQRT(N)+1)/2, JHC, 26-6-97"},chalmers_surd2:{frequencies:[261.6255653006,272.2395613933,282.33485096279,291.98077704337,301.23248980765,310.13469895524,318.72425558532,327.03195662575,335.08385052998,342.90220911983,350.50624086893,357.91266581346,365.13613061818,372.18956061116,379.08442465499,385.8309605564,392.4383479509,398.91485744029,405.26796981327,411.50448329997,417.63058822561,423.65195171798,429.57376586736,435.40081471708,441.13750301549,446.78791303515,452.35581962987,457.84473927605,463.2579384726,468.59846621725,473.86917438523,479.07273156015,484.21164154672,489.28825377326,494.3047826718,499.26331035461,504.16580309972,509.01411882861,513.81001953884,518.55516185524,523.2511306012],description:"Surd Scale, Surds of the form (SQRT(N)+1)/4"},chalung:{frequencies:[261.6255653006,328.09251713275,362.03316295439,390.31715077734,479.41117101029,527.4935758042,647.70012555753,728.30917696308,823.06004869243,961.65052057178,1054.9871516084,1301.05663342451],description:'Tuning of chalung from Tasikmalaya. "slendroid". 1/1=185 Hz'},chaumont:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.49749487796,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.40109831725,489.02683710225,523.2511306012],description:"Lambert Chaumont organ temperament (1695), 1st interpretation"},chaumont2:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.30531842668,327.84547867349,349.70184487387,366.99801003998,391.46454285105,410.8262805401,438.2147004401,465.11211608996,490.54793493862,523.2511306012],description:"Lambert Chaumont organ temperament (1695), 2nd interpretation"},chimes:{frequencies:[261.6255653006,288.69027895239,130.8127826503,144.34513947619],description:"Heavenly Chimes"},chimes_peck:{frequencies:[261.6255653006,327.03195662575,392.4383479509,457.84473927605,588.65752192635,719.47030457665,850.28308722695,981.09586987725,1046.5022612024],description:"Kris Peck, 9-tone windchime tuning. TL 7-3-2001"},chin_12:{frequencies:[261.6255653006,277.05457499359,293.57996645301,310.53449241474,329.24697610111,347.79893712036,368.97000115401,391.76907592069,413.1274313058,439.00991514661,462.11551390967,491.43599249807,523.2511306012],description:"Chinese scale, 4th cent."},chin_5:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,441.49314144476,523.2511306012],description:"Chinese pentatonic from Zhou period"},chin_60:{frequencies:[261.6255653006,262.17244551937,265.19499215873,268.81311753311,272.48060600886,276.1981310001,279.38237857051,283.19406633357,287.05775848811,290.97416342694,294.32876096318,294.94400091442,298.34436617857,302.41475692242,306.54068145351,310.72289706448,314.30517589183,318.59332496145,322.93997797627,327.34593352805,331.11985608357,331.812000697,335.63741195089,340.21660119759,344.85826629043,349.56326086722,353.59332287831,358.41749022331,363.30747486009,368.26417485089,372.50983809402,373.28850041093,377.59208844475,382.74367817547,387.96555142985,392.4383479509,393.25866808247,397.79248823809,403.21967609811,408.72090880899,414.29719629306,419.07356785577,424.79110016094,430.58663751693,436.46124492224,441.49314144476,442.41600115048,447.51654926786,453.62213515688,459.81102195042,466.08434536373,471.45776383774,477.8899872033,484.40996672226,491.01890004663,496.67978412536,497.7180007967,503.45611792634,510.32490448905,517.28740216504,523.2511306012],description:'Chinese scale of fifths (the 60 lu")'},chin_7:{frequencies:[261.6255653006,294.32876096318,331.11985608357,348.83408706747,392.4383479509,441.49314144476,496.67978412536,523.2511306012],description:"Chinese heptatonic scale and tritriadic of 64:81:96 triad"},chin_bianzhong:{frequencies:[261.6255653006,277.82379926216,312.56802260838,375.1593523779,420.13030572059,469.40618689596,506.59641128799,563.72967895209,627.66881138238,764.75812197709,849.53311813274,949.1724262561,1225.95732655636],description:"Pitches of Bianzhong bells (Xinyang). 1/1=b, Liang Mingyue, 1975."},chin_bianzhong2a:{frequencies:[261.6255653006,284.81073476233,312.56802260838,372.56793743951,413.39000965417,447.94973572445,491.60634075178,562.75365576207,652.05945856061,695.63805470995,863.88355261715,960.75607282217,1173.30283584026],description:"A-tones (GU) of 13 Xinyang bells (Ma Cheng-Yuan) 1/1=d#=619 Hz"},chin_bianzhong2b:{frequencies:[261.6255653006,279.59231184543,312.74738729016,375.37536096215,418.43048063126,468.86028020615,505.12945327459,562.08698385796,624.42058858709,762.97988553915,849.53425657971,936.08862980659,1215.37624187632],description:"B-tones (SUI) of 13 Xinyang bells (Ma Cheng-Yuan) 1/1=b+=506.6 Hz"},chin_bianzhong3:{frequencies:[261.6255653006,508.3551866238,542.32970395878,608.04166718582,619.02750937577,673.88551872153,729.80120031671,739.56153452917,812.57643344187,881.52624580654,911.03313298042,978.11461117351,982.0774855146,1059.88575280263,1092.20381072382,1163.18085489566,1213.27682870749,1331.52122774489,1483.40111876828,1542.82606951623,1645.93659621657,1649.74391394557,1818.91159982256,2044.01922018919,2273.22753490632,2362.92760489328,2776.13057951436],description:"A and B-tones of 13 Xinyang bells (Ma Cheng-Yuan) abs. pitches wrt middle-C"},chin_bronze:{frequencies:[261.6255653006,299.00064605783,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:`Scale found on ancient Chinese bronze instrument 3rd c.BC & "Scholar's Lute"`},chin_chime:{frequencies:[261.6255653006,248.6592656401,341.74499057264,392.56190849927,548.78974538591,648.86582834888,714.36935367713,785.57745330134,889.7110417619,886.88898199546,992.62825668803,1044.08711871947,1326.14827969763],description:"Pitches of 12 stone chimes, F. Kuttner, 1951, ROMA Toronto. %1=b4"},chin_ching:{frequencies:[261.6255653006,276.1981310001,294.32876096318,310.72289706448,331.11985608357,349.56326086722,368.26417485089,392.4383479509,414.29719629306,441.49314144476,466.08434536373,496.67978412536,524.34489103873],description:"Scale of Ching Fang, c.45 BC. Pyth.steps 0 1 2 3 4 5 47 48 49 50 51 52 53"},chin_di:{frequencies:[261.6255653006,298.70635408336,316.56004827153,360.50766037677,409.94872043165,433.75364775074,527.37121036213],description:"Chinese di scale"},chin_di2:{frequencies:[261.6255653006,289.95657583698,318.21537073485,338.89464890898,383.48501130814,436.9606979923,494.73987775324,522.04355935974],description:"Observed tuning from Chinese flute dizi, Helmholtz/Ellis p. 518, nr.103"},chin_huang:{frequencies:[261.6255653006,331.11985608357,392.4383479509,441.49314144476,523.2511306012,588.65752192635,662.23971216714],description:"Huang Zhong qin tuning"},"chin_liu-an":{frequencies:[261.6255653006,278.83777354406,294.32876096318,311.64221749042,331.11985608357,353.19451315581,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,492.82955324067],description:'Scale of Liu An, in: "Huai Nan Tzu", c.122 BC, 1st known corr. to Pyth. scale'},chin_lu:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,328.55303549378,348.83408706747,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,495.71159741166,523.2511306012],description:"Chinese L\xEF\xBF\xBD scale by Huai Nan zi, Han era. P\xEF\xBF\xBDre Amiot 1780, Kurt Reinhard"},chin_lu2:{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,331.11985608357,353.59332287831,372.50983809402,392.4383479509,419.07356785577,441.49314144476,471.45776383774,496.67978412536,523.2511306012],description:"Chinese L\xEF\xBF\xBD (Lushi chunqiu, by Lu Buwei). Mingyue: Music of the billion, p.67"},chin_lu3:{frequencies:[261.6255653006,277.34278419245,293.66476791741,310.58830860439,329.24697610111,347.81902735497,369.14054089803,391.76907592069,413.1512951712,439.23819834286,462.1422075194,491.60634075178,523.2511306012],description:"Chinese L\xEF\xBF\xBD scale by Ho Ch'\xEF\xBF\xBDng-T'ien, reported in Sung Shu (500 AD)"},chin_lu3a:{frequencies:[261.6255653006,277.06033146978,293.58830182213,310.53780743131,329.25144446584,347.79484055318,368.74579520635,391.78066943209,413.13681807919,438.99947255393,462.1072190611,491.17907538715,523.2511306012],description:`Chinese L\xEF\xBF\xBD scale by Ho Ch'\xEF\xBF\xBDng-T'ien, calc. basis is "big number" 177147`},chin_lu4:{frequencies:[261.6255653006,276.78521684908,293.5444075184,310.55356739316,329.35741152087,348.44172229085,369.5396750577,391.9150968203,414.62425518576,439.72952246257,465.20924434298,493.37740286979,523.2511306012],description:'Chinese L\xEF\xBF\xBD "749-Temperament"'},chin_lu5:{frequencies:[261.6255653006,277.35401920913,293.41471131112,311.37240624271,329.40299530711,349.20610523279,369.80535913035,392.03738806826,415.16320853113,440.12206674667,466.08434536373,494.10449271367,522.71643616375],description:"Chinese L\xEF\xBF\xBD scale by Ch'ien Lo-Chih, c.450 AD Pyth.steps 0 154 255 103 204 etc."},chin_lusheng:{frequencies:[261.6255653006,316.38258506467,348.82502010853,389.28772571905,466.97226207056,520.53801357752],description:"Observed tuning of a small Lusheng, 1/1=d, OdC '97"},chin_pan:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Pan Huai-su pure system, in: Sin-Yan Shen, 1991"},chin_pipa:{frequencies:[261.6255653006,284.4818984792,320.42873367481,380.17671965621,433.44136952667,521.74210224793],description:"Observed tuning from Chinese balloon lute p'i-p'a, Helmholtz/Ellis p. 518, nr.109"},chin_sheng:{frequencies:[261.6255653006,295.36595061166,318.03161540472,348.82502010853,395.40657391157,442.03793673691,477.05982293263,522.94897617031],description:"Observed tuning from Chinese sheng or mouth organ, Helmholtz/Ellis p. 518, nr.105"},chin_sientsu:{frequencies:[261.6255653006,291.80478157373,326.97270111135,392.44854854484,438.22451411849,523.2511306012],description:"Observed tuning from Chinese tamboura sienzi, Helmholtz/Ellis p. 518, nr.108"},chin_sona:{frequencies:[261.6255653006,284.4818984792,310.58830860439,337.33223582731,377.98706287655,418.43499793376,469.94877954106,528.10941333272],description:"Observed tuning from Chinese oboe (so-na), Helmholtz/Ellis p. 518, nr.104"},"chin_wang-po":{frequencies:[261.6255653006,294.32876096318,330.24264909897,371.97947673071,392.4383479509,440.94196398978,495.71159741166,517.50111817701],description:"Scale of Wang Po, 958 AD. H. Pischner: Musik in China, Berlin, 1955, p.20"},chin_yangqin:{frequencies:[261.6255653006,288.45311779165,306.48933163909,347.41744306689,383.26356564167,434.44398956347,465.08793784701,522.64699622026],description:"Observed tuning from Chinese dulcimer yangqin, Helmholtz/Ellis p. 518, nr.107"},chin_yunlo:{frequencies:[261.6255653006,288.45311779165,323.40385076956,367.0144478307,386.1523605003,409.35055662695,483.1608380663,525.67465946865],description:"Observed tuning from Chinese gong-chime (y\xEF\xBF\xBDn-lo), Helmholtz/Ellis p. 518, nr.106"},choquel:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,475.68284600109,490.54793493862,523.2511306012],description:"Choquel/Barbour/Marpurg?"},chordal:{frequencies:[261.6255653006,392.4383479509,327.03195662575,457.84473927605,588.65752192635,719.47030457665,850.28308722695,981.09586987725,981.09586987725,490.54793493862,555.95432626377,621.36071758893,310.68035879446,523.2511306012,348.83408706747,418.60090448096,299.00064605783,465.11211608996,380.54627680087,322.00069575458,279.06726965397,610.45965236807,915.6894785521,872.08521766867,697.66817413493,654.0639132515,627.90135672144,448.50096908674,319.76457981184,377.90359432309,444.76346101102,889.52692202204,336.37572681506,294.32876096318,465.11211608996,411.12588832951,305.22982618403,366.27579142084,373.75080757229,313.95067836072,470.92601754108],description:"Chordal Notes S&H"},chrom15:{frequencies:[261.6255653006,280.31310567921,301.87565226992,356.76213450082,392.4383479509,413.09299784305,436.04260883433,523.2511306012],description:"Tonos-15 Chromatic"},chrom15_inv:{frequencies:[261.6255653006,313.95067836072,331.39238271409,348.83408706747,383.71749577421,453.48431318771,488.36772189445,523.2511306012],description:"Inverted Chromatic Tonos-15 Harmonia"},chrom15_inv2:{frequencies:[261.6255653006,279.06726965397,296.50897400735,348.83408706747,383.71749577421,401.15920012759,418.60090448096,523.2511306012],description:"A harmonic form of the Chromatic Tonos-15 inverted"},chrom17:{frequencies:[261.6255653006,277.97716313189,296.50897400735,370.63621750918,404.33041910093,423.58424858192,444.76346101102,523.2511306012],description:"Tonos-17 Chromatic"},chrom17_con:{frequencies:[261.6255653006,277.97716313189,296.50897400735,370.63621750918,386.75083566176,404.33041910093,494.18162334558,523.2511306012],description:"Conjunct Tonos-17 Chromatic"},chrom19:{frequencies:[261.6255653006,276.16031892841,292.40504357126,355.06326719367,382.37582620857,397.67085925691,414.24047839262,523.2511306012],description:"Tonos-19 Chromatic"},chrom19_con:{frequencies:[261.6255653006,276.16031892841,292.40504357126,355.06326719367,368.21375857121,382.37582620857,451.89870370104,523.2511306012],description:"Conjunct Tonos-19 Chromatic"},chrom21:{frequencies:[261.6255653006,274.70684356563,289.16509849014,343.38355445704,392.4383479509,406.97310157871,422.62591317789,523.2511306012],description:"Tonos-21 Chromatic"},chrom21_inv:{frequencies:[261.6255653006,323.91736656265,336.37572681506,348.83408706747,398.6675280771,473.41768959156,498.33441009638,523.2511306012],description:"Inverted Chromatic Tonos-21 Harmonia"},chrom21_inv2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,398.6675280771,423.58424858192,448.50096908674,523.2511306012],description:"Inverted harmonic form of the Chromatic Tonos-21"},chrom23:{frequencies:[261.6255653006,273.51763645063,286.54228580542,334.29933343966,376.08675011961,401.15920012759,429.81342870813,523.2511306012],description:"Tonos-23 Chromatic"},chrom23_con:{frequencies:[261.6255653006,273.51763645063,286.54228580542,334.29933343966,353.96400011258,376.08675011961,462.87600014722,523.2511306012],description:"Conjunct Tonos-23 Chromatic"},chrom25:{frequencies:[261.6255653006,278.32506946872,297.30177875068,363.36884069528,408.78994578219,436.04260883433,467.18850946536,523.2511306012],description:"Tonos-25 Chromatic"},chrom25_con:{frequencies:[261.6255653006,278.32506946872,297.30177875068,363.36884069528,384.74347838324,408.78994578219,503.12608711654,523.2511306012],description:"Conjunct Tonos-25 Chromatic"},chrom27:{frequencies:[261.6255653006,277.01530443593,294.32876096318,353.19451315581,392.4383479509,415.52295665389,441.49314144476,523.2511306012],description:"Tonos-27 Chromatic"},chrom27_inv:{frequencies:[261.6255653006,310.07474405997,329.45441556372,348.83408706747,387.59343007496,465.11211608996,494.18162334558,523.2511306012],description:"Inverted Chromatic Tonos-27 Harmonia"},chrom27_inv2:{frequencies:[261.6255653006,271.31540105247,281.00523680435,348.83408706747,387.59343007496,406.97310157871,436.04260883433,523.2511306012],description:"Inverted harmonic form of the Chromatic Tonos-27"},chrom29:{frequencies:[261.6255653006,270.96933548991,281.00523680435,344.87006335079,379.35706968587,399.32323124828,421.50785520652,523.2511306012],description:"Tonos-29 Chromatic"},chrom29_con:{frequencies:[261.6255653006,270.96933548991,281.00523680435,344.87006335079,361.29244731988,379.35706968587,474.19633710734,523.2511306012],description:"Conjunct Tonos-29 Chromatic"},chrom31:{frequencies:[261.6255653006,279.66870773512,300.3849083081,337.93302184661,352.6257619269,368.65420565085,386.2091678247,405.51962621593,523.2511306012],description:"Tonos-31 Chromatic. Tone 24 alternates with 23 as MESE or A"},chrom31_con:{frequencies:[261.6255653006,279.66870773512,300.3849083081,337.93302184661,352.6257619269,368.65420565085,386.2091678247,450.57736246214,523.2511306012],description:"Conjunct Tonos-31 Chromatic"},chrom33:{frequencies:[261.6255653006,278.50463402967,297.71185016965,359.73515228832,392.4383479509,411.12588832951,431.68218274599,523.2511306012],description:"Tonos-33 Chromatic. A variant is 66 63 60 48"},chrom33_con:{frequencies:[261.6255653006,278.50463402967,297.71185016965,359.73515228832,375.37581108347,392.4383479509,479.64686971777,523.2511306012],description:"Conjunct Tonos-33 Chromatic"},chrom_new:{frequencies:[261.6255653006,273.20871865617,297.93622032612,349.22823143301,391.99543598175,409.35055662695,446.39994737251,523.2511306012],description:"New Chromatic genus 4.5 + 9 + 16.5"},chrom_new2:{frequencies:[261.6255653006,273.6474710507,299.37374239667,349.22823143301,391.99543598175,410.00794244467,448.55379686399,523.2511306012],description:"New Chromatic genus 14/3 + 28/3 + 16 parts"},chrom_soft:{frequencies:[261.6255653006,271.68808704293,282.55561052465,348.83408706747,392.4383479509,407.5321305644,423.83341578697,523.2511306012],description:"100/81 Chromatic. This genus is a good approximation to the soft chromatic"},chrom_soft2:{frequencies:[261.6255653006,268.42893440103,282.57118533961,349.22823143301,391.99543598175,402.18897205153,423.37840671577,523.2511306012],description:"1:2 Soft Chromatic"},chrom_soft3:{frequencies:[261.6255653006,271.31540105247,281.75060878526,348.83408706747,392.4383479509,406.97310157871,422.62591317789,523.2511306012],description:"Soft chromatic genus is from K. Schlesinger's modified Mixolydian Harmonia"},cifariello:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"F. Cifariello Ciardi, ICMC 86 Proc. 15-tone 5-limit tuning"},ckring1:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,523.2511306012],description:"Double-tie circular mirroring with common pivot of 4:5:6:7 = square 1 3 5 7"},ckring2:{frequencies:[261.6255653006,290.69507255622,305.22982618403,313.95067836072,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,436.04260883433,448.50096908674,470.92601754108,523.2511306012],description:"Double-tie circular mirroring with common pivot of 3:5:7:9"},"clampitt-phi":{frequencies:[261.6255653006,289.46753582364,320.2724252102,340.92857683151,377.20990650852,444.26963537301,491.54843559637,523.2511306012],description:'David Clampitt, phi+1 mod 3phi+2, from "Pairwise Well-Formed Scales", 1997'},classr:{frequencies:[261.6255653006,275.93321340298,287.4304306281,313.95067836072,327.03195662575,344.91651675372,367.91095120397,392.4383479509,408.78994578219,441.49314144476,459.88868900496,490.54793493862,523.2511306012],description:"Marvel projection to the 5-limit of class"},cluster:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"13-tone 5-limit Tritriadic Cluster"},cluster6a:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Six-Tone Triadic Cluster 4:5:6"},cluster6b:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Six-Tone Triadic Cluster 4:6:5"},cluster6c:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,418.60090448096,436.04260883433,523.2511306012],description:"Six-Tone Triadic Cluster 3:4:5"},cluster6d:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Six-Tone Triadic Cluster 3:5:4"},cluster6e:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Six-Tone Triadic Cluster 5:6:8"},cluster6f:{frequencies:[261.6255653006,313.95067836072,348.83408706747,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"Six-Tone Triadic Cluster 5:8:6"},cluster6g:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,457.84473927605,523.2511306012],description:"Six-Tone Triadic Cluster 4:5:7"},cluster6h:{frequencies:[261.6255653006,286.15296204753,327.03195662575,366.27579142084,418.60090448096,457.84473927605,523.2511306012],description:"Six-Tone Triadic Cluster 4:7:5"},cluster6i:{frequencies:[261.6255653006,313.95067836072,366.27579142084,373.75080757229,439.53094970501,448.50096908674,523.2511306012],description:"Six-Tone Triadic Cluster 5:6:7"},cluster6j:{frequencies:[261.6255653006,305.22982618403,313.95067836072,366.27579142084,436.04260883433,439.53094970501,523.2511306012],description:"Six-Tone Triadic Cluster 5:7:6"},cluster8a:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Eight-Tone Triadic Cluster 4:5:6"},cluster8b:{frequencies:[261.6255653006,306.59245933664,313.95067836072,327.03195662575,392.4383479509,408.78994578219,418.60090448096,490.54793493862,523.2511306012],description:"Eight-Tone Triadic Cluster 4:6:5"},cluster8c:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,363.36884069528,418.60090448096,436.04260883433,484.4917875937,523.2511306012],description:"Eight-Tone Triadic Cluster 3:4:5"},cluster8d:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,387.59343007496,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"Eight-Tone Triadic Cluster 3:5:4"},cluster8e:{frequencies:[261.6255653006,313.95067836072,327.03195662575,334.88072358477,392.4383479509,401.85686830172,418.60090448096,502.32108537715,523.2511306012],description:"Eight-Tone Triadic Cluster 5:6:8"},cluster8f:{frequencies:[261.6255653006,301.39265122629,313.95067836072,348.83408706747,376.74081403286,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"Eight-Tone Triadic Cluster 5:8:6"},cluster8g:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Eight-Tone Triadic Cluster 4:5:7"},cluster8h:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,366.27579142084,408.78994578219,418.60090448096,457.84473927605,523.2511306012],description:"Eight-Tone Triadic Cluster 4:7:5"},cluster8i:{frequencies:[261.6255653006,307.67166479351,313.95067836072,366.27579142084,373.75080757229,439.53094970501,448.50096908674,512.78610798918,523.2511306012],description:"Eight-Tone Triadic Cluster 5:6:7"},cluster8j:{frequencies:[261.6255653006,263.718569823,305.22982618403,313.95067836072,366.27579142084,376.74081403286,436.04260883433,439.53094970501,523.2511306012],description:"Eight-Tone Triadic Cluster 5:7:6"},cohenf_11:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,523.2511306012],description:`Flynn Cohen, 7-limit scale of "Rameau's nephew", 1996`},coleman:{frequencies:[261.6255653006,276.70272600503,293.15632631094,310.58830860439,328.48713220126,349.43001184052,368.92737853004,391.76907592069,414.58565256441,438.98455767189,465.89457252293,491.89038573682,523.2511306012],description:"Jim Coleman's ModX piano temperament. TL 16 Mar 1999"},collengettes:{frequencies:[261.6255653006,269.10058145205,275.62199471997,285.40970760065,294.32876096318,302.73815413355,310.07474405997,321.08592105074,331.11985608357,340.58042340025,348.83408706747,358.80077526939,367.49599295996,380.54627680087,392.4383479509,403.65087217807,413.43299207996,428.11456140098,441.49314144476,454.10723120033,465.11211608996,478.40103369253,496.67978412536,507.3950357345,523.2511306012],description:"R.P. Collengettes, from p.23 of d'Erlanger, vol 5. 24 tone Arabic system"},colonna1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,308.86351459099,327.03195662575,348.83408706747,363.36884069528,392.4383479509,399.70572476481,436.04260883433,463.29527188648,490.54793493862,523.2511306012],description:"Colonna 1"},colonna2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,479.64686971777,523.2511306012],description:"Colonna 2"},concertina:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"English Concertina, Helmholtz/Ellis, p. 470"},cons11:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 11 not exceeding 2/1"},cons12:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 12 not exceeding 2/1"},cons13:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 13 not exceeding 2/1"},cons14:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 14 not exceeding 2/1"},cons15:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 15 not exceeding 2/1"},cons16:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 16 not exceeding 2/1"},cons17:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 17 not exceeding 2/1"},cons18:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 18 not exceeding 2/1"},cons19:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 19 not exceeding 2/1"},cons20:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Set of intervals with num + den <= 20 not exceeding 2/1"},cons21:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Set of intervals with num + den <= 21 not exceeding 2/1"},cons8:{frequencies:[261.6255653006,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Set of intervals with num + den <= 8 not exceeding 2/1"},cons9:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Set of intervals with num + den <= 9 not exceeding 2/1"},cons_5:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,523.2511306012],description:"Set of consonant 5-limit intervals within the octave"},cons_7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605],description:"Set of consonant 7-limit intervals of tetrad 4:5:6:7 and inverse"},cons_7a:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605],description:"Set of consonant 7-limit intervals, harmonic entropy minima"},cont_frac1:{frequencies:[261.6255653006,264.29672053658,267.01859068163,284.39991302433,288.64312378534,304.51680721446,328.36325429535,342.47239171077,368.24757473349,390.36247006958,408.23697512781,419.80330474394,448.3033221197,488.42606438843,498.20005830409],description:"Continued fraction scale 1, see McLaren in Xenharmonikon 15, pp.33-38"},cont_frac2:{frequencies:[261.6255653006,268.67076720771,283.00159623424,287.78825007941,303.56038377389,306.30898587133,329.63288816559,333.85601282718,352.97051886932,380.09613548074,393.10104267352,426.45795861378,432.83315799354,472.91012288255,483.94654132265,519.4303061261],description:"Continued fraction scale 2, see McLaren in Xenharmonikon 15, pp.33-38"},cordier:{frequencies:[261.6255653006,277.2273508585,293.75953199293,311.27759533081,329.84032939425,349.51003591412,370.35272620855,392.4383479509,415.84102607989,440.63929776914,466.91639276282,494.76049384407,524.26505360912],description:"Serge Cordier, piano tuning, 1975 (Piano bien temp\xEF\xBF\xBDr\xEF\xBF\xBD et justesse orchestrale)"},corner11:{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,314.76825825228,327.03195662575,343.38355445704,359.73515228832,392.4383479509,400.61414686654,408.78994578219,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 11-limit. Chalmers '96"},corner13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,359.73515228832,371.99885066179,392.4383479509,400.61414686654,408.78994578219,425.14154361347,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 13-limit. Chalmers '96"},corner17:{frequencies:[261.6255653006,265.71346475842,269.80136421624,277.97716313189,286.15296204753,292.28481123426,294.32876096318,295.35073582763,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,347.47145391486,359.73515228832,371.99885066179,382.21859930635,392.4383479509,400.61414686654,408.78994578219,416.96574469783,425.14154361347,449.66894036041,451.71289008932,457.84473927605,486.4600354808,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 17-limit."},corner17a:{frequencies:[261.6255653006,265.71346475842,269.80136421624,275.93321340298,277.97716313189,286.15296204753,292.28481123426,294.32876096318,295.35073582763,306.59245933664,312.72430852337,314.76825825228,318.85615771011,327.03195662575,331.11985608357,337.2517052703,343.38355445704,345.42750418595,347.47145391486,359.73515228832,367.91095120397,371.99885066179,382.21859930635,392.4383479509,398.57019713763,400.61414686654,404.70204632437,408.78994578219,416.96574469783,425.14154361347,429.2294430713,441.49314144476,449.66894036041,451.71289008932,457.84473927605,459.88868900496,478.28423656516,486.4600354808,490.54793493862,494.63583439645,515.07533168556,521.20718087229,523.2511306012],description:"Quadratic Corner 17 odd limit."},corner7:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,343.38355445704,392.4383479509,400.61414686654,408.78994578219,457.84473927605,490.54793493862,523.2511306012],description:"Quadratic corner 7-limit. Chalmers '96"},corner9:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,331.11985608357,343.38355445704,367.91095120397,392.4383479509,400.61414686654,408.78994578219,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"First 9 harmonics of 5th through 9th harmonics"},corners11:{frequencies:[261.6255653006,269.80136421624,276.76092858245,279.06726965397,286.15296204753,294.32876096318,299.00064605783,304.4370214407,314.76825825228,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,359.73515228832,380.54627680087,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,434.91003062957,449.66894036041,457.84473927605,465.11211608996,478.40103369253,490.54793493862,494.63583439645,507.3950357345,523.2511306012],description:"Quadratic Corners 11-limit. Chalmers '96"},corners13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,276.76092858245,279.06726965397,286.15296204753,292.28481123426,294.32876096318,299.00064605783,304.4370214407,314.76825825228,318.85615771011,322.00069575458,327.03195662575,334.88072358477,341.71502406609,343.38355445704,345.42750418595,348.83408706747,359.73515228832,368.0007951481,371.99885066179,380.54627680087,392.4383479509,396.30854862103,398.6675280771,400.61414686654,408.78994578219,418.60090448096,425.14154361347,429.33426100611,434.91003062957,449.66894036041,457.84473927605,465.11211608996,468.3646483703,478.40103369253,490.54793493862,494.63583439645,507.3950357345,515.20111320734,523.2511306012],description:"Quadratic Corners 13-limit. Chalmers '96"},corners7:{frequencies:[261.6255653006,279.06726965397,286.15296204753,294.32876096318,299.00064605783,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,457.84473927605,465.11211608996,478.40103369253,490.54793493862,523.2511306012],description:"Quadratic Corners 7-limit. Chalmers '96"},corrette:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.11326130363,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.33704984564,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Corrette temperament"},corrette2:{frequencies:[261.6255653006,272.8349596094,292.34127285051,310.42509491746,326.6631048533,350.01785633742,365.01443422269,391.11111150212,409.71484950008,437.02884834934,466.16376151809,488.33748205014,523.2511306012],description:"Michel Corrette, modified meantone temperament (1753)"},coul_12:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,340.65828815182,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Scale 1 5/4 3/2 2 successively split largest intervals by smallest interval"},coul_12a:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Scale 1 6/5 3/2 2 successively split largest intervals by smallest interval"},coul_12sup:{frequencies:[261.6255653006,280.31310567921,294.32876096318,310.68035879446,331.39238271409,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,466.02053819169,497.08857407114,523.2511306012],description:"Superparticular approximation to Pythagorean scale. Op de Coul, 2003"},coul_13:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Symmetrical 13-tone 5-limit just system"},coul_17sup:{frequencies:[261.6255653006,276.16031892841,279.06726965397,294.57100685697,310.07474405997,313.95067836072,331.39238271409,348.83408706747,368.21375857121,372.08969287196,392.76134247596,413.43299207996,418.60090448096,441.85651028546,465.11211608996,470.92601754108,497.08857407114,523.2511306012],description:"Superparticular approximation to Pythagorean 17-tone scale. Op de Coul, 2003"},coul_20:{frequencies:[261.6255653006,277.18263097687,282.2367833559,293.66476791741,305.55548036855,311.12698372208,329.62755691287,335.63799088232,349.22823143301,363.36884069528,369.99442271164,391.99543598175,399.14308682247,415.30469757995,432.12070439462,440,466.16376151809,474.66379875343,493.88330125613,513.88101620607,523.2511306012],description:"Tuning for a 3-row symmetrical keyboard, Op de Coul, 1989"},coul_27:{frequencies:[261.6255653006,275.62199471997,275.93321340298,279.06726965397,293.99679436797,294.32876096318,310.07474405997,310.42486507835,327.03195662575,330.74639366397,331.11985608357,348.83408706747,367.49599295996,367.91095120397,372.08969287196,372.50983809402,392.4383479509,413.43299207996,413.89982010446,418.60090448096,440.99519155196,441.49314144476,465.11211608996,465.63729761752,490.54793493862,496.11959049595,496.67978412536,523.2511306012],description:"Symmetrical 27-tone 5-limit just system, 67108864/66430125 and 25/24"},counterschismic:{frequencies:[261.6255653006,265.12640119254,268.67408364533,272.2692364133,275.65170316539,279.34022410565,283.07810312094,286.865997406,290.70457953408,294.3160713245,298.25434362449,302.24531258767,306.28968684494,310.09479611189,314.24420508029,318.4491358588,322.71033506911,327.0285519162,331.0913069245,335.5216703313,340.01131880467,344.56104171562,348.84160709651,353.50948891197,358.2398341551,363.03347451625,367.54352740958,372.46166135084,377.44560747755,382.49624206822,387.61445966759,392.4298881006,397.68103103357,403.0024376988,408.3950505989,413.46864135256,419.00130591222,424.60800114791,430.28972009123,436.04746916004,441.46459261549,447.37187116862,453.35819556254,459.4246261707,465.13216971689,471.35614630867,477.663406507,484.05506753352,490.06860102591,496.62625431187,503.27165616309,510.00598369715,516.83042094502,523.2511306012],description:"Counterschismic temperament, g=498.082318, 5-limit"},couperin:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.28785294636,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.24345038333,489.02683710225,523.2511306012],description:"Couperin modified meantone"},cross13:{frequencies:[261.6255653006,281.75060878526,285.40970760065,290.69507255622,299.00064605783,305.22982618403,322.00069575458,332.97799220076,336.37572681506,366.27579142084,373.75080757229,406.97310157871,411.12588832951,425.14154361347,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"13-limit harmonic/subharmonic cross"},cross2:{frequencies:[261.6255653006,282.55561052465,339.14425131559,366.27579142084,436.04260883433,470.92601754108,560.62621135843,605.4763082671,726.73768139056,784.8766959018],description:"Pusey's double 5-7 cross reduced by 3/1"},cross2_5:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,392.4383479509,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"double 3-5 cross reduced by 2/1"},cross2_7:{frequencies:[261.6255653006,294.32876096318,299.00064605783,327.03195662575,334.88072358477,341.71502406609,348.83408706747,392.4383479509,400.61414686654,408.78994578219,418.60090448096,457.84473927605,465.11211608996,523.2511306012],description:"longer 3-5-7 cross reduced by 2/1"},cross3:{frequencies:[261.6255653006,282.55561052465,311.45900631024,336.37572681506,363.28578496026,403.74315632809,436.04260883433,470.92601754108,508.60009894437,565.24041885932,610.45965236807,659.29642455751,726.73768139056,784.8766959018],description:"Pusey's triple 5-7 cross reduced by 3/1"},cross_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,348.83408706747,392.4383479509,418.60090448096,457.84473927605,523.2511306012],description:"3-5-7 cross reduced by 2/1, quasi diatonic, similar to Zalzal's, Flynn Cohen"},cross_72:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,313.95067836072,343.38355445704,348.83408706747,392.4383479509,398.6675280771,436.04260883433,448.50096908674,465.11211608996,490.54793493862,523.2511306012],description:"double 3-5-7 cross reduced by 2/1"},cross_7a:{frequencies:[261.6255653006,336.37572681506,392.4383479509,436.04260883433,470.92601754108,523.2511306012,610.45965236807,784.8766959018],description:"2-5-7 cross reduced by 3/1"},cruciform:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Cruciform Lattice"},galilei:{frequencies:[261.6255653006,277.66336828161,293.32570896007,311.30674962848,328.86683469969,348.2210758395,368.7143392539,390.41365788584,413.39000965417,437.71854962063,463.47885582013,490.75518955849,523.2511306012],description:"Vincenzo Galilei's approximation"},gamelan_om:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Other Music gamelan (7 limit black keys)"},gamelan_udan:{frequencies:[261.6255653006,261.6255653006,290.69507255622,305.22982618403,334.88072358477,351.32575911795,364.00078650518,392.4383479509,402.50086969323,465.11211608996,465.11211608996,501.44900015948,523.2511306012],description:"Gamelan Udan Mas (approx) s6,p6,p7,s1,p1,s2,p2,p3,s3,p4,s5,p5"},ganassi:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,369.35373924791,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Sylvestro Ganassi's temperament (1543)"},gann_custer:{frequencies:[261.6255653006,269.80136421624,274.70684356563,279.06726965397,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,380.54627680087,392.4383479509,406.97310157871,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,507.3950357345,523.2511306012],description:"Kyle Gann, scale from Custer's Ghost to Sitting Bull, 1/1=G"},gann_frac:{frequencies:[261.6255653006,264.89588486686,294.32876096318,305.22982618403,309.04519901133,313.95067836072,348.83408706747,353.19451315581,366.27579142084,392.4383479509,397.34382730029,412.06026534844,418.60090448096,423.83341578697,457.84473927605,470.92601754108,523.2511306012],description:"Kyle Gann, scale from Fractured Paradise, 1/1=B"},gann_ghost:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Kyle Gann, scale from Ghost Town, 1/1=E"},gann_super:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"Kyle Gann, scale from Superparticular Woman (1992), 1/1=G"},gann_things:{frequencies:[261.6255653006,266.47048317654,272.52663052146,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,343.38355445704,348.83408706747,373.75080757229,387.59343007496,392.4383479509,406.97310157871,408.78994578219,436.04260883433,448.50096908674,465.11211608996,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Kyle Gann, scale from How Miraculous Things Happen, 1/1=A"},garcia:{frequencies:[261.6255653006,268.33391312882,271.68808704293,279.06726965397,286.22284067074,294.32876096318,301.87565226992,310.07474405997,313.95067836072,322.00069575458,331.11985608357,339.61010880366,348.83408706747,357.77855083843,362.25078272391,372.08969287196,381.63045422766,392.4383479509,402.50086969323,407.5321305644,418.60090448096,429.33426100611,441.49314144476,452.81347840488,465.11211608996,470.92601754108,483.00104363188,496.11959049595,509.4151632055,523.2511306012],description:"Linear 29-tone scale by Jos\xEF\xBF\xBD L. Garcia, 1988 15/13-52/45 alternating"},garibaldi24:{frequencies:[261.6255653006,271.45160478635,275.48458787532,290.07776082447,294.38747453868,305.44397410364,309.9819851541,326.40257969757,331.25197480486,343.69301829526,348.79929894143,361.89937857146,367.27615309757,386.73177659938,392.47748849606,407.21801775129,413.26809573999,435.16003837828,441.62525370518,458.21165716245,465.0193526482,489.65270106975,496.92751922541,515.59094540799,523.2511306012],description:"Garibaldi[24] in 94-tET tuning."},genovese:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,296.50897400735,299.00064605783,301.87565226992,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,338.57426097725,340.11323489078,342.12573923925,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,400.13321751856,402.50086969323,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,453.48431318771,457.84473927605,461.69217405988,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Denny Genovese's 65-note scale. 3/2=384 Hz"},genovese_12:{frequencies:[261.6255653006,285.40970760065,294.32876096318,313.95067836072,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Denny Genovese's superposition of harmonics 8-16 and subharmonics 6-12"},genovese_38:{frequencies:[261.6255653006,280.31310567921,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Denny Genovese's 38-note scale. Harm 1..16 x Subh. 1..12"},"gf1-2":{frequencies:[261.6255653006,269.29177952703,277.18263097687,285.30470202322,293.66476791741,311.12698372208,320.24370022528,339.28638158975,349.22823143301,359.46139971304,380.8360868427,403.48177901006,415.30469757995,440,466.16376151809,493.88330125613,523.2511306012],description:"16-note scale with all possible quadruplets of 50 & 100 c. Galois Field GF(2)"},"gf2-3":{frequencies:[261.6255653006,270.85177093588,280.40333801024,290.29174037004,300.52885648597,316.56538760238,327.729041887,345.21700307457,357.39105439675,369.99442271164,389.73770840504,410.5345162762,425.01198472693,447.69106452518,471.58032351597,496.7443381147,523.2511306012],description:"16-note scale with all possible quadruplets of 60 & 90 c. Galois Field GF(2)"},gilson7:{frequencies:[261.6255653006,261.6255653006,299.00064605783,313.95067836072,327.03195662575,392.4383479509,373.75080757229,392.4383479509,408.78994578219,408.78994578219,467.18850946536,490.54793493862,523.2511306012],description:"Gilson septimal"},gilson7a:{frequencies:[261.6255653006,261.6255653006,280.31310567921,299.00064605783,313.95067836072,336.37572681506,373.75080757229,373.75080757229,392.4383479509,418.60090448096,470.92601754108,470.92601754108,523.2511306012],description:"Gilson septimal 2"},golden_10:{frequencies:[261.6255653006,287.58715183149,304.90466328003,323.26497397694,342.73087946949,376.74069565061,399.42672527674,423.47882962254,465.50141625349,493.53231135469,523.2511306012],description:"Golden version of Rapoport's Major 10 out of 13"},golden_5:{frequencies:[261.6255653006,327.03195662575,343.38355445704,392.4383479509,425.14154361347,523.2511306012],description:"Golden pentatonic"},gradus10:{frequencies:[261.6255653006,290.69507255622,299.00064605783,305.22982618403,490.54793493862,882.98628288953,930.22423217991,941.85203508216,1220.91930473613,1255.80271344288,1674.40361792384,2747.0684356563,3270.3195662575,3488.34087067467,5886.5752192635,10595.8353946743,10988.2737426252,11162.69078615893,13081.27826503,14651.0316568336,23546.300877054,31395.067836072,41860.090448096,42383.3415786972,56511.1221049296,75348.1628065728,100464.2170754304,133952.2894339072],description:"Intervals > 1 with Gradus = 10"},gradus3:{frequencies:[261.6255653006,784.8766959018,1046.5022612024],description:"Intervals > 1 with Gradus = 3"},gradus4:{frequencies:[261.6255653006,392.4383479509,1569.7533918036,2093.0045224048],description:"Intervals > 1 with Gradus = 4"},gradus5:{frequencies:[261.6255653006,348.83408706747,1308.127826503,2354.6300877054,3139.5067836072,4186.0090448096],description:"Intervals > 1 with Gradus = 5"},gradus6:{frequencies:[261.6255653006,654.0639132515,697.66817413493,1177.3150438527,2616.255653006,4709.2601754108,6279.0135672144,8372.0180896192],description:"Intervals > 1 with Gradus = 6"},gradus7:{frequencies:[261.6255653006,327.03195662575,436.04260883433,588.65752192635,1395.33634826987,1831.3789571042,3924.383479509,5232.511306012,7063.8902631162,9418.5203508216,12558.0271344288,16744.0361792384],description:"Intervals > 1 with Gradus = 7"},gradus8:{frequencies:[261.6255653006,294.32876096318,313.95067836072,418.60090448096,872.08521766867,915.6894785521,1962.1917397545,2790.67269653973,3531.9451315581,3662.7579142084,7848.766959018,10465.022612024,14127.7805262324,18837.0407016432,25116.0542688576,33488.0723584768],description:"Intervals > 1 with Gradus = 8"},gradus9:{frequencies:[261.6255653006,457.84473927605,465.11211608996,470.92601754108,610.45965236807,627.90135672144,837.20180896192,981.09586987725,1744.17043533733,1765.97256577905,5494.1368713126,5581.34539307947,6540.639132515,7325.5158284168,11773.150438527,15697.533918036,20930.045224048,21191.6707893486,28255.5610524648,37674.0814032864,50232.1085377152,66976.1447169536],description:"Intervals > 1 with Gradus = 9"},grady11:{frequencies:[261.6255653006,277.4816601673,290.69507255622,305.22982618403,332.97799220076,356.76213450082,378.42269266694,392.4383479509,420.46965851882,458.69417292962,481.6288815761,504.56359022259,523.2511306012],description:"Kraig Grady's dual [5 7 9 11] hexany scale"},grady7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:`Kraig Grady's 7-limit "Centaur" scale (1987), see Xenharmonikon 16`},grady7t:{frequencies:[261.6255653006,274.79177208104,293.65339461903,305.54250820508,326.68804977983,349.10444036529,366.6627351378,392.00975085961,407.77240291308,436.0718257558,457.96530027286,489.37179607373,523.2511306012],description:"Tempered version of grady7 with egalised 225/224"},grady_14:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Kraig Grady, letter to Lou Harrison, published in 1/1 7 (1) 1991 p 5."},grammateus:{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,348.83408706747,369.99442271164,392.4383479509,416.24372513446,441.49314144476,468.27419030811,496.67978412536,523.2511306012],description:"H. Grammateus (Heinrich Schreiber) (1518). B-F# and Bb-F 1/2 P. Also Marpurg temp.nr.6"},graupner:{frequencies:[261.6255653006,277.083518473,293.59062125964,310.9808189359,329.55130849159,349.11528328816,370.00708353276,392.01655298731,415.20348378516,439.96413779539,466.04943410823,493.90517116572,523.2511306012],description:"Johann Gottlieb Graupner's temperament (1819)"},groenewald_21:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,330.74639366397,348.83408706747,367.91095120397,372.08969287196,392.4383479509,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"J\xEF\xBF\xBDrgen Gr\xEF\xBF\xBDnewald, new meantone temperament I (2000)"},gross:{frequencies:[13.75,13.83042567154,13.91662997964,13.99803029322,14.07990672861,14.1622619889,14.24509903843,14.32842061343,14.41222946472,14.49652860895,14.58132083065,14.67220542837,14.75802520833,14.84434696019,14.93117353378,15.01850805439,15.10635340681,15.19471249121,15.28358848801,15.37298433293,15.46880332718,15.55928251958,15.65029093742,15.74183158529,15.83390775812,15.92652249736,16.01967895316,16.113380201,16.20762961362,16.30865090754,16.4040424858,16.49999202274,16.59650278193,16.69357794961,16.79122101993,16.88943521823,16.98822378696,17.08759028197,17.18753798549,17.29466699621,17.39582592037,17.49757653721,17.59992220598,17.70286661052,17.80641315127,17.91056524676,18.01532664586,18.12070080902,18.23364617402,18.34029731861,18.44757228066,18.55547460176,18.66400816581,18.77317655783,18.88298349104,18.99343259063,19.10452783216,19.2236053387,19.33604689279,19.44914613325,19.56290690697,19.67733296969,19.79242844011,19.90819712001,20.02464283144,20.14176976577,20.26731246322,20.38585868839,20.50509842475,20.62503561099,20.74567420676,20.86701855437,20.98907266203,21.11184068121,21.23532666504,21.36768545088,21.49266790503,21.61838152318,21.74483045784,21.87201888365,21.99995137868,22.12863216875,22.25806563075,22.38825603783,22.52780097787,22.65956910312,22.79210808945,22.92542231482,23.05951631373,23.1943945132,23.33006176809,23.46652255971,23.60378139323,23.75090264526,23.88982499399,24.02955978014,24.17011203339,24.3114863964,24.45368753658,24.59672057234,24.74059022832,24.88530139802,25.04041015894,25.18687501732,25.33419642278,25.48237967807,25.63142967793,25.78135134315,25.93215007005,26.08383083979,26.23639881154,26.39992889083,26.55434576426,26.70966568928,26.86589425653,27.0230366265,27.18109814415,27.34008402779,27.5],description:"Gross temperament, g=91.531021, 5-limit"},groven:{frequencies:[261.6255653006,264.7464578752,272.5650766677,275.81646505128,279.10663876478,290.77709705464,294.24573392894,297.75574765819,306.54921255625,310.20599265769,313.90639394672,327.03195662575,330.93307160522,334.88072358477,344.77058253591,348.88329767713,353.04507480266,363.47137260637,367.80716871461,372.19468374184,387.75749219625,392.38299382393,397.06367008113,408.78994578219,413.66634097248,418.60090448096,436.10412364188,441.30634506723,446.57062302059,459.75895986689,465.24335632603,470.79317533731,484.69686416326,490.47874118496,496.32958936031,517.08292506126,523.2511306012],description:"Eivind Groven's 36-tone scale with 1/8-schisma temp. fifths and 5/4 (1948)"},groven_ji:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.11959049595,517.37477513058,523.2511306012],description:"Untempered version of Groven's 36-tone scale"},gumbeng:{frequencies:[261.6255653006,305.03156112838,348.43777142572,394.8168394034,470.9259392365,525.62941881859],description:"Scale of gumbeng ensemble, Java. 1/1=440 Hz."},gunkali:{frequencies:[261.6255653006,275.93321340298,282.55561052465,348.83408706747,392.4383479509,408.78994578219,418.60090448096,523.2511306012],description:"Indian mode Gunkali, see Dani\xEF\xBF\xBDlou: Intr. to the Stud. of Mus. Scales, p.175"},gyaling:{frequencies:[261.6255653006,283.49766588023,307.55338551939,339.28638158975,347.81902735497,393.58362272115,435.9522698367],description:'Tibetan Buddhist Gyaling tones measured from CD "The Diamond Path", Ligon 2002'},far12_104:{frequencies:[261.6255653006,276.7193479141,294.32876096318,311.93817401225,329.54758706133,349.67263054599,369.79767403066,392.4383479509,415.07902187114,440.23532622697,465.3916305828,493.06356537421,523.2511306012],description:"Farey approximation to 12-tET with den=104"},far12_65:{frequencies:[261.6255653006,277.72560008833,293.82563487606,309.92566966379,330.05071314845,350.17575663311,370.30080011777,390.42584360243,414.57589578403,438.72594796562,466.90100884415,495.07606972267,523.2511306012],description:"Farey approximation to 12-tET with den=65"},far12_80:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,330.30227619201,349.92419358955,369.5461109871,392.4383479509,415.3305849147,441.49314144476,467.65569797482,493.81825450488,523.2511306012],description:"Farey approximation to 12-tET with den=80"},farey3:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,418.60090448096,523.2511306012],description:"Farey fractions between 0 and 1 until 3rd level, normalised by 2/1"},farey4:{frequencies:[261.6255653006,299.00064605783,313.95067836072,327.03195662575,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Farey fractions between 0 and 1 until 4th level, normalised by 2/1"},farey5:{frequencies:[261.6255653006,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,322.00069575458,327.03195662575,332.97799220076,348.83408706747,366.27579142084,373.75080757229,380.54627680087,392.4383479509,402.50086969323,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"Farey fractions between 0 and 1 until 5th level, normalised by 2/1"},farnsworth:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Farnsworth's scale"},fibo_9:{frequencies:[261.6255653006,277.97716313189,327.03195662575,343.38355445704,363.82305174615,392.4383479509,425.14154361347,449.66894036041,523.2511306012],description:"First 9 Fibonacci terms reduced by 2/1, B. McLaren, XH 13, 1991"},finnamore:{frequencies:[261.6255653006,277.97716313189,310.68035879446,348.83408706747,392.4383479509,416.96574469783,457.84473927605,466.02053819169,523.2511306012],description:"David J. Finnamore, Tuning List 9 May '97. Tetrachordal scale, 17/16x19/17x64/57"},finnamore53:{frequencies:[261.6255653006,286.15296204753,310.68035879446,327.03195662575,343.38355445704,359.73515228832,367.91095120397,376.08675011961,392.4383479509,408.78994578219,416.96574469783,425.14154361347,433.31734252912,441.49314144476,457.84473927605,474.19633710734,523.2511306012],description:'David J. Finnamore, tuning for "Crawlspace", 53-limit, 1998.'},finnamore_11:{frequencies:[261.6255653006,287.78812183066,294.32876096318,305.22982618403,323.76163705949,331.11985608357,343.38355445704,348.83408706747,392.4383479509,431.68218274599,441.49314144476,457.84473927605,485.64245558924,515.07533168556,523.2511306012],description:"David J. Finnamore, 11-limit scale, Tuning List 3 Sept '98"},finnamore_7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,309.04519901133,331.11985608357,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,463.567798517,496.67978412536,523.2511306012],description:"David J. Finnamore, TL 1 Sept '98. 7-tone Pyth. with 9/8 div. in 21/20 &15/14"},finnamore_7a:{frequencies:[261.6255653006,280.31310567921,294.32876096318,315.35224388912,331.11985608357,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,473.02836583367,496.67978412536,523.2511306012],description:"David J. Finnamore, TL 1 Sept '98. 7-tone Pyth. with 9/8 div. in 15/14 &21/20"},finnamore_jc:{frequencies:[261.6255653006,276.16031892841,310.68035879446,348.83408706747,392.4383479509,414.24047839262,466.02053819169,523.2511306012],description:"Chalmers' modification of Finnamore. Tuning List 9-5-97 19/18 x 9/8 x 64/57"},fisher:{frequencies:[261.6255653006,273.37431312998,292.50627485027,310.67535808973,327.03195662575,349.71841093413,365.63284485857,391.22147055517,410.55062036439,437.39890198442,467.47330218196,489.02683992698,523.2511306012],description:"Alexander Metcalf Fisher's modified meantone temperament (1818)"},"fj-10tet":{frequencies:[261.6255653006,280.31310567921,300.51585203447,322.00069575458,345.20039866051,370.01329949656,396.52624740872,425.14154361347,455.42228033808,488.36772189445,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 10-tet"},"fj-12tet":{frequencies:[261.6255653006,277.19851561611,293.6613488068,311.12229387098,329.64821227876,348.83408706747,370.01329949656,391.99491478937,415.52295665389,440.00663255101,466.16918908107,490.54793493862,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 12-tet"},"fj-13tet":{frequencies:[261.6255653006,275.96121271433,291.05844139692,306.97399661937,323.91736656265,341.56671025356,360.27127025001,379.97998769849,400.78810003496,422.62591317789,445.95266812602,41.6222490251,496.18641694941,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 13-tet"},"fj-14tet":{frequencies:[261.6255653006,274.92856014639,288.87822835275,303.4856557487,318.85615771011,335.0643204727,352.18826098158,370.01329949656,388.70083987518,408.5030756448,429.33426100611,451.0785608631,473.88781639354,497.93252750759,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 14-tet"},"fj-15tet":{frequencies:[261.6255653006,274.08392555301,286.94416839421,300.51585203447,314.76825825228,329.64821227876,345.20039866051,361.51896296083,378.66858135613,396.52624740872,415.52295665389,392.4383479509,455.42228033808,477.08191319521,499.46698830115,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 15-tet"},"fj-16tet":{frequencies:[261.6255653006,273.25336820285,285.40970760065,297.96244937013,311.12229387098,324.92207303462,339.29565499922,354.2846196779,370.01329949656,386.4008349055,403.52417698906,421.50785520652,440.00663255101,459.44001711325,479.64686971777,500.9851250437,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 16-tet"},"fj-17tet":{frequencies:[261.6255653006,272.52663052146,283.8915708581,295.75063903546,307.98958953109,320.70230585235,334.29933343966,348.03400888612,362.53828334512,373.75080757229,392.4383479509,409.71550792358,426.86276443782,444.76346101102,462.87600014722,482.37213602298,502.32108537715,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 17-tet"},"fj-18tet":{frequencies:[261.6255653006,271.88539139082,282.55561052465,293.6613488068,305.22982618403,317.12189733406,329.64821227876,342.60490694126,355.98232655655,370.01329949656,384.51030051755,399.57359064092,415.52295665389,431.68218274599,448.50096908674,466.16918908107,484.4917875937,503.12608711654,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 18-tet"},"fj-19tet":{frequencies:[261.6255653006,271.31540105247,281.44568388398,291.81313052759,302.73815413355,313.95067836072,325.69713231299,337.73482066077,350.31219760589,363.36884069528,376.74081403286,390.78248994267,405.26313056367,420.46965851882,436.04260883433,451.89870370104,468.95148497277,485.87604984397,504.56359022259,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 19-tet"},"fj-20tet":{frequencies:[261.6255653006,270.8594087818,280.31310567921,290.29686012806,300.51585203447,311.12229387098,322.00069575458,333.44434793214,345.20039866051,357.34223553253,370.01329949656,383.09457776159,396.52624740872,410.48149038542,425.14154361347,440.00663255101,455.42228033808,470.92601754108,488.36772189445,505.41302387616,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 20-tet"},"fj-21tet":{frequencies:[261.6255653006,270.34641747729,279.46367202564,288.87822835275,298.56093922539,308.58400009814,318.85615771011,329.64821227876,340.72166643799,352.18826098158,364.00078650518,376.08675011961,388.70083987518,401.78211814021,415.52295665389,429.33426100611,443.62595855319,457.84473927605,473.88781639354,489.85212226495,506.18859373377,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 21-tet"},"fj-22tet":{frequencies:[261.6255653006,270.06509966514,278.68810216803,287.55242312318,296.76929795292,306.29334474217,316.13089140489,326.18252297218,336.37572681506,347.40443916965,358.52392281934,370.01329949656,381.83190611439,392.4383479509,392.4383479509,419.69101100305,433.03541842858,446.94367405519,461.28718092474,475.68284600109,491.34557385722,506.89953276991,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 22-tet"},"fj-23tet":{frequencies:[261.6255653006,269.55361273395,277.97716313189,286.37392958579,295.1673044417,304.21577360535,313.47928094576,323.18452184192,332.97799220076,343.1154954762,353.6790049434,364.40703738298,375.66747838035,387.20583664489,398.97898708342,411.12588832951,423.58424858192,436.04260883433,449.99597231703,463.79077485106,477.96978276071,492.47165233054,507.86139146587,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 23-tet"},"fj-24tet":{frequencies:[261.6255653006,269.32043486826,277.19851561611,285.40970760065,293.6613488068,302.32287545847,311.12229387098,320.2657782128,329.64821227876,339.29565499922,348.83408706747,348.83408706747,370.01329949656,380.54627680087,391.99491478937,403.52417698906,415.52295665389,427.53446036927,440.00663255101,452.81347840488,466.16918908107,479.64686971777,490.54793493862,508.30109829831,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 24-tet"},"fj-26tet":{frequencies:[261.6255653006,268.69652652494,275.96121271433,283.42769574232,291.05844139692,299.00064605783,306.97399661937,315.29234792636,323.91736656265,332.57487114483,341.56671025356,350.8160989258,360.27127025001,370.01329949656,379.97998769849,390.22118214327,400.78810003496,411.12588832951,422.62591317789,434.18710837121,445.95266812602,457.84473927605,457.84473927605,483.00104363188,496.18641694941,509.48136400643,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 26-tet"},"fj-30tet":{frequencies:[261.6255653006,267.70988077271,274.08392555301,280.31310567921,286.94416839421,293.6613488068,300.51585203447,307.52478728316,314.76825825228,322.00069575458,329.64821227876,337.35928157183,345.20039866051,353.19451315581,361.51896296083,370.01329949656,378.66858135613,387.59343007496,396.52624740872,405.78659107848,415.52295665389,425.14154361347,392.4383479509,444.76346101102,455.42228033808,466.16918908107,477.08191319521,488.36772189445,499.46698830115,511.35905945117,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 30-tet"},"fj-31tet":{frequencies:[261.6255653006,267.57160087561,273.51763645063,279.79400733536,286.15296204753,292.60754013883,299.00064605783,305.96888145324,312.81317590289,319.76457981184,327.03195662575,334.53760808929,342.12573923925,349.884792149,357.81143489641,366.27579142084,373.75080757229,382.37582620857,391.25985441351,400.13321751856,409.20921752145,418.60090448096,428.11456140098,437.54620403721,447.51741432997,457.84473927605,467.90726101838,478.40103369253,489.12605686634,500.50108144463,511.62332769895,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 31-tet"},"fj-36tet":{frequencies:[261.6255653006,266.75547834571,271.88539139082,277.19851561611,282.55561052465,288.08208313999,293.6613488068,299.00064605783,305.22982618403,311.12229387098,317.12189733406,323.18452184192,329.64821227876,327.03195662575,342.60490694126,348.83408706747,355.98232655655,362.89997767503,370.01329949656,377.22755927063,384.51030051755,391.99491478937,399.57359064092,406.97310157871,415.52295665389,423.35773294097,431.68218274599,440.00663255101,448.50096908674,436.04260883433,466.16918908107,475.19745534191,484.4917875937,490.54793493862,503.12608711654,513.18860885887,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 36-tet"},"fj-41tet":{frequencies:[261.6255653006,266.05989691586,270.64713651786,275.21650375777,279.87851171692,284.71017400359,289.532292266,294.32876096318,299.49242343621,304.63250754179,309.81974838229,315.13988547572,320.49131749323,325.95972070239,331.39238271409,337.09447836808,342.81970625596,348.83408706747,354.64798851859,360.72615821749,366.27579142084,373.13810133036,379.35706968587,386.00493241072,392.4383479509,399.32323124828,405.97070477679,413.09299784305,419.97788114044,427.14378008261,434.48531380278,441.85651028546,449.45930449077,436.04260883433,465.11211608996,472.93852188955,480.82536325516,489.12605686634,497.08857407114,505.80942624783,514.53027842451,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 41-tet"},"fj-42tet":{frequencies:[261.6255653006,265.98599138894,270.34641747729,274.92856014639,279.46367202564,284.05061375494,288.87822835275,293.6613488068,298.56093922539,303.4856557487,308.58400009814,313.7026920429,318.85615771011,324.18820048118,329.64821227876,335.0643204727,340.72166643799,346.37750898953,352.18826098158,358.01393146398,364.00078650518,370.01329949656,376.08675011961,382.37582620857,388.70083987518,395.22159864559,401.78211814021,408.5030756448,415.52295665389,422.16852582597,429.33426100611,436.04260883433,443.62595855319,451.0785608631,457.84473927605,466.16918908107,473.88781639354,481.94183081689,489.85212226495,497.93252750759,506.18859373377,514.81159623666,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 42-tet"},"fj-43tet":{frequencies:[261.6255653006,265.84533248287,270.2034526875,274.70684356563,279.06726965397,283.42769574232,288.1672893166,292.86443876933,297.71185016965,302.50455987882,307.4100392282,312.38873468728,317.43901923139,322.67153053741,327.85988562987,332.97799220076,338.57426097725,344.24416486921,348.83408706747,355.41586229515,361.11697745717,367.05676325756,372.95559308809,379.09010482332,385.17097113699,391.45479319413,397.88888056133,404.33041910093,392.4383479509,417.48760420309,424.25767346043,431.1976909584,438.2228218785,445.32011114996,452.54151835779,459.82675113439,467.18850946536,475.05694751951,483.00104363188,490.54793493862,498.33441009638,506.89953276991,514.81159623666,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 43-tet"},"fj-53tet":{frequencies:[261.6255653006,265.06800694929,268.51044859798,272.09058791262,275.69145590816,279.30296836145,282.98275430473,286.71294827463,290.48132617934,294.32876096318,298.13145813324,302.11523612093,306.05254808749,310.07474405997,313.95067836072,318.31110444906,322.46872002167,326.7649917632,331.03642956402,335.41739141103,336.37572681506,344.24416486921,348.83408706747,353.42400926572,358.01393146398,362.89997767503,367.52162744608,372.31330446624,377.3445653374,382.37582620857,387.20583664489,392.4383479509,397.67085925691,402.82031482791,408.13588186894,413.53718386224,418.60090448096,424.41480593208,429.81342870813,436.04260883433,441.49314144476,447.29532132038,453.1728541814,459.07882213124,465.11211608996,470.92601754108,477.46665667359,483.76047923507,485.87604984397,496.55464434604,503.12608711654,509.83443494476,516.36624730382,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 53-tet"},"fj-54tet":{frequencies:[261.6255653006,265.02329991489,268.42103452919,271.88539139082,275.39533189537,279.06726965397,282.55561052465,286.15296204753,289.90941019796,293.6613488068,297.46468383493,301.26580246736,305.22982618403,309.19384990071,313.15787361738,317.12189733406,321.29455387793,325.43667878855,329.64821227876,333.91683992313,338.19890148614,342.60490694126,346.93824963775,351.55935337268,355.98232655655,360.61902244137,365.28852513669,370.01329949656,374.76094489005,379.61356533813,384.51030051755,389.53139722534,394.5147413263,399.57359064092,404.77917650282,409.88005230427,415.52295665389,420.652869699,426.07592063241,431.68218274599,436.04260883433,442.75095666255,448.50096908674,454.40229762736,460.26719821402,466.16918908107,472.20223981084,478.40103369253,484.4917875937,490.54793493862,497.08857407114,503.12608711654,510.16985233617,516.54278277298,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 54-tet"},"fj-55tet":{frequencies:[261.6255653006,264.93728131706,268.33391312882,271.68808704293,275.15792212649,278.68810216803,282.14521748104,285.77561748219,289.37373131733,293.02063313667,296.76929795292,300.51585203447,304.33994330886,308.21641939523,312.11470948142,316.13089140489,319.76457981184,324.10331223806,328.22116374075,332.33517754401,336.37572681506,340.90603963412,345.20039866051,348.83408706747,353.96400011258,358.52392281934,363.07221307022,367.68998366571,372.31330446624,377.04860881557,381.83190611439,386.75083566176,391.58336244338,396.52624740872,401.56482115906,406.65712867376,411.81801945465,416.96574469783,418.60090448096,427.65717404906,433.03541842858,438.60756535689,444.15502946381,449.8123754291,455.42228033808,461.28718092474,467.18850946536,472.93852188955,479.03272519828,485.0974023282,491.34557385722,497.60156537565,503.87145909745,510.16985233617,516.71049146868,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 55-tet"},"fj-5tet":{frequencies:[261.6255653006,300.51585203447,345.20039866051,396.52624740872,455.42228033808,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 5-tet"},"fj-60tet":{frequencies:[261.6255653006,264.66772303665,267.70988077271,270.8594087818,274.08392555301,277.19851561611,280.31310567921,283.6903720127,286.94416839421,290.29686012806,293.6613488068,297.10021822272,300.51585203447,304.05133264664,307.52478728316,311.12229387098,314.76825825228,318.50068819203,322.00069575458,325.79787377056,329.64821227876,333.44434793214,337.35928157183,341.25073734861,345.20039866051,348.83408706747,353.19451315581,357.34223553253,361.51896296083,365.74186169574,370.01329949656,374.3258088147,378.66858135613,383.09457776159,387.59343007496,391.99491478937,396.52624740872,401.15920012759,405.78659107848,410.48149038542,415.52295665389,420.18651396763,425.14154361347,429.81342870813,434.91003062957,440.00663255101,444.76346101102,450.23934493592,455.42228033808,460.95932933915,466.16918908107,470.92601754108,477.08191319521,482.55382044333,488.36772189445,490.54793493862,499.46698830115,505.41302387616,511.35905945117,517.30509502619,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 60-tet"},"fj-66tet":{frequencies:[261.6255653006,264.37951861955,267.19206668997,270.06509966514,272.83808952777,275.76748774928,278.68810216803,281.58005756929,284.57517629188,287.55242312318,290.69507255622,293.6613488068,296.76929795292,299.91223339337,302.93486508491,306.29334474217,309.48390041656,312.81317590289,316.13089140489,319.38705374359,322.78478835788,326.18252297218,329.64821227876,332.97799220076,336.37572681506,340.11323489078,343.8507429665,347.40443916965,351.12904816659,354.74652922115,358.52392281934,362.25078272391,366.27579142084,370.01329949656,373.75080757229,377.90359432309,381.83190611439,385.89770881839,389.97018224052,392.4383479509,398.12586024004,402.50086969323,406.65712867376,411.12588832951,415.52295665389,419.69101100305,424.01384721132,428.62060698183,433.03541842858,437.71969579139,442.27178896054,446.94367405519,451.89870370104,456.45311392871,461.28718092474,466.16918908107,470.92601754108,475.68284600109,481.05345877852,485.87604984397,491.34557385722,496.41773928832,501.44900015948,506.89953276991,512.35006538034,517.80059799077,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 66-tet"},"fj-72tet":{frequencies:[195.99771799087,197.9006084568,199.84081050049,201.76235675531,203.68390301012,205.67661764474,207.66424882366,209.67197738558,211.67753543014,213.81569235368,215.817711945,217.77524221208,219.99743856118,222.13074705632,223.99739198957,226.48625190056,228.66400432268,230.8417567448,233.07836734049,235.19726158904,237.57299150408,239.92824098882,242.11482810637,244.5635242187,246.9571246685,249.45164107929,251.74018824515,254.18454051941,256.66367832138,259.11562717437,261.33029065449,264.17083729204,266.68541956135,269.28382123963,271.86780237443,274.39680518722,277.19677258709,279.99673998696,282.60136082405,285.0875898049,288.0572521987,290.83532347032,293.66437746429,296.5093682426,299.34196929515,302.30156503677,304.88533909691,307.99641398565,311.29049327962,313.59634878539,317.15994365795,320.28895378996,323.39623468494,326.46784071315,329.63252571192,332.8263135694,335.99608798435,339.22681959958,342.55457018224,345.87832586624,349.232297511,352.79589238357,355.99585512627,359.32914964993,362.95873702013,366.4305162438,367.49572123288,373.6206499201,376.91868844398,380.79556638226,384.45706221286,388.2262490973,391.99543598174],description:"Franck Jedrzejewski continued fractions approx. of 72-tet"},"fj-78tet":{frequencies:[138.59131548844,139.82873794816,141.06616040788,142.33702671786,143.60064014465,144.89092073791,146.18536017274,147.4753741736,148.781853392,150.14059177914,151.48353088271,152.80580938469,154.18283848089,155.56168065029,156.95883922787,158.39007484393,159.76498868806,161.21846903757,162.6138101731,164.12129465736,165.53962683341,167.02030328094,168.55700532378,170.00534699915,171.58924774759,173.06676710248,174.62505751543,176.17540104463,177.75842638735,179.35346710269,180.93866188769,182.53490332624,184.15558359423,185.8383548595,187.50589742554,188.98815748424,190.84705739392,192.48793817839,194.02784168382,196.00771761937,197.74614527009,199.57149430335,201.28738678083,203.10796235375,204.87411854813,206.71247055903,207.88697323266,210.45347907504,212.31010032272,214.18657848213,216.10849194808,217.78635291041,220.11561871693,221.7461047815,223.87827886594,225.96410133985,228.00506741647,230.00260868294,232.05987709692,234.17153306667,236.2351968553,238.37706264012,240.41350645954,242.53480210477,244.7463656498,246.9445257794,249.1343885566,251.39820018833,253.59261982991,255.8608901325,258.1602935569,260.55167311827,262.84559834014,265.13121223875,267.51346943117,269.88835121433,272.23294113801,274.70778605744,277.18263097688],description:"Franck Jedrzejewski continued fractions approx. of 78-tet"},"fj-7tet":{frequencies:[261.6255653006,288.87822835275,318.85615771011,352.18826098158,388.70083987518,429.33426100611,473.88781639354,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 7-tet"},"fj-84tet":{frequencies:[97.99885899544,98.81551615374,99.63217331203,100.44883047033,101.26548762862,102.12512674262,102.98185182572,103.83212441184,104.68059938149,105.53723276432,106.39876119505,107.33208366167,108.20707347413,109.09306944775,109.9987192806,110.89344570537,111.83399203009,112.76581035092,113.67867643471,114.64017467391,115.58839778949,116.53918367025,117.50574088079,118.47623251688,119.43610940069,120.45693084856,121.43336875522,122.4985737443,123.47856233425,124.48503710232,125.50731064328,126.58185953578,127.62642101732,128.62350243151,129.74496824748,130.66514532725,131.9215409554,132.99845149381,134.10370178323,135.17083999371,136.34623860235,137.19840259362,138.59838629355,139.73911375276,140.87335980595,142.09834554339,143.22910160872,144.41937115117,145.59830479323,146.83218873215,148.0408295463,149.25980062382,150.498247743,151.74016876713,153.01576229113,154.29607586516,155.64524663982,156.7981743927,158.13452246991,159.45577056885,160.81864040277,162.07503603092,163.33143165907,164.81626285597,166.17197829662,167.54643634704,168.96354999214,170.33135015874,171.49800324202,173.20728566636,174.61614875551,176.03498745477,177.50736723702,178.95443816559,180.52421393897,181.99788099153,183.48722535316,183.74786061645,186.51395744293,188.05186455882,189.60648805639,191.21728584476,192.8364644749,194.36440367429,195.99771799088],description:"Franck Jedrzejewski continued fractions approx. of 84-tet"},"fj-8tet":{frequencies:[261.6255653006,285.40970760065,311.12229387098,339.29565499922,370.01329949656,403.52417698906,440.00663255101,479.64686971777,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 8-tet"},"fj-90tet":{frequencies:[69.29565774422,69.83283338565,70.37840239647,70.9071846685,71.46114704873,72.0131345185,72.59545097014,73.14541650779,73.69538204544,74.24534758309,74.83931036376,75.40998048636,76.00168913882,76.58993750677,77.19009976571,77.78084032514,78.38361285822,78.99704982841,79.59636362512,80.23707738804,80.84493403492,81.4527906818,82.08870225085,82.70772053342,83.37133822351,83.99473665966,84.69469279849,85.2869633775,85.97794571968,86.61957218027,87.31252875772,87.95218098305,88.65767976099,89.35492709123,90.08435506749,90.74431371267,91.43177063473,92.14038007748,92.85618137725,93.5491379547,94.28753430771,95.03404490636,95.75399979201,96.51895185802,97.25706350066,98.00385880968,98.74631228551,99.50145727375,100.29634673506,101.05616754365,101.84361819984,102.66023369514,103.42635484212,103.94348661633,105.02623126858,105.83336819117,106.60870422188,107.47897935838,108.27446522534,109.14066094715,110.05780935847,110.87305239075,111.72157064884,112.60544383436,113.39289449054,114.33783527796,115.19278170468,116.11704811194,116.93642244337,117.80261816517,118.79255613295,119.69249974002,120.62577459179,121.5942673625,122.52275717094,123.4722628897,124.41720367712,125.39214258478,126.36267000417,127.35418180019,128.32529211893,129.35189445588,130.27583655913,131.29703572589,132.29171023897,133.26088027735,134.39157865546,135.4415128637,136.49144707195,137.52522844622,138.59131548844],description:"Franck Jedrzejewski continued fractions approx. of 90-tet"},"fj-96tet":{frequencies:[48.99942949772,49.35708956705,49.70956615711,50.0646344868,50.44058918883,50.81422318282,51.17718191984,51.5338827476,51.91606220592,52.2660581309,52.67438671005,53.04896912563,53.45392308842,53.81904551389,54.21213476343,54.59936429746,54.9993596403,55.39065943221,55.80490581685,56.20522795327,56.62156297514,57.01751796098,57.44760699733,57.85474808165,58.26959183513,58.69162434342,59.11042288614,59.54361052887,59.98206024721,60.41025554513,60.85413018265,61.24928687215,61.73928116713,62.19158359326,62.61038213598,63.09515579158,63.54613512986,63.99925485416,64.47293354963,64.92424408448,65.33257266363,65.89578449693,66.3533941115,66.81740386053,67.32095530991,67.84536391992,68.30223505743,68.78766064103,69.29919314678,69.78706625433,70.30352927934,70.77695371893,71.27189745123,71.86582992999,72.36838818125,72.90159022832,73.41609436608,73.94459360565,74.47913283653,75.03037641838,75.5753912592,76.10549687944,76.66039776256,77.21122223883,77.82262331991,78.34524166943,78.94352530188,79.48796340741,80.07223844749,80.64489438166,81.23589627254,81.66571582953,82.40813142798,82.999033639,83.58726208435,84.21776944921,84.8067048999,85.43490271397,86.04777863014,86.69129834212,87.30807437776,87.94769397027,88.57589178434,89.20408959841,89.83228741249,90.46048522656,91.16172929808,91.87393030822,92.49330511929,93.09891604567,93.82869478287,94.4988997456,95.19889159557,95.91377688915,96.59887529551,97.28872233605,97.99885899544],description:"Franck Jedrzejewski continued fractions approx. of 96-tet"},"fj-9tet":{frequencies:[261.6255653006,282.55561052465,305.22982618403,329.64821227876,355.98232655655,384.51030051755,415.52295665389,448.50096908674,484.4917875937,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 9-tet"},flavel:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Bill Flavel's just tuning. Tuning List 6-5-98"},fogliano:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Fogliano's Monochord with D-/D and Bb-/Bb"},fogliano1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Fogliano's Monochord no.1, Musica theorica (1529)"},fogliano2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Fogliano's Monochord no.2"},"fokker-h":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Fokker-H 5-limit per.bl. synt.comma&small diesis, KNAW B71, 1968"},"fokker-ht":{frequencies:[261.6255653006,272.31140503734,279.67242998298,290.89121260742,305.67073265504,313.92185180985,326.66733279836,335.5942968927,349.22294231864,363.36596605244,376.74379448613,392.00137290182,407.92073675044,419.068143928,436.08264938702,447.85404100892,470.60848490625,489.4864783277,502.71810253025,523.2511306012],description:"Tempered version of Fokker-H per.bl. with better 6 tetrads, OdC"},"fokker-k":{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"Fokker-K 5-limit per.bl. of 225/224 & 81/80 & 10976/10935, KNAW B71, 1968"},"fokker-l":{frequencies:[261.6255653006,271.31540105247,282.62020942966,291.99281841585,301.39265122629,313.95067836072,325.57848126297,339.14425131559,350.39138209902,363.36884069528,376.74081403286,390.69417751556,403.65087217807,420.46965851882,436.04260883433,454.2110508691,468.83301301868,484.38104661368,504.56359022259,523.2511306012],description:"Fokker-L 7-limit periodicity block 10976/10935 & 225/224 & 15625/15552, 1969"},"fokker-lt":{frequencies:[261.6255653006,272.07297743248,282.57734531132,291.77233860052,302.20925621315,313.90139500947,326.42149564976,339.58797317787,349.9403315901,363.14714144228,376.97081214523,391.19775936204,403.12344267272,419.38375585596,436.11106867998,452.98371913917,469.18728997524,484.4545223075,503.15865298196,523.2511306012],description:"Tempered version of Fokker-L per.bl. with more triads"},"fokker-m":{frequencies:[261.6255653006,265.7783520514,274.70684356563,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,336.37572681506,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,406.97310157871,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker-M 7-limit periodicity block 81/80 & 225/224 & 1029/1024, KNAW B72, 1969"},"fokker-n":{frequencies:[261.6255653006,265.7783520514,273.37201925287,277.71125765371,286.15296204753,290.69507255622,299.00064605783,303.74668805875,313.95067836072,318.93402246168,328.62879235146,333.84512238879,343.38355445704,348.83408706747,358.80077526939,364.4960256705,375.57576268738,381.53728273004,392.4383479509,398.6675280771,410.05802887931,416.56688648057,429.2294430713,436.04260883433,450.69091522486,457.84473927605,470.92601754108,478.40103369253,492.94318852719,500.76768358318,515.07533168556,523.2511306012],description:"Fokker-N 7-limit periodicity block 81/80 & 2100875/2097152 & 1029/1024, 1969"},"fokker-n2":{frequencies:[261.6255653006,265.7783520514,272.52663052146,279.06726965397,286.15296204753,290.69507255622,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,334.88072358477,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,478.40103369253,490.54793493862,502.32108537715,515.07533168556,523.2511306012],description:"Fokker-N different block shape"},"fokker-p":{frequencies:[261.6255653006,267.90457886781,273.37201925287,280.31310567921,286.15296204753,290.69507255622,299.00064605783,306.17666156322,312.97980223949,320.35783506196,327.03195662575,334.88072358477,341.85740532612,350.39138209902,357.69120255941,366.27579142084,373.75080757229,382.72082695402,390.69417751556,400.44729382745,408.78994578219,418.60090448096,427.32175665765,437.39523080459,447.11400319927,457.84473927605,470.92601754108,478.40103369253,488.36772189445,500.76768358318,510.98743222773,523.2511306012],description:"Fokker-P 7-limit periodicity block 65625/65536 & 6144/6125 & 2401/2400, 1969"},"fokker-q":{frequencies:[261.6255653006,265.7783520514,269.10058145205,272.52663052146,274.70684356563,279.06726965397,284.76252005507,286.15296204753,290.69507255622,294.32876096318,299.00064605783,301.39265122629,305.22982618403,311.45900631024,313.95067836072,318.93402246168,321.92208230347,327.03195662575,332.22294006425,334.88072358477,340.65828815182,343.38355445704,348.83408706747,353.19451315581,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,381.53728273004,387.59343007496,392.4383479509,398.6675280771,401.85686830172,408.78994578219,412.06026534844,418.60090448096,425.24536328225,429.2294430713,436.04260883433,439.53094970501,448.50096908674,454.2110508691,457.84473927605,465.11211608996,470.92601754108,478.40103369253,480.73697623985,490.54793493862,498.33441009638,502.32108537715,508.71637697339,515.07533168556,523.2511306012],description:"Fokker-Q 7-limit per.bl. 225/224 & 4000/3969 & 6144/6125, KNAW B72, 1969"},"fokker-r":{frequencies:[261.6255653006,264.95644634031,268.26840191956,272.52663052146,275.55899540689,279.06726965397,282.62020942966,287.04062021552,290.69507255622,294.32876096318,298.07600213285,301.80195215951,306.17666156322,310.07474405997,313.95067836072,317.94773560837,322.92069774245,327.03195662575,331.19555792538,334.88072358477,340.1962906258,344.44874425862,348.83408706747,353.19451315581,357.69120255941,363.36884069528,367.91095120397,372.08969287196,376.74081403286,382.72082695402,387.59343007496,392.4383479509,397.43466951046,402.40260287934,408.78994578219,413.33849311034,418.60090448096,423.93031414449,430.56093032327,436.04260883433,441.49314144476,447.11400319927,453.59505416773,459.26499234482,465.11211608996,470.92601754108,476.92160341255,484.38104661368,490.54793493862,496.79333688808,502.32108537715,510.29443593869,516.67311638793,523.2511306012],description:"Fokker-R 7-limit per.bl. 4375/4374 & 65625/65536 & 6144/6125, 1969"},"fokker-s":{frequencies:[261.6255653006,265.7783520514,269.10058145205,273.37201925287,273.85732695955,278.20426865732,282.55561052465,286.15296204753,290.69507255622,295.2417807931,299.00064605783,303.74668805875,304.28591884395,309.04519901133,313.95067836072,317.94773560837,322.92069774245,328.04642310345,332.22294006425,333.84512238879,338.01818641865,343.38355445704,348.83408706747,353.19451315581,358.80077526939,364.4960256705,369.13660007139,370.8542388136,375.57576268738,381.53728273004,387.59343007496,392.4383479509,398.6675280771,404.99558407833,410.05802887931,412.06026534844,417.30640298598,423.93031414449,430.56093032327,436.04260883433,442.96392008567,449.89223739901,450.69091522486,457.84473927605,463.67378109554,470.92601754108,478.40103369253,484.4917875937,492.06963465517,499.88026377668,500.76768358318,508.71637697339,515.07533168556,523.2511306012],description:"Fokker-S 7-limit per.bl. 4375/4374 & 323/322 & 64827/65536, 1969"},fokker_12:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,348.83408706747,367.91095120397,392.4383479509,420.46965851882,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Fokker's 7-limit 12-tone just scale"},fokker_12a:{frequencies:[261.6255653006,274.70684356563,293.02063313667,309.04519901133,327.03195662575,348.83408706747,367.91095120397,390.69417751556,412.06026534844,439.53094970501,465.11211608996,490.54793493862,523.2511306012],description:"Fokker's 7-limit periodicity block of 2048/2025 & 3969/4000 & 225/224"},fokker_12b:{frequencies:[261.6255653006,275.93321340298,293.02063313667,309.04519901133,332.22294006425,348.83408706747,367.91095120397,392.4383479509,412.06026534844,439.53094970501,467.18850946536,496.11959049595,523.2511306012],description:"Fokker's 7-limit semitone scale KNAW B72, 1969"},fokker_12c:{frequencies:[261.6255653006,275.93321340298,293.02063313667,311.45900631024,332.22294006425,348.83408706747,372.08969287196,392.4383479509,412.06026534844,442.96392008567,467.18850946536,496.11959049595,523.2511306012],description:"Fokker's 7-limit complementary semitone scale, KNAW B72, 1969"},fokker_12t:{frequencies:[261.6255653006,279.53180800295,293.53544531438,305.4439412874,326.66157401657,349.08351368992,366.63408494061,391.81886165309,419.06057467847,436.03416050506,457.88164994338,489.21957814041,523.2511306012],description:"Tempered version of fokker_12 with egalised 225/224, see also lumma"},fokker_12t2:{frequencies:[261.6255653006,279.53060025556,293.5302824794,305.44678713816,326.66192308793,349.10467831311,366.62831408589,391.81689264402,419.03095498017,436.04260883433,457.88067400285,489.21694446174,523.2511306012],description:"Another tempered version of fokker_12 with egalised 225/224"},fokker_22:{frequencies:[261.6255653006,272.52663052146,279.06726965397,287.4304306281,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Fokker's 22-tone periodicity block of 2048/2025 & 3125/3072. KNAW B71, 1968"},fokker_22a:{frequencies:[261.6255653006,269.46602871384,279.06726965397,287.4304306281,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,431.14564594215,446.50763144636,459.88868900496,476.27480687611,490.54793493862,502.32108537715,523.2511306012],description:"Fokker's 22-tone periodicity block of 2048/2025 & 2109375/2097152 = semicomma"},fokker_31:{frequencies:[261.6255653006,265.7783520514,275.93321340298,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,315.35224388912,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,406.97310157871,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,482.88312345521,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone just system"},fokker_31a:{frequencies:[261.6255653006,269.10058145205,272.52663052146,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,311.45900631024,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,412.06026534844,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,476.92160341255,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone first alternate septimal tuning"},fokker_31b:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,480.53675259294,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone second alternate septimal tuning"},fokker_31c:{frequencies:[261.6255653006,269.46602871384,272.52663052146,279.06726965397,287.4304306281,294.32876096318,297.67175429757,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,344.91651675372,348.83408706747,359.28803828513,367.91095120397,372.08969287196,383.2405741708,392.4383479509,396.89567239676,408.78994578219,418.60090448096,431.14564594215,436.04260883433,446.50763144636,459.88868900496,465.11211608996,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Fokker's 31-tone periodicity block of 81/80 & 2109375/2097152 = semicomma"},fokker_31d:{frequencies:[261.6255653006,266.13928761861,272.52663052146,279.06726965397,287.4304306281,294.32876096318,299.40669857094,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,359.28803828513,367.91095120397,376.74081403286,383.2405741708,392.4383479509,399.20893142792,408.78994578219,418.60090448096,425.82286018978,436.04260883433,443.56547936435,459.88868900496,470.92601754108,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Fokker's 31-tone periodicity block of 81/80 & W\xEF\xBF\xBDrschmidt's comma"},fokker_31d2:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,290.69507255622,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,425.82286018978,436.04260883433,446.50763144636,454.2110508691,465.11211608996,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Reduced version of fokker_31d by Prooijen expressibility"},fokker_41:{frequencies:[261.6255653006,264.89588486686,271.31540105247,274.70684356563,280.31310567921,283.8170195002,290.69507255622,294.32876096318,300.33547037059,305.22982618403,311.45900631024,313.95067836072,321.55899383997,325.57848126297,329.64821227876,336.37572681506,341.85740532612,348.83408706747,353.19451315581,361.75386806997,366.27579142084,373.75080757229,378.42269266694,387.59343007496,392.4383479509,400.44729382745,406.97310157871,415.27867508032,420.46965851882,425.72552925031,436.04260883433,439.53094970501,448.50096908674,455.80987376816,465.11211608996,470.92601754108,482.33849075995,488.36772189445,498.33441009638,504.56359022259,516.79124009995,523.2511306012],description:"Fokker's 7-limit supracomma per.bl. 10976/10935 & 225/224 & 496125/262144"},fokker_41a:{frequencies:[261.6255653006,264.59711493117,272.83435407277,275.93321340298,279.06726965397,287.4304306281,291.02331101095,294.32876096318,297.67175429757,306.59245933664,310.42486507835,313.95067836072,323.35923445661,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.77913876369,367.91095120397,372.08969287196,376.315896791,388.03108134794,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,431.14564594215,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,485.03885168492,490.54793493862,496.11959049595,502.32108537715,517.37477513058,523.2511306012],description:"Fokker's 41-tone periodicity block of schisma & 34171875/33554432"},fokker_41b:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,287.4304306281,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.42486507835,313.95067836072,323.35923445661,327.03195662575,331.11985608357,340.65828815182,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,383.2405741708,388.03108134794,392.4383479509,397.34382730029,408.78994578219,413.89982010446,418.60090448096,431.14564594215,436.04260883433,441.49314144476,454.2110508691,459.88868900496,465.11211608996,470.92601754108,485.03885168492,490.54793493862,496.67978412536,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 41-tone periodicity block of schisma & 3125/3072"},fokker_53:{frequencies:[261.6255653006,263.718569823,268.26840191956,272.52663052146,274.70684356563,279.06726965397,282.55561052465,286.15296204753,290.69507255622,294.32876096318,299.00064605783,300.46061014991,305.22982618403,309.04519901133,313.95067836072,317.87506184023,321.92208230347,327.03195662575,329.64821227876,334.88072358477,340.65828815182,343.38355445704,348.83408706747,353.19451315581,357.69120255941,360.55273217989,366.27579142084,373.75080757229,376.74081403286,381.53728273004,386.30649876417,392.4383479509,398.6675280771,400.61414686654,410.05802887931,412.06026534844,418.60090448096,423.83341578697,429.2294430713,436.04260883433,439.53094970501,448.50096908674,450.69091522486,457.84473927605,465.11211608996,470.92601754108,476.92160341255,480.73697623985,490.54793493862,498.33441009638,502.32108537715,508.71637697339,515.07533168556,523.2511306012],description:"Fokker's 53-tone system, degree 37 has alternatives"},fokker_53a:{frequencies:[261.6255653006,264.89588486686,269.46602871384,272.52663052146,275.93321340298,279.38237857051,283.88190679319,287.4304306281,290.69507255622,294.32876096318,298.00787047521,302.80736724606,306.59245933664,310.42486507835,313.95067836072,319.36714514233,323.35923445661,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,359.28803828513,363.36884069528,367.91095120397,372.50983809402,378.50920905758,383.2405741708,388.03108134794,392.4383479509,397.34382730029,403.74315632809,408.78994578219,413.89982010446,418.60090448096,425.82286018978,431.14564594215,436.04260883433,441.49314144476,447.01180571282,454.2110508691,459.88868900496,465.63729761752,470.92601754108,479.0507177135,484.4917875937,490.54793493862,496.67978412536,504.67894541011,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 53-tone periodicity block of schisma & kleisma"},fokker_53b:{frequencies:[261.6255653006,264.59711493117,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.51653791741,323.35923445661,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,388.03108134794,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.89982010446,418.60090448096,423.35538388988,431.14564594215,436.04260883433,441.49314144476,446.50763144636,451.5790761492,459.88868900496,465.11211608996,470.92601754108,476.27480687611,485.03885168492,490.54793493862,496.11959049595,502.32108537715,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 53-tone periodicity block of schisma & 2109375/2097152"},fokker_av:{frequencies:[261.6255653006,267.53238172257,273.57240048543,279.74894499065,286.06477437084,292.52336378682,299.12777114678,305.88111195206,312.78710209553,319.84901131344,327.07017092477,334.45455423048,342.00545991849,349.72704272607,357.62295854304,365.69693211485,373.95340598657,382.39606841888,391.02956482064,399.85798283974,408.88548711149,418.11704484248,427.5567798744,437.20988623572,447.08093432269,457.17458061119,467.49637893146,478.0512162812,488.84407170063,499.88088374606,511.16658268681,522.70737825664],description:"Fokker's suggestion for a shrinked octave by averaging approximations"},fokker_bosch:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,348.83408706747,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'Scale of "Naar Den Bosch toe", genus diatonicum cum septimis. 1/1=D'},fokker_sr:{frequencies:[261.6255653006,269.10058145205,279.06726965397,287.04062021552,296.75121990114,305.22982618403,315.35224388912,325.57848126297,336.37572681506,347.28371334717,358.80077526939,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,434.10464168396,446.50763144636,461.31528248922,474.80195184183,490.54793493862,506.45541529795,523.2511306012],description:"Fokker's 7-limit sruti scale, KNAW B72, 1969"},fokker_sr2:{frequencies:[261.6255653006,270.30192333353,279.06726965397,288.32205155576,296.75121990114,306.59245933664,315.35224388912,327.03195662575,336.37572681506,348.83408706747,358.80077526939,372.08969287196,381.53728273004,394.1903048614,406.97310157871,420.46965851882,434.10464168396,448.50096908674,461.31528248922,476.92160341255,490.54793493862,508.71637697339,523.2511306012],description:"Fokker's complementary 7-limit sruti scale, KNAW B72, 1969"},fokker_sra:{frequencies:[261.6255653006,269.76956886185,278.7476190342,287.42460593148,296.37169586701,305.59729331129,315.11006948887,325.59707150921,336.43308557971,346.90573279191,357.7043774887,368.83916960349,381.11429755927,392.97780480816,406.05627704035,419.57000893919,433.5334812886,447.02871783796,460.94403787128,475.29252052682,490.08765232515,506.39798251136,523.2511306012],description:"Two-step approximation 9-13 to Fokker's 7-limit sruti scale"},fokker_srb:{frequencies:[261.6255653006,269.31534001393,278.64197723942,286.83190328195,296.76515515861,305.48776291796,316.06708432391,325.35701999957,336.62443200122,346.51859521924,358.51885197895,369.0565423573,381.83730669135,393.06038214356,406.67242132093,418.62545783369,433.12283887627,445.85331391262,461.29362042034,474.85209942927,491.29666030217,505.73699464332,523.2511306012],description:"Two-step maximally even approximation 11-11 to Fokker's 7-limit sruti scale"},fokker_uv:{frequencies:[220,220.05029721079,220.09166666667,220.14198483463,220.15668113546,220.24841308594,220.29876708984,220.3905582428,220.5253936656,220.68244897959,220.7744,220.82487425697,220.98214285714,221.03266460905,221.0236875,221.07421875,221.28224372864,221.41762468656,221.66763848397,221.71831695641,221.76,221.81069958848,222.01040039062,222.06115722656,222.40609622534,222.44790857143,222.4987654321,222.65722615577,222.75,222.80092592593,223.00151824951,223.05250167847,223.14544022083,223.18896568405,223.23999196793,223.44097959184,223.49206349206,223.58518518519,223.79557291667,223.88882107205,224.18534499514,224.23659907493,224.33003099121,224.48979591837,224.58333333333,224.79466029576,224.83692169189,224.88832473755,225.18617242815,225.28,225.33150434385,225.49198250729,225.5859375,225.67993164062,225.9788277551,226.03049186753,226.28571428571,226.4317558299,226.68743133545,227.08224,227.1341563786,227.29591836735,227.390625,227.44261188272,228.096,228.14814814815,229.16666666667,231,232.03125,233.6237037037,233.84353741497],description:"Table of Unison Vectors, Microsons and Minisons, from article KNAW, 1969"},foote:{frequencies:[261.6255653006,276.70272600503,293.15632631094,310.58830860439,328.48713220126,349.43001184052,368.92737853004,391.76907592069,414.58565256441,438.98455767189,465.89457252293,492.17459484008,523.2511306012],description:"Ed Foote, piano temperament. TL 9 Jun 1999, almost equal to Coleman"},forster:{frequencies:[261.6255653006,279.06726965397,283.42769574232,287.78812183066,299.00064605783,309.19384990071,319.76457981184,327.03195662575,336.37572681506,340.11323489078,343.38355445704,353.19451315581,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,387.59343007496,392.4383479509,398.6675280771,402.50086969323,406.97310157871,418.60090448096,428.11456140098,441.49314144476,442.75095666255,448.50096908674,457.84473927605,465.11211608996,483.00104363188,490.54793493862,507.3950357345,523.2511306012],description:"Cris Forster's Chrysalis tuning, XH 7+8"},fortuna11:{frequencies:[261.6255653006,274.70684356563,299.00064605783,305.22982618403,332.97799220076,343.38355445704,373.75080757229,398.6675280771,411.12588832951,448.50096908674,457.84473927605,498.33441009638,523.2511306012],description:"11-limit scale from Clem Fortuna"},fortuna_a1:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,320.24370022528,349.22823143301,369.99442271164,391.99543598175,415.30469757995,440,466.16376151809,479.82340237272,523.2511306012],description:"Clem Fortuna, Arabic mode of 24-tET, try C or G major, superset of Basandida, trivalent"},fortuna_a2:{frequencies:[261.6255653006,277.18263097687,285.30470202322,311.12698372208,329.62755691287,349.22823143301,369.99442271164,391.99543598175,428.11456140098,440,466.16376151809,493.88330125613,523.2511306012],description:"Clem Fortuna, Arabic mode of 24-tET, try C or F minor"},fortuna_bag:{frequencies:[261.6255653006,266.17557513191,291.58269109838,303.42373253797,318.96815495553,348.01136516401,359.18086083642,388.55281975337,398.8194592997,432.92801877123,462.35552488468,479.64686971777,523.2511306012],description:"Bagpipe tuning from Fortuna, try key of G with F natural"},fortuna_eth:{frequencies:[261.6255653006,280.31310567921,288.69027895239,305.7551787248,323.91736656265,346.02090894595,368.95913055213,385.17097113699,414.24047839262,422.62591317789,469.58434797544,484.00729580611,523.2511306012],description:"Ethiopian Tunings from Fortuna"},fortuna_sheng:{frequencies:[261.6255653006,275.29257244317,286.94416839421,312.81317590289,320.2657782128,348.83408706747,367.19377586049,382.62738925213,417.81993264424,433.74764773521,467.75479856774,484.77678276288,523.2511306012],description:"Sheng scale on naturals starting on d, from Fortuna"},"francis_r12-14p":{frequencies:[261.6255653006,277.2273508585,293.19140419912,311.27759533081,328.56574776048,349.51003591412,369.636465861,391.67937618637,415.43871422078,438.93656251816,466.46466724696,492.84862139436,523.2511306012],description:"Bach WTC theoretical temperament, 1/14 Pyth. comma, Cornet-ton"},"francis_r12-2":{frequencies:[261.6255653006,277.2831963903,293.15801965318,311.35818177599,328.6319369554,349.45847225471,369.71092870521,391.50168688506,415.45657533448,438.80025285527,466.56783666625,492.94847466277,523.2511306012],description:"J. Charles Francis, Bach WTC temperament R12-2, fifths beat ratios 0, 1, 2. C=279.331 Cornet-ton"},"francis_r2-1":{frequencies:[261.6255653006,276.41735337657,293.40958958006,310.96959408698,328.77281747949,349.18425877583,368.55655650762,391.91325216238,414.62612565656,439.06418506387,465.92902003736,492.10921220871,523.2511306012],description:"J. Charles Francis, Bach WTC temperament R2-1, fifths beat ratios 0, 1, 2. C=249.072 Cammerton"},"francis_r2-14p":{frequencies:[261.6255653006,276.42350693124,293.47533146651,310.97644498676,328.88393162803,349.17189700163,368.56467609256,392.05867944486,414.6352601896,439.36162975058,466.01338145177,492.37181018521,523.2511306012],description:"Bach WTC theoretical temperament, 1/14 Pyth. comma, Cammerton"},francis_seal:{frequencies:[261.6255653006,275.89934348748,293.01242796531,310.38672525582,327.92787107993,349.18506556371,367.865749003,391.38524198103,413.84896721463,437.93907827641,465.58008765101,490.83740312498,523.2511306012],description:"J. Charles Francis, Bach tuning interpretion as beats/sec. from seal"},francis_suppig:{frequencies:[261.6255653006,276.33536163417,293.13939342657,310.64213412049,328.58201670643,349.47038191026,368.45885450371,391.47500324588,414.51381656966,438.73106346722,465.97531289569,491.91879926026,523.2511306012],description:"J. Charles Francis, Suppig Calculus musicus, 5ths beat ratios 0, 1, 2."},efg333:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,523.2511306012],description:"Genus primum [333]"},efg333333333337:{frequencies:[261.6255653006,275.01702890535,279.38237857051,289.72987407313,294.32876096318,309.39415751852,314.30517589183,325.94610833227,331.11985608357,343.38355445704,353.59332287831,366.6893718738,372.50983809402,386.30649876417,392.4383479509,412.52554335802,419.07356785577,434.59481110969,441.49314144476,457.84473927605,471.45776383774,488.9191624984,496.67978412536,515.07533168556,523.2511306012],description:"Genus [333333333337]"},efg333333355:{frequencies:[261.6255653006,264.89588486686,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.42486507835,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,397.34382730029,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Genus [333333355]"},efg33335:{frequencies:[261.6255653006,275.93321340298,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Genus [33335]"},efg3333555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Genus [3333555]"},efg33335555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Genus bis-ultra-chromaticum [33335555]"},efg333355577:{frequencies:[261.6255653006,267.07609791103,268.26840191956,272.52663052146,274.70684356563,278.20426865732,279.06726965397,281.68182201554,284.8811711051,286.15296204753,290.69507255622,294.32876096318,300.46061014991,305.22982618403,306.59245933664,312.97980223949,313.95067836072,317.94773560837,320.49131749323,321.92208230347,325.57848126297,327.03195662575,333.84512238879,343.38355445704,348.83408706747,352.10227751942,356.10146388137,357.69120255941,360.55273217989,363.36884069528,366.27579142084,367.91095120397,372.08969287196,375.57576268738,381.53728273004,392.4383479509,400.61414686654,402.40260287934,406.97310157871,408.78994578219,412.06026534844,417.30640298598,418.60090448096,427.32175665765,429.2294430713,436.04260883433,445.12682985172,450.69091522486,457.84473927605,459.88868900496,465.11211608996,469.46970335923,470.92601754108,476.92160341255,480.73697623985,488.36772189445,490.54793493862,500.76768358318,508.71637697339,515.07533168556,523.2511306012],description:"Genus [333355577]"},efg33337:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,386.30649876417,392.4383479509,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"Genus [33337]"},efg3335:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Genus diatonicum veterum correctum [3335]"},efg33355:{frequencies:[261.6255653006,272.52663052146,290.69507255622,310.07474405997,327.03195662575,348.83408706747,363.36884069528,387.59343007496,408.78994578219,436.04260883433,465.11211608996,484.4917875937,523.2511306012],description:"Genus diatonico-chromaticum hodiernum correctum [33355]"},efg333555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Genus diatonico-hyperchromaticum [333555]"},efg33355555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,287.4304306281,294.32876096318,306.59245933664,313.95067836072,319.36714514233,327.03195662575,340.65828815182,348.83408706747,359.28803828513,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,425.82286018978,436.04260883433,459.88868900496,470.92601754108,479.0507177135,490.54793493862,510.98743222773,523.2511306012],description:"Genus [33355555]"},efg333555777:{frequencies:[261.6255653006,262.79353657426,267.07609791103,268.26840191956,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,281.68182201554,286.15296204753,294.32876096318,299.00064605783,300.46061014991,305.22982618403,306.59245933664,311.45900631024,312.97980223949,313.95067836072,318.93402246168,320.49131749323,321.92208230347,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,350.39138209902,352.10227751942,357.69120255941,358.80077526939,360.55273217989,366.27579142084,367.91095120397,373.75080757229,375.57576268738,381.53728273004,392.4383479509,398.6675280771,400.61414686654,402.40260287934,408.78994578219,412.06026534844,417.30640298598,418.60090448096,420.46965851882,427.32175665765,429.2294430713,436.04260883433,448.50096908674,450.69091522486,457.84473927605,459.88868900496,467.18850946536,469.46970335923,470.92601754108,476.92160341255,478.40103369253,480.73697623985,488.36772189445,490.54793493862,498.33441009638,500.76768358318,515.07533168556,523.2511306012],description:"Genus [333555777]"},efg333557:{frequencies:[261.6255653006,265.7783520514,279.06726965397,280.31310567921,290.69507255622,299.00064605783,313.95067836072,318.93402246168,327.03195662575,332.22294006425,348.83408706747,358.80077526939,372.08969287196,373.75080757229,392.4383479509,398.6675280771,418.60090448096,425.24536328225,436.04260883433,448.50096908674,465.11211608996,478.40103369253,490.54793493862,498.33441009638,523.2511306012],description:"Genus diatonico-enharmonicum [333557]"},efg33357:{frequencies:[261.6255653006,274.70684356563,279.06726965397,305.22982618403,313.95067836072,325.57848126297,343.38355445704,348.83408706747,366.27579142084,372.08969287196,392.4383479509,406.97310157871,418.60090448096,457.84473927605,465.11211608996,488.36772189445,523.2511306012],description:"Genus diatonico-enharmonicum [33357]"},efg3335711:{frequencies:[261.6255653006,265.58571790036,269.80136421624,275.93321340298,286.15296204753,294.32876096318,295.09524211152,303.52653474327,314.76825825228,321.92208230347,327.03195662575,331.98214737546,337.2517052703,343.38355445704,354.11429053382,359.73515228832,367.91095120397,379.40816842909,386.30649876417,392.4383479509,393.46032281536,404.70204632437,429.2294430713,441.49314144476,442.64286316727,449.66894036041,457.84473927605,472.15238737843,482.88312345521,490.54793493862,505.87755790546,515.07533168556,523.2511306012],description:"Genus [3 3 3 5 7 11], expanded hexany 1 3 5 7 9 11"},efg333577:{frequencies:[261.6255653006,267.07609791103,281.68182201554,286.15296204753,294.32876096318,300.46061014991,305.22982618403,321.92208230347,327.03195662575,333.84512238879,343.38355445704,348.83408706747,367.91095120397,375.57576268738,381.53728273004,392.4383479509,400.61414686654,429.2294430713,436.04260883433,450.69091522486,457.84473927605,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:"Genus [333577]"},efg3337:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,392.4383479509,457.84473927605,515.07533168556,523.2511306012],description:"Genus [3337]"},efg33377:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,515.07533168556,523.2511306012],description:"Genus [33377] Bi-enharmonicum simplex"},efg335:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Genus secundum [335]"},efg3355:{frequencies:[261.6255653006,279.06726965397,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Genus chromaticum veterum correctum [3355]"},efg33555:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,367.91095120397,392.4383479509,408.78994578219,418.60090448096,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"Genus bichromaticum [33555]"},efg335555577:{frequencies:[261.6255653006,267.07609791103,268.26840191956,272.52663052146,274.70684356563,279.06726965397,286.15296204753,293.02063313667,300.46061014991,305.22982618403,306.59245933664,312.97980223949,313.95067836072,320.49131749323,327.03195662575,333.84512238879,334.88072358477,341.85740532612,343.38355445704,348.83408706747,357.69120255941,366.27579142084,375.57576268738,381.53728273004,384.58958099188,390.69417751556,392.4383479509,400.61414686654,408.78994578219,417.30640298598,418.60090448096,427.32175665765,429.2294430713,436.04260883433,439.53094970501,446.50763144636,457.84473927605,469.46970335923,476.92160341255,480.73697623985,488.36772189445,490.54793493862,500.76768358318,502.32108537715,512.78610798918,523.2511306012],description:"Genus [335555577]"},efg33557:{frequencies:[261.6255653006,274.70684356563,279.06726965397,286.15296204753,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,418.60090448096,429.2294430713,436.04260883433,457.84473927605,488.36772189445,490.54793493862,523.2511306012],description:"Genus chromatico-enharmonicum [33557]"},efg335577:{frequencies:[261.6255653006,274.70684356563,279.06726965397,280.31310567921,286.15296204753,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,478.40103369253,488.36772189445,490.54793493862,498.33441009638,523.2511306012],description:"Genus chromaticum septimis triplex [335577]"},efg3357:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,343.38355445704,348.83408706747,381.53728273004,392.4383479509,429.2294430713,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Genus enharmonicum vocale [3357]"},efg33577:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,305.22982618403,327.03195662575,343.38355445704,348.83408706747,373.75080757229,381.53728273004,392.4383479509,398.6675280771,429.2294430713,436.04260883433,448.50096908674,457.84473927605,490.54793493862,498.33441009638,523.2511306012],description:"Genus [33577]"},efg337:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,457.84473927605,515.07533168556,523.2511306012],description:"Genus quintum [337]"},efg3377:{frequencies:[261.6255653006,299.00064605783,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,523.2511306012],description:"Genus [3377]"},efg33777:{frequencies:[261.6255653006,267.07609791103,299.00064605783,300.46061014991,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [33777]"},efg33777a:{frequencies:[261.6255653006,267.07609791103,299.00064605783,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,523.2511306012],description:"Genus [33777] with comma discarded which disappears in 31-tET"},efg355:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Genus tertium [355]"},efg3555:{frequencies:[261.6255653006,306.59245933664,327.03195662575,383.2405741708,392.4383479509,408.78994578219,490.54793493862,510.98743222773,523.2511306012],description:"Genus enharmonicum veterum correctum [3555]"},efg35555:{frequencies:[261.6255653006,306.59245933664,313.95067836072,327.03195662575,334.88072358477,392.4383479509,408.78994578219,418.60090448096,490.54793493862,502.32108537715,523.2511306012],description:"Genus [35555]"},efg35557:{frequencies:[261.6255653006,268.26840191956,274.70684356563,286.15296204753,306.59245933664,313.95067836072,327.03195662575,343.38355445704,357.69120255941,366.27579142084,392.4383479509,408.78994578219,418.60090448096,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus [35557]"},efg3557:{frequencies:[261.6255653006,274.70684356563,286.15296204753,313.95067836072,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus enharmonicum instrumentale [3557]"},efg35577:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,358.80077526939,366.27579142084,373.75080757229,392.4383479509,418.60090448096,429.2294430713,448.50096908674,457.84473927605,478.40103369253,490.54793493862,523.2511306012],description:"Genus [35577]"},efg357:{frequencies:[261.6255653006,286.15296204753,327.03195662575,343.38355445704,392.4383479509,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus sextum [357] & 7-limit Octony, see ch.6 p.118"},efg35711:{frequencies:[261.6255653006,269.80136421624,286.15296204753,295.09524211152,314.76825825228,327.03195662575,337.2517052703,343.38355445704,359.73515228832,392.4383479509,393.46032281536,429.2294430713,449.66894036041,457.84473927605,472.15238737843,490.54793493862,523.2511306012],description:"Genus [3 5 7 11]"},efg3571113:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.01701053212,278.99913799634,286.15296204753,292.28481123426,295.09524211152,314.76825825228,318.85615771011,319.68651228748,327.03195662575,337.2517052703,343.38355445704,348.74892249543,359.73515228832,365.35601404283,371.99885066179,383.62381474497,392.4383479509,393.46032281536,398.57019713763,425.14154361347,429.2294430713,438.4272168514,449.66894036041,457.84473927605,464.99856332724,472.15238737843,479.52976843121,490.54793493862,511.49841965996,523.2511306012],description:"Genus [3 5 7 11 13]"},efg3577:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,327.03195662575,343.38355445704,373.75080757229,392.4383479509,429.2294430713,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Genus [3577]"},efg35777:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,300.46061014991,327.03195662575,343.38355445704,373.75080757229,375.57576268738,392.4383479509,400.61414686654,429.2294430713,448.50096908674,457.84473927605,490.54793493862,500.76768358318,523.2511306012],description:"Genus [35777]"},efg35777a:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,327.03195662575,343.38355445704,373.75080757229,392.4383479509,400.61414686654,429.2294430713,448.50096908674,457.84473927605,490.54793493862,500.76768358318,523.2511306012],description:"Genus [35777] with comma discarded which disappears in 31-tET"},efg377:{frequencies:[261.6255653006,300.46061014991,343.38355445704,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Genus octavum [377]"},efg3777:{frequencies:[261.6255653006,262.90303388117,300.46061014991,343.38355445704,350.53737850823,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Genus [3777]"},efg37777:{frequencies:[261.6255653006,262.90303388117,299.00064605783,300.46061014991,343.38355445704,350.53737850823,392.4383479509,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [37777]"},efg37777a:{frequencies:[261.6255653006,299.00064605783,343.38355445704,350.53737850823,392.4383479509,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [37777] with comma discarded that disappears in 31-tET"},efg555:{frequencies:[261.6255653006,327.03195662575,408.78994578219,510.98743222773,523.2511306012],description:"Genus quartum [555]"},efg55557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,366.27579142084,408.78994578219,418.60090448096,447.11400319927,457.84473927605,510.98743222773,523.2511306012],description:"Genus [55557]"},efg5557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,408.78994578219,447.11400319927,457.84473927605,510.98743222773,523.2511306012],description:"Genus [5557]"},efg55577:{frequencies:[261.6255653006,286.15296204753,291.99281841585,299.00064605783,327.03195662575,357.69120255941,373.75080757229,408.78994578219,447.11400319927,457.84473927605,467.18850946536,510.98743222773,523.2511306012],description:"Genus [55577]"},efg557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,366.27579142084,418.60090448096,457.84473927605,523.2511306012],description:"Genus septimum [557]"},efg5577:{frequencies:[261.6255653006,293.02063313667,320.49131749323,334.88072358477,366.27579142084,400.61414686654,418.60090448096,457.84473927605,512.78610798918,523.2511306012],description:"Genus [5577]"},efg55777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,320.49131749323,327.03195662575,366.27579142084,373.75080757229,400.61414686654,418.60090448096,457.84473927605,478.40103369253,500.76768358318,523.2511306012],description:"Genus [55777]"},efg577:{frequencies:[261.6255653006,286.15296204753,327.03195662575,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Genus nonum [577]"},efg5777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Genus [5777]"},efg57777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,350.53737850823,373.75080757229,400.61414686654,438.17172313528,457.84473927605,500.76768358318,523.2511306012],description:"Genus [57777]"},efg777:{frequencies:[261.6255653006,350.53737850823,400.61414686654,457.84473927605,523.2511306012],description:"Genus decimum [777]"},efg77777:{frequencies:[261.6255653006,299.00064605783,341.71502406609,350.53737850823,400.61414686654,457.84473927605,523.2511306012],description:"Genus [77777]"},eikohole1:{frequencies:[261.6255653006,277.4816601673,305.22982618403,332.97799220076,436.04260883433,475.68284600109,523.2511306012],description:"First eikohole ball <6 9 13 17 20|-epimorphic"},eikohole2:{frequencies:[261.6255653006,266.38239376061,274.70684356563,285.40970760065,299.68019298069,313.95067836072,332.97799220076,348.83408706747,366.27579142084,380.54627680087,392.4383479509,399.57359064092,418.60090448096,428.11456140098,443.97065626768,470.92601754108,488.36772189445,499.46698830115,523.2511306012],description:"Second eikohole ball"},eikohole4:{frequencies:[261.6255653006,274.70684356563,279.79400733536,287.78812183066,305.22982618403,313.95067836072,319.76457981184,335.75280880244,348.83408706747,359.73515228832,366.27579142084,373.05867644715,383.71749577421,392.4383479509,406.97310157871,418.60090448096,419.69101100305,431.68218274599,447.67041173658,457.84473927605,470.92601754108,479.64686971777,488.36772189445,503.62921320365,523.2511306012],description:"Fourth eikohole ball"},eikohole5:{frequencies:[261.6255653006,266.38239376061,274.70684356563,279.06726965397,285.40970760065,287.78812183066,294.32876096318,295.98043751179,299.68019298069,305.22982618403,313.95067836072,321.08592105074,325.57848126297,332.97799220076,342.49164912079,348.83408706747,353.19451315581,355.17652501415,363.24871876447,366.27579142084,374.60024122586,380.54627680087,392.4383479509,399.57359064092,406.97310157871,412.06026534844,418.60090448096,428.11456140098,439.53094970501,443.97065626768,448.50096908674,449.52028947103,456.65553216105,457.84473927605,465.11211608996,466.16918908107,470.92601754108,475.68284600109,488.36772189445,499.46698830115,507.3950357345,513.73747368118,523.2511306012],description:"Fifth eikohole ball"},eikohole6:{frequencies:[261.6255653006,266.38239376061,272.43653907335,274.70684356563,279.06726965397,285.40970760065,287.78812183066,293.02063313667,294.32876096318,295.98043751179,299.00064605783,299.68019298069,305.22982618403,310.77945938738,313.95067836072,317.12189733406,321.08592105074,325.57848126297,329.64821227876,332.97799220076,336.37572681506,342.49164912079,348.83408706747,349.6268918108,353.19451315581,355.17652501415,356.76213450082,363.24871876447,366.27579142084,374.60024122586,380.54627680087,383.71749577421,392.4383479509,399.57359064092,406.97310157871,412.06026534844,418.60090448096,428.11456140098,431.68218274599,439.53094970501,443.97065626768,448.50096908674,449.52028947103,456.65553216105,457.84473927605,465.11211608996,466.16918908107,470.92601754108,475.68284600109,484.33162501929,488.36772189445,499.46698830115,507.3950357345,513.73747368118,523.2511306012],description:"Sixth eikohole ball"},eikosany:{frequencies:[261.6255653006,269.80136421624,274.70684356563,287.78812183066,294.32876096318,305.22982618403,323.76163705949,335.75280880244,343.38355445704,359.73515228832,366.27579142084,377.72190990274,392.4383479509,412.06026534844,419.69101100305,431.68218274599,457.84473927605,470.92601754108,479.64686971777,503.62921320365,523.2511306012],description:"3)6 1.3.5.7.9.11 Eikosany (1.3.5 tonic)"},ekring1:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,353.19451315581,367.91095120397,376.74081403286,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Single-tie circular mirroring of 3:4:5"},ekring2:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,384.42940207435,400.61414686654,448.50096908674,457.84473927605,504.56359022259,515.07533168556,523.2511306012],description:"Single-tie circular mirroring of 6:7:8"},ekring3:{frequencies:[261.6255653006,266.96486255163,299.00064605783,305.10270005901,327.03195662575,333.70607818954,341.71502406609,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,523.2511306012],description:"Single-tie circular mirroring of 4:5:7"},ekring4:{frequencies:[261.6255653006,279.06726965397,313.95067836072,334.88072358477,348.83408706747,376.74081403286,392.4383479509,401.85686830172,436.04260883433,446.50763144636,465.11211608996,502.32108537715,523.2511306012],description:"Single-tie circular mirroring of 4:5:6"},ekring5:{frequencies:[261.6255653006,263.718569823,269.10058145205,305.22982618403,322.92069774245,366.27579142084,373.75080757229,376.74081403286,384.42940207435,439.53094970501,448.50096908674,512.78610798918,523.2511306012],description:"Single-tie circular mirroring of 3:5:7"},ekring5bp:{frequencies:[261.6255653006,282.55561052465,336.37572681506,363.28578496026,366.27579142084,395.57785473451,432.48307733364,512.78610798918,560.62621135843,605.4763082671,610.45965236807,659.29642455751,784.8766959018],description:"Single-tie BP circular mirroring of 3:5:7"},ekring6:{frequencies:[261.6255653006,288.32205155576,299.00064605783,336.37572681506,348.83408706747,384.42940207435,392.4383479509,406.97310157871,432.48307733364,465.11211608996,494.26637409559,512.57253609913,523.2511306012],description:"Single-tie circular mirroring of 6:7:9"},ekring7:{frequencies:[261.6255653006,266.96486255163,290.69507255622,296.62762505737,322.99452506247,336.37572681506,343.24053756638,406.97310157871,415.27867508032,432.48307733364,470.92601754108,480.53675259294,523.2511306012],description:"Single-tie circular mirroring of 5:7:9"},ekring7bp:{frequencies:[261.6255653006,311.45900631024,336.37572681506,400.44729382745,432.48307733364,436.04260883433,470.92601754108,514.86080634958,610.45965236807,667.41215637908,720.80512888941,726.73768139056,784.8766959018],description:"Single-tie BP circular mirroring of 5:7:9"},ellis:{frequencies:[261.6255653006,277.10015133873,293.57875905702,310.98767008297,329.52610437773,349.11112716429,369.96685849926,391.93834696391,415.15022554673,439.86813926913,465.98150356841,493.78915701915,523.2511306012],description:"Alexander John Ellis' imitation equal temperament (1875)"},ellis_24:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,294.32876096318,298.00787047521,306.59245933664,310.42486507835,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.50983809402,392.4383479509,397.34382730029,408.78994578219,413.89982010446,436.04260883433,441.49314144476,459.88868900496,465.63729761752,490.54793493862,496.67978412536,523.2511306012],description:"Ellis, from p.421 of Helmholtz, 24 tones of JI for 1 manual harmonium"},ellis_eb:{frequencies:[261.6255653006,277.21587437848,293.6537610003,311.19285946782,329.68548178616,349.2169654334,370.02116610622,391.93834696391,415.32381240723,439.98064151826,466.28928903228,494.02822100775,523.2511306012],description:"Ellis' new equal beating temperament for pianofortes (1885)"},ellis_harm:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,353.19451315581,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ellis's Just Harmonium"},ellis_mteb:{frequencies:[261.6255653006,273.31920907322,292.34465012884,313.05587813274,326.9349299255,350.18846153218,365.78692922515,391.15004079048,408.78346942429,437.23842445073,468.2723780569,489.17031487243,523.2511306012],description:"Ellis' equal beating meantone tuning (1885)"},enh14:{frequencies:[261.6255653006,267.70988077271,274.08392555301,348.83408706747,392.4383479509,401.56482115906,411.12588832951,523.2511306012],description:"14/11 Enharmonic"},enh15:{frequencies:[261.6255653006,270.64713651786,280.31310567921,356.76213450082,392.4383479509,402.50086969323,413.09299784305,523.2511306012],description:"Tonos-15 Enharmonic"},enh15_inv:{frequencies:[261.6255653006,331.39238271409,340.11323489078,348.83408706747,383.71749577421,488.36772189445,505.80942624783,523.2511306012],description:"Inverted Enharmonic Tonos-15 Harmonia"},enh15_inv2:{frequencies:[261.6255653006,270.34641747729,279.06726965397,348.83408706747,383.71749577421,392.4383479509,401.15920012759,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-15"},enh17:{frequencies:[261.6255653006,269.55361273395,277.97716313189,370.63621750918,404.33041910093,413.73345210327,423.58424858192,523.2511306012],description:"Tonos-17 Enharmonic"},enh17_con:{frequencies:[261.6255653006,269.55361273395,277.97716313189,370.63621750918,378.52209447746,386.75083566176,494.18162334558,523.2511306012],description:"Conjunct Tonos-17 Enharmonic"},enh19:{frequencies:[261.6255653006,268.69652652494,276.16031892841,355.06326719367,382.37582620857,389.87339142835,397.67085925691,523.2511306012],description:"Tonos-19 Enharmonic"},enh19_con:{frequencies:[261.6255653006,268.69652652494,276.16031892841,355.06326719367,361.51896296083,368.21375857121,451.89870370104,523.2511306012],description:"Conjunct Tonos-19 Enharmonic"},enh2:{frequencies:[261.6255653006,266.71168334607,277.18263097687,349.22823143301,391.99543598175,399.61600264311,415.30469757995,523.2511306012],description:"1:2 Enharmonic. New genus 2 + 4 + 24 parts"},enh21:{frequencies:[261.6255653006,268.0066766494,274.70684356563,343.38355445704,392.4383479509,399.57359064092,406.97310157871,523.2511306012],description:"Tonos-21 Enharmonic"},enh21_inv:{frequencies:[261.6255653006,336.37572681506,342.60490694126,348.83408706747,398.6675280771,498.33441009638,510.79277034879,523.2511306012],description:"Inverted Enharmonic Tonos-21 Harmonia"},enh21_inv2:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,398.6675280771,411.12588832951,423.58424858192,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-21"},enh23:{frequencies:[261.6255653006,267.43946675172,273.51763645063,334.29933343966,376.08675011961,388.21858076863,401.15920012759,523.2511306012],description:"Tonos-23 Enharmonic"},enh23_con:{frequencies:[261.6255653006,267.43946675172,273.51763645063,334.29933343966,343.8507429665,353.96400011258,462.87600014722,523.2511306012],description:"Conjunct Tonos-23 Enharmonic"},enh25:{frequencies:[261.6255653006,269.71707762948,278.32506946872,363.36884069528,408.78994578219,421.97671822677,436.04260883433,523.2511306012],description:"Tonos-25 Enharmonic"},enh25_con:{frequencies:[261.6255653006,269.71707762948,278.32506946872,363.36884069528,373.75080757229,384.74347838324,503.12608711654,523.2511306012],description:"Conjunct Tonos-25 Enharmonic"},enh27:{frequencies:[261.6255653006,269.10058145205,277.01530443593,353.19451315581,392.4383479509,403.65087217807,415.52295665389,523.2511306012],description:"Tonos-27 Enharmonic"},enh27_inv:{frequencies:[261.6255653006,329.45441556372,339.14425131559,348.83408706747,387.59343007496,494.18162334558,508.71637697339,523.2511306012],description:"Inverted Enharmonic Tonos-27 Harmonia"},enh27_inv2:{frequencies:[261.6255653006,266.38239376061,271.31540105247,348.83408706747,387.59343007496,397.28326582684,406.97310157871,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-27"},enh29:{frequencies:[261.6255653006,266.21548749886,270.96933548991,344.87006335079,379.35706968587,389.08417403679,399.32323124828,523.2511306012],description:"Tonos-29 Enharmonic"},enh29_con:{frequencies:[261.6255653006,266.21548749886,270.96933548991,344.87006335079,352.8902973822,361.29244731988,474.19633710734,523.2511306012],description:"Conjunct Tonos-29 Enharmonic"},enh31:{frequencies:[261.6255653006,270.34641747729,279.66870773512,337.93302184661,352.6257619269,368.65420565085,377.22755927063,386.2091678247,523.2511306012],description:"Tonos-31 Enharmonic. Tone 24 alternates with 23 as MESE or A"},enh31_con:{frequencies:[261.6255653006,270.34641747729,279.66870773512,337.93302184661,352.6257619269,360.46188996972,368.65420565085,450.57736246214,523.2511306012],description:"Conjunct Tonos-31 Enharmonic"},enh33:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,392.4383479509,401.56482115906,411.12588832951,523.2511306012],description:"Tonos-33 Enharmonic"},enh33_con:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,367.38909169871,375.37581108347,479.64686971777,523.2511306012],description:"Conjunct Tonos-33 Enharmonic"},enh_invcon:{frequencies:[261.6255653006,283.42769574232,370.63621750918,381.53728273004,392.4383479509,501.44900015948,512.35006538034,523.2511306012],description:"Inverted Enharmonic Conjunct Phrygian Harmonia"},enh_mod:{frequencies:[261.6255653006,294.32876096318,305.22982618403,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Enharmonic After Wilson's Purvi Modulations, See page 111"},enh_perm:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Permuted Enharmonic, After Wilson's Marwa Permutations, See page 110."},enn45ji:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,276.85245005354,282.55561052465,288.32205155576,290.69507255622,296.75121990114,299.00064605783,305.22982618403,311.45900631024,313.95067836072,320.49131749323,322.92069774245,329.64821227876,336.37572681506,339.14425131559,346.06556256693,348.83408706747,356.10146388137,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,392.4383479509,395.57785473451,403.65087217807,406.97310157871,415.27867508032,423.93031414449,427.32175665765,436.04260883433,439.53094970501,448.50096908674,457.84473927605,461.31528248922,470.92601754108,474.80195184183,484.4917875937,494.47231841813,498.33441009638,508.71637697339,512.78610798918,523.2511306012],description:"Detempered Ennealimma[45], Hahn reduced"},enn72synch:{frequencies:[195.99771799087,197.54967854522,199.11392792408,201.62391554947,203.22042578925,204.82957760946,207.41161549338,209.05395423619,211.68924370912,213.36545381699,215.05493658943,217.76587316352,219.49019959291,221.22817968434,224.01693484168,225.790758792,228.63703016722,230.44743589451,232.27217821307,235.20015301436,237.06252857463,238.93964952543,241.95167308427,243.86750892427,246.94165062806,248.89699839908,250.8678291188,254.03021536301,256.04169222048,258.06909647124,261.3222603528,263.39147750593,266.71173418544,268.8236265844,270.95224149283,274.36780754746,276.54032271274,278.73004041423,282.24365173996,284.47852987378,288.0646054292,290.34557537779,292.64460663558,296.33362372129,298.68006816723,301.0450940916,304.84000597616,307.25380610435,311.12698372207,313.59056753865,316.0736586482,320.05801564518,322.59231767928,325.14668697146,329.24541662461,331.85246687263,336.03572815421,338.69654584276,341.37843257302,345.68177614255,348.4189737305,351.17784515594,355.60471802638,358.42048803112,362.93866010991,365.81250216232,368.70910003837,373.35696816148,376.31330506793,379.29305101359,384.07434037944,387.11553797119,391.99543598174],description:"Poptimal synchonized beating ennealimmal tuning, TM 10-10-2005"},ennea45:{frequencies:[261.6255653006,267.02028728287,269.13615104392,274.68574138534,276.8623300691,282.57123430547,288.39787286736,290.68311542614,296.67700440585,299.02785016604,305.1938252949,311.48692526882,313.95512370264,320.42888174436,322.96795420876,329.62755691287,336.42448069667,339.09030198792,346.08234767737,348.824677577,356.01744619623,363.3585507705,366.23777597441,373.78960287068,376.751482929,384.52012478698,392.44893391322,395.5586690753,403.715093104,406.91412394911,415.30469757995,423.86828492968,427.22700928979,436.03643483576,439.49155400205,448.55387459245,457.80308677504,461.43068321685,470.94538888861,474.67712392136,484.46499932732,494.45467284607,498.37269363637,508.649143962,512.67967026301,523.2511306012],description:"Ennealimmal-45, in a 7-limit least-squares tuning, g=48.999, G.W. Smith"},epimore_enh:{frequencies:[261.6255653006,265.11390617127,279.06726965397,348.83408706747,392.4383479509,397.67085925691,418.60090448096,523.2511306012],description:"New Epimoric Enharmonic, Dorian mode of the 4th new Enharmonic on Hofmann's list"},eratos_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,392.4383479509,413.09299784305,436.04260883433,523.2511306012],description:"Dorian mode of Eratosthenes's Chromatic. same as Ptol. Intense Chromatic"},eratos_diat:{frequencies:[261.6255653006,275.62199471997,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Dorian mode of Eratosthenes's Diatonic, Pythagorean"},eratos_enh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,392.4383479509,402.50086969323,413.09299784305,523.2511306012],description:"Dorian mode of Eratosthenes's Enharmonic"},erlangen:{frequencies:[261.6255653006,275.62199471997,293.99679436797,310.07474405997,327.03195662575,348.83408706747,367.49599295996,392.4383479509,413.43299207996,440.99519155196,465.11211608996,490.54793493862,523.2511306012],description:"Anonymus: Pro clavichordiis faciendis, Erlangen 15th century"},erlangen2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Revised Erlangen"},erlich1:{frequencies:[261.6255653006,278.64199172491,296.7651860139,326.1838132033,347.39918201406,369.99442271164,394.05928374402,433.12277132725,461.29357245868,491.2966347616,523.2511306012],description:"Asymmetrical Major decatonic mode of 22-tET, Paul Erlich"},erlich10:{frequencies:[261.6255653006,274.70684356563,299.00064605783,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Canonical JI interpretation of the Pentachordal decatonic mode of 22-tET"},erlich10s1:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Superparticular version of erlich10 using 50/49 decatonic comma"},erlich10s2:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Other superparticular version of erlich10 using 50/49 decatonic comma"},erlich11:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Canonical JI interpretation of the Symmetrical decatonic mode of 22-tET"},erlich11s1:{frequencies:[261.6255653006,274.70684356563,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Superparticular version of erlich11 using 50/49 decatonic comma"},erlich11s2:{frequencies:[261.6255653006,280.31310567921,305.22982618403,311.45900631024,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Other superparticular version of erlich11 using 50/49 decatonic comma"},erlich12:{frequencies:[261.6255653006,267.01308914069,282.57123920205,288.39008844866,305.19382000629,311.47852302926,329.62755691287,336.41541160581,356.01745236555,363.34874301751,384.52011812375,392.4383479509,415.30469757995,423.85685859121,448.5538823653,457.7907297806,484.46499093218,494.44133512215,523.2511306012],description:"Two 9-tET scales 3/2 shifted, Paul Erlich, TL 5-12-2001"},erlich13:{frequencies:[261.6255653006,269.80136421624,294.32876096318,327.03195662575,343.38355445704,359.73515228832,392.4383479509,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Just scale by Paul Erlich (2002)"},erlich2:{frequencies:[261.6255653006,278.64199172491,296.7651860139,316.06713361714,347.39918201406,369.99442271164,394.05928374402,419.68935090103,446.98642698175,476.05893615592,523.2511306012],description:"Asymmetrical Minor decatonic mode of 22-tET, Paul Erlich"},erlich3:{frequencies:[261.6255653006,278.64199172491,296.7651860139,326.1838132033,347.39918201406,369.99442271164,394.05928374402,419.68935090103,461.29357245868,491.2966347616,523.2511306012],description:"Symmetrical Major decatonic mode of 22-tET, Paul Erlich"},erlich4:{frequencies:[261.6255653006,278.64199172491,296.7651860139,316.06713361714,347.39918201406,369.99442271164,394.05928374402,419.68935090103,446.98642698175,491.2966347616,523.2511306012],description:"Symmetrical Minor decatonic mode of 22-tET, Paul Erlich"},erlich5:{frequencies:[261.6255653006,269.33066959279,278.10477655849,287.16472157287,295.62197660533,306.17967660611,315.19693888202,326.45372959864,335.05049156411,348.07025322573,357.23626005287,368.87410717392,380.89108570115,393.29954676976,406.11224388345,419.34234602259,433.00345117936,444.40607048653,461.67529188567,473.83294924974,490.75518955849,505.2083639382,523.2511306012],description:"Unequal 22-note compromise between decatonic & Indian srutis, Paul Erlich"},erlich6:{frequencies:[261.6255653006,274.70684356563,280.31310567921,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Scale of consonant tones against 1/1-3/2 drone. TL 23-9-1998"},erlich7:{frequencies:[261.6255653006,272.64118737561,277.98432293805,281.84855879469,292.47977325983,303.51199286577,307.73108663824,313.76190292287,326.97270111135,337.05955506058,340.85784563832,350.05627231138,365.1325261687,373.60234843661,378.13992750117,391.18115131013,406.9458559663,413.62886206386,420.42161880722,437.36472209676,452.44848028305,457.94368329907,468.56640608675,488.7466646507,501.93603498211,507.59230220159,523.2511306012],description:"Meantone-like circle of sinuoidally varying fifths, TL 08-12-99"},erlich8:{frequencies:[261.6255653006,263.902226729,277.18263097687,279.59466973861,293.66476791741,296.22023396764,311.12698372208,313.83440569119,329.62755691287,332.49597057,349.22823143301,352.26720984209,369.99442271164,373.21410818061,391.99543598175,395.40657391157,415.30469757995,418.91867232636,440,443.82887286778,466.16376151809,470.22031101449,493.88330125613,498.18106573801,523.2511306012],description:"Two 12-tET scales 15 cents shifted, Paul Erlich"},erlich9:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,302.70726563706,308.34441624714,319.76457981184,332.97799220076,345.34574619679,356.76213450082,369.97554688974,383.71749577421,396.40237166758,411.12588832951,428.11456140098,436.04260883433,452.23847716247,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"11-limit periodicity block, u.v.: 9801/9800 243/242 126/125 100/99"},erlich_bpf:{frequencies:[261.6255653006,269.93113880221,277.4816601673,282.55561052465,293.6613488068,301.87565226992,311.45900631024,319.76457981184,328.70904358281,336.37572681506,347.05432131712,356.76213450082,366.27579142084,377.90359432309,388.47432423422,400.44729382745,411.12588832951,422.62591317789,436.04260883433,447.67041173658,458.69417292962,470.92601754108,485.87604984397,499.46698830115,512.78610798918,528.59042785223,543.37617408586,560.62621135843,575.57624366132,591.67627844905,610.45965236807,624.69777837082,642.17184210147,659.29642455751,680.22646978156,699.2537836216,726.73768139056,740.02659899313,760.72664372021,784.8766959018],description:"Erlich's 39-tone Triple Bohlen-Pierce scale"},erlich_bpp:{frequencies:[261.6255653006,268.60224704195,277.4816601673,282.55561052465,293.6613488068,299.68019298069,311.45900631024,319.76457981184,323.65460841914,336.37572681506,345.34574619679,356.76213450082,366.27579142084,380.67211882362,385.30310526088,400.44729382745,411.12588832951,419.55227017296,436.04260883433,447.67041173658,458.69417292962,470.92601754108,489.43558134466,499.46698830115,512.78610798918,528.59042785223,539.42434736524,560.62621135843,575.57624366132,594.60355750136,610.45965236807,629.27431887171,642.17184210147,659.29642455751,685.20981388252,699.2537836216,720.80512888941,740.02659899313,764.49028821604,784.8766959018],description:"Periodicity block for erlich_bpf, 1625/1617 1331/1323 275/273 245/243"},erlich_bpp2:{frequencies:[261.6255653006,268.60224704195,277.4816601673,282.55561052465,293.92501780685,299.68019298069,311.45900631024,319.76457981184,326.02570445152,336.37572681506,345.34574619679,356.76213450082,366.27579142084,377.90359432309,385.30310526088,400.44729382745,411.12588832951,422.62591317789,436.04260883433,447.67041173658,458.69417292962,470.92601754108,485.87604984397,499.46698830115,512.78610798918,528.59042785223,543.37617408586,560.62621135843,575.57624366132,594.60355750136,610.45965236807,629.83932387181,642.17184210147,659.29642455751,685.20981388252,698.62650953896,726.73768139056,740.02659899313,764.49028821604,784.8766959018],description:"Improved shape for erlich_bpp"},erlich_bppe:{frequencies:[261.6255653006,269.03526454087,276.77324548748,284.61195549492,292.79795257063,301.09050901183,309.7504615497,318.52314490095,327.68449417797,337.10934179701,346.6568752383,356.62740568226,366.72772736951,377.27553481706,387.96064596243,399.11915372018,410.59860200806,422.22748385656,434.37157296247,446.67374500165,459.5209564409,472.53540627884,486.12644973042,499.89441151621,514.27235352402,529.06383329425,544.0478609495,559.69574261012,575.54731703113,592.10118472076,608.870542156,626.38285104305,644.39884822068,662.64936456684,681.70845767885,701.01565227402,721.17823493702,741.60327945962,762.93324174612,784.8766959018],description:"LS optimal 3:5:7:11:13 tempering, virtually equal, g=780.2702 cents"},erlich_bppm:{frequencies:[261.6255653006,269.3148593258,276.83859227209,284.97500405989,292.93622770824,301.54575630263,309.96990811138,319.08006614158,327.99406628962,337.15709295818,347.06629484351,356.76213450082,367.24753706379,377.50717076432,388.60227773252,399.45849178361,410.61798882758,422.6862401977,434.49464068244,447.26463523836,459.75967424319,473.27221959449,486.49381977384,500.79209531182,514.78250488433,529.16376146212,544.7161244152,559.93362036345,576.39032675477,592.49269103014,609.9063234692,626.94500947499,644.45969779399,663.40066444061,681.93379843592,701.97614206495,721.5869464624,742.79471409673,763.54584931731,784.8766959018],description:"MM optimal 3:5:7:11:13 tempering, g=780.352 cents"},erlich_paj:{frequencies:[261.6255653006,269.74106841426,278.59741216196,287.23937405609,296.67040683594,305.87298460253,315.91563888094,325.71519477697,336.4093235789,346.84458402385,358.23265591403,369.99442271164,381.47147728046,393.99623872149,406.21781843768,419.55531290213,432.56972318844,446.77218107119,460.63084592459,475.75462791404,490.51231476219,506.61748047856,523.2511306012],description:"Erlich's Pajara or Twintone, with RMS optimal generator"},erlich_paj2:{frequencies:[261.6255653006,270.25447814202,278.68577354399,287.87753105276,296.85845221806,306.64959036092,316.21614384055,326.645747324,336.83612131731,347.94582350257,358.80069640371,369.99442271164,382.1975482805,394.12120058634,407.1203087173,419.82124923186,433.66800958456,447.19715926063,461.9468459571,476.35821106408,492.06970256841,507.42081104304,523.2511306012],description:"Erlich's Pajara or Twintone with minimax optimal generator"},escapade:{frequencies:[261.6255653006,270.11362843741,278.8770761192,287.9248395776,297.26614463769,306.91051483225,316.86778450163,327.1481015562,337.76194863153,348.72014864112,360.03386958939,371.71464785337,383.77439429365,392.56657056143,405.30282760495,418.45229174958,432.02837124332,446.04490958069,460.51619165905,475.45697355792,490.88248752006,506.80846290374,523.2511306012],description:"Escapade temperament, g=55.275493, 5-limit"},"et-mix6":{frequencies:[261.6255653006,293.66476791741,300.52885648597,311.12698372208,329.62755691287,345.21700307457,369.99442271164,396.55020354877,415.30469757995,440,455.51656649021,466.16376151809,523.2511306012],description:"Mix of equal temperaments from 1-6 (= 4-6)"},euler:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Euler's Monochord (a mode of Ellis's duodene) (1739), genus [33355]"},euler20:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,320.58100381398,326.62388782443,329.50688232588,342.79852229325,366.55580177366,381.34192228364,391.95955371998,407.7704102616,411.36965665618,427.96347506501,439.87918162894,457.62301915088,489.33808574423,509.07699553894,513.57043963064,523.2511306012],description:"Genus [3333555] tempered by 225/224-planar"},euler24:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,308.1508239679,320.58100381398,326.62388782443,329.50688232588,342.79852229325,366.55580177366,381.34192228364,384.70789368407,391.95955371998,407.7704102616,411.36965665618,427.96347506501,439.87918162894,457.62301915088,480.28481865546,489.33808574423,493.65730140218,509.07699553894,513.57043963064,523.2511306012],description:"Genus [33333555] tempered by 225/224-planar"},euler_diat:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Euler's genus diatonicum veterum correctum"},euler_enh:{frequencies:[261.6255653006,267.90457886781,275.62199471997,348.83408706747,392.4383479509,401.85686830172,413.43299207996,523.2511306012],description:"Euler's Old Enharmonic, From Tentamen Novae Theoriae Musicae"},euler_gm:{frequencies:[261.6255653006,271.31540105247,279.06726965397,289.40309445597,348.83408706747,361.75386806997,372.08969287196,385.87079260796,523.2511306012],description:"Euler's Genus Musicum, Octony based on Archytas's Enharmonic"},exptriad2:{frequencies:[261.6255653006,306.59245933664,327.03195662575,367.91095120397,392.4383479509,459.88868900496,490.54793493862,523.2511306012],description:"Two times expanded major triad"},exptriad3:{frequencies:[261.6255653006,269.46602871384,275.93321340298,279.06726965397,287.4304306281,294.32876096318,297.67175429757,303.14928230307,306.59245933664,313.95067836072,323.35923445661,327.03195662575,344.91651675372,348.83408706747,359.28803828513,367.91095120397,372.08969287196,378.93660287884,383.2405741708,392.4383479509,404.19904307077,408.78994578219,418.60090448096,431.14564594215,436.04260883433,446.50763144636,459.88868900496,490.54793493862,505.24880383846,517.37477513058,523.2511306012],description:"Three times expanded major triad"},iivv17:{frequencies:[261.6255653006,269.80136421624,277.97716313189,283.42769574232,294.32876096318,305.22982618403,318.85615771011,327.03195662575,343.38355445704,348.83408706747,359.73515228832,367.91095120397,370.63621750918,392.4383479509,416.96574469783,425.14154361347,436.04260883433,441.49314144476,457.84473927605,479.64686971777,490.54793493862,523.2511306012],description:"17-limit IIVV"},"indian-ayyar":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Carnatic sruti system, C.Subrahmanya Ayyar, 1976. alt:21/20 25/16 63/40 40/21"},"indian-dk":{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,348.83408706747,392.4383479509,406.97310157871,418.60090448096,465.11211608996,523.2511306012],description:"Raga Darbari Kanada"},"indian-ellis":{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,358.01393146398,367.68998366571,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Ellis's Indian Chromatic, theoretical #74 of App.XX, p.517 of Helmholtz"},"indian-hahn":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Indian shrutis Paul Hahn proposal"},"indian-hrdaya1":{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,328.55303549378,348.83408706747,375.07381928051,392.4383479509,428.11456140098,441.49314144476,470.92601754108,492.82955324067,523.2511306012],description:"From Hrdayakautaka of Hrdaya Narayana (17th c) Bhatkande's interpretation"},"indian-hrdaya2":{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,330.47439827444,348.83408706747,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012],description:"From Hrdayakautaka of Hrdaya Narayana (17th c) Levy's interpretation"},"indian-invrot":{frequencies:[261.6255653006,267.90457886781,279.06726965397,313.95067836072,327.03195662575,334.88072358477,348.83408706747,392.4383479509,418.60090448096,446.50763144636,490.54793493862,502.32108537715,523.2511306012],description:"Inverted and rotated North Indian gamut"},"indian-magrama":{frequencies:[261.6255653006,294.32876096318,327.03195662575,367.91095120397,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Indian mode Ma-grama (Sa Ri Ga Ma Pa Dha Ni Sa)"},"indian-newbengali":{frequencies:[261.6255653006,269.13627541126,277.02257024271,285.46954808622,294.32876096318,303.84527498141,313.95067836072,324.71413568646,336.35938765066,348.83408706747,358.01090280364,367.91095120397,377.98706287655,388.6137256405,400.23209335925,412.19781491431,425.25755219187,438.98455767189,453.41648894489,469.13512554326,485.39868175205,503.9696508909,523.2511306012],description:"Modern Bengali scale,S.M. Tagore: The mus. scales of the Hindus,Calcutta 1884"},"indian-old2ellis":{frequencies:[261.6255653006,270.06509966514,277.97716313189,285.40970760065,294.32876096318,305.22982618403,316.13089140489,327.03195662575,337.93302184661,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,404.33041910093,415.52295665389,428.11456140098,441.49314144476,457.84473927605,474.19633710734,490.54793493862,505.80942624783,523.2511306012],description:"Ellis Old Indian Chrom2, Helmholtz, p. 517. This is a 4 cent appr. to #73"},"indian-oldellis":{frequencies:[261.6255653006,269.44737349144,277.4816601673,285.79952600623,294.32876096318,304.84150796353,315.71315096976,327.03195662575,337.72216249472,348.83408706747,359.25382662183,369.99442271164,381.0561299374,392.4383479509,404.18156579781,416.22249025095,428.71043212875,441.49314144476,457.27414749797,473.58203588493,490.54793493862,506.59641128799,523.2511306012],description:"Ellis Old Indian Chromatic, Helmholtz, p. 517. This is a 0.5 cent appr. to #73"},"indian-raja":{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,490.54793493862,523.2511306012],description:"A folk scale from Rajasthan, India"},"indian-sagrama":{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Indian mode Sa-grama (Sa Ri Ga Ma Pa Dha Ni Sa), inverse of Didymus' diatonic"},"indian-srutiharm":{frequencies:[261.6255653006,275.04226095704,278.87560257317,292.29229825722,294.20896982953,310.50067090621,313.3756771183,327.75070817877,332.5423844325,351.70909240436,354.58409877157,369.9174668925,374.70914348171,393.87585105695,414.95923028882,421.66757847392,437.95928040996,441.79262140873,467.66767825558,473.41768959156,493.54273382289,499.29274676062,523.2511306012],description:"B. Chaitanya Deva's sruti harmonium. The Music of India, 1981, p. 109"},"indian-srutivina":{frequencies:[261.6255653006,268.56758546278,278.98051393788,288.52577197574,297.52863491406,305.33829130574,314.01573591759,327.57422802312,336.57725592546,350.35262131413,358.2707318239,366.40588882483,378.77125721528,394.82459335461,403.28512412878,416.95215854696,428.77531684666,444.28620821491,453.93981227417,469.5594057965,487.34812384257,504.37765306036,529.32520658991],description:"Raja S.M. Tagore's sruti vina, measured by Ellis and Hipkins, 1886. 1/1=241.2"},"indian-srutivina2":{frequencies:[261.6255653006,275.04226095704,278.87560257317,292.29229825722,294.20896982953,310.50067090621,313.3756771183,327.75070817877,332.5423844325,351.70909240436,354.58409877157,369.9174668925,374.70914348171,393.87585105695,414.95923028882,421.66757847392,437.95928040996,441.79262140873,467.66767825558,473.41768959156,493.54273382289,499.29274676062,523.2511306012],description:"S. Ramanathan's sruti vina, 1973. In B.C. Deva, The Music of India, p. 110"},"indian-vina":{frequencies:[261.6255653006,276.70272600503,292.81785438923,313.29104303136,329.05685050583,352.26720984209,369.14054089803,390.18821123181,411.0090584005,435.70052664441,465.35666077712,491.60634075178,525.37110555681],description:"Observed South Indian tuning of a vina, Ellis"},"indian-vina2":{frequencies:[261.6255653006,277.02257024271,292.81785438923,308.97787266236,326.21810583671,344.81842302716,363.84824628932,386.37547528213,409.11417474979,432.19134773437,455.25352578019,480.93331155807,507.76825077597,539.82938999168,571.59905201246,602.44805673853,637.90290877605,678.5727631795,715.19510239543,756.4109196702,799.53998816902,846.10508618474,890.73947019126,943.16064703194,1001.55531043729],description:"Observed tuning of old vina in Tanjore Palace, Ellis and Hipkins. 1/1=210.7 Hz"},"indian-vina3":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Tuning of K.S. Subramanian's vina (1983)"},indian:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.50983809402,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Indian shruti scale"},indian2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Indian shruti scale with tritone 64/45 schisma lower (Mr.Devarajan, Madurai)"},indian2_sm:{frequencies:[261.6255653006,275.80107697063,279.12844116922,290.7446524607,294.25230137258,310.19560923413,313.9379197281,327.00276442799,330.9478443499,348.87940629173,353.08841191408,367.78254402461,372.21960384438,392.38737044642,413.64787586584,418.63827382983,436.06032987759,441.3211172644,465.23297251763,470.84571179248,490.44043044945,496.35728163707,523.2511306012],description:"Shruti/Mathieu's Magic Mode scale in 289-equal (schismic) temperament"},indian3:{frequencies:[261.6255653006,270.06509966514,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,506.89953276991,523.2511306012],description:"Indian shruti scale with 32/31 and 31/16 and tritone schisma lower"},indian4:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,330.74639366397,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"Indian shruti scale according to Firoze Framjee: Text book of Indian music"},indian5:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"23 Shrutis, Amit Mitra, 1/1 no. 12:2, Table C."},indian6:{frequencies:[146.8323839587,148.66778875818,150.35636117371,151.0621234143,152.23581568838,152.95039995698,154.68761437624,154.86227995644,156.62120955595,158.5789746754,159.32333328852,163.14709328744,165.18643195354,167.06262352634,169.15090632042,169.94488884109,172.0691999516,174.02356617327,176.19886075044,178.40134650982,179.23874994958,180.42763340845,181.27454809716,183.54047994838,185.62513725149,185.83473594773,187.94545146714,188.82765426788,190.29476961048,191.18799994622,193.3595179703,193.57784994555,195.77651194493,198.22371834425,200.47514823161,202.98108758451,203.93386660931,206.48303994192,208.82827940793,209.0640779412,211.43863290053,212.43111105136,214.08161581178,215.0864999395,217.52945771659,220.24857593805,223.00168313728,225.53454176056,226.59318512145,228.35372353257,229.42559993547,232.03142156437,232.29341993466,234.93181433392,237.86846201309,238.98499993278,240.57017787793,241.69939746288,244.72063993117,247.77964793031,250.59393528951,253.72635948063,254.91733326163,258.1037999274,261.03534925991,264.29829112566,267.60201976473,270.64145011268,271.91182214574,275.31071992256,278.43770587724,278.75210392159,281.9181772007,283.24148140181,285.44215441571,286.78199991934,290.03927695546,293.6647679174],description:"Shrutis calculated by generation method, Amit Mitra, 1/1 no. 12:2, Table B."},indian_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"North Indian Gamut, modern Hindustani gamut out of 22 or more shrutis"},indian_12c:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,328.55303549378,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,470.92601754108,492.82955324067,523.2511306012],description:"Carnatic gamut. Kuppuswami: Carnatic music and the Tamils, p. v"},indian_a:{frequencies:[261.6255653006,290.79521372391,318.76727400207,355.94891173479,388.6137256405,432.69092326853,486.52148746092,523.2511306012],description:"One observed indian mode"},indian_b:{frequencies:[261.6255653006,290.79521372391,305.95868600104,356.15457528086,388.83826257328,432.94092754357,461.60862817266,523.2511306012],description:"Observed Indian mode"},indian_c:{frequencies:[261.6255653006,278.94941459687,313.65318017499,356.15457528086,388.83826257328,422.07621250312,470.76384471612,523.2511306012],description:"Observed Indian mode"},indian_d:{frequencies:[261.6255653006,289.28740724512,320.24370022528,344.61930560862,391.31674786192,442.03793673691,485.39868175205,523.2511306012],description:"Indian D (Ellis, correct)"},indian_e:{frequencies:[261.6255653006,275.58617649731,323.21709932123,347.81902735497,393.58362272115,410.77171881178,488.21056770985,523.2511306012],description:"Observed Indian mode"},indian_g:{frequencies:[261.6255653006,275.48458755707,279.57748987366,290.07776015425,294.38747470873,309.98198497505,314.58741860623,326.40257913196,331.25197518754,348.79929894143,353.98144532328,367.27615246113,372.73281132023,392.47748849606,413.26809526256,419.40806105693,435.16003737285,441.62525396027,465.0193523796,471.92819182319,489.65270022124,496.92751979948,523.2511306012],description:"Shruti/Mathieu's Magic Mode scale in 94-et (garibaldi) temperament"},indian_rat:{frequencies:[261.6255653006,269.55361273395,277.4816601673,285.40970760065,294.32876096318,302.93486508491,315.75499260417,327.03195662575,337.58137458142,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,404.33041910093,416.22249025095,428.77523202043,441.49314144476,457.84473927605,473.41768959156,490.54793493862,506.37206187213,523.2511306012],description:"Indian Raga, From Fortuna, after Helmholtz, ratios by JC"},indian_rot:{frequencies:[261.6255653006,272.52663052146,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,510.98743222773,523.2511306012],description:"Rotated North Indian Gamut"},ionic:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Ancient greek Ionic"},iran_diat:{frequencies:[261.6255653006,297.21429859784,337.6441411202,347.13660997509,394.35734781054,448.00148789644,460.59652406882,523.2511306012],description:"Iranian Diatonic from Dariush Anooshfar, Safi-a-ddin Armavi's scale from 125 ET"},iraq:{frequencies:[261.6255653006,290.3675288125,326.6631048533,348.83408706747,387.1561215731,435.55129321875,465.11211608996,516.20736538157,523.2511306012],description:"Iraq 8-tone scale, Ellis"},isfahan_5:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,523.2511306012],description:"Isfahan (IG #2, DF #8), from Rouanet"},islamic:{frequencies:[261.6255653006,283.42769574232,305.22982618403,330.6656450327,348.83408706747,523.2511306012],description:"Islamic Genus (DF#7), from Rouanet"},italian:{frequencies:[261.6255653006,274.68983337859,292.34127285051,309.02606224197,326.6631048533,348.44038788768,366.66693712906,391.11111150212,411.56972129721,437.02884834934,464.06284405662,489.44164088633,523.2511306012],description:"Italian organ temperament, G.C. Klop (1974), 1/12 P.comma, also d'Alembert/Rousseau (1752/67)"},iter1:{frequencies:[261.6255653006,264.43874342211,268.51044859798,278.54662176283,304.33994330886,376.91818729747,631.61998662719],description:"McLaren style, IE= 2.414214, PD=5, SD=0"},iter10:{frequencies:[261.6255653006,277.06070189651,293.38358189778,297.59908052943,301.91391280887,310.68035879446,328.97472072452,338.5155215149,348.35227203008,368.89204707385,413.65123162392,438.0707139917,463.89070822207,520.1365405381,535.27989222422,550.79066379074,583.29634230953,654.0639132515],description:"Iterated 5/2 Scale, IE=5/2, PD=4, SD=3"},iter11:{frequencies:[261.6255653006,278.87608544381,297.26403435806,306.90779184711,316.86440944623,337.75715313333,360.02747892105,383.76621672426,396.21625406084,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #2"},iter12:{frequencies:[261.6255653006,297.26403435806,306.90779184711,316.86440944623,337.75715313333,360.02747892105,383.76621672426,396.21625406084,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #4"},iter13:{frequencies:[261.6255653006,297.26403435806,337.75715313333,383.76621672426,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #6"},iter14:{frequencies:[261.6255653006,280.22072913446,300.13755324878,344.3186075731,368.79121945838,395.0032340925,453.14877154631,519.85349135637,596.37732215892,638.76512932755,684.16567043124,784.8766959018],description:"Binary Divided 3/1 Scale #2"},iter15:{frequencies:[261.6255653006,285.30470202322,311.12698372208,324.90175210669,339.28638158975,369.99442271164,403.48177901006,440,459.48046426806,479.82340237272,523.2511306012],description:"Binary Division Scale"},iter16:{frequencies:[261.6255653006,273.20871865617,285.30470202322,311.12698372208,324.90175210669,339.28638158975,369.99442271164,403.48177901006,440,459.48046426806,479.82340237272,523.2511306012],description:"Binary Division Scale 4+2"},iter17:{frequencies:[261.6255653006,278.49896488475,296.46060526524,301.12918013362,305.87127435301,315.58067012184,335.93387506143,346.5975621448,357.59974896504,380.66295170881,431.34763334053,459.16716607109,488.78090454553,553.8613271114,571.44277158458,589.58231097183,627.60710380636,711.17202040031],description:"Binary E Scale #2"},iter18:{frequencies:[261.6255653006,296.46060526524,335.93387506143,357.59974896504,380.66295170881,431.34763334053,488.78090454553,553.8613271114,589.58231097183,627.60710380636,711.17202040031],description:"Binary E Scale #4"},iter19:{frequencies:[261.6255653006,322.51878830959,331.06584352035,339.83940187549,358.09020513941,397.58488163802,418.936859706,441.43552612833,490.12256936272,604.19836236377,670.83693141722,744.82523718317,918.18295398723,967.49323514067,1019.45167961503,1131.88958971281,1395.33634826987],description:"Binary Kidjel Ratio scale #2, IE=16/3"},iter2:{frequencies:[261.6255653006,264.43874342211,268.51044859798,278.54662176283,304.33994330886,376.91818729747,466.76379263857,529.06503205232,631.63886479716],description:"Iterated 1 + SQR(2) Scale, IE=2.414214, PD=5, SD=1"},iter20:{frequencies:[261.6255653006,269.61366892789,277.84567157694,295.07138236029,304.08067308856,313.36504071103,332.79286022776,353.42515415018,375.3365967665,386.79659161311,398.60648967463,423.31905787312],description:"Binary PHI Scale #2"},iter21:{frequencies:[261.6255653006,265.58958666715,269.61366892789,277.84567157694,295.07138236029,304.08067308856,313.36504071103,332.79286022776,353.42515415018,375.3365967665,386.79659161311,398.60648967463,423.31905787312],description:"Binary PHI Scale 5+2 #2"},iter22:{frequencies:[261.6255653006,301.8727519909,307.3207469799,312.86706369289,324.26179396336,348.311367392,360.99698978488,374.14462916403,401.89387036212,463.7192413329,498.11197631533,535.05552246568,617.36582527423,639.85050556571,663.15408964479,712.33833913185,821.92095613931],description:"Binary PI Scale #2"},iter23:{frequencies:[261.6255653006,280.22072913446,282.63618845904,285.07246866924,290.00821285991,300.13755151512,305.33413252207,310.62068712289,321.46997343155,344.3186075731,356.34488692223,368.79121945838,395.00323181087,401.84231702948,408.7998141568,423.07827792492,453.14877154631],description:"Binary SQR(3) Scale #2"},iter24:{frequencies:[261.6255653006,289.31157243481,292.97226416221,296.67927674571,304.23460945445,319.92739457651,328.07477344771,336.42963427227,353.78307729046,391.22147055517,411.40114203819,432.62170761687,478.4030399831,490.58621022536,503.07964402145,529.02909391167,585.01254970054],description:"Binary SQR(5) Scale #2"},iter25:{frequencies:[261.6255653006,295.4600775297,299.98610231105,304.581459303,313.98443628203,333.67021037701,343.97120738708,354.59021667251,376.82183739983,425.55401329039,452.23482674104,480.58843796626,542.7401414615,559.49550492793,576.76813324226,612.92956630767,692.19618110881],description:"Binary SQR(7) Scale #2"},iter26:{frequencies:[261.6255653006,266.56189672137,275.04226095704,276.16031892841,278.32506946872,283.8915708581,299.68019298069,302.93486508491,309.19384990071,326.13597866239,377.90359432309,389.87339142835,411.92110281371,477.08191319521,486.74523776856,503.12608711654,552.32063785682,711.29450566101],description:"E Scale"},iter27:{frequencies:[261.6255653006,264.53251602616,264.59858308811,264.97973921471,266.91093025617,277.4816601673,277.93638607994,279.98525409362,291.05844139692,358.0999925052,361.3330282979,375.61956161015,462.09190754392,465.48964215821,480.4396744611,568.53247844169,1395.33634826987],description:"Iterated Kidjel Ratio Scale, IE=16/3, PD=3, SD=3"},iter28:{frequencies:[261.6255653006,265.20947715403,272.47639519786,295.60291144354,377.3445653374,784.8766959018],description:"McLaren 3-Division Scale"},iter29:{frequencies:[261.6255653006,264.46932144517,267.35459227799,273.20191774753,285.29018929764,311.12229387098,370.01329949656,523.2511306012],description:"Iterated Binary Division of the Octave, IE=2, PD=6, SD=0"},iter3:{frequencies:[261.6255653006,291.72408166262,314.40967058055,328.65360269166,338.82655178274,356.71329642628,384.4758307461,404.77917650282,417.30358762823,426.15298265459,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=3, SD=2"},iter30:{frequencies:[261.6255653006,263.40533105094,266.47048317654,274.97380842818,299.54231389489,377.98194879009,711.1793535636],description:"Iterated E-scale, IE= 2.71828, PD=5, SD=0"},iter31:{frequencies:[261.6255653006,264.53251602616,277.4816601673,358.0999925052,1395.33634826987],description:"Iterated Kidjel Ratio Scale, IE=16/3, PD=3, SD=0"},iter32:{frequencies:[261.6255653006,264.32273607689,265.98599138894,268.74462830198,273.21657135822,280.65287914064,293.09931751721,314.43072526953,352.25402909754,423.30428543018],description:"Iterated PHI scale, IE= 1.61803339, PD=8, SD=0"},iter33:{frequencies:[261.6255653006,264.70351312767,271.46111286829,293.79264300149,376.62581378438,821.87425059077],description:"Iterated PI Scale, IE= 3.14159, PD=4, SD=0"},iter34:{frequencies:[261.6255653006,263.41752122732,264.70351312767,267.00143308075,271.01725226011,278.10591587072,290.81088732616,314.21361862735,359.24704489038,453.1728541814],description:"Iterated SQR3 Scale, IE= 1.73205, PD=8, SD=0"},iter35:{frequencies:[261.6255653006,263.32443260775,265.41724016003,270.17542037578,281.14986121856,307.30621955943,374.94109676838,585.0238335194],description:"Iterated SQR 5 Scale, IE= 2.23607, PD=6, SD=0"},iter36:{frequencies:[261.6255653006,263.60757715894,266.85807660661,275.72514666411,300.63990398578,377.90359432309,692.2176415245],description:"Iterated SQR 7 Scale, IE= 2.64575, PD=5, SD=0"},iter37:{frequencies:[261.6255653006,295.02271214403,313.28742377221,326.0879260201,332.68289475257,342.82647426905,364.05069339959,375.15068445646,382.73792346942,386.58911684499,392.4383479509],description:"Iterated 3/2 scale, IE=3/2, PD=3, SD=2"},iter4:{frequencies:[261.6255653006,267.82522324611,277.41331493081,278.97828136646,281.37089098366,287.35922746131,302.93486508491,307.2300216374,313.76772341995,330.79094463294,377.42704502382,390.96854140427,412.14986314478,470.26367433779,480.2976795817,495.79659597089,536.59937372878,654.0639132515],description:"Iterated 5/2 Scale, IE=5/2, PD=4, SD=3"},iter5:{frequencies:[261.6255653006,292.148547919,314.45380444784,328.62723446295,338.43307070995,355.46951807147,382.59222452561,401.8431885336,413.81298563886,422.03832066739,436.04260883433],description:"Iterated 5/3 Scale, analog of Hexachord, IE=5/3, PD=3, SD=2"},iter6:{frequencies:[261.6255653006,276.4345595629,292.10621368514,326.13597866239,344.58001283494,364.1180547998,406.52587839016,453.84026633778,506.69255051888,535.41976154541,565.73733351326,631.63886479716],description:"Iterated binary 1+SQR(2) scale, IE= 2.414214, G=2, PD=4, SD=2"},iter7:{frequencies:[261.6255653006,279.30296836145,298.19688088025,308.09852755794,318.34159693919,339.84351781315,362.8203594263,387.34174602946,400.24806631808,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=3, SD=2"},iter8:{frequencies:[261.6255653006,298.19688088025,308.09852755794,318.34159693919,339.84351781315,362.8203594263,387.34174602946,400.24806631808,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=2, SD=2"},iter9:{frequencies:[261.6255653006,298.19688088025,339.84351781315,387.34174602946,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=2, SD=12"},ives:{frequencies:[261.6255653006,302.26980244078,349.22823143301,375.37611551499,433.69180740168,501.06699929295,578.9091089468,622.25396744417],description:`Charles Ives' stretched major scale, "Scrapbook" pp. 108-110`},ives2a:{frequencies:[261.6255653006,303.72829164664,352.60650301302,379.92060676531,441.0602510811,512.03893786214,594.44004134205,640.48740045057],description:"Speculation by Joe Monzo for Ives' other stretched scale"},ives2b:{frequencies:[261.6255653006,300.81831683262,345.88232658126,370.885984045,426.44646246473,490.3301667422,563.78395315523,604.53960488156],description:"Alt. speculation by Joe Monzo for Ives' other stretched scale"},abell1:{frequencies:[261.6255653006,273.68256372566,292.6487650037,305.95868600104,327.16162250699,342.04121835587,365.95599773772,391.31674786192,409.35055662695,437.71854962063,457.62637091093,489.33987776603,523.2511306012],description:"Ross Abell's French Baroque Meantone 1, a'=520"},abell2:{frequencies:[261.6255653006,275.90473010106,294.68429813772,308.79945157961,330.00857764288,348.01999353916,369.14054089803,392.90218486657,412.67427966689,441.52756934418,463.21121723949,493.59810545034,523.2511306012],description:"Ross Abell's French Baroque Meantone 2, a'=520"},abell3:{frequencies:[261.6255653006,275.90505521365,293.49576926806,308.08682543008,329.24698751194,350.03632176331,368.71497179837,392.44893164635,412.28324979826,440.25465969448,462.14293627657,492.7440237889,523.2511306012],description:"Ross Abell's French Baroque Meantone 3, a' = 520"},abell4:{frequencies:[261.6255653006,274.95017225036,292.98704147282,308.2648062752,328.10786809908,346.01554587335,367.43868454848,391.54284657258,411.48414905414,438.47771564426,461.87534079415,491.0387427573,523.2511306012],description:"Ross Abell's French Baroque Meantone 4, a'=520"},abell5:{frequencies:[261.6255653006,277.98432293805,295.87822452474,311.66659310186,331.15428443044,349.43001184052,371.27895029721,395.6350356808,416.26536455926,442.29334161825,466.70260620202,495.88429116026,523.2511306012],description:"Ross Abell's French Baroque Meantone 5, a'=520"},abell6:{frequencies:[261.6255653006,277.02257024271,293.32570896007,311.66659310186,330.00857764288,349.43001184052,369.99442271164,391.76907592069,414.82519580403,440.76312290327,466.70260620202,494.16866184506,523.2511306012],description:"Ross Abell's French Baroque Meantone 6, a'=520"},abell7:{frequencies:[261.6255653006,277.50302994288,294.34406205295,310.05056613125,328.86683469969,348.82502010853,369.99442271164,392.44854854484,416.26536455926,438.47771564426,465.08793784701,493.31307433255,523.2511306012],description:"Ross Abell's French Baroque Meantone 7, a'=520"},abell8:{frequencies:[261.6255653006,277.82379926216,294.68429813772,311.48661940174,329.62755691287,350.03605285217,371.27895029721,392.44854854484,415.30469757995,441.01779121056,467.78216486233,494.45418731234,523.2511306012],description:"Ross Abell's French Baroque Meantone 8, a'=520"},abell9:{frequencies:[261.6255653006,276.06414495892,293.32570896007,309.69258848748,330.19925313612,348.62358905703,369.14054089803,391.99543598175,412.67427966689,440,464.55095742407,493.88330125613,523.2511306012],description:"Ross Abell's French Baroque Meantone 9, a'=520"},"ad-dik":{frequencies:[261.6255653006,269.0348830679,275.62199471997,285.40970760065,294.32876096318,300.46061014991,310.07474405997,321.08592105074,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.49599295996,378.42269266694,392.4383479509,400.61414686654,413.43299207996,428.11456140098,441.49314144476,453.48431318771,470.92601754108,479.64686971777,490.54793493862,508.71637697339,523.2511306012],description:"Amin Ad-Dik, d'Erlanger, vol 5, p.42"},adjeng:{frequencies:[261.6255653006,285.30470202322,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Soeroepan adjeng"},aeolic:{frequencies:[261.6255653006,294.32876096318,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Ancient Greek Aeolic, also tritriadic scale of the 54:64:81 triad"},agricola:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,331.11985608357,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Agricola's Monochord, Rudimenta musices (1539)"},"al-din":{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,516.20836322497,523.2511306012,551.24398943995,580.73440862809,588.65752192635,620.14948811994,653.3262097066,688.27781763329,697.66817413493,734.99198591993,774.31254483746,784.8766959018,826.86598415992,871.10161294214,917.70375684439,930.22423217991,979.98931455991,1032.41672644994,1046.5022612024,1102.48797887989],description:"Safi al-Din's complete lute tuning on 5 strings 4/3 apart"},"al-din_19":{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,516.20836322497,523.2511306012],description:"Arabic scale by Safi al-Din"},"al-farabi":{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Al-Farabi Syn Chrom"},"al-farabi_19":{frequencies:[261.6255653006,275.62199471997,285.40970760065,294.32876096318,310.07474405997,326.6631048533,331.11985608357,336.87132687997,348.83408706747,367.49599295996,380.54627680087,392.4383479509,413.43299207996,435.55080647107,441.49314144476,455.28980211491,465.11211608996,489.99465727995,507.3950357345,523.2511306012],description:"Arabic scale by Al Farabi"},"al-farabi_22":{frequencies:[261.6255653006,275.62199471997,277.01530443593,285.40970760065,294.32876096318,310.07474405997,321.08592105074,326.6631048533,331.11985608357,348.83408706747,367.49599295996,369.35373924791,380.54627680087,392.4383479509,413.43299207996,428.11456140098,435.55080647107,441.49314144476,465.11211608996,489.99465727995,492.47165233054,507.3950357345,523.2511306012],description:"Al-Farabi 22 note ud scale"},"al-farabi_9":{frequencies:[261.6255653006,294.32876096318,321.08592105074,331.11985608357,348.83408706747,392.4383479509,428.11456140098,441.49314144476,465.11211608996,523.2511306012],description:"Al-Farabi 9 note ud scale"},"al-farabi_blue":{frequencies:[261.6255653006,294.32876096318,367.91095120397,380.81054504865,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Another tuning from Al Farabi, c700 AD"},"al-farabi_chrom":{frequencies:[261.6255653006,294.32876096318,353.19451315581,372.50983809402,392.4383479509,470.92601754108,497.08857407114,523.2511306012],description:"Al Farabi's Chromatic c700 AD"},"al-farabi_chrom2":{frequencies:[261.6255653006,279.06726965397,325.57848126297,348.83408706747,392.4383479509,418.60090448096,488.36772189445,523.2511306012],description:"Al-Farabi's Chromatic permuted"},"al-farabi_diat":{frequencies:[261.6255653006,299.00064605783,341.71502406609,348.83408706747,392.4383479509,448.50096908674,512.57253609913,523.2511306012],description:"Al-Farabi's Diatonic"},"al-farabi_diat2":{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Old Phrygian, permuted form of Al-Farabi's reduplicated 10/9 diatonic genus, same as ptolemy_diat"},"al-farabi_div":{frequencies:[261.6255653006,275.62199471997,277.01530443593,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,321.08592105074,331.11985608357,348.83408706747],description:"Al Farabi's 10 intervals for the division of the tetrachord"},"al-farabi_div2":{frequencies:[261.6255653006,275.62199471997,277.01530443593,279.38237857051,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,314.30517589183,321.08592105074,331.11985608357,348.83408706747],description:"Al-Farabi's tetrachord division, incl. extra 2187/2048 & 19683/16384"},"al-farabi_divo":{frequencies:[261.6255653006,275.62199471997,277.01530443593,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,321.08592105074,331.11985608357,348.83408706747,367.49599295996,369.35373924791,379.26927587201,392.4383479509,413.43299207996,415.52295665389,426.67793535601,432.48307733364,441.49314144476,465.11211608996,467.46332623563,481.6288815761,496.67978412536,523.2511306012],description:"Al Farabi's theoretical octave division with identical tetrachords, 10th c."},"al-farabi_dor":{frequencies:[261.6255653006,282.55561052465,313.95067836072,348.83408706747,392.4383479509,423.83341578697,470.92601754108,523.2511306012],description:"Dorian mode of Al-Farabi's 10/9 Diatonic"},"al-farabi_dor2":{frequencies:[261.6255653006,267.07609791103,305.22982618403,348.83408706747,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Dorian mode of Al-Farabi's Diatonic"},"al-farabi_g1":{frequencies:[261.6255653006,294.32876096318,331.11985608357,367.91095120397,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Al-Farabi's Greek genus conjunctum medium, Land"},"al-farabi_g10":{frequencies:[261.6255653006,294.32876096318,343.38355445704,367.91095120397,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Al-Farabi's Greek genus chromaticum forte"},"al-farabi_g11":{frequencies:[261.6255653006,294.32876096318,353.19451315581,372.50983809402,392.4383479509,470.92601754108,496.67978412536,523.2511306012],description:"Al-Farabi's Greek genus chromaticum mollissimum"},"al-farabi_g12":{frequencies:[261.6255653006,294.32876096318,367.91095120397,380.17464957743,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Al-Farabi's Greek genus mollissimum ordinantium"},"al-farabi_g3":{frequencies:[261.6255653006,294.32876096318,336.37572681506,378.42269266694,392.4383479509,448.50096908674,504.56359022259,523.2511306012],description:"Al-Farabi's Greek genus conjunctum primum"},"al-farabi_g4":{frequencies:[261.6255653006,294.32876096318,336.37572681506,384.42940207435,392.4383479509,448.50096908674,512.57253609913,523.2511306012],description:"Al-Farabi's Greek genus forte duplicatum primum"},"al-farabi_g5":{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Al-Farabi's Greek genus conjunctum tertium, or forte aequatum"},"al-farabi_g6":{frequencies:[261.6255653006,294.32876096318,336.37572681506,373.75080757229,392.4383479509,448.50096908674,498.33441009638,523.2511306012],description:"Al-Farabi's Greek genus forte disjunctum primum"},"al-farabi_g7":{frequencies:[261.6255653006,294.32876096318,343.38355445704,374.60024122586,392.4383479509,457.84473927605,499.46698830115,523.2511306012],description:"Al-Farabi's Greek genus non continuum acre"},"al-farabi_g8":{frequencies:[261.6255653006,294.32876096318,353.19451315581,378.42269266694,392.4383479509,470.92601754108,504.56359022259,523.2511306012],description:"Al-Farabi's Greek genus non continuum mediocre"},"al-farabi_g9":{frequencies:[261.6255653006,294.32876096318,367.91095120397,383.71749577421,392.4383479509,490.54793493862,511.62332769895,523.2511306012],description:"Al-Farabi's Greek genus non continuum laxum"},"al-hwarizmi":{frequencies:[261.6255653006,294.32876096318,302.73815413355,311.64221749042,321.08592105074,331.11985608357,348.83408706747],description:"Al-Hwarizmi's tetrachord division"},"al-kindi":{frequencies:[261.6255653006,275.62199471997,279.38237857051,294.32876096318,310.07474405997,331.11985608357,348.83408706747],description:"Al-Kindi's tetrachord division"},"al-kindi2":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,523.2511306012],description:"Arabic mode by al-Kindi"},"al-mausili":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,441.49314144476,465.11211608996,523.2511306012],description:"Arabic mode by Ishaq al-Mausili, ? - 850 AD"},albion:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Terry Riley's Harp of New Albion scale, inverse Malcolm's Monochord, 1/1 on C#"},alembert:{frequencies:[261.6255653006,273.70610837433,292.50627485027,307.8325111191,327.03195662575,347.99121610009,365.92863081328,391.22147055517,409.45161370755,437.39890198442,462.86717295458,489.22460251523,523.2511306012],description:"Jean-Le Rond d'Alembert modified meantone (1752)"},alembert2:{frequencies:[261.6255653006,274.99999938609,292.5775112526,309.28790118232,327.03195662575,348.53877105022,367.08095907728,391.31674786192,412.03444522126,437.50542525192,464.32494005553,489.99429388332,523.2511306012],description:"d'Alembert (?)"},alves:{frequencies:[261.6255653006,267.07609791103,294.32876096318,305.22982618403,327.03195662575,336.37572681506,348.83408706747,359.73515228832,392.4383479509,425.14154361347,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:'Bill Alves, tuning for "Instantaneous Motion", 1/1 vol. 6/3'},alves_22:{frequencies:[261.6255653006,269.80136421624,279.06726965397,287.78812183066,297.30177875068,305.22982618403,317.12189733406,327.03195662575,336.37572681506,348.83408706747,359.73515228832,370.01329949656,380.54627680087,392.4383479509,406.97310157871,418.60090448096,431.68218274599,448.50096908674,460.46099492906,475.68284600109,490.54793493862,507.3950357345,523.2511306012],description:"11-limit rational interpretation of 22-tET, Bill Alves, tuning list 9-1-98"},amity:{frequencies:[261.6255653006,265.19165427121,275.22357733525,278.97501409741,282.77758484276,286.63198489776,290.53892403345,294.49911672845,305.63971046081,309.80573452349,314.02854360428,318.30891171173,322.64762154083,327.04547204619,339.41726037801,344.04368955469,348.73317930436,353.48658917459,358.304790429,371.85908609843,376.92771379174,382.0654272409,387.27317253358,392.55190203235,397.90258328792,412.95482206782,418.58360545772,424.28911201625,430.07238503487,435.93448947821,452.42543551278,458.59222335614,464.84306764133,471.17911410024,477.60152408164,484.11147196776,502.42490579041,509.27320879713,516.21486058423,523.2511306012],description:"Amity temperament, g=339.508826, 5-limit"},angklung:{frequencies:[261.6255653006,294.70472480469,326.28010551578,372.13971319976,421.00655337609,533.77627782773,589.40944960937,672.10704388342,757.81210779894],description:"Scale of an anklung set from Tasikmalaya. 1/1=174 Hz"},appunn:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.38237857051,287.10624449997,290.69507255622,294.32876096318,302.46583782713,306.24666079997,310.07474405997,322.99452506247,327.03195662575,331.11985608357,340.27406755552,344.52749339997,348.83408706747,363.36884069528,367.91095120397,372.50983809402,382.80832599996,387.59343007496,392.4383479509,408.78994578219,413.89982010446,419.07356785577,430.65936674996,436.04260883433,441.49314144476,453.6987567407,459.36999119996,465.11211608996,484.4917875937,490.54793493862,496.67978412536,510.41110133328,516.79124009995,523.2511306012],description:"Probable tuning of A. Appunn's 36-tone harmonium w. 3 manuals 80/81 apart,1887"},arabic:{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,516.20836322497,523.2511306012],description:"Arabic 17-tone Pythagorean mode, Safi al-Din"},arabic_s:{frequencies:[261.6255653006,275.62199471997,290.69507255622,294.32876096318,310.07474405997,327.03195662575,331.11985608357,348.83408706747,367.91095120397,387.59343007496,392.4383479509,413.43299207996,436.04260883433,441.49314144476,465.11211608996,490.54793493862,516.79124009995,523.2511306012],description:"Schimatically altered Arabic 17-tone Pythagorean mode"},arch_chrom:{frequencies:[261.6255653006,271.31540105247,294.32876096318,348.83408706747,392.4383479509,406.97310157871,441.49314144476,523.2511306012],description:"Archytas' Chromatic"},arch_chromc2:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,331.11985608357,343.38355445704,348.83408706747,361.75386806997,392.4383479509,406.97310157871,422.04617941496,441.49314144476,457.84473927605,496.67978412536,523.2511306012],description:"Product set of 2 of Archytas' Chromatic"},arch_dor:{frequencies:[261.6255653006,271.31540105247,294.32876096318,348.83408706747,392.4383479509,406.97310157871,465.11211608996,441.49314144476,523.2511306012],description:"Dorian mode of Archytas' Chromatic with added 16/9"},arch_enh:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Archytas' Enharmonic"},arch_enh2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,465.11211608996,418.60090448096,523.2511306012],description:"Archytas' Enharmonic with added 16/9"},arch_enh3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,358.80077526939,448.50096908674,523.2511306012],description:"Complex 9 of p. 113 based on Archytas's Enharmonic"},arch_enhp:{frequencies:[261.6255653006,269.10058145205,279.06726965397,348.83408706747,392.4383479509,403.65087217807,418.60090448096,523.2511306012],description:"Permutation of Archytas's Enharmonic with the 36/35 first"},arch_enht:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,336.37572681506,348.83408706747,504.56359022259,523.2511306012],description:"Complex 6 of p. 113 based on Archytas's Enharmonic"},arch_enht2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,348.83408706747,490.54793493862,508.71637697339,523.2511306012],description:"Complex 5 of p. 113 based on Archytas's Enharmonic"},arch_enht3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,281.36411960997,289.40309445597,348.83408706747,361.75386806997,523.2511306012],description:"Complex 1 of p. 113 based on Archytas's Enharmonic"},arch_enht4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,339.14425131559,348.83408706747,436.04260883433,523.2511306012],description:"Complex 8 of p. 113 based on Archytas's Enharmonic"},arch_enht5:{frequencies:[261.6255653006,263.77886213435,271.31540105247,279.06726965397,339.14425131559,348.83408706747,508.71637697339,523.2511306012],description:"Complex 10 of p. 113 based on Archytas's Enharmonic"},arch_enht6:{frequencies:[261.6255653006,271.31540105247,279.06726965397,289.40309445597,297.67175429757,348.83408706747,372.08969287196,523.2511306012],description:"Complex 2 of p. 113 based on Archytas's Enharmonic"},arch_enht7:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,287.04062021552,348.83408706747,358.80077526939,523.2511306012],description:"Complex 11 of p. 113 based on Archytas's Enharmonic"},arch_mult:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,490.54793493862,504.56359022259,523.2511306012],description:"Multiple Archytas"},arch_ptol:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,310.07474405997,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,436.04260883433,465.11211608996,523.2511306012],description:"Archytas/Ptolemy Hybrid 1"},arch_ptol2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,313.95067836072,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"Archytas/Ptolemy Hybrid 2"},arch_sept:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,310.07474405997,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,441.49314144476,465.11211608996,523.2511306012],description:"Archytas Septimal"},ariel1:{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ariel 1"},ariel2:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ariel 2"},ariel3:{frequencies:[261.6255653006,279.06726965397,290.69507255622,310.07474405997,322.99452506247,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,465.11211608996,484.4917875937,523.2511306012],description:"Ariel's 12-tone JI scale"},ariel_19:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,302.80736724606,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,452.08897683944,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Ariel 19-tone scale"},ariel_31:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Ariel's 31-tone system"},arist_archenh:{frequencies:[261.6255653006,271.89678302796,279.86396690685,349.22823143301,391.99543598175,407.38487419079,419.32216217931,523.2511306012],description:"PsAristo Arch. Enharmonic, 4 + 3 + 23 parts, similar to Archytas' enharmonic"},arist_chrom:{frequencies:[261.6255653006,277.18263097687,329.62755691287,349.22823143301,391.99543598175,415.30469757995,493.88330125613,523.2511306012],description:"Dorian, Neo-Chromatic,6+18+6 parts = Athanasopoulos' Byzant.liturg. 2nd chromatic"},arist_chrom2:{frequencies:[261.6255653006,282.57123920205,336.03572815422,349.22823143301,391.99543598175,423.37848741825,503.48470957687,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 8 + 18 + 4 parts"},arist_chrom3:{frequencies:[261.6255653006,279.86388595857,299.37253740865,349.22869576324,391.99491478937,419.32387668214,448.55625766774,523.2511306012],description:"PsAristo 3 Chromatic, 7 + 7 + 16 parts"},arist_chrom4:{frequencies:[261.6255653006,275.85166538713,290.85115308106,349.22823143301,391.99543598175,413.31050241775,435.7843409791,523.2511306012],description:"PsAristo Chromatic, 5.5 + 5.5 + 19 parts"},arist_chromenh:{frequencies:[261.6255653006,269.29177952703,293.66476791741,349.22823143301,391.99543598175,403.48177901006,440,523.2511306012],description:"Aristoxenos' Chromatic/Enharmonic, 3 + 9 + 18 parts"},arist_chrominv:{frequencies:[261.6255653006,311.12698372208,329.62755691287,349.22823143301,391.99543598175,466.16376151809,493.88330125613,523.2511306012],description:"Aristoxenos' Inverted Chromatic, Dorian mode, 18 + 6 + 6 parts"},arist_chromrej:{frequencies:[261.6255653006,277.18263097687,285.30470202322,349.22823143301,391.99543598175,415.30469757995,427.47405410759,523.2511306012],description:"Aristoxenos Rejected Chromatic, 6 + 3 + 21 parts"},arist_chromunm:{frequencies:[261.6255653006,273.20871865617,282.57118533961,349.22823143301,391.99543598175,409.35055662695,423.37840671577,523.2511306012],description:"Unmelodic Chromatic, genus of Aristoxenos, Dorian Mode, 4.5 + 3.5 + 22 parts"},arist_diat:{frequencies:[261.6255653006,293.66476791741,311.12698372208,349.22823143301,391.99543598175,440,466.16376151809,523.2511306012],description:"Phrygian octave species on E, 12 + 6 + 12 parts"},arist_diat2:{frequencies:[261.6255653006,279.86396690685,311.12698372208,349.22823143301,391.99543598175,419.32216217931,466.16376151809,523.2511306012],description:"PsAristo 2 Diatonic, 7 + 11 + 12 parts"},arist_diat3:{frequencies:[261.6255653006,286.68133251996,314.13668154225,349.22823143301,391.99543598175,429.53666932309,470.6732130613,523.2511306012],description:"PsAristo Diat 3, 9.5 + 9.5 + 11 parts"},arist_diat4:{frequencies:[261.6255653006,282.57123920205,305.19382000629,349.22823143301,391.99543598175,423.37848741825,457.27406033445,523.2511306012],description:"PsAristo Diatonic, 8 + 8 + 14 parts"},arist_diatdor:{frequencies:[261.6255653006,299.37379946195,305.19382000629,349.22823143301,391.99543598175,448.5538823653,457.27406033445,523.2511306012],description:"PsAristo Redup. Diatonic, 14 + 2 + 14 parts"},arist_diatinv:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,440,493.88330125613,523.2511306012],description:"Lydian octave species on E, major mode, 12 + 12 + 6 parts"},arist_diatred:{frequencies:[261.6255653006,299.37379946195,342.56848033562,349.22823143301,391.99543598175,448.5538823653,513.27277840175,523.2511306012],description:"Aristo Redup. Diatonic, Dorian Mode, 14 + 14 + 2 parts"},arist_diatred2:{frequencies:[261.6255653006,271.89678302796,308.14612137864,349.22823143301,391.99543598175,407.38487419079,461.69751437372,523.2511306012],description:"PsAristo 2 Redup. Diatonic 2, 4 + 13 + 13 parts"},arist_diatred3:{frequencies:[261.6255653006,282.57123920205,314.13668154225,349.22823143301,391.99543598175,423.37848741825,470.6732130613,523.2511306012],description:"PsAristo 3 Redup. Diatonic, 8 + 11 + 11 parts"},arist_enh:{frequencies:[261.6255653006,269.29177952703,277.18263097687,349.22823143301,391.99543598175,403.48177901006,415.30469757995,523.2511306012],description:"Aristoxenos' Enharmonion, Dorian mode"},arist_enh2:{frequencies:[261.6255653006,270.59109411209,279.86402025325,349.22823143301,391.99543598175,405.42855124795,419.32224210861,523.2511306012],description:"PsAristo 2 Enharmonic, 3.5 + 3.5 + 23 parts"},arist_enh3:{frequencies:[261.6255653006,267.99870394401,274.52693220706,349.22823143301,391.99543598175,401.54435471309,411.32564531909,523.2511306012],description:"PsAristo Enharmonic, 2.5 + 2.5 + 25 parts"},arist_hemchrom:{frequencies:[261.6255653006,273.20871865617,285.30470202322,349.22823143301,391.99543598175,409.35055662695,427.47405410759,523.2511306012],description:"Aristoxenos's Chromatic Hemiolion, Dorian Mode"},arist_hemchrom2:{frequencies:[261.6255653006,273.20871865617,293.66476791741,349.22823143301,391.99543598175,409.35055662695,440,523.2511306012],description:"PsAristo C/H Chromatic, 4.5 + 7.5 + 18 parts"},arist_hemchrom3:{frequencies:[261.6255653006,271.81876914348,282.83844897362,348.83408706747,392.4383479509,407.72815371522,424.25767346043,523.2511306012],description:"Dorian mode of Aristoxenos' Hemiolic Chromatic according to Ptolemy's interpret"},arist_hypenh2:{frequencies:[261.6255653006,267.3544191957,273.20871865617,349.22823143301,391.99543598175,400.57901831518,409.35055662695,523.2511306012],description:"PsAristo 2nd Hyperenharmonic, 37.5 + 37.5 + 425 cents"},arist_hypenh3:{frequencies:[261.6255653006,265.43099677612,269.29177952703,349.22823143301,391.99543598175,397.69714089209,403.48177901006,523.2511306012],description:"PsAristo 3 Hyperenharmonic, 1.5 + 1.5 + 27 parts"},arist_hypenh4:{frequencies:[261.6255653006,266.71168334607,271.8968348557,349.22823143301,391.99543598175,399.61600264311,407.38495184466,523.2511306012],description:"PsAristo 4 Hyperenharmonic, 2 + 2 + 26 parts"},arist_hypenh5:{frequencies:[261.6255653006,265.12453591719,268.67030163715,349.22823143301,391.99543598175,397.23796841836,402.55061428954,523.2511306012],description:"PsAristo Hyperenharmonic, 23 + 23 + 454 cents"},arist_intdiat:{frequencies:[261.6255653006,275.39533189537,307.79478270659,348.83408706747,392.4383479509,413.09299784305,461.69217405988,523.2511306012],description:"Dorian mode of Aristoxenos's Intense Diatonic according to Ptolemy"},arist_penh2:{frequencies:[261.6255653006,269.29177952703,339.28638158975,349.22823143301,391.99543598175,403.48177901006,508.3551866238,523.2511306012],description:"Permuted Aristoxenos's Enharmonion, 3 + 24 + 3 parts"},arist_penh3:{frequencies:[261.6255653006,329.62755691287,339.28638158975,349.22823143301,391.99543598175,493.88330125613,508.3551866238,523.2511306012],description:"Permuted Aristoxenos's Enharmonion, 24 + 3 + 3 parts"},arist_pschrom2:{frequencies:[261.6255653006,278.52001838539,296.50560089735,349.22823143301,391.99543598175,417.30851459865,444.25644015807,523.2511306012],description:"PsAristo 2 Chromatic, 6.5 + 6.5 + 17 parts"},arist_softchrom:{frequencies:[261.6255653006,271.89678302796,282.57123920205,349.22823143301,391.99543598175,407.38487419079,423.37848741825,523.2511306012],description:"Aristoxenos's Chromatic Malakon, Dorian Mode"},arist_softchrom2:{frequencies:[261.6255653006,277.18263097687,324.90175210669,349.22823143301,391.99543598175,415.30469757995,486.80259447109,523.2511306012],description:"Aristoxenos' Soft Chromatic, 6 + 16.5 + 9.5 parts"},arist_softchrom3:{frequencies:[261.6255653006,281.2143451833,329.62755691287,349.22823143301,391.99543598175,421.34544350737,493.88330125613,523.2511306012],description:"Aristoxenos's Chromatic Malakon, 9.5 + 16.5 + 6 parts"},arist_softchrom4:{frequencies:[261.6255653006,277.18263097687,297.93622032612,349.22823143301,391.99543598175,415.30469757995,446.39994737251,523.2511306012],description:"PsAristo S. Chromatic, 6 + 7.5 + 16.5 parts"},arist_softchrom5:{frequencies:[261.6255653006,270.64713651786,280.31310567921,348.83408706747,392.4383479509,405.97070477679,420.46965851882,523.2511306012],description:"Dorian mode of Aristoxenos' Soft Chromatic according to Ptolemy's interpretati"},arist_softdiat:{frequencies:[261.6255653006,277.18263097687,302.26980244078,349.22823143301,391.99543598175,415.30469757995,452.89298412314,523.2511306012],description:"Aristoxenos's Diatonon Malakon, Dorian Mode"},arist_softdiat2:{frequencies:[261.6255653006,277.18263097687,320.24370022528,349.22823143301,391.99543598175,415.30469757995,479.82340237272,523.2511306012],description:"Dorian Mode, 6 + 15 + 9 parts"},arist_softdiat3:{frequencies:[261.6255653006,285.30470202322,329.62755691287,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Dorian Mode, 9 + 15 + 6 parts"},arist_softdiat4:{frequencies:[261.6255653006,285.30470202322,302.26980244078,349.22823143301,391.99543598175,427.47405410759,452.89298412314,523.2511306012],description:"Dorian Mode, 9 + 6 + 15 parts"},arist_softdiat5:{frequencies:[261.6255653006,302.26980244078,320.24370022528,349.22823143301,391.99543598175,452.89298412314,479.82340237272,523.2511306012],description:"Dorian Mode, 15 + 6 + 9 parts"},arist_softdiat6:{frequencies:[261.6255653006,302.26980244078,329.62755691287,349.22823143301,391.99543598175,452.89298412314,493.88330125613,523.2511306012],description:"Dorian Mode, 15 + 9 + 6 parts"},arist_softdiat7:{frequencies:[261.6255653006,275.39533189537,299.00064605783,348.83408706747,392.4383479509,413.09299784305,448.50096908674,523.2511306012],description:"Dorian mode of Aristoxenos's Soft Diatonic according to Ptolemy"},arist_synchrom:{frequencies:[261.6255653006,277.18263097687,293.66476791741,349.22823143301,391.99543598175,415.30469757995,440,523.2511306012],description:"Aristoxenos's Chromatic Syntonon, Dorian Mode"},arist_syndiat:{frequencies:[261.6255653006,277.18263097687,311.12698372208,349.22823143301,391.99543598175,415.30469757995,466.16376151809,523.2511306012],description:"Aristoxenos's Diatonon Syntonon, Dorian Mode"},arist_unchrom:{frequencies:[261.6255653006,271.89678302796,293.66476791741,349.22823143301,391.99543598175,407.38487419079,440,523.2511306012],description:"Aristoxenos's Unnamed Chromatic, Dorian Mode, 4 + 8 + 18 parts"},arist_unchrom2:{frequencies:[261.6255653006,282.57123920205,293.66476791741,349.22823143301,391.99543598175,423.37848741825,440,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 8 + 4 + 18 parts"},arist_unchrom3:{frequencies:[261.6255653006,311.12698372208,323.3415889232,349.22823143301,391.99543598175,466.16376151809,484.46499093218,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 18 + 4 + 8 parts"},arist_unchrom4:{frequencies:[261.6255653006,311.12698372208,336.03572815422,349.22823143301,391.99543598175,466.16376151809,503.48470957687,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 18 + 8 + 4 parts"},arith13:{frequencies:[261.6255653006,269.80136421624,294.32876096318,318.85615771011,327.03195662575,343.38355445704,367.91095120397,371.99885066179,392.4383479509,449.66894036041,457.84473927605,490.54793493862,523.2511306012],description:"The first 13 terms of the arithmetic series, octave reduced"},arith22:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,312.72430852337,318.85615771011,327.03195662575,343.38355445704,349.51540364377,367.91095120397,371.99885066179,388.35044849308,392.4383479509,429.2294430713,449.66894036041,457.84473927605,472.15238737843,490.54793493862,517.11928141447,523.2511306012],description:"The first 22 terms of the arithmetic series, octave reduced"},arnautoff_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,361.75386806997,367.91095120397,372.08969287196,378.42269266694,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,523.2511306012],description:"Philip Arnautoff, transposed Archytas enharmonic (2005), 1/1 vol 12/1"},"aron-neidhardt":{frequencies:[261.6255653006,275.62199471997,292.53519855339,310.07474405997,327.04005607367,348.83408706747,367.49599295996,391.42133845759,413.43299207996,437.43855491017,465.11211608996,489.99465727995,523.2511306012],description:"Aron-Neidhardt equal beating well temperament"},art_nam:{frequencies:[261.6255653006,287.78812183066,317.68818643644,324.77656382143,348.83408706747,353.19451315581,392.4383479509,431.68218274599,473.41768959156,523.2511306012],description:"Artificial Nam System"},artusi:{frequencies:[261.6255653006,276.63528606528,292.50629850443,309.28767786778,327.03195662575,349.91920725962,369.99442271164,391.22137338448,413.66637442451,437.39882871549,462.49310482954,489.02679755603,523.2511306012],description:"Lute tuning of Giovanni Maria Artusi (1603). 1/4-comma w. acc. 1/2-way naturals"},astro:{frequencies:[13.75,13.8316453704,13.91377553836,13.99639338254,14.07098381034,14.15453513289,14.23858257025,14.32312915102,14.40817767355,14.49373120103,14.57979273211,14.66636528323,14.75345188876,14.84105560105,14.92917949063,15.01782664621,15.10700017487,15.1875093157,15.27769039377,15.36840704189,15.45966226264,15.55145934276,15.64380149972,15.73669197012,15.83013400973,15.92413089371,16.01868591662,16.11380239262,16.20948365552,16.30573305894,16.39263055969,16.48996755631,16.58788242969,16.68637870643,16.78545983879,16.88512929958,16.98539058219,17.08624720077,17.18770269033,17.28976060687,17.39242452751,17.49569805061,17.59958489756,17.69337767194,17.7984382082,17.90412257766,18.01043448453,18.11737765504,18.22495583753,18.33317280261,18.44203234327,18.55153827502,18.66169443603,18.77250468726,18.88397302169,18.99610312873,19.09733831271,19.21073534981,19.32480572095,19.43955342429,19.55498248173,19.67109693902,19.78790086598,19.90539835657,20.02359352906,20.14249064253,20.26209363229,20.38240680608,20.50343438087,20.62518059864,20.73509756099,20.85821935885,20.98207223488,21.1066605301,21.23198861133,21.35806087129,21.4848817288,21.61245575376,21.74078716869,21.86988059568,21.99974055944,22.13037161156,22.26177833063,22.38041714879,22.51330859954,22.64698913914,22.78146345308,22.91673625467,23.0528122852,23.18969644807,23.32739327396,23.46590772227,23.60524464792,23.74540893465,23.88640549521,24.02823927151,24.15629202037,24.29972834105,24.44401636439,24.58916114767,24.73516777819,24.8820415172,25.02978722599,25.17841022592,25.32791572621,25.478308967,25.62959521956,25.78177978645,25.93486800174,26.07308167197,26.22789959273,26.38363679833,26.54029874734,26.69789108494,26.85641902723,27.01588828389,27.17630444429,27.33767313101,27.5],description:"Astro temperament, g=132.194511, 5-limit"},athan_chrom:{frequencies:[261.6255653006,285.30470202322,329.62755691287,349.22823143301,391.99543598175,427.47405410759,493.88330125613,523.2511306012],description:"Athanasopoulos's Byzantine Liturgical mode Chromatic"},auftetf:{frequencies:[261.6255653006,264.29521392612,269.80136421624,287.78812183066,359.73515228832,380.54627680087,384.42940207435,392.4383479509,418.60090448096],description:"5/4 C.I. again"},augmented:{frequencies:[261.6255653006,312.71213182188,329.62755691287,393.99259743989,415.30469757995,496.39956701727,523.2511306012],description:"Augmented temperament, g=91.2, oct=1/3, 5-limit"},augteta:{frequencies:[261.6255653006,280.76889934699,302.93486508491,328.90071066361,359.73515228832,380.54627680087,408.39112632289,440.63253103259,478.40103369253],description:"Linear Division of the 11/8, duplicated on the 16/11"},augteta2:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,366.27579142084,373.75080757229,402.50086969323,436.04260883433,475.68284600109],description:"Linear Division of the 7/5, duplicated on the 10/7"},augtetb:{frequencies:[261.6255653006,270.8594087818,280.76889934699,302.93486508491,359.73515228832,380.54627680087,295.48299139832,408.39112632289,440.63253103259],description:"Harmonic mean division of 11/8"},augtetc:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,359.73515228832,380.54627680087,407.72815371522,439.09185784716,475.68284600109],description:"11/10 C.I."},augtetd:{frequencies:[261.6255653006,271.68808704293,282.55561052465,294.32876096318,359.73515228832,380.54627680087,395.18267206244,410.98997894494,428.11456140098],description:"11/9 C.I."},augtete:{frequencies:[261.6255653006,269.80136421624,278.50463402967,287.78812183066,359.73515228832,380.54627680087,392.4383479509,405.0976494977,418.60090448096],description:"5/4 C.I."},augtetg:{frequencies:[261.6255653006,278.50463402967,297.71185016965,319.76457981184,359.73515228832,380.54627680087,405.0976494977,433.03541842858,465.11211608996],description:"9/8 C.I."},augteth:{frequencies:[261.6255653006,278.50463402967,287.78812183066,319.76457981184,359.73515228832,380.54627680087,405.0976494977,418.60090448096,465.11211608996],description:"9/8 C.I. A gapped version of this scale is called AugTetI"},augtetj:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,380.54627680087,428.11456140098,475.68284600109],description:"9/8 C.I. comprised of 11:10:9:8 subharmonic series on 1 and 8:9:10:11 on 16/11"},augtetk:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,380.54627680087,418.60090448096,465.11211608996],description:"9/8 C.I. This is the converse form of AugTetJ"},augtetl:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,380.54627680087,428.11456140098,475.68284600109],description:"9/8 C.I. This is the harmonic form of AugTetI"},avg_bac:{frequencies:[261.6255653006,290.69507255622,307.79478270659,348.83408706747,392.4383479509,436.04260883433,461.69217405988,523.2511306012],description:"Average Bac System"},avicenna:{frequencies:[261.6255653006,290.69507255622,299.00064605783,348.83408706747,392.4383479509,436.04260883433,448.50096908674,523.2511306012],description:"Soft diatonic of Avicenna (Ibn Sina)"},avicenna_17:{frequencies:[261.6255653006,278.99913799634,283.42769574232,294.32876096318,310.07474405997,318.85615771011,331.11985608357,348.83408706747,371.99885066179,377.90359432309,392.4383479509,413.43299207996,425.14154361347,441.49314144476,465.11211608996,495.99846754905,503.87145909745,523.2511306012],description:"Tuning by Avicenna (Ibn Sina), Ahmed Mahmud Hifni, Cairo, 1977"},avicenna_19:{frequencies:[261.6255653006,275.62199471997,283.49690885483,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,358.80077526939,372.50983809402,377.99587847311,392.4383479509,413.43299207996,425.24536328225,441.49314144476,465.11211608996,478.40103369253,496.67978412536,503.45611792634,523.2511306012],description:"Arabic scale by Ibn Sina"},avicenna_chrom:{frequencies:[261.6255653006,269.10058145205,299.00064605783,348.83408706747,392.4383479509,403.65087217807,448.50096908674,523.2511306012],description:"Dorian mode a chromatic genus of Avicenna"},avicenna_chrom2:{frequencies:[261.6255653006,271.8968348557,323.34165055711,349.22823143301,391.99543598175,407.38495184466,484.46508327871,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 4 + 18 + 8 parts"},avicenna_chrom3:{frequencies:[261.6255653006,290.69507255622,339.14425131559,348.83408706747,392.4383479509,436.04260883433,508.71637697339,523.2511306012],description:"Avicenna's Chromatic permuted"},avicenna_diat:{frequencies:[261.6255653006,281.75060878526,305.22982618403,348.83408706747,392.4383479509,422.62591317789,457.84473927605,523.2511306012],description:"Dorian mode a soft diatonic genus of Avicenna"},avicenna_diff:{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,310.68035879446,343.38355445704,367.91095120397,392.4383479509,400.61414686654,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"Difference tones of Avicenna's Soft diatonic reduced by 2/1"},avicenna_enh:{frequencies:[261.6255653006,268.33391312882,279.06726965397,348.83408706747,392.4383479509,402.50086969323,418.60090448096,523.2511306012],description:"Dorian mode of Avicenna's (Ibn Sina) Enharmonic genus"},awad:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,307.79478270659,317.12189733406,327.03195662575,337.58137458142,348.83408706747,358.80077526939,369.35373924791,380.54627680087,392.4383479509,402.50086969323,413.09299784305,424.25767346043,436.04260883433,448.50096908674,461.69217405988,475.68284600109,490.54793493862,506.37206187213,523.2511306012],description:"d'Erlanger vol.5, p.37, after Mans.ur 'Awad"},awraamoff:{frequencies:[261.6255653006,294.32876096318,299.00064605783,313.95067836072,327.03195662575,343.38355445704,348.83408706747,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Awraamoff Septimal Just"},ayers:{frequencies:[261.6255653006,268.89294211451,276.57559760349,284.71017400359,293.33775503401,302.50455987882,312.26277148781,322.67153053741,333.7981350387,345.71949700436,358.52392281934,372.31330446624,387.20583664489,403.33941317176,420.87590939662,440.00663255101,460.95932933915,484.00729580611,509.48136400643,537.78588422901,569.42034800719,605.00911975764,645.34306107481,691.43899400873,744.62660893248,806.67882634352,880.01326510202,968.01459161222,1075.57176845802,1210.01823951527,1382.87798801746,1613.35765268703,1936.02918322444,2420.03647903055,3226.71530537407,4840.0729580611,9680.1459161222],description:"Lydia Ayers, algorithmic composition, subharmonics 1-37"},ayers_19:{frequencies:[261.6255653006,268.89294211451,276.57559760349,284.71017400359,293.33775503401,302.50455987882,312.26277148781,322.67153053741,333.7981350387,345.71949700436,358.52392281934,372.31330446624,387.20583664489,403.33941317176,420.87590939662,440.00663255101,460.95932933915,484.00729580611,509.48136400643,523.2511306012],description:"Scale for NINETEEN, for 19 for the 90's CD. Repeats at 37/19 (or 2/1)"},ayers_ap:{frequencies:[261.6255653006,299.00064605783,336.37572681506,388.70083987518,448.50096908674,523.2511306012],description:"Lydia Ayers' Appetizer, ICMC 96, Balinese Slendro from Singaraja,"},ayers_me:{frequencies:[261.6255653006,280.31310567921,299.00064605783,308.34441624714,336.37572681506,392.4383479509,420.46965851882,448.50096908674,504.56359022259,523.2511306012],description:"Scale for Merapi (1996), Lydia Ayers. Slendro 0 2 4 5 7 9, Pelog 0 1 3 6 8 9"},h10_27:{frequencies:[261.6255653006,281.00523680435,300.3849083081,319.76457981184,348.83408706747,368.21375857121,397.28326582684,426.35277308246,455.42228033808,484.4917875937,523.2511306012],description:"10-tET harmonic approximation, fundamental=27"},h12_24:{frequencies:[261.6255653006,272.52663052146,294.32876096318,316.13089140489,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,468.74580449691,490.54793493862,523.2511306012],description:"12-tET harmonic approximation, fundamental=24"},h14_27:{frequencies:[261.6255653006,271.31540105247,290.69507255622,300.3849083081,319.76457981184,339.14425131559,348.83408706747,368.21375857121,387.59343007496,406.97310157871,426.35277308246,455.42228033808,474.80195184183,494.18162334558,523.2511306012],description:"14-tET harmonic approximation, fundamental=27"},h15_24:{frequencies:[261.6255653006,272.52663052146,283.42769574232,305.22982618403,316.13089140489,327.03195662575,348.83408706747,359.73515228832,381.53728273004,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"15-tET harmonic approximation, fundamental=24"},hahn9:{frequencies:[261.6255653006,286.15296204753,313.95067836072,327.03195662575,366.27579142084,392.4383479509,418.60090448096,457.84473927605,490.54793493862,523.2511306012],description:"Paul Hahn's just version of 9 out of 31 scale. TL 6-8-'98"},hahn_7:{frequencies:[261.6255653006,274.70684356563,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Paul Hahn's scale with 32 consonant 7-limit dyads. TL '99, see also smithgw_hahn12"},hahn_g:{frequencies:[261.6255653006,280.50183143454,294.66523452594,309.54379154736,331.87735433448,348.63486612079,373.78884718875,392.66259958718,420.99317852788,442.25042328711,464.58101193362,498.10049926644,523.2511306012],description:'fourth of sqrt(2)-1 octave "recursive" meantone, Paul Hahn'},hahnmaxr:{frequencies:[261.6255653006,275.93321340298,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Paul Hahn's hahn_7 marvel projected to the 5-limit"},halfefg357777:{frequencies:[261.6255653006,280.31310567921,299.00064605783,320.35783506196,341.71502406609,375.57576268738,400.61414686654,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Half genus [357777]"},hamilton:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,426.35277308246,442.75095666255,479.64686971777,523.2511306012],description:"Elsie Hamilton's gamut, from article The Modes of Ancient Greek Music (1953)"},hamilton_jc:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,359.73515228832,338.57426097725,411.12588832951,383.71749577421,442.75095666255,426.35277308246,479.64686971777,523.2511306012],description:"Chalmers' permutation of Hamilton's gamut. Diatonic notes on white"},hamilton_jc2:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,359.73515228832,383.71749577421,411.12588832951,426.35277308246,442.75095666255,460.46099492906,479.64686971777,523.2511306012],description:"EH gamut, diatonic notes on white and drops 17 for 25. JC Dorian Harmonia on C"},hammond:{frequencies:[261.6255653006,226.52945288223,240.12209418,254.35818848669,269.43528366778,285.40970760065,302.50455987882,320.49131749323,339.40613876835,359.73515228832,381.06332337261,403.65087217807,427.65717404906,453.05890576445],description:'Hammond organ pitch wheel ratios, 1/1=320 Hz. Do "del 0" to get 12-tone scale'},hammond12:{frequencies:[261.6255653006,277.32410877127,293.76579515365,311.17877832054,329.62811300357,349.37146352202,370.1449018936,391.99018843668,415.46876743159,440.10130305006,466.18833124791,493.91391932426,523.2511306012],description:"Hammond organ scale, 1/1=277.0731707 Hz, A=440, see hammond for the ratios"},handblue:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'"Handy Blues" of Pitch Palette, 7-limit'},handel:{frequencies:[261.6255653006,276.07055536165,292.89641271707,310.57937447136,328.79480940231,349.02322090701,368.4933346061,391.37619916626,414.10583283548,438.86859125239,465.61660972366,492.3908742288,523.2511306012],description:"Well temperament according to Georg Friedrich H\xEF\xBF\xBDndel's rules (c. 1780)"},hanson_19:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,302.80736724606,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"JI version of Hanson's 19 out of 53-tET scale"},"harm-doreninv1":{frequencies:[261.6255653006,321.08592105074,327.03195662575,332.97799220076,380.54627680087,499.46698830115,511.35905945117,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Dorian Harmonia"},"harm-dorinv1":{frequencies:[261.6255653006,309.19384990071,321.08592105074,332.97799220076,380.54627680087,475.68284600109,499.46698830115,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Dorian Harmonia"},"harm-lydchrinv1":{frequencies:[261.6255653006,322.00069575458,342.12573923925,362.25078272391,402.50086969323,483.00104363188,503.12608711654,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Lydian Harmonia"},"harm-lydeninv1":{frequencies:[261.6255653006,342.12573923925,352.18826098158,362.25078272391,402.50086969323,503.12608711654,513.18860885887,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Lydian Harmonia"},"harm-mixochrinv1":{frequencies:[261.6255653006,336.37572681506,355.06326719367,373.75080757229,411.12588832951,485.87604984397,504.56359022259,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Mixolydian Harmonia"},"harm-mixoeninv1":{frequencies:[261.6255653006,355.06326719367,364.40703738298,373.75080757229,411.12588832951,504.56359022259,513.90736041189,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Mixolydian Harmonia"},harm10:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,331.11985608357,343.38355445704,367.91095120397,392.4383479509,400.61414686654,408.78994578219,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"6/7/8/9/10 harmonics"},harm11s:{frequencies:[261.6255653006,65.40639132515,95.13656920022,104.65022612024,116.27802902249,130.8127826503,149.50032302891,174.41704353373,196.21917397545,209.30045224048,261.6255653006,327.03195662575,348.83408706747,392.4383479509,457.84473927605,523.2511306012,588.65752192635,654.0639132515,719.47030457665,1046.5022612024],description:"Harm. 1/4-11/4 and subh. 4/1-4/11. Joseph Pehrson 1999"},harm12s:{frequencies:[261.6255653006,294.32876096318,299.00064605783,327.03195662575,348.83408706747,359.73515228832,380.54627680087,392.4383479509,418.60090448096,457.84473927605,465.11211608996,523.2511306012],description:"Harmonics 1 to 12 and subharmonics mixed"},"harm15-30":{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,366.27579142084,383.71749577421,418.60090448096,436.04260883433,453.48431318771,488.36772189445,523.2511306012],description:"Harmonics 15 to 30"},harm15:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991],description:"Fifth octave of the harmonic overtone series"},"harm16-32":{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Harmonics 16-32 & Tom Stone's Guitar Scale"},harm16:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,2093.0045224048,1395.33634826987,1046.5022612024,837.20180896192,697.66817413493,598.00129211566,523.2511306012,465.11211608996,418.60090448096,380.54627680087,348.83408706747,322.00069575458,299.00064605783,279.06726965397,261.6255653006],description:"First 16 harmonics and subharmonics"},"harm1c-dorian":{frequencies:[261.6255653006,309.19384990071,321.08592105074,332.97799220076,380.54627680087,475.68284600109,499.46698830115,523.2511306012],description:"Harm1C-Dorian"},"harm1c-hypod":{frequencies:[261.6255653006,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"HarmC-Hypodorian"},"harm1c-hypol":{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,366.27579142084,392.4383479509,418.60090448096,444.76346101102,523.2511306012],description:"HarmC-Hypolydian"},"harm1c-lydian":{frequencies:[261.6255653006,271.68808704293,281.75060878526,362.25078272391,382.37582620857,402.50086969323,422.62591317789,442.75095666255,523.2511306012],description:"Harm1C-Lydian"},"harm1c-mix":{frequencies:[261.6255653006,299.00064605783,373.75080757229,392.4383479509,411.12588832951,485.87604984397,504.56359022259,523.2511306012],description:"Harm1C-Con Mixolydian"},"harm1c-mixolydian":{frequencies:[261.6255653006,280.31310567921,299.00064605783,373.75080757229,411.12588832951,429.81342870813,448.50096908674,523.2511306012],description:"Harm1C-Mixolydian"},harm24:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"Harmonics 12 to 24"},harm24_2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Harmonics 12 to 24, mode 9"},harm3:{frequencies:[261.6255653006,327.03195662575,392.4383479509,457.84473927605],description:"Third octave of the harmonic overtone series"},"harm30-60":{frequencies:[261.6255653006,270.34641747729,279.06726965397,287.78812183066,296.50897400735,305.22982618403,313.95067836072,322.67153053741,331.39238271409,340.11323489078,348.83408706747,357.55493924415,366.27579142084,374.99664359753,383.71749577421,392.4383479509,401.15920012759,409.88005230427,418.60090448096,427.32175665765,436.04260883433,444.76346101102,453.48431318771,462.20516536439,470.92601754108,479.64686971777,488.36772189445,497.08857407114,505.80942624783,514.53027842451,523.2511306012],description:"Harmonics 30-60"},harm30:{frequencies:[261.6255653006,279.06726965397,288.69027895239,299.00064605783,310.07474405997,322.00069575458,334.88072358477,348.83408706747,364.00078650518,398.6675280771,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024,1196.00258423131,1395.33634826987,1674.40361792384,2093.0045224048,2790.67269653973,4186.0090448096,8372.0180896192,8633.6436549198,8895.2692202204,9156.894785521,9418.5203508216,9680.1459161222,9941.7714814228,10203.3970467234,10465.022612024,10726.6481773246,10988.2737426252,11249.8993079258,11511.5248732264,11773.150438527,12034.7760038276,12296.4015691282,12558.0271344288,12819.6526997294,13081.27826503,13342.9038303306,13604.5293956312,13866.1549609318,14127.7805262324,14389.406091533,14651.0316568336,14912.6572221342,15174.2827874348,15435.9083527354,15697.533918036,15959.1594833366,16220.7850486372],description:"First 30 harmonics and subharmonics"},"harm32-64":{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,335.20775554139,343.38355445704,351.55935337268,359.73515228832,367.91095120397,376.08675011961,384.26254903526,392.4383479509,400.61414686654,408.78994578219,416.96574469783,425.14154361347,433.31734252912,441.49314144476,449.66894036041,457.84473927605,466.02053819169,474.19633710734,482.37213602298,490.54793493862,498.72373385427,506.89953276991,515.07533168556,523.2511306012],description:"Harmonics 32-64"},harm37odd:{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Odd harmonics until 37"},harm4:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,490.54793493862],description:"Fourth octave of the harmonic overtone series"},"harm6-12":{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,314.76825825228,327.03195662575,331.11985608357,343.38355445704,359.73515228832,367.91095120397,392.4383479509,400.61414686654,404.70204632437,408.78994578219,441.49314144476,449.66894036041,457.84473927605,490.54793493862,494.63583439645,515.07533168556,523.2511306012],description:"First 12 harmonics of 6th through 12th harmonics"},harm6:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,523.2511306012],description:"Harmonics 6-12"},"harm60-30":{frequencies:[261.6255653006,280.31310567921,290.69507255622,313.95067836072,327.03195662575,348.83408706747,373.75080757229,392.4383479509,413.09299784305,436.04260883433,448.50096908674,490.54793493862,523.2511306012],description:"Harmonics 60 to 30 (Perkis)"},harm7lim:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,3139.5067836072,3662.7579142084,3924.383479509,4186.0090448096,4709.2601754108,5232.511306012,5494.1368713126,5755.7624366132,6279.0135672144,6540.639132515,7325.5158284168,7848.766959018,8372.0180896192,9156.894785521,9418.5203508216,10465.022612024,10988.2737426252,11773.150438527,12558.0271344288,12819.6526997294,13081.27826503,14651.0316568336,15697.533918036,16482.4106139378,16744.0361792384,18313.789571042,18837.0407016432,19621.917397545,20930.045224048,21191.6707893486,21976.5474852504,23546.300877054,25116.0542688576,25639.3053994588,26162.55653006,27470.684356563,29302.0633136672,31395.067836072],description:"7-limit harmonics"},harm8:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Harmonics 8-16"},harm9:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,356.10146388137,392.4383479509,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"6/7/8/9 harmonics, First 9 overtones of 5th through 9th harmonics"},harm_bastard:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:`Schlesinger's "Bastard" Hypodorian Harmonia & inverse 1)7 from 1.3.5.7.9.11.13`},harm_bastinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,523.2511306012],description:`Inverse Schlesinger's "Bastard" Hypodorian Harmonia & 1)7 from 1.3.5.7.9.11.13`},harm_darreg:{frequencies:[261.6255653006,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,5232.511306012,6279.0135672144,7325.5158284168,8372.0180896192,9418.5203508216,10465.022612024,11511.5248732264,12558.0271344288,13604.5293956312,14651.0316568336,15697.533918036],description:"Darreg Harmonics 4-15"},harm_mean:{frequencies:[261.6255653006,270.06509966514,279.06726965397,299.00064605783,348.83408706747,392.4383479509,405.0976494977,418.60090448096,448.50096908674,523.2511306012],description:"Harm. Mean 9-tonic 8/7 is HM of 1/1 and 4/3, etc."},"harmc-hypop":{frequencies:[261.6255653006,319.76457981184,334.29933343966,348.83408706747,363.36884069528,377.90359432309,406.97310157871,465.11211608996,494.18162334558,523.2511306012],description:"HarmC-Hypophrygian"},"harmd-15":{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,383.71749577421,418.60090448096,453.48431318771,523.2511306012],description:"HarmD-15-Harmonia"},"harmd-conmix":{frequencies:[261.6255653006,299.00064605783,336.37572681506,392.4383479509,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"HarmD-ConMixolydian"},"harmd-hypod":{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"HarmD-Hypodorian"},"harmd-hypol":{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"HarmD-Hypolydian"},"harmd-hypop":{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,363.36884069528,377.90359432309,406.97310157871,436.04260883433,465.11211608996,523.2511306012],description:"HarmD-Hypophrygian"},"harmd-lyd":{frequencies:[261.6255653006,281.75060878526,301.87565226992,322.00069575458,362.25078272391,382.37582620857,402.50086969323,442.75095666255,483.00104363188,523.2511306012],description:"HarmD-Lydian"},"harmd-mix":{frequencies:[261.6255653006,299.00064605783,336.37572681506,373.75080757229,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"HarmD-Mixolydian. Harmonics 7-14"},"harmd-phr":{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,348.83408706747,327.03195662575,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"HarmD-Phryg (with 5 extra tones)"},"harme-hypod":{frequencies:[261.6255653006,343.38355445704,351.55935337268,359.73515228832,376.08675011961,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"HarmE-Hypodorian"},"harme-hypol":{frequencies:[261.6255653006,281.24748269815,274.70684356563,340.11323489078,366.27579142084,392.4383479509,405.51962621593,418.60090448096,523.2511306012],description:"HarmE-Hypolydian"},"harme-hypop":{frequencies:[261.6255653006,334.29933343966,341.56671025356,348.83408706747,363.36884069528,377.90359432309,406.97310157871,494.18162334558,508.71637697339,523.2511306012],description:"HarmE-Hypophrygian"},"harmjc-15":{frequencies:[261.6255653006,280.31310567921,301.87565226992,313.95067836072,327.03195662575,356.76213450082,373.75080757229,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Rationalized JC Sub-15 Harmonia on C. MD=15, No planetary assignment."},"harmjc-17-2":{frequencies:[261.6255653006,277.97716313189,296.50897400735,317.68818643644,342.12573923925,370.63621750918,386.75083566176,404.33041910093,423.58424858192,444.76346101102,468.17206422213,494.18162334558,523.2511306012],description:"Rationalized JC Sub-17 Harmonia on C. MD=17, No planetary assignment."},"harmjc-17":{frequencies:[261.6255653006,269.55361273395,277.97716313189,296.50897400735,317.68818643644,342.12573923925,355.81076880882,370.63621750918,386.75083566176,404.33041910093,423.58424858192,444.76346101102,523.2511306012],description:"Rationalized JC Sub-17 Harmonia on C. MD=17, No planetary assignment."},"harmjc-19-2":{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,368.21375857121,382.37582620857,397.67085925691,414.24047839262,432.2509339749,451.89870370104,523.2511306012],description:"Rationalized JC Sub-19 Harmonia on C. MD=19, No planetary assignment."},"harmjc-19":{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,382.37582620857,414.24047839262,432.2509339749,451.89870370104,473.41768959156,497.08857407114,523.2511306012],description:"Rationalized JC Sub-19 Harmonia on C. MD=19, No planetary assignment."},"harmjc-21":{frequencies:[261.6255653006,268.0066766494,274.70684356563,289.16509849014,305.22982618403,343.38355445704,366.27579142084,392.4383479509,406.97310157871,422.62591317789,439.53094970501,457.84473927605,523.2511306012],description:"Rationalized JC Sub-21 Harmonia on C. MD=21, No planetary assignment."},"harmjc-23-2":{frequencies:[261.6255653006,273.51763645063,286.54228580542,300.86940009569,316.70463167967,334.29933343966,353.96400011258,376.08675011961,401.15920012759,429.81342870813,462.87600014722,501.44900015948,523.2511306012],description:"Rationalized JC Sub-23 Harmonia on C. MD=23, No planetary assignment."},"harmjc-23":{frequencies:[261.6255653006,273.51763645063,300.86940009569,316.70463167967,334.29933343966,376.08675011961,401.15920012759,429.81342870813,445.73244458621,462.87600014722,481.3910401531,501.44900015948,523.2511306012],description:"Rationalized JC Sub-23 Harmonia on C. MD=23, No planetary assignment."},"harmjc-25":{frequencies:[261.6255653006,272.52663052146,297.30177875068,311.45900631024,327.03195662575,363.36884069528,384.74347838324,408.78994578219,436.04260883433,467.18850946536,484.4917875937,503.12608711654,523.2511306012],description:"Rationalized JC Sub-25 Harmonia on C. MD=25, No planetary assignment."},"harmjc-27":{frequencies:[261.6255653006,271.68808704293,294.32876096318,307.12566361375,321.08592105074,353.19451315581,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,504.56359022259,523.2511306012],description:"Rationalized JC Sub-27 Harmonia on C. MD=27, No planetary assignment."},"harmjc-hypod16":{frequencies:[261.6255653006,279.06726965397,299.00064605783,310.07474405997,322.00069575458,348.83408706747,364.00078650518,380.54627680087,398.6675280771,418.60090448096,440.63253103259,465.11211608996,523.2511306012],description:"Rationalized JC Hypodorian Harmonia on C. Saturn Scale on C, MD=16. (Steiner)"},"harmjc-hypol20":{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,455.00098313148,575.57624366132,523.2511306012],description:"Rationalized JC Hypolydian Harmonia on C. Mars scale on C., MD=20"},"harmjc-hypop18":{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,336.37572681506,362.25078272391,376.74081403286,392.4383479509,409.50088481833,428.11456140098,448.50096908674,470.92601754108,523.2511306012],description:"Rationalized JC Hypophrygian Harmonia on C. Jupiter scale on C, MD =18"},"harmjc-lydian13":{frequencies:[261.6255653006,272.09058791262,283.42769574232,295.75063903546,309.19384990071,340.11323489078,358.01393146398,377.90359432309,400.13321751856,425.14154361347,453.48431318771,485.87604984397,523.2511306012],description:"Rationalized JC Lydian Harmonia on C. Mercury scale on C, MD = 26 or 13"},"harmjc-mix14":{frequencies:[261.6255653006,271.31540105247,281.75060878526,293.02063313667,305.22982618403,332.97799220076,348.83408706747,366.27579142084,385.55346465352,406.97310157871,430.91269578922,457.84473927605,523.2511306012],description:"Rationalized JC Mixolydian Harmonia on C. Moon Scale on C, MD = 14"},"harmjc-phryg12":{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,465.11211608996,483.00104363188,523.2511306012],description:"Rationalized JC Phrygian Harmonia on C. Venus scale on C, MD = 24 or 12"},harmonical:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"See pp 17 and 466-468 Helmholtz. lower 4 oct. Instr. designed & tuned by Ellis"},harmonical_up:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,359.73515228832,457.84473927605,392.4383479509,408.78994578219,425.14154361347,474.19633710734,490.54793493862,523.2511306012],description:"Upper 2 octaves of Ellis's Harmonical"},harmsub16:{frequencies:[261.6255653006,280.31310567921,294.32876096318,301.87565226992,327.03195662575,356.76213450082,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"16 harmonics on 1/1 and 16 subharmonics on 15/8"},harrison_16:{frequencies:[261.6255653006,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,370.63621750918,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:'Lou Harrison 16-tone superparticular "Ptolemy Duple"'},harrison_5:{frequencies:[261.6255653006,279.06726965397,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_1:{frequencies:[261.6255653006,285.40970760065,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_3:{frequencies:[261.6255653006,271.31540105247,348.83408706747,392.4383479509,406.97310157871,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_4:{frequencies:[261.6255653006,279.06726965397,313.95067836072,392.4383479509,490.54793493862,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_8:{frequencies:[261.6255653006,279.06726965397,313.95067836072,327.03195662575,367.91095120397,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:'Lou Harrison 8-tone tuning for "Serenade for Guitar"'},harrison_cinna:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,343.38355445704,367.91095120397,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:`Lou Harrison, "Incidental Music for Corneille's Cinna" (1955-56) 1/1=C`},harrison_diat:{frequencies:[261.6255653006,274.70684356563,313.95067836072,348.83408706747,392.4383479509,412.06026534844,470.92601754108,523.2511306012],description:"From Lou Harrison, a soft diatonic"},harrison_joy:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Lou Harrison's Joyous 6"},harrison_mid:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Lou Harrison mid mode"},harrison_mid2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,448.50096908674,470.92601754108,523.2511306012],description:"Lou Harrison mid mode 2"},harrison_min:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"From Lou Harrison, a symmetrical pentatonic with minor thirds"},harrison_mix1:{frequencies:[261.6255653006,285.40970760065,313.95067836072,392.4383479509,425.14154361347,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix2:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,490.54793493862,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix3:{frequencies:[261.6255653006,313.95067836072,336.37572681506,392.4383479509,418.60090448096,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix4:{frequencies:[261.6255653006,280.31310567921,327.03195662575,392.4383479509,448.50096908674,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_songs:{frequencies:[261.6255653006,271.31540105247,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,406.97310157871,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:'Shared gamut of "Four Strict Songs" (1951-55), each pentatonic'},harrisonj:{frequencies:[261.6255653006,272.17712546173,292.13970819848,313.56642833783,326.21280531667,350.13858362887,364.25994396351,390.97625694066,406.744629928,436.57694340361,468.59728067062,487.49616921257,523.2511306012],description:"John Harrison's temperament (1775), almost 3/10-comma. Third = 1200/pi"},harrisonm_rev:{frequencies:[261.6255653006,257.53766584278,294.32876096318,289.72987407313,331.11985608357,343.38355445704,372.50983809402,392.4383479509,386.30649876417,441.49314144476,457.84473927605,496.67978412536,523.2511306012],description:'Michael Harrison, piano tuning for "Revelation" (2001), 1/1=F'},haverstick13:{frequencies:[261.6255653006,283.85429714132,301.75671459889,307.97166902637,320.78822215662,341.02002673508,362.52783176564,377.61479489998,401.43059675514,426.7484383229,444.50800708553,482.27514684959,502.34551296122,523.2511306012],description:"Neil Haverstick, scale in 34-tET, MMM 21-5-2006"},hawkes:{frequencies:[261.6255653006,274.56549986328,292.86986732103,310.24975557428,327.84547867349,349.70184487387,366.99801003998,391.46454285105,411.84824958905,438.2147004401,467.42901507992,490.54793493862,523.2511306012],description:"William Hawkes' modified 1/5-comma meantone (1807)"},hawkes2:{frequencies:[261.6255653006,275.15193010334,293.04845178801,312.10900487995,328.24542585003,349.59527202198,367.66978141816,391.58387939843,411.8292495232,438.61558204759,467.14415995873,491.2960898965,523.2511306012],description:"Meantone with fifth tempered 1/6 of 53-tET step by William Hawkes (1808)"},hawkes3:{frequencies:[261.6255653006,274.56549986328,292.86986732103,311.6193417424,327.84547867349,349.70184487387,366.99801003998,391.46454285105,411.84824958905,438.2147004401,467.42901237995,490.54793493862,523.2511306012],description:"William Hawkes' modified 1/5-comma meantone (1811)"},hbarnes:{frequencies:[261.6255653006,276.71351472429,293.33333347996,310.95136287868,328.88393162803,349.42547049952,369.15973155124,391.77416758435,414.83597850347,439.25532436715,466.16376151809,493.04743111995,523.2511306012],description:"Variation on Barnes with 1/6P -> 1/8P. OdC '99"},hebdome1:{frequencies:[261.6255653006,265.71346475842,267.23182741418,269.80136421624,273.30527803723,280.31310567921,283.42769574232,287.78812183066,289.07289023169,292.28481123426,294.32876096318,300.63580584096,303.67253115248,308.34441624714,311.77046531655,315.35224388912,318.85615771011,323.76163705949,327.03195662575,334.03978426773,336.37572681506,340.11323489078,341.63159754654,346.88746827803,350.74177348112,359.73515228832,364.40703738298,367.91095120397,370.01329949656,375.7947573012,382.62738925213,385.43052030892,389.71308164569,392.4383479509,400.84774112128,404.70204632437,409.95791705585,411.12588832951,417.54973033466,420.46965851882,425.14154361347,431.68218274599,437.28844485957,441.49314144476,445.38637902364,449.66894036041,455.50879672872,462.5166243707,467.65569797482,470.92601754108,478.28423656516,479.64686971777,485.87604984397,490.54793493862,501.0596764016,504.56359022259,510.16985233617,513.90736041189,523.2511306012],description:"Wilson 1.3.5.7.9.11.13.15 hebdomekontany, 1.3.5.7 tonic"},helmholtz:{frequencies:[261.6255653006,279.06726965397,327.03195662575,348.83408706747,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Helmholtz's Chromatic scale and Gipsy major from Slovakia"},helmholtz_24:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,327.03195662575,331.11985608357,344.91651675372,348.83408706747,367.91095120397,372.50983809402,388.03108134794,392.4383479509,408.78994578219,413.89982010446,436.04260883433,441.49314144476,459.88868900496,465.63729761752,490.54793493862,496.67978412536,517.37477513058,523.2511306012],description:"Simplified Helmholtz 24"},helmholtz_hd:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,523.2511306012],description:"Helmholtz Harmonic Decad"},helmholtz_pure:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,327.03195662575,330.74639366397,344.91651675372,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,408.78994578219,413.43299207996,436.04260883433,441.49314144476,459.88868900496,465.11211608996,490.54793493862,496.11959049595,516.79124009995,523.2511306012],description:"Helmholtz's two-keyboard harmonium tuning untempered"},helmholtz_temp:{frequencies:[261.6255653006,275.81645389904,279.10671937395,290.77707354032,294.24580701304,306.54917537161,310.20605716322,327.03195662575,330.9330448436,344.77062435684,348.88325535732,367.80710710303,372.19474608839,387.75741156435,392.38304142029,408.78994578219,413.66637442451,436.10414127513,441.30625330017,459.75895986689,465.24324076996,490.4788828408,496.3296094287,517.08305349316,523.2511306012],description:"Helmholtz's two-keyboard harmonium tuning"},hem_chrom:{frequencies:[261.6255653006,269.55361273395,285.40970760065,348.83408706747,392.4383479509,404.33041910093,428.11456140098,523.2511306012],description:"Hemiolic Chromatic genus has the strong or 1:2 division of the 12/11 pyknon"},hem_chrom11:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"11'al Hemiolic Chromatic genus with a CI of 11/9, Winnington-Ingram"},hem_chrom13:{frequencies:[261.6255653006,272.09058791262,283.42769574232,348.83408706747,392.4383479509,408.13588186894,425.14154361347,523.2511306012],description:"13'al Hemiolic Chromatic or neutral-third genus has a CI of 16/13"},hem_chrom2:{frequencies:[261.6255653006,269.29177952703,285.30470202322,349.22823143301,391.99543598175,403.48177901006,427.47405410759,523.2511306012],description:"1:2 Hemiolic Chromatic genus 3 + 6 + 21 parts"},hemiwuer24:{frequencies:[261.6255653006,274.60778382002,280.48822448524,286.49458884928,292.62957327549,307.15025309186,313.72755695954,320.44570714783,327.30771955335,350.90592546776,358.42021185082,366.09540888186,373.9349620795,392.49012653442,400.89489544613,409.47964376542,418.24822532303,439.00227453173,448.4030528436,458.00513880662,467.8128437444,491.02635713596,501.54117720983,512.28116095218,523.2511306012],description:"Hemiw\xEF\xBF\xBDrschmidt[24] in 229-tET tuning."},hen12:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Adjusted Hahn12"},hen22:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,366.27579142084,381.53728273004,392.4383479509,415.27867508032,418.60090448096,436.04260883433,448.50096908674,457.84473927605,484.4917875937,490.54793493862,508.71637697339,523.2511306012],description:"Adjusted Hahn22"},hept_diamond:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,316.53463456122,325.57848126297,327.03195662575,334.88072358477,336.37572681506,348.83408706747,392.4383479509,406.97310157871,408.78994578219,418.60090448096,420.46965851882,432.48307733364,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Inverted-Prime Heptatonic Diamond based on Archytas's Enharmonic"},hept_diamondi:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,281.36411960997,289.40309445597,294.32876096318,297.67175429757,327.03195662575,336.37572681506,348.83408706747,361.75386806997,367.91095120397,372.08969287196,378.42269266694,392.4383479509,406.97310157871,418.60090448096,459.88868900496,465.11211608996,473.02836583367,486.54346200035,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Prime-Inverted Heptatonic Diamond based on Archytas's Enharmonic"},hept_diamondp:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,339.14425131559,348.83408706747,358.80077526939,361.75386806997,367.91095120397,372.08969287196,378.42269266694,381.53728273004,392.4383479509,403.65087217807,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Heptatonic Diamond based on Archytas's Enharmonic, 27 tones"},herf:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Sims:Reflections on This and That, 1991. Used by Herf in Ekmelischer Gesang"},heun:{frequencies:[261.6255653006,275.15237829755,293.0485888979,312.10878854255,328.24573110938,349.59519124833,367.67029324081,391.58396987353,411.83001550364,438.61588607285,467.14394139401,491.29666030217,523.2511306012],description:"Well temperament for organ of Jan Heun (1805), subset of 55-tET"},hexagonal13:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Star hexagonal 13-tone scale"},hexagonal37:{frequencies:[261.6255653006,272.52663052146,279.06726965397,282.55561052465,283.88190679319,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,313.95067836072,322.99452506247,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,423.83341578697,436.04260883433,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,482.22824196207,484.4917875937,490.54793493862,502.32108537715,523.2511306012],description:"Star hexagonal 37-tone scale"},hexany1:{frequencies:[261.6255653006,305.22982618403,327.03195662575,381.53728273004,436.04260883433,457.84473927605,523.2511306012],description:"Two out of 1 3 5 7 hexany on 1.3"},hexany10:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"1.3.5.9 Hexany"},hexany11:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:"1.3.7.9 Hexany on 1.3"},hexany12:{frequencies:[261.6255653006,290.69507255622,305.22982618403,339.14425131559,406.97310157871,436.04260883433,523.2511306012],description:"3.5.7.9 Hexany on 3.9"},hexany13:{frequencies:[261.6255653006,285.40970760065,327.03195662575,356.76213450082,392.4383479509,475.68284600109,523.2511306012],description:"1.3.5.11 Hexany on 1.11"},hexany14:{frequencies:[261.6255653006,287.78812183066,340.11323489078,383.71749577421,453.48431318771,498.83274450648,523.2511306012],description:"5.11.13.15 Hexany (5.15), used in The Giving, by Stephen J. Taylor"},hexany15:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,418.60090448096,523.2511306012],description:"1.3.5.15 2)4 hexany (1.15 tonic) degenerate, symmetrical pentatonic"},hexany16:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,465.11211608996,523.2511306012],description:"1.3.9.27 Hexany, a degenerate pentatonic form"},hexany17:{frequencies:[261.6255653006,327.03195662575,334.88072358477,408.78994578219,418.60090448096,523.2511306012],description:"1.5.25.125 Hexany, a degenerate pentatonic form"},hexany18:{frequencies:[261.6255653006,299.00064605783,341.71502406609,400.61414686654,457.84473927605,523.2511306012],description:"1.7.49.343 Hexany, a degenerate pentatonic form"},hexany19:{frequencies:[261.6255653006,299.00064605783,327.03195662575,418.60090448096,457.84473927605,523.2511306012],description:"1.5.7.35 Hexany, a degenerate pentatonic form"},hexany2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,490.54793493862,523.2511306012],description:"Hexany Cluster 2"},hexany20:{frequencies:[261.6255653006,279.06726965397,305.22982618403,398.6675280771,436.04260883433,465.11211608996,523.2511306012],description:"3.5.7.105 Hexany"},hexany21:{frequencies:[261.6255653006,279.06726965397,310.07474405997,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"3.5.9.135 Hexany"},hexany21a:{frequencies:[261.6255653006,279.06726965397,310.07474405997,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"3.5.9.135 Hexany + 4/3. Is Didymos Diatonic tetrachord on 1/1 and inv. on 3/2"},hexany22:{frequencies:[261.6255653006,276.76092858245,359.73515228832,380.54627680087,494.63583439645,523.2511306012],description:"1.11.121.1331 Hexany, a degenerate pentatonic form"},hexany23:{frequencies:[261.6255653006,348.83408706747,359.73515228832,380.54627680087,392.4383479509,523.2511306012],description:"1.3.11.33 Hexany, degenerate pentatonic form"},hexany24:{frequencies:[261.6255653006,327.03195662575,359.73515228832,380.54627680087,418.60090448096,523.2511306012],description:"1.5.11.55 Hexany, a degenerate pentatonic form"},hexany25:{frequencies:[261.6255653006,299.00064605783,359.73515228832,380.54627680087,457.84473927605,523.2511306012],description:"1.7.11.77 Hexany, a degenerate pentatonic form"},hexany26:{frequencies:[261.6255653006,294.32876096318,359.73515228832,380.54627680087,465.11211608996,523.2511306012],description:"1.9.11.99 Hexany, a degenerate pentatonic form"},hexany3:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 3"},hexany4:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Hexany Cluster 4"},hexany49:{frequencies:[261.6255653006,299.00064605783,305.22982618403,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"1.3.21.49 2)4 hexany (1.21 tonic)"},hexany5:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 5"},hexany6:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Hexany Cluster 6"},hexany7:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Hexany Cluster 7"},hexany8:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,340.65828815182,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 8"},hexany9:{frequencies:[261.6255653006,299.00064605783,313.95067836072,358.80077526939,418.60090448096,448.50096908674,523.2511306012],description:"1.3.5.7 Hexany on 5.7"},hexany_cl:{frequencies:[261.6255653006,294.32876096318,301.39265122629,313.95067836072,327.03195662575,348.83408706747,353.19451315581,376.74081403286,392.4383479509,418.60090448096,470.92601754108,502.32108537715,523.2511306012],description:"Hexany Cluster 1"},hexany_cl2:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,490.54793493862,502.32108537715,523.2511306012],description:"Composed of 1.3.5.45, 1.3.5.75, 1.3.5.9, and 1.3.5.25 hexanies"},hexany_flank:{frequencies:[261.6255653006,267.07609791103,299.00064605783,305.22982618403,327.03195662575,348.83408706747,373.75080757229,381.53728273004,427.14378008261,436.04260883433,457.84473927605,498.33441009638,523.2511306012],description:"Hexany Flanker, 7-limit, from Wilson"},hexany_tetr:{frequencies:[261.6255653006,269.10058145205,279.06726965397,336.37572681506,348.83408706747,358.80077526939,523.2511306012],description:"Complex 12 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans:{frequencies:[261.6255653006,271.31540105247,279.06726965397,339.14425131559,348.83408706747,361.75386806997,523.2511306012],description:"Complex 1 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,358.80077526939,372.08969287196,523.2511306012],description:"Complex 2 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,523.2511306012],description:"Complex 9 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_u2:{frequencies:[261.6255653006,274.70684356563,279.06726965397,280.31310567921,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,418.60090448096,436.04260883433,448.50096908674,457.84473927605,478.40103369253,488.36772189445,490.54793493862,498.33441009638,523.2511306012],description:"Hexany union = genus [335577] minus two corners"},hexany_union:{frequencies:[261.6255653006,274.70684356563,280.31310567921,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,488.36772189445,498.33441009638,523.2511306012],description:"The union of all of the pitches of the 1.3.5.7 hexany on each tone as 1/1"},hexany_urot:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,290.69507255622,299.00064605783,305.22982618403,327.03195662575,333.84512238879,343.38355445704,348.83408706747,356.10146388137,373.75080757229,381.53728273004,392.4383479509,400.61414686654,406.97310157871,436.04260883433,445.12682985172,448.50096908674,457.84473927605,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Aggregate rotations of 1.3.5.7 hexany, 1.3 = 1/1"},hexanys:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,343.38355445704,367.91095120397,392.4383479509,429.2294430713,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Hexanys 1 3 5 7 9"},hexanys2:{frequencies:[261.6255653006,314.76825825228,425.14154361347,457.84473927605,269.80136421624,371.99885066179,392.4383479509,472.15238737843,318.85615771011,359.73515228832,343.38355445704,292.28481123426,523.2511306012],description:"Hexanys 1 3 7 11 13"},higgs:{frequencies:[261.6255653006,392.4383479509,418.60090448096,422.62591317789,423.58424858192,425.14154361347,436.04260883433,523.2511306012],description:"From Greg Higgs announcement of the formation of an Internet Tuning list"},hinsz_gr:{frequencies:[261.6255653006,274.68983337859,292.34127285051,310.07474405997,326.6631048533,348.83408706747,366.25311135453,391.11111150212,412.03474986192,437.02884834934,465.11211608996,489.99465727995,523.2511306012],description:"Reconstructed Hinsz temperament, organ Pelstergasthuiskerk Groningen. Ortgies,2002"},hipkins:{frequencies:[261.6255653006,275.62199471997,299.00064605783,348.83408706747,392.4383479509,413.43299207996,448.50096908674,523.2511306012],description:"Hipkins' Chromatic"},hirajoshi:{frequencies:[261.6255653006,291.13134764929,317.84796618517,388.16504068057,412.91271853531,523.2511306012],description:"Observed Japanese pentatonic koto scale. Helmholtz/Ellis p.519, nr.112"},hirajoshi2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"Japanese pentatonic koto scale, theoretical. Helmholz/Ellis p.519, nr.110"},hirajoshi3:{frequencies:[261.6255653006,292.47977325983,321.54118165335,396.32121331049,415.54465627623,522.94897617031],description:"Observed Japanese pentatonic koto scale. Helmholtz/Ellis p.519, nr.111"},hirashima:{frequencies:[261.6255653006,277.33928225406,292.50627485027,312.00669222389,327.03195662575,349.91912034749,369.78570985692,391.22147055517,416.00892317314,437.39889945791,468.01003810189,489.02683710225,523.2511306012],description:"Tatsushi Hirashima, temperament of chapel organ of Kobe Shoin Women's Univ."},hjelmboogie:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,367.91095120397,392.4383479509,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:`Paul Hjelmstad's "Boogie Woogie" scale, TL 20-3-2006`},ho_mai_nhi:{frequencies:[261.6255653006,287.78812183066,348.83408706747,392.4383479509,431.68218274599,523.2511306012],description:"Ho Mai Nhi (Nam Hue) dan tranh scale, Vietnam"},hochgartz:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.86458629683,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.49999887294,438.2147004401,465.53241962975,490.54793493862,523.2511306012],description:"Michael Hochgartz, modified 1/5-comma meantone temperament"},hofmann1:{frequencies:[261.6255653006,262.65154790962,279.06726965397,348.83408706747,392.4383479509,393.97732186443,418.60090448096,523.2511306012],description:"Hofmann's Enharmonic #1, Dorian mode"},hofmann2:{frequencies:[261.6255653006,263.56353245097,279.06726965397,348.83408706747,392.4383479509,395.34529867646,418.60090448096,523.2511306012],description:"Hofmann's Enharmonic #2, Dorian mode"},hofmann_chrom:{frequencies:[261.6255653006,264.26824777838,290.69507255622,348.83408706747,392.4383479509,396.40237166758,436.04260883433,523.2511306012],description:"Hofmann's Chromatic"},holder:{frequencies:[261.6255653006,274.23214485994,292.57879058083,312.45989404005,327.40114268825,349.76744711215,366.57630213591,391.03837375367,409.94826565972,437.46806069696,467.28984664562,489.70152554512,523.2511306012],description:"William Holder's equal beating meantone temperament (1694). 3/2 beats 2.8 Hz"},holder2:{frequencies:[261.6255653006,274.23214485994,292.57879058083,312.45989404005,327.40114268825,349.76744711215,366.57630213591,391.03837375367,410.64811919433,437.46806069696,467.46154552107,489.70152554512,523.2511306012],description:"Holder's irregular e.b. temperament with improved Eb and G#"},hummel:{frequencies:[261.6255653006,277.1703574486,293.54676487235,311.03465677994,329.45811370906,349.13199096171,369.8583804246,391.99149393462,415.308682162,439.8732919971,466.10512967869,493.74031485884,523.2511306012],description:"Johann Nepomuk Hummel's quasi-equal temperament (1829)"},hummel2:{frequencies:[261.6255653006,277.22760066578,293.66431501254,311.21660561883,329.70790803338,349.18845812715,369.99117208793,391.90679138833,415.30984563838,439.96491544382,466.29335337935,494.03030700757,523.2511306012],description:"Johann Nepomuk Hummel's temperament according to the second bearing plan"},husmann:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,314.30517589183,331.11985608357,348.83408706747],description:"Tetrachord division according to Husmann"},hwerck3:{frequencies:[261.6255653006,276.40121172404,293.00227310437,310.60041853231,328.69828757761,349.03110370139,368.74309237173,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Variation on Werckmeister III with 1/4P -> 1/6P and 0P -> 1/24P. OdC '99"},hyper_enh:{frequencies:[261.6255653006,264.93728131706,268.33391312882,348.83408706747,392.4383479509,397.40592197559,402.50086969323,523.2511306012],description:"13/10 HyperEnharmonic. This genus is at the limit of usable tunings"},hyper_enh2:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,392.4383479509,400.78810003496,409.50088481833,523.2511306012],description:"Hyperenharmonic genus from Kathleen Schlesinger's enharmonic Phrygian Harmonia"},hypo_chrom:{frequencies:[261.6255653006,275.39533189537,282.83844897362,290.69507255622,348.83408706747,373.75080757229,387.59343007496,402.50086969323,418.60090448096,427.14378008261,436.04260883433,455.00098313148,523.2511306012],description:"Hypolydian Chromatic Tonos"},hypo_diat:{frequencies:[261.6255653006,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,387.59343007496,402.50086969323,436.04260883433,455.00098313148,475.68284600109,498.33441009638,523.2511306012],description:"Hypolydian Diatonic Tonos"},hypo_enh:{frequencies:[261.6255653006,268.33391312882,271.81876914348,275.39533189537,348.83408706747,373.75080757229,387.59343007496,402.50086969323,410.39304360878,414.45634107026,418.60090448096,465.11211608996,523.2511306012],description:"Hypolydian Enharmonic Tonos"},hypod_chrom:{frequencies:[261.6255653006,279.06726965397,288.69027895239,299.00064605783,322.00069575458,348.83408706747,364.00078650518,380.54627680087,398.6675280771,408.39112632289,418.60090448096,465.11211608996,523.2511306012],description:"Hypodorian Chromatic Tonos"},hypod_chrom2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,380.54627680087,398.6675280771,418.60090448096,523.2511306012],description:"Schlesinger's Chromatic Hypodorian Harmonia"},hypod_chrom2inv:{frequencies:[261.6255653006,327.03195662575,343.38355445704,359.73515228832,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypodorian Harmonia"},hypod_chromenh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,380.54627680087,398.6675280771,418.60090448096,523.2511306012],description:"Schlesinger's Hypodorian Harmonia in a mixed chromatic-enharmonic genus"},hypod_chrominv:{frequencies:[261.6255653006,277.97716313189,294.32876096318,359.73515228832,392.4383479509,408.78994578219,425.14154361347,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypodorian Inverted"},hypod_diat:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012],description:"Hypodorian Diatonic Tonos"},hypod_diat2:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,364.00078650518,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"Schlesinger's Hypodorian Harmonia, a subharmonic series through 13 from 16"},hypod_diatcon:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,364.00078650518,418.60090448096,465.11211608996,523.2511306012],description:"A Hypodorian Diatonic with its own trite synemmenon replacing paramese"},hypod_diatinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Inverted Schlesinger's Hypodorian Harmonia, a harmonic series from 8 from 16"},hypod_enh:{frequencies:[261.6255653006,270.06509966514,274.49239638096,279.06726965397,310.07474405997,348.83408706747,364.00078650518,380.54627680087,389.39619021485,393.97732186443,398.6675280771,452.54151835779,523.2511306012],description:"Hypodorian Enharmonic Tonos"},hypod_enhinv:{frequencies:[261.6255653006,343.38355445704,351.55935337268,359.73515228832,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypodorian Harmonia"},hypod_enhinv2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,359.73515228832,392.4383479509,400.61414686654,408.78994578219,523.2511306012],description:"A harmonic form of Schlesinger's Hypodorian enharmonic inverted"},hypodorian_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,392.4383479509,418.60090448096,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,784.8766959018,897.00193817349,966.00208726375,1046.5022612024],description:"Diatonic Perfect Immutable System in the Hypodorian Tonos"},hypol_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the chromatic genus"},hypol_chrominv:{frequencies:[261.6255653006,313.95067836072,327.03195662575,340.11323489078,366.27579142084,392.4383479509,470.92601754108,497.08857407114,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypolydian Harmonia"},hypol_chrominv2:{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,366.27579142084,392.4383479509,418.60090448096,523.2511306012],description:"harmonic form of Schlesinger's Chromatic Hypolydian inverted"},hypol_chrominv3:{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,392.4383479509,418.60090448096,444.76346101102,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypolydian inverted"},hypol_diat:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,373.75080757229,402.50086969323,436.04260883433,475.68284600109,523.2511306012],description:"Schlesinger's Hypolydian Harmonia, a subharmonic series through 13 from 20"},hypol_diatcon:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,402.50086969323,436.04260883433,475.68284600109,523.2511306012],description:"A Hypolydian Diatonic with its own trite synemmenon replacing paramese"},hypol_diatinv:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Inverted Schlesinger's Hypolydian Harmonia, a harmonic series from 10 from 20"},hypol_enh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the enharmonic genus"},hypol_enhinv:{frequencies:[261.6255653006,327.03195662575,333.57259575826,340.11323489078,366.27579142084,392.4383479509,497.08857407114,510.16985233617,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypolydian Harmonia"},hypol_enhinv2:{frequencies:[261.6255653006,268.16620443312,274.70684356563,340.11323489078,366.27579142084,379.35706968587,392.4383479509,523.2511306012],description:"A harmonic form of Schlesinger's Hypolydian enharmonic inverted"},hypol_enhinv3:{frequencies:[261.6255653006,268.16620443312,274.70684356563,340.11323489078,392.4383479509,405.51962621593,418.60090448096,523.2511306012],description:"A harmonic form of Schlesinger's Hypolydian enharmonic inverted"},hypol_pent:{frequencies:[261.6255653006,272.52663052146,290.69507255622,348.83408706747,373.75080757229,402.50086969323,415.27867508032,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the pentachromatic genus"},hypol_tri:{frequencies:[261.6255653006,270.64713651786,280.31310567921,348.83408706747,373.75080757229,402.50086969323,413.09299784305,424.25767346043,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the first trichromatic genus"},hypol_tri2:{frequencies:[261.6255653006,270.64713651786,290.69507255622,348.83408706747,373.75080757229,402.50086969323,413.09299784305,436.04260883433,2093.0045224048],description:"Schlesinger's Hypolydian Harmonia in the second trichromatic genus"},hypolydian_pis:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,366.27579142084,406.97310157871,457.84473927605,488.36772189445,523.2511306012,563.50121757052,610.45965236807,665.95598440153,732.55158284168,813.94620315742,915.6894785521,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Hypolydian Tonos"},hypop_chrom:{frequencies:[261.6255653006,277.01530443593,285.40970760065,294.32876096318,336.37572681506,362.25078272391,376.74081403286,392.4383479509,409.50088481833,418.60090448096,428.11456140098,470.92601754108,523.2511306012],description:"Hypophrygian Chromatic Tonos"},hypop_chromenh:{frequencies:[261.6255653006,269.10058145205,277.01530443593,362.25078272391,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Schlesinger's Hypophrygian Harmonia in a mixed chromatic-enharmonic genus"},hypop_chrominv:{frequencies:[261.6255653006,319.76457981184,334.29933343966,348.83408706747,377.90359432309,465.11211608996,494.18162334558,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypophrygian Harmonia"},hypop_chrominv2:{frequencies:[261.6255653006,276.16031892841,290.69507255622,348.83408706747,377.90359432309,406.97310157871,436.04260883433,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypophrygian inverted"},hypop_diat:{frequencies:[261.6255653006,294.32876096318,303.82323712328,313.95067836072,336.37572681506,362.25078272391,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012],description:"Hypophrygian Diatonic Tonos"},hypop_diat2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,362.25078272391,376.74081403286,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Schlesinger's Hypophrygian Harmonia"},hypop_diat2inv:{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,363.36884069528,377.90359432309,436.04260883433,465.11211608996,523.2511306012],description:"Inverted Schlesinger's Hypophrygian Harmonia, a harmonic series from 9 from 18"},hypop_diatcon:{frequencies:[261.6255653006,294.32876096318,313.95067836072,362.25078272391,376.74081403286,428.11456140098,470.92601754108,523.2511306012],description:"A Hypophrygian Diatonic with its own trite synemmenon replacing paramese"},hypop_enh:{frequencies:[261.6255653006,269.10058145205,273.00058987889,277.01530443593,313.95067836072,362.25078272391,376.74081403286,392.4383479509,400.78810003496,405.0976494977,409.50088481833,470.92601754108,523.2511306012],description:"Hypophrygian Enharmonic Tonos"},hypop_enhinv:{frequencies:[261.6255653006,334.29933343966,341.56671025356,348.83408706747,377.90359432309,494.18162334558,508.71637697339,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypophrygian Harmonia"},hypop_enhinv2:{frequencies:[261.6255653006,268.89294211451,276.16031892841,348.83408706747,377.90359432309,392.4383479509,406.97310157871,523.2511306012],description:"A harmonic form of Schlesinger's Hypophrygian enharmonic inverted"},hypophryg_pis:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,377.90359432309,425.14154361347,453.48431318771,523.2511306012,544.18117582525,566.85539148463,618.38769980142,680.22646978156,755.80718864618,850.28308722695,971.75209968794,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Hypophrygian Tonos"},kanzelmeyer_11:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,474.19633710734,506.89953276991,523.2511306012],description:"Bruce Kanzelmeyer, 11 harmonics from 16 to 32. Base 388.3614815 Hz"},kanzelmeyer_18:{frequencies:[261.6255653006,277.97716313189,302.50455987882,310.68035879446,327.03195662575,335.20775554139,351.55935337268,359.73515228832,376.08675011961,384.26254903526,392.4383479509,425.14154361347,433.31734252912,457.84473927605,474.19633710734,482.37213602298,498.72373385427,506.89953276991,523.2511306012],description:"Bruce Kanzelmeyer, 18 harmonics from 32 to 64. Base 388.3614815 Hz"},kayolonian:{frequencies:[261.6255653006,267.90457886781,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:"19-tone 5-limit scale of the Kayenian Imperium on Kayolonia (reeks van Sjauriek)"},kayolonian_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"See Barnard: De Keiaanse Muziek, p. 11. (uitgebreide reeks)"},kayolonian_40:{frequencies:[261.6255653006,267.90457886781,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,319.36714514233,327.03195662575,331.11985608357,334.88072358477,340.65828815182,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,401.85686830172,408.78994578219,413.43299207996,418.60090448096,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,490.54793493862,496.11959049595,502.32108537715,510.98743222773,523.2511306012],description:"See Barnard: De Keiaanse Muziek"},kayolonian_f:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"Kayolonian scale F and periodicity block (128/125, 16875/16384)"},kayolonian_p:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,418.60090448096,459.88868900496,490.54793493862,523.2511306012],description:"Kayolonian scale P"},kayolonian_s:{frequencies:[261.6255653006,287.4304306281,306.59245933664,327.03195662575,359.28803828513,392.4383479509,418.60090448096,459.88868900496,490.54793493862,523.2511306012],description:"Kayolonian scale S"},kayolonian_t:{frequencies:[261.6255653006,279.06726965397,297.67175429757,317.51653791741,348.83408706747,381.01984550089,418.60090448096,446.50763144636,476.27480687611,523.2511306012],description:"Kayolonian scale T"},kayolonian_z:{frequencies:[261.6255653006,279.06726965397,297.67175429757,327.03195662575,348.83408706747,392.4383479509,418.60090448096,446.50763144636,476.27480687611,523.2511306012],description:"Kayolonian scale Z"},kayoloniana:{frequencies:[261.6255653006,267.90457886781,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:"Amendment by Rasch of Kayolonian scale's note 9"},"kebyar-b":{frequencies:[261.6255653006,280.40333801024,299.48910562989,384.37207420335,402.78320381033,523.2511306012],description:"Gamelan Kebyar tuning begbeg, Andrew Toth, 1993"},"kebyar-s":{frequencies:[261.6255653006,283.00682726281,309.51375468789,385.26118901859,416.26536455926,523.2511306012],description:"Gamelan kebyar tuning sedung, Andrew Toth, 1993"},"kebyar-t":{frequencies:[261.6255653006,293.15632631094,325.27731021818,397.46748834812,422.07621250312,523.2511306012],description:"Gamelan kebyar tuning tirus, Andrew Toth, 1993"},keenan:{frequencies:[261.6255653006,279.77706779472,292.57243455474,305.95298478736,327.17991022208,349.87955533643,365.88099775759,391.26571058456,418.41160951721,437.54730686196,457.55816161244,489.30340830564,523.2511306012],description:"Dave Keenan 31-ET mode has 3 4:5:6:7 tetrads + 3 inv. is Fokker's 12-tone mode"},keenan2:{frequencies:[261.6255653006,278.14493936283,295.70736791055,306.84360659709,326.21810583671,346.81593583087,369.99442271164,393.35634555235,418.19337019276,433.94238997708,461.34206956593,490.47180009913,523.2511306012],description:"Dave Keenan strange 9-limit temperament TL 19-11-98"},keenan3:{frequencies:[261.6255653006,272.10155294862,282.99701916355,314.19580976213,326.77681046955,339.86157848985,377.32935907335,392.4383479509,408.1523292189,453.14877154631,471.29371440761,523.2511306012],description:"Chain of 1/6 kleisma tempered 6/5s, 10 tetrads, Dave Keenan, 30-Jun-99, TD235"},keenan3eb:{frequencies:[261.6255653006,272.52625793573,283.88113057344,314.31833892864,327.41448875753,341.05629284549,377.62371824792,393.35750206077,409.74683779238,453.67913385439,472.5817850056,523.2511306012],description:"Chain of 11 equal beating minor thirds, 6/5=3/2 same"},keenan3eb2:{frequencies:[261.6255653006,271.88912362492,282.55531921581,314.13446783,326.45794787121,339.26487744082,377.18204004818,391.97887331053,407.35618327602,452.88341485066,470.6500094,523.2511306012],description:"Chain of 11 equal beating minor thirds, 6/5=3/2 opposite"},keenan3j:{frequencies:[261.6255653006,291.88463270656,302.72962012827,313.97755176024,350.29154279212,363.30663963964,405.32593044476,420.38583225541,436.00528786292,486.43275040712,504.50618240233,523.2511306012],description:"Chain of 11 nearly just 19-tET minor thirds, Dave Keenan, 1-Jul-99"},keenan7:{frequencies:[261.6255653006,269.29177952703,279.86396690685,288.06460709314,296.5055443788,305.19382000629,314.13668154225,326.46944327063,336.03572815422,349.22823143301,359.46139971304,369.99442271164,380.8360868427,391.99543598175,407.38487419079,419.32216217931,435.78442404634,448.5538823653,461.69751437372,475.22628419761,489.15147723638,508.3551866238,523.2511306012],description:"Dave Keenan, 22 out of 72-tET periodicity block. TL 29-04-2001"},keenanmt:{frequencies:[261.6255653006,279.93529690293,292.50627485027,305.64177427204,327.03195662575,349.91912034749,365.63284274659,391.22147055517,418.60090448096,437.39890198442,457.04105241293,489.02683710225,523.2511306012],description:"Dave Keenan 1/4-comma tempered version of keenan with 6 7-limit tetrads"},keenanst:{frequencies:[261.6255653006,268.50609092997,277.46533822773,286.72352888229,294.26410920268,304.08282473376,314.22916151277,322.49311613356,333.25374941849,342.01803421352,353.43015577174,365.22306367425,374.82811589307,387.33500976677,397.52158713557,410.7856943143,424.4923875554,435.65616946139,450.19271626925,462.0323945472,477.44903730562,493.38008744487,506.35555615636,523.2511306012],description:"Dave Keenan, 7-limit temperament, g=260.353"},kelletat:{frequencies:[261.6255653006,275.58617649731,292.98704147282,310.05056613125,327.14272545641,348.82502010853,367.43868454848,391.99543598175,413.39000965417,437.97145880542,465.08793784701,489.90551202062,523.2511306012],description:"Herbert Kelletat's Bach-tuning (1967)"},kellner:{frequencies:[261.6255653006,275.62199471997,292.73769384471,310.07474405997,327.54963108844,348.83408706747,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,491.32444638706,523.2511306012],description:"Herbert Anton Kellner's Bach tuning. 5 1/5 Pyth. comma and 7 pure fifths"},kellners:{frequencies:[261.6255653006,275.84425785506,292.86986732103,310.2247482054,327.84547867349,348.89032888179,367.85164222246,391.46454285105,413.69968681881,438.2147004401,465.26210635182,491.68894399626,523.2511306012],description:"Kellner's temperament with 1/5 synt. comma instead of 1/5 Pyth. comma"},kepler1:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Kepler's Monochord no.1, Harmonices Mundi (1619)"},kepler2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Kepler's Monochord no.2"},kepler3:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,496.67978412536,523.2511306012],description:"Kepler's choice system, Harmonices Mundi, Liber III (1619)"},kilroy:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Kilroy"},kimball:{frequencies:[261.6255653006,272.52663052146,275.93321340298,290.69507255622,294.32876096318,306.59245933664,327.03195662575,331.11985608357,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Buzz Kimball 18-note just scale"},kimball_53:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,281.75060878526,283.42769574232,285.40970760065,287.78812183066,296.50897400735,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,461.69217405988,475.68284600109,479.64686971777,483.00104363188,485.87604984397,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Buzz Kimball 53-note just scale"},kirkwood:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Scale based on Kirkwood gaps of the asteroid belt"},"kirn-stan":{frequencies:[261.6255653006,276.16031892841,292.60754013883,310.68035879446,327.03195662575,348.83408706747,368.21375857121,392.4383479509,414.24047839262,437.1900893839,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger temperament improved by Charles Earl Stanhope (1806)"},kirnberger:{frequencies:[261.6255653006,275.62199471997,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.22147055517,413.43299207996,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger's well-temperament, also called Kirnberger III, letter to Forkel 1779"},kirnberger1:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,438.75944753732,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger's temperament 1 (1766)"},kirnberger2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,438.75941205608,465.11211608996,490.54793493862,523.2511306012],description:'Kirnberger 2: 1/2 synt. comma. "Die Kunst des reinen Satzes" (1774)'},kirnberger3:{frequencies:[261.6255653006,275.93321340298,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.22147055517,413.89982010446,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger 3: 1/4 synt. comma (1744)"},kirnberger3v:{frequencies:[261.6255653006,275.93321340298,292.50063201309,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.21579858034,413.43299207996,437.39258595147,465.11211608996,490.54793493862,523.2511306012],description:"Variant well-temperament like Kirnberger 3, Kenneth Scholz, MTO 4.4, 1998"},klais:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,327.21690075602,348.83408706747,367.49599295996,391.99543598175,413.43299207996,438.01699797506,465.11211608996,489.99465727995,523.2511306012],description:"Johannes Klais, Bach temperament"},klonaris:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Johnny Klonaris, 19-limit harmonic scale"},knot:{frequencies:[261.6255653006,268.26840191956,280.31310567921,286.15296204753,294.32876096318,299.00064605783,306.59245933664,327.03195662575,348.83408706747,357.69120255941,366.27579142084,367.91095120397,381.53728273004,392.4383479509,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,459.88868900496,476.92160341255,478.40103369253,490.54793493862,523.2511306012],description:"Smallest knot in 3-D, American Scientist, Nov-Dec '97 p506-510, trefoil knot"},koepf_36:{frequencies:[261.6255653006,272.26348829648,274.95017225036,277.18263097687,288.45311779165,291.29956028699,293.66476791741,305.60543275312,308.62113352716,311.12698372208,323.77767743764,326.97270111135,329.62755691287,343.03050002254,346.41550969045,349.22823143301,363.4281550135,367.0144478307,369.99442271164,385.03871768789,388.83826257328,391.99543598175,407.93431128975,411.95978887118,415.30469757995,432.19134773437,436.45619266906,440,457.89078262597,462.40922843744,466.16376151809,485.11838543951,489.90551202062,493.88330125613,513.96502576833,519.03680970905,523.2511306012],description:"Siegfried Koepf, 36-tone subset of 48-tone scale (1991)"},koepf_48:{frequencies:[261.6255653006,269.44737349144,272.26348829648,274.95017225036,277.18263097687,285.46954808622,288.45311779165,291.29956028699,293.66476791741,302.44445076078,305.60543275312,308.62113352716,311.12698372208,320.42873367481,323.77767743764,326.97270111135,329.62755691287,339.48241770075,343.03050002254,346.41550969045,349.22823143301,359.66909273781,363.4281550135,367.0144478307,369.99442271164,381.0561299374,385.03871768789,388.83826257328,391.99543598175,403.71490654806,407.93431128975,411.95978887118,415.30469757995,427.72104413038,432.19134773437,436.45619266906,440,453.15466093696,457.89078262597,462.40922843744,466.16376151809,480.10063929961,485.11838543951,489.90551202062,493.88330125613,508.64890891624,513.96502576833,519.03680970905,523.2511306012],description:"Siegfried Koepf, 48-tone scale (1991)"},kolinsky:{frequencies:[261.6255653006,277.2273508585,293.75953199293,311.27759533081,329.84032939425,349.51003591412,370.35272620855,392.4383479509,415.84102607989,440.63929776914,466.91639276282,494.76049384407,524.26505360912],description:"Kolinsky's 7th root of 3/2, also invented by Augusto Novaro"},kora1:{frequencies:[261.6255653006,293.66476791741,326.78388880949,349.22823143301,391.99543598175,440,489.62261321254,523.2511306012],description:"Kora tuning Tomora Ba, also called Silaba, 1/1=F, R. King"},kora2:{frequencies:[261.6255653006,298.79793764201,315.65242990842,349.22823143301,391.99543598175,447.69106452518,472.94426956511,523.2511306012],description:"Kora tuning Tomora Mesengo, also called Tomora, 1/1=F, R. King"},kora3:{frequencies:[261.6255653006,291.13134764929,330.58093469714,349.22823143301,391.99543598175,436.20415848357,495.31175393723,523.2511306012],description:"Kora tuning Hardino, 1/1=F, R.King"},kora4:{frequencies:[261.6255653006,291.13134764929,330.58093469714,371.06455309218,391.99543598175,436.20415848357,495.31175393723,523.2511306012],description:"Kora tuning Sauta, 1/1=F, R. King"},korea_5:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,470.92601754108,523.2511306012],description:'According to Lou Harrison, called "the Delightful" in Korea'},kornerup:{frequencies:[261.6255653006,272.97226153513,280.22976278938,292.38332274669,305.0639823888,313.17470478367,326.75708630452,340.92853547661,349.99278713323,365.17196824772,374.88056242272,391.13935185123,408.10305876469,418.95303445734,437.12302030357,456.08130156398,468.2068441924,488.51296691354,509.70006023951,523.2511306012],description:"Kornerup's temperament with fifth of (15 - sqrt 5) / 22 octaves"},kornerup_11:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Kornerup's doric minor"},kraeh_22:{frequencies:[261.6255653006,267.07609791103,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,320.49131749323,336.37572681506,343.38355445704,353.19451315581,366.27579142084,381.53728273004,392.4383479509,400.61414686654,412.06026534844,436.04260883433,441.49314144476,457.84473927605,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"Kraehenbuehl & Schmidt 7-limit 22-tone tuning"},kraeh_22a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,311.45900631024,313.95067836072,318.93402246168,320.49131749323,327.03195662575,336.37572681506,343.38355445704,348.83408706747,350.39138209902,353.19451315581,358.80077526939,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,400.61414686654,403.65087217807,408.78994578219,412.06026534844,418.60090448096,420.46965851882,436.04260883433,441.49314144476,448.50096908674,457.84473927605,467.18850946536,470.92601754108,476.92160341255,478.40103369253,488.36772189445,490.54793493862,498.33441009638,504.56359022259,523.2511306012],description:'Kraehenbuehl & Schmidt 7-limit 22-tone tuning with "inflections" for some tones'},kraeh_22b:{frequencies:[261.6255653006,269.10058145205,279.06726965397,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.91095120397,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,448.50096908674,457.84473927605,476.92160341255,490.54793493862,504.56359022259,523.2511306012],description:"Best 22-tET approximation of KRAEH_22A"},kring1:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,523.2511306012],description:"Double-tie circular mirroring of 4:5:6 and Partch's 5-limit tonality Diamond"},kring1p3:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,282.55561052465,290.69507255622,294.32876096318,301.39265122629,306.59245933664,310.07474405997,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,436.04260883433,441.49314144476,446.50763144636,454.2110508691,465.11211608996,470.92601754108,484.4917875937,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Third carthesian power of double-tie mirroring of 4:5:6 with kleismas removed"},kring2:{frequencies:[261.6255653006,299.00064605783,305.22982618403,348.83408706747,392.4383479509,448.50096908674,457.84473927605,523.2511306012],description:"Double-tie circular mirroring of 6:7:8"},kring2p3:{frequencies:[261.6255653006,265.7783520514,271.31540105247,288.32205155576,294.32876096318,299.00064605783,305.22982618403,310.07474405997,329.51091606373,336.37572681506,343.38355445704,348.83408706747,356.10146388137,384.42940207435,392.4383479509,398.6675280771,406.97310157871,415.4517078616,441.49314144476,448.50096908674,457.84473927605,465.11211608996,474.80195184183,504.56359022259,515.07533168556,523.2511306012],description:"Third power of 6:7:8 mirroring with 1029/1024 intervals removed"},kring3:{frequencies:[261.6255653006,305.22982618403,313.95067836072,366.27579142084,373.75080757229,436.04260883433,448.50096908674,523.2511306012],description:"Double-tie circular mirroring of 3:5:7"},kring3bp:{frequencies:[261.6255653006,336.37572681506,366.27579142084,436.04260883433,470.92601754108,560.62621135843,610.45965236807,784.8766959018],description:"Double-tie BP circular mirroring of 3:5:7"},kring4:{frequencies:[261.6255653006,299.00064605783,327.03195662575,366.27579142084,373.75080757229,418.60090448096,457.84473927605,523.2511306012],description:"Double-tie circular mirroring of 4:5:7"},kring4p3:{frequencies:[261.6255653006,267.90457886781,273.37201925287,280.42990280658,286.15296204753,293.02063313667,299.00064605783,305.10270005901,320.49131749323,327.03195662575,334.88072358477,341.71502406609,350.53737850823,357.69120255941,366.27579142084,373.75080757229,382.72082695402,390.53145607553,400.61414686654,408.78994578219,418.60090448096,427.14378008261,448.68784449053,457.84473927605,467.18850946536,478.40103369253,488.16432009441,500.76768358318,510.98743222773,523.2511306012],description:"Third power of 4:5:7 mirroring with 3136/3125 intervals removed"},kring5:{frequencies:[261.6255653006,290.69507255622,336.37572681506,366.27579142084,373.75080757229,406.97310157871,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 5:7:9"},kring5p3:{frequencies:[261.6255653006,266.96486255163,272.4643387202,278.02483542877,284.8811711051,290.69507255622,296.68339105088,302.73815413355,308.91648380975,316.53463456122,322.99452506247,329.64821227876,336.37572681506,343.24053756638,351.70514951247,358.88280562497,366.27579142084,373.75080757229,381.45007420827,389.23476960028,398.83363954714,406.97310157871,415.27867508032,423.83341578697,432.48307733364,443.14848838571,452.19233508746,461.42075008924,470.92601754108,480.53675259294,492.38720931745,502.43592787495,512.78610798918,523.2511306012],description:"Third power of 5:7:9 mirroring with 250047/250000 intervals removed"},kring6:{frequencies:[261.6255653006,305.22982618403,336.37572681506,348.83408706747,392.4383479509,406.97310157871,448.50096908674,523.2511306012],description:"Double-tie circular mirroring of 6:7:9"},kring6p3:{frequencies:[261.6255653006,267.07609791103,271.31540105247,276.96780524107,288.32205155576,294.32876096318,299.00064605783,305.22982618403,310.07474405997,316.53463456122,324.36230800023,329.51091606373,336.37572681506,343.38355445704,348.83408706747,356.10146388137,361.75386806997,369.29040698809,378.42269266694,384.42940207435,392.4383479509,398.6675280771,406.97310157871,415.4517078616,422.04617941496,432.48307733364,441.49314144476,448.50096908674,457.84473927605,465.11211608996,474.80195184183,494.26637409559,504.56359022259,512.57253609913,523.2511306012],description:"Third power of 6:7:9 mirroring with 118098/117649 intervals removed"},krousseau:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,343.38355445704,348.83408706747,366.27579142084,392.4383479509,406.97310157871,457.84473927605,465.11211608996,488.36772189445,523.2511306012],description:"Kami Rousseau's tri-blues scale"},krousseau2:{frequencies:[261.6255653006,271.34627406517,291.88463270656,302.72962012827,337.74269681563,350.29154279212,363.30663963964,390.80553229045,405.32593044476,452.20508247496,469.00678383895,486.43275040712,523.2511306012],description:"19-tET version of Kami Rousseau's tri-blues scale"},kukuya:{frequencies:[261.6255653006,307.37578701508,361.96165147221,412.67427966689,460.80941404108],description:"African Kukuya Horns (aerophone, ivory, one note only)"},kurzw_arab:{frequencies:[261.6255653006,282.02769802256,290.29174037004,302.26980244078,321.16993719469,349.63190883464,374.94271441196,393.35634555235,411.95978887118,429.20598402782,447.69106452518,496.7443381147,523.2511306012],description:'Kurzweil "Empirical Arabic"'},kurzw_harmp:{frequencies:[261.6255653006,285.46954808622,287.62123438446,306.48933163909,308.79945157961,324.90175210669,345.81573716922,348.42227432308,427.72104413038,430.94493093825,458.94995811222,462.40922843744,523.2511306012],description:'Kurzweil "Empirical Bali/Java Harmonic Pelog"'},kurzw_melp:{frequencies:[261.6255653006,281.53940445957,283.98935579354,303.66981774726,307.02089761314,323.96475278212,344.02264297658,347.0163224393,421.10213511252,424.76655906637,451.06547253417,454.99063696457,523.2511306012],description:'Kurzweil "Empirical Bali/Java Melodic Pelog"'},kurzw_slen:{frequencies:[261.6255653006,266.96862289802,288.95340229325,306.66641795878,318.95145438803,352.26720984209,352.26720984209,389.06292924114,404.41509766528,429.20598402782,464.81937009253,474.03826620294,523.2511306012],description:'Kurzweil "Empirical Bali/Java Slendro, Siam 7"'},kurzw_tibet:{frequencies:[261.6255653006,270.53905136894,299.14332201883,312.9293240034,325.46525203475,353.69443592699,373.86139962101,397.69714089209,408.87792937274,438.98455767189,471.30800669535,489.90551202062,523.2511306012],description:'Kurzweil "Empirical Tibetian Ceremonial"'},kwazy:{frequencies:[13.75,13.8425266748,13.92142234948,14.00076777204,14.0805654254,14.16081788707,14.25610896047,14.337361936,14.41907801447,14.50125983535,14.58391005315,14.66703125278,14.76572882594,14.84988638999,14.93452361174,15.01964313826,15.10524789197,15.20689431811,15.29356631363,15.38073220905,15.46839499707,15.55655742089,15.66124080485,15.75050226619,15.84027256598,15.93055451337,16.0213510245,16.11266503216,16.22109048883,16.31354291552,16.40652227664,16.50003157548,16.59407373656,16.70573878851,16.80095347779,16.89671084507,16.99301388521,17.08986590459,17.18726993397,17.30292672931,17.40154500258,17.50072545316,17.60047118468,17.70078541898,17.81989766631,17.92146252619,18.023606257,18.12633215803,18.22964354736,18.35231459047,18.45691397115,18.56210951808,18.66790462912,18.77430261304,18.88130712282,19.00836345475,19.11670199894,19.22565790976,19.335234928,19.44543648263,19.57628896102,19.68786429416,19.80007566685,19.91292659048,20.02642071019,20.16118263857,20.27609169854,20.39165568498,20.50787833065,20.62476338959,20.74231451743,20.88189396397,21.00091073243,21.12060583931,21.24098302814,21.36204643183,21.50579618625,21.62836889778,21.75164008927,21.875613993,22.00029448845,22.14833914981,22.27457391904,22.40152829449,22.52920624893,22.65761190639,22.78674941445,22.94008616579,23.07083364148,23.202326315,23.33456843363,23.46756413327,23.62548236417,23.76013626908,23.89555763659,24.03175070206,24.16872014141,24.30647024079,24.47003364934,24.60950094889,24.74976328722,24.89082505353,25.03269080417,25.2011409598,25.3447753621,25.48922841152,25.63450477396,25.78060914191,25.95409219477,26.10201805756,26.25078702673,26.40040390759,26.55087337946,26.70220060843,26.88188539622,27.03509923475,27.18918616153,27.34415146685,27.5],description:"Kwazy temperament, g=162.741892, p=600, 5-limit"},lambdoma5_12:{frequencies:[261.6255653006,21.80213044172,23.78414230005,26.16255653006,29.06950725562,32.70319566257,37.37508075723,43.60426088343,47.56828460011,52.32511306012,58.13901451124,65.40639132515,71.35242690016,74.75016151446,78.48766959018,87.20852176687,95.13656920022,98.10958698772,104.65022612024,109.01065220858,112.12524227169,116.27802902249,118.92071150027,130.8127826503,145.34753627811,149.50032302891,156.97533918036,163.51597831288,174.41704353373,186.87540378614,196.21917397545,209.30045224048,218.02130441717,261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012,654.0639132515,784.8766959018,1046.5022612024,1308.127826503],description:"5x12 Lambdoma"},lambdoma_prim:{frequencies:[261.6255653006,8.43953436454,9.02157121726,11.37502457829,13.76976659477,15.38973913533,16.87906872907,18.04314243452,20.12504348466,22.75004915657,23.78414230005,25.31860309361,27.06471365179,27.53953318954,30.77947827066,34.12507373486,37.37508075723,40.25008696932,41.30929978431,42.19767182268,45.10785608631,46.16921740599,47.56828460011,52.32511306012,56.87512289143,59.07674055175,60.37513045398,63.15099852083,68.84883297384,71.35242690016,74.75016151446,76.94869567665,79.62517204801,87.20852176687,96.38836616338,100.62521742331,104.65022612024,107.72817394731,112.12524227169,118.92071150027,130.8127826503,140.87530439263,156.97533918036,166.48899610038,174.41704353373,186.87540378614,261.6255653006,366.27579142084,392.4383479509,436.04260883433,523.2511306012,610.45965236807,654.0639132515,784.8766959018,915.6894785521,1308.127826503,1831.3789571042],description:"Prime Lambdoma"},lambert:{frequencies:[261.6255653006,276.15600972046,293.19138048956,310.67551062492,328.56569462012,349.50994910362,368.20801314466,391.67947347082,414.23401437362,438.93663604468,466.01326570444,491.89550004992,523.2511306012],description:"Lambert's temperament (1774) 1/7 Pyth. comma, 5 pure"},lara:{frequencies:[261.6255653006,286.4606265643,298.28060863281,313.11013128311,341.05478972476,377.11473546037,395.40657391157,420.13030572059,450.02449304881,492.74350578058,523.2511306012,577.23956595248,599.67057787333],description:"Sundanese 'multi-laras' gamelan Ki Barong tuning, Weintraub, TL 15-2-99 1/1=497"},lebanon:{frequencies:[261.6255653006,285.30470202322,311.12698372208,349.22823143301,391.99543598175,415.30469757995,466.16376151809,523.2511306012],description:"Lebanese scale? Dastgah Shur"},leedy:{frequencies:[261.6255653006,269.80136421624,290.69507255622,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,436.04260883433,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:'Douglas Leedy, scale for "Pastorale" (1987), 1/1=f, 10/9 only in vocal parts'},leeuw1:{frequencies:[261.6255653006,311.12698372208,349.22823143301,380.8360868427,415.30469757995,466.16376151809,508.3551866238,554.36526195375,604.53960488156,659.25511382574,739.98884542327,806.96355802011,880,987.76660251225],description:'Ton de Leeuw: non-oct. mode from "Car nos vignes sont en fleurs",part 5. 1/1=A'},leftpistol:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Left Pistol"},legros1:{frequencies:[261.6255653006,274.22463192287,292.50627485027,309.49749487796,327.03195662575,348.83408706747,365.63284274659,391.22147055517,411.33694767869,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Example of temperament with 3 just major thirds"},legros2:{frequencies:[261.6255653006,275.07759559501,292.50627485027,309.49749487796,327.03195662575,348.83408706747,366.77012764335,391.22147055517,412.61639318626,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Example of temperament with 2 just major thirds"},"lehman-bach":{frequencies:[261.6255653006,276.86979852503,293.00227310437,310.77584116741,328.14198392915,349.6228209638,369.15973155124,391.5530240856,414.83597850347,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Brad Lehman's Bach keyboard temperament"},lemba10:{frequencies:[261.6255653006,283.65327551057,298.9489942119,324.1191713102,341.59697290141,370.35792032269,401.5404117335,423.19307614937,458.82405293702,483.56568031466,524.27976214079],description:"10-note Lemba scale, Herman Miller"},lemba12:{frequencies:[261.6255653006,276.1173031791,283.29759227608,298.9897683987,323.75689816556,341.69016129748,369.99442271164,390.48883496177,400.64329718448,422.83538548023,457.86139629758,483.22286023634,523.2511306012],description:"Lemba[12] in 270-et (poptimal)"},lemba22:{frequencies:[261.6255653006,268.42900262332,276.1173031791,283.29759227608,298.9897683987,306.76484424299,315.55115201964,323.75689816556,341.69016129748,350.57563899649,360.61677037127,369.99442271164,379.61593604418,390.48883496177,400.64329718448,422.83538548023,433.83100318771,446.25671880862,457.86139629758,483.22286023634,495.78882330645,509.98912747823,523.2511306012],description:"Lemba[22] in 270-et (poptimal)"},lemba24:{frequencies:[261.6255653006,275.73346179752,283.65327551057,290.60211247891,298.9489942119,307.53562105228,315.06951922004,324.1191713102,332.05932738876,341.59697290141,351.40856549044,360.01724743313,370.35792032269,390.32910012969,401.5404117335,411.37720579947,423.19307614937,435.34833037897,446.01333880095,458.82405293702,470.06416125332,483.56568031466,497.45499966368,509.64147516102,524.27976214079],description:"24-note Lemba scale for mapping millerlemba24.kbm"},lemba8:{frequencies:[261.6255653006,275.73334871592,283.6533803711,298.94898212432,307.53584843097,324.11927802481,341.59694330429,351.4088110982,370.358025147],description:"Lemba temperament (4 down, 3 up) TOP tuning, Herman Miller, TL 22-11-2004"},leusden:{frequencies:[261.6255653006,275.54404190554,292.50627485027,310.51268695591,327.03195662575,349.91912034749,367.08095907728,391.22147055517,413.66634097248,437.39890198442,466.16376151809,489.02683710225,523.2511306012],description:"Organ in Gereformeerde kerk De Koningshof, Henk van Eeken, 1984, a'=415, modif. 1/4 mean"},leven:{frequencies:[261.6255653006,279.06726965397,298.97057995496,313.95067836072,330.39003879965,348.83408706747,369.35382642901,392.4383479509,418.60090448096,448.46752658184,465.11211608996,502.32108537715,523.2511306012],description:"Leven's monochord ?"},ligon:{frequencies:[261.6255653006,279.66870773512,292.40504357126,309.19384990071,329.87571277032,342.12573923925,366.27579142084,392.4383479509,411.12588832951,436.04260883433,462.87600014722,485.87604984397,523.2511306012],description:"Jacky Ligon, strictly proper all prime scale, TL 08-09-2000"},ligon2:{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,382.37582620857,411.78935130154,441.2028763945,470.61640148747,500.02992658044,529.4434516734,558.85697676637],description:"Jacky Ligon, 19-limit symmetrical non-octave scale, 2001"},ligon3:{frequencies:[261.6255653006,273.51763645063,286.54228580542,300.86940009569,316.70463167967,334.29933343966,341.25073734861,376.08675011961,401.15920012759,427.90314680276,471.58492637221,481.3910401531,508.13498682828,534.87893350345,561.62288017862,588.36682685379,615.11077352897],description:"Jacky Ligon, 23-limit non-octave scale (2001)"},ligon4:{frequencies:[261.6255653006,278.49926570678,289.46759601673,308.13698517552,320.27237341115,340.92853547661,362.91692931321,386.32347802158,401.53832428939,427.43578342293,444.26952759254,472.92296174596,491.54841572131,523.2511306012,556.99853141357,592.92249142473,616.27397035104,640.54474682231,681.85707095323,725.83385862642,754.41987838254,803.07664857879],description:"Jacky Ligon, 2/1 Phi Scale, TL 12-04-2001"},ligon5:{frequencies:[261.6255653006,273.22765669781,280.653851324,293.09977429907,314.41721066027,328.36040925687,337.28508524374,352.24238645938,377.86132347501,394.61802538749,405.34378524393,423.31898451752,454.1076550834,474.24531572837,487.13535379632,508.73764640933,545.73895363303],description:'Jacky Ligon, scale for "Two Golden Flutes" (2001)'},ligon6:{frequencies:[261.6255653006,280.653851324,293.09977429907,314.41721066027,328.36040925687,352.24238645938,377.86132347501,394.61802538749,423.31898451752,442.09155952525,474.24531572837,508.73764640933,531.29821178855,569.94005600595],description:'Jacky Ligon, "Primal Golden Tuning" (2001)'},ligon7:{frequencies:[261.6255653006,294.32876096318,321.08592105074,361.22166118208,394.05999401681,443.31749326891,483.61908356609,527.58445479937],description:"Jacky Ligon, 7 tone, 27/22=generator, MMM 22-01-2002"},lindley_ea:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,349.6228209638,367.9112241576,391.5530240856,413.43299207996,438.51190905657,465.63764214343,491.10256480205,523.2511306012],description:"Mark Lindley +J. de Boer +W. Drake (1991), for organ Grosvenor Chapel, London"},lindley_sf:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.07474405997,328.14198392915,349.6228209638,368.32692341742,391.5530240856,413.90012676351,438.51190905657,465.63764214343,491.10256480205,523.2511306012],description:"Lindley (1988) suggestion nr. 2 for Stanford Fisk organ"},"ling-lun":{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,331.11985608357,353.59332287831,372.50983809402,392.4383479509,419.07356785577,441.49314144476,471.45776383774,496.67978412536,523.2511306012],description:"Scale of Ling Lun from C"},liu_major:{frequencies:[261.6255653006,290.69507255622,322.99452506247,348.83408706747,392.4383479509,436.04260883433,484.4917875937,523.2511306012],description:`Linus Liu's Major Scale, see his 1978 book, "Intonation Theory"`},liu_mel:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,423.83341578697,436.04260883433,470.92601754108,484.4917875937,523.2511306012],description:"Linus Liu's Melodic Minor, use 5 and 7 descending and 6 and 8 ascending"},liu_minor:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,387.59343007496,418.60090448096,484.4917875937,523.2511306012],description:"Linus Liu's Harmonic Minor"},liu_pent:{frequencies:[261.6255653006,294.32876096318,331.11985608357,353.19451315581,392.4383479509,441.49314144476,496.67978412536,529.79176973372],description:`Linus Liu's "pentatonic scale"`},lorina:{frequencies:[261.6255653006,271.31540105247,293.02063313667,305.22982618403,313.95067836072,348.83408706747,348.83408706747,385.55346465352,406.97310157871,457.84473927605,457.84473927605,465.11211608996,523.2511306012],description:"Lorina"},lt46a:{frequencies:[261.6255653006,265.62583852249,273.73233506765,277.91772325275,286.39934942254,290.77841553921,299.65253047503,308.79746990018,313.51900484808,323.08712797864,328.02715279963,338.03804253716,348.35444940179,353.68081538041,364.47461587782,370.04745828823,381.3407438317,387.1714705201,398.98735486934,411.16384203565,417.45056598488,430.19052226982,436.76816801564,450.09766813034,463.83396431287,470.92601754108,485.29796386361,492.71820372913,507.75521382755,523.2511306012],description:"13-limit temperament, minimax g=495.66296 cents"},lucy_19:{frequencies:[261.6255653006,272.17716319349,280.81422591737,292.13972001074,301.4102593031,313.56641022552,326.2128298123,336.56461921066,350.13857756143,364.25998604447,375.81913491042,390.97626371576,406.74469336313,419.65201956185,436.57696862128,450.43096951372,468.59726172356,487.49621708267,502.96605061019,523.2511306012],description:"Lucy's 19-tone scale"},lucy_24:{frequencies:[261.6255653006,269.92785558198,272.17712546173,280.81425349217,292.13970819848,301.41031849758,303.92192719902,313.56642833783,326.21280343239,336.56467170065,339.36921655583,350.13858362887,364.25994396351,375.81917832675,390.97625694066,403.38329512334,406.744629928,419.65205349792,436.57694340361,450.43105016925,454.18442712942,468.59728067062,487.49616921257,502.96612033609,523.2511306012],description:"Lucy/Harrison, meantone tuning from Bbb to Cx, third=1200.0/pi, 1/1=A"},lucy_31:{frequencies:[261.6255653006,269.92785558198,272.17712546173,280.81425349217,283.15423815518,292.13970819848,301.41031849758,303.92192719902,313.56642833783,323.51698308414,326.21280343239,336.56467170065,339.36921655583,350.13858362887,361.24970022276,364.25994396351,375.81917832675,378.95082751155,390.97625694066,403.38329512334,406.744629928,419.65205349792,432.96907456701,436.57694340361,450.43105016925,454.18442712942,468.59728067062,483.46750424654,487.49616921257,502.96612033609,507.15726445705,523.2511306012],description:"Lucy/Harrison's meantone tuning, 1/1=A"},lucy_7:{frequencies:[261.6255653006,292.13972001074,326.2128298123,350.13857756143,390.97626371576,436.57696862128,487.49621708267,523.2511306012],description:"Diatonic Lucy's scale"},lumma5:{frequencies:[261.6255653006,279.06726965397,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Carl Lumma's 5-limit version of lumma7, also Fokker 12-tone just."},lumma7:{frequencies:[261.6255653006,279.06726965397,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,390.69417751556,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Carl Lumma's 7-limit 12-tone scale, a.k.a GW Smith's Prism. TL 21-11-98"},lumma7t:{frequencies:[261.6255653006,279.68948643792,293.67396186758,305.56991806333,326.66797434652,349.22276480589,366.68390442934,392.00157215927,419.06732091375,436.04260883433,457.84473927605,489.45662770953,523.2511306012],description:"Tempered lumma7, 6 tetrads + 4 triads within 2c of Just, TL 19-2-99"},lumma7t72:{frequencies:[261.6255653006,279.86396690685,293.66476791741,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,435.78442404634,457.27406033445,489.15147723638,523.2511306012],description:"72-tET version of lumma7t"},lumma7t_keen:{frequencies:[261.6255653006,279.95098841649,293.39965821869,305.14186035122,326.51537799354,349.38597341375,366.17023517096,391.81845653432,419.26317124465,436.04260556019,456.98979229899,488.99939844699,523.2511306012],description:"Dave Keenan's adaptation of lumma7t to include 6:8:11, TL 17-04-9"},lumma_10:{frequencies:[261.6255653006,281.2143451833,302.26980244078,324.90175210669,349.22823143301,375.37611551499,391.99543598175,421.34544350737,452.89298412314,486.80259447109,523.2511306012],description:"Carl Lumma's 10-tone 125 cent Pyth. scale, TL 29-12-1999"},lumma_12_fun:{frequencies:[261.6255653006,276.16031892841,293.246794009,310.68035879446,327.94037872749,348.23056788569,368.93292606842,390.99572534534,413.52379936426,439.8701910135,464.30742384759,491.05951174505,522.34585182853],description:"Rational well temperament based on 577/289, 3/2, and 19/16."},"lumma_12_moh-ha-ha":{frequencies:[261.6255653006,276.16031892841,293.42033886144,310.68035879446,330.09788121912,349.51540364377,368.93292606842,391.72740891476,414.24047839262,440.13050829216,466.02053819169,493.4335110265,523.2511306012],description:"Rational well temperament."},lumma_12_strangeion:{frequencies:[261.6255653006,277.97716313189,292.40504357126,310.68035879446,330.09788121912,349.23197505989,368.93292606842,391.9912339477,414.71297038361,440.63253103259,468.17206422213,492.47165233054,523.2511306012],description:'19-limit "dodekaphonic" scale.'},lumma_22:{frequencies:[261.6255653006,263.29318697558,262.98919438538,262.83732973433,262.68555277841,262.53386346698,263.29318697558,262.38226174944,262.98919438538,262.23074757519,263.29318697558,262.68555277841,262.07932089369,263.29318697558,262.83732973433,263.59753095473,262.38226174944,263.44531501617,262.68555277841,262.98919438538,263.29318697558,263.902226729,261.92798165442],description:"Carl Lumma, intervals of attraction by trial and error, 1999."},lumma_5151:{frequencies:[261.6255653006,276.7826524273,292.81785438923,309.78204413166,327.729041887,346.71578592374,369.67398581173,391.09077971329,413.74834001613,437.71854962063,463.0774559108,489.90551202062,522.3451906503],description:"Carl Lumma's 5151 temperament III (1197/709.5/696). June 2003"},lumma_al1:{frequencies:[261.6255653006,274.63272075836,292.81785438923,309.78204413166,327.729041887,346.71578592374,366.8025131876,391.09077971329,413.74834001613,437.71854962063,463.0774559108,489.90551202062,522.3451906503],description:"Alaska I (1197/709.5/696), Carl Lumma, 6 June 2003."},lumma_al2:{frequencies:[261.6255653006,275.18850165466,292.98704147282,310.05056613125,328.10786809908,347.216824829,367.43868454848,391.20374747207,413.98739946535,438.09796819065,463.6127330944,490.61347436729,522.3451906503],description:"Alaska II (1197/707/696.5), Carl Lumma, 6 June 2003."},lumma_al3:{frequencies:[261.6255653006,275.18850165466,292.98704147282,310.05056613125,328.10786809908,349.32910706765,367.43868454848,391.20374747207,413.98739946535,438.09796819065,463.6127330944,490.61347436729,522.3451906503],description:"Alaska III (1197/707/696.5), Carl Lumma, 6 June 2003."},lumma_al4:{frequencies:[261.6255653006,276.38325105256,293.32570896007,309.87152561537,328.86683469969,349.02656754477,368.7143392539,391.31674786192,413.39000965417,438.73106346722,464.55095742407,491.89038573682,522.04355935974],description:"Alaska IV (1196/701/697), Carl Lumma, 6 June 2003."},lumma_al5:{frequencies:[261.6255653006,276.84261239447,293.89809826895,310.99222741882,329.08061019985,349.35433052883,369.67398581173,391.17550247358,415.27471248744,439.42852501549,464.98720675925,493.63374591774,522.3451906503],description:"Alaska V (1197/702/696.375), Carl Lumma, 6 June 2003."},lumma_al6:{frequencies:[261.6255653006,276.86260193655,293.83444433876,310.94732162256,329.05685050583,349.22823143301,369.56723519412,391.09077971329,415.06487744922,439.23819834286,464.81937009253,493.31307433255,522.04355935974],description:"Alaska VI (1196/701/696), Carl Lumma, 6 June 2003."},lumma_al7:{frequencies:[261.6255653006,276.11677207256,293.26810788146,310.16878953668,328.73958549954,348.42227432308,368.499294457,391.39134599911,413.94674961638,438.72852926454,464.99660740427,491.79379203259,522.3451906503],description:"Alaska VII, Carl Lumma, 27 Jan 2004"},lumma_dec1:{frequencies:[261.6255653006,286.10322937235,299.18791603519,327.17991022208,342.14320575162,374.15409293384,391.26571058456,427.87249484695,457.55816161244,489.30340830564,523.2511306012],description:"Carl Lumma, two 5-tone 7/4-chains, 5/4 apart in 31-tET, TL 9-2-2000"},lumma_dec2:{frequencies:[261.6255653006,286.10322937235,292.57243455474,327.17991022208,342.14320575162,382.6142546815,391.26571058456,437.54730686196,457.55816161244,511.68128147674,523.2511306012],description:"Carl Lumma, two 5-tone 3/2-chains, 7/4 apart in 31-tET, TL 9-2-2000"},lumma_magic:{frequencies:[261.6255653006,293.02063313667,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,418.60090448096,436.04260883433,457.84473927605,467.18850946536,523.2511306012],description:"Magic chord test, Carl Lumma, TL 24-06-99"},"lumma_synchtrines+2":{frequencies:[261.6255653006,277.1478691313,293.59111644706,311.009943641,329.46223568632,349.00930447981,369.71610741159,391.65144749868,414.88821865981,439.50363030131,465.57948255979,493.20241832805,522.46423212702],description:"The 12-tone equal temperament with 2:3:4 brats of +2"},"lumma_synchtrines-2":{frequencies:[261.6255653006,277.19623399848,293.69359242342,311.17279259662,329.69226891672,349.31393351076,370.10338321153,392.13011885309,415.46777761785,440.19437666896,466.39258399594,494.14997995304,523.55935978973],description:"The 12-tone equal temperament with 2:3:4 brats of -2"},lydian_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,317.12189733406,327.03195662575,373.75080757229,402.50086969323,418.60090448096,427.14378008261,436.04260883433,475.68284600109,523.2511306012,550.79066379074,581.39014511244,615.58956541318,634.24379466812,654.0639132515,747.50161514457,805.00173938646,837.20180896192,854.28756016522,872.08521766867,951.36569200218,1046.5022612024],description:"Lydian Chromatic Tonos"},lydian_chrom2:{frequencies:[261.6255653006,272.09058791262,283.42769574232,340.11323489078,377.90359432309,400.13321751856,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the chromatic genus"},lydian_chrominv:{frequencies:[261.6255653006,271.68808704293,281.75060878526,362.25078272391,402.50086969323,422.62591317789,442.75095666255,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Lydian inverted"},lydian_diat:{frequencies:[261.6255653006,275.39533189537,290.69507255622,327.03195662575,348.83408706747,373.75080757229,387.59343007496,402.50086969323,436.04260883433,455.00098313148,475.68284600109,498.33441009638,523.2511306012,550.79066379074,581.39014511244,654.0639132515,697.66817413493,747.50161514457,852.70554616492,805.00173938646,872.08521766867,910.00196626296,951.36569200218,996.66882019276,1046.5022612024],description:"Lydian Diatonic Tonos"},lydian_diat2:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,358.01393146398,377.90359432309,425.14154361347,485.87604984397,523.2511306012],description:"Schlesinger's Lydian Harmonia, a subharmonic series through 13 from 26"},lydian_diat2inv:{frequencies:[261.6255653006,281.75060878526,322.00069575458,362.25078272391,382.37582620857,402.50086969323,442.75095666255,483.00104363188,523.2511306012],description:"Inverted Schlesinger's Lydian Harmonia, a harmonic series from 13 from 26"},lydian_diatcon:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,358.01393146398,425.14154361347,485.87604984397,523.2511306012],description:"A Lydian Diatonic with its own trite synemmenon replacing paramese"},lydian_enh:{frequencies:[261.6255653006,275.39533189537,290.69507255622,299.00064605783,303.33398875432,307.79478270659,373.75080757229,402.50086969323,410.39304360878,414.45634107026,418.60090448096,475.68284600109,523.2511306012,550.79066379074,581.39014511244,598.00129211566,606.66797750864,615.58956541318,747.50161514457,805.00173938646,820.78608721757,828.91268214051,837.20180896192,951.36569200218,1046.5022612024],description:"Lydian Enharmonic Tonos"},lydian_enh2:{frequencies:[261.6255653006,266.75547834571,272.09058791262,340.11323489078,377.90359432309,388.70083987518,400.13321751856,523.2511306012],description:"Schlesinger's Lydian Harmonia in the enharmonic genus"},lydian_enhinv:{frequencies:[261.6255653006,266.65682617177,271.68808704293,362.25078272391,402.50086969323,412.56339143556,422.62591317789,523.2511306012],description:"A harmonic form of Schlesinger's Enharmonic Lydian inverted"},lydian_pent:{frequencies:[261.6255653006,269.93113880221,283.42769574232,340.11323489078,377.90359432309,395.48050568695,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the pentachromatic genus"},lydian_pis:{frequencies:[261.6255653006,290.69507255622,327.03195662575,373.75080757229,402.50086969323,436.04260883433,475.68284600109,523.2511306012,550.79066379074,581.39014511244,654.0639132515,747.50161514457,805.00173938646,872.08521766867,951.36569200218,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Lydian Tonos"},lydian_tri:{frequencies:[261.6255653006,268.51044859798,275.76748774928,340.11323489078,377.90359432309,392.4383479509,408.13588186894,523.2511306012],description:"Schlesinger's Lydian Harmonia in the first trichromatic genus"},lydian_tri2:{frequencies:[261.6255653006,268.51044859798,283.42769574232,340.11323489078,377.90359432309,392.4383479509,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the second trichromatic genus"},nachbaur_6:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,523.2511306012],description:`Fred Nachbaur's harmonic hexatonic, as used in "Void of Sensation"`},nassarre:{frequencies:[261.6255653006,277.66336828161,294.34406205295,311.66659310186,331.15428443044,350.6431449633,372.56793743951,394.49404533893,419.16071913933,443.82887286778,471.58032351597,495.88429116026,523.2511306012],description:"Nassarre's Equal Semitones"},negri5_19:{frequencies:[261.6255653006,271.22480440713,281.41555648081,291.74090527404,302.70251050738,313.80889368201,325.59966315504,337.54616011163,350.22880998446,363.07896889448,376.72096510961,390.54314115106,405.21705098851,420.08476989056,435.86864979507,451.86099895106,468.83881245397,486.04086171852,504.30291533224,523.2511306012],description:"Negri temperament, g=126.238272, 5-limit"},negri_19:{frequencies:[261.6255653006,269.02825605326,281.18681366715,289.14299126725,302.21061955257,310.76166549402,324.80633749066,333.99672707734,349.09149261831,358.96903024071,375.19240283292,392.14898023137,403.24482870584,421.46921730446,433.39468387282,452.98167562873,465.79878414581,486.85025820508,500.62567766841,523.2511306012],description:"Negri temperament, 13-limit, g=124.831"},negri_29:{frequencies:[261.6255653006,269.02825605326,276.64040740805,281.18681366715,289.14299126725,297.32428710198,302.21061955257,310.76166549402,319.55466133443,324.80633749066,333.99672707734,343.44715857517,349.09149261831,358.96903024071,369.1260526158,375.19240283292,385.80846524917,392.14898023137,403.24482870584,414.65463641221,421.46921730446,433.39468387282,445.65757880387,452.98167562873,465.79878414581,478.97855252217,486.85025820508,500.62567766841,514.79087238232,523.2511306012],description:"Negri temperament, 13-limit, g=124.831"},"neid-mar-morg":{frequencies:[261.6255653006,277.49581689502,293.99657683935,311.12698372208,329.99999983505,349.6228209638,369.99442271164,392.4383479509,415.77394625748,440,466.69047534984,494.44133512215,523.2511306012],description:"Neidhardt-Marpurg-de Morgan temperament (1858)"},neidhardt1:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.42509491746,328.14198392915,348.83408706747,368.32692341742,391.5530240856,414.36778843034,438.51190905657,465.11211608996,491.65745674141,523.2511306012],description:"Neidhardt I temperament (1724)"},neidhardt2:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,349.22823143301,369.15973155124,391.5530240856,414.36778843034,438.51190905657,466.16376151809,492.7691222293,523.2511306012],description:"Neidhardt II temperament (1724)"},neidhardt3:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,348.83408706747,369.15973155124,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Neidhardt III temperament (1724) 'Grosse Stadt'"},neidhardt4:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,329.62755691287,349.22823143301,369.99442271164,391.99543598175,415.30469757995,440,466.16376151809,493.88330125613,523.2511306012],description:"Neidhardt IV temperament (1724), equal temperament"},neidhardtn:{frequencies:[261.6255653006,276.86979852503,293.66476791741,310.77584116741,329.62755691287,348.83408706747,369.99442271164,391.5530240856,415.30469757995,439.50340943686,466.16376151809,493.32589719545,523.2511306012],description:"Johann Georg Neidhardt's temperament (1732), alt. 1/6 & 0 P, also Marpurg nr.10"},neogeb24:{frequencies:[261.6255653006,270.11478301563,282.39420473706,291.55732426372,295.23185084282,304.81152420286,308.65309481038,318.66826025208,333.15492371116,343.96512368902,348.30015108876,359.6017829051,375.94928703407,388.14807710176,393.03994675222,405.79329398283,424.24066266408,438.00640969567,443.52664897728,457.91818970179,463.68937649142,478.73515685363,500.49846361623,516.73862125829,523.2511306012],description:"Neo-Gothic e-based lineotuning (T/S or Blackwood's R=e, ~2.71828), 24 notes"},neogji12:{frequencies:[261.6255653006,282.52678126125,294.32876096318,317.84262891891,332.97799220076,348.83408706747,374.60024122586,392.4383479509,423.79017189188,441.49314144476,443.97065626768,499.46698830115,523.2511306012],description:"M. Schulter, neo-Gothic 12-note JI (prim. 2/3/7/11) 1/1=F with Eb key as D+1"},neogp16a:{frequencies:[261.6255653006,274.38778799819,281.28352228595,295.02457363685,309.19384990071,317.19205704586,332.33517754401,348.83408706747,366.27579142084,374.86334014511,392.4383479509,411.12588832951,422.62591317789,442.75095666255,464.34856430463,498.91386871277,523.2511306012],description:"M. Schulter, scale from mainly prime-to-prime ratios and octave complements (Gb-D#)"},neutr_diat:{frequencies:[261.6255653006,294.32876096318,320.24370022528,348.83408706747,392.4383479509,427.47405410759,479.82340237272,523.2511306012],description:"Neutral Diatonic, 9 + 9 + 12 parts, geometric mean of major and minor"},neutr_pent1:{frequencies:[261.6255653006,302.32287545847,348.83408706747,392.4383479509,453.48431318771,523.2511306012],description:"Quasi-Neutral Pentatonic 1, 15/13 x 52/45 in each trichord, after Dudon"},neutr_pent2:{frequencies:[261.6255653006,301.87565226992,348.83408706747,392.4383479509,452.81347840488,523.2511306012],description:"Quasi-Neutral Pentatonic 2, 15/13 x 52/45 in each trichord, after Dudon"},new_enh:{frequencies:[261.6255653006,264.89588486686,279.06726965397,348.83408706747,392.4383479509,397.34382730029,418.60090448096,523.2511306012],description:"New Enharmonic"},new_enh2:{frequencies:[261.6255653006,327.03195662575,331.11985608357,348.83408706747,392.4383479509,490.54793493862,496.67978412536,523.2511306012],description:"New Enharmonic permuted"},newcastle:{frequencies:[261.6255653006,273.65745935891,291.9012907804,312.65334602246,327.03195662575,350.28154752005,366.3906401674,390.81668391305,410.48618883318,436.04260883433,467.04206359353,490.54793493862,523.2511306012],description:"Newcastle modified 1/3-comma meantone"},norden:{frequencies:[261.6255653006,274.87601291722,292.73769384471,310.07474405997,327.54963108844,349.78078158391,366.5013507395,391.37619916626,412.31401916973,437.91808280662,466.37437567834,489.99465727995,523.2511306012],description:"Reconstructed Schnitger temperament, organ in Norden. Ortgies, 2002"},novaro:{frequencies:[261.6255653006,274.70684356563,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,498.33441009638,523.2511306012],description:"9-limit diamond with 21/20, 16/15, 15/8 and 40/21 added for evenness"},novaro15:{frequencies:[261.6255653006,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.87565226992,305.22982618403,309.19384990071,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,442.75095666255,448.50096908674,453.48431318771,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,523.2511306012],description:"1-15 diamond, see Novaro, 1927, Sistema Natural base del Natural-Aproximado, p"},novaro_eb:{frequencies:[261.6255653006,277.27733921611,293.70273468471,311.34510173929,329.85947563084,349.74559786079,370.61463194963,392.51515715445,416.03831243363,440.72414616847,467.23897542105,495.06435356607,524.26505360912],description:"Novaro (?) equal beating 4/3 with strectched octave, almost pure 3/2"},janke1:{frequencies:[261.6255653006,276.38325105256,293.32570896007,310.58830860439,328.86683469969,349.02656754477,368.7143392539,391.76907592069,414.34624765043,439.23819834286,465.62553897253,492.45896815637,523.2511306012],description:"Rainer Janke, Temperatur I"},janke2:{frequencies:[261.6255653006,276.38325105256,292.98704147282,310.58830860439,328.48713220126,349.02656754477,368.7143392539,391.54284657258,414.34624765043,438.73106346722,465.62553897253,491.89038573682,523.2511306012],description:"Rainer Janke, Temperatur II"},janke3:{frequencies:[261.6255653006,276.22365192501,292.98704147282,310.40895756597,328.29744538229,349.02656754477,368.50142299854,391.54284657258,414.10698098223,438.47771564426,465.62553897253,491.60634075178,523.2511306012],description:"Rainer Janke, Temperatur III"},janke4:{frequencies:[261.6255653006,275.90473010106,292.98704147282,310.76776326996,328.10786809908,349.22823143301,368.07595926604,391.54284657258,413.86785247997,438.47771564426,465.89457252293,491.32245979018,523.2511306012],description:"Rainer Janke, Temperatur IV"},janke5:{frequencies:[261.6255653006,275.58617649731,292.98704147282,310.05056613125,328.10786809908,348.82502010853,367.43868454848,391.54284657258,413.39000965417,438.47771564426,465.08793784701,491.0387427573,523.2511306012],description:"Rainer Janke, Temperatur V"},janke6:{frequencies:[261.6255653006,275.74540729824,292.98704147282,310.58830860439,328.10786809908,349.43001184052,367.65098676472,391.54284657258,413.86785247997,438.47771564426,465.89457252293,491.0387427573,523.2511306012],description:"Rainer Janke, Temperatur VI"},janke7:{frequencies:[261.6255653006,275.42703764514,292.81785438923,311.12698372208,327.91840028839,349.63190883464,367.0144478307,391.54284657258,413.62886206386,438.22451411849,467.24207374344,490.75518955849,523.2511306012],description:"Rainer Janke, Temperatur VII"},jemblung1:{frequencies:[261.6255653006,298.87388797409,337.89601991959,388.44742741354,452.30188977628,523.2511306012],description:"Scale of bamboo gamelan jemblung from Kalijering, slendro-like. 1/1=590 Hz."},jemblung2:{frequencies:[261.6255653006,300.03885820455,355.06324470257,391.40016308218,451.61555914985,523.2511306012],description:"Bamboo gamelan jemblung at Royal Batavia Society. 1/1=504 Hz."},ji_10coh:{frequencies:[261.6255653006,283.42769574232,299.7792935736,327.03195662575,348.83408706747,370.63621750918,392.4383479509,436.04260883433,457.84473927605,485.0974023282,523.2511306012],description:"Differentially coherent 10-tone scale"},ji_10coh2:{frequencies:[261.6255653006,305.22982618403,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,479.64686971777,523.2511306012],description:"Other diff. coherent 10-tone scale"},ji_11:{frequencies:[261.6255653006,276.96780524107,294.32876096318,316.53463456122,336.37572681506,356.10146388137,384.42940207435,406.97310157871,432.48307733364,465.11211608996,494.26637409559,523.2511306012],description:"3 and 7 prime rational interpretation of 11-tET. OdC 2000"},ji_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Basic JI with 7-limit tritone"},ji_12a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"7-limit 12-tone scale"},ji_12b:{frequencies:[261.6255653006,272.52663052146,290.69507255622,305.22982618403,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"alternate 7-limit 12-tone scale"},ji_12c:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'Kurzweil "Just with natural b7th", is Sauveur Just with 7/4'},ji_13:{frequencies:[261.6255653006,279.06726965397,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,418.60090448096,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"5-limit 12-tone symmetrical scale with two tritones"},ji_17:{frequencies:[261.6255653006,271.31540105247,283.8170195002,294.32876096318,310.07474405997,321.55899383997,336.37572681506,348.83408706747,361.75386806997,378.42269266694,392.4383479509,406.97310157871,425.72552925031,441.49314144476,465.11211608996,482.33849075995,504.56359022259,523.2511306012],description:"3 and 7 prime rational interpretation of 17-tET. OdC"},ji_17a:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,310.07474405997,321.08592105074,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,426.35277308246,441.49314144476,465.11211608996,484.4917875937,502.32108537715,523.2511306012],description:"3, 5 and 11 prime rational interpretation of 17-tET, OdC"},ji_17b:{frequencies:[261.6255653006,272.52663052146,285.40970760065,294.32876096318,310.07474405997,319.76457981184,334.88072358477,348.83408706747,359.73515228832,380.54627680087,392.4383479509,408.78994578219,428.11456140098,441.49314144476,465.11211608996,479.64686971777,502.32108537715,523.2511306012],description:"Alt. 3, 5 and 11 prime rational interpretation of 17-tET, OdC"},ji_19:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,353.19451315581,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"5-limit 19-tone scale"},ji_20:{frequencies:[261.6255653006,271.31540105247,279.38237857051,288.32205155576,299.00064605783,310.07474405997,321.55899383997,331.11985608357,348.83408706747,356.10146388137,372.50983809402,384.42940207435,392.4383479509,413.43299207996,425.72552925031,441.49314144476,457.84473927605,474.80195184183,489.99465727995,504.56359022259,523.2511306012],description:"3 and 7 prime rational interpretation of 20-tET. OdC"},ji_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"7-limit 21-tone just scale, Op de Coul, 2001"},ji_22:{frequencies:[261.6255653006,272.52663052146,279.06726965397,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"5-limit 22-tone scale (Zarlino?)"},ji_27:{frequencies:[261.6255653006,267.90457886781,275.62199471997,282.55561052465,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,331.11985608357,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,413.43299207996,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.4917875937,496.67978412536,510.98743222773,523.2511306012],description:"7-limit rational interpretation of 27-tET, OdC"},ji_29:{frequencies:[261.6255653006,267.90457886781,275.62199471997,282.55561052465,287.78812183066,294.32876096318,301.39265122629,310.07474405997,317.12189733406,323.76163705949,331.11985608357,340.65828815182,348.83408706747,356.76213450082,367.91095120397,372.08969287196,383.71749577421,392.4383479509,401.85686830172,413.43299207996,422.82919644541,431.68218274599,441.49314144476,454.2110508691,465.11211608996,475.68284600109,484.4917875937,496.67978412536,510.98743222773,523.2511306012],description:"3,5,11-prime rational interpretation of 29-tET, OdC"},ji_30:{frequencies:[261.6255653006,267.57160087561,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.7792935736,308.34441624714,313.95067836072,321.92208230347,329.64821227876,336.37572681506,344.91651675372,353.19451315581,360.81424763342,370.01329949656,379.40816842909,387.59343007496,396.89567239676,406.97310157871,415.27867508032,425.24536328225,436.04260883433,443.97065626768,456.65553216105,465.11211608996,478.40103369253,488.36772189445,498.33441009638,511.62332769895,523.2511306012],description:"11-limit rational interpretation of 30-tET"},ji_31:{frequencies:[261.6255653006,267.57160087561,274.08392555301,280.31310567921,285.40970760065,293.02063313667,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,334.88072358477,343.38355445704,348.83408706747,356.76213450082,366.27579142084,373.75080757229,383.71749577421,392.4383479509,398.6675280771,408.78994578219,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,467.18850946536,479.64686971777,490.54793493862,499.46698830115,512.78610798918,523.2511306012],description:"A just 11-limit 31-tone scale, optimized for Mann complexity"},ji_31a:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,334.88072358477,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"A just 7-limit 31-tone scale"},ji_31b:{frequencies:[261.6255653006,267.90457886781,275.93321340298,282.55561052465,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,344.91651675372,353.19451315581,359.28803828513,367.91095120397,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,431.14564594215,441.49314144476,452.08897683944,459.88868900496,470.92601754108,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"A just 5-limit 31-tone scale, corner clipped genus"},ji_31c:{frequencies:[261.6255653006,267.57160087561,272.52663052146,279.06726965397,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,334.88072358477,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,398.6675280771,408.78994578219,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,479.64686971777,490.54793493862,502.32108537715,511.62332769895,523.2511306012],description:"A just 11-limit 31-tone scale"},ji_5coh:{frequencies:[261.6255653006,305.22982618403,348.83408706747,381.53728273004,446.94367405519,523.2511306012],description:"Differential fully coherent pentatonic scale"},ji_6coh:{frequencies:[261.6255653006,294.32876096318,330.74639366397,372.08969287196,418.60090448096,465.11211608996,523.2511306012],description:"Differential coherent 6-tone scale, OdC 2003"},ji_7:{frequencies:[261.6255653006,290.69507255622,318.93402246168,348.83408706747,392.4383479509,429.2294430713,470.92601754108,523.2511306012],description:"7-limit rational interpretation of 7-tET. OdC"},ji_7a:{frequencies:[261.6255653006,287.78812183066,319.76457981184,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Superparticular approximation to 7-tET. Op de Coul, 1998"},ji_8coh:{frequencies:[261.6255653006,286.99041781007,312.35527031954,339.96223546814,370.00947616612,405.83764015148,441.71144237774,480.75585116768,523.2511306012],description:"Differential coherent 8-tone scale, OdC, 2003"},ji_8coh3:{frequencies:[261.6255653006,277.97716313189,302.50455987882,327.03195662575,359.73515228832,392.4383479509,425.14154361347,466.02053819169,523.2511306012],description:"Differential fully coherent 8-tone scale, OdC, 2003"},ji_9coh:{frequencies:[261.6255653006,287.78812183066,313.95067836072,327.03195662575,366.27579142084,392.4383479509,418.60090448096,470.92601754108,497.08857407114,523.2511306012],description:"Differentially coherent 9-tone scale"},ji_ri24a:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,301.87565226992,310.68035879446,319.76457981184,329.87571277032,340.11323489078,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,402.50086969323,414.99227599406,428.11456140098,440.63253103259,453.48431318771,465.11211608996,479.64686971777,494.18162334558,508.71637697339,523.2511306012],description:"M. Schulter, just/rational intonation system - with circulating 24-note set"},jioct12:{frequencies:[261.6255653006,272.52663052146,282.55561052465,302.80736724606,313.95067836072,327.03195662575,363.36884069528,376.74081403286,392.4383479509,436.04260883433,454.2110508691,470.92601754108,523.2511306012],description:"12-tone JI version of Messiaen's octatonic scale, Erlich & Par\xEF\xBF\xBDzek"},"jobin-bach":{frequencies:[261.6255653006,275.07759559501,292.50627485027,309.76836826904,327.03195662575,348.83408706747,366.77012764335,391.22147055517,412.61639318626,437.39890198442,464.6525521713,489.02683710225,523.2511306012],description:"Emile Jobin, WTC temperament after Bach's signet"},"johnson-secor_rwt":{frequencies:[261.6255653006,276.16031892841,293.03678286293,310.07474405997,327.94037872749,348.83408706747,368.21375857121,391.52992584916,414.24047839262,438.40450629885,465.11211608996,490.95167809495,523.2511306012],description:"Johnson/Secor proportional-beating well-temperament with five 24/19s."},johnson_44:{frequencies:[261.6255653006,265.7783520514,269.99705605222,274.2827236086,278.63641763414,283.05921791404,287.55222124002,292.11654190835,296.75331210627,301.46368356757,306.24882108355,311.17820103386,316.11753722951,321.13527558179,326.23266245367,331.4109583385,336.67144939063,342.01544029518,347.44425644654,352.9592442771,358.56177366235,364.2532300084,370.03502692537,375.90859839047,381.87540114246,387.93691728375,394.09464571975,400.35011587045,406.70487919155,413.16051176499,419.71861468993,426.38081694263,433.14876596753,440.02414274758,447.00865248514,454.10402744924,461.31203006992,468.63444275836,476.07308421189,483.62979961065,491.30646309654,499.10497838378,507.02727962797,515.07533168556,523.2511306012],description:"Aaron Johnson, 44-tET approximation"},johnson_7:{frequencies:[261.6255653006,288.83389952765,318.87182567809,352.10227751942,388.71994014354,429.2294430713,473.86811641255,523.2511306012],description:"Aaron Johnson, 7-tET approximation"},johnson_eb:{frequencies:[261.6255653006,273.1678696521,292.40504357126,312.71949922989,327.03195662575,349.65487315468,365.50630446407,390.89937403737,408.78994578219,437.06859144336,467.84806971401,488.62421754671,523.2511306012],description:'Aaron Johnson, "1/4-comma tempered" equal beating C-G-D-A-E plus just thirds'},johnson_ratwell:{frequencies:[261.6255653006,276.16031892841,292.90688289089,310.07474405997,327.94037872749,348.83408706747,368.21375857121,391.49724879514,414.24047839262,438.30776524386,465.11211608996,490.95167809495,523.2511306012],description:"Aaron Johnson, rational well-temperament with five 24/19's"},johnson_temp:{frequencies:[261.6255653006,275.52965735686,292.50638298357,309.88336774144,327.03195662575,348.76230617841,367.55223824197,391.22154286826,413.09299784305,437.39914452994,464.92072007996,490.30891677011,523.2511306012],description:"Aaron Johnson, temperament with just 5/4, 24/19 and 19/15"},johnston:{frequencies:[261.6255653006,275.93321340298,294.32876096318,315.35224388912,327.03195662575,359.73515228832,367.91095120397,392.4383479509,401.35740131342,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Ben Johnston's combined otonal-utonal scale"},johnston_21:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Johnston 21-note just enharmonic scale"},johnston_22:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,353.19451315581,367.91095120397,378.42269266694,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Johnston 22-note scale from end of string quartet nr. 4"},johnston_25:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,331.11985608357,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Johnston 25-note just enharmonic scale"},"johnston_6-qt":{frequencies:[261.6255653006,262.79353657426,266.47048317654,267.57160087561,271.31540105247,272.52663052146,277.4816601673,280.31310567921,284.23518205497,290.69507255622,294.32876096318,297.30177875068,299.7792935736,300.33547037059,305.22982618403,306.59245933664,310.07474405997,311.45900631024,316.53463456122,317.12189733406,319.76457981184,322.99452506247,327.03195662575,334.46450109452,339.14425131559,342.60490694126,348.83408706747,350.39138209902,355.29397756872,356.76213450082,361.75386806997,363.36884069528,367.91095120397,373.75080757229,381.53728273004,382.24514410802,387.59343007496,390.82337532559,392.4383479509,396.40237166758,399.70572476481,406.97310157871,408.78994578219,413.43299207996,420.46965851882,426.35277308246,436.04260883433,445.95266812602,452.19233508746,459.88868900496,465.11211608996,467.18850946536,475.68284600109,479.64686971777,484.4917875937,486.49381977384,490.54793493862,248.7057842981,498.33441009638,508.71637697339,516.79124009995,523.2511306012],description:"11-limit complete system from Ben Johnston's _6th Quartet_"},"johnston_6-qt_row":{frequencies:[261.6255653006,272.52663052146,290.69507255622,306.59245933664,327.03195662575,350.39138209902,363.36884069528,399.70572476481,408.78994578219,436.04260883433,445.95266812602,490.54793493862,508.71637697339],description:`11-limit 'prime row' from Ben Johnston's "6th Quartet"`},johnston_81:{frequencies:[116.54094037952,117.99770213426,119.33792294863,119.89808681021,120.82964698549,121.39681289533,122.77564089365,122.91427305652,124.31033640482,124.45070146973,125.86421560988,127.43751830501,127.89129259755,128.03570110055,129.48993375502,131.10855792696,132.74741490105,134.25516331721,134.88534766148,135.93335285867,136.57141450725,138.12259600536,138.27855718859,139.84912845542,141.59724256112,142.26189011172,143.87770417225,145.6761754744,147.49712766783,149.17240368579,151.03705873186,151.74601611917,153.46955111706,155.38792050603,157.33026951235,159.11723059817,159.29689788126,161.10619598065,161.86241719378,163.70085452487,163.8856974087,165.74711520643,165.93426862631,167.81895414651,169.91669107334,170.71426813406,172.6532450067,174.81141056928,176.9965532014,179.00688442294,179.84713021531,181.24447047823,182.095219343,184.16346134048,184.37140958479,186.46550460723,188.79632341482,189.68252014896,191.15627745751,191.83693889633,194.23490063253,196.66283689044,198.89653824771,199.12112235157,199.83014468368,201.38274497581,202.32802149222,204.62606815608,204.85712176088,207.18389400804,207.41783578289,209.77369268314,212.39586384168,213.39283516758,215.81655625837,218.5142632116,221.24569150175,223.75860552868,226.55558809779,227.61902417875,230.2043266756,233.08188075904],description:"Johnston 81-note 5-limit scale of Sonata for Microtonal Piano"},jorgensen:{frequencies:[261.6255653006,269.51415085551,288.85811466493,309.59046173614,318.92511007349,352.12195684808,355.62605411908,388.77403176757,408.50706336067,429.24143792307,469.25139168707,473.92081401802,523.2511306012],description:"Jorgensen's 5&7 temperament"},jousse:{frequencies:[261.6255653006,276.90198715646,293.15566421679,311.51473523959,328.62702621286,349.28097970329,369.20264759391,391.76800554826,415.35298052707,439.0631553946,466.60176257857,492.27019703794,523.2511306012],description:"Temperament of Jean Jousse (1832)"},jousse2:{frequencies:[261.6255653006,277.21176919085,293.63180098233,311.16627887077,329.63881547742,349.36510452864,370.14670828388,392.04008509316,415.41939014292,440.0494382652,466.3511549761,494.0599599767,523.2511306012],description:"Jean Jousse's quasi-equal temperament"},quasi_5:{frequencies:[261.6255653006,302.26980244078,349.22823143301,391.99543598175,452.89298412314,523.2511306012],description:"Quasi-Equal 5-Tone in 24-tET, 5 5 4 5 5 steps"},quasi_9:{frequencies:[261.6255653006,281.2143451833,302.26980244078,324.90175210669,349.22823143301,391.99543598175,421.34544350737,452.89298412314,486.80259447109,523.2511306012],description:'Quasi-Equal Enneatonic, Each "tetrachord" has 125 + 125 + 125 + 125 cents'},quint_chrom:{frequencies:[261.6255653006,277.01530443593,294.32876096318,348.83408706747,392.4383479509,415.52295665389,441.49314144476,523.2511306012],description:"Aristides Quintilianus' Chromatic genus"},oconnell:{frequencies:[261.6255653006,267.57429119961,272.27874977392,278.46970304972,283.3657217904,288.34782337261,294.90414810658,300.08911516052,305.36524364276,312.30850472426,317.79947295261,323.38698268281,330.74001416845,336.55504284097,344.20748191927,350.25929591231,356.41751010259,364.52157313929,370.93054700815,377.45220049416,386.03454097812,392.82175095637,399.72829510222,408.81713953112,416.00491024634,423.31905787312],description:"Walter O'Connell, Pythagorean scale of 25 octaves reduced by Phi. XH 15 (1993)"},oconnell_11:{frequencies:[261.6255653006,272.27874977392,288.34782337261,300.08911516052,312.30850472426,323.38698268281,344.20748191927,356.41751010259,370.93054700815,386.03454097812,408.81713953112,423.31905787312],description:"Walter O'Connell, 11-note mode of 25-tone scale"},oconnell_14:{frequencies:[261.6255653006,272.27874977392,283.3657217904,288.34782337261,300.08911516052,312.30850472426,323.38698268281,336.55504284097,344.20748191927,356.41751010259,370.93054700815,386.03454097812,399.72829510222,408.81713953112,423.31905787312],description:"Walter O'Connell, 14-note mode of 25-tone scale"},oconnell_7:{frequencies:[261.6255653006,283.3657217904,300.08911516052,323.38698268281,344.20748191927,370.93054700815,392.82175095637,423.31905787312],description:"Walter O'Connell, 7-note mode of 25-tone scale"},oconnell_9:{frequencies:[261.6255653006,278.46970304972,294.90414810658,305.36524364276,323.38698268281,344.20748191927,364.52157313929,377.45220049416,399.72829510222,423.31905787312],description:"Walter O'Connell, 9-tone mode of 25-tone scale"},oconnell_9a:{frequencies:[261.6255653006,272.27874977392,288.34782337261,305.36524364276,323.38698268281,344.20748191927,356.41751010259,377.45220049416,399.72829510222,423.31905787312],description:"Walter O'Connell, 7+2 major mode analogy for 25-tone scale"},octony_min:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Octony on Harmonic Minor, from Palmer on an album of Turkish music"},octony_rot:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Rotated Octony on Harmonic Minor"},octony_trans:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,348.83408706747,408.78994578219,420.46965851882,436.04260883433,523.2511306012],description:"Complex 10 of p. 115, an Octony based on Archytas's Enharmonic,"},octony_trans2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,315.35224388912,324.36230800023,336.37572681506,348.83408706747,504.56359022259,523.2511306012],description:"Complex 6 of p. 115 based on Archytas's Enharmonic, an Octony"},octony_trans3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,306.59245933664,315.35224388912,327.03195662575,348.83408706747,490.54793493862,523.2511306012],description:"Complex 5 of p. 115 based on Archytas's Enharmonic, an Octony"},octony_trans4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,420.46965851882,432.48307733364,448.50096908674,523.2511306012],description:"Complex 11 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_trans5:{frequencies:[261.6255653006,271.31540105247,279.06726965397,317.94773560837,327.03195662575,339.14425131559,348.83408706747,508.71637697339,523.2511306012],description:"Complex 15 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_trans6:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,336.37572681506,345.98646186692,348.83408706747,358.80077526939,523.2511306012],description:"Complex 14 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_u:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,356.76213450082,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"7)8 octony from 1.3.5.7.9.11.13.15, 1.3.5.7.9.11.13 tonic (subharmonics 8-16)"},odd1:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"ODD-1"},odd2:{frequencies:[261.6255653006,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"ODD-2"},oettingen:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,298.00787047521,301.39265122629,306.59245933664,310.42486507835,313.95067836072,317.87506184023,323.35923445661,327.03195662575,331.11985608357,334.88072358477,339.06673262958,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.50983809402,376.74081403286,383.2405741708,388.03108134794,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.89982010446,418.60090448096,423.83341578697,431.14564594215,436.04260883433,441.49314144476,446.50763144636,452.08897683944,459.88868900496,465.11211608996,470.92601754108,476.81259276034,485.03885168492,490.54793493862,496.67978412536,502.32108537715,510.98743222773,517.37477513058,523.2511306012],description:"von Oettingen's Orthotonophonium tuning"},oettingen2:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.51653791741,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,431.14564594215,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.27480687611,484.4917875937,490.54793493862,496.11959049595,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"von Oettingen's Orthotonophonium tuning with central 1/1"},ogr10:{frequencies:[261.6255653006,264.15640940857,271.89678302796,296.5055443788,342.56848033562,359.46139971304,411.32572372413,440,484.46499093218,513.27277840175,523.2511306012],description:"Optimal Golomb Ruler of 10 segments, length 72"},ogr10a:{frequencies:[261.6255653006,264.15640940857,285.30470202322,314.13668154225,329.62755691287,352.60650301302,431.60923940535,448.5538823653,457.27406033445,508.3551866238,523.2511306012],description:"2nd Optimal Golomb Ruler of 10 segments, length 72"},ogr11:{frequencies:[261.6255653006,265.92749183559,274.74472021414,318.1829357186,331.4244391468,362.52783176564,371.50609336774,409.69842558521,455.51656649021,482.27514684959,486.22402266421,523.2511306012],description:"Optimal Golomb Ruler of 11 segments, length 85"},ogr12:{frequencies:[261.6255653006,265.06964174786,270.3209511875,308.09015504092,333.2396629384,346.57411320722,384.79959982017,413.49815209867,456.11269186454,468.20039948765,496.58195036371,499.83980314828,523.2511306012],description:"Optimal Golomb Ruler of 12 segments, length 106"},ogr2:{frequencies:[261.6255653006,329.62755691287,523.2511306012],description:"Optimal Golomb Ruler of 2 segments, length 3"},ogr3:{frequencies:[261.6255653006,293.66476791741,415.30469757995,523.2511306012],description:"Optimal Golomb Ruler of 3 segments, length 6"},ogr4:{frequencies:[261.6255653006,278.64197723942,336.62443200122,461.29362042034,523.2511306012],description:"Optimal Golomb Ruler of 4 segments, length 11"},ogr4a:{frequencies:[261.6255653006,296.76515515861,406.67242132093,433.12283887627,523.2511306012],description:"2nd Optimal Golomb Ruler of 4 segments, length 11"},ogr5:{frequencies:[261.6255653006,272.51337835337,307.97166902637,393.32961502355,426.7484383229,523.2511306012],description:"Optimal Golomb Ruler of 5 segments, length 17"},ogr5a:{frequencies:[261.6255653006,272.51337835337,307.97166902637,393.32961502355,482.27514684959,523.2511306012],description:"2nd Optimal Golomb Ruler of 5 segments, length 17"},ogr5b:{frequencies:[261.6255653006,272.51337835337,362.52783176564,426.7484383229,463.0066556268,523.2511306012],description:"3rd Optimal Golomb Ruler of 5 segments, length 17"},ogr5c:{frequencies:[261.6255653006,272.51337835337,362.52783176564,409.69842558521,444.50800708553,523.2511306012],description:"4th Optimal Golomb Ruler of 5 segments, length 17"},ogr6:{frequencies:[261.6255653006,268.98086109226,292.31087910123,345.21700307457,430.94493093825,495.02573326308,523.2511306012],description:"Optimal Golomb Ruler of 6 segments, length 25"},ogr6a:{frequencies:[261.6255653006,276.5429423948,284.31762274025,345.21700307457,407.69874723177,468.32288027948,523.2511306012],description:"2nd Optimal Golomb Ruler of 6 segments, length 25"},ogr6b:{frequencies:[261.6255653006,268.98086109226,354.92237405774,407.69874723177,443.06044202496,495.02573326308,523.2511306012],description:"3rd Optimal Golomb Ruler of 6 segments, length 25"},ogr6c:{frequencies:[261.6255653006,268.98086109226,317.66442301495,354.92237405774,455.51656649021,495.02573326308,523.2511306012],description:"4th Optimal Golomb Ruler of 6 segments, length 25"},ogr6d:{frequencies:[261.6255653006,276.5429423948,317.66442301495,375.1593523779,468.32288027948,481.48922855473,523.2511306012],description:"5th Optimal Golomb Ruler of 6 segments, length 25"},ogr7:{frequencies:[261.6255653006,267.01398215014,283.85429714132,314.3146261019,355.21191871351,409.69842558521,502.34551296122,523.2511306012],description:"Optimal Golomb Ruler of 7 segments, length 34"},ogr8:{frequencies:[261.6255653006,265.77967818767,283.06627815664,316.06708432391,387.90015179087,400.3161696196,454.08364189083,499.09751029017,523.2511306012],description:"Optimal Golomb Ruler of 8 segments, length 44"},ogr9:{frequencies:[261.6255653006,264.94361147373,282.17583275232,296.76515515861,349.59519124833,363.06573983159,401.57942110183,438.61588607285,510.2272282764,523.2511306012],description:"Optimal Golomb Ruler of 9 segments, length 55"},oldani:{frequencies:[261.6255653006,272.52663052146,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"This scale by Norbert L. Oldani appeared in Interval 5(3), p.10-11"},oljare:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,381.53728273004,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:'Mats \xEF\xBF\xBDljare, scale for "Tampere" (2001)'},oljare17:{frequencies:[261.6255653006,272.51337835337,320.78822215662,334.13814720468,393.32961502355,409.69842558521,426.7484383229,502.34551296122,523.2511306012],description:'Mats \xEF\xBF\xBDljare, scale for "Fafner" (2001), MOS in 17-tET'},olympos:{frequencies:[261.6255653006,279.06726965397,348.83408706747,372.08969287196,465.11211608996,523.2511306012],description:"Scale of ancient Greek flutist Olympos, 6th century BC as reported by Partch"},opelt:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Friederich Wilhelm Opelt 19-tone"},organ1373a:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"English organ tuning (1373) with 18:17:16 ficta semitones (Eb-G#)"},organ1373b:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,467.46332623563,496.67978412536,523.2511306012],description:"English organ tuning (1373) with 18:17:16 accidental semitones (Eb-G#)"},ragib:{frequencies:[261.6255653006,269.99542342683,281.01564479119,288.12007609225,294.32876096318,303.49446183192,311.45900631024,323.77767743764,335.77702597132,341.99420300732,348.83408706747,360.36579242507,371.06455309218,381.37837507376,392.4383479509,407.46331920162,417.22825371678,432.79663407874,450.28451247858,458.15534711532,465.11211608996,476.50902003141,487.19844562495,503.12608711654,523.2511306012],description:"Idris Ragib Bey, vol.5 d'Erlanger, p 40. Idris Rag'ib Bey"},ragib7:{frequencies:[261.6255653006,270.30192333353,281.29980781121,288.32205155576,294.32876096318,303.74668805875,311.45900631024,324.36230800023,336.37572681506,341.71502406609,348.83408706747,360.4025644447,370.6997805717,381.53728273004,392.4383479509,406.97310157871,417.13259773693,432.48307733364,450.69091522486,457.84473927605,465.11211608996,476.92160341255,486.65469735975,502.32108537715,523.2511306012],description:"7-limit version of Idris Rag'ib Bey scale"},"rameau-flat":{frequencies:[261.6255653006,276.01120901503,292.50629850443,312.00666699279,327.03195662575,349.91920725962,366.20974703841,391.22137338448,415.30469757995,437.39882871549,468.01000025525,489.02679755603,523.2511306012],description:'Rameau bemols, see Pierre-Yves Asselin in "Musique et temperament"'},"rameau-gall":{frequencies:[261.6255653006,274.65078342868,292.50627485027,310.49874388777,327.03195662575,349.91912034749,366.20104475463,391.22147055517,412.61639318626,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"Rameau's temperament, after Gallimard (1st solution)"},"rameau-merc":{frequencies:[261.6255653006,273.37431312998,292.50627485027,308.72950296259,327.03195662575,348.83408706747,365.63284274659,391.22147055517,409.55238583376,437.39890198442,464.53468854848,489.02683710225,523.2511306012],description:"Rameau's temperament, after Mercadier"},"rameau-minor":{frequencies:[261.6255653006,294.32876096318,313.95067836072,353.19451315581,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Rameau's systeme diatonique mineur on E. Asc. 4-6-8-9, desc. 9-7-5-4"},"rameau-nouv":{frequencies:[261.6255653006,275.98004852257,292.50627485027,311.49614460359,327.03195662575,349.91912034749,367.37127028704,391.22147055517,414.64857675456,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"Temperament by Rameau in Nouveau Systeme (1726)"},"rameau-sharp":{frequencies:[261.6255653006,273.37431312998,292.50629850443,308.54983514133,327.03195662575,348.83408706747,365.63293356166,391.22137338448,409.42528169498,437.39882871549,464.33633889105,489.02679755603,523.2511306012],description:'Rameau dieses, see Pierre-Yves Asselin in "Musique et temperament"'},rameau:{frequencies:[261.6255653006,275.07757335026,292.50629850443,310.73186404381,327.03195662575,349.91920725962,366.77009798369,391.22137338448,412.61635981914,437.39882871549,468.01000025525,489.02679755603,523.2511306012],description:"Rameau's modified meantone temperament (1725)"},ramis:{frequencies:[261.6255653006,275.93321340298,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Monochord of Ramos de Pareja (Ramis de Pareia), Musica practica (1482). Carlos: Switched on Bach"},rapoport_8:{frequencies:[261.6255653006,297.86386736488,316.53463456122,336.37572681506,382.96782946913,406.97310157871,432.48307733364,492.38720931745,523.2511306012],description:"Paul Rapoport, cycle of 14/9 close to 8 out of 11-tET, XH 13, 1991"},rast_moha:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,427.47405410759,479.82340237272,523.2511306012],description:"Rast + Mohajira (Dudon) 4 + 3 + 3 Rast and 3 + 4 + 3 Mohajira tetrachords"},rat_dorenh:{frequencies:[261.6255653006,267.70988077271,274.08392555301,359.73515228832,411.12588832951,418.60090448096,426.35277308246,523.2511306012],description:"Rationalized Schlesinger's Dorian Harmonia in the enharmonic genus"},rat_hypodenh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,380.54627680087,389.39619021485,398.6675280771,523.2511306012],description:"1+1 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodenh2:{frequencies:[261.6255653006,270.06509966514,288.69027895239,348.83408706747,380.54627680087,389.39619021485,408.39112632289,523.2511306012],description:"1+2 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodenh3:{frequencies:[261.6255653006,270.06509966514,299.00064605783,348.83408706747,380.54627680087,389.39619021485,418.60090448096,523.2511306012],description:"1+3 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,380.54627680087,386.4008349055,392.4383479509,523.2511306012],description:"1+1 rationalized hexachromatic/hexenharmonic genus derived from K.S.'Bastard'"},rat_hypodhex2:{frequencies:[261.6255653006,267.19206668997,279.06726965397,348.83408706747,380.54627680087,386.4008349055,398.6675280771,523.2511306012],description:"1+2 rat. hexachromatic/hexenharmonic genus derived from K.S.'s 'Bastard' Hypodo"},rat_hypodhex3:{frequencies:[261.6255653006,267.19206668997,285.40970760065,348.83408706747,380.54627680087,386.4008349055,405.0976494977,523.2511306012],description:"1+3 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex4:{frequencies:[261.6255653006,267.19206668997,292.04714266113,348.83408706747,380.54627680087,386.4008349055,411.73859457144,523.2511306012],description:"1+4 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex5:{frequencies:[261.6255653006,267.19206668997,299.00064605783,348.83408706747,380.54627680087,386.4008349055,418.60090448096,523.2511306012],description:"1+5 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex6:{frequencies:[261.6255653006,273.00058987889,292.04714266113,348.83408706747,380.54627680087,392.4383479509,411.73859457144,523.2511306012],description:"2+3 rationalized hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' hypod"},rat_hypodpen:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,380.54627680087,387.59343007496,394.90651366128,523.2511306012],description:"1+1 rationalized pentachromatic/pentenharmonic genus derived from K.S.'s 'Bastar"},rat_hypodpen2:{frequencies:[261.6255653006,268.33391312882,282.83844897362,348.83408706747,380.54627680087,387.59343007496,402.50086969323,523.2511306012],description:"1+2 rationalized pentachromatic/pentenharmonic genus from K.S.'s 'Bastard' hyp"},rat_hypodpen3:{frequencies:[261.6255653006,268.33391312882,290.69507255622,348.83408706747,380.54627680087,387.59343007496,410.39304360878,523.2511306012],description:"1+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen4:{frequencies:[261.6255653006,268.33391312882,299.00064605783,348.83408706747,380.54627680087,387.59343007496,418.60090448096,523.2511306012],description:"1+4 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen5:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,380.54627680087,394.90651366128,410.39304360878,523.2511306012],description:"2+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen6:{frequencies:[261.6255653006,268.33391312882,299.00064605783,348.83408706747,380.54627680087,394.90651366128,418.60090448096,523.2511306012],description:"2+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodtri:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,380.54627680087,392.4383479509,405.0976494977,523.2511306012],description:"rationalized first (1+1) trichromatic genus derived from K.S.'s 'Bastard' hyp"},rat_hypodtri2:{frequencies:[261.6255653006,273.00058987889,299.00064605783,348.83408706747,380.54627680087,392.4383479509,418.60090448096,523.2511306012],description:"rationalized second (1+2) trichromatic genus derived from K.S.'s 'Bastard' hyp"},rat_hypolenh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,373.75080757229,402.50086969323,410.39304360878,418.60090448096,523.2511306012],description:"Rationalized Schlesinger's Hypolydian Harmonia in the enharmonic genus"},rat_hypopchrom:{frequencies:[261.6255653006,277.01530443593,294.32876096318,362.25078272391,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the chromatic genus"},rat_hypopenh:{frequencies:[261.6255653006,269.10058145205,277.01530443593,362.25078272391,392.4383479509,400.78810003496,409.50088481833,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the enharmonic genus"},rat_hypoppen:{frequencies:[261.6255653006,273.79419624481,294.32876096318,362.25078272391,392.4383479509,405.97070477679,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the pentachromatic genus"},rat_hypoptri:{frequencies:[261.6255653006,271.68808704293,282.55561052465,362.25078272391,392.4383479509,403.65087217807,415.52295665389,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in first trichromatic genus"},rat_hypoptri2:{frequencies:[261.6255653006,271.68808704293,294.32876096318,362.25078272391,392.4383479509,403.65087217807,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in second trichromatic genus"},rectsp10:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,340.11323489078,348.83408706747,359.73515228832,366.27579142084,373.75080757229,377.90359432309,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,523.2511306012],description:"Rectangle minimal beats spectrum of order 10"},rectsp10a:{frequencies:[261.6255653006,275.39533189537,277.01530443593,279.06726965397,281.75060878526,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.79478270659,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,523.2511306012],description:"Rectangle minimal beats spectrum of order 10 union with inversion"},rectsp11:{frequencies:[261.6255653006,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,451.89870370104,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,499.46698830115,523.2511306012],description:"Rectangle minimal beats spectrum of order 11"},rectsp12:{frequencies:[261.6255653006,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,404.33041910093,406.97310157871,411.12588832951,414.24047839262,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,451.89870370104,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,499.46698830115,501.44900015948,523.2511306012],description:"Rectangle minimal beats spectrum of order 12"},rectsp6:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Rectangle minimal beats spectrum of order 6 (=songlines)"},rectsp6a:{frequencies:[261.6255653006,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Rectangle minimal beats spectrum of order 6 union with inversion"},rectsp7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Rectangle minimal beats spectrum of order 7"},rectsp7a:{frequencies:[261.6255653006,281.75060878526,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,332.97799220076,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Rectangle minimal beats spectrum of order 7 union with inversion"},rectsp8:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Rectangle minimal beats spectrum of order 8"},rectsp8a:{frequencies:[261.6255653006,279.06726965397,281.75060878526,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,322.00069575458,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Rectangle minimal beats spectrum of order 8 union with inversion"},rectsp9:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,377.90359432309,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,523.2511306012],description:"Rectangle minimal beats spectrum of order 9"},rectsp9a:{frequencies:[261.6255653006,277.01530443593,279.06726965397,281.75060878526,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,523.2511306012],description:"Rectangle minimal beats spectrum of order 9 union with inversion"},redfield:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Redfield New Diatonic"},reinhard:{frequencies:[261.6255653006,277.01530443593,294.32876096318,309.81974838229,327.03195662575,348.83408706747,369.35373924791,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Reinhard 19-limit superparticular"},reinhard17:{frequencies:[261.6255653006,277.01530443593,277.97716313189,286.94416839421,292.40504357126,296.50897400735,307.79478270659,317.68818643644,338.57426097725,342.12573923925,369.35373924791,400.13321751856,404.33041910093,430.91269578922,444.76346101102,477.08191319521,492.47165233054,523.2511306012],description:`Reinhard's Harmonic-17 tuning for "Tresspass", 1998`},renteng1:{frequencies:[261.6255653006,285.40970760065,313.15788183285,391.64553850062,426.52890806662,523.2511306012],description:"Gamelan Renteng from Chileunyi (Tg. Sari). 1/1=330 Hz"},renteng2:{frequencies:[261.6255653006,294.32876096318,311.77048523333,396.07199334683,425.86840190162,523.2511306012],description:"Gamelan Renteng from Chikebo (Tg. Sari). 1/1=360 Hz"},renteng3:{frequencies:[261.6255653006,278.97471276149,312.97903559457,379.60005211265,409.44065404912,468.42785143649,523.2511306012],description:"Gamelan Renteng from Lebakwangi (Pameungpeuk). 1/1=377 Hz"},renteng4:{frequencies:[261.6255653006,296.45730715573,311.93819010347,397.0826586675,424.17395032031,523.2511306012],description:"Gamelan Renteng Bale` bandung from Kanoman (Cheribon). 1/1=338 Hz"},robot:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Dead Robot (see lattice)"},robot_live:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,376.74081403286,392.4383479509,418.60090448096,446.50763144636,490.54793493862,502.32108537715,523.2511306012],description:"Live Robot"},romieu:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Romieu's Monochord, Memoire theorique & pratique (1758)"},romieu_inv:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Romieu inverted, Pure (just) C minor in Wilkinson: Tuning In"},rosati_21:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Dante Rosati, JI guitar tuning"},rosati_21a:{frequencies:[261.6255653006,280.31310567921,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,488.36772189445,523.2511306012],description:"Alternative version of rosati_21 with more tetrads"},rousseau:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Rousseau's Monochord, Dictionnaire de musique (1768)"},rousseauw:{frequencies:[261.6255653006,276.81658657456,293.31219032635,311.14941643136,328.83652403056,349.33732971591,369.19521129916,391.76004912942,415.1051791302,439.20783490896,466.32059269121,492.40223109551,523.2511306012],description:"Jean-Jacques Rousseau's temperament (1768)"},rsr_12:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"RSR - 7 limit JI"},"rvf-1":{frequencies:[261.6255653006,272.14556467328,280.20095193414,292.09989854643,304.19649364034,313.29104303136,326.0297292803,340.21856244106,350.08660369014,364.11104988921,374.67209286633,390.97784457618,406.87534373272,419.03967825638,436.39317047385,454.92493848389,468.39051363853,487.22455955444,508.94280091833,523.2511306012],description:"D-A 695 cents, the increment is 0.25 cents, interval range 49.5 to 75.5"},"rvf-2":{frequencies:[261.6255653006,272.87751533003,278.75612859219,292.27711197479,305.71136588092,312.51386339015,326.29348693151,342.97106251658,349.87433921674,364.79522794952,372.13777859784,391.13596290168,408.38225803817,417.4934384938,436.65792486176,457.83788806384,467.7011114131,487.81592522452,513.9947144098,523.2511306012],description:"695 cents, 0.607 cents, 31-90 cents, C-A# is 7/4."},"rvf-3":{frequencies:[261.6255653006,272.98787180262,278.19314238431,292.29399505039,306.11778315204,312.24320803046,326.25579420701,343.90343447252,349.81371586656,364.81629995674,371.08598724028,391.15855645336,408.71263878415,416.89098941754,436.60748307387,458.73792719255,467.48503753613,487.78774868553,515.83876338215,523.2511306012],description:"694.737, 0.082, 25-97, the fifth E#-B# is 3/2."},majmin:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Malcolm & Marpurg 4 (Yamaha major & minor) mixed. Mersenne/Ban without D#"},major_clus:{frequencies:[261.6255653006,275.93321340298,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Chalmers' Major Mode Cluster"},major_wing:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Chalmers' Major Wing with 7 major and 6 minor triads"},malcolm:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Malcolm's Monochord (1721), and C major in Yamaha synths, Wilkinson: Tuning In"},malcolm2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,463.29527188648,490.54793493862,523.2511306012],description:"Malcolm 2"},malcolm_ap:{frequencies:[261.6255653006,279.47938236087,293.66476791741,313.97746652079,326.1838132033,349.22823143301,369.99442271164,391.99543598175,419.68935090103,436.0054062308,466.16376151809,489.82458627646,523.2511306012],description:"Best approximations in mix of all ETs from 12-23 to Malcolm's Monochord"},malcolm_me:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Malcolm's Mid-East"},malcolme:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,496.11959049595,523.2511306012],description:"Most equal interval permutation of Malcolm's Monochord"},malcolme2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Inverse most equal interval permutation of Malcolm's Monochord"},malcolms:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,369.99442271164,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Symmetrical version of Malcolm's Monochord and Albion scale"},malerbi:{frequencies:[261.6255653006,275.62199471997,292.73769384471,310.07474405997,327.54963108844,348.83408706747,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,489.99465727995,523.2511306012],description:"Luigi Malerbi's well-temperament nr.1 (1794) (nr.2 = Young)"},malgache:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,353.19451315581,367.91095120397,392.4383479509,413.89982010446,441.49314144476,459.88868900496,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malgache1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,310.07474405997,327.03195662575,353.19451315581,376.74081403286,392.4383479509,418.60090448096,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malgache2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,353.19451315581,367.91095120397,392.4383479509,408.78994578219,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malkauns:{frequencies:[261.6255653006,313.95067836072,348.83408706747,418.60090448096,465.11211608996,523.2511306012],description:"Raga Malkauns, inverse of prime_5"},mambuti:{frequencies:[261.6255653006,294.34406205295,331.72862856444,394.26624244126,466.16376151809,525.06772693396,590.39077962608,792.18471060794,999.82182774046],description:"African Mambuti Flutes (aerophone; vertical wooden; one note each)"},mandelbaum5:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,454.2110508691,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"Mandelbaum's 5-limit 19-tone scale, kleismic detempered circle of minor thirds"},mandelbaum7:{frequencies:[261.6255653006,272.52663052146,280.31310567921,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Mandelbaum's 7-limit 19-tone scale"},marimba1:{frequencies:[261.6255653006,284.4818984792,319.50463429683,342.83241505062,371.92288545737,411.72190027758,457.09800545097,500.48847822777,547.68138927822,612.97866327818,651.68292300609,728.11694797601,807.8963375694,903.69557412727,1013.19282257599,1069.7265813247,1225.95732655636,1303.36584601218],description:"Marimba of the Bakwese, SW Belgian Congo (Zaire). 1/1=140.5 Hz"},marimba2:{frequencies:[261.6255653006,279.11058864149,318.03161540472,343.03050002254,379.95718438213,421.58889248327,458.6849347701,519.33670373121,571.2689787911,613.68721319418,694.83488613378,761.23234162637,846.59395682498,953.56868388592,1049.52904699774,1145.8425062572,1271.3918647407,1389.66977226756],description:"Marimba of the Bakubu, S. Belgian Congo (Zaire). 1/1=141.5 Hz"},marimba3:{frequencies:[261.6255653006,296.73398952435,348.2210758395,420.13030572059,476.50902003141,518.73708886244,603.49292471609,696.44215167899,840.26061144117,953.01804006282,1037.47417772488],description:"Marimba from the Yakoma tribe, Zaire. 1/1=185.5 Hz"},marion:{frequencies:[261.6255653006,269.91407136119,278.46532473603,287.28749371714,296.38899008685,305.77900572762,315.46632790985,325.46074015958,335.7715953476,346.4093067252,357.3838291689,368.70624618807,380.38737313392,392.4383479509,411.71310103548,431.93429139282,453.14890242083,475.40520223986,498.75490298644,523.2511306012],description:"scale with two different ET step sizes"},marion1:{frequencies:[261.6255653006,262.79353657426,272.52663052146,280.31310567921,286.15296204753,294.32876096318,305.22982618403,311.45900631024,327.03195662575,336.37572681506,343.38355445704,350.39138209902,367.91095120397,373.75080757229,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,457.84473927605,467.18850946536,476.92160341255,490.54793493862,515.07533168556,523.2511306012],description:"Marion's 7-limit Scale # 1"},marion10:{frequencies:[261.6255653006,267.07609791103,272.52663052146,286.15296204753,290.69507255622,296.75121990114,305.22982618403,317.94773560837,327.03195662575,339.14425131559,356.10146388137,363.36884069528,370.93902487643,381.53728273004,400.61414686654,406.97310157871,408.78994578219,423.93031414449,436.04260883433,445.12682985172,457.84473927605,474.80195184183,476.92160341255,484.4917875937,508.71637697339,523.2511306012],description:"Marion's 7-limit Scale # 10"},marion15:{frequencies:[261.6255653006,269.10058145205,280.31310567921,288.32205155576,299.00064605783,313.95067836072,320.35783506196,327.03195662575,336.37572681506,353.19451315581,358.80077526939,360.4025644447,373.75080757229,384.42940207435,392.4383479509,403.65087217807,418.60090448096,420.46965851882,427.14378008261,448.50096908674,461.31528248922,470.92601754108,480.53675259294,504.56359022259,523.2511306012],description:"Marion's 7-limit Scale # 15"},marion19:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,294.32876096318,309.04519901133,313.95067836072,315.35224388912,327.03195662575,336.37572681506,343.38355445704,353.19451315581,366.27579142084,367.91095120397,373.75080757229,392.4383479509,403.65087217807,412.06026534844,420.46965851882,441.49314144476,457.84473927605,470.92601754108,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Marion's 7-limit Scale # 19"},marion26:{frequencies:[261.6255653006,271.31540105247,279.06726965397,284.8811711051,293.02063313667,303.87324917877,305.22982618403,310.07474405997,325.57848126297,334.88072358477,341.85740532612,348.83408706747,366.27579142084,379.84156147346,390.69417751556,406.97310157871,418.60090448096,427.32175665765,434.10464168396,455.80987376816,465.11211608996,474.80195184183,488.36772189445,512.78610798918,523.2511306012],description:"Marion's 7-limit Scale # 26"},marissing:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Peter van Marissing, just scale, Mens en Melodie, 1979"},"marpurg-1":{frequencies:[261.6255653006,276.86979852503,294.32876096318,311.47852302926,329.62755691287,348.83408706747,370.83100115625,392.4383479509,415.30469757995,439.50340943686,467.21778431035,494.44133512215,523.2511306012],description:"Other temperament by Marpurg, 3 fifths 1/3 Pyth. comma flat"},"marpurg-t1":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Marpurg's temperament nr.1, Kirnbergersche Temperatur (1766)"},"marpurg-t11":{frequencies:[261.6255653006,278.12325072816,294.32876096318,311.47852302926,331.11985608357,348.83408706747,371.66947115233,392.4383479509,416.24372513446,441.49314144476,466.16376151809,496.67978412536,523.2511306012],description:"Marpurg's temperament nr.11, 6 tempered fifths"},"marpurg-t12":{frequencies:[261.6255653006,279.06706247425,294.66131982972,310.42509491746,330.74614861362,349.22823143301,372.08941681833,392.88175996935,418.60059350213,441.99197952365,465.63764214343,496.11922267243,523.2511306012],description:"Marpurg's temperament nr.12, 4 tempered fifths"},"marpurg-t2":{frequencies:[261.6255653006,278.75210322491,294.32876096318,313.59611581451,331.11985608357,348.83408706747,371.66947115233,392.4383479509,418.12815462835,441.49314144476,470.39417348663,495.55929511749,523.2511306012],description:"Marpurg's temperament nr.2, 2 tempered fifths, Neue Methode (1790)"},"marpurg-t3":{frequencies:[261.6255653006,276.55731914056,294.32876096318,311.12698372208,331.11985608357,348.83408706747,368.74309237173,392.4383479509,414.83597850347,441.49314144476,465.11211608996,491.65745674141,523.2511306012],description:"Marpurg's temperament nr.3, 2 tempered fifths"},"marpurg-t4":{frequencies:[261.6255653006,276.86979852503,294.32876096318,310.07474405997,331.11985608357,348.83408706747,369.15973155124,392.4383479509,415.30469757995,441.49314144476,465.11211608996,492.21297564769,523.2511306012],description:"Marpurg's temperament nr.4, 2 tempered fifths"},"marpurg-t5":{frequencies:[261.6255653006,277.80935667884,294.32876096318,312.53552595124,331.11985608357,348.83408706747,370.41247575694,392.4383479509,416.71403480995,441.49314144476,468.80328869252,493.88330125613,523.2511306012],description:"Marpurg's temperament nr.5, 2 tempered fifths"},"marpurg-t7":{frequencies:[261.6255653006,276.86979852503,293.00227310437,310.07474405997,329.62755691287,348.83408706747,369.15973155124,390.66969766777,415.30469757995,439.50340943686,465.11211608996,492.21297564769,523.2511306012],description:"Marpurg's temperament nr.7, 3 tempered fifths"},"marpurg-t8":{frequencies:[261.6255653006,277.49581689502,293.33333347996,311.12698372208,329.99999983505,348.83408706747,369.99442271164,391.11111150212,414.83597850347,440,466.69047534984,493.32589719545,523.2511306012],description:"Marpurg's temperament nr.8, 4 tempered fifths"},"marpurg-t9":{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,350.01785633742,371.24999944327,392.4383479509,416.24372513446,441.49314144476,468.27419030811,496.67978412536,523.2511306012],description:"Marpurg's temperament nr.9, 4 tempered fifths"},marpurg:{frequencies:[261.6255653006,277.49581689502,293.83071040301,311.12698372208,329.99999983505,349.42557141756,369.99442271164,392.4383479509,415.53937569366,440,466.69047534984,494.16238213869,523.2511306012],description:"Marpurg, Versuch ueber die musikalische Temperatur (1776), p. 153"},marpurg1:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Marpurg's Monochord no.1 (1776)"},marpurg3:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Marpurg 3"},marpurg4:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Marpurg 4, also Yamaha Pure Minor"},marsh:{frequencies:[261.6255653006,275.50659558095,293.15632631094,311.93674864629,328.48713220126,349.53094576004,368.07595926604,391.65594491223,412.43597848639,438.85779226656,466.97226207056,491.74834273545,523.2511306012],description:"John Marsh's meantone temperament (1809)"},marsh2:{frequencies:[261.6255653006,277.22760066578,293.66431501254,311.21660561883,329.70790803338,349.18845812715,369.99117208793,391.90679138833,415.30984563838,439.96491544382,466.29335337935,494.03030700757,523.2511306012],description:"John Marsh's quasi-equal temperament (1840)"},mavila12:{frequencies:[261.6255653006,256.98292999787,287.53945699376,321.72930260925,316.02010771872,353.59644178868,347.32175377489,388.62000642034,381.72381344999,427.11263899087,477.89842030218,469.41794908116,525.2340355968],description:"A 12-note mavila scale (for warping meantone-based music)"},mavila9:{frequencies:[261.6255653006,287.53945699376,316.02010771872,321.72930260925,353.59644178868,388.62000642034,427.11263899087,434.82882549415,477.89842030218,525.2340355968],description:"9-note scale of mavila temperament (TOP tuning)"},mavlim1:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,465.11211608996,523.2511306012],description:"First 27/25&135/128 scale"},mbira_banda:{frequencies:[261.6255653006,291.13134764929,327.53979283172,368.50142299854,404.88256627495,443.57258128492,480.10063929961,555.00605988575],description:"Mubayiwa Bandambira's tuning of keys R2-R9 from Berliner: The soul of mbira."},mbira_banda2:{frequencies:[261.6255653006,321.16993719469,360.29289210659,380.8360868427,422.32008370967,461.34206956593,587.32953583482,513.96502576833,761.67217368541,711.48673390068,849.04255025658,936.10488897708,1046.50286568598,633.49659152295,1055.60951665979,1174.65975017952,1321.5609185619,1486.83332446121,1633.62433483289,1789.73120457747,1937.11498804338,2239.34414798534],description:"Mubayiwa Bandambira's Mbira DzaVadzimu tuning B1=114 Hz"},mbira_gondo:{frequencies:[261.6255653006,315.28798447451,345.21700307457,379.51849407657,422.56409582244,461.07566488503,564.05539604512,516.94239487354,778.57545143809,697.24717811406,842.69088701475,926.42243447898,1029.11884353824,628.3943418294,1040.47545270591,1153.813137635,1308.64724593201,1415.59600512246,1572.51770682594,1715.83353717518,1883.05646656025,2103.91477035149],description:"John Gondo's Mbira DzaVadzimu tuning B1=122 Hz"},mbira_kunaka:{frequencies:[261.6255653006,292.98704147282,325.27731021818,350.44066402496,386.59871897734,434.19311733646,479.82340237272,507.76825077597],description:"John Kunaka's mbira tuning of keys R2-R9"},mbira_kunaka2:{frequencies:[261.6255653006,340.26769547546,358.83903996308,405.11650317313,448.98591596033,490.75518955849,622.61349925697,541.70354187177,817.28364083393,724.3415782324,907.35693646861,997.5144154576,1094.73088724383,673.88551872153,1085.91380691742,1216.08403680913,1350.10935126711,1454.55340013417,1604.63250673428,1802.17976955899,1991.5747030301,2107.56373750553],description:"John Kunaka's Mbira DzaVadzimu tuning B1=113 Hz"},mbira_mude:{frequencies:[261.6255653006,289.28740724512,309.15639683494,364.68988616898,372.56793743951,408.17001145418,507.1819925915,459.74594725879,689.63684605432,610.50517472746,760.79276355093,824.39562982862,887.65774573556,562.75365576207,888.68380073365,1015.53708814899,1126.80895076279,1206.28956516212,1365.00817887311,1507.58874420517,1666.02447560859,1935.99638964471],description:"Hakurotwi Mude's Mbira DzaVadzimu tuning B1=132 Hz"},mbira_mujuru:{frequencies:[261.6255653006,281.37682788104,301.05008478933,329.43721154897,394.9500460767,419.64523240241,533.01280425363,488.77489658044,700.88132804992,602.10016957865,765.19999119503,809.29752893,942.6160133907,577.57308891646,937.72844143307,1046.50286568598,1145.18149427149,1243.7900049313,1411.51350174391,1540.15576038017,1658.34356815416,1904.9365287586],description:"Ephat Mujuru's Mbira DzaVadzimu tuning, B1=106 Hz"},mbira_zimb:{frequencies:[261.6255653006,276.86260193655,305.95868600104,343.62544191138,379.08031027329,408.40584780369,453.41648894489,507.76825077597],description:"Shona mbira scale"},mboko_bow:{frequencies:[261.6255653006,347.61817721989,375.37611551499],description:"African Mboko Mouth Bow (chordophone, single string, plucked)"},mboko_zither:{frequencies:[261.6255653006,294.68429813772,319.3201344739,354.92237405774,396.55020354877,418.67676528474,472.67116512585,513.07516347663],description:"African Mboko Zither (chordophone; idiochordic palm fibre, plucked)"},mcclain:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,331.11985608357,367.91095120397,392.4383479509,408.78994578219,441.49314144476,490.54793493862,510.98743222773,523.2511306012],description:"McClain's 12-tone scale, see page 119 of The Myth of Invariance"},mcclain_18:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,319.36714514233,327.03195662575,331.11985608357,344.91651675372,367.91095120397,383.2405741708,392.4383479509,408.78994578219,413.89982010446,441.49314144476,459.88868900496,490.54793493862,496.67978412536,510.98743222773,523.2511306012],description:"McClain's 18-tone scale, see page 143 of The Myth of Invariance"},mcclain_8:{frequencies:[261.6255653006,294.32876096318,327.03195662575,367.91095120397,392.4383479509,408.78994578219,441.49314144476,490.54793493862,523.2511306012],description:"McClain's 8-tone scale, see page 51 of The Myth of Invariance"},mccoskey_22:{frequencies:[261.6255653006,270.06509966514,279.06726965397,287.78812183066,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,382.37582620857,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,506.89953276991,523.2511306012],description:"31-limit rational interpretation of 22-tET, Marion McCoskey"},mclaren_bar:{frequencies:[261.6255653006,281.77400528964,292.14326370913,304.76756192248,325.50548568708,328.66136118639,353.45752508165,360.67039921732,379.1552038283,397.63971531932,405.75513620619,436.411067852,476.98680497297,521.16951219839],description:"Metal bar scale. see McLaren, Xenharmonicon 15, pp.31-33"},mclaren_cps:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,306.59245933664,327.03195662575,343.38355445704,367.91095120397,392.4383479509,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"2)12 [1,2,3,4,5,6,8,9,10,12,14,15] a degenerate CPS"},mclaren_harm:{frequencies:[261.6255653006,279.06726965397,299.00064605783,304.4370214407,307.2300216374,348.83408706747,380.54627680087,389.39619021485,393.97732186443,398.6675280771,465.11211608996,523.2511306012],description:'from "Wilson part 9", claimed to be Schlesingers Dorian Enharmonic, prov. unkn'},mclaren_rath1:{frequencies:[261.6255653006,279.06726965397,299.00064605783,334.88072358477,341.71502406609,348.83408706747,372.08969287196,380.54627680087,389.39619021485,398.6675280771,492.47165233054,507.3950357345,523.2511306012],description:"McLaren Rat H1"},mclaren_rath2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,334.88072358477,341.71502406609,348.83408706747,380.54627680087,389.39619021485,398.6675280771,440.63253103259,452.54151835779,465.11211608996,523.2511306012],description:"McLaren Rat H2"},mean10:{frequencies:[261.6255653006,272.18829429226,292.14313377277,313.56091500001,326.220453695,350.13653284039,364.27275363262,390.97854693193,406.76370320307,436.58461973079,468.59178605305,487.51045723915,523.2511306012],description:"3/10-comma meantone scale"},mean11:{frequencies:[261.6255653006,272.83457350033,292.34115464648,313.24237654315,326.6628419965,350.01792709981,365.01399145768,391.11103243201,407.86767761879,437.02858581415,468.2743796482,488.33699124025,523.2511306012],description:"3/11-comma meantone scale. A.J. Ellis no. 10"},mean11ls_19:{frequencies:[261.6255653006,272.93479580544,280.25721516838,292.37183188538,305.01012622427,313.1930753928,326.73140514978,340.85495140859,349.99956372811,365.12891753666,374.92476290643,391.13155279262,408.03891236124,418.98596425085,437.09738047696,455.99169236578,468.2252457596,488.46511500326,509.57988860269,523.2511306012],description:"Least squares appr. to 3/2, 5/4, 7/6, 15/14 and 11/8, Petr Par\xEF\xBF\xBDzek"},mean13:{frequencies:[261.6255653006,273.83184954717,292.64606374809,312.75295135888,327.34460995374,349.8355370417,366.15730590163,391.31494185909,409.57195510156,437.7124891801,467.78648270341,489.61131479929,523.2511306012],description:"3/13-comma meantone scale"},mean14:{frequencies:[261.6255653006,274.22463192287,292.76593693997,312.56088569186,327.61283758281,349.76390952171,366.60744235102,391.39507854003,410.24343789088,437.98145930734,467.59494724206,490.11285326462,523.2511306012],description:"3/14-comma meantone scale (Giordano Riccati, 1762)"},mean14_15:{frequencies:[261.6255653006,274.22463192287,279.31500250577,292.76593693997,306.86462618694,312.56088569186,327.61283758281,349.76390952171,366.60744235102,391.39507854003,410.24343789088,417.8586951835,437.98145930734,467.59494724206,490.11285326462,523.2511306012],description:"15 of 3/14-comma meantone scale"},mean14_19:{frequencies:[261.6255653006,274.22463192287,279.31500250577,292.76593693997,306.86462618694,312.56088569186,327.61283758281,343.38964426558,349.76390952171,366.60744235102,373.41269440635,391.39507854003,410.24343789088,417.8586951835,437.98145930734,459.07327263526,467.59494724206,490.11285326462,513.71515101261,523.2511306012],description:"19 of 3/14-comma meantone scale"},mean14_7:{frequencies:[261.6255653006,292.76593693997,327.61283758281,349.76390952171,391.39507854003,437.98145930734,490.11285326462,523.2511306012],description:"Least squares appr. of 5L+2S to Ptolemy's Intense Diatonic scale"},mean14a:{frequencies:[261.6255653006,274.24690838881,292.77273178776,312.55000460003,327.62804498858,349.75985073129,366.63296888199,391.39962048672,410.28152481852,437.9967071602,467.58409501387,490.1412915133,523.2511306012],description:'fifth of sqrt(5/2)-1 octave "recursive" meantone, Paul Hahn'},mean16:{frequencies:[261.6255653006,274.864106667,292.9608347655,312.24903186879,328.04917632434,349.64754658398,367.34009701877,391.52533508436,411.33694767869,438.41888642025,467.28387071703,490.92894854125,523.2511306012],description:"3/16-comma meantone scale"},mean17:{frequencies:[261.6255653006,273.72412433093,292.61316553779,312.80569569783,327.2710181906,349.85520131118,366.03383354947,391.29294726693,409.38781813791,437.63868343995,467.83907547741,489.47372981579,523.2511306012],description:"4/17-comma meantone scale, least squares error of 5/4 and 3/2"},mean17_17:{frequencies:[261.6255653006,273.72412433093,279.67971414776,292.61316553779,306.14471057197,312.80569569783,327.2710181906,349.85520131118,366.03383354947,373.99786656393,391.29294726693,409.38781813791,418.29512920081,437.63868343995,457.8767570375,467.83907547741,489.47372981579,523.2511306012],description:"4/17-comma meantone scale with split C#/Db, D#/Eb, F#/Gb, G#/Ab and A#/Bb"},mean17_19:{frequencies:[261.6255653006,273.72412433093,279.67971414776,292.61316553779,306.14471057197,312.80569569783,327.2710181906,342.40527209253,349.85520131118,366.03383354947,373.99786656393,391.29294726693,409.38781813791,418.29512920081,437.63868343995,457.8767570375,467.83907547741,489.47372981579,512.10885267608,523.2511306012],description:"4/17-comma meantone scale, least squares error of 5/4 and 3/2"},mean18:{frequencies:[261.6255653006,272.71477685134,292.30447317753,313.30134186202,326.58087306932,350.03988839382,364.87661266094,391.0864943589,407.66301227525,436.94633423564,468.33314368944,488.18382342185,523.2511306012],description:"5/18-comma meantone scale (Smith). 3/2 and 5/3 eq. beat. A.J. Ellis no. 9"},mean19:{frequencies:[261.6255653006,273.06170311607,292.41066686775,313.13068664042,326.81820677503,349.97632128221,365.27443420834,391.15752841841,408.25574814862,437.18446858874,468.16306089008,488.62733218513,523.2511306012],description:"5/19-comma meantone scale, fifths beats three times third. A.J. Ellis no. 11"},mean19r:{frequencies:[261.6255653006,273.04332227389,292.40504357126,313.13971948727,326.80563693258,349.97968716666,365.25335892465,391.15376651139,408.22434232755,437.17185753972,468.17206422213,488.60384173026,523.2511306012],description:"Approximate 5/19-comma meantone with 19/17 tone, Petr Parizek, 2002"},mean23:{frequencies:[261.6255653006,274.15058593695,292.74334833321,312.59706303545,327.56228503462,349.77740346966,366.52259116395,391.37997903742,410.11684180717,437.93077103284,467.63102771476,490.01832104213,523.2511306012],description:"5/23-comma meantone scale, A.J. Ellis no. 4"},mean23six:{frequencies:[261.6255653006,273.11604376732,292.42729246507,313.10398392891,326.85537164611,349.96637341293,365.33674088125,391.16864715511,408.34860251967,437.22175336101,468.13644404983,488.69678846289,523.2511306012],description:"6/23-comma meantone scale"},mean25:{frequencies:[261.6255653006,272.66208311698,292.28833573479,313.32728859832,326.54481265413,350.04955123355,364.81618195011,391.07569872695,407.57299290994,436.91015056532,468.35900068872,488.11644468937,523.2511306012],description:"7/25-comma meantone scale, least square weights 3/2:0 5/4:1 6/5:1"},mean26:{frequencies:[261.6255653006,272.91754119498,292.36655103694,313.20156187458,326.7196004604,350.00272362315,365.10913291207,391.12802157824,408.00943064927,437.08553692506,468.23370304224,488.44305713046,523.2511306012],description:"7/26-comma meantone scale (Woolhouse 1835). Almost equal to meaneb742"},mean26_21:{frequencies:[261.6255653006,272.91754592428,280.26986822267,292.36655272572,304.98534036063,313.20156006546,326.71960423481,335.52133892506,340.8210986211,350.00272362315,365.10913712997,374.9450750913,391.12802157824,408.00943771953,419.00109777107,437.08553944976,455.95052092314,468.23370033762,488.44306277317,501.60158217053,509.52467838008,523.2511306012],description:"21 of 7/26-comma meantone scale (Woolhouse 1835)"},mean27:{frequencies:[261.6255653006,273.15429014256,292.43899158768,313.08519355925,326.88152513903,349.9593710588,365.38059276675,391.17647406766,408.41395592075,437.24799400905,468.11771609009,488.74567091648,523.2511306012],description:"7/27-comma meantone scale, least square weights 3/2:2 5/4:1 6/5:1"},mean29:{frequencies:[261.6255653006,273.57932033947,292.56893127899,312.87664195194,327.1720749345,349.88164908166,365.86785468743,391.26336919078,409.14031659695,437.53944680455,467.90980928584,489.28875967044,523.2511306012],description:"7/29-comma meantone scale, least square weights 3/2:4 5/4:1 6/5:1"},mean2sev:{frequencies:[261.6255653006,272.52663052146,292.24684137387,313.39402123097,326.45210604021,350.07440004945,364.66083404534,391.04793957621,407.34160211012,436.81711699543,468.42550014967,487.94322738789,523.2511306012],description:"2/7-comma meantone scale. Zarlino's temperament (1558). See also meaneb371"},mean2sev_15:{frequencies:[261.6255653006,272.52663052146,280.55692507618,292.24689370448,304.42377254813,313.39402847191,326.45203249943,350.07447082328,364.66081719444,391.04786051887,407.34165622677,419.34452602299,436.81710690282,468.42541627199,487.94330348661,523.2511306012],description:"15 of 2/7-comma meantone scale"},mean2sev_19:{frequencies:[261.6255653006,272.52663052146,280.55692507618,292.24689370448,304.42377254813,313.39402847191,326.45203249943,340.0543130973,350.07447082328,364.66081719444,375.40603866065,391.04786051887,407.34165622677,419.34452602299,436.81710690282,455.01770749831,468.42541627199,487.94330348661,508.27414914183,523.2511306012],description:"19 of 2/7-comma meantone scale"},mean2sev_31:{frequencies:[261.6255653006,264.72620698393,272.52663052146,280.55692507618,283.88190679319,292.24689370448,300.8583415146,304.42377254813,313.39402847191,317.10820138491,326.45203249943,336.07138073182,340.0543130973,350.07447082328,354.22315547012,364.66081719444,375.40603866065,379.85514366424,391.04786051887,395.6823437549,407.34165622677,419.34452602299,424.31412061457,436.81710690282,449.68851049921,455.01770749831,468.42541627199,473.97693555703,487.94330348661,502.32108537715,508.27414914183,523.2511306012],description:"31 of 2/7-comma meantone scale"},mean2seveb:{frequencies:[261.6255653006,274.26749945295,292.59076110537,312.44357330613,327.42660602987,349.76102048238,366.6169314736,391.04794861134,410.01084835752,437.49574139527,467.27496094916,489.74950989452,523.2511306012],description:'"2/7-comma" meantone with equal beating fifths. A.J. Ellis no. 8'},mean2sevr:{frequencies:[261.6255653006,272.52663052146,292.24289114742,313.39346366789,326.45152465405,350.07234194042,364.65868952128,391.04531121882,407.33886585294,436.81651812993,468.41855142334,487.93599106598,523.2511306012],description:"Rational approximation to 2/7-comma meantone, 1/1 = 262.9333"},mean9:{frequencies:[261.6255653006,274.03547926168,292.70827332867,306.59245933664,327.48360691354,349.79835961887,366.39065074918,391.35653176554,409.92008797511,437.85206746661,467.68706357679,489.87127257422,523.2511306012],description:"2/9-comma meantone scale, Lemme Rossi, Sistema musico (1666)"},mean94:{frequencies:[261.6255653006,268.79084150406,291.09659021292,315.25339315665,323.88740273232,350.76536842075,360.37196303797,390.27761906502,400.96635635801,434.24075936811,470.27645613296,483.15616342113,523.2511306012],description:"4/9-comma meantone scale"},mean9_15:{frequencies:[261.6255653006,274.03547926168,279.45274708261,292.70827332867,306.59245933664,312.65343270838,327.48360691354,349.79835961887,366.39065074918,391.35653176554,409.92008797511,418.0235894185,437.85206746661,467.68706357679,489.87127257422,523.2511306012],description:"15 of 2/9-comma meantone scale"},mean9_19:{frequencies:[261.6255653006,274.03547926168,279.45274708261,292.70827332867,306.59245933664,312.65343270838,327.48360691354,343.0174228875,349.79835961887,366.39065074918,373.63364091796,391.35653176554,409.92008797511,418.0235894185,437.85206746661,458.62082212371,467.68706357679,489.87127257422,513.10776453427,523.2511306012],description:"19 of 2/9-comma meantone scale"},mean9_31:{frequencies:[261.6255653006,268.72322665693,274.03547926168,279.45274708261,287.03404351137,292.70827332867,298.49467410529,306.59245933664,312.65343270838,321.13524775754,327.48360691354,333.95746354843,343.0174228875,349.79835961887,359.28803828513,366.39065074918,373.63364091796,383.76997851754,391.35653176554,401.97367512027,409.92008797511,418.0235894185,429.36393755067,437.85181455341,446.50763144636,458.62082212371,467.68706357679,480.3749841712,489.87127257422,499.55528826613,513.10776453427,523.2511306012],description:"31 of 2/9-comma meantone scale"},meaneb1071:{frequencies:[261.6255653006,273.45959631537,292.5323192343,305.76452283047,327.09038632535,349.9034421565,365.73073124967,391.23900009103,408.93579686983,437.45744778434,457.24482979639,489.13584427285,523.2511306012],description:"Equal beating 7/4 = 3/2 same."},meaneb1071a:{frequencies:[261.6255653006,273.94115519525,292.67936294368,306.45675889694,327.41929816594,349.81553441422,366.28252094772,391.33731744348,409.75863641311,437.78732645584,458.39517452459,489.75074612717,523.2511306012],description:"Equal beating 7/4 = 3/2 opposite."},meaneb341:{frequencies:[261.6255653006,272.43747957464,292.21954801903,313.43802026715,326.39113133433,350.09085029289,364.55867287416,391.02956482064,407.18921698842,436.75579855003,468.46925117002,487.82916876009,523.2511306012],description:"Equal beating 6/5 = 5/4 same. Almost 4/15 Pyth. comma"},meaneb371:{frequencies:[261.6255653006,272.52577151658,292.24657972098,313.39444482621,326.45151771442,350.07455777399,364.65985037488,391.0477633913,407.34013625771,436.81652657765,468.42591953828,487.94213100406,523.2511306012],description:"Equal beating 6/5 = 3/2 same. Practically 2/7-comma (Zarlino)"},meaneb371a:{frequencies:[261.6255653006,269.83862220337,291.42039690163,314.72828847419,324.6081803116,350.57044084899,361.57569171511,390.49462500658,421.72650333798,434.96526321606,469.75391665508,484.50062400899,523.2511306012],description:"Equal beating 6/5 = 3/2 opposite. Almost 2/5-comma"},meaneb381:{frequencies:[261.6255653006,275.92799893014,293.28437056932,311.73248946737,328.77414682856,349.45463702831,368.55847249214,391.74146894101,416.38271791821,439.14534885862,466.76838786866,492.28548089506,523.2511306012],description:"Equal beating 6/5 = 8/5 same. Almost 1/7-comma"},meaneb451:{frequencies:[261.6255653006,274.36682021224,292.8092284668,312.49148032108,327.70992276921,349.73795145032,366.77030983847,391.42412846541,410.48661799548,438.07873640926,467.5258138363,490.29448158868,523.2511306012],description:"Equal beating 5/4 = 4/3 same, 5/24 comma meantone. A.J. Ellis no. 6"},meaneb471:{frequencies:[261.6255653006,272.3284467197,292.18612898941,313.49179640307,326.31648163178,350.11087068539,364.43361138613,391.00720457415,407.00321492741,436.68087780422,468.52283272721,487.68970701588,523.2511306012],description:"Equal beating 5/4 = 3/2 same. Almost 5/17-comma"},meaneb471a:{frequencies:[261.6255653006,274.14912748586,292.7429036132,312.59777626068,327.56128980523,349.7776701617,366.52092076205,391.37968062521,410.11434970273,437.92977184699,467.63173811584,490.01645860508,523.2511306012],description:"Equal beating 5/4 = 3/2 opposite. Almost 1/5 Pyth. Gottfried Keller (1707)"},meaneb471b:{frequencies:[261.6255653006,272.31089540773,292.18072491748,313.50040506268,326.30440921209,350.11400731728,364.41338872146,391.00370158472,406.97310157871,436.668886633,468.53149836075,487.66729542944,523.2511306012],description:"21/109-comma meantone with 9/7 major thirds, almost equal beating 5/4 and 3/2"},meaneb472:{frequencies:[261.6255653006,270.83769079127,291.72826852127,314.23020335825,325.29440843388,350.38540704884,362.72286472858,390.7008399429,404.45761497645,435.65472502222,469.25816799182,485.78126704788,523.2511306012],description:"Beating of 5/4 = twice 3/2 same. Almost 5/14-comma"},meaneb472_19:{frequencies:[261.6255653006,270.8378472333,281.80541953687,291.72826852127,302.00051792575,314.23002185182,325.29459633135,336.74877333101,350.38540704884,362.72307424558,377.41153667283,390.7008399429,404.45808222448,420.83660282593,435.65497666633,450.99513069838,469.25816799182,485.78154764623,502.88674365212,523.2511306012],description:"Beating of 5/4 = twice 3/2 same, 19 tones"},meaneb472a:{frequencies:[261.6255653006,274.74648495017,292.92493846141,312.30633997417,327.96897748493,349.66886860972,367.20529370531,391.50146074488,411.13561642091,438.33843670622,467.34113372786,490.7787182415,523.2511306012],description:"Beating of 5/4 = twice 3/2 opposite. Almost 3/17-comma"},meaneb591:{frequencies:[261.6255653006,273.06215106005,292.41085266114,313.13038820279,326.81843330822,349.97621009739,365.27491737756,391.15765268623,418.87439289145,437.18488525956,468.16276342643,488.62782610925,523.2511306012],description:"Equal beating 4/3 = 5/3 same."},meaneb732:{frequencies:[261.6255653006,272.00548436883,292.08705896894,313.65121264041,326.09523618955,350.1701397801,364.06303937825,390.94102347986,406.4514961644,436.45893055948,468.68174619223,487.27655969467,523.2511306012],description:"Beating of 3/2 = twice 6/5 same. Almost 4/13-comma"},meaneb732_19:{frequencies:[261.6255653006,272.00553778846,280.94077405591,292.08707584055,303.67560621907,313.65118727632,326.09527197795,339.03307470248,350.17012966679,364.06310036266,376.02237826726,390.94103477068,406.45158772689,419.80330474394,436.45896585468,453.77543893118,468.68171912011,487.27662724555,506.60928680033,523.2511306012],description:"Beating of 3/2 = twice 6/5 same, 19 tones"},meaneb732a:{frequencies:[261.6255653006,270.68848625127,291.6822692306,314.3042667302,325.1920204578,350.41293324447,362.5515203525,390.67014898736,404.20304509584,435.55206635241,469.33217160858,485.59021720901,523.2511306012],description:"Beating of 3/2 = twice 6/5 opposite. Almost 1/3 Pyth. comma"},meaneb742:{frequencies:[261.6255653006,272.89343543801,292.35917287023,313.21341909223,326.70311046689,350.00714105462,365.08148980199,391.12308516115,407.96824372307,437.06899032128,468.24551969328,488.41224041213,523.2511306012],description:"Beating of 3/2 = twice 5/4 same."},meaneb742a:{frequencies:[261.6255653006,273.78850133971,292.63287562287,312.77409391616,327.31510698093,349.84341999552,366.10759179471,391.30612443552,409.49789158088,437.68290117536,467.80756449982,489.55615570194,523.2511306012],description:"Beating of 3/2 = twice 5/4 opposite. Almost 3/13-comma, 3/14 Pyth. comma"},meaneb781:{frequencies:[261.6255653006,273.88372205101,292.66195046404,312.72748571568,327.38015167213,349.82604176358,366.21672762941,391.32556326448,418.15568884829,437.74813244966,467.76108961433,489.67748280644,523.2511306012],description:"Equal beating 3/2 = 8/5 same."},meaneb891:{frequencies:[261.6255653006,272.7426257605,292.31307409948,313.28760473417,326.59990179186,350.03483972175,364.90860969063,391.092135133,419.1546662649,436.96549358815,468.31936361194,488.21959184068,523.2511306012],description:"Equal beating 8/5 = 5/3 same. Almost 5/18-comma"},meaneight:{frequencies:[261.6255653006,276.08926119362,293.33333347996,311.65444160511,328.88393162803,349.42547049952,368.74309237173,391.77416758435,413.43299207996,439.25532436715,466.69047534984,492.49097043477,523.2511306012],description:"1/8 Pyth. comma meantone scale"},meanfifth:{frequencies:[261.6255653006,274.56546814423,292.86978442859,312.39456569414,327.84548435462,349.70179235499,366.99791252626,391.46460164194,410.82629477826,438.21464222188,467.42914467878,490.54793493862,523.2511306012],description:"1/5-comma meantone scale (Verheijen)"},meanfifth2:{frequencies:[261.6255653006,279.06726965397,292.86986732103,312.39452419152,327.84547867349,349.70184487387,366.99801003998,391.46454285105,417.56218018201,438.2147004401,467.42901237995,490.54793493862,523.2511306012],description:"1/5-comma meantone by John Holden (1770)"},meanfifth_19:{frequencies:[261.6255653006,274.56546814423,279.06726965397,292.86978442859,307.35519222791,312.39456569414,327.84548435462,344.06059968708,349.70179235499,366.99791252626,373.01539917593,391.46460164194,410.82629477826,417.56217294621,438.21464222188,459.88868900496,467.42914467878,490.54793493862,514.81033759999,523.2511306012],description:"19 of 1/5-comma meantone scale"},meanfifth_43:{frequencies:[261.6255653006,265.91515911649,270.13633240739,274.56546814423,279.06726965397,283.49717461664,288.14537375445,292.86978442859,297.67175429757,302.39711110066,307.35519222791,312.39456569414,317.35355938713,322.556865357,327.84548435462,333.22081516619,338.51040756711,344.06059968708,349.70179235499,355.43547760922,361.07770857381,366.99791252626,373.01539917593,378.93660287884,385.14971481892,391.46460164194,397.88302689184,404.19904307077,410.82629477826,417.56217294621,424.19061149626,431.14564594215,438.21464222188,445.39957775044,452.46991103879,459.88868900496,467.42914467878,475.09307907327,482.63477102771,490.54793493862,498.59100550039,506.50570672499,514.81033759999,523.2511306012],description:"Complete 1/5-comma meantone scale"},meanfiftheb:{frequencies:[261.6255653006,275.80023422757,293.11157312801,311.73372470712,328.53333183909,349.48325286892,368.3828117434,391.46459711956,412.7266004334,438.69360944226,466.62683936965,491.82624824197,523.2511306012],description:'"1/5-comma" meantone with equal beating fifths'},meangold:{frequencies:[261.6255653006,272.97231199113,292.38331430233,313.17462880702,326.75706743029,349.99269211627,365.17193449866,391.13923210785,408.10300926149,437.12312635029,468.20685771475,488.51307131873,523.2511306012],description:"Meantone scale with Blackwood's R = phi, and diat./chrom. ST = phi, ~4/15-comma"},meanhalf:{frequencies:[261.6255653006,267.49544939623,290.69507255622,315.90677595028,322.99452506247,351.00752840096,358.88280562497,390.00836666198,398.75867291663,433.34262909025,470.92601754108,481.49180950675,523.2511306012],description:"1/2-comma meantone scale"},meanhar2:{frequencies:[261.6255653006,273.08769296879,292.41861893027,305.22982618403,326.83598255713,349.97156260351,365.30423365264,391.16284711627,408.30015740759,437.20230245522,456.35665612784,488.66055322307,523.2511306012],description:"1/9-Harrison's comma meantone scale"},meanhar3:{frequencies:[261.6255653006,274.22153683641,292.76499331753,306.86017365004,327.61072570921,343.38355445704,366.60389537541,391.39444778107,410.23814647641,437.9793418028,459.06587176894,490.10890120058,523.2511306012],description:"1/11-Harrison's comma meantone scale"},meanharris:{frequencies:[261.6255653006,273.71072489962,292.60907359238,306.12544311476,327.26186315247,349.85764856047,366.01847563765,391.29021017831,409.36491649663,437.62950220286,457.84473927605,489.45661357347,523.2511306012],description:"1/10-Harrison's comma meantone scale"},meanhsev:{frequencies:[261.6255653006,265.69493617871,271.18768033644,275.4057836544,279.68949451567,284.03983498254,289.91182549392,294.4211659268,299.00064605783,305.1819244006,309.92877868547,314.74946639166,321.25632089757,326.25319922315,331.32779988873,336.4813337451,343.43745382287,348.77934146077,354.20431777528,361.52682728594,367.15008027699,372.86080050545,378.66034414493,386.48843610249,392.49994642563,398.60496085649,406.84537033315,413.17351844213,419.60009331305,426.12662827999,434.93599657884,441.70106893056,448.57136642871,457.84473927605,464.96613926104,472.19830582795,481.96011959425,489.45661357347,497.06970936204,504.80122352123,515.23704142273,523.2511306012],description:"1/14-septimal schisma tempered meantone scale"},meanhskl:{frequencies:[261.6255653006,275.0605216927,293.02063313667,312.15345277639,328.18310911307,349.61186736411,367.56508220664,391.56529173291,411.67289207144,438.55312706018,467.18850946536,491.17950266504,523.2511306012],description:"Half septimal kleisma meantone"},meanlst357_19:{frequencies:[261.6255653006,273.71260157103,279.68803244686,292.60971924044,306.12821574316,312.81131320311,327.26311833974,342.38279105966,349.85736361975,366.02068710341,374.01129952811,391.29052886394,409.36829077259,418.30522648629,437.63082426891,457.84952434322,467.84458559023,489.45917220726,512.07206464598,523.2511306012],description:"19 of mean-tone scale, least square error in 3/2, 5/4 and 7/4"},meanmalc:{frequencies:[261.6255653006,279.16226462633,292.82999876562,312.45832383396,327.75622702832,349.72564885805,366.84815356577,391.43789792004,417.67588698136,438.12522309524,467.49265244264,490.38100841085,523.2511306012],description:"Meantone approximation to Malcolm's Monochord, 3/16 Pyth. comma"},meannkleis:{frequencies:[261.6255653006,277.55670411237,293.77792781181,311.66693695111,329.88161264913,349.96913477239,370.42222384066,392.07096746411,415.94530241673,440.25439013544,467.06275302556,494.35929617392,523.2511306012],description:"1/5 kleisma tempered meantone scale"},meanpi:{frequencies:[261.6255653006,275.38456311745,294.43027471344,309.91448590794,326.2128298123,348.77404705732,367.11600789597,392.50613131028,413.14795414706,434.87532652316,464.95175460796,489.40347900327,523.2511306012],description:"Pi-based meantone with Harrison's major third by Erv Wilson"},meanpi2:{frequencies:[261.6255653006,287.5806999253,296.7710142931,326.2128298123,336.6377243117,370.0346037192,381.85992557156,394.06315326167,433.15704755212,446.99959483943,491.34516423327,507.04724898227,523.2511306012],description:"Pi-based meantone by Erv Wilson analogous to 22-tET"},meanpkleis:{frequencies:[261.6255653006,274.33428876064,294.88060759996,309.2047285643,324.22465805628,348.50752497012,365.43662717622,392.80607455881,411.88702081614,442.73537947933,464.24169412807,486.7926967469,523.2511306012],description:"1/5 kleisma positive temperament"},meanquar:{frequencies:[261.6255653006,273.37431312998,292.50627485027,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale. Pietro Aaron's temp. (1523). 6/5 beats twice 3/2"},meanquar_14:{frequencies:[261.6255653006,273.37431312998,292.50627485027,305.64177427204,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,418.60090448096,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split D#/Eb and G#/Ab, Otto Gibelius (1666)"},meanquar_15:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177427204,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,418.60090448096,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb and G#/Ab"},meanquar_16:{frequencies:[261.6255653006,273.37431312998,279.93548123753,292.50629850443,305.64179898843,312.97722776199,327.03195662575,349.91920725962,365.63293356166,391.22137338448,408.78994578219,418.60090448096,437.39882871549,457.04097849371,468.01000025525,489.02679755603,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb, G#/Ab and A#/Bb"},meanquar_17:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177250659,312.977175335,327.03195662575,349.91912034749,365.63284274659,374.40803131735,391.22147055517,408.78994578219,418.60090448096,437.39889945791,457.04105241293,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb, F#/Gb, G#/Ab and A#/Bb"},meanquar_19:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177427204,312.977175335,327.03195662575,341.71789064962,349.91912034749,365.63284274659,374.40803131735,391.22147055517,408.78994578219,418.60090448096,437.39890198442,457.04105241293,468.01003810189,489.02683710225,510.98743222773,523.2511306012],description:"19 of 1/4-comma meantone scale"},meanquar_27:{frequencies:[261.6255653006,273.37431312998,279.93529690293,285.65065877038,292.50627485027,299.52642572255,305.64177427204,312.977175335,327.03195662575,334.88072358477,341.71789064962,349.91912034749,365.63284274659,374.40803131735,382.05221698715,391.22147055517,400.61078621746,408.78994578219,418.60090448096,427.14736482575,437.39890198442,447.89647345742,457.04105241293,468.01003810189,489.02683710225,500.76348165392,510.98743222773,523.2511306012],description:"27 of 1/4-comma meantone scale"},meanquar_31:{frequencies:[261.6255653006,267.90457886781,273.37431312998,279.93529690293,285.65065877038,292.50627485027,299.52642572255,305.64177427204,312.977175335,320.48862783822,327.03195662575,334.88072358477,341.71789064962,349.91912034749,358.31717956585,365.63284274659,374.40803131735,382.05221698715,391.22147055517,400.61078621746,408.78994578219,418.60090448096,427.14736482575,437.39890198442,447.89647345742,457.04105241293,468.01003810189,479.24227945773,489.02683710225,500.76348165392,510.98743222773,523.2511306012],description:"31 of 1/4-comma meantone scale"},meanquareb:{frequencies:[261.6255653006,274.90575459855,292.80763523599,312.14798050979,327.88746490679,349.6453532581,367.3522744581,391.22144795733,411.14173398328,437.99455416256,467.00507093977,490.61429903129,523.2511306012],description:"Variation on 1/4-comma meantone with equal beating fifths"},meanquarm23:{frequencies:[261.6255653006,273.51763645063,292.40504357126,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,408.78994578219,436.04260883433,468.17206422213,489.12605686634,523.2511306012],description:"1/4-comma meantone approximation with minimal order 23 beatings"},meanquarr:{frequencies:[261.6255653006,273.37036621967,292.50063201309,312.98169478553,327.03195662575,349.92419358955,365.62579001637,391.21579858034,408.78994578219,437.39258595147,468.01906681552,489.01974822542,523.2511306012],description:"Rational approximation to 1/4-comma meantone, Kenneth Scholz, MTO 4.4, 1998"},meansabat:{frequencies:[261.6255653006,279.13726386405,294.25495796556,313.95067836072,330.95382015833,348.87783040382,372.229687597,392.38914286775,418.65339720992,441.32709511026,470.8669722571,496.36848628125,523.2511306012],description:"1/9-schisma meantone scale of Eduard Sa'bat-Garibaldi"},meansabat_53:{frequencies:[261.6255653006,264.79625752493,268.00537599851,271.25338610366,275.79485124716,279.13726386405,282.52018221184,285.94410045135,290.73152483281,294.25495796556,297.82109228474,301.4304452945,305.08354077075,310.19140758515,313.95067836072,317.75550958044,321.60645175541,326.99095182327,330.95382015833,334.96471528237,339.02421924159,343.13292113612,348.87783040382,353.10595017045,357.38531136087,361.71653498009,367.77258074571,372.229687597,376.74081403286,381.30660995465,385.92774054592,392.38914286775,397.14458487807,401.95765903525,406.82906379475,413.640406907,418.65339720992,423.72714093867,428.86237189887,436.04260883433,441.32709511026,446.67562589029,452.08897683944,457.56793273834,465.22877230071,470.8669722571,476.57350267936,482.349191678,490.42492909292,496.36848628125,502.38407462043,508.4725670703,514.63484717027,523.2511306012],description:"53-tone 1/9-schisma meantone scale"},meanschis:{frequencies:[261.6255653006,275.81646505128,294.24573392894,310.20599265769,327.03195662575,348.88329767713,367.80716871461,392.38299382393,413.66634097248,436.10412364188,465.24335632603,490.47874118496,523.2511306012],description:"1/8-schisma temperament, Helmholtz"},meanschis7:{frequencies:[261.6255653006,275.84425785506,294.23387584933,310.2247482054,327.0846843223,348.89032888179,367.85164222246,392.37508610937,413.69968681881,436.18322603255,465.26210635182,490.54793493862,523.2511306012],description:"1/7-schisma linear temperament"},meanschis_17:{frequencies:[261.6255653006,275.81646505128,290.77709705464,294.24573392894,310.20599265769,327.03195662575,330.93307160522,348.88329767713,367.80716871461,372.19468374184,392.38299382393,413.66634097248,436.10412364188,441.30634506723,465.24335632603,490.47874118496,496.32958936031,523.2511306012],description:"17-tone 1/8-schisma linear temperament"},meansept:{frequencies:[261.6255653006,273.93523095528,292.67762672082,312.70235991264,327.41522444303,349.81667202162,366.27579142084,391.33604481052,409.74867679276,437.78330574787,467.73603562223,489.74334292241,523.2511306012],description:"Meantone scale with septimal diminished fifth"},meansept2:{frequencies:[261.6255653006,273.61459551034,286.15296204753,292.57963558274,305.98714063953,320.00886175336,327.19620693615,342.18982383643,349.87514759905,365.9082279648,382.67602660872,391.27063976147,409.20043831214,427.95210889573,437.56358849756,457.61500463173,478.58500343311,489.333659422,511.75744671018,523.2511306012],description:"Meantone scale with septimal neutral second"},meansept3:{frequencies:[261.6255653006,267.11515986718,271.23581508831,275.42019673559,281.19923906193,285.53716249988,289.94217244295,296.02592413073,300.59257160392,305.22982618403,309.9384746623,316.44180152381,321.32358037849,326.28048244956,333.12670774706,338.26588629419,343.48414905091,348.7829114007,356.10146388137,361.59490682213,367.17305499414,374.87731434423,380.66058361349,386.53284867747,394.643327573,400.73152907611,406.91341882127,413.19091223118,421.86074762795,428.36858751681,434.97682067587,444.1040384307,450.95501471222,457.91167766162,464.97592623609,474.73234784313,482.05581210758,489.49253462334,499.76337935275,507.47298512535,515.30182087389,523.2511306012],description:"Pythagorean scale with septimal minor third"},meansept4:{frequencies:[261.6255653006,266.94086705872,271.13211808455,275.38917613856,280.98410555769,285.39585012732,289.87686370457,295.76613145071,300.40996929954,305.12672026341,309.91752915454,316.21395200486,321.17884203959,326.22168604472,332.8493514236,338.07543464185,343.38355445704,348.77505435772,355.86092403367,361.44831302863,367.12342987925,374.58207334188,380.46340397682,386.43730087372,394.28810581018,400.47907310734,406.76701374557,413.15368163355,421.54749623588,428.16623317002,434.88889120201,443.72428802318,450.69091522486,457.76754776364,464.95497741911,474.40121026751,481.84980583512,489.41535214975,499.35853288878,507.19898454493,515.16253949886,523.2511306012],description:"Pythagorean scale with septimal narrow fourth"},meansev:{frequencies:[261.6255653006,275.93321340298,293.28595453555,311.72996498387,328.77769811601,349.45369437647,368.5644419122,391.74252566418,413.16594588103,439.14890519043,466.76586696593,492.29212632197,523.2511306012],description:"1/7-comma meantone scale, Jean-Baptiste Romieu (1755)"},meansev2:{frequencies:[261.6255653006,273.98141462199,292.76593693997,312.83835055233,327.61283758281,350.07440004945,366.60744235102,391.74252566418,410.24343789088,438.37026184168,468.42550014967,490.54793493862,524.18054130269],description:"Meantone scale with 1/7-comma stretched octave (stretched meansept)"},meansev_19:{frequencies:[261.6255653006,275.93321340298,278.07859353335,293.28589524255,309.32501829942,311.72996858511,328.77775508885,346.75764506664,349.4536277652,368.56443339655,371.42996022741,391.74260033637,413.16585280598,416.37814821359,439.14890011719,463.16493144882,466.76596133102,492.29202110912,496.11959049595,523.2511306012],description:"19 of 1/7-comma meantone scale"},meanseveb:{frequencies:[261.6255653006,276.822915312,293.45907344559,311.2600957924,329.2717708679,349.29792128041,369.56105314287,391.74259807358,414.53862252605,439.49286138442,466.19439430972,493.21190508606,523.2511306012],description:'"1/7-comma" meantone with equal beating fifths'},meansixth:{frequencies:[261.6255653006,275.36245350283,293.11247215425,312.00666699279,328.38886075091,349.55699144229,367.91095120397,391.62676241399,412.18948168074,438.75944753732,467.04212833931,491.56459996916,523.2511306012],description:"1/6-comma meantone scale (tritonic temperament of Salinas)"},meansixth_19:{frequencies:[261.6255653006,275.36245350283,278.49009641114,293.11247215425,308.50278723002,312.00666699279,328.38886075091,345.6314161331,349.55699144229,367.91095120397,372.08969287196,391.62676241399,412.18948168074,416.87124381956,438.75944753732,461.79691129422,467.04212833931,491.56459996916,517.37477513058,523.2511306012],description:"19 of 1/6-comma meantone scale"},meansixtheb:{frequencies:[261.6255653006,276.39673661379,293.31426069206,311.4574698476,328.96404447481,349.37515437283,369.07004939896,391.62674884124,413.78350416977,439.15979251365,466.37460465854,492.63446576705,523.2511306012],description:'"1/6-comma" meantone with equal beating fifths'},meansixthm:{frequencies:[261.6255653006,275.36250599118,293.11251278827,312.00669222389,328.38895179964,349.55706816887,367.91095120397,391.62667645325,414.52369088643,438.75941205608,467.04206359353,491.56462836305,523.2511306012],description:"modified 1/6-comma meantone scale, wolf spread over 2 fifths"},meansixthm2:{frequencies:[261.6255653006,276.14113065853,293.11251278827,310.24975557428,328.38895179964,349.55706816887,367.91095120397,391.62667645325,414.52380581681,438.75941205608,465.72523006308,491.56462836305,523.2511306012],description:"modified 1/6-comma meantone scale, wolf spread over 4 fifths"},meansixthpm:{frequencies:[261.6255653006,275.00020270933,293.00227310437,309.72478954314,328.14198392915,348.83408706747,367.49599295996,391.5530240856,412.50030385781,438.51190905657,465.11211608996,491.10256480205,523.2511306012],description:"modified 1/6P-comma temperament, French 18th century"},meansixthso:{frequencies:[261.6255653006,273.09145986506,292.50627485027,313.30134186202,327.03195662575,350.28154752005,365.63284274659,391.62667645325,408.78994578219,437.85193595173,468.98001879925,489.53334447372,524.3356019912],description:"1/6-comma meantone scale with 1/6-comma stretched oct, Dave Keenan TL 13-12-99"},meanstr:{frequencies:[261.6255653006,272.52663052146,292.30447317753,313.51763757869,326.58087306932,350.28154752005,364.87661266094,391.35649333595,407.66301227525,437.24799400905,468.98001879925,488.52085380073,523.97386302914],description:"Meantone with 1/9-comma stretched octave, Petr Parizek (2006)"},meanten:{frequencies:[261.6255653006,276.96346718799,293.59840699152,311.2324721493,329.47860040677,349.26769656434,369.74365294187,391.95114287501,414.92943551322,439.85086739936,466.26912673157,493.60433806962,523.2511306012],description:"1/10-comma meantone scale"},meanthird:{frequencies:[261.6255653006,271.40047399919,291.9012907804,313.95067836072,325.68056936328,350.28154752005,363.36884069528,390.81668391305,405.4184580124,436.04260883433,468.98001879925,486.50215045777,523.2511306012],description:"1/3-comma meantone scale (Salinas)"},meanthird_19:{frequencies:[261.6255653006,271.40047399919,281.38801176707,291.9012907804,302.80736724606,313.95067836072,325.68056936328,337.848714425,350.28154752005,363.36884069528,376.74081403286,390.81668391305,405.4184580124,420.33785775232,436.04260883433,452.33412516107,468.98001879925,486.50215045777,504.40543017669,523.2511306012],description:"Complete 1/3-comma meantone scale"},meanthirdeb:{frequencies:[261.6255653006,273.41679662438,292.30169912182,312.83755546226,326.81234905863,349.91518709086,365.63683018302,390.81669745772,408.5035451685,436.83089868331,467.63468237516,488.59687355467,523.2511306012],description:'"1/3-comma" meantone with equal beating fifths'},meanvar1:{frequencies:[261.6255653006,274.22463192287,292.50627485027,312.00669222389,327.03195662575,349.55706816887,366.3906401674,391.22147055517,410.48618883318,437.39890198442,467.04206359353,489.53334447372,523.2511306012],description:"Variable meantone 1: C-G-D-A-E 1/4, others 1/6"},meanvar2:{frequencies:[261.6255653006,274.19219069011,292.50627485027,312.04360750473,327.03195662575,349.70184487387,366.23895640989,391.22147055517,410.65012590831,437.39890198442,467.23549927892,489.3306802979,523.2511306012],description:"Variable meantone 2: C..E 1/4, 1/5-1/6-1/7-1/8 outward both directions"},meanvar3:{frequencies:[261.6255653006,275.36250599118,292.50627485027,310.71739423852,327.03195662575,349.55706816887,367.15000817177,391.22147055517,413.04376116614,437.39890198442,466.0760911248,489.53334447372,523.2511306012],description:"Variable meantone 3: C..E 1/4, 1/6 next, then Pyth."},meanvar4:{frequencies:[261.6255653006,275.07759559501,292.50627485027,311.03921839762,327.03195662575,349.91912034749,366.77012764335,391.22147055517,412.61639318626,437.39890198442,466.55882736321,489.02683710225,523.2511306012],description:"Variable meantone 4: naturals 1/4-comma, accidentals Pyth."},mediant16:{frequencies:[261.6255653006,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,523.2511306012],description:"Mediant doubling of octave done four times"},mercadier:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.42509491746,328.14198392915,349.22823143301,368.74309237173,391.5530240856,413.90012676351,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Mercadier's well-temperament (1777), 1/12 and 1/6 Pyth. comma"},mercadier2:{frequencies:[261.6255653006,276.14388692511,292.95319623755,310.40895756597,328.03206784165,349.20805980193,368.45885450371,391.49761638186,413.86785247997,438.37641748302,465.57175090792,491.63473786767,523.2511306012],description:"Mercadier de Belestas (1776)"},mercator:{frequencies:[261.6255653006,272.09448029963,279.3054110864,290.48161516351,306.08206748155,318.32990397837,326.76614606023,335.42596179815,348.84778913489,362.80689075348,372.42184279259,387.32403355801,408.12545368833,418.94141877379,435.70530841001,453.13974129598,465.14865565404,490.12996697565,509.74216322321,523.2511306012],description:"19 out of 53-tET, see Mandelbaum p. 331"},merrick:{frequencies:[261.6255653006,278.62147458377,295.28844751169,312.94924079019,329.91874474504,349.29981986967,371.62722343835,394.01440557319,416.60121863153,438.96906929631,468.0242659544,493.6331420766,523.2511306012],description:"A. Merrick's melodically tuned equal temperament (1811)"},mersen_l1:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Mersenne lute 1"},mersen_l2:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Mersenne lute 2"},mersen_s1:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Mersenne spinet 1"},mersen_s2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Mersenne spinet 2"},mersenmt1:{frequencies:[261.6255653006,273.37431312998,292.50627485027,311.03921839762,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,466.55882736321,489.02683710225,523.2511306012],description:"Mersenne's Improved Meantone 1"},mersenmt2:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.11326130363,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Mersenne's Improved Meantone 2"},mersenne:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,313.95067836072,322.99452506247,327.03195662575,340.65828815182,344.52749339997,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,408.78994578219,413.43299207996,418.60090448096,430.65936674996,436.04260883433,454.2110508691,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,510.98743222773,523.2511306012],description:"31-note choice system of Mersenne, Harmonie universelle (1636)"},meyer:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Max Meyer, see Doty, David, 1/1 August 1992 (7:4) p.1 and 10-14"},meyer_29:{frequencies:[261.6255653006,268.26840191956,275.93321340298,286.15296204753,289.72987407313,294.32876096318,306.59245933664,321.92208230347,327.03195662575,331.11985608357,343.38355445704,344.91651675372,357.69120255941,367.91095120397,372.50983809402,383.2405741708,386.30649876417,392.4383479509,408.78994578219,413.89982010446,429.2294430713,441.49314144476,457.84473927605,459.88868900496,482.88312345521,490.54793493862,496.67978412536,510.98743222773,515.07533168556,523.2511306012],description:"Max Meyer, see Doty, David, 1/1 August 1992 (7:4) p.1 and 10-14"},mid_enh1:{frequencies:[261.6255653006,269.10058145205,336.37572681506,348.83408706747,392.4383479509,403.65087217807,504.56359022259,523.2511306012],description:"Mid-Mode1 Enharmonic, permutation of Archytas's with the 5/4 lying medially"},mid_enh2:{frequencies:[261.6255653006,271.31540105247,339.14425131559,348.83408706747,392.4383479509,406.97310157871,508.71637697339,523.2511306012],description:"Permutation of Archytas' Enharmonic with the 5/4 medially and 28/27 first"},miller19:{frequencies:[261.6255653006,271.16557874802,283.07475767856,293.39690257971,304.09543631541,315.18408718336,326.67707691855,338.58915326012,350.93559605343,363.73224209988,376.99551198295,390.74241649248,407.9032302438,422.77716528297,438.1934715504,454.17192383337,470.73301771751,487.89800430439,505.68889852562,524.12852955557],description:"TOP tempered nr. 64 [1202.9, 570.4479508], 7-limit {225/224, 1029/1000}"},miller7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,313.95067836072,329.64821227876,353.19451315581,366.27579142084,392.4383479509,412.06026534844,439.53094970501,470.92601754108,494.47231841813,523.2511306012],description:"Herman Miller, 7-limit JI. mode of parizek_ji1"},miller_12:{frequencies:[261.6255653006,273.36657578691,291.63627719304,313.29104303136,327.35065305942,349.22823143301,364.90060015836,391.99543598175,418.19337019276,436.9606979923,456.57025003029,487.08386390194,523.2511306012],description:"Herman Miller, scale with appr. to three 7/4 and one 11/8. Tuning List 19-11-99"},miller_12a:{frequencies:[261.6255653006,273.46133384191,291.68681828778,313.23675853409,327.40738352015,349.22823143301,365.02708698668,391.99543598175,418.12090908234,437.03642407223,456.80766452229,487.25270356141,523.85596330884],description:'Herman Miller, "Starling" scale, alternative version TL 25-11-99'},miller_12r:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,454.2110508691,484.4917875937,523.2511306012],description:'Herman Miller, "Starling" scale rational version'},miller_ar1:{frequencies:[261.6255653006,276.1828093671,293.13465239421,310.07474405997,327.9937953665,348.83408706747,368.24374600687,391.64146650178,414.27421384356,438.21489534465,465.11211608996,490.99166158792,523.2511306012],description:'Herman Miller, "Arrow I" well-temperament'},miller_ar2:{frequencies:[261.6255653006,276.1828093671,293.13465239421,310.2849072826,328.2161033156,349.07052034394,368.24374600687,391.64146650178,414.27421384356,438.51190905657,465.42736069124,491.32444638706,523.2511306012],description:'Herman Miller, "Arrow II" well-temperament'},miller_b1:{frequencies:[261.6255653006,276.37000081643,292.93610587951,310.49521248455,328.2161033156,348.83408706747,368.4933346061,391.64146650178,413.993616853,438.80912407872,465.11211608996,491.32444638706,523.2511306012],description:'Herman Miller, "Butterfly I" well-temperament'},miller_b2:{frequencies:[261.6255653006,276.55731914056,293.13465239421,310.70566022736,328.2161033156,349.07052034394,368.74309237173,392.17254067411,414.27421384356,439.10654054756,465.42736069124,491.99069280383,523.2511306012],description:'Herman Miller, "Butterfly II" well-temperament'},miller_bug:{frequencies:[261.6255653006,275.99574470663,292.73769384471,310.49521248455,327.54963108844,348.83408706747,368.4933346061,391.64146650178,413.993616853,437.62147130622,465.11211608996,491.32444638706,523.2511306012],description:'Herman Miller, "Bug I" well-temperament'},miller_dim:{frequencies:[261.6255653006,272.37088095799,275.97178311718,291.10467300644,307.06737543415,311.12698372208,323.9053895548,328.18760802294,346.1837483498,365.1667076515,369.99442271164,385.1905938463,390.2830385166,411.68417663589,434.25884690128,440,458.07139483414,464.12736626882,489.57775198944,516.42371048788,523.2511306012],description:"Diminished temperament, g=92.421, oct=1/4, 7-limit"},miller_nikta:{frequencies:[261.6255653006,272.78230567952,282.82337239762,292.30660227893,305.1368529352,315.1779191367,326.89249731477,341.39626079795,349.76381456689,364.82541608424,379.88701473,391.60159255926,407.77886614283,422.28262813098,436.22855406869,456.86852448015,469.69877536137,488.10739794888,508.74736733766,523.2511306012],description:'Herman Miller, 19-tone scale of "Nikta". Tuning List 22-1-99'},miller_sp:{frequencies:[261.6255653006,276.74268633071,292.73329748773,304.15432597486,321.72882314722,340.31880135827,353.5963846,374.02771873076,395.63960626236,411.07553805605,434.82810464551,459.95313047266,477.89826295658,505.51194770063,525.23456349057],description:"Herman Miller, Superpelog temperament, TOP tuning"},minor_5:{frequencies:[261.6255653006,299.00064605783,348.83408706747,418.60090448096,465.11211608996,523.2511306012],description:"A minor pentatonic"},minor_clus:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,353.19451315581,372.08969287196,392.4383479509,418.60090448096,441.49314144476,465.11211608996,470.92601754108,523.2511306012],description:"Chalmers' Minor Mode Cluster, Genus [333335]"},minor_wing:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Chalmers' Minor Wing with 7 minor and 6 major triads"},minortone:{frequencies:[261.6255653006,264.87670583656,269.18630372462,273.56601964703,276.96554054138,281.47182622933,286.05143175444,290.70554674078,294.31805527354,299.10666990622,303.97319627313,307.75057781118,312.75774231814,317.84637624619,323.01780144749,327.03184444407,332.35271908155,337.76016543181,341.95740725719,347.52112383796,353.17536321933,358.9216002989,363.3818066762,369.29410472703,375.30259493676,379.96636500161,386.14849505708,392.43120962619,398.81614754309,403.7721109712,410.34156772664,417.0179085097,422.20006196255,429.06934285921,436.05038835349,443.14501943782,448.65184388114,455.95150328441,463.36992699746,469.12808274602,476.76089208744,484.51788878959,492.4010934061,498.52001054206,506.63103252794,514.8740254656,523.2511306012],description:"Minortone temperament, g=182.466089, 5-limit"},miracle1:{frequencies:[261.6255653006,266.71173418545,279.86396690685,285.30470202322,299.37379946195,305.19382000629,320.24370022528,326.46944327063,342.56848033562,349.22823143301,366.44956000397,373.57357677338,391.99543598175,399.61607881612,419.32216217931,427.47405410759,448.5538823653,457.27406033445,479.82340237272,489.15147723638,513.27277840175,523.2511306012],description:'21 out of 72-tET Pyth. scale "Miracle/Blackjack", Keenan & Erlich, TL 2-5-2001'},miracle1a:{frequencies:[261.6255653006,266.57640943865,279.87817034289,285.17441410431,299.40418912991,305.0699313594,320.29246281951,326.35348199782,342.63803067389,349.1219037468,366.54256247747,373.47879032775,392.11482112276,399.53496279579,419.47115746916,427.40897376302,448.73603972606,457.22764679928,480.04261976898,489.12665346498,513.5333359992,523.2511306012],description:"Version of Blackjack with just 11/8 intervals"},miracle2:{frequencies:[261.6255653006,266.71172956369,274.52699087907,279.86396690685,285.30469707927,293.66477470251,299.3738011912,305.19381471768,314.13668880034,320.24370207508,326.46943949911,336.03573785931,342.56848231438,349.22822739856,359.4614100947,366.44956423737,373.57357245769,380.83607584373,391.99544051026,399.61607650784,407.38486242506,419.32216702351,427.4740516384,435.78441397758,448.55389013814,457.27405769313,466.16375074742,479.82341068742,489.15147723638,498.66088722045,513.27278729609,523.2511306012],description:'31 out of 72-tET Pythagorean scale "Miracle/Canasta", tempered Fokker-M, 36 7-limit tetrads'},miracle24:{frequencies:[261.6255653006,266.71173418545,274.52698453615,279.86396690685,285.30470202322,299.37379946195,305.19382000629,320.24370022528,326.46944327063,342.56848033562,349.22823143301,366.44956000397,373.57357677338,391.99543598175,399.61607881612,419.32216217931,427.47405410759,448.5538823653,457.27406033445,466.16376151809,479.82340237272,489.15147723638,498.66089874196,513.27277840175,523.2511306012],description:"Miracle[24] in 72-tET tuning."},miracle2a:{frequencies:[261.6255653006,266.57640943865,274.68028654691,279.87817034289,285.17441410431,293.84366906071,299.40418912991,305.0699313594,314.34400674513,320.29246281951,326.35348199782,336.27457379784,342.63803067389,349.1219037468,359.73515228832,366.54256247747,373.47879032775,380.54627680087,392.11482112276,399.53496279579,407.09552105481,419.47115746916,427.40897376302,435.49700296564,448.73603972606,457.22764679928,465.87994655565,480.04261976898,489.12665346498,498.38259075187,513.5333359992,523.2511306012],description:"Version of Canasta with just 11/8 intervals"},miracle3:{frequencies:[261.6255653006,266.71172956369,271.8967720342,274.52699087907,279.86396690685,285.30469707927,290.85119844166,293.66477470251,299.3738011912,305.19381471768,311.12697293924,314.13668880034,320.24370207508,326.46943949911,332.81620914398,336.03573785931,342.56848231438,349.22822739856,356.01744208336,359.4614100947,366.44956423737,373.57357245769,380.83607584373,384.52012922913,391.99544051026,399.61607650784,407.38486242506,411.32573797959,419.32216702351,427.4740516384,435.78441397758,440.00001524924,448.55389013814,457.27405769313,466.16375074742,470.67322937359,479.82341068742,489.15147723638,498.66088722045,503.48472993456,513.27278729609,523.2511306012],description:'41 out of 72-tET Pythagorean scale "Miracle/Studloco", Erlich/Keenan 2001'},miracle31s:{frequencies:[261.6255653006,266.63636836248,274.61234258734,279.87187586531,285.23214274484,293.7643779857,299.39072204343,305.12482507342,314.2521161294,320.27085311289,326.40486440328,336.1687117034,342.60720791066,349.16901789451,359.61381619398,366.50134650551,373.52079096839,380.6746756467,392.06191220286,399.57090708206,407.22371854314,419.40512463865,427.43781242392,435.62434685833,448.6553095271,457.24821364991,466.00569400686,479.94546308962,489.13765420145,498.50589943595,513.41785698047,523.2511306012],description:"Canasta with Secor's minimax generator of 116.7155941 cents (5:9 exact). XH5, 1976"},miracle3a:{frequencies:[261.6255653006,266.57640943865,271.6209387912,274.68028654691,279.87817034289,285.17441410431,290.57088243021,293.84366906071,299.40418912991,305.0699313594,310.84289043406,314.34400674513,320.29246281951,326.35348199782,332.52919812642,336.27457379784,342.63803067389,349.1219037468,355.72847573316,359.73515228832,366.54256247747,373.47879032775,380.54627680087,384.83248369581,392.11482112276,399.53496279579,407.09552105481,411.6807594913,419.47115746916,427.40897376302,435.49700296564,440.40213577526,448.73603972606,457.22764679928,465.87994655565,471.12729153307,480.04261976898,489.12665346498,498.38259075187,503.99602271809,513.5333359992,523.2511306012],description:"Version of Studloco with just 11/8 intervals"},miracle3ls:{frequencies:[261.6255653006,266.8561524992,272.19132869617,274.36355553357,279.84880885615,285.44374339214,291.1505189834,293.47406686496,299.34138986722,305.32601617869,311.43030899178,313.91568307924,320.1916880693,326.59318586748,333.12264767748,335.78115718319,342.4943108472,349.34167821305,356.32594256772,359.16962765504,366.35037871957,373.67471357934,381.14545968569,384.18721873359,391.86813762951,399.70261841457,407.69373119716,410.94736065575,419.16328558448,427.54349328421,436.09121881038,439.57145109254,448.35967321435,457.32356924795,466.46667727785,470.18934850506,479.58967749961,489.177972196,498.95793401383,502.93987502638,512.99500332159,523.2511306012],description:"Miracle-41 in a 7-limit least-squares tuning, Gene Ward Smith, 2001"},miracle3p:{frequencies:[261.6255653006,266.34679554672,270.06721067987,274.94077677072,279.90228841312,284.95333588433,290.09553330897,294.14767822015,299.45579274291,304.85969791727,310.36112062791,314.69634158508,320.37527393455,326.15668500873,332.04242788125,336.6805001021,342.75615313904,348.94144590806,355.2383548887,360.20043713509,366.70052302062,373.3179099666,380.0547104455,385.36343543368,392.31760641523,399.39727291251,406.60469732047,412.28427858225,419.7242587073,427.29849640545,435.00941939202,441.0857666732,449.04549132915,457.14885520764,465.39844769831,471.89927840742,480.41505607532,489.08450736089,497.91040254418,504.86537329764,513.97604599191,523.2511306012],description:"Least squares Pythagorean approximation to partch_43"},miracle41s:{frequencies:[261.6255653006,266.63636836248,269.45164985995,274.61234258734,279.87187586531,285.23214274484,290.69507255622,293.7643779857,299.39072204343,305.12482507342,310.96875093738,314.2521161294,320.27085311289,326.40486440328,332.65635780028,336.1687117034,342.60720791066,349.16901789451,355.85650343121,359.61381619398,366.50134650551,373.52079096839,380.6746756467,384.69403121132,392.06191220286,399.57090708206,407.22371854314,411.52339231679,419.40512463865,427.43781242392,435.62434685833,440.22388881539,448.6553095271,457.24821364991,466.00569400686,470.92601754108,479.94546308962,489.13765420145,498.50589943595,503.76937659657,513.41785698047,523.2511306012],description:"StudLoco with Secor's minimax generator of 116.7155941 cents (5:9 exact). XH5, 1976"},miracle_12:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,336.03572815422,342.56848033562,359.46139971304,366.44956000397,384.52011812375,411.32572372413,440,470.6732130613,523.2511306012],description:"A 12-tone subset of Blackjack with six 4-7-9-11 tetrads"},miracle_12a:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,342.56848033562,366.44956000397,391.99543598175,419.32216217931,448.5538823653,479.82339960115,489.15147723638,513.27277840175,523.2511306012],description:"A 12-tone chain of Miracle generators and subset of Blackjack"},"24erlich-keenan":{frequencies:[261.6255653006,266.71173469898,279.86396636799,285.30470202322,290.8512090818,299.37380003836,305.19381941867,320.24370022528,326.46944389922,342.56847967604,349.22823143301,356.01745305102,366.44956070954,373.5735760541,391.99543598175,399.61607958554,407.38487340641,419.32216137194,427.47405410759,448.55388322895,457.27405945401,479.82340237272,489.15147817819,498.66089778183,523.2511306012],description:"24 note mapping for Erlich/Keenan Miracle scale low version, tuned to 72-equal"},miracle_8:{frequencies:[261.6255653006,279.86396690685,314.13668154225,336.03572815422,366.44956000397,391.99543598175,419.32216217931,448.5538823653,523.2511306012],description:"tet3a in 72-et"},miring1:{frequencies:[261.6255653006,285.29448470177,307.6953604706,387.15515639797,420.96788906714,523.2511306012],description:"Gamelan Miring from Serdang wetan, Tangerang. 1/1=309.5 Hz"},miring2:{frequencies:[261.6255653006,279.34865171253,304.66723527068,384.42070010042,412.69311132744,523.2511306012],description:"Gamelan Miring (Melog gender) from Serdang wetan"},misca:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,348.83408706747,392.4383479509,412.06026534844,433.74764773521,457.84473927605,523.2511306012],description:"21/20 x 20/19 x 19/18=7/6 7/6 x 8/7=4/3"},miscb:{frequencies:[261.6255653006,269.80136421624,278.50463402967,319.76457981184,348.83408706747,392.4383479509,404.70204632437,417.75695104451,479.64686971777,523.2511306012],description:"33/32 x 32/31x 31/27=11/9 11/9 x 12/11=4/3"},miscc:{frequencies:[261.6255653006,276.00059636107,292.04714266113,310.07474405997,348.83408706747,392.4383479509,414.00089454161,438.0707139917,465.11211608996,523.2511306012],description:"96/91 x 91/86 x 86/54=32/27. 32/27 x 9/8=4/3."},miscd:{frequencies:[261.6255653006,271.68808704293,282.55561052465,294.32876096318,348.83408706747,392.4383479509,407.5321305644,423.83341578697,441.49314144476,523.2511306012],description:"27/26 x 26/25 x 25/24=9/8. 9/8 x 32/27=4/3."},misce:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,348.83408706747,392.4383479509,420.46965851882,452.81347840488,490.54793493862,523.2511306012],description:"15/14 x 14/13 x 13/12=5/4. 5/4 x 16/15= 4/3."},miscf:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,378.42269266694,392.4383479509,406.97310157871,418.60090448096,504.56359022259,523.2511306012],description:"SupraEnh1"},miscg:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,504.56359022259,523.2511306012],description:"SupraEnh 2"},misch:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,392.4383479509,406.97310157871,490.54793493862,504.56359022259,523.2511306012],description:"SupraEnh 3"},misty:{frequencies:[261.6255653006,268.57642185399,270.57706033988,272.59260010205,274.62315370363,276.66883458144,284.01936005382,286.13503371773,288.26646546986,290.41377434565,292.57708030445,300.35025535204,302.58757688062,304.84156607104,307.11234355974,309.40003795144,311.70477168653,319.9861304005,322.36972224007,324.77106769218,327.19030275625,329.62755691287,338.38508739928,340.90573394089,343.44515491415,346.00349213972,348.58088853904,357.84197030948,360.50755209334,363.19298782427,365.89842747751,368.62402219236,378.41760905933,381.23645754858,384.07630597582,386.93730633346,389.81962065329,392.72340320054,403.157261366,406.16039889903,409.18590458221,412.23394976407,415.30469757995,426.33849458487,429.51431022199,432.71378016074,435.93708308397,439.18439906139,450.85263092877,454.21105352848,457.59449053401,461.00313090234,464.43716505707,476.77631130474,480.3278378528,483.9058226648,487.51045723915,491.14194572312,494.80048247871,507.94632001299,511.73003620658,515.54193450341,519.38223078906,523.2511306012],description:"Misty temperament, g=96.787939, p=400, 5-limit"},mistyschism:{frequencies:[261.6255653006,278.75251614148,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,418.12877421223,440.99519155196,465.63729761752,496.11959049595,523.2511306012],description:"Mistyschism scale 32805/32768 and 67108864/66430125"},mixed9_3:{frequencies:[261.6255653006,273.20871865617,285.30470202322,311.12698372208,349.22823143301,391.99543598175,409.35055662695,427.47405410759,466.16376151809,523.2511306012],description:"A mixture of the hemiolic chromatic and diatonic genera, 75 + 75 + 150 + 200 c"},mixed9_4:{frequencies:[261.6255653006,271.89678302796,282.57123920205,305.19382000629,349.22823143301,391.99543598175,407.38487419079,423.37848741825,457.27406033445,523.2511306012],description:'Mixed enneatonic 4, each "tetrachord" contains 67 + 67 + 133 + 233 cents.'},mixed9_5:{frequencies:[261.6255653006,277.18263097687,293.66476791741,329.62755691287,349.22823143301,391.99543598175,415.30469757995,440,493.88330125613,523.2511306012],description:"A mixture of the intense chromatic genus and the permuted intense diatonic"},mixed9_6:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,349.22823143301,391.99543598175,415.30469757995,440,466.16376151809,523.2511306012],description:"Mixed 9-tonic 6, Mixture of Chromatic and Diatonic"},mixed9_7:{frequencies:[261.6255653006,277.18263097687,311.12698372208,329.62755691287,349.22823143301,391.99543598175,415.30469757995,466.16376151809,493.88330125613,523.2511306012],description:"Mixed 9-tonic 7, Mixture of Chromatic and Diatonic"},mixed9_8:{frequencies:[261.6255653006,293.66476791741,311.12698372208,329.62755691287,349.22823143301,391.99543598175,440,466.16376151809,493.88330125613,523.2511306012],description:"Mixed 9-tonic 8, Mixture of Chromatic and Diatonic"},mixol_chrom:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,311.12229387098,319.76457981184,359.73515228832,411.12588832951,426.35277308246,434.39716502741,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,605.86973016981,622.24458774197,639.52915962369,719.47030457665,822.25177665903,852.70554616492,868.79433005482,885.50191332511,959.29373943553,1046.5022612024],description:"Mixolydian chromatic tonos"},mixol_chrom2:{frequencies:[261.6255653006,271.31540105247,281.75060878526,332.97799220076,366.27579142084,385.55346465352,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the chromatic genus"},mixol_chrominv:{frequencies:[261.6255653006,279.06726965397,299.00064605783,373.75080757229,411.12588832951,429.81342870813,448.50096908674,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Mixolydian inverted"},mixol_diat:{frequencies:[261.6255653006,274.08392555301,287.78812183066,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,442.75095666255,460.46099492906,479.64686971777,500.50108144463,523.2511306012,548.16785110602,575.57624366132,639.52915962369,677.14852195449,719.47030457665,767.43499154843,822.25177665903,885.50191332511,920.92198985811,959.29373943553,1001.00216288925,1046.5022612024],description:"Mixolydian diatonic tonos"},mixol_diat2:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,348.83408706747,366.27579142084,406.97310157871,457.84473927605,523.2511306012],description:"Schlesinger's Mixolydian Harmonia, a subharmonic series though 13 from 28"},mixol_diatcon:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"A Mixolydian Diatonic with its own trite synemmenon replacing paramese"},mixol_diatinv:{frequencies:[261.6255653006,299.00064605783,336.37572681506,348.83408706747,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"A Mixolydian Diatonic with its own trite synemmenon replacing paramese"},mixol_diatinv2:{frequencies:[261.6255653006,299.00064605783,336.37572681506,348.83408706747,373.75080757229,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"Inverted Schlesinger's Mixolydian Harmonia, a harmonic series from 14 from 28"},mixol_enh:{frequencies:[261.6255653006,274.08392555301,287.78812183066,295.1673044417,299.00064605783,302.93486508491,348.83408706747,411.12588832951,418.60090448096,422.44127975143,426.35277308246,469.85815809087,523.2511306012,548.16785110602,575.57624366132,590.33460888341,598.00129211566,605.86973016981,697.66817413493,822.25177665903,837.20180896192,844.88255950285,852.70554616492,939.71631618175,1046.5022612024],description:"Mixolydian Enharmonic Tonos"},mixol_enh2:{frequencies:[261.6255653006,266.38239376061,271.31540105247,332.97799220076,366.27579142084,375.66747838035,385.55346465352,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the enharmonic genus"},mixol_enhinv:{frequencies:[261.6255653006,270.34641747729,279.06726965397,373.75080757229,411.12588832951,420.46965851882,429.81342870813,523.2511306012],description:"A harmonic form of Schlesinger's Mixolydian inverted"},mixol_penta:{frequencies:[261.6255653006,269.32043486826,281.75060878526,332.97799220076,366.27579142084,381.53728273004,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the pentachromatic genus"},mixol_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,411.12588832951,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,822.25177665903,885.50191332511,959.29373943553,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Mixolydian Tonos"},mixol_tri1:{frequencies:[261.6255653006,268.0066766494,274.70684356563,332.97799220076,366.27579142084,378.90599112501,392.4383479509,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the first trichromatic genus"},mixol_tri2:{frequencies:[261.6255653006,268.0066766494,281.75060878526,332.97799220076,366.27579142084,378.90599112501,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the second trichromatic genus"},mmmgeo1:{frequencies:[261.6255653006,291.52662303231,317.822348206,348.40303271111,392.9238840789,423.23948674937,463.96335069158,523.2511306012],description:"Scale for MakeMicroMusic in Peppermint 24, maybe a bit like Georgian tunings"},mmmgeo2:{frequencies:[261.6255653006,295.05751399041,323.4477810403,352.62279726972,392.9238840789,430.73079539701,485.77193724523,529.58860866211],description:"Scale for MakeMicroMusic in Peppermint 24, maybe a bit like Georgian tunings"},mmmgeo3a:{frequencies:[261.6255653006,281.81099471089,317.822348206,348.40303271111,392.9238840789,423.23948674937,463.96335069158,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmmgeo4a:{frequencies:[261.6255653006,281.81099471089,317.822348206,348.40303271111,392.9238840789,423.23948674937,477.32335087626,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmmgeo4b:{frequencies:[261.6255653006,295.05751399041,323.4477810403,348.40303271111,392.9238840789,430.73079539701,485.77193724523,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmswap:{frequencies:[261.6255653006,251.16054268858,294.32876096318,282.55561052465,313.95067836072,348.83408706747,353.19451315581,392.4383479509,376.74081403286,418.60090448096,423.83341578697,470.92601754108,523.2511306012],description:"Swapping major and minor in 5-limit JI"},mokhalif:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,425.01198472693,477.05982293263,523.2511306012],description:"Iranian mode Mokhalif from C"},montvallon:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Montvallon's Monochord, Nouveau sisteme de musique (1742)"},monzismic:{frequencies:[261.6255653006,265.20988799749,268.52946324281,272.20837072565,275.61554447717,279.39153269358,282.88861654172,286.76424730356,290.69297498385,294.33151655947,298.3639173457,302.09847446042,306.23728412706,310.07039048391,314.31841699833,318.25267316085,322.61279858837,327.03265671938,331.12605620426,335.66254762155,339.86396564906,344.52016812641,348.83245514045,353.61152766937,358.03760933268,362.94279426564,367.48567344471,372.52029869489,377.62390147213,382.35053879638,387.58881783384,392.44018387738,397.81669307529,402.79607923799,408.31446627855,413.42525081527,419.08925963743,424.33490995001,430.14838328955,436.04150237937,441.49934027584,447.54796975207,453.14983163098,459.35807517454,465.10776160818,471.47983118983,477.38124304179,483.92146177974,489.97860285142,496.69140794435,503.49617981289,509.7983334288,516.78267280423,523.2511306012],description:"Monzismic temperament, g=249.018448, 5-limit"},sevengroups:{frequencies:[261.6255653006,261.6255653006,275.62199471997,265.19499215873,270.69536599394,266.7406479561],description:"Here are some suggestions for a logical system encompassing intervals into seven broad groups: skhisma, kleisma, comma,"},"monzo-sym-11":{frequencies:[261.6255653006,269.80136421624,276.76092858245,279.06726965397,285.40970760065,286.15296204753,287.78812183066,294.32876096318,299.00064605783,304.4370214407,305.22982618403,313.95067836072,314.76825825228,327.03195662575,332.97799220076,334.88072358477,341.71502406609,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,398.6675280771,400.61414686654,408.78994578219,411.12588832951,418.60090448096,434.91003062957,436.04260883433,448.50096908674,449.66894036041,457.84473927605,465.11211608996,475.68284600109,478.40103369253,479.64686971777,490.54793493862,494.63583439645,507.3950357345,523.2511306012],description:"Monzo symmetrical system: 11-limit"},"monzo-sym-5":{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Monzo symmetrical system: 5-limit"},"monzo-sym-7":{frequencies:[261.6255653006,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,523.2511306012],description:"Monzo symmetrical system: 7-limit"},monzo_sumerian_2place12:{frequencies:[261.6255653006,277.17835052447,293.68632213351,311.15032543183,329.66469551353,349.22211163595,369.93402791915,391.94841243536,415.27867508032,439.91220695103,466.03267445926,493.6331420766,523.2511306012],description:"Monzo - most accurate 2-place sexagesimal 12-tET approximation"},monzo_sumerian_simp12:{frequencies:[261.6255653006,277.34158865788,293.41184893525,310.84225580269,329.78012432849,348.83408706747,370.22485655745,392.4383479509,415.27867508032,440.11777340288,466.26338370404,493.6331420766,523.2511306012],description:"Monzo - simplified 2-place sexagesimal 12-tET approximation"},morgan:{frequencies:[261.6255653006,277.18263097687,294.07958763262,310.86358783941,330.18637907377,349.03110370139,370.30791823326,392.32757291716,415.07027187895,440.74593809176,465.76911360306,494.58094207912,523.2511306012],description:"Augustus de Morgan's temperament (1843)"},"mos11-34":{frequencies:[261.6255653006,272.51337835337,301.75671459889,314.3146261019,348.04364484358,362.52783176564,377.61479489998,418.13653788176,435.53771116377,453.66305442345,502.34551296122,523.2511306012],description:"Wilson 11 of 34-tET, G=9, Chain of minor & major thirds with Kleismatic fusion"},"mos12-17":{frequencies:[261.6255653006,272.51337835337,283.85429714132,307.97166902637,320.78822215662,348.04364484358,362.52783176564,377.61479489998,409.69842558521,426.7484383229,463.0066556268,482.27514684959,523.2511306012],description:"MOS 12 of 17, generator 7"},"mos12-22":{frequencies:[261.6255653006,287.56082683758,296.76515515861,326.18384711731,336.62443200122,347.39920007397,381.83730669135,394.05926325844,433.12283887627,446.9863572706,491.29666030217,507.02222283506,523.2511306012],description:"MOS 12 of 22, contains nearly just, recognizable diatonic, and pentatonic scales"},"mos13-22":{frequencies:[261.6255653006,278.64197723942,296.76515515861,316.06708432391,326.18384711731,347.39920007397,369.99442271164,381.83730669135,406.67242132093,433.12283887627,446.9863572706,476.05883716226,507.02222283506,523.2511306012],description:"MOS 13 of 22, contains 5 and 9 tone MOS as well. G=5 or 17"},"mos15-22":{frequencies:[261.6255653006,278.64197723942,287.56082683758,306.26409645618,316.06708432391,336.62443200122,347.39920007397,369.99442271164,381.83730669135,406.67242132093,419.68930726506,446.9863572706,461.29362042034,491.29666030217,507.02222283506,523.2511306012],description:"MOS 15 in 22, contains 7 and 8 tone MOS as well. G= 3 or 19"},moscow:{frequencies:[261.6255653006,277.4816141504,293.64820765919,311.48626315692,329.67368081467,349.7414907984,370.88289054572,392.4383479509,416.22242101754,440.4723112686,467.22939450183,494.51052097482,523.2511306012],description:"Charles E. Moscow's equal beating piano tuning (1895)"},mundeuc45:{frequencies:[261.6255653006,267.57160087561,269.80136421624,271.31540105247,274.70684356563,280.31310567921,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,488.36772189445,499.46698830115,504.56359022259,507.3950357345,513.90736041189,523.2511306012],description:"Euclidean reduced detempered Miracle[45] with Tenney tie-breaker"},musaqa:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Egyptian scale by Miha'il Musaqa"},musaqa_24:{frequencies:[261.6255653006,269.02051582234,276.67624041581,284.6011815168,292.80374147632,300.29158209195,310.07474405997,319.15917884888,328.55303549378,338.26335715633,348.29659232622,358.65845048745,369.35373924791,380.38618160659,391.75821216589,403.47075130695,415.52295665389,427.91195157543,440.63253103259,453.67684579974,467.03406698289,480.69003385373,494.62688932105,508.8227088795,523.2511306012],description:"from d'Erlanger vol.5, p.34, after Mih.a'il Mu^saqah, 1899, a Lebanese scholar"},myna23:{frequencies:[261.6255653006,267.85369360167,274.23008563259,291.58574485564,298.52709031489,305.63367799752,312.90944157785,320.35840837329,327.98470157359,348.7424193045,357.04440817535,365.54403007102,374.24598974517,383.15510395049,392.27630410488,417.10295228105,427.03229805648,437.19801690717,447.60573581317,458.26121570764,469.17035466565,498.86352554567,510.73922293119,522.89762727195],description:"23 notes of Myna temperament, 7-limit TOP tuning (Paul Erlich)"},"mystic-r":{frequencies:[261.6255653006,367.91095120397,465.11211608996,654.0639132515,872.08521766867,1177.3150438527],description:"Skriabin's mystic chord, op. 60 rationalised"},mystic:{frequencies:[261.6255653006,369.99442271164,466.16376151809,659.25511382574,880,1174.65907166964],description:"Skriabin's mystic chord, op. 60"},urmawi:{frequencies:[261.6255653006,294.32876096318,326.6631048533,348.83408706747,392.4383479509,441.49314144476,471.45776383774,523.2511306012],description:"al-Urmawi, one of twelve maqam rows. First tetrachord is Rast"},valentine:{frequencies:[261.6255653006,276.16031892841,294.32876096318,310.68035879446,330.47439827444,348.83408706747,371.78369805875,392.4383479509,414.24047839262,440.63253103259,466.02053819169,495.71159741166,523.2511306012],description:"Robert Valentine, tuning with primes 3 & 19, TL 7-2-2002"},valentine2:{frequencies:[261.6255653006,286.10322937235,312.87102146627,349.87955533643,382.6142546815,418.41160951721,467.90420651233,511.68128147674,559.55413558945,625.74204293254,684.28641150324,748.30818586768,782.53142116911,855.74498969389,935.80841302466,1046.5022612024],description:"Robert Valentine, two octave 31-tET subset for guitar, TL 10-5-2002"},vallotti:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.14198392915,349.6228209638,368.32692341742,391.5530240856,414.36778843034,438.51190905657,466.16376151809,491.10256480205,523.2511306012],description:"Vallotti & Young scale (Vallotti version)"},vavoom:{frequencies:[164.81377845643,165.83014536684,167.75567809608,168.79018601865,170.75008918846,172.7327497266,173.79795102719,175.81600173949,176.90021569146,178.95428827501,180.05785630665,182.14859375797,184.26360775673,185.39991601304,187.55268266167,188.70927492235,190.90046811205,192.07770535997,194.30800987601,196.56421264146,197.77637683895,200.07285246365,201.3066535986,203.64411977036,206.00872855044,207.27913480479,209.68595147418,210.9790342774,213.42881100738,214.74497512464,217.23848121866,219.76094059848,221.11615343515,223.68363702025,225.06304018178,227.6763542391,229.0803795269,231.74034082302,234.43118684139,235.87686755635,238.61574610914,240.08723199411,242.87499909192,244.37274935352,247.21027763268,250.08075380295,251.62294163139,254.54465534315,256.1143694988,259.0882353168,260.68597011615,263.71291896434,266.77501515601,268.42015092639,271.53690502834,273.21140777811,276.38379544331,278.08818779989,281.31720045362,284.58370833477,286.33866758091,289.66348210637,291.44976709494,294.83392732599,296.65209720599,300.09666587055,303.58123106099,305.45334345815,309.00010579622,310.90563508986,314.51570836542,316.45525105281,320.12976356015,323.84694071013,325.84402686189,329.62755691286],description:"Vavoom temperament, g=111.875426, 5-limit"},veroli:{frequencies:[261.6255653006,276.87699530057,293.57148765354,310.97965314221,329.42008585855,349.28270065725,369.64409253099,391.93430587921,414.97617910427,439.79164309579,466.09106516521,493.49262474744,523.2511306012],description:"Claudio di Veroli's well temperament (1978)"},vertex_chrom:{frequencies:[261.6255653006,271.89678302796,317.17549194805,349.22823143301,391.99543598175,407.38487419079,448.5538823653,523.2511306012],description:"A vertex tetrachord from Chapter 5, 66.7 + 266.7 + 166.7 cents"},vertex_chrom2:{frequencies:[261.6255653006,274.52698453615,323.3415889232,349.22823143301,391.99543598175,411.32572372413,484.46499093218,523.2511306012],description:"A vertex tetrachord from Chapter 5, 83.3 + 283.3 + 133.3 cents"},vertex_chrom3:{frequencies:[261.6255653006,275.18850165466,324.90175210669,349.22823143301,391.99543598175,412.31687950427,486.80259447109,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 287.5 + 125 cents"},vertex_chrom4:{frequencies:[261.6255653006,275.40936140075,325.42347822215,349.22823143301,391.99543598175,412.64779522483,487.58430040208,523.2511306012],description:"A vertex tetrachord from Chapter 5, 88.9 + 288.9 + 122.2 cents"},vertex_chrom5:{frequencies:[261.6255653006,282.57123920205,329.62755691287,349.22823143301,391.99543598175,423.37848741825,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 133.3 + 266.7 + 100 cents"},vertex_diat:{frequencies:[261.6255653006,299.37379946195,323.3415889232,349.22823143301,391.99543598175,448.5538823653,484.46499932732,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.3 + 133.3 + 133.3 cents"},vertex_diat10:{frequencies:[261.6255653006,295.79278388132,324.90175210669,349.22823143301,391.99543598175,443.18842137843,486.80259447109,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 162.5 + 125 cents"},vertex_diat11:{frequencies:[261.6255653006,295.79278388132,306.66641795878,349.22823143301,391.99543598175,443.18842137843,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 62.5 + 225 cents"},vertex_diat12:{frequencies:[261.6255653006,293.66476791741,315.65242990842,349.22823143301,391.99543598175,440,472.94426956511,523.2511306012],description:"A vertex tetrachord from Chapter 5, 200 + 125 + 175 cents"},vertex_diat2:{frequencies:[261.6255653006,299.37379946195,329.62755691287,349.22823143301,391.99543598175,448.5538823653,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.3 + 166.7 + 100 cents"},vertex_diat3:{frequencies:[261.6255653006,273.20871865617,311.12698372208,349.22823143301,391.99543598175,409.35055662695,466.16376151809,523.2511306012],description:"A vertex tetrachord from Chapter 5, 75 + 225 + 200 cents"},vertex_diat4:{frequencies:[261.6255653006,297.93622032612,329.62755691287,349.22823143301,391.99543598175,446.39994737251,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 225 + 175 + 100 cents"},vertex_diat5:{frequencies:[261.6255653006,275.18850165466,315.65242990842,349.22823143301,391.99543598175,412.31687950427,472.94426956511,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 237.5 + 175 cents"},vertex_diat7:{frequencies:[261.6255653006,293.66476791741,306.66641795878,349.22823143301,391.99543598175,440,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 200 + 75 + 225 cents"},vertex_diat8:{frequencies:[261.6255653006,277.18263097687,306.66641795878,349.22823143301,391.99543598175,415.30469757995,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 100 + 175 + 225 cents"},vertex_diat9:{frequencies:[261.6255653006,295.79278388132,320.24370022528,349.22823143301,391.99543598175,443.18842137843,479.82340237272,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 137.5 + 150 cents"},vertex_sdiat:{frequencies:[261.6255653006,275.18850165466,306.66641795878,349.22823143301,391.99543598175,412.31687950427,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 187.5 + 225 cents"},vertex_sdiat2:{frequencies:[261.6255653006,273.20871865617,302.26980244078,349.22823143301,391.99543598175,409.35055662695,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 75 + 175 + 250 cents"},vertex_sdiat3:{frequencies:[261.6255653006,265.43099677612,302.26980244078,349.22823143301,391.99543598175,397.69714089209,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 25 + 225 + 250 cents"},vertex_sdiat4:{frequencies:[261.6255653006,271.8968348557,302.26980244078,349.22823143301,391.99543598175,407.38495184466,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 66.7 + 183.3 + 250 cents"},vertex_sdiat5:{frequencies:[261.6255653006,299.37374239667,302.26980244078,349.22823143301,391.99543598175,448.55379686399,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.33 + 16.67 + 250 cents"},vicentino1:{frequencies:[261.6255653006,267.54129532085,273.59078691818,279.77706779472,286.10322937235,292.57243455474,295.8616864168,299.18791603519,305.95298478736,312.87102146627,319.94548489658,327.17991022208,330.85823737058,334.57791819083,342.14320575162,349.87955533643,357.79083283678,365.88099775759,374.15409293384,382.6142546815,391.26571058456,395.66452371628,400.11279059885,409.15991580663,418.41160951721,427.87249484695,437.54730686196,442.46644183113,447.44088028055,457.55816161244,467.90420651233,478.48419305869,489.30340830564,494.80441235385,500.36726155789,511.68128147674,523.2511306012],description:"Usual Archicembalo tuning, 31-tET plus D,E,G,A,B a 10th tone higher"},vicentino2:{frequencies:[261.6255653006,262.40966637115,273.59078691818,274.41074818102,279.77706779472,280.61556956011,292.57243455474,293.44928279173,305.95298478736,306.86993670158,312.87102146627,313.80870698104,327.17991022208,328.16047998243,342.14320575162,343.16862103779,349.87955533643,350.92815470883,365.88099775759,366.97755604579,374.15409293384,391.26571058456,392.4383479509,409.15991580663,410.38618254261,418.41160951721,419.66560148231,437.54730686196,438.85865161274,457.55816161244,458.92947695163,467.90420651233,469.30653196482,489.30340830564,490.7698679226,511.68128147674,523.2511306012],description:"Alternative Archicembalo tuning, lower 3 rows the same upper 3 rows 3/2 higher"},vicentino2q217:{frequencies:[261.6255653006,262.46259217279,273.59078691818,274.46609608433,279.77706779472,280.67216895906,292.57243455474,293.50847071582,305.95298478736,306.93183153514,312.87102146627,313.87199953275,327.17991022208,328.2266690608,342.14320575162,343.23783523487,349.87955533643,350.99893596542,365.88099775759,367.05157442308,374.15409293384,391.26571058456,392.51750150462,409.15991580663,410.46895395112,418.41160951721,419.7502468954,437.54730686196,438.9471656765,457.55816161244,459.02204178186,467.90420651233,469.40118981889,489.30340830564,490.86885203792,511.68128147674,523.2511306012],description:"Vicentino's second tuning, 217-tET version"},vicentino36:{frequencies:[261.6255653006,262.43934012943,273.37431312998,274.22463192287,279.93529690293,280.80602334765,292.50627485027,293.41610276971,305.64177427204,306.59245933664,312.97717714283,313.95067836072,327.03195662575,328.04917632434,341.71789064962,349.91912034749,351.00752840096,365.63284274659,366.77012764335,374.40803131735,375.5726110527,391.22147055517,392.4383479509,408.78994578219,410.06146948999,418.60090448096,419.90294514449,437.39889945791,438.75941205608,457.04105505291,458.46266117889,468.01003810189,469.46576276783,489.02683710225,490.54793493862,510.98743222773,523.2511306012],description:"Vicentino's second tuning of 1555"},victor_eb:{frequencies:[261.6255653006,276.45300885359,293.16631378471,311.00963644582,328.52867116285,348.83408706747,368.60401198904,391.83966133014,414.6795130731,439.03603741286,465.77732204887,492.79300649794,523.2511306012],description:"Equal beating Victorian piano temperament, interpr. by Bill Bremmer (improved)"},victorian:{frequencies:[261.6255653006,276.5429423948,293.32570896007,310.76776326996,328.29744538229,349.22823143301,368.92737853004,391.99543598175,414.58565256441,438.73106346722,465.89457252293,492.17459484008,523.2511306012],description:"Form of Victorian temperament (1885)"},vitale1:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,336.37572681506,343.38355445704,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,457.84473927605,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Rami Vitale's 7-limit just scale"},vitale2:{frequencies:[261.6255653006,274.70684356563,294.32876096318,299.00064605783,305.22982618403,313.95067836072,336.37572681506,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,448.50096908674,457.84473927605,470.92601754108,504.56359022259,523.2511306012],description:"Rami Vitale, inverse mode of vitale1"},vitale3:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,412.06026534844,420.46965851882,441.49314144476,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Superset of several Byzantine scales by Rami Vitale, TL 29-Aug-2001"},vogel_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,310.07474405997,313.95067836072,321.55899383997,330.74639366397,348.83408706747,361.75386806997,372.08969287196,392.4383479509,406.97310157871,413.43299207996,418.60090448096,428.74532511996,440.99519155196,465.11211608996,482.33849075995,496.11959049595,523.2511306012],description:"Martin Vogel's 21-tone Archytas system, see Divisions of the tetrachord"},vogelh_b:{frequencies:[261.6255653006,276.37000081643,292.73769384471,310.07474405997,327.54963108844,349.78078158391,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,489.99465727995,523.2511306012],description:"Harald Vogel's temperament, van Eeken organ in Bunschoten, Immanuelkerk, 1992"},vogelh_fisk:{frequencies:[261.6255653006,274.01856817608,292.73769384471,312.85332572834,327.54963108844,349.78078158391,366.49445363528,391.37619916626,409.75340805561,437.91808280662,467.82492621575,489.99465727995,523.2511306012],description:"Modified meantone tuning of Fisk organ in Memorial Church at Stanford"},vogelh_hb:{frequencies:[261.6255653006,276.50527247638,293.79744652436,312.85332572834,329.92547760025,349.78078158391,369.82037393809,392.08397832814,413.47189899094,440.29822362186,467.82492621575,494.44133512215,523.2511306012],description:"Harald Vogel hybrid meantone (1984)"},vogelh_jakobi:{frequencies:[261.6255653006,275.2485073924,292.86986732103,310.4251397446,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.87276088221,438.2147004401,466.26912673157,490.54793493862,523.2511306012],description:"Harald Vogel's temperament for the Schnitger organ in St. Jakobi, Hamburg"},volans:{frequencies:[261.6255653006,288.78654445823,322.09885310804,352.06379107796,388.6137256405,429.95038611107,482.60299106564,523.2511306012],description:"African scale according to Kevin Volans 1/1=G"},vong:{frequencies:[261.6255653006,287.78812183066,324.77656382143,353.19451315581,392.4383479509,431.68218274599,476.53227965466,523.2511306012],description:"Vong Co Dan Tranh scale, Vietnam"},"vries19-72":{frequencies:[261.6255653006,271.89678302796,282.57123920205,293.66476791741,305.19382000629,314.13668154225,326.46944327063,339.28638158975,352.60650301302,366.44956000397,377.18735172911,391.99543598175,407.38487419079,423.37848741825,452.89298412314,470.6732130613,489.15147723638,508.3551866238,523.2511306012],description:"Leo de Vries 19/72 Through-Transposing-Tonality 18 tone scale"},"vries35-72":{frequencies:[261.6255653006,320.24370022528,326.46944327063,332.81622067851,339.28638158975,345.88232658126,352.60650301302,359.46139971304,366.44956000397,448.5538823653,457.27406033445,466.16376151809,475.22628419761,484.46499093218,493.88330125613,503.48470957687,513.27277840175,523.2511306012],description:"Leo de Vries 35/72 Through-Transposing-Tonality 17 tone scale"},"vries5-72":{frequencies:[261.6255653006,269.29177952703,274.52698453615,282.57123920205,288.06460709314,296.5055443788,302.26980244078,317.17549194805,332.81622067851,349.22823143301,366.44956000397,384.52011812375,403.48177901006,423.37848741825,444.25635547592,466.16376151809,489.15147723638,513.27277840175,523.2511306012],description:"Leo de Vries 5/72 Through-Transposing-Tonality 18 tone scale"},"vries6-31":{frequencies:[261.6255653006,292.57243455474,299.18791603519,334.57791819083,342.14320575162,382.6142546815,391.26571058456,437.54730686196,447.44088028055,500.36726155789,511.68128147674,523.2511306012],description:'Leo de Vries 6/31 TTT used in "For 31-tone organ" (1995)'},vulture:{frequencies:[261.6255653006,265.58852967049,269.02996542365,272.51599294435,276.04719319079,279.62414831161,283.24745441839,286.9177088442,290.63552324927,294.40151054717,298.21629835234,302.73351960911,306.6562716924,310.62985211059,314.65492307423,318.73214815075,322.86220682342,327.0457799678,331.28356479042,335.57625992643,339.9245807679,344.32924417279,349.54496173019,354.07428378691,358.66229781376,363.30976018416,368.01744541334,372.78612960355,377.61660747204,382.50967536449,387.46614872711,392.486844677,398.43202813578,403.59481739244,408.82450722915,414.12195980508,419.48805795853,424.92368633675,430.42975080549,436.00715908665,441.65684067409,447.37972696622,453.17677170128,460.0412514682,466.0023613576,472.04071122634,478.15730738573,484.35315820906,490.6292962557,496.98675620078,503.42659462849,509.94988192555,516.55769649554,523.2511306012],description:"Vulture temperament, g=475.542233, 5-limit"},walker_21:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,327.03195662575,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:'Douglas Walker, 1977, for "out of the fathomless dark/into the limitless light'},walkerr_11:{frequencies:[261.6255653006,291.47537246454,299.00064605783,333.11471138804,341.71502406609,380.70252730062,390.53145607553,435.08860262928,484.72943438718,497.2441172906,510.08190181294,523.2511306012],description:'Robert Walker, "Seven to Pi" scale, TL 09-07-2002'},wauchope:{frequencies:[261.6255653006,274.70684356563,305.22982618403,327.03195662575,366.27579142084,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Symmetrical 7-limit JI whole-half step scale, Ken Wauchope"},wendell1:{frequencies:[261.6255653006,276.25045813601,293.35468319005,310.78176509232,328.42642049784,348.83408706747,369.47972269069,391.8804287311,414.37568699689,438.92294511207,466.17264740545,492.63963050051,523.2511306012],description:"Robert Wendell's Natural Synchronous well-temperament (2003)"},wendell1r:{frequencies:[261.6255653006,276.25560153172,293.36810129327,310.78755172318,328.43721515437,348.83408706747,369.49186704867,391.89926583958,414.38340229758,438.93945576706,466.18132758477,492.65582273156,523.2511306012],description:"Rational version of wendell1 by Gene Ward Smith"},wendell2:{frequencies:[261.6255653006,276.37223575148,293.46077701205,310.91876490958,328.50868755512,348.91469434159,369.57235851938,392.00856887742,414.55835341999,438.92345217603,466.37814713124,492.76314493882,523.2511306012],description:"Robert Wendell's Very Mild Synchronous well-temperament (2003)"},werck1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Werckmeister I (just intonation)"},werck3:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,327.77163799145,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,491.65745674141,523.2511306012],description:"Andreas Werckmeister's temperament III (the most famous one, 1681)"},werck3_eb:{frequencies:[261.6255653006,275.62199471997,292.52927773082,310.07474405997,328.06371231954,348.83408706747,367.49599295996,391.41011079897,413.43299207996,437.41828331138,465.11211608996,492.10978071589,523.2511306012],description:"Werckmeister III equal beating version, 5/4 beats twice 3/2"},werck3_mod:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,327.77163799145,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,490.82535372381,523.2511306012],description:"Modified Werckmeister III with B between E and F#, Nijsse (1997), organ Soest"},werck4:{frequencies:[261.6255653006,274.37997440822,293.00227310437,310.07474405997,328.14198392915,348.83408706747,367.49599295996,390.66969766777,411.5699614066,437.52264545758,467.21778431035,489.99465727995,523.2511306012],description:"Andreas Werckmeister's temperament IV"},werck5:{frequencies:[261.6255653006,276.55731914056,294.32876096318,311.12698372208,328.88393162803,350.01785633742,369.99442271164,392.4383479509,413.43299207996,440,466.69047534984,493.32589719545,523.2511306012],description:"Andreas Werckmeister's temperament V"},werck6:{frequencies:[261.6255653006,275.69145590816,291.35574317567,310.77945938738,328.70904358281,348.83408706747,368.91086905696,391.43977709097,413.53718386224,438.27872477707,466.16918908107,493.06356537421,523.2511306012],description:`Andreas Werckmeister's "septenarius" tuning VI`},werck6_dup:{frequencies:[261.6255653006,275.62199471997,291.49363009634,310.67551062492,328.56569462012,348.83408706747,368.92162485303,391.67947347082,413.43299207996,438.08759304581,466.01326570444,492.84854168382,523.2511306012],description:"Andreas Werckmeister's VI in the interpretation by Dupont (1935)"},werck_cl5:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.97737261399,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.14811800305,438.2147004401,466.26912673157,490.54793493862,523.2511306012],description:"Werckmeister Clavier temperament (Nothw. Anm.) Poletti reconstr. 1/5-comma"},werck_cl6:{frequencies:[261.6255653006,275.36250599118,293.11251278827,310.35057963607,328.38895179964,349.55706816887,367.91095120397,391.62667645325,413.31226430431,438.75941205608,466.0760911248,491.56462836305,523.2511306012],description:"Werckmeister Clavier temperament (Nothw. Anm.) Poletti reconstr. 1/6-comma"},werck_puzzle:{frequencies:[261.6255653006,272.52663052146,291.60349465796,306.59245933664,327.03195662575,347.47145391486,365.18568489875,389.71308164569,408.78994578219,436.04260883433,461.93263873387,490.54793493862,523.2511306012],description:"From Hypomnemata Musica, 1697, p. 49, 1/1=192, fifths tempered superparticular"},white:{frequencies:[261.6255653006,275.93321340298,289.72987407313,294.32876096318,305.22982618403,310.42486507835,327.03195662575,331.11985608357,343.38355445704,348.83408706747,367.91095120397,386.30649876417,392.4383479509,406.97310157871,413.89982010446,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:"Justin White's 22-tone scale based on Al-Farabi's tetrachord"},wicks:{frequencies:[261.6255653006,276.65728054629,293.45376109391,310.36444075595,329.26048109616,348.28499607284,369.54304125029,391.93835601961,414.48592121967,439.68064187634,465.04666232412,493.39072329352,523.2511306012],description:"Mark Wicks' equal beating temperament for organs (1887)"},wier_cl:{frequencies:[261.6255653006,276.16031892841,290.69507255622,305.22982618403,319.76457981184,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"Danny Wier, ClownTone (2003)"},wiesse:{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,348.83408706747,369.99442271164,392.4383479509,416.24372513446,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Von Wiesse's 1/2 Pyth. comma tuning"},wilson1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson's 19-tone Scott scale (1976)"},wilson11:{frequencies:[261.6255653006,271.31540105247,277.4816601673,291.35574317567,305.22982618403,312.16686768822,325.57848126297,332.97799220076,348.83408706747,366.27579142084,374.60024122586,392.4383479509,406.97310157871,416.22249025095,437.0336147635,457.84473927605,468.25030153232,488.36772189445,499.46698830115,523.2511306012],description:"Wilson 11-limit 19-tone scale, 1977"},wilson1t:{frequencies:[261.6255653006,273.34666024156,279.64601698606,292.92954243175,306.05308604033,313.10617410217,327.13365148064,334.67254769546,349.66622272551,366.27579142084,374.71672979763,391.50442319155,409.04422481132,418.47077311482,437.21869500104,457.98711402938,468.54156606881,489.53271107931,500.81414097667,523.2511306012],description:"Wilson's Scott scale, wilson1, in minimax minerva tempering"},wilson2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,372.08969287196,392.4383479509,406.97310157871,418.60090448096,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 19-tone, 1975"},wilson3:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,515.07533168556,523.2511306012],description:"Wilson 19-tone"},wilson5:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson's 22-tone 5-limit scale"},wilson7:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson's 22-tone 7-limit 'marimba' scale"},wilson7_2:{frequencies:[261.6255653006,263.718569823,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,329.64821227876,343.38355445704,353.19451315581,366.27579142084,376.74081403286,392.4383479509,408.78994578219,412.06026534844,436.04260883433,439.53094970501,457.84473927605,470.92601754108,490.54793493862,494.47231841813,523.2511306012],description:"Wilson 7-limit scale"},wilson7_3:{frequencies:[261.6255653006,267.90457886781,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson 7-limit scale"},wilson7_4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,372.08969287196,387.59343007496,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 7-limit 22-tone scale XH 3, 1975"},wilson_17:{frequencies:[261.6255653006,275.93321340298,290.69507255622,294.32876096318,310.42486507835,327.03195662575,331.11985608357,348.83408706747,367.91095120397,372.50983809402,392.4383479509,413.89982010446,436.04260883433,441.49314144476,465.11211608996,490.54793493862,496.67978412536,523.2511306012],description:"Wilson's 17-tone 5-limit scale"},wilson_31:{frequencies:[261.6255653006,265.7783520514,271.31540105247,279.06726965397,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,321.08592105074,327.03195662575,332.22294006425,339.14425131559,348.83408706747,354.37113606854,361.75386806997,372.08969287196,380.54627680087,392.4383479509,398.6675280771,406.97310157871,418.60090448096,428.11456140098,441.49314144476,448.50096908674,457.84473927605,470.92601754108,481.6288815761,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Wilson 11-limit 31-tone scale XH 3, 1975"},wilson_41:{frequencies:[261.6255653006,265.7783520514,271.31540105247,275.62199471997,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,321.08592105074,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,354.37113606854,361.75386806997,367.49599295996,372.08969287196,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,413.43299207996,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,481.6288815761,490.54793493862,496.67978412536,504.56359022259,515.07533168556,523.2511306012],description:"Wilson 11-limit 41-tone scale XH 3, 1975"},wilson_alessandro:{frequencies:[261.6255653006,265.58571790036,269.80136421624,270.50397193556,275.93321340298,278.232656848,284.55612632182,286.15296204753,288.53757006459,294.32876096318,295.09524211152,303.52653474327,304.3169684275,305.22982618403,309.14739649778,314.76825825228,321.92208230347,324.60476632267,327.03195662575,331.98214737546,337.2517052703,340.06213614756,343.38355445704,347.79082106,351.18772614924,354.11429053382,359.73515228832,365.180362113,367.91095120397,370.97687579734,379.40816842909,386.30649876417,391.2646736925,392.4383479509,393.46032281536,404.70204632437,405.75595790334,413.89982010446,417.348985272,419.69101100305,429.2294430713,432.80635509689,441.49314144476,442.64286316727,449.66894036041,456.47545264125,457.84473927605,463.72109474667,472.15238737843,482.88312345521,486.907149484,490.54793493862,494.63583439645,505.87755790546,515.07533168556,521.68623159,523.2511306012],description:"D'Alessandro, genus [3 3 3 5 7 11 11] plus 8 pigtails, XH 12, 1989"},wilson_bag:{frequencies:[261.6255653006,294.32876096318,318.85615771011,349.51540364377,392.4383479509,425.14154361347,466.02053819169,523.2511306012],description:"Erv's bagpipe, mar '97, after Theodore Podnos (37-39)."},wilson_class:{frequencies:[261.6255653006,272.52663052146,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,381.53728273004,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Class Scale, Erv Wilson, 9 july 1967"},wilson_dia1:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,362.25078272391,371.78369805875,381.83190611439,392.4383479509,403.65087217807,415.52295665389,428.11456140098,441.49314144476,455.73485568492,470.92601754108,487.16484573215,504.56359022259,523.2511306012],description:"Wilson Diaphonic cycles, tetrachordal form"},wilson_dia2:{frequencies:[261.6255653006,268.51044859798,275.76748774928,283.42769574232,291.52562990638,300.09991313892,309.19384990071,318.85615771011,329.14184021688,340.11323489078,351.84127747322,364.40703738298,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Wilson Diaphonic cycle, conjunctive form"},wilson_dia3:{frequencies:[261.6255653006,268.51044859798,275.76748774928,283.42769574232,291.52562990638,300.09991313892,309.19384990071,318.85615771011,329.14184021688,340.11323489078,351.84127747322,364.40703738298,377.90359432309,392.4383479509,403.65087217807,415.52295665389,428.11456140098,441.49314144476,455.73485568492,470.92601754108,487.16484573215,504.56359022259,523.2511306012],description:"Wilson Diaphonic cycle on 3/2"},wilson_dia4:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,358.01393146398,381.83190611439,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Wilson Diaphonic cycle on 4/3"},wilson_duo:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 'duovigene'"},wilson_enh:{frequencies:[261.6255653006,264.37951861955,279.06726965397,348.83408706747,392.4383479509,396.56927792933,418.60090448096,523.2511306012],description:"Wilson's Enharmonic & 3rd new Enharmonic on Hofmann's list of superp. 4chords"},wilson_enh2:{frequencies:[261.6255653006,265.7783520514,275.62199471997,348.83408706747,392.4383479509,398.6675280771,413.43299207996,523.2511306012],description:"Wilson's 81/64 Enharmonic, a strong division of the 256/243 pyknon"},wilson_facet:{frequencies:[261.6255653006,271.31540105247,274.70684356563,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,366.27579142084,387.59343007496,392.4383479509,406.97310157871,412.06026534844,436.04260883433,452.19233508746,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Wilson study in 'conjunct facets', Hexany based"},wilson_gh1:{frequencies:[261.6255653006,286.54684077898,313.84200313831,343.73718179912,398.2573899082,436.19359890902,477.74343791599,523.2511306012],description:"Golden Horagram nr.1: 1phi+0 / 7phi+1"},wilson_gh11:{frequencies:[261.6255653006,294.51148904212,316.87124012705,356.70145865606,383.78276711707,432.02365977685,464.82353976398,523.2511306012],description:"Golden Horagram nr.11: 1phi+0 / 3phi+1"},wilson_gh2:{frequencies:[261.6255653006,290.51361927671,322.59142140135,358.21117585067,382.16527586729,424.3630293795,471.22015545621,523.2511306012],description:"Golden Horagram nr.2: 1phi+0 / 6phi+1"},wilson_gh50:{frequencies:[261.6255653006,270.80964219588,280.31611759965,306.81496952381,317.58537244461,347.60736272384,359.80973785756,372.44046183271,407.64801512355,421.95805149354,461.8466031062,478.05922145,523.2511306012],description:"Golden Horagram nr.50: 7phi+2 / 17phi+5"},wilson_helix:{frequencies:[261.6255653006,283.42769574232,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"Wilson's Helix Song, see David Rosenthal, Helix Song, XH 7&8, 1979. Also Secor, 1964"},wilson_hypenh:{frequencies:[261.6255653006,266.38239376061,271.31540105247,348.83408706747,392.4383479509,399.57359064092,406.97310157871,523.2511306012],description:"Wilson's Hyperenharmonic, this genus has a CI of 9/7"},wilson_l1:{frequencies:[261.6255653006,269.80136421624,274.70684356563,286.15296204753,294.32876096318,305.22982618403,314.76825825228,327.03195662575,337.2517052703,343.38355445704,359.73515228832,366.27579142084,377.72190990274,392.4383479509,404.70204632437,419.69101100305,431.68218274599,449.66894036041,457.84473927605,472.15238737843,490.54793493862,503.62921320365,523.2511306012],description:"Wilson 11-limit scale"},wilson_l2:{frequencies:[261.6255653006,267.07609791103,279.79400733536,287.78812183066,294.32876096318,305.22982618403,314.76825825228,327.03195662575,335.75280880244,348.83408706747,359.73515228832,373.05867644715,381.53728273004,392.4383479509,411.12588832951,419.69101100305,436.04260883433,447.67041173658,457.84473927605,479.64686971777,490.54793493862,503.62921320365,523.2511306012],description:"Wilson 11-limit scale"},wilson_l3:{frequencies:[261.6255653006,269.80136421624,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,332.97799220076,343.38355445704,359.73515228832,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,499.46698830115,523.2511306012],description:"Wilson 11-limit scale"},wilson_l4:{frequencies:[261.6255653006,267.07609791103,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,356.10146388137,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Wilson 11-limit scale"},wilson_l5:{frequencies:[261.6255653006,267.07609791103,279.79400733536,285.40970760065,299.00064605783,305.22982618403,313.95067836072,327.03195662575,332.97799220076,348.83408706747,356.10146388137,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,479.64686971777,488.36772189445,508.71637697339,523.2511306012],description:"Wilson 11-limit scale"},wilson_l6:{frequencies:[261.6255653006,267.57160087561,277.4816601673,285.40970760065,294.32876096318,305.22982618403,312.16686768822,327.03195662575,332.97799220076,348.83408706747,356.76213450082,369.97554688974,381.53728273004,392.4383479509,406.97310157871,416.22249025095,436.04260883433,443.97065626768,457.84473927605,475.68284600109,490.54793493862,499.46698830115,523.2511306012],description:"Wilson 1 3 7 9 11 15 eikosany plus 9/8 and tritone. Used Stearns: Jewel"},window:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,297.67175429757,306.59245933664,327.03195662575,334.88072358477,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,446.50763144636,459.88868900496,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"Window lattice"},wonder1:{frequencies:[261.6255653006,272.72256190885,277.86237426839,283.09905309511,288.43442562998,293.8703485525,299.4087202614,312.10830899518,317.99039712482,323.98334274799,330.08923137594,336.31019538088,342.64839962317,357.18202566262,363.91358676728,370.77201292014,377.75969724053,384.87907140314,392.13262172187,408.76514672187,416.46885901676,424.31776026786,432.3145818485,440.46211650535,448.76319953449,467.79774494453,476.61400354229,485.59641603135,494.74811665626,504.07229015717,513.57219283465,523.2511306012],description:"Wonder Scale, gen=~233.54 cents, 8/7+1029/1024^7/25, LS 12:14:18:21, M.Schulter"},wonder36:{frequencies:[261.6255653006,271.89678302796,277.18263097687,282.57123920205,288.06460709314,293.66476791741,299.37379946195,311.12698372208,317.17549194805,323.3415889232,329.62755691287,336.03572815422,342.56848033562,356.01745236555,362.93866220634,369.99442271164,377.18735172911,384.52011812375,391.99543598175,407.38487419079,415.30469757995,423.37848741825,431.60923940535,440,448.5538823653,466.16376151809,475.22628419761,484.46499093218,493.88330125613,503.48470957687,513.27277840175,523.2511306012],description:"Wonder Scale, 36-tET version"},wronski:{frequencies:[261.6255653006,277.97716313189,294.32876096318,308.86351459099,327.03195662575,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,463.29527188648,494.18162334558,523.2511306012],description:`Wronski's scale, from Jocelyn Godwin, "Music and the Occult", p. 105.`},wurschmidt:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,331.11985608357,353.19451315581,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's normalised 12-tone system"},wurschmidt1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,502.32108537715,523.2511306012],description:"W\xEF\xBF\xBDrschmidt-1 19-tone scale"},wurschmidt2:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,484.4917875937,502.32108537715,523.2511306012],description:"W\xEF\xBF\xBDrschmidt-2 19-tone scale"},wurschmidt_31:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,476.27480687611,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 31-tone system"},wurschmidt_31a:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,372.08969287196,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,476.27480687611,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 31-tone system with alternative tritone"},wurschmidt_53:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,319.36714514233,321.48549464138,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.43299207996,418.60090448096,425.82286018978,428.6473261885,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.27480687611,484.4917875937,490.54793493862,496.11959049595,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 53-tone system"},wurschmidt_temp:{frequencies:[261.6255653006,270.6876810201,276.46178051834,282.35904862511,288.38211267756,294.53365605714,300.81641938515,307.23320174366,313.78686192261,320.48031969341,327.31655710978,338.6540596739,345.87796520471,353.25596548096,360.79134753214,368.48746850413,376.34775715481,384.37571538166,392.57491978195,400.94902556208,409.5017589506,423.68596790742,432.72370810117,441.95423435346,451.38165902684,461.01018486849,470.84409628664,480.88777706987,491.14570185547,501.62244073019,512.32266126632,523.2511306012],description:"W\xEF\xBF\xBDrschmidt temperament, 5-limit, g=387.744375, 5-limit"},"t-side":{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Tau-on-Side"},"t-side2":{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"Tau-on-Side opposite"},tagawa_55:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,296.50897400735,299.00064605783,301.87565226992,305.22982618403,307.79478270659,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,442.75095666255,444.76346101102,448.50096908674,453.48431318771,457.84473927605,461.69217405988,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Rick Tagawa, 17-limit diamond subset with good 72-tET approximation, 2003"},tamil:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,372.50983809402,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Possible Tamil sruti scale. Alternative 11th sruti is 45/32 or 64/45"},tamil_vi:{frequencies:[261.6255653006,275.62199471997,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.91095120397,387.59343007496,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Vilarippalai scale in Tamil music, Vidyasankar Sundaresan"},tamil_vi2:{frequencies:[261.6255653006,275.62199471997,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.49599295996,387.59343007496,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Vilarippalai scale with 1024/729 tritone"},tanaka:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,331.11985608357,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"26-note choice system of Shoh\xEF\xBF\xBD Tanaka, Studien i.G.d. reinen Stimmung (1890)"},tanbur:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,306.66732929008,314.73752216614,323.24394168414,332.22294006425,341.71502406609,351.76546595039,523.2511306012],description:"Sub-40 tanbur scale"},tansur:{frequencies:[261.6255653006,275.71279889585,293.19126194179,310.07474405997,328.21516866261,348.83408706747,367.61706537823,391.78834765065,413.56919813705,438.48689188122,465.11211608996,491.022754507,523.2511306012],description:"William Tans'ur temperament from A New Musical Grammar (1746) p. 73"},tartini_7:{frequencies:[261.6255653006,294.32876096318,313.95067836072,367.91095120397,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Tartini (1754) with 2 neochromatic tetrachords, 1/1=d, Minor Gipsy (Slovakia)"},taylor_g:{frequencies:[261.6255653006,274.70684356563,287.78812183066,294.32876096318,313.95067836072,353.19451315581,366.27579142084,392.4383479509,412.06026534844,418.60090448096,431.68218274599,470.92601754108,523.2511306012],description:"Gregory Taylor's Dutch train ride scale based on pelog_schmidt"},taylor_n:{frequencies:[261.6255653006,275.93341798027,292.67158636845,310.42509491746,327.40170814054,348.83408706747,367.9112241576,391.33200541501,413.90012676351,437.76975193523,465.63764214343,491.10256480205,523.2511306012],description:"Nigel Taylor's Circulating Balanced temperament (20th cent.)"},telemann:{frequencies:[261.6255653006,264.94361147373,271.70648167539,275.15237829755,278.64197723942,282.17583275232,289.3785657319,293.0485888979,296.76515515861,300.52885648597,304.34029066685,308.20006306951,312.10878854255,316.06708432391,324.13491490251,328.24573110938,332.40868242763,336.62443200122,345.21700307457,349.59519124833,354.02890545793,363.06573983159,367.67029324081,372.33324354561,377.05533136015,386.67993129161,391.58396987353,396.55020354877,406.67242132093,411.83001550364,417.05301810033,422.34226102699,433.12283887627,438.61588607285,444.17860098504,449.81186203693,461.29362042034,467.14394139401,473.06846134744,485.14386048744,491.29666030217,497.52749252881,503.83734680745,516.69814597997,523.2511306012],description:"G.Ph. Telemann (1767). 55-tET interpretation of Klang- und Intervallen-Tafel"},telemann_28:{frequencies:[261.6255653006,264.94361147373,275.15237829755,278.64197723942,293.0485888979,296.76515515861,308.20006306951,312.10878854255,328.24573110938,332.40868242763,345.21700307457,349.59519124833,354.02890545793,367.67029324081,372.33324354561,386.67993129161,391.58396987353,396.55020354877,406.67242132093,411.83001550364,438.61588607285,444.17860098504,461.29362042034,467.14394139401,473.06846134744,491.29666030217,497.52749252881,516.69814597997,523.2511306012],description:"Telemann's tuning as described on Sorge's monochord, 1746, 1748, 1749"},"temes-mix":{frequencies:[261.6255653006,306.31659399917,323.38698268281,342.47239171077,361.55773069062,378.62819763364,399.72843132859,423.31905787312,446.91000942727,523.2511306012],description:"Temes' 5-tone Phi scale mixed with its octave inverse"},"temes-ur":{frequencies:[261.6255653006,306.31659399917,323.38703872151,342.47239171077,361.55773069062,423.31905787312],description:"Temes' Ur 5-tone phi scale"},temes:{frequencies:[261.6255653006,306.31659399917,323.38703872151,342.47239171077,361.55773069062,423.31905787312,495.63057556553,523.2511306012,554.13187513888,585.01259700885,684.94462120932],description:"Temes' 5-tone Phi scale / 2 cycle"},"temes2-mix":{frequencies:[261.6255653006,306.31659399917,323.38698268281,342.47239171077,361.55773069062,399.72843132859,423.31905787312,468.0102705885,495.63057556553,523.2511306012,552.41124604023,585.01259700885,646.77396536561,684.94438778203,757.25639526728,799.45686265718,846.63811574624,893.82001885454,1046.5022612024],description:"Temes' 2 cycle Phi scale mixed with its 4/1 inverse"},temp10coh:{frequencies:[261.6255653006,279.06726965397,299.10339764541,320.57805584394,343.5945271479,368.2635494613,394.70435354475,423.05284121745,453.57582505819,488.36772189445,523.2511306012],description:"Differential coherent 10-tone scale, OdC, 2003"},temp10ebss:{frequencies:[261.6255653006,280.43397904206,300.58585223371,322.17714382919,345.31067040124,370.09659148016,396.65293718743,425.1061627261,455.59176355181,488.25490599611,523.2511306012],description:`Cycle of 10 equal "beating" 15/14's`},temp11ebst:{frequencies:[261.6255653006,278.68301283272,296.80966039395,316.07252488244,336.70993118161,358.64093492832,381.94662420398,406.71316497313,433.24697173408,461.44397806515,491.40843569917,523.2511306012],description:"Cycle of 11 equal beating 9/7's"},temp12coh3:{frequencies:[261.6255653006,279.8393060116,294.68135606466,311.32770136359,332.21069717879,353.56473801237,370.2386298036,397.61708850394,418.97112933752,440.1984563065,471.2874275201,496.80305467842,523.2511306012],description:"Differential coherent scale, interval=3, OdC, 2003"},temp12ebf:{frequencies:[261.6255653006,277.18807786937,293.58315284916,311.09098010692,329.5354160273,349.23174343306,369.98176018664,391.84186131702,415.18563115404,439.77824302677,466.03998256716,493.70667148145,523.2511306012],description:"Equal beating temperament tuned by The Best Factory Tuners (1840)"},temp12ebf4:{frequencies:[261.6255653006,276.98801737971,293.51517393789,310.79793252689,329.39098365485,348.83408706747,369.75126958642,391.78747833067,414.83115644933,439.62189128662,465.54602917011,493.43560586205,523.2511306012],description:"Eleven equal beating fifths and just fourth"},temp12ebfo:{frequencies:[261.6255653006,277.20265787963,293.64844512428,311.16011036869,329.64835309433,349.33484978517,370.11921182839,392.06266066657,415.42830219132,440.09698059047,466.36447845344,494.0968438935,523.62658899088],description:"Equal beating fifths and fifth beats twice octave at C"},temp12ebfp:{frequencies:[261.6255653006,277.75307788644,293.77513637875,310.82931496301,329.94340332986,349.12935317325,370.63270249518,391.99544730302,416.18671544528,440.21980402758,465.80107112682,494.47220378931,523.2511306012],description:"All fifths except G#-Eb beat same as 700 c. C-G"},temp12ebfr:{frequencies:[261.6255653006,277.1880780098,293.58315312731,311.09097992515,329.53543943235,349.23174457993,369.98176152553,391.84186168221,415.185630746,439.77824342227,466.03998361904,493.70667287983,523.2511306012],description:"Exact values of equal beating temperament of Best Factory Tuners (1840)"},temp12ep:{frequencies:[261.6255653006,277.19910487213,293.6996776193,311.18246278326,329.70593120198,349.3320268423,370.12638880276,392.15855510068,415.50221189151,440.23542223935,466.44090588941,494.20629608476,523.62445363767],description:"Pythagorean comma distributed equally over octave and fifth: 1/19-Pyth comma"},temp12fo1o:{frequencies:[261.6255653006,277.20349049726,293.7089710611,311.19723286579,329.72679517909,349.35966199273,370.1615231373,392.20198585541,415.5548023839,440.29810917508,466.51470234738,494.29230838881,523.72386870485],description:"Fifth beats same octave opposite"},temp12fo2o:{frequencies:[261.6255653006,277.19623399848,293.69359242342,311.17279259662,329.69226891672,349.31393351076,370.10338107372,392.13011658806,415.46777521802,440.19437666896,466.39258399594,494.14997995304,523.55935978973],description:"Fifth beats twice octave opposite"},temp12p10:{frequencies:[261.6255653006,277.12003622197,293.53214922797,310.91625060765,329.32990524605,349.3071136959,369.493381814,391.90691363044,415.11714643072,439.70197837153,465.74281849401,493.32589719545,523.2511306012],description:"1/10-Pyth. comma well temperament"},temp12p6:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,349.6228209638,367.9112241576,391.5530240856,413.43299207996,438.51190905657,466.16376151809,491.10256480205,523.2511306012],description:"Modified 1/6-Pyth. comma temperament"},temp12p8:{frequencies:[261.6255653006,277.02617059261,293.33333347996,310.60041853231,328.88393162803,349.42547049952,369.36822764145,391.77416758435,414.83597850347,439.25532436715,465.90062756558,492.49097043477,523.2511306012],description:"1/8-Pyth. comma well temperament"},temp12p8a:{frequencies:[261.6255653006,276.55731914056,293.33333347996,311.12698372208,328.88393162803,349.42547049952,368.74309237173,391.77416758435,414.83597850347,439.25532436715,466.69047534984,492.49097043477,523.2511306012],description:"1/8-Pyth. comma well temperament, consecutive just fifths"},temp12s17:{frequencies:[261.6255653006,275.41266079541,292.61316553779,309.9334225479,327.2710181906,348.78108411875,367.16108497228,391.29294726693,413.18177371806,437.63868343995,464.97078294553,490.98112850332,523.2511306012],description:'4/17th synt. comma "well"-temperament. OdC 1999'},temp12s3:{frequencies:[261.6255653006,275.79485124716,293.07576161921,310.19140758515,326.99095182327,348.87783040382,367.77258074571,390.81668391305,413.640406907,437.79703699716,465.22877230071,490.42492909292,523.2511306012],description:'1/3 synt. comma "well"-temperament. OdC 1999'},temp12septendec:{frequencies:[261.6255653006,277.01530443593,293.31032234393,310.5638707171,328.83233370046,348.17541215342,368.65631875068,390.34198455955,413.30334035457,437.61515184999,463.35732874365,494.18162334558,523.2511306012],description:"Scale with 18/17 steps"},temp12w2b:{frequencies:[261.6255653006,276.80621914251,293.38957467182,310.9374037046,329.12408537692,349.33498699812,369.32540968366,391.68699838314,414.83365420901,439.33301386008,466.03043161756,492.93477894539,523.2511306012],description:"The fifths on white keys beat twice the amount of fifths on black keys"},temp15coh:{frequencies:[261.6255653006,273.98642352939,286.93424587686,300.52595924487,314.76156220527,329.6715499436,345.28562122078,360.48992106995,377.61407292725,395.54746439596,414.33033691342,434.93480826785,455.53927928881,477.11963158959,499.65025190386,523.2511306012],description:"Differential coherent 15-tone scale, OdC, 2003"},temp15ebmt:{frequencies:[261.6255653006,274.13344448045,287.10161388969,300.54701305042,315.02372625978,330.03318193885,345.59498492211,361.72946206059,379.10151766291,397.1128647533,415.78702800292,435.14840215297,455.99486887387,477.60848441971,500.01748339385,523.2511306012],description:"Cycle of 15 equal beating minor thirds"},temp15ebsi:{frequencies:[261.6255653006,274.09084013406,287.01483652929,300.41443756554,314.84183942382,329.80016763418,345.30896502873,361.38848559819,378.7013656391,396.65136316555,415.2619179078,434.55734100747,455.33280077531,476.87279531786,499.20546063174,523.2511306012],description:"Cycle of 15 equal beating major sixths"},temp15mt:{frequencies:[261.6255653006,272.10155294862,290.46827626332,302.09918118188,314.19580976213,326.77681046955,348.83408706747,362.80207077951,377.32935907335,392.4383479509,418.92774655891,435.70241417719,453.14877154631,471.29371440761,503.10581234929,523.2511306012],description:"Cycle of 15 minor thirds, Petr Parizek"},temp16d3:{frequencies:[261.6255653006,272.52663052146,287.69189096389,299.67905363019,312.16568143019,325.17258353382,338.72144179457,352.83483584176,372.46899992671,387.98854005196,404.15472995283,420.99451113006,438.53594735503,462.93911228358,482.22824196207,502.32108537715,523.2511306012],description:"Cycle of 16 thirds tempered by 1/3 small diesis"},temp16d4:{frequencies:[261.6255653006,271.36369423603,291.82218013836,302.68427617679,313.95067836072,325.63643364742,337.75715313333,350.32902355546,376.74081403286,390.76372105392,405.30858212106,420.39482899491,436.04260883433,468.91646607712,486.37029938793,504.47379566792,523.2511306012],description:"Cycle of 16 thirds tempered by 1/4 small diesis"},temp16ebs:{frequencies:[261.6255653006,273.35566334732,285.38860666159,297.73221513295,311.13803992337,324.88997598926,338.996955196,354.31789928052,370.0343963911,386.15666093499,403.66631166114,421.62802297921,440.05346707662,460.0644954801,480.59216613216,501.64981691394,523.2511306012],description:"Cycle of 16 equal beating sevenths"},temp16ebt:{frequencies:[261.6255653006,273.54317752885,285.74681450472,298.24333695649,311.03977535434,324.14332902314,339.04034606654,354.29488987405,369.91554384313,385.91109319424,402.29053605603,420.91180538217,439.97998583037,459.50580330844,479.50024102158,499.97454326842,523.2511306012],description:"Cycle of 16 equal beating thirds"},temp16l4:{frequencies:[261.6255653006,278.81939890042,286.59644689091,305.43134787805,313.95067836072,322.70763593891,343.91573686494,353.50850469302,376.74081403286,387.24916379762,412.69888495295,424.21020636659,436.04260883433,464.69899736225,477.66074674968,509.05224558146,523.2511306012],description:"Cycle of 16 fifths tempered by 1/4 major limma"},temp17c10:{frequencies:[261.6255653006,278.13248184697,287.25399162485,296.67464640038,315.39293803189,325.73642523995,336.41913481987,347.45218787195,369.37422084479,381.48805431277,393.9991677018,418.85802036446,432.59470262079,446.78188702878,474.97099505857,490.54793493862,506.63572944675,523.2511306012],description:'Cycle of 17 fifths tempered by 1/10 of "17-tET comma"'},temp17c11:{frequencies:[261.6255653006,276.93071634298,286.5293181416,296.46061382736,313.80362259461,324.68026371274,335.93389640617,347.57758745223,367.91095120397,380.66298908833,393.8570200719,416.89773925535,431.34769064645,446.29848691039,472.40704302301,488.78098359819,505.72245578392,523.2511306012],description:'Cycle of 17 fifths tempered by 1/11 of "17-tET comma"'},temp17c12:{frequencies:[261.6255653006,275.93321340298,285.92682111936,296.28237159295,312.48531442823,323.80274674587,335.53006800342,347.68212334757,366.69599021774,379.97679689512,393.73860099464,415.27118158544,430.3112595477,445.8960513142,470.2809925818,487.31338757149,504.96265307831,523.2511306012],description:'Cycle of 17 fifths tempered by 1/12 of "17-tET comma"'},temp17c13:{frequencies:[261.6255653006,275.09197878886,285.41800532755,296.13163442011,311.37414725128,323.06208421743,335.18874504319,347.77059980835,365.67107999768,379.3971387881,393.63842979584,413.89982010446,429.43622376713,445.55581352332,468.48950048969,486.07501593832,504.32063522708,523.2511306012],description:'Cycle of 17 fifths tempered by 1/13 of "17-tET comma"'},temp17c14:{frequencies:[261.6255653006,274.37296298479,284.98259752889,296.00249241327,310.42486507835,322.42857866752,334.89645942743,347.84645641687,364.79486552165,378.90099378095,393.5525871037,412.72797362103,428.68761089217,445.26438593469,466.95936897503,485.01606158014,503.77098227424,523.2511306012],description:'Cycle of 17 fifths tempered by 1/14 of "17-tET comma"'},temp17c15:{frequencies:[261.6255653006,273.75133628611,284.60578240525,295.8906154666,309.60449456672,321.88054534371,334.64335075548,347.91221098893,364.0371787025,378.47152629398,393.47820661021,411.71505587788,428.03986711385,445.01196937812,465.63729761752,484.10016650719,503.29510175355,523.2511306012],description:'Cycle of 17 fifths tempered by 1/15 of "17-tET comma"'},temp17ebf:{frequencies:[261.6255653006,272.44226039746,283.83762774933,295.84262353625,308.01140541539,320.83119298602,334.33681303028,348.02669374128,362.44895565855,377.64277622383,393.64943714798,409.87448211667,426.96753159265,444.97502525992,463.22819966593,482.45788080796,502.71631088044,523.2511306012],description:"Cycle of 17 equal beating fifths"},temp17ebs:{frequencies:[261.6255653006,272.25303191034,284.09302419378,294.99486987374,307.14054534497,320.67196534338,333.1312181383,347.01199086095,362.47647062671,376.71561430061,392.57935523584,410.25304697073,426.52635565248,444.65634289229,464.854847056,483.45291583119,504.17290303449,523.2511306012],description:"Cycle of 17 equal beating sevenths"},temp17fo2:{frequencies:[261.6255653006,272.49443630436,283.81483782984,295.60553136463,307.88605111976,320.67674980257,333.99881838086,347.87433573796,362.32629011314,377.37863296804,393.05630224552,409.38528080469,426.39262165238,444.10651133426,462.55629730628,481.77255670213,501.78712602614,522.6331757532],description:"Fifth beats twice octave"},temp17nt:{frequencies:[261.6255653006,272.67141175251,283.62400127587,295.59862296305,308.07881564783,321.08592105074,333.98321109015,348.08400151932,362.78013022893,377.35217954558,393.28401259522,409.88848628312,426.35277308246,444.35341180422,463.11404114636,482.66674266598,502.05436630802,523.2511306012],description:"17-tone temperament with 27/22 neutral thirds"},temp17s:{frequencies:[261.6255653006,272.47577100117,283.83144686231,295.66037914716,307.98229466369,320.75501909295,334.12277657932,348.04764753103,362.48197303348,377.58873713905,393.32509157531,409.63717539588,426.70917767843,444.49267120113,463.01730800927,482.21968335939,502.31662775181,523.2511306012],description:"Cycle of 17 fifths tempered by 2 schismas. Schulter, Tuning List 10-9-98"},temp19d5:{frequencies:[261.6255653006,270.66831710441,280.02362001571,289.70227696231,304.50185643804,315.02657220273,325.91506125677,337.17989695691,348.83408706747,360.89108965294,379.3273836973,392.4383479509,406.00247545366,420.03542981361,434.55341522625,449.57319616728,472.53985806789,488.87259164079,505.76984518255,523.2511306012],description:"Cycle of 19 thirds tempered by 1/5 small diesis. Third = 3\\5"},temp19ebf:{frequencies:[261.6255653006,271.21349495395,281.45216719787,291.55303152151,302.33945232218,313.85796000757,325.22143162672,337.35615460362,350.31447634238,363.09838134063,376.74994653359,390.21776437961,404.59965986997,419.95766938963,435.10896436483,451.288596451,468.56635736893,485.61156561298,503.81364896584,523.2511306012],description:"Cycle of 19 equal beating fifths"},temp19ebmt:{frequencies:[261.6255653006,271.3515811897,281.43551369743,291.89053542337,302.73030209663,313.98726376766,325.65848288741,337.75920164946,350.30522706536,363.3129458114,376.82130195458,390.82676353803,405.34762742982,420.40285701732,436.01212051281,452.22214724761,469.0287008844,486.45373685079,504.52001310976,523.2511306012],description:"Cycle of 19 equal beating minor thirds"},temp19ebo:{frequencies:[261.6255653006,277.22364042749,293.65618047886,311.2040149966,329.6906225544,349.43193638686,370.22936988938,392.1394232912,415.53653598153,440.18534605859,466.50709783521,494.2370091719,523.84897992059,555.04513017437,587.91021027711,623.0058793126,659.97909442818,699.46172209312,741.05658909815,784.8766959018],description:"Cycle of 19 equal beating octaves in twelfth"},temp19ebt:{frequencies:[261.6255653006,271.59402175166,281.80172126331,292.25440577595,302.95795550425,313.91838845704,325.14187338321,337.60244413755,350.36206814823,363.42792409681,376.80735887968,390.50790160795,404.53725818867,420.11297167574,436.06250107414,452.39482160095,469.11911613638,486.2447950704,503.78149001575,523.2511306012],description:"Cycle of 19 equal beating thirds"},temp19k10:{frequencies:[261.6255653006,271.76196854941,282.29109592175,293.22816309454,304.58897525989,314.09773337131,326.2671147593,338.90798583865,352.03861397416,365.67797428016,377.09383089344,391.70392883316,406.88007915549,422.6442137645,439.01911266466,452.72455471179,470.26488431194,488.48479525859,507.41061720556,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/10 kleisma"},temp19k3:{frequencies:[261.6255653006,272.95237156345,284.76956174698,297.09836322231,309.96092731219,314.44113201634,328.05453510669,342.25731432435,357.07498823553,372.53417996774,377.91882441317,394.28042610165,411.35038641496,429.15937528906,447.73938330242,454.2110508691,473.87564511273,494.39160029408,515.79576952378,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/3 kleisma"},temp19k4:{frequencies:[261.6255653006,272.52663052146,283.88190679319,295.71031957624,308.03158289191,314.31844786309,327.4150485592,341.05734286691,355.26806612985,370.07090075127,377.62397563434,393.35830866491,409.74823893478,426.8210805314,444.6052930255,453.67960031314,472.58291784883,492.27387080735,512.78528301977,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/4 kleisma"},temp19k5:{frequencies:[261.6255653006,272.27150423996,283.35064249518,294.88062803952,306.8797443789,314.24485853342,327.03195662575,340.33937954017,354.18830437416,368.6007608062,377.44717941318,392.80607455881,408.78994578219,425.42422593284,442.73537947933,453.36102900438,471.8089732132,491.00759210237,510.98743222773,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/5 kleisma"},temp19k6:{frequencies:[261.6255653006,272.10155294862,282.99701916355,294.32876096318,306.11424676116,314.19580976213,326.77681046955,339.86157848985,353.47028562902,367.62391141072,377.32935907335,392.4383479509,408.1523292189,424.49552853314,441.49314144476,453.14877154631,471.29371440761,490.16521545931,509.79236747994,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/6 kleisma"},temp19k7:{frequencies:[261.6255653006,271.9802243463,282.7447017667,293.93521741989,305.56863311614,314.16077935352,326.59468561952,339.52070304385,352.95830848174,366.92774752709,377.24522513926,392.17589782962,407.69749910471,423.83341578697,440.60837682578,452.99722066906,470.92601754108,489.56440442681,508.94046380742,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/7 kleisma"},temp19k8:{frequencies:[261.6255653006,271.88926339885,282.55561052465,293.64040364533,305.16005936662,314.13450956378,326.45815718343,339.26526937521,352.57481080357,366.4064920117,377.18213591051,391.97917444376,407.35670799125,423.33750965456,439.94524339387,452.88359011983,470.65043349884,489.11427877975,508.30246674991,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/8 kleisma"},temp19k9:{frequencies:[261.6255653006,271.81853598083,282.40862793607,293.41130980736,304.84265779003,314.11407882217,326.35200974457,339.06673262958,352.27682225125,366.00158141044,377.13307501509,391.82623534045,407.09184571451,422.95220417284,439.43048454013,452.79523167251,470.4362008006,488.76446469244,507.80680338678,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/9 kleisma"},temp19lst:{frequencies:[261.6255653006,270.56149416036,279.80263334807,289.3594074481,304.78245180412,315.19242188443,325.95794877725,337.09117667186,348.60466454729,360.5114003397,379.7268899367,392.69661814622,406.10933276067,419.98016416303,434.32475952075,449.15930043669,473.09978287909,489.25870067642,505.96953296163,523.2511306012],description:"Cycle of 19 least squares thirds 5/4^5 = 3/2"},temp19lst2:{frequencies:[261.6255653006,270.86681403244,280.43448605562,290.34011310859,303.98143643885,314.71879896063,325.83542931914,337.34472599098,349.26055890156,361.59728998429,378.58655645252,391.95915298383,405.80409975455,420.1380835834,434.97837844393,450.34287106955,471.50175486263,488.15634183652,505.39920634693,523.2511306012],description:"Cycle of 19 least squares thirds 5/4, 3/2 (5), 6/5 (4)"},temp21ebs:{frequencies:[261.6255653006,270.48603901573,279.57527100587,288.89916626223,298.46378542286,308.59004184051,318.97773454914,329.63361550747,340.56460989801,352.13747205507,364.00912264098,376.18727282918,388.67983604901,401.90596519454,415.47356606258,429.3914526989,443.66866815503,458.78424493347,474.29007331382,490.19622772738,506.51304733863,523.2511306012],description:"Cycle of 21 equal beating sevenths"},temp22ebf:{frequencies:[261.6255653006,269.81217946012,278.43675961795,287.52273893052,297.09479717246,306.30473778727,316.00739221221,326.22911792828,336.99768333647,347.35886661388,358.27435338478,369.77379349451,381.88843101834,394.65117841871,406.93109909525,419.8679691216,433.49693671533,447.85502662133,461.66993710068,476.2239184443,491.55650493929,507.70935693135,523.2511306012],description:"Cycle of 22 equal beating fifths"},temp22ebt:{frequencies:[261.6255653006,270.16401944699,278.90739732088,287.86061708193,297.02871287074,306.4168425362,316.03028815926,325.87445510174,336.54752540671,347.4767459334,358.66827061689,370.12838991426,381.86355177507,393.88036006393,406.18556836568,419.52690380046,433.1884314408,447.17783799964,461.50298590676,476.17193984405,491.19294816955,506.57446222015,523.2511306012],description:"Cycle of 22 equal beating thirds"},temp22fo2:{frequencies:[261.6255653006,269.97341665226,278.58762814388,287.47669703533,296.64939669548,306.114775449,315.88217199169,325.96122111215,336.36187067071,347.09438029185,358.16933884319,369.59767092309,381.39065611261,393.55992749281,406.11749146369,419.07573510033,432.44744798202,446.24582051114,460.48446638525,475.17743368268,490.33921589034,505.98477744485,522.12955176559],description:"Fifth beats twice opposite rate as octave"},temp23ebs:{frequencies:[261.6255653006,269.54528659271,277.75645349026,286.26979186473,295.09642104593,304.24787054065,313.41421505132,322.9178815064,332.77128133421,342.98728793362,353.5792427091,364.56098080918,375.56059498003,386.96499273375,398.78907363541,411.04828247111,423.75862731373,436.93671323096,450.13624919654,463.82153026575,478.01042762353,492.72147385367,507.97388874722,523.2511306012],description:"Cycle of 23 equal beating major sixths"},temp24ebaf:{frequencies:[261.6255653006,269.28287293678,277.23083697142,285.33112867981,293.73889258015,302.30779732819,311.20195864933,320.26658492056,329.67528611807,339.26431305611,349.21731641877,359.36108127338,369.88988063787,380.8183283077,391.95623237686,403.5169050439,415.29914897519,427.52862168357,439.9924847314,452.92944495636,466.1143590732,479.79973930305,493.74741628009,508.22451419243,523.2511306012],description:"Cycle of 24 equal beating 11/8's"},temp24ebf:{frequencies:[261.6255653006,269.29177952703,277.18807786937,285.37455545576,293.58315284916,302.20762754558,311.09098010692,320.17688686519,329.5354160273,339.23795459232,349.23174343306,359.45337270909,369.98176018664,380.89707445632,391.84186131702,403.3411703213,415.18563115404,427.4653330282,439.77824302677,452.71493931339,466.03998256716,479.66882917609,493.70667148145,508.26043277122,523.2511306012],description:"24-tone ET with 23 equal beatings fifths. Fifth on 17 slightly smaller."},temp25ebt:{frequencies:[261.6255653006,269.07040607882,276.69392272178,284.50040351526,292.49424189123,300.67993013952,309.06207502162,317.64539198503,326.43470939254,335.74076076764,345.27015661764,355.02825763358,365.02055286832,375.25266439783,385.73034580726,396.45949385543,407.44613828076,419.07870286007,430.99044652419,443.18807578441,455.67844358274,468.46858279232,481.56568677979,494.97711759939,508.71042703507,523.2511306012],description:"Cycle of 25 equal beating thirds"},temp26eb3:{frequencies:[261.6255653006,268.53506427639,276.23413316293,283.52944261778,291.01742029734,298.70315454572,307.26715974579,315.38204761281,323.71124866952,332.26042290088,341.78653782772,350.81307822085,360.07800843467,370.40166886388,380.18393134541,390.22454217496,400.5303243006,412.0137801623,422.89501338113,434.06361862988,445.5271853685,458.30072684004,470.40439262311,482.82771472967,495.57913524385,509.78770018956,523.2511306012],description:"Cycle of 26 fifths, 5/4 beats three times 3/2"},temp26ebf:{frequencies:[261.6255653006,268.42568455944,275.6873347244,283.44184249631,290.6057533496,298.25588724353,306.42524452376,315.14906491362,323.2084665433,331.81486605817,341.00539333861,350.8196903474,359.88651586494,369.56871668171,379.90806097321,389.45994242989,399.66012078319,410.55259814459,422.18435687733,432.93022440227,444.40542617247,456.65946119637,469.74519313893,481.83429211771,494.74389287961,508.52968420524,523.2511306012],description:"Cycle of 26 equal beating fifths"},temp26ebmt:{frequencies:[261.6255653006,268.65375733515,276.22103845862,283.50786797993,291.35362426947,298.90860888253,307.04308924768,315.80151824033,324.23534814673,333.31608510092,342.06028051348,351.47518831899,360.54116941247,370.30254728737,380.81265974123,390.93325547321,401.83014055422,412.32317421544,423.62106542614,434.50024245702,446.21389528982,458.82603004394,470.97074536855,484.04700949484,496.63864979835,510.1961187079,523.2511306012],description:"Cycle of 26 equal beating minor thirds"},temp26ebs:{frequencies:[261.6255653006,268.70854008298,275.97438147252,283.42781183148,291.07367309004,298.91693448926,307.01176285104,315.31558194419,323.83378869523,332.57191674,341.53564330438,350.78687613393,360.27695513986,370.01204624828,379.9984780646,390.24273934583,400.81557597059,411.66137956276,422.7871998129,434.200265189,445.90799193987,457.99123299379,470.38643795716,483.10166179174,496.14516363988,509.5254229925,523.2511306012],description:"Cycle of 26 equal beating sevenths"},temp27c8:{frequencies:[261.6255653006,268.8683660761,273.88218275531,281.46429379013,289.25630678777,297.26403435806,305.49344487497,313.95067836072,319.80518189674,328.65861797738,337.75715313333,347.10756874671,356.7168418477,363.36884069528,373.42828707985,383.76621672426,394.39034225616,405.30858212106,412.86671295557,424.29645219584,436.04260883433,448.1139452722,460.51946086698,473.26841152735,482.09384659572,495.44005640506,509.15574351714,523.2511306012],description:"Cycle of 27 fifths tempered by 1/8 of difference between augm. 2nd and 5/4"},temp27eb2:{frequencies:[261.6255653006,268.46319812592,275.47953375729,282.6792426258,290.06711722511,297.6480770209,305.21714541248,313.19405229436,321.37943712173,329.77875040935,338.39757940759,347.00289091411,356.07187808578,365.37788286775,374.92710181611,384.72589137834,394.78077412888,404.81988946592,415.39993259502,426.25648711974,437.39677971686,448.82822593369,460.24174609969,472.27024976331,484.61312060812,497.27857467888,510.27504274822,523.2511306012],description:"Cycle of 27 fourths, 5/4 beats twice 4/3"},temp28ebt:{frequencies:[261.6255653006,268.20719354764,274.94677993062,281.84811597329,288.91508487862,296.15166190523,303.56191452522,311.15001492268,318.92023016627,326.87692943437,335.10396312415,343.5284476344,352.15511767098,360.98882840285,370.03454814671,379.29736707683,388.78249121135,398.49525813745,408.44113355924,418.72492751128,429.25553103998,440.03886948281,451.08100913788,462.38815755283,473.96667987616,485.82308640697,497.96404651665,510.39638953936,523.2511306012],description:"Cycle of 28 equal beating thirds"},temp29c14:{frequencies:[261.6255653006,268.03384168485,274.59908446169,281.12309545065,288.00894581307,294.85155418799,302.07367045706,309.47268578827,316.82523654187,324.58557784847,332.29718551084,340.4364979057,348.77517523396,357.06148706459,365.80737813473,374.49834647311,383.67133729641,392.78672100419,402.40767098088,412.26427490957,422.0589810157,432.39692561869,442.66994710331,453.51274088813,464.62111626441,475.65973015548,487.31057837675,498.88825560972,511.10806227553,523.2511306012],description:"Cycle of 29 fifths 1/14 comma positive"},temp29ebf:{frequencies:[261.6255653006,267.97141371953,274.40384216744,281.08918054527,287.86573007783,294.90872015661,302.04780073409,309.28428172011,316.80528774769,324.42890571749,332.35226986162,340.383734589,348.52477529448,356.98590767403,365.56247629567,374.47626314535,383.51165984234,392.90231649713,402.42108995343,412.06973029551,422.09773822292,432.26256191617,442.8270465847,453.53566813958,464.39038927288,475.67189906986,487.10732348594,498.99237046175,511.03956815915,523.2511306012],description:"Cycle of 29 equal beating fifths"},temp29fo:{frequencies:[261.6255653006,267.94780983951,274.42283293416,281.05432651499,287.84607006616,294.80193939197,301.92589896847,309.2220107369,316.69443479624,324.34743177532,332.18536334326,340.21270232633,348.43402388135,356.85401564372,365.47747852664,374.30932945854,383.35460418662,392.61845788025,402.10617708826,411.82316930666,421.77497497272,431.96726840975,442.4058610624,453.0967048103,464.04589268124,475.25967298378,486.74443697706,498.50673304697,510.55326782272,522.89091000079],description:"Fifth beats with opposite equal rate as octave"},temp31c51:{frequencies:[261.6255653006,267.17944246504,273.80687224646,279.61933836952,286.55534345926,292.63843680803,298.85066583755,306.26370726525,312.76517639908,319.40466275447,327.32754956004,334.27616903285,342.56794607269,349.84009583671,357.26662128823,366.1286782788,373.90098334082,383.17565840352,391.30984260196,399.61670205031,409.52926208827,418.22288720188,428.59697681668,437.69538032917,446.98692528774,458.07451174337,467.79867446983,477.72926229583,489.57941763243,499.97237729845,512.37427391379,523.2511306012],description:"Cycle of 31 51/220-comma tempered fifths (twice diff. of 31-tET and 1/4-comma)"},temp31coh:{frequencies:[261.6255653006,267.17903658035,272.71444919697,278.8328003927,286.67318542907,292.31259119845,298.22448926086,305.9625493141,312.79375273624,319.37019903425,325.99008611032,333.53448283298,342.55073731576,349.35067604096,356.49690427728,365.94514964733,373.94225818849,381.74854907994,389.68867781295,401.66236977474,409.34549662494,417.52928752537,426.20510506248,437.61344561246,447.02040600938,456.30467151405,466.17931462488,479.8608061495,489.18804557359,499.02680928636,509.58872491278,523.2511306012],description:"Differential coherent 31-tone scale, interval=8, OdC, 2003"},temp31eb1:{frequencies:[261.6255653006,267.35556661283,273.21106374578,279.19480525048,287.36432599524,293.65804565963,300.08960744161,306.66203029506,313.37839929357,320.24186707858,327.25565533923,334.42305632458,341.74743438901,349.23222958864,356.8809512704,367.32364464292,375.36859607341,383.58974428421,391.99094825517,400.57615379751,409.34938620036,418.31476585427,427.47650107887,436.83889236244,446.40633438056,459.46863260649,469.5317006585,479.81516534138,490.32385367952,501.06269841655,512.03674033076,523.2511306012],description:"Cycle of 31 thirds, 3/2 beats equal 5/4. Third 1/18 synt. comma higher"},temp31eb1a:{frequencies:[261.6255653006,267.52830363402,273.56421824856,279.73631545395,286.19123047598,292.64821393201,299.25087842544,306.00251077972,312.90647197491,319.96619882071,327.18520755731,334.56708808783,342.11551697966,349.83425186023,357.90667665031,365.98168819447,374.23888853079,382.68238383924,391.31637942763,400.14517332125,409.17316051655,418.40483516889,427.84479530109,437.49773526159,447.36846272566,457.69148927209,468.01782376277,478.57713873597,489.37469064597,500.41585743254,511.7061296998,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats equal 7/4"},temp31eb2:{frequencies:[261.6255653006,267.43633367564,273.37616065041,279.44791264824,286.8151286113,293.18536340431,299.69708268426,306.35342885652,313.15761412007,320.11292201761,327.22270902014,334.4904061467,341.91952062013,349.51363755953,357.2764217104,366.69546492458,374.83986170174,383.16514754137,391.67534003419,400.37454600262,409.26696348258,418.35688374945,427.64869338884,437.14687641357,446.85601642745,458.63669049374,468.82312458207,479.23580188553,489.87974732177,500.7600974131,511.88210276525,523.2511306012],description:"Cycle of 31 thirds, 3/2 beats twice 5/4"},temp31eb2a:{frequencies:[261.6255653006,267.30377559621,273.10522335955,279.03258328435,287.71713441117,293.9616250555,300.34164347605,306.86013111019,313.520093235,320.3246003528,327.27678960683,334.37986622751,341.63710501026,349.05185182525,356.62752721996,367.72712485201,375.70811839104,383.86232802855,392.19351543866,400.70551714108,409.40225971792,418.28775270674,427.36609266644,436.64146506587,446.11814621352,460.00303307438,469.98674378481,480.18713671772,490.60891465214,501.25688243424,512.13594919255,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats twice 3/2"},temp31eb2b:{frequencies:[261.6255653006,267.52098517401,273.5492512983,279.71335720518,286.24081966732,292.69091492047,299.28635537219,306.03041620307,312.92644639599,319.97787039914,327.18818982659,334.56098519707,342.09991771207,349.80873107384,357.97195918064,366.0384300542,374.28666922186,382.72077261519,391.34492846269,400.16341936959,409.18062444454,418.40102147414,427.82918914659,437.46980932536,447.32766937413,457.76662230541,468.08184681118,478.62951259033,489.41485742956,500.44323714283,511.72012823096,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats twice 7/4 (7/4 beats twice 5/4 gives 31-tET)"},temp31ebf:{frequencies:[261.6255653006,267.58895287558,273.47207673981,279.84020613447,286.1226232561,292.32048149598,299.02929415269,305.64780689513,312.81195283539,319.87967238294,326.85226402826,334.39967773649,341.84550545999,349.90516819854,357.85635261941,365.7005167875,374.19135817901,382.56791460144,390.83172556312,399.77680617055,408.60149248083,418.153686518,427.57731316062,436.87410111252,446.93731687602,456.86508723973,467.61130449655,478.21288647115,488.67177324268,499.99289085438,511.16163412976,523.2511306012],description:"Cycle of 31 equal beating fifths"},temp31ebf2:{frequencies:[261.6255653006,268.47208070676,273.9410776603,281.1098810272,286.83632036086,292.67941197057,300.33857976184,306.45672349367,312.69950064833,320.88257689406,327.41921873353,335.98749730659,342.8318387903,349.81560715632,358.96997989875,366.28249344322,375.86779039798,383.5245262314,391.33723606718,401.57819634767,409.75867428285,420.48170539436,429.04726334649,437.78730875453,449.24382765192,458.39529367535,467.73318258368,479.97335657757,489.75080836323,502.56716753771,512.80487382351,523.2511306012],description:"Cycle of 31 fifths, 3/2 beats equal 7/4"},temp31ebs:{frequencies:[261.6255653006,267.49970467488,273.5255021102,279.70687352555,286.04783307233,292.55250379055,299.22511217624,305.93841412724,312.82503848113,319.88946348152,327.13627425327,334.57018402367,342.19602042672,349.86836735032,357.73879552978,365.81242398075,374.09449397971,382.59039112658,391.30563169636,400.0740276901,409.06880268892,418.29580572823,427.76103041037,437.4706255228,447.4309015606,457.4519243295,467.73166961576,478.27681510244,489.09421437332,500.19089295757,511.57406697079,523.2511306012],description:"Cycle of 31 equal beating sevenths"},temp31ebs1:{frequencies:[261.6255653006,267.15774161678,272.80689957055,278.57550963341,287.00766304701,293.07655388437,299.27377555355,305.60203820353,312.06411627904,318.6628357552,328.30838543699,335.25059642555,342.33960321815,349.5785118895,356.97048813578,364.51877275634,375.55232561156,383.49353066309,391.60265342908,399.88324912115,408.33893898267,416.9734277591,429.59472356821,438.6786743379,447.954711436,457.42689142912,467.09936712211,476.97636845082,491.41388278482,501.80502418824,512.41589335668,523.2511306012],description:"Cycle of 31 sevenths, 3/2 beats equal 7/4. 17/9 schisma fifth"},temp31ebs2:{frequencies:[261.6255653006,267.52957387699,273.56681763873,279.74030009523,286.13080593576,292.58781532731,299.19053769144,305.94226304679,312.84635035505,319.90623967996,327.21431324819,334.59843914397,342.14920188821,349.87035796113,357.76575454309,365.83932576918,374.19671203989,382.64107477964,391.27599615891,400.10577865514,409.13482199124,418.3676180873,427.92498506647,437.58181190976,447.45656083737,457.55415226032,467.87960969795,478.43807796233,489.36771995709,500.41110255739,511.70370009509,523.2511306012],description:"Cycle of 31 sevenths, 3/2 beats twice 7/4. Almost 31-tET"},temp31ebsi:{frequencies:[261.6255653006,267.31506098272,273.2139312212,279.32987994092,285.67089487749,292.24525964349,299.06156112772,306.12870201667,312.71376833043,319.5411631371,326.61980701828,333.95894503443,341.56816427739,349.45740040562,357.63696227352,366.11753111539,374.01961057916,382.2124855973,390.7068565555,399.51382386635,408.64488423766,418.11197066674,427.92744450622,438.10412760018,447.58662182594,457.41807184609,467.61131789159,478.17967690081,489.136951815,500.49745466086,512.27602199232,523.2511306012],description:"Cycle of 31 equal beating major sixths"},temp31ebt:{frequencies:[261.6255653006,267.508686718,273.53300221315,279.70190221389,286.0188552526,292.48741633838,299.11122072338,305.89399777728,312.83956126154,319.95181832117,327.23477005018,334.588671338,342.11906613961,349.83019225353,357.72638299858,365.81208378543,374.09184045976,382.57031224079,391.25226584136,400.14258695229,409.24627647794,418.43865241641,427.85164834976,437.49055334209,447.36079317794,457.46791872903,467.81761394993,478.41570188597,489.26814549043,500.38104816704,511.76065992154,523.2511306012],description:"Cycle of 31 equal beating thirds"},temp31g3:{frequencies:[261.6255653006,266.21023205793,270.87523947024,275.62199471997,289.25983723073,294.32876096318,299.48651076576,304.73464409936,310.07474405997,315.5084236529,331.11985608357,336.92232427465,342.82647426905,348.83408706747,354.94697625466,361.16698614085,379.03761443004,385.6797831671,392.4383479509,399.31534788729,406.31285900225,413.43299207996,433.88975562921,441.49314144476,449.22976592409,457.10196592055,465.11211608996,473.26263524279,496.67978412536,505.38348615935,514.23971114652,523.2511306012],description:"Wonder Scale, cycle of 31 sevenths tempered by 1/3 gamelan residue, s.wonder1"},temp31g4:{frequencies:[261.6255653006,266.75106828164,271.97698492363,277.30528403104,287.97116616014,293.61280545832,299.36497003718,305.22982618403,311.20958045219,317.30648321666,329.51091606373,335.96636137331,342.54827390456,349.25913259695,356.10146388137,363.07784268567,377.0427625798,384.42940207435,391.96075366681,399.63965159508,407.46898671086,415.4517078616,431.43106138252,439.88322158593,448.50096908674,457.28754710584,466.24626137824,475.38048570318,493.66485502092,503.33623955776,513.19709315346,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/4 gamelan residue"},temp31g5:{frequencies:[261.6255653006,267.07609791103,272.64018328418,278.3201871026,287.20071989568,293.1840695693,299.2920706603,305.52732176658,311.89247392994,318.39023342226,328.54930692245,335.39408374843,342.38146206091,349.5144087687,356.79595852417,364.22920722399,375.85089312601,383.68111960674,391.67447579625,399.83436022994,408.16424460367,416.66766586736,429.96253800336,438.92009035289,448.06425836543,457.39892986705,466.92807368021,476.65574406444,491.86469103391,502.11187209711,512.57253609913,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/5 gamelan residue"},temp31g6:{frequencies:[261.6255653006,267.29300481931,273.08321314304,278.9988528944,286.68823620156,292.89859205665,299.24348036203,305.72581270733,312.34856974117,319.11478979112,327.9097940226,335.01310892782,342.27029731995,349.68469585889,357.2597060542,364.99881126821,375.05840734677,383.18307527508,391.48374080678,399.96422099622,408.62840644009,417.48028065389,428.98629965513,438.27917301224,447.77335490729,457.47320099372,467.3831713443,477.50781354513,490.66822826519,501.2972832058,512.15658610391,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/6 gamelan residue"},temp31g7:{frequencies:[261.6255653006,267.44804485495,273.40010374961,279.48462577409,286.32273545638,292.69485077785,299.20877758909,305.86767190621,312.6747599825,319.63333987564,327.45376040978,334.74124806474,342.19091885571,349.80638115363,357.59132564064,365.54952414453,374.49336901227,382.82772265927,391.34755742947,400.0570012071,408.96027492626,418.06169111145,428.2903432132,437.821949061,447.565680886,457.52625955954,467.70851101039,478.11736856842,489.81539667363,500.71624319167,511.85968815724,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/7 gamelan residue"},temp31h10:{frequencies:[261.6255653006,267.8597617245,273.71072489962,279.68949451567,286.35413084244,292.60907359238,299.00064605783,306.12544311476,312.81225819702,320.26616683613,327.26186315247,334.41036913783,342.37893460431,349.85764856047,358.19430059608,366.01847563765,374.01355928612,382.92581520849,391.29021017831,400.61414686654,409.36491649663,418.30683086326,428.27453775026,437.62950220286,447.18881072031,457.84473927605,467.84561789912,478.99376955124,489.45661357347,500.14800438647,512.06587983104,523.2511306012],description:"Cycle of 31 fifths tempered by 1/10 Harrison's comma"},temp31h11:{frequencies:[261.6255653006,269.21878403965,274.22153683641,279.31725480271,287.42394184039,292.76499331753,298.20529308835,306.86017365004,312.56239683413,321.63396690808,327.61072570921,333.69854562169,343.38355445704,349.7644731902,359.91576765193,366.60389537541,373.41630725864,384.25405432087,391.39444778107,402.75397853578,410.23814647641,417.86138882164,429.98907567166,437.9793418028,446.11808436842,459.06587176894,467.59645436585,481.16761342105,490.10890120058,499.21634316923,513.70521350358,523.2511306012],description:"Cycle of 31 fifths tempered by 1/11 Harrison's comma"},temp31h12:{frequencies:[261.6255653006,270.35656674398,274.64794212014,279.0074329748,288.31850430385,292.89498819461,297.54411640065,307.47379627264,312.35433239663,322.77826253379,327.90172667751,333.10651564349,344.2229903876,349.68684701428,361.35664068489,367.0924599966,372.91932620731,385.3644371109,391.48133253101,404.54589939324,410.96726244836,417.49055189439,431.4231018689,438.27108715714,445.22777061734,460.08596806997,467.38892215786,482.98668436162,490.65313915878,498.44128370652,515.07533168556,523.2511306012],description:"Cycle of 31 fifths tempered by 1/12 Harrison's comma"},temp31h8:{frequencies:[261.6255653006,264.15772162327,272.31089540773,280.71571360382,283.4326348965,292.18072491748,301.19882119914,304.11398928909,313.50040506268,316.53463456122,326.30440921209,336.37572681506,339.63135730234,350.11400731728,353.50260556257,364.41338872146,375.66093089504,379.29678648678,391.00370158472,394.788050771,406.97310157871,419.5342415638,423.59472503043,436.668886633,450.14658206855,454.50334862767,468.53149836075,473.06620699858,487.66729542944,502.71904336675,507.58463809481,523.2511306012],description:"Cycle of 31 fifths tempered by 1/8 Harrison's comma"},temp31h9:{frequencies:[261.6255653006,266.20804854623,273.08769296879,280.14512719472,285.05198845745,292.41861893027,299.97562432697,305.22982618403,313.11791376428,318.60230743232,326.83598255713,335.28243953396,341.15505431438,349.97156260351,356.10146388137,365.30423365264,374.74482972428,381.30864508241,391.16284711627,398.01423104415,408.30015740759,418.85190169901,426.18827121524,437.20230245522,448.50096908674,456.35665612784,468.15032961482,476.35018210031,488.66055322307,501.28905975035,510.06935121341,523.2511306012],description:"Cycle of 31 fifths tempered by 1/9 Harrison's comma"},temp31ms:{frequencies:[261.6255653006,267.90457886781,273.56603860918,280.13162379381,286.05147140959,292.91670530125,299.10673210371,306.2852939563,312.75782903301,320.26401722477,327.03195662575,334.88072358477,341.95754947331,350.16453098318,357.56433846376,366.14588292411,373.88341429498,382.85661659068,390.94728541851,400.33002063726,408.78994578219,418.60090448096,427.44693588739,437.70566275183,446.9554220819,457.68235263341,467.35426952494,478.57076966998,488.68410850494,500.41252756995,510.98743222773,523.2511306012],description:"Cycle of 31 5th root of 5/4 chromatic semitones"},temp31mt:{frequencies:[261.6255653006,267.90457886781,274.33428876064,280.9183116909,285.65057792122,292.50627485027,299.52642572255,306.71505845072,314.07622014281,319.36714514233,327.03195662575,334.88072358477,342.9178609508,351.14788961362,359.57543896435,365.63273925968,374.40803131735,383.39382442208,392.5952765698,402.01756125559,408.78994578219,418.60090448096,428.6473261885,438.93486201703,449.46929870544,457.04092569426,468.01003810189,479.24227945773,490.7440946167,502.52195335034,510.98743222773,523.2511306012],description:"Cycle of 31 square root of 5/4 meantones"},temp31to:{frequencies:[261.6255653006,267.53589118464,273.57973594714,279.76011588387,286.08011543105,292.54288870475,299.15166280294,305.90973254237,312.82047235615,319.88733118052,327.11383586587,334.50359293692,342.06029039257,349.78769954651,357.68967690936,365.77016611333,374.03319988033,382.48290424395,391.12349182016,399.95927701915,408.9946695077,418.23417857039,427.68241536008,437.34409519915,447.22403993284,457.32718033558,467.65855857191,478.22333071276,489.02676930874,500.07426891005,511.37133726836,522.92361522538],description:"Third beats with opposite equal rate as octave"},temp31w10:{frequencies:[261.6255653006,267.37376533775,273.24825962152,279.25182297475,287.24047076273,293.55146000581,300.00110689476,306.59245933664,313.32863150945,320.21280450383,327.24823031411,334.4382321302,341.78620813039,349.29562523194,356.97015906904,367.18199034811,375.24938058245,383.49402021056,391.91980359563,400.53071066429,409.33081115087,418.32425711308,427.51529892703,436.90827798988,446.50763144636,459.28102021135,469.37192694062,479.68454193593,490.22373920221,500.99449133668,512.00188868489,523.2511306012],description:"Cycle of 31 thirds tempered by 1/10 Wuerschmidt comma"},temp31w11:{frequencies:[261.6255653006,267.42197848694,273.34681181717,279.40291364591,286.91265577589,293.26931399985,299.76680465545,306.40825140143,313.19684009872,320.13583435099,327.22856275086,334.47843511672,341.88893114233,349.46360748692,357.20610515709,366.80702823839,374.93377645155,383.2405741708,391.73141324262,400.41036830387,409.28161120445,418.34939984118,427.61808628905,437.09212645494,446.77606497733,458.78443573652,468.94897543376,479.33871705477,489.95864449434,500.81386326642,511.90958055231,523.2511306012],description:"Cycle of 31 thirds tempered by 1/11 Wuerschmidt comma"},temp31w12:{frequencies:[261.6255653006,267.46216197987,273.42896553533,279.52888390694,286.63976159726,293.03439921138,299.57169286871,306.25482853931,313.08705807777,320.0717057658,327.2121755928,334.51194000906,341.9745565771,349.60365642833,357.40295156876,366.49485373999,374.67097398132,383.02949720151,391.57448819698,400.31011139524,409.24061734241,418.37035125513,427.70376253715,437.24539007841,446.99988402026,458.37102198078,468.59680699416,479.0507177135,489.73784363297,500.66339010461,511.83267129957,523.2511306012],description:"Cycle of 31 thirds tempered by 1/12 Wuerschmidt comma"},temp31w13:{frequencies:[261.6255653006,267.49616787535,273.49850059869,279.63551774138,286.40905375482,292.83577174957,299.40669857094,306.12507001426,312.99419468163,320.01745343487,327.19830857776,334.54029455907,342.04702698539,349.72220057363,357.56974544479,366.23091133098,374.44874787361,382.85098402684,391.44175752404,400.22529663315,409.2059314354,418.38808223908,427.77627085136,437.37511801764,447.18935574711,458.02150335998,468.29902426597,478.80716193382,489.55109116118,500.53609997149,511.7676037195,523.2511306012],description:"Cycle of 31 thirds tempered by 1/13 Wuerschmidt comma"},temp31w14:{frequencies:[261.6255653006,267.52531966849,273.55811412425,279.72695193191,286.21145362846,292.66562728487,299.26534666214,306.01389218024,312.91461811683,319.97095981222,327.18642276261,334.56459899164,342.10915585471,349.82384327668,357.71250180664,366.00482869479,374.25837321367,382.69803863807,391.32802257119,400.15261355898,409.17620468607,418.4030501472,427.83842920638,437.48634583318,447.35182400506,457.72212848121,468.04393370572,478.5984967348,489.39107187298,500.42702361787,511.71183724724,523.2511306012],description:"Cycle of 31 thirds tempered by 1/14 Wuerschmidt comma"},temp31w15:{frequencies:[261.6255653006,267.55058630145,273.60979095449,279.80621811014,286.0403087015,292.51824916652,299.142895223,305.91756930507,312.84566908988,319.93066920159,327.176122954,334.58566413263,342.16300881716,349.91195724514,357.83639571789,365.80900091179,374.09345893182,382.56553686518,391.22947931103,400.08963362509,409.15044340767,418.41645289306,427.89230922859,437.58276480531,447.49267964143,457.46282942114,467.82296651709,478.41773025336,489.25243249537,500.33250769337,511.66351279634,523.2511306012],description:"Cycle of 31 thirds tempered by 1/15 Wuerschmidt comma, almost 31-tET"},temp31w8:{frequencies:[261.6255653006,267.24122592191,272.97742543896,278.83674800471,288.14389744169,294.32876096318,300.64638059818,307.09960331181,313.69134300364,320.42456924675,327.30232268102,334.32770172848,341.50387698892,348.83408706747,356.32163474066,368.21511264804,376.11866406852,384.19186344763,392.4383479509,400.86184099795,409.46613795376,418.25512179799,427.23275920923,436.40309460541,445.77026919414,460.64940473745,470.53701427025,480.63685362987,490.95348377613,501.49155234204,512.25581818623,523.2511306012],description:"Cycle of 31 thirds tempered by 1/8 Wuerschmidt comma"},temp31w9:{frequencies:[261.6255653006,267.31485098896,273.12785536516,279.06726965397,287.64164332106,293.89667226994,300.28772424256,306.81775371411,313.48978461115,320.30690488373,327.27226963218,334.38910256736,341.66069947616,349.09042189481,356.68171037974,367.64079770339,375.63548096925,383.80401588848,392.15018302326,400.67784514756,409.39095139962,418.29352970104,427.38970265849,436.68368016368,446.1797636563,459.88868900496,469.88938665048,480.10755840871,490.54793493862,501.21534712998,512.11473036853,523.2511306012],description:"Cycle of 31 thirds tempered by 1/9 Wuerschmidt comma"},temp32ebf:{frequencies:[261.6255653006,266.99024669658,272.64192755012,278.59596223891,284.86852586219,291.47665855944,298.4383110444,304.47357861204,310.83171904039,317.53000821614,324.58664278196,332.02079024875,339.85265231199,346.64232633314,353.79523650997,361.33080945807,369.26952339658,377.6329406438,386.44378308989,395.72598875513,403.77301123196,412.25053247262,421.18158418009,430.59042797451,440.50262726312,450.945108697,459.9980085603,469.53522100534,479.58265227668,490.16760508681,501.31882698223,513.0666164148,523.2511306012],description:"Cycle of 32 equal beating fifths"},temp33a12:{frequencies:[261.6255653006,266.94139439278,272.36523138282,277.89927397158,284.73748648557,290.5229142688,296.42589304627,302.44880952638,308.5941041528,316.1876182869,322.61206437627,329.16704532903,335.85521147284,342.67927280589,351.11151394887,358.24555988319,365.52455654698,372.95145333883,382.12859604556,389.89286138208,397.81488464837,405.89786889835,414.14508930077,424.3358756666,432.95772800787,441.75476312782,450.73053786756,459.88868900496,471.20507923536,480.77924170569,490.54793493862,500.51511311891,512.83118959171,523.2511306012],description:'Cycle of 33 fifths tempered by 1/12 "11 fifths" comma'},temp34eb2a:{frequencies:[261.6255653006,267.30377714022,273.10522651459,279.03258811962,285.08859470169,291.27603831759,293.96161656556,300.34163653669,306.86012579271,313.52008961307,320.32459850253,327.27678960683,334.37986815896,341.63710895701,349.05185787385,356.62753339984,364.36762821878,372.27571081823,375.70810971034,383.86232137672,392.19350864246,400.70551251195,409.40225735312,418.28775270674,427.36609513501,436.64147011015,446.11815394416,455.80051576031,465.69301950749,469.98673021106,480.18712562304,490.60890615053,501.2568766435,512.13594623433,523.2511306012],description:"Cycle of 34 thirds, 5/4 beats twice 3/2"},temp34ebsi:{frequencies:[261.6255653006,266.99788221884,272.57696520339,278.14698300137,283.93137567849,289.70637009331,295.70363067102,301.69114426564,307.90910207865,314.36637542255,320.81315450625,327.50805511637,334.19207543599,341.13334896852,348.06334108321,355.26005273528,362.44506998142,369.90662102486,377.65534755435,385.39148338011,393.42536256589,401.44618836017,409.77571602141,418.09170597447,426.72775997548,435.3497813463,444.30364141769,453.60211446558,462.88547695756,472.52613162558,482.15112257833,492.14655599832,502.125745683,512.48900933996,523.2511306012],description:"Cycle of 34 equal beating major sixths"},temp34ebt:{frequencies:[261.6255653006,266.93199967636,272.36578831151,277.92998813547,283.62773001764,289.46221547291,295.43672985114,301.55463262869,307.81936583026,314.23445063866,320.80349820247,327.5302045997,334.16324661664,340.95548417522,347.91073392156,355.03290870525,362.32601803901,369.79415983503,377.44153922514,385.2724539348,393.29131162714,401.50262139782,409.91100286066,418.20230551726,426.69260242977,435.3866631899,444.28938530291,453.40576935587,462.74094691381,472.3001707563,482.08881469934,492.11238732973,502.37652397446,512.8870010249,523.2511306012],description:"Cycle of 34 equal beating thirds"},temp34w10:{frequencies:[261.6255653006,267.37376533775,273.24825962152,279.25182297475,281.06516151868,287.24047076273,293.55146000581,300.00110689476,306.59245933664,313.32863150945,320.21280450383,327.24823031411,334.4382321302,341.78620813039,349.29562523194,351.5637974276,359.28803828513,367.18199034811,375.24938058245,383.49402021056,391.91980359563,400.53071066429,409.33081115087,418.32425711308,427.51529892703,436.90827798988,446.50763144636,449.40705529895,459.28102021135,469.37192694062,479.68454193593,490.22373920221,500.99449133668,512.00188868489,523.2511306012],description:"Cycle of 34 thirds tempered by 1/10 Wuerschmidt comma"},temp34w5:{frequencies:[261.6255653006,266.84400329087,272.16653090376,277.59522118835,285.18293865736,290.87125860088,296.67303727804,302.5905394405,308.62607485572,314.78199505921,321.06070411799,327.46464776022,333.99632772474,340.65828815182,347.45313114562,356.95032497057,364.07013256472,371.33195122039,378.73861781039,386.29301712643,393.99809806388,401.85686830172,409.8723892274,418.04779164423,426.38625992488,434.89105154177,443.56547936435,455.68978545099,464.77906877635,474.04965097839,483.50514461458,493.14924173292,502.98569917153,513.01835960126,523.2511306012],description:"Cycle of 34 thirds tempered by 1/5 Wuerschmidt comma"},temp34w6:{frequencies:[261.6255653006,267.02047390967,272.52663052146,278.06968704778,283.80368699438,289.65592453275,295.6288411546,301.72492193478,307.94670831505,314.29679425134,320.77782174252,327.39249271371,334.14356492035,341.03384719449,348.06621207862,355.14570764395,362.46906930947,369.94344613252,377.57194788125,385.35775486011,393.30411308867,401.41432870635,409.69178284295,418.13992649314,426.76227456772,435.56242170336,444.42154779224,453.58584388327,462.93911228358,472.48525217168,482.22824196207,492.17213857029,502.32108537715,512.67931193931,523.2511306012],description:"Cycle of 34 thirds tempered by 1/6 Wuerschmidt comma"},temp34w7:{frequencies:[261.6255653006,267.14659557842,272.78413659373,276.97759061533,282.82259314675,288.79093992594,294.88523549471,301.10813946365,307.46236235072,313.95067836072,320.57591524951,327.34096447962,334.24877325582,341.30235609413,348.50479124753,353.86228320674,361.3297679824,368.9548354601,376.74081403286,384.69109896591,392.80915578714,401.0985286019,409.56282802254,418.20574780595,427.03105980737,436.04260883433,442.74580331919,452.08897683944,461.62931955889,471.37098776125,481.31823237599,491.47539447856,501.84689823661,512.43727265667,523.2511306012],description:"Cycle of 34 thirds tempered by 1/7 Wuerschmidt comma"},temp34w8:{frequencies:[261.6255653006,267.24122592191,272.97742543896,276.16133434798,282.08899791039,288.14389744169,294.32876096318,300.64638059818,307.09960331181,313.69134300364,320.42456924675,327.30232268102,334.32770172848,341.50387698892,348.83408706747,352.90276052629,360.47764004221,368.21511264804,376.11866406852,384.19186344763,392.4383479509,400.86184099795,409.46613795376,418.25512179799,427.23275920923,436.40309460541,441.49314144476,450.96957067185,460.64940473745,470.53701427025,480.63685362987,490.95348377613,501.49155234204,512.25581818623,523.2511306012],description:"Cycle of 34 thirds tempered by 1/8 Wuerschmidt comma"},temp34w9:{frequencies:[261.6255653006,267.31485098896,273.12785536516,279.06726965397,281.5197407082,287.64164332106,293.89667226994,300.28772424256,306.81775371411,313.48978461115,320.30690488373,327.27226963218,334.38910256736,341.66069947616,349.09042189481,352.15826244648,359.81626391233,367.64079770339,375.63548096925,383.80401588848,392.15018302326,400.67784514756,409.39095139962,418.29352970104,427.38970265849,436.68368016368,440.52130132575,450.10083737825,459.88868900496,469.88938665048,480.10755840871,490.54793493862,501.21534712998,512.11473036853,523.2511306012],description:"Cycle of 34 thirds tempered by 1/9 Wuerschmidt comma"},temp35ebsi:{frequencies:[261.6255653006,266.57889315685,271.71450319234,277.03910343536,282.55964921963,288.28335166643,294.21768457231,300.3704033182,306.74954035112,312.48255822683,318.42655208483,324.58928450704,330.97880464114,337.6034601246,344.47190142434,351.59310182482,358.97636423712,366.63132974323,373.51095055492,380.64374131787,388.03901984907,395.70644562254,403.65603146762,411.89816253905,420.4436041444,429.30351656419,438.48947534443,446.74502047858,455.30437022365,464.17870575399,473.37961532931,482.91911915131,492.80967579032,503.06420520117,513.69610107468,523.2511306012],description:"Cycle of 35 equal beating major sixths"},temp37ebs:{frequencies:[261.6255653006,266.54882370674,271.76117582243,276.81154351547,282.15846820925,287.3392230449,292.82419544994,298.13870690002,303.76528724985,309.7222634282,315.49411047005,321.60488016898,327.52574544851,333.79428377068,339.86801168664,346.29839044807,353.1063601343,359.70275861181,366.68649693083,373.45319917734,380.61724149647,387.55864668979,394.907650003,402.68818871569,410.22692643911,418.2083422233,425.94171605945,434.12919568644,442.06222705415,450.46108885682,459.35313199837,467.96883572953,477.09045247204,485.92859505436,495.28571063961,504.35203618851,513.95073426779,523.2511306012],description:"Cycle of 37 equal beating sevenths"},temp37ebt:{frequencies:[261.6255653006,266.44794669373,271.38606435347,276.44269655507,281.62068893017,286.92295259461,292.35247205526,297.91229840101,303.60556084342,309.43546158348,315.40528084,321.51837488336,327.7781831369,333.8061589736,339.9788066307,346.29959662983,352.77208770341,359.39991652139,366.18681567584,373.13659908053,380.25317623321,387.54055229398,395.00282568127,402.64419215928,410.46895395112,418.00392297279,425.71973353547,433.62072344005,441.71133574434,449.99612361773,458.47974493329,467.16697490003,476.06269518051,485.17191513214,494.49975815874,504.05146656861,513.83241864047,523.2511306012],description:"Cycle of 37 equal beating thirds"},temp3ebt:{frequencies:[261.6255653006,330.24866439584,416.02753826489,523.2511306012],description:"Cycle of 3 equal beating thirds"},temp4ebmt:{frequencies:[261.6255653006,310.36356181711,368.84915763691,439.03187262068,523.2511306012],description:"Cycle of 4 equal beating minor thirds"},temp4ebsi:{frequencies:[261.6255653006,310.92686529443,370.08842528703,441.08229727815,523.2511306012],description:"Cycle of 4 equal beating major sixths"},temp53ebs:{frequencies:[261.6255653006,264.97369574946,268.51842903659,272.2713107977,275.7058824095,279.342132921,283.19190440533,286.71515038985,290.44528277978,294.39444663109,298.00865518834,301.83509073593,305.88621462445,310.17522146598,314.10044576101,318.25616227247,322.65590013911,326.68246801001,330.94547393755,335.45880590636,339.58933056423,343.96239778214,348.59225483118,353.4939765515,357.97994689961,362.72933676467,367.75761084241,372.35940104854,377.23140801172,382.38950169412,387.11009989437,392.10789272021,397.3991578827,403.00112480292,408.12795020911,413.55582307376,419.3024201087,424.56160969567,430.12961973912,436.02458225248,441.41955172249,447.13131541518,453.17847579573,459.58072182695,465.43995070361,471.64323472325,478.21077610462,484.22127701861,490.5847168482,497.32181757346,503.48749858841,510.01522804676,516.92626488088,523.2511306012],description:"Cycle of 53 equal beating harmonic sevenths"},temp53ebsi:{frequencies:[261.6255653006,265.08815342092,268.54511416675,272.14096825888,275.73097879106,279.31515577755,283.04333763043,286.76545980208,290.48153462492,294.34691329876,298.20601137227,302.05883614112,306.06646174912,310.06757319581,314.22944103195,318.38454699407,322.53289853772,326.84792360782,331.1559371129,335.45694960827,339.93076775401,344.39731584765,348.85660497561,353.49505873963,358.12597594237,362.74936749482,367.55851619873,372.35985057275,377.35409330215,382.34021841275,387.3182413058,392.49627136254,397.66588656991,402.8271015422,408.19568270781,413.55554119639,418.90668980097,424.47283359145,430.02993471298,435.57800299537,441.34898312942,447.11058430799,453.10367443873,459.08702461554,465.06065502782,471.27428848056,477.47782740925,483.67128540638,490.11358366391,496.54541154487,502.96678854317,509.64616466331,516.31468511822,523.2511306012],description:"Cycle of 53 equal beating major sixths"},temp53ebt:{frequencies:[261.6255653006,265.06408390481,268.61942739596,272.14046995187,275.78114176924,279.3866896354,283.11473715719,286.8068186786,290.62433945466,294.40503066492,298.31417332138,302.18560037327,306.18856199636,310.15290198883,314.25193588094,318.31142144389,322.50883104059,326.66574402863,330.9638909587,335.40807143415,339.80937339101,344.36021509659,348.86714800611,353.52720940583,358.14231011275,362.91421253104,367.64007568808,372.5265022753,377.36578530136,382.3694885676,387.32491504393,392.44870495902,397.52306357866,402.76982394565,407.96596497751,413.33865052838,418.89387526617,424.39550434456,430.08405345947,435.71772111176,441.54279782575,447.31167294612,453.27655186057,459.18388087721,465.29191391782,471.34101945319,477.59564801313,483.78993007475,490.19466758193,496.53761595054,503.09606844751,509.59124455492,516.30709807412,523.2511306012],description:"Cycle of 53 equal beating thirds"},temp57ebs:{frequencies:[261.6255653006,264.8277951114,268.04955507264,271.33445958124,274.63939933433,278.00911284632,281.39937814535,284.85609135359,288.33388628378,291.8798428433,295.4474281527,299.08493440323,302.74462553584,306.42663750246,310.18081323211,313.95788745209,317.80898926922,321.68357852782,325.63410692083,329.60872876069,333.66125215256,337.73849074816,341.89564167341,346.07814569972,350.28615866377,354.57664765081,358.89330206442,363.2945606359,367.72266219717,372.23755268366,376.77997919433,381.41143316036,386.07113633698,390.82216502962,395.60217018381,400.41132814233,405.3147417445,410.24806349136,415.27807310888,420.33876095689,425.4986359826,430.68997922537,435.98307052812,441.30844296951,446.73819252663,452.20105472878,457.69723413281,463.30113726238,468.93921588924,474.68780077646,480.47144432851,486.36844238798,492.30140788993,498.35065469266,504.4367956254,510.6422225112,516.88549425379,523.2511306012],description:"Cycle of 57 equal beating harmonic sevenths"},temp59ebt:{frequencies:[261.6255653006,264.71774803536,267.84005552541,271.00645194849,274.20369404321,277.44608402629,280.72006081878,284.04026812198,287.39281927261,290.79271098314,294.22572486522,297.70721418515,301.22261902261,304.78766466692,308.38743972219,312.03804524126,315.72421513091,319.46243532331,323.23707283878,327.06501147453,330.93024062011,334.83312418563,338.79111909993,342.78767359614,346.84065928187,350.93313112856,355.08338946648,359.27407840069,363.52394351295,367.81521017702,372.16707169716,376.56132871014,381.01763522853,385.51735474883,390.08061088885,394.68832388107,399.36109834092,404.07939600279,408.86431870994,413.69585627072,418.57446131049,423.52195428502,428.51764625978,433.58387848862,438.69946807471,443.88729218006,449.12565432864,454.4379830027,459.80206875391,465.24189440938,470.73471441434,476.30509804765,481.92974808423,487.63381799831,493.39345924022,499.23442935246,505.13230099895,511.11345315981,517.15287439575,523.2511306012],description:"Cycle of 59 equal beating thirds"},temp5ebf:{frequencies:[261.6255653006,300.99242152138,345.28013476976,397.76927639746,456.81956072863,523.2511306012],description:"Cycle of 5 equal beating fifths"},temp5ebs:{frequencies:[261.6255653006,300.72264357012,345.40501873528,396.4705903526,454.83124362955,523.2511306012],description:"Cycle of 5 equal beating harmonic sevenths"},temp6:{frequencies:[261.6255653006,292.50629174609,327.17562781541,373.91502405318,418.23333786749,467.5991148023,523.2511306012],description:"Tempered wholetone scale with approximations to 5/4 (4), 7/5 (4) and 7/4 (1)"},temp65ebf:{frequencies:[261.6255653006,264.41601755103,267.24454169377,270.11165630441,273.01788702098,275.96376822181,278.903505094,281.88335012505,284.90384796088,287.96555727487,291.06903608099,294.16604397209,297.30530343106,300.48739162418,303.71289539257,306.98240612292,310.29652144782,313.60372560746,316.95605020285,320.35411162765,323.7985328567,327.28994911888,330.77408078649,334.30574717623,337.88559766085,341.51429052286,345.19248907458,348.92086961342,352.64147345074,356.41283883338,360.23565716142,364.11063345825,368.0384739541,371.95812372083,375.93124824951,379.95858022583,384.04085801267,388.17883226226,392.30817269042,396.49385281186,400.73664000181,405.03730976228,409.39665754461,413.81548025993,418.22508312451,422.69484912531,427.22559773342,431.81816208034,436.47338166162,441.11888946365,445.82778005125,450.60091414809,455.43916939942,460.34343547357,465.31460883154,470.27541574397,475.30390033467,480.4009926512,485.56762723834,490.80474851567,496.03094699932,501.32844669322,506.69822455894,512.14126217109,517.65855736571,523.2511306012],description:"Cycle of 65 equal beating fifths"},temp65ebt:{frequencies:[261.6255653006,264.43406811535,267.2034679247,270.07937559507,272.91523803531,275.86016780291,278.76409255008,281.77970028627,284.75331888701,287.84130158502,290.886287826,294.04838131756,297.16644728835,300.4044304772,303.59732911309,306.91302510559,310.18255295306,313.57782661988,316.92582314139,320.40258196387,323.83093239735,327.39113302053,330.90176198948,334.36350914498,337.95839429282,341.50322405771,345.18438591943,348.81429298672,352.58380229516,356.30082494405,360.1608038988,363.96703524466,367.91965255368,371.81723365001,375.86471396542,379.85583700975,384.00045811272,388.08736764479,392.33145942297,396.5164558179,400.86240365726,405.1478399234,409.59809307723,413.98637838791,418.31356254814,422.80716945583,427.23820566351,431.83965831621,436.37704077554,441.08892851835,445.73520856761,450.56017999004,455.31796985254,460.25874195194,465.13071889642,470.19006822446,475.1789734801,480.35974823468,485.46838574269,490.77349931217,496.0047455553,501.43718079349,506.7939752079,512.35679191473,517.84214996629,523.2511306012],description:"Cycle of 65 equal beating thirds"},temp6eb2:{frequencies:[261.6255653006,293.46010680596,329.2739659995,369.56455759223,414.89147313404,465.88425311859,523.2511306012],description:"Cycle of 6 equal beating 9/8 seconds"},temp6s:{frequencies:[261.6255653006,271.93638072959,309.96730300827,353.31693843766,402.72911708552,459.05170412301,523.2511306012],description:"Cycle of 6 tempered harmonic sevenths, 6/5 and 4/3 minimax, Op de Coul, 2002"},temp6teb:{frequencies:[261.6255653006,314.31996068356,377.55323514312,453.43316449459,544.48907971635,653.75617798246,784.8766959018],description:"Cycle of 6 equal beating 6/5's in a twelfth"},"temp7-5ebf":{frequencies:[261.6255653006,272.53310095338,288.29512120063,313.54121701986,318.29837158817,352.05202827415,359.67534615791,387.61143614087,414.35283422339,427.61576999092,475.86500581459,472.62064557223,523.2511306012],description:"7 equal beating fifths on white, 5 equal beating fifths on black"},temp7ebf:{frequencies:[261.6255653006,288.29512120063,318.29837158817,352.05202827415,387.61143614087,427.61576999092,472.62064557223,523.2511306012],description:"Cycle of 7 equal beating fifths"},temp7ebnt:{frequencies:[261.6255653006,288.84289825546,318.65722544634,351.9228541964,388.36258888271,429.02057812008,473.55803233064,523.2511306012],description:"Cycle of 7 equal beating 11/9 neutral thirds"},temp8eb3q:{frequencies:[261.6255653006,285.27029088455,311.06453578321,339.20371183191,369.9009952302,403.38894083349,439.92124473489,479.77466958441,523.2511306012],description:`Cycle of 8 equal "beating" 12/11's`},temp9ebmt:{frequencies:[261.6255653006,282.57058469242,305.18178513943,329.6176429161,355.99737593287,384.50587463168,415.28223014648,448.54214811156,484.4478959333,523.2511306012],description:"Cycle of 9 equal beating 7/6 septimal minor thirds"},tenney_11:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,523.2511306012],description:`Scale of James Tenney's "Spectrum II" for wind quintet`},tertiadia:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,431.14564594215,459.88868900496,490.54793493862,523.2511306012],description:"Tertiadia 2048/2025 and 262144/253125 scale"},tertiadie:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,383.2405741708,408.78994578219,436.04260883433,476.27480687611,490.54793493862,523.2511306012],description:"First Tertiadie 262144/253125 and 128/125 scale"},tet3a:{frequencies:[261.6255653006,280.31310567921,313.95067836072,336.37572681506,366.27579142084,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Eight notes, two major one minor tetrad"},tetracot:{frequencies:[261.6255653006,266.81074454173,272.09868928948,277.49143626213,289.66902367154,295.4099985897,301.26475437609,307.23554606336,320.71844041089,327.07478634962,333.55710924695,340.16790585091,355.09602205939,362.13370020095,369.31085868177,376.6302618745,393.15851224787,400.95055410677,408.89702710335,417.00099192139,435.30089370336,443.92815899023,452.72640877864,461.69903182491,481.96048707062,491.51250279099,501.25383072009,523.2511306012],description:"tetracot temperament, g=176.28227, 5-limit"},"tetragam-di":{frequencies:[261.6255653006,279.06726965397,290.69507255622,290.69507255622,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,436.04260883433,457.84473927605,523.2511306012],description:"Tetragam Dia2"},"tetragam-enh":{frequencies:[261.6255653006,271.31540105247,279.06726965397,279.06726965397,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,418.60090448096,418.60090448096,457.84473927605,523.2511306012],description:"Tetragam Enharm."},"tetragam-hex":{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,327.03195662575,343.38355445704,381.53728273004,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Tetragam/Hexgam"},"tetragam-py":{frequencies:[261.6255653006,275.62199471997,294.32876096318,294.32876096318,331.11985608357,348.83408706747,372.50983809402,392.4383479509,413.43299207996,441.49314144476,441.49314144476,465.11211608996,523.2511306012],description:"Tetragam Pyth."},"tetragam-slpe":{frequencies:[261.6255653006,261.6255653006,300.52885648597,300.52885648597,279.06726965397,345.21700307457,348.83408706747,396.55020354877,455.51656649021,392.4383479509,455.51656649021,418.60090448096,523.2511306012],description:"Tetragam Slendro as 5-tET, Pelog-like pitches on C# E F# A B"},"tetragam-slpe2":{frequencies:[261.6255653006,261.6255653006,300.52885648597,300.52885648597,286.29520819723,345.21700307457,313.29104303136,396.55020354877,396.55020354877,387.04559340587,455.51656649021,423.54155496477,523.2511306012],description:"Tetragam Slendro as 5-tET, Pelog-like pitches on C# E F# A B"},"tetragam-sp":{frequencies:[261.6255653006,271.31540105247,271.31540105247,271.31540105247,336.37572681506,348.83408706747,366.27579142084,392.4383479509,406.97310157871,406.97310157871,406.97310157871,457.84473927605,523.2511306012],description:"Tetragam Septimal"},"tetragam-un":{frequencies:[261.6255653006,269.80136421624,285.40970760065,285.40970760065,319.76457981184,348.83408706747,359.73515228832,392.4383479509,404.70204632437,428.11456140098,428.11456140098,479.64686971777,523.2511306012],description:"Tetragam Undecimal"},tetragam13:{frequencies:[261.6255653006,275.95382006469,307.00724256551,307.00724256551,341.55514486295,341.55514486295,400.80167111126,400.80167111126,445.90437572008,445.90437572008,445.90437572008,496.08254310677,523.2511306012],description:"Tetragam (13-tET)"},tetragam5:{frequencies:[261.6255653006,300.52885648597,300.52885648597,300.52885648597,300.52885648597,345.21700307457,345.21700307457,396.55020354877,455.51656649021,455.51656649021,455.51656649021,455.51656649021,523.2511306012],description:"Tetragam (5-tET)"},tetragam7:{frequencies:[261.6255653006,288.85811466493,288.85811466493,288.85811466493,318.92511007349,352.12195684808,352.12195684808,388.77403176757,429.24143792307,429.24143792307,429.24143792307,473.92081401802,523.2511306012],description:"Tetragam (7-tET)"},tetragam8:{frequencies:[261.6255653006,285.30470202322,311.12698372208,311.12698372208,339.28638158975,339.28638158975,403.48177901006,403.48177901006,440,440,440,440,523.2511306012],description:"Tetragam (8-tET)"},tetragam9a:{frequencies:[261.6255653006,282.57118533961,305.19387818096,305.19387818096,329.62755691287,356.01738450312,415.30469757995,415.30469757995,448.55379686399,448.55379686399,448.55379686399,484.46508327871,523.2511306012],description:"Tetragam (9-tET) A"},tetragam9b:{frequencies:[261.6255653006,282.57118533961,282.57118533961,282.57118533961,305.19387818096,305.19387818096,384.52019141924,384.52019141924,415.30469757995,415.30469757995,415.30469757995,448.55379686399,523.2511306012],description:"Tetragam (9-tET) B"},tetraphonic_31:{frequencies:[261.6255653006,266.96486255163,272.52663052146,278.32506946872,284.37561445717,290.69507255622,297.30177875068,304.21577360535,311.45900631024,319.05556743976,327.03195662575,333.99008336247,341.25073734861,348.83408706747,356.76213450082,365.05892832642,373.75080757229,382.86668092771,392.4383479509,400.61414686654,409.13785211902,418.03215325205,427.32175665765,437.0336147635,447.19718719986,457.84473927605,467.58611670746,477.75103228805,488.36772189445,499.46698830115,511.08249965699,523.2511306012],description:"31-tone Tetraphonic Cycle, conjunctive form on 5/4, 6/5, 7/6 and 8/7"},tetratriad:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"4:5:6 Tetratriadic scale"},tetratriad1:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"3:5:9 Tetratriadic scale"},tetratriad2:{frequencies:[261.6255653006,296.75121990114,305.22982618403,356.10146388137,373.75080757229,415.4517078616,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"3:5:7 Tetratriadic scale"},thailand:{frequencies:[261.6255653006,281.86483947605,307.02089761314,350.84574289301,397.92692612688,408.40584780369,474.03826620294,539.82938999168],description:"Observed ranat tuning from Thailand, Helmholtz/Ellis p. 518, nr.85"},thailand2:{frequencies:[261.6255653006,293.66476791741,318.39923223688,356.77227917518,391.76907592069,435.19747628762,477.88722128969,525.37110555681],description:"Observed ranat t'hong tuning, Helmholtz/Ellis p. 518"},thailand3:{frequencies:[261.6255653006,293.32570896007,322.47117131255,354.92237405774,396.55020354877,437.46578647972,488.21056770985,538.58355905405],description:"Observed tak'hay tuning. Helmholtz, p. 518"},thailand4:{frequencies:[261.6255653006,281.88044777549,304.38587215019,332.5176539627,392.71966479735,416.35036198375,461.923848369,523.2511306012,563.76089555097,608.77174430039,665.59794246809,786.00196746963,831.57545378481,924.97296635309,1046.5022612024,1127.52179110194],description:"Khong mon (bronze percussion vessels) tuning, Gemeentemuseum Den Haag 1/1=465"},thirds:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,454.2110508691,502.32108537715,523.2511306012],description:"Major and minor thirds parallellogram"},thomas:{frequencies:[261.6255653006,280.80530480292,294.66217084622,313.95044496966,332.05645032639,350.21604710412,374.62015588545,391.99543598175,420.73257541073,441.99197952365,468.79922683914,499.49209883845,523.2511306012],description:"Tuning of the Thomas/Philpott organ, Gereformeerde Kerk, St. Jansklooster"},tiby1:{frequencies:[261.6255653006,295.66718139806,337.56154978455,348.04364484358,393.32961502355,444.50800708553,507.49227916989,523.2511306012],description:"Tiby's 1st Byzantine Liturgical genus, 12 + 13 + 3 parts"},tiby2:{frequencies:[261.6255653006,295.66718139806,311.12698372208,348.04364484358,393.32961502355,444.50800708553,467.75037672729,523.2511306012],description:"Tiby's second Byzantine Liturgical genus, 12 + 5 + 11 parts"},tiby3:{frequencies:[261.6255653006,295.66718139806,324.07484847125,348.04364484358,393.32961502355,444.50800708553,487.21628271135,523.2511306012],description:"Tiby's third Byzantine Liturgical genus, 12 + 9 + 7 parts"},tiby4:{frequencies:[261.6255653006,286.76251801126,324.07484847125,348.04364484358,393.32961502355,431.12067692221,487.21628271135,523.2511306012],description:"Tiby's fourth Byzantine Liturgical genus, 9 + 12 + 7 parts"},todi_av:{frequencies:[261.6255653006,276.38325105256,310.05056613125,371.27895029721,392.44854854484,413.39000965417,495.88429116026,523.2511306012],description:"Average of 8 interpretations of raga Todi, in B. Bel, 1988."},tonos15_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,767.43499154843,885.50191332511,959.29373943553,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-15"},tonos17_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,418.60090448096,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,738.70747849581,784.8766959018,897.00193817349,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-17"},tonos19_pis:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,385.55346465352,406.97310157871,457.84473927605,523.2511306012,542.63080210495,563.50121757052,610.45965236807,665.95598440153,771.10692930703,813.94620315742,915.6894785521,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-19"},tonos21_pis:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,398.6675280771,440.63253103259,465.11211608996,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,797.33505615421,881.26506206518,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-21"},tonos23_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,409.50088481833,448.50096908674,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,819.00176963666,897.00193817349,941.85203508216,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-23"},tonos25_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,376.74081403286,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,753.48162806573,856.22912280196,941.85203508216,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-25"},tonos27_pis:{frequencies:[261.6255653006,290.69507255622,327.03195662575,373.75080757229,387.59343007496,436.04260883433,498.33441009638,523.2511306012,550.79066379074,581.39014511244,654.0639132515,747.50161514457,775.18686014993,872.08521766867,996.66882019276,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-27"},tonos29_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,396.94913355953,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,793.89826711906,885.50191332511,959.29373943553,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-29"},tonos31_pis:{frequencies:[261.6255653006,273.51763645063,300.86940009569,334.29933343966,388.21858076863,429.81342870813,462.87600014722,501.44900015948,523.2511306012,547.03527290125,601.73880019138,668.59866687931,776.43716153726,859.62685741626,925.75200029443,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-31"},tonos31_pis2:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,405.0976494977,448.50096908674,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,810.19529899541,897.00193817349,966.00208726375,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-31B"},tonos33_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-33"},top31:{frequencies:[261.6255653006,267.49189720203,273.48976766293,279.62212612306,285.89198815637,292.30243695391,298.85662483994,305.55777482212,312.40918217641,319.41421606749,326.57632120555,333.89901954025,341.38591199258,349.04068022565,358.99452880887,367.04412845091,375.2742212459,383.6888543241,392.29216556304,401.08838562235,410.08184002413,419.27695128006,428.67824106611,438.29033244612,448.11795214515,458.16593287385,468.4392157049,478.94285250284,489.68200840824,500.66196437769,511.88811978069,523.36599505479],description:"Top temperament, 11-limit, {225/224, 385/384, 1331/1323}, Gene Ward Smith"},trab19:{frequencies:[261.6255653006,279.06726965397,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Diamond {1,3,5,45,75,225}"},trab19a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,344.91651675372,348.83408706747,367.91095120397,372.08969287196,392.4383479509,396.89567239676,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Diamond {1,3,9,15,675}"},tranh:{frequencies:[261.6255653006,290.69507255622,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Bac Dan Tranh scale, Vietnam"},tranh2:{frequencies:[261.6255653006,290.69507255622,307.79478270659,392.4383479509,436.04260883433,523.2511306012],description:"Dan Ca Dan Tranh Scale"},tranh3:{frequencies:[261.6255653006,317.68818643644,348.83408706747,392.4383479509,473.41768959156,476.53227965466,523.2511306012],description:"Sa Mac Dan Tranh scale"},"tri12-1":{frequencies:[261.6255653006,264.29521392612,275.21650375777,319.76457981184,323.02748368748,332.97799220076,336.37572681506,406.97310157871,411.12588832951,428.11456140098,432.48307733364,502.48719684718,523.2511306012],description:"12-tone Tritriadic of 7:9:11"},"tri12-2":{frequencies:[261.6255653006,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,448.50096908674,457.84473927605,474.80195184183,504.56359022259,523.2511306012],description:"12-tone Tritriadic of 6:7:9"},"tri19-1":{frequencies:[261.6255653006,266.96486255163,269.10058145205,305.22982618403,311.45900631024,313.95067836072,320.35783506196,356.10146388137,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,427.32175665765,436.04260883433,439.53094970501,448.50096908674,508.71637697339,512.78610798918,523.2511306012],description:"3:5:7 Tritriadic 19-Tone Matrix"},"tri19-2":{frequencies:[261.6255653006,282.55561052465,290.69507255622,294.32876096318,313.95067836072,322.99452506247,327.03195662575,348.83408706747,353.19451315581,363.36884069528,376.74081403286,387.59343007496,392.4383479509,418.60090448096,423.83341578697,436.04260883433,465.11211608996,470.92601754108,484.4917875937,523.2511306012],description:"3:5:9 Tritriadic 19-Tone Matrix"},"tri19-3":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"4:5:6 Tritriadic 19-Tone Matrix"},"tri19-4":{frequencies:[261.6255653006,264.89588486686,290.69507255622,294.32876096318,322.99452506247,327.03195662575,331.11985608357,334.88072358477,363.36884069528,367.91095120397,372.08969287196,376.74081403286,408.78994578219,413.43299207996,418.60090448096,423.83341578697,465.11211608996,470.92601754108,516.79124009995,523.2511306012],description:"4:5:9 Tritriadic 19-Tone Matrix"},"tri19-5":{frequencies:[261.6255653006,266.96486255163,284.8811711051,290.69507255622,302.73815413355,316.53463456122,322.99452506247,329.64821227876,336.37572681506,366.27579142084,373.75080757229,406.97310157871,415.27867508032,423.83341578697,432.48307733364,452.19233508746,470.92601754108,480.53675259294,512.78610798918,523.2511306012],description:"5:7:9 Tritriadic 19-Tone Matrix"},"tri19-6":{frequencies:[261.6255653006,267.07609791103,294.32876096318,299.00064605783,305.22982618403,336.37572681506,341.71502406609,343.38355445704,348.83408706747,356.10146388137,384.42940207435,392.4383479509,398.6675280771,400.61414686654,406.97310157871,448.50096908674,457.84473927605,465.11211608996,512.57253609913,523.2511306012],description:"6:7:8 Tritriadic 19-Tone Matrix"},"tri19-7":{frequencies:[261.6255653006,271.31540105247,288.32205155576,294.32876096318,299.00064605783,305.22982618403,316.53463456122,336.37572681506,348.83408706747,356.10146388137,384.42940207435,392.4383479509,406.97310157871,432.48307733364,448.50096908674,457.84473927605,465.11211608996,474.80195184183,504.56359022259,523.2511306012],description:"6:7:9 Tritriadic 19-Tone Matrix"},"tri19-8":{frequencies:[261.6255653006,264.29521392612,272.43653907335,275.21650375777,316.53463456122,319.76457981184,323.02748368748,332.97799220076,336.37572681506,350.27555023717,390.82337532559,406.97310157871,411.12588832951,423.79017189188,428.11456140098,432.48307733364,497.4115685962,502.48719684718,517.96576564563,523.2511306012],description:"7:9:11 Tritriadic 19-Tone Matrix"},"tri19-9":{frequencies:[261.6255653006,266.96486255163,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,334.88072358477,341.71502406609,366.27579142084,373.75080757229,400.61414686654,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.78610798918,523.2511306012],description:"4:5:7 Tritriadic 19-Tone Matrix"},triang11:{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,327.03195662575,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,418.60090448096,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"11-limit triangular diamond lattice with 64/63 intervals removed"},triaphonic_12:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,367.19377586049,387.59343007496,410.39304360878,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"12-tone Triaphonic Cycle, conjunctive form on 4/3, 5/4 and 6/5"},triaphonic_17:{frequencies:[261.6255653006,271.31540105247,281.75060878526,293.02063313667,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,390.69417751556,406.97310157871,422.62591317789,439.53094970501,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:"17-tone Triaphonic Cycle, conjunctive form on 4/3, 7/6 and 9/7"},trichord7:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,392.4383479509,436.04260883433,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Trichordal undecatonic, 7-limit"},tricot:{frequencies:[261.6255653006,264.94025538413,268.70564228797,272.11003565477,275.55755973666,279.4738436282,283.01466417842,286.6003471482,290.673570175,294.35628843049,298.08566525814,302.32211998602,306.15242072385,310.03124984507,314.43747949204,318.42127516569,322.45554578164,327.03835025925,331.18179578139,335.37773516927,339.62683737367,344.45368576554,348.81777463097,353.23715677741,358.25743790514,362.79641682209,367.39290067029,372.61436622199,377.33523951767,382.11592657559,387.54663888312,392.45669803325,397.4289679423,403.0773124301,408.18413893183,413.35566924724,419.23036738005,424.541846554,429.92062250389,436.03074525334,441.55507841911,447.14940523431,453.50438708518,459.25010687752,465.06861996272,470.9608512551,477.65424916833,483.70593529179,489.8342966599,496.79592520903,503.09012862502,509.46407999504,516.70469117363,523.2511306012],description:"Tricot temperament, g=565.988015, 5-limit"},tritriad:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Tritriadic scale of the 10:12:15 triad, natural minor mode"},tritriad10:{frequencies:[261.6255653006,274.70684356563,294.32876096318,348.83408706747,366.27579142084,392.4383479509,488.36772189445,523.2511306012],description:"Tritriadic scale of the 10:14:15 triad"},tritriad11:{frequencies:[261.6255653006,309.19384990071,356.76213450082,383.71749577421,421.62797713733,453.48431318771,486.49381977384,523.2511306012],description:"Tritriadic scale of the 11:13:15 triad"},tritriad13:{frequencies:[261.6255653006,294.32876096318,340.11323489078,348.83408706747,392.4383479509,453.48431318771,510.16985233617,523.2511306012],description:"Tritriadic scale of the 10:13:15 triad"},tritriad14:{frequencies:[261.6255653006,294.32876096318,336.37572681506,348.83408706747,392.4383479509,448.50096908674,504.56359022259,523.2511306012],description:"Tritriadic scale of the 14:18:21 triad"},tritriad18:{frequencies:[261.6255653006,294.32876096318,319.76457981184,348.83408706747,392.4383479509,426.35277308246,479.64686971777,523.2511306012],description:"Tritriadic scale of the 18:22:27 triad"},tritriad22:{frequencies:[261.6255653006,294.32876096318,321.08592105074,348.83408706747,392.4383479509,428.11456140098,481.6288815761,523.2511306012],description:"Tritriadic scale of the 22:27:33 triad"},tritriad26:{frequencies:[261.6255653006,294.32876096318,301.87565226992,348.83408706747,392.4383479509,402.50086969323,452.81347840488,523.2511306012],description:"Tritriadic scale of the 26:30:39 triad"},tritriad3:{frequencies:[261.6255653006,305.22982618403,356.10146388137,373.75080757229,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"Tritriadic scale of the 3:5:7 triad. Possibly Mathews's 3.5.7a"},tritriad32:{frequencies:[261.6255653006,294.32876096318,322.00069575458,348.83408706747,392.4383479509,429.33426100611,483.00104363188,523.2511306012],description:"Tritriadic scale of the 26:32:39 triad"},tritriad3c:{frequencies:[261.6255653006,305.22982618403,366.27579142084,373.75080757229,427.32175665765,436.04260883433,512.78610798918,523.2511306012],description:"From 1/1 7/6 7/5, a variant of the 3.5.7 triad"},tritriad3d:{frequencies:[261.6255653006,305.22982618403,313.95067836072,363.36884069528,366.27579142084,436.04260883433,508.71637697339,523.2511306012],description:"From 1/1 7/6 5/3, a variant of the 3.5.7 triad"},tritriad5:{frequencies:[261.6255653006,290.69507255622,329.64821227876,366.27579142084,406.97310157871,423.83341578697,470.92601754108,523.2511306012],description:"Tritriadic scale of the 5:7:9 triad. Possibly Mathews's 5.7.9a."},tritriad68:{frequencies:[261.6255653006,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"Tritriadic scale of the 6:7:8 triad"},tritriad68i:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,398.6675280771,448.50096908674,465.11211608996,523.2511306012],description:"Tritriadic scale of the subharmonic 6:7:8 triad"},tritriad69:{frequencies:[261.6255653006,294.32876096318,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Tritriadic scale of the 6:7:9 triad, septimal natural minor"},tritriad7:{frequencies:[261.6255653006,264.29521392612,323.02748368748,332.97799220076,336.37572681506,411.12588832951,428.11456140098,523.2511306012],description:"Tritriadic scale of the 7:9:11 triad"},tritriad9:{frequencies:[261.6255653006,272.93037367779,319.76457981184,362.25078272391,377.90359432309,442.75095666255,461.88217083933,523.2511306012],description:"Tritriadic scale of the 9:11:13 triad"},tsjerepnin:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,367.91095120397,392.4383479509,418.60090448096,470.92601754108,490.54793493862,523.2511306012],description:"Scale from Ivan Tsjerepnin's Santur Opera (1977) & suite from it Santur Live!"},tsuda13:{frequencies:[261.6255653006,281.75060878526,283.42769574232,322.00069575458,340.11323489078,362.25078272391,377.90359432309,402.50086969323,425.14154361347,442.75095666255,485.87604984397,518.26778650024,523.2511306012],description:"Mayumi Tsuda's Harmonic-13 scale. 1/1=440 Hz."},tuneable3:{frequencies:[36.70809598968,41.95210970249,42.82611198796,43.59086398774,44.04971518762,44.86545065405,45.8851199871,46.71939489596,47.1961234153,47.72052478658,48.94412798624,49.55592958607,50.47363198581,51.39133438555,52.00313598538,52.44013712811,53.02280531843,53.39359416681,55.06214398452,57.10148265061,57.68415084093,58.73295358349,59.65065598323,61.1801599828,62.40376318246,62.92816455374,64.23916798194,66.07457278142,66.74199270851,67.29817598108,68.17217826655,68.82767998065,70.35718398022,73.41619197936,79.53420797764,80.7578111773,82.59321597678,85.65222397592,87.18172797549,88.09943037523,89.14823311779,89.73090130811,90.10169015649,91.7702399742,94.39224683061,95.44104957317,96.35875197291,97.88825597248,100.94726397162,102.7826687711,104.00627197076,104.88027425623,105.53577597033,110.12428796904,114.20296530123,114.71279996775,115.36830168185,116.24230396732,117.46590716698,119.30131196646,120.61231539466,122.3603199656,123.88982396517,124.80752636491,125.85632910747,128.47833596388,132.14914556285,134.59635196216,137.6553599613,139.49076476078,140.71436796044,141.58837024591,146.83238395872,152.950399957,154.17400315666,156.00940795614,159.06841595528,161.51562235459,165.18643195356,168.85724155253,171.30444795184,174.36345595098,176.19886075046,183.5404799484,190.88209914634,192.71750394582,195.77651194496,201.89452794324,205.56533754221,208.01254394152,211.07155194066,220.24857593808,229.4255999355,232.48460793464,238.60262393292,244.7206399312,247.77964793034,256.95667192776,269.19270392432,275.3107199226,281.42873592088,293.66476791744],description:"Marc Sabat, 3 octaves of intervals tuneable by ear"},tuners1:{frequencies:[261.6255653006,276.50456653385,293.15590636358,311.0676370396,328.627540632,349.28088891463,369.11955599459,391.76814585061,414.75684959346,439.06365754828,466.60145532616,492.6062100846,523.2511306012],description:"The Tuner's Guide well temperament no. 1 (1840)"},tuners2:{frequencies:[261.6255653006,276.9861853325,293.55936848273,311.27971878774,329.48489606404,349.42029142443,369.90111701824,391.99869425741,415.03962525779,439.89939957166,466.4799232208,493.78769382322,523.2511306012],description:"The Tuner's Guide well temperament no. 2 (1840)"},tuners3:{frequencies:[261.6255653006,276.9180796764,293.64050032496,311.25753558078,329.38199580693,349.20116137147,369.59117881045,391.8877401954,415.37711930697,439.91014033466,466.33569310799,493.52238512763,523.2511306012],description:"The Tuner's Guide well temperament no. 3 (1840)"},turkish:{frequencies:[261.6255653006,279.06726965397,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"Turkish, 5-limit from Palmer on a Turkish music record, harmonic minor inverse"},turkish_24:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Ra'uf Yekta, 24-tone Pythagorean Turkish Theoretical Gamut, 1/1=D (perde yegah) at 294 Hz"},turkish_24a:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,344.52749339997,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,459.36999119996,465.11211608996,490.54793493862,496.67978412536,516.79124009995,523.2511306012],description:"Turkish gamut with schismatic simplifications"},turkish_41:{frequencies:[261.6255653006,266.80864394988,272.09440643071,275.67629620338,281.13773466533,286.70737164501,290.48162858661,294.30556868769,300.13607443832,306.08208692954,310.11139540064,316.25503135793,322.52037740267,326.76608188608,333.2396629384,339.84149442859,344.31521657963,348.8478314504,355.75887527351,362.80683626646,367.58287746967,374.8650823332,382.29155536296,387.32409620162,392.42288612931,400.19720009986,408.12552912594,413.49815209867,421.6899870258,430.04411333507,435.70527569249,441.44096240275,450.1863739015,459.10504388656,465.14876849982,474.36385666592,483.76150545705,490.12981126508,499.83980314828,509.74215733443,516.45247616827,523.2511306012],description:"Abd\xEF\xBF\xBDlkadir T\xEF\xBF\xBDre and M. Ekrem Karadeniz theoretical Turkish gamut"},turkish_41a:{frequencies:[261.6255653006,268.5590565112,272.09440643071,275.67629620338,279.3053384865,286.70737164501,290.48162858661,294.30556868769,298.17984938441,306.08208692954,310.11139540064,314.19374626607,322.52037740267,326.76608188608,335.42589979828,339.84149442859,344.31521657963,348.8478314504,353.4401143131,362.80683626646,367.58287746967,377.32440283229,382.29155536296,387.32409620162,392.42288612931,402.82271318249,408.12552912594,413.49815209867,424.45650702809,430.04411333507,435.70527569249,441.44096240275,453.1398459935,459.10504388656,465.14876849982,477.47594368525,483.76150545705,490.12981126508,503.11902634639,509.74215733443,516.45247616827,523.2511306012],description:"Karadeniz's theoretical Turkish gamut, quantized to subset of 53-tET"},turkish_aeu:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,465.11211608996,471.45776383774,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Arel-Ezgi-Uzdilek (AEU) 24 tone theoretical system"},turkish_bagl:{frequencies:[261.6255653006,277.01530443593,285.40970760065,294.32876096318,311.64221749042,321.08592105074,331.11985608357,348.83408706747,369.35373924791,380.54627680087,392.4383479509,415.52295665389,428.11456140098,441.49314144476,465.11211608996,492.47165233054,507.3950357345,523.2511306012],description:'Ratios of the 17 frets on the neck of "Baglama" ("saz") according to Yal\xEF\xBF\xBD\xEF\xBF\xBDn Tura'},two29:{frequencies:[261.6255653006,265.43099677612,267.95417262175,271.85165581044,274.43586616969,278.42762776199,281.0743490329,285.16266958193,287.87341387594,292.06062910037,294.83694510625,299.12544722478,301.96892109338,306.36116019141,309.2734164419,313.77190187131,316.75460431924,321.36190613206,324.41675883995,329.13550925662,332.26425750751,337.09715242073,340.3015837153,345.25138423021,348.53332930799,353.60286331966,356.96419720496,362.15636101402,365.59900408717,370.91676405444,374.44268531179,379.88907958456,383.50028913155,389.07842928561,392.77699240278,398.49006531303,402.2780950448,408.12936467525,412.00902517967,418.00183444819,421.97534223334,428.1131149215,432.1827401118,438.46898282094,442.63705045414,449.07535460876,453.34424596425,459.9382898638,464.31044382305,471.06399474345,475.54190918343,482.45882552933,487.04505874954,494.12929225872,498.82646444278,506.0820624438,510.89285715645,518.32396488098,523.2511306012],description:"Two 29-tET scales 25 cents shifted, many near just intervals"},two29a:{frequencies:[261.6255653006,264.02813680074,267.95417262175,270.41486126945,274.43586616969,276.95607779319,281.0743490329,283.65552346679,287.87341387594,290.51702578379,294.83694510625,297.54450482308,301.96892109338,304.74197548856,309.2734164419,312.11354980287,316.75460431924,319.66343925668,324.41675883995,327.39595721478,332.26425750751,335.31552138031,340.3015837153,343.42665631876,348.53332930799,351.73399604284,356.96419720496,360.24228665998,365.59900408717,368.95638908389,374.44268531179,377.88128181162,383.50028913155,387.02206376789,392.77699240278,396.38395721814,402.2780950448,405.97231075214,412.00902517967,415.79260233969,421.97534223334,425.85044246025,432.1827401118,436.15157730833,442.63705045414,446.70189207635,453.34424596425,457.50741431695,464.31044382305,468.5743173866,475.54190918343,479.90892674463,487.04505874954,491.51771254425,498.82646444278,503.40730976502,510.89285715645,515.58451111167,523.2511306012],description:"Two 29-tET scales 15.826 cents shifted, 13-limit chords, Mystery temperament, Gene Ward Smith"},xenakis_chrom:{frequencies:[261.6255653006,274.52698453615,329.62755691287,349.22823143301,391.99543598175,411.32572372413,493.88330125613,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 5 + 19 + 6 parts"},xenakis_diat:{frequencies:[261.6255653006,293.66476791741,326.46944327063,349.22823143301,391.99543598175,440,489.15147723638,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 12 + 11 + 7 parts"},xenakis_schrom:{frequencies:[261.6255653006,279.86396690685,326.46944327063,349.22823143301,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 7 + 16 + 7 parts"},xenoga24:{frequencies:[261.6255653006,265.7783520514,279.38237857051,283.8170195002,294.32876096318,299.00064605783,310.07474405997,314.99656539426,331.11985608357,336.37572681506,348.83408706747,354.37113606854,372.50983809402,378.42269266694,392.4383479509,398.6675280771,419.07356785577,425.72552925031,441.49314144476,448.50096908674,465.11211608996,472.49484809138,496.67978412536,504.56359022259,523.2511306012],description:"M. Schulter, 3+7 ratios Xeno-Gothic adaptive tuning (keyboards 64:63 apart)"},xylophone2:{frequencies:[261.6255653006,295.19538981304,332.68808325276,388.83826257328,446.65787257783,506.59641128799,527.19506190947,579.57827742703,633.13077520476,751.1860077911,842.69088701475],description:"African Yaswa xylophones (idiophone; calbash resonators with membrane)"},xylophone3:{frequencies:[261.6255653006,292.47977325983,348.01999353916,392.4383479509,442.29334161825,523.2511306012],description:"African Banyoro xylophone (idiophone; loose log)"},xylophone4:{frequencies:[261.6255653006,281.70207497315,314.1971709147,349.63190883464,391.76907592069,436.9606979923,505.71930677521,568.9637969584,597.94115990992,660.7800775993,716.43551549302],description:"African Bapare xylophone (idiophone, loose-log)"},zalzal:{frequencies:[261.6255653006,294.32876096318,321.08592105074,348.83408706747,392.4383479509,428.11456140098,465.11211608996,523.2511306012],description:"Tuning of popular flute by Al Farabi & Zalzal. First tetrachord is modern Rast"},zalzal2:{frequencies:[261.6255653006,294.32876096318,331.11985608357,348.83408706747,387.59343007496,419.89288258121,465.11211608996,523.2511306012],description:"Zalzal's Scale, a medieval Islamic with Ditone Diatonic & 10/9 x 13/12 x 72/65"},zarlino:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Ptolemy's Intense Diatonic Systonon, also Zarlino's scale"},zarlino2:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"16-note choice system of Zarlino, Sopplimenti musicali (1588)"},zartehijaz1:{frequencies:[261.6255653006,280.55696721076,336.07142343876,350.07440004945,375.4060213132,393.89732161404,446.43551156053,468.42549744394,502.32108537715,523.2511306012],description:"Scale from Zarlino temperament extraordinaire -- lower Hijaz tetrachord"},zesster_a:{frequencies:[261.6255653006,279.06726965397,313.95067836072,334.88072358477,348.83408706747,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Harmonic six-star, group A, from Fokker"},zesster_b:{frequencies:[261.6255653006,293.02063313667,299.00064605783,334.88072358477,366.27579142084,418.60090448096,457.84473927605,478.40103369253,523.2511306012],description:"Harmonic six-star, group B, from Fokker"},zesster_c:{frequencies:[261.6255653006,299.00064605783,305.22982618403,348.83408706747,398.6675280771,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"Harmonic six-star, group C on Eb, from Fokker"},zesster_mix:{frequencies:[261.6255653006,274.70684356563,279.06726965397,293.02063313667,299.00064605783,313.95067836072,334.88072358477,348.83408706747,358.80077526939,366.27579142084,392.4383479509,418.60090448096,457.84473927605,478.40103369253,488.36772189445,502.32108537715,523.2511306012],description:"Harmonic six-star, groups A, B and C mixed, from Fokker"},zest24:{frequencies:[261.6255653006,269.33468959023,272.52663052146,280.55696721076,292.24684137387,300.8582598368,308.87634556583,317.97777315513,326.45210604021,336.07142343876,350.07440004945,360.38977980792,364.66083404534,375.4060213132,391.04793957621,402.57065589001,410.30971075781,422.39999923493,436.81711699543,449.68847932918,465.03699205118,478.73988827571,487.94322738789,502.32108537715,523.2511306012],description:"Zarlino Extraordinaire Spectrum Temperament (two circles at ~50.28c apart)"},zir_bouzourk:{frequencies:[261.6255653006,281.75060878526,305.22982618403,313.95067836072,353.19451315581,392.4383479509,523.2511306012],description:"Zirafkend Bouzourk (IG #3, DF #9), from both Rouanet and Safi al-Din"},zwolle:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Henri Arnaut De Zwolle. Pythagorean on G flat."},zwolle2:{frequencies:[261.6255653006,273.37431312998,292.50627485027,311.68386704488,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,467.04206359353,489.02683710225,523.2511306012],description:"Henri Arnaut De Zwolle's modified meantone tuning (c. 1440)"},yarman12:{frequencies:[261.6255653006,283.42769574232,294.32876096318,309.19384990071,332.97799220076,348.83408706747,377.90359432309,392.4383479509,411.12588832951,442.75095666255,465.11211608996,499.46698830115,523.2511306012],description:"Detempered Yarman 13-limit, [<1 1 -20 -6 -3 -1|, <0 1 38 15 11 8|]"},yarman12_80:{frequencies:[261.6255653006,282.84340331238,295.36595061166,319.3201344739,333.45764463229,348.2210758395,376.46181130035,393.12919962609,425.01198472693,443.82887286778,479.82340237272,501.06699929295,523.2511306012],description:"Ozan Yarman MOS, 80-et version"},yarman17:{frequencies:[261.6255653006,274.08392555301,283.42769574232,294.32876096318,309.19384990071,322.00069575458,332.97799220076,348.83408706747,362.25078272391,377.90359432309,392.4383479509,411.12588832951,425.14154361347,442.75095666255,465.11211608996,485.87604984397,499.46698830115,523.2511306012],description:"80-et commas 13-limit detempering of a chain of 16 fifths"},"yarman_ney-ahengs":{frequencies:[261.6255653006,275.39533189537,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,494.18162334558,523.2511306012],description:"Well Temperament for piano by Ozan Yarman from Ney Ahengs"},yasser_6:{frequencies:[261.6255653006,291.88463270656,325.64340264099,363.30663963964,405.32593044476,452.20508247496,523.2511306012],description:"Yasser Hexad, 6 of 19 as whole tone scale"},yasser_diat:{frequencies:[261.6255653006,281.42815779395,291.88463270656,313.97755176024,325.64340264099,350.29154279212,376.80531512858,390.80553229045,420.38583225541,436.00528786292,469.00678383895,486.43275040712,523.2511306012],description:"Yasser's Supra-Diatonic, the flat notes are V,W,X,Y,and Z"},yasser_ji:{frequencies:[261.6255653006,282.64904822654,294.32876096318,304.39128270551,327.03195662575,347.87575166344,359.73515228832,391.36022062136,425.14154361347,434.84468957929,457.84473927605,478.32915853722,523.2511306012],description:"Yasser's just scale, 2 Yasser hexads, 121/91 apart"},yekta:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,502.32108537715,523.2511306012],description:"Rauf Yekta's 12-tone tuning suggested in 1922 Lavignac Music Encyclopedia"},"young-g":{frequencies:[261.6255653006,299.07507698093,319.76457981184,341.88537054616,390.82337532559,446.76650366117,477.67301428683,510.71739232152,583.82257301724,667.39198333921,713.56092257662,762.92356430953,872.13001648254,996.96833978235,1065.93668681199,1139.67601990796,1302.81150610354,1489.29848625885,1592.32474578757,1702.47910946196,1946.17475603251,2224.75468143463,2378.65811671778,2543.20970830682,2907.24890901465,3323.39919648924,3553.30434397593,3799.11599765247,4342.92768045015],description:"Gayle Young's Harmonium, see PNM 26(2): 204-212 (1988)"},"young-lm_guitar":{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"LaMonte Young, Tuning of For Guitar '58. 1/1 March '92, inv.of Mersenne lute 1"},"young-lm_piano":{frequencies:[261.6255653006,289.72987407313,294.32876096318,300.46061014991,343.38355445704,338.01818641865,386.30649876417,392.4383479509,400.61414686654,457.84473927605,450.69091522486,515.07533168556,523.2511306012],description:"LaMonte Young's Well-Tempered Piano"},"young-w10":{frequencies:[261.6255653006,277.18263097687,302.26980244078,320.24370022528,349.22823143301,369.99442271164,391.99543598175,427.47405410759,452.89298412314,493.88330125613,523.2511306012],description:"William Lyman Young 10 out of 24-tET (1961)"},"young-w14":{frequencies:[261.6255653006,277.18263097687,293.66476791741,302.26980244078,320.24370022528,339.28638158975,359.46139971304,369.99442271164,391.99543598175,415.30469757995,427.47405410759,452.89298412314,479.82340237272,508.3551866238,523.2511306012],description:"William Lyman Young 14 out of 24-tET (1961)"},"young-wt":{frequencies:[261.6255653006,285.40970760065,309.19384990071,348.83408706747,392.4383479509,428.11456140098,463.79077485106,523.2511306012],description:'William Lyman Young "exquisite 3/4 tone Hellenic Lyre" dorian'},young:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,348.83408706747,367.49599295996,391.5530240856,413.43299207996,438.51190905657,465.11211608996,491.10256480205,523.2511306012],description:"Thomas Young well temperament (1807), also Luigi Malerbi nr.2 (1794)"},young2:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.14198392915,349.22823143301,368.32692341742,391.5530240856,414.36778843034,438.51190905657,466.16376151809,491.65745674141,523.2511306012],description:"Thomas Young well temperament no.2 (1799)"},yugo_bagpipe:{frequencies:[261.6255653006,277.02257024271,294.00421879736,322.47117131255,341.84370465044,381.9375744369,404.41509766528,430.1988069325,452.63145841613,463.74664903953,478.99265177484,502.22604835608,523.2511306012],description:"Yugoslavian Bagpipe"},yves:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:`St Yves's scale II from Jocelyn Godwin, "Music and the Occult", 1995.`},saba_sup:{frequencies:[261.6255653006,287.78812183066,313.95067836072,327.03195662575,392.4383479509,418.60090448096,470.92601754108,497.08857407114,523.2511306012],description:"Superparticular version of maqam Sab"},sabagh:{frequencies:[261.6255653006,275.67629620338,279.3053384865,286.70737164501,294.30556868769,310.11139540064,314.19374626607,322.52037740267,326.76608188608,331.06767743197,348.8478314504,362.80683626646,367.58287746967,372.42178901277,392.42288612931,413.49815209867,418.94150105041,430.04411333507,441.44096240275,465.14876849982,471.27205084813,483.76150545705,490.12981126508,496.58195036371,523.2511306012],description:"Twfiq Al-Sabagh, Arabic master musical scale in 53-tET (1954)"},sabbagh:{frequencies:[261.6255653006,294.30556868769,321.46759848648,348.8478314504,392.42288612931,428.64035280622,465.14876849982,523.2511306012],description:"Tawfiq as-Sabbagh, a composer from Syria. 1/1=G"},safi_diat:{frequencies:[261.6255653006,276.16031892841,305.22982618403,348.83408706747,392.4383479509,414.24047839262,457.84473927605,523.2511306012],description:"Safi al-Din's Diatonic, also the strong form of Avicenna's 8/7 diatonic"},safi_diat2:{frequencies:[261.6255653006,283.79722337692,310.07474405997,348.83408706747,392.4383479509,425.69583506538,465.11211608996,523.2511306012],description:"Safi al-Din's 2nd Diatonic, a 3/4 tone diatonic like Ptolemy's Equable Diatonic"},safi_major:{frequencies:[261.6255653006,281.75060878526,322.00069575458,348.83408706747,375.66747838035,392.4383479509,523.2511306012],description:"Singular Major (DF #6), from Safi al-Din, strong 32/27 chromatic"},salinas_19:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:`Salinas' enharmonic tuning for his 19-tone instr. "instrumentum imperfectum"`},salinas_24:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,459.88868900496,465.11211608996,470.92601754108,490.54793493862,510.98743222773,523.2511306012],description:'Salinas enharmonic system "instrumentum perfectum". Subset of Mersenne'},salinas_enh:{frequencies:[261.6255653006,272.52663052146,279.06726965397,348.83408706747,392.4383479509,408.78994578219,418.60090448096,523.2511306012],description:"Salinas's and Euler's enharmonic"},salunding:{frequencies:[261.6255653006,282.38958039978,310.76686573877,390.36201910543,419.43149305958,523.2511306012],description:"Gamelan slunding, Kengetan, South-Bali. 1/1=378 Hz"},sankey:{frequencies:[261.6255653006,274.88665260982,292.54735824399,309.58527581215,327.03195662575,348.83408706747,366.73895666255,391.24894371175,412.31687950427,437.13741259348,464.79252184829,489.99465727995,523.2511306012],description:"John Sankey's Scarlatti tuning, personal evaluation based on d'Alembert's"},santur1:{frequencies:[261.6255653006,282.02765077995,319.3201344739,347.21689301951,376.46192220133,427.47393558663,475.68393915562,504.55222794679,523.2511306012],description:"Persian santur tuning. 1/1=E"},santur2:{frequencies:[261.6255653006,281.2143451833,317.48098583281,345.21700307457,375.37611551499,423.78627283082,475.68393915562,498.18106573801,523.2511306012],description:"Persian santur tuning. 1/1=E"},sanza:{frequencies:[261.6255653006,293.15632631094,308.97787266236,346.21547002486,390.18821123181,462.40922843744,524.46149515038,595.18445928535,620.10113226249],description:"African N'Gundi Sanza (idiophone; set of lamellas, thumb-plucked)"},sanza2:{frequencies:[261.6255653006,390.63923480058,465.35666077712,523.2511306012,588.68812410589,663.45725712889,702.9084786129,783.08569314515],description:"African Baduma Sanza (idiophone, like mbira)"},sauveur:{frequencies:[261.6255653006,274.85950244128,292.7026939092,313.25286195357,328.80795208256,349.69755047152,367.27338607435,391.35133250294,417.15885134862,438.29716799286,468.84228427561,491.11646492505,523.2511306012],description:"Sauveur's tempered system of the harpsichord. Trait\xEF\xBF\xBD (1697)"},sauveur2:{frequencies:[261.6255653006,278.64199172491,293.04864983565,312.10886966906,328.2456799168,349.5951549002,372.33322418948,391.58401058733,417.05308314313,438.61577206336,467.14384425417,491.2966347616,523.2511306012],description:"Sauveur's Syste^me Chromatique des Musiciens (Memoires 1701), 12 out of 55."},sauveur_17:{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,441.49314144476,465.11211608996,489.99465727995,496.67978412536,523.2511306012],description:"Sauveur's oriental system, aft. Kitab al-adwar (Bagdad 1294) by Safi al-Din"},sauveur_ji:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Aplication des sons harmoniques aux jeux d'orgues (1702) (PB 81/80 & 128/125)"},savas_bardiat:{frequencies:[261.6255653006,282.57123920205,317.17549194805,349.22823143301,391.99543598175,423.37848741825,475.22628419761,523.2511306012],description:"Savas's Byzantine Liturgical mode, 8 + 12 + 10 parts"},savas_barenh:{frequencies:[261.6255653006,282.57123920205,329.62755691287,349.22823143301,391.99543598175,423.37848741825,493.88330125613,523.2511306012],description:"Savas's Byzantine Liturgical mode, 8 + 16 + 6 parts"},savas_chrom:{frequencies:[261.6255653006,282.57123920205,323.3415889232,349.22823143301,391.99543598175,423.37848741825,484.46499093218,523.2511306012],description:"Savas's Chromatic, Byzantine Liturgical mode, 8 + 14 + 8 parts"},savas_diat:{frequencies:[261.6255653006,288.06460709314,311.12698372208,349.22823143301,391.99543598175,431.60923940535,466.16376151809,523.2511306012],description:"Savas's Diatonic, Byzantine Liturgical mode, 10 + 8 + 12 parts"},savas_palace:{frequencies:[261.6255653006,277.18263097687,336.03572815422,349.22823143301,391.99543598175,415.30469757995,503.48470957687,523.2511306012],description:"Savas's Byzantine Liturgical mode, 6 + 20 + 4 parts"},scalatron:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,510.98743222773,523.2511306012],description:"Scalatron (tm) 19-tone scale, see manual, 1974"},scheengaas:{frequencies:[261.6255653006,273.84069463911,292.6487650037,312.74862113192,327.53979283172,350.03605285217,366.8025131876,391.54284657258,418.19337019276,437.97145880542,467.51204131067,489.62261321254,523.2511306012],description:"Scheengaas' variation"},scheffer:{frequencies:[261.6255653006,274.56546814423,292.86978442859,309.86465789076,327.84548435462,349.70179235499,366.99791252626,391.46460164194,410.82629477826,438.21464222188,467.42914467878,490.54793493862,523.2511306012],description:"H.Th. Scheffer (1748) modified 1/5-comma temperament, Sweden"},schidlof:{frequencies:[261.6255653006,264.89588486686,274.70684356563,280.31310567921,294.32876096318,305.22982618403,315.35224388912,322.99452506247,327.03195662575,348.83408706747,353.19451315581,366.27579142084,373.75080757229,392.4383479509,406.97310157871,420.46965851882,436.04260883433,457.84473927605,467.18850946536,484.4917875937,490.54793493862,523.2511306012],description:"Schidlof"},schillinger:{frequencies:[261.6255653006,262.8879410321,275.85161280553,277.18263097687,278.52007147562,292.25460328695,293.66476791741,295.08173676673,309.63296633914,311.12698372208,312.62820992379,328.04470063332,329.62755691287,331.21805066987,347.55125362114,349.22823143301,350.91330087035,368.21772660991,369.99442271164,371.77969159194,390.11309203208,391.99543598175,393.88686247394,413.31042363438,415.30469757995,417.30859414412,437.88714035463,440,442.12305445465,463.92526470026,466.16376151809,468.41305936011,491.51169649079,493.88330125613,496.26634930797,520.73850287792,523.2511306012],description:"Joseph Schillinger's double equal temperament, p.664 Mathematical Basis..."},schis41:{frequencies:[261.6255653006,266.96486255163,272.52663052146,275.21650375777,280.31310567921,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,311.45900631024,313.95067836072,321.08592105074,327.03195662575,329.64821227876,336.37572681506,343.38355445704,348.83408706747,355.95315006884,363.36884069528,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,415.27867508032,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,484.4917875937,490.54793493862,497.4115685962,504.56359022259,512.78610798918,523.2511306012],description:"41&53 <<1 -8 -14 23 -15 -25 33 -10 81 113||"},schisynch17:{frequencies:[261.6255653006,275.80289341725,290.74848220557,294.25152581512,310.19683462128,327.0062098829,330.94609980123,348.87986495302,367.78544978395,387.71551660339,392.38685458718,413.65005636851,436.06549769577,441.31937388998,465.23419873014,490.4449531872,496.35401261224,523.2511306012],description:"fifth satisfies f^9 + f^8 - 64 = 0"},schlick:{frequencies:[261.6255653006,275.62199471997,293.00227310437,311.47852302926,328.14198392915,349.6228209638,367.9112241576,391.5530240856,414.36778843034,438.51190905657,466.69047534984,491.10256480205,523.2511306012],description:"Reconstructed temp. A. Schlick, Spiegel d. Orgelmacher und Organisten (1511)"},schlick2:{frequencies:[261.6255653006,275.31092272332,293.00227310437,311.83045953724,328.14198392915,349.6228209638,367.9112241576,391.5530240856,415.30469757995,438.51190905657,466.69047534984,491.10256480205,523.2511306012],description:"Schlick's temperament reconstructed by F.J. Ratte (1991)"},schlick3:{frequencies:[261.6255653006,275.31092431358,293.00227310437,311.83045953724,328.14198392915,349.6228209638,367.70355049744,391.5530240856,415.07027187895,438.51190905657,466.95405539699,491.10256480205,523.2511306012],description:"Possible well-tempered interpretation of 1555 tuning, Margo Schulter"},schlick4:{frequencies:[261.6255653006,275.29566620843,293.00166043901,311.83758337792,328.14192706649,349.6222474261,367.6987228158,391.55300599201,415.35839309639,438.51185079886,466.95962791236,491.10245700671,523.2511306012],description:"Another reconstructed Schlick's modified meantone (Poletti?)"},scholz:{frequencies:[261.6255653006,271.31540105247,299.00064605783,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Simple Tune #1 Carter Scholz"},scholz_epi:{frequencies:[261.6255653006,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,4709.2601754108,5232.511306012,5494.1368713126,5755.7624366132,6279.0135672144,6540.639132515,6802.2646978156,7063.8902631162,7325.5158284168,8372.0180896192,8633.6436549198,9156.894785521,9418.5203508216,10203.3970467234,10465.022612024,10988.2737426252,11511.5248732264,11773.150438527,12558.0271344288,12819.6526997294,13081.27826503,14127.7805262324,14389.406091533,14651.0316568336,16482.4106139378,16744.0361792384,17005.661744539],description:"Carter Scholz, Epimore"},schulter:{frequencies:[261.6255653006,277.184065539,293.66520219021,311.12905403417,329.62853176407,349.23107169224,369.99606406306,391.99572582396,415.30715405467,440.00097595231,466.1672081452,493.88512703986,523.25577305438],description:`Margo Schulter's 5-limit JI virt. ET, "scintilla of Artusi" tempered 22-08-98`},schulter_17:{frequencies:[261.6255653006,272.43653907335,282.13181390574,295.15344695336,308.77608605158,319.09647917983,332.97799220076,348.34640884647,361.82138782225,375.64984936577,392.98775403209,410.26687922759,423.79017189188,443.34998408798,463.81254988138,480.53289366295,500.16624277499,523.2511306012],description:"Neo-Gothic well-temperament (14:11, 9:7 hypermeantone fifths) TL 04-09-2000"},schulter_24:{frequencies:[261.6255653006,270.06509966514,283.8170195002,292.97240722602,295.75063903546,305.22982618403,307.79478270659,317.68818643644,334.29933343966,345.08318290545,348.06842720833,359.29644098925,377.90359432309,390.09403284964,393.30161007617,406.07983174306,426.86276443782,440.63253103259,444.76346101102,458.66231916761,462.87600014722,477.80748402293,502.32108537715,518.89070451286,523.2511306012],description:'Rational intonation (RI) scale with some "17-ish" features (24 notes)'},schulter_cart34:{frequencies:[261.6255653006,270.08718526646,272.51337835337,281.3271372098,283.85429714132,293.03484945212,295.66718139806,305.22982618403,307.97166902637,317.93223698752,320.78822215662,331.16330924834,334.13814720468,344.94500399825,348.04364484358,359.30023993517,362.52783176564,374.2528814026,377.61479489998,389.82779436071,393.32961502355,406.05087076101,409.69842558521,422.94908927295,426.7484383229,440.55054172958,444.50800708553,458.88449901367,463.0066556268,477.98143975034,482.27514684959,497.87312179111,502.34551296122,518.59261334435,523.2511306012],description:'"Carthesian tuning" with two 17-tET chains 55.106 cents apart'},schulter_diat7:{frequencies:[261.6255653006,295.1673044417,332.97799220076,348.83408706747,392.4383479509,442.75095666255,499.46698830115,523.2511306012],description:"Diatonic scale, symmetrical tetrachords based on 14/11 and 13/11 triads"},schulter_ham:{frequencies:[261.6255653006,272.52663052146,283.8170195002,295.75063903546,307.79478270659,320.70230585235,334.29933343966,348.01136516401,362.25078272391,377.90359432309,393.36609818246,409.50088481833,426.86276443782,444.76346101102,462.87600014722,482.33849075995,502.32108537715,523.2511306012],description:'New rational tuning of "Hammond organ type", TL 01-03-2002'},schulter_jot17a:{frequencies:[261.6255653006,271.31540105247,281.75060878526,295.1673044417,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,392.4383479509,406.97310157871,422.62591317789,442.75095666255,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:"Just octachord tuning -- 4:3-9:8-4:3 division, 17 steps (7 + 3 + 7), Bb-Bb"},schulter_jot17bb:{frequencies:[261.6255653006,271.31540105247,281.75060878526,295.15228855401,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,392.4383479509,406.97310157871,422.62591317789,442.72843283101,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:'"Just Octachord Tuning" (Bb-Eb, F-Bb) -- 896:891 divided into 1792:1787:1782'},schulter_jwt17:{frequencies:[261.6255653006,272.43653907335,282.34838235411,295.1673044417,308.34441624714,319.76457981184,332.97799220076,347.8430811383,362.25078272391,376.08675011961,393.55640592227,409.81906732402,425.14154361347,443.97065626768,462.87600014722,481.6288815761,500.8899711738,523.2511306012],description:'"Just well-tuned 17" circulating system'},"schulter_lin76-34":{frequencies:[261.6255653006,270.6250663876,281.88470155261,291.58108453077,295.07956188513,305.22982618403,308.89206602106,319.51745915009,332.81131277165,344.25948974019,348.39001840879,360.3740779397,375.36781334896,388.27986588625,392.93856423817,406.45502016129,423.36600317146,437.92911415628,443.18352164838,458.42832346067,463.9286840578,479.88708893184,499.85328649772,517.04744024951,523.2511306012],description:"Two 12-note chains, ~704.160 cents, 34 4ths apart (32 4ths = 7:6), TL 29-11-02"},schulter_pel:{frequencies:[261.6255653006,271.31540105247,305.22982618403,392.4383479509,406.97310157871,523.2511306012],description:"Just pelog-style Phrygian pentatonic"},schulter_pepr:{frequencies:[261.6255653006,270.64528702739,281.81099471089,291.52662303231,295.05751399041,305.22982618403,308.92668738628,319.57714790608,332.76158224462,344.23376719628,348.40303271111,360.41446953256,375.28368107222,388.22184469544,392.9238840789,406.47020586181,423.23948674937,437.83095983374,443.13385158124,458.41119660824,463.96335069158,479.95880706014,499.75992392917,516.98949183803,523.2511306012],description:"Peppermint 24: Wilson/Pepper apotome/limma=Phi, 2 chains spaced for pure 7:6"},schulter_qcm62a:{frequencies:[261.6255653006,262.43934012943,267.90457886781,268.73788454005,273.37431312998,274.22463192287,279.93529690293,280.80602334765,285.65065877038,286.53916259713,292.50627485027,293.41610276971,299.52642572255,300.45808951291,305.64177427204,306.59245933664,312.977175335,313.95067836072,320.36052345918,320.48862783822,327.03195662575,328.04917632434,334.88072358477,335.92235492515,341.71789064962,342.78078913836,349.91912034749,351.00752840096,358.31717956585,359.43170941363,365.63284274659,366.77012764335,374.40803131735,375.5726110527,382.05221698715,383.2405741708,391.22147055517,392.4383479509,400.61078621746,401.85686830172,408.78994578219,410.06146948999,418.60090448096,419.90294514449,427.14736482575,428.47598794138,437.39890198442,438.75941205608,447.89647345742,449.28963835923,457.04105241293,458.46266117889,468.01003810189,469.46576276783,479.24227945773,480.73294151703,489.02683710225,490.54793493862,500.76348165392,502.32108537715,510.98743222773,512.57683571821,523.2511306012],description:"1/4-comma meantone, two 31-notes at 1/4-comma (Vicentino-like system)"},schulter_qcmlji24:{frequencies:[261.6255653006,262.43934012943,273.37431312998,274.22463192287,292.50627485027,293.41610276971,306.59245933664,312.977175335,327.03195662575,328.04917632434,349.91912034749,351.00752840096,365.63284274659,366.77012764335,391.22147055517,392.4383479509,408.78994578219,410.06146948999,437.39890198442,438.75941205608,458.46266117889,468.01003810189,489.02683710225,490.54793493862,523.2511306012],description:"24-note adaptive JI (Eb-G#/F'-A#') for Lasso's Prologue to _Prophetiae_"},schulter_qcmqd8_4:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.28772967674,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.22091428214,437.39890198442,465.24335632603,489.02683710225,523.2511306012],description:"F-C# in 1/4-comma meantone, other 5ths ~4.888 cents wide or (2048/2025)^(1/4)"},schulter_sq:{frequencies:[261.6255653006,271.31540105247,279.38237857051,289.72987407313,294.32876096318,305.22982618403,310.07474405997,325.94610833227,331.11985608357,343.38355445704,348.83408706747,361.75386806997,372.50983809402,386.30649876417,392.4383479509,406.97310157871,419.07356785577,434.59481110969,441.49314144476,457.84473927605,465.11211608996,488.9191624984,496.67978412536,515.07533168556,523.2511306012],description:'"Sesquisexta" tuning, two 12-tone Pyth. manuals a 7/6 apart. TL 16-5-2001'},schulter_tedorian:{frequencies:[261.6255653006,295.99553712036,309.28772789022,347.85054122562,393.54796334264,442.61656607198,462.49302735707,523.2511306012],description:"Eb Dorian in temperament extraordinaire -- neo-medieval style"},schulter_zarte84:{frequencies:[261.6255653006,272.52663052146,292.24684137387,308.87634556583,326.45210604021,350.07440004945,364.66083404534,391.04793957621,410.30971075781,436.81711699543,465.03699205118,487.94322738789,523.2511306012],description:"Temperament extraordinaire, Zarlino's 2/7-comma meantone (F-C#)"},schulter_zarte84n:{frequencies:[261.6255653006,272.46997760396,292.1447183254,308.81896225817,326.44489157977,350.01709816983,364.52535053201,391.11195868293,410.09013064752,436.73596474349,465.11312402839,488.01232708701,523.2511306012],description:"Zarlino temperament extraordinaire, 1024-tET mapping"},scotbag:{frequencies:[261.6255653006,290.69507255622,327.03195662575,356.76213450082,387.59343007496,436.04260883433,479.64686971777,523.2511306012],description:"Scottish bagpipe tuning"},scotbag2:{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Scottish bagpipe tuning 2"},scotbag3:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,441.49314144476,479.64686971777,523.2511306012],description:"Scottish bagpipe tuning 3"},scotbag4:{frequencies:[261.6255653006,293.15632631094,318.58319997217,348.2210758395,392.67530119805,428.21545238314,468.59347232539,523.2511306012],description:"Scottish Higland Bagpipe by Macdonald, Edinburgh. Helmholtz/Ellis p. 515, nr.52"},scottd1:{frequencies:[261.6255653006,275.93341798027,292.67158636845,310.42509491746,327.40170814054,349.22823143301,367.9112241576,391.5530240856,413.90012676351,437.52264545758,465.63764214343,490.54829628849,523.2511306012],description:"Dale Scott's temperament 1, TL 9-6-1999"},scottd2:{frequencies:[261.6255653006,276.1828093671,292.93610587951,310.70566022736,327.9937953665,349.3071136959,368.24374600687,391.64146650178,414.27421384356,438.21489534465,466.05849010807,491.32444638706,523.2511306012],description:"Dale Scott's temperament 2, TL 9-6-1999"},scottd3:{frequencies:[261.6255653006,276.40121172404,293.16775656083,310.95136287868,328.51274831708,349.22813057195,368.53494914961,391.77416758435,414.60181737882,438.75957425603,466.42704408487,491.93513777943,523.2511306012],description:"Dale Scott's temperament 3, TL 9-6-1999"},scottd4:{frequencies:[261.6255653006,276.60439543337,293.30494246724,310.98285414553,328.78580734933,349.37474066871,369.05201453919,391.83105388699,414.77686160481,439.10664961187,466.16991430388,492.5350487994,523.2511306012],description:"Dale Scott's temperament 4, TL 9-6-1999"},scottj:{frequencies:[261.6255653006,294.32876096318,336.37572681506,348.83408706747,392.4383479509],description:`Jeff Scott's "seven and five" tuning, fifth-repeating. TL 20-04-99`},scottj2:{frequencies:[261.6255653006,290.69507255622,299.00064605783,305.22982618403,313.95067836072,348.83408706747,366.27579142084,406.97310157871,418.60090448096,428.11456140098,436.04260883433,485.87604984397,523.2511306012,566.85539148463,581.39014511244,598.00129211566,610.45965236807,680.22646978156,719.47030457665,784.8766959018],description:`Jeff Scott's "just tritone/13" tuning. TL 17-03-2001`},secor12_1:{frequencies:[261.6255653006,275.03488264166,292.74290192225,310.07362690431,327.56128791316,349.21167447253,366.91716522699,391.37968062521,412.76363757129,437.92977184699,465.61556619611,490.01645577464,523.2511306012],description:"George Secor's 12-tone temperament ordinaire #1, proportional beating"},secor12_2:{frequencies:[261.6255653006,275.62199471997,292.79557634972,310.07474405997,327.35540669465,348.83408706747,367.49599295996,391.60840570078,413.43299207996,437.83150862942,465.11211608996,489.99465727995,523.2511306012],description:"George Secor's closed 12-tone well-temperament #2, with 7 just fifths"},secor12_3:{frequencies:[261.6255653006,274.49585366342,292.50627485027,309.76836826904,327.03195662575,349.57337698802,365.99447173417,391.22147055517,411.74378028931,437.39890198442,466.09783352473,489.02683710225,523.2511306012],description:"George Secor's closed 12-tone temperament #3 with 5 meantone, 3 just, and 2 wide fifths"},secor17htt1:{frequencies:[261.6255653006,266.21235100401,283.6936382117,294.88137067808,304.94368688875,319.75456524059,327.03195662575,348.50707605838,360.3992766165,372.69727792826,392.80658053205,399.69321489333,425.93975025566,435.63385416574,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #1 on C (5/4 & 7/4 exact)"},secor17htt2:{frequencies:[261.6255653006,266.21235100401,279.78524030783,294.88137067808,300.05119287674,319.75456524059,327.03195662575,348.50707605838,360.3992766165,372.69727792826,392.80658053205,399.69321489333,425.93975025566,442.73709545768,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #2 on Eo (5/4 & 7/4 exact)"},secor17htt3:{frequencies:[261.6255653006,270.55308473255,279.78524030783,294.88137067808,300.05119287674,319.75456524059,327.03195662575,343.70575469589,360.3992766165,368.60172104124,392.80658053205,399.69321489333,425.93975025566,442.73709545768,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #3 on G (5/4 & 7/4 exact)"},secor17htt4:{frequencies:[261.6255653006,270.55308473255,279.78524030783,294.88137067808,300.05119287674,319.75456524059,332.36439517321,343.70575469589,360.3992766165,368.60172104124,392.80658053205,399.69321489333,420.07165483694,442.73709545768,450.49910517366,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #4 on Bo (5/4 & 7/4 exact)"},secor17wt:{frequencies:[261.6255653006,271.90848849519,284.45827635845,296.12458543709,307.25838681362,320.91221742866,335.17278980765,347.77473997341,362.0378075073,378.74746489181,393.63374363584,408.43373030454,427.2847686483,445.53990619223,462.29147990415,482.0422296857,504.29062567056,523.2511306012],description:"George Secor's well temperament with 5 pure 11/7 and 3 near just 11/6"},secor19wt:{frequencies:[261.6255653006,272.32755795875,282.27948808054,292.18583194851,304.13791554835,314.37102040472,326.31582004031,339.6640167515,350.11094753355,364.43250202589,378.27942889874,391.0071187494,407.00156221801,421.24111755476,436.68033801788,454.54308187078,469.17957429271,487.6886112017,506.92782577841,523.2511306012],description:"George Secor's 19-tone well temperament with ten 5/17-comma fifths"},secor19wt1:{frequencies:[261.6255653006,272.32845615788,282.22605479514,292.18610873661,304.13920677667,314.3856167727,326.31643450984,339.6657766488,350.11078170334,364.43353349925,378.23315721313,391.00730395019,407.00309738029,421.33223555387,436.68095599763,454.54522431957,469.16941157468,487.689760539,506.89867708289,523.2511306012],description:"George Secor's 19-tone proportional-beating (5/17-comma) well temperament (v.1)"},secor19wt2:{frequencies:[261.6255653006,272.32845615788,282.22605479514,292.18610873661,304.13920677667,314.27577204952,326.31643450984,339.6657766488,350.11078170334,364.43353349925,378.23315721313,391.00730395019,407.00309738029,421.20165315727,436.68095599763,454.54522431957,469.03541436973,487.689760539,506.89867708289,523.2511306012],description:"George Secor's 19-tone proportional-beating (5/17-comma) well temperament (v.2)"},secor1_4tx:{frequencies:[261.6255653006,274.52656755164,292.65557420835,309.65910769439,327.20096538886,349.14957009195,366.50113643833,391.42429537222,412.04336447213,437.62002395673,465.5327601226,489.58458498887,523.2511306012],description:"George Secor's rational 1/4-comma temperament extraordinaire"},secor1_5tx:{frequencies:[261.6255653006,275.23833828784,292.86443876933,310.12174699459,327.84546895566,349.26796031009,366.98445105045,391.462133155,412.85750743176,438.21197504744,465.69061374678,490.54793493862,523.2511306012],description:"George Secor's 1/5-comma temperament extraordinaire (ratios supplied by G. W. Smith)"},secor1_5wt:{frequencies:[261.6255653006,275.62199471997,292.86443876933,310.07474405997,327.84546895566,348.83408706747,367.44664657419,391.462133155,413.43299207996,438.21197504744,465.11211608996,490.54793493862,523.2511306012],description:"George Secor's 1/5-comma well-temperament (ratios supplied by G. W. Smith)"},secor1_7wt:{frequencies:[261.6255653006,276.40791719395,293.28186156416,310.6264877857,328.77715667764,349.45479875891,368.54388959194,391.74026793015,414.61187579093,439.14616729155,465.93973167855,492.29203182992,523.2511306012],description:"George Secor's 1/7-comma well-temperament (ratios supplied by G. W. Smith)"},secor22_19p3:{frequencies:[261.6255653006,266.86058412305,272.32845615788,282.28026746552,292.18610873661,304.13920677667,314.37137994881,326.31643450984,339.6657766488,350.11078170334,357.11635499175,364.43353349925,378.28077924825,391.00730395019,407.00309738029,421.28573964817,436.68095599763,454.54522431957,469.17973147781,477.89781576412,487.689760539,506.93004530576,523.2511306012],description:"George Secor's 19+3 well temperament with ten ~5/17-comma (equal-beating) fifths and 3 pure 9:11. TL 28-6-2002,26-10-2006. Aux=1,10,19"},secor22_ji29:{frequencies:[261.6255653006,272.52663052146,283.42769574232,286.15296204753,294.32876096318,305.22982618403,316.13089140489,327.03195662575,340.65828815182,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,414.24047839262,425.14154361347,436.04260883433,441.49314144476,457.84473927605,479.64686971777,490.54793493862,501.44900015948,523.2511306012],description:"George Secor's 22-tone just intonation (29-limit otonality on 4/3)"},secor29htt:{frequencies:[261.6255653006,270.55308473255,276.71069203503,283.6936382117,290.1503157249,294.88137067808,304.94368688875,310.54087273367,319.75456524059,327.03195662575,332.36439517321,343.70575469589,348.50707605838,360.3992766165,368.60172104124,377.19539564757,387.3949548402,392.80658053205,406.21042497925,415.4555026381,425.93975025566,435.63385416574,442.73709545768,457.84473927605,464.24049278842,480.08189580921,491.0082387498,499.01438878341,516.04239079678,523.2511306012],description:"George Secor's 29-tone 13-limit high-tolerance temperament (5/4 & 7/4 exact)"},secor2_11wt:{frequencies:[261.6255653006,275.91396717201,292.9984614786,310.40321306851,328.14053952957,349.20361470207,367.88528956268,391.55148162785,413.87095075801,438.50612639837,465.60481960276,491.10222639053,523.2511306012],description:"George Secor's rational 2/11-comma well-temperament"},secor41htt:{frequencies:[261.6255653006,266.21235100401,270.55308473255,276.71069203503,279.78524030783,283.6936382117,290.1503157249,294.88137067808,300.05119287674,304.94368688875,310.54087273367,315.34936221801,319.75456524059,327.03195662575,332.36439517321,338.19136297459,343.70575469589,348.50707605838,354.61705516636,360.3992766165,368.60172104124,372.69727792826,377.90358994896,387.3949548402,392.80658053205,399.69321489333,406.21042497925,415.4555026381,420.07165483694,425.93975025566,435.63385416574,442.73709545768,450.49910517366,457.84473927605,464.24049278842,473.46789104304,480.08189580921,491.0082387498,499.01438878341,507.7630447553,516.04239079678,523.2511306012],description:"George Secor's 13-limit high-tolerance temperament superset (5/4 & 7/4 exact)"},secor5_23tx:{frequencies:[261.6255653006,275.02417915696,292.7420830065,310.0721322444,327.56084927797,349.21018850905,366.91927748105,391.38056264645,412.75664067387,437.92311604224,465.61358467873,490.0190422864,523.2511306012],description:"George Secor's rational 5/23-comma temperament extraordinaire"},secor5_23wt:{frequencies:[261.6255653006,275.62199471997,292.75872440224,310.07474405997,327.56278518065,348.83408706747,367.49599295996,391.3766908411,413.43299207996,437.81158306864,465.11211608996,489.99465727995,523.2511306012],description:"George Secor's rational 5/23-comma proportional-beating well-temperament"},secor7p:{frequencies:[261.6255653006,281.10327891957,302.03108525935,356.94582815655,383.52002471837,412.07263653985,442.75095666255,523.2511306012],description:"George Secor's pelog-like MOS with near just 11:13:15:19 tetrads (1979)"},secor_vrwt:{frequencies:[261.6255653006,276.32932769153,293.15777167588,310.55777256823,328.11844153148,349.04269216937,368.62018440632,392.00375398861,414.25255044712,438.65017260809,465.6191423793,491.6947801169,523.2511306012],description:"George Secor's Victorian rational well-temperament (based on Ellis #2)"},"secor_wt1-7":{frequencies:[261.6255653006,276.2204353545,293.2843722634,310.74798946314,328.77415062671,349.45463702831,368.55847674989,391.74146894101,414.33065282463,439.14535139523,466.13275379077,492.28548658217,523.2511306012],description:"George Secor's 1/7-comma well-temperament"},secor_wt10:{frequencies:[261.6255653006,276.4188590209,293.2843722634,310.62634254146,328.77415062671,349.45463500978,368.55847887877,391.7414712038,414.6282883241,439.14535393183,465.93951357928,492.28548942572,523.2511306012],description:"George Secor's 12-tone well-temperament, proportional beating"},"secor_wtpb-24a":{frequencies:[261.6255653006,275.62199471997,292.84836938997,310.07474405997,327.30111872997,348.83408706747,367.49599295996,391.90002374246,413.43299207996,437.54991661796,465.11211608996,490.95167809495,523.2511306012],description:"George Secor's 24-triad proportional-beating well-temperament (24a)"},"secor_wtpb-24b":{frequencies:[261.6255653006,275.62199471997,292.56126314547,310.07474405997,327.51644841334,348.83408706747,367.49599295996,391.46936437571,413.43299207996,437.76524630133,465.11211608996,490.37746560595,523.2511306012],description:"George Secor's 24-triad proportional-beating well-temperament (24b)"},segah:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,440,479.82340237272,523.2511306012],description:"Arabic SEGAH (Dudon) Two 4 + 3 + 3 tetrachords"},segah2:{frequencies:[261.6255653006,293.66476791741,318.39923223688,349.22823143301,391.99543598175,425.01198472693,466.16376151809,523.2511306012],description:"Iranian mode Segah from C"},segah_rat:{frequencies:[261.6255653006,294.32876096318,319.76457981184,348.83408706747,392.4383479509,441.49314144476,479.64686971777,523.2511306012],description:"Rationalized Arabic Seg\xEF\xBF\xBDh\r"},seidel974:{frequencies:[261.6255653006,262.64754016506,266.73543962288,267.75741448733,268.77938935179,273.88926367407,274.91123853852,276.95518826743,277.97716313189,280.0211128608,283.08703745416,284.10901231862,285.13098718308,287.17493691199,289.2188866409,290.24086150535,294.32876096318,457.84473927605,461.93263873387,463.97658846278,468.0644879206,474.19633710734,476.24028683625,482.37213602298,486.4600354808,488.50398520971,492.59188466754,498.72373385427,506.89953276991,513.03138195665,515.07533168556,519.16323114338,523.2511306012],description:"Dave Seidel, Base 9:7:4 Symmetry, scale for Passacaglia and Fugue State (2005)"},seikilos:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,441.49314144476,457.84473927605,504.56359022259,523.2511306012],description:"Seikilos Tuning"},sekati1:{frequencies:[261.6255653006,285.2147362526,318.99014578736,340.97107458785,383.86043226246,424.60539155549,468.56721805116,523.2511306012],description:"Gamelan sekati from Sumenep, East-Madura. 1/1=244 Hz."},sekati2:{frequencies:[261.6255653006,288.87830434024,317.34219433319,357.31261688157,393.64955765984,420.29657220667,469.35141988267,523.2511306012],description:"Gamelan Kyahi Sepuh from kraton Solo. 1/1=216 Hz."},sekati3:{frequencies:[261.6255653006,291.90272733088,308.20569577938,369.53649673407,403.69531865382,425.43272843735,475.11832680028,523.2511306012],description:"Gamelan Kyahi Henem from kraton Solo. 1/1=168.5 Hz."},sekati4:{frequencies:[261.6255653006,271.36353278789,288.89182053123,342.12578909252,379.12979967788,410.29128883625,439.50493264224,523.2511306012],description:"Gamelan Kyahi Guntur madu from kraton Jogya. 1/1=201.5 Hz."},sekati5:{frequencies:[261.6255653006,274.79663866182,311.31645994273,355.61927540077,375.97459751383,397.52718524897,433.44837981883,523.2511306012],description:"Gamelan Kyahi Naga Ilaga from kraton Jogya. 1/1=218.5 Hz."},sekati6:{frequencies:[261.6255653006,284.57524936299,310.80330758934,358.01400474517,390.79902205709,427.51850178351,468.18764285778,523.2511306012],description:"Gamelan Kyahi Munggang from Paku Alaman, Jogya. 1/1=199.5 Hz."},sekati7:{frequencies:[261.6255653006,286.67481979642,318.21831168293,371.10013445627,390.58282835584,422.12643845206,463.87524473877,523.2511306012],description:"Gamelan of Sultan Anom from Cheribon. 1/1=282 Hz."},sekati8:{frequencies:[261.6255653006,287.04067548259,315.94410704802,350.82750428678,381.72407804086,425.57749367468,447.5043967797,523.2511306012],description:"The old Sultans-gamelan Kyahi Suka rame from Banten. 1/1=262.5 Hz."},sekati9:{frequencies:[261.6255653006,280.44107893528,310.90439774384,346.74342440827,376.31071188751,412.14996063869,455.1567650372,523.2511306012],description:"Gamelan Sekati from Katjerbonan, Cheribon. 1/1=292 Hz."},selisir:{frequencies:[261.6255653006,278.78833362316,320.24370022528,380.8360868427,417.71053321823,524.76452349887],description:"Gamelan semara pagulingan, Bali. Pagan Kelod"},selisir2:{frequencies:[261.6255653006,279.59466973861,299.66214729245,376.46181130035,408.17001145418,520.23742585195],description:"Gamelan semara pagulingan, Bali. Kamasan"},selisir3:{frequencies:[261.6255653006,284.98499077387,305.5412851438,378.42269266694,406.45400323486,523.2511306012],description:"Gamelan gong, Pliatan, Bali. 1/1=280 Hz, McPhee, 1966"},selisir4:{frequencies:[261.6255653006,277.23130136276,295.59098907682,376.373620257,399.32323124828,523.2511306012],description:"Gamelan gong, Apuan, Bali. 1/1=285 Hz. McPhee, 1966"},selisir5:{frequencies:[261.6255653006,275.89605068063,309.19384990071,383.40037296022,406.23315014465,523.2511306012],description:"Gamelan gong, Sayan, Bali. 1/1=275 Hz. McPhee, 1966"},selisir6:{frequencies:[261.6255653006,282.63199755101,312.23197007902,396.25769882774,415.35445602102,523.2511306012],description:"Gamelan gong, Gianyar, Bali. 1/1=274 Hz. McPhee, 1966"},semipor1:{frequencies:[261.6255653006,290.69507255622,313.95067836072,327.03195662575,353.19451315581,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"First 16/15&250/243 = 648/625&250/243 scale"},semisixths:{frequencies:[261.6255653006,264.19830736984,270.23055453212,272.88791531122,275.57140613391,281.86332858923,284.63508234504,291.13394747727,293.99686553194,300.70948316519,303.66656221886,306.65272199551,313.65430163898,316.7386758187,323.97054074552,327.15636145846,330.37351240232,337.91669168384,341.23965429995,349.03093233441,352.46319080675,360.51072564419,364.05587272954,367.63587953306,376.02984347246,379.72760059524,388.39764380609,392.21702191873,396.07395857323,405.11722624758,409.10101938242,418.44172684717,422.55654641528,426.71183224275,436.45463212963,440.74658728358,450.80983509489,455.24295209046,465.63718490681,470.21611194415,474.84006394159,485.68174342829,490.45777940536,501.656046885,506.58917188228,511.57080469686,523.2511306012],description:"Semisixths temperament, 13-limit, g=443.0"},"scalamakesrc2\\semisixths_8":{frequencies:[261.6255653006,282.20554108354,304.40437778605,337.94858305883,364.53227585368,393.20709362444,436.53702313055,470.87587163898,522.76460573117],description:"8-note MOS of Semisixths [7, 9, 13, -2, 1, 5] temperament, TOP tuning"},semisuper:{frequencies:[261.6255653006,267.78942821112,272.60119889127,277.49943141001,284.03728045772,289.141002119,295.95312328758,301.27095467792,308.36885759663,313.90977919898,321.30545111289,327.07882560827,334.78475653951,340.80033382945,348.82954357113,355.09748450744,363.46353108469,369.99442271164,378.7114412363,385.5163125912,392.44345945086,401.68937424288,408.90712663484,418.54092077997,426.06147005461,436.09942062666,443.93546710474,454.39452662825,462.55931114028,473.45714317395,481.96445416288,493.31947147471,502.18367855499,514.01505508798,523.2511306012],description:"Semisuper temperament, g=71.146064, p=600, 5-limit"},semithirds:{frequencies:[13.75,13.81661017188,13.90316796691,13.99026794524,14.07791366516,14.14611237417,14.23473442257,14.3239115844,14.41364750281,14.48347263281,14.57420816344,14.665512046,14.73655738771,14.82887834882,14.92177776458,15.01525908647,15.08799873642,15.18252139242,15.27763629821,15.37334698758,15.4478213521,15.54459820959,15.64198144101,15.73997475533,15.81622511342,15.91530993122,16.01501558389,16.11534586889,16.19341466585,16.29486248479,16.39694594444,16.47637891809,16.57959953527,16.68346670883,16.78798468204,16.86931199442,16.97499424439,17.08133847,17.18834901569,17.27161584349,17.37981843193,17.48869878298,17.59826134469,17.68351394199,17.7942969746,17.90577393328,18.01794937217,18.10523509614,18.21866011204,18.33279560295,18.42160666689,18.53701356879,18.6531435747,18.77000099922,18.86093005309,18.97908920954,19.09798871479,19.21763298632,19.3107305405,19.43170758802,19.55344264036,19.67594033402,19.77125798984,19.89512013023,20.01975835255,20.14517740386,20.24276822054,20.36958425827,20.49719488615,20.62560496443,20.72552315291,20.85536353332,20.98601745346,21.08768161561,21.21979095359,21.352727802,21.48649759166,21.59058626784,21.72584618454,21.86195334633,21.99891331359,22.10548432428,22.24396995552,22.38332303719,22.52354926226,22.63266180681,22.7744500803,22.91712649141,23.06069686887,23.17241155847,23.3175812365,23.46366023269,23.57732716458,23.72503340608,23.87366512928,24.02322785632,24.1396055475,24.29083432682,24.44301065897,24.59614033986,24.71529329517,24.87012861873,25.02593409262,25.18271565096,25.30471019771,25.46323807533,25.62275923969,25.78327976642,25.90818367164,26.07049216435,26.23381763196,26.36090411207,26.52604894185,26.69222821075,26.85944870765,26.98956598001,27.15864922771,27.32879158412,27.5],description:"Semithirds temperament, g=193.199615, 5-limit"},sensisynch19:{frequencies:[261.6255653006,272.4389540986,281.73678149918,293.38139793239,303.39395317428,313.74821628003,326.71591476706,337.86611241253,351.83064080634,363.83795665907,376.25506171692,391.80626469239,405.17787315281,421.92450060765,436.32398762558,454.35793210906,469.86431365505,485.89989602801,505.98288939536,523.2511306012],description:"Sensi[19] in synch (brat=-1) tuning, generator ~162/125 satisfies g^9-g^7-4=0"},serre_enh:{frequencies:[261.6255653006,265.7783520514,279.06726965397,348.83408706747,392.4383479509,398.6675280771,418.60090448096,523.2511306012],description:"Dorian mode of the Serre's Enharmonic"},"sev-elev":{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,336.37572681506,359.73515228832,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'"Seven-Eleven Blues" of Pitch Palette'},sha:{frequencies:[261.6255653006,266.96486255163,280.31310567921,284.82183961519,290.63452941521,294.32876096318,300.33547037059,305.16625703708,320.42456924675,326.96384715385,343.31203882349,348.83408706747,355.95315006884,373.75080757229,392.4383479509,400.44729382745,406.8883429195,420.46965851882,427.23275920923,435.9517939049,457.74938532681,480.63685362987,490.44577048562,498.33441009638,523.2511306012],description:"Three chains of sqrt(3/2) separated by 10/7"},shahin:{frequencies:[261.6255653006,277.01530443593,282.55561052465,294.32876096318,310.50067090621,317.47821407264,328.55303549378,348.83408706747,357.66532977804,371.78369805875,376.74081403286,392.4383479509,415.52295665389,428.11456140098,441.49314144476,463.20591889287,478.90781444856,495.71159741166,523.2511306012],description:"Mohajeri Shahin Iranian style scale, TL 9-4-2006"},shahin_wt:{frequencies:[261.6255653006,276.93928561067,294.25491037444,311.47852302926,329.62755691287,348.92163548373,370.73795561568,392.4383479509,415.30469757995,439.61371330969,467.10055427519,494.44133512215,523.2511306012],description:"Mohajeri Shahin, well temperament, TL 28-12-2006"},shalfun:{frequencies:[261.6255653006,269.43930514995,277.46904793785,285.74220762407,294.32876096318,302.80736724606,311.45900631024,320.30554027987,329.50323085718,338.98103822311,348.83408706747,359.12912189513,369.78878487717,380.87868001252,392.4383479509,404.24222079821,416.2697936366,428.68354137408,441.49314144476,454.4477424016,467.68960547122,481.19471271032,494.94053216156,508.90014647073,523.2511306012],description:"d'Erlanger vol.5, p.40. After Alexandre ^Salfun (Chalfoun)"},"sharm1c-conm":{frequencies:[261.6255653006,305.22982618403,318.50068819203,332.97799220076,406.97310157871,430.91269578922,457.84473927605,523.2511306012],description:"Subharm1C-ConMixolydian"},"sharm1c-conp":{frequencies:[261.6255653006,313.95067836072,330.47439827444,348.83408706747,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Subharm1C-ConPhryg"},"sharm1c-dor":{frequencies:[261.6255653006,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,479.64686971777,547.03527290125,523.2511306012],description:"Subharm1C-Dorian"},"sharm1c-lyd":{frequencies:[261.6255653006,309.19384990071,323.91736656265,340.11323489078,382.37582620857,377.90359432309,485.87604984397,503.87145909745,523.2511306012],description:"Subharm1C-Lydian"},"sharm1c-mix":{frequencies:[261.6255653006,305.22982618403,318.50068819203,332.97799220076,366.27579142084,457.84473927605,488.36772189445,523.2511306012],description:"Subharm1C-Mixolydian"},"sharm1c-phr":{frequencies:[261.6255653006,313.95067836072,330.47439827444,348.83408706747,392.4383479509,483.00104363188,502.32108537715,523.2511306012],description:"Subharm1C-Phrygian"},"sharm1e-conm":{frequencies:[261.6255653006,318.50068819203,325.57848126297,332.97799220076,430.91269578922,443.97065626768,457.84473927605,523.2511306012],description:"Subharm1E-ConMixolydian"},"sharm1e-conp":{frequencies:[261.6255653006,330.47439827444,339.40613876835,348.83408706747,448.50096908674,465.11211608996,483.00104363188,523.2511306012],description:"Subharm1E-ConPhrygian"},"sharm1e-dor":{frequencies:[261.6255653006,338.57426097725,348.83408706747,359.73515228832,383.71749577421,411.12588832951,500.50108144463,511.62332769895,523.2511306012],description:"Subharm1E-Dorian"},"sharm1e-lyd":{frequencies:[261.6255653006,323.91736656265,331.81779013735,340.11323489078,382.37582620857,377.90359432309,503.87145909745,513.37846775967,523.2511306012],description:"Subharm1E-Lydian"},"sharm1e-mix":{frequencies:[261.6255653006,318.50068819203,325.57848126297,332.97799220076,366.27579142084,488.36772189445,505.20798816668,523.2511306012],description:"Subharm1E-Mixolydian"},"sharm1e-phr":{frequencies:[261.6255653006,330.47439827444,339.40613876835,348.83408706747,392.4383479509,502.32108537715,512.57253609913,523.2511306012],description:"Subharm1E-Phrygian"},"sharm2c-15":{frequencies:[261.6255653006,327.03195662575,341.25073734861,356.76213450082,392.4383479509,461.69217405988,490.54793493862,523.2511306012],description:"Subharm2C-15-Harmonia"},"sharm2c-hypod":{frequencies:[261.6255653006,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,465.11211608996,492.47165233054,523.2511306012],description:"SHarm2C-Hypodorian"},"sharm2c-hypol":{frequencies:[261.6255653006,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,475.68284600109,498.33441009638,523.2511306012],description:"SHarm2C-Hypolydian"},"sharm2c-hypop":{frequencies:[261.6255653006,336.37572681506,348.83408706747,362.25078272391,376.74081403286,392.4383479509,470.92601754108,495.71159741166,523.2511306012],description:"SHarm2C-Hypophrygian"},"sharm2e-15":{frequencies:[261.6255653006,341.25073734861,348.83408706747,356.76213450082,392.4383479509,490.54793493862,506.37206187213,523.2511306012],description:"Subharm2E-15-Harmonia"},"sharm2e-hypod":{frequencies:[261.6255653006,334.88072358477,341.71502406609,348.83408706747,364.00078650518,380.54627680087,492.47165233054,507.3950357345,523.2511306012],description:"SHarm2E-Hypodorian"},"sharm2e-hypol":{frequencies:[261.6255653006,327.03195662575,337.58137458142,348.83408706747,373.75080757229,402.50086969323,498.33441009638,510.48890790361,523.2511306012],description:"SHarm2E-Hypolydian"},"sharm2e-hypop":{frequencies:[261.6255653006,348.83408706747,355.41586229515,362.25078272391,376.74081403286,392.4383479509,495.71159741166,509.10920815252,523.2511306012],description:"SHarm2E-Hypophrygian"},sherwood:{frequencies:[261.6255653006,279.50101530337,292.73346657716,312.73435005323,327.54017122074,349.91920725962,366.48547573919,391.52543233055,418.27599117656,438.07873640926,468.01000025525,490.16733894289,523.65750116998],description:"Sherwood's improved meantone temperament"},shrutar:{frequencies:[261.6255653006,269.80136421624,277.49581689502,285.40970760065,294.32876096318,304.37698984459,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,368.95121675679,379.48299988042,392.4383479509,405.83598431812,417.42065019394,428.11456140098,441.49314144476,457.84473927605,470.92601754108,490.54793493862,505.97733342682,523.2511306012],description:"Paul Erlich's Shrutar tuning (from 9th fret) tempered with Dave Keenan"},shrutar_temp:{frequencies:[261.6255653006,269.67683152447,277.97586744827,286.53029793775,295.34798250635,304.4370214407,313.80576690868,327.74897996102,337.83512841993,348.23166805304,358.94815083964,369.99442271164,381.38063259971,393.11724175776,405.21503337437,417.68512248001,430.53896367224,443.78837151315,463.50705251482,477.77102045752,492.47394780842,507.62934310616,523.2511306012],description:"Shrutar temperament, 11-limit, g=52.474, 1/2 oct."},shrutart:{frequencies:[261.6255653006,269.83675183105,278.27349931787,286.14641333958,294.32706056425,305.2349557921,313.94319125793,327.02936607233,337.2932679302,348.82502010853,358.79758764604,369.99442271164,381.540672377,392.44854854484,405.86600994967,418.6042204156,436.0530078362,448.49343183014,465.11480315564,478.41198231361,491.94721442498,507.32849364948,523.2511306012],description:"Paul Erlich's 'Shrutar' tuning tempered by Dave Keenan, TL 29-12-2000"},siamese:{frequencies:[261.6255653006,269.26067151764,288.95340229325,296.22023396764,319.13574119147,352.26720984209,362.5475414329,388.79334481031,400.18585940536,429.40436513853,443.77760270734,473.98350631811,523.2511306012],description:"Siamese Tuning, after Clem Fortuna's Microtonal Guide"},silbermann1:{frequencies:[261.6255653006,275.15551885617,293.66476791741,312.53552595124,327.77163799145,349.82028288879,367.9112241576,391.99543598175,411.56972129721,438.75957425603,467.74568907204,491.10256480205,523.2511306012],description:"Gottfried Silbermann's temperament nr. 1"},silbermann2:{frequencies:[261.6255653006,275.00020270933,293.00227310437,312.18279369479,328.14198392915,349.6228209638,367.49599295996,391.5530240856,411.56972129721,438.51190905657,467.21778431035,491.10256480205,523.2511306012],description:"Gottfried Silbermann's temperament nr. 2, 1/6 Pyth. comma meantone"},silbermann2a:{frequencies:[261.6255653006,275.00020270933,293.00227310437,310.77584116741,328.14198392915,349.6228209638,367.49599295996,391.5530240856,411.56972129721,438.51190905657,467.21778431035,491.10256480205,523.2511306012],description:"Modified Silbermann's temperament nr. 2, also used by Hinsz in Midwolda"},silver:{frequencies:[261.6255653006,277.18807786937,293.58315284916,311.09098010692,329.53543886896,349.23174545031,369.98176232374,391.84186131702,415.18563115404,439.77824302677,466.03998256716,493.70667148145,523.2511306012],description:"Equal beating chromatic scale, A.L.Leigh Silver JASA 29/4, 476-481, 1957"},silver_10:{frequencies:[261.6255653006,270.26884019355,294.27266239927,320.41022551991,330.99364634362,360.39280035711,392.40094712608,405.36462386145,441.36692569059,480.56953386201,523.2511306012],description:"Ten-tone MOS from 350.9 cents"},silver_11:{frequencies:[261.6255653006,277.73657748574,294.83971256733,315.81001885226,335.25773244276,355.90304440354,381.21644531515,404.69191411574,429.61301214396,460.16899244324,488.50639225338,523.2511306012],description:"Eleven-tone MOS from 1+sqr(2), 1525.864 cents"},silver_11a:{frequencies:[261.6255653006,272.21316796874,283.22923537857,314.22802528801,326.94437231289,340.17533123945,377.40674067136,392.67983758722,408.5710143206,453.28817432381,471.63208149661,523.2511306012],description:"Eleven-tone MOS from 317.17 cents"},silver_11b:{frequencies:[261.6255653006,281.48899567641,302.85877036442,316.87090334834,340.92873240472,366.81310701257,383.78194911277,412.91987382947,444.27004083312,464.82473992747,500.11279777071,523.2511306012],description:"Eleven-tone MOS from 331.67 cents"},silver_7:{frequencies:[261.6255653006,277.73649727228,315.81000061035,335.2576162513,381.21640127531,404.69175048432,460.16888612163,523.2511306012],description:"Seven-tone MOS from 1+sqr(2), 1525.864 cents"},silver_8:{frequencies:[261.6255653006,288.49477506296,306.46277751246,337.93681424842,358.98416079003,395.852196628,420.50662316693,492.57276348379,523.2511306012],description:"Eight-tone MOS from 273.85 cents"},silver_9:{frequencies:[261.6255653006,294.18258755347,307.6617709921,345.94759796409,361.79860795042,406.82129262791,425.46148093979,478.40645551359,500.32661205896,523.2511306012],description:"Nine-tone MOS from 280.61 cents"},silvermean:{frequencies:[261.6255653006,286.15296204753,327.03195662575,345.42750418595,392.4383479509,416.96574469783,474.19633710734,523.2511306012],description:"First 6 approximants to the Silver Mean, 1+ sqr(2) reduced by 2/1"},simonton:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,465.11211608996,494.18162334558,523.2511306012],description:"Simonton Integral Ratio Scale, JASA 25/6 (1953): A new integral ratio scale"},sims:{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,316.13089140489,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Ezra Sims' 18-tone mode"},sims2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Sims II"},sims_24:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.97716313189,283.42769574232,286.15296204753,294.32876096318,302.50455987882,305.22982618403,310.68035879446,316.13089140489,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"See his article, Reflections on This and That, 1991 p.93-106"},sin:{frequencies:[261.6255653006,275.08939827539,302.09917071192,334.63165645627,369.99442271164,407.01712569342,445.10399729103,483.9175316883,523.2511306012,562.97086325858,602.98541169118,643.23087116255,683.66056756853,724.23972686276,764.94197926416,805.74682982871,846.63811574624,887.6028851904,928.63083777952,969.71346974542,1010.84345850104,1052.01529432917],description:"1/sin(2pi/n), n=4..25"},sinemod12:{frequencies:[261.6255653006,270.6035983646,282.0485507085,292.16840832754,301.82804372114,314.42520179993,326.24260278214,336.76433478807,350.4641458176,364.21811789193,375.86233664064,390.61306119732,406.50371126161,419.61372202861,435.38454314112,453.55584308858,468.551249676,485.36279478778,505.89080731022,523.2511306012],description:"Sine modulated F=12, A=-.08203754"},sinemod8:{frequencies:[261.6255653006,272.43905323978,281.98404270447,290.99567087708,301.68076007415,314.40050256998,326.99158834066,337.97331861211,348.96407538813,362.38276875396,377.76595534172,392.29216556304,405.04934945717,418.6525822649,435.418746849,453.77727371169,470.43955130022,485.47382867757,502.48255971303,523.2511306012],description:"Sine modulated F=8, A=.11364155. Deviation minimal3/2, 4/3, 5/4, 6/5, 5/3, 8/5"},singapore:{frequencies:[261.6255653006,291.46787011619,321.35550581422,354.51258839996,385.70651737906,428.95813651779,462.1422075194,523.2511306012],description:"An observed xylophone tuning from Singapore"},sintemp6:{frequencies:[261.6255653006,277.18263097687,292.42974339757,312.08834713741,327.870830746,349.91196330865,369.15973155124,391.11111150212,416.11779639122,437.6550518996,467.60417912673,491.80624587316,523.2511306012],description:"Sine modulated fifths, A=1/6 Pyth, one cycle, f0=-90 degrees"},sintemp6a:{frequencies:[261.6255653006,276.17281343288,293.21211353711,310.64741311165,328.42667470471,349.22823143301,368.43838932195,391.77416758435,414.19655102258,438.82595961933,465.90062756558,491.80624587316,523.2511306012],description:"Sine modulated fifths, A=1/12 Pyth, one cycle, f0= D-A"},sintemp_19:{frequencies:[261.6255653006,272.86445838226,281.30973389888,292.50627485027,304.14845459111,313.56198179795,327.03195662575,338.65502209741,350.02113164026,365.30494475029,376.98581738134,391.19763056219,407.47965586966,419.94695489748,437.42555500456,453.91586039553,468.43012697388,488.88431353627,505.29249383438,523.2511306012],description:"Sine modulated thirds, A=7.366 cents, one cycle over fifths, f0=90 degrees"},sintemp_7:{frequencies:[261.6255653006,291.06608881088,319.67397341855,351.09362859375,390.60192440975,432.07134328681,473.03044489876,523.2511306012],description:"Sine modulated fifths, A=8.12 cents, one cycle, f0=90 degrees"},slen_pel:{frequencies:[261.6255653006,261.6255653006,283.17034563789,298.45295203849,338.50336851425,364.68988616898,346.01554587335,389.06292924114,398.38689497567,420.13030572059,455.51656649021,493.31307433255,523.2511306012],description:"Pelog white, Slendro black"},slen_pel16:{frequencies:[261.6255653006,261.6255653006,285.30470202322,285.30470202322,297.93622032612,311.12698372208,339.28638158975,386.37547528213,386.37547528213,403.48177901006,421.34544350737,440,523.2511306012],description:"16-tET Slendro and Pelog"},slen_pel23:{frequencies:[261.6255653006,261.6255653006,295.14355885465,295.14355885465,286.38154466424,343.14246862785,313.47984535337,398.94762483098,398.94762483098,387.10394860926,450.05828708186,423.73315704439,523.2511306012],description:"23-tET Slendro and Pelog"},slen_pel_jc:{frequencies:[261.6255653006,261.6255653006,299.00064605783,299.00064605783,279.06726965397,341.71502406609,348.83408706747,392.4383479509,392.4383479509,392.4383479509,448.50096908674,418.60090448096,523.2511306012],description:"Slendro/JC PELOG S1c,P1c#,S2d,eb,P2e,S3f,P3f#,S4g,ab,P4a,S5bb,P5b"},slen_pel_schmidt:{frequencies:[261.6255653006,261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,392.4383479509,457.84473927605,457.84473927605,490.54793493862,523.2511306012],description:"Dan Schmidt (Pelog white, Slendro black)"},slendro:{frequencies:[261.6255653006,298.45295203849,346.01554587335,398.38689497567,455.51656649021,523.2511306012],description:"Observed Javanese Slendro scale, Helmholtz/Ellis p. 518, nr.94"},slendro10:{frequencies:[261.6255653006,304.21577360535,342.24274530602,391.67780832635,463.92905474816,523.2511306012],description:"Low gender from Singaraja (banjar Lod Peken), Bali. 1/1=172 Hz. McPhee, 1966."},slendro11:{frequencies:[261.6255653006,299.11221417218,343.62760815601,387.36203100102,452.96366529656,523.2511306012],description:"Low gender from Sawan, Bali. 1/1=167.5 Hz. McPhee, 1966."},slendro2:{frequencies:[261.6255653006,299.13295468097,343.58614396263,395.91119354826,450.08870388136,523.2511306012],description:"Gamelan slendro from Ranchaiyuh, distr. Tanggerang, Batavia. 1/1=282.5 Hz"},slendro3:{frequencies:[261.6255653006,298.44694115772,339.14425131559,391.46936437571,453.48431318771,522.28214737536],description:"Gamelan kodok ngorek. 1/1=270 Hz"},slendro4:{frequencies:[261.6255653006,294.5074669504,344.54514337401,400.3014113889,467.49486258632,523.2511306012],description:"Low gender in saih lima from Kuta, Bali. 1/1=183 Hz. McPhee, 1966"},slendro5_1:{frequencies:[261.6255653006,299.00064605783,336.37572681506,392.4383479509,448.50096908674,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7; from Lou Harrison"},slendro5_2:{frequencies:[261.6255653006,305.22982618403,348.83408706747,392.4383479509,457.84473927605,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7, no. 2"},slendro5_4:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7, no. 4"},slendro6:{frequencies:[261.6255653006,295.05549864457,341.56671025356,398.25224940202,461.478427683,523.2511306012],description:"Low gender from Klandis, Bali. 1/1=180 Hz. McPhee, 1966"},slendro8:{frequencies:[261.6255653006,309.85821141747,350.78288084997,406.32350365121,467.71050779996,523.2511306012],description:"Low gender from Tabanan, Bali. 1/1=179 Hz. McPhee, 1966."},slendro9:{frequencies:[261.6255653006,299.00064605783,336.37572681506,388.70083987518,448.50096908674,523.2511306012],description:"Low gender from Singaraja (banjar Panataran), Bali. 1/1=175 Hz. McPhee, 1966."},slendro_7_1:{frequencies:[261.6255653006,299.00064605783,341.71502406609,392.4383479509,448.50096908674,523.2511306012],description:"Septimal Slendro 1, From HMSL Manual, also Lou Harrison, Jacques Dudon"},slendro_7_2:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,448.50096908674,523.2511306012],description:"Septimal Slendro 2, From Lou Harrison, Jacques Dudon's APTOS"},slendro_7_3:{frequencies:[261.6255653006,294.32876096318,336.37572681506,392.4383479509,448.50096908674,523.2511306012],description:'Septimal Slendro 3, Harrison, Dudon, called "MILLS" after Mills Gamelan'},slendro_7_4:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:'Septimal Slendro 4, from Lou Harrison, Jacques Dudon, called "NAT"'},slendro_7_5:{frequencies:[261.6255653006,305.22982618403,343.38355445704,400.61414686654,467.3831713443,523.2511306012],description:"Septimal Slendro 5, from Jacques Dudon"},slendro_7_6:{frequencies:[261.6255653006,299.00064605783,341.71502406609,390.53145607553,455.62003208812,523.2511306012],description:"Septimal Slendro 6, from Robert Walker"},slendro_a1:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,457.84473927605,523.2511306012],description:`Dudon's Slendro A1, "Seven-Limit Slendro Mutations", 1/1 8:2'94 hexany 1.3.7.21`},slendro_a2:{frequencies:[261.6255653006,299.00064605783,341.71502406609,398.6675280771,448.50096908674,523.2511306012],description:`Dudon's Slendro A2 from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_alv:{frequencies:[261.6255653006,299.00064605783,348.83408706747,406.97310157871,465.11211608996,523.2511306012],description:"Bill Alves, slendro for Gender Barung, 1/1 vol.9 no.4, 1997. 1/1=282.86"},slendro_ang:{frequencies:[261.6255653006,299.00064605783,340.82516392797,388.43396508487,445.83123341082,523.2511306012],description:"Gamelan Angklung Sangsit, North Bali. 1/1=294 Hz"},slendro_av:{frequencies:[261.6255653006,298.97057995496,344.02264297658,395.86362945285,454.20288100724,525.67465946865],description:"Average of 30 measured slendro gamelans, W. Surjodiningrat et al., 1993."},slendro_dudon:{frequencies:[261.6255653006,305.22982618403,348.83408706747,399.70572476481,457.84473927605,523.2511306012],description:'Dudon\'s Slendro from "Fleurs de lumie`re"'},slendro_gum:{frequencies:[261.6255653006,305.03156112838,348.43777142572,394.8168394034,470.92601754108,525.62941881859],description:"Gumbeng, bamboo idiochord from Banyumas. 1/1=440 Hz"},slendro_ky1:{frequencies:[261.6255653006,297.58776037991,344.33874539242,394.68595744625,449.52853279627,523.2511306012],description:"Kyahi Kanyut Me`sem slendro, Mangku Nagaran, Solo. 1/1=291 Hz"},slendro_ky2:{frequencies:[261.6255653006,302.42139140287,345.87786599062,395.54249276388,453.1886900261,523.2511306012],description:"Kyahi Pengawe' sari, Paku Alaman, Jogya. 1/1=295 Hz"},slendro_laras:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012,598.00129211566,697.66817413493],description:'Lou Harrison, gamelan "Si Betty"'},slendro_m:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:`Dudon's Slendro M from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_madu:{frequencies:[261.6255653006,300.52885648597,345.61604384578,394.49404533893,447.94973572445,522.94897617031],description:"Sultan's gamelan Madoe kentir, Jogjakarta, Jaap Kunst"},slendro_mat:{frequencies:[261.6255653006,261.6255653006,299.00064605783,299.00064605783,341.71502406609,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,455.62003208812,457.84473927605,523.2511306012],description:`Dudon's Slendro Matrix from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_pa:{frequencies:[261.6255653006,304.19649364034,353.69443592699,411.24653512154,478.16333951147,523.2511306012],description:'"Blown fifth" primitive slendro, von Hornbostel'},slendro_pas:{frequencies:[261.6255653006,300.35531433711,343.03050002254,393.12919962609,450.54468214486,523.2511306012],description:"Gamelan slendro of regent of Pasoeroean, Jaap Kunst"},slendro_pb:{frequencies:[261.6255653006,304.72408298441,342.83241505062,399.30842833955,449.24533531117,523.2511306012],description:'"Blown fifth" medium slendro, von Hornbostel'},slendro_pc:{frequencies:[261.6255653006,299.48910562989,342.83241505062,392.44854854484,449.24533531117,523.2511306012],description:'"Blown fifth" modern slendro, von Hornbostel'},slendro_pliat:{frequencies:[261.6255653006,299.73468146833,339.98478643783,393.08060743874,447.03290350508,523.2511306012,599.46936293666,679.96957287566,786.16121487749,894.06580701017],description:"Gender wayang from Pliatan, South Bali (Slendro), 1/1=305.5 Hz"},slendro_q13:{frequencies:[261.6255653006,307.00725675226,360.2608752926,400.8015646157,470.32478922042,523.2511306012],description:"13-tET quasi slendro, Blackwood"},slendro_s1:{frequencies:[261.6255653006,299.00064605783,348.83408706747,398.6675280771,457.84473927605,523.2511306012],description:`Dudon's Slendro S1 from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_s2:{frequencies:[261.6255653006,299.00064605783,341.71502406609,398.6675280771,455.62003208812,523.2511306012],description:"Dudon's Slendro S2"},slendro_udan:{frequencies:[261.6255653006,305.22982618403,351.32575911795,402.50086969323,465.11211608996,523.2511306012],description:"Slendro Udan Mas (approx)"},slendro_wolf:{frequencies:[261.6255653006,298.18866107946,339.86157848985,395.0032340925,450.20632964813,523.2511306012],description:"Daniel Wolf's slendro. Tuning List 30 5 1997"},slendrob1:{frequencies:[261.6255653006,307.44024341205,355.66611281954,409.9203247543,476.83364134848,523.2511306012],description:"Gamelan miring of Musadikrama, desa Katur, Bajanegara. 1/1=434 Hz"},slendrob2:{frequencies:[261.6255653006,307.55978097874,346.50416420081,398.42969909174,449.35693171058,523.2511306012],description:"Gamelan miring from Bajanegara. 1/1=262 Hz"},slendrob3:{frequencies:[261.6255653006,304.90191053936,342.27700149692,398.33972372326,447.51732140012,523.2511306012],description:"Gamelan miring from Ngumpak, Bajanegara. 1/1=266 Hz"},slendroc1:{frequencies:[261.6255653006,297.59222964268,344.42030317161,394.72197985873,449.50490455178,523.2511306012],description:"Kyahi Kanyut mesem slendro (Mangku Nagaran Solo). 1/1=291 Hz"},slendroc2:{frequencies:[261.6255653006,302.44445076078,346.01554587335,396.09235530397,453.15466093696,523.2511306012],description:"Kyahi Pengawe sari (Paku Alaman, Jogja). 1/1=295 Hz."},slendroc3:{frequencies:[261.6255653006,301.39807245198,344.42030317161,395.40657391157,451.84778706363,523.2511306012],description:"Gamelan slendro of R.M. Jayadipura, Jogja. 1/1=231 Hz"},slendroc4:{frequencies:[261.6255653006,299.14332201883,343.8239850859,396.09235530397,450.28451247858,523.2511306012],description:"Gamelan slendro, Rancha iyuh, Tanggerang, Batavia. 1/1=282.5 Hz"},slendroc5:{frequencies:[261.6255653006,299.83528893666,340.07120590121,393.12919962609,447.17417015401,523.2511306012],description:"Gender wayang from Pliatan, South Bali. 1/1=611 Hz"},slendroc6:{frequencies:[261.6255653006,296.73398952435,343.8239850859,396.7793260952,453.9405988926,527.19506190947,607.33963549452,696.44215167899,797.23415748628,918.4302691641,1071.58188326661],description:"from William Malm: Music Cultures of the Pacific, the Near East and Asia."},slendrod1:{frequencies:[261.6255653006,292.47977325983,340.6610152784,389.06292924114,444.85552088095,523.2511306012],description:"Gender wayang from Ubud (S. Bali). 1/1=347 Hz"},smith_eh:{frequencies:[261.6255653006,272.7117507892,292.30354792656,313.30283124826,326.5788018031,350.04044239751,364.87314355143,391.08587539224,407.65784362321,436.94425707006,468.33462614046,488.17995458879,523.2511306012],description:"Robert Smith's Equal Harmony temperament (1749)"},smith_mq:{frequencies:[261.6255653006,273.37438418823,292.50629623572,312.97714101186,327.03200500996,349.91910755601,365.63292511375,391.22148485648,408.79006910398,437.39894995248,468.01000388518,489.02693031834,523.2511306012],description:"Robert Smith approximation of quarter comma meantone fifth"},"scalamakesrc2\\smithgw-ball":{frequencies:[261.6255653006,267.07609791103,272.52663052146,274.70684356563,280.31310567921,286.15296204753,294.32876096318,300.46061014991,305.22982618403,306.59245933664,313.95067836072,320.49131749323,327.03195662575,333.84512238879,336.37572681506,343.38355445704,350.39138209902,357.69120255941,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,470.92601754108,476.92160341255,480.73697623985,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:"Ball 2 around tetrad lattice hole"},smithgw46:{frequencies:[261.6255653006,273.72380653152,313.47993226845,327.97605323154,364.46098649856,392.98113253789,436.69740466987,456.89141950378,523.2511306012],description:'Gene Ward Smith 46-tET subset "Star"'},smithgw46a:{frequencies:[261.6255653006,282.09853500802,313.47993226845,327.97605323154,375.61187043063,392.98113253789,436.69740466987,470.87026054824,523.2511306012],description:'46-tET version of "Star", alternative version'},smithgw72a:{frequencies:[261.6255653006,285.30470202322,299.37379946195,326.46944327063,342.56848033562,373.57357677338,391.99543598175,427.47405410759,435.78442404634,457.27406033445,498.66089874196,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72c:{frequencies:[261.6255653006,279.86396690685,305.19382000629,326.46944327063,349.22823143301,391.99543598175,419.32216217931,457.27406033445,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72d:{frequencies:[261.6255653006,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72e:{frequencies:[261.6255653006,279.86396690685,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72f:{frequencies:[261.6255653006,326.46944327063,349.22823143301,435.78442404634,466.16376151809,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72g:{frequencies:[261.6255653006,326.46944327063,349.22823143301,391.99543598175,419.32216217931,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72h:{frequencies:[261.6255653006,279.86396690685,314.13668154225,349.22823143301,391.99543598175,435.78442404634,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 09-01-2002"},smithgw72i:{frequencies:[261.6255653006,279.86396690685,293.66476791741,314.13668154225,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,435.78442404634,470.6732130613,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset version of Duodene, TL 02-06-2002"},smithgw72j:{frequencies:[261.6255653006,274.52698453615,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,435.78442404634,457.27406033445,489.15147723638,523.2511306012],description:"{225/224, 441/440} tempering of decad, 72-et version (2002)"},smithgw84:{frequencies:[261.6255653006,286.48426603331,306.03443598155,335.11270457212,357.98136125932,391.99543598175,418.74586628806,458.53356119912,489.82466832727,523.2511306012],description:'Gene Ward Smith 84-tET subset, 11-limit temperament "Orwell", 2002'},smithgw_18:{frequencies:[261.6255653006,272.52663052146,280.31310567921,286.15296204753,294.32876096318,306.59245933664,327.03195662575,343.38355445704,350.39138209902,367.91095120397,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,457.84473927605,467.18850946536,490.54793493862,523.2511306012],description:"Gene Ward Smith chord analogue to periodicity blocks, TL 12-07-2002"},smithgw_21:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,299.00064605783,305.22982618403,320.49131749323,327.03195662575,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,418.60090448096,427.14378008261,448.50096908674,457.84473927605,478.40103369253,488.36772189445,512.57253609913,523.2511306012],description:"Gene Ward Smith symmetrical 7-limit JI version of Blackjack, TL 10-5-2002"},smithgw_45:{frequencies:[261.6255653006,267.02002970726,269.13627541126,274.68560334708,276.86260193655,282.57123920205,288.39758300936,290.68325478745,296.67686217097,299.02814898089,305.19382000629,311.48661940174,313.95528147508,320.42873367481,322.96826575344,329.62755691287,336.42415617173,339.09045868095,346.08217376006,348.82502010853,356.01745236555,363.35818557229,366.23795155866,373.78942366597,376.75185941212,384.52011812375,392.44854854484,395.55886785613,403.71490654806,406.9145164708,415.30469757995,423.86787605389,427.22720671064,436.03621571368,439.49198556474,448.5538823653,457.80262665414,461.43090443914,470.94516310483,474.67759826036,484.46499093218,494.45418731234,498.37294408452,508.64890891624,512.68016480935,523.2511306012],description:"Gene Ward Smith large limma repeating 5-tone MOS"},smithgw_58:{frequencies:[261.6255653006,264.89588486686,267.57160087561,269.80136421624,274.70684356563,279.06726965397,282.55561052465,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.49231810831,305.22982618403,310.07474405997,313.95067836072,317.12189733406,319.76457981184,323.76163705949,327.03195662575,332.97799220076,336.37572681506,340.54567384169,343.38355445704,348.83408706747,353.19451315581,356.76213450082,359.73515228832,366.27579142084,370.01329949656,373.75080757229,380.54627680087,383.71749577421,387.59343007496,392.4383479509,398.6675280771,401.98975747775,406.97310157871,411.12588832951,418.60090448096,423.83341578697,428.11456140098,431.68218274599,436.04260883433,441.49314144476,448.50096908674,452.23847716247,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,484.4917875937,490.54793493862,498.33441009638,507.3950357345,511.62332769895,516.79124009995,523.2511306012],description:"Gene Ward Smith 58-tone epimorphic superset of Partch's 43-tone scale"},smithgw_9:{frequencies:[261.6255653006,279.06726965397,305.22982618403,327.03195662575,348.83408706747,392.4383479509,418.60090448096,448.50096908674,490.54793493862,523.2511306012],description:'Gene Ward Smith "Miracle-Magic square" tuning, genus chromaticum of ji_12a'},"smithgw_al-baked":{frequencies:[261.6255653006,277.59364499865,293.85651796007,311.0721560172,330.05816364769,349.39467974592,369.86402907174,392.4383479509,415.42941801053,439.76742419786,466.60823379256,493.94455998605,522.88238970142],description:"Baked alaska, with beat ratios of 2 and 3/2"},"smithgw_al-fried":{frequencies:[261.6255653006,277.00141553195,293.28091128458,310.96067952124,329.23597434237,348.58531822795,369.59898601143,391.32048195179,414.31855981944,439.29480556849,465.11235566178,492.44721175277,522.13326741512],description:"Fried alaska, with octave-fifth brats of 1 and 2"},smithgw_asbru:{frequencies:[261.6255653006,275.52281548997,293.66476791741,313.00128725319,329.62755691287,351.33206601369,367.77883484915,391.99543598175,415.30469757995,440,468.97204376297,490.92584627687,523.2511306012],description:"Modified bifrost (2003)"},smithgw_bifrost:{frequencies:[261.6255653006,275.07759559501,292.50627485027,311.03921839762,327.03195662575,349.91912034749,366.77012764335,391.22147055517,413.66634097248,437.39889945791,466.55882736321,489.02683710225,523.2511306012],description:"Six meantone fifths, four pure, two of sqrt(2048/2025 sqrt(5))"},smithgw_cauldron:{frequencies:[261.6255653006,275.03056468741,291.83931845209,312.58541512404,325.54230007562,350.31873582686,364.83969341757,390.77519652096,414.65779561271,435.90375768372,469.07960710644,486.243977751,523.2511306012],description:"Circulating temperament with two pure 9/7 thirds"},smithgw_ck:{frequencies:[195.99771799087,198.06437430898,200.15282320192,202.2632921446,203.72940721765,205.87758869102,208.04842120778,210.24214482145,211.76609376362,213.99901760782,216.25548480725,218.5357448459,220.11981156469,222.44081817627,224.78629944762,227.15651084977,228.80306427848,231.21563094,233.65363506284,235.34728316698,237.82885399313,240.33658984216,242.87076938222,244.63122826831,247.21069030843,249.81735238129,252.45149840587,254.28140507407,256.96262135434,259.67210915034,262.4101678886,264.31225911206,267.09924514556,269.91561641866,272.7616843206,274.73881033537,277.63573538138,280.56320805899,282.59688215652,285.57666497222,288.58786914203,291.63082264784,293.74472081062,296.84205135845,299.9720393359,303.13503255793,305.33231946532,308.55183127196,311.80529233825,315.09305703284,317.37702217863,320.72353853051,324.10533989702,327.52280172307,329.89686439088,333.37539375097,336.89059979959,339.33256534187,342.91058750208,346.52633537645,350.18021075922,352.71850659998,356.43767199462,360.19605541958,363.99406623991,366.6324923874,370.49837299068,374.40501441099,378.35285076765,381.09535716275,385.11373623244,389.17448849491,391.99543598174],description:"Catakleismic temperament, g=316.745, 11-limit"},smithgw_decab:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,439.53094970501,488.36772189445,523.2511306012],description:"(10/9) <==> (16/15) transform of decaa"},smithgw_decac:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,498.33441009638,523.2511306012],description:"inversion of decaa"},smithgw_decad:{frequencies:[261.6255653006,280.31310567921,311.45900631024,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,467.18850946536,498.33441009638,523.2511306012],description:"inversion of decab"},smithgw_diff13:{frequencies:[261.6255653006,274.70684356563,280.31310567921,299.00064605783,313.95067836072,320.35783506196,336.37572681506,406.97310157871,427.32175665765,436.04260883433,457.84473927605,488.36772189445,498.33441009638,523.2511306012],description:"mod 13 perfect difference set, 7-limit"},smithgw_dwarf6_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,373.75080757229,392.4383479509,448.50096908674,523.2511306012],description:"Dwarf(<6 10 14 17|)"},smithgw_exotic1:{frequencies:[261.6255653006,274.95996987324,293.39100498914,313.05750197389,327.96500300935,349.94905375768,367.78508905896,392.4383479509,411.12588832951,438.68435539504,468.09011223803,491.94750426812,523.2511306012],description:"Exotic temperament featuring four pure 14/11 thirds and two pure fifths"},smithgw_glumma:{frequencies:[261.6255653006,269.10058145205,299.00064605783,313.95067836072,327.03195662575,358.80077526939,373.75080757229,392.4383479509,436.04260883433,448.50096908674,457.84473927605,512.57253609913,523.2511306012],description:"Gene Smith's Glumma scale, 7-limit, 2002"},smithgw_gm:{frequencies:[261.6255653006,264.89588486686,269.80136421624,274.70684356563,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,498.33441009638,507.3950357345,516.79124009995,523.2511306012],description:'Gene Ward Smith "Genesis Minus" periodicity block'},smithgw_graileq:{frequencies:[261.6255653006,274.83794140225,293.02845982215,312.42294214419,328.20064112269,350.39711148969,365.67350481015,391.53226450123,414.40482204179,438.61355268439,469.63029662389,490.10494633744,523.2511306012],description:"56% RMS grail + 44% JI grail"},smithgw_grailrms:{frequencies:[261.6255653006,274.64037495938,293.11160698959,312.82513967025,328.38692028068,350.6222941497,365.93760986436,391.94882001935,414.52240989365,438.39608269016,469.55771333591,490.068176414,523.2511306012],description:"RMS optimized Holy Grail"},smithgw_hahn12:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Hahn-reduced 12 note scale, Fokker block 225/224, 126/125, 64/63"},smithgw_hahn15:{frequencies:[261.6255653006,279.06726965397,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Hahn-reduced 15 note scale"},smithgw_hahn16:{frequencies:[261.6255653006,280.31310567921,294.32876096318,299.00064605783,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,408.78994578219,418.60090448096,436.04260883433,457.84473927605,488.36772189445,490.54793493862,523.2511306012],description:"Hahn-reduced 16 note scale"},smithgw_hahn19:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Hahn-reduced 19 note scale"},smithgw_hahn22:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Hahn-reduced 22 note scale"},smithgw_indianred:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"32805/32768 Hahn-reduced"},smithgw_klv:{frequencies:[261.6255653006,271.78681896552,282.34272472006,293.30861211826,314.10491445143,326.30440921209,338.97771913949,352.14324873572,377.11107157735,391.75765725694,406.97310157871,422.77949745352,452.75560414132,470.34014155688,488.60764618722,523.2511306012],description:"Variant of kleismic with 9/7 thirds, g=316.492"},smithgw_meandin:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,336.37572681506,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,470.92601754108,504.56359022259,523.2511306012],description:"Gene Smith, inverted detempered 7-limit meantone"},smithgw_meanred:{frequencies:[261.6255653006,281.29980781121,291.99281841585,313.95067836072,325.57848126297,350.39138209902,363.36884069528,390.69417751556,420.46965851882,436.04260883433,468.83301301868,486.65469735975,523.2511306012],description:"171-et Hahn reduced rational Meantone[12]"},smithgw_meantune:{frequencies:[261.6255653006,273.55401844854,279.77233440758,292.56174910339,312.85829351777,327.16018629281,334.59705725462,349.85254391288,365.77071543428,374.29488261541,391.03456781852,418.40555295943,437.51985793188,468.14464283802,489.08159472971,500.47948461038,523.2511306012],description:"Meantune scale/temperament, Gene Ward Smith, 2003"},smithgw_mir22:{frequencies:[261.6255653006,267.57160087561,274.70684356563,280.31310567921,285.40970760065,299.00064605783,305.22982618403,319.76457981184,327.03195662575,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,418.60090448096,428.11456140098,448.50096908674,457.84473927605,479.64686971777,490.54793493862,512.78610798918,523.2511306012],description:"11-limit Miracle[22]"},smithgw_mmt:{frequencies:[261.6255653006,273.37431312998,292.50627485027,307.38829724655,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.12588832951,437.39890198442,459.65271605653,489.02683710225,523.2511306012],description:"Modified meantone with 5/4, 14/11 and 44/35 major thirds, TL 17-03-2003"},smithgw_modmos12a:{frequencies:[261.6255653006,265.27772209197,292.31087910123,304.72408298441,326.59518553839,340.46429857933,364.90060015836,391.09077971329,407.69874723177,425.01198472693,455.51656649021,488.21056770985,523.2511306012],description:"A 12-note modmos in 50-et meantone"},smithgw_octoid:{frequencies:[261.6255653006,272.34559486824,274.88944875317,277.45706359738,280.04865972334,282.66446436432,285.30470202322,296.99497716113,299.76906949343,302.56907333554,305.39522895084,308.24778413898,311.12698372208,323.87531915696,326.90048829645,329.95391413777,333.03585868997,336.14659218049,339.28638158975,353.18853996009,356.48751029933,359.81729479041,363.17817915623,366.5704580819,369.99442271164,385.15483391523,388.75238658,392.38354231563,396.04861270515,399.74791910495,403.48177901006,420.01432465796,423.93748365756,427.89728706578,431.89407466632,435.9281969008,440,458.02886886968,462.30710409523,466.62530033172,470.98382811593,475.38306960714,479.82340237272,499.48402328631,504.14947188193,508.85849826899,513.6115065207,518.40891338474,523.2511306012],description:"Octoid temperament, g=16.096, oct=1/8, 11-limit"},smithgw_orw18r:{frequencies:[261.6255653006,269.10058145205,280.31310567921,286.15296204753,299.00064605783,305.22982618403,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,448.50096908674,457.84473927605,474.80195184183,490.54793493862,523.2511306012],description:'Rational version of two cycles of 9-tone "Orwell"'},smithgw_pel1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 1"},smithgw_pel2:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 2"},smithgw_pel3:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 3"},smithgw_pk:{frequencies:[261.6255653006,271.01659746112,280.74472171431,290.822034715,313.8821415949,325.1489200649,336.82012073975,348.91025643633,376.57634157395,390.09352641046,404.09590743895,418.60090448096,451.79296003201,468.01003810189,484.80922990434,523.2511306012],description:"Parakleismic temperament, g=315.263, 5-limit"},smithgw_pris:{frequencies:[261.6255653006,279.06726965397,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"optimized (15/14)^3 (16/15)^4 (21/20)^3 (25/24)^2 scale"},smithgw_prisa:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,439.53094970501,457.84473927605,488.36772189445,523.2511306012],description:"optimized (15/14)^3 (16/15)^4 (21/20)^3 (25/24)^2 scale"},smithgw_pum13marv:{frequencies:[261.6255653006,293.67396865289,305.56991629828,343.00138030143,326.66798000724,366.68389807519,349.22276077151,392.00157668785,407.88051296056,457.84473927605,436.04260883433,489.45661357347,549.41368713126,523.2511306012],description:"pum13 marvel tempered and in epimorphic order"},smithgw_qm3a:{frequencies:[261.6255653006,279.86396690685,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,457.27406033445,489.15147723638,523.2511306012],description:"Qm(3) 10-note quasi-miracle scale, mode A, 72-tET, TL 04-01-2002"},smithgw_qm3b:{frequencies:[261.6255653006,279.86396690685,299.37379946195,326.46944327063,349.22823143301,373.57357677338,391.99543598175,419.32216217931,448.5538823653,489.15147723638,523.2511306012],description:"Qm(3) 10-note quasi-miracle scale, mode B"},smithgw_ragasyn1:{frequencies:[261.6255653006,269.16210421872,290.69507255622,313.95067836072,322.99452506247,348.83408706747,363.36884069528,392.4383479509,403.74315632809,436.04260883433,470.92601754108,484.4917875937,523.2511306012],description:"Ragasyn 6561/6250 81/80 scale"},smithgw_rainbow:{frequencies:[261.6255653006,273.37431312998,292.50627485027,310.51268695591,327.03195662575,349.91912034749,365.63284274659,391.22147055517,412.03444522126,437.39889945791,468.01003810189,489.02683710225,523.2511306012],description:"Circulating 1/4-comma meantone, Gene Ward SMith"},smithgw_ratwell:{frequencies:[261.6255653006,275.62199471997,293.02063313667,310.07474405997,326.72451751701,348.83408706747,367.49599295996,392.4383479509,413.43299207996,437.57747881743,465.11211608996,489.99465727995,523.2511306012],description:"7-limit rational well-temperament"},smithgw_ratwolf:{frequencies:[261.6255653006,272.55669785235,292.25605339318,313.37920299881,326.47268679644,350.06888377949,364.69531895389,391.05410158062,407.39296674476,436.83777202739,468.410735204,487.98168129749,523.2511306012],description:"Eleven fifths of (418/5)^(1/11) and one 20/13 wolf, G.W. Smith 2003"},smithgw_rectoo:{frequencies:[261.6255653006,290.69507255622,299.00064605783,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Hahn-reduced circle of fifths via <12 19 27 34| kernel"},smithgw_sc19:{frequencies:[261.6255653006,269.16210421872,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,508.60009894437,523.2511306012],description:"Fokker block from commas <81/80, 78732/78125>, Gene Ward Smith 2002"},smithgw_sch13:{frequencies:[261.6255653006,269.71217215021,278.04872701265,282.14859498561,290.86954990528,295.15846273282,304.2815407612,313.68660297237,318.31195648825,328.15068782436,332.98931632582,343.28171142549,353.89223299652,359.11042631209,370.21019888355,375.66900084958,387.28058594818,392.99109319609,405.13808832031,417.66053353744,423.81899742763,436.9188548657,443.36128543927,457.06517711961,471.19264083172,478.14044600934,492.91932687455,500.18749236202,515.64783010531,523.2511306012],description:"13-limit schismic temperament, g=704.3917, TL 31-10-2002"},smithgw_sch13a:{frequencies:[261.6255653006,266.49502311502,271.45511438723,280.18048669638,285.39529457963,294.56874561631,300.051354061,305.6360048159,315.46005229837,321.33149462105,331.66004360268,337.8330052901,344.12086009392,355.18192699392,361.79268541866,373.4217751344,380.37201938485,392.59830625439,399.90547017058,407.34863733398,420.4420328577,428.26743302475,442.03321824291,450.26048038501,458.64087358289,473.38295124548,482.19370453904,497.69284002863,506.95605959354,523.2511306012],description:"13-limit schismic temperament, g=702.660507, TL 31-10-2002"},smithgw_scj22a:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,301.39265122629,313.95067836072,327.03195662575,334.88072358477,348.83408706747,361.67118147155,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"225/224 ^ 15625/15552 = [6,5,22,37,-18,-6] catakleismic"},smithgw_scj22b:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,372.08969287196,387.59343007496,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"5120/5103 ^ 225/224 = [1,-8,-14,-10,25,-15] schismic candidate"},smithgw_scj22c:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"225/224 ^ 65625/65536 = [7,-3,827,7,-21] orwell candidate"},smithgw_secab:{frequencies:[261.6255653006,274.07613169002,291.39807132323,313.10572011471,348.73657263424,365.33268718488,392.54808236386,417.35759110361,437.21932894603,486.97408086388,523.2511306012],description:"{126/125, 176/175} tempering of decab, 328-et version"},smithgw_secac:{frequencies:[261.6255653006,281.11531641881,298.8821409504,313.10572011471,348.73657263424,374.71564313773,392.54808236386,417.35759110361,448.44857247831,499.48119153644,523.2511306012],description:"{126/125, 176/175} tempering of decac, 328-et version"},smithgw_secad:{frequencies:[261.6255653006,281.11531641881,313.10572011471,328.00618883132,348.73657263424,374.71564313773,392.54808236386,437.21932894603,469.78990700991,499.48119153644,523.2511306012],description:"{126/125, 176/175} tempering of decad, 328-et version"},smithgw_smalldi11:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,322.92069774245,366.27579142084,373.75080757229,423.93031414449,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"Small diesic 11-note block, <10/9, 126/125, 1728/1715> commas"},smithgw_smalldi19a:{frequencies:[261.6255653006,269.10058145205,272.52663052146,299.00064605783,305.22982618403,313.95067836072,317.94773560837,327.03195662575,358.80077526939,366.27579142084,373.75080757229,381.53728273004,418.60090448096,430.56093032327,436.04260883433,448.50096908674,457.84473927605,502.32108537715,508.71637697339,523.2511306012],description:"Small diesic 19-note block, <16/15, 126/125, 1728/1715> commas"},smithgw_smalldi19b:{frequencies:[261.6255653006,266.96486255163,274.70684356563,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,358.80077526939,366.27579142084,373.75080757229,381.53728273004,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,498.33441009638,512.78610798918,523.2511306012],description:"Small diesic 19-note block, <16/15, 126/125, 2401/2400> commas"},smithgw_smalldi19c:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,286.15296204753,313.95067836072,320.49131749323,327.03195662575,336.37572681506,343.38355445704,373.75080757229,381.53728273004,392.4383479509,400.61414686654,436.04260883433,448.50096908674,457.84473927605,470.92601754108,508.71637697339,523.2511306012],description:"Small diesic 19-note scale containing glumma"},smithgw_smalldiglum19:{frequencies:[261.6255653006,267.74077300753,273.99891691894,280.40333801024,286.95745534843,312.9293240034,320.24370022528,327.729041887,335.38934511627,343.22869944589,374.29355081838,383.0422478503,391.99543598175,401.15789496562,437.46578647972,447.69106452518,458.15534711532,468.86422071654,511.30005826145,523.2511306012],description:'Small diesic "glumma" variant of 19-note MOS, 31/120 version'},smithgw_smalldimos11:{frequencies:[261.6255653006,267.74077300753,305.78200836532,312.9293240034,320.24370022528,365.74467430283,374.29355081838,427.47405410759,437.46578647972,447.69106452518,511.30005826145,523.2511306012],description:"Small diesic 11-note MOS, 31/120 version"},smithgw_smalldimos19:{frequencies:[261.6255653006,267.74077300753,273.99891691894,298.79793764201,305.78200836532,312.9293240034,320.24370022528,327.729041887,357.39105439675,365.74467430283,374.29355081838,383.0422478503,417.71053321823,427.47405410759,437.46578647972,447.69106452518,458.15534711532,499.62194879119,511.30005826145,523.2511306012],description:"Small diesic 19-note MOS, 31/120 version"},smithgw_star:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:'Gene Ward Smith "Star" scale, untempered version'},smithgw_star2:{frequencies:[261.6255653006,282.55561052465,313.95067836072,327.03195662575,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:'Gene Ward Smith "Star" scale, alternative untempered version'},starra:{frequencies:[261.6255653006,274.07613169002,294.49338559574,313.10572011471,328.00618883132,343.61575980934,374.71564313773,392.54808236386,411.22915413197,437.21932894603,458.02627217006,492.14685988839,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_starrb:{frequencies:[261.6255653006,274.07613169002,287.1192112957,305.26548915336,328.00618883132,343.61575980934,365.33268718488,392.54808236386,411.22915413197,437.21932894603,458.02627217006,479.82340237272,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_starrc:{frequencies:[261.6255653006,274.07613169002,287.1192112957,313.10572011471,328.00618883132,343.61575980934,365.33268718488,392.54808236386,411.22915413197,437.21932894603,458.02627217006,492.14685988839,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_tetra:{frequencies:[261.6255653006,274.84135386022,293.90210492181,314.2847539672,326.44746606412,342.93767672779,366.7210324511,392.15380743582,419.35039192746,435.57910814854,457.58200907672,489.31615916483,523.2511306012],description:"{225/224, 385/384} tempering of two-tetrachord 12-note scale"},smithgw_tr31:{frequencies:[261.6255653006,267.54129532085,292.57243455474,299.18791603519,305.95298478736,334.57791819083,342.14320575162,349.87955533643,391.26571058456,400.11279059885,409.15991580663,447.44088028055,457.55816161244,467.90420651233,511.68128147674,523.2511306012],description:"6/31 generator supermajor seconds tripentatonic scale"},smithgw_tr7_13:{frequencies:[261.6255653006,183.87449048025,346.05860897284,243.21533855007,457.74028507734,321.70694650116,605.46440189891,425.52973856044,299.06887661109,562.85871464284,395.58580335293,744.50714985079,523.2511306012],description:"81/80 ==> 28561/28672"},smithgw_tr7_13b:{frequencies:[261.6255653006,372.25357492539,395.58580335293,281.42935732142,299.06887661109,425.52973856044,302.73220094945,321.70694650116,457.74028507734,486.43067710015,346.05860897284,367.7489809605,523.2511306012],description:"reverse reduced 81/80 ==> 28561/28672"},smithgw_tr7_13r:{frequencies:[261.6255653006,367.7489809605,346.05860897284,486.43067710015,457.74028507734,321.70694650116,302.73220094945,425.52973856044,299.06887661109,281.42935732142,395.58580335293,372.25357492539,523.2511306012],description:"reduced 81/80 ==> 28561/28672"},smithgw_tra:{frequencies:[261.6255653006,128.35937755236,399.56478905052,196.03545836752,610.23096296248,299.39301413087,931.96857771927,457.24471305759,224.33452437931,698.32199734535,342.61245382262,1066.50464849657,523.2511306012],description:"81/80 ==> 1029/512"},smithgw_tre:{frequencies:[261.6255653006,256.71872396454,399.56476227799,392.07084290614,305.11544059319,299.39293769309,465.98419519089,457.24482979639,448.66910888407,349.16106442144,342.6124767791,533.2523889322,523.2511306012],description:"81/80 ==> 1029/512 ==> reduction"},smithgw_treb:{frequencies:[261.6255653006,266.6261944661,342.6124767791,349.16106442144,448.66910888407,457.24482979639,465.98419519089,299.39293769309,305.11544059319,392.07084290614,399.56476227799,513.43744792908,523.2511306012],description:"reversed 81/80 ==> 1029/512 ==> reduction"},smithgw_trx:{frequencies:[261.6255653006,490.17835855476,354.35176059633,331.954494127,479.94227969828,449.60690021487,325.02250210538,304.47902995326,285.23403465053,412.39349145653,386.32762147798,279.2776760715,523.2511306012],description:"reduced 3/2->7/6 5/4->11/6 scale"},smithgw_trxb:{frequencies:[261.6255653006,279.2776760715,386.32762147798,412.39349145653,285.23403465053,304.47902995326,325.02250210538,449.60690021487,479.94227969828,331.954494127,354.35176059633,490.17835855476,523.2511306012],description:"reversed reduced 3/2->7/6 5/4->11/6 scale"},smithgw_wa:{frequencies:[261.6255653006,273.6474362764,299.37379946195,313.13022722746,327.51877211613,349.22823143301,374.77430422696,391.99543598175,417.97870684853,437.18511000944,469.1652354389,500.26367760099,523.2511306012],description:"Wreckmeister A temperament, TL 2-6-2002"},smithgw_wa120:{frequencies:[261.6255653006,273.99891691894,298.79793764201,312.9293240034,327.729041887,349.22823143301,374.29355081838,391.99543598175,417.71053321823,437.46578647972,468.86422071654,499.62194879119,523.2511306012],description:"120-tET version of Wreckmeister A temperament"},smithgw_wb:{frequencies:[261.6255653006,280.76349612739,291.78605424516,313.13022722746,327.51877211613,349.22823143301,365.2755039332,391.99543598175,417.97870684853,437.18511000944,469.1652354389,487.58430040208,523.2511306012],description:"Wreckmeister B temperament, TL 2-6-2002"},smithgw_well1:{frequencies:[261.6255653006,275.92984511873,292.92635710626,310.42107575858,327.5229776175,349.2237102284,367.90646015831,391.734151992,413.8947676781,437.99072463899,465.63161363786,490.54194687775,523.2511306012],description:"Well-temperament, Gene Ward Smith (2005)"},smithgw_whelp1:{frequencies:[261.6255653006,275.93321340298,292.50627485027,310.07474405997,327.03195662575,348.05120395042,368.50381975103,390.45372436301,413.66634097248,438.25895612273,464.36382062247,491.65133958137,523.2511306012],description:"well-temperament with one pure third, Gene Ward Smith, 2003"},smithgw_whelp2:{frequencies:[261.6255653006,275.85000668176,292.43269265164,309.98104674077,327.03195662575,347.97308568611,368.21146504308,391.7894791814,413.34036955908,438.14417346548,464.48314871299,489.73685071229,523.2511306012],description:"well-temperament with two pure thirds"},smithgw_whelp3:{frequencies:[261.6255653006,275.96871294479,292.50627485027,310.03485655885,327.03195662575,349.46135677641,368.11883862276,391.73393619399,413.66634097248,436.82669499534,464.84945270756,489.66742197778,523.2511306012],description:"well-temperament with three pure thirds"},smithgw_wiz28:{frequencies:[261.6255653006,269.80136421624,277.4816601673,280.31310567921,287.78812183066,297.30177875068,305.22982618403,308.34441624714,317.12189733406,327.03195662575,336.37572681506,345.34574619679,348.83408706747,359.73515228832,370.01329949656,380.54627680087,392.4383479509,396.40237166758,406.97310157871,418.60090448096,431.68218274599,436.04260883433,448.50096908674,460.46099492906,475.68284600109,490.54793493862,493.35106599542,508.71637697339,523.2511306012],description:"11-limit Wizard[28]"},smithgw_wiz34:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.4816601673,280.31310567921,287.78812183066,297.30177875068,305.22982618403,308.34441624714,313.95067836072,317.12189733406,327.03195662575,336.37572681506,345.34574619679,348.83408706747,356.76213450082,359.73515228832,370.01329949656,380.54627680087,383.71749577421,392.4383479509,396.40237166758,406.97310157871,418.60090448096,431.68218274599,436.04260883433,443.97065626768,448.50096908674,460.46099492906,475.68284600109,490.54793493862,493.35106599542,504.56359022259,508.71637697339,523.2511306012],description:"11-limit Wizard[34]"},smithgw_wiz38:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.4816601673,280.31310567921,285.40970760065,287.78812183066,297.30177875068,305.22982618403,308.34441624714,313.95067836072,317.12189733406,327.03195662575,336.37572681506,339.14425131559,345.34574619679,348.83408706747,356.76213450082,359.73515228832,370.01329949656,380.54627680087,383.71749577421,392.4383479509,396.40237166758,403.65087217807,406.97310157871,418.60090448096,431.68218274599,436.04260883433,443.97065626768,448.50096908674,460.46099492906,475.68284600109,479.64686971777,490.54793493862,493.35106599542,504.56359022259,508.71637697339,523.2511306012],description:"11-limit Wizard[38]"},smithgw_wreckpop:{frequencies:[261.6255653006,272.73569398658,292.31087910123,313.29104303136,326.59518553839,350.03605285217,364.90060015836,391.09077971329,419.16071913933,436.9606979923,455.51656649021,501.93603498211,523.2511306012],description:'"Wreckmeister" 13-limit meanpop (50-et) tempered thirds'},smithj12:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,331.11985608357,344.91651675372,363.36884069528,392.4383479509,408.78994578219,441.49314144476,459.88868900496,496.67978412536,523.2511306012],description:"J. Smith, 5-limit JI scale, MMM 21-3-2006"},smithj17:{frequencies:[261.6255653006,272.57820116223,283.17034563789,295.02492750576,308.97787266236,319.3201344739,332.68808325276,348.42227432308,363.00854876594,377.11473546037,392.90218486657,411.48414905414,425.25755219187,443.06044202496,464.01459698705,479.54632553791,499.62194879119,523.2511306012],description:"J. Smith 17-tone well temperament, MMM 12-2006"},smithrk_19:{frequencies:[261.6255653006,274.68253637698,286.11368885031,294.3308008075,305.19387818096,313.95878694534,327.0246436172,343.34529416761,348.83287827711,366.24211271841,381.48359653409,392.43970784476,406.92376081862,418.61050714007,436.03134720211,457.79213919624,470.93981233279,488.32112480698,508.64303280756,523.2511306012],description:"19 out of 612-tET by Roger K. Smith, 1978"},smithrk_mult:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:'Roger K. Smith, "Multitonic" scale, just version'},solar:{frequencies:[261.6255653006,394.58976180129,774.00176545642,2207.36533954793,5481.83445910426,34573.03685904828,65024.37680021134,105705.6559450381],description:"Solar system scale: 0=Pluto, 8=Mercury. 1/1=248.54 years period"},solemn:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Solemn 6"},songlines:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Songlines.DEM, Bill Thibault and Scott Gresham-Lancaster. 1992 ICMC (=rectsp6)"},sorge:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Sorge's Monochord (1756)"},sorge1:{frequencies:[261.6255653006,276.86979852503,293.00227310437,311.47852302926,328.88393162803,349.6228209638,369.57684148724,391.5530240856,415.30469757995,439.00737933323,466.69047534984,493.32589719545,523.2511306012],description:"Georg Andreas Sorge, 1744 (A)"},sorge2:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.88393162803,348.83408706747,368.74309237173,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Georg Andreas Sorge, 1744 (B)"},sorge3:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,348.83408706747,369.15973155124,391.5530240856,414.83597850347,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Georg Andreas Sorge, well temperament, (1756, 1758)"},sparschuh:{frequencies:[261.6255653006,276.27659695743,293.02063313667,310.81117157711,328.60171001755,349.008504111,368.36879594324,391.3918456897,414.41489543615,439.53094970501,465.69350623507,491.85606276513,523.2511306012],description:"Andreas Sparschuh WTC temperament, 1/1=C=250, modified Collatz sequence"},sparschuh2:{frequencies:[261.6255653006,276.27659695743,293.02063313667,310.81117157711,328.60171001755,349.008504111,368.36879594324,391.3918456897,414.41489543615,438.48444744381,465.69350623507,491.85606276513,523.2511306012],description:"Modified Sparschuh temperament with A=419Hz by Tom Dent"},spec1_14:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,523.2511306012],description:"Spectrum sequence of 8/7: 1 to 27 reduced by 2/1"},spec1_17:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,490.54793493862,523.2511306012],description:"Spectrum sequence of 7/6: 1 to 27 reduced by 2/1"},spec1_25:{frequencies:[261.6255653006,277.97716313189,294.32876096318,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 5/4: 1 to 25 reduced by 2/1"},spec1_33:{frequencies:[261.6255653006,277.97716313189,294.32876096318,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,474.19633710734,490.54793493862,523.2511306012],description:"Spectrum sequence of 4/3: 1 to 29 reduced by 2/1"},spec1_4:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 7/5: 1 to 25 reduced by 2/1"},spec1_5:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 1.5: 1 to 27 reduced by 2/1"},specr2:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,474.19633710734,490.54793493862,523.2511306012],description:"Spectrum sequence of sqrt(2): 1 to 29 reduced by 2/1"},specr3:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Spectrum sequence of sqrt(3): 1 to 31 reduced by 2/1"},spon_chal1:{frequencies:[261.6255653006,280.31310567921,285.40970760065,286.15296204753,348.83408706747,392.4383479509,420.46965851882,428.11456140098,429.2294430713,523.2511306012],description:"JC Spondeion, from discussions with George Kahrimanis about tritone of spondeion"},spon_chal2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,285.40970760065,348.83408706747,392.4383479509,413.43299207996,418.60090448096,428.11456140098,523.2511306012],description:"JC Spondeion II, 10 May 1997. Various tunings for the parhypatai and hence trito"},spon_mont:{frequencies:[261.6255653006,271.31540105247,348.83408706747,392.4383479509,428.11456140098,523.2511306012],description:"Montford's Spondeion, a mixed septimal and undecimal pentatonic, 1923"},spon_terp:{frequencies:[261.6255653006,285.40970760065,348.83408706747,392.4383479509,428.11456140098,523.2511306012],description:"Subharm. 6-tone series, guess at Greek poet Terpander's, 6th c. BC & Spondeion, Winnington-Ingram (1928)"},stade:{frequencies:[261.6255653006,274.22463192287,292.50627485027,309.28772967674,327.03195662575,348.83408706747,365.63284274659,391.22147055517,411.33694767869,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Organs in St. Cosmae, Stade; Magnuskerk, Anloo; H.K. Sluipwijk, modif. 1/4 mean"},stanhope:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,326.6631048533,348.83408706747,367.49599295996,392.4383479509,413.43299207996,437.52264545758,465.11211608996,489.99465727995,523.2511306012],description:"Well temperament of Charles, third earl of Stanhope (1806)"},stanhope2:{frequencies:[261.6255653006,275.85537639807,293.11251278827,310.16223770573,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.66634097248,437.85193595173,465.11211608996,490.54793493862,523.2511306012],description:"Stanhope temperament (real version?) with 1/3 synt. comma temp."},stanhope_f:{frequencies:[261.6255653006,275.62199471997,292.46014274879,310.07474405997,326.6631048533,348.83408706747,367.49599295996,392.4383479509,413.43299207996,436.79202494356,465.11211608996,489.99465727995,523.2511306012],description:"Stanhope temperament, equal beating version by Farey (1807)"},stanhope_s:{frequencies:[261.6255653006,275.77758308753,293.11247215425,310.2497806633,327.03195662575,348.83408706747,367.7034443005,392.4383479509,413.66637442451,437.85181455341,465.11211608996,490.54793493862,523.2511306012],description:"Stanhope temperament, alt. version with 1/3 syntonic comma"},starling:{frequencies:[261.6255653006,278.9816419584,293.66476791741,313.14630527334,327.50195613664,349.22823143301,367.60851651046,391.99543598175,418.00016846495,437.16266336983,466.16376151809,490.69849857048,523.2511306012],description:"Starling temperament, Herman Miller (1999)"},stearns:{frequencies:[261.6255653006,299.00064605783,336.37572681506,366.27579142084,398.6675280771,448.50096908674,504.56359022259,523.2511306012],description:"Dan Stearns, guitar scale"},stearns2:{frequencies:[261.6255653006,280.31310567921,287.78812183066,299.00064605783,313.95067836072,317.68818643644,336.37572681506,340.11323489078,355.06326719367,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,429.81342870813,444.76346101102,448.50096908674,467.18850946536,470.92601754108,485.87604984397,497.08857407114,504.56359022259,523.2511306012],description:'Dan Stearns, scale for "At A Day Job" based on harmonics 10-20 and 14-28'},stearns3:{frequencies:[261.6255653006,304.11599009871,327.88291945286,364.30920726489,423.47641042702,470.52269644143,546.93995798074,607.70247408742,706.39900722312,784.8766959018],description:"Dan Stearns, trivalent version of Bohlen's Lambda scale"},stearns4:{frequencies:[261.6255653006,296.65550714972,336.37572681506,347.46339693852,393.986457405,446.73865184892,461.46412096988,523.2511306012],description:"Dan Stearns, 1/4-septimal comma temperament, tuning-math 2-12-2001"},steldek1:{frequencies:[261.6255653006,274.70684356563,275.93321340298,280.31310567921,286.15296204753,294.32876096318,305.22982618403,309.04519901133,315.35224388912,321.92208230347,327.03195662575,331.11985608357,343.38355445704,353.19451315581,367.91095120397,381.53728273004,386.30649876417,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,441.49314144476,457.84473927605,490.54793493862,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Stellated two out of 1 3 5 7 9 dekany"},steldek1s:{frequencies:[261.6255653006,274.70684356563,275.93321340298,280.31310567921,286.15296204753,294.32876096318,305.22982618403,309.04519901133,315.35224388912,321.92208230347,327.03195662575,331.11985608357,339.14425131559,343.38355445704,353.19451315581,360.4025644447,367.91095120397,381.53728273004,386.30649876417,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,441.49314144476,457.84473927605,482.88312345521,490.54793493862,494.47231841813,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Superstellated two out of 1 3 5 7 9 dekany"},steldek2:{frequencies:[261.6255653006,262.3068818769,269.80136421624,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.7792935736,308.34441624714,312.16686768822,314.76825825228,327.03195662575,337.2517052703,343.38355445704,356.76213450082,359.73515228832,377.72190990274,381.53728273004,385.43052030892,392.4383479509,393.46032281536,400.61414686654,408.78994578219,416.22249025095,419.69101100305,429.2294430713,431.68218274599,449.66894036041,457.84473927605,472.15238737843,490.54793493862,494.63583439645,499.46698830115,503.62921320365,513.90736041189,523.2511306012],description:"Stellated two out of 1 3 5 7 11 dekany"},steldek2s:{frequencies:[261.6255653006,262.3068818769,269.80136421624,274.70684356563,280.31310567921,286.15296204753,294.32876096318,295.09524211152,299.7792935736,302.17752792219,308.34441624714,312.16686768822,314.76825825228,327.03195662575,337.2517052703,343.38355445704,349.7425091692,356.76213450082,359.73515228832,377.72190990274,381.53728273004,385.43052030892,392.4383479509,393.46032281536,400.61414686654,408.78994578219,416.22249025095,419.69101100305,429.2294430713,431.68218274599,440.49202321019,449.66894036041,454.06089845559,457.84473927605,472.15238737843,490.54793493862,494.63583439645,499.46698830115,503.62921320365,513.90736041189,523.2511306012],description:"Superstellated two out of 1 3 5 7 11 dekany"},steleik1:{frequencies:[220,220.57291666667,224.58333333333,225,226.875,229.16666666667,232.03125,235.27777777778,238.21875,240.625,242.63020833333,243.08035714286,247.5,248.14453125,252.08333333333,252.65625,255.234375,256.66666666667,257.8125,262.5,264.6875,270.703125,272.25,275,277.29166666667,278.4375,280.72916666667,283.59375,288.75,294.09722222222,297.7734375,302.5,308.80208333333,309.375,311.953125,315,315.10416666667,317.625,320.83333333333,324.10714285714,324.84375,330,330.859375,336.11111111111,336.875,340.3125,343.75,346.5,346.61458333333,350,352.91666666667,353.57142857143,360.9375,366.66666666667,371.25,378.125,385,388.92857142857,392.12962962963,393.75,397.03125,401.04166666667,403.33333333333,412.5,415.9375,423.5,425.390625,427.77777777778,432.14285714286,433.125,440],description:"Stellated Eikosany 3 out of 1 3 5 7 9 11"},steleik1s:{frequencies:[123.47082531403,123.79236392162,125.33976847064,127.32928860509,129.9819821177,130.22313607339,131.308328874,132.59082945654,132.63467563031,133.69575303535,135.04621518722,136.42423779117,136.73429287706,138.90467847828,139.26640941182,141.47698733899,141.79852594658,143.24544968073,144.69237341488,145.8499124022,145.89814319334,147.3231438406,148.55083670594,148.82644122673,151.92699208562,154.33853164254,156.26776328807,156.6747105883,159.16161075637,160.43490364242,160.48795751267,162.05545822466,163.70908534941,165.05648522882,165.43161360434,165.73853682068,167.11969129419,168.80776898403,169.77238480679,173.63084809785,175.077771832,175.80123369908,178.26100404713,179.05681210091,180.06162024963,181.89898372156,182.31239050275,185.20623797104,185.68854588243,189.06470126211,189.41547065221,190.99393290764,192.92316455317,195.33470411009,198.06778227459,200.54362955302,202.56932278083,204.25740047067,204.63635668676,208.35701771743,208.89961411773,212.21548100849,212.69778891987,214.8681745211,216.07394429955,217.03856012232,220.07531363843,220.98471576091,222.82625505891,227.89048812843,229.19271948917,231.50779746381,233.43702910934,233.87012192772,234.4016449321,236.33087657764,238.74241613455,241.07423537553,241.15395569146,243.083187337,246.94165062806],description:"Superstellated Eikosany 3 out of 1 3 5 7 9 11"},steleik2:{frequencies:[123.47082531403,124.49974885831,126.04313417474,126.11662871362,127.68005799519,128.74405847848,129.64436657973,130.41605923794,132.04518818306,132.96858110742,133.76006075687,135.81790784543,137.94006265552,138.64744759221,140.44806379471,141.47698733899,144.0492961997,145.92006628022,146.26543921816,147.13606683255,148.16499037684,148.55083670594,151.25176100969,152.15206911093,154.33853164254,154.49287017418,155.62468607289,156.05340421634,157.14468676331,157.64578589202,158.45422581967,160.51207290824,160.9300730981,163.85607442716,164.62776708537,167.20007594608,169.77238480679,170.24007732692,171.65874463798,172.85915543964,173.88807898393,175.56007974339,176.56328019906,180.06162024963,181.09054379391,182.8317990227,183.92008354069,185.20623797104,186.74962328747,187.26408505961,190.14507098361,193.11608771773,194.02558263633,197.55332050245,198.06778227459,200.6400911353,201.66901467958,202.31209189476,203.72686176815,204.2880927923,205.78470885672,205.99049356557,208.95062745451,210.19438118936,214.01609721099,214.57343079747,216.07394429955,217.36009872991,217.87456050205,220.70410024883,224.71690207153,226.36317974239,229.30296129748,230.47887391952,234.08010632452,237.68133872951,239.0961086029,240.76810936236,243.77573203026,245.22677805425,246.94165062806],description:"Stellated Eikosany 3 out of 1 3 5 7 11 13"},steleik2s:{frequencies:[61.73541265702,61.89618196081,62.32902239411,62.70002847979,63.66464430255,64.65940436978,64.99099105886,65.83502990378,66.22690508177,66.31733781516,67.05419712422,67.52310759362,68.40003106886,68.56192463352,68.97003132776,69.45233923915,69.63320470592,70.8992629733,71.32128239576,72.34618670745,72.41853289415,72.94907159667,73.15003322642,73.66157192031,73.89646213689,74.27541835298,75.24003417574,75.43597176474,76.80753488774,77.16926582128,78.37503559973,79.58080537819,79.800036247,80.24397875634,80.46503654906,81.02772911234,81.51003702372,82.29378737972,82.71580680218,82.76403759332,84.40388449202,84.45309958502,84.8861924034,85.7024057919,86.21253915971,86.81542404893,87.05458499673,87.53888591601,87.7800398717,89.13050202357,90.52316611769,90.94949186079,92.60311898553,92.84427294122,94.05004271968,94.53235063106,94.83379307568,95.49696645383,95.7600434964,96.46158227659,96.55804385887,97.94560661931,98.52861618252,100.32004556766,100.58129568632,101.28466139042,101.88754627965,102.12870023534,103.45504699165,104.17850885872,105.33604784604,105.47988405157,106.10774050425,107.4857631082,108.03697214979,109.72504983963,111.41312752947,112.07630090762,112.86005126361,113.15395764711,114.2698743892,114.95005221294,115.75389873191,115.86965263064,116.71851455468,118.16543828883,118.23433941902,119.7000543705,120.57697784574,120.69755482359,121.54159366851,122.26505553558,123.47082531404],description:"Superstellated Eikosany 3 out of 1 3 5 7 11 13"},stelhex1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,294.32876096318,327.03195662575,343.38355445704,381.53728273004,392.4383479509,400.61414686654,408.78994578219,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 7 hexany, also dekatesserany, mandala, tetradekany"},stelhex2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,327.03195662575,331.11985608357,353.19451315581,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 9 hexany"},stelhex3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,281.36411960997,289.40309445597,297.67175429757,339.14425131559,348.83408706747,358.80077526939,361.75386806997,372.08969287196,385.87079260796,434.10464168396,465.11211608996,523.2511306012],description:"Stellated Tetrachordal Hexany based on Archytas's Enharmonic"},stelhex4:{frequencies:[261.6255653006,269.10058145205,276.78916949353,279.06726965397,287.04062021552,297.67175429757,336.37572681506,348.83408706747,358.80077526939,361.75386806997,372.08969287196,382.72082695402,430.56093032327,465.11211608996,523.2511306012],description:"Stellated Tetrachordal Hexany based on the 1/1 35/36 16/15 4/3 tetrachord"},stelhex5:{frequencies:[261.6255653006,294.32876096318,305.22982618403,331.11985608357,343.38355445704,386.30649876417,392.4383479509,400.61414686654,441.49314144476,457.84473927605,504.56359022259,515.07533168556,523.2511306012],description:"Stellated two out of 1 3 7 9 hexany, stellation is degenerate"},stelhex6:{frequencies:[261.6255653006,269.80136421624,294.32876096318,299.7792935736,327.03195662575,337.2517052703,356.76213450082,359.73515228832,392.4383479509,408.78994578219,431.68218274599,449.66894036041,490.54793493862,494.63583439645,523.2511306012],description:"Stellated two out of 1 3 5 11 hexany, from The Giving, by Stephen J. Taylor"},stelpd1:{frequencies:[207.65234878997,208.19311011494,212.37172035338,214.14148468966,218.03496622947,219.00833661442,222.07265078927,222.48465941783,222.99030637105,224.84855892414,227.11975648903,229.43730502463,233.60889238872,237.93498298851,240.90917027586,242.2610735883,244.73312535961,245.28933700815,247.76700707894,249.83173213793,250.29524184505,254.84606442405,255.50972605016,256.96978162759,259.56543598746,262.81000393731,267.67685586207,272.54370778684,275.32476602956,277.59081348659,280.33067086646,281.06069865517,283.1622938045,285.52197958621,292.0111154859,297.32040849473,299.79807856552,302.82634198537,305.91640669951,306.61167126019,311.47852318496,312.28966517242,317.24664398468,317.96765908464,318.55758053007,321.21222703448,324.45679498433,327.0524493442,330.35600943859,333.10897618391,333.72698912674,340.67963473354,342.62637550345,346.08724798328,350.41333858307,356.90247448276,363.39161038245,367.09968803941,371.65051061841,374.7475982069,380.69597278161,385.45467244138,389.34815398119,392.59272193104,396.42721132631,399.73077142069,400.47238695209,401.51528379311,403.7684559805,407.88854226601,408.81556168025,415.30469757994],description:"Stellated two out of 1 3 5 7 9 11 pentadekany"},stelpd1s:{frequencies:[21.82676446456,21.88360499702,22.15715005948,22.2309638065,22.3228272933,22.50885085408,22.68892166091,22.91810268779,23.02041564622,23.14959867453,23.15196087848,23.34251199682,23.38581906917,23.43896865797,23.624449876,23.63429339678,23.87302363311,24.11662591508,24.35217522905,24.55511002263,24.61905562165,25.00983428231,25.20991295657,25.32245721084,25.46455854199,25.72440097609,25.78286552376,25.93612444091,26.04329850885,26.26032599642,26.30904645282,26.78739275196,26.85715158725,27.01062102489,27.2834555807,27.56185818867,27.62449877546,27.69643757435,28.01101439619,28.1360635676,28.29395393554,28.36115207614,28.41087110056,28.58266775121,28.64762835974,28.9399510981,29.17813999603,29.29871082246,29.46613202716,29.54286674598,29.7637697244,30.01180113877,30.06748166036,30.69388752829,30.99367756425,31.12334932909,31.25195821062,31.51239119571,31.65307151355,31.83069817748,32.15550122011,32.2285819047,32.41274522987,32.74014669684,32.82540749553,33.0742298264,33.34644570974,33.42223308636,33.48424093995,33.76327628112,34.09304532068,34.10431947588,34.37715403168,34.58149925455,34.7243980118,35.01376799523,35.07872860376,35.45144009517,35.80953544967,36.01416136652,36.17493887262,36.37794077427,36.74914425156,36.83266503394,36.92858343247,37.50234985274,37.51475142346,37.81486943485,37.88116146742,38.19683781298,38.26770393137,38.58660146413,38.90418666137,39.06494776328,39.39048899464,40.01573485169,40.28572738088,40.51593153734,40.92518337105,41.25258483802,41.26622656581,41.342787283,41.66927761416,42.01652159428,42.09447432451,42.2040953514,42.44093090331,42.61630665085,42.87400162681,42.9714425396,43.65352892912],description:"Superstellated two out of 1 3 5 7 9 11 pentadekany"},stelpent1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,353.19451315581,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,406.97310157871,412.06026534844,420.46965851882,436.04260883433,441.49314144476,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Stellated one out of 1 3 5 7 9 pentany"},stelpent1s:{frequencies:[261.6255653006,271.31540105247,274.70684356563,275.93321340298,280.31310567921,282.55561052465,286.15296204753,288.32205155576,290.69507255622,294.32876096318,301.46155672497,305.22982618403,309.04519901133,313.95067836072,315.35224388912,320.35783506196,321.92208230347,327.03195662575,329.64821227876,336.37572681506,339.14425131559,343.38355445704,348.83408706747,353.19451315581,360.4025644447,366.27579142084,367.91095120397,373.75080757229,381.53728273004,386.30649876417,387.59343007496,392.4383479509,395.57785473451,403.65087217807,406.97310157871,411.88864507966,412.06026534844,420.46965851882,429.2294430713,436.04260883433,439.53094970501,441.49314144476,448.50096908674,452.19233508746,457.84473927605,470.92601754108,480.53675259294,482.88312345521,488.36772189445,490.54793493862,494.47231841813,498.33441009638,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Superstellated one out of 1 3 5 7 9 pentany"},steltet1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,305.22982618403,313.95067836072,327.03195662575,343.38355445704,366.27579142084,373.75080757229,381.53728273004,392.4383479509,436.04260883433,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Stellated one out of 1 3 5 7 tetrany"},steltet1s:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,305.22982618403,313.95067836072,320.35783506196,327.03195662575,343.38355445704,366.27579142084,373.75080757229,381.53728273004,392.4383479509,429.2294430713,436.04260883433,439.53094970501,448.50096908674,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:"Superstellated one out of 1 3 5 7 tetrany"},steltet2:{frequencies:[261.6255653006,267.07609791103,272.52663052146,286.15296204753,305.22982618403,327.03195662575,333.84512238879,343.38355445704,381.53728273004,392.4383479509,400.61414686654,408.78994578219,436.04260883433,457.84473927605,476.92160341255,490.54793493862,523.2511306012],description:"Stellated three out of 1 3 5 7 tetrany"},steltet2s:{frequencies:[261.6255653006,286.15296204753,294.32876096318,300.46061014991,306.59245933664,327.03195662575,343.38355445704,350.53737850823,357.69120255941,367.91095120397,392.4383479509,400.61414686654,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Superstellated three out of 1 3 5 7 tetrany"},steltri1:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Stellated one out of 1 3 5 triany"},steltri2:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,408.78994578219,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 triany"},stevin:{frequencies:[261.6255653006,277.20445571159,293.66434538175,311.1256573916,329.66931111467,349.25319089654,369.99797100919,392.00714009679,415.41055144586,440.15068186507,466.27261682516,494.00597677606,523.2511306012],description:"Simon Stevin, monochord division of 10000 parts for 12-tET (1585)"},stopper:{frequencies:[261.6255653006,277.19910487213,293.6996776193,311.18246278326,329.70593120198,349.3320268423,370.12638880276,392.15855510068,415.50221189151,440.23542223935,466.44090588941,494.20629608476,523.62445363767,554.79375523088,587.81844599272,622.80896314278,659.88233179115,699.16252826162,740.78092441407,784.8766959018],description:"Bernard Stopper, piano tuning with 19th root of 3 (1988)"},storbeck:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,358.80077526939,381.53728273004,387.59343007496,392.4383479509,403.65087217807,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"Ulrich Storbeck, 2001"},strahle:{frequencies:[261.6255653006,278.94941459687,296.90543930973,315.65242990842,335.0021118691,355.12744448111,376.24442122187,398.15684412917,421.10213511252,444.85552088095,469.94877954106,496.17080790016,523.2511306012],description:"Strahle's Geometrical scale"},"sub24-12":{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Subharmonics 24-12"},sub24:{frequencies:[261.6255653006,10.90106522086,11.37502457829,11.89207115003,12.45836025241,13.08127826503,13.76976659477,14.53475362781,15.38973913533,16.35159783129,17.44170435337,18.68754037861,20.12504348466,21.80213044172,23.78414230005,26.16255653006,29.06950725562,32.70319566257,37.37508075723,43.60426088343,52.32511306012,65.40639132515,87.20852176687,130.8127826503,261.6255653006],description:"Subharmonics 24-1"},sub40:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,475.68284600109,498.33441009638,523.2511306012],description:"sub 40-20"},sub48:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,465.11211608996,502.32108537715,523.2511306012],description:"12 of sub 48 (Leven)"},sub50:{frequencies:[261.6255653006,272.52663052146,290.69507255622,311.45900631024,327.03195662575,344.24416486921,373.75080757229,384.74347838324,408.78994578219,436.04260883433,467.18850946536,484.4917875937,523.2511306012],description:"12 of sub 50"},sub8:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"Subharmonic series 1/16 - 1/8"},sumatra:{frequencies:[261.6255653006,266.79889483106,324.44528279699,356.96377863828,390.9602296356,474.47355835313,530.64156666967,639.28283484968,713.92755727656,784.8766959018],description:'"Archeological" tuning of Pasirah Rus orch. in Muaralakitan, Sumatra. 1/1=354 Hz'},super_10:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"A superparticular 10-tone scale"},super_11:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"A superparticular 11-tone scale"},super_12:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,372.08969287196,395.34529867646,418.60090448096,441.85651028546,465.11211608996,494.18162334558,523.2511306012],description:"A superparticular 12-tone scale"},super_12_1:{frequencies:[261.6255653006,280.31310567921,299.00064605783,317.68818643644,336.37572681506,355.06326719367,373.75080757229,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"Another superparticular 12-tone scale"},super_12_2:{frequencies:[261.6255653006,280.31310567921,299.00064605783,317.68818643644,336.37572681506,355.06326719367,373.75080757229,392.4383479509,420.46965851882,448.50096908674,473.41768959156,498.33441009638,523.2511306012],description:"Another superparticular 12-tone scale"},super_13:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"A superparticular 13-tone scale"},super_14:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"A superparticular 14-tone scale"},super_15:{frequencies:[261.6255653006,276.16031892841,290.69507255622,305.22982618403,319.76457981184,334.29933343966,348.83408706747,363.36884069528,381.53728273004,399.70572476481,417.87416679957,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"A superparticular 15-tone scale"},super_17:{frequencies:[261.6255653006,274.08392555301,286.54228580542,299.00064605783,311.45900631024,323.91736656265,336.37572681506,348.83408706747,363.36884069528,377.90359432309,392.4383479509,411.12588832951,429.81342870813,448.50096908674,467.18850946536,485.87604984397,504.56359022259,523.2511306012],description:"Superparticular 17-tone scale"},super_19:{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,316.13089140489,327.03195662575,340.11323489078,353.19451315581,366.27579142084,379.35706968587,392.4383479509,408.13588186894,423.83341578697,439.53094970501,455.22848362304,470.92601754108,488.36772189445,505.80942624783,523.2511306012],description:"Superparticular 19-tone scale"},super_19_1:{frequencies:[261.6255653006,272.09058791262,282.55561052465,293.02063313667,303.4856557487,313.95067836072,325.57848126297,337.20628416522,348.83408706747,363.36884069528,377.90359432309,392.4383479509,408.13588186894,423.83341578697,439.53094970501,455.22848362304,470.92601754108,488.36772189445,505.80942624783,523.2511306012],description:"Superparticular 19-tone scale"},super_19_2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Superparticular 19-tone scale"},super_22:{frequencies:[261.6255653006,270.96933548991,280.31310567921,289.65687586852,299.00064605783,308.34441624714,317.68818643644,327.03195662575,337.93302184661,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,406.45400323486,420.46965851882,434.48531380278,448.50096908674,463.45100138963,478.40103369253,493.35106599542,508.30109829831,523.2511306012],description:"Superparticular 22-tone scale"},super_22_1:{frequencies:[261.6255653006,272.09058791262,282.55561052465,293.02063313667,303.4856557487,313.95067836072,325.16320258789,336.37572681506,347.58825104223,358.80077526939,370.01329949656,381.22582372373,392.4383479509,405.51962621593,418.60090448096,431.68218274599,444.76346101102,457.84473927605,470.92601754108,484.00729580611,497.08857407114,510.16985233617,523.2511306012],description:"Superparticular 22-tone scale"},super_24:{frequencies:[261.6255653006,270.34641747729,279.06726965397,287.78812183066,296.50897400735,305.22982618403,313.95067836072,322.67153053741,331.39238271409,340.11323489078,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,405.51962621593,418.60090448096,431.68218274599,444.76346101102,457.84473927605,470.92601754108,484.00729580611,497.08857407114,510.16985233617,523.2511306012],description:"Superparticular 24-tone scale, inverse of Mans.ur 'Awad"},super_7:{frequencies:[261.6255653006,287.78812183066,313.95067836072,353.19451315581,392.4383479509,431.68218274599,470.92601754108,523.2511306012],description:"A superparticular 7-tone scale"},super_8:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"A superparticular 8 tone scale"},super_9:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"A superparticular 9-tone scale"},suppig:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Friedrich Suppig's 19-tone JI scale. Calculus Musicus, Berlin 1722"},sur_7:{frequencies:[261.6255653006,280.40333801024,327.729041887,351.25128999693,383.0422478503,410.5345162762,479.82340237272,523.2511306012],description:"7-tone surupan"},sur_9:{frequencies:[261.6255653006,280.40333801024,305.78200836532,327.729041887,351.25128999693,383.0422478503,410.5345162762,447.69106452518,479.82340237272,523.2511306012],description:"Theoretical nine-tone surupan gamut"},sur_ajeng:{frequencies:[261.6255653006,285.30470202322,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Surupan ajeng"},sur_degung:{frequencies:[261.6255653006,322.09885310804,345.21700307457,396.55020354877,488.21056770985,523.2511306012],description:"Surupan degung"},sur_madenda:{frequencies:[261.6255653006,322.09885310804,345.21700307457,425.01198472693,488.21056770985,523.2511306012],description:"Surupan madenda"},sur_melog:{frequencies:[261.6255653006,280.40333801024,305.78200836532,383.0422478503,410.5345162762,523.2511306012],description:"Surupan melog"},sur_miring:{frequencies:[261.6255653006,285.30470202322,305.78200836532,389.73770840504,417.71053321823,523.2511306012],description:"Surupan miring"},sur_x:{frequencies:[261.6255653006,280.40333801024,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Surupan tone-gender X (= unmodified nyorog)"},sur_y:{frequencies:[261.6255653006,280.40333801024,300.52885648597,383.0422478503,410.5345162762,523.2511306012],description:"Surupan tone-gender Y (= mode on pamiring)"},sverige:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,440,466.16376151809,493.88330125613,523.2511306012,554.36526195375,587.32953583482,622.25396744417,659.25511382574,698.45646286601,739.98884542327,783.9908719635,830.60939515989,880,932.32752303618,987.76660251225,1046.5022612024,1174.65907166964,1318.51022765149,1396.91292573202,1567.98174392701],description:"Scale on Swedish 50 crown banknote of some kind of violin."},syntonolydian:{frequencies:[261.6255653006,294.32876096318,331.11985608357,372.50983809402,392.4383479509,441.49314144476,496.67978412536,523.2511306012],description:"Greek Syntonolydian, also genus duplicatum medium, or ditonum (Al-Farabi)"},syrian:{frequencies:[261.6255653006,268.67837258085,275.62199471997,279.38237857051,286.74979536837,294.32876096318,302.10804307229,310.07474405997,314.30517589183,322.59351978942,326.6631048533,331.11985608357,339.85160932548,348.83408706747,358.05397697456,367.49599295996,372.50983809402,382.33306049116,392.4383479509,402.81072409638,413.43299207996,419.07356785577,430.12469305256,441.49314144476,453.13547910064,465.11211608996,477.40530263275,489.99465727995,496.67978412536,509.77741398822,523.2511306012],description:"After ^Sayh.'Ali ad-Darwis^ (Shaykh Darvish) from d'Erlanger vol.5, p.29"},szpak_24:{frequencies:[261.6255653006,270.98948203641,277.18263097687,287.10335517712,293.66476791741,304.17540907689,311.12698372208,322.26262012861,329.62755691287,341.42535271779,349.22823143301,361.7275606831,369.99442271164,383.23700075636,391.99543598175,406.02545869431,415.30469757995,430.16898885692,440,455.74816803176,466.16376151809,482.84836435151,493.88330125613,511.56002220218,523.2511306012],description:"Stephen Szpak's scale, TL 2-1-2004"},pagano_b:{frequencies:[261.6255653006,277.97716313189,289.55954492905,312.72430852337,333.57259575826,351.8148470888,370.63621750918,389.16802838464,416.96574469783,444.76346101102,463.29527188648,486.4600354808,523.2511306012],description:"Pat Pagano and David Beardsley, 17-limit scale, TL 27-2-2001"},palace:{frequencies:[261.6255653006,277.01530443593,294.32876096318,299.00064605783,336.37572681506,348.83408706747,373.75080757229,392.4383479509,409.50088481833,428.11456140098,448.50096908674,470.92601754108,523.2511306012],description:"Palace mode+"},palace2:{frequencies:[261.6255653006,277.01530443593,336.37572681506,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Byzantine Palace mode, 17-limit"},panpipe1:{frequencies:[261.6255653006,305.78200836532,346.61566493686,386.59871897734,424.03113209229,475.68400784708,523.2511306012],description:"Palina panpipe of Solomon Islands. 1/1=f+45c. From Ocora CD Guadalcanal"},panpipe2:{frequencies:[261.6255653006,301.39807245198,340.46429857933,389.512652082,435.70052664441,481.48922855473,540.45338572244,606.98892366383,675.83458963267,749.45240308975,819.17415016614,915.78156525194,979.24522642508,1073.44040298899,1178.73719255088,1360.28482360484],description:"Lalave panpipe of Solomon Islands. 1/1=f'+47c."},panpipe3:{frequencies:[261.6255653006,302.44445076078,341.44901934006,382.59999559751,433.19107626846,482.88183400971,542.01653249392,602.10016957865,677.78929781797,755.1012944609,822.018116801,906.30932187391,994.06270356141,1067.87449159209,1155.14617783291,1300.35790771888],description:"Tenaho panpipe of Solomon Islands. 1/1=f'+67c."},parachrom:{frequencies:[261.6255653006,274.52698453615,288.06460709314,349.22823143301,391.99543598175,411.32572372413,431.60923940535,523.2511306012],description:"Parachromatic, new genus 5 + 5 + 20 parts"},parakleismic:{frequencies:[261.6255653006,269.41173453909,271.00883762044,279.07425994419,280.72864356353,282.39283618632,290.79705467987,292.52093234567,301.22657042972,303.0122754386,312.03014360907,313.87989341557,323.22118988972,325.13728335605,327.06473376202,336.79842078181,338.79499972275,348.87778808468,350.94597487438,361.39038519337,363.53274806687,374.35175001315,376.5709514911,387.77797996035,390.07677146523,392.38919046486,404.06698135965,406.46233589795,418.55895395107,421.04021853379,433.57068509561,436.14094342919,449.12081866987,451.783257426,465.22865943552,467.98658728446,470.76086444006,484.77105399159,487.64483417146,502.15750307968,505.13434926963,520.16751901001,523.2511306012],description:"Parakleismic temperament, g=315.250913, 5-limit"},parizek:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Petr Parizek, 12-tone Linear Level tuning, 1/1=Ab"},parizek_13lqmt:{frequencies:[261.6255653006,272.70676208351,292.18581651805,313.05623198362,325.57848126297,348.83408706747,365.23227064756,391.32028997953,406.97310157871,436.04260883433,467.18850946536,486.97636086341,523.2511306012],description:"April 2003 - Petr Parizek"},parizek_17lqmt:{frequencies:[261.6255653006,272.52663052146,291.99281841585,312.60407618638,327.03195662575,350.39138209902,364.70475555078,390.75509523297,408.78994578219,436.04260883433,467.18850946536,488.44386904122,523.2511306012],description:"To tune the scale by ear, please choose the intervals in the following order:"},parizek_7lmtd1:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,418.60090448096,437.98922762377,468.83301301868,490.54793493862,523.2511306012],description:"Use SET MIDDLE 62"},parizek_7lqmtd2:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,390.69417751556,418.60090448096,437.98922762377,468.83301301868,488.36772189445,523.2511306012],description:"Use SET MIDDLE 62"},parizek_cirot:{frequencies:[261.6255653006,273.76082553017,293.33333347996,307.98092841354,327.40170814054,348.04713286849,366.66693712906,392.88175996935,409.71484950008,438.01699797506,463.01593599647,491.10256480205,523.2511306012],description:"Overtempered circular tuning (1/1 is F)"},parizek_epi:{frequencies:[261.6255653006,283.42769574232,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"In The Epimoric World"},parizek_epi2:{frequencies:[261.6255653006,283.42769574232,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,523.2511306012,523.2511306012],description:"In the Epimoric World - extended (version for two keyboards)"},parizek_epi2a:{frequencies:[261.6255653006,283.42769574232,287.78812183066,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012,523.2511306012],description:"April 2003 - Petr Parizek"},parizek_ji1:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,366.27579142084,392.4383479509,412.06026534844,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Petr Parizek, 12-tone septimal tuning, 2002."},parizek_jiweltmp:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,329.45441556372,348.83408706747,370.63621750918,392.4383479509,416.96574469783,440.63253103259,465.11211608996,494.18162334558,523.2511306012],description:"April 2003 - Petr Parizek"},jiwt2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,331.11985608357,348.83408706747,372.08969287196,392.4383479509,415.8649508569,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"June 2003 - Petr Parizek"},parizek_llt7:{frequencies:[261.6255653006,283.42769574232,327.03195662575,359.73515228832,392.4383479509,425.14154361347,479.64686971777,523.2511306012],description:"7-tone mode of Linear Level Tuning 2000 (= wilson_helix)"},parizek_qmeb1:{frequencies:[261.6255653006,273.53155294581,293.066620053,305.25690181412,326.9069921792,350.33366042609,366.2083106197,392.1884190578,408.50877577745,437.87542071709,457.7197748295,488.61098601707,523.2511306012],description:"Equal beating quasi-meantone tuning no. 1 - F...A# (1/1 = 261.7Hz)(3/2 5/3 5/4 7/4 7/6)"},parizek_qmeb2:{frequencies:[261.6255653006,274.12423619715,293.39509530855,306.21121252767,327.1564453797,350.32795211486,366.55713600477,391.6914154272,409.44351174042,438.20041390279,457.4712730142,489.73875803795,523.2511306012],description:"Equal beating quasi-meantone tuning no. 2 - F...A# (1/1 = 262.7Hz)"},parizek_qmeb3:{frequencies:[261.6255653006,274.23252240717,293.57983281823,306.4052273004,327.28159934073,350.29865766202,366.78755898655,391.93906252094,409.53887392713,438.37260750749,457.59509656107,490.04864950866,523.2511306012],description:"Equal beating quasi-meantone tuning no. 3 - F...A#. 1/1 = 262Hz"},parizek_qmtp12:{frequencies:[261.6255653006,273.55480692456,293.00227310437,305.44101254122,326.6631048533,350.4133380576,366.39100206434,391.84790908124,408.48291326839,437.52264545758,457.47219685667,489.2574430773,523.2511306012],description:"12-tone quasi-meantone tuning with 1/9 Pyth. comma as basic tempering unit (F...A#)"},parizek_qmtp24:{frequencies:[261.6255653006,273.14323313659,280.64720643091,285.59764149034,293.00227310437,305.44101254122,313.83229199844,326.6631048533,335.63741195089,341.5578378819,350.4133380576,365.83975262993,375.89034660662,381.37064019061,391.84790908124,407.86833637529,419.07356785577,437.52264545758,448.86620556368,457.47219685667,469.33298761093,489.2574430773,502.69865025911,510.02774559919,523.2511306012],description:"24-tone quasi-meantone tuning with 1/9 Pyth. comma as basic tempering unit (Bbb...C##)"},parizek_syndiat:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,353.19451315581,387.59343007496,392.4383479509,436.04260883433,441.49314144476,484.4917875937,490.54793493862,523.2511306012],description:"Petr Parizek, diatonic scale with syntonic alternatives"},parizek_syntonal:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Petr Parizek, Syntonic corrections in JI tonality, Jan. 2004"},parizek_temp19:{frequencies:[261.6255653006,276.69969455132,294.32876096318,310.68035879446,328.58088727969,349.51540364377,368.93292606842,392.4383479509,415.04954182698,438.10784970625,466.02053819169,492.87133091954,523.2511306012],description:"Petr Parizek, genus [3 3 19 19 19] well temperament"},"partch-barstow":{frequencies:[261.6255653006,279.06726965397,287.78812183066,290.69507255622,294.32876096318,299.00064605783,313.95067836072,327.03195662575,348.83408706747,359.73515228832,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,470.92601754108,479.64686971777,490.54793493862,523.2511306012],description:"Guitar scale for Partch's Barstow (1941, 1968)"},"partch-greek":{frequencies:[261.6255653006,261.6255653006,271.31540105247,294.32876096318,279.06726965397,348.83408706747,313.95067836072,392.4383479509,392.4383479509,406.97310157871,418.60090448096,418.60090448096,523.2511306012],description:'Partch Greek scales from "Two Studies on Ancient Greek Scales" on black/white'},"partch-grm":{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,313.95067836072,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:'Partch Greek scales from "Two Studies on Ancient Greek Scales" mixed'},"partch-indian":{frequencies:[261.6255653006,269.80136421624,277.97716313189,285.40970760065,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,383.71749577421,392.4383479509,406.97310157871,411.12588832951,428.11456140098,441.49314144476,457.84473927605,475.68284600109,490.54793493862,507.3950357345,523.2511306012],description:"Partch's Indian Chromatic, Exposition of Monophony, 1933."},"partch-ur":{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"Ur-Partch curved keyboard, published in Interval"},"partch_29-av":{frequencies:[261.6255653006,269.80136421624,274.70684356563,280.31310567921,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,488.36772189445,498.33441009638,507.3950357345,523.2511306012],description:"29-tone JI scale from Partch's Adapted Viola 1928-30"},partch_29:{frequencies:[261.6255653006,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,523.2511306012],description:"Partch/Ptolemy 11-limit Diamond"},partch_37:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol.9(2)'},partch_39:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"Ur-Partch Keyboard 39 tones, published in Interval"},partch_41:{frequencies:[261.6255653006,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,442.75095666255,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,523.2511306012],description:"13-limit Diamond after Partch, Genesis of a Music, p 454, 2nd edition"},partch_41a:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol. 9(2)'},partch_41comb:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,274.70684356563,279.06726965397,280.31310567921,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,488.36772189445,490.54793493862,498.33441009638,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"41-tone JI combination from Partch's 29-tone and 37-tone scales"},partch_43:{frequencies:[261.6255653006,264.89588486686,269.80136421624,274.70684356563,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,498.33441009638,507.3950357345,516.79124009995,523.2511306012],description:"Harry Partch's 43-tone pure scale"},partch_43a:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.70684356563,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,498.33441009638,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol. 9(2)'},patala:{frequencies:[261.6255653006,289.6217982776,320.24370022528,355.94891173479,393.58362272115,439.74591942221,480.6555937997,537.34060327431],description:"Observed patala tuning from Burma, Helmholtz/Ellis p. 518, nr.83"},pelog1:{frequencies:[261.6255653006,285.79952600623,313.83440569119,359.87690576543,393.35634555235,426.98050185716,482.04578814299,523.2511306012],description:"Gamelan Saih pitu from Ksatria, Den Pasar (South Bali). 1/1=312.5 Hz"},pelog10:{frequencies:[261.6255653006,290.16653606067,310.14521470005,342.49164912079,385.30310526088,418.60090448096,442.38504678101,523.2511306012],description:"Balinese saih 7 scale, Krobokan. 1/1=275 Hz. McPhee, 1966"},pelog11:{frequencies:[261.6255653006,289.11520789678,327.03195662575,352.6257619269,388.64667309147,441.73012112348,478.69895237627,523.2511306012],description:"Balinese saih pitu, gamelan luang, banjar Se`se'h. 1/1=276 Hz. McPhee, 1966"},pelog11i:{frequencies:[261.6255653006,267.83009854382,287.76973397991,309.19384990071,332.21296611011,356.94582815655,383.52002471837,392.61532371972,421.84506978464,453.25093845942,486.99493426005,523.2511306012],description:"George Secor's isopelogic scale with ~537.84194 generator and just 13/11"},pelog12:{frequencies:[261.6255653006,284.41230790592,308.04300430555,358.68021049276,385.68672051706,409.31741667997,472.61392441399,523.2511306012],description:"Balinese saih pitu, gamelan Semar Pegulingan, Tampak Gangsai, 1/1=310, McPhee"},pelog13:{frequencies:[261.6255653006,289.80062617913,323.61069924911,351.78575931905,394.45085229937,454.02098012766,494.27106657141,523.2511306012],description:"Balinese saih pitu, gamelan Semar Pegulingan, Klungkung, 1/1=325. McPhee, 1966"},pelog14:{frequencies:[261.6255653006,287.66412867175,309.98289727559,347.18084494866,375.69927149802,402.97776645827,427.77639824032,523.2511306012],description:"Balinese saih pitu, suling gambuh, Tabanan, 1/1=211 Hz, McPhee, 1966"},pelog15:{frequencies:[261.6255653006,284.9387344858,307.6043148279,344.51683351465,375.60105909492,407.98046074103,427.4081017287,523.2511306012],description:"Balinese saih pitu, suling gambuh, Batuan, 1/1=202 Hz. McPhee, 1966"},pelog2:{frequencies:[261.6255653006,285.30470202322,314.92395982138,345.81573716922,388.6137256405,424.52127512829,466.97226207056,523.2511306012],description:"Bamboo gambang from Batu lulan (South Bali). 1/1=315 Hz"},pelog3:{frequencies:[261.6255653006,285.63448939555,315.83481057014,390.18821123181,421.34544350737,523.2511306012],description:"Gamelan Gong from Padangtegal, distr. Ubud (South Bali). 1/1=555 Hz"},pelog4:{frequencies:[261.6255653006,290.96323214696,317.29765457754,352.87817160549,385.03871768789,434.94616895528,470.49199937597,523.2511306012],description:"Hindu-Jav. demung, excavated in Banjarnegara. 1/1=427 Hz"},pelog5:{frequencies:[261.6255653006,284.64626913494,310.94732162256,358.21775774651,390.8649420513,427.47405410759,468.32288027948,523.2511306012],description:"Gamelan Kyahi Munggang (Paku Alaman, Jogja). 1/1=199.5 Hz"},pelog6:{frequencies:[261.6255653006,282.02769802256,315.83481057014,354.51258839996,386.37547528213,413.39000965417,523.2511306012],description:"Gamelan Semar pegulingan, Ubud (S. Bali). 1/1=263.5 Hz"},pelog7:{frequencies:[261.6255653006,281.2143451833,303.31920717687,353.89879686059,384.81637482457,412.43597848639,448.72664641273,523.2511306012],description:"Gamelan Kantjilbelik (kraton Jogja). Measured by Surjodiningrat, 1972."},pelog8:{frequencies:[261.6255653006,281.2143451833,305.0763174688,362.1707891162,386.59871897734,415.30469757995,456.83405152976,529.33101587613,573.91491069685,623.33318620372,730.64478690489,786.25839925218,840.74610520523,945.88853913022,1075.30214607265],description:"from William Malm: Music Cultures of the Pacific, the Near East and Asia."},pelog9:{frequencies:[261.6255653006,282.57123920205,305.19382000629,356.01745236555,384.52011812375,415.30469757995,448.5538823653,523.2511306012],description:"9-tET Pelog"},pelog9i:{frequencies:[261.6255653006,287.76973397991,309.19384990071,332.21296611011,356.94582815655,383.52002471837,421.84506978464,453.25093845942,486.99493426005,523.2511306012],description:"George Secor's isopelogic scale with ~537.84194 generator and just 13/11"},pelog_24:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,440,479.82340237272,523.2511306012],description:"Subset of 24-tET (Sumatra?)"},pelog_a:{frequencies:[261.6255653006,280.7274598329,305.95868600104,363.84824628932,386.82209166041,411.72190027758,452.10885997356,523.2511306012],description:"Pelog, average class A. Kunst 1949"},pelog_alv:{frequencies:[261.6255653006,299.00064605783,313.95067836072,343.38355445704,392.4383479509,418.60090448096,457.84473927605,523.2511306012],description:"Bill Alves JI Pelog, 1/1 vol. 9 no. 4, 1997. 1/1=293.33"},pelog_av:{frequencies:[261.6255653006,280.40333801024,305.78200836532,357.39105439675,385.26118901859,411.72190027758,452.89298412314,523.2511306012],description:'"Normalised Pelog", Kunst, 1949. Average of 39 Javanese gamelans'},pelog_b:{frequencies:[261.6255653006,280.07959041159,302.79405018898,354.30787302884,382.82105786018,408.64182041696,451.58686491179,523.2511306012],description:"Pelog, average class B. Kunst 1949"},pelog_c:{frequencies:[261.6255653006,279.91785681123,304.37225518229,350.84574289301,384.81637482457,410.29745071461,451.58686491179,523.2511306012],description:"Pelog, average class C. Kunst 1949"},pelog_he:{frequencies:[261.6255653006,283.17034563789,338.50336851425,364.68988616898,389.06292924114,420.13030572059,493.31307433255,523.2511306012],description:"Observed Javanese Pelog scale, Helmholtz/Ellis p. 518, nr.96"},pelog_jc:{frequencies:[261.6255653006,294.32876096318,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"John Chalmers' Pelog, on keys C# E F# A B c#, like Olympos' Enharmonic on 4/3"},pelog_laras:{frequencies:[261.6255653006,283.42769574232,305.22982618403,370.63621750918,392.4383479509,414.24047839262,457.84473927605,523.2511306012],description:'Lou Harrison, gamelan "Si Betty"'},pelog_me1:{frequencies:[261.6255653006,281.13654920971,305.96893643544,353.85975480175,389.33427481332,412.3928606827,454.07565526112,523.2511306012],description:"Gamelan Kyahi Kanyut Mesem pelog (Mangku Nagaran). 1/1=295 Hz"},pelog_me2:{frequencies:[261.6255653006,277.86440299076,299.96729002515,349.58586605592,383.41679241104,405.97081699752,447.47001910635,523.2511306012],description:"Gamelan Kyahi Bermara (kraton Jogja). 1/1=290 Hz"},pelog_me3:{frequencies:[261.6255653006,281.75056896146,306.90688773629,358.59164065877,385.12012728597,411.64865826518,457.38747412584,523.2511306012],description:"Gamelan Kyahi Pangasih (kraton Solo). 1/1=286 Hz"},pelog_pa:{frequencies:[261.6255653006,286.29520819723,313.29104303136,342.83241505062,387.04559340587,423.54155496477,463.47885582013,523.2511306012],description:'"Blown fifth" pelog, von Hornbostel, type a.'},pelog_pa2:{frequencies:[261.6255653006,286.29520819723,313.29104303136,353.69443592699,387.04559340587,423.54155496477,463.47885582013,523.2511306012],description:"New mixed gender Pelog"},pelog_pb:{frequencies:[261.6255653006,277.98432293805,304.19649364034,353.69443592699,387.04559340587,411.24653512154,450.02449304881,523.2511306012],description:'"Primitive" Pelog, step of blown semi-fourths, von Hornbostel, type b.'},pelog_pb2:{frequencies:[261.6255653006,277.50302994288,303.66981774726,353.69443592699,387.04559340587,410.5345162762,449.24533531117,523.2511306012],description:'"Primitive" Pelog, Kunst: Music in Java, p. 28'},pelog_schmidt:{frequencies:[261.6255653006,287.78812183066,313.95067836072,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Modern Pelog designed by Dan Schmidt and used by Berkeley Gamelan"},pelog_selun:{frequencies:[261.6255653006,281.10829462369,350.68958753059,378.52209447746,416.55977244877,523.2511306012,562.21664032682,701.37917506118,757.04418895493,833.11970794305,1046.5022612024,1124.43328065364],description:"Gamelan selunding from Kengetan, South Bali (Pelog), 1/1=141 Hz"},pelog_slen:{frequencies:[261.6255653006,289.4545544734,306.66641795878,334.42210013281,344.22141564971,354.30787302884,386.37547528213,397.69714089209,446.39994737251,459.48046426806,493.88330125613,523.2511306012],description:"W.P. Malm, pelog+slendro, Musical Cultures Of The Pacific, The Near East, And Asia. P: 1,3,5,6,8,10; S: 2,4,7,9"},pelog_str:{frequencies:[261.6255653006,282.73796785026,305.22982618403,329.86096249197,356.10146388137,384.83778957396,415.4517078616,448.97742116962,484.69365917187,523.80699136456],description:"JI Pelog with stretched 2/1 and extra tones between 2-3, 6-7. Wolf, XH 11, '87"},pelogic:{frequencies:[261.6255653006,268.93425429917,294.59920226397,322.71340889889,353.51061198674,363.38617257172,398.06486099125,436.0530078362,477.66644151787,523.2511306012],description:"Pelogic temperament, g=521.1, 5-limit"},pelogic2:{frequencies:[261.6255653006,252.56770712848,285.96465797334,276.06414495892,312.56802260838,301.74646235804,341.64630500046,386.82209166041,373.42974737602,422.80824892286,408.17001145418,462.1422075194,523.2511306012],description:"Pelogic temperament, g=677.0 in cycle of fifths order"},penta1:{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,331.11985608357,372.50983809402,376.74081403286,397.34382730029,423.83341578697,441.49314144476,470.92601754108,496.67978412536,523.2511306012],description:"Pentagonal scale 9/8 3/2 16/15 4/3 5/3"},penta2:{frequencies:[261.6255653006,267.07609791103,286.15296204753,305.22982618403,312.97980223949,333.84512238879,356.10146388137,363.36884069528,400.61414686654,436.04260883433,457.84473927605,476.92160341255,523.2511306012],description:"Pentagonal scale 7/4 4/3 15/8 32/21 6/5"},penta_opt:{frequencies:[261.6255653006,292.5084949701,327.03692214239,391.62201198054,436.95817401562,523.2511306012],description:"Optimally consonant major pentatonic, John deLaubenfels, 2001"},pentadekany:{frequencies:[261.6255653006,283.42769574232,299.7792935736,305.22982618403,327.03195662575,354.2846196779,359.73515228832,381.53728273004,389.71308164569,419.69101100305,425.14154361347,436.04260883433,457.84473927605,479.64686971777,495.99846754905,523.2511306012],description:"2)6 1.3.5.7.11.13 Pentadekany (1.3 tonic)"},pentadekany2:{frequencies:[261.6255653006,269.80136421624,294.32876096318,299.7792935736,305.22982618403,327.03195662575,343.38355445704,359.73515228832,381.53728273004,392.4383479509,419.69101100305,436.04260883433,457.84473927605,479.64686971777,490.54793493862,523.2511306012],description:"2)6 1.3.5.7.9.11 Pentadekany (1.3 tonic)"},pentadekany3:{frequencies:[261.6255653006,277.97716313189,278.79474302345,287.78812183066,291.4672313427,300.86940009569,305.77487944508,319.67373760167,359.73515228832,376.08675011961,405.51962621593,413.69542513157,430.86460285443,444.76346101102,506.89953276991,523.2511306012],description:"2)6 1.5.11.17.23.31 Pentadekany (1.5 tonic)"},pentatetra1:{frequencies:[261.6255653006,275.39533189537,290.69507255622,327.03195662575,348.83408706747,392.4383479509,413.09299784305,436.04260883433,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatetra2:{frequencies:[261.6255653006,275.39533189537,307.79478270659,327.03195662575,348.83408706747,392.4383479509,413.09299784305,461.69217405988,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatetra3:{frequencies:[261.6255653006,290.69507255622,307.79478270659,327.03195662575,348.83408706747,392.4383479509,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatriad:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"4:5:6 Pentatriadic scale"},pentatriad1:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,387.59343007496,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"3:5:9 Pentatriadic scale"},pepper:{frequencies:[261.6255653006,274.70684356563,290.69507255622,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,367.91095120397,392.4383479509,406.97310157871,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"Keenan Pepper's 17-tone jazz tuning, TL 07-06-2000"},pepper2:{frequencies:[261.6255653006,281.81099471089,295.05751399041,308.92668738628,332.76158224462,348.40303271111,375.28368107222,392.9238840789,423.23948674937,443.13385158124,463.96335069158,499.75992392917,523.2511306012],description:`Keenan Pepper's "Noble Fifth" with chromatic/diatonic semitone = Phi (12)`},peprmint:{frequencies:[261.6255653006,270.64528749638,281.81099405977,291.52662269553,295.0575145017,305.22982618403,308.92668738628,319.57714845986,332.76158147578,344.23376699744,348.40303331485,360.41446869983,375.28368085545,388.22184514393,392.92388339801,406.47020562703,423.23948723831,437.83096109824,443.13385158124,458.41119713782,463.9633498876,479.95880678291,499.75992479518,516.98949333115,523.2511306012],description:"Peppermint 24: Wilson/Pepper apotome/limma=Phi, 2 chains spaced for pure 7:6"},"perkis-indian":{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.01393146398,369.99442271164,377.90359432309,388.70083987518,400.13321751856,412.18367363396,425.14154361347,438.99882991118,453.48431318771,469.12170329763,485.27322596079,503.87145909745,523.2511306012],description:"Indian 22 Perkis"},"perrett-tt":{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,515.07533168556,523.2511306012],description:"Perrett Tierce-Tone"},perrett:{frequencies:[261.6255653006,274.70684356563,279.06726965397,348.83408706747,392.4383479509,412.06026534844,418.60090448096,523.2511306012],description:"Perrett / Tartini / Pachymeres Enharmonic"},perrett_14:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,412.06026534844,436.04260883433,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Perrett's 14-tone system (subscale of tierce-tone)"},perrett_chrom:{frequencies:[261.6255653006,274.70684356563,294.32876096318,348.83408706747,392.4383479509,412.06026534844,441.49314144476,523.2511306012],description:"Perrett's Chromatic"},perry:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Robin Perry, Tuning List 22-9-'98"},perry2:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,415.27867508032,436.04260883433,457.84473927605,498.33441009638,523.2511306012],description:"Robin Perry, 7-limit scale, TL 22-10-2006"},perry3:{frequencies:[261.6255653006,277.97716313189,294.32876096318,307.79478270659,327.03195662575,348.83408706747,369.35373924791,370.63621750918,392.4383479509,418.60090448096,444.76346101102,465.11211608996,492.47165233054,523.2511306012],description:"Robin Perry, symmetrical 3,5,17 scale, TL 22-10-2006"},"persian-far":{frequencies:[261.6255653006,275.58617649731,282.84340331238,294.51413096332,310.22971009486,318.39923223688,331.53706992441,349.22823143301,362.58942698662,376.46181130035,391.99543598175,412.91271853531,423.78627283082,441.27260666252,464.81937009253,477.05982293263,496.7443381147,523.2511306012],description:"Hormoz Farhat, average of observed Persian tar and sehtar tunings (1966)"},"persian-vaz":{frequencies:[261.6255653006,277.18263097687,285.30470202322,293.66476791741,311.12698372208,320.24370022528,329.62755691287,349.22823143301,359.46139971304,380.8360868427,391.99543598175,415.30469757995,427.47405410759,440,466.16376151809,479.82340237272,493.88330125613,523.2511306012],description:"Vaziri's Persian tuning, using quartertones"},persian:{frequencies:[261.6255653006,275.62199471997,282.55561052465,294.32876096318,310.07474405997,317.87506184023,331.11985608357,348.83408706747,363.36884069528,376.74081403286,392.4383479509,413.43299207996,423.83341578697,441.49314144476,465.11211608996,476.81259276034,496.67978412536,523.2511306012],description:"Persian Tar Scale, from Dariush Anooshfar, Internet Tuning List 2/10/94"},persian2:{frequencies:[261.6255653006,275.62199471997,288.32205155576,294.32876096318,310.07474405997,321.08592105074,331.11985608357,348.83408706747,367.49599295996,384.42940207435,392.4383479509,413.43299207996,428.11456140098,441.49314144476,465.11211608996,489.99465727995,512.57253609913,523.2511306012],description:"Traditional Persian scale, from Mark Rankin"},phi1_13:{frequencies:[261.6255653006,272.27874348295,293.41755524936,305.36527715608,329.07281683115,342.47239171077,356.41758627629,384.088434771,399.72820043646,416.00480451705,448.3020273708,466.55651779723,502.7784067407,523.2511306012],description:"Pythagorean scale with (Phi + 1) / 2 as fifth"},phi_10:{frequencies:[261.6255653006,277.06593756944,293.41755524936,323.38703872151,342.47239171077,362.68389667063,399.72820043646,423.31898451752,448.3020273708,494.09131284284,523.2511306012],description:"Pythagorean scale with Phi as fifth"},phi_12:{frequencies:[261.6255653006,280.653851324,301.06608340242,314.41721066027,337.28508524374,352.24238645938,377.86132347501,405.34355110824,423.31898451752,454.10739278061,474.24531572837,508.73764640933,531.29821178855],description:"Non-Octave Pythagorean scale with Phi as fourth. Jacky Ligon TL 12-04-2001"},phi_13:{frequencies:[261.6255653006,277.06593756944,293.41755524936,305.36527715608,323.38703872151,342.47239171077,362.68389667063,377.45230514615,399.72820043646,423.31898451752,448.3020273708,466.55651779723,494.09131284284,523.2511306012],description:"Pythagorean scale with Phi as fifth"},phi_13a:{frequencies:[261.6255653006,280.653851324,293.09977429907,314.41721066027,328.36040925687,352.24238645938,377.86132347501,394.61802538749,423.31898451752,442.09155952525,474.24531572837,508.73764640933,531.29821178855,569.94005600595],description:"Non-Octave Pythagorean scale with Phi as fifth, Jacky Ligon TL 12-04-2001"},phi_13b:{frequencies:[261.6255653006,277.56939878091,287.90530191745,305.45065986668,316.82478268872,336.13253486432,356.61692887617,369.89633953852,392.4383479509,407.05164722964,431.8579526603,458.17598957099,475.23717379553,504.19880204444],description:"Non-Octave Pythagorean scale with 12 3/2s, Jacky Ligon, TL 12-04-2001"},phi_17:{frequencies:[261.6255653006,276.86436108535,292.99059544936,310.05629713556,328.11582814217,347.22745468775,367.4522682176,388.8548834608,411.50435256812,435.47307590797,460.83762934409,487.67984759381,516.08523529366,546.14543793146,577.9565447239,611.62018657326,647.24497389216,684.94478342154],description:"Phi + 1 equal division by 17, Brouncker (1653)"},phi_7b:{frequencies:[261.6255653006,277.06593756944,299.7954575021,323.38703872151,342.47239171077,369.42210382256,399.72820043646,423.31898451752],description:"Heinz Bohlen's Pythagorean scale with Phi as fifth (1999)"},phi_7be:{frequencies:[261.6255653006,277.18263097687,299.37379946195,323.3415889232,342.56848033562,369.99442271164,399.61607881612,423.37848741825],description:"36-tET approximation of phi_7b"},phi_8:{frequencies:[261.6255653006,280.010356995,292.01318753119,312.53354015396,325.93049860793,348.83408706747,373.34714284662,389.35091690288,416.71138708025],description:"Non-Octave Pythagorean scale with 4/3s, Jacky Ligon, TL 12-04-2001"},phi_8a:{frequencies:[261.6255653006,275.77662731691,284.90271245142,300.31281179658,310.2506767011,327.03195662575,344.72084112096,356.12824371673,375.39107678967],description:"Non-Octave Pythagorean scale with 5/4s, Jacky Ligon, TL 12-04-2001"},phillips_19:{frequencies:[261.6255653006,274.63272075836,286.12988535196,293.66476791741,305.42895910556,326.59518553839,329.62755691287,342.83241505062,349.22823143301,366.5907009274,384.81637482457,391.99543598175,407.69874723177,428.71043212875,440,457.62637091093,489.33987776603,493.88330125613,513.66823365307,523.2511306012],description:"Pauline Phillips, organ manual scale, TL 7-10-2002"},phillips_19a:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,326.62388782443,329.50688232588,342.79852229325,349.26020182051,366.55580177366,381.34192228364,391.95955371998,407.7704102616,427.96347506501,439.87918162894,457.62301915088,489.33808574423,493.65730140218,509.07699553894,523.2511306012],description:"Adaptation by Gene Ward Smith with more consonant chords, TL 25-10-2002"},phillips_22:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.5744765615,306.59245933664,327.03195662575,331.11985608357,343.38355445704,349.22797321314,367.91095120397,392.4383479509,407.76797091773,408.78994578219,416.96574469783,429.2294430713,441.49314144476,457.84473927605,459.88868900496,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:"All-key 19-limit JI scale (2002), TL 21-10-2002"},phillips_ji:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.5744765615,306.59245933664,327.03195662575,331.11985608357,349.22797321314,367.91095120397,386.30649876417,392.4383479509,407.76797091773,408.78994578219,429.2294430713,441.49314144476,457.84473927605,459.88868900496,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:'Pauline Phillips, JI 0 #/b "C" scale (2002), TL 8-10-2002'},phryg_chromcon2:{frequencies:[261.6255653006,283.42769574232,294.32876096318,305.22982618403,392.4383479509,414.24047839262,436.04260883433,523.2511306012],description:"Harmonic Conjunct Chromatic Phrygian"},phryg_chromconi:{frequencies:[261.6255653006,283.42769574232,348.83408706747,370.63621750918,392.4383479509,479.64686971777,501.44900015948,523.2511306012],description:"Inverted Conjunct Chromatic Phrygian"},phryg_chrominv:{frequencies:[261.6255653006,272.52663052146,283.42769574232,348.83408706747,392.4383479509,414.24047839262,436.04260883433,523.2511306012],description:"Inverted Schlesinger's Chromatic Phrygian"},phryg_chromt:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,324.77656382143,336.37572681506,362.25078272391,392.4383479509,409.50088481833,418.60090448096,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,627.90135672144,649.55312764287,672.75145363011,724.50156544782,784.8766959018,819.00176963666,837.20180896192,856.22912280196,941.85203508216,1046.5022612024],description:"Phrygian Chromatic Tonos"},phryg_diat:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,392.4383479509,448.50096908674,483.00104363188,523.2511306012],description:"Schlesinger's Phrygian Harmonia, a subharmonic series through 13 from 24"},phryg_diatcon:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,448.50096908674,483.00104363188,523.2511306012],description:"A Phrygian Diatonic with its own trite synemmenon replacing paramese"},phryg_diatinv:{frequencies:[261.6255653006,283.42769574232,305.22982618403,370.63621750918,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Inverted Conjunct Phrygian Harmonia with 17, the local Trite Synemmenon"},phryg_diatsinv:{frequencies:[261.6255653006,283.42769574232,305.22982618403,348.83408706747,370.63621750918,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Inverted Schlesinger's Phrygian Harmonia, a harmonic series from 12 from 24"},phryg_enh:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,392.4383479509,405.0976494977,418.60090448096,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the enharmonic genus"},phryg_enhcon:{frequencies:[261.6255653006,283.42769574232,288.87822835275,294.32876096318,392.4383479509,403.33941317176,414.24047839262,523.2511306012],description:"Harmonic Conjunct Enharmonic Phrygian"},phryg_enhinv:{frequencies:[261.6255653006,327.03195662575,337.93302184661,348.83408706747,392.4383479509,501.44900015948,512.35006538034,523.2511306012],description:"Inverted Schlesinger's Enharmonic Phrygian Harmonia"},phryg_enhinv2:{frequencies:[261.6255653006,267.07609791103,272.52663052146,348.83408706747,392.4383479509,403.33941317176,414.24047839262,523.2511306012],description:"Inverted harmonic form of Schlesinger's Enharmonic Phrygian"},phryg_penta:{frequencies:[261.6255653006,270.64713651786,285.40970760065,348.83408706747,392.4383479509,413.09299784305,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the pentachromatic genus"},phryg_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,392.4383479509,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,784.8766959018,856.22912280196,941.85203508216,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Phrygian Tonos"},phryg_tri1:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the chromatic genus"},phryg_tri1inv:{frequencies:[261.6255653006,305.22982618403,327.03195662575,348.83408706747,392.4383479509,479.64686971777,501.44900015948,523.2511306012],description:"Inverted Schlesinger's Chromatic Phrygian Harmonia"},phryg_tri2:{frequencies:[261.6255653006,269.10058145205,285.40970760065,348.83408706747,392.4383479509,409.50088481833,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the second trichromatic genus"},phryg_tri3:{frequencies:[261.6255653006,269.10058145205,277.01530443593,348.83408706747,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the first trichromatic genus"},phrygian:{frequencies:[261.6255653006,290.69507255622,313.95067836072,327.03195662575,348.83408706747,353.19451315581,387.59343007496,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,523.2511306012],description:"Old Phrygian ??"},phrygian_diat:{frequencies:[261.6255653006,277.01530443593,294.32876096318,336.37572681506,348.83408706747,362.25078272391,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012,554.03060887186,588.65752192635,672.75145363011,697.66817413493,724.50156544782,753.48162806573,784.8766959018,856.22912280196,897.00193817349,941.85203508216,991.42319482333,1046.5022612024],description:"Phrygian Diatonic Tonos"},phrygian_enh:{frequencies:[261.6255653006,277.01530443593,294.32876096318,303.82323712328,308.80394592858,313.95067836072,348.83408706747,392.4383479509,400.78810003496,405.0976494977,409.50088481833,459.44001711325,523.2511306012],description:"Phrygian Enharmonic Tonos"},phrygian_harm:{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Phrygian Harmonia-Aliquot 24 (flute tuning)"},piano:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"Enhanced Piano Total Gamut, see 1/1 vol. 8/2 January 1994"},piano7:{frequencies:[261.6255653006,275.93321340298,294.32876096318,305.22982618403,327.03195662575,348.83408706747,367.91095120397,392.4383479509,406.97310157871,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Enhanced piano 7-limit"},pipedum_10:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,372.08969287196,396.89567239676,431.14564594215,459.88868900496,490.54793493862,523.2511306012],description:"2048/2025 and 34171875/33554432 are homophonic intervals"},pipedum_10a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,465.11211608996,490.54793493862,523.2511306012],description:"2048/2025 and 25/24, Manuel Op de Coul, 2001"},pipedum_10b:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,367.91095120397,392.4383479509,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"225/224, 64/63 and 25/24 are homophonic intervals"},pipedum_10c:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 64/63 and 49/48 are homophonic intervals"},pipedum_10d:{frequencies:[261.6255653006,279.06726965397,299.00064605783,318.93402246168,343.38355445704,372.08969287196,392.4383479509,425.24536328225,448.50096908674,488.36772189445,523.2511306012],description:"1029/1024, 2048/2025 and 64/63 are homophonic intervals"},pipedum_10e:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,367.91095120397,406.97310157871,429.2294430713,465.11211608996,490.54793493862,523.2511306012],description:"2048/2025, 64/63 and 49/48 are homophonic intervals"},pipedum_10f:{frequencies:[261.6255653006,280.31310567921,294.32876096318,327.03195662575,348.83408706747,373.75080757229,392.4383479509,420.46965851882,465.11211608996,490.54793493862,523.2511306012],description:"225/224, 64/63 and 28/27 are homophonic intervals"},pipedum_10g:{frequencies:[261.6255653006,280.31310567921,299.00064605783,325.57848126297,348.83408706747,372.08969287196,398.6675280771,425.24536328225,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 1029/1024 and 2048/2025 are homophonic intervals"},pipedum_10h:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,373.75080757229,400.61414686654,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 1029/1024 and 64/63 are homophonic intervals"},pipedum_10i:{frequencies:[261.6255653006,279.06726965397,294.32876096318,321.92208230347,343.38355445704,367.91095120397,392.4383479509,418.60090448096,457.84473927605,488.36772189445,523.2511306012],description:"225/224, 2048/2025 and 49/48 are homophonic intervals"},pipedum_10j:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,457.84473927605,488.36772189445,523.2511306012],description:"25/24, 28/27 and 49/48, Gene Ward Smith, 2002"},pipedum_10k:{frequencies:[261.6255653006,280.31310567921,299.00064605783,320.49131749323,343.38355445704,367.91095120397,394.1903048614,420.46965851882,455.80987376816,488.36772189445,523.2511306012],description:"2048/2025, 225/224 and 2401/2400"},pipedum_11:{frequencies:[261.6255653006,272.52663052146,282.55561052465,313.95067836072,327.03195662575,363.36884069528,376.74081403286,392.4383479509,436.04260883433,454.2110508691,470.92601754108,523.2511306012],description:"16/15 and 15625/15552 are homophonic intervals"},pipedum_11a:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,322.92069774245,366.27579142084,376.74081403286,381.53728273004,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"126/125, 1728/1715 and 10/9, Gene Ward Smith, 2002"},pipedum_12:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"81/80 and 2048/2025 are homophonic intervals"},pipedum_12a:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"81/80 and 2048/2025 are homophonic intervals"},pipedum_12b:{frequencies:[261.6255653006,274.70684356563,299.00064605783,313.95067836072,320.49131749323,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,488.36772189445,523.2511306012],description:"64/63, 50/49 comma and 36/35 chroma"},pipedum_12c:{frequencies:[261.6255653006,280.31310567921,294.32876096318,315.35224388912,327.03195662575,348.83408706747,367.91095120397,392.4383479509,420.46965851882,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 64/63 and 36/35 are homophonic intervals"},pipedum_12d:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"50/49, 128/125 and 225/224 are homophonic intervals"},pipedum_12e:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,373.75080757229,392.4383479509,418.60090448096,439.53094970501,467.18850946536,500.55911728431,523.2511306012],description:"50/49, 225/224 and 3136/3125 are homophonic intervals"},pipedum_12f:{frequencies:[261.6255653006,273.74326726486,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,408.78994578219,437.98922762377,468.83301301868,490.54793493862,523.2511306012],description:"128/125, 3136/3125 and 703125/702464 are homophonic intervals"},pipedum_12g:{frequencies:[261.6255653006,279.06726965397,286.15296204753,306.59245933664,327.03195662575,348.83408706747,366.27579142084,390.69417751556,408.78994578219,437.98922762377,457.84473927605,488.36772189445,523.2511306012],description:"50/49, 225/224 and 28672/28125 are homophonic intervals"},pipedum_12h:{frequencies:[261.6255653006,275.93321340298,291.02331101095,310.42486507835,330.74639366397,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.53496651643,465.11211608996,496.11959049595,523.2511306012],description:"2048/2025 and 67108864/66430125, Gene Ward Smith, 2004"},pipedum_12i:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,378.42269266694,392.4383479509,406.97310157871,441.49314144476,465.11211608996,504.56359022259,523.2511306012],description:"64/63 and 6561/6272, Gene Ward Smith, 2004"},pipedum_12j:{frequencies:[261.6255653006,283.8170195002,285.83021674664,310.07474405997,336.37572681506,348.83408706747,378.42269266694,392.4383479509,413.43299207996,448.50096908674,465.11211608996,504.56359022259,523.2511306012],description:"6561/6272 and 59049/57344"},pipedum_12k:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,448.50096908674,457.84473927605,474.80195184183,523.2511306012],description:"64/63 and 729/686, Gene Ward Smith, 2004"},pipedum_12l:{frequencies:[261.6255653006,276.16031892841,294.32876096318,310.68035879446,331.39238271409,348.83408706747,368.21375857121,392.4383479509,414.24047839262,441.49314144476,465.11211608996,497.08857407114,523.2511306012],description:"81/80, 361/360 and 513/512, Gene Ward Smith"},pipedum_13:{frequencies:[261.6255653006,276.76092858245,287.78812183066,309.14739649778,327.03195662575,345.95116072807,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"33275/32768 and 163840/161051 are homophonic intervals. Op de Coul, 2001"},pipedum_13a:{frequencies:[261.6255653006,266.96486255163,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,512.78610798918,523.2511306012],description:"15/14, 3136/3125, 2401/2400, Gene Ward Smith, 2002"},pipedum_13b:{frequencies:[261.6255653006,267.90457886781,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,510.98743222773,523.2511306012],description:"15/14, 3136/3125, 6144/6125, Gene Ward Smith, 2002"},pipedum_13bp:{frequencies:[261.6255653006,282.55561052465,305.16005936662,336.45263027341,363.36884069528,392.4383479509,436.04260883433,470.92601754108,508.60009894437,545.05326104292,605.61473449213,654.0639132515,706.38902631162,784.8766959018],description:"78732/78125 and 250/243, twelfth based, Manuel Op de Coul, 2003"},pipedum_13bp2:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012,565.1112210493,627.90135672144,678.13346525916,726.73768139056,784.8766959018],description:"250/243 and 648/625, twelfth based, Manuel Op de Coul, 2003"},pipedum_13c:{frequencies:[261.6255653006,267.07609791103,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,512.57253609913,523.2511306012],description:"15/14, 2401/2400, 6144/6125, Gene Ward Smith, 2002"},pipedum_13d:{frequencies:[261.6255653006,281.04308772525,287.78812183066,309.14739649778,327.03195662575,334.88072358477,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"125/121 and 33275/32768, Joe Monzo, 2003"},pipedum_13e:{frequencies:[261.6255653006,276.76092858245,287.78812183066,304.4370214407,327.03195662575,334.88072358477,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"33275/32768 and 163840/161051, Manuel Op de Coul, 2004"},pipedum_14:{frequencies:[261.6255653006,274.70684356563,284.76252005507,305.22982618403,320.49131749323,336.37572681506,348.83408706747,373.90653707544,392.4383479509,406.97310157871,427.14378008261,448.50096908674,480.73697623985,498.33441009638,523.2511306012],description:"81/80, 49/48 and 2401/2400, Paul Erlich, TL 17-1-2001"},pipedum_14a:{frequencies:[261.6255653006,274.70684356563,284.8811711051,305.22982618403,320.35783506196,336.37572681506,348.83408706747,366.27579142084,392.4383479509,406.97310157871,427.32175665765,448.50096908674,480.53675259294,498.33441009638,523.2511306012],description:"81/80, 50/49 and 2401/2400, Paul Erlich, 2001"},pipedum_14b:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,313.95067836072,339.14425131559,353.19451315581,366.27579142084,392.4383479509,406.97310157871,418.60090448096,457.84473927605,470.92601754108,508.71637697339,523.2511306012],description:"245/243, 81/80 comma and 25/24 chroma"},pipedum_14c:{frequencies:[261.6255653006,280.31310567921,282.55561052465,305.22982618403,327.03195662575,336.37572681506,363.36884069528,366.27579142084,392.4383479509,403.65087217807,436.04260883433,467.18850946536,470.92601754108,508.71637697339,523.2511306012],description:"245/243, 50/49 comma and 25/24 chroma"},pipedum_15:{frequencies:[261.6255653006,272.52663052146,290.69507255622,301.39265122629,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,454.2110508691,470.92601754108,502.32108537715,523.2511306012],description:"126/125, 128/125 and 875/864, 5-limit, Paul Erlich, 2001"},pipedum_15a:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,381.53728273004,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,502.32108537715,523.2511306012],description:"Septimal version of pipedum_15, Manuel Op de Coul, 2001"},pipedum_15b:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,311.45900631024,327.03195662575,343.38355445704,357.69120255941,382.72082695402,398.6675280771,418.60090448096,439.53094970501,457.84473927605,478.40103369253,498.33441009638,523.2511306012],description:"126/125, 128/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15c:{frequencies:[261.6255653006,274.70684356563,284.76252005507,299.00064605783,313.95067836072,327.03195662575,341.71502406609,358.80077526939,381.53728273004,400.61414686654,418.60090448096,436.04260883433,457.84473927605,480.73697623985,498.33441009638,523.2511306012],description:"49/48, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15d:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,360.55273217989,379.68336007343,398.6675280771,418.60090448096,436.04260883433,457.84473927605,478.40103369253,498.33441009638,523.2511306012],description:"64/63, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15e:{frequencies:[261.6255653006,273.37201925287,286.15296204753,299.00064605783,313.95067836072,332.22294006425,343.38355445704,358.80077526939,381.53728273004,398.6675280771,412.06026534844,436.04260883433,457.84473927605,478.40103369253,500.76768358318,523.2511306012],description:"64/63, 875/864 and 1029/1024, Paul Erlich, 2001"},pipedum_15f:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,387.59343007496,392.4383479509,418.60090448096,436.04260883433,465.11211608996,488.36772189445,490.54793493862,523.2511306012],description:"126/125, 64/63 comma and 28/27 chroma"},pipedum_15g:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"128/125 and 250/243"},pipedum_16:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,355.95315006884,373.75080757229,384.58958099188,400.61414686654,418.60090448096,439.53094970501,457.84473927605,480.73697623985,498.33441009638,523.2511306012],description:"50/49, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_16a:{frequencies:[261.6255653006,272.52663052146,283.88190679319,301.39265122629,313.95067836072,327.03195662575,340.65828815182,354.85238349148,363.36884069528,385.78259356965,401.85686830172,418.60090448096,436.04260883433,454.2110508691,482.22824196207,502.32108537715,523.2511306012],description:"3125/3072 and 1990656/1953125, OdC 2004"},pipedum_17:{frequencies:[261.6255653006,269.10058145205,286.15296204753,294.32876096318,305.22982618403,318.93402246168,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,429.2294430713,448.50096908674,465.11211608996,478.40103369253,508.71637697339,523.2511306012],description:"245/243, 64/63 and 525/512, Paul Erlich, 2001"},pipedum_17a:{frequencies:[261.6255653006,271.31540105247,286.15296204753,296.75121990114,305.22982618403,318.93402246168,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,429.2294430713,448.50096908674,461.31528248922,478.40103369253,504.56359022259,523.2511306012],description:"245/243, 525/512 and 1728/1715, Paul Erlich, 2001"},pipedum_17b:{frequencies:[261.6255653006,264.89588486686,286.15296204753,294.32876096318,305.22982618403,327.03195662575,339.14425131559,343.38355445704,367.91095120397,381.53728273004,392.4383479509,406.97310157871,436.04260883433,441.49314144476,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:"245/243, 64/63 comma and 25/24 chroma"},pipedum_17c:{frequencies:[261.6255653006,273.6806973752,285.83021674664,299.00064605783,310.07474405997,321.55899383997,336.37572681506,348.83408706747,364.90759650026,378.42269266694,392.4383479509,413.43299207996,428.74532511996,448.50096908674,465.11211608996,486.54346200035,504.56359022259,523.2511306012],description:"1605632/1594323 and 177147/175616, Manuel Op de Coul, 2002"},pipedum_17d:{frequencies:[261.6255653006,274.08392555301,284.23518205497,299.00064605783,308.34441624714,319.76457981184,336.37572681506,348.83408706747,365.44523407068,373.05867644715,392.4383479509,411.12588832951,426.35277308246,448.50096908674,465.11211608996,479.64686971777,504.56359022259,523.2511306012],description:"243/242, 99/98 and 64/63, Manuel Op de Coul, 2002"},pipedum_17e:{frequencies:[261.6255653006,271.31540105247,286.15296204753,296.75121990114,310.07474405997,321.92208230347,336.37572681506,348.83408706747,362.16234259141,378.42269266694,395.66829320152,413.43299207996,429.2294430713,445.12682985172,465.11211608996,482.88312345521,504.56359022259,523.2511306012],description:"245/243, 1728/1715 and 32805/32768, Manuel Op de Coul, 2003"},pipedum_17f:{frequencies:[261.6255653006,269.80136421624,285.40970760065,294.32876096318,310.07474405997,319.76457981184,331.11985608357,348.83408706747,359.73515228832,380.54627680087,392.4383479509,413.43299207996,428.11456140098,441.49314144476,465.11211608996,479.64686971777,507.3950357345,523.2511306012],description:"243/242 and 8192/8019, Manuel Op de Coul"},pipedum_17g:{frequencies:[261.6255653006,274.08392555301,285.40970760065,299.00064605783,305.22982618403,319.76457981184,336.37572681506,348.83408706747,359.73515228832,380.54627680087,392.4383479509,406.97310157871,428.11456140098,448.50096908674,457.84473927605,479.64686971777,499.46698830115,523.2511306012],description:"243/242, 896/891 and 99/98, Manuel Op de Coul"},pipedum_18:{frequencies:[261.6255653006,272.52663052146,280.31310567921,296.75121990114,305.22982618403,317.94773560837,327.03195662575,340.65828815182,350.39138209902,379.84156147346,390.69417751556,406.97310157871,418.60090448096,436.04260883433,448.50096908674,474.80195184183,488.36772189445,508.71637697339,523.2511306012],description:"875/864, 686/675 and 128/125, Paul Erlich, 2001"},pipedum_18a:{frequencies:[261.6255653006,269.10058145205,280.31310567921,293.02063313667,305.22982618403,313.95067836072,327.03195662575,341.85740532612,356.10146388137,366.27579142084,384.42940207435,400.44729382745,418.60090448096,436.04260883433,448.50096908674,467.18850946536,488.36772189445,508.71637697339,523.2511306012],description:"875/864, 686/675 and 50/49, Paul Erlich, 2001"},pipedum_18b:{frequencies:[261.6255653006,272.52663052146,280.31310567921,296.75121990114,305.22982618403,317.94773560837,327.03195662575,346.20975655133,356.10146388137,373.75080757229,384.42940207435,400.44729382745,418.60090448096,436.04260883433,448.50096908674,467.18850946536,488.36772189445,508.71637697339,523.2511306012],description:"1728/1715, 875/864 and 686/675, Paul Erlich, 2001"},pipedum_19:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,301.39265122629,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,401.85686830172,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"81/80 and 15625/15552 are homophonic intervals, inverse of Mandelbaum"},pipedum_19a:{frequencies:[261.6255653006,271.25338610366,282.55561052465,294.32876096318,301.39265122629,313.95067836072,327.03195662575,339.06673262958,353.19451315581,361.67118147155,376.74081403286,392.4383479509,408.78994578219,416.64520105522,434.00541776586,452.08897683944,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"3125/3072 and 15625/15552 are homophonic intervals"},pipedum_19b:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"15625/15552 and 78732/78125, Paul Erlich, TL 19-2-2001"},pipedum_19c:{frequencies:[261.6255653006,269.10058145205,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19d:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19e:{frequencies:[261.6255653006,269.10058145205,280.31310567921,287.04062021552,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,476.92160341255,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19f:{frequencies:[261.6255653006,269.10058145205,279.06726965397,287.04062021552,305.22982618403,315.35224388912,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,434.10464168396,448.50096908674,476.92160341255,490.54793493862,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19g:{frequencies:[261.6255653006,269.10058145205,280.31310567921,288.32205155576,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,360.4025644447,379.84156147346,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,474.80195184183,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19h:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,353.19451315581,366.27579142084,381.53728273004,392.4383479509,412.06026534844,415.27867508032,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"126/125, 81/80 comma and 49/48 chroma"},pipedum_19i:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.22982618403,321.92208230347,327.03195662575,343.38355445704,348.83408706747,367.91095120397,381.53728273004,392.4383479509,406.97310157871,429.2294430713,436.04260883433,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"225/224, 81/80 comma and 49/48 chroma"},pipedum_19j:{frequencies:[261.6255653006,266.96486255163,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,333.70607818954,358.95027559242,366.27579142084,373.75080757229,381.37837507376,410.22888639134,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.78610798918,523.2511306012],description:"21/20, 3136/3125 and 2401/2400, Gene Ward Smith, 2002"},pipedum_19k:{frequencies:[261.6255653006,267.90457886781,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,334.88072358477,357.69120255941,366.27579142084,373.75080757229,382.72082695402,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,510.98743222773,523.2511306012],description:"21/20, 3136/3125 and 6144/6125, Gene Ward Smith, 2002"},pipedum_19l:{frequencies:[261.6255653006,267.07609791103,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,333.84512238879,358.80077526939,366.27579142084,373.75080757229,381.53728273004,410.05802887931,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.57253609913,523.2511306012],description:"21/20, 2401/2400 and 6144/6125, Gene Ward Smith, 2002"},pipedum_19m:{frequencies:[261.6255653006,269.10058145205,293.02063313667,299.00064605783,305.22982618403,313.95067836072,317.94773560837,348.83408706747,358.80077526939,366.27579142084,373.75080757229,406.97310157871,418.60090448096,430.56093032327,436.04260883433,448.50096908674,488.36772189445,502.32108537715,508.71637697339,523.2511306012],description:"126/125, 1728/1715 and 16/15, Gene Ward Smith, 2002"},pipedum_19n:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,305.22982618403,313.95067836072,320.49131749323,327.03195662575,333.70607818954,366.27579142084,373.75080757229,381.53728273004,392.4383479509,427.32175665765,436.04260883433,448.50096908674,457.84473927605,467.18850946536,512.78610798918,523.2511306012],description:"126/125, 2401/2400 and 16/15, Gene Ward Smith, 2002"},pipedum_19o:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,502.32108537715,523.2511306012],description:"225/224, 3136/3125 and 4375/4374, OdC 2000"},pipedum_21:{frequencies:[261.6255653006,267.07609791103,280.31310567921,284.8811711051,299.00064605783,305.22982618403,320.35783506196,327.03195662575,341.85740532612,348.83408706747,366.27579142084,373.75080757229,392.4383479509,400.44729382745,418.60090448096,427.32175665765,448.50096908674,457.84473927605,480.53675259294,488.36772189445,512.57253609913,523.2511306012],description:"36/35, 225/224 and 2401/2400, P. Erlich, 2001. Just PB version of miracle1"},pipedum_21a:{frequencies:[261.6255653006,265.7783520514,286.15296204753,290.69507255622,299.00064605783,305.22982618403,327.03195662575,332.22294006425,343.38355445704,348.83408706747,373.75080757229,381.53728273004,392.4383479509,398.6675280771,429.2294430713,436.04260883433,448.50096908674,457.84473927605,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"1029/1024, 81/80 comma and 25/24 chroma"},pipedum_21b:{frequencies:[261.6255653006,267.07609791103,279.06726965397,284.8811711051,299.00064605783,305.22982618403,318.93402246168,325.57848126297,343.38355445704,348.83408706747,366.27579142084,372.08969287196,392.4383479509,398.6675280771,418.60090448096,427.32175665765,448.50096908674,457.84473927605,478.40103369253,488.36772189445,496.11959049595,523.2511306012],description:"36/35, 225/224 and 1029/1024, Gene Ward Smith, 2002"},pipedum_21c:{frequencies:[261.6255653006,269.46602871384,279.06726965397,287.4304306281,297.67175429757,306.59245933664,317.51653791741,327.03195662575,344.91651675372,348.83408706747,367.91095120397,372.08969287196,392.4383479509,396.89567239676,418.60090448096,431.14564594215,446.50763144636,459.88868900496,476.27480687611,490.54793493862,508.02646066786,523.2511306012],description:"First 128/125 and ampersand comma Fokker block"},pipedum_22:{frequencies:[261.6255653006,267.90457886781,279.06726965397,285.76488412567,299.40669857094,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,365.77905168086,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,457.22381460107,479.0507177135,490.54793493862,510.98743222773,523.2511306012],description:"3125/3072 and 2109375/2097152 are homophonic intervals"},pipedum_22a:{frequencies:[261.6255653006,267.90457886781,279.06726965397,287.4304306281,297.67175429757,306.59245933664,317.51653791741,327.03195662575,334.88072358477,348.83408706747,357.20610515709,372.08969287196,381.01984550089,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,476.27480687611,490.54793493862,508.02646066786,523.2511306012],description:"2048/2025 and 2109375/2097152 are homophonic intervals"},pipedum_22b:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,357.69120255941,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:'2025/2048, 245/243 and 64/63. P. Erlich "7-limit Indian", TL 19-12-2000'},pipedum_22b2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,448.50096908674,465.11211608996,478.40103369253,490.54793493862,504.56359022259,523.2511306012],description:"Version of pipedum_22b with other shape, Paul Erlich"},pipedum_22c:{frequencies:[261.6255653006,267.07609791103,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,512.57253609913,523.2511306012],description:"1728/1715, 64/63 and 50/49, Paul Erlich, 2001"},pipedum_22d:{frequencies:[261.6255653006,269.10058145205,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,333.84512238879,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,410.05802887931,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,508.71637697339,523.2511306012],description:"1728/1715, 875/864 and 64/63, Paul Erlich, 2001"},pipedum_22e:{frequencies:[261.6255653006,269.10058145205,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,384.42940207435,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 50/49, Paul Erlich, 2001"},pipedum_22f:{frequencies:[261.6255653006,269.10058145205,276.78916949353,290.69507255622,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,470.92601754108,494.58536650191,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 875/864, Paul Erlich, 2001"},pipedum_22g:{frequencies:[261.6255653006,267.07609791103,279.06726965397,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,478.40103369253,490.54793493862,512.57253609913,523.2511306012],description:"225/224, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_22h:{frequencies:[261.6255653006,269.10058145205,280.31310567921,287.04062021552,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,476.92160341255,488.36772189445,508.71637697339,523.2511306012],description:"225/224, 1728/1715 and 875/864, Paul Erlich, 2001"},pipedum_22i:{frequencies:[261.6255653006,269.10058145205,279.06726965397,288.32205155576,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,474.80195184183,490.54793493862,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 245/243, Paul Erlich, 2001"},pipedum_22j:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,299.00064605783,305.22982618403,320.35783506196,332.22294006425,336.37572681506,348.83408706747,353.19451315581,373.75080757229,387.59343007496,392.4383479509,406.97310157871,427.14378008261,436.04260883433,448.50096908674,465.11211608996,480.53675259294,498.33441009638,504.56359022259,523.2511306012],description:"50/49, 64/63 and 245/243, Gene Ward Smith, 2002"},pipedum_22k:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,359.73515228832,367.91095120397,380.54627680087,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"121/120, 2048/2025 and 4125/4096, Manuel Op de Coul"},pipedum_22l:{frequencies:[261.6255653006,275.62199471997,284.23518205497,290.69507255622,303.18419419197,310.07474405997,319.76457981184,330.74639366397,341.08221846597,348.83408706747,363.82103303037,372.08969287196,387.59343007496,404.24559225596,413.43299207996,426.35277308246,440.99519155196,454.77629128796,465.11211608996,485.09471070715,496.11959049595,511.62332769895,523.2511306012],description:"121/120, 736/729, 100/99 and 2048/2025"},pipedum_23:{frequencies:[261.6255653006,271.25338610366,276.85245005354,287.04062021552,297.60371503945,302.80736724606,313.95067836072,325.50406332439,332.22294006425,344.44874425862,348.83408706747,363.36884069528,376.74081403286,384.51729174103,398.6675280771,413.33849311034,420.56578784176,436.04260883433,452.08897683944,461.42075008924,478.40103369253,496.00619173241,504.67894541011,523.2511306012],description:"6144/6125, 15625/1552 and 5103/5000, Manuel Op de Coul, 2003"},pipedum_24:{frequencies:[261.6255653006,267.57160087561,275.93321340298,285.40970760065,290.69507255622,299.7792935736,310.07474405997,319.76457981184,327.03195662575,338.26335715633,348.83408706747,356.76213450082,367.91095120397,380.54627680087,392.4383479509,401.35740131342,413.43299207996,426.35277308246,436.04260883433,449.66894036041,465.11211608996,479.64686971777,490.54793493862,507.3950357345,523.2511306012],description:"121/120, 16384/16335 and 32805/32768. Manuel Op de Coul, 2001"},pipedum_24a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,321.92208230347,327.03195662575,343.38355445704,348.83408706747,366.27579142084,367.91095120397,381.53728273004,392.4383479509,412.06026534844,418.60090448096,429.2294430713,436.04260883433,457.84473927605,470.92601754108,488.36772189445,490.54793493862,515.07533168556,523.2511306012],description:"49/48, 81/80 and 128/125, Gene Ward Smith, 2002"},pipedum_24b:{frequencies:[261.6255653006,271.31540105247,275.62199471997,289.72987407313,294.32876096318,305.22982618403,310.07474405997,325.94610833227,331.11985608357,343.38355445704,348.83408706747,361.75386806997,372.50983809402,386.30649876417,392.4383479509,406.97310157871,413.43299207996,434.59481110969,441.49314144476,457.84473927605,465.11211608996,482.33849075995,496.67978412536,515.07533168556,523.2511306012],description:"49/48, 81/80 and 531441/524288"},pipedum_25:{frequencies:[261.6255653006,268.26840191956,274.70684356563,281.29980781121,291.99281841585,299.00064605783,306.17666156322,313.95067836072,327.03195662575,335.33550239945,343.38355445704,351.62475976401,364.99102301981,373.75080757229,382.72082695402,392.4383479509,408.78994578219,418.60090448096,429.2294430713,439.53094970501,447.89271634391,467.18850946536,478.40103369253,490.54793493862,502.32108537715,523.2511306012],description:"65625/65536, 1029/1024 and 3125/3072, Manuel Op de Coul, 2003"},pipedum_26:{frequencies:[261.6255653006,267.07609791103,274.70684356563,286.15296204753,292.89859205665,299.00064605783,305.22982618403,313.95067836072,327.03195662575,333.84512238879,341.71502406609,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,400.61414686654,410.05802887931,418.60090448096,436.04260883433,448.50096908674,457.84473927605,467.3831713443,478.40103369253,498.33441009638,512.57253609913,523.2511306012],description:"1029/1024, 1728/1715 and 50/49, Paul Erlich, 2001"},pipedum_26a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,294.32876096318,305.22982618403,306.59245933664,321.92208230347,325.57848126297,327.03195662575,343.38355445704,348.83408706747,366.27579142084,367.91095120397,381.53728273004,392.4383479509,408.78994578219,412.06026534844,429.2294430713,436.04260883433,457.84473927605,459.88868900496,465.11211608996,488.36772189445,490.54793493862,515.07533168556,523.2511306012],description:"50/49, 81/80 and 525/512, Gene Ward Smith, 2002"},pipedum_26b:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,290.69507255622,301.39265122629,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,392.4383479509,401.85686830172,408.78994578219,418.60090448096,436.04260883433,446.50763144636,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"81/80 and 78125/73728, Gene Ward Smith, 2005"},pipedum_27:{frequencies:[261.6255653006,271.20240005245,278.95104005395,284.76252005507,292.89859205665,299.00064605783,307.54352165948,316.40280006119,325.44288006294,332.22294006425,341.71502406609,351.47831046798,358.80077526939,369.05222599138,379.68336007343,390.53145607553,398.6675280771,410.05802887931,418.60090448096,430.56093032327,442.86267118965,455.62003208812,468.63774729064,478.40103369253,492.06963465517,502.32108537715,516.67311638793,523.2511306012],description:"126/125, 1728/1715 and 4000/3969 are homophonic intervals, Paul Erlich"},pipedum_27a:{frequencies:[261.6255653006,269.10058145205,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,508.71637697339,523.2511306012],description:"126/126, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_27b:{frequencies:[261.6255653006,266.96486255163,272.52663052146,280.31310567921,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,333.70607818954,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,410.22888639134,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,467.18850946536,488.36772189445,502.32108537715,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 128/125, Paul Erlich, 2001"},pipedum_27c:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 686/675, Paul Erlich, 2001"},pipedum_27d:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,355.95315006884,366.27579142084,373.75080757229,384.58958099188,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 64/63, Paul Erlich, 2001"},pipedum_27e:{frequencies:[261.6255653006,269.10058145205,274.70684356563,282.55561052465,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.35783506196,329.64821227876,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,415.27867508032,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.4917875937,498.33441009638,508.71637697339,523.2511306012],description:"2401/2400, 126/125 and 245/243, Paul Erlich, 2001"},pipedum_27f:{frequencies:[261.6255653006,267.07609791103,272.52663052146,280.31310567921,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,333.84512238879,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,410.05802887931,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,467.18850946536,488.36772189445,502.32108537715,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 128/125, Paul Erlich, 2001"},pipedum_27g:{frequencies:[261.6255653006,267.07609791103,274.59243005311,280.31310567921,290.81619550312,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.72988009104,488.36772189445,498.54204943392,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 686/675, Paul Erlich, 2001"},pipedum_27h:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_27i:{frequencies:[261.6255653006,269.10058145205,274.70684356563,282.43792805463,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,329.51091606373,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,415.4517078616,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.69365917187,498.33441009638,508.71637697339,523.2511306012],description:"2401/2400, 1728/1715 and 245/243, Paul Erlich, 2001"},pipedum_27j:{frequencies:[261.6255653006,269.16210421872,276.91574508099,282.55561052465,290.69507255622,299.06900468747,305.16005936662,313.95067836072,322.99452506247,329.57286411595,339.06673262958,348.83408706747,358.88280562497,366.19207123994,376.74081403286,387.59343007496,395.48743693914,406.88007915549,418.60090448096,423.83341578697,436.04260883433,448.60350703121,461.52624180165,470.92601754108,484.4917875937,498.44834114579,508.60009894437,523.2511306012],description:"78732/78125 and 390625000/387420489"},pipedum_27k:{frequencies:[261.6255653006,264.89588486686,275.62199471997,279.38237857051,290.69507255622,294.32876096318,298.00787047521,310.07474405997,313.95067836072,331.11985608357,344.52749339997,348.83408706747,353.19451315581,367.49599295996,372.50983809402,387.59343007496,392.4383479509,397.34382730029,413.43299207996,418.60090448096,441.49314144476,447.01180571282,459.36999119996,465.11211608996,470.92601754108,496.67978412536,516.79124009995,523.2511306012],description:"67108864/66430125 and 25/24"},pipedum_28:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,285.76488412567,299.40669857094,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,457.22381460107,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"393216/390625 and 16875/16384"},pipedum_29:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,288.44218574391,294.32876096318,300.33547037059,310.07474405997,316.40280006119,325.57848126297,332.22294006425,341.85740532612,348.83408706747,355.95315006884,366.27579142084,373.75080757229,384.58958099188,392.4383479509,400.44729382745,412.06026534844,420.46965851882,434.10464168396,442.96392008567,455.80987376816,465.11211608996,474.60420009179,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"5120/5103, 225/224 and 50421/50000, Manuel Op de Coul, 2003"},pipedum_29a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,290.69507255622,294.32876096318,305.22982618403,313.95067836072,317.94773560837,327.03195662575,339.14425131559,343.38355445704,348.83408706747,363.36884069528,366.27579142084,372.60080508745,381.53728273004,392.4383479509,408.78994578219,412.06026534844,429.2294430713,436.04260883433,441.49314144476,457.84473927605,470.92601754108,476.92160341255,490.54793493862,508.71637697339,515.07533168556,523.2511306012],description:"49/48, 55/54, 65/64, 91/90 and 100/99"},pipedum_31:{frequencies:[261.6255653006,271.62175694356,275.93321340298,281.68182201554,289.72987407313,294.32876096318,300.46061014991,310.42486507835,316.89204976748,321.92208230347,331.11985608357,338.01818641865,343.38355445704,356.50355598842,362.16234259141,367.91095120397,380.27045972098,386.30649876417,392.4383479509,407.43263541533,413.89982010446,422.52273302331,434.59481110969,441.49314144476,450.69091522486,465.63729761752,475.33807465122,482.88312345521,496.67978412536,507.02727962797,515.07533168556,523.2511306012],description:"81/80, 225/224 and 1029/1024 are homophonic intervals"},pipedum_31a:{frequencies:[261.6255653006,269.46602871384,275.93321340298,282.55561052465,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,321.48549464138,329.20114651277,336.83253589231,344.91651675372,353.19451315581,359.28803828513,367.91095120397,376.74081403286,385.78259356965,392.4383479509,401.85686830172,411.50143314096,421.04066986538,431.14564594215,441.49314144476,452.08897683944,459.88868900496,470.92601754108,482.22824196207,490.54793493862,502.32108537715,514.3767914262,523.2511306012],description:"393216/390625 and 2109375/2097152 are homophonic intervals"},pipedum_31b:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.54352165948,327.03195662575,333.84512238879,339.14425131559,343.38355445704,348.83408706747,356.10146388137,373.75080757229,381.53728273004,387.59343007496,392.4383479509,400.61414686654,406.97310157871,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"245/243, 1029/1024 comma and 25/24 chroma"},pipedum_31c:{frequencies:[261.6255653006,265.7783520514,274.70684356563,279.06726965397,286.15296204753,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,334.88072358477,343.38355445704,348.83408706747,360.55273217989,366.27579142084,373.75080757229,384.58958099188,392.4383479509,398.6675280771,412.06026534844,418.60090448096,429.2294430713,439.53094970501,448.50096908674,457.84473927605,470.92601754108,480.73697623985,490.54793493862,502.32108537715,515.07533168556,523.2511306012],description:"126/125, 225/224 and 1029/1024, Op de Coul"},pipedum_31d:{frequencies:[261.6255653006,269.10058145205,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,316.53463456122,327.03195662575,336.37572681506,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,403.65087217807,406.97310157871,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,478.40103369253,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"1728/1715, 225/224 and 81/80"},pipedum_31e:{frequencies:[261.6255653006,267.07609791103,272.52663052146,276.85245005354,286.15296204753,290.69507255622,299.00064605783,305.22982618403,311.45900631024,317.94773560837,327.03195662575,332.22294006425,343.38355445704,348.83408706747,357.69120255941,363.36884069528,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,415.27867508032,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,476.92160341255,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:'81/80, 126/125 and 1029/1024, Gene Smith (2005) "Synstargam"'},pipedum_32:{frequencies:[261.6255653006,267.07609791103,270.30192333353,280.31310567921,286.15296204753,292.11448209019,299.00064605783,305.22982618403,311.5887808962,315.35224388912,325.57848126297,333.84512238879,337.87740416691,348.83408706747,356.10146388137,360.4025644447,367.91095120397,379.84156147346,384.42940207435,394.1903048614,406.97310157871,415.4517078616,420.46965851882,429.2294430713,443.14848838571,448.50096908674,457.84473927605,474.80195184183,480.53675259294,490.54793493862,500.76768358318,512.57253609913,523.2511306012],description:"225/224, 2048/2025 and 117649/116640"},pipedum_32a:{frequencies:[261.6255653006,268.26840191956,274.59243005311,280.31310567921,286.15296204753,292.89859205665,299.00064605783,305.22982618403,311.5887808962,320.35783506196,327.03195662575,333.84512238879,341.71502406609,348.83408706747,356.10146388137,364.4960256705,372.08969287196,381.53728273004,390.53145607553,398.6675280771,406.97310157871,416.56688648057,425.24536328225,434.10464168396,438.17172313528,450.50320555588,459.88868900496,469.46970335923,480.53675259294,490.54793493862,500.76768358318,512.57253609913,523.2511306012],description:"589824/588245, 225/224 and 2048/2025"},pipedum_34:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,290.69507255622,294.32876096318,301.39265122629,306.59245933664,313.95067836072,321.48549464138,327.03195662575,334.88072358477,340.65828815182,348.83408706747,354.85238349148,363.36884069528,367.91095120397,376.74081403286,385.78259356965,392.4383479509,401.85686830172,408.78994578219,418.60090448096,425.82286018978,436.04260883433,446.50763144636,454.2110508691,465.11211608996,470.92601754108,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"15625/15552 and 393216/390625 are homophonic intervals"},pipedum_34a:{frequencies:[261.6255653006,264.89588486686,272.52663052146,279.06726965397,282.55561052465,290.69507255622,294.32876096318,301.39265122629,306.59245933664,313.95067836072,317.87506184023,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,423.83341578697,436.04260883433,441.49314144476,452.08897683944,465.11211608996,470.92601754108,484.4917875937,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"15625/15552 and 2048/2025, Manuel Op de Coul, 2001"},pipedum_34b:{frequencies:[261.6255653006,267.57160087561,272.52663052146,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.7792935736,310.07474405997,313.95067836072,319.76457981184,327.03195662575,334.88072358477,342.49164912079,348.83408706747,356.76213450082,359.73515228832,367.91095120397,380.54627680087,383.71749577421,392.4383479509,399.70572476481,408.78994578219,418.60090448096,428.11456140098,436.04260883433,441.49314144476,449.66894036041,465.11211608996,470.92601754108,479.64686971777,490.54793493862,502.32108537715,511.62332769895,523.2511306012],description:"100/99, 243/242 and 5632/5625, Manuel Op de Coul"},pipedum_36:{frequencies:[261.6255653006,267.07609791103,269.10058145205,280.31310567921,286.15296204753,290.69507255622,294.32876096318,300.46061014991,305.22982618403,311.5887808962,320.35783506196,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,356.10146388137,367.91095120397,373.75080757229,381.53728273004,384.42940207435,392.4383479509,400.61414686654,406.97310157871,420.46965851882,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,467.3831713443,480.53675259294,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"1029/1024, 245/243 comma and 50/49 chroma, Gene Ward Smith, 2001"},pipedum_36a:{frequencies:[261.6255653006,264.89588486686,275.62199471997,275.93321340298,279.06726965397,290.69507255622,293.99679436797,294.32876096318,310.07474405997,310.42486507835,313.95067836072,327.03195662575,330.74639366397,331.11985608357,348.83408706747,349.22797321314,353.19451315581,367.91095120397,372.08969287196,372.50983809402,387.59343007496,392.4383479509,397.34382730029,413.43299207996,413.89982010446,418.60090448096,436.04260883433,440.99519155196,441.49314144476,465.11211608996,465.63729761752,470.92601754108,490.54793493862,496.11959049595,496.67978412536,516.79124009995,523.2511306012],description:"1125/1024 and 531441/524288, Op de Coul"},pipedum_37:{frequencies:[261.6255653006,263.718569823,276.85245005354,279.06726965397,280.31310567921,290.69507255622,293.02063313667,299.00064605783,308.98710943476,311.45900631024,313.95067836072,325.57848126297,332.22294006425,333.70607818954,346.06556256693,348.83408706747,351.62475976401,353.19451315581,370.78453132171,373.75080757229,376.74081403286,390.69417751556,392.4383479509,400.44729382745,415.27867508032,418.60090448096,421.94971171681,436.04260883433,444.94143758605,448.50096908674,465.11211608996,467.18850946536,470.92601754108,494.37937509562,498.33441009638,502.32108537715,519.0983438504,523.2511306012],description:"250/243, 3136/3125 and 3125/3087, Gene Ward Smith, 2002"},pipedum_38:{frequencies:[261.6255653006,271.25338610366,272.52663052146,280.3771918945,282.55561052465,290.69507255622,292.95365699196,301.39265122629,302.80736724606,313.95067836072,315.42434088132,325.50406332439,327.03195662575,336.45263027341,339.06673262958,348.83408706747,350.47148986813,361.67118147155,363.36884069528,376.74081403286,378.50920905758,390.60487598927,392.4383479509,403.74315632809,406.88007915549,418.60090448096,420.56578784176,434.00541776586,436.04260883433,452.08897683944,454.2110508691,467.29531982417,470.92601754108,484.4917875937,488.25609498659,502.32108537715,504.67894541011,519.21702202686,523.2511306012],description:"81/80 and 1224440064/1220703125, Manuel Op de Coul, 2001"},pipedum_38a:{frequencies:[261.6255653006,268.26840191956,272.52663052146,274.70684356563,279.06726965397,286.15296204753,293.02063313667,294.32876096318,305.22982618403,306.59245933664,313.95067836072,321.92208230347,327.03195662575,329.64821227876,340.65828815182,343.38355445704,348.83408706747,357.69120255941,366.27579142084,367.91095120397,381.53728273004,383.2405741708,390.69417751556,392.4383479509,408.78994578219,412.06026534844,418.60090448096,429.2294430713,436.04260883433,439.53094970501,457.84473927605,459.88868900496,470.92601754108,476.92160341255,488.36772189445,490.54793493862,510.98743222773,515.07533168556,523.2511306012],description:"50/49, 81/80 and 3125/3072, Gene Ward Smith, 2002"},pipedum_41:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.70684356563,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,303.67253115248,308.34441624714,313.95067836072,320.49131749323,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,354.2846196779,359.73515228832,366.27579142084,373.75080757229,381.53728273004,387.40708707973,392.4383479509,400.61414686654,406.97310157871,412.06026534844,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,495.99846754905,503.62921320365,513.90736041189,523.2511306012],description:"100/99 105/104 196/195 275/273 385/384, Paul Erlich, TL 3-11-2000"},pipedum_41a:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.70684356563,280.31310567921,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,400.61414686654,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,495.99846754905,503.62921320365,513.90736041189,523.2511306012],description:"pipedum_41 improved shape by Manuel Op de Coul, all intervals superparticular"},pipedum_41b:{frequencies:[261.6255653006,265.7783520514,271.31540105247,274.70684356563,279.06726965397,284.8811711051,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,498.33441009638,504.56359022259,515.07533168556,523.2511306012],description:"pipedum_41 more improved shape by M. OdC, all intervals superparticular"},pipedum_41c:{frequencies:[261.6255653006,267.07609791103,271.31540105247,275.93321340298,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,315.35224388912,320.35783506196,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,356.10146388137,360.4025644447,367.91095120397,373.75080757229,381.53728273004,384.42940207435,392.4383479509,398.6675280771,406.97310157871,410.05802887931,420.46965851882,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,474.80195184183,480.53675259294,490.54793493862,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"225/224, 245/243 and 1029/1024, Gene Ward Smith, 2002"},pipedum_41d:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,282.55561052465,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,317.51653791741,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,423.83341578697,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.11959049595,502.32108537715,517.37477513058,523.2511306012],description:"3125/3072 and 32805/32768"},pipedum_43:{frequencies:[261.6255653006,269.10058145205,273.37201925287,274.70684356563,282.55561052465,286.15296204753,287.04062021552,290.69507255622,299.00064605783,305.22982618403,307.54352165948,313.95067836072,322.92069774245,327.03195662575,328.04642310345,332.22294006425,341.71502406609,343.38355445704,348.83408706747,358.80077526939,366.27579142084,369.05222599138,376.74081403286,379.68336007343,381.53728273004,392.4383479509,398.6675280771,410.05802887931,412.06026534844,418.60090448096,423.93031414449,430.56093032327,436.04260883433,448.50096908674,455.62003208812,457.84473927605,470.92601754108,478.40103369253,492.06963465517,494.47231841813,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 126/125 and 12288/12005, Gene Ward Smith, 2002"},pipedum_45:{frequencies:[261.6255653006,265.7783520514,267.07609791103,274.70684356563,279.06726965397,280.31310567921,284.8811711051,293.02063313667,294.32876096318,299.00064605783,303.74668805875,305.22982618403,313.95067836072,320.49131749323,325.57848126297,327.03195662575,336.37572681506,341.85740532612,343.38355445704,348.83408706747,356.10146388137,358.80077526939,366.27579142084,372.08969287196,373.75080757229,384.58958099188,392.4383479509,398.6675280771,400.61414686654,406.97310157871,418.60090448096,420.46965851882,427.32175665765,436.04260883433,439.53094970501,448.50096908674,455.80987376816,457.84473927605,465.11211608996,478.40103369253,480.73697623985,488.36772189445,498.33441009638,512.78610798918,515.07533168556,523.2511306012],description:"81/80, 525/512 and 2401/2400, Gene Ward Smith, 2002"},scala205pipedum_45a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,276.85245005354,282.55561052465,288.32205155576,290.69507255622,296.75121990114,299.00064605783,305.22982618403,311.45900631024,313.95067836072,320.49131749323,322.99452506247,329.64821227876,336.37572681506,339.14425131559,345.98646186692,348.83408706747,356.10146388137,363.28578496026,366.27579142084,373.75080757229,376.82694590621,384.42940207435,392.4383479509,395.66829320152,403.65087217807,406.97310157871,415.27867508032,423.83341578697,427.14378008261,436.04260883433,439.53094970501,448.50096908674,457.84473927605,461.31528248922,470.92601754108,474.80195184183,484.4917875937,494.47231841813,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 2401/2400 and 4375/4374, Gene Ward Smith"},pipedum_46:{frequencies:[261.6255653006,265.7783520514,270.41454913492,274.70684356563,279.06726965397,280.31310567921,286.15296204753,290.69507255622,295.30928005711,300.46061014991,305.22982618403,310.07474405997,313.95067836072,320.49131749323,325.57848126297,327.03195662575,332.22294006425,339.14425131559,343.38355445704,348.83408706747,354.37113606854,360.55273217989,366.27579142084,372.08969287196,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,427.32175665765,429.2294430713,436.04260883433,442.96392008567,450.69091522486,457.84473927605,465.11211608996,470.92601754108,480.73697623985,488.36772189445,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"126/125, 1029/1024 and 5120/5103. Manuel Op de Coul, 2001"},pipedum_46a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,279.06726965397,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.54352165948,313.95067836072,320.35783506196,320.49131749323,327.03195662575,332.22294006425,336.37572681506,343.38355445704,348.83408706747,353.19451315581,358.80077526939,366.12324007081,366.27579142084,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,427.14378008261,427.32175665765,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,470.92601754108,478.40103369253,488.36772189445,490.54793493862,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"126/125, 1029/1024 and 245/243, Gene Ward Smith, 2002"},pipedum_46b:{frequencies:[261.6255653006,264.89588486686,271.25338610366,272.52663052146,279.06726965397,282.55561052465,283.88190679319,290.69507255622,294.32876096318,301.39265122629,302.80736724606,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,334.88072358477,339.06673262958,340.65828815182,348.83408706747,353.19451315581,361.67118147155,363.36884069528,372.08969287196,376.74081403286,381.45007420827,387.59343007496,392.4383479509,401.85686830172,403.74315632809,408.78994578219,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,452.08897683944,454.2110508691,465.11211608996,470.92601754108,482.22824196207,484.4917875937,490.54793493862,502.32108537715,508.60009894437,516.79124009995,523.2511306012],description:"2048/2025 and 78732/78125"},pipedum_46c:{frequencies:[261.6255653006,266.47048317654,271.31540105247,274.08392555301,279.06726965397,282.62020942966,287.78812183066,290.69507255622,297.67175429757,299.7792935736,306.97399661937,310.07474405997,313.95067836072,319.76457981184,325.57848126297,328.90071066361,332.22294006425,339.14425131559,342.60490694126,348.83408706747,355.29397756872,359.73515228832,363.36884069528,372.08969287196,374.72411696701,383.71749577421,387.59343007496,394.68085279633,399.70572476481,406.97310157871,411.12588832951,418.60090448096,426.35277308246,431.68218274599,436.04260883433,446.50763144636,449.66894036041,460.46099492906,465.11211608996,467.18850946536,479.64686971777,484.4917875937,496.11959049595,499.63215595601,511.62332769895,516.79124009995,523.2511306012],description:"126/125, 176/175, 385/384 and 896/891, Paul Erlich"},pipedum_46d:{frequencies:[261.6255653006,267.23182741418,272.79915715198,274.70684356563,278.36648688978,283.42769574232,287.78812183066,291.52562990638,297.59908052943,299.7792935736,303.67253115248,311.77046531655,313.95067836072,320.67819289702,324.7609013714,327.03195662575,334.03978426773,340.11323489078,343.04051394309,345.34574619679,354.2846196779,359.73515228832,366.27579142084,374.12455837986,376.74081403286,381.53728273004,389.71308164569,392.4383479509,402.90337056292,408.13588186894,411.12588832951,419.69101100305,425.14154361347,431.68218274599,439.53094970501,445.38637902364,448.50096908674,457.84473927605,467.65569797482,470.92601754108,479.64686971777,485.87604984397,490.54793493862,503.62921320365,510.16985233617,519.61744219425,523.2511306012],description:"91/90, 121/120, 126/125, 169/168 and 176/175"},pipedum_5:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"16/15 and 27/25"},pipedum_50:{frequencies:[261.6255653006,267.07609791103,269.10058145205,273.37201925287,274.70684356563,276.85245005354,284.76252005507,286.15296204753,290.69507255622,299.00064605783,300.46061014991,305.22982618403,307.54352165948,313.95067836072,316.40280006119,320.49131749323,327.03195662575,332.22294006425,333.84512238879,341.71502406609,343.38355445704,348.83408706747,358.80077526939,360.55273217989,361.60320006994,366.27579142084,373.75080757229,379.68336007343,381.53728273004,392.4383479509,398.6675280771,400.61414686654,410.05802887931,412.06026534844,418.60090448096,423.93031414449,427.14378008261,436.04260883433,445.12682985172,448.50096908674,455.62003208812,457.84473927605,470.92601754108,478.40103369253,480.73697623985,484.4917875937,498.33441009638,500.76768358318,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 126/125 and 16807/16384, Gene Ward Smith, 2002"},pipedum_53:{frequencies:[261.6255653006,264.89588486686,269.16210421872,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,298.00787047521,302.80736724606,306.59245933664,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,403.74315632809,408.78994578219,413.89982010446,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.81259276034,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"15625/15552 and 32805/32768, Manuel Op de Coul, 2001"},pipedum_53a:{frequencies:[261.6255653006,266.96486255163,269.10058145205,272.52663052146,276.85245005354,280.31310567921,282.55561052465,288.32205155576,290.69507255622,294.32876096318,299.00064605783,302.80736724606,305.22982618403,311.45900631024,313.95067836072,320.35783506196,322.99452506247,327.03195662575,332.22294006425,336.37572681506,339.14425131559,346.06556256693,348.83408706747,353.19451315581,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,387.59343007496,392.4383479509,398.6675280771,403.65087217807,406.97310157871,415.27867508032,418.60090448096,423.83341578697,430.56093032327,436.04260883433,441.49314144476,448.50096908674,454.2110508691,457.84473927605,467.18850946536,470.92601754108,480.53675259294,484.4917875937,490.54793493862,498.33441009638,504.56359022259,508.71637697339,519.0983438504,523.2511306012],description:"225/224, 1728/1715 and 4375/4374, Manuel Op de Coul, 2001"},pipedum_53b:{frequencies:[261.6255653006,266.96486255163,269.10058145205,272.52663052146,274.70684356563,280.31310567921,286.03378130532,288.32205155576,290.69507255622,293.02063313667,299.00064605783,301.39265122629,305.22982618403,311.45900631024,313.95067836072,320.35783506196,322.92069774245,327.03195662575,333.70607818954,336.37572681506,341.85740532612,343.24053756638,348.83408706747,351.62475976401,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,389.3237578878,392.4383479509,400.44729382745,403.65087217807,406.97310157871,410.22888639134,418.60090448096,427.14378008261,430.56093032327,436.04260883433,439.53094970501,448.50096908674,457.65405008851,457.84473927605,467.18850946536,470.92601754108,478.60036745656,480.53675259294,488.36772189445,498.33441009638,502.32108537715,512.57253609913,512.78610798918,523.2511306012],description:"225/224, 1728/1715 and 3125/3087, Gene Ward Smith, 2002"},pipedum_55:{frequencies:[261.6255653006,267.07609791103,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,286.15296204753,293.02063313667,294.32876096318,296.75121990114,299.00064605783,305.22982618403,306.59245933664,313.95067836072,317.94773560837,320.49131749323,325.57848126297,327.03195662575,333.84512238879,336.37572681506,340.65828815182,343.38355445704,348.83408706747,356.10146388137,358.80077526939,366.27579142084,367.91095120397,373.75080757229,376.74081403286,381.53728273004,390.69417751556,392.4383479509,400.61414686654,403.65087217807,406.97310157871,408.78994578219,418.60090448096,427.32175665765,429.2294430713,436.04260883433,439.53094970501,445.12682985172,448.50096908674,457.84473927605,459.88868900496,470.92601754108,474.80195184183,476.92160341255,488.36772189445,490.54793493862,502.32108537715,504.56359022259,508.71637697339,520.92557002075,523.2511306012],description:"81/80, 686/675 and 6144/6125, Gene Ward Smith, 2002"},pipedum_58:{frequencies:[261.6255653006,264.29521392612,268.60224704195,271.31540105247,275.62199471997,277.50997462242,280.31310567921,284.8811711051,287.78812183066,292.35618725654,295.30928005711,297.33211566688,302.17752792219,305.22982618403,310.07474405997,313.23877206058,315.35224388912,320.49131749323,323.76163705949,328.90071066361,332.22294006425,337.63694353197,339.94971891247,343.38355445704,348.83408706747,352.39361856816,358.13632938927,361.75386806997,364.23184169193,370.01329949656,373.75080757229,379.84156147346,383.71749577421,389.80824967539,392.4383479509,396.44282088917,402.90337056292,406.97310157871,413.43299207996,417.65169608078,420.46965851882,427.32175665765,431.68218274599,438.53428088482,442.96392008567,445.99817350032,453.26629188329,457.84473927605,465.11211608996,469.85815809087,477.51510585235,480.73697623985,485.64245558924,493.35106599542,498.33441009638,506.45541529795,511.62332769895,515.07533168556,523.2511306012],description:"9801/9800, 2401/2400, 5120/5103 and 896/891"},pipedum_58a:{frequencies:[261.6255653006,265.65057399753,267.66008354786,270.48058443385,272.52663052146,277.4816601673,281.75060878526,285.40970760065,287.78812183066,293.02063313667,295.1673044417,297.30177875068,301.87565226992,305.22982618403,309.92566966379,313.95067836072,316.2506833304,322.00069575458,323.72860352852,327.03195662575,332.97799220076,338.10073054231,342.60490694126,344.24801655217,348.83408706747,352.18826098158,358.59168390851,362.25078272391,366.27579142084,368.95913055213,375.66747838035,379.50081999647,381.53728273004,388.47432423422,392.4383479509,399.57359064092,402.50086969323,406.97310157871,411.12588832951,418.60090448096,422.62591317789,428.25613367658,430.31002069022,436.04260883433,442.75095666255,450.80097405642,455.40098399577,457.84473927605,466.16918908107,469.58434797544,475.68284600109,483.00104363188,488.36772189445,495.88107146206,499.46698830115,503.12608711654,512.27383415502,516.54278277298,523.2511306012],description:"126/125, 144/143, 176/175, 196/195 and 364/363"},pipedum_5a:{frequencies:[261.6255653006,290.69507255622,348.83408706747,392.4383479509,470.92601754108,523.2511306012],description:"27/25 and 81/80"},pipedum_64:{frequencies:[261.6255653006,267.90457886781,266.96486255163,273.37201925287,274.70684356563,273.74326726486,280.31310567921,280.42990280658,284.76252005507,286.15296204753,294.32876096318,300.05312833195,299.00064605783,300.46061014991,307.67166479351,306.59245933664,313.95067836072,312.84944830269,320.35783506196,320.49131749323,328.18310911307,327.03195662575,336.37572681506,336.5158833679,341.71502406609,343.38355445704,351.62475976401,348.83408706747,358.80077526939,358.95027559242,366.12324007081,366.27579142084,375.06641041494,373.75080757229,382.72082695402,384.58958099188,383.2405741708,392.4383479509,392.60186392921,398.6675280771,400.61414686654,412.06026534844,408.78994578219,418.60090448096,428.6473261885,427.14378008261,429.2294430713,439.53094970501,437.98922762377,448.50096908674,448.68784449053,455.62003208812,457.84473927605,468.83301301868,467.18850946536,478.40103369253,480.73697623985,488.16432009441,490.54793493862,502.32108537715,500.55911728431,512.57253609913,512.78610798918,520.70860810071,523.2511306012],description:"225/224 235298/234375 and 67108864/66706983"},pipedum_65:{frequencies:[261.6255653006,264.59711493117,267.38234771992,270.72462706642,273.0589090967,275.93321340298,279.06726965397,282.00481986086,285.20783756792,287.99181818792,291.26283636981,294.32876096318,297.67175429757,300.80514118491,303.39878788522,306.84479880935,310.42486507835,313.95067836072,317.25542234346,320.85881726391,323.62537374423,327.30111872997,331.11985608357,334.60532825287,338.40578383303,341.32363637087,345.20039866051,348.83408706747,352.79615324157,356.9123501364,360.9661694219,364.07854546226,367.91095120397,372.08969287196,376.00642648114,380.70650681216,383.98909091723,388.35044849308,392.4383479509,396.89567239676,401.07352157989,404.53171718029,409.58836364504,413.89982010446,418.60090448096,423.00722979129,427.81175635188,431.50049832564,436.89425455471,441.49314144476,446.50763144636,451.20771177737,455.09818182783,460.26719821402,465.11211608996,470.92601754108,475.8831335152,481.28822589586,485.43806061635,490.95167809495,496.11959049595,501.90799237931,507.60867574954,511.9854545563,517.80059799077,523.2511306012],description:"1216/1215, 32805/32768 and 39858075/39845888. Manuel Op de Coul, 2001"},pipedum_65a:{frequencies:[261.6255653006,264.89588486686,267.90457886781,269.16210421872,272.52663052146,275.93321340298,279.06726965397,282.55561052465,286.08755565621,287.10624449997,290.69507255622,294.32876096318,298.00787047521,301.39265122629,302.80736724606,306.59245933664,310.07474405997,313.95067836072,317.87506184023,319.0069383333,322.99452506247,327.03195662575,331.11985608357,334.88072358477,339.06673262958,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.60944457026,358.88280562497,363.36884069528,367.91095120397,372.08969287196,376.74081403286,381.45007420827,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,403.74315632809,408.78994578219,413.43299207996,418.60090448096,423.83341578697,429.13133348431,430.65936674996,436.04260883433,441.49314144476,446.50763144636,452.08897683944,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.81259276034,478.51040749995,484.4917875937,490.54793493862,496.67978412536,502.32108537715,508.60009894437,510.98743222773,516.79124009995,523.2511306012],description:"78732/78125 and 32805/32768"},pipedum_67:{frequencies:[261.6255653006,262.79353657426,266.96486255163,267.07609791103,272.52663052146,274.70684356563,279.06726965397,280.31310567921,284.8811711051,286.15296204753,293.02063313667,294.32876096318,299.00064605783,299.12522966035,300.33547037059,305.22982618403,306.59245933664,311.45900631024,313.95067836072,320.35783506196,320.49131749323,325.57848126297,327.03195662575,332.22294006425,336.5158833679,339.00300006557,341.85740532612,343.38355445704,348.83408706747,350.39138209902,355.95315006884,360.55273217989,366.27579142084,367.91095120397,373.75080757229,373.90653707544,381.53728273004,384.58958099188,390.69417751556,392.4383479509,398.83363954714,400.44729382745,400.61414686654,406.97310157871,408.78994578219,418.60090448096,420.46965851882,427.32175665765,429.2294430713,436.04260883433,439.53094970501,448.50096908674,448.68784449053,455.80987376816,457.84473927605,459.88868900496,465.11211608996,467.18850946536,474.60420009179,480.73697623985,488.36772189445,490.54793493862,498.33441009638,504.77382505185,512.78610798918,515.07533168556,520.92557002075,523.2511306012],description:"81/80, 1029/1024 and 9604/9375, Gene Ward Smith, 2002"},pipedum_68:{frequencies:[246.94165062806,250.86135936819,252.08626834948,253.99712636029,258.02882677871,259.28873315946,263.4044273366,264.58033995864,268.89201957278,272.13977824317,273.16014686758,276.57464870343,277.80935695657,282.21902928921,286.81815421096,288.0985923994,291.6998248044,292.67158592955,296.32998075367,301.03363124183,302.50352201937,307.30516522603,308.67706328508,311.01688942076,316.08531280392,317.49640795036,322.53603347338,324.11091644933,329.25553417075,333.37122834788,334.48181249092,338.66283514705,340.17472280396,345.71831087928,351.20590311546,352.77378661151,357.18345894416,358.5226927637,362.85303765756,368.76619827124,370.41247594209,376.29203905228,378.12940252422,384.13145653254,387.04324016806,388.93309973919,395.1066410049,396.87050993795,403.33802935916,409.74022030137,411.56941771343,414.86197305514,416.71403543485,423.32854393382,430.22723131644,432.1478885991,439.00737889433,441.15096961159,444.49497113051,451.55044686274,453.56629707195,460.95774783905,468.27453748728,470.36504881535,474.12796920588,476.24461192554,483.80405021008,491.68826436165,493.88330125612],description:"245/243, 2048/2025 and 2401/2400, Gene Ward Smith, 2002"},pipedum_7:{frequencies:[261.6255653006,290.69507255622,317.94773560837,347.75533582165,392.4383479509,429.2294430713,476.92160341255,523.2511306012],description:"81/80, 64/63 and 6144/6125, Manuel Op de Coul"},pipedum_72:{frequencies:[195.99771799087,198.44768946576,200.08100378235,201.59765279061,204.16428957382,205.79760389041,208.41771227328,209.06423252359,211.67753543014,214.37250405251,216.08748408493,217.77524221208,220.49743273973,222.31222642483,223.99739198957,226.79735938944,228.66400432268,231.52230437672,232.29359169288,235.19726158904,238.19167116946,240.09720453882,241.91718334873,244.99714748859,246.9571246685,250.10125472793,251.99706598826,254.07111591409,257.24700486302,258.04499557198,261.33029065449,264.59691928767,266.7746717098,268.79687038748,272.2190527651,274.39680518722,277.89028303104,279.99673998696,282.23671390685,285.83000540335,289.40288047089,290.3669896161,293.99657698631,296.41630189977,300.12150567352,302.39647918591,304.88533909691,308.69640583562,311.1074888744,313.59634878539,317.58889489261,321.55875607877,322.55624446497,326.66286331812,329.27616622466,333.46833963724,335.99608798435,338.76148788545,342.99600648402,347.28345656507,348.44038753932,352.79589238357,357.28750675419,360.14580680822,362.95873702013,365.86240691629,370.43568700274,373.32898664928,376.31561854247,381.10667387114,385.87050729453,387.1559861548,391.99543598174],description:"225/224, 1029/1024 and 4375/4374, Gene Ward Smith, 2002"},pipedum_72a:{frequencies:[195.99771799087,197.5656997348,200.08100378235,201.59765279061,203.21043401293,205.79760389041,207.44398472154,209.99755499022,211.67753543014,213.41973736784,216.04686727389,217.77524221208,219.51744414977,222.31222642483,223.99739198957,226.84921063758,228.66400432268,230.49331635726,233.3306166558,235.19726158904,237.07883968176,240.09720453882,241.91718334873,244.99714748859,246.9571246685,248.93278166584,251.99706598826,254.07111591409,256.1036848414,259.25624072866,261.33029065449,264.65741241051,266.7746717098,268.79687038748,272.2190527651,274.39680518722,276.59197962872,279.99673998696,282.23671390685,285.83000540335,288.11664544658,290.30062001848,293.99657698631,296.3485496022,298.59492344758,302.46561418344,304.88533909691,308.7669811456,311.1074888744,313.59634878539,317.58889489261,320.12960605175,322.55624446497,326.66286331812,329.27616622466,333.46833963724,335.99608798435,338.68405668822,342.99600648402,345.73997453589,348.36074402217,352.79589238357,355.69956227973,360.07811212314,362.95873702013,365.86240691629,370.52037737472,373.32898664928,376.31561854247,381.10667387114,384.15552726211,388.884361093,391.99543598174],description:"4375/4374, 2401/2400 and 15625/15552, Manuel Op de Coul, 2002"},pipedum_72b:{frequencies:[195.99771799087,197.5656997348,200.51849868858,202.12264667808,204.16428957382,205.79760389041,207.94510975112,209.60867062912,211.67753543014,213.41973736784,215.59748978996,218.74745311481,220.49743273973,222.7983318762,224.58071853121,226.79735938944,228.66400432268,230.99731048924,232.89852292125,235.19726158904,238.19167116946,240.62219842629,242.5471760137,244.99714748859,246.9571246685,249.53413170134,251.53040475495,254.07111591409,256.1036848414,259.87197430039,262.49694373777,264.59691928767,267.35799825143,269.49686223745,272.2190527651,274.39680518722,277.19677258709,279.4782275055,283.49669923679,285.83000540335,288.74663811155,291.12315365156,293.99657698631,296.3485496022,299.44095804161,301.83648570594,304.88533909691,309.37139797666,311.91766462667,314.99633248533,317.51630314521,320.82959790172,323.39623468494,326.66286331812,329.27616622466,332.71217560179,336.87107779681,340.19603908415,342.99600648402,346.49596573386,349.34778438187,352.79589238357,355.69956227973,359.32914964993,362.08404605941,367.49572123288,371.24567757199,374.30119755201,377.99559898239,381.10667387114,384.99551748207,388.16420486875,391.99543598174],description:"225/224, 3025/3024, 1375/1372 and 4375/4374"},pipedum_72b2:{frequencies:[195.99771799087,198.44768946576,200.45221158157,202.12264667808,204.16428957382,205.79760389041,207.87636756607,209.06423252359,211.67753543014,213.81569235368,215.59748978996,217.77524221208,220.49743273973,222.72467953508,223.99739198957,226.79735938944,228.66400432268,230.99731048924,233.3306166558,235.19726158904,237.57299150408,239.55276643329,241.97249134675,244.99714748859,246.39713118852,249.45164107929,251.99706598826,254.07111591409,257.24700486302,258.71698774795,261.33029065449,264.59691928767,267.2696154421,269.49686223745,272.2190527651,274.39680518722,277.19677258709,279.99673998696,282.23671390685,285.0875898049,287.46331971994,290.3669896161,293.99657698631,296.96623938011,298.66318931942,302.39647918591,304.88533909691,307.99641398565,311.81455134911,313.59634878539,317.51630314521,320.72353853051,323.39623468494,326.66286331812,329.27616622466,332.60218810572,335.99608798435,338.76148788545,342.99600648402,344.95598366393,348.44038753932,352.79589238357,356.35948725613,359.32914964993,362.95873702013,367.49572123288,369.59569678278,374.17746161893,376.31561854247,380.11678640654,383.28442629326,387.1559861548,391.99543598174],description:"Optimised version of pipedum_72b, Manuel Op de Coul"},pipedum_72c:{frequencies:[195.99771799087,197.5656997348,199.99767141926,201.59765279061,203.25689273127,205.79760389041,207.40499258293,209.99755499022,211.67753543014,213.41973736784,215.9974851328,217.77524221208,219.51744414977,222.31222642483,223.99739198957,226.79735938944,228.66400432268,230.49331635726,233.3306166558,235.19726158904,237.13304151982,239.99720570311,241.91718334873,244.99714748859,246.9571246685,248.88599109952,251.99706598826,254.07111591409,256.1036848414,259.19698215935,261.33029065449,264.59691928767,266.7746717098,268.79687038748,272.2190527651,274.39680518722,276.47678096998,279.99673998696,282.23671390685,285.83000540335,287.99664684373,290.3669896161,293.99657698631,296.41630189977,298.66318931942,302.39647918591,304.88533909691,308.69640583562,311.1074888744,313.59634878539,317.58889489261,320.12960605175,322.55624446497,326.66286331812,329.27616622466,333.32945236543,335.99608798435,338.76148788545,342.99600648402,345.59597621247,348.44038753932,352.79589238357,355.69956227973,359.99580855466,362.95873702013,365.86240691629,370.43568700274,373.32898664928,376.31561854247,381.10667387114,384.15552726211,388.884361093,391.99543598174],description:"441/440, 2401/2400, 4375/4374 and 1375/1372"},pipedum_74:{frequencies:[174.6141157165,175.4667237034,177.38576834692,178.25190979393,182.45393315683,183.34482150233,186.25505676427,187.16450528362,187.6669026756,191.57662981467,192.51206257744,194.01568412944,194.96302633711,195.48635695375,199.55898939029,200.53339851817,202.72659239648,203.71646833592,208.51878075067,209.5369388598,210.56006844408,212.8629220163,213.90229175271,216.62558481901,218.9447197882,220.01378580279,221.73221043365,222.81488724241,228.06741644604,229.18102687791,231.68753416741,232.81882095533,233.95563160453,239.47078726834,240.6400782218,243.27191087578,244.4597620031,249.5526737115,250.2225369008,251.44432663176,253.4082404956,254.6455854199,259.95070178281,260.64847593833,261.92117357475,266.07865252038,267.37786469089,273.68089973525,275.01723225349,278.02504100089,279.3825851464,280.74675792544,285.20305567028,287.36494472201,291.02352619417,291.92629305093,292.44453950566,297.08651632321,299.33848408543,304.08988859472,305.57470250388,310.42509460711,311.94084213937,312.778171126,319.29438302446,320.85343762907,325.94634933747,328.4170796823,333.63004920107,334.22233086361,335.25910217568,339.52744722653,342.10112466906,347.53130125111,349.228231433],description:"81/80, 126/125 and 4194304/4117715, Gene Ward Smith, 2002"},pipedum_81:{frequencies:[116.54094037952,117.10998793997,118.96887663743,119.87068153322,121.77339076391,122.3679873985,122.96548733697,124.86529326377,124.9173204693,126.84728204574,127.4666535401,128.08904930934,130.12220882219,130.47149010419,131.10855792696,133.18964614802,133.83998621711,135.96443044277,136.62831926329,136.99506460939,139.16958944446,139.84912845542,140.53198552796,142.70319230145,142.76265196491,144.96832233798,145.6761754744,146.38748492496,148.71109579678,149.83835191653,152.21673845488,152.95998424812,153.70685917121,155.38792050603,156.14665058662,156.56578812502,159.82757537763,160.60798346053,163.08936263023,163.15731653133,163.95398311595,166.48705768503,167.29998277138,169.12970939431,169.95553805347,170.78539907912,173.96198680558,174.81141056928,175.66498190995,177.58619486403,178.45331495614,182.66008614586,183.55198109774,184.08675852442,184.44823100545,186.46550460723,187.37598070395,190.2709230686,191.19998031015,193.29109645065,194.23490063253,195.18331323328,199.78446922203,200.75997932566,202.95565127318,203.94664566416,204.94247889494,208.7543841667,209.77369268314,210.79797829194,213.10343383684,214.14397794737,217.45248350698,218.5142632116,218.60531082127,221.98274358004,223.06664369518,227.71386543882,228.32510768232,229.43997637218,231.94931574077,233.08188075904],description:"81/80, 126/125 and 17294403/16777216, Gene Ward Smith, 2002"},pipedum_87:{frequencies:[82.40688922822,83.34286871081,83.43697534357,84.3846545697,84.87648045204,85.84050961273,86.81548824043,86.91351598289,87.90068184343,87.99993493267,88.99944036648,90.43280025045,90.53491248218,91.56321025358,92.60318745646,92.70775038175,93.76072729966,93.86659726152,95.37834401414,96.46165360048,96.57057331432,97.66742427048,97.77770548075,98.88826707386,100.01144245297,100.59434720242,101.73690028175,101.85177654245,103.00861153527,104.17858588852,104.29621917947,105.48081821212,105.59992191921,107.30063701591,108.51936030054,108.64189497861,109.87585230429,111.12382494775,111.2493004581,112.5128727596,113.16864060272,114.45401281697,115.75398432057,115.88468797718,117.20090912458,117.3332465769,118.66592048864,120.5770670006,120.7132166429,122.0842803381,122.22213185094,123.61033384233,125.01430306622,125.15546301536,127.17112535219,128.61553813397,128.76076441909,130.22323236064,130.37027397433,131.85102276515,133.3485899373,133.49916054972,135.64920037567,135.80236872326,137.34481538037,138.90478118469,139.06162557262,140.6410909495,140.79989589228,143.06751602122,144.69248040072,144.85585997148,146.50113640572,146.66655822112,148.3324006108,150.01716367946,150.89152080363,152.60535042263,154.33864576076,154.51291730291,156.26787883277,156.4443287692,158.22122731818,160.76942266746,160.95095552387,162.7790404508,162.96284246792,164.81377845644],description:"67108864/66430125 and 15625/15552, Op de Coul"},pipedum_9:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,392.4383479509,420.46965851882,448.50096908674,490.54793493862,523.2511306012],description:"225/224, 49/48 and 36/35 are homophonic intervals"},pipedum_99:{frequencies:[41.20344461411,41.53307217102,41.72802550619,42.06184971024,42.3806858888,42.72949811834,42.92025480636,43.26361684482,43.60972577957,43.95034092172,44.14654780083,44.49972018324,44.86597302425,45.06626754668,45.407877738,45.78160512679,46.1478579678,46.35387519087,46.73538856693,47.08965098755,47.46636819545,47.68917200707,48.07068538313,48.45525086619,48.65129757643,49.0517197787,49.44413353693,49.83968660523,50.07363060743,50.47421965228,50.85682306656,51.275397742,51.50430576764,51.91634021378,52.34363519496,52.55541404861,52.975857361,53.41187264792,53.8391676291,54.07952105602,54.50191086522,54.93792615215,55.37742956136,55.62465022905,56.08246628032,56.50758118507,56.7598471725,57.22700640849,57.68482245975,58.14630103943,58.41923570866,58.86206373444,59.33296024432,59.82129736567,60.08835672891,60.56906358274,61.04214016905,61.31464972338,61.80516692116,62.29960825653,62.81236223395,63.06649685833,63.5710288332,64.0942471775,64.60700115492,64.89542526722,65.40229303827,65.92551138258,66.21982170125,66.7648408099,67.29895953638,67.80909742208,68.12738858153,68.67240769018,69.2217869517,69.77556124732,70.1030828504,70.63447648133,71.19955229318,71.53375801061,72.10602807469,72.68287629929,73.25056820286,73.57757966805,74.1662003054,74.77662170709,75.37483468075,75.67979623,76.30267521131,76.91309661301,77.25645865146,77.87451032067,78.48275164592,79.11061365909,79.4637860415,80.11780897188,80.75875144366,81.37091690649,81.75286629784,82.40688922822],description:"2401/2400, 3136/3125 and 4375/4374, Gene Ward Smith, 2002"},pipedum_9a:{frequencies:[261.6255653006,282.62020942966,305.22982618403,329.72357766794,356.10146388137,384.67750727926,415.4517078616,448.79042515914,484.69365917187,523.2511306012],description:"4375/4374, 2401/2400 and 21/20 are homophonic intervals"},pipedum_9b:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,357.20610515709,383.2405741708,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"128/125 and 2109375/2097152 are homophonic intervals"},pipedum_9c:{frequencies:[261.6255653006,285.40970760065,305.22982618403,332.97799220076,348.83408706747,392.4383479509,411.12588832951,448.50096908674,479.64686971777,523.2511306012],description:"49/48, 21/20, 99/98 and 121/120, Gene Ward Smith, 2002"},pipedum_9d:{frequencies:[261.6255653006,277.4816601673,308.34441624714,327.03195662575,346.85207520913,394.68085279633,418.60090448096,443.97065626768,493.35106599542,523.2511306012],description:"128/125, 36/35, 99/98 and 121/120, Gene Ward Smith, 2002"},pipedum_9e:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"21/20, 27/25 and 128/125"},polansky_ps:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,4447.6346101102,327.03195662575,654.0639132515,981.09586987725,1308.127826503,1635.15978312875,1962.1917397545,2289.22369638025,2616.255653006,2943.28760963175,3270.3195662575,3597.35152288325,3924.383479509,4251.41543613475,4578.4473927605,4905.47934938625,5232.511306012,5559.54326263775,392.4383479509,784.8766959018,1177.3150438527,1569.7533918036,1962.1917397545,2354.6300877054,2747.0684356563,3139.5067836072,3531.9451315581,3924.383479509,4316.8218274599,4709.2601754108,5101.6985233617,5494.1368713126,5886.5752192635,6279.0135672144,6671.4519151653],description:"Three interlocking harmonic series on 1:5:3 by Larry Polansky in Psaltery"},poole:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Poole's double diatonic or dichordal scale"},porcupine:{frequencies:[261.6255653006,268.5059110196,275.56719913678,277.81869773502,285.12489766782,287.45448663717,295.01409284105,302.77250493809,305.24628043356,313.27378316024,315.83336022842,324.13928669805,332.66364612382,335.38164643474,344.20166244741,347.01393314922,356.13986022226,365.50578499276,368.49211923405,378.18288921726,381.27279846892,391.29968045081,401.5902538439,404.87141319969,415.51890206933,418.91386427268,429.93064777916,441.23715556831,444.84224659643,456.54090625717,460.27103529174,472.37544811397,484.79818817936,488.75918813348,501.6127950959,505.71118020326,519.01059820838,523.2511306012],description:"porcupine temperament, g=162.996, 5-limit"},portbag1:{frequencies:[261.6255653006,281.75060878526,311.64221749042,334.88072358477,376.74081403286,413.43299207996,457.84473927605,523.2511306012],description:"Portugese bagpipe tuning"},portbag2:{frequencies:[261.6255653006,274.70684356563,281.75060878526,310.07474405997,317.68818643644,343.38355445704,372.08969287196,392.4383479509,408.78994578219,482.37213602298,523.2511306012],description:"Portugese bagpipe tuning 2"},prelleur:{frequencies:[261.6255653006,276.42153822591,293.20376052703,310.91918875105,328.72923110101,349.43408698743,368.89538496172,391.53834819612,414.55891854195,438.90564190541,466.17878415199,492.19384741628,523.2511306012],description:"Peter Prelleur's well temperament (1731)"},preston:{frequencies:[261.6255653006,276.24946721727,293.45376109391,311.26733605541,328.91048112005,349.30075403587,368.79929095641,391.73834630677,413.67420227347,439.48064068428,466.20100528964,492.6657196346,523.2511306012],description:"Preston's equal beating temperament (1785)"},preston2:{frequencies:[261.6255653006,276.2302000593,293.37610901672,311.58628319174,328.97985807656,349.39999567988,368.9044325484,391.80273191286,413.67420227347,439.35140993827,466.62242981045,492.67053466508,523.2511306012],description:"Preston's theoretically correct well temperament"},prime_10:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,474.19633710734,523.2511306012],description:"First 10 prime numbers reduced by 2/1"},prime_5:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,523.2511306012],description:'What Lou Harrison calls "the Prime Pentatonic", a widely used scale'},primes6:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1308.127826503,1831.3789571042,2877.8812183066,3401.1323489078],description:"First 6 primes"},prinz:{frequencies:[261.6255653006,275.62199471997,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.49599295996,391.22147055517,413.43299207996,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Prinz well-tempermament (1808)"},prinz2:{frequencies:[261.6255653006,275.62199471997,291.81313052759,310.07474405997,327.03195662575,348.83408706747,367.49599295996,390.42584360243,413.43299207996,436.71344361716,465.11211608996,490.54793493862,523.2511306012],description:"Prinz equal beating temperament (1808)"},"prod13-2":{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,359.73515228832,371.99885066179,392.4383479509,400.61414686654,408.78994578219,425.14154361347,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"13-limit binary products [1 3 5 7 11 13]"},prod13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,331.11985608357,343.38355445704,345.42750418595,359.73515228832,367.91095120397,371.99885066179,392.4383479509,400.61414686654,404.70204632437,408.78994578219,425.14154361347,441.49314144476,449.66894036041,457.84473927605,478.28423656516,490.54793493862,494.63583439645,515.07533168556,523.2511306012],description:"13-limit binary products [1 3 5 7 9 11 13]"},prod7d:{frequencies:[261.6255653006,265.7783520514,267.90457886781,273.37201925287,279.06726965397,286.15296204753,294.32876096318,299.00064605783,300.46061014991,306.59245933664,310.07474405997,318.93402246168,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,350.53737850823,357.69120255941,367.91095120397,372.08969287196,382.72082695402,390.53145607553,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,429.2294430713,441.49314144476,446.50763144636,455.62003208812,457.84473927605,465.11211608996,478.40103369253,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Double Cubic Corner 7-limit. Chalmers '96"},prod7s:{frequencies:[261.6255653006,286.15296204753,294.32876096318,300.46061014991,306.59245933664,327.03195662575,343.38355445704,350.53737850823,357.69120255941,367.91095120397,392.4383479509,400.61414686654,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Single Cubic Corner 7-limit"},prodq13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,276.76092858245,279.06726965397,286.15296204753,292.28481123426,294.32876096318,299.00064605783,304.4370214407,314.76825825228,318.85615771011,322.00069575458,327.03195662575,334.88072358477,341.71502406609,343.38355445704,345.42750418595,348.83408706747,359.73515228832,368.0007951481,371.99885066179,380.54627680087,392.4383479509,396.30854862103,400.61414686654,408.78994578219,418.60090448096,425.14154361347,429.33426100611,434.91003062957,449.66894036041,457.84473927605,465.11211608996,468.3646483703,478.40103369253,490.54793493862,494.63583439645,507.3950357345,515.20111320734,523.2511306012],description:"13-limit Binary products and quotients. Chalmers '96"},prog_ennea:{frequencies:[261.6255653006,269.29177952703,285.30470202322,311.12698372208,349.22823143301,391.99543598175,403.48177901006,427.47405410759,466.16376151809,523.2511306012],description:"Progressive Enneatonic, 50+100+150+200 cents in each half (500 cents)"},prog_ennea1:{frequencies:[261.6255653006,269.10058145205,285.40970760065,310.68035879446,348.83408706747,392.4383479509,404.33041910093,428.11456140098,465.11211608996,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+150+200 cents in each half (500 cents)"},prog_ennea2:{frequencies:[261.6255653006,269.55361273395,285.40970760065,321.08592105074,348.83408706747,392.4383479509,404.33041910093,428.11456140098,481.6288815761,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+200+150 cents in each half (500 cents)"},prog_ennea3:{frequencies:[261.6255653006,269.55361273395,285.40970760065,310.07474405997,348.83408706747,392.4383479509,404.33041910093,428.11456140098,465.11211608996,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+150+200 cents in each half (500 cents)"},prooijen1:{frequencies:[261.6255653006,339.14425131559,366.27579142084,436.04260883433,470.92601754108,610.45965236807,726.73768139056,784.8766959018],description:"Kees van Prooijen, major mode of Bohlen-Pierce"},prooijen2:{frequencies:[261.6255653006,311.45900631024,336.37572681506,436.04260883433,470.92601754108,560.62621135843,726.73768139056,784.8766959018],description:"Kees van Prooijen, minor mode of Bohlen-Pierce"},"ps-dorian":{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,490.54793493862,504.56359022259,523.2511306012],description:"Complex 4 of p. 115 based on Archytas's Enharmonic"},"ps-enh":{frequencies:[261.6255653006,266.38239376061,279.06726965397,348.83408706747,392.4383479509,399.57359064092,418.60090448096,523.2511306012],description:"Dorian mode of an Enharmonic genus found in Ptolemy's Harmonics"},"ps-hypod":{frequencies:[261.6255653006,294.32876096318,367.91095120397,378.42269266694,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Complex 7 of p. 115 based on Archytas's Enharmonic"},"ps-hypod2":{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,392.4383479509,490.54793493862,504.56359022259,523.2511306012],description:"Complex 8 of p. 115 based on Archytas's Enharmonic"},"ps-mixol":{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"Complex 3 of p. 115 based on Archytas's Enharmonic"},ptolemy:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Intense Diatonic Syntonon, also Zarlino's scale"},ptolemy_chrom:{frequencies:[261.6255653006,271.31540105247,290.69507255622,348.83408706747,392.4383479509,406.97310157871,436.04260883433,523.2511306012],description:"Ptolemy Soft Chromatic"},ptolemy_ddiat:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Lyra tuning, Dorian mode, comb. of diatonon toniaion & diatonon ditoniaion"},ptolemy_diat:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Ptolemy's Diatonon Ditoniaion & Archytas' Diatonic, also Lyra tuning"},ptolemy_diat2:{frequencies:[261.6255653006,271.31540105247,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Dorian mode of a permutation of Ptolemy's Tonic Diatonic"},ptolemy_diat3:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,441.49314144476,470.92601754108,523.2511306012],description:"Dorian mode of the remaining permutation of Ptolemy's Intense Diatonic"},ptolemy_diat4:{frequencies:[261.6255653006,299.00064605783,310.07474405997,348.83408706747,392.4383479509,448.50096908674,465.11211608996,523.2511306012],description:"permuted Ptolemy's diatonic"},ptolemy_diat5:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Sterea lyra, Dorian, comb. of 2 Tonic Diatonic 4chords, also Archytas' diatonic"},ptolemy_diff:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,392.4383479509,425.14154361347,490.54793493862,523.2511306012],description:"Difference tones of Intense Diatonic reduced by 2/1"},ptolemy_enh:{frequencies:[261.6255653006,267.43946675172,279.06726965397,348.83408706747,392.4383479509,401.15920012759,418.60090448096,523.2511306012],description:"Dorian mode of Ptolemy's Enharmonic"},ptolemy_exp:{frequencies:[261.6255653006,272.52663052146,275.93321340298,287.4304306281,290.69507255622,294.32876096318,306.59245933664,327.03195662575,340.65828815182,344.91651675372,348.83408706747,363.36884069528,367.91095120397,383.2405741708,392.4383479509,408.78994578219,413.89982010446,431.14564594215,436.04260883433,441.49314144476,459.88868900496,490.54793493862,510.98743222773,517.37477513058,523.2511306012],description:"Intense Diatonic expanded: all interval combinations"},ptolemy_hom:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Dorian mode of Ptolemy's Equable Diatonic or Diatonon Homalon"},ptolemy_iast:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Ptolemy's Iastia or Lydia tuning, mixture of Tonic Diatonic & Intense Diatonic"},ptolemy_iastaiol:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,441.49314144476,465.11211608996,523.2511306012],description:"Ptolemy's kithara tuning, mixture of Tonic Diatonic and Ditone Diatonic"},ptolemy_ichrom:{frequencies:[261.6255653006,274.08392555301,299.00064605783,348.83408706747,392.4383479509,411.12588832951,448.50096908674,523.2511306012],description:"Dorian mode of Ptolemy's Intense Chromatic"},ptolemy_idiat:{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Dorian mode of Ptolemy's Intense Diatonic (Diatonon Syntonon)"},ptolemy_imix:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Ptolemy Intense Diatonic mixed with its inverse"},ptolemy_malak:{frequencies:[261.6255653006,274.08392555301,299.00064605783,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Ptolemy's Malaka lyra tuning, a mixture of Intense Chrom. & Tonic Diatonic"},ptolemy_malak2:{frequencies:[261.6255653006,271.31540105247,290.69507255622,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Malaka lyra, mixture of his Soft Chromatic and Tonic Diatonic."},ptolemy_mdiat:{frequencies:[261.6255653006,274.70684356563,305.22982618403,348.83408706747,392.4383479509,412.06026534844,457.84473927605,523.2511306012],description:"Ptolemy soft diatonic"},ptolemy_mdiat2:{frequencies:[261.6255653006,290.69507255622,305.22982618403,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"permuted Ptolemy soft diatonic"},ptolemy_mdiat3:{frequencies:[261.6255653006,299.00064605783,313.95067836072,348.83408706747,392.4383479509,448.50096908674,470.92601754108,523.2511306012],description:"permuted Ptolemy soft diatonic"},ptolemy_meta:{frequencies:[261.6255653006,274.70684356563,305.22982618403,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Metabolika lyra tuning, mixture of Soft Diatonic & Tonic Diatonic"},ptolemy_mix:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,348.83408706747,353.19451315581,367.91095120397,372.08969287196,387.59343007496,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"All modes of Ptolemy Intense Diatonic mixed"},ptolemy_prod:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,331.11985608357,348.83408706747,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,484.4917875937,490.54793493862,523.2511306012],description:"Product of Intense Diatonic with its intervals"},ptolemy_tree:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Intense Diatonic with all their Farey parent fractions"},pygmie:{frequencies:[261.6255653006,299.00064605783,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:"Pygmie scale"},pyle:{frequencies:[261.6255653006,277.19063644077,293.6461094938,311.15753660095,329.66944764997,349.23831768549,369.99228554622,391.93430587921,415.28070933274,439.96441988338,466.23108306565,493.99742571239,523.2511306012],description:"Howard Willet Pyle quasi equal temperament"},pyramid:{frequencies:[261.6255653006,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:'This scale may also be called the "Wedding Cake"'},pyramid_down:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,348.83408706747,392.4383479509,418.60090448096,441.49314144476,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"Upside-Down Wedding Cake (divorce cake)"},pyth_12:{frequencies:[261.6255653006,279.38237857051,294.32876096318,310.07474405997,331.11985608357,348.83408706747,372.50983809402,392.4383479509,419.07356785577,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"12-tone Pythagorean scale"},pyth_12s:{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,326.6631048533,348.83408706747,367.49599295996,392.4383479509,419.07356785577,435.55080647107,471.45776383774,489.99465727995,523.2511306012],description:"Scale with major thirds flat by a schisma"},pyth_17:{frequencies:[261.6255653006,275.62199471997,279.38237857051,294.32876096318,310.07474405997,314.30517589183,331.11985608357,348.83408706747,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,441.49314144476,465.11211608996,471.45776383774,496.67978412536,523.2511306012],description:"17-tone Pythagorean scale"},pyth_17s:{frequencies:[261.6255653006,275.62199471997,279.06726965397,294.32876096318,310.07474405997,313.95067836072,331.11985608357,348.83408706747,367.49599295996,372.08969287196,392.4383479509,413.43299207996,418.60090448096,441.49314144476,465.11211608996,470.92601754108,496.67978412536,523.2511306012],description:"Schismatically altered 17-tone Pythagorean scale"},pyth_22:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,465.11211608996,471.45776383774,489.99465727995,496.67978412536,523.2511306012],description:"Pythagorean shrutis"},pyth_27:{frequencies:[261.6255653006,265.19499215873,275.62199471997,279.38237857051,290.36720431405,294.32876096318,298.34436617857,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,387.15627241873,392.4383479509,397.79248823809,413.43299207996,419.07356785577,435.55080647107,441.49314144476,447.51654926786,465.11211608996,471.45776383774,489.99465727995,496.67978412536,523.2511306012],description:"27-tone Pythagorean scale"},pyth_31:{frequencies:[261.6255653006,265.19499215873,275.62199471997,279.38237857051,283.19406633357,294.32876096318,298.34436617857,310.07474405997,314.30517589183,318.59332496145,326.6631048533,331.11985608357,335.63741195089,348.83408706747,353.59332287831,367.49599295996,372.50983809402,377.59208844475,392.4383479509,397.79248823809,413.43299207996,419.07356785577,424.79110016094,441.49314144476,447.51654926786,465.11211608996,471.45776383774,477.8899872033,489.99465727995,496.67978412536,503.45611792634,523.2511306012],description:"31-tone Pythagorean scale"},pyth_7a:{frequencies:[261.6255653006,277.97716313189,294.32876096318,312.72430852337,331.11985608357,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,469.08646278506,496.67978412536,523.2511306012],description:"Pythagorean 7-tone with whole tones divided arithmetically"},pyth_7h:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,467.46332623563,496.67978412536,523.2511306012],description:"Pythagorean 7-tone with whole tones divided harmonically"},pyth_chrom:{frequencies:[261.6255653006,275.62199471997,294.32876096318,348.83408706747,392.4383479509,413.43299207996,441.49314144476,465.11211608996,523.2511306012],description:"Dorian mode of the so-called Pythagorean chromatic, recorded by Gaudentius"},pyth_sev:{frequencies:[261.6255653006,268.38018042036,275.30918532257,282.41708286353,291.47537246454,299.00064605783,306.7202061947,314.63906894008,322.76237975718,333.11471138804,341.71502406609,350.53737850823,359.58750736009,368.87129039875,380.70252730062,390.53145607553,400.61414686654,410.95715126868,421.56719060242,435.08860262928,446.32166408632,457.84473927605,469.66531573563,481.7910743145,497.2441172906,510.08190181294,523.2511306012],description:"26-tone Pythagorean scale based on 7/4"},pyth_sev_16:{frequencies:[261.6255653006,268.38018042036,275.30918532257,282.41708286353,306.7202061947,314.63906894008,322.76237975718,350.53737850823,359.58750736009,368.87129039875,400.61414686654,410.95715126868,421.56719060242,457.84473927605,469.66531573563,481.7910743145,523.2511306012],description:'16-tone Pythagorean scale based on 7/4, "Armodue"'},pyth_third:{frequencies:[261.6255653006,267.90457886781,274.33428876064,280.9183116909,287.66035117148,290.46272611903,297.43383186155,304.57224382623,311.88197767806,319.36714514233,327.03195662575,334.88072358477,342.9178609508,351.14788961362,359.57543896435,363.07840893547,371.79228894479,380.71530478279,389.85247209758,399.20893142792,408.78994578219,418.60090448096,428.6473261885,438.93486201703,449.46929870544,453.84801015616,464.74036282794,475.89413097849,487.31559012197,499.0111642849,510.98743222773,523.2511306012],description:"Cycle of 5/4 thirds"}};o.prototype._tune=function(i,n=220){const e=new t;if(!e.isValidScale(i))throw new Error('not a valid tune.js scale name: "'+i+'". See http://abbernie.github.io/tune/scales.html');return e.loadScale(i),e.tonicize(n),this._asNumber()._withHap(r=>r.withValue(()=>e.note(r.value)).setContext(a(c({},r.context),{type:"frequency"})))};o.prototype.define("tune",(i,n)=>n.tune(i),{composable:!0,patternified:!0}); diff --git a/assets/index.8f3159df.js b/assets/index.8f3159df.js deleted file mode 100644 index f19d0763b..000000000 --- a/assets/index.8f3159df.js +++ /dev/null @@ -1 +0,0 @@ -import{U as a}from"./index.4c53df7b.js";export{a as loadWebDirt}; diff --git a/assets/index.90c431ba.js b/assets/index.90c431ba.js new file mode 100644 index 000000000..39bd2fe7f --- /dev/null +++ b/assets/index.90c431ba.js @@ -0,0 +1 @@ +var d=Object.defineProperty;var g=(s,t,e)=>t in s?d(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var i=(s,t,e)=>(g(s,typeof t!="symbol"?t+"":t,e),e);import{K as S,L as y,N as T,S as B,M as I,O as R,R as W,Q as j}from"./index.29de87b8.js";const k=s=>"("+s+")();",w=s=>URL.createObjectURL(new Blob([k(s)],{type:"text/javascript"})),m=s=>new Worker(w(s));class x{constructor(t,e=this.interval){i(this,"worker");i(this,"interval",.1);i(this,"tick",0);this.interval=e,this.worker=m(()=>{let r,o=null;const h=()=>{o&&(clearInterval(o),o=null)},c=()=>{if(h(),!r)throw new Error("no interval set! call worker.postMessage({interval}) before starting.");postMessage("tick"),o=setInterval(()=>postMessage("tick"),r*1e3)};self.onmessage=function(n){n.data=="start"?c():n.data.interval?(r=n.data.interval,o&&c()):n.data=="stop"&&h()}}),this.worker.postMessage({interval:e}),this.worker.onmessage=r=>{r.data==="tick"&&t(this.tick++,this.interval)}}start(){this.worker.postMessage("start")}stop(){this.worker.postMessage("stop"),this.tick=0}setInterval(t){this.worker.postMessage({interval:t})}}class v{constructor({audioContext:t,interval:e=.1,onEvent:r,latency:o=.1}){i(this,"worker");i(this,"pattern");i(this,"phase");i(this,"audioContext");i(this,"cps",1);this.audioContext=t,this.worker=new x((h,c)=>{const n=this.phase,l=this.phase+c*this.cps;this.phase=l,this.pattern.queryArc(n,l).forEach(a=>{var p,u;if(typeof((p=a.value)==null?void 0:p.cps)=="number"&&this.setCps((u=a.value)==null?void 0:u.cps),!!a.part.begin.equals(a.whole.begin)){if(a.context.onTrigger){const f=(a.whole.begin-n)/this.cps+this.audioContext.currentTime+o;a.context.onTrigger(f,a,this.audioContext.currentTime,this.cps)}r&&(r==null||r(a))}})},e)}start(){if(!this.pattern)throw new Error("Scheduler: no pattern set! call .setPattern first.");this.audioContext.resume(),this.phase=0,this.worker.start()}stop(){this.worker.stop()}setPattern(t){this.pattern=t}setCps(t=1){this.cps=t}}export{x as ClockWorker,v as Scheduler,S as getAudioContext,y as getCachedBuffer,T as getLoadedBuffer,B as getLoadedSamples,I as loadBuffer,R as loadGithubSamples,W as resetLoadedSamples,j as samples}; diff --git a/assets/index.93bc31c4.js b/assets/index.93bc31c4.js new file mode 100644 index 000000000..453a44377 --- /dev/null +++ b/assets/index.93bc31c4.js @@ -0,0 +1,8 @@ +var _t=Object.defineProperty,dt=Object.defineProperties;var At=Object.getOwnPropertyDescriptors;var L=Object.getOwnPropertySymbols;var Ie=Object.prototype.hasOwnProperty,Oe=Object.prototype.propertyIsEnumerable;var Pe=(a,f,r)=>f in a?_t(a,f,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[f]=r,X=(a,f)=>{for(var r in f||(f={}))Ie.call(f,r)&&Pe(a,r,f[r]);if(L)for(var r of L(f))Oe.call(f,r)&&Pe(a,r,f[r]);return a},H=(a,f)=>dt(a,At(f));var qe=(a,f)=>{var r={};for(var $ in a)Ie.call(a,$)&&f.indexOf($)<0&&(r[$]=a[$]);if(a!=null&&L)for(var $ of L(a))f.indexOf($)<0&&Oe.call(a,$)&&(r[$]=a[$]);return r};import{F as ke,G as wt,I as yt}from"./index.29de87b8.js";function bt(a,f){function r(){this.constructor=a}r.prototype=f.prototype,a.prototype=new r}function D(a,f,r,$){var u=Error.call(this,a);return Object.setPrototypeOf&&Object.setPrototypeOf(u,D.prototype),u.expected=f,u.found=r,u.location=$,u.name="SyntaxError",u}bt(D,Error);function J(a,f,r){return r=r||" ",a.length>f?a:(f-=a.length,r+=r.repeat(f),a+r.slice(0,f))}D.prototype.format=function(a){var f="Error: "+this.message;if(this.location){var r=null,$;for($=0;$ `+h+` +`+A+` | +`+u.line+" | "+E+` +`+A+" | "+J("",u.column-1," ")+J("",m,"^")}else f+=` + at `+h}return f};D.buildMessage=function(a,f){var r={literal:function(_){return'"'+u(_.text)+'"'},class:function(_){var m=_.parts.map(function(b){return Array.isArray(b)?h(b[0])+"-"+h(b[1]):h(b)});return"["+(_.inverted?"^":"")+m.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(_){return _.description}};function $(_){return _.charCodeAt(0).toString(16).toUpperCase()}function u(_){return _.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(m){return"\\x0"+$(m)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(m){return"\\x"+$(m)})}function h(_){return _.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(m){return"\\x0"+$(m)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(m){return"\\x"+$(m)})}function w(_){return r[_.type](_)}function A(_){var m=_.map(w),b,F;if(m.sort(),m.length>0){for(b=1,F=1;b",Je="@",Ke="!",Qe="(",Ve=")",Ye="/",er="*",rr="%",sr="?",re="struct",se="target",te="euclid",ne="slow",ae="rotL",ie="rotR",fe="fast",oe="scale",ce="//",le="cat",tr="$",ue="setcps",pe="setbpm",ge="hush",nr=/^[1-9]/,ar=/^[eE]/,ir=/^[0-9]/,ve=/^[ \n\r\t]/,fr=/^[0-9a-zA-Z~]/,$e=/^[^\n]/,or=be("number"),he=g(".",!1),cr=j([["1","9"]],!1,!1),lr=j(["e","E"],!1,!1),me=g("-",!1),ur=g("+",!1),pr=g("0",!1),gr=j([["0","9"]],!1,!1),vr=be("whitespace"),_e=j([" ",` +`,"\r"," "],!1,!1),$r=g(",",!1),hr=g("|",!1),mr=g('"',!1),_r=g("'",!1),dr=j([["0","9"],["a","z"],["A","Z"],"~"],!1,!1),Ar=g("#",!1),wr=g("^",!1),yr=g("_",!1),br=g(":",!1),de=g("[",!1),Ae=g("]",!1),Cr=g("<",!1),xr=g(">",!1),Er=g("@",!1),Fr=g("!",!1),jr=g("(",!1),Sr=g(")",!1),Rr=g("/",!1),Pr=g("*",!1),Ir=g("%",!1),Or=g("?",!1),qr=g("struct",!1),Dr=g("target",!1),kr=g("euclid",!1),Nr=g("slow",!1),Br=g("rotL",!1),Tr=g("rotR",!1),zr=g("fast",!1),Lr=g("scale",!1),Gr=g("//",!1),we=j([` +`],!0,!1),Mr=g("cat",!1),Wr=g("$",!1),Zr=g("setcps",!1),Ur=g("setbpm",!1),Xr=g("hush",!1),Hr=function(){return parseFloat(Fs())},Jr=function(e){return e.join("")},Kr=function(e){return e},Qr=function(e){return e.arguments_.alignment="t",e},Vr=function(e){return{weight:e}},Yr=function(e){return{replicate:e}},es=function(e,t,n){return{operator:{type_:"bjorklund",arguments_:{pulse:e,step:t,rotation:n||0}}}},rs=function(e){return{operator:{type_:"stretch",arguments_:{amount:e}}}},ss=function(e){return{operator:{type_:"stretch",arguments_:{amount:"1/"+e}}}},ts=function(e){return{operator:{type_:"fixed-step",arguments_:{amount:e}}}},ns=function(e){return{operator:{type_:"degradeBy",arguments_:{amount:e||.5}}}},as=function(e,t){return new mt(e,t)},is=function(e){return new Z(e,"h")},fs=function(e){return{alignment:"v",list:e}},os=function(e){return{alignment:"r",list:e}},cs=function(e,t){return t&&t.list.length>0?new Z([e,...t.list],t.alignment):e},ls=function(e){return e},us=function(e){return{name:"struct",args:{sequence:e}}},ps=function(e){return{name:"target",args:{name:e}}},gs=function(e,t,n){return{name:"bjorklund",args:{pulse:parseInt(e),step:parseInt(t)}}},vs=function(e){return{name:"stretch",args:{amount:e}}},$s=function(e){return{name:"shift",args:{amount:"-"+e}}},hs=function(e){return{name:"shift",args:{amount:e}}},ms=function(e){return{name:"stretch",args:{amount:"1/"+e}}},_s=function(e){return{name:"scale",args:{scale:e.join("")}}},ye=function(e,t){return t},ds=function(e,t){return t.unshift(e),new Z(t,"t")},As=function(e){return e},ws=function(e,t){return new ht(e.name,e.args,t)},ys=function(e){return e},bs=function(e){return e},Cs=function(e){return new U("setcps",{value:e})},xs=function(e){return new U("setcps",{value:e/120/2})},Es=function(){return new U("hush")},s=0,v=0,N=[{line:1,column:1}],x=0,G=[],o=0,B;if("startRule"in f){if(!(f.startRule in u))throw new Error(`Can't start parsing from rule "`+f.startRule+'".');h=u[f.startRule]}function Fs(){return a.substring(v,s)}function js(){return M(v,s)}function g(e,t){return{type:"literal",text:e,ignoreCase:t}}function j(e,t,n){return{type:"class",parts:e,inverted:t,ignoreCase:n}}function Ss(){return{type:"end"}}function be(e){return{type:"other",description:e}}function Ce(e){var t=N[e],n;if(t)return t;for(n=e-1;!N[n];)n--;for(t=N[n],t={line:t.line,column:t.column};nx&&(x=s,G=[]),G.push(e))}function Rs(e,t,n){return new D(D.buildMessage(e,t),e,t,n)}function xe(){var e;return e=$t(),e}function y(){var e,t;return o++,e=s,Ee(),t=T(),t!==r?(Ds(),qs(),v=e,e=Hr()):(s=e,e=r),o--,e===r&&o===0&&c(or),e}function Ps(){var e;return a.charCodeAt(s)===46?(e=w,s++):(e=r,o===0&&c(he)),e}function Is(){var e;return nr.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(cr)),e}function Os(){var e;return ar.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(lr)),e}function qs(){var e,t,n,i,l;if(e=s,t=Os(),t!==r){if(n=Ee(),n===r&&(n=ks()),n===r&&(n=null),i=[],l=S(),l!==r)for(;l!==r;)i.push(l),l=S();else i=r;i!==r?(t=[t,n,i],e=t):(s=e,e=r)}else s=e,e=r;return e}function Ds(){var e,t,n,i;if(e=s,t=Ps(),t!==r){if(n=[],i=S(),i!==r)for(;i!==r;)n.push(i),i=S();else n=r;n!==r?(t=[t,n],e=t):(s=e,e=r)}else s=e,e=r;return e}function T(){var e,t,n,i;if(e=Ns(),e===r)if(e=s,t=Is(),t!==r){for(n=[],i=S();i!==r;)n.push(i),i=S();t=[t,n],e=t}else s=e,e=r;return e}function Ee(){var e;return a.charCodeAt(s)===45?(e=A,s++):(e=r,o===0&&c(me)),e}function ks(){var e;return a.charCodeAt(s)===43?(e=E,s++):(e=r,o===0&&c(ur)),e}function Ns(){var e;return a.charCodeAt(s)===48?(e=_,s++):(e=r,o===0&&c(pr)),e}function S(){var e;return ir.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(gr)),e}function p(){var e,t;for(o++,e=[],ve.test(a.charAt(s))?(t=a.charAt(s),s++):(t=r,o===0&&c(_e));t!==r;)e.push(t),ve.test(a.charAt(s))?(t=a.charAt(s),s++):(t=r,o===0&&c(_e));return o--,t=r,o===0&&c(vr),e}function R(){var e,t,n,i;return e=s,t=p(),a.charCodeAt(s)===44?(n=m,s++):(n=r,o===0&&c($r)),n!==r?(i=p(),t=[t,n,i],e=t):(s=e,e=r),e}function Fe(){var e,t,n,i;return e=s,t=p(),a.charCodeAt(s)===124?(n=b,s++):(n=r,o===0&&c(hr)),n!==r?(i=p(),t=[t,n,i],e=t):(s=e,e=r),e}function P(){var e;return a.charCodeAt(s)===34?(e=F,s++):(e=r,o===0&&c(mr)),e===r&&(a.charCodeAt(s)===39?(e=Ge,s++):(e=r,o===0&&c(_r))),e}function z(){var e;return fr.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(dr)),e===r&&(a.charCodeAt(s)===45?(e=A,s++):(e=r,o===0&&c(me)),e===r&&(a.charCodeAt(s)===35?(e=Me,s++):(e=r,o===0&&c(Ar)),e===r&&(a.charCodeAt(s)===46?(e=w,s++):(e=r,o===0&&c(he)),e===r&&(a.charCodeAt(s)===94?(e=We,s++):(e=r,o===0&&c(wr)),e===r&&(a.charCodeAt(s)===95?(e=Ze,s++):(e=r,o===0&&c(yr)),e===r&&(a.charCodeAt(s)===58?(e=Ue,s++):(e=r,o===0&&c(br)))))))),e}function je(){var e,t,n;if(e=s,p(),t=[],n=z(),n!==r)for(;n!==r;)t.push(n),n=z();else t=r;return t!==r?(n=p(),v=e,e=Jr(t)):(s=e,e=r),e}function Bs(){var e,t,n,i;return e=s,p(),a.charCodeAt(s)===91?(t=Y,s++):(t=r,o===0&&c(de)),t!==r?(p(),n=Re(),n!==r?(p(),a.charCodeAt(s)===93?(i=ee,s++):(i=r,o===0&&c(Ae)),i!==r?(p(),v=e,e=Kr(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Ts(){var e,t,n,i;return e=s,p(),a.charCodeAt(s)===60?(t=Xe,s++):(t=r,o===0&&c(Cr)),t!==r?(p(),n=I(),n!==r?(p(),a.charCodeAt(s)===62?(i=He,s++):(i=r,o===0&&c(xr)),i!==r?(p(),v=e,e=Qr(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function zs(){var e;return e=je(),e===r&&(e=Bs(),e===r&&(e=Ts())),e}function Ls(){var e;return e=Gs(),e===r&&(e=Ws(),e===r&&(e=Zs(),e===r&&(e=Us(),e===r&&(e=Xs(),e===r&&(e=Ms(),e===r&&(e=Hs())))))),e}function Gs(){var e,t,n;return e=s,a.charCodeAt(s)===64?(t=Je,s++):(t=r,o===0&&c(Er)),t!==r?(n=y(),n!==r?(v=e,e=Vr(n)):(s=e,e=r)):(s=e,e=r),e}function Ms(){var e,t,n;return e=s,a.charCodeAt(s)===33?(t=Ke,s++):(t=r,o===0&&c(Fr)),t!==r?(n=y(),n!==r?(v=e,e=Yr(n)):(s=e,e=r)):(s=e,e=r),e}function Ws(){var e,t,n,i,l,d,C;return e=s,a.charCodeAt(s)===40?(t=Qe,s++):(t=r,o===0&&c(jr)),t!==r?(p(),n=y(),n!==r?(p(),i=R(),i!==r?(p(),l=y(),l!==r?(p(),R(),p(),d=y(),d===r&&(d=null),p(),a.charCodeAt(s)===41?(C=Ve,s++):(C=r,o===0&&c(Sr)),C!==r?(v=e,e=es(n,l,d)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Zs(){var e,t,n;return e=s,a.charCodeAt(s)===47?(t=Ye,s++):(t=r,o===0&&c(Rr)),t!==r?(n=y(),n!==r?(v=e,e=rs(n)):(s=e,e=r)):(s=e,e=r),e}function Us(){var e,t,n;return e=s,a.charCodeAt(s)===42?(t=er,s++):(t=r,o===0&&c(Pr)),t!==r?(n=y(),n!==r?(v=e,e=ss(n)):(s=e,e=r)):(s=e,e=r),e}function Xs(){var e,t,n;return e=s,a.charCodeAt(s)===37?(t=rr,s++):(t=r,o===0&&c(Ir)),t!==r?(n=y(),n!==r?(v=e,e=ts(n)):(s=e,e=r)):(s=e,e=r),e}function Hs(){var e,t,n;return e=s,a.charCodeAt(s)===63?(t=sr,s++):(t=r,o===0&&c(Or)),t!==r?(n=y(),n===r&&(n=null),v=e,e=ns(n)):(s=e,e=r),e}function Se(){var e,t,n;return e=s,t=zs(),t!==r?(n=Ls(),n===r&&(n=null),v=e,e=as(t,n)):(s=e,e=r),e}function I(){var e,t,n;if(e=s,t=[],n=Se(),n!==r)for(;n!==r;)t.push(n),n=Se();else t=r;return t!==r&&(v=e,t=is(t)),e=t,e}function Js(){var e,t,n,i,l;if(e=s,t=[],n=s,i=R(),i!==r?(l=I(),l!==r?n=l:(s=n,n=r)):(s=n,n=r),n!==r)for(;n!==r;)t.push(n),n=s,i=R(),i!==r?(l=I(),l!==r?n=l:(s=n,n=r)):(s=n,n=r);else t=r;return t!==r&&(v=e,t=fs(t)),e=t,e}function Ks(){var e,t,n,i,l;if(e=s,t=[],n=s,i=Fe(),i!==r?(l=I(),l!==r?n=l:(s=n,n=r)):(s=n,n=r),n!==r)for(;n!==r;)t.push(n),n=s,i=Fe(),i!==r?(l=I(),l!==r?n=l:(s=n,n=r)):(s=n,n=r);else t=r;return t!==r&&(v=e,t=os(t)),e=t,e}function Re(){var e,t,n;return e=s,t=I(),t!==r?(n=Js(),n===r&&(n=Ks()),n===r&&(n=null),v=e,e=cs(t,n)):(s=e,e=r),e}function Qs(){var e,t,n,i;return e=s,p(),t=P(),t!==r?(n=Re(),n!==r?(i=P(),i!==r?(v=e,e=ls(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Vs(){var e;return e=it(),e===r&&(e=st(),e===r&&(e=at(),e===r&&(e=et(),e===r&&(e=rt(),e===r&&(e=Ys(),e===r&&(e=nt(),e===r&&(e=tt()))))))),e}function Ys(){var e,t,n;return e=s,a.substr(s,6)===re?(t=re,s+=6):(t=r,o===0&&c(qr)),t!==r?(p(),n=O(),n!==r?(v=e,e=us(n)):(s=e,e=r)):(s=e,e=r),e}function et(){var e,t,n,i,l;return e=s,a.substr(s,6)===se?(t=se,s+=6):(t=r,o===0&&c(Dr)),t!==r?(p(),n=P(),n!==r?(i=je(),i!==r?(l=P(),l!==r?(v=e,e=ps(i)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function rt(){var e,t,n,i;return e=s,a.substr(s,6)===te?(t=te,s+=6):(t=r,o===0&&c(kr)),t!==r?(p(),n=T(),n!==r?(p(),i=T(),i!==r?(p(),T(),v=e,e=gs(n,i)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function st(){var e,t,n;return e=s,a.substr(s,4)===ne?(t=ne,s+=4):(t=r,o===0&&c(Nr)),t!==r?(p(),n=y(),n!==r?(v=e,e=vs(n)):(s=e,e=r)):(s=e,e=r),e}function tt(){var e,t,n;return e=s,a.substr(s,4)===ae?(t=ae,s+=4):(t=r,o===0&&c(Br)),t!==r?(p(),n=y(),n!==r?(v=e,e=$s(n)):(s=e,e=r)):(s=e,e=r),e}function nt(){var e,t,n;return e=s,a.substr(s,4)===ie?(t=ie,s+=4):(t=r,o===0&&c(Tr)),t!==r?(p(),n=y(),n!==r?(v=e,e=hs(n)):(s=e,e=r)):(s=e,e=r),e}function at(){var e,t,n;return e=s,a.substr(s,4)===fe?(t=fe,s+=4):(t=r,o===0&&c(zr)),t!==r?(p(),n=y(),n!==r?(v=e,e=ms(n)):(s=e,e=r)):(s=e,e=r),e}function it(){var e,t,n,i,l;if(e=s,a.substr(s,5)===oe?(t=oe,s+=5):(t=r,o===0&&c(Lr)),t!==r)if(p(),n=P(),n!==r){if(i=[],l=z(),l!==r)for(;l!==r;)i.push(l),l=z();else i=r;i!==r?(l=P(),l!==r?(v=e,e=_s(i)):(s=e,e=r)):(s=e,e=r)}else s=e,e=r;else s=e,e=r;return e}function W(){var e,t,n,i;if(e=s,a.substr(s,2)===ce?(t=ce,s+=2):(t=r,o===0&&c(Gr)),t!==r){for(n=[],$e.test(a.charAt(s))?(i=a.charAt(s),s++):(i=r,o===0&&c(we));i!==r;)n.push(i),$e.test(a.charAt(s))?(i=a.charAt(s),s++):(i=r,o===0&&c(we));t=[t,n],e=t}else s=e,e=r;return e}function ft(){var e,t,n,i,l,d,C,q;if(e=s,a.substr(s,3)===le?(t=le,s+=3):(t=r,o===0&&c(Mr)),t!==r)if(p(),a.charCodeAt(s)===91?(n=Y,s++):(n=r,o===0&&c(de)),n!==r)if(p(),i=O(),i!==r){for(l=[],d=s,C=R(),C!==r?(q=O(),q!==r?(v=d,d=ye(i,q)):(s=d,d=r)):(s=d,d=r);d!==r;)l.push(d),d=s,C=R(),C!==r?(q=O(),q!==r?(v=d,d=ye(i,q)):(s=d,d=r)):(s=d,d=r);d=p(),a.charCodeAt(s)===93?(C=ee,s++):(C=r,o===0&&c(Ae)),C!==r?(v=e,e=ds(i,l)):(s=e,e=r)}else s=e,e=r;else s=e,e=r;else s=e,e=r;return e}function ot(){var e;return e=ft(),e===r&&(e=Qs()),e}function O(){var e,t,n,i,l;if(e=s,t=ot(),t!==r){for(p(),n=[],i=W();i!==r;)n.push(i),i=W();v=e,e=As(t)}else s=e,e=r;return e===r&&(e=s,t=Vs(),t!==r?(p(),a.charCodeAt(s)===36?(n=tr,s++):(n=r,o===0&&c(Wr)),n!==r?(i=p(),l=O(),l!==r?(v=e,e=ws(t,l)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)),e}function ct(){var e,t;return e=s,t=O(),t!==r&&(v=e,t=ys(t)),e=t,e===r&&(e=W()),e}function lt(){var e;return e=ct(),e}function ut(){var e,t;return e=s,p(),t=pt(),t===r&&(t=gt(),t===r&&(t=vt())),t!==r?(p(),v=e,e=bs(t)):(s=e,e=r),e}function pt(){var e,t,n;return e=s,a.substr(s,6)===ue?(t=ue,s+=6):(t=r,o===0&&c(Zr)),t!==r?(p(),n=y(),n!==r?(v=e,e=Cs(n)):(s=e,e=r)):(s=e,e=r),e}function gt(){var e,t,n;return e=s,a.substr(s,6)===pe?(t=pe,s+=6):(t=r,o===0&&c(Ur)),t!==r?(p(),n=y(),n!==r?(v=e,e=xs(n)):(s=e,e=r)):(s=e,e=r),e}function vt(){var e,t;return e=s,a.substr(s,4)===ge?(t=ge,s+=4):(t=r,o===0&&c(Xr)),t!==r&&(v=e,t=Es()),e=t,e}function $t(){var e;return e=lt(),e===r&&(e=ut()),e}var Z=function(e,t){this.type_="pattern",this.arguments_={alignment:t},this.source_=e},ht=function(e,t,n){this.type_=e,this.arguments_=t,this.source_=n},mt=function(e,t){this.type_="element",this.source_=e,this.options_=t,this.location_=js()},U=function(e,t){this.type_="command",this.name_=e,this.options_=t};if(B=h(),B!==r&&s===a.length)return B;throw B!==r&&s(f,r)=>{const u=a.source_[r].options_,h=u==null?void 0:u.operator;if(h){switch(h.type_){case"stretch":const A=Be(h.arguments_.amount).inverse();return K(f).fast(A);case"bjorklund":return f.euclid(h.arguments_.pulse,h.arguments_.step,h.arguments_.rotation);case"degradeBy":return K(f)._degradeByWith(ke.early(ze*Le()).segment(1),h.arguments_.amount)}console.warn(`operator "${h.type_}" not implemented`)}if(u!=null&&u.weight)return f;const w=Object.keys(u||{}).filter(A=>A!=="operator");return w.length&&console.warn(`option${w.length>1?"s":""} ${w.map(A=>`"${A}"`).join(", ")} not implemented`),f};function Rt(a){a.source_=a.source_.map(f=>{const u=f.options_||{},{replicate:r}=u,$=qe(u,["replicate"]);return r?H(X({},f),{options_:H(X({},$),{weight:r}),source_:{type_:"pattern",arguments_:{alignment:"h"},source_:[{type_:"element",source_:f.source_,location_:f.location_,options_:{operator:{type_:"stretch",arguments_:{amount:Be(r).inverse().toString()}}}}]}}):f})}function k(a){switch(a.type_){case"pattern":Rt(a);const f=a.source_.map(k).map(St(a)),r=a.arguments_.alignment;if(r==="v")return xt(...f);if(r==="r")return wt(ke.early(ze*Le()).segment(1),f);const $=a.source_.some(u=>{var h;return!!((h=u.options_)!=null&&h.weight)});if(!$&&r==="t")return Et(...f);if($){const u=Ft(...a.source_.map((h,w)=>{var A;return[((A=h.options_)==null?void 0:A.weight)||1,f[w]]}));if(r==="t"){const h=a.source_.reduce((w,A)=>{var E;return w+(((E=A.options_)==null?void 0:E.weight)||1)},0);return u._slow(h)}return u}return Te(...f);case"element":if(a.source_==="~")return De;if(typeof a.source_!="object"){if(!a.location_)return console.warn("no location for",a),a.source_;const{start:u,end:h}=a.location_,w=isNaN(Number(a.source_))?a.source_:Number(a.source_);return Ct(w).withLocation([u.line,u.column,u.offset],[h.line,h.column,h.offset])}return k(a.source_);case"stretch":return k(a.source_).slow(a.arguments_.amount);default:return console.warn(`node type "${a.type_}" not implemented -> returning silence`),De}}const V=(...a)=>{const f=a.map(r=>{const $=Ne(`"${r}"`);return k($)});return Te(...f)},Pt=a=>{const f=Ne(a);return k(f)};Q.prototype.define("mini",V,{composable:!0});Q.prototype.define("m",V,{composable:!0});Q.prototype.define("h",Pt,{composable:!0});function qt(a){return typeof a=="string"?V(a):K(a)}export{D as SyntaxError,Pt as h,V as mini,qt as minify,Ne as parse,k as patternifyAST}; diff --git a/assets/index.a99da263.js b/assets/index.a99da263.js deleted file mode 100644 index 6fe610982..000000000 --- a/assets/index.a99da263.js +++ /dev/null @@ -1,8 +0,0 @@ -var at=Object.defineProperty,it=Object.defineProperties;var ft=Object.getOwnPropertyDescriptors;var M=Object.getOwnPropertySymbols;var Pe=Object.prototype.hasOwnProperty,Oe=Object.prototype.propertyIsEnumerable;var Re=(a,f,r)=>f in a?at(a,f,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[f]=r,H=(a,f)=>{for(var r in f||(f={}))Pe.call(f,r)&&Re(a,r,f[r]);if(M)for(var r of M(f))Oe.call(f,r)&&Re(a,r,f[r]);return a},J=(a,f)=>it(a,ft(f));var qe=(a,f)=>{var r={};for(var $ in a)Pe.call(a,$)&&f.indexOf($)<0&&(r[$]=a[$]);if(a!=null&&M)for(var $ of M(a))f.indexOf($)<0&&Oe.call(a,$)&&(r[$]=a[$]);return r};import{F as ot}from"./index.4c53df7b.js";function ct(a,f){function r(){this.constructor=a}r.prototype=f.prototype,a.prototype=new r}function D(a,f,r,$){var l=Error.call(this,a);return Object.setPrototypeOf&&Object.setPrototypeOf(l,D.prototype),l.expected=f,l.found=r,l.location=$,l.name="SyntaxError",l}ct(D,Error);function K(a,f,r){return r=r||" ",a.length>f?a:(f-=a.length,r+=r.repeat(f),a+r.slice(0,f))}D.prototype.format=function(a){var f="Error: "+this.message;if(this.location){var r=null,$;for($=0;$ `+_+` -`+w+` | -`+l.line+" | "+E+` -`+w+" | "+K("",l.column-1," ")+K("",h,"^")}else f+=` - at `+_}return f};D.buildMessage=function(a,f){var r={literal:function(d){return'"'+l(d.text)+'"'},class:function(d){var h=d.parts.map(function(y){return Array.isArray(y)?_(y[0])+"-"+_(y[1]):_(y)});return"["+(d.inverted?"^":"")+h.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(d){return d.description}};function $(d){return d.charCodeAt(0).toString(16).toUpperCase()}function l(d){return d.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(h){return"\\x0"+$(h)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(h){return"\\x"+$(h)})}function _(d){return d.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(h){return"\\x0"+$(h)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(h){return"\\x"+$(h)})}function A(d){return r[d.type](d)}function w(d){var h=d.map(A),y,F;if(h.sort(),h.length>0){for(y=1,F=1;y",Ue="@",Xe="!",He="(",Je=")",Ke="/",Qe="*",Ve="%",ee="struct",re="target",se="euclid",te="slow",ne="rotL",ae="rotR",ie="fast",fe="scale",oe="//",ce="cat",We="$",le="setcps",ue="setbpm",pe="hush",Ye=/^[1-9]/,er=/^[eE]/,rr=/^[0-9]/,ge=/^[ \n\r\t]/,sr=/^[0-9a-zA-Z~]/,ve=/^[^\n]/,tr=ye("number"),$e=g(".",!1),nr=j([["1","9"]],!1,!1),ar=j(["e","E"],!1,!1),he=g("-",!1),ir=g("+",!1),fr=g("0",!1),or=j([["0","9"]],!1,!1),cr=ye("whitespace"),me=j([" ",` -`,"\r"," "],!1,!1),lr=g(",",!1),ur=g('"',!1),pr=g("'",!1),gr=j([["0","9"],["a","z"],["A","Z"],"~"],!1,!1),vr=g("#",!1),$r=g("^",!1),hr=g("_",!1),mr=g(":",!1),_e=g("[",!1),de=g("]",!1),_r=g("<",!1),dr=g(">",!1),wr=g("@",!1),Ar=g("!",!1),br=g("(",!1),yr=g(")",!1),Cr=g("/",!1),xr=g("*",!1),Er=g("%",!1),Fr=g("struct",!1),jr=g("target",!1),Sr=g("euclid",!1),Rr=g("slow",!1),Pr=g("rotL",!1),Or=g("rotR",!1),qr=g("fast",!1),Dr=g("scale",!1),Ir=g("//",!1),we=j([` -`],!0,!1),Nr=g("cat",!1),kr=g("$",!1),Tr=g("setcps",!1),zr=g("setbpm",!1),Lr=g("hush",!1),Mr=function(){return parseFloat(ms())},Zr=function(e){return e.join("")},Br=function(e){return e},Gr=function(e){return e.arguments_.alignment="t",e},Ur=function(e){return{weight:e}},Xr=function(e){return{replicate:e}},Hr=function(e,t,n){return{operator:{type_:"bjorklund",arguments_:{pulse:e,step:t,rotation:n||0}}}},Jr=function(e){return{operator:{type_:"stretch",arguments_:{amount:e}}}},Kr=function(e){return{operator:{type_:"stretch",arguments_:{amount:"1/"+e}}}},Qr=function(e){return{operator:{type_:"fixed-step",arguments_:{amount:e}}}},Vr=function(e,t){return new nt(e,t)},Wr=function(e){return new U(e,"h")},Ae=function(e,t){return t},Yr=function(e,t){return t.length==0&&e instanceof Object?e:(t.unshift(e),new U(t,"v"))},es=function(e){return e},rs=function(e){return{name:"struct",args:{sequence:e}}},ss=function(e){return{name:"target",args:{name:e}}},ts=function(e,t,n){return{name:"bjorklund",args:{pulse:parseInt(e),step:parseInt(t)}}},ns=function(e){return{name:"stretch",args:{amount:e}}},as=function(e){return{name:"shift",args:{amount:"-"+e}}},is=function(e){return{name:"shift",args:{amount:e}}},fs=function(e){return{name:"stretch",args:{amount:"1/"+e}}},os=function(e){return{name:"scale",args:{scale:e.join("")}}},be=function(e,t){return t},cs=function(e,t){return t.unshift(e),new U(t,"t")},ls=function(e){return e},us=function(e,t){return new tt(e.name,e.args,t)},ps=function(e){return e},gs=function(e){return e},vs=function(e){return new X("setcps",{value:e})},$s=function(e){return new X("setcps",{value:e/120/2})},hs=function(){return new X("hush")},s=0,p=0,N=[{line:1,column:1}],x=0,Z=[],o=0,k;if("startRule"in f){if(!(f.startRule in l))throw new Error(`Can't start parsing from rule "`+f.startRule+'".');_=l[f.startRule]}function ms(){return a.substring(p,s)}function _s(){return B(p,s)}function g(e,t){return{type:"literal",text:e,ignoreCase:t}}function j(e,t,n){return{type:"class",parts:e,inverted:t,ignoreCase:n}}function ds(){return{type:"end"}}function ye(e){return{type:"other",description:e}}function Ce(e){var t=N[e],n;if(t)return t;for(n=e-1;!N[n];)n--;for(t=N[n],t={line:t.line,column:t.column};nx&&(x=s,Z=[]),Z.push(e))}function ws(e,t,n){return new D(D.buildMessage(e,t),e,t,n)}function xe(){var e;return e=st(),e}function b(){var e,t;return o++,e=s,Ee(),t=T(),t!==r?(xs(),Cs(),p=e,e=Mr()):(s=e,e=r),o--,e===r&&o===0&&c(tr),e}function As(){var e;return a.charCodeAt(s)===46?(e=A,s++):(e=r,o===0&&c($e)),e}function bs(){var e;return Ye.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(nr)),e}function ys(){var e;return er.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(ar)),e}function Cs(){var e,t,n,i,v;if(e=s,t=ys(),t!==r){if(n=Ee(),n===r&&(n=Es()),n===r&&(n=null),i=[],v=S(),v!==r)for(;v!==r;)i.push(v),v=S();else i=r;i!==r?(t=[t,n,i],e=t):(s=e,e=r)}else s=e,e=r;return e}function xs(){var e,t,n,i;if(e=s,t=As(),t!==r){if(n=[],i=S(),i!==r)for(;i!==r;)n.push(i),i=S();else n=r;n!==r?(t=[t,n],e=t):(s=e,e=r)}else s=e,e=r;return e}function T(){var e,t,n,i;if(e=Fs(),e===r)if(e=s,t=bs(),t!==r){for(n=[],i=S();i!==r;)n.push(i),i=S();t=[t,n],e=t}else s=e,e=r;return e}function Ee(){var e;return a.charCodeAt(s)===45?(e=w,s++):(e=r,o===0&&c(he)),e}function Es(){var e;return a.charCodeAt(s)===43?(e=E,s++):(e=r,o===0&&c(ir)),e}function Fs(){var e;return a.charCodeAt(s)===48?(e=d,s++):(e=r,o===0&&c(fr)),e}function S(){var e;return rr.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(or)),e}function u(){var e,t;for(o++,e=[],ge.test(a.charAt(s))?(t=a.charAt(s),s++):(t=r,o===0&&c(me));t!==r;)e.push(t),ge.test(a.charAt(s))?(t=a.charAt(s),s++):(t=r,o===0&&c(me));return o--,t=r,o===0&&c(cr),e}function R(){var e,t,n,i;return e=s,t=u(),a.charCodeAt(s)===44?(n=h,s++):(n=r,o===0&&c(lr)),n!==r?(i=u(),t=[t,n,i],e=t):(s=e,e=r),e}function P(){var e;return a.charCodeAt(s)===34?(e=y,s++):(e=r,o===0&&c(ur)),e===r&&(a.charCodeAt(s)===39?(e=F,s++):(e=r,o===0&&c(pr))),e}function z(){var e;return sr.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(gr)),e===r&&(a.charCodeAt(s)===45?(e=w,s++):(e=r,o===0&&c(he)),e===r&&(a.charCodeAt(s)===35?(e=ze,s++):(e=r,o===0&&c(vr)),e===r&&(a.charCodeAt(s)===46?(e=A,s++):(e=r,o===0&&c($e)),e===r&&(a.charCodeAt(s)===94?(e=Le,s++):(e=r,o===0&&c($r)),e===r&&(a.charCodeAt(s)===95?(e=Me,s++):(e=r,o===0&&c(hr)),e===r&&(a.charCodeAt(s)===58?(e=Ze,s++):(e=r,o===0&&c(mr)))))))),e}function Fe(){var e,t,n;if(e=s,u(),t=[],n=z(),n!==r)for(;n!==r;)t.push(n),n=z();else t=r;return t!==r?(n=u(),p=e,e=Zr(t)):(s=e,e=r),e}function js(){var e,t,n,i;return e=s,u(),a.charCodeAt(s)===91?(t=W,s++):(t=r,o===0&&c(_e)),t!==r?(u(),n=Se(),n!==r?(u(),a.charCodeAt(s)===93?(i=Y,s++):(i=r,o===0&&c(de)),i!==r?(u(),p=e,e=Br(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Ss(){var e,t,n,i;return e=s,u(),a.charCodeAt(s)===60?(t=Be,s++):(t=r,o===0&&c(_r)),t!==r?(u(),n=L(),n!==r?(u(),a.charCodeAt(s)===62?(i=Ge,s++):(i=r,o===0&&c(dr)),i!==r?(u(),p=e,e=Gr(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Rs(){var e;return e=Fe(),e===r&&(e=js(),e===r&&(e=Ss())),e}function Ps(){var e;return e=Os(),e===r&&(e=Ds(),e===r&&(e=Is(),e===r&&(e=Ns(),e===r&&(e=ks(),e===r&&(e=qs()))))),e}function Os(){var e,t,n;return e=s,a.charCodeAt(s)===64?(t=Ue,s++):(t=r,o===0&&c(wr)),t!==r?(n=b(),n!==r?(p=e,e=Ur(n)):(s=e,e=r)):(s=e,e=r),e}function qs(){var e,t,n;return e=s,a.charCodeAt(s)===33?(t=Xe,s++):(t=r,o===0&&c(Ar)),t!==r?(n=b(),n!==r?(p=e,e=Xr(n)):(s=e,e=r)):(s=e,e=r),e}function Ds(){var e,t,n,i,v,m,C;return e=s,a.charCodeAt(s)===40?(t=He,s++):(t=r,o===0&&c(br)),t!==r?(u(),n=b(),n!==r?(u(),i=R(),i!==r?(u(),v=b(),v!==r?(u(),R(),u(),m=b(),m===r&&(m=null),u(),a.charCodeAt(s)===41?(C=Je,s++):(C=r,o===0&&c(yr)),C!==r?(p=e,e=Hr(n,v,m)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Is(){var e,t,n;return e=s,a.charCodeAt(s)===47?(t=Ke,s++):(t=r,o===0&&c(Cr)),t!==r?(n=b(),n!==r?(p=e,e=Jr(n)):(s=e,e=r)):(s=e,e=r),e}function Ns(){var e,t,n;return e=s,a.charCodeAt(s)===42?(t=Qe,s++):(t=r,o===0&&c(xr)),t!==r?(n=b(),n!==r?(p=e,e=Kr(n)):(s=e,e=r)):(s=e,e=r),e}function ks(){var e,t,n;return e=s,a.charCodeAt(s)===37?(t=Ve,s++):(t=r,o===0&&c(Er)),t!==r?(n=b(),n!==r?(p=e,e=Qr(n)):(s=e,e=r)):(s=e,e=r),e}function je(){var e,t,n;return e=s,t=Rs(),t!==r?(n=Ps(),n===r&&(n=null),p=e,e=Vr(t,n)):(s=e,e=r),e}function L(){var e,t,n;if(e=s,t=[],n=je(),n!==r)for(;n!==r;)t.push(n),n=je();else t=r;return t!==r&&(p=e,t=Wr(t)),e=t,e}function Se(){var e,t,n,i,v,m;if(e=s,t=L(),t!==r){for(n=[],i=s,v=R(),v!==r?(m=L(),m!==r?(p=i,i=Ae(t,m)):(s=i,i=r)):(s=i,i=r);i!==r;)n.push(i),i=s,v=R(),v!==r?(m=L(),m!==r?(p=i,i=Ae(t,m)):(s=i,i=r)):(s=i,i=r);p=e,e=Yr(t,n)}else s=e,e=r;return e}function Ts(){var e,t,n,i;return e=s,u(),t=P(),t!==r?(n=Se(),n!==r?(i=P(),i!==r?(p=e,e=es(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function zs(){var e;return e=Hs(),e===r&&(e=Bs(),e===r&&(e=Xs(),e===r&&(e=Ms(),e===r&&(e=Zs(),e===r&&(e=Ls(),e===r&&(e=Us(),e===r&&(e=Gs()))))))),e}function Ls(){var e,t,n;return e=s,a.substr(s,6)===ee?(t=ee,s+=6):(t=r,o===0&&c(Fr)),t!==r?(u(),n=O(),n!==r?(p=e,e=rs(n)):(s=e,e=r)):(s=e,e=r),e}function Ms(){var e,t,n,i,v;return e=s,a.substr(s,6)===re?(t=re,s+=6):(t=r,o===0&&c(jr)),t!==r?(u(),n=P(),n!==r?(i=Fe(),i!==r?(v=P(),v!==r?(p=e,e=ss(i)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Zs(){var e,t,n,i;return e=s,a.substr(s,6)===se?(t=se,s+=6):(t=r,o===0&&c(Sr)),t!==r?(u(),n=T(),n!==r?(u(),i=T(),i!==r?(u(),T(),p=e,e=ts(n,i)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Bs(){var e,t,n;return e=s,a.substr(s,4)===te?(t=te,s+=4):(t=r,o===0&&c(Rr)),t!==r?(u(),n=b(),n!==r?(p=e,e=ns(n)):(s=e,e=r)):(s=e,e=r),e}function Gs(){var e,t,n;return e=s,a.substr(s,4)===ne?(t=ne,s+=4):(t=r,o===0&&c(Pr)),t!==r?(u(),n=b(),n!==r?(p=e,e=as(n)):(s=e,e=r)):(s=e,e=r),e}function Us(){var e,t,n;return e=s,a.substr(s,4)===ae?(t=ae,s+=4):(t=r,o===0&&c(Or)),t!==r?(u(),n=b(),n!==r?(p=e,e=is(n)):(s=e,e=r)):(s=e,e=r),e}function Xs(){var e,t,n;return e=s,a.substr(s,4)===ie?(t=ie,s+=4):(t=r,o===0&&c(qr)),t!==r?(u(),n=b(),n!==r?(p=e,e=fs(n)):(s=e,e=r)):(s=e,e=r),e}function Hs(){var e,t,n,i,v;if(e=s,a.substr(s,5)===fe?(t=fe,s+=5):(t=r,o===0&&c(Dr)),t!==r)if(u(),n=P(),n!==r){if(i=[],v=z(),v!==r)for(;v!==r;)i.push(v),v=z();else i=r;i!==r?(v=P(),v!==r?(p=e,e=os(i)):(s=e,e=r)):(s=e,e=r)}else s=e,e=r;else s=e,e=r;return e}function G(){var e,t,n,i;if(e=s,a.substr(s,2)===oe?(t=oe,s+=2):(t=r,o===0&&c(Ir)),t!==r){for(n=[],ve.test(a.charAt(s))?(i=a.charAt(s),s++):(i=r,o===0&&c(we));i!==r;)n.push(i),ve.test(a.charAt(s))?(i=a.charAt(s),s++):(i=r,o===0&&c(we));t=[t,n],e=t}else s=e,e=r;return e}function Js(){var e,t,n,i,v,m,C,q;if(e=s,a.substr(s,3)===ce?(t=ce,s+=3):(t=r,o===0&&c(Nr)),t!==r)if(u(),a.charCodeAt(s)===91?(n=W,s++):(n=r,o===0&&c(_e)),n!==r)if(u(),i=O(),i!==r){for(v=[],m=s,C=R(),C!==r?(q=O(),q!==r?(p=m,m=be(i,q)):(s=m,m=r)):(s=m,m=r);m!==r;)v.push(m),m=s,C=R(),C!==r?(q=O(),q!==r?(p=m,m=be(i,q)):(s=m,m=r)):(s=m,m=r);m=u(),a.charCodeAt(s)===93?(C=Y,s++):(C=r,o===0&&c(de)),C!==r?(p=e,e=cs(i,v)):(s=e,e=r)}else s=e,e=r;else s=e,e=r;else s=e,e=r;return e}function Ks(){var e;return e=Js(),e===r&&(e=Ts()),e}function O(){var e,t,n,i,v;if(e=s,t=Ks(),t!==r){for(u(),n=[],i=G();i!==r;)n.push(i),i=G();p=e,e=ls(t)}else s=e,e=r;return e===r&&(e=s,t=zs(),t!==r?(u(),a.charCodeAt(s)===36?(n=We,s++):(n=r,o===0&&c(kr)),n!==r?(i=u(),v=O(),v!==r?(p=e,e=us(t,v)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)),e}function Qs(){var e,t;return e=s,t=O(),t!==r&&(p=e,t=ps(t)),e=t,e===r&&(e=G()),e}function Vs(){var e;return e=Qs(),e}function Ws(){var e,t;return e=s,u(),t=Ys(),t===r&&(t=et(),t===r&&(t=rt())),t!==r?(u(),p=e,e=gs(t)):(s=e,e=r),e}function Ys(){var e,t,n;return e=s,a.substr(s,6)===le?(t=le,s+=6):(t=r,o===0&&c(Tr)),t!==r?(u(),n=b(),n!==r?(p=e,e=vs(n)):(s=e,e=r)):(s=e,e=r),e}function et(){var e,t,n;return e=s,a.substr(s,6)===ue?(t=ue,s+=6):(t=r,o===0&&c(zr)),t!==r?(u(),n=b(),n!==r?(p=e,e=$s(n)):(s=e,e=r)):(s=e,e=r),e}function rt(){var e,t;return e=s,a.substr(s,4)===pe?(t=pe,s+=4):(t=r,o===0&&c(Lr)),t!==r&&(p=e,t=hs()),e=t,e}function st(){var e;return e=Vs(),e===r&&(e=Ws()),e}var U=function(e,t){this.type_="pattern",this.arguments_={alignment:t},this.source_=e},tt=function(e,t,n){this.type_=e,this.arguments_=t,this.source_=n},nt=function(e,t){this.type_="element",this.source_=e,this.options_=t,this.location_=_s()},X=function(e,t){this.type_="command",this.name_=e,this.options_=t};if(k=_(),k!==r&&s===a.length)return k;throw k!==r&&s(f,r)=>{const l=a.source_[r].options_,_=l==null?void 0:l.operator;if(_){switch(_.type_){case"stretch":const w=Ne(_.arguments_.amount).inverse();return Te(f).fast(w);case"bjorklund":return f.euclid(_.arguments_.pulse,_.arguments_.step,_.arguments_.rotation)}console.warn(`operator "${_.type_}" not implemented`)}if(l!=null&&l.weight)return f;const A=Object.keys(l||{}).filter(w=>w!=="operator");return A.length&&console.warn(`option${A.length>1?"s":""} ${A.map(w=>`"${w}"`).join(", ")} not implemented`),f};function $t(a){a.source_=a.source_.map(f=>{const l=f.options_||{},{replicate:r}=l,$=qe(l,["replicate"]);return r?J(H({},f),{options_:J(H({},$),{weight:r}),source_:{type_:"pattern",arguments_:{alignment:"h"},source_:[{type_:"element",source_:f.source_,location_:f.location_,options_:{operator:{type_:"stretch",arguments_:{amount:Ne(r).inverse().toString()}}}}]}}):f})}function I(a){switch(a.type_){case"pattern":$t(a);const f=a.source_.map(I).map(vt(a)),r=a.arguments_.alignment;if(r==="v")return ut(...f);const $=a.source_.some(l=>{var _;return!!((_=l.options_)!=null&&_.weight)});if(!$&&r==="t")return pt(...f);if($){const l=gt(...a.source_.map((_,A)=>{var w;return[((w=_.options_)==null?void 0:w.weight)||1,f[A]]}));if(r==="t"){const _=a.source_.reduce((A,w)=>{var E;return A+(((E=w.options_)==null?void 0:E.weight)||1)},0);return l._slow(_)}return l}return ke(...f);case"element":if(a.source_==="~")return De;if(typeof a.source_!="object"){if(!a.location_)return console.warn("no location for",a),a.source_;const{start:l,end:_}=a.location_,A=isNaN(Number(a.source_))?a.source_:Number(a.source_);return lt(A).withLocation([l.line,l.column,l.offset],[_.line,_.column,_.offset])}return I(a.source_);case"stretch":return I(a.source_).slow(a.arguments_.amount);default:return console.warn(`node type "${a.type_}" not implemented -> returning silence`),De}}const V=(...a)=>{const f=a.map(r=>{const $=Ie(`"${r}"`);return I($)});return ke(...f)},ht=a=>{const f=Ie(a);return I(f)};Q.prototype.define("mini",V,{composable:!0});Q.prototype.define("m",V,{composable:!0});Q.prototype.define("h",ht,{composable:!0});function dt(a){return typeof a=="string"?V(a):Te(a)}export{D as SyntaxError,ht as h,V as mini,dt as minify,Ie as parse,I as patternifyAST}; diff --git a/assets/index.bfe9f6bc.js b/assets/index.bfe9f6bc.js deleted file mode 100644 index be678e854..000000000 --- a/assets/index.bfe9f6bc.js +++ /dev/null @@ -1 +0,0 @@ -let loadCache={};async function loadFont(name){if(loadCache[name])return loadCache[name];const load=async()=>{const url=`https://felixroos.github.io/webaudiofontdata/sound/${name}.js`;console.log("load font",name,url);const preset=await fetch(url).then(e=>e.text());let[_,data]=preset.split("={");return eval("{"+data)};return loadCache[name]=load(),loadCache[name]}async function getFontBufferSource(e,i,r){typeof i=="string"&&(i=toMidi(i));const{buffer:n,zone:s}=await getFontPitch(e,i,r),f=r.createBufferSource();f.buffer=n;const l=s.originalPitch-100*s.coarseTune-s.fineTune,a=1*Math.pow(2,(100*i-l)/1200);return f.playbackRate.value=a,s.loopStart>1&&s.loopStart{const f=await loadFont(e);if(!f)throw new Error(`Could not load soundfont ${e}`);const l=findZone(f,i);if(!l)throw new Error("no soundfont zone found for preset ",e,"pitch",i);const a=await getBuffer(l,r);if(!a)throw new Error(`no soundfont buffer found for preset ${e}, pitch: ${i}`);return{buffer:a,zone:l}};return bufferCache[n]=s(),bufferCache[n]}function findZone(e,i){return e.find(r=>r.keyRangeLow<=i&&r.keyRangeHigh+1>=i)}async function getBuffer(e,i){if(e.sample){console.warn("zone.sample untested!");const n=atob(e.sample);e.buffer=i.createBuffer(1,n.length/2,e.sampleRate);const s=e.buffer.getChannelData(0);let f,l,a;for(var r=0;r=65536/2&&(a=a-65536),s[r]=a/65536}else if(e.file){const n=e.file.length,s=new ArrayBuffer(n),f=new Uint8Array(s),l=atob(e.file);let a;for(let G=0;Gi.decodeAudioData(s,G))}}const instruments=["0000_JCLive_sf2_file","0000_Aspirin_sf2_file","0000_Chaos_sf2_file","0000_FluidR3_GM_sf2_file","0000_GeneralUserGS_sf2_file","0000_SBLive_sf2","0000_SoundBlasterOld_sf2","0001_FluidR3_GM_sf2_file","0001_GeneralUserGS_sf2_file","0002_GeneralUserGS_sf2_file","0003_GeneralUserGS_sf2_file","0010_Aspirin_sf2_file","0010_Chaos_sf2_file","0010_FluidR3_GM_sf2_file","0010_GeneralUserGS_sf2_file","0010_JCLive_sf2_file","0010_SBLive_sf2","0010_SoundBlasterOld_sf2","0011_Aspirin_sf2_file","0011_FluidR3_GM_sf2_file","0011_GeneralUserGS_sf2_file","0012_GeneralUserGS_sf2_file","0020_Aspirin_sf2_file","0020_Chaos_sf2_file","0020_FluidR3_GM_sf2_file","0020_GeneralUserGS_sf2_file","0020_JCLive_sf2_file","0020_SBLive_sf2","0020_SoundBlasterOld_sf2","0021_Aspirin_sf2_file","0021_GeneralUserGS_sf2_file","0022_Aspirin_sf2_file","0030_Aspirin_sf2_file","0030_Chaos_sf2_file","0030_FluidR3_GM_sf2_file","0030_GeneralUserGS_sf2_file","0030_JCLive_sf2_file","0030_SBLive_sf2","0030_SoundBlasterOld_sf2","0031_Aspirin_sf2_file","0031_FluidR3_GM_sf2_file","0031_GeneralUserGS_sf2_file","0031_SoundBlasterOld_sf2","0040_Aspirin_sf2_file","0040_Chaos_sf2_file","0040_FluidR3_GM_sf2_file","0040_GeneralUserGS_sf2_file","0040_JCLive_sf2_file","0040_SBLive_sf2","0040_SoundBlasterOld_sf2","0041_FluidR3_GM_sf2_file","0041_GeneralUserGS_sf2_file","0041_SoundBlasterOld_sf2","0042_GeneralUserGS_sf2_file","0043_GeneralUserGS_sf2_file","0044_GeneralUserGS_sf2_file","0045_GeneralUserGS_sf2_file","0046_GeneralUserGS_sf2_file","0050_Aspirin_sf2_file","0050_Chaos_sf2_file","0050_FluidR3_GM_sf2_file","0050_GeneralUserGS_sf2_file","0050_JCLive_sf2_file","0050_SBLive_sf2","0050_SoundBlasterOld_sf2","0051_FluidR3_GM_sf2_file","0051_GeneralUserGS_sf2_file","0052_GeneralUserGS_sf2_file","0053_GeneralUserGS_sf2_file","0054_GeneralUserGS_sf2_file","0060_Aspirin_sf2_file","0060_Chaos_sf2_file","0060_FluidR3_GM_sf2_file","0060_GeneralUserGS_sf2_file","0060_JCLive_sf2_file","0060_SBLive_sf2","0060_SoundBlasterOld_sf2","0061_Aspirin_sf2_file","0061_GeneralUserGS_sf2_file","0061_SoundBlasterOld_sf2","0062_GeneralUserGS_sf2_file","0070_Aspirin_sf2_file","0070_Chaos_sf2_file","0070_FluidR3_GM_sf2_file","0070_GeneralUserGS_sf2_file","0070_JCLive_sf2_file","0070_SBLive_sf2","0070_SoundBlasterOld_sf2","0071_GeneralUserGS_sf2_file","0080_Aspirin_sf2_file","0080_Chaos_sf2_file","0080_FluidR3_GM_sf2_file","0080_GeneralUserGS_sf2_file","0080_JCLive_sf2_file","0080_SBLive_sf2","0080_SoundBlasterOld_sf2","0081_FluidR3_GM_sf2_file","0081_GeneralUserGS_sf2_file","0081_SoundBlasterOld_sf2","0090_Aspirin_sf2_file","0090_Chaos_sf2_file","0090_FluidR3_GM_sf2_file","0090_GeneralUserGS_sf2_file","0090_JCLive_sf2_file","0090_SBLive_sf2","0090_SoundBlasterOld_sf2","0091_SoundBlasterOld_sf2","0100_Aspirin_sf2_file","0100_Chaos_sf2_file","0100_FluidR3_GM_sf2_file","0100_GeneralUserGS_sf2_file","0100_JCLive_sf2_file","0100_SBLive_sf2","0100_SoundBlasterOld_sf2","0101_GeneralUserGS_sf2_file","0101_SoundBlasterOld_sf2","0110_Aspirin_sf2_file","0110_Chaos_sf2_file","0110_FluidR3_GM_sf2_file","0110_GeneralUserGS_sf2_file","0110_JCLive_sf2_file","0110_SBLive_sf2","0110_SoundBlasterOld_sf2","0111_FluidR3_GM_sf2_file","0120_Aspirin_sf2_file","0120_Chaos_sf2_file","0120_FluidR3_GM_sf2_file","0120_GeneralUserGS_sf2_file","0120_JCLive_sf2_file","0120_SBLive_sf2","0120_SoundBlasterOld_sf2","0121_FluidR3_GM_sf2_file","0121_GeneralUserGS_sf2_file","0130_Aspirin_sf2_file","0130_Chaos_sf2_file","0130_FluidR3_GM_sf2_file","0130_GeneralUserGS_sf2_file","0130_JCLive_sf2_file","0130_SBLive_sf2","0130_SoundBlasterOld_sf2","0131_FluidR3_GM_sf2_file","0140_Aspirin_sf2_file","0140_Chaos_sf2_file","0140_FluidR3_GM_sf2_file","0140_GeneralUserGS_sf2_file","0140_JCLive_sf2_file","0140_SBLive_sf2","0140_SoundBlasterOld_sf2","0141_FluidR3_GM_sf2_file","0141_GeneralUserGS_sf2_file","0142_GeneralUserGS_sf2_file","0143_GeneralUserGS_sf2_file","0150_Aspirin_sf2_file","0150_Chaos_sf2_file","0150_FluidR3_GM_sf2_file","0150_GeneralUserGS_sf2_file","0150_JCLive_sf2_file","0150_SBLive_sf2","0150_SoundBlasterOld_sf2","0151_FluidR3_GM_sf2_file","0160_Aspirin_sf2_file","0160_Chaos_sf2_file","0160_FluidR3_GM_sf2_file","0160_GeneralUserGS_sf2_file","0160_JCLive_sf2_file","0160_SBLive_sf2","0160_SoundBlasterOld_sf2","0161_Aspirin_sf2_file","0161_FluidR3_GM_sf2_file","0161_SoundBlasterOld_sf2","0170_Aspirin_sf2_file","0170_Chaos_sf2_file","0170_FluidR3_GM_sf2_file","0170_GeneralUserGS_sf2_file","0170_JCLive_sf2_file","0170_SBLive_sf2","0170_SoundBlasterOld_sf2","0171_FluidR3_GM_sf2_file","0171_GeneralUserGS_sf2_file","0172_FluidR3_GM_sf2_file","0180_Aspirin_sf2_file","0180_Chaos_sf2_file","0180_FluidR3_GM_sf2_file","0180_GeneralUserGS_sf2_file","0180_JCLive_sf2_file","0180_SBLive_sf2","0180_SoundBlasterOld_sf2","0181_Aspirin_sf2_file","0181_GeneralUserGS_sf2_file","0181_SoundBlasterOld_sf2","0190_Aspirin_sf2_file","0190_Chaos_sf2_file","0190_FluidR3_GM_sf2_file","0190_GeneralUserGS_sf2_file","0190_JCLive_sf2_file","0190_SBLive_sf2","0190_SoundBlasterOld_sf2","0191_Aspirin_sf2_file","0191_GeneralUserGS_sf2_file","0191_SoundBlasterOld_sf2","0200_Aspirin_sf2_file","0200_Chaos_sf2_file","0200_FluidR3_GM_sf2_file","0200_GeneralUserGS_sf2_file","0200_JCLive_sf2_file","0200_SBLive_sf2","0200_SoundBlasterOld_sf2","0201_Aspirin_sf2_file","0201_FluidR3_GM_sf2_file","0201_GeneralUserGS_sf2_file","0201_SoundBlasterOld_sf2","0210_Aspirin_sf2_file","0210_Chaos_sf2_file","0210_FluidR3_GM_sf2_file","0210_GeneralUserGS_sf2_file","0210_JCLive_sf2_file","0210_SBLive_sf2","0210_SoundBlasterOld_sf2","0211_Aspirin_sf2_file","0211_FluidR3_GM_sf2_file","0211_GeneralUserGS_sf2_file","0211_SoundBlasterOld_sf2","0212_GeneralUserGS_sf2_file","0220_Aspirin_sf2_file","0220_Chaos_sf2_file","0220_FluidR3_GM_sf2_file","0220_GeneralUserGS_sf2_file","0220_JCLive_sf2_file","0220_SBLive_sf2","0220_SoundBlasterOld_sf2","0221_FluidR3_GM_sf2_file","0230_Aspirin_sf2_file","0230_Chaos_sf2_file","0230_FluidR3_GM_sf2_file","0230_GeneralUserGS_sf2_file","0230_JCLive_sf2_file","0230_SBLive_sf2","0230_SoundBlasterOld_sf2","0231_FluidR3_GM_sf2_file","0231_GeneralUserGS_sf2_file","0231_JCLive_sf2_file","0231_SoundBlasterOld_sf2","0232_FluidR3_GM_sf2_file","0233_FluidR3_GM_sf2_file","0240_Aspirin_sf2_file","0240_Chaos_sf2_file","0240_FluidR3_GM_sf2_file","0240_GeneralUserGS_sf2_file","0240_JCLive_sf2_file","0240_LK_Godin_Nylon_SF2_file","0240_SBLive_sf2","0240_SoundBlasterOld_sf2","0241_GeneralUserGS_sf2_file","0241_JCLive_sf2_file","0242_JCLive_sf2_file","0243_JCLive_sf2_file","0253_Acoustic_Guitar_sf2_file","0250_Aspirin_sf2_file","0250_Chaos_sf2_file","0250_FluidR3_GM_sf2_file","0250_GeneralUserGS_sf2_file","0250_JCLive_sf2_file","0250_LK_AcousticSteel_SF2_file","0250_SBLive_sf2","0250_SoundBlasterOld_sf2","0251_Acoustic_Guitar_sf2_file","0251_GeneralUserGS_sf2_file","0252_Acoustic_Guitar_sf2_file","0252_GeneralUserGS_sf2_file","0253_Acoustic_Guitar_sf2_file","0253_GeneralUserGS_sf2_file","0254_Acoustic_Guitar_sf2_file","0254_GeneralUserGS_sf2_file","0255_GeneralUserGS_sf2_file","0260_Aspirin_sf2_file","0260_Chaos_sf2_file","0260_FluidR3_GM_sf2_file","0260_GeneralUserGS_sf2_file","0260_JCLive_sf2_file","0260_SBLive_sf2","0260_SoundBlasterOld_sf2","0260_Stratocaster_sf2_file","0261_GeneralUserGS_sf2_file","0261_SoundBlasterOld_sf2","0261_Stratocaster_sf2_file","0262_Stratocaster_sf2_file","0270_Aspirin_sf2_file","0270_Chaos_sf2_file","0270_FluidR3_GM_sf2_file","0270_GeneralUserGS_sf2_file","0270_Gibson_Les_Paul_sf2_file","0270_JCLive_sf2_file","0270_SBAWE32_sf2_file","0270_SBLive_sf2","0270_SoundBlasterOld_sf2","0270_Stratocaster_sf2_file","0271_GeneralUserGS_sf2_file","0271_Stratocaster_sf2_file","0272_Stratocaster_sf2_file","0280_Aspirin_sf2_file","0280_Chaos_sf2_file","0280_FluidR3_GM_sf2_file","0280_GeneralUserGS_sf2_file","0280_JCLive_sf2_file","0280_LesPaul_sf2","0280_LesPaul_sf2_file","0280_SBAWE32_sf2_file","0280_SBLive_sf2","0280_SoundBlasterOld_sf2","0281_Aspirin_sf2_file","0281_FluidR3_GM_sf2_file","0281_GeneralUserGS_sf2_file","0282_FluidR3_GM_sf2_file","0282_GeneralUserGS_sf2_file","0283_GeneralUserGS_sf2_file","0290_Aspirin_sf2_file","0290_Chaos_sf2_file","0290_FluidR3_GM_sf2_file","0290_GeneralUserGS_sf2_file","0290_JCLive_sf2_file","0290_LesPaul_sf2","0290_LesPaul_sf2_file","0290_SBAWE32_sf2_file","0290_SBLive_sf2","0290_SoundBlasterOld_sf2","0291_Aspirin_sf2_file","0291_LesPaul_sf2","0291_LesPaul_sf2_file","0291_SBAWE32_sf2_file","0291_SoundBlasterOld_sf2","0292_Aspirin_sf2_file","0292_LesPaul_sf2","0292_LesPaul_sf2_file","0300_Aspirin_sf2_file","0300_Chaos_sf2_file","0300_FluidR3_GM_sf2_file","0300_GeneralUserGS_sf2_file","0300_JCLive_sf2_file","0300_LesPaul_sf2","0300_LesPaul_sf2_file","0300_SBAWE32_sf2_file","0300_SBLive_sf2","0300_SoundBlasterOld_sf2","0301_Aspirin_sf2_file","0301_FluidR3_GM_sf2_file","0301_GeneralUserGS_sf2_file","0301_JCLive_sf2_file","0301_LesPaul_sf2","0301_LesPaul_sf2_file","0302_Aspirin_sf2_file","0302_GeneralUserGS_sf2_file","0302_JCLive_sf2_file","0303_Aspirin_sf2_file","0304_Aspirin_sf2_file","0310_Aspirin_sf2_file","0310_Chaos_sf2_file","0310_FluidR3_GM_sf2_file","0310_GeneralUserGS_sf2_file","0310_JCLive_sf2_file","0310_LesPaul_sf2","0310_LesPaul_sf2_file","0310_SBAWE32_sf2_file","0310_SBLive_sf2","0310_SoundBlasterOld_sf2","0311_FluidR3_GM_sf2_file","0311_GeneralUserGS_sf2_file","0320_Aspirin_sf2_file","0320_Chaos_sf2_file","0320_FluidR3_GM_sf2_file","0320_GeneralUserGS_sf2_file","0320_JCLive_sf2_file","0320_SBLive_sf2","0320_SoundBlasterOld_sf2","0321_GeneralUserGS_sf2_file","0322_GeneralUserGS_sf2_file","0330_Aspirin_sf2_file","0330_Chaos_sf2_file","0330_FluidR3_GM_sf2_file","0330_GeneralUserGS_sf2_file","0330_JCLive_sf2_file","0330_SBLive_sf2","0330_SoundBlasterOld_sf2","0331_GeneralUserGS_sf2_file","0332_GeneralUserGS_sf2_file","0340_Aspirin_sf2_file","0340_Chaos_sf2_file","0340_FluidR3_GM_sf2_file","0340_GeneralUserGS_sf2_file","0340_JCLive_sf2_file","0340_SBLive_sf2","0340_SoundBlasterOld_sf2","0341_Aspirin_sf2_file","0341_GeneralUserGS_sf2_file","0350_Aspirin_sf2_file","0350_Chaos_sf2_file","0350_FluidR3_GM_sf2_file","0350_GeneralUserGS_sf2_file","0350_JCLive_sf2_file","0350_SBLive_sf2","0350_SoundBlasterOld_sf2","0351_GeneralUserGS_sf2_file","0360_Aspirin_sf2_file","0360_Chaos_sf2_file","0360_FluidR3_GM_sf2_file","0360_GeneralUserGS_sf2_file","0360_JCLive_sf2_file","0360_SBLive_sf2","0360_SoundBlasterOld_sf2","0361_GeneralUserGS_sf2_file","0370_Aspirin_sf2_file","0370_Chaos_sf2_file","0370_FluidR3_GM_sf2_file","0370_GeneralUserGS_sf2_file","0370_JCLive_sf2_file","0370_SBLive_sf2","0370_SoundBlasterOld_sf2","0371_GeneralUserGS_sf2_file","0372_GeneralUserGS_sf2_file","0385_GeneralUserGS_sf2_file","0380_Aspirin_sf2_file","0380_Chaos_sf2_file","0380_FluidR3_GM_sf2_file","0380_GeneralUserGS_sf2_file","0380_JCLive_sf2_file","0380_SBLive_sf2","0380_SoundBlasterOld_sf2","0381_FluidR3_GM_sf2_file","0381_GeneralUserGS_sf2_file","0382_FluidR3_GM_sf2_file","0382_GeneralUserGS_sf2_file","0383_GeneralUserGS_sf2_file","0384_GeneralUserGS_sf2_file","0386_GeneralUserGS_sf2_file","0387_GeneralUserGS_sf2_file","0390_Aspirin_sf2_file","0390_Chaos_sf2_file","0390_FluidR3_GM_sf2_file","0390_GeneralUserGS_sf2_file","0390_JCLive_sf2_file","0390_SBLive_sf2","0390_SoundBlasterOld_sf2","0391_FluidR3_GM_sf2_file","0391_GeneralUserGS_sf2_file","0391_SoundBlasterOld_sf2","0392_FluidR3_GM_sf2_file","0392_GeneralUserGS_sf2_file","0393_GeneralUserGS_sf2_file","0400_Aspirin_sf2_file","0400_Chaos_sf2_file","0400_FluidR3_GM_sf2_file","0400_GeneralUserGS_sf2_file","0400_JCLive_sf2_file","0400_SBLive_sf2","0400_SoundBlasterOld_sf2","0401_Aspirin_sf2_file","0401_FluidR3_GM_sf2_file","0401_GeneralUserGS_sf2_file","0402_GeneralUserGS_sf2_file","0410_Aspirin_sf2_file","0410_Chaos_sf2_file","0410_FluidR3_GM_sf2_file","0410_GeneralUserGS_sf2_file","0410_JCLive_sf2_file","0410_SBLive_sf2","0410_SoundBlasterOld_sf2","0411_FluidR3_GM_sf2_file","0420_Aspirin_sf2_file","0420_Chaos_sf2_file","0420_FluidR3_GM_sf2_file","0420_GeneralUserGS_sf2_file","0420_JCLive_sf2_file","0420_SBLive_sf2","0420_SoundBlasterOld_sf2","0421_FluidR3_GM_sf2_file","0421_GeneralUserGS_sf2_file","0430_Aspirin_sf2_file","0430_Chaos_sf2_file","0430_FluidR3_GM_sf2_file","0430_GeneralUserGS_sf2_file","0430_JCLive_sf2_file","0430_SBLive_sf2","0430_SoundBlasterOld_sf2","0431_FluidR3_GM_sf2_file","0440_Aspirin_sf2_file","0440_Chaos_sf2_file","0440_FluidR3_GM_sf2_file","0440_GeneralUserGS_sf2_file","0440_JCLive_sf2_file","0440_SBLive_sf2","0440_SoundBlasterOld_sf2","0441_GeneralUserGS_sf2_file","0442_GeneralUserGS_sf2_file","0450_Aspirin_sf2_file","0450_Chaos_sf2_file","0450_FluidR3_GM_sf2_file","0450_GeneralUserGS_sf2_file","0450_JCLive_sf2_file","0450_SBLive_sf2","0450_SoundBlasterOld_sf2","0451_FluidR3_GM_sf2_file","0460_Aspirin_sf2_file","0460_Chaos_sf2_file","0460_FluidR3_GM_sf2_file","0460_GeneralUserGS_sf2_file","0460_JCLive_sf2_file","0460_SBLive_sf2","0460_SoundBlasterOld_sf2","0461_FluidR3_GM_sf2_file","0470_Aspirin_sf2_file","0470_Chaos_sf2_file","0470_FluidR3_GM_sf2_file","0470_GeneralUserGS_sf2_file","0470_JCLive_sf2_file","0470_SBLive_sf2","0470_SoundBlasterOld_sf2","0471_FluidR3_GM_sf2_file","0471_GeneralUserGS_sf2_file","0480_Aspirin_sf2_file","0480_Chaos_sf2_file","0480_FluidR3_GM_sf2_file","0480_GeneralUserGS_sf2_file","0480_JCLive_sf2_file","0480_SBLive_sf2","0480_SoundBlasterOld_sf2","04810_GeneralUserGS_sf2_file","04811_GeneralUserGS_sf2_file","04812_GeneralUserGS_sf2_file","04813_GeneralUserGS_sf2_file","04814_GeneralUserGS_sf2_file","04815_GeneralUserGS_sf2_file","04816_GeneralUserGS_sf2_file","04817_GeneralUserGS_sf2_file","0481_Aspirin_sf2_file","0481_FluidR3_GM_sf2_file","0481_GeneralUserGS_sf2_file","0482_Aspirin_sf2_file","0482_GeneralUserGS_sf2_file","0483_GeneralUserGS_sf2_file","0484_GeneralUserGS_sf2_file","0485_GeneralUserGS_sf2_file","0486_GeneralUserGS_sf2_file","0487_GeneralUserGS_sf2_file","0488_GeneralUserGS_sf2_file","0489_GeneralUserGS_sf2_file","0490_Aspirin_sf2_file","0490_Chaos_sf2_file","0490_FluidR3_GM_sf2_file","0490_GeneralUserGS_sf2_file","0490_JCLive_sf2_file","0490_SBLive_sf2","0490_SoundBlasterOld_sf2","0491_GeneralUserGS_sf2_file","0492_GeneralUserGS_sf2_file","0500_Aspirin_sf2_file","0500_Chaos_sf2_file","0500_FluidR3_GM_sf2_file","0500_GeneralUserGS_sf2_file","0500_JCLive_sf2_file","0500_SBLive_sf2","0500_SoundBlasterOld_sf2","0501_FluidR3_GM_sf2_file","0501_GeneralUserGS_sf2_file","0502_FluidR3_GM_sf2_file","0502_GeneralUserGS_sf2_file","0503_FluidR3_GM_sf2_file","0504_FluidR3_GM_sf2_file","0505_FluidR3_GM_sf2_file","0510_Aspirin_sf2_file","0510_Chaos_sf2_file","0510_FluidR3_GM_sf2_file","0510_GeneralUserGS_sf2_file","0510_JCLive_sf2_file","0510_SBLive_sf2","0510_SoundBlasterOld_sf2","0511_GeneralUserGS_sf2_file","0511_SoundBlasterOld_sf2","0520_Aspirin_sf2_file","0520_Chaos_sf2_file","0520_FluidR3_GM_sf2_file","0520_GeneralUserGS_sf2_file","0520_JCLive_sf2_file","0520_SBLive_sf2","0520_Soul_Ahhs_sf2_file","0520_SoundBlasterOld_sf2","0521_FluidR3_GM_sf2_file","0521_Soul_Ahhs_sf2_file","0521_SoundBlasterOld_sf2","0522_Soul_Ahhs_sf2_file","0530_Aspirin_sf2_file","0530_Chaos_sf2_file","0530_FluidR3_GM_sf2_file","0530_GeneralUserGS_sf2_file","0530_JCLive_sf2_file","0530_SBLive_sf2","0530_Soul_Ahhs_sf2_file","0530_SoundBlasterOld_sf2","0531_FluidR3_GM_sf2_file","0531_GeneralUserGS_sf2_file","0531_JCLive_sf2_file","0531_SoundBlasterOld_sf2","0540_Aspirin_sf2_file","0540_Chaos_sf2_file","0540_FluidR3_GM_sf2_file","0540_GeneralUserGS_sf2_file","0540_JCLive_sf2_file","0540_SBLive_sf2","0540_SoundBlasterOld_sf2","0541_FluidR3_GM_sf2_file","0550_Aspirin_sf2_file","0550_Chaos_sf2_file","0550_FluidR3_GM_sf2_file","0550_GeneralUserGS_sf2_file","0550_JCLive_sf2_file","0550_SBLive_sf2","0550_SoundBlasterOld_sf2","0551_Aspirin_sf2_file","0551_FluidR3_GM_sf2_file","0560_Aspirin_sf2_file","0560_Chaos_sf2_file","0560_FluidR3_GM_sf2_file","0560_GeneralUserGS_sf2_file","0560_JCLive_sf2_file","0560_SBLive_sf2","0560_SoundBlasterOld_sf2","0570_Aspirin_sf2_file","0570_Chaos_sf2_file","0570_FluidR3_GM_sf2_file","0570_GeneralUserGS_sf2_file","0570_JCLive_sf2_file","0570_SBLive_sf2","0570_SoundBlasterOld_sf2","0571_GeneralUserGS_sf2_file","0580_Aspirin_sf2_file","0580_Chaos_sf2_file","0580_FluidR3_GM_sf2_file","0580_GeneralUserGS_sf2_file","0580_JCLive_sf2_file","0580_SBLive_sf2","0580_SoundBlasterOld_sf2","0581_GeneralUserGS_sf2_file","0590_Aspirin_sf2_file","0590_Chaos_sf2_file","0590_FluidR3_GM_sf2_file","0590_GeneralUserGS_sf2_file","0590_JCLive_sf2_file","0590_SBLive_sf2","0590_SoundBlasterOld_sf2","0591_GeneralUserGS_sf2_file","0600_Aspirin_sf2_file","0600_Chaos_sf2_file","0600_FluidR3_GM_sf2_file","0600_GeneralUserGS_sf2_file","0600_JCLive_sf2_file","0600_SBLive_sf2","0600_SoundBlasterOld_sf2","0601_FluidR3_GM_sf2_file","0601_GeneralUserGS_sf2_file","0602_GeneralUserGS_sf2_file","0603_GeneralUserGS_sf2_file","0610_Aspirin_sf2_file","0610_Chaos_sf2_file","0610_FluidR3_GM_sf2_file","0610_GeneralUserGS_sf2_file","0610_JCLive_sf2_file","0610_SBLive_sf2","0610_SoundBlasterOld_sf2","0611_GeneralUserGS_sf2_file","0612_GeneralUserGS_sf2_file","0613_GeneralUserGS_sf2_file","0614_GeneralUserGS_sf2_file","0615_GeneralUserGS_sf2_file","0620_Aspirin_sf2_file","0620_Chaos_sf2_file","0620_FluidR3_GM_sf2_file","0620_GeneralUserGS_sf2_file","0620_JCLive_sf2_file","0620_SBLive_sf2","0620_SoundBlasterOld_sf2","0621_Aspirin_sf2_file","0621_FluidR3_GM_sf2_file","0621_GeneralUserGS_sf2_file","0622_FluidR3_GM_sf2_file","0622_GeneralUserGS_sf2_file","0630_Aspirin_sf2_file","0630_Chaos_sf2_file","0630_FluidR3_GM_sf2_file","0630_GeneralUserGS_sf2_file","0630_JCLive_sf2_file","0630_SBLive_sf2","0630_SoundBlasterOld_sf2","0631_Aspirin_sf2_file","0631_FluidR3_GM_sf2_file","0631_GeneralUserGS_sf2_file","0632_FluidR3_GM_sf2_file","0633_FluidR3_GM_sf2_file","0640_Aspirin_sf2_file","0640_Chaos_sf2_file","0640_FluidR3_GM_sf2_file","0640_GeneralUserGS_sf2_file","0640_JCLive_sf2_file","0640_SBLive_sf2","0640_SoundBlasterOld_sf2","0641_FluidR3_GM_sf2_file","0650_Aspirin_sf2_file","0650_Chaos_sf2_file","0650_FluidR3_GM_sf2_file","0650_GeneralUserGS_sf2_file","0650_JCLive_sf2_file","0650_SBLive_sf2","0650_SoundBlasterOld_sf2","0651_Aspirin_sf2_file","0651_FluidR3_GM_sf2_file","0660_Aspirin_sf2_file","0660_Chaos_sf2_file","0660_FluidR3_GM_sf2_file","0660_GeneralUserGS_sf2_file","0660_JCLive_sf2_file","0660_SBLive_sf2","0660_SoundBlasterOld_sf2","0661_FluidR3_GM_sf2_file","0661_GeneralUserGS_sf2_file","0670_Aspirin_sf2_file","0670_Chaos_sf2_file","0670_FluidR3_GM_sf2_file","0670_GeneralUserGS_sf2_file","0670_JCLive_sf2_file","0670_SBLive_sf2","0670_SoundBlasterOld_sf2","0671_FluidR3_GM_sf2_file","0680_Aspirin_sf2_file","0680_Chaos_sf2_file","0680_FluidR3_GM_sf2_file","0680_GeneralUserGS_sf2_file","0680_JCLive_sf2_file","0680_SBLive_sf2","0680_SoundBlasterOld_sf2","0681_FluidR3_GM_sf2_file","0690_Aspirin_sf2_file","0690_Chaos_sf2_file","0690_FluidR3_GM_sf2_file","0690_GeneralUserGS_sf2_file","0690_JCLive_sf2_file","0690_SBLive_sf2","0690_SoundBlasterOld_sf2","0691_FluidR3_GM_sf2_file","0700_Aspirin_sf2_file","0700_Chaos_sf2_file","0700_FluidR3_GM_sf2_file","0700_GeneralUserGS_sf2_file","0700_JCLive_sf2_file","0700_SBLive_sf2","0700_SoundBlasterOld_sf2","0701_FluidR3_GM_sf2_file","0701_GeneralUserGS_sf2_file","0710_Aspirin_sf2_file","0710_Chaos_sf2_file","0710_FluidR3_GM_sf2_file","0710_GeneralUserGS_sf2_file","0710_JCLive_sf2_file","0710_SBLive_sf2","0710_SoundBlasterOld_sf2","0711_FluidR3_GM_sf2_file","0720_Aspirin_sf2_file","0720_Chaos_sf2_file","0720_FluidR3_GM_sf2_file","0720_GeneralUserGS_sf2_file","0720_JCLive_sf2_file","0720_SBLive_sf2","0720_SoundBlasterOld_sf2","0721_FluidR3_GM_sf2_file","0721_SoundBlasterOld_sf2","0730_Aspirin_sf2_file","0730_Chaos_sf2_file","0730_FluidR3_GM_sf2_file","0730_GeneralUserGS_sf2_file","0730_JCLive_sf2_file","0730_SBLive_sf2","0730_SoundBlasterOld_sf2","0731_Aspirin_sf2_file","0731_FluidR3_GM_sf2_file","0731_SoundBlasterOld_sf2","0740_Aspirin_sf2_file","0740_Chaos_sf2_file","0740_FluidR3_GM_sf2_file","0740_GeneralUserGS_sf2_file","0740_JCLive_sf2_file","0740_SBLive_sf2","0740_SoundBlasterOld_sf2","0741_GeneralUserGS_sf2_file","0750_Aspirin_sf2_file","0750_Chaos_sf2_file","0750_FluidR3_GM_sf2_file","0750_GeneralUserGS_sf2_file","0750_JCLive_sf2_file","0750_SBLive_sf2","0750_SoundBlasterOld_sf2","0751_Aspirin_sf2_file","0751_FluidR3_GM_sf2_file","0751_GeneralUserGS_sf2_file","0751_SoundBlasterOld_sf2","0760_Aspirin_sf2_file","0760_Chaos_sf2_file","0760_FluidR3_GM_sf2_file","0760_GeneralUserGS_sf2_file","0760_JCLive_sf2_file","0760_SBLive_sf2","0760_SoundBlasterOld_sf2","0761_FluidR3_GM_sf2_file","0761_GeneralUserGS_sf2_file","0761_SoundBlasterOld_sf2","0762_GeneralUserGS_sf2_file","0770_Aspirin_sf2_file","0770_Chaos_sf2_file","0770_FluidR3_GM_sf2_file","0770_GeneralUserGS_sf2_file","0770_JCLive_sf2_file","0770_SBLive_sf2","0770_SoundBlasterOld_sf2","0771_FluidR3_GM_sf2_file","0771_GeneralUserGS_sf2_file","0772_GeneralUserGS_sf2_file","0780_Aspirin_sf2_file","0780_Chaos_sf2_file","0780_FluidR3_GM_sf2_file","0780_GeneralUserGS_sf2_file","0780_JCLive_sf2_file","0780_SBLive_sf2","0780_SoundBlasterOld_sf2","0781_GeneralUserGS_sf2_file","0790_Aspirin_sf2_file","0790_Chaos_sf2_file","0790_FluidR3_GM_sf2_file","0790_GeneralUserGS_sf2_file","0790_JCLive_sf2_file","0790_SBLive_sf2","0790_SoundBlasterOld_sf2","0791_GeneralUserGS_sf2_file","0800_Aspirin_sf2_file","0800_Chaos_sf2_file","0800_FluidR3_GM_sf2_file","0800_GeneralUserGS_sf2_file","0800_JCLive_sf2_file","0800_SBLive_sf2","0800_SoundBlasterOld_sf2","0801_FluidR3_GM_sf2_file","0801_GeneralUserGS_sf2_file","0810_Aspirin_sf2_file","0810_Chaos_sf2_file","0810_FluidR3_GM_sf2_file","0810_GeneralUserGS_sf2_file","0810_JCLive_sf2_file","0810_SBLive_sf2","0810_SoundBlasterOld_sf2","0811_Aspirin_sf2_file","0811_GeneralUserGS_sf2_file","0811_SoundBlasterOld_sf2","0820_Aspirin_sf2_file","0820_Chaos_sf2_file","0820_FluidR3_GM_sf2_file","0820_GeneralUserGS_sf2_file","0820_JCLive_sf2_file","0820_SBLive_sf2","0820_SoundBlasterOld_sf2","0821_FluidR3_GM_sf2_file","0821_GeneralUserGS_sf2_file","0821_SoundBlasterOld_sf2","0822_GeneralUserGS_sf2_file","0823_GeneralUserGS_sf2_file","0830_Aspirin_sf2_file","0830_Chaos_sf2_file","0830_FluidR3_GM_sf2_file","0830_GeneralUserGS_sf2_file","0830_JCLive_sf2_file","0830_SBLive_sf2","0830_SoundBlasterOld_sf2","0831_FluidR3_GM_sf2_file","0831_GeneralUserGS_sf2_file","0831_SoundBlasterOld_sf2","0840_Aspirin_sf2_file","0840_Chaos_sf2_file","0840_FluidR3_GM_sf2_file","0840_GeneralUserGS_sf2_file","0840_JCLive_sf2_file","0840_SBLive_sf2","0840_SoundBlasterOld_sf2","0841_Aspirin_sf2_file","0841_Chaos_sf2_file","0841_FluidR3_GM_sf2_file","0841_GeneralUserGS_sf2_file","0841_JCLive_sf2_file","0841_SoundBlasterOld_sf2","0842_FluidR3_GM_sf2_file","0850_Aspirin_sf2_file","0850_Chaos_sf2_file","0850_FluidR3_GM_sf2_file","0850_GeneralUserGS_sf2_file","0850_JCLive_sf2_file","0850_SBLive_sf2","0850_SoundBlasterOld_sf2","0851_FluidR3_GM_sf2_file","0851_GeneralUserGS_sf2_file","0851_JCLive_sf2_file","0851_SoundBlasterOld_sf2","0860_Aspirin_sf2_file","0860_Chaos_sf2_file","0860_FluidR3_GM_sf2_file","0860_GeneralUserGS_sf2_file","0860_JCLive_sf2_file","0860_SBLive_sf2","0860_SoundBlasterOld_sf2","0861_Aspirin_sf2_file","0861_FluidR3_GM_sf2_file","0861_SoundBlasterOld_sf2","0870_Aspirin_sf2_file","0870_Chaos_sf2_file","0870_FluidR3_GM_sf2_file","0870_GeneralUserGS_sf2_file","0870_JCLive_sf2_file","0870_SBLive_sf2","0870_SoundBlasterOld_sf2","0871_GeneralUserGS_sf2_file","0872_GeneralUserGS_sf2_file","0873_GeneralUserGS_sf2_file","0880_Aspirin_sf2_file","0880_Chaos_sf2_file","0880_FluidR3_GM_sf2_file","0880_GeneralUserGS_sf2_file","0880_JCLive_sf2_file","0880_SBLive_sf2","0880_SoundBlasterOld_sf2","0881_Aspirin_sf2_file","0881_FluidR3_GM_sf2_file","0881_GeneralUserGS_sf2_file","0881_SoundBlasterOld_sf2","0882_Aspirin_sf2_file","0882_FluidR3_GM_sf2_file","0882_GeneralUserGS_sf2_file","0883_GeneralUserGS_sf2_file","0884_GeneralUserGS_sf2_file","0885_GeneralUserGS_sf2_file","0886_GeneralUserGS_sf2_file","0887_GeneralUserGS_sf2_file","0888_GeneralUserGS_sf2_file","0889_GeneralUserGS_sf2_file","0890_Aspirin_sf2_file","0890_Chaos_sf2_file","0890_FluidR3_GM_sf2_file","0890_GeneralUserGS_sf2_file","0890_JCLive_sf2_file","0890_SBLive_sf2","0890_SoundBlasterOld_sf2","0891_Aspirin_sf2_file","0891_FluidR3_GM_sf2_file","0891_GeneralUserGS_sf2_file","0900_Aspirin_sf2_file","0900_Chaos_sf2_file","0900_FluidR3_GM_sf2_file","0900_GeneralUserGS_sf2_file","0900_JCLive_sf2_file","0900_SBLive_sf2","0900_SoundBlasterOld_sf2","0901_Aspirin_sf2_file","0901_FluidR3_GM_sf2_file","0901_GeneralUserGS_sf2_file","0901_SoundBlasterOld_sf2","0910_Aspirin_sf2_file","0910_Chaos_sf2_file","0910_FluidR3_GM_sf2_file","0910_GeneralUserGS_sf2_file","0910_JCLive_sf2_file","0910_SBLive_sf2","0910_SoundBlasterOld_sf2","0911_Aspirin_sf2_file","0911_GeneralUserGS_sf2_file","0911_JCLive_sf2_file","0911_SoundBlasterOld_sf2","0920_Aspirin_sf2_file","0920_Chaos_sf2_file","0920_FluidR3_GM_sf2_file","0920_GeneralUserGS_sf2_file","0920_JCLive_sf2_file","0920_SBLive_sf2","0920_SoundBlasterOld_sf2","0921_Aspirin_sf2_file","0921_GeneralUserGS_sf2_file","0921_SoundBlasterOld_sf2","0930_Aspirin_sf2_file","0930_Chaos_sf2_file","0930_FluidR3_GM_sf2_file","0930_GeneralUserGS_sf2_file","0930_JCLive_sf2_file","0930_SBLive_sf2","0930_SoundBlasterOld_sf2","0931_Aspirin_sf2_file","0931_FluidR3_GM_sf2_file","0931_GeneralUserGS_sf2_file","0931_SoundBlasterOld_sf2","0940_Aspirin_sf2_file","0940_Chaos_sf2_file","0940_FluidR3_GM_sf2_file","0940_GeneralUserGS_sf2_file","0940_JCLive_sf2_file","0940_SBLive_sf2","0940_SoundBlasterOld_sf2","0941_Aspirin_sf2_file","0941_FluidR3_GM_sf2_file","0941_GeneralUserGS_sf2_file","0941_JCLive_sf2_file","0950_Aspirin_sf2_file","0950_Chaos_sf2_file","0950_FluidR3_GM_sf2_file","0950_GeneralUserGS_sf2_file","0950_JCLive_sf2_file","0950_SBLive_sf2","0950_SoundBlasterOld_sf2","0951_FluidR3_GM_sf2_file","0951_GeneralUserGS_sf2_file","0960_Aspirin_sf2_file","0960_Chaos_sf2_file","0960_FluidR3_GM_sf2_file","0960_GeneralUserGS_sf2_file","0960_JCLive_sf2_file","0960_SBLive_sf2","0960_SoundBlasterOld_sf2","0961_Aspirin_sf2_file","0961_FluidR3_GM_sf2_file","0961_GeneralUserGS_sf2_file","0961_SoundBlasterOld_sf2","0962_GeneralUserGS_sf2_file","0970_Aspirin_sf2_file","0970_Chaos_sf2_file","0970_FluidR3_GM_sf2_file","0970_GeneralUserGS_sf2_file","0970_JCLive_sf2_file","0970_SBLive_sf2","0970_SoundBlasterOld_sf2","0971_FluidR3_GM_sf2_file","0971_GeneralUserGS_sf2_file","0971_SoundBlasterOld_sf2","0980_Aspirin_sf2_file","0980_Chaos_sf2_file","0980_FluidR3_GM_sf2_file","0980_GeneralUserGS_sf2_file","0980_JCLive_sf2_file","0980_SBLive_sf2","0980_SoundBlasterOld_sf2","0981_Aspirin_sf2_file","0981_FluidR3_GM_sf2_file","0981_GeneralUserGS_sf2_file","0981_SoundBlasterOld_sf2","0982_GeneralUserGS_sf2_file","0983_GeneralUserGS_sf2_file","0984_GeneralUserGS_sf2_file","0990_Aspirin_sf2_file","0990_Chaos_sf2_file","0990_FluidR3_GM_sf2_file","0990_GeneralUserGS_sf2_file","0990_JCLive_sf2_file","0990_SBLive_sf2","0990_SoundBlasterOld_sf2","0991_Aspirin_sf2_file","0991_FluidR3_GM_sf2_file","0991_GeneralUserGS_sf2_file","0991_JCLive_sf2_file","0991_SoundBlasterOld_sf2","0992_FluidR3_GM_sf2_file","0992_JCLive_sf2_file","0993_JCLive_sf2_file","0994_JCLive_sf2_file","1000_Aspirin_sf2_file","1000_Chaos_sf2_file","1000_FluidR3_GM_sf2_file","1000_GeneralUserGS_sf2_file","1000_JCLive_sf2_file","1000_SBLive_sf2","1000_SoundBlasterOld_sf2","1001_Aspirin_sf2_file","1001_FluidR3_GM_sf2_file","1001_GeneralUserGS_sf2_file","1001_JCLive_sf2_file","1001_SoundBlasterOld_sf2","1002_Aspirin_sf2_file","1002_FluidR3_GM_sf2_file","1002_GeneralUserGS_sf2_file","1010_Aspirin_sf2_file","1010_Chaos_sf2_file","1010_FluidR3_GM_sf2_file","1010_GeneralUserGS_sf2_file","1010_JCLive_sf2_file","1010_SBLive_sf2","1010_SoundBlasterOld_sf2","1011_Aspirin_sf2_file","1011_FluidR3_GM_sf2_file","1011_JCLive_sf2_file","1012_Aspirin_sf2_file","1020_Aspirin_sf2_file","1020_Chaos_sf2_file","1020_FluidR3_GM_sf2_file","1020_GeneralUserGS_sf2_file","1020_JCLive_sf2_file","1020_SBLive_sf2","1020_SoundBlasterOld_sf2","1021_Aspirin_sf2_file","1021_FluidR3_GM_sf2_file","1021_GeneralUserGS_sf2_file","1021_JCLive_sf2_file","1021_SoundBlasterOld_sf2","1022_GeneralUserGS_sf2_file","1030_Aspirin_sf2_file","1030_Chaos_sf2_file","1030_FluidR3_GM_sf2_file","1030_GeneralUserGS_sf2_file","1030_JCLive_sf2_file","1030_SBLive_sf2","1030_SoundBlasterOld_sf2","1031_Aspirin_sf2_file","1031_FluidR3_GM_sf2_file","1031_GeneralUserGS_sf2_file","1031_SoundBlasterOld_sf2","1032_FluidR3_GM_sf2_file","1040_Aspirin_sf2_file","1040_Chaos_sf2_file","1040_FluidR3_GM_sf2_file","1040_GeneralUserGS_sf2_file","1040_JCLive_sf2_file","1040_SBLive_sf2","1040_SoundBlasterOld_sf2","1041_FluidR3_GM_sf2_file","1041_GeneralUserGS_sf2_file","1050_Aspirin_sf2_file","1050_Chaos_sf2_file","1050_FluidR3_GM_sf2_file","1050_GeneralUserGS_sf2_file","1050_JCLive_sf2_file","1050_SBLive_sf2","1050_SoundBlasterOld_sf2","1051_GeneralUserGS_sf2_file","1060_Aspirin_sf2_file","1060_Chaos_sf2_file","1060_FluidR3_GM_sf2_file","1060_GeneralUserGS_sf2_file","1060_JCLive_sf2_file","1060_SBLive_sf2","1060_SoundBlasterOld_sf2","1061_FluidR3_GM_sf2_file","1061_GeneralUserGS_sf2_file","1061_SoundBlasterOld_sf2","1070_Aspirin_sf2_file","1070_Chaos_sf2_file","1070_FluidR3_GM_sf2_file","1070_GeneralUserGS_sf2_file","1070_JCLive_sf2_file","1070_SBLive_sf2","1070_SoundBlasterOld_sf2","1071_FluidR3_GM_sf2_file","1071_GeneralUserGS_sf2_file","1072_GeneralUserGS_sf2_file","1073_GeneralUserGS_sf2_file","1080_Aspirin_sf2_file","1080_Chaos_sf2_file","1080_FluidR3_GM_sf2_file","1080_GeneralUserGS_sf2_file","1080_JCLive_sf2_file","1080_SBLive_sf2","1080_SoundBlasterOld_sf2","1081_SoundBlasterOld_sf2","1090_Aspirin_sf2_file","1090_Chaos_sf2_file","1090_FluidR3_GM_sf2_file","1090_GeneralUserGS_sf2_file","1090_JCLive_sf2_file","1090_SBLive_sf2","1090_SoundBlasterOld_sf2","1091_SoundBlasterOld_sf2","1100_Aspirin_sf2_file","1100_Chaos_sf2_file","1100_FluidR3_GM_sf2_file","1100_GeneralUserGS_sf2_file","1100_JCLive_sf2_file","1100_SBLive_sf2","1100_SoundBlasterOld_sf2","1101_Aspirin_sf2_file","1101_FluidR3_GM_sf2_file","1101_GeneralUserGS_sf2_file","1102_GeneralUserGS_sf2_file","1110_Aspirin_sf2_file","1110_Chaos_sf2_file","1110_FluidR3_GM_sf2_file","1110_GeneralUserGS_sf2_file","1110_JCLive_sf2_file","1110_SBLive_sf2","1110_SoundBlasterOld_sf2","1120_Aspirin_sf2_file","1120_Chaos_sf2_file","1120_FluidR3_GM_sf2_file","1120_GeneralUserGS_sf2_file","1120_JCLive_sf2_file","1120_SBLive_sf2","1120_SoundBlasterOld_sf2","1121_SoundBlasterOld_sf2","1130_Aspirin_sf2_file","1130_Chaos_sf2_file","1130_FluidR3_GM_sf2_file","1130_GeneralUserGS_sf2_file","1130_JCLive_sf2_file","1130_SBLive_sf2","1130_SoundBlasterOld_sf2","1131_FluidR3_GM_sf2_file","1131_SoundBlasterOld_sf2","1140_Aspirin_sf2_file","1140_Chaos_sf2_file","1140_FluidR3_GM_sf2_file","1140_GeneralUserGS_sf2_file","1140_JCLive_sf2_file","1140_SBLive_sf2","1140_SoundBlasterOld_sf2","1141_FluidR3_GM_sf2_file","1150_Aspirin_sf2_file","1150_Chaos_sf2_file","1150_FluidR3_GM_sf2_file","1150_GeneralUserGS_sf2_file","1150_JCLive_sf2_file","1150_SBLive_sf2","1150_SoundBlasterOld_sf2","1151_FluidR3_GM_sf2_file","1151_GeneralUserGS_sf2_file","1152_FluidR3_GM_sf2_file","1152_GeneralUserGS_sf2_file","1160_Aspirin_sf2_file","1160_Chaos_sf2_file","1160_FluidR3_GM_sf2_file","1160_GeneralUserGS_sf2_file","1160_JCLive_sf2_file","1160_SBLive_sf2","1160_SoundBlasterOld_sf2","1161_FluidR3_GM_sf2_file","1161_GeneralUserGS_sf2_file","1161_SoundBlasterOld_sf2","1162_FluidR3_GM_sf2_file","1162_GeneralUserGS_sf2_file","1163_FluidR3_GM_sf2_file","1170_Aspirin_sf2_file","1170_Chaos_sf2_file","1170_FluidR3_GM_sf2_file","1170_GeneralUserGS_sf2_file","1170_JCLive_sf2_file","1170_SBLive_sf2","1170_SoundBlasterOld_sf2","1171_FluidR3_GM_sf2_file","1171_GeneralUserGS_sf2_file","1172_FluidR3_GM_sf2_file","1173_FluidR3_GM_sf2_file","1180_Aspirin_sf2_file","1180_Chaos_sf2_file","1180_FluidR3_GM_sf2_file","1180_GeneralUserGS_sf2_file","1180_JCLive_sf2_file","1180_SBLive_sf2","1180_SoundBlasterOld_sf2","1181_FluidR3_GM_sf2_file","1181_GeneralUserGS_sf2_file","1181_SoundBlasterOld_sf2","1190_Aspirin_sf2_file","1190_Chaos_sf2_file","1190_FluidR3_GM_sf2_file","1190_GeneralUserGS_sf2_file","1190_JCLive_sf2_file","1190_SBLive_sf2","1190_SoundBlasterOld_sf2","1191_GeneralUserGS_sf2_file","1192_GeneralUserGS_sf2_file","1193_GeneralUserGS_sf2_file","1194_GeneralUserGS_sf2_file","1200_Aspirin_sf2_file","1200_Chaos_sf2_file","1200_FluidR3_GM_sf2_file","1200_GeneralUserGS_sf2_file","1200_JCLive_sf2_file","1200_SBLive_sf2","1200_SoundBlasterOld_sf2","1201_Aspirin_sf2_file","1201_GeneralUserGS_sf2_file","1202_GeneralUserGS_sf2_file","1210_Aspirin_sf2_file","1210_Chaos_sf2_file","1210_FluidR3_GM_sf2_file","1210_GeneralUserGS_sf2_file","1210_JCLive_sf2_file","1210_SBLive_sf2","1210_SoundBlasterOld_sf2","1211_Aspirin_sf2_file","1211_GeneralUserGS_sf2_file","1212_GeneralUserGS_sf2_file","1220_Aspirin_sf2_file","1220_Chaos_sf2_file","1220_FluidR3_GM_sf2_file","1220_GeneralUserGS_sf2_file","1220_JCLive_sf2_file","1220_SBLive_sf2","1220_SoundBlasterOld_sf2","1221_Aspirin_sf2_file","1221_GeneralUserGS_sf2_file","1221_JCLive_sf2_file","1222_Aspirin_sf2_file","1222_GeneralUserGS_sf2_file","1223_Aspirin_sf2_file","1223_GeneralUserGS_sf2_file","1224_Aspirin_sf2_file","1224_GeneralUserGS_sf2_file","1225_GeneralUserGS_sf2_file","1226_GeneralUserGS_sf2_file","1230_Aspirin_sf2_file","1230_Chaos_sf2_file","1230_FluidR3_GM_sf2_file","1230_GeneralUserGS_sf2_file","1230_JCLive_sf2_file","1230_SBLive_sf2","1230_SoundBlasterOld_sf2","1231_Aspirin_sf2_file","1231_GeneralUserGS_sf2_file","1232_Aspirin_sf2_file","1232_GeneralUserGS_sf2_file","1233_GeneralUserGS_sf2_file","1234_GeneralUserGS_sf2_file","1240_Aspirin_sf2_file","1240_Chaos_sf2_file","1240_FluidR3_GM_sf2_file","1240_GeneralUserGS_sf2_file","1240_JCLive_sf2_file","1240_SBLive_sf2","1240_SoundBlasterOld_sf2","1241_Aspirin_sf2_file","1241_GeneralUserGS_sf2_file","1242_Aspirin_sf2_file","1242_GeneralUserGS_sf2_file","1243_Aspirin_sf2_file","1243_GeneralUserGS_sf2_file","1244_Aspirin_sf2_file","1244_GeneralUserGS_sf2_file","1250_Aspirin_sf2_file","1250_Chaos_sf2_file","1250_FluidR3_GM_sf2_file","1250_GeneralUserGS_sf2_file","1250_JCLive_sf2_file","1250_SBLive_sf2","1250_SoundBlasterOld_sf2","1251_Aspirin_sf2_file","1251_FluidR3_GM_sf2_file","1251_GeneralUserGS_sf2_file","1252_Aspirin_sf2_file","1252_FluidR3_GM_sf2_file","1252_GeneralUserGS_sf2_file","1253_Aspirin_sf2_file","1253_GeneralUserGS_sf2_file","1254_Aspirin_sf2_file","1254_GeneralUserGS_sf2_file","1255_Aspirin_sf2_file","1255_GeneralUserGS_sf2_file","1256_Aspirin_sf2_file","1256_GeneralUserGS_sf2_file","1257_Aspirin_sf2_file","1257_GeneralUserGS_sf2_file","1258_Aspirin_sf2_file","1258_GeneralUserGS_sf2_file","1259_GeneralUserGS_sf2_file","1260_Aspirin_sf2_file","1260_Chaos_sf2_file","1260_FluidR3_GM_sf2_file","1260_GeneralUserGS_sf2_file","1260_JCLive_sf2_file","1260_SBLive_sf2","1260_SoundBlasterOld_sf2","1261_Aspirin_sf2_file","1261_GeneralUserGS_sf2_file","1262_Aspirin_sf2_file","1262_GeneralUserGS_sf2_file","1263_Aspirin_sf2_file","1263_GeneralUserGS_sf2_file","1264_Aspirin_sf2_file","1264_GeneralUserGS_sf2_file","1265_Aspirin_sf2_file","1265_GeneralUserGS_sf2_file","1270_Aspirin_sf2_file","1270_Chaos_sf2_file","1270_FluidR3_GM_sf2_file","1270_GeneralUserGS_sf2_file","1270_JCLive_sf2_file","1270_SBLive_sf2","1270_SoundBlasterOld_sf2","1271_Aspirin_sf2_file","1271_GeneralUserGS_sf2_file","1272_Aspirin_sf2_file","1272_GeneralUserGS_sf2_file","1273_GeneralUserGS_sf2_file","1274_GeneralUserGS_sf2_file"],drums=["35_0_Chaos_sf2_file","35_12_JCLive_sf2_file","35_16_JCLive_sf2_file","35_18_JCLive_sf2_file","35_4_Chaos_sf2_file","36_0_SBLive_sf2","36_12_JCLive_sf2_file","36_16_JCLive_sf2_file","36_18_JCLive_sf2_file","36_4_Chaos_sf2_file","37_0_SBLive_sf2","37_12_JCLive_sf2_file","37_16_JCLive_sf2_file","37_18_JCLive_sf2_file","37_4_Chaos_sf2_file","38_0_SBLive_sf2","38_12_JCLive_sf2_file","38_16_JCLive_sf2_file","38_18_JCLive_sf2_file","38_4_Chaos_sf2_file","39_0_SBLive_sf2","39_12_JCLive_sf2_file","39_16_JCLive_sf2_file","39_18_JCLive_sf2_file","39_4_Chaos_sf2_file","40_0_SBLive_sf2","40_12_JCLive_sf2_file","40_16_JCLive_sf2_file","40_18_JCLive_sf2_file","40_4_Chaos_sf2_file","41_0_SBLive_sf2","41_12_JCLive_sf2_file","41_16_JCLive_sf2_file","41_18_JCLive_sf2_file","41_4_Chaos_sf2_file","42_0_SBLive_sf2","42_12_JCLive_sf2_file","42_16_JCLive_sf2_file","42_18_JCLive_sf2_file","42_4_Chaos_sf2_file","43_0_SBLive_sf2","43_12_JCLive_sf2_file","43_16_JCLive_sf2_file","43_18_JCLive_sf2_file","43_4_Chaos_sf2_file","44_0_SBLive_sf2","44_12_JCLive_sf2_file","44_16_JCLive_sf2_file","44_18_JCLive_sf2_file","44_4_Chaos_sf2_file","45_0_SBLive_sf2","45_12_JCLive_sf2_file","45_16_JCLive_sf2_file","45_18_JCLive_sf2_file","45_4_Chaos_sf2_file","46_0_SBLive_sf2","46_12_JCLive_sf2_file","46_16_JCLive_sf2_file","46_18_JCLive_sf2_file","46_4_Chaos_sf2_file","47_0_SBLive_sf2","47_12_JCLive_sf2_file","47_16_JCLive_sf2_file","47_18_JCLive_sf2_file","47_4_Chaos_sf2_file","48_0_SBLive_sf2","48_12_JCLive_sf2_file","48_16_JCLive_sf2_file","48_18_JCLive_sf2_file","48_4_Chaos_sf2_file","49_0_SBLive_sf2","49_12_JCLive_sf2_file","49_16_JCLive_sf2_file","49_18_JCLive_sf2_file","49_4_Chaos_sf2_file","50_0_SBLive_sf2","50_12_JCLive_sf2_file","50_16_JCLive_sf2_file","50_18_JCLive_sf2_file","50_4_Chaos_sf2_file","51_0_SBLive_sf2","51_12_JCLive_sf2_file","51_16_JCLive_sf2_file","51_18_JCLive_sf2_file","51_4_Chaos_sf2_file","52_0_SBLive_sf2","52_12_JCLive_sf2_file","52_16_JCLive_sf2_file","52_18_JCLive_sf2_file","52_4_Chaos_sf2_file","53_0_SBLive_sf2","53_12_JCLive_sf2_file","53_16_JCLive_sf2_file","53_18_JCLive_sf2_file","53_4_Chaos_sf2_file","54_0_SBLive_sf2","54_12_JCLive_sf2_file","54_16_JCLive_sf2_file","54_18_JCLive_sf2_file","54_4_Chaos_sf2_file","55_0_SBLive_sf2","55_12_JCLive_sf2_file","55_16_JCLive_sf2_file","55_18_JCLive_sf2_file","55_4_Chaos_sf2_file","56_0_SBLive_sf2","56_12_JCLive_sf2_file","56_16_JCLive_sf2_file","56_18_JCLive_sf2_file","56_4_Chaos_sf2_file","57_0_SBLive_sf2","57_12_JCLive_sf2_file","57_16_JCLive_sf2_file","57_18_JCLive_sf2_file","57_4_Chaos_sf2_file","58_0_SBLive_sf2","58_12_JCLive_sf2_file","58_16_JCLive_sf2_file","58_18_JCLive_sf2_file","58_4_Chaos_sf2_file","59_0_SBLive_sf2","59_12_JCLive_sf2_file","59_16_JCLive_sf2_file","59_18_JCLive_sf2_file","59_4_Chaos_sf2_file","60_0_SBLive_sf2","60_12_JCLive_sf2_file","60_16_JCLive_sf2_file","60_18_JCLive_sf2_file","60_4_Chaos_sf2_file","61_0_SBLive_sf2","61_12_JCLive_sf2_file","61_16_JCLive_sf2_file","61_18_JCLive_sf2_file","61_4_Chaos_sf2_file","62_0_SBLive_sf2","62_12_JCLive_sf2_file","62_16_JCLive_sf2_file","62_18_JCLive_sf2_file","62_4_Chaos_sf2_file","63_0_SBLive_sf2","63_12_JCLive_sf2_file","63_16_JCLive_sf2_file","63_18_JCLive_sf2_file","63_4_Chaos_sf2_file","64_0_SBLive_sf2","64_12_JCLive_sf2_file","64_16_JCLive_sf2_file","64_18_JCLive_sf2_file","64_4_Chaos_sf2_file","65_0_SBLive_sf2","65_12_JCLive_sf2_file","65_16_JCLive_sf2_file","65_18_JCLive_sf2_file","65_4_Chaos_sf2_file","66_0_SBLive_sf2","66_12_JCLive_sf2_file","66_16_JCLive_sf2_file","66_18_JCLive_sf2_file","66_4_Chaos_sf2_file","67_0_SBLive_sf2","67_12_JCLive_sf2_file","67_16_JCLive_sf2_file","67_18_JCLive_sf2_file","67_4_Chaos_sf2_file","68_0_SBLive_sf2","68_12_JCLive_sf2_file","68_16_JCLive_sf2_file","68_18_JCLive_sf2_file","68_4_Chaos_sf2_file","69_0_SBLive_sf2","69_12_JCLive_sf2_file","69_16_JCLive_sf2_file","69_18_JCLive_sf2_file","69_4_Chaos_sf2_file","70_0_SBLive_sf2","70_12_JCLive_sf2_file","70_16_JCLive_sf2_file","70_18_JCLive_sf2_file","70_4_Chaos_sf2_file","71_0_SBLive_sf2","71_12_JCLive_sf2_file","71_16_JCLive_sf2_file","71_18_JCLive_sf2_file","71_4_Chaos_sf2_file","72_0_SBLive_sf2","72_12_JCLive_sf2_file","72_16_JCLive_sf2_file","72_18_JCLive_sf2_file","72_4_Chaos_sf2_file","73_0_SBLive_sf2","73_12_JCLive_sf2_file","73_16_JCLive_sf2_file","73_18_JCLive_sf2_file","73_4_Chaos_sf2_file","74_0_SBLive_sf2","74_12_JCLive_sf2_file","74_16_JCLive_sf2_file","74_18_JCLive_sf2_file","74_4_Chaos_sf2_file","75_0_SBLive_sf2","75_12_JCLive_sf2_file","75_16_JCLive_sf2_file","75_18_JCLive_sf2_file","75_4_Chaos_sf2_file","76_0_SBLive_sf2","76_12_JCLive_sf2_file","76_16_JCLive_sf2_file","76_18_JCLive_sf2_file","76_4_Chaos_sf2_file","77_0_SBLive_sf2","77_12_JCLive_sf2_file","77_16_JCLive_sf2_file","77_18_JCLive_sf2_file","77_4_Chaos_sf2_file","78_0_SBLive_sf2","78_12_JCLive_sf2_file","78_16_JCLive_sf2_file","78_18_JCLive_sf2_file","78_4_Chaos_sf2_file","79_0_SBLive_sf2","79_12_JCLive_sf2_file","79_16_JCLive_sf2_file","79_18_JCLive_sf2_file","79_4_Chaos_sf2_file","80_0_SBLive_sf2","80_12_JCLive_sf2_file","80_16_JCLive_sf2_file","80_18_JCLive_sf2_file","80_4_Chaos_sf2_file","81_0_SBLive_sf2","81_12_JCLive_sf2_file","81_16_JCLive_sf2_file","81_18_JCLive_sf2_file","81_4_Chaos_sf2_file"],instrumentNames=[];instrumentNames[0]="Acoustic Grand Piano: Piano";instrumentNames[1]="Bright Acoustic Piano: Piano";instrumentNames[2]="Electric Grand Piano: Piano";instrumentNames[3]="Honky-tonk Piano: Piano";instrumentNames[4]="Electric Piano 1: Piano";instrumentNames[5]="Electric Piano 2: Piano";instrumentNames[6]="Harpsichord: Piano";instrumentNames[7]="Clavinet: Piano";instrumentNames[8]="Celesta: Chromatic Percussion";instrumentNames[9]="Glockenspiel: Chromatic Percussion";instrumentNames[10]="Music Box: Chromatic Percussion";instrumentNames[11]="Vibraphone: Chromatic Percussion";instrumentNames[12]="Marimba: Chromatic Percussion";instrumentNames[13]="Xylophone: Chromatic Percussion";instrumentNames[14]="Tubular Bells: Chromatic Percussion";instrumentNames[15]="Dulcimer: Chromatic Percussion";instrumentNames[16]="Drawbar Organ: Organ";instrumentNames[17]="Percussive Organ: Organ";instrumentNames[18]="Rock Organ: Organ";instrumentNames[19]="Church Organ: Organ";instrumentNames[20]="Reed Organ: Organ";instrumentNames[21]="Accordion: Organ";instrumentNames[22]="Harmonica: Organ";instrumentNames[23]="Tango Accordion: Organ";instrumentNames[24]="Acoustic Guitar (nylon): Guitar";instrumentNames[25]="Acoustic Guitar (steel): Guitar";instrumentNames[26]="Electric Guitar (jazz): Guitar";instrumentNames[27]="Electric Guitar (clean): Guitar";instrumentNames[28]="Electric Guitar (muted): Guitar";instrumentNames[29]="Overdriven Guitar: Guitar";instrumentNames[30]="Distortion Guitar: Guitar";instrumentNames[31]="Guitar Harmonics: Guitar";instrumentNames[32]="Acoustic Bass: Bass";instrumentNames[33]="Electric Bass (finger): Bass";instrumentNames[34]="Electric Bass (pick): Bass";instrumentNames[35]="Fretless Bass: Bass";instrumentNames[36]="Slap Bass 1: Bass";instrumentNames[37]="Slap Bass 2: Bass";instrumentNames[38]="Synth Bass 1: Bass";instrumentNames[39]="Synth Bass 2: Bass";instrumentNames[40]="Violin: Strings";instrumentNames[41]="Viola: Strings";instrumentNames[42]="Cello: Strings";instrumentNames[43]="Contrabass: Strings";instrumentNames[44]="Tremolo Strings: Strings";instrumentNames[45]="Pizzicato Strings: Strings";instrumentNames[46]="Orchestral Harp: Strings";instrumentNames[47]="Timpani: Strings";instrumentNames[48]="String Ensemble 1: Ensemble";instrumentNames[49]="String Ensemble 2: Ensemble";instrumentNames[50]="Synth Strings 1: Ensemble";instrumentNames[51]="Synth Strings 2: Ensemble";instrumentNames[52]="Choir Aahs: Ensemble";instrumentNames[53]="Voice Oohs: Ensemble";instrumentNames[54]="Synth Choir: Ensemble";instrumentNames[55]="Orchestra Hit: Ensemble";instrumentNames[56]="Trumpet: Brass";instrumentNames[57]="Trombone: Brass";instrumentNames[58]="Tuba: Brass";instrumentNames[59]="Muted Trumpet: Brass";instrumentNames[60]="French Horn: Brass";instrumentNames[61]="Brass Section: Brass";instrumentNames[62]="Synth Brass 1: Brass";instrumentNames[63]="Synth Brass 2: Brass";instrumentNames[64]="Soprano Sax: Reed";instrumentNames[65]="Alto Sax: Reed";instrumentNames[66]="Tenor Sax: Reed";instrumentNames[67]="Baritone Sax: Reed";instrumentNames[68]="Oboe: Reed";instrumentNames[69]="English Horn: Reed";instrumentNames[70]="Bassoon: Reed";instrumentNames[71]="Clarinet: Reed";instrumentNames[72]="Piccolo: Pipe";instrumentNames[73]="Flute: Pipe";instrumentNames[74]="Recorder: Pipe";instrumentNames[75]="Pan Flute: Pipe";instrumentNames[76]="Blown bottle: Pipe";instrumentNames[77]="Shakuhachi: Pipe";instrumentNames[78]="Whistle: Pipe";instrumentNames[79]="Ocarina: Pipe";instrumentNames[80]="Lead 1 (square): Synth Lead";instrumentNames[81]="Lead 2 (sawtooth): Synth Lead";instrumentNames[82]="Lead 3 (calliope): Synth Lead";instrumentNames[83]="Lead 4 (chiff): Synth Lead";instrumentNames[84]="Lead 5 (charang): Synth Lead";instrumentNames[85]="Lead 6 (voice): Synth Lead";instrumentNames[86]="Lead 7 (fifths): Synth Lead";instrumentNames[87]="Lead 8 (bass + lead): Synth Lead";instrumentNames[88]="Pad 1 (new age): Synth Pad";instrumentNames[89]="Pad 2 (warm): Synth Pad";instrumentNames[90]="Pad 3 (polysynth): Synth Pad";instrumentNames[91]="Pad 4 (choir): Synth Pad";instrumentNames[92]="Pad 5 (bowed): Synth Pad";instrumentNames[93]="Pad 6 (metallic): Synth Pad";instrumentNames[94]="Pad 7 (halo): Synth Pad";instrumentNames[95]="Pad 8 (sweep): Synth Pad";instrumentNames[96]="FX 1 (rain): Synth Effects";instrumentNames[97]="FX 2 (soundtrack): Synth Effects";instrumentNames[98]="FX 3 (crystal): Synth Effects";instrumentNames[99]="FX 4 (atmosphere): Synth Effects";instrumentNames[100]="FX 5 (brightness): Synth Effects";instrumentNames[101]="FX 6 (goblins): Synth Effects";instrumentNames[102]="FX 7 (echoes): Synth Effects";instrumentNames[103]="FX 8 (sci-fi): Synth Effects";instrumentNames[104]="Sitar: Ethnic";instrumentNames[105]="Banjo: Ethnic";instrumentNames[106]="Shamisen: Ethnic";instrumentNames[107]="Koto: Ethnic";instrumentNames[108]="Kalimba: Ethnic";instrumentNames[109]="Bagpipe: Ethnic";instrumentNames[110]="Fiddle: Ethnic";instrumentNames[111]="Shanai: Ethnic";instrumentNames[112]="Tinkle Bell: Percussive";instrumentNames[113]="Agogo: Percussive";instrumentNames[114]="Steel Drums: Percussive";instrumentNames[115]="Woodblock: Percussive";instrumentNames[116]="Taiko Drum: Percussive";instrumentNames[117]="Melodic Tom: Percussive";instrumentNames[118]="Synth Drum: Percussive";instrumentNames[119]="Reverse Cymbal: Percussive";instrumentNames[120]="Guitar Fret Noise: Sound effects";instrumentNames[121]="Breath Noise: Sound effects";instrumentNames[122]="Seashore: Sound effects";instrumentNames[123]="Bird Tweet: Sound effects";instrumentNames[124]="Telephone Ring: Sound effects";instrumentNames[125]="Helicopter: Sound effects";instrumentNames[126]="Applause: Sound effects";instrumentNames[127]="Gunshot: Sound effects";var soundfontList=Object.freeze(Object.defineProperty({__proto__:null,instruments,drums,instrumentNames},Symbol.toStringTag,{value:"Module"}));globalThis.getFontBufferSource=getFontBufferSource;globalThis.soundfontList=soundfontList;globalThis.soundfontList=soundfontList; diff --git a/assets/index.e22f1e0a.js b/assets/index.e22f1e0a.js deleted file mode 100644 index 48e86c1aa..000000000 --- a/assets/index.e22f1e0a.js +++ /dev/null @@ -1 +0,0 @@ -var h=Object.defineProperty;var p=(e,t,s)=>t in e?h(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var l=(e,t,s)=>(p(e,typeof t!="symbol"?t+"":t,s),s);import{S as f,I as u}from"./index.4c53df7b.js";import{J as v,K as L,M,R as T,L as B,N as I,Q as y,O as R}from"./index.4c53df7b.js";const d=e=>"("+e+")();",g=e=>URL.createObjectURL(new Blob([d(e)],{type:"text/javascript"})),w=e=>new Worker(g(e));class k{constructor(t,s,i=this.interval){l(this,"worker");l(this,"audioContext");l(this,"interval",.2);l(this,"lastEnd",0);this.audioContext=t,this.interval=i,this.worker=w(()=>{let o,a=null;const n=()=>{a&&(clearInterval(a),a=null)},r=()=>{if(n(),!o)throw new Error("no interval set! call worker.postMessage({interval}) before starting.");a=setInterval(()=>postMessage("tick"),o*1e3)};self.onmessage=function(c){c.data=="start"?r():c.data.interval?(o=c.data.interval,a&&r()):c.data=="stop"&&n()}}),this.worker.postMessage({interval:i}),this.worker.onmessage=o=>{if(o.data==="tick"){const a=this.lastEnd||this.audioContext.currentTime,n=this.audioContext.currentTime+this.interval;this.lastEnd=n,s(a,n)}}}start(){console.log("start..."),this.audioContext.resume(),this.worker.postMessage("start")}stop(){console.log("stop..."),this.worker.postMessage("stop")}}class b{constructor({audioContext:t,interval:s=.2,onEvent:i,latency:o=.2}){l(this,"worker");l(this,"pattern");this.worker=new k(t,(a,n)=>{this.pattern.query(new f(new u(a+o,n+o))).forEach(r=>{!r.part.begin.equals(r.whole.begin)||(r.context.onTrigger&&r.context.onTrigger(r.whole.begin,r,t.currentTime,1),i&&(i==null||i(r)))})},s)}start(){if(!this.pattern)throw new Error("Scheduler: no pattern set! call .setPattern first.");this.worker.start()}stop(){this.worker.stop()}setPattern(t){this.pattern=t}}export{k as ClockWorker,b as Scheduler,v as getAudioContext,L as getCachedBuffer,M as getLoadedBuffer,T as getLoadedSamples,B as loadBuffer,I as loadGithubSamples,y as resetLoadedSamples,R as samples}; diff --git a/assets/index.ea54525d.css b/assets/index.ea54525d.css new file mode 100644 index 000000000..5deb31924 --- /dev/null +++ b/assets/index.ea54525d.css @@ -0,0 +1 @@ +.cm-editor{background-color:transparent!important;height:100%;z-index:11;font-size:16px}.cm-theme-light{width:100%}.cm-line>*{background:#00000095}*,:before,:after{--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.sc-h-5{height:1.25rem}.sc-w-5{width:1.25rem}@-webkit-keyframes sc-pulse{50%{opacity:.5}}@keyframes sc-pulse{50%{opacity:.5}}.sc-animate-pulse{-webkit-animation:sc-pulse 2s cubic-bezier(.4,0,.6,1) infinite;animation:sc-pulse 2s cubic-bezier(.4,0,.6,1) infinite}._container_3i85k_1{overflow:hidden;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(34 34 34 / var(--tw-bg-opacity))}._header_3i85k_5{display:flex;justify-content:space-between;border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}._buttons_3i85k_9{display:flex}._button_3i85k_9{display:flex;width:4rem;cursor:pointer;align-items:center;justify-content:center;border-right-width:1px;--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity));padding:.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._button_3i85k_9:hover{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity))}._buttonDisabled_3i85k_17{display:flex;width:4rem;cursor:pointer;cursor:not-allowed;align-items:center;justify-content:center;--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity));padding:.25rem;--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}._error_3i85k_21{padding:.25rem;text-align:right;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity))}._body_3i85k_25{position:relative;overflow:auto}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.pointer-events-none{pointer-events:none}.static{position:static}.fixed{position:fixed}.relative{position:relative}.bottom-0{bottom:0px}.right-1{right:.25rem}.left-2{left:.5rem}.bottom-1{bottom:.25rem}.right-4{right:1rem}.bottom-2{bottom:.5rem}.z-\[10\]{z-index:10}.z-\[20\]{z-index:20}.z-\[11\]{z-index:11}.flex{display:flex}.h-8{height:2rem}.h-14{height:3.5rem}.h-6{height:1.5rem}.h-10{height:2.5rem}.h-5{height:1.25rem}.h-16{height:4rem}.min-h-screen{min-height:100vh}.w-full{width:100%}.w-6{width:1.5rem}.w-10{width:2.5rem}.w-16{width:4rem}.w-5{width:1.25rem}.flex-none{flex:none}.grow{flex-grow:1}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize-none{resize:none}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.overflow-auto{overflow:auto}.whitespace-pre{white-space:pre}.rounded-md{border-radius:.375rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105 / var(--tw-border-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-\[transparent\]{background-color:transparent}.p-2{padding:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.pb-8{padding-bottom:2rem}.text-right{text-align:right}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity))}body{background-color:#222}.darken:before{content:" ";position:fixed;top:0;left:0;width:100vw;height:100vh;display:block;background:black;opacity:.5}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace} diff --git a/assets/index.fbfd1db4.js b/assets/index.fbfd1db4.js new file mode 100644 index 000000000..29991b902 --- /dev/null +++ b/assets/index.fbfd1db4.js @@ -0,0 +1 @@ +import{U as a}from"./index.29de87b8.js";export{a as loadWebDirt}; diff --git a/assets/osc.a89113a6.js b/assets/osc.6137292f.js similarity index 99% rename from assets/osc.a89113a6.js rename to assets/osc.6137292f.js index 5dcd75a2d..e8da6ad81 100644 --- a/assets/osc.a89113a6.js +++ b/assets/osc.6137292f.js @@ -1 +1 @@ -var ot=Object.defineProperty,st=Object.defineProperties;var it=Object.getOwnPropertyDescriptors;var ke=Object.getOwnPropertySymbols;var at=Object.prototype.hasOwnProperty,ut=Object.prototype.propertyIsEnumerable;var be=(g,d,p)=>d in g?ot(g,d,{enumerable:!0,configurable:!0,writable:!0,value:p}):g[d]=p,Se=(g,d)=>{for(var p in d||(d={}))at.call(d,p)&&be(g,p,d[p]);if(ke)for(var p of ke(d))ut.call(d,p)&&be(g,p,d[p]);return g},Oe=(g,d)=>st(g,it(d));import{B as H,P as ct}from"./index.4c53df7b.js";var Ee={exports:{}};(function(g,d){(function(p,u){g.exports=u()})(H,function(){function p(r,e){var n=Object.keys(r);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(r);e&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(r,o).enumerable})),n.push.apply(n,t)}return n}function u(r){for(var e=1;e1&&e[e.length-1]==="/"&&(e=e.slice(0,e.length-1)),e.length>1&&e[0]!=="/"&&(e="/".concat(e)),e;throw new Error("OSC prepareAddress() needs addresses of type array or string")}function ae(r){if(!v(r))throw new Error("OSC prepareRegExPattern() needs strings");return r.replace(/\./g,"\\.").replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/\{/g,"(").replace(/\}/g,")").replace(/,/g,"|").replace(/\[!/g,"[^").replace(/\?/g,".").replace(/\*/g,".*")}var ue=function(){function r(){f(this,r),this.data=[],this.byteLength=0}return l(r,[{key:"add",value:function(e){if(te(e)||ne(e)||oe(e))return this;var n=e.pack();return this.byteLength+=n.byteLength,this.data.push(n),this}},{key:"merge",value:function(){var e=new Uint8Array(this.byteLength),n=0;return this.data.forEach(function(t){e.set(t,n),n+=t.byteLength}),e}}]),r}(),C=function(){function r(e){f(this,r),this.value=e,this.offset=0}return l(r,[{key:"pack",value:function(e,n){if(!e||!n)throw new Error("OSC Atomic cant't be packed without given method or byteLength");var t=new Uint8Array(n),o=new DataView(t.buffer);if(A(this.value))throw new Error("OSC Atomic cant't be encoded with empty value");return o[e](this.offset,this.value,!1),t}},{key:"unpack",value:function(e,n,t){var o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(!(e&&n&&t))throw new Error("OSC Atomic cant't be unpacked without given dataView, method or byteLength");if(!(e instanceof DataView))throw new Error("OSC Atomic expects an instance of type DataView");return this.value=e[n](o,!1),this.offset=o+t,this.offset}}]),r}(),U=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!b(t))throw new Error("OSC AtomicInt32 constructor expects value of type number");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setInt32",4)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getInt32",4,o)}}]),n}(C),ce="utf-8";function De(r){if(se("Buffer"))return Buffer.from(r).toString(ce);if(se("TextDecoder"))return new TextDecoder(ce).decode(new Int8Array(r));for(var e="",n=0;n1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicString expects an instance of type DataView");for(var i,s=o,a=[];s0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(f(this,r),!b(e)||!b(n))throw new Error("OSC Timetag constructor expects values of type integer number");this.seconds=e,this.fractions=n}return l(r,[{key:"timestamp",value:function(e){var n;if(typeof e=="number"){n=e/1e3;var t=Math.floor(n);return this.seconds=t+fe,this.fractions=Math.round(le*(n-t)),e}return 1e3*((n=this.seconds-fe)+Math.round(this.fractions/le))}}]),r}(),B=function(r){k(n,r);var e=y(n);function n(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Date.now();f(this,n);var o=new G;return t instanceof G?o=t:b(t)?o.timestamp(t):Ae(t)&&o.timestamp(t.getTime()),e.call(this,o)}return l(n,[{key:"pack",value:function(){if(A(this.value))throw new Error("OSC AtomicTimetag can not be encoded with empty value");var t=this.value,o=t.seconds,i=t.fractions,s=new Uint8Array(8),a=new DataView(s.buffer);return a.setInt32(0,o,!1),a.setInt32(4,i,!1),s}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicTimetag expects an instance of type DataView");var i=t.getUint32(o,!1),s=t.getUint32(o+4,!1);return this.value=new G(i,s),this.offset=o+8,this.offset}}]),n}(C),he=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!re(t))throw new Error("OSC AtomicBlob constructor expects value of type Uint8Array");return e.call(this,t)}return l(n,[{key:"pack",value:function(){if(A(this.value))throw new Error("OSC AtomicBlob can not be encoded with empty value");var t=V(this.value.byteLength),o=new Uint8Array(t+4);return new DataView(o.buffer).setInt32(0,this.value.byteLength,!1),o.set(this.value,4),o}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicBlob expects an instance of type DataView");var i=t.getInt32(o,!1);return this.value=new Uint8Array(t.buffer,o+4,i),this.offset=V(o+4+i),this.offset}}]),n}(C),pe=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!ee(t))throw new Error("OSC AtomicFloat32 constructor expects value of type float");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setFloat32",4)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getFloat32",4,o)}}]),n}(C),de=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!ee(t))throw new Error("OSC AtomicFloat64 constructor expects value of type float");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setFloat64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getFloat64",8,o)}}]),n}(C),je=BigInt("9223372036854775807"),xe=BigInt("-9223372036854775808"),ge=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&typeof t!="bigint")throw new Error("OSC AtomicInt64 constructor expects value of type BigInt");if(t&&(tje))throw new Error("OSC AtomicInt64 value is out of bounds");var o;return t&&(o=BigInt.asIntN(64,t)),e.call(this,o)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setBigInt64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getBigInt64",8,o)}}]),n}(C),Be=BigInt("18446744073709551615"),ve=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&typeof t!="bigint")throw new Error("OSC AtomicUInt64 constructor expects value of type BigInt");if(t&&(t<0||t>Be))throw new Error("OSC AtomicUInt64 value is out of bounds");var o;return t&&(o=BigInt.asUintN(64,t)),e.call(this,o)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setBigUint64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getBigUint64",8,o)}}]),n}(C),Z=!0,q=!1,J=null,K=1/0,Q=function(){function r(e,n){var t=this;if(f(this,r),this.offset=0,this.address="",this.types="",this.args=[],!A(e)){if(!v(e)&&!D(e))throw new Error("OSC Message constructor first argument (address) must be a string or array");this.address=L(e)}if(!A(n)){if(!D(n))throw new Error("OSC Message constructor second argument (args) must be an array");n.forEach(function(o){return t.add(o.type,o.value)})}}return l(r,[{key:"add",value:function(e,n){if(A(e))throw new Error("OSC Message needs a valid OSC Atomic Data Type");e==="N"?this.args.push(J):e==="T"?this.args.push(Z):e==="F"?this.args.push(q):e==="I"?this.args.push(K):this.args.push(n),this.types+=e}},{key:"pack",value:function(){var e=this;if(this.address.length===0||this.address[0]!=="/")throw new Error("OSC Message has an invalid address");var n=new ue;if(n.add(new S(this.address)),n.add(new S(",".concat(this.types))),this.args.length>0){var t;if(this.args.length>this.types.length)throw new Error("OSC Message argument and type tag mismatch");this.args.forEach(function(o,i){var s=e.types[i];if(s==="i")t=new U(o);else if(s==="h")t=new ge(o);else if(s==="t")t=new ve(o);else if(s==="f")t=new pe(o);else if(s==="d")t=new de(o);else if(s==="s")t=new S(o);else if(s==="b")t=new he(o);else if(s==="T")t=Z;else if(s==="F")t=q;else if(s==="N")t=J;else{if(s!=="I")throw new Error("OSC Message found unknown argument type");t=K}n.add(t)})}return n.merge()}},{key:"unpack",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Message expects an instance of type DataView.");var t=new S;t.unpack(e,n);var o=new S;if(o.unpack(e,t.offset),t.value.length===0||t.value[0]!=="/")throw new Error("OSC Message found malformed or missing address string");if(o.value.length===0&&o.value[0]!==",")throw new Error("OSC Message found malformed or missing type string");for(var i,s,a=o.offset,c=[],w=1;w0&&(o=a.shift()),a.length>0&&a[0]instanceof Array&&(i=a.shift()),t=e.call(this,o,i),a.length>0&&(t.types=a.map(function(w){return ie(w)}).join(""),t.args=a),t}return l(n,[{key:"add",value:function(t){m(h(n.prototype),"add",this).call(this,ie(t),t)}}]),n}(Q),_="#bundle",I=function(){function r(){var e=this;f(this,r),this.offset=0,this.timetag=new B,this.bundleElements=[];for(var n=arguments.length,t=new Array(n),o=0;o0&&(t[0]instanceof Date||b(t[0])?this.timetag=new B(t[0]):D(t[0])?(t[0].forEach(function(i){e.add(i)}),t.length>1&&(t[1]instanceof Date||b(t[1]))&&(this.timetag=new B(t[1]))):t.forEach(function(i){e.add(i)}))}return l(r,[{key:"timestamp",value:function(e){if(!b(e))throw new Error("OSC Bundle needs an integer for setting the timestamp");this.timetag=new B(e)}},{key:"add",value:function(e){if(!(e instanceof E||e instanceof r))throw new Error("OSC Bundle contains only Messages and Bundles");this.bundleElements.push(e)}},{key:"pack",value:function(){var e=new ue;return e.add(new S(_)),this.timetag||(this.timetag=new B),e.add(this.timetag),this.bundleElements.forEach(function(n){e.add(new U(n.pack().byteLength)),e.add(n)}),e.merge()}},{key:"unpack",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Bundle expects an instance of type DataView");var t=new S;if(t.unpack(e,n),t.value!==_)throw new Error("OSC Bundle does not contain a valid #bundle head");var o=new B,i=o.unpack(e,t.offset);for(this.bundleElements=[];i1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Packet expects an instance of type DataView");if(e.byteLength%4!=0)throw new Error("OSC Packet byteLength has to be a multiple of four");var t,o=new S;return o.unpack(e,n),(t=o.value===_?new I:new E).unpack(e,n),this.offset=t.offset,this.value=t,this.offset}}]),r}(),Me={discardLateMessages:!1},He=function(){function r(e){f(this,r),this.options=u(u({},Me),e),this.addressHandlers=[],this.eventHandlers={open:[],error:[],close:[]},this.uuid=0}return l(r,[{key:"dispatch",value:function(e,n){var t=this;if(!(e instanceof M))throw new Error("OSC EventHander dispatch() accepts only arguments of type Packet");if(!e.value)throw new Error("OSC EventHander dispatch() can't read empty Packets");if(e.value instanceof I){var o=e.value;return o.bundleElements.forEach(function(s){if(s instanceof I){if(o.timetag.value.timestamp()1&&(s=n[1]);var a=null;if(n.length>2)if(b(n[2]))a=n[2];else{if(!(n[2]instanceof Date))throw new Error("OSC EventHandler timestamp has to be a number or Date");a=n[2].getTime()}var c=null;if(n.length>=3&&(c=n[3]),a){var w=Date.now();if(w>a&&!this.options.discardLateMessages)return this.call(i,s,c);var P=this;return setTimeout(function(){P.call(i,s,c)},a-w),!0}return this.call(i,s,c)}},{key:"on",value:function(e,n){if(!v(e)&&!D(e))throw new Error("OSC EventHandler accepts only strings or arrays for address patterns");if(!j(n))throw new Error("OSC EventHandler callback has to be a function");this.uuid+=1;var t={id:this.uuid,callback:n};if(v(e)&&e in this.eventHandlers)return this.eventHandlers[e].push(t),this.uuid;var o=L(e);return o in this.addressHandlers||(this.addressHandlers[o]=[]),this.addressHandlers[o].push(t),this.uuid}},{key:"off",value:function(e,n){if(!v(e)&&!D(e))throw new Error("OSC EventHandler accepts only strings or arrays for address patterns");if(!b(n))throw new Error("OSC EventHandler subscription id has to be a number");var t,o;return v(e)&&e in this.eventHandlers?(t=e,o=this.eventHandlers):(t=L(e),o=this.addressHandlers),t in o&&o[t].some(function(i,s){return i.id===n&&(o[t].splice(s,1),!0)})}}]),r}(),Te=0,Le=1,Ne=2,Ve=3,Ue=function(){function r(){throw f(this,r),new Error("DatagramPlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options.open),n),o=t.port,i=t.exclusive;this.socketStatus=Te,this.socket.bind({address:t.host,port:o,exclusive:i},function(){e.socketStatus=Le,e.notify("open")})}},{key:"close",value:function(){var e=this;this.socketStatus=Ne,this.socket.close(function(){e.socketStatus=Ve,e.notify("close")})}},{key:"send",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=u(u({},this.options.send),n),o=t.port,i=t.host;this.socket.send(Buffer.from(e),0,e.byteLength,o,i)}}]),r}();typeof WebSocket!="undefined"?x=WebSocket:typeof MozWebSocket!="undefined"?x=MozWebSocket:typeof H!="undefined"?x=H.WebSocket||H.MozWebSocket:typeof window!="undefined"?x=window.WebSocket||window.MozWebSocket:typeof self!="undefined"&&(x=self.WebSocket||self.MozWebSocket);var X=void 0,we=x,_e=0,We=1,Re=2,Fe=3,W={udpServer:{host:"localhost",port:41234,exclusive:!1},udpClient:{host:"localhost",port:41235},wsServer:{host:"localhost",port:8080},receiver:"ws"};function ye(r,e){return u(u(u(u({},W),r),e),{},{udpServer:u(u(u({},W.udpServer),r.udpServer),e.udpServer),udpClient:u(u(u({},W.udpClient),r.udpClient),e.udpClient),wsServer:u(u(u({},W.wsServer),r.wsServer),e.wsServer)})}var ze=function(){function r(){throw f(this,r),new Error("BridgePlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=ye(this.options,n);this.socketStatus=_e,this.socket.bind({address:t.udpServer.host,port:t.udpServer.port,exclusive:t.udpServer.exclusive},function(){var o={};t.wsServer.server?o.server=t.wsServer.server:o=t.wsServer,e.websocket=new X(o),e.websocket.binaryType="arraybuffer",e.websocket.on("listening",function(){e.socketStatus=We,e.notify("open")}),e.websocket.on("error",function(i){e.notify("error",i)}),e.websocket.on("connection",function(i){i.on("message",function(s,a){e.send(s,{receiver:"udp"}),e.notify(new Uint8Array(s),a)})})})}},{key:"close",value:function(){var e=this;this.socketStatus=Re,this.socket.close(function(){e.websocket.close(function(){e.socketStatus=Fe,e.notify("close")})})}},{key:"send",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=ye(this.options,n),o=t.receiver;if(o==="udp"){var i=e instanceof Buffer?e:Buffer.from(e);this.socket.send(i,0,i.byteLength,t.udpClient.port,t.udpClient.host)}else{if(o!=="ws")throw new Error("BridgePlugin can not send message to unknown receiver");this.websocket.clients.forEach(function(s){s.send(e,{binary:!0})})}}}]),r}(),Ge=-1,Ze=0,qe=1,Je=2,Ke=3,Qe={host:"localhost",port:8080,secure:!1,protocol:[]},me=function(){function r(e){if(f(this,r),!we)throw new Error("WebsocketClientPlugin can't find a WebSocket class");this.options=u(u({},Qe),e),this.socket=null,this.socketStatus=Ge,this.notify=function(){}}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options),n),o=t.port,i=t.host,s=t.secure,a=t.protocol;this.socket&&this.close();var c=s?"wss":"ws",w={address:i,family:c,port:o,size:0};this.socket=new we("".concat(c,"://").concat(i,":").concat(o),a),this.socket.binaryType="arraybuffer",this.socketStatus=Ze,this.socket.onopen=function(){e.socketStatus=qe,e.notify("open")},this.socket.onclose=function(){e.socketStatus=Ke,e.notify("close")},this.socket.onerror=function(P){e.notify("error",P)},this.socket.onmessage=function(P){e.notify(P.data,w)}}},{key:"close",value:function(){this.socketStatus=Je,this.socket.close()}},{key:"send",value:function(e){this.socket.send(e)}}]),r}(),Xe=0,Ye=1,$e=2,et=3,tt=function(){function r(e){throw f(this,r),new Error("WebsocketServerPlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options),n),o=t.port,i=t.host,s={address:i,family:"wsserver",port:o,size:0};this.socket&&this.close(),t.server?this.socket=new X({server:t.server}):this.socket=new X({host:i,port:o}),this.socket.binaryType="arraybuffer",this.socketStatus=Xe,this.socket.on("listening",function(){e.socketStatus=Ye,e.notify("open")}),this.socket.on("error",function(a){e.notify("error",a)}),this.socket.on("connection",function(a){a.on("message",function(c){e.notify(new Uint8Array(c),s)})})}},{key:"close",value:function(){var e=this;this.socketStatus=$e,this.socket.close(function(){e.socketStatus=et,e.notify("close")})}},{key:"send",value:function(e){this.socket.clients.forEach(function(n){n.send(e,{binary:!0})})}}]),r}(),nt={discardLateMessages:!1,plugin:new me},O=function(){function r(e){if(f(this,r),e&&!z(e))throw new Error("OSC options argument has to be an object.");this.options=u(u({},nt),e),this.eventHandler=new He({discardLateMessages:this.options.discardLateMessages});var n=this.eventHandler;this.options.plugin&&this.options.plugin.registerNotify&&this.options.plugin.registerNotify(function(){return n.notify.apply(n,arguments)})}return l(r,[{key:"on",value:function(e,n){if(!v(e)||!j(n))throw new Error("OSC on() needs event- or address string and callback function");return this.eventHandler.on(e,n)}},{key:"off",value:function(e,n){if(!v(e)||!b(n))throw new Error("OSC off() needs string and number (subscriptionId) to unsubscribe");return this.eventHandler.off(e,n)}},{key:"open",value:function(e){if(e&&!z(e))throw new Error("OSC open() options argument needs to be an object");if(!this.options.plugin||!j(this.options.plugin.open))throw new Error("OSC Plugin API #open is not implemented!");return this.options.plugin.open(e)}},{key:"status",value:function(){if(!this.options.plugin||!j(this.options.plugin.status))throw new Error("OSC Plugin API #status is not implemented!");return this.options.plugin.status()}},{key:"close",value:function(){if(!this.options.plugin||!j(this.options.plugin.close))throw new Error("OSC Plugin API #close is not implemented!");return this.options.plugin.close()}},{key:"send",value:function(e,n){if(!this.options.plugin||!j(this.options.plugin.send))throw new Error("OSC Plugin API #send is not implemented!");if(!(e instanceof Q||e instanceof E||e instanceof I||e instanceof M))throw new Error("OSC send() needs Messages, Bundles or Packets");if(n&&!z(n))throw new Error("OSC send() options argument has to be an object");return this.options.plugin.send(e.pack(),n)}}]),r}();return O.STATUS={IS_NOT_INITIALIZED:-1,IS_CONNECTING:0,IS_OPEN:1,IS_CLOSING:2,IS_CLOSED:3},O.Packet=M,O.Bundle=I,O.Message=E,O.TypedMessage=Q,O.DatagramPlugin=Ue,O.WebsocketClientPlugin=me,O.WebsocketServerPlugin=tt,O.BridgePlugin=ze,O})})(Ee);var $=Ee.exports;const Ce=new $;Ce.open();const ft=.1;let Y=-1;ct.prototype.osc=function(){return this._withHap(g=>{const d=(p,u,f,N)=>{const l=u.wholeOrPart().begin.valueOf(),R=u.duration.valueOf();Y<0&&(Y=Date.now()-f*1e3);const k=Object.assign({},{cps:N,cycle:l,delta:R},u.value),h=Object.entries(k).flat(),T=Math.floor(Y+(p+ft)*1e3),F=new $.Message("/dirt/play",...h),y=new $.Bundle([F],T);y.timestamp(T),Ce.send(y)};return g.setContext(Oe(Se({},g.context),{onTrigger:d}))})}; +var ot=Object.defineProperty,st=Object.defineProperties;var it=Object.getOwnPropertyDescriptors;var ke=Object.getOwnPropertySymbols;var at=Object.prototype.hasOwnProperty,ut=Object.prototype.propertyIsEnumerable;var be=(g,d,p)=>d in g?ot(g,d,{enumerable:!0,configurable:!0,writable:!0,value:p}):g[d]=p,Se=(g,d)=>{for(var p in d||(d={}))at.call(d,p)&&be(g,p,d[p]);if(ke)for(var p of ke(d))ut.call(d,p)&&be(g,p,d[p]);return g},Oe=(g,d)=>st(g,it(d));import{B as H,P as ct}from"./index.29de87b8.js";var Ee={exports:{}};(function(g,d){(function(p,u){g.exports=u()})(H,function(){function p(r,e){var n=Object.keys(r);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(r);e&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(r,o).enumerable})),n.push.apply(n,t)}return n}function u(r){for(var e=1;e1&&e[e.length-1]==="/"&&(e=e.slice(0,e.length-1)),e.length>1&&e[0]!=="/"&&(e="/".concat(e)),e;throw new Error("OSC prepareAddress() needs addresses of type array or string")}function ae(r){if(!v(r))throw new Error("OSC prepareRegExPattern() needs strings");return r.replace(/\./g,"\\.").replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/\{/g,"(").replace(/\}/g,")").replace(/,/g,"|").replace(/\[!/g,"[^").replace(/\?/g,".").replace(/\*/g,".*")}var ue=function(){function r(){f(this,r),this.data=[],this.byteLength=0}return l(r,[{key:"add",value:function(e){if(te(e)||ne(e)||oe(e))return this;var n=e.pack();return this.byteLength+=n.byteLength,this.data.push(n),this}},{key:"merge",value:function(){var e=new Uint8Array(this.byteLength),n=0;return this.data.forEach(function(t){e.set(t,n),n+=t.byteLength}),e}}]),r}(),C=function(){function r(e){f(this,r),this.value=e,this.offset=0}return l(r,[{key:"pack",value:function(e,n){if(!e||!n)throw new Error("OSC Atomic cant't be packed without given method or byteLength");var t=new Uint8Array(n),o=new DataView(t.buffer);if(A(this.value))throw new Error("OSC Atomic cant't be encoded with empty value");return o[e](this.offset,this.value,!1),t}},{key:"unpack",value:function(e,n,t){var o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(!(e&&n&&t))throw new Error("OSC Atomic cant't be unpacked without given dataView, method or byteLength");if(!(e instanceof DataView))throw new Error("OSC Atomic expects an instance of type DataView");return this.value=e[n](o,!1),this.offset=o+t,this.offset}}]),r}(),U=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!b(t))throw new Error("OSC AtomicInt32 constructor expects value of type number");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setInt32",4)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getInt32",4,o)}}]),n}(C),ce="utf-8";function De(r){if(se("Buffer"))return Buffer.from(r).toString(ce);if(se("TextDecoder"))return new TextDecoder(ce).decode(new Int8Array(r));for(var e="",n=0;n1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicString expects an instance of type DataView");for(var i,s=o,a=[];s0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(f(this,r),!b(e)||!b(n))throw new Error("OSC Timetag constructor expects values of type integer number");this.seconds=e,this.fractions=n}return l(r,[{key:"timestamp",value:function(e){var n;if(typeof e=="number"){n=e/1e3;var t=Math.floor(n);return this.seconds=t+fe,this.fractions=Math.round(le*(n-t)),e}return 1e3*((n=this.seconds-fe)+Math.round(this.fractions/le))}}]),r}(),B=function(r){k(n,r);var e=y(n);function n(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Date.now();f(this,n);var o=new G;return t instanceof G?o=t:b(t)?o.timestamp(t):Ae(t)&&o.timestamp(t.getTime()),e.call(this,o)}return l(n,[{key:"pack",value:function(){if(A(this.value))throw new Error("OSC AtomicTimetag can not be encoded with empty value");var t=this.value,o=t.seconds,i=t.fractions,s=new Uint8Array(8),a=new DataView(s.buffer);return a.setInt32(0,o,!1),a.setInt32(4,i,!1),s}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicTimetag expects an instance of type DataView");var i=t.getUint32(o,!1),s=t.getUint32(o+4,!1);return this.value=new G(i,s),this.offset=o+8,this.offset}}]),n}(C),he=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!re(t))throw new Error("OSC AtomicBlob constructor expects value of type Uint8Array");return e.call(this,t)}return l(n,[{key:"pack",value:function(){if(A(this.value))throw new Error("OSC AtomicBlob can not be encoded with empty value");var t=V(this.value.byteLength),o=new Uint8Array(t+4);return new DataView(o.buffer).setInt32(0,this.value.byteLength,!1),o.set(this.value,4),o}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicBlob expects an instance of type DataView");var i=t.getInt32(o,!1);return this.value=new Uint8Array(t.buffer,o+4,i),this.offset=V(o+4+i),this.offset}}]),n}(C),pe=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!ee(t))throw new Error("OSC AtomicFloat32 constructor expects value of type float");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setFloat32",4)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getFloat32",4,o)}}]),n}(C),de=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!ee(t))throw new Error("OSC AtomicFloat64 constructor expects value of type float");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setFloat64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getFloat64",8,o)}}]),n}(C),je=BigInt("9223372036854775807"),xe=BigInt("-9223372036854775808"),ge=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&typeof t!="bigint")throw new Error("OSC AtomicInt64 constructor expects value of type BigInt");if(t&&(tje))throw new Error("OSC AtomicInt64 value is out of bounds");var o;return t&&(o=BigInt.asIntN(64,t)),e.call(this,o)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setBigInt64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getBigInt64",8,o)}}]),n}(C),Be=BigInt("18446744073709551615"),ve=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&typeof t!="bigint")throw new Error("OSC AtomicUInt64 constructor expects value of type BigInt");if(t&&(t<0||t>Be))throw new Error("OSC AtomicUInt64 value is out of bounds");var o;return t&&(o=BigInt.asUintN(64,t)),e.call(this,o)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setBigUint64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getBigUint64",8,o)}}]),n}(C),Z=!0,q=!1,J=null,K=1/0,Q=function(){function r(e,n){var t=this;if(f(this,r),this.offset=0,this.address="",this.types="",this.args=[],!A(e)){if(!v(e)&&!D(e))throw new Error("OSC Message constructor first argument (address) must be a string or array");this.address=L(e)}if(!A(n)){if(!D(n))throw new Error("OSC Message constructor second argument (args) must be an array");n.forEach(function(o){return t.add(o.type,o.value)})}}return l(r,[{key:"add",value:function(e,n){if(A(e))throw new Error("OSC Message needs a valid OSC Atomic Data Type");e==="N"?this.args.push(J):e==="T"?this.args.push(Z):e==="F"?this.args.push(q):e==="I"?this.args.push(K):this.args.push(n),this.types+=e}},{key:"pack",value:function(){var e=this;if(this.address.length===0||this.address[0]!=="/")throw new Error("OSC Message has an invalid address");var n=new ue;if(n.add(new S(this.address)),n.add(new S(",".concat(this.types))),this.args.length>0){var t;if(this.args.length>this.types.length)throw new Error("OSC Message argument and type tag mismatch");this.args.forEach(function(o,i){var s=e.types[i];if(s==="i")t=new U(o);else if(s==="h")t=new ge(o);else if(s==="t")t=new ve(o);else if(s==="f")t=new pe(o);else if(s==="d")t=new de(o);else if(s==="s")t=new S(o);else if(s==="b")t=new he(o);else if(s==="T")t=Z;else if(s==="F")t=q;else if(s==="N")t=J;else{if(s!=="I")throw new Error("OSC Message found unknown argument type");t=K}n.add(t)})}return n.merge()}},{key:"unpack",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Message expects an instance of type DataView.");var t=new S;t.unpack(e,n);var o=new S;if(o.unpack(e,t.offset),t.value.length===0||t.value[0]!=="/")throw new Error("OSC Message found malformed or missing address string");if(o.value.length===0&&o.value[0]!==",")throw new Error("OSC Message found malformed or missing type string");for(var i,s,a=o.offset,c=[],w=1;w0&&(o=a.shift()),a.length>0&&a[0]instanceof Array&&(i=a.shift()),t=e.call(this,o,i),a.length>0&&(t.types=a.map(function(w){return ie(w)}).join(""),t.args=a),t}return l(n,[{key:"add",value:function(t){m(h(n.prototype),"add",this).call(this,ie(t),t)}}]),n}(Q),_="#bundle",I=function(){function r(){var e=this;f(this,r),this.offset=0,this.timetag=new B,this.bundleElements=[];for(var n=arguments.length,t=new Array(n),o=0;o0&&(t[0]instanceof Date||b(t[0])?this.timetag=new B(t[0]):D(t[0])?(t[0].forEach(function(i){e.add(i)}),t.length>1&&(t[1]instanceof Date||b(t[1]))&&(this.timetag=new B(t[1]))):t.forEach(function(i){e.add(i)}))}return l(r,[{key:"timestamp",value:function(e){if(!b(e))throw new Error("OSC Bundle needs an integer for setting the timestamp");this.timetag=new B(e)}},{key:"add",value:function(e){if(!(e instanceof E||e instanceof r))throw new Error("OSC Bundle contains only Messages and Bundles");this.bundleElements.push(e)}},{key:"pack",value:function(){var e=new ue;return e.add(new S(_)),this.timetag||(this.timetag=new B),e.add(this.timetag),this.bundleElements.forEach(function(n){e.add(new U(n.pack().byteLength)),e.add(n)}),e.merge()}},{key:"unpack",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Bundle expects an instance of type DataView");var t=new S;if(t.unpack(e,n),t.value!==_)throw new Error("OSC Bundle does not contain a valid #bundle head");var o=new B,i=o.unpack(e,t.offset);for(this.bundleElements=[];i1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Packet expects an instance of type DataView");if(e.byteLength%4!=0)throw new Error("OSC Packet byteLength has to be a multiple of four");var t,o=new S;return o.unpack(e,n),(t=o.value===_?new I:new E).unpack(e,n),this.offset=t.offset,this.value=t,this.offset}}]),r}(),Me={discardLateMessages:!1},He=function(){function r(e){f(this,r),this.options=u(u({},Me),e),this.addressHandlers=[],this.eventHandlers={open:[],error:[],close:[]},this.uuid=0}return l(r,[{key:"dispatch",value:function(e,n){var t=this;if(!(e instanceof M))throw new Error("OSC EventHander dispatch() accepts only arguments of type Packet");if(!e.value)throw new Error("OSC EventHander dispatch() can't read empty Packets");if(e.value instanceof I){var o=e.value;return o.bundleElements.forEach(function(s){if(s instanceof I){if(o.timetag.value.timestamp()1&&(s=n[1]);var a=null;if(n.length>2)if(b(n[2]))a=n[2];else{if(!(n[2]instanceof Date))throw new Error("OSC EventHandler timestamp has to be a number or Date");a=n[2].getTime()}var c=null;if(n.length>=3&&(c=n[3]),a){var w=Date.now();if(w>a&&!this.options.discardLateMessages)return this.call(i,s,c);var P=this;return setTimeout(function(){P.call(i,s,c)},a-w),!0}return this.call(i,s,c)}},{key:"on",value:function(e,n){if(!v(e)&&!D(e))throw new Error("OSC EventHandler accepts only strings or arrays for address patterns");if(!j(n))throw new Error("OSC EventHandler callback has to be a function");this.uuid+=1;var t={id:this.uuid,callback:n};if(v(e)&&e in this.eventHandlers)return this.eventHandlers[e].push(t),this.uuid;var o=L(e);return o in this.addressHandlers||(this.addressHandlers[o]=[]),this.addressHandlers[o].push(t),this.uuid}},{key:"off",value:function(e,n){if(!v(e)&&!D(e))throw new Error("OSC EventHandler accepts only strings or arrays for address patterns");if(!b(n))throw new Error("OSC EventHandler subscription id has to be a number");var t,o;return v(e)&&e in this.eventHandlers?(t=e,o=this.eventHandlers):(t=L(e),o=this.addressHandlers),t in o&&o[t].some(function(i,s){return i.id===n&&(o[t].splice(s,1),!0)})}}]),r}(),Te=0,Le=1,Ne=2,Ve=3,Ue=function(){function r(){throw f(this,r),new Error("DatagramPlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options.open),n),o=t.port,i=t.exclusive;this.socketStatus=Te,this.socket.bind({address:t.host,port:o,exclusive:i},function(){e.socketStatus=Le,e.notify("open")})}},{key:"close",value:function(){var e=this;this.socketStatus=Ne,this.socket.close(function(){e.socketStatus=Ve,e.notify("close")})}},{key:"send",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=u(u({},this.options.send),n),o=t.port,i=t.host;this.socket.send(Buffer.from(e),0,e.byteLength,o,i)}}]),r}();typeof WebSocket!="undefined"?x=WebSocket:typeof MozWebSocket!="undefined"?x=MozWebSocket:typeof H!="undefined"?x=H.WebSocket||H.MozWebSocket:typeof window!="undefined"?x=window.WebSocket||window.MozWebSocket:typeof self!="undefined"&&(x=self.WebSocket||self.MozWebSocket);var X=void 0,we=x,_e=0,We=1,Re=2,Fe=3,W={udpServer:{host:"localhost",port:41234,exclusive:!1},udpClient:{host:"localhost",port:41235},wsServer:{host:"localhost",port:8080},receiver:"ws"};function ye(r,e){return u(u(u(u({},W),r),e),{},{udpServer:u(u(u({},W.udpServer),r.udpServer),e.udpServer),udpClient:u(u(u({},W.udpClient),r.udpClient),e.udpClient),wsServer:u(u(u({},W.wsServer),r.wsServer),e.wsServer)})}var ze=function(){function r(){throw f(this,r),new Error("BridgePlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=ye(this.options,n);this.socketStatus=_e,this.socket.bind({address:t.udpServer.host,port:t.udpServer.port,exclusive:t.udpServer.exclusive},function(){var o={};t.wsServer.server?o.server=t.wsServer.server:o=t.wsServer,e.websocket=new X(o),e.websocket.binaryType="arraybuffer",e.websocket.on("listening",function(){e.socketStatus=We,e.notify("open")}),e.websocket.on("error",function(i){e.notify("error",i)}),e.websocket.on("connection",function(i){i.on("message",function(s,a){e.send(s,{receiver:"udp"}),e.notify(new Uint8Array(s),a)})})})}},{key:"close",value:function(){var e=this;this.socketStatus=Re,this.socket.close(function(){e.websocket.close(function(){e.socketStatus=Fe,e.notify("close")})})}},{key:"send",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=ye(this.options,n),o=t.receiver;if(o==="udp"){var i=e instanceof Buffer?e:Buffer.from(e);this.socket.send(i,0,i.byteLength,t.udpClient.port,t.udpClient.host)}else{if(o!=="ws")throw new Error("BridgePlugin can not send message to unknown receiver");this.websocket.clients.forEach(function(s){s.send(e,{binary:!0})})}}}]),r}(),Ge=-1,Ze=0,qe=1,Je=2,Ke=3,Qe={host:"localhost",port:8080,secure:!1,protocol:[]},me=function(){function r(e){if(f(this,r),!we)throw new Error("WebsocketClientPlugin can't find a WebSocket class");this.options=u(u({},Qe),e),this.socket=null,this.socketStatus=Ge,this.notify=function(){}}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options),n),o=t.port,i=t.host,s=t.secure,a=t.protocol;this.socket&&this.close();var c=s?"wss":"ws",w={address:i,family:c,port:o,size:0};this.socket=new we("".concat(c,"://").concat(i,":").concat(o),a),this.socket.binaryType="arraybuffer",this.socketStatus=Ze,this.socket.onopen=function(){e.socketStatus=qe,e.notify("open")},this.socket.onclose=function(){e.socketStatus=Ke,e.notify("close")},this.socket.onerror=function(P){e.notify("error",P)},this.socket.onmessage=function(P){e.notify(P.data,w)}}},{key:"close",value:function(){this.socketStatus=Je,this.socket.close()}},{key:"send",value:function(e){this.socket.send(e)}}]),r}(),Xe=0,Ye=1,$e=2,et=3,tt=function(){function r(e){throw f(this,r),new Error("WebsocketServerPlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options),n),o=t.port,i=t.host,s={address:i,family:"wsserver",port:o,size:0};this.socket&&this.close(),t.server?this.socket=new X({server:t.server}):this.socket=new X({host:i,port:o}),this.socket.binaryType="arraybuffer",this.socketStatus=Xe,this.socket.on("listening",function(){e.socketStatus=Ye,e.notify("open")}),this.socket.on("error",function(a){e.notify("error",a)}),this.socket.on("connection",function(a){a.on("message",function(c){e.notify(new Uint8Array(c),s)})})}},{key:"close",value:function(){var e=this;this.socketStatus=$e,this.socket.close(function(){e.socketStatus=et,e.notify("close")})}},{key:"send",value:function(e){this.socket.clients.forEach(function(n){n.send(e,{binary:!0})})}}]),r}(),nt={discardLateMessages:!1,plugin:new me},O=function(){function r(e){if(f(this,r),e&&!z(e))throw new Error("OSC options argument has to be an object.");this.options=u(u({},nt),e),this.eventHandler=new He({discardLateMessages:this.options.discardLateMessages});var n=this.eventHandler;this.options.plugin&&this.options.plugin.registerNotify&&this.options.plugin.registerNotify(function(){return n.notify.apply(n,arguments)})}return l(r,[{key:"on",value:function(e,n){if(!v(e)||!j(n))throw new Error("OSC on() needs event- or address string and callback function");return this.eventHandler.on(e,n)}},{key:"off",value:function(e,n){if(!v(e)||!b(n))throw new Error("OSC off() needs string and number (subscriptionId) to unsubscribe");return this.eventHandler.off(e,n)}},{key:"open",value:function(e){if(e&&!z(e))throw new Error("OSC open() options argument needs to be an object");if(!this.options.plugin||!j(this.options.plugin.open))throw new Error("OSC Plugin API #open is not implemented!");return this.options.plugin.open(e)}},{key:"status",value:function(){if(!this.options.plugin||!j(this.options.plugin.status))throw new Error("OSC Plugin API #status is not implemented!");return this.options.plugin.status()}},{key:"close",value:function(){if(!this.options.plugin||!j(this.options.plugin.close))throw new Error("OSC Plugin API #close is not implemented!");return this.options.plugin.close()}},{key:"send",value:function(e,n){if(!this.options.plugin||!j(this.options.plugin.send))throw new Error("OSC Plugin API #send is not implemented!");if(!(e instanceof Q||e instanceof E||e instanceof I||e instanceof M))throw new Error("OSC send() needs Messages, Bundles or Packets");if(n&&!z(n))throw new Error("OSC send() options argument has to be an object");return this.options.plugin.send(e.pack(),n)}}]),r}();return O.STATUS={IS_NOT_INITIALIZED:-1,IS_CONNECTING:0,IS_OPEN:1,IS_CLOSING:2,IS_CLOSED:3},O.Packet=M,O.Bundle=I,O.Message=E,O.TypedMessage=Q,O.DatagramPlugin=Ue,O.WebsocketClientPlugin=me,O.WebsocketServerPlugin=tt,O.BridgePlugin=ze,O})})(Ee);var $=Ee.exports;const Ce=new $;Ce.open();const ft=.1;let Y=-1;ct.prototype.osc=function(){return this._withHap(g=>{const d=(p,u,f,N)=>{const l=u.wholeOrPart().begin.valueOf(),R=u.duration.valueOf();Y<0&&(Y=Date.now()-f*1e3);const k=Object.assign({},{cps:N,cycle:l,delta:R},u.value),h=Object.entries(k).flat(),T=Math.floor(Y+(p+ft)*1e3),F=new $.Message("/dirt/play",...h),y=new $.Bundle([F],T);y.timestamp(T),Ce.send(y)};return g.setContext(Oe(Se({},g.context),{onTrigger:d}))})}; diff --git a/assets/serial.ef76d3fb.js b/assets/serial.9dcf36a7.js similarity index 95% rename from assets/serial.ef76d3fb.js rename to assets/serial.9dcf36a7.js index ca03fb50f..6c6b0bc0d 100644 --- a/assets/serial.ef76d3fb.js +++ b/assets/serial.9dcf36a7.js @@ -1 +1 @@ -var d=Object.defineProperty,m=Object.defineProperties;var x=Object.getOwnPropertyDescriptors;var f=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var u=(r,e,t)=>e in r?d(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,v=(r,e)=>{for(var t in e||(e={}))p.call(e,t)&&u(r,t,e[t]);if(f)for(var t of f(e))T.call(e,t)&&u(r,t,e[t]);return r},w=(r,e)=>m(r,x(e));import{P as W}from"./index.4c53df7b.js";var n,b=!1;async function $(r=38400){if(!b){if(b=!0,n)return n;if("serial"in navigator){const e=await navigator.serial.requestPort();await e.open({baudRate:r});const t=new TextEncoderStream;t.readable.pipeTo(e.writable);const s=t.writable.getWriter();n=function(i){s.write(i)}}else throw"Webserial is not available in this browser."}}const j=.1;W.prototype.serial=function(...r){return this._withHap(e=>{n||$(...r);const t=(s,i,g)=>{var o="";if(typeof i.value=="object")if("action"in i.value){o+=i.value.action+"(";var c=!0;for(const[a,l]of Object.entries(i.value))a!=="action"&&(c?c=!1:o+=",",o+=`${a}:${l}`);o+=")"}else for(const[a,l]of Object.entries(i.value))o+=`${a}:${l};`;else o=i.value;const y=(s-g+j)*1e3;window.setTimeout(n,y,o)};return e.setContext(w(v({},e.context),{onTrigger:t}))})};export{$ as getWriter}; +var d=Object.defineProperty,m=Object.defineProperties;var x=Object.getOwnPropertyDescriptors;var f=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var u=(r,e,t)=>e in r?d(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,v=(r,e)=>{for(var t in e||(e={}))p.call(e,t)&&u(r,t,e[t]);if(f)for(var t of f(e))T.call(e,t)&&u(r,t,e[t]);return r},w=(r,e)=>m(r,x(e));import{P as W}from"./index.29de87b8.js";var n,b=!1;async function $(r=38400){if(!b){if(b=!0,n)return n;if("serial"in navigator){const e=await navigator.serial.requestPort();await e.open({baudRate:r});const t=new TextEncoderStream;t.readable.pipeTo(e.writable);const s=t.writable.getWriter();n=function(i){s.write(i)}}else throw"Webserial is not available in this browser."}}const j=.1;W.prototype.serial=function(...r){return this._withHap(e=>{n||$(...r);const t=(s,i,g)=>{var o="";if(typeof i.value=="object")if("action"in i.value){o+=i.value.action+"(";var c=!0;for(const[a,l]of Object.entries(i.value))a!=="action"&&(c?c=!1:o+=",",o+=`${a}:${l}`);o+=")"}else for(const[a,l]of Object.entries(i.value))o+=`${a}:${l};`;else o=i.value;const y=(s-g+j)*1e3;window.setTimeout(n,y,o)};return e.setContext(w(v({},e.context),{onTrigger:t}))})};export{$ as getWriter}; diff --git a/index.html b/index.html index 7e92b49cf..c4c456ba7 100644 --- a/index.html +++ b/index.html @@ -9,8 +9,8 @@ Strudel REPL - - + + diff --git a/samples/EMU World/African Perc/African Perc (1).wav b/samples/EMU World/African Perc/African Perc (1).wav deleted file mode 100644 index 65fa7ff83..000000000 Binary files a/samples/EMU World/African Perc/African Perc (1).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (2).wav b/samples/EMU World/African Perc/African Perc (2).wav deleted file mode 100644 index 71204f169..000000000 Binary files a/samples/EMU World/African Perc/African Perc (2).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (20).wav b/samples/EMU World/African Perc/African Perc (20).wav deleted file mode 100644 index 71166e843..000000000 Binary files a/samples/EMU World/African Perc/African Perc (20).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (21).wav b/samples/EMU World/African Perc/African Perc (21).wav deleted file mode 100644 index 6bb34a2e8..000000000 Binary files a/samples/EMU World/African Perc/African Perc (21).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (22).wav b/samples/EMU World/African Perc/African Perc (22).wav deleted file mode 100644 index 8bb49cb1e..000000000 Binary files a/samples/EMU World/African Perc/African Perc (22).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (23).wav b/samples/EMU World/African Perc/African Perc (23).wav deleted file mode 100644 index 9a7220dc6..000000000 Binary files a/samples/EMU World/African Perc/African Perc (23).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (24).wav b/samples/EMU World/African Perc/African Perc (24).wav deleted file mode 100644 index 095440c3b..000000000 Binary files a/samples/EMU World/African Perc/African Perc (24).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (25).wav b/samples/EMU World/African Perc/African Perc (25).wav deleted file mode 100644 index 9a313b094..000000000 Binary files a/samples/EMU World/African Perc/African Perc (25).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (26).wav b/samples/EMU World/African Perc/African Perc (26).wav deleted file mode 100644 index 123db1dff..000000000 Binary files a/samples/EMU World/African Perc/African Perc (26).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (27).wav b/samples/EMU World/African Perc/African Perc (27).wav deleted file mode 100644 index 35a7385f0..000000000 Binary files a/samples/EMU World/African Perc/African Perc (27).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (28).wav b/samples/EMU World/African Perc/African Perc (28).wav deleted file mode 100644 index 843a3cf2d..000000000 Binary files a/samples/EMU World/African Perc/African Perc (28).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (29).wav b/samples/EMU World/African Perc/African Perc (29).wav deleted file mode 100644 index 96cbe5acc..000000000 Binary files a/samples/EMU World/African Perc/African Perc (29).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (3).wav b/samples/EMU World/African Perc/African Perc (3).wav deleted file mode 100644 index 4b68c3aef..000000000 Binary files a/samples/EMU World/African Perc/African Perc (3).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (30).wav b/samples/EMU World/African Perc/African Perc (30).wav deleted file mode 100644 index ef094e2f6..000000000 Binary files a/samples/EMU World/African Perc/African Perc (30).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (31).wav b/samples/EMU World/African Perc/African Perc (31).wav deleted file mode 100644 index f260aa099..000000000 Binary files a/samples/EMU World/African Perc/African Perc (31).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (32).wav b/samples/EMU World/African Perc/African Perc (32).wav deleted file mode 100644 index 4d465e263..000000000 Binary files a/samples/EMU World/African Perc/African Perc (32).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (33).wav b/samples/EMU World/African Perc/African Perc (33).wav deleted file mode 100644 index ab901536a..000000000 Binary files a/samples/EMU World/African Perc/African Perc (33).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (34).wav b/samples/EMU World/African Perc/African Perc (34).wav deleted file mode 100644 index dbd2e34ad..000000000 Binary files a/samples/EMU World/African Perc/African Perc (34).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (35).wav b/samples/EMU World/African Perc/African Perc (35).wav deleted file mode 100644 index a21b9b710..000000000 Binary files a/samples/EMU World/African Perc/African Perc (35).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (36).wav b/samples/EMU World/African Perc/African Perc (36).wav deleted file mode 100644 index b5f2d5e04..000000000 Binary files a/samples/EMU World/African Perc/African Perc (36).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (37).wav b/samples/EMU World/African Perc/African Perc (37).wav deleted file mode 100644 index f4023d1e7..000000000 Binary files a/samples/EMU World/African Perc/African Perc (37).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (38).wav b/samples/EMU World/African Perc/African Perc (38).wav deleted file mode 100644 index 71c5b12b4..000000000 Binary files a/samples/EMU World/African Perc/African Perc (38).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (39).wav b/samples/EMU World/African Perc/African Perc (39).wav deleted file mode 100644 index c76d27b1d..000000000 Binary files a/samples/EMU World/African Perc/African Perc (39).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (4).wav b/samples/EMU World/African Perc/African Perc (4).wav deleted file mode 100644 index 104bcb99d..000000000 Binary files a/samples/EMU World/African Perc/African Perc (4).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (40).wav b/samples/EMU World/African Perc/African Perc (40).wav deleted file mode 100644 index c21adada1..000000000 Binary files a/samples/EMU World/African Perc/African Perc (40).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (41).wav b/samples/EMU World/African Perc/African Perc (41).wav deleted file mode 100644 index 7355ad067..000000000 Binary files a/samples/EMU World/African Perc/African Perc (41).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (42).wav b/samples/EMU World/African Perc/African Perc (42).wav deleted file mode 100644 index 79d96d663..000000000 Binary files a/samples/EMU World/African Perc/African Perc (42).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (43).wav b/samples/EMU World/African Perc/African Perc (43).wav deleted file mode 100644 index 4bc79eb2f..000000000 Binary files a/samples/EMU World/African Perc/African Perc (43).wav and /dev/null differ diff --git a/samples/EMU World/African Perc/African Perc (5).wav b/samples/EMU World/African Perc/African Perc (5).wav deleted file mode 100644 index ced6db248..000000000 Binary files a/samples/EMU World/African Perc/African Perc (5).wav and /dev/null differ diff --git a/samples/EMU World/Ashiko/Ashiko (1).wav b/samples/EMU World/Ashiko/Ashiko (1).wav deleted file mode 100644 index d6ecdb0a7..000000000 Binary files a/samples/EMU World/Ashiko/Ashiko (1).wav and /dev/null differ diff --git a/samples/EMU World/Ashiko/Ashiko (2).wav b/samples/EMU World/Ashiko/Ashiko (2).wav deleted file mode 100644 index 40040ac51..000000000 Binary files a/samples/EMU World/Ashiko/Ashiko (2).wav and /dev/null differ diff --git a/samples/EMU World/Ashiko/Ashiko (3).wav b/samples/EMU World/Ashiko/Ashiko (3).wav deleted file mode 100644 index 948184054..000000000 Binary files a/samples/EMU World/Ashiko/Ashiko (3).wav and /dev/null differ diff --git a/samples/EMU World/Ashiko/Ashiko (4).wav b/samples/EMU World/Ashiko/Ashiko (4).wav deleted file mode 100644 index 2a7fec655..000000000 Binary files a/samples/EMU World/Ashiko/Ashiko (4).wav and /dev/null differ diff --git a/samples/EMU World/Ashiko/Ashiko (5).wav b/samples/EMU World/Ashiko/Ashiko (5).wav deleted file mode 100644 index 3a0a03d57..000000000 Binary files a/samples/EMU World/Ashiko/Ashiko (5).wav and /dev/null differ diff --git a/samples/EMU World/Ashiko/Ashiko (6).wav b/samples/EMU World/Ashiko/Ashiko (6).wav deleted file mode 100644 index ab899ecf1..000000000 Binary files a/samples/EMU World/Ashiko/Ashiko (6).wav and /dev/null differ diff --git a/samples/EMU World/Ashiko/Ashiko (7).wav b/samples/EMU World/Ashiko/Ashiko (7).wav deleted file mode 100644 index e4b1b3746..000000000 Binary files a/samples/EMU World/Ashiko/Ashiko (7).wav and /dev/null differ diff --git a/samples/EMU World/Ashiko/Ashiko (8).wav b/samples/EMU World/Ashiko/Ashiko (8).wav deleted file mode 100644 index a24629ec1..000000000 Binary files a/samples/EMU World/Ashiko/Ashiko (8).wav and /dev/null differ diff --git a/samples/EMU World/Block/Block (1).wav b/samples/EMU World/Block/Block (1).wav deleted file mode 100644 index 9c2f00620..000000000 Binary files a/samples/EMU World/Block/Block (1).wav and /dev/null differ diff --git a/samples/EMU World/Block/Block (2).wav b/samples/EMU World/Block/Block (2).wav deleted file mode 100644 index 3eac126d8..000000000 Binary files a/samples/EMU World/Block/Block (2).wav and /dev/null differ diff --git a/samples/EMU World/Block/Block (3).wav b/samples/EMU World/Block/Block (3).wav deleted file mode 100644 index 09882df86..000000000 Binary files a/samples/EMU World/Block/Block (3).wav and /dev/null differ diff --git a/samples/EMU World/Block/Block (4).wav b/samples/EMU World/Block/Block (4).wav deleted file mode 100644 index 347697da9..000000000 Binary files a/samples/EMU World/Block/Block (4).wav and /dev/null differ diff --git a/samples/EMU World/Block/Block (5).wav b/samples/EMU World/Block/Block (5).wav deleted file mode 100644 index 3d2ad7cce..000000000 Binary files a/samples/EMU World/Block/Block (5).wav and /dev/null differ diff --git a/samples/EMU World/Bodran/Bodran (1).wav b/samples/EMU World/Bodran/Bodran (1).wav deleted file mode 100644 index 2851df309..000000000 Binary files a/samples/EMU World/Bodran/Bodran (1).wav and /dev/null differ diff --git a/samples/EMU World/Bodran/Bodran (2).wav b/samples/EMU World/Bodran/Bodran (2).wav deleted file mode 100644 index 85e3e56f4..000000000 Binary files a/samples/EMU World/Bodran/Bodran (2).wav and /dev/null differ diff --git a/samples/EMU World/Bodran/Bodran (3).wav b/samples/EMU World/Bodran/Bodran (3).wav deleted file mode 100644 index e1df056c9..000000000 Binary files a/samples/EMU World/Bodran/Bodran (3).wav and /dev/null differ diff --git a/samples/EMU World/Bodran/Bodran (4).wav b/samples/EMU World/Bodran/Bodran (4).wav deleted file mode 100644 index e2680d5a1..000000000 Binary files a/samples/EMU World/Bodran/Bodran (4).wav and /dev/null differ diff --git a/samples/EMU World/Bodran/Bodran (5).wav b/samples/EMU World/Bodran/Bodran (5).wav deleted file mode 100644 index 6f1b340bb..000000000 Binary files a/samples/EMU World/Bodran/Bodran (5).wav and /dev/null differ diff --git a/samples/EMU World/Bodran/Bodran (6).wav b/samples/EMU World/Bodran/Bodran (6).wav deleted file mode 100644 index fb6d28f5f..000000000 Binary files a/samples/EMU World/Bodran/Bodran (6).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (1).wav b/samples/EMU World/Bongo/Bongo (1).wav deleted file mode 100644 index 441a34d24..000000000 Binary files a/samples/EMU World/Bongo/Bongo (1).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (10).wav b/samples/EMU World/Bongo/Bongo (10).wav deleted file mode 100644 index 70c37f535..000000000 Binary files a/samples/EMU World/Bongo/Bongo (10).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (11).wav b/samples/EMU World/Bongo/Bongo (11).wav deleted file mode 100644 index 053542081..000000000 Binary files a/samples/EMU World/Bongo/Bongo (11).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (12).wav b/samples/EMU World/Bongo/Bongo (12).wav deleted file mode 100644 index 9a4583674..000000000 Binary files a/samples/EMU World/Bongo/Bongo (12).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (13).wav b/samples/EMU World/Bongo/Bongo (13).wav deleted file mode 100644 index 9801ac9af..000000000 Binary files a/samples/EMU World/Bongo/Bongo (13).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (14).wav b/samples/EMU World/Bongo/Bongo (14).wav deleted file mode 100644 index 464a9225c..000000000 Binary files a/samples/EMU World/Bongo/Bongo (14).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (15).wav b/samples/EMU World/Bongo/Bongo (15).wav deleted file mode 100644 index a0b7e9faf..000000000 Binary files a/samples/EMU World/Bongo/Bongo (15).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (16).wav b/samples/EMU World/Bongo/Bongo (16).wav deleted file mode 100644 index fd8dba624..000000000 Binary files a/samples/EMU World/Bongo/Bongo (16).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (17).wav b/samples/EMU World/Bongo/Bongo (17).wav deleted file mode 100644 index e3ee1563e..000000000 Binary files a/samples/EMU World/Bongo/Bongo (17).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (18).wav b/samples/EMU World/Bongo/Bongo (18).wav deleted file mode 100644 index e9dbf2ce5..000000000 Binary files a/samples/EMU World/Bongo/Bongo (18).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (19).wav b/samples/EMU World/Bongo/Bongo (19).wav deleted file mode 100644 index 9738dbb80..000000000 Binary files a/samples/EMU World/Bongo/Bongo (19).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (2).wav b/samples/EMU World/Bongo/Bongo (2).wav deleted file mode 100644 index 3f165a5c9..000000000 Binary files a/samples/EMU World/Bongo/Bongo (2).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (20).wav b/samples/EMU World/Bongo/Bongo (20).wav deleted file mode 100644 index 131728a70..000000000 Binary files a/samples/EMU World/Bongo/Bongo (20).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (21).wav b/samples/EMU World/Bongo/Bongo (21).wav deleted file mode 100644 index 38a3d2b76..000000000 Binary files a/samples/EMU World/Bongo/Bongo (21).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (22).wav b/samples/EMU World/Bongo/Bongo (22).wav deleted file mode 100644 index aa3d006e3..000000000 Binary files a/samples/EMU World/Bongo/Bongo (22).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (3).wav b/samples/EMU World/Bongo/Bongo (3).wav deleted file mode 100644 index 35340d111..000000000 Binary files a/samples/EMU World/Bongo/Bongo (3).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (4).wav b/samples/EMU World/Bongo/Bongo (4).wav deleted file mode 100644 index 8b5017076..000000000 Binary files a/samples/EMU World/Bongo/Bongo (4).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (5).wav b/samples/EMU World/Bongo/Bongo (5).wav deleted file mode 100644 index 96ed487fc..000000000 Binary files a/samples/EMU World/Bongo/Bongo (5).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (6).wav b/samples/EMU World/Bongo/Bongo (6).wav deleted file mode 100644 index 626212bcb..000000000 Binary files a/samples/EMU World/Bongo/Bongo (6).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (7).wav b/samples/EMU World/Bongo/Bongo (7).wav deleted file mode 100644 index 62acedb75..000000000 Binary files a/samples/EMU World/Bongo/Bongo (7).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (8).wav b/samples/EMU World/Bongo/Bongo (8).wav deleted file mode 100644 index 61e6c7f49..000000000 Binary files a/samples/EMU World/Bongo/Bongo (8).wav and /dev/null differ diff --git a/samples/EMU World/Bongo/Bongo (9).wav b/samples/EMU World/Bongo/Bongo (9).wav deleted file mode 100644 index eb37558c5..000000000 Binary files a/samples/EMU World/Bongo/Bongo (9).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (1).wav b/samples/EMU World/Bottle/Bottle (1).wav deleted file mode 100644 index b0d6297e3..000000000 Binary files a/samples/EMU World/Bottle/Bottle (1).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (10).wav b/samples/EMU World/Bottle/Bottle (10).wav deleted file mode 100644 index b95aa695c..000000000 Binary files a/samples/EMU World/Bottle/Bottle (10).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (11).wav b/samples/EMU World/Bottle/Bottle (11).wav deleted file mode 100644 index 988be7c1f..000000000 Binary files a/samples/EMU World/Bottle/Bottle (11).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (12).wav b/samples/EMU World/Bottle/Bottle (12).wav deleted file mode 100644 index 128a5cf53..000000000 Binary files a/samples/EMU World/Bottle/Bottle (12).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (13).wav b/samples/EMU World/Bottle/Bottle (13).wav deleted file mode 100644 index 6f5d9be80..000000000 Binary files a/samples/EMU World/Bottle/Bottle (13).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (14).wav b/samples/EMU World/Bottle/Bottle (14).wav deleted file mode 100644 index c4a596ef4..000000000 Binary files a/samples/EMU World/Bottle/Bottle (14).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (15).wav b/samples/EMU World/Bottle/Bottle (15).wav deleted file mode 100644 index bfb4943b3..000000000 Binary files a/samples/EMU World/Bottle/Bottle (15).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (16).wav b/samples/EMU World/Bottle/Bottle (16).wav deleted file mode 100644 index 9a77e63be..000000000 Binary files a/samples/EMU World/Bottle/Bottle (16).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (17).wav b/samples/EMU World/Bottle/Bottle (17).wav deleted file mode 100644 index 0e6c335e4..000000000 Binary files a/samples/EMU World/Bottle/Bottle (17).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (18).wav b/samples/EMU World/Bottle/Bottle (18).wav deleted file mode 100644 index 6fd02056c..000000000 Binary files a/samples/EMU World/Bottle/Bottle (18).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (19).wav b/samples/EMU World/Bottle/Bottle (19).wav deleted file mode 100644 index 85b29051e..000000000 Binary files a/samples/EMU World/Bottle/Bottle (19).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (2).wav b/samples/EMU World/Bottle/Bottle (2).wav deleted file mode 100644 index bf29be31e..000000000 Binary files a/samples/EMU World/Bottle/Bottle (2).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (20).wav b/samples/EMU World/Bottle/Bottle (20).wav deleted file mode 100644 index a72efc029..000000000 Binary files a/samples/EMU World/Bottle/Bottle (20).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (21).wav b/samples/EMU World/Bottle/Bottle (21).wav deleted file mode 100644 index 16332db65..000000000 Binary files a/samples/EMU World/Bottle/Bottle (21).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (3).wav b/samples/EMU World/Bottle/Bottle (3).wav deleted file mode 100644 index 9f96b7914..000000000 Binary files a/samples/EMU World/Bottle/Bottle (3).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (4).wav b/samples/EMU World/Bottle/Bottle (4).wav deleted file mode 100644 index bfaa76e5b..000000000 Binary files a/samples/EMU World/Bottle/Bottle (4).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (5).wav b/samples/EMU World/Bottle/Bottle (5).wav deleted file mode 100644 index 74f4ff19a..000000000 Binary files a/samples/EMU World/Bottle/Bottle (5).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (6).wav b/samples/EMU World/Bottle/Bottle (6).wav deleted file mode 100644 index 4959957d5..000000000 Binary files a/samples/EMU World/Bottle/Bottle (6).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (7).wav b/samples/EMU World/Bottle/Bottle (7).wav deleted file mode 100644 index 06c816829..000000000 Binary files a/samples/EMU World/Bottle/Bottle (7).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (8).wav b/samples/EMU World/Bottle/Bottle (8).wav deleted file mode 100644 index 1817a83c4..000000000 Binary files a/samples/EMU World/Bottle/Bottle (8).wav and /dev/null differ diff --git a/samples/EMU World/Bottle/Bottle (9).wav b/samples/EMU World/Bottle/Bottle (9).wav deleted file mode 100644 index 6c49e5135..000000000 Binary files a/samples/EMU World/Bottle/Bottle (9).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (1).wav b/samples/EMU World/Brazilian Drums/Brazilian (1).wav deleted file mode 100644 index 34fc61685..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (1).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (10).wav b/samples/EMU World/Brazilian Drums/Brazilian (10).wav deleted file mode 100644 index 6169a5d62..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (10).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (11).wav b/samples/EMU World/Brazilian Drums/Brazilian (11).wav deleted file mode 100644 index 70b994f00..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (11).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (12).wav b/samples/EMU World/Brazilian Drums/Brazilian (12).wav deleted file mode 100644 index 2485ee383..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (12).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (13).wav b/samples/EMU World/Brazilian Drums/Brazilian (13).wav deleted file mode 100644 index be184e92c..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (13).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (14).wav b/samples/EMU World/Brazilian Drums/Brazilian (14).wav deleted file mode 100644 index b47b52219..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (14).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (15).wav b/samples/EMU World/Brazilian Drums/Brazilian (15).wav deleted file mode 100644 index 4ec65dc45..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (15).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (16).wav b/samples/EMU World/Brazilian Drums/Brazilian (16).wav deleted file mode 100644 index 88b33c5d7..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (16).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (17).wav b/samples/EMU World/Brazilian Drums/Brazilian (17).wav deleted file mode 100644 index 8a0f957a7..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (17).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (18).wav b/samples/EMU World/Brazilian Drums/Brazilian (18).wav deleted file mode 100644 index 9de0d420d..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (18).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (19).wav b/samples/EMU World/Brazilian Drums/Brazilian (19).wav deleted file mode 100644 index 19c116d29..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (19).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (2).wav b/samples/EMU World/Brazilian Drums/Brazilian (2).wav deleted file mode 100644 index 2e8f88da9..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (2).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (20).wav b/samples/EMU World/Brazilian Drums/Brazilian (20).wav deleted file mode 100644 index 7f83111bb..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (20).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (21).wav b/samples/EMU World/Brazilian Drums/Brazilian (21).wav deleted file mode 100644 index 2948c8d10..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (21).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (22).wav b/samples/EMU World/Brazilian Drums/Brazilian (22).wav deleted file mode 100644 index 3c1cae3e4..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (22).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (23).wav b/samples/EMU World/Brazilian Drums/Brazilian (23).wav deleted file mode 100644 index fa89851ea..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (23).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (24).wav b/samples/EMU World/Brazilian Drums/Brazilian (24).wav deleted file mode 100644 index 0edb4986b..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (24).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (25).wav b/samples/EMU World/Brazilian Drums/Brazilian (25).wav deleted file mode 100644 index f72bb0875..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (25).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (26).wav b/samples/EMU World/Brazilian Drums/Brazilian (26).wav deleted file mode 100644 index f42708aa0..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (26).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (27).wav b/samples/EMU World/Brazilian Drums/Brazilian (27).wav deleted file mode 100644 index 1c04bd42b..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (27).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (28).wav b/samples/EMU World/Brazilian Drums/Brazilian (28).wav deleted file mode 100644 index 5c16c0c58..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (28).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (29).wav b/samples/EMU World/Brazilian Drums/Brazilian (29).wav deleted file mode 100644 index 84283c221..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (29).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (3).wav b/samples/EMU World/Brazilian Drums/Brazilian (3).wav deleted file mode 100644 index 181371619..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (3).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (30).wav b/samples/EMU World/Brazilian Drums/Brazilian (30).wav deleted file mode 100644 index 481ad5cd4..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (30).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (31).wav b/samples/EMU World/Brazilian Drums/Brazilian (31).wav deleted file mode 100644 index e14335e5a..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (31).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (32).wav b/samples/EMU World/Brazilian Drums/Brazilian (32).wav deleted file mode 100644 index d720b9b62..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (32).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (33).wav b/samples/EMU World/Brazilian Drums/Brazilian (33).wav deleted file mode 100644 index cb15af767..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (33).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (34).wav b/samples/EMU World/Brazilian Drums/Brazilian (34).wav deleted file mode 100644 index 44cb0d083..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (34).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (4).wav b/samples/EMU World/Brazilian Drums/Brazilian (4).wav deleted file mode 100644 index 1352a288c..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (4).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (5).wav b/samples/EMU World/Brazilian Drums/Brazilian (5).wav deleted file mode 100644 index c0d121744..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (5).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (6).wav b/samples/EMU World/Brazilian Drums/Brazilian (6).wav deleted file mode 100644 index c49ae1e73..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (6).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (7).wav b/samples/EMU World/Brazilian Drums/Brazilian (7).wav deleted file mode 100644 index d1b5b14b7..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (7).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (8).wav b/samples/EMU World/Brazilian Drums/Brazilian (8).wav deleted file mode 100644 index 318bf5db5..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (8).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Drums/Brazilian (9).wav b/samples/EMU World/Brazilian Drums/Brazilian (9).wav deleted file mode 100644 index a06b21bd6..000000000 Binary files a/samples/EMU World/Brazilian Drums/Brazilian (9).wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Agogo 2.wav b/samples/EMU World/Brazilian Kit/BK Agogo 2.wav deleted file mode 100644 index b4fbf7321..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Agogo 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Agogo 3.wav b/samples/EMU World/Brazilian Kit/BK Agogo 3.wav deleted file mode 100644 index cf8e62f2b..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Agogo 3.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Agogo.wav b/samples/EMU World/Brazilian Kit/BK Agogo.wav deleted file mode 100644 index 32427d8fd..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Agogo.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Bass Drum.wav b/samples/EMU World/Brazilian Kit/BK Bass Drum.wav deleted file mode 100644 index 4327df666..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Bass Drum.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Bass Tom.wav b/samples/EMU World/Brazilian Kit/BK Bass Tom.wav deleted file mode 100644 index 41edda6ef..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Bass Tom.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Block 2.wav b/samples/EMU World/Brazilian Kit/BK Block 2.wav deleted file mode 100644 index cf93ca30f..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Block 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Block 3.wav b/samples/EMU World/Brazilian Kit/BK Block 3.wav deleted file mode 100644 index 01f21e839..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Block 3.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Block.wav b/samples/EMU World/Brazilian Kit/BK Block.wav deleted file mode 100644 index 311d7838f..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Block.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK ClapTamb 2.wav b/samples/EMU World/Brazilian Kit/BK ClapTamb 2.wav deleted file mode 100644 index 774ca930e..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK ClapTamb 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK ClapTamb.wav b/samples/EMU World/Brazilian Kit/BK ClapTamb.wav deleted file mode 100644 index 8a7893501..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK ClapTamb.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Conga 2.wav b/samples/EMU World/Brazilian Kit/BK Conga 2.wav deleted file mode 100644 index 1b75d7718..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Conga 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Conga.wav b/samples/EMU World/Brazilian Kit/BK Conga.wav deleted file mode 100644 index b821baabe..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Conga.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Cowbell 2.wav b/samples/EMU World/Brazilian Kit/BK Cowbell 2.wav deleted file mode 100644 index 5b5ea9675..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Cowbell 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Cowbell 3.wav b/samples/EMU World/Brazilian Kit/BK Cowbell 3.wav deleted file mode 100644 index 606cebbd9..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Cowbell 3.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Cowbell.wav b/samples/EMU World/Brazilian Kit/BK Cowbell.wav deleted file mode 100644 index 1ff22a611..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Cowbell.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK CrashTamb.wav b/samples/EMU World/Brazilian Kit/BK CrashTamb.wav deleted file mode 100644 index 6e60aaaee..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK CrashTamb.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Cup 2.wav b/samples/EMU World/Brazilian Kit/BK Cup 2.wav deleted file mode 100644 index 7106c0d5c..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Cup 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Cup.wav b/samples/EMU World/Brazilian Kit/BK Cup.wav deleted file mode 100644 index 0a3345a9a..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Cup.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Cymb 2.wav b/samples/EMU World/Brazilian Kit/BK Cymb 2.wav deleted file mode 100644 index 172832928..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Cymb 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Cymb 3.wav b/samples/EMU World/Brazilian Kit/BK Cymb 3.wav deleted file mode 100644 index 065a2997c..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Cymb 3.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Cymbal.wav b/samples/EMU World/Brazilian Kit/BK Cymbal.wav deleted file mode 100644 index 0b2148182..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Cymbal.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK High Tom 2.wav b/samples/EMU World/Brazilian Kit/BK High Tom 2.wav deleted file mode 100644 index 7fd16f347..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK High Tom 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK High Tom.wav b/samples/EMU World/Brazilian Kit/BK High Tom.wav deleted file mode 100644 index 29081e030..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK High Tom.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Low Tom 2.wav b/samples/EMU World/Brazilian Kit/BK Low Tom 2.wav deleted file mode 100644 index 44748d239..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Low Tom 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Low Tom.wav b/samples/EMU World/Brazilian Kit/BK Low Tom.wav deleted file mode 100644 index 7d3941260..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Low Tom.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Mid Tom 2.wav b/samples/EMU World/Brazilian Kit/BK Mid Tom 2.wav deleted file mode 100644 index 79b92688b..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Mid Tom 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Mid Tom.wav b/samples/EMU World/Brazilian Kit/BK Mid Tom.wav deleted file mode 100644 index 9b81a9f1c..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Mid Tom.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Mute Cymb.wav b/samples/EMU World/Brazilian Kit/BK Mute Cymb.wav deleted file mode 100644 index 4f0b8f02b..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Mute Cymb.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Rattle.wav b/samples/EMU World/Brazilian Kit/BK Rattle.wav deleted file mode 100644 index daf40b11c..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Rattle.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Ride 2.wav b/samples/EMU World/Brazilian Kit/BK Ride 2.wav deleted file mode 100644 index 622645d40..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Ride 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Ride.wav b/samples/EMU World/Brazilian Kit/BK Ride.wav deleted file mode 100644 index 82446d2de..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Ride.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Rimshot.wav b/samples/EMU World/Brazilian Kit/BK Rimshot.wav deleted file mode 100644 index 85f3e9930..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Rimshot.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Scraper 2.wav b/samples/EMU World/Brazilian Kit/BK Scraper 2.wav deleted file mode 100644 index c9066aace..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Scraper 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Scraper.wav b/samples/EMU World/Brazilian Kit/BK Scraper.wav deleted file mode 100644 index c70a9070f..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Scraper.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Shaker 2.wav b/samples/EMU World/Brazilian Kit/BK Shaker 2.wav deleted file mode 100644 index 249bf1dd4..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Shaker 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Shaker 3.wav b/samples/EMU World/Brazilian Kit/BK Shaker 3.wav deleted file mode 100644 index 106513bae..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Shaker 3.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Shaker.wav b/samples/EMU World/Brazilian Kit/BK Shaker.wav deleted file mode 100644 index c9d7cdc43..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Shaker.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Snare.wav b/samples/EMU World/Brazilian Kit/BK Snare.wav deleted file mode 100644 index 03c9d4309..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Snare.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK SnareTamb 2.wav b/samples/EMU World/Brazilian Kit/BK SnareTamb 2.wav deleted file mode 100644 index e519d6a28..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK SnareTamb 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK SnareTamb.wav b/samples/EMU World/Brazilian Kit/BK SnareTamb.wav deleted file mode 100644 index 204882591..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK SnareTamb.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Triangle 2.wav b/samples/EMU World/Brazilian Kit/BK Triangle 2.wav deleted file mode 100644 index 1d4b1759d..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Triangle 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Triangle 3.wav b/samples/EMU World/Brazilian Kit/BK Triangle 3.wav deleted file mode 100644 index 6ef3eb261..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Triangle 3.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Triangle 4.wav b/samples/EMU World/Brazilian Kit/BK Triangle 4.wav deleted file mode 100644 index 9c2c786eb..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Triangle 4.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Triangle 5.wav b/samples/EMU World/Brazilian Kit/BK Triangle 5.wav deleted file mode 100644 index e814cb619..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Triangle 5.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Triangle 6.wav b/samples/EMU World/Brazilian Kit/BK Triangle 6.wav deleted file mode 100644 index f53ce7b23..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Triangle 6.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Triangle.wav b/samples/EMU World/Brazilian Kit/BK Triangle.wav deleted file mode 100644 index 69f72bef7..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Triangle.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Whistle 2.wav b/samples/EMU World/Brazilian Kit/BK Whistle 2.wav deleted file mode 100644 index 37165eff2..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Whistle 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Whistle 3.wav b/samples/EMU World/Brazilian Kit/BK Whistle 3.wav deleted file mode 100644 index 36740c2b1..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Whistle 3.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Whistle.wav b/samples/EMU World/Brazilian Kit/BK Whistle.wav deleted file mode 100644 index 090d90548..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Whistle.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Woop 2.wav b/samples/EMU World/Brazilian Kit/BK Woop 2.wav deleted file mode 100644 index d7f54d199..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Woop 2.wav and /dev/null differ diff --git a/samples/EMU World/Brazilian Kit/BK Woop.wav b/samples/EMU World/Brazilian Kit/BK Woop.wav deleted file mode 100644 index a5995db28..000000000 Binary files a/samples/EMU World/Brazilian Kit/BK Woop.wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (1).wav b/samples/EMU World/Castanet/Castanet (1).wav deleted file mode 100644 index b1200d741..000000000 Binary files a/samples/EMU World/Castanet/Castanet (1).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (10).wav b/samples/EMU World/Castanet/Castanet (10).wav deleted file mode 100644 index 50dacf28f..000000000 Binary files a/samples/EMU World/Castanet/Castanet (10).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (11).wav b/samples/EMU World/Castanet/Castanet (11).wav deleted file mode 100644 index bf44175e5..000000000 Binary files a/samples/EMU World/Castanet/Castanet (11).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (12).wav b/samples/EMU World/Castanet/Castanet (12).wav deleted file mode 100644 index f111c777a..000000000 Binary files a/samples/EMU World/Castanet/Castanet (12).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (13).wav b/samples/EMU World/Castanet/Castanet (13).wav deleted file mode 100644 index 5d54384ad..000000000 Binary files a/samples/EMU World/Castanet/Castanet (13).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (14).wav b/samples/EMU World/Castanet/Castanet (14).wav deleted file mode 100644 index 41f7d6490..000000000 Binary files a/samples/EMU World/Castanet/Castanet (14).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (15).wav b/samples/EMU World/Castanet/Castanet (15).wav deleted file mode 100644 index 551f64fda..000000000 Binary files a/samples/EMU World/Castanet/Castanet (15).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (16).wav b/samples/EMU World/Castanet/Castanet (16).wav deleted file mode 100644 index 34977bc2c..000000000 Binary files a/samples/EMU World/Castanet/Castanet (16).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (17).wav b/samples/EMU World/Castanet/Castanet (17).wav deleted file mode 100644 index f60f52bee..000000000 Binary files a/samples/EMU World/Castanet/Castanet (17).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (18).wav b/samples/EMU World/Castanet/Castanet (18).wav deleted file mode 100644 index 7a6aeab5c..000000000 Binary files a/samples/EMU World/Castanet/Castanet (18).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (19).wav b/samples/EMU World/Castanet/Castanet (19).wav deleted file mode 100644 index 9ff64d7ea..000000000 Binary files a/samples/EMU World/Castanet/Castanet (19).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (2).wav b/samples/EMU World/Castanet/Castanet (2).wav deleted file mode 100644 index ea5d6a52f..000000000 Binary files a/samples/EMU World/Castanet/Castanet (2).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (20).wav b/samples/EMU World/Castanet/Castanet (20).wav deleted file mode 100644 index 76160a62d..000000000 Binary files a/samples/EMU World/Castanet/Castanet (20).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (21).wav b/samples/EMU World/Castanet/Castanet (21).wav deleted file mode 100644 index 44dc145be..000000000 Binary files a/samples/EMU World/Castanet/Castanet (21).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (22).wav b/samples/EMU World/Castanet/Castanet (22).wav deleted file mode 100644 index a19da1f99..000000000 Binary files a/samples/EMU World/Castanet/Castanet (22).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (23).wav b/samples/EMU World/Castanet/Castanet (23).wav deleted file mode 100644 index 4b6749fc5..000000000 Binary files a/samples/EMU World/Castanet/Castanet (23).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (24).wav b/samples/EMU World/Castanet/Castanet (24).wav deleted file mode 100644 index 9c9ab26ba..000000000 Binary files a/samples/EMU World/Castanet/Castanet (24).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (25).wav b/samples/EMU World/Castanet/Castanet (25).wav deleted file mode 100644 index 5f1659dd4..000000000 Binary files a/samples/EMU World/Castanet/Castanet (25).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (26).wav b/samples/EMU World/Castanet/Castanet (26).wav deleted file mode 100644 index c3e1e33ee..000000000 Binary files a/samples/EMU World/Castanet/Castanet (26).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (3).wav b/samples/EMU World/Castanet/Castanet (3).wav deleted file mode 100644 index 439ef8b00..000000000 Binary files a/samples/EMU World/Castanet/Castanet (3).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (4).wav b/samples/EMU World/Castanet/Castanet (4).wav deleted file mode 100644 index bacba58ee..000000000 Binary files a/samples/EMU World/Castanet/Castanet (4).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (5).wav b/samples/EMU World/Castanet/Castanet (5).wav deleted file mode 100644 index e2336f5ad..000000000 Binary files a/samples/EMU World/Castanet/Castanet (5).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (6).wav b/samples/EMU World/Castanet/Castanet (6).wav deleted file mode 100644 index a173decd5..000000000 Binary files a/samples/EMU World/Castanet/Castanet (6).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (7).wav b/samples/EMU World/Castanet/Castanet (7).wav deleted file mode 100644 index 0fd2c7863..000000000 Binary files a/samples/EMU World/Castanet/Castanet (7).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (8).wav b/samples/EMU World/Castanet/Castanet (8).wav deleted file mode 100644 index 11b55fed9..000000000 Binary files a/samples/EMU World/Castanet/Castanet (8).wav and /dev/null differ diff --git a/samples/EMU World/Castanet/Castanet (9).wav b/samples/EMU World/Castanet/Castanet (9).wav deleted file mode 100644 index 3d853fce5..000000000 Binary files a/samples/EMU World/Castanet/Castanet (9).wav and /dev/null differ diff --git a/samples/EMU World/Celtic/Celtic (1).wav b/samples/EMU World/Celtic/Celtic (1).wav deleted file mode 100644 index 1db7f445a..000000000 Binary files a/samples/EMU World/Celtic/Celtic (1).wav and /dev/null differ diff --git a/samples/EMU World/Celtic/Celtic (10).wav b/samples/EMU World/Celtic/Celtic (10).wav deleted file mode 100644 index 4d162c0bb..000000000 Binary files a/samples/EMU World/Celtic/Celtic (10).wav and /dev/null differ diff --git a/samples/EMU World/Celtic/Celtic (11).wav b/samples/EMU World/Celtic/Celtic (11).wav deleted file mode 100644 index 621a73b59..000000000 Binary files a/samples/EMU World/Celtic/Celtic (11).wav and /dev/null differ diff --git a/samples/EMU World/Celtic/Celtic (12).wav b/samples/EMU World/Celtic/Celtic (12).wav deleted file mode 100644 index 3515bd702..000000000 Binary files a/samples/EMU World/Celtic/Celtic (12).wav and /dev/null differ diff --git a/samples/EMU World/Celtic/Celtic (13).wav b/samples/EMU World/Celtic/Celtic (13).wav deleted file mode 100644 index fe178ccbb..000000000 Binary files a/samples/EMU World/Celtic/Celtic (13).wav and /dev/null differ diff --git a/samples/EMU World/Celtic/Celtic (2).wav b/samples/EMU World/Celtic/Celtic (2).wav deleted file mode 100644 index 7d954b106..000000000 Binary files a/samples/EMU World/Celtic/Celtic (2).wav and /dev/null differ diff --git a/samples/EMU World/Celtic/Celtic (3).wav b/samples/EMU World/Celtic/Celtic (3).wav deleted file mode 100644 index a62b76603..000000000 Binary files a/samples/EMU World/Celtic/Celtic (3).wav and /dev/null differ diff --git a/samples/EMU World/Celtic/Celtic (4).wav b/samples/EMU World/Celtic/Celtic (4).wav deleted file mode 100644 index c10219fb0..000000000 Binary files a/samples/EMU World/Celtic/Celtic (4).wav and /dev/null differ diff --git a/samples/EMU World/Celtic/Celtic (5).wav b/samples/EMU World/Celtic/Celtic (5).wav deleted file mode 100644 index bda825ea9..000000000 Binary files a/samples/EMU World/Celtic/Celtic (5).wav and /dev/null differ diff --git a/samples/EMU World/Celtic/Celtic (6).wav b/samples/EMU World/Celtic/Celtic (6).wav deleted file mode 100644 index e9965432c..000000000 Binary files a/samples/EMU World/Celtic/Celtic (6).wav and /dev/null differ diff --git a/samples/EMU World/Celtic/Celtic (7).wav b/samples/EMU World/Celtic/Celtic (7).wav deleted file mode 100644 index b47814fee..000000000 Binary files a/samples/EMU World/Celtic/Celtic (7).wav and /dev/null differ diff --git a/samples/EMU World/Celtic/Celtic (8).wav b/samples/EMU World/Celtic/Celtic (8).wav deleted file mode 100644 index 7be9f11a6..000000000 Binary files a/samples/EMU World/Celtic/Celtic (8).wav and /dev/null differ diff --git a/samples/EMU World/Celtic/Celtic (9).wav b/samples/EMU World/Celtic/Celtic (9).wav deleted file mode 100644 index 51c82db97..000000000 Binary files a/samples/EMU World/Celtic/Celtic (9).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (1).wav b/samples/EMU World/Clay Bongo/Clay Bongo (1).wav deleted file mode 100644 index ccdbf0db1..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (1).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (10).wav b/samples/EMU World/Clay Bongo/Clay Bongo (10).wav deleted file mode 100644 index 07c373e6c..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (10).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (11).wav b/samples/EMU World/Clay Bongo/Clay Bongo (11).wav deleted file mode 100644 index e4711c7cd..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (11).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (12).wav b/samples/EMU World/Clay Bongo/Clay Bongo (12).wav deleted file mode 100644 index 7d0bee366..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (12).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (13).wav b/samples/EMU World/Clay Bongo/Clay Bongo (13).wav deleted file mode 100644 index 5f4965b44..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (13).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (14).wav b/samples/EMU World/Clay Bongo/Clay Bongo (14).wav deleted file mode 100644 index 39b59f0e1..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (14).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (15).wav b/samples/EMU World/Clay Bongo/Clay Bongo (15).wav deleted file mode 100644 index 3271d6fc4..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (15).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (16).wav b/samples/EMU World/Clay Bongo/Clay Bongo (16).wav deleted file mode 100644 index c83829e1f..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (16).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (17).wav b/samples/EMU World/Clay Bongo/Clay Bongo (17).wav deleted file mode 100644 index 68eaf7517..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (17).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (18).wav b/samples/EMU World/Clay Bongo/Clay Bongo (18).wav deleted file mode 100644 index a382a81dc..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (18).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (19).wav b/samples/EMU World/Clay Bongo/Clay Bongo (19).wav deleted file mode 100644 index 15a0e1d24..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (19).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (2).wav b/samples/EMU World/Clay Bongo/Clay Bongo (2).wav deleted file mode 100644 index e45bdb50c..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (2).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (20).wav b/samples/EMU World/Clay Bongo/Clay Bongo (20).wav deleted file mode 100644 index 38df0bfea..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (20).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (3).wav b/samples/EMU World/Clay Bongo/Clay Bongo (3).wav deleted file mode 100644 index d6150355f..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (3).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (4).wav b/samples/EMU World/Clay Bongo/Clay Bongo (4).wav deleted file mode 100644 index e2b61a345..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (4).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (5).wav b/samples/EMU World/Clay Bongo/Clay Bongo (5).wav deleted file mode 100644 index a467af603..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (5).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (6).wav b/samples/EMU World/Clay Bongo/Clay Bongo (6).wav deleted file mode 100644 index 6ad44e666..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (6).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (7).wav b/samples/EMU World/Clay Bongo/Clay Bongo (7).wav deleted file mode 100644 index 9344cd114..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (7).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (8).wav b/samples/EMU World/Clay Bongo/Clay Bongo (8).wav deleted file mode 100644 index bd073c9e2..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (8).wav and /dev/null differ diff --git a/samples/EMU World/Clay Bongo/Clay Bongo (9).wav b/samples/EMU World/Clay Bongo/Clay Bongo (9).wav deleted file mode 100644 index 652cc41bc..000000000 Binary files a/samples/EMU World/Clay Bongo/Clay Bongo (9).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (1).wav b/samples/EMU World/Congo and Bongo/CongoBongo (1).wav deleted file mode 100644 index 37c6217dd..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (1).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (10).wav b/samples/EMU World/Congo and Bongo/CongoBongo (10).wav deleted file mode 100644 index 8b3c92df8..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (10).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (11).wav b/samples/EMU World/Congo and Bongo/CongoBongo (11).wav deleted file mode 100644 index 0e213fa5b..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (11).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (12).wav b/samples/EMU World/Congo and Bongo/CongoBongo (12).wav deleted file mode 100644 index d2adb2335..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (12).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (13).wav b/samples/EMU World/Congo and Bongo/CongoBongo (13).wav deleted file mode 100644 index 23fe11514..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (13).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (14).wav b/samples/EMU World/Congo and Bongo/CongoBongo (14).wav deleted file mode 100644 index 976b43c12..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (14).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (15).wav b/samples/EMU World/Congo and Bongo/CongoBongo (15).wav deleted file mode 100644 index 45462676c..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (15).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (16).wav b/samples/EMU World/Congo and Bongo/CongoBongo (16).wav deleted file mode 100644 index 970121784..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (16).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (17).wav b/samples/EMU World/Congo and Bongo/CongoBongo (17).wav deleted file mode 100644 index dde18bffd..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (17).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (18).wav b/samples/EMU World/Congo and Bongo/CongoBongo (18).wav deleted file mode 100644 index b5ac4162d..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (18).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (19).wav b/samples/EMU World/Congo and Bongo/CongoBongo (19).wav deleted file mode 100644 index 3391ee981..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (19).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (2).wav b/samples/EMU World/Congo and Bongo/CongoBongo (2).wav deleted file mode 100644 index 05867b9a0..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (2).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (20).wav b/samples/EMU World/Congo and Bongo/CongoBongo (20).wav deleted file mode 100644 index 5ef3ec111..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (20).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (21).wav b/samples/EMU World/Congo and Bongo/CongoBongo (21).wav deleted file mode 100644 index 01fc66d92..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (21).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (22).wav b/samples/EMU World/Congo and Bongo/CongoBongo (22).wav deleted file mode 100644 index cc9061df7..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (22).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (23).wav b/samples/EMU World/Congo and Bongo/CongoBongo (23).wav deleted file mode 100644 index a541a545a..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (23).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (3).wav b/samples/EMU World/Congo and Bongo/CongoBongo (3).wav deleted file mode 100644 index 16d674408..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (3).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (4).wav b/samples/EMU World/Congo and Bongo/CongoBongo (4).wav deleted file mode 100644 index b372f8b8d..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (4).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (5).wav b/samples/EMU World/Congo and Bongo/CongoBongo (5).wav deleted file mode 100644 index 8096da63a..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (5).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (6).wav b/samples/EMU World/Congo and Bongo/CongoBongo (6).wav deleted file mode 100644 index cd4e36298..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (6).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (7).wav b/samples/EMU World/Congo and Bongo/CongoBongo (7).wav deleted file mode 100644 index f3fd27012..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (7).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (8).wav b/samples/EMU World/Congo and Bongo/CongoBongo (8).wav deleted file mode 100644 index 4ceda3d87..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (8).wav and /dev/null differ diff --git a/samples/EMU World/Congo and Bongo/CongoBongo (9).wav b/samples/EMU World/Congo and Bongo/CongoBongo (9).wav deleted file mode 100644 index 76f821897..000000000 Binary files a/samples/EMU World/Congo and Bongo/CongoBongo (9).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (1).wav b/samples/EMU World/Davadaporan/Davadaporan (1).wav deleted file mode 100644 index e4edc2b6a..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (1).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (10).wav b/samples/EMU World/Davadaporan/Davadaporan (10).wav deleted file mode 100644 index 7e48d8825..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (10).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (11).wav b/samples/EMU World/Davadaporan/Davadaporan (11).wav deleted file mode 100644 index 50756bb8c..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (11).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (12).wav b/samples/EMU World/Davadaporan/Davadaporan (12).wav deleted file mode 100644 index 6171ea96c..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (12).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (13).wav b/samples/EMU World/Davadaporan/Davadaporan (13).wav deleted file mode 100644 index 0ac6b6491..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (13).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (14).wav b/samples/EMU World/Davadaporan/Davadaporan (14).wav deleted file mode 100644 index 81cdd1a52..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (14).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (15).wav b/samples/EMU World/Davadaporan/Davadaporan (15).wav deleted file mode 100644 index b8c88998e..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (15).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (16).wav b/samples/EMU World/Davadaporan/Davadaporan (16).wav deleted file mode 100644 index 9ac6def4d..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (16).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (17).wav b/samples/EMU World/Davadaporan/Davadaporan (17).wav deleted file mode 100644 index 67700c814..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (17).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (18).wav b/samples/EMU World/Davadaporan/Davadaporan (18).wav deleted file mode 100644 index 6ce986a3f..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (18).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (2).wav b/samples/EMU World/Davadaporan/Davadaporan (2).wav deleted file mode 100644 index 87d29c2a7..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (2).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (3).wav b/samples/EMU World/Davadaporan/Davadaporan (3).wav deleted file mode 100644 index f2bcf429c..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (3).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (4).wav b/samples/EMU World/Davadaporan/Davadaporan (4).wav deleted file mode 100644 index f510c48f8..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (4).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (5).wav b/samples/EMU World/Davadaporan/Davadaporan (5).wav deleted file mode 100644 index 5490453d6..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (5).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (6).wav b/samples/EMU World/Davadaporan/Davadaporan (6).wav deleted file mode 100644 index a4c532a41..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (6).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (7).wav b/samples/EMU World/Davadaporan/Davadaporan (7).wav deleted file mode 100644 index d3262032d..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (7).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (8).wav b/samples/EMU World/Davadaporan/Davadaporan (8).wav deleted file mode 100644 index 6d9c426df..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (8).wav and /dev/null differ diff --git a/samples/EMU World/Davadaporan/Davadaporan (9).wav b/samples/EMU World/Davadaporan/Davadaporan (9).wav deleted file mode 100644 index 184ae354c..000000000 Binary files a/samples/EMU World/Davadaporan/Davadaporan (9).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (1).wav b/samples/EMU World/Dholak/Dholak (1).wav deleted file mode 100644 index 87ffa6c84..000000000 Binary files a/samples/EMU World/Dholak/Dholak (1).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (10).wav b/samples/EMU World/Dholak/Dholak (10).wav deleted file mode 100644 index b2c65675c..000000000 Binary files a/samples/EMU World/Dholak/Dholak (10).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (11).wav b/samples/EMU World/Dholak/Dholak (11).wav deleted file mode 100644 index 58558ee20..000000000 Binary files a/samples/EMU World/Dholak/Dholak (11).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (12).wav b/samples/EMU World/Dholak/Dholak (12).wav deleted file mode 100644 index d7fa92474..000000000 Binary files a/samples/EMU World/Dholak/Dholak (12).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (13).wav b/samples/EMU World/Dholak/Dholak (13).wav deleted file mode 100644 index 349fbfcc8..000000000 Binary files a/samples/EMU World/Dholak/Dholak (13).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (14).wav b/samples/EMU World/Dholak/Dholak (14).wav deleted file mode 100644 index bd477e149..000000000 Binary files a/samples/EMU World/Dholak/Dholak (14).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (15).wav b/samples/EMU World/Dholak/Dholak (15).wav deleted file mode 100644 index cc6130ce3..000000000 Binary files a/samples/EMU World/Dholak/Dholak (15).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (16).wav b/samples/EMU World/Dholak/Dholak (16).wav deleted file mode 100644 index db52827dd..000000000 Binary files a/samples/EMU World/Dholak/Dholak (16).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (17).wav b/samples/EMU World/Dholak/Dholak (17).wav deleted file mode 100644 index 2533290df..000000000 Binary files a/samples/EMU World/Dholak/Dholak (17).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (18).wav b/samples/EMU World/Dholak/Dholak (18).wav deleted file mode 100644 index 1f1f6c99b..000000000 Binary files a/samples/EMU World/Dholak/Dholak (18).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (2).wav b/samples/EMU World/Dholak/Dholak (2).wav deleted file mode 100644 index ad80e89c3..000000000 Binary files a/samples/EMU World/Dholak/Dholak (2).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (3).wav b/samples/EMU World/Dholak/Dholak (3).wav deleted file mode 100644 index 9970e600f..000000000 Binary files a/samples/EMU World/Dholak/Dholak (3).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (4).wav b/samples/EMU World/Dholak/Dholak (4).wav deleted file mode 100644 index 85a33a3f5..000000000 Binary files a/samples/EMU World/Dholak/Dholak (4).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (5).wav b/samples/EMU World/Dholak/Dholak (5).wav deleted file mode 100644 index d30a5998d..000000000 Binary files a/samples/EMU World/Dholak/Dholak (5).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (6).wav b/samples/EMU World/Dholak/Dholak (6).wav deleted file mode 100644 index 72a87985a..000000000 Binary files a/samples/EMU World/Dholak/Dholak (6).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (7).wav b/samples/EMU World/Dholak/Dholak (7).wav deleted file mode 100644 index 7607a518c..000000000 Binary files a/samples/EMU World/Dholak/Dholak (7).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (8).wav b/samples/EMU World/Dholak/Dholak (8).wav deleted file mode 100644 index 34ecc89e4..000000000 Binary files a/samples/EMU World/Dholak/Dholak (8).wav and /dev/null differ diff --git a/samples/EMU World/Dholak/Dholak (9).wav b/samples/EMU World/Dholak/Dholak (9).wav deleted file mode 100644 index 54df876d3..000000000 Binary files a/samples/EMU World/Dholak/Dholak (9).wav and /dev/null differ diff --git a/samples/EMU World/Djembe/Djembe (1).wav b/samples/EMU World/Djembe/Djembe (1).wav deleted file mode 100644 index 986804777..000000000 Binary files a/samples/EMU World/Djembe/Djembe (1).wav and /dev/null differ diff --git a/samples/EMU World/Djembe/Djembe (10).wav b/samples/EMU World/Djembe/Djembe (10).wav deleted file mode 100644 index 7b366ebb1..000000000 Binary files a/samples/EMU World/Djembe/Djembe (10).wav and /dev/null differ diff --git a/samples/EMU World/Djembe/Djembe (11).wav b/samples/EMU World/Djembe/Djembe (11).wav deleted file mode 100644 index 3f95586cb..000000000 Binary files a/samples/EMU World/Djembe/Djembe (11).wav and /dev/null differ diff --git a/samples/EMU World/Djembe/Djembe (12).wav b/samples/EMU World/Djembe/Djembe (12).wav deleted file mode 100644 index dca51e9af..000000000 Binary files a/samples/EMU World/Djembe/Djembe (12).wav and /dev/null differ diff --git a/samples/EMU World/Djembe/Djembe (2).wav b/samples/EMU World/Djembe/Djembe (2).wav deleted file mode 100644 index 517836a98..000000000 Binary files a/samples/EMU World/Djembe/Djembe (2).wav and /dev/null differ diff --git a/samples/EMU World/Djembe/Djembe (3).wav b/samples/EMU World/Djembe/Djembe (3).wav deleted file mode 100644 index 5e972bce2..000000000 Binary files a/samples/EMU World/Djembe/Djembe (3).wav and /dev/null differ diff --git a/samples/EMU World/Djembe/Djembe (4).wav b/samples/EMU World/Djembe/Djembe (4).wav deleted file mode 100644 index 502fdb4ea..000000000 Binary files a/samples/EMU World/Djembe/Djembe (4).wav and /dev/null differ diff --git a/samples/EMU World/Djembe/Djembe (5).wav b/samples/EMU World/Djembe/Djembe (5).wav deleted file mode 100644 index f190ff4c6..000000000 Binary files a/samples/EMU World/Djembe/Djembe (5).wav and /dev/null differ diff --git a/samples/EMU World/Djembe/Djembe (6).wav b/samples/EMU World/Djembe/Djembe (6).wav deleted file mode 100644 index 7df8891fa..000000000 Binary files a/samples/EMU World/Djembe/Djembe (6).wav and /dev/null differ diff --git a/samples/EMU World/Djembe/Djembe (7).wav b/samples/EMU World/Djembe/Djembe (7).wav deleted file mode 100644 index 2054f7093..000000000 Binary files a/samples/EMU World/Djembe/Djembe (7).wav and /dev/null differ diff --git a/samples/EMU World/Djembe/Djembe (8).wav b/samples/EMU World/Djembe/Djembe (8).wav deleted file mode 100644 index d625e444c..000000000 Binary files a/samples/EMU World/Djembe/Djembe (8).wav and /dev/null differ diff --git a/samples/EMU World/Djembe/Djembe (9).wav b/samples/EMU World/Djembe/Djembe (9).wav deleted file mode 100644 index 662155176..000000000 Binary files a/samples/EMU World/Djembe/Djembe (9).wav and /dev/null differ diff --git a/samples/EMU World/Doom Gong/Doom Gong (1).wav b/samples/EMU World/Doom Gong/Doom Gong (1).wav deleted file mode 100644 index f675dd219..000000000 Binary files a/samples/EMU World/Doom Gong/Doom Gong (1).wav and /dev/null differ diff --git a/samples/EMU World/Doom Gong/Doom Gong (2).wav b/samples/EMU World/Doom Gong/Doom Gong (2).wav deleted file mode 100644 index 650755c01..000000000 Binary files a/samples/EMU World/Doom Gong/Doom Gong (2).wav and /dev/null differ diff --git a/samples/EMU World/Doom Gong/Doom Gong (3).wav b/samples/EMU World/Doom Gong/Doom Gong (3).wav deleted file mode 100644 index 9eb7d8784..000000000 Binary files a/samples/EMU World/Doom Gong/Doom Gong (3).wav and /dev/null differ diff --git a/samples/EMU World/Doom Gong/Doom Gong (4).wav b/samples/EMU World/Doom Gong/Doom Gong (4).wav deleted file mode 100644 index 2886c9695..000000000 Binary files a/samples/EMU World/Doom Gong/Doom Gong (4).wav and /dev/null differ diff --git a/samples/EMU World/Doom Gong/Doom Gong (5).wav b/samples/EMU World/Doom Gong/Doom Gong (5).wav deleted file mode 100644 index 5a7b81bc0..000000000 Binary files a/samples/EMU World/Doom Gong/Doom Gong (5).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (1).wav b/samples/EMU World/DumBongo/DumBongo (1).wav deleted file mode 100644 index 1c8b70ca1..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (1).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (10).wav b/samples/EMU World/DumBongo/DumBongo (10).wav deleted file mode 100644 index 166520771..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (10).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (11).wav b/samples/EMU World/DumBongo/DumBongo (11).wav deleted file mode 100644 index 772248576..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (11).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (12).wav b/samples/EMU World/DumBongo/DumBongo (12).wav deleted file mode 100644 index 9da784adb..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (12).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (13).wav b/samples/EMU World/DumBongo/DumBongo (13).wav deleted file mode 100644 index 22f4f6fad..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (13).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (14).wav b/samples/EMU World/DumBongo/DumBongo (14).wav deleted file mode 100644 index 486fa1e90..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (14).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (15).wav b/samples/EMU World/DumBongo/DumBongo (15).wav deleted file mode 100644 index 868fd3aed..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (15).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (16).wav b/samples/EMU World/DumBongo/DumBongo (16).wav deleted file mode 100644 index ae4b31790..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (16).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (17).wav b/samples/EMU World/DumBongo/DumBongo (17).wav deleted file mode 100644 index 0052ae4cb..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (17).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (18).wav b/samples/EMU World/DumBongo/DumBongo (18).wav deleted file mode 100644 index 911065a68..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (18).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (19).wav b/samples/EMU World/DumBongo/DumBongo (19).wav deleted file mode 100644 index 40b03cd18..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (19).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (2).wav b/samples/EMU World/DumBongo/DumBongo (2).wav deleted file mode 100644 index 3c7cff6cb..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (2).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (20).wav b/samples/EMU World/DumBongo/DumBongo (20).wav deleted file mode 100644 index 701b0306a..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (20).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (21).wav b/samples/EMU World/DumBongo/DumBongo (21).wav deleted file mode 100644 index 509f6f734..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (21).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (22).wav b/samples/EMU World/DumBongo/DumBongo (22).wav deleted file mode 100644 index 91ee77b04..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (22).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (23).wav b/samples/EMU World/DumBongo/DumBongo (23).wav deleted file mode 100644 index 9eca58b31..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (23).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (3).wav b/samples/EMU World/DumBongo/DumBongo (3).wav deleted file mode 100644 index 8cd1e2aef..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (3).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (4).wav b/samples/EMU World/DumBongo/DumBongo (4).wav deleted file mode 100644 index df6a42e72..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (4).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (5).wav b/samples/EMU World/DumBongo/DumBongo (5).wav deleted file mode 100644 index 5d5c7f239..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (5).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (6).wav b/samples/EMU World/DumBongo/DumBongo (6).wav deleted file mode 100644 index 6256f5d50..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (6).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (7).wav b/samples/EMU World/DumBongo/DumBongo (7).wav deleted file mode 100644 index aaa48885b..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (7).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (8).wav b/samples/EMU World/DumBongo/DumBongo (8).wav deleted file mode 100644 index f0772558c..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (8).wav and /dev/null differ diff --git a/samples/EMU World/DumBongo/DumBongo (9).wav b/samples/EMU World/DumBongo/DumBongo (9).wav deleted file mode 100644 index 0a49dbdf2..000000000 Binary files a/samples/EMU World/DumBongo/DumBongo (9).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (1).wav b/samples/EMU World/Earth Kit/Earth Kit (1).wav deleted file mode 100644 index 55ebd4fec..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (1).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (10).wav b/samples/EMU World/Earth Kit/Earth Kit (10).wav deleted file mode 100644 index 9156b24ca..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (10).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (100).wav b/samples/EMU World/Earth Kit/Earth Kit (100).wav deleted file mode 100644 index 2b9ac6886..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (100).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (101).wav b/samples/EMU World/Earth Kit/Earth Kit (101).wav deleted file mode 100644 index 6b7352a2d..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (101).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (102).wav b/samples/EMU World/Earth Kit/Earth Kit (102).wav deleted file mode 100644 index 7bfe23898..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (102).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (103).wav b/samples/EMU World/Earth Kit/Earth Kit (103).wav deleted file mode 100644 index c8e4119c3..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (103).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (104).wav b/samples/EMU World/Earth Kit/Earth Kit (104).wav deleted file mode 100644 index f35b832b7..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (104).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (105).wav b/samples/EMU World/Earth Kit/Earth Kit (105).wav deleted file mode 100644 index 112b14f47..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (105).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (106).wav b/samples/EMU World/Earth Kit/Earth Kit (106).wav deleted file mode 100644 index 5a6e383c5..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (106).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (107).wav b/samples/EMU World/Earth Kit/Earth Kit (107).wav deleted file mode 100644 index 337c88a32..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (107).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (108).wav b/samples/EMU World/Earth Kit/Earth Kit (108).wav deleted file mode 100644 index 6e2b43467..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (108).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (109).wav b/samples/EMU World/Earth Kit/Earth Kit (109).wav deleted file mode 100644 index 3f78f61cf..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (109).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (11).wav b/samples/EMU World/Earth Kit/Earth Kit (11).wav deleted file mode 100644 index 97b07618f..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (11).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (110).wav b/samples/EMU World/Earth Kit/Earth Kit (110).wav deleted file mode 100644 index 8edecf4d0..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (110).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (111).wav b/samples/EMU World/Earth Kit/Earth Kit (111).wav deleted file mode 100644 index f2e3d0e72..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (111).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (112).wav b/samples/EMU World/Earth Kit/Earth Kit (112).wav deleted file mode 100644 index 9c457bf0a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (112).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (113).wav b/samples/EMU World/Earth Kit/Earth Kit (113).wav deleted file mode 100644 index 35d5ccb59..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (113).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (114).wav b/samples/EMU World/Earth Kit/Earth Kit (114).wav deleted file mode 100644 index a2200840e..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (114).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (115).wav b/samples/EMU World/Earth Kit/Earth Kit (115).wav deleted file mode 100644 index 5a4900b9f..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (115).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (116).wav b/samples/EMU World/Earth Kit/Earth Kit (116).wav deleted file mode 100644 index 6548a9674..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (116).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (117).wav b/samples/EMU World/Earth Kit/Earth Kit (117).wav deleted file mode 100644 index 33fbc0075..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (117).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (118).wav b/samples/EMU World/Earth Kit/Earth Kit (118).wav deleted file mode 100644 index fdc5774da..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (118).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (119).wav b/samples/EMU World/Earth Kit/Earth Kit (119).wav deleted file mode 100644 index d869df3fd..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (119).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (12).wav b/samples/EMU World/Earth Kit/Earth Kit (12).wav deleted file mode 100644 index cd70c0b48..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (12).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (120).wav b/samples/EMU World/Earth Kit/Earth Kit (120).wav deleted file mode 100644 index dfc57b5c5..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (120).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (121).wav b/samples/EMU World/Earth Kit/Earth Kit (121).wav deleted file mode 100644 index dbf764de1..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (121).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (122).wav b/samples/EMU World/Earth Kit/Earth Kit (122).wav deleted file mode 100644 index 245d2d26b..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (122).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (123).wav b/samples/EMU World/Earth Kit/Earth Kit (123).wav deleted file mode 100644 index 2d3d4d6ee..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (123).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (124).wav b/samples/EMU World/Earth Kit/Earth Kit (124).wav deleted file mode 100644 index 8337547a4..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (124).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (125).wav b/samples/EMU World/Earth Kit/Earth Kit (125).wav deleted file mode 100644 index e77e7a76f..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (125).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (126).wav b/samples/EMU World/Earth Kit/Earth Kit (126).wav deleted file mode 100644 index b1663af3a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (126).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (127).wav b/samples/EMU World/Earth Kit/Earth Kit (127).wav deleted file mode 100644 index 55f43581a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (127).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (128).wav b/samples/EMU World/Earth Kit/Earth Kit (128).wav deleted file mode 100644 index aca73a54f..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (128).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (129).wav b/samples/EMU World/Earth Kit/Earth Kit (129).wav deleted file mode 100644 index f7c9a6491..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (129).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (13).wav b/samples/EMU World/Earth Kit/Earth Kit (13).wav deleted file mode 100644 index 794062e8e..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (13).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (130).wav b/samples/EMU World/Earth Kit/Earth Kit (130).wav deleted file mode 100644 index 6012d1c06..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (130).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (131).wav b/samples/EMU World/Earth Kit/Earth Kit (131).wav deleted file mode 100644 index 8e3ca6b18..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (131).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (132).wav b/samples/EMU World/Earth Kit/Earth Kit (132).wav deleted file mode 100644 index e18f16422..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (132).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (133).wav b/samples/EMU World/Earth Kit/Earth Kit (133).wav deleted file mode 100644 index 03c6ca4b7..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (133).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (134).wav b/samples/EMU World/Earth Kit/Earth Kit (134).wav deleted file mode 100644 index 8e32be1f5..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (134).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (135).wav b/samples/EMU World/Earth Kit/Earth Kit (135).wav deleted file mode 100644 index 269085a45..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (135).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (136).wav b/samples/EMU World/Earth Kit/Earth Kit (136).wav deleted file mode 100644 index 2602f493d..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (136).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (137).wav b/samples/EMU World/Earth Kit/Earth Kit (137).wav deleted file mode 100644 index f8a1821b0..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (137).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (138).wav b/samples/EMU World/Earth Kit/Earth Kit (138).wav deleted file mode 100644 index 0b651093a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (138).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (139).wav b/samples/EMU World/Earth Kit/Earth Kit (139).wav deleted file mode 100644 index 4866c9b64..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (139).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (14).wav b/samples/EMU World/Earth Kit/Earth Kit (14).wav deleted file mode 100644 index e9507bc48..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (14).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (140).wav b/samples/EMU World/Earth Kit/Earth Kit (140).wav deleted file mode 100644 index c2d819542..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (140).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (141).wav b/samples/EMU World/Earth Kit/Earth Kit (141).wav deleted file mode 100644 index dd00835ee..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (141).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (142).wav b/samples/EMU World/Earth Kit/Earth Kit (142).wav deleted file mode 100644 index f7f6ff99a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (142).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (143).wav b/samples/EMU World/Earth Kit/Earth Kit (143).wav deleted file mode 100644 index 3d13d71b4..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (143).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (144).wav b/samples/EMU World/Earth Kit/Earth Kit (144).wav deleted file mode 100644 index 0b5be1ccf..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (144).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (145).wav b/samples/EMU World/Earth Kit/Earth Kit (145).wav deleted file mode 100644 index 499fcefe1..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (145).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (146).wav b/samples/EMU World/Earth Kit/Earth Kit (146).wav deleted file mode 100644 index 8f6103427..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (146).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (147).wav b/samples/EMU World/Earth Kit/Earth Kit (147).wav deleted file mode 100644 index acbc42194..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (147).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (148).wav b/samples/EMU World/Earth Kit/Earth Kit (148).wav deleted file mode 100644 index 0e38ca7f4..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (148).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (149).wav b/samples/EMU World/Earth Kit/Earth Kit (149).wav deleted file mode 100644 index 1952dbed3..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (149).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (15).wav b/samples/EMU World/Earth Kit/Earth Kit (15).wav deleted file mode 100644 index bf78b2f40..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (15).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (150).wav b/samples/EMU World/Earth Kit/Earth Kit (150).wav deleted file mode 100644 index 93184082a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (150).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (151).wav b/samples/EMU World/Earth Kit/Earth Kit (151).wav deleted file mode 100644 index 35d760699..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (151).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (152).wav b/samples/EMU World/Earth Kit/Earth Kit (152).wav deleted file mode 100644 index 67150f7a1..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (152).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (153).wav b/samples/EMU World/Earth Kit/Earth Kit (153).wav deleted file mode 100644 index 4c01469ac..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (153).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (154).wav b/samples/EMU World/Earth Kit/Earth Kit (154).wav deleted file mode 100644 index 402d42a66..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (154).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (155).wav b/samples/EMU World/Earth Kit/Earth Kit (155).wav deleted file mode 100644 index 5b4ee2dfb..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (155).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (156).wav b/samples/EMU World/Earth Kit/Earth Kit (156).wav deleted file mode 100644 index 1c35eb3fd..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (156).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (157).wav b/samples/EMU World/Earth Kit/Earth Kit (157).wav deleted file mode 100644 index ff912266a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (157).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (158).wav b/samples/EMU World/Earth Kit/Earth Kit (158).wav deleted file mode 100644 index f81c0e8b9..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (158).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (159).wav b/samples/EMU World/Earth Kit/Earth Kit (159).wav deleted file mode 100644 index 15c5a1b6a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (159).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (16).wav b/samples/EMU World/Earth Kit/Earth Kit (16).wav deleted file mode 100644 index 26c3b510f..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (16).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (160).wav b/samples/EMU World/Earth Kit/Earth Kit (160).wav deleted file mode 100644 index 9f1ec3e61..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (160).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (161).wav b/samples/EMU World/Earth Kit/Earth Kit (161).wav deleted file mode 100644 index 07b83eb2e..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (161).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (162).wav b/samples/EMU World/Earth Kit/Earth Kit (162).wav deleted file mode 100644 index 86a39f27b..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (162).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (163).wav b/samples/EMU World/Earth Kit/Earth Kit (163).wav deleted file mode 100644 index 65b6084d9..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (163).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (164).wav b/samples/EMU World/Earth Kit/Earth Kit (164).wav deleted file mode 100644 index 6c5591ad9..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (164).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (165).wav b/samples/EMU World/Earth Kit/Earth Kit (165).wav deleted file mode 100644 index 3d8b01b8a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (165).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (166).wav b/samples/EMU World/Earth Kit/Earth Kit (166).wav deleted file mode 100644 index 9b4c9a9a6..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (166).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (167).wav b/samples/EMU World/Earth Kit/Earth Kit (167).wav deleted file mode 100644 index 103e4fb32..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (167).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (168).wav b/samples/EMU World/Earth Kit/Earth Kit (168).wav deleted file mode 100644 index de25f50ea..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (168).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (169).wav b/samples/EMU World/Earth Kit/Earth Kit (169).wav deleted file mode 100644 index c6e1306d3..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (169).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (17).wav b/samples/EMU World/Earth Kit/Earth Kit (17).wav deleted file mode 100644 index b1c6c7465..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (17).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (170).wav b/samples/EMU World/Earth Kit/Earth Kit (170).wav deleted file mode 100644 index 5d397bfb2..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (170).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (171).wav b/samples/EMU World/Earth Kit/Earth Kit (171).wav deleted file mode 100644 index faf808d8e..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (171).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (172).wav b/samples/EMU World/Earth Kit/Earth Kit (172).wav deleted file mode 100644 index 6f5f06c7d..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (172).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (173).wav b/samples/EMU World/Earth Kit/Earth Kit (173).wav deleted file mode 100644 index 91cc83bdc..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (173).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (174).wav b/samples/EMU World/Earth Kit/Earth Kit (174).wav deleted file mode 100644 index b0769c0c1..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (174).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (175).wav b/samples/EMU World/Earth Kit/Earth Kit (175).wav deleted file mode 100644 index ed5915053..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (175).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (176).wav b/samples/EMU World/Earth Kit/Earth Kit (176).wav deleted file mode 100644 index 7ba9afd55..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (176).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (177).wav b/samples/EMU World/Earth Kit/Earth Kit (177).wav deleted file mode 100644 index 7451fe21c..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (177).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (178).wav b/samples/EMU World/Earth Kit/Earth Kit (178).wav deleted file mode 100644 index 18cdf1392..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (178).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (179).wav b/samples/EMU World/Earth Kit/Earth Kit (179).wav deleted file mode 100644 index 6f69686d7..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (179).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (18).wav b/samples/EMU World/Earth Kit/Earth Kit (18).wav deleted file mode 100644 index 8fc52f270..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (18).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (180).wav b/samples/EMU World/Earth Kit/Earth Kit (180).wav deleted file mode 100644 index 16d2ca7c5..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (180).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (181).wav b/samples/EMU World/Earth Kit/Earth Kit (181).wav deleted file mode 100644 index e27752903..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (181).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (182).wav b/samples/EMU World/Earth Kit/Earth Kit (182).wav deleted file mode 100644 index 0712caf85..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (182).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (183).wav b/samples/EMU World/Earth Kit/Earth Kit (183).wav deleted file mode 100644 index ed0c3c085..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (183).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (184).wav b/samples/EMU World/Earth Kit/Earth Kit (184).wav deleted file mode 100644 index b2a899e3c..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (184).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (185).wav b/samples/EMU World/Earth Kit/Earth Kit (185).wav deleted file mode 100644 index 87988aaca..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (185).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (186).wav b/samples/EMU World/Earth Kit/Earth Kit (186).wav deleted file mode 100644 index e16c15ec1..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (186).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (187).wav b/samples/EMU World/Earth Kit/Earth Kit (187).wav deleted file mode 100644 index ab8a84d02..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (187).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (188).wav b/samples/EMU World/Earth Kit/Earth Kit (188).wav deleted file mode 100644 index 83606a28e..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (188).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (189).wav b/samples/EMU World/Earth Kit/Earth Kit (189).wav deleted file mode 100644 index 97358118f..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (189).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (19).wav b/samples/EMU World/Earth Kit/Earth Kit (19).wav deleted file mode 100644 index 5048cc53b..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (19).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (190).wav b/samples/EMU World/Earth Kit/Earth Kit (190).wav deleted file mode 100644 index bcd3f5572..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (190).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (191).wav b/samples/EMU World/Earth Kit/Earth Kit (191).wav deleted file mode 100644 index 18160fc96..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (191).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (192).wav b/samples/EMU World/Earth Kit/Earth Kit (192).wav deleted file mode 100644 index 8a56fe565..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (192).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (193).wav b/samples/EMU World/Earth Kit/Earth Kit (193).wav deleted file mode 100644 index 3734ad193..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (193).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (194).wav b/samples/EMU World/Earth Kit/Earth Kit (194).wav deleted file mode 100644 index 5d9f0f46a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (194).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (195).wav b/samples/EMU World/Earth Kit/Earth Kit (195).wav deleted file mode 100644 index b013ebd85..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (195).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (196).wav b/samples/EMU World/Earth Kit/Earth Kit (196).wav deleted file mode 100644 index 9af727a38..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (196).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (197).wav b/samples/EMU World/Earth Kit/Earth Kit (197).wav deleted file mode 100644 index 239313125..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (197).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (198).wav b/samples/EMU World/Earth Kit/Earth Kit (198).wav deleted file mode 100644 index 6d2790d44..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (198).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (199).wav b/samples/EMU World/Earth Kit/Earth Kit (199).wav deleted file mode 100644 index 51dee2d7b..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (199).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (2).wav b/samples/EMU World/Earth Kit/Earth Kit (2).wav deleted file mode 100644 index 32ad859dc..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (2).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (20).wav b/samples/EMU World/Earth Kit/Earth Kit (20).wav deleted file mode 100644 index 6437a0d75..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (20).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (200).wav b/samples/EMU World/Earth Kit/Earth Kit (200).wav deleted file mode 100644 index 1cca2d8ce..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (200).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (201).wav b/samples/EMU World/Earth Kit/Earth Kit (201).wav deleted file mode 100644 index e6c8fd59a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (201).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (202).wav b/samples/EMU World/Earth Kit/Earth Kit (202).wav deleted file mode 100644 index c7dc5b379..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (202).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (203).wav b/samples/EMU World/Earth Kit/Earth Kit (203).wav deleted file mode 100644 index c928006f1..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (203).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (204).wav b/samples/EMU World/Earth Kit/Earth Kit (204).wav deleted file mode 100644 index b86febe6e..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (204).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (205).wav b/samples/EMU World/Earth Kit/Earth Kit (205).wav deleted file mode 100644 index 52e15632f..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (205).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (206).wav b/samples/EMU World/Earth Kit/Earth Kit (206).wav deleted file mode 100644 index 3c3715ed9..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (206).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (207).wav b/samples/EMU World/Earth Kit/Earth Kit (207).wav deleted file mode 100644 index 6d867ac8c..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (207).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (208).wav b/samples/EMU World/Earth Kit/Earth Kit (208).wav deleted file mode 100644 index e5bad2380..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (208).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (209).wav b/samples/EMU World/Earth Kit/Earth Kit (209).wav deleted file mode 100644 index c69e28e2a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (209).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (21).wav b/samples/EMU World/Earth Kit/Earth Kit (21).wav deleted file mode 100644 index be1ea8a1d..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (21).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (210).wav b/samples/EMU World/Earth Kit/Earth Kit (210).wav deleted file mode 100644 index dd224f9a0..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (210).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (211).wav b/samples/EMU World/Earth Kit/Earth Kit (211).wav deleted file mode 100644 index 547b5c148..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (211).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (212).wav b/samples/EMU World/Earth Kit/Earth Kit (212).wav deleted file mode 100644 index f870b7219..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (212).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (213).wav b/samples/EMU World/Earth Kit/Earth Kit (213).wav deleted file mode 100644 index 3015f0bbc..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (213).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (214).wav b/samples/EMU World/Earth Kit/Earth Kit (214).wav deleted file mode 100644 index 5bb07b05c..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (214).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (215).wav b/samples/EMU World/Earth Kit/Earth Kit (215).wav deleted file mode 100644 index 78f503064..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (215).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (216).wav b/samples/EMU World/Earth Kit/Earth Kit (216).wav deleted file mode 100644 index bff4f777c..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (216).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (217).wav b/samples/EMU World/Earth Kit/Earth Kit (217).wav deleted file mode 100644 index 4dc0eb305..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (217).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (218).wav b/samples/EMU World/Earth Kit/Earth Kit (218).wav deleted file mode 100644 index cf04887c6..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (218).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (219).wav b/samples/EMU World/Earth Kit/Earth Kit (219).wav deleted file mode 100644 index 9f3fa4b3a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (219).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (22).wav b/samples/EMU World/Earth Kit/Earth Kit (22).wav deleted file mode 100644 index 9f5e32c36..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (22).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (220).wav b/samples/EMU World/Earth Kit/Earth Kit (220).wav deleted file mode 100644 index ff40c949a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (220).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (221).wav b/samples/EMU World/Earth Kit/Earth Kit (221).wav deleted file mode 100644 index 7d759f6c1..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (221).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (222).wav b/samples/EMU World/Earth Kit/Earth Kit (222).wav deleted file mode 100644 index d31bf3f00..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (222).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (223).wav b/samples/EMU World/Earth Kit/Earth Kit (223).wav deleted file mode 100644 index 3692869a9..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (223).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (224).wav b/samples/EMU World/Earth Kit/Earth Kit (224).wav deleted file mode 100644 index 0f260febd..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (224).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (225).wav b/samples/EMU World/Earth Kit/Earth Kit (225).wav deleted file mode 100644 index 1caa90093..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (225).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (226).wav b/samples/EMU World/Earth Kit/Earth Kit (226).wav deleted file mode 100644 index 3e195d86c..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (226).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (227).wav b/samples/EMU World/Earth Kit/Earth Kit (227).wav deleted file mode 100644 index f3e6c9b3e..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (227).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (228).wav b/samples/EMU World/Earth Kit/Earth Kit (228).wav deleted file mode 100644 index 87b67bb14..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (228).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (229).wav b/samples/EMU World/Earth Kit/Earth Kit (229).wav deleted file mode 100644 index e4cda2e7c..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (229).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (23).wav b/samples/EMU World/Earth Kit/Earth Kit (23).wav deleted file mode 100644 index 044fc3b01..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (23).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (24).wav b/samples/EMU World/Earth Kit/Earth Kit (24).wav deleted file mode 100644 index 97ece20de..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (24).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (25).wav b/samples/EMU World/Earth Kit/Earth Kit (25).wav deleted file mode 100644 index 62b2668c8..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (25).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (26).wav b/samples/EMU World/Earth Kit/Earth Kit (26).wav deleted file mode 100644 index 452c09e7c..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (26).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (27).wav b/samples/EMU World/Earth Kit/Earth Kit (27).wav deleted file mode 100644 index 26158331f..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (27).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (28).wav b/samples/EMU World/Earth Kit/Earth Kit (28).wav deleted file mode 100644 index 83329d2d0..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (28).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (29).wav b/samples/EMU World/Earth Kit/Earth Kit (29).wav deleted file mode 100644 index 829477eaf..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (29).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (3).wav b/samples/EMU World/Earth Kit/Earth Kit (3).wav deleted file mode 100644 index 36bb5a173..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (3).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (30).wav b/samples/EMU World/Earth Kit/Earth Kit (30).wav deleted file mode 100644 index a213a1fd3..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (30).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (31).wav b/samples/EMU World/Earth Kit/Earth Kit (31).wav deleted file mode 100644 index bd31adcac..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (31).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (32).wav b/samples/EMU World/Earth Kit/Earth Kit (32).wav deleted file mode 100644 index 213d093d1..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (32).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (33).wav b/samples/EMU World/Earth Kit/Earth Kit (33).wav deleted file mode 100644 index 07c0a478e..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (33).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (34).wav b/samples/EMU World/Earth Kit/Earth Kit (34).wav deleted file mode 100644 index f4d7ead00..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (34).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (35).wav b/samples/EMU World/Earth Kit/Earth Kit (35).wav deleted file mode 100644 index 3f50f61af..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (35).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (36).wav b/samples/EMU World/Earth Kit/Earth Kit (36).wav deleted file mode 100644 index ec75f68ef..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (36).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (37).wav b/samples/EMU World/Earth Kit/Earth Kit (37).wav deleted file mode 100644 index a1bfd23bb..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (37).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (38).wav b/samples/EMU World/Earth Kit/Earth Kit (38).wav deleted file mode 100644 index 681303a20..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (38).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (39).wav b/samples/EMU World/Earth Kit/Earth Kit (39).wav deleted file mode 100644 index a4e63b9db..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (39).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (4).wav b/samples/EMU World/Earth Kit/Earth Kit (4).wav deleted file mode 100644 index d2864ae2d..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (4).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (40).wav b/samples/EMU World/Earth Kit/Earth Kit (40).wav deleted file mode 100644 index 819f375a2..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (40).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (41).wav b/samples/EMU World/Earth Kit/Earth Kit (41).wav deleted file mode 100644 index 242d406b6..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (41).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (42).wav b/samples/EMU World/Earth Kit/Earth Kit (42).wav deleted file mode 100644 index 813095794..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (42).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (43).wav b/samples/EMU World/Earth Kit/Earth Kit (43).wav deleted file mode 100644 index 649d745a9..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (43).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (44).wav b/samples/EMU World/Earth Kit/Earth Kit (44).wav deleted file mode 100644 index 19919726d..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (44).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (45).wav b/samples/EMU World/Earth Kit/Earth Kit (45).wav deleted file mode 100644 index 70e718418..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (45).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (46).wav b/samples/EMU World/Earth Kit/Earth Kit (46).wav deleted file mode 100644 index a60154309..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (46).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (47).wav b/samples/EMU World/Earth Kit/Earth Kit (47).wav deleted file mode 100644 index 26b484fdc..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (47).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (48).wav b/samples/EMU World/Earth Kit/Earth Kit (48).wav deleted file mode 100644 index 937b8738d..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (48).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (49).wav b/samples/EMU World/Earth Kit/Earth Kit (49).wav deleted file mode 100644 index c225c315b..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (49).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (5).wav b/samples/EMU World/Earth Kit/Earth Kit (5).wav deleted file mode 100644 index 68ef5d6d9..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (5).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (50).wav b/samples/EMU World/Earth Kit/Earth Kit (50).wav deleted file mode 100644 index 2d06f1f1b..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (50).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (51).wav b/samples/EMU World/Earth Kit/Earth Kit (51).wav deleted file mode 100644 index 01e3b784b..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (51).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (52).wav b/samples/EMU World/Earth Kit/Earth Kit (52).wav deleted file mode 100644 index c75b24338..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (52).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (53).wav b/samples/EMU World/Earth Kit/Earth Kit (53).wav deleted file mode 100644 index c863c19bb..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (53).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (54).wav b/samples/EMU World/Earth Kit/Earth Kit (54).wav deleted file mode 100644 index 236d698d8..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (54).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (55).wav b/samples/EMU World/Earth Kit/Earth Kit (55).wav deleted file mode 100644 index 0b5174b64..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (55).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (56).wav b/samples/EMU World/Earth Kit/Earth Kit (56).wav deleted file mode 100644 index 137856c21..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (56).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (57).wav b/samples/EMU World/Earth Kit/Earth Kit (57).wav deleted file mode 100644 index 2ed54a5bb..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (57).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (58).wav b/samples/EMU World/Earth Kit/Earth Kit (58).wav deleted file mode 100644 index f1a924a00..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (58).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (59).wav b/samples/EMU World/Earth Kit/Earth Kit (59).wav deleted file mode 100644 index 1094894e1..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (59).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (6).wav b/samples/EMU World/Earth Kit/Earth Kit (6).wav deleted file mode 100644 index 5f4000083..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (6).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (60).wav b/samples/EMU World/Earth Kit/Earth Kit (60).wav deleted file mode 100644 index 47405da0f..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (60).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (61).wav b/samples/EMU World/Earth Kit/Earth Kit (61).wav deleted file mode 100644 index 06204c678..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (61).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (62).wav b/samples/EMU World/Earth Kit/Earth Kit (62).wav deleted file mode 100644 index 4f39cdb51..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (62).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (63).wav b/samples/EMU World/Earth Kit/Earth Kit (63).wav deleted file mode 100644 index 9896ed148..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (63).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (64).wav b/samples/EMU World/Earth Kit/Earth Kit (64).wav deleted file mode 100644 index ba2ac0b3a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (64).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (65).wav b/samples/EMU World/Earth Kit/Earth Kit (65).wav deleted file mode 100644 index 77042f69a..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (65).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (66).wav b/samples/EMU World/Earth Kit/Earth Kit (66).wav deleted file mode 100644 index e45ec3515..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (66).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (67).wav b/samples/EMU World/Earth Kit/Earth Kit (67).wav deleted file mode 100644 index 6c53e692d..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (67).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (68).wav b/samples/EMU World/Earth Kit/Earth Kit (68).wav deleted file mode 100644 index ae8b7285f..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (68).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (69).wav b/samples/EMU World/Earth Kit/Earth Kit (69).wav deleted file mode 100644 index 0c5afaa08..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (69).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (7).wav b/samples/EMU World/Earth Kit/Earth Kit (7).wav deleted file mode 100644 index 12b856fcf..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (7).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (70).wav b/samples/EMU World/Earth Kit/Earth Kit (70).wav deleted file mode 100644 index 0816106f8..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (70).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (71).wav b/samples/EMU World/Earth Kit/Earth Kit (71).wav deleted file mode 100644 index 5a2da4f14..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (71).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (72).wav b/samples/EMU World/Earth Kit/Earth Kit (72).wav deleted file mode 100644 index e24919f4d..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (72).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (73).wav b/samples/EMU World/Earth Kit/Earth Kit (73).wav deleted file mode 100644 index 3b67e6d5d..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (73).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (74).wav b/samples/EMU World/Earth Kit/Earth Kit (74).wav deleted file mode 100644 index a3e0629a2..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (74).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (75).wav b/samples/EMU World/Earth Kit/Earth Kit (75).wav deleted file mode 100644 index a1347cde9..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (75).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (76).wav b/samples/EMU World/Earth Kit/Earth Kit (76).wav deleted file mode 100644 index 5ea560706..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (76).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (77).wav b/samples/EMU World/Earth Kit/Earth Kit (77).wav deleted file mode 100644 index 175c6dbac..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (77).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (78).wav b/samples/EMU World/Earth Kit/Earth Kit (78).wav deleted file mode 100644 index 636e0f8b2..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (78).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (79).wav b/samples/EMU World/Earth Kit/Earth Kit (79).wav deleted file mode 100644 index 49195abb5..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (79).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (8).wav b/samples/EMU World/Earth Kit/Earth Kit (8).wav deleted file mode 100644 index bca6b371f..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (8).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (80).wav b/samples/EMU World/Earth Kit/Earth Kit (80).wav deleted file mode 100644 index 1fc6856c7..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (80).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (81).wav b/samples/EMU World/Earth Kit/Earth Kit (81).wav deleted file mode 100644 index 0fd509964..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (81).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (82).wav b/samples/EMU World/Earth Kit/Earth Kit (82).wav deleted file mode 100644 index 35e77ff6e..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (82).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (83).wav b/samples/EMU World/Earth Kit/Earth Kit (83).wav deleted file mode 100644 index 02e1b1f10..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (83).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (84).wav b/samples/EMU World/Earth Kit/Earth Kit (84).wav deleted file mode 100644 index f3aa62687..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (84).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (85).wav b/samples/EMU World/Earth Kit/Earth Kit (85).wav deleted file mode 100644 index 21bb4dee7..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (85).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (86).wav b/samples/EMU World/Earth Kit/Earth Kit (86).wav deleted file mode 100644 index f628251b2..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (86).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (87).wav b/samples/EMU World/Earth Kit/Earth Kit (87).wav deleted file mode 100644 index 3a7e768de..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (87).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (88).wav b/samples/EMU World/Earth Kit/Earth Kit (88).wav deleted file mode 100644 index 9e1e16603..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (88).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (89).wav b/samples/EMU World/Earth Kit/Earth Kit (89).wav deleted file mode 100644 index 202ac01ff..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (89).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (9).wav b/samples/EMU World/Earth Kit/Earth Kit (9).wav deleted file mode 100644 index ebac960fb..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (9).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (90).wav b/samples/EMU World/Earth Kit/Earth Kit (90).wav deleted file mode 100644 index 6b952a4d8..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (90).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (91).wav b/samples/EMU World/Earth Kit/Earth Kit (91).wav deleted file mode 100644 index 18b1ea605..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (91).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (92).wav b/samples/EMU World/Earth Kit/Earth Kit (92).wav deleted file mode 100644 index 9f0f92754..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (92).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (93).wav b/samples/EMU World/Earth Kit/Earth Kit (93).wav deleted file mode 100644 index 1ebbb3b99..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (93).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (94).wav b/samples/EMU World/Earth Kit/Earth Kit (94).wav deleted file mode 100644 index 930b767bf..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (94).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (95).wav b/samples/EMU World/Earth Kit/Earth Kit (95).wav deleted file mode 100644 index 178ee2d62..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (95).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (96).wav b/samples/EMU World/Earth Kit/Earth Kit (96).wav deleted file mode 100644 index dad06fe4c..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (96).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (97).wav b/samples/EMU World/Earth Kit/Earth Kit (97).wav deleted file mode 100644 index 102f9443c..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (97).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (98).wav b/samples/EMU World/Earth Kit/Earth Kit (98).wav deleted file mode 100644 index e15171858..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (98).wav and /dev/null differ diff --git a/samples/EMU World/Earth Kit/Earth Kit (99).wav b/samples/EMU World/Earth Kit/Earth Kit (99).wav deleted file mode 100644 index 64c452950..000000000 Binary files a/samples/EMU World/Earth Kit/Earth Kit (99).wav and /dev/null differ diff --git a/samples/EMU World/Gankokwe/Gankokwe (1).wav b/samples/EMU World/Gankokwe/Gankokwe (1).wav deleted file mode 100644 index b404df500..000000000 Binary files a/samples/EMU World/Gankokwe/Gankokwe (1).wav and /dev/null differ diff --git a/samples/EMU World/Gankokwe/Gankokwe (10).wav b/samples/EMU World/Gankokwe/Gankokwe (10).wav deleted file mode 100644 index 6c417c715..000000000 Binary files a/samples/EMU World/Gankokwe/Gankokwe (10).wav and /dev/null differ diff --git a/samples/EMU World/Gankokwe/Gankokwe (11).wav b/samples/EMU World/Gankokwe/Gankokwe (11).wav deleted file mode 100644 index d6325f4cd..000000000 Binary files a/samples/EMU World/Gankokwe/Gankokwe (11).wav and /dev/null differ diff --git a/samples/EMU World/Gankokwe/Gankokwe (12).wav b/samples/EMU World/Gankokwe/Gankokwe (12).wav deleted file mode 100644 index ad3fa1482..000000000 Binary files a/samples/EMU World/Gankokwe/Gankokwe (12).wav and /dev/null differ diff --git a/samples/EMU World/Gankokwe/Gankokwe (13).wav b/samples/EMU World/Gankokwe/Gankokwe (13).wav deleted file mode 100644 index 26a8b026c..000000000 Binary files a/samples/EMU World/Gankokwe/Gankokwe (13).wav and /dev/null differ diff --git a/samples/EMU World/Gankokwe/Gankokwe (2).wav b/samples/EMU World/Gankokwe/Gankokwe (2).wav deleted file mode 100644 index 447aa71e4..000000000 Binary files a/samples/EMU World/Gankokwe/Gankokwe (2).wav and /dev/null differ diff --git a/samples/EMU World/Gankokwe/Gankokwe (3).wav b/samples/EMU World/Gankokwe/Gankokwe (3).wav deleted file mode 100644 index 263aca30c..000000000 Binary files a/samples/EMU World/Gankokwe/Gankokwe (3).wav and /dev/null differ diff --git a/samples/EMU World/Gankokwe/Gankokwe (4).wav b/samples/EMU World/Gankokwe/Gankokwe (4).wav deleted file mode 100644 index 497ea9738..000000000 Binary files a/samples/EMU World/Gankokwe/Gankokwe (4).wav and /dev/null differ diff --git a/samples/EMU World/Gankokwe/Gankokwe (5).wav b/samples/EMU World/Gankokwe/Gankokwe (5).wav deleted file mode 100644 index 27bb82f41..000000000 Binary files a/samples/EMU World/Gankokwe/Gankokwe (5).wav and /dev/null differ diff --git a/samples/EMU World/Gankokwe/Gankokwe (6).wav b/samples/EMU World/Gankokwe/Gankokwe (6).wav deleted file mode 100644 index f9f680c90..000000000 Binary files a/samples/EMU World/Gankokwe/Gankokwe (6).wav and /dev/null differ diff --git a/samples/EMU World/Gankokwe/Gankokwe (7).wav b/samples/EMU World/Gankokwe/Gankokwe (7).wav deleted file mode 100644 index 93fe77092..000000000 Binary files a/samples/EMU World/Gankokwe/Gankokwe (7).wav and /dev/null differ diff --git a/samples/EMU World/Gankokwe/Gankokwe (8).wav b/samples/EMU World/Gankokwe/Gankokwe (8).wav deleted file mode 100644 index 679168929..000000000 Binary files a/samples/EMU World/Gankokwe/Gankokwe (8).wav and /dev/null differ diff --git a/samples/EMU World/Gankokwe/Gankokwe (9).wav b/samples/EMU World/Gankokwe/Gankokwe (9).wav deleted file mode 100644 index fee0c93a8..000000000 Binary files a/samples/EMU World/Gankokwe/Gankokwe (9).wav and /dev/null differ diff --git a/samples/EMU World/Ghatam/Ghatam (1).wav b/samples/EMU World/Ghatam/Ghatam (1).wav deleted file mode 100644 index d3ecac3dd..000000000 Binary files a/samples/EMU World/Ghatam/Ghatam (1).wav and /dev/null differ diff --git a/samples/EMU World/Ghatam/Ghatam (2).wav b/samples/EMU World/Ghatam/Ghatam (2).wav deleted file mode 100644 index 55d53e98f..000000000 Binary files a/samples/EMU World/Ghatam/Ghatam (2).wav and /dev/null differ diff --git a/samples/EMU World/Ghatam/Ghatam (3).wav b/samples/EMU World/Ghatam/Ghatam (3).wav deleted file mode 100644 index 26ef13ef0..000000000 Binary files a/samples/EMU World/Ghatam/Ghatam (3).wav and /dev/null differ diff --git a/samples/EMU World/Ghatam/Ghatam (4).wav b/samples/EMU World/Ghatam/Ghatam (4).wav deleted file mode 100644 index 19fdabe02..000000000 Binary files a/samples/EMU World/Ghatam/Ghatam (4).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (1).wav b/samples/EMU World/Jaw Harp/Jaw Harp (1).wav deleted file mode 100644 index 9a8f99ee9..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (1).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (10).wav b/samples/EMU World/Jaw Harp/Jaw Harp (10).wav deleted file mode 100644 index 41725abae..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (10).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (11).wav b/samples/EMU World/Jaw Harp/Jaw Harp (11).wav deleted file mode 100644 index 45ec4bf34..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (11).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (12).wav b/samples/EMU World/Jaw Harp/Jaw Harp (12).wav deleted file mode 100644 index 8b2ecf32e..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (12).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (13).wav b/samples/EMU World/Jaw Harp/Jaw Harp (13).wav deleted file mode 100644 index 21b9a15b2..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (13).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (14).wav b/samples/EMU World/Jaw Harp/Jaw Harp (14).wav deleted file mode 100644 index 404852400..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (14).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (15).wav b/samples/EMU World/Jaw Harp/Jaw Harp (15).wav deleted file mode 100644 index 9e8f7909f..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (15).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (16).wav b/samples/EMU World/Jaw Harp/Jaw Harp (16).wav deleted file mode 100644 index efe533c1d..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (16).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (17).wav b/samples/EMU World/Jaw Harp/Jaw Harp (17).wav deleted file mode 100644 index d4982da64..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (17).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (18).wav b/samples/EMU World/Jaw Harp/Jaw Harp (18).wav deleted file mode 100644 index 4a1a18212..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (18).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (19).wav b/samples/EMU World/Jaw Harp/Jaw Harp (19).wav deleted file mode 100644 index 8a447a588..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (19).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (2).wav b/samples/EMU World/Jaw Harp/Jaw Harp (2).wav deleted file mode 100644 index 2b9708403..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (2).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (3).wav b/samples/EMU World/Jaw Harp/Jaw Harp (3).wav deleted file mode 100644 index eedbe9e30..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (3).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (4).wav b/samples/EMU World/Jaw Harp/Jaw Harp (4).wav deleted file mode 100644 index a742df816..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (4).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (5).wav b/samples/EMU World/Jaw Harp/Jaw Harp (5).wav deleted file mode 100644 index 92e3e8866..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (5).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (6).wav b/samples/EMU World/Jaw Harp/Jaw Harp (6).wav deleted file mode 100644 index e659e0398..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (6).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (7).wav b/samples/EMU World/Jaw Harp/Jaw Harp (7).wav deleted file mode 100644 index 232be4131..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (7).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (8).wav b/samples/EMU World/Jaw Harp/Jaw Harp (8).wav deleted file mode 100644 index ddf63bca7..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (8).wav and /dev/null differ diff --git a/samples/EMU World/Jaw Harp/Jaw Harp (9).wav b/samples/EMU World/Jaw Harp/Jaw Harp (9).wav deleted file mode 100644 index 9222a7fee..000000000 Binary files a/samples/EMU World/Jaw Harp/Jaw Harp (9).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (1).wav b/samples/EMU World/Jingle Bells/Jingle Bells (1).wav deleted file mode 100644 index 64c22b86e..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (1).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (10).wav b/samples/EMU World/Jingle Bells/Jingle Bells (10).wav deleted file mode 100644 index c43034c6f..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (10).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (11).wav b/samples/EMU World/Jingle Bells/Jingle Bells (11).wav deleted file mode 100644 index c04bb1d3c..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (11).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (12).wav b/samples/EMU World/Jingle Bells/Jingle Bells (12).wav deleted file mode 100644 index 8d1626050..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (12).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (13).wav b/samples/EMU World/Jingle Bells/Jingle Bells (13).wav deleted file mode 100644 index 92768f5a1..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (13).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (14).wav b/samples/EMU World/Jingle Bells/Jingle Bells (14).wav deleted file mode 100644 index 2aba6fda3..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (14).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (15).wav b/samples/EMU World/Jingle Bells/Jingle Bells (15).wav deleted file mode 100644 index 6c89a77b3..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (15).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (2).wav b/samples/EMU World/Jingle Bells/Jingle Bells (2).wav deleted file mode 100644 index a217410a1..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (2).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (3).wav b/samples/EMU World/Jingle Bells/Jingle Bells (3).wav deleted file mode 100644 index d47261d42..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (3).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (4).wav b/samples/EMU World/Jingle Bells/Jingle Bells (4).wav deleted file mode 100644 index 14eaf919a..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (4).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (5).wav b/samples/EMU World/Jingle Bells/Jingle Bells (5).wav deleted file mode 100644 index 6df3163f6..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (5).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (6).wav b/samples/EMU World/Jingle Bells/Jingle Bells (6).wav deleted file mode 100644 index 8d4c7d9c1..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (6).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (7).wav b/samples/EMU World/Jingle Bells/Jingle Bells (7).wav deleted file mode 100644 index ddec7fc5c..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (7).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (8).wav b/samples/EMU World/Jingle Bells/Jingle Bells (8).wav deleted file mode 100644 index 4b2de1f63..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (8).wav and /dev/null differ diff --git a/samples/EMU World/Jingle Bells/Jingle Bells (9).wav b/samples/EMU World/Jingle Bells/Jingle Bells (9).wav deleted file mode 100644 index 00d538af6..000000000 Binary files a/samples/EMU World/Jingle Bells/Jingle Bells (9).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (1).wav b/samples/EMU World/Kalimba/Kalimba (1).wav deleted file mode 100644 index 3d8693e2e..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (1).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (10).wav b/samples/EMU World/Kalimba/Kalimba (10).wav deleted file mode 100644 index 1f911847b..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (10).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (11).wav b/samples/EMU World/Kalimba/Kalimba (11).wav deleted file mode 100644 index 4801fce79..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (11).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (12).wav b/samples/EMU World/Kalimba/Kalimba (12).wav deleted file mode 100644 index 8906f3a49..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (12).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (13).wav b/samples/EMU World/Kalimba/Kalimba (13).wav deleted file mode 100644 index 6a6318fbc..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (13).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (14).wav b/samples/EMU World/Kalimba/Kalimba (14).wav deleted file mode 100644 index c6bdb86c2..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (14).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (15).wav b/samples/EMU World/Kalimba/Kalimba (15).wav deleted file mode 100644 index 85fbcbe71..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (15).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (16).wav b/samples/EMU World/Kalimba/Kalimba (16).wav deleted file mode 100644 index 56c57d7d3..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (16).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (2).wav b/samples/EMU World/Kalimba/Kalimba (2).wav deleted file mode 100644 index f79923f09..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (2).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (3).wav b/samples/EMU World/Kalimba/Kalimba (3).wav deleted file mode 100644 index 5f49c1e65..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (3).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (4).wav b/samples/EMU World/Kalimba/Kalimba (4).wav deleted file mode 100644 index 14a43e30e..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (4).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (5).wav b/samples/EMU World/Kalimba/Kalimba (5).wav deleted file mode 100644 index a12cc0a2b..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (5).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (6).wav b/samples/EMU World/Kalimba/Kalimba (6).wav deleted file mode 100644 index f2c31dbff..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (6).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (7).wav b/samples/EMU World/Kalimba/Kalimba (7).wav deleted file mode 100644 index bc633729f..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (7).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (8).wav b/samples/EMU World/Kalimba/Kalimba (8).wav deleted file mode 100644 index 9c817d3a5..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (8).wav and /dev/null differ diff --git a/samples/EMU World/Kalimba/Kalimba (9).wav b/samples/EMU World/Kalimba/Kalimba (9).wav deleted file mode 100644 index 88e258861..000000000 Binary files a/samples/EMU World/Kalimba/Kalimba (9).wav and /dev/null differ diff --git a/samples/EMU World/Kimkim/KimKim (1).wav b/samples/EMU World/Kimkim/KimKim (1).wav deleted file mode 100644 index 9e1164a02..000000000 Binary files a/samples/EMU World/Kimkim/KimKim (1).wav and /dev/null differ diff --git a/samples/EMU World/Kimkim/KimKim (10).wav b/samples/EMU World/Kimkim/KimKim (10).wav deleted file mode 100644 index a82427a94..000000000 Binary files a/samples/EMU World/Kimkim/KimKim (10).wav and /dev/null differ diff --git a/samples/EMU World/Kimkim/KimKim (11).wav b/samples/EMU World/Kimkim/KimKim (11).wav deleted file mode 100644 index 9a2807a66..000000000 Binary files a/samples/EMU World/Kimkim/KimKim (11).wav and /dev/null differ diff --git a/samples/EMU World/Kimkim/KimKim (2).wav b/samples/EMU World/Kimkim/KimKim (2).wav deleted file mode 100644 index 0ad1c4e3a..000000000 Binary files a/samples/EMU World/Kimkim/KimKim (2).wav and /dev/null differ diff --git a/samples/EMU World/Kimkim/KimKim (3).wav b/samples/EMU World/Kimkim/KimKim (3).wav deleted file mode 100644 index 312122037..000000000 Binary files a/samples/EMU World/Kimkim/KimKim (3).wav and /dev/null differ diff --git a/samples/EMU World/Kimkim/KimKim (4).wav b/samples/EMU World/Kimkim/KimKim (4).wav deleted file mode 100644 index 48955bffa..000000000 Binary files a/samples/EMU World/Kimkim/KimKim (4).wav and /dev/null differ diff --git a/samples/EMU World/Kimkim/KimKim (5).wav b/samples/EMU World/Kimkim/KimKim (5).wav deleted file mode 100644 index e2a97cfc8..000000000 Binary files a/samples/EMU World/Kimkim/KimKim (5).wav and /dev/null differ diff --git a/samples/EMU World/Kimkim/KimKim (6).wav b/samples/EMU World/Kimkim/KimKim (6).wav deleted file mode 100644 index 7d6f6b118..000000000 Binary files a/samples/EMU World/Kimkim/KimKim (6).wav and /dev/null differ diff --git a/samples/EMU World/Kimkim/KimKim (7).wav b/samples/EMU World/Kimkim/KimKim (7).wav deleted file mode 100644 index 09f2daa62..000000000 Binary files a/samples/EMU World/Kimkim/KimKim (7).wav and /dev/null differ diff --git a/samples/EMU World/Kimkim/KimKim (8).wav b/samples/EMU World/Kimkim/KimKim (8).wav deleted file mode 100644 index 88dbd8789..000000000 Binary files a/samples/EMU World/Kimkim/KimKim (8).wav and /dev/null differ diff --git a/samples/EMU World/Kimkim/KimKim (9).wav b/samples/EMU World/Kimkim/KimKim (9).wav deleted file mode 100644 index 9ef49f5d3..000000000 Binary files a/samples/EMU World/Kimkim/KimKim (9).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (1).wav b/samples/EMU World/Liquid Drum/Liquid Drum (1).wav deleted file mode 100644 index 5a4b9e6d6..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (1).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (10).wav b/samples/EMU World/Liquid Drum/Liquid Drum (10).wav deleted file mode 100644 index aded26200..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (10).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (11).wav b/samples/EMU World/Liquid Drum/Liquid Drum (11).wav deleted file mode 100644 index 62517ab2c..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (11).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (12).wav b/samples/EMU World/Liquid Drum/Liquid Drum (12).wav deleted file mode 100644 index 5dc562d66..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (12).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (13).wav b/samples/EMU World/Liquid Drum/Liquid Drum (13).wav deleted file mode 100644 index e1da59980..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (13).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (14).wav b/samples/EMU World/Liquid Drum/Liquid Drum (14).wav deleted file mode 100644 index b7f70bde9..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (14).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (15).wav b/samples/EMU World/Liquid Drum/Liquid Drum (15).wav deleted file mode 100644 index 49b09b5e8..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (15).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (16).wav b/samples/EMU World/Liquid Drum/Liquid Drum (16).wav deleted file mode 100644 index d0fbb3918..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (16).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (17).wav b/samples/EMU World/Liquid Drum/Liquid Drum (17).wav deleted file mode 100644 index 9171649db..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (17).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (18).wav b/samples/EMU World/Liquid Drum/Liquid Drum (18).wav deleted file mode 100644 index eb2aecacb..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (18).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (19).wav b/samples/EMU World/Liquid Drum/Liquid Drum (19).wav deleted file mode 100644 index 6771b2c61..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (19).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (2).wav b/samples/EMU World/Liquid Drum/Liquid Drum (2).wav deleted file mode 100644 index 5215ed02c..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (2).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (20).wav b/samples/EMU World/Liquid Drum/Liquid Drum (20).wav deleted file mode 100644 index 0bec4b677..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (20).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (21).wav b/samples/EMU World/Liquid Drum/Liquid Drum (21).wav deleted file mode 100644 index f0400650f..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (21).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (22).wav b/samples/EMU World/Liquid Drum/Liquid Drum (22).wav deleted file mode 100644 index b3004cd38..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (22).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (23).wav b/samples/EMU World/Liquid Drum/Liquid Drum (23).wav deleted file mode 100644 index 50ded90e4..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (23).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (24).wav b/samples/EMU World/Liquid Drum/Liquid Drum (24).wav deleted file mode 100644 index 63819dcd9..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (24).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (25).wav b/samples/EMU World/Liquid Drum/Liquid Drum (25).wav deleted file mode 100644 index 6db687240..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (25).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (26).wav b/samples/EMU World/Liquid Drum/Liquid Drum (26).wav deleted file mode 100644 index 22fdcfe28..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (26).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (27).wav b/samples/EMU World/Liquid Drum/Liquid Drum (27).wav deleted file mode 100644 index 8464925d5..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (27).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (28).wav b/samples/EMU World/Liquid Drum/Liquid Drum (28).wav deleted file mode 100644 index 93dc27210..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (28).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (29).wav b/samples/EMU World/Liquid Drum/Liquid Drum (29).wav deleted file mode 100644 index d0504b7ce..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (29).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (3).wav b/samples/EMU World/Liquid Drum/Liquid Drum (3).wav deleted file mode 100644 index b66de6f56..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (3).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (4).wav b/samples/EMU World/Liquid Drum/Liquid Drum (4).wav deleted file mode 100644 index e3276366e..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (4).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (5).wav b/samples/EMU World/Liquid Drum/Liquid Drum (5).wav deleted file mode 100644 index 94699f385..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (5).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (6).wav b/samples/EMU World/Liquid Drum/Liquid Drum (6).wav deleted file mode 100644 index 3130600cf..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (6).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (7).wav b/samples/EMU World/Liquid Drum/Liquid Drum (7).wav deleted file mode 100644 index 54877a731..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (7).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (8).wav b/samples/EMU World/Liquid Drum/Liquid Drum (8).wav deleted file mode 100644 index 167140914..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (8).wav and /dev/null differ diff --git a/samples/EMU World/Liquid Drum/Liquid Drum (9).wav b/samples/EMU World/Liquid Drum/Liquid Drum (9).wav deleted file mode 100644 index 107175ee2..000000000 Binary files a/samples/EMU World/Liquid Drum/Liquid Drum (9).wav and /dev/null differ diff --git a/samples/EMU World/Marimba/Marimba (1).wav b/samples/EMU World/Marimba/Marimba (1).wav deleted file mode 100644 index 78f4dd22f..000000000 Binary files a/samples/EMU World/Marimba/Marimba (1).wav and /dev/null differ diff --git a/samples/EMU World/Marimba/Marimba (2).wav b/samples/EMU World/Marimba/Marimba (2).wav deleted file mode 100644 index 2caf11a03..000000000 Binary files a/samples/EMU World/Marimba/Marimba (2).wav and /dev/null differ diff --git a/samples/EMU World/Marimba/Marimba (3).wav b/samples/EMU World/Marimba/Marimba (3).wav deleted file mode 100644 index 3f732266a..000000000 Binary files a/samples/EMU World/Marimba/Marimba (3).wav and /dev/null differ diff --git a/samples/EMU World/Marimba/Marimba (4).wav b/samples/EMU World/Marimba/Marimba (4).wav deleted file mode 100644 index 40fe177c1..000000000 Binary files a/samples/EMU World/Marimba/Marimba (4).wav and /dev/null differ diff --git a/samples/EMU World/Marimba/Marimba (5).wav b/samples/EMU World/Marimba/Marimba (5).wav deleted file mode 100644 index b670eff94..000000000 Binary files a/samples/EMU World/Marimba/Marimba (5).wav and /dev/null differ diff --git a/samples/EMU World/Marimba/Marimba (6).wav b/samples/EMU World/Marimba/Marimba (6).wav deleted file mode 100644 index a426fee16..000000000 Binary files a/samples/EMU World/Marimba/Marimba (6).wav and /dev/null differ diff --git a/samples/EMU World/Marimba/Marimba (7).wav b/samples/EMU World/Marimba/Marimba (7).wav deleted file mode 100644 index 01f38b424..000000000 Binary files a/samples/EMU World/Marimba/Marimba (7).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (1).wav b/samples/EMU World/Metallophone/Metallophone (1).wav deleted file mode 100644 index 5a669d710..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (1).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (10).wav b/samples/EMU World/Metallophone/Metallophone (10).wav deleted file mode 100644 index 1315cad6d..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (10).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (11).wav b/samples/EMU World/Metallophone/Metallophone (11).wav deleted file mode 100644 index d78c38796..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (11).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (12).wav b/samples/EMU World/Metallophone/Metallophone (12).wav deleted file mode 100644 index 48e56a340..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (12).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (13).wav b/samples/EMU World/Metallophone/Metallophone (13).wav deleted file mode 100644 index a47a8b337..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (13).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (14).wav b/samples/EMU World/Metallophone/Metallophone (14).wav deleted file mode 100644 index d8db714d4..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (14).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (15).wav b/samples/EMU World/Metallophone/Metallophone (15).wav deleted file mode 100644 index 83705929f..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (15).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (16).wav b/samples/EMU World/Metallophone/Metallophone (16).wav deleted file mode 100644 index 852ab854a..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (16).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (17).wav b/samples/EMU World/Metallophone/Metallophone (17).wav deleted file mode 100644 index 18fbd1a72..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (17).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (18).wav b/samples/EMU World/Metallophone/Metallophone (18).wav deleted file mode 100644 index b68d9cb70..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (18).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (19).wav b/samples/EMU World/Metallophone/Metallophone (19).wav deleted file mode 100644 index 6e714a894..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (19).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (2).wav b/samples/EMU World/Metallophone/Metallophone (2).wav deleted file mode 100644 index ea5cdcec6..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (2).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (20).wav b/samples/EMU World/Metallophone/Metallophone (20).wav deleted file mode 100644 index 32b9658d4..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (20).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (21).wav b/samples/EMU World/Metallophone/Metallophone (21).wav deleted file mode 100644 index 1385bfb4a..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (21).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (22).wav b/samples/EMU World/Metallophone/Metallophone (22).wav deleted file mode 100644 index 4293c2d0a..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (22).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (23).wav b/samples/EMU World/Metallophone/Metallophone (23).wav deleted file mode 100644 index 60cc4360c..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (23).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (3).wav b/samples/EMU World/Metallophone/Metallophone (3).wav deleted file mode 100644 index fd70cf394..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (3).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (4).wav b/samples/EMU World/Metallophone/Metallophone (4).wav deleted file mode 100644 index 6761b5b38..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (4).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (5).wav b/samples/EMU World/Metallophone/Metallophone (5).wav deleted file mode 100644 index 99c837294..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (5).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (6).wav b/samples/EMU World/Metallophone/Metallophone (6).wav deleted file mode 100644 index 2c4de96c7..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (6).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (7).wav b/samples/EMU World/Metallophone/Metallophone (7).wav deleted file mode 100644 index 68ec69f1f..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (7).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (8).wav b/samples/EMU World/Metallophone/Metallophone (8).wav deleted file mode 100644 index 1a1dc6a7b..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (8).wav and /dev/null differ diff --git a/samples/EMU World/Metallophone/Metallophone (9).wav b/samples/EMU World/Metallophone/Metallophone (9).wav deleted file mode 100644 index 1943bd7c5..000000000 Binary files a/samples/EMU World/Metallophone/Metallophone (9).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (1).wav b/samples/EMU World/Pakhawaj/Pakhawaj (1).wav deleted file mode 100644 index 99c952b17..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (1).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (10).wav b/samples/EMU World/Pakhawaj/Pakhawaj (10).wav deleted file mode 100644 index b815441b8..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (10).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (11).wav b/samples/EMU World/Pakhawaj/Pakhawaj (11).wav deleted file mode 100644 index 35c42f98c..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (11).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (12).wav b/samples/EMU World/Pakhawaj/Pakhawaj (12).wav deleted file mode 100644 index 6f71932c7..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (12).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (13).wav b/samples/EMU World/Pakhawaj/Pakhawaj (13).wav deleted file mode 100644 index 58c072295..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (13).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (14).wav b/samples/EMU World/Pakhawaj/Pakhawaj (14).wav deleted file mode 100644 index 8dd25d212..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (14).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (15).wav b/samples/EMU World/Pakhawaj/Pakhawaj (15).wav deleted file mode 100644 index 9e4819f19..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (15).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (16).wav b/samples/EMU World/Pakhawaj/Pakhawaj (16).wav deleted file mode 100644 index c9f075a5e..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (16).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (17).wav b/samples/EMU World/Pakhawaj/Pakhawaj (17).wav deleted file mode 100644 index 4757190bd..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (17).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (18).wav b/samples/EMU World/Pakhawaj/Pakhawaj (18).wav deleted file mode 100644 index be0c73eff..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (18).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (19).wav b/samples/EMU World/Pakhawaj/Pakhawaj (19).wav deleted file mode 100644 index f6d24e540..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (19).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (2).wav b/samples/EMU World/Pakhawaj/Pakhawaj (2).wav deleted file mode 100644 index 82d4c2238..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (2).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (20).wav b/samples/EMU World/Pakhawaj/Pakhawaj (20).wav deleted file mode 100644 index 3aef29bf2..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (20).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (21).wav b/samples/EMU World/Pakhawaj/Pakhawaj (21).wav deleted file mode 100644 index 53f7b291c..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (21).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (22).wav b/samples/EMU World/Pakhawaj/Pakhawaj (22).wav deleted file mode 100644 index de6304819..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (22).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (23).wav b/samples/EMU World/Pakhawaj/Pakhawaj (23).wav deleted file mode 100644 index a37a3e181..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (23).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (24).wav b/samples/EMU World/Pakhawaj/Pakhawaj (24).wav deleted file mode 100644 index 77de08198..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (24).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (25).wav b/samples/EMU World/Pakhawaj/Pakhawaj (25).wav deleted file mode 100644 index 0fe0d664a..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (25).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (26).wav b/samples/EMU World/Pakhawaj/Pakhawaj (26).wav deleted file mode 100644 index d15268186..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (26).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (27).wav b/samples/EMU World/Pakhawaj/Pakhawaj (27).wav deleted file mode 100644 index 8d09793da..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (27).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (28).wav b/samples/EMU World/Pakhawaj/Pakhawaj (28).wav deleted file mode 100644 index 0eebe20df..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (28).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (29).wav b/samples/EMU World/Pakhawaj/Pakhawaj (29).wav deleted file mode 100644 index 688b8e978..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (29).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (3).wav b/samples/EMU World/Pakhawaj/Pakhawaj (3).wav deleted file mode 100644 index f7ebdc11d..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (3).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (30).wav b/samples/EMU World/Pakhawaj/Pakhawaj (30).wav deleted file mode 100644 index 6ce064dc8..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (30).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (31).wav b/samples/EMU World/Pakhawaj/Pakhawaj (31).wav deleted file mode 100644 index cd49fb73d..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (31).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (32).wav b/samples/EMU World/Pakhawaj/Pakhawaj (32).wav deleted file mode 100644 index 922fd65fd..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (32).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (4).wav b/samples/EMU World/Pakhawaj/Pakhawaj (4).wav deleted file mode 100644 index 59a2a4c62..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (4).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (5).wav b/samples/EMU World/Pakhawaj/Pakhawaj (5).wav deleted file mode 100644 index 3f79831e5..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (5).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (6).wav b/samples/EMU World/Pakhawaj/Pakhawaj (6).wav deleted file mode 100644 index d38eaa46e..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (6).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (7).wav b/samples/EMU World/Pakhawaj/Pakhawaj (7).wav deleted file mode 100644 index 79aaa0b3d..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (7).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (8).wav b/samples/EMU World/Pakhawaj/Pakhawaj (8).wav deleted file mode 100644 index 29d126406..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (8).wav and /dev/null differ diff --git a/samples/EMU World/Pakhawaj/Pakhawaj (9).wav b/samples/EMU World/Pakhawaj/Pakhawaj (9).wav deleted file mode 100644 index 4c4bad0d1..000000000 Binary files a/samples/EMU World/Pakhawaj/Pakhawaj (9).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (1).wav b/samples/EMU World/Palm Drum/Palm Drum (1).wav deleted file mode 100644 index 2ee5316e7..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (1).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (10).wav b/samples/EMU World/Palm Drum/Palm Drum (10).wav deleted file mode 100644 index bf9ee5823..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (10).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (11).wav b/samples/EMU World/Palm Drum/Palm Drum (11).wav deleted file mode 100644 index 72b5a542f..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (11).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (12).wav b/samples/EMU World/Palm Drum/Palm Drum (12).wav deleted file mode 100644 index 745fa7bf0..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (12).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (13).wav b/samples/EMU World/Palm Drum/Palm Drum (13).wav deleted file mode 100644 index eb61f8660..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (13).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (14).wav b/samples/EMU World/Palm Drum/Palm Drum (14).wav deleted file mode 100644 index a97fae827..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (14).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (15).wav b/samples/EMU World/Palm Drum/Palm Drum (15).wav deleted file mode 100644 index 51b9eb14a..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (15).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (16).wav b/samples/EMU World/Palm Drum/Palm Drum (16).wav deleted file mode 100644 index 86e9820cd..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (16).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (17).wav b/samples/EMU World/Palm Drum/Palm Drum (17).wav deleted file mode 100644 index 9a5ee43a7..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (17).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (18).wav b/samples/EMU World/Palm Drum/Palm Drum (18).wav deleted file mode 100644 index 3d573267a..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (18).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (19).wav b/samples/EMU World/Palm Drum/Palm Drum (19).wav deleted file mode 100644 index c0446672c..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (19).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (2).wav b/samples/EMU World/Palm Drum/Palm Drum (2).wav deleted file mode 100644 index 4054f96e0..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (2).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (20).wav b/samples/EMU World/Palm Drum/Palm Drum (20).wav deleted file mode 100644 index b428bf544..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (20).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (21).wav b/samples/EMU World/Palm Drum/Palm Drum (21).wav deleted file mode 100644 index 2b83b610b..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (21).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (22).wav b/samples/EMU World/Palm Drum/Palm Drum (22).wav deleted file mode 100644 index af4f9a3f4..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (22).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (23).wav b/samples/EMU World/Palm Drum/Palm Drum (23).wav deleted file mode 100644 index 8cc063f77..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (23).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (3).wav b/samples/EMU World/Palm Drum/Palm Drum (3).wav deleted file mode 100644 index aab3b121c..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (3).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (4).wav b/samples/EMU World/Palm Drum/Palm Drum (4).wav deleted file mode 100644 index 427a26357..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (4).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (5).wav b/samples/EMU World/Palm Drum/Palm Drum (5).wav deleted file mode 100644 index 8cea911e1..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (5).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (6).wav b/samples/EMU World/Palm Drum/Palm Drum (6).wav deleted file mode 100644 index 8ecf41d7f..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (6).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (7).wav b/samples/EMU World/Palm Drum/Palm Drum (7).wav deleted file mode 100644 index 5317abeba..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (7).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (8).wav b/samples/EMU World/Palm Drum/Palm Drum (8).wav deleted file mode 100644 index 03e5e137c..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (8).wav and /dev/null differ diff --git a/samples/EMU World/Palm Drum/Palm Drum (9).wav b/samples/EMU World/Palm Drum/Palm Drum (9).wav deleted file mode 100644 index 6c70d5c36..000000000 Binary files a/samples/EMU World/Palm Drum/Palm Drum (9).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (1).wav b/samples/EMU World/Pandiero/Pandiero (1).wav deleted file mode 100644 index 919f33f3f..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (1).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (10).wav b/samples/EMU World/Pandiero/Pandiero (10).wav deleted file mode 100644 index 14ee61ea4..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (10).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (11).wav b/samples/EMU World/Pandiero/Pandiero (11).wav deleted file mode 100644 index 290d7e304..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (11).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (12).wav b/samples/EMU World/Pandiero/Pandiero (12).wav deleted file mode 100644 index 52928e5f0..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (12).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (13).wav b/samples/EMU World/Pandiero/Pandiero (13).wav deleted file mode 100644 index e0e06a5c9..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (13).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (14).wav b/samples/EMU World/Pandiero/Pandiero (14).wav deleted file mode 100644 index 1076275d8..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (14).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (15).wav b/samples/EMU World/Pandiero/Pandiero (15).wav deleted file mode 100644 index 927aa6af7..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (15).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (16).wav b/samples/EMU World/Pandiero/Pandiero (16).wav deleted file mode 100644 index 13dc3d646..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (16).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (17).wav b/samples/EMU World/Pandiero/Pandiero (17).wav deleted file mode 100644 index a2181450a..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (17).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (18).wav b/samples/EMU World/Pandiero/Pandiero (18).wav deleted file mode 100644 index 3938928ec..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (18).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (19).wav b/samples/EMU World/Pandiero/Pandiero (19).wav deleted file mode 100644 index 6fda7aa30..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (19).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (2).wav b/samples/EMU World/Pandiero/Pandiero (2).wav deleted file mode 100644 index 77a1875f9..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (2).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (20).wav b/samples/EMU World/Pandiero/Pandiero (20).wav deleted file mode 100644 index bb83ca888..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (20).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (21).wav b/samples/EMU World/Pandiero/Pandiero (21).wav deleted file mode 100644 index 68db30780..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (21).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (22).wav b/samples/EMU World/Pandiero/Pandiero (22).wav deleted file mode 100644 index 587bbfb70..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (22).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (23).wav b/samples/EMU World/Pandiero/Pandiero (23).wav deleted file mode 100644 index 12270ffd5..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (23).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (24).wav b/samples/EMU World/Pandiero/Pandiero (24).wav deleted file mode 100644 index 49284f4dd..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (24).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (3).wav b/samples/EMU World/Pandiero/Pandiero (3).wav deleted file mode 100644 index 88434a3d5..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (3).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (4).wav b/samples/EMU World/Pandiero/Pandiero (4).wav deleted file mode 100644 index 2a0ad4038..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (4).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (5).wav b/samples/EMU World/Pandiero/Pandiero (5).wav deleted file mode 100644 index 8eaf2daee..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (5).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (6).wav b/samples/EMU World/Pandiero/Pandiero (6).wav deleted file mode 100644 index a948722cf..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (6).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (7).wav b/samples/EMU World/Pandiero/Pandiero (7).wav deleted file mode 100644 index 32af9c121..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (7).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (8).wav b/samples/EMU World/Pandiero/Pandiero (8).wav deleted file mode 100644 index 66b8c4940..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (8).wav and /dev/null differ diff --git a/samples/EMU World/Pandiero/Pandiero (9).wav b/samples/EMU World/Pandiero/Pandiero (9).wav deleted file mode 100644 index af82a2ec8..000000000 Binary files a/samples/EMU World/Pandiero/Pandiero (9).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (1).wav b/samples/EMU World/Pipe/Pipe (1).wav deleted file mode 100644 index 8bdafae06..000000000 Binary files a/samples/EMU World/Pipe/Pipe (1).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (10).wav b/samples/EMU World/Pipe/Pipe (10).wav deleted file mode 100644 index da5b5674b..000000000 Binary files a/samples/EMU World/Pipe/Pipe (10).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (11).wav b/samples/EMU World/Pipe/Pipe (11).wav deleted file mode 100644 index 863ab0158..000000000 Binary files a/samples/EMU World/Pipe/Pipe (11).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (12).wav b/samples/EMU World/Pipe/Pipe (12).wav deleted file mode 100644 index 13908654d..000000000 Binary files a/samples/EMU World/Pipe/Pipe (12).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (13).wav b/samples/EMU World/Pipe/Pipe (13).wav deleted file mode 100644 index bea53aaa7..000000000 Binary files a/samples/EMU World/Pipe/Pipe (13).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (14).wav b/samples/EMU World/Pipe/Pipe (14).wav deleted file mode 100644 index 4399ef9ae..000000000 Binary files a/samples/EMU World/Pipe/Pipe (14).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (15).wav b/samples/EMU World/Pipe/Pipe (15).wav deleted file mode 100644 index 5602266a1..000000000 Binary files a/samples/EMU World/Pipe/Pipe (15).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (16).wav b/samples/EMU World/Pipe/Pipe (16).wav deleted file mode 100644 index 46c8814b9..000000000 Binary files a/samples/EMU World/Pipe/Pipe (16).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (17).wav b/samples/EMU World/Pipe/Pipe (17).wav deleted file mode 100644 index 6c2b02fab..000000000 Binary files a/samples/EMU World/Pipe/Pipe (17).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (18).wav b/samples/EMU World/Pipe/Pipe (18).wav deleted file mode 100644 index 339b76475..000000000 Binary files a/samples/EMU World/Pipe/Pipe (18).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (19).wav b/samples/EMU World/Pipe/Pipe (19).wav deleted file mode 100644 index a4c075d2b..000000000 Binary files a/samples/EMU World/Pipe/Pipe (19).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (2).wav b/samples/EMU World/Pipe/Pipe (2).wav deleted file mode 100644 index 68b7943ea..000000000 Binary files a/samples/EMU World/Pipe/Pipe (2).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (20).wav b/samples/EMU World/Pipe/Pipe (20).wav deleted file mode 100644 index 75bc870dd..000000000 Binary files a/samples/EMU World/Pipe/Pipe (20).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (3).wav b/samples/EMU World/Pipe/Pipe (3).wav deleted file mode 100644 index 7046e7d71..000000000 Binary files a/samples/EMU World/Pipe/Pipe (3).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (4).wav b/samples/EMU World/Pipe/Pipe (4).wav deleted file mode 100644 index 9300d6dc0..000000000 Binary files a/samples/EMU World/Pipe/Pipe (4).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (5).wav b/samples/EMU World/Pipe/Pipe (5).wav deleted file mode 100644 index 36f2a7f51..000000000 Binary files a/samples/EMU World/Pipe/Pipe (5).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (6).wav b/samples/EMU World/Pipe/Pipe (6).wav deleted file mode 100644 index a035432d5..000000000 Binary files a/samples/EMU World/Pipe/Pipe (6).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (7).wav b/samples/EMU World/Pipe/Pipe (7).wav deleted file mode 100644 index 46e645339..000000000 Binary files a/samples/EMU World/Pipe/Pipe (7).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (8).wav b/samples/EMU World/Pipe/Pipe (8).wav deleted file mode 100644 index 4c75c2002..000000000 Binary files a/samples/EMU World/Pipe/Pipe (8).wav and /dev/null differ diff --git a/samples/EMU World/Pipe/Pipe (9).wav b/samples/EMU World/Pipe/Pipe (9).wav deleted file mode 100644 index c753f48c9..000000000 Binary files a/samples/EMU World/Pipe/Pipe (9).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (1).wav b/samples/EMU World/Pots and Pans/PotsPans (1).wav deleted file mode 100644 index 96d3c1d25..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (1).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (10).wav b/samples/EMU World/Pots and Pans/PotsPans (10).wav deleted file mode 100644 index afbf16d21..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (10).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (11).wav b/samples/EMU World/Pots and Pans/PotsPans (11).wav deleted file mode 100644 index 69a570e7a..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (11).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (12).wav b/samples/EMU World/Pots and Pans/PotsPans (12).wav deleted file mode 100644 index c0eb505c3..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (12).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (13).wav b/samples/EMU World/Pots and Pans/PotsPans (13).wav deleted file mode 100644 index 6b426d8ab..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (13).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (14).wav b/samples/EMU World/Pots and Pans/PotsPans (14).wav deleted file mode 100644 index ddad36c69..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (14).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (2).wav b/samples/EMU World/Pots and Pans/PotsPans (2).wav deleted file mode 100644 index d3dcf87d5..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (2).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (3).wav b/samples/EMU World/Pots and Pans/PotsPans (3).wav deleted file mode 100644 index ec5acbb59..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (3).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (4).wav b/samples/EMU World/Pots and Pans/PotsPans (4).wav deleted file mode 100644 index 440bfea84..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (4).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (5).wav b/samples/EMU World/Pots and Pans/PotsPans (5).wav deleted file mode 100644 index 37a12c539..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (5).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (6).wav b/samples/EMU World/Pots and Pans/PotsPans (6).wav deleted file mode 100644 index f93f4d66d..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (6).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (7).wav b/samples/EMU World/Pots and Pans/PotsPans (7).wav deleted file mode 100644 index b46445c62..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (7).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (8).wav b/samples/EMU World/Pots and Pans/PotsPans (8).wav deleted file mode 100644 index 9af1bc61b..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (8).wav and /dev/null differ diff --git a/samples/EMU World/Pots and Pans/PotsPans (9).wav b/samples/EMU World/Pots and Pans/PotsPans (9).wav deleted file mode 100644 index 5ee6fea3b..000000000 Binary files a/samples/EMU World/Pots and Pans/PotsPans (9).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (1).wav b/samples/EMU World/Rattle Pod/RattlePod (1).wav deleted file mode 100644 index 58e03b3da..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (1).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (10).wav b/samples/EMU World/Rattle Pod/RattlePod (10).wav deleted file mode 100644 index 9ee153425..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (10).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (11).wav b/samples/EMU World/Rattle Pod/RattlePod (11).wav deleted file mode 100644 index cceb70dfb..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (11).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (12).wav b/samples/EMU World/Rattle Pod/RattlePod (12).wav deleted file mode 100644 index 42cf19885..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (12).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (13).wav b/samples/EMU World/Rattle Pod/RattlePod (13).wav deleted file mode 100644 index 5a5fda81a..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (13).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (14).wav b/samples/EMU World/Rattle Pod/RattlePod (14).wav deleted file mode 100644 index cf152a619..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (14).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (15).wav b/samples/EMU World/Rattle Pod/RattlePod (15).wav deleted file mode 100644 index c312369bd..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (15).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (16).wav b/samples/EMU World/Rattle Pod/RattlePod (16).wav deleted file mode 100644 index 4f41edac1..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (16).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (17).wav b/samples/EMU World/Rattle Pod/RattlePod (17).wav deleted file mode 100644 index b13d5cf81..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (17).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (18).wav b/samples/EMU World/Rattle Pod/RattlePod (18).wav deleted file mode 100644 index 1d1cf24af..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (18).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (19).wav b/samples/EMU World/Rattle Pod/RattlePod (19).wav deleted file mode 100644 index 2a4dce42b..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (19).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (2).wav b/samples/EMU World/Rattle Pod/RattlePod (2).wav deleted file mode 100644 index 0578a1f99..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (2).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (20).wav b/samples/EMU World/Rattle Pod/RattlePod (20).wav deleted file mode 100644 index f5af5aad0..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (20).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (21).wav b/samples/EMU World/Rattle Pod/RattlePod (21).wav deleted file mode 100644 index 4781ab2d2..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (21).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (22).wav b/samples/EMU World/Rattle Pod/RattlePod (22).wav deleted file mode 100644 index f1ed1e6f8..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (22).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (23).wav b/samples/EMU World/Rattle Pod/RattlePod (23).wav deleted file mode 100644 index c9faf8eec..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (23).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (24).wav b/samples/EMU World/Rattle Pod/RattlePod (24).wav deleted file mode 100644 index 7d0a0a93d..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (24).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (25).wav b/samples/EMU World/Rattle Pod/RattlePod (25).wav deleted file mode 100644 index fe4ab2b0b..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (25).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (26).wav b/samples/EMU World/Rattle Pod/RattlePod (26).wav deleted file mode 100644 index e653828ca..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (26).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (3).wav b/samples/EMU World/Rattle Pod/RattlePod (3).wav deleted file mode 100644 index f769a1a63..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (3).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (4).wav b/samples/EMU World/Rattle Pod/RattlePod (4).wav deleted file mode 100644 index 0ed9e40b5..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (4).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (5).wav b/samples/EMU World/Rattle Pod/RattlePod (5).wav deleted file mode 100644 index e24e31eeb..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (5).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (6).wav b/samples/EMU World/Rattle Pod/RattlePod (6).wav deleted file mode 100644 index 5b74a688a..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (6).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (7).wav b/samples/EMU World/Rattle Pod/RattlePod (7).wav deleted file mode 100644 index a91e053e5..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (7).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (8).wav b/samples/EMU World/Rattle Pod/RattlePod (8).wav deleted file mode 100644 index 63c9608f7..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (8).wav and /dev/null differ diff --git a/samples/EMU World/Rattle Pod/RattlePod (9).wav b/samples/EMU World/Rattle Pod/RattlePod (9).wav deleted file mode 100644 index c7891754e..000000000 Binary files a/samples/EMU World/Rattle Pod/RattlePod (9).wav and /dev/null differ diff --git a/samples/EMU World/Rattle/Rattle (1).wav b/samples/EMU World/Rattle/Rattle (1).wav deleted file mode 100644 index 257a05a69..000000000 Binary files a/samples/EMU World/Rattle/Rattle (1).wav and /dev/null differ diff --git a/samples/EMU World/Rattle/Rattle (10).wav b/samples/EMU World/Rattle/Rattle (10).wav deleted file mode 100644 index f392fa988..000000000 Binary files a/samples/EMU World/Rattle/Rattle (10).wav and /dev/null differ diff --git a/samples/EMU World/Rattle/Rattle (11).wav b/samples/EMU World/Rattle/Rattle (11).wav deleted file mode 100644 index 37190989c..000000000 Binary files a/samples/EMU World/Rattle/Rattle (11).wav and /dev/null differ diff --git a/samples/EMU World/Rattle/Rattle (12).wav b/samples/EMU World/Rattle/Rattle (12).wav deleted file mode 100644 index 5f94c6506..000000000 Binary files a/samples/EMU World/Rattle/Rattle (12).wav and /dev/null differ diff --git a/samples/EMU World/Rattle/Rattle (13).wav b/samples/EMU World/Rattle/Rattle (13).wav deleted file mode 100644 index 3924c92f6..000000000 Binary files a/samples/EMU World/Rattle/Rattle (13).wav and /dev/null differ diff --git a/samples/EMU World/Rattle/Rattle (2).wav b/samples/EMU World/Rattle/Rattle (2).wav deleted file mode 100644 index fec20df90..000000000 Binary files a/samples/EMU World/Rattle/Rattle (2).wav and /dev/null differ diff --git a/samples/EMU World/Rattle/Rattle (3).wav b/samples/EMU World/Rattle/Rattle (3).wav deleted file mode 100644 index bfdf9a9f1..000000000 Binary files a/samples/EMU World/Rattle/Rattle (3).wav and /dev/null differ diff --git a/samples/EMU World/Rattle/Rattle (4).wav b/samples/EMU World/Rattle/Rattle (4).wav deleted file mode 100644 index ef07ab17d..000000000 Binary files a/samples/EMU World/Rattle/Rattle (4).wav and /dev/null differ diff --git a/samples/EMU World/Rattle/Rattle (5).wav b/samples/EMU World/Rattle/Rattle (5).wav deleted file mode 100644 index 72df7e46d..000000000 Binary files a/samples/EMU World/Rattle/Rattle (5).wav and /dev/null differ diff --git a/samples/EMU World/Rattle/Rattle (6).wav b/samples/EMU World/Rattle/Rattle (6).wav deleted file mode 100644 index 0b771073a..000000000 Binary files a/samples/EMU World/Rattle/Rattle (6).wav and /dev/null differ diff --git a/samples/EMU World/Rattle/Rattle (7).wav b/samples/EMU World/Rattle/Rattle (7).wav deleted file mode 100644 index ab0c7c419..000000000 Binary files a/samples/EMU World/Rattle/Rattle (7).wav and /dev/null differ diff --git a/samples/EMU World/Rattle/Rattle (8).wav b/samples/EMU World/Rattle/Rattle (8).wav deleted file mode 100644 index 1b895a125..000000000 Binary files a/samples/EMU World/Rattle/Rattle (8).wav and /dev/null differ diff --git a/samples/EMU World/Rattle/Rattle (9).wav b/samples/EMU World/Rattle/Rattle (9).wav deleted file mode 100644 index ef73c0b76..000000000 Binary files a/samples/EMU World/Rattle/Rattle (9).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/RK Mute Tom 2.wav b/samples/EMU World/Ritual Kit/RK Mute Tom 2.wav deleted file mode 100644 index 779f54957..000000000 Binary files a/samples/EMU World/Ritual Kit/RK Mute Tom 2.wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/RK Mute Tom 3.wav b/samples/EMU World/Ritual Kit/RK Mute Tom 3.wav deleted file mode 100644 index 171b62b14..000000000 Binary files a/samples/EMU World/Ritual Kit/RK Mute Tom 3.wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/RK Mute Tom 4.wav b/samples/EMU World/Ritual Kit/RK Mute Tom 4.wav deleted file mode 100644 index fba2a2193..000000000 Binary files a/samples/EMU World/Ritual Kit/RK Mute Tom 4.wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/RK Mute Tom.wav b/samples/EMU World/Ritual Kit/RK Mute Tom.wav deleted file mode 100644 index 1db0aa38c..000000000 Binary files a/samples/EMU World/Ritual Kit/RK Mute Tom.wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (1).wav b/samples/EMU World/Ritual Kit/Ritual Kit (1).wav deleted file mode 100644 index 8e6c15300..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (1).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (10).wav b/samples/EMU World/Ritual Kit/Ritual Kit (10).wav deleted file mode 100644 index 6c1e9578e..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (10).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (11).wav b/samples/EMU World/Ritual Kit/Ritual Kit (11).wav deleted file mode 100644 index b567b6a89..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (11).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (12).wav b/samples/EMU World/Ritual Kit/Ritual Kit (12).wav deleted file mode 100644 index 21e6f38ff..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (12).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (13).wav b/samples/EMU World/Ritual Kit/Ritual Kit (13).wav deleted file mode 100644 index 253ad9f22..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (13).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (14).wav b/samples/EMU World/Ritual Kit/Ritual Kit (14).wav deleted file mode 100644 index a44d20d44..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (14).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (15).wav b/samples/EMU World/Ritual Kit/Ritual Kit (15).wav deleted file mode 100644 index 58d68c97f..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (15).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (16).wav b/samples/EMU World/Ritual Kit/Ritual Kit (16).wav deleted file mode 100644 index 6a696401f..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (16).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (17).wav b/samples/EMU World/Ritual Kit/Ritual Kit (17).wav deleted file mode 100644 index 60a1e6c7f..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (17).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (18).wav b/samples/EMU World/Ritual Kit/Ritual Kit (18).wav deleted file mode 100644 index d6dc75d51..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (18).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (19).wav b/samples/EMU World/Ritual Kit/Ritual Kit (19).wav deleted file mode 100644 index e08ca8a9e..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (19).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (2).wav b/samples/EMU World/Ritual Kit/Ritual Kit (2).wav deleted file mode 100644 index fdbdaa444..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (2).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (20).wav b/samples/EMU World/Ritual Kit/Ritual Kit (20).wav deleted file mode 100644 index 883616d0b..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (20).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (21).wav b/samples/EMU World/Ritual Kit/Ritual Kit (21).wav deleted file mode 100644 index bc236b524..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (21).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (22).wav b/samples/EMU World/Ritual Kit/Ritual Kit (22).wav deleted file mode 100644 index d62646afa..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (22).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (23).wav b/samples/EMU World/Ritual Kit/Ritual Kit (23).wav deleted file mode 100644 index 368371b5e..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (23).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (24).wav b/samples/EMU World/Ritual Kit/Ritual Kit (24).wav deleted file mode 100644 index b5b923f37..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (24).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (25).wav b/samples/EMU World/Ritual Kit/Ritual Kit (25).wav deleted file mode 100644 index 1184a5630..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (25).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (26).wav b/samples/EMU World/Ritual Kit/Ritual Kit (26).wav deleted file mode 100644 index ddb72c69c..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (26).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (27).wav b/samples/EMU World/Ritual Kit/Ritual Kit (27).wav deleted file mode 100644 index 235809927..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (27).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (28).wav b/samples/EMU World/Ritual Kit/Ritual Kit (28).wav deleted file mode 100644 index e80c50ccf..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (28).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (29).wav b/samples/EMU World/Ritual Kit/Ritual Kit (29).wav deleted file mode 100644 index 00a922bf8..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (29).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (3).wav b/samples/EMU World/Ritual Kit/Ritual Kit (3).wav deleted file mode 100644 index c303aee97..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (3).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (30).wav b/samples/EMU World/Ritual Kit/Ritual Kit (30).wav deleted file mode 100644 index 7dddd7c42..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (30).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (31).wav b/samples/EMU World/Ritual Kit/Ritual Kit (31).wav deleted file mode 100644 index 856edec21..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (31).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (32).wav b/samples/EMU World/Ritual Kit/Ritual Kit (32).wav deleted file mode 100644 index 7a784b70a..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (32).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (33).wav b/samples/EMU World/Ritual Kit/Ritual Kit (33).wav deleted file mode 100644 index 43f2bb9d7..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (33).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (34).wav b/samples/EMU World/Ritual Kit/Ritual Kit (34).wav deleted file mode 100644 index e2ced2143..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (34).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (38).wav b/samples/EMU World/Ritual Kit/Ritual Kit (38).wav deleted file mode 100644 index bc509255c..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (38).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (4).wav b/samples/EMU World/Ritual Kit/Ritual Kit (4).wav deleted file mode 100644 index a946ad960..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (4).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (40).wav b/samples/EMU World/Ritual Kit/Ritual Kit (40).wav deleted file mode 100644 index 921a9f20d..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (40).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (41).wav b/samples/EMU World/Ritual Kit/Ritual Kit (41).wav deleted file mode 100644 index 01a01957c..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (41).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (42).wav b/samples/EMU World/Ritual Kit/Ritual Kit (42).wav deleted file mode 100644 index ff5eac9a8..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (42).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (43).wav b/samples/EMU World/Ritual Kit/Ritual Kit (43).wav deleted file mode 100644 index 1cc0d871b..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (43).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (44).wav b/samples/EMU World/Ritual Kit/Ritual Kit (44).wav deleted file mode 100644 index 9b02bf57d..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (44).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (45).wav b/samples/EMU World/Ritual Kit/Ritual Kit (45).wav deleted file mode 100644 index 671f9b46f..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (45).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (46).wav b/samples/EMU World/Ritual Kit/Ritual Kit (46).wav deleted file mode 100644 index 4e84311a8..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (46).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (47).wav b/samples/EMU World/Ritual Kit/Ritual Kit (47).wav deleted file mode 100644 index 4906a99fb..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (47).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (5).wav b/samples/EMU World/Ritual Kit/Ritual Kit (5).wav deleted file mode 100644 index 2d9839db9..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (5).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (6).wav b/samples/EMU World/Ritual Kit/Ritual Kit (6).wav deleted file mode 100644 index e875ee249..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (6).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (7).wav b/samples/EMU World/Ritual Kit/Ritual Kit (7).wav deleted file mode 100644 index c2ab911c6..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (7).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (8).wav b/samples/EMU World/Ritual Kit/Ritual Kit (8).wav deleted file mode 100644 index 3b737ac8a..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (8).wav and /dev/null differ diff --git a/samples/EMU World/Ritual Kit/Ritual Kit (9).wav b/samples/EMU World/Ritual Kit/Ritual Kit (9).wav deleted file mode 100644 index 953b4e27d..000000000 Binary files a/samples/EMU World/Ritual Kit/Ritual Kit (9).wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Bass Drum.wav b/samples/EMU World/Salsa Kit/SK Bass Drum.wav deleted file mode 100644 index 724832e92..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Bass Drum.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Bass Tom.wav b/samples/EMU World/Salsa Kit/SK Bass Tom.wav deleted file mode 100644 index 71413895a..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Bass Tom.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Block 2.wav b/samples/EMU World/Salsa Kit/SK Block 2.wav deleted file mode 100644 index f9e42a2cc..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Block 2.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Block.wav b/samples/EMU World/Salsa Kit/SK Block.wav deleted file mode 100644 index 0f2988adc..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Block.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK China.wav b/samples/EMU World/Salsa Kit/SK China.wav deleted file mode 100644 index 37f896bf2..000000000 Binary files a/samples/EMU World/Salsa Kit/SK China.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Clap.wav b/samples/EMU World/Salsa Kit/SK Clap.wav deleted file mode 100644 index fe9f5f9ea..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Clap.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Claves.wav b/samples/EMU World/Salsa Kit/SK Claves.wav deleted file mode 100644 index a4575680a..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Claves.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Closed Hat 2.wav b/samples/EMU World/Salsa Kit/SK Closed Hat 2.wav deleted file mode 100644 index 756580792..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Closed Hat 2.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Closed Hat.wav b/samples/EMU World/Salsa Kit/SK Closed Hat.wav deleted file mode 100644 index 6d5bd743a..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Closed Hat.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Crash 2.wav b/samples/EMU World/Salsa Kit/SK Crash 2.wav deleted file mode 100644 index 2dd3594c5..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Crash 2.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Crash 3.wav b/samples/EMU World/Salsa Kit/SK Crash 3.wav deleted file mode 100644 index a7f309205..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Crash 3.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Crash 4.wav b/samples/EMU World/Salsa Kit/SK Crash 4.wav deleted file mode 100644 index b6fc46c70..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Crash 4.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Crash.wav b/samples/EMU World/Salsa Kit/SK Crash.wav deleted file mode 100644 index 81d245be6..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Crash.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Cup.wav b/samples/EMU World/Salsa Kit/SK Cup.wav deleted file mode 100644 index 138cd8b67..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Cup.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Guerro.wav b/samples/EMU World/Salsa Kit/SK Guerro.wav deleted file mode 100644 index 5bb6aef0f..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Guerro.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK High Bongo.wav b/samples/EMU World/Salsa Kit/SK High Bongo.wav deleted file mode 100644 index 00ce3e27f..000000000 Binary files a/samples/EMU World/Salsa Kit/SK High Bongo.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK High Conga 2.wav b/samples/EMU World/Salsa Kit/SK High Conga 2.wav deleted file mode 100644 index 19bad56f4..000000000 Binary files a/samples/EMU World/Salsa Kit/SK High Conga 2.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK High Conga.wav b/samples/EMU World/Salsa Kit/SK High Conga.wav deleted file mode 100644 index a709ede31..000000000 Binary files a/samples/EMU World/Salsa Kit/SK High Conga.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK High Tom 3.wav b/samples/EMU World/Salsa Kit/SK High Tom 3.wav deleted file mode 100644 index 7b6c8ccc8..000000000 Binary files a/samples/EMU World/Salsa Kit/SK High Tom 3.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK High Tom 4.wav b/samples/EMU World/Salsa Kit/SK High Tom 4.wav deleted file mode 100644 index 46413a86b..000000000 Binary files a/samples/EMU World/Salsa Kit/SK High Tom 4.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK High Tom 5.wav b/samples/EMU World/Salsa Kit/SK High Tom 5.wav deleted file mode 100644 index 76594e646..000000000 Binary files a/samples/EMU World/Salsa Kit/SK High Tom 5.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK High Tom.wav b/samples/EMU World/Salsa Kit/SK High Tom.wav deleted file mode 100644 index 8147bfcc7..000000000 Binary files a/samples/EMU World/Salsa Kit/SK High Tom.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Low Bongo.wav b/samples/EMU World/Salsa Kit/SK Low Bongo.wav deleted file mode 100644 index bf1ef570c..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Low Bongo.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Low Conga 2.wav b/samples/EMU World/Salsa Kit/SK Low Conga 2.wav deleted file mode 100644 index 893caa35e..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Low Conga 2.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Low Conga.wav b/samples/EMU World/Salsa Kit/SK Low Conga.wav deleted file mode 100644 index 154260d53..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Low Conga.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Low Tom 2.wav b/samples/EMU World/Salsa Kit/SK Low Tom 2.wav deleted file mode 100644 index 02f5ff492..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Low Tom 2.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Low Tom 4.wav b/samples/EMU World/Salsa Kit/SK Low Tom 4.wav deleted file mode 100644 index 6d81b99c5..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Low Tom 4.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Low Tom 5.wav b/samples/EMU World/Salsa Kit/SK Low Tom 5.wav deleted file mode 100644 index efed24f68..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Low Tom 5.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Low Tom.wav b/samples/EMU World/Salsa Kit/SK Low Tom.wav deleted file mode 100644 index f5142b70f..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Low Tom.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Mid Bass Tom.wav b/samples/EMU World/Salsa Kit/SK Mid Bass Tom.wav deleted file mode 100644 index af5f9a7b4..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Mid Bass Tom.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Mid Bongo.wav b/samples/EMU World/Salsa Kit/SK Mid Bongo.wav deleted file mode 100644 index 7ab4a9cf1..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Mid Bongo.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Mid Conga 2.wav b/samples/EMU World/Salsa Kit/SK Mid Conga 2.wav deleted file mode 100644 index 88305163d..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Mid Conga 2.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Mid Conga.wav b/samples/EMU World/Salsa Kit/SK Mid Conga.wav deleted file mode 100644 index 51c2500a1..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Mid Conga.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Mid Tom 3.wav b/samples/EMU World/Salsa Kit/SK Mid Tom 3.wav deleted file mode 100644 index 6bbc9028b..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Mid Tom 3.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Mid Tom 4.wav b/samples/EMU World/Salsa Kit/SK Mid Tom 4.wav deleted file mode 100644 index fb3f920a8..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Mid Tom 4.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Mid Tom.wav b/samples/EMU World/Salsa Kit/SK Mid Tom.wav deleted file mode 100644 index bc50e02e3..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Mid Tom.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Random Tom.wav b/samples/EMU World/Salsa Kit/SK Random Tom.wav deleted file mode 100644 index 8d8ec6f42..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Random Tom.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Rattle.wav b/samples/EMU World/Salsa Kit/SK Rattle.wav deleted file mode 100644 index 248e4d3ea..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Rattle.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Ride.wav b/samples/EMU World/Salsa Kit/SK Ride.wav deleted file mode 100644 index 36afd937c..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Ride.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Rim 2.wav b/samples/EMU World/Salsa Kit/SK Rim 2.wav deleted file mode 100644 index 3336075f5..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Rim 2.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Rim 3.wav b/samples/EMU World/Salsa Kit/SK Rim 3.wav deleted file mode 100644 index af998775a..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Rim 3.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Rimshot.wav b/samples/EMU World/Salsa Kit/SK Rimshot.wav deleted file mode 100644 index 26634ed5f..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Rimshot.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Scraper 2.wav b/samples/EMU World/Salsa Kit/SK Scraper 2.wav deleted file mode 100644 index a95f8ce4f..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Scraper 2.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Scraper 3.wav b/samples/EMU World/Salsa Kit/SK Scraper 3.wav deleted file mode 100644 index 51e47e8cf..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Scraper 3.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Scraper.wav b/samples/EMU World/Salsa Kit/SK Scraper.wav deleted file mode 100644 index d1e4c6397..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Scraper.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Seed Shaker.wav b/samples/EMU World/Salsa Kit/SK Seed Shaker.wav deleted file mode 100644 index ba77960af..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Seed Shaker.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Shaker.wav b/samples/EMU World/Salsa Kit/SK Shaker.wav deleted file mode 100644 index febcda69f..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Shaker.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Snare 2.wav b/samples/EMU World/Salsa Kit/SK Snare 2.wav deleted file mode 100644 index 28cb10894..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Snare 2.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Snare.wav b/samples/EMU World/Salsa Kit/SK Snare.wav deleted file mode 100644 index ef69b51c7..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Snare.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Tamb.wav b/samples/EMU World/Salsa Kit/SK Tamb.wav deleted file mode 100644 index 4ca6f508e..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Tamb.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Triangle 2.wav b/samples/EMU World/Salsa Kit/SK Triangle 2.wav deleted file mode 100644 index b8f2aae7b..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Triangle 2.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Triangle.wav b/samples/EMU World/Salsa Kit/SK Triangle.wav deleted file mode 100644 index 6d6a8f719..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Triangle.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Wobble Drum 2.wav b/samples/EMU World/Salsa Kit/SK Wobble Drum 2.wav deleted file mode 100644 index 0daa34cc2..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Wobble Drum 2.wav and /dev/null differ diff --git a/samples/EMU World/Salsa Kit/SK Wobble Drum.wav b/samples/EMU World/Salsa Kit/SK Wobble Drum.wav deleted file mode 100644 index 8bf7e3832..000000000 Binary files a/samples/EMU World/Salsa Kit/SK Wobble Drum.wav and /dev/null differ diff --git a/samples/EMU World/Seed Shaker/Seed Shaker (1).wav b/samples/EMU World/Seed Shaker/Seed Shaker (1).wav deleted file mode 100644 index 5e6553373..000000000 Binary files a/samples/EMU World/Seed Shaker/Seed Shaker (1).wav and /dev/null differ diff --git a/samples/EMU World/Seed Shaker/Seed Shaker (10).wav b/samples/EMU World/Seed Shaker/Seed Shaker (10).wav deleted file mode 100644 index 552a3dc87..000000000 Binary files a/samples/EMU World/Seed Shaker/Seed Shaker (10).wav and /dev/null differ diff --git a/samples/EMU World/Seed Shaker/Seed Shaker (11).wav b/samples/EMU World/Seed Shaker/Seed Shaker (11).wav deleted file mode 100644 index bab9aad43..000000000 Binary files a/samples/EMU World/Seed Shaker/Seed Shaker (11).wav and /dev/null differ diff --git a/samples/EMU World/Seed Shaker/Seed Shaker (12).wav b/samples/EMU World/Seed Shaker/Seed Shaker (12).wav deleted file mode 100644 index edb286065..000000000 Binary files a/samples/EMU World/Seed Shaker/Seed Shaker (12).wav and /dev/null differ diff --git a/samples/EMU World/Seed Shaker/Seed Shaker (13).wav b/samples/EMU World/Seed Shaker/Seed Shaker (13).wav deleted file mode 100644 index 3d75d001f..000000000 Binary files a/samples/EMU World/Seed Shaker/Seed Shaker (13).wav and /dev/null differ diff --git a/samples/EMU World/Seed Shaker/Seed Shaker (2).wav b/samples/EMU World/Seed Shaker/Seed Shaker (2).wav deleted file mode 100644 index 0b5c52579..000000000 Binary files a/samples/EMU World/Seed Shaker/Seed Shaker (2).wav and /dev/null differ diff --git a/samples/EMU World/Seed Shaker/Seed Shaker (3).wav b/samples/EMU World/Seed Shaker/Seed Shaker (3).wav deleted file mode 100644 index 3ca2ed527..000000000 Binary files a/samples/EMU World/Seed Shaker/Seed Shaker (3).wav and /dev/null differ diff --git a/samples/EMU World/Seed Shaker/Seed Shaker (4).wav b/samples/EMU World/Seed Shaker/Seed Shaker (4).wav deleted file mode 100644 index b080690e2..000000000 Binary files a/samples/EMU World/Seed Shaker/Seed Shaker (4).wav and /dev/null differ diff --git a/samples/EMU World/Seed Shaker/Seed Shaker (5).wav b/samples/EMU World/Seed Shaker/Seed Shaker (5).wav deleted file mode 100644 index ec0279a72..000000000 Binary files a/samples/EMU World/Seed Shaker/Seed Shaker (5).wav and /dev/null differ diff --git a/samples/EMU World/Seed Shaker/Seed Shaker (6).wav b/samples/EMU World/Seed Shaker/Seed Shaker (6).wav deleted file mode 100644 index 5255300e3..000000000 Binary files a/samples/EMU World/Seed Shaker/Seed Shaker (6).wav and /dev/null differ diff --git a/samples/EMU World/Seed Shaker/Seed Shaker (7).wav b/samples/EMU World/Seed Shaker/Seed Shaker (7).wav deleted file mode 100644 index ba90c09ee..000000000 Binary files a/samples/EMU World/Seed Shaker/Seed Shaker (7).wav and /dev/null differ diff --git a/samples/EMU World/Seed Shaker/Seed Shaker (8).wav b/samples/EMU World/Seed Shaker/Seed Shaker (8).wav deleted file mode 100644 index 41899209e..000000000 Binary files a/samples/EMU World/Seed Shaker/Seed Shaker (8).wav and /dev/null differ diff --git a/samples/EMU World/Seed Shaker/Seed Shaker (9).wav b/samples/EMU World/Seed Shaker/Seed Shaker (9).wav deleted file mode 100644 index 3d284fbf8..000000000 Binary files a/samples/EMU World/Seed Shaker/Seed Shaker (9).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (1).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (1).wav deleted file mode 100644 index cc3a667b7..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (1).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (10).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (10).wav deleted file mode 100644 index fe93df15c..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (10).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (11).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (11).wav deleted file mode 100644 index 7c8c6a653..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (11).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (12).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (12).wav deleted file mode 100644 index 3855d0f03..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (12).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (13).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (13).wav deleted file mode 100644 index 3b181c37a..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (13).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (14).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (14).wav deleted file mode 100644 index 4a289201a..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (14).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (2).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (2).wav deleted file mode 100644 index 4d6c63f33..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (2).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (3).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (3).wav deleted file mode 100644 index 835df9cd1..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (3).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (4).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (4).wav deleted file mode 100644 index 91a1d6b0b..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (4).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (5).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (5).wav deleted file mode 100644 index 6e6cc1db9..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (5).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (6).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (6).wav deleted file mode 100644 index d1799cf70..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (6).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (7).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (7).wav deleted file mode 100644 index 2efa81143..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (7).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (8).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (8).wav deleted file mode 100644 index 96a9d0399..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (8).wav and /dev/null differ diff --git a/samples/EMU World/Shaker Triangle/Shaker Triangle (9).wav b/samples/EMU World/Shaker Triangle/Shaker Triangle (9).wav deleted file mode 100644 index 40f495aac..000000000 Binary files a/samples/EMU World/Shaker Triangle/Shaker Triangle (9).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (1).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (1).wav deleted file mode 100644 index 48d1ecb77..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (1).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (10).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (10).wav deleted file mode 100644 index 87a698625..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (10).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (11).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (11).wav deleted file mode 100644 index b7f2121a1..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (11).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (12).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (12).wav deleted file mode 100644 index a5f85b9ab..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (12).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (13).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (13).wav deleted file mode 100644 index 9f1885c30..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (13).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (14).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (14).wav deleted file mode 100644 index 2d456d9ce..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (14).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (15).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (15).wav deleted file mode 100644 index 8c7a8d075..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (15).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (16).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (16).wav deleted file mode 100644 index 84759b437..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (16).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (17).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (17).wav deleted file mode 100644 index 249a8e07e..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (17).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (18).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (18).wav deleted file mode 100644 index 1ac9f542d..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (18).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (19).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (19).wav deleted file mode 100644 index e478c6917..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (19).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (2).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (2).wav deleted file mode 100644 index 03e799f45..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (2).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (20).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (20).wav deleted file mode 100644 index 341ae08f9..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (20).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (3).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (3).wav deleted file mode 100644 index 83b68b40f..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (3).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (4).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (4).wav deleted file mode 100644 index 7aefe2a9a..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (4).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (5).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (5).wav deleted file mode 100644 index 99b0975be..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (5).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (6).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (6).wav deleted file mode 100644 index c3dcfe502..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (6).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (7).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (7).wav deleted file mode 100644 index 9cdcb0e37..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (7).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (8).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (8).wav deleted file mode 100644 index d9f49e747..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (8).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Guerro/ShakerGuerro (9).wav b/samples/EMU World/Shakers and Guerro/ShakerGuerro (9).wav deleted file mode 100644 index 2648f0a21..000000000 Binary files a/samples/EMU World/Shakers and Guerro/ShakerGuerro (9).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (1).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (1).wav deleted file mode 100644 index 9abe08ec5..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (1).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (10).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (10).wav deleted file mode 100644 index cbe874e26..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (10).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (11).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (11).wav deleted file mode 100644 index 1f8c778ba..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (11).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (12).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (12).wav deleted file mode 100644 index ea034fd5d..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (12).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (13).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (13).wav deleted file mode 100644 index 7f069917f..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (13).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (14).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (14).wav deleted file mode 100644 index 4def1fbfe..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (14).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (15).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (15).wav deleted file mode 100644 index eaaff1f3c..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (15).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (16).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (16).wav deleted file mode 100644 index ddf5645db..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (16).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (17).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (17).wav deleted file mode 100644 index 18660aa25..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (17).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (18).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (18).wav deleted file mode 100644 index 914803011..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (18).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (19).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (19).wav deleted file mode 100644 index e3f54f4f8..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (19).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (2).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (2).wav deleted file mode 100644 index 5b46da57b..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (2).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (20).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (20).wav deleted file mode 100644 index e0f6717cc..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (20).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (21).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (21).wav deleted file mode 100644 index acb25ec26..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (21).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (22).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (22).wav deleted file mode 100644 index eb5691f25..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (22).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (23).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (23).wav deleted file mode 100644 index a85d4bdc7..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (23).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (24).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (24).wav deleted file mode 100644 index 1302193cf..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (24).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (25).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (25).wav deleted file mode 100644 index 165592bb7..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (25).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (26).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (26).wav deleted file mode 100644 index f5cd486f0..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (26).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (27).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (27).wav deleted file mode 100644 index d1ab859f4..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (27).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (28).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (28).wav deleted file mode 100644 index 64c4cca72..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (28).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (29).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (29).wav deleted file mode 100644 index 4566d0a16..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (29).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (3).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (3).wav deleted file mode 100644 index b527f9a70..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (3).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (30).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (30).wav deleted file mode 100644 index 49dc8bd7b..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (30).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (31).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (31).wav deleted file mode 100644 index f8648e317..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (31).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (32).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (32).wav deleted file mode 100644 index 17683ae87..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (32).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (33).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (33).wav deleted file mode 100644 index cd71d48bd..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (33).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (34).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (34).wav deleted file mode 100644 index 5487581f8..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (34).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (35).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (35).wav deleted file mode 100644 index c65d0c6dc..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (35).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (36).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (36).wav deleted file mode 100644 index 729d8ce09..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (36).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (37).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (37).wav deleted file mode 100644 index 178a9b634..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (37).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (38).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (38).wav deleted file mode 100644 index e9fab887a..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (38).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (39).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (39).wav deleted file mode 100644 index cf0f50513..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (39).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (4).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (4).wav deleted file mode 100644 index 995583d35..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (4).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (40).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (40).wav deleted file mode 100644 index a325769f9..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (40).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (41).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (41).wav deleted file mode 100644 index 2ceb6e49b..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (41).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (42).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (42).wav deleted file mode 100644 index 5478d74c4..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (42).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (43).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (43).wav deleted file mode 100644 index 709aeecdf..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (43).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (44).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (44).wav deleted file mode 100644 index cf3aeadd2..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (44).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (45).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (45).wav deleted file mode 100644 index 93faeabac..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (45).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (46).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (46).wav deleted file mode 100644 index 88dfd0e3d..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (46).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (47).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (47).wav deleted file mode 100644 index 3d72337a4..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (47).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (48).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (48).wav deleted file mode 100644 index 314944d39..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (48).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (49).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (49).wav deleted file mode 100644 index f7ce6bf9f..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (49).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (5).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (5).wav deleted file mode 100644 index 4ba19a570..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (5).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (50).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (50).wav deleted file mode 100644 index bbdbba589..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (50).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (51).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (51).wav deleted file mode 100644 index 284a98411..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (51).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (52).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (52).wav deleted file mode 100644 index a12a876cd..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (52).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (53).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (53).wav deleted file mode 100644 index 58a69df13..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (53).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (54).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (54).wav deleted file mode 100644 index 097669d31..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (54).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (55).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (55).wav deleted file mode 100644 index f2780b461..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (55).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (56).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (56).wav deleted file mode 100644 index d2fd406ad..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (56).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (57).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (57).wav deleted file mode 100644 index 009ac7be0..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (57).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (6).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (6).wav deleted file mode 100644 index 7b27985fa..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (6).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (7).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (7).wav deleted file mode 100644 index 8ce437d00..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (7).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (8).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (8).wav deleted file mode 100644 index 64289fe22..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (8).wav and /dev/null differ diff --git a/samples/EMU World/Shakers and Scrapers/ShakerScraper (9).wav b/samples/EMU World/Shakers and Scrapers/ShakerScraper (9).wav deleted file mode 100644 index 7a8a17fab..000000000 Binary files a/samples/EMU World/Shakers and Scrapers/ShakerScraper (9).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (1).wav b/samples/EMU World/Shekere/Shekere (1).wav deleted file mode 100644 index c2309f316..000000000 Binary files a/samples/EMU World/Shekere/Shekere (1).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (10).wav b/samples/EMU World/Shekere/Shekere (10).wav deleted file mode 100644 index 6f2dfc01a..000000000 Binary files a/samples/EMU World/Shekere/Shekere (10).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (11).wav b/samples/EMU World/Shekere/Shekere (11).wav deleted file mode 100644 index dba365e43..000000000 Binary files a/samples/EMU World/Shekere/Shekere (11).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (12).wav b/samples/EMU World/Shekere/Shekere (12).wav deleted file mode 100644 index 00f4f79af..000000000 Binary files a/samples/EMU World/Shekere/Shekere (12).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (13).wav b/samples/EMU World/Shekere/Shekere (13).wav deleted file mode 100644 index 3141cc124..000000000 Binary files a/samples/EMU World/Shekere/Shekere (13).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (14).wav b/samples/EMU World/Shekere/Shekere (14).wav deleted file mode 100644 index a99b347c2..000000000 Binary files a/samples/EMU World/Shekere/Shekere (14).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (15).wav b/samples/EMU World/Shekere/Shekere (15).wav deleted file mode 100644 index f81a4c7b1..000000000 Binary files a/samples/EMU World/Shekere/Shekere (15).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (16).wav b/samples/EMU World/Shekere/Shekere (16).wav deleted file mode 100644 index d07b139e7..000000000 Binary files a/samples/EMU World/Shekere/Shekere (16).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (17).wav b/samples/EMU World/Shekere/Shekere (17).wav deleted file mode 100644 index 20b057ffc..000000000 Binary files a/samples/EMU World/Shekere/Shekere (17).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (18).wav b/samples/EMU World/Shekere/Shekere (18).wav deleted file mode 100644 index f2caade9a..000000000 Binary files a/samples/EMU World/Shekere/Shekere (18).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (19).wav b/samples/EMU World/Shekere/Shekere (19).wav deleted file mode 100644 index 52ff1bfc7..000000000 Binary files a/samples/EMU World/Shekere/Shekere (19).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (2).wav b/samples/EMU World/Shekere/Shekere (2).wav deleted file mode 100644 index 4d11a4294..000000000 Binary files a/samples/EMU World/Shekere/Shekere (2).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (20).wav b/samples/EMU World/Shekere/Shekere (20).wav deleted file mode 100644 index e306cb1cc..000000000 Binary files a/samples/EMU World/Shekere/Shekere (20).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (21).wav b/samples/EMU World/Shekere/Shekere (21).wav deleted file mode 100644 index 8a050b1e9..000000000 Binary files a/samples/EMU World/Shekere/Shekere (21).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (22).wav b/samples/EMU World/Shekere/Shekere (22).wav deleted file mode 100644 index 473f17894..000000000 Binary files a/samples/EMU World/Shekere/Shekere (22).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (23).wav b/samples/EMU World/Shekere/Shekere (23).wav deleted file mode 100644 index b116545c9..000000000 Binary files a/samples/EMU World/Shekere/Shekere (23).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (24).wav b/samples/EMU World/Shekere/Shekere (24).wav deleted file mode 100644 index 9bde513b2..000000000 Binary files a/samples/EMU World/Shekere/Shekere (24).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (25).wav b/samples/EMU World/Shekere/Shekere (25).wav deleted file mode 100644 index 35d586214..000000000 Binary files a/samples/EMU World/Shekere/Shekere (25).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (26).wav b/samples/EMU World/Shekere/Shekere (26).wav deleted file mode 100644 index a7b763dd6..000000000 Binary files a/samples/EMU World/Shekere/Shekere (26).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (27).wav b/samples/EMU World/Shekere/Shekere (27).wav deleted file mode 100644 index 17ab43c7a..000000000 Binary files a/samples/EMU World/Shekere/Shekere (27).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (28).wav b/samples/EMU World/Shekere/Shekere (28).wav deleted file mode 100644 index 4dee8d324..000000000 Binary files a/samples/EMU World/Shekere/Shekere (28).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (29).wav b/samples/EMU World/Shekere/Shekere (29).wav deleted file mode 100644 index 214d1a596..000000000 Binary files a/samples/EMU World/Shekere/Shekere (29).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (3).wav b/samples/EMU World/Shekere/Shekere (3).wav deleted file mode 100644 index 4f5e554aa..000000000 Binary files a/samples/EMU World/Shekere/Shekere (3).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (30).wav b/samples/EMU World/Shekere/Shekere (30).wav deleted file mode 100644 index a12f0bcbf..000000000 Binary files a/samples/EMU World/Shekere/Shekere (30).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (31).wav b/samples/EMU World/Shekere/Shekere (31).wav deleted file mode 100644 index d936bebbd..000000000 Binary files a/samples/EMU World/Shekere/Shekere (31).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (32).wav b/samples/EMU World/Shekere/Shekere (32).wav deleted file mode 100644 index da2b276de..000000000 Binary files a/samples/EMU World/Shekere/Shekere (32).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (33).wav b/samples/EMU World/Shekere/Shekere (33).wav deleted file mode 100644 index 030ab23cf..000000000 Binary files a/samples/EMU World/Shekere/Shekere (33).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (34).wav b/samples/EMU World/Shekere/Shekere (34).wav deleted file mode 100644 index 41b4a71cc..000000000 Binary files a/samples/EMU World/Shekere/Shekere (34).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (35).wav b/samples/EMU World/Shekere/Shekere (35).wav deleted file mode 100644 index 3260fcfa6..000000000 Binary files a/samples/EMU World/Shekere/Shekere (35).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (36).wav b/samples/EMU World/Shekere/Shekere (36).wav deleted file mode 100644 index c7225eb30..000000000 Binary files a/samples/EMU World/Shekere/Shekere (36).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (37).wav b/samples/EMU World/Shekere/Shekere (37).wav deleted file mode 100644 index 8e2ed9fb6..000000000 Binary files a/samples/EMU World/Shekere/Shekere (37).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (38).wav b/samples/EMU World/Shekere/Shekere (38).wav deleted file mode 100644 index e9ab43df4..000000000 Binary files a/samples/EMU World/Shekere/Shekere (38).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (4).wav b/samples/EMU World/Shekere/Shekere (4).wav deleted file mode 100644 index acf06f8e4..000000000 Binary files a/samples/EMU World/Shekere/Shekere (4).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (5).wav b/samples/EMU World/Shekere/Shekere (5).wav deleted file mode 100644 index b24dce2bf..000000000 Binary files a/samples/EMU World/Shekere/Shekere (5).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (6).wav b/samples/EMU World/Shekere/Shekere (6).wav deleted file mode 100644 index 45c741ae1..000000000 Binary files a/samples/EMU World/Shekere/Shekere (6).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (7).wav b/samples/EMU World/Shekere/Shekere (7).wav deleted file mode 100644 index 36577b741..000000000 Binary files a/samples/EMU World/Shekere/Shekere (7).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (8).wav b/samples/EMU World/Shekere/Shekere (8).wav deleted file mode 100644 index 5cd87fdf6..000000000 Binary files a/samples/EMU World/Shekere/Shekere (8).wav and /dev/null differ diff --git a/samples/EMU World/Shekere/Shekere (9).wav b/samples/EMU World/Shekere/Shekere (9).wav deleted file mode 100644 index 81cce891b..000000000 Binary files a/samples/EMU World/Shekere/Shekere (9).wav and /dev/null differ diff --git a/samples/EMU World/Steel Drum/Steel Drum (1).wav b/samples/EMU World/Steel Drum/Steel Drum (1).wav deleted file mode 100644 index 00c386b56..000000000 Binary files a/samples/EMU World/Steel Drum/Steel Drum (1).wav and /dev/null differ diff --git a/samples/EMU World/Steel Drum/Steel Drum (10).wav b/samples/EMU World/Steel Drum/Steel Drum (10).wav deleted file mode 100644 index fb68d9f27..000000000 Binary files a/samples/EMU World/Steel Drum/Steel Drum (10).wav and /dev/null differ diff --git a/samples/EMU World/Steel Drum/Steel Drum (11).wav b/samples/EMU World/Steel Drum/Steel Drum (11).wav deleted file mode 100644 index bacf4a984..000000000 Binary files a/samples/EMU World/Steel Drum/Steel Drum (11).wav and /dev/null differ diff --git a/samples/EMU World/Steel Drum/Steel Drum (12).wav b/samples/EMU World/Steel Drum/Steel Drum (12).wav deleted file mode 100644 index 49a1be2f2..000000000 Binary files a/samples/EMU World/Steel Drum/Steel Drum (12).wav and /dev/null differ diff --git a/samples/EMU World/Steel Drum/Steel Drum (2).wav b/samples/EMU World/Steel Drum/Steel Drum (2).wav deleted file mode 100644 index 7cc5d1b3a..000000000 Binary files a/samples/EMU World/Steel Drum/Steel Drum (2).wav and /dev/null differ diff --git a/samples/EMU World/Steel Drum/Steel Drum (3).wav b/samples/EMU World/Steel Drum/Steel Drum (3).wav deleted file mode 100644 index 43bd9dd56..000000000 Binary files a/samples/EMU World/Steel Drum/Steel Drum (3).wav and /dev/null differ diff --git a/samples/EMU World/Steel Drum/Steel Drum (4).wav b/samples/EMU World/Steel Drum/Steel Drum (4).wav deleted file mode 100644 index 967615c30..000000000 Binary files a/samples/EMU World/Steel Drum/Steel Drum (4).wav and /dev/null differ diff --git a/samples/EMU World/Steel Drum/Steel Drum (5).wav b/samples/EMU World/Steel Drum/Steel Drum (5).wav deleted file mode 100644 index a59da7ea6..000000000 Binary files a/samples/EMU World/Steel Drum/Steel Drum (5).wav and /dev/null differ diff --git a/samples/EMU World/Steel Drum/Steel Drum (6).wav b/samples/EMU World/Steel Drum/Steel Drum (6).wav deleted file mode 100644 index 6639daca0..000000000 Binary files a/samples/EMU World/Steel Drum/Steel Drum (6).wav and /dev/null differ diff --git a/samples/EMU World/Steel Drum/Steel Drum (7).wav b/samples/EMU World/Steel Drum/Steel Drum (7).wav deleted file mode 100644 index 8c3b46161..000000000 Binary files a/samples/EMU World/Steel Drum/Steel Drum (7).wav and /dev/null differ diff --git a/samples/EMU World/Steel Drum/Steel Drum (8).wav b/samples/EMU World/Steel Drum/Steel Drum (8).wav deleted file mode 100644 index 0e10f68b9..000000000 Binary files a/samples/EMU World/Steel Drum/Steel Drum (8).wav and /dev/null differ diff --git a/samples/EMU World/Steel Drum/Steel Drum (9).wav b/samples/EMU World/Steel Drum/Steel Drum (9).wav deleted file mode 100644 index f74900dd7..000000000 Binary files a/samples/EMU World/Steel Drum/Steel Drum (9).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (1).wav b/samples/EMU World/Tabla/Tabla (1).wav deleted file mode 100644 index 6592d0015..000000000 Binary files a/samples/EMU World/Tabla/Tabla (1).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (10).wav b/samples/EMU World/Tabla/Tabla (10).wav deleted file mode 100644 index 4eeaf9ebb..000000000 Binary files a/samples/EMU World/Tabla/Tabla (10).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (11).wav b/samples/EMU World/Tabla/Tabla (11).wav deleted file mode 100644 index 1cba1e860..000000000 Binary files a/samples/EMU World/Tabla/Tabla (11).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (12).wav b/samples/EMU World/Tabla/Tabla (12).wav deleted file mode 100644 index 032295f5e..000000000 Binary files a/samples/EMU World/Tabla/Tabla (12).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (13).wav b/samples/EMU World/Tabla/Tabla (13).wav deleted file mode 100644 index 906176982..000000000 Binary files a/samples/EMU World/Tabla/Tabla (13).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (14).wav b/samples/EMU World/Tabla/Tabla (14).wav deleted file mode 100644 index 839bb96c1..000000000 Binary files a/samples/EMU World/Tabla/Tabla (14).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (15).wav b/samples/EMU World/Tabla/Tabla (15).wav deleted file mode 100644 index 065f015d0..000000000 Binary files a/samples/EMU World/Tabla/Tabla (15).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (16).wav b/samples/EMU World/Tabla/Tabla (16).wav deleted file mode 100644 index 37e2fe2e6..000000000 Binary files a/samples/EMU World/Tabla/Tabla (16).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (17).wav b/samples/EMU World/Tabla/Tabla (17).wav deleted file mode 100644 index 1628e87cb..000000000 Binary files a/samples/EMU World/Tabla/Tabla (17).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (18).wav b/samples/EMU World/Tabla/Tabla (18).wav deleted file mode 100644 index e800f9f44..000000000 Binary files a/samples/EMU World/Tabla/Tabla (18).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (19).wav b/samples/EMU World/Tabla/Tabla (19).wav deleted file mode 100644 index f618fbe8e..000000000 Binary files a/samples/EMU World/Tabla/Tabla (19).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (2).wav b/samples/EMU World/Tabla/Tabla (2).wav deleted file mode 100644 index 29d185b64..000000000 Binary files a/samples/EMU World/Tabla/Tabla (2).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (20).wav b/samples/EMU World/Tabla/Tabla (20).wav deleted file mode 100644 index 2d1cda9d5..000000000 Binary files a/samples/EMU World/Tabla/Tabla (20).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (21).wav b/samples/EMU World/Tabla/Tabla (21).wav deleted file mode 100644 index 209df68d1..000000000 Binary files a/samples/EMU World/Tabla/Tabla (21).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (22).wav b/samples/EMU World/Tabla/Tabla (22).wav deleted file mode 100644 index 96633c17c..000000000 Binary files a/samples/EMU World/Tabla/Tabla (22).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (23).wav b/samples/EMU World/Tabla/Tabla (23).wav deleted file mode 100644 index d2b2689fa..000000000 Binary files a/samples/EMU World/Tabla/Tabla (23).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (3).wav b/samples/EMU World/Tabla/Tabla (3).wav deleted file mode 100644 index 38bce6480..000000000 Binary files a/samples/EMU World/Tabla/Tabla (3).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (4).wav b/samples/EMU World/Tabla/Tabla (4).wav deleted file mode 100644 index a1bff424a..000000000 Binary files a/samples/EMU World/Tabla/Tabla (4).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (5).wav b/samples/EMU World/Tabla/Tabla (5).wav deleted file mode 100644 index 5bbd5dce0..000000000 Binary files a/samples/EMU World/Tabla/Tabla (5).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (6).wav b/samples/EMU World/Tabla/Tabla (6).wav deleted file mode 100644 index 27322a4d3..000000000 Binary files a/samples/EMU World/Tabla/Tabla (6).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (7).wav b/samples/EMU World/Tabla/Tabla (7).wav deleted file mode 100644 index 9904bcf3d..000000000 Binary files a/samples/EMU World/Tabla/Tabla (7).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (8).wav b/samples/EMU World/Tabla/Tabla (8).wav deleted file mode 100644 index fb9e8ba7b..000000000 Binary files a/samples/EMU World/Tabla/Tabla (8).wav and /dev/null differ diff --git a/samples/EMU World/Tabla/Tabla (9).wav b/samples/EMU World/Tabla/Tabla (9).wav deleted file mode 100644 index b0bf8dfb0..000000000 Binary files a/samples/EMU World/Tabla/Tabla (9).wav and /dev/null differ diff --git a/samples/EMU World/Tabor/Tabor (1).wav b/samples/EMU World/Tabor/Tabor (1).wav deleted file mode 100644 index a34b2cada..000000000 Binary files a/samples/EMU World/Tabor/Tabor (1).wav and /dev/null differ diff --git a/samples/EMU World/Tabor/Tabor (2).wav b/samples/EMU World/Tabor/Tabor (2).wav deleted file mode 100644 index 31ae11d7d..000000000 Binary files a/samples/EMU World/Tabor/Tabor (2).wav and /dev/null differ diff --git a/samples/EMU World/Tabor/Tabor (3).wav b/samples/EMU World/Tabor/Tabor (3).wav deleted file mode 100644 index 9b6a9a2b6..000000000 Binary files a/samples/EMU World/Tabor/Tabor (3).wav and /dev/null differ diff --git a/samples/EMU World/Tabor/Tabor (4).wav b/samples/EMU World/Tabor/Tabor (4).wav deleted file mode 100644 index 623c1c722..000000000 Binary files a/samples/EMU World/Tabor/Tabor (4).wav and /dev/null differ diff --git a/samples/EMU World/Tabor/Tabor (5).wav b/samples/EMU World/Tabor/Tabor (5).wav deleted file mode 100644 index 241a95705..000000000 Binary files a/samples/EMU World/Tabor/Tabor (5).wav and /dev/null differ diff --git a/samples/EMU World/Tabor/Tabor (6).wav b/samples/EMU World/Tabor/Tabor (6).wav deleted file mode 100644 index ba549ef72..000000000 Binary files a/samples/EMU World/Tabor/Tabor (6).wav and /dev/null differ diff --git a/samples/EMU World/Tabor/Tabor (7).wav b/samples/EMU World/Tabor/Tabor (7).wav deleted file mode 100644 index 1c9d272ff..000000000 Binary files a/samples/EMU World/Tabor/Tabor (7).wav and /dev/null differ diff --git a/samples/EMU World/Tabor/Tabor (8).wav b/samples/EMU World/Tabor/Tabor (8).wav deleted file mode 100644 index 2e6506935..000000000 Binary files a/samples/EMU World/Tabor/Tabor (8).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (1).wav b/samples/EMU World/Taiko/Taiko (1).wav deleted file mode 100644 index 83d9f59d0..000000000 Binary files a/samples/EMU World/Taiko/Taiko (1).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (10).wav b/samples/EMU World/Taiko/Taiko (10).wav deleted file mode 100644 index 0a3360b39..000000000 Binary files a/samples/EMU World/Taiko/Taiko (10).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (11).wav b/samples/EMU World/Taiko/Taiko (11).wav deleted file mode 100644 index 22cdb0485..000000000 Binary files a/samples/EMU World/Taiko/Taiko (11).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (12).wav b/samples/EMU World/Taiko/Taiko (12).wav deleted file mode 100644 index 10400dc15..000000000 Binary files a/samples/EMU World/Taiko/Taiko (12).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (13).wav b/samples/EMU World/Taiko/Taiko (13).wav deleted file mode 100644 index 123c0403e..000000000 Binary files a/samples/EMU World/Taiko/Taiko (13).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (14).wav b/samples/EMU World/Taiko/Taiko (14).wav deleted file mode 100644 index b9750018a..000000000 Binary files a/samples/EMU World/Taiko/Taiko (14).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (15).wav b/samples/EMU World/Taiko/Taiko (15).wav deleted file mode 100644 index a72004fc9..000000000 Binary files a/samples/EMU World/Taiko/Taiko (15).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (16).wav b/samples/EMU World/Taiko/Taiko (16).wav deleted file mode 100644 index 25143980a..000000000 Binary files a/samples/EMU World/Taiko/Taiko (16).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (17).wav b/samples/EMU World/Taiko/Taiko (17).wav deleted file mode 100644 index c4c08ff6c..000000000 Binary files a/samples/EMU World/Taiko/Taiko (17).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (18).wav b/samples/EMU World/Taiko/Taiko (18).wav deleted file mode 100644 index a5b778353..000000000 Binary files a/samples/EMU World/Taiko/Taiko (18).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (19).wav b/samples/EMU World/Taiko/Taiko (19).wav deleted file mode 100644 index 6806c775c..000000000 Binary files a/samples/EMU World/Taiko/Taiko (19).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (2).wav b/samples/EMU World/Taiko/Taiko (2).wav deleted file mode 100644 index 245749e5a..000000000 Binary files a/samples/EMU World/Taiko/Taiko (2).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (20).wav b/samples/EMU World/Taiko/Taiko (20).wav deleted file mode 100644 index 45e6b2d9d..000000000 Binary files a/samples/EMU World/Taiko/Taiko (20).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (21).wav b/samples/EMU World/Taiko/Taiko (21).wav deleted file mode 100644 index d818e9a6f..000000000 Binary files a/samples/EMU World/Taiko/Taiko (21).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (3).wav b/samples/EMU World/Taiko/Taiko (3).wav deleted file mode 100644 index f6de8726c..000000000 Binary files a/samples/EMU World/Taiko/Taiko (3).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (4).wav b/samples/EMU World/Taiko/Taiko (4).wav deleted file mode 100644 index 0848db2f1..000000000 Binary files a/samples/EMU World/Taiko/Taiko (4).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (5).wav b/samples/EMU World/Taiko/Taiko (5).wav deleted file mode 100644 index cc428b79e..000000000 Binary files a/samples/EMU World/Taiko/Taiko (5).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (6).wav b/samples/EMU World/Taiko/Taiko (6).wav deleted file mode 100644 index 7c997cd7c..000000000 Binary files a/samples/EMU World/Taiko/Taiko (6).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (7).wav b/samples/EMU World/Taiko/Taiko (7).wav deleted file mode 100644 index 2a391c78e..000000000 Binary files a/samples/EMU World/Taiko/Taiko (7).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (8).wav b/samples/EMU World/Taiko/Taiko (8).wav deleted file mode 100644 index 9f137b08c..000000000 Binary files a/samples/EMU World/Taiko/Taiko (8).wav and /dev/null differ diff --git a/samples/EMU World/Taiko/Taiko (9).wav b/samples/EMU World/Taiko/Taiko (9).wav deleted file mode 100644 index 7f40207cc..000000000 Binary files a/samples/EMU World/Taiko/Taiko (9).wav and /dev/null differ diff --git a/samples/EMU World/Talking Drum/Talking Drum (1).wav b/samples/EMU World/Talking Drum/Talking Drum (1).wav deleted file mode 100644 index 9dad822f6..000000000 Binary files a/samples/EMU World/Talking Drum/Talking Drum (1).wav and /dev/null differ diff --git a/samples/EMU World/Talking Drum/Talking Drum (2).wav b/samples/EMU World/Talking Drum/Talking Drum (2).wav deleted file mode 100644 index 92154e5bc..000000000 Binary files a/samples/EMU World/Talking Drum/Talking Drum (2).wav and /dev/null differ diff --git a/samples/EMU World/Talking Drum/Talking Drum (3).wav b/samples/EMU World/Talking Drum/Talking Drum (3).wav deleted file mode 100644 index a2496504f..000000000 Binary files a/samples/EMU World/Talking Drum/Talking Drum (3).wav and /dev/null differ diff --git a/samples/EMU World/Talking Drum/Talking Drum (4).wav b/samples/EMU World/Talking Drum/Talking Drum (4).wav deleted file mode 100644 index cf1b75b7e..000000000 Binary files a/samples/EMU World/Talking Drum/Talking Drum (4).wav and /dev/null differ diff --git a/samples/EMU World/Talking Drum/Talking Drum (5).wav b/samples/EMU World/Talking Drum/Talking Drum (5).wav deleted file mode 100644 index 024ec7a87..000000000 Binary files a/samples/EMU World/Talking Drum/Talking Drum (5).wav and /dev/null differ diff --git a/samples/EMU World/Talking Drum/Talking Drum (6).wav b/samples/EMU World/Talking Drum/Talking Drum (6).wav deleted file mode 100644 index 41c5288e8..000000000 Binary files a/samples/EMU World/Talking Drum/Talking Drum (6).wav and /dev/null differ diff --git a/samples/EMU World/Talking Drum/Talking Drum (7).wav b/samples/EMU World/Talking Drum/Talking Drum (7).wav deleted file mode 100644 index d98b25fb9..000000000 Binary files a/samples/EMU World/Talking Drum/Talking Drum (7).wav and /dev/null differ diff --git a/samples/EMU World/Talking Drum/Talking Drum (8).wav b/samples/EMU World/Talking Drum/Talking Drum (8).wav deleted file mode 100644 index 346d03fae..000000000 Binary files a/samples/EMU World/Talking Drum/Talking Drum (8).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (1).wav b/samples/EMU World/Tambour/Tambour (1).wav deleted file mode 100644 index 87a7bb77a..000000000 Binary files a/samples/EMU World/Tambour/Tambour (1).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (10).wav b/samples/EMU World/Tambour/Tambour (10).wav deleted file mode 100644 index 63593e8ca..000000000 Binary files a/samples/EMU World/Tambour/Tambour (10).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (11).wav b/samples/EMU World/Tambour/Tambour (11).wav deleted file mode 100644 index effbd1b4d..000000000 Binary files a/samples/EMU World/Tambour/Tambour (11).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (12).wav b/samples/EMU World/Tambour/Tambour (12).wav deleted file mode 100644 index c7f377a7a..000000000 Binary files a/samples/EMU World/Tambour/Tambour (12).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (13).wav b/samples/EMU World/Tambour/Tambour (13).wav deleted file mode 100644 index 6c483d9c5..000000000 Binary files a/samples/EMU World/Tambour/Tambour (13).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (14).wav b/samples/EMU World/Tambour/Tambour (14).wav deleted file mode 100644 index edf52dee8..000000000 Binary files a/samples/EMU World/Tambour/Tambour (14).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (15).wav b/samples/EMU World/Tambour/Tambour (15).wav deleted file mode 100644 index 7a2966f01..000000000 Binary files a/samples/EMU World/Tambour/Tambour (15).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (16).wav b/samples/EMU World/Tambour/Tambour (16).wav deleted file mode 100644 index 5bf5c1b66..000000000 Binary files a/samples/EMU World/Tambour/Tambour (16).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (2).wav b/samples/EMU World/Tambour/Tambour (2).wav deleted file mode 100644 index 9acb27274..000000000 Binary files a/samples/EMU World/Tambour/Tambour (2).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (3).wav b/samples/EMU World/Tambour/Tambour (3).wav deleted file mode 100644 index d423d99f6..000000000 Binary files a/samples/EMU World/Tambour/Tambour (3).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (4).wav b/samples/EMU World/Tambour/Tambour (4).wav deleted file mode 100644 index 88fa2b312..000000000 Binary files a/samples/EMU World/Tambour/Tambour (4).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (5).wav b/samples/EMU World/Tambour/Tambour (5).wav deleted file mode 100644 index 5633a6085..000000000 Binary files a/samples/EMU World/Tambour/Tambour (5).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (6).wav b/samples/EMU World/Tambour/Tambour (6).wav deleted file mode 100644 index 36cca0a6f..000000000 Binary files a/samples/EMU World/Tambour/Tambour (6).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (7).wav b/samples/EMU World/Tambour/Tambour (7).wav deleted file mode 100644 index 44ec7b12c..000000000 Binary files a/samples/EMU World/Tambour/Tambour (7).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (8).wav b/samples/EMU World/Tambour/Tambour (8).wav deleted file mode 100644 index 80cc43833..000000000 Binary files a/samples/EMU World/Tambour/Tambour (8).wav and /dev/null differ diff --git a/samples/EMU World/Tambour/Tambour (9).wav b/samples/EMU World/Tambour/Tambour (9).wav deleted file mode 100644 index 6935282fc..000000000 Binary files a/samples/EMU World/Tambour/Tambour (9).wav and /dev/null differ diff --git a/samples/EMU World/Thumb Piano/Thumb Piano (1).wav b/samples/EMU World/Thumb Piano/Thumb Piano (1).wav deleted file mode 100644 index 818d11485..000000000 Binary files a/samples/EMU World/Thumb Piano/Thumb Piano (1).wav and /dev/null differ diff --git a/samples/EMU World/Thumb Piano/Thumb Piano (2).wav b/samples/EMU World/Thumb Piano/Thumb Piano (2).wav deleted file mode 100644 index df75d4e56..000000000 Binary files a/samples/EMU World/Thumb Piano/Thumb Piano (2).wav and /dev/null differ diff --git a/samples/EMU World/Thumb Piano/Thumb Piano (3).wav b/samples/EMU World/Thumb Piano/Thumb Piano (3).wav deleted file mode 100644 index 6d0d074de..000000000 Binary files a/samples/EMU World/Thumb Piano/Thumb Piano (3).wav and /dev/null differ diff --git a/samples/EMU World/Thumb Piano/Thumb Piano (4).wav b/samples/EMU World/Thumb Piano/Thumb Piano (4).wav deleted file mode 100644 index acbbb06b9..000000000 Binary files a/samples/EMU World/Thumb Piano/Thumb Piano (4).wav and /dev/null differ diff --git a/samples/EMU World/Thumb Piano/Thumb Piano (5).wav b/samples/EMU World/Thumb Piano/Thumb Piano (5).wav deleted file mode 100644 index aa202ec06..000000000 Binary files a/samples/EMU World/Thumb Piano/Thumb Piano (5).wav and /dev/null differ diff --git a/samples/EMU World/Thumb Piano/Thumb Piano (6).wav b/samples/EMU World/Thumb Piano/Thumb Piano (6).wav deleted file mode 100644 index b3e57acda..000000000 Binary files a/samples/EMU World/Thumb Piano/Thumb Piano (6).wav and /dev/null differ diff --git a/samples/EMU World/Thumb Piano/Thumb Piano (7).wav b/samples/EMU World/Thumb Piano/Thumb Piano (7).wav deleted file mode 100644 index 8e75cbfd5..000000000 Binary files a/samples/EMU World/Thumb Piano/Thumb Piano (7).wav and /dev/null differ diff --git a/samples/EMU World/Thumb Piano/Thumb Piano (8).wav b/samples/EMU World/Thumb Piano/Thumb Piano (8).wav deleted file mode 100644 index e9a102a57..000000000 Binary files a/samples/EMU World/Thumb Piano/Thumb Piano (8).wav and /dev/null differ diff --git a/samples/EMU World/TikTak Drum/TikTak (1).wav b/samples/EMU World/TikTak Drum/TikTak (1).wav deleted file mode 100644 index ad907bbf8..000000000 Binary files a/samples/EMU World/TikTak Drum/TikTak (1).wav and /dev/null differ diff --git a/samples/EMU World/TikTak Drum/TikTak (10).wav b/samples/EMU World/TikTak Drum/TikTak (10).wav deleted file mode 100644 index 977b21885..000000000 Binary files a/samples/EMU World/TikTak Drum/TikTak (10).wav and /dev/null differ diff --git a/samples/EMU World/TikTak Drum/TikTak (2).wav b/samples/EMU World/TikTak Drum/TikTak (2).wav deleted file mode 100644 index 3a1bd6ac4..000000000 Binary files a/samples/EMU World/TikTak Drum/TikTak (2).wav and /dev/null differ diff --git a/samples/EMU World/TikTak Drum/TikTak (3).wav b/samples/EMU World/TikTak Drum/TikTak (3).wav deleted file mode 100644 index 2bc9f160f..000000000 Binary files a/samples/EMU World/TikTak Drum/TikTak (3).wav and /dev/null differ diff --git a/samples/EMU World/TikTak Drum/TikTak (4).wav b/samples/EMU World/TikTak Drum/TikTak (4).wav deleted file mode 100644 index 763df33f7..000000000 Binary files a/samples/EMU World/TikTak Drum/TikTak (4).wav and /dev/null differ diff --git a/samples/EMU World/TikTak Drum/TikTak (5).wav b/samples/EMU World/TikTak Drum/TikTak (5).wav deleted file mode 100644 index c30052659..000000000 Binary files a/samples/EMU World/TikTak Drum/TikTak (5).wav and /dev/null differ diff --git a/samples/EMU World/TikTak Drum/TikTak (6).wav b/samples/EMU World/TikTak Drum/TikTak (6).wav deleted file mode 100644 index ac4937e37..000000000 Binary files a/samples/EMU World/TikTak Drum/TikTak (6).wav and /dev/null differ diff --git a/samples/EMU World/TikTak Drum/TikTak (7).wav b/samples/EMU World/TikTak Drum/TikTak (7).wav deleted file mode 100644 index e1bb2b149..000000000 Binary files a/samples/EMU World/TikTak Drum/TikTak (7).wav and /dev/null differ diff --git a/samples/EMU World/TikTak Drum/TikTak (8).wav b/samples/EMU World/TikTak Drum/TikTak (8).wav deleted file mode 100644 index bcad23726..000000000 Binary files a/samples/EMU World/TikTak Drum/TikTak (8).wav and /dev/null differ diff --git a/samples/EMU World/TikTak Drum/TikTak (9).wav b/samples/EMU World/TikTak Drum/TikTak (9).wav deleted file mode 100644 index 997a51e2c..000000000 Binary files a/samples/EMU World/TikTak Drum/TikTak (9).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (1).wav b/samples/EMU World/Timbale/Timbale (1).wav deleted file mode 100644 index 204cb29c0..000000000 Binary files a/samples/EMU World/Timbale/Timbale (1).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (10).wav b/samples/EMU World/Timbale/Timbale (10).wav deleted file mode 100644 index 813e069a3..000000000 Binary files a/samples/EMU World/Timbale/Timbale (10).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (11).wav b/samples/EMU World/Timbale/Timbale (11).wav deleted file mode 100644 index f96b28de6..000000000 Binary files a/samples/EMU World/Timbale/Timbale (11).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (12).wav b/samples/EMU World/Timbale/Timbale (12).wav deleted file mode 100644 index 3a3b367cd..000000000 Binary files a/samples/EMU World/Timbale/Timbale (12).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (13).wav b/samples/EMU World/Timbale/Timbale (13).wav deleted file mode 100644 index ab604c7c1..000000000 Binary files a/samples/EMU World/Timbale/Timbale (13).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (14).wav b/samples/EMU World/Timbale/Timbale (14).wav deleted file mode 100644 index dbd90b60c..000000000 Binary files a/samples/EMU World/Timbale/Timbale (14).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (15).wav b/samples/EMU World/Timbale/Timbale (15).wav deleted file mode 100644 index a2e18ad1d..000000000 Binary files a/samples/EMU World/Timbale/Timbale (15).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (16).wav b/samples/EMU World/Timbale/Timbale (16).wav deleted file mode 100644 index 686dd0562..000000000 Binary files a/samples/EMU World/Timbale/Timbale (16).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (17).wav b/samples/EMU World/Timbale/Timbale (17).wav deleted file mode 100644 index 549c27e81..000000000 Binary files a/samples/EMU World/Timbale/Timbale (17).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (18).wav b/samples/EMU World/Timbale/Timbale (18).wav deleted file mode 100644 index c8b806239..000000000 Binary files a/samples/EMU World/Timbale/Timbale (18).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (19).wav b/samples/EMU World/Timbale/Timbale (19).wav deleted file mode 100644 index aa8c46bb2..000000000 Binary files a/samples/EMU World/Timbale/Timbale (19).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (2).wav b/samples/EMU World/Timbale/Timbale (2).wav deleted file mode 100644 index ad29b8d65..000000000 Binary files a/samples/EMU World/Timbale/Timbale (2).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (20).wav b/samples/EMU World/Timbale/Timbale (20).wav deleted file mode 100644 index d90ff1fa9..000000000 Binary files a/samples/EMU World/Timbale/Timbale (20).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (21).wav b/samples/EMU World/Timbale/Timbale (21).wav deleted file mode 100644 index 77d26cb43..000000000 Binary files a/samples/EMU World/Timbale/Timbale (21).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (22).wav b/samples/EMU World/Timbale/Timbale (22).wav deleted file mode 100644 index 459a1113c..000000000 Binary files a/samples/EMU World/Timbale/Timbale (22).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (23).wav b/samples/EMU World/Timbale/Timbale (23).wav deleted file mode 100644 index 0a29027c4..000000000 Binary files a/samples/EMU World/Timbale/Timbale (23).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (24).wav b/samples/EMU World/Timbale/Timbale (24).wav deleted file mode 100644 index 712d0c897..000000000 Binary files a/samples/EMU World/Timbale/Timbale (24).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (25).wav b/samples/EMU World/Timbale/Timbale (25).wav deleted file mode 100644 index 8cca177c1..000000000 Binary files a/samples/EMU World/Timbale/Timbale (25).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (26).wav b/samples/EMU World/Timbale/Timbale (26).wav deleted file mode 100644 index c4321165e..000000000 Binary files a/samples/EMU World/Timbale/Timbale (26).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (27).wav b/samples/EMU World/Timbale/Timbale (27).wav deleted file mode 100644 index c858f9c7d..000000000 Binary files a/samples/EMU World/Timbale/Timbale (27).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (28).wav b/samples/EMU World/Timbale/Timbale (28).wav deleted file mode 100644 index 9e3282236..000000000 Binary files a/samples/EMU World/Timbale/Timbale (28).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (29).wav b/samples/EMU World/Timbale/Timbale (29).wav deleted file mode 100644 index 6a2a31c49..000000000 Binary files a/samples/EMU World/Timbale/Timbale (29).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (3).wav b/samples/EMU World/Timbale/Timbale (3).wav deleted file mode 100644 index e28122621..000000000 Binary files a/samples/EMU World/Timbale/Timbale (3).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (30).wav b/samples/EMU World/Timbale/Timbale (30).wav deleted file mode 100644 index 122746c09..000000000 Binary files a/samples/EMU World/Timbale/Timbale (30).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (31).wav b/samples/EMU World/Timbale/Timbale (31).wav deleted file mode 100644 index 24b004d4e..000000000 Binary files a/samples/EMU World/Timbale/Timbale (31).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (32).wav b/samples/EMU World/Timbale/Timbale (32).wav deleted file mode 100644 index 5a9ba8c2d..000000000 Binary files a/samples/EMU World/Timbale/Timbale (32).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (33).wav b/samples/EMU World/Timbale/Timbale (33).wav deleted file mode 100644 index 115d3e2c3..000000000 Binary files a/samples/EMU World/Timbale/Timbale (33).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (34).wav b/samples/EMU World/Timbale/Timbale (34).wav deleted file mode 100644 index cb992e406..000000000 Binary files a/samples/EMU World/Timbale/Timbale (34).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (35).wav b/samples/EMU World/Timbale/Timbale (35).wav deleted file mode 100644 index 07da13c68..000000000 Binary files a/samples/EMU World/Timbale/Timbale (35).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (36).wav b/samples/EMU World/Timbale/Timbale (36).wav deleted file mode 100644 index 8d082e008..000000000 Binary files a/samples/EMU World/Timbale/Timbale (36).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (37).wav b/samples/EMU World/Timbale/Timbale (37).wav deleted file mode 100644 index 44d1bb8d7..000000000 Binary files a/samples/EMU World/Timbale/Timbale (37).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (38).wav b/samples/EMU World/Timbale/Timbale (38).wav deleted file mode 100644 index 37f83bf29..000000000 Binary files a/samples/EMU World/Timbale/Timbale (38).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (39).wav b/samples/EMU World/Timbale/Timbale (39).wav deleted file mode 100644 index 4bc34bf3a..000000000 Binary files a/samples/EMU World/Timbale/Timbale (39).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (4).wav b/samples/EMU World/Timbale/Timbale (4).wav deleted file mode 100644 index f8ed88e1e..000000000 Binary files a/samples/EMU World/Timbale/Timbale (4).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (40).wav b/samples/EMU World/Timbale/Timbale (40).wav deleted file mode 100644 index 752a3b8e1..000000000 Binary files a/samples/EMU World/Timbale/Timbale (40).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (41).wav b/samples/EMU World/Timbale/Timbale (41).wav deleted file mode 100644 index 01ff84cf9..000000000 Binary files a/samples/EMU World/Timbale/Timbale (41).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (42).wav b/samples/EMU World/Timbale/Timbale (42).wav deleted file mode 100644 index 16aec41e7..000000000 Binary files a/samples/EMU World/Timbale/Timbale (42).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (43).wav b/samples/EMU World/Timbale/Timbale (43).wav deleted file mode 100644 index 7f4e802fc..000000000 Binary files a/samples/EMU World/Timbale/Timbale (43).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (44).wav b/samples/EMU World/Timbale/Timbale (44).wav deleted file mode 100644 index d741c911c..000000000 Binary files a/samples/EMU World/Timbale/Timbale (44).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (45).wav b/samples/EMU World/Timbale/Timbale (45).wav deleted file mode 100644 index bdb5e61dc..000000000 Binary files a/samples/EMU World/Timbale/Timbale (45).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (5).wav b/samples/EMU World/Timbale/Timbale (5).wav deleted file mode 100644 index 26aedfcf8..000000000 Binary files a/samples/EMU World/Timbale/Timbale (5).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (6).wav b/samples/EMU World/Timbale/Timbale (6).wav deleted file mode 100644 index deb140449..000000000 Binary files a/samples/EMU World/Timbale/Timbale (6).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (7).wav b/samples/EMU World/Timbale/Timbale (7).wav deleted file mode 100644 index 202358381..000000000 Binary files a/samples/EMU World/Timbale/Timbale (7).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (8).wav b/samples/EMU World/Timbale/Timbale (8).wav deleted file mode 100644 index 5ef5891d6..000000000 Binary files a/samples/EMU World/Timbale/Timbale (8).wav and /dev/null differ diff --git a/samples/EMU World/Timbale/Timbale (9).wav b/samples/EMU World/Timbale/Timbale (9).wav deleted file mode 100644 index c8117bbb0..000000000 Binary files a/samples/EMU World/Timbale/Timbale (9).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (1).wav b/samples/EMU World/Toke/Toke (1).wav deleted file mode 100644 index 8d0e92cb8..000000000 Binary files a/samples/EMU World/Toke/Toke (1).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (10).wav b/samples/EMU World/Toke/Toke (10).wav deleted file mode 100644 index fbbed57bb..000000000 Binary files a/samples/EMU World/Toke/Toke (10).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (11).wav b/samples/EMU World/Toke/Toke (11).wav deleted file mode 100644 index 34c6efabc..000000000 Binary files a/samples/EMU World/Toke/Toke (11).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (12).wav b/samples/EMU World/Toke/Toke (12).wav deleted file mode 100644 index 30cdf94d5..000000000 Binary files a/samples/EMU World/Toke/Toke (12).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (13).wav b/samples/EMU World/Toke/Toke (13).wav deleted file mode 100644 index e65a11159..000000000 Binary files a/samples/EMU World/Toke/Toke (13).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (14).wav b/samples/EMU World/Toke/Toke (14).wav deleted file mode 100644 index 6a224a9ea..000000000 Binary files a/samples/EMU World/Toke/Toke (14).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (15).wav b/samples/EMU World/Toke/Toke (15).wav deleted file mode 100644 index ec0572ad1..000000000 Binary files a/samples/EMU World/Toke/Toke (15).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (16).wav b/samples/EMU World/Toke/Toke (16).wav deleted file mode 100644 index 95dd15729..000000000 Binary files a/samples/EMU World/Toke/Toke (16).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (17).wav b/samples/EMU World/Toke/Toke (17).wav deleted file mode 100644 index 74b751f32..000000000 Binary files a/samples/EMU World/Toke/Toke (17).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (18).wav b/samples/EMU World/Toke/Toke (18).wav deleted file mode 100644 index e7b164ce2..000000000 Binary files a/samples/EMU World/Toke/Toke (18).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (19).wav b/samples/EMU World/Toke/Toke (19).wav deleted file mode 100644 index d35dd941d..000000000 Binary files a/samples/EMU World/Toke/Toke (19).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (2).wav b/samples/EMU World/Toke/Toke (2).wav deleted file mode 100644 index 875fcc0ac..000000000 Binary files a/samples/EMU World/Toke/Toke (2).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (20).wav b/samples/EMU World/Toke/Toke (20).wav deleted file mode 100644 index d76ce6ec6..000000000 Binary files a/samples/EMU World/Toke/Toke (20).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (21).wav b/samples/EMU World/Toke/Toke (21).wav deleted file mode 100644 index a3f03b705..000000000 Binary files a/samples/EMU World/Toke/Toke (21).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (22).wav b/samples/EMU World/Toke/Toke (22).wav deleted file mode 100644 index 48fc3e8f5..000000000 Binary files a/samples/EMU World/Toke/Toke (22).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (3).wav b/samples/EMU World/Toke/Toke (3).wav deleted file mode 100644 index 065790bfd..000000000 Binary files a/samples/EMU World/Toke/Toke (3).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (4).wav b/samples/EMU World/Toke/Toke (4).wav deleted file mode 100644 index d47facf41..000000000 Binary files a/samples/EMU World/Toke/Toke (4).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (5).wav b/samples/EMU World/Toke/Toke (5).wav deleted file mode 100644 index d4634502d..000000000 Binary files a/samples/EMU World/Toke/Toke (5).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (6).wav b/samples/EMU World/Toke/Toke (6).wav deleted file mode 100644 index 4bcc87787..000000000 Binary files a/samples/EMU World/Toke/Toke (6).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (7).wav b/samples/EMU World/Toke/Toke (7).wav deleted file mode 100644 index e264c7ab9..000000000 Binary files a/samples/EMU World/Toke/Toke (7).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (8).wav b/samples/EMU World/Toke/Toke (8).wav deleted file mode 100644 index 70a9b45e1..000000000 Binary files a/samples/EMU World/Toke/Toke (8).wav and /dev/null differ diff --git a/samples/EMU World/Toke/Toke (9).wav b/samples/EMU World/Toke/Toke (9).wav deleted file mode 100644 index 3e9edfe39..000000000 Binary files a/samples/EMU World/Toke/Toke (9).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (1).wav b/samples/EMU World/Tongue Drum/Tonge Drum (1).wav deleted file mode 100644 index 5133445b6..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (1).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (10).wav b/samples/EMU World/Tongue Drum/Tonge Drum (10).wav deleted file mode 100644 index 705c18a3e..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (10).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (11).wav b/samples/EMU World/Tongue Drum/Tonge Drum (11).wav deleted file mode 100644 index 1b8dd3ae1..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (11).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (12).wav b/samples/EMU World/Tongue Drum/Tonge Drum (12).wav deleted file mode 100644 index b545d9e1f..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (12).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (13).wav b/samples/EMU World/Tongue Drum/Tonge Drum (13).wav deleted file mode 100644 index 4b3ac072b..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (13).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (14).wav b/samples/EMU World/Tongue Drum/Tonge Drum (14).wav deleted file mode 100644 index 86ccff7d2..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (14).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (15).wav b/samples/EMU World/Tongue Drum/Tonge Drum (15).wav deleted file mode 100644 index 1c1e53c69..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (15).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (16).wav b/samples/EMU World/Tongue Drum/Tonge Drum (16).wav deleted file mode 100644 index 8f5f5910e..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (16).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (17).wav b/samples/EMU World/Tongue Drum/Tonge Drum (17).wav deleted file mode 100644 index 805350791..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (17).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (18).wav b/samples/EMU World/Tongue Drum/Tonge Drum (18).wav deleted file mode 100644 index 347940905..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (18).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (19).wav b/samples/EMU World/Tongue Drum/Tonge Drum (19).wav deleted file mode 100644 index eba8fc7b1..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (19).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (2).wav b/samples/EMU World/Tongue Drum/Tonge Drum (2).wav deleted file mode 100644 index 288fbfa17..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (2).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (20).wav b/samples/EMU World/Tongue Drum/Tonge Drum (20).wav deleted file mode 100644 index 6e28a80a0..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (20).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (21).wav b/samples/EMU World/Tongue Drum/Tonge Drum (21).wav deleted file mode 100644 index 30198889e..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (21).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (22).wav b/samples/EMU World/Tongue Drum/Tonge Drum (22).wav deleted file mode 100644 index e7784eb62..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (22).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (23).wav b/samples/EMU World/Tongue Drum/Tonge Drum (23).wav deleted file mode 100644 index 0992ee1dc..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (23).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (24).wav b/samples/EMU World/Tongue Drum/Tonge Drum (24).wav deleted file mode 100644 index 0add4381d..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (24).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (25).wav b/samples/EMU World/Tongue Drum/Tonge Drum (25).wav deleted file mode 100644 index 01e7126bf..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (25).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (26).wav b/samples/EMU World/Tongue Drum/Tonge Drum (26).wav deleted file mode 100644 index 83818da12..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (26).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (27).wav b/samples/EMU World/Tongue Drum/Tonge Drum (27).wav deleted file mode 100644 index b676cf2b2..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (27).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (28).wav b/samples/EMU World/Tongue Drum/Tonge Drum (28).wav deleted file mode 100644 index 43e2bb91d..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (28).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (29).wav b/samples/EMU World/Tongue Drum/Tonge Drum (29).wav deleted file mode 100644 index 3f5f985c4..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (29).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (3).wav b/samples/EMU World/Tongue Drum/Tonge Drum (3).wav deleted file mode 100644 index acb4d60a0..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (3).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (30).wav b/samples/EMU World/Tongue Drum/Tonge Drum (30).wav deleted file mode 100644 index a48f281ee..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (30).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (31).wav b/samples/EMU World/Tongue Drum/Tonge Drum (31).wav deleted file mode 100644 index 5d23bfd5d..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (31).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (32).wav b/samples/EMU World/Tongue Drum/Tonge Drum (32).wav deleted file mode 100644 index d4726d97d..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (32).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (4).wav b/samples/EMU World/Tongue Drum/Tonge Drum (4).wav deleted file mode 100644 index 1f19e4fc6..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (4).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (5).wav b/samples/EMU World/Tongue Drum/Tonge Drum (5).wav deleted file mode 100644 index ae8ca75c2..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (5).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (6).wav b/samples/EMU World/Tongue Drum/Tonge Drum (6).wav deleted file mode 100644 index 10bb5bf17..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (6).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (7).wav b/samples/EMU World/Tongue Drum/Tonge Drum (7).wav deleted file mode 100644 index 82014336a..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (7).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (8).wav b/samples/EMU World/Tongue Drum/Tonge Drum (8).wav deleted file mode 100644 index d14a6beb6..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (8).wav and /dev/null differ diff --git a/samples/EMU World/Tongue Drum/Tonge Drum (9).wav b/samples/EMU World/Tongue Drum/Tonge Drum (9).wav deleted file mode 100644 index c237185d0..000000000 Binary files a/samples/EMU World/Tongue Drum/Tonge Drum (9).wav and /dev/null differ diff --git a/samples/EMU World/Triangle/Triangle (1).wav b/samples/EMU World/Triangle/Triangle (1).wav deleted file mode 100644 index fe8d2db6b..000000000 Binary files a/samples/EMU World/Triangle/Triangle (1).wav and /dev/null differ diff --git a/samples/EMU World/Triangle/Triangle (10).wav b/samples/EMU World/Triangle/Triangle (10).wav deleted file mode 100644 index 5638e82ac..000000000 Binary files a/samples/EMU World/Triangle/Triangle (10).wav and /dev/null differ diff --git a/samples/EMU World/Triangle/Triangle (11).wav b/samples/EMU World/Triangle/Triangle (11).wav deleted file mode 100644 index e4cbfe37b..000000000 Binary files a/samples/EMU World/Triangle/Triangle (11).wav and /dev/null differ diff --git a/samples/EMU World/Triangle/Triangle (12).wav b/samples/EMU World/Triangle/Triangle (12).wav deleted file mode 100644 index 025c3276e..000000000 Binary files a/samples/EMU World/Triangle/Triangle (12).wav and /dev/null differ diff --git a/samples/EMU World/Triangle/Triangle (2).wav b/samples/EMU World/Triangle/Triangle (2).wav deleted file mode 100644 index 9b1108968..000000000 Binary files a/samples/EMU World/Triangle/Triangle (2).wav and /dev/null differ diff --git a/samples/EMU World/Triangle/Triangle (3).wav b/samples/EMU World/Triangle/Triangle (3).wav deleted file mode 100644 index a066579b7..000000000 Binary files a/samples/EMU World/Triangle/Triangle (3).wav and /dev/null differ diff --git a/samples/EMU World/Triangle/Triangle (4).wav b/samples/EMU World/Triangle/Triangle (4).wav deleted file mode 100644 index 60b767238..000000000 Binary files a/samples/EMU World/Triangle/Triangle (4).wav and /dev/null differ diff --git a/samples/EMU World/Triangle/Triangle (5).wav b/samples/EMU World/Triangle/Triangle (5).wav deleted file mode 100644 index 4d4a52fb4..000000000 Binary files a/samples/EMU World/Triangle/Triangle (5).wav and /dev/null differ diff --git a/samples/EMU World/Triangle/Triangle (6).wav b/samples/EMU World/Triangle/Triangle (6).wav deleted file mode 100644 index 1b1fb962f..000000000 Binary files a/samples/EMU World/Triangle/Triangle (6).wav and /dev/null differ diff --git a/samples/EMU World/Triangle/Triangle (7).wav b/samples/EMU World/Triangle/Triangle (7).wav deleted file mode 100644 index 965959a85..000000000 Binary files a/samples/EMU World/Triangle/Triangle (7).wav and /dev/null differ diff --git a/samples/EMU World/Triangle/Triangle (8).wav b/samples/EMU World/Triangle/Triangle (8).wav deleted file mode 100644 index 881101638..000000000 Binary files a/samples/EMU World/Triangle/Triangle (8).wav and /dev/null differ diff --git a/samples/EMU World/Triangle/Triangle (9).wav b/samples/EMU World/Triangle/Triangle (9).wav deleted file mode 100644 index 77dcbded8..000000000 Binary files a/samples/EMU World/Triangle/Triangle (9).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (1).wav b/samples/EMU World/Tube/Tube (1).wav deleted file mode 100644 index eb5a3eedb..000000000 Binary files a/samples/EMU World/Tube/Tube (1).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (10).wav b/samples/EMU World/Tube/Tube (10).wav deleted file mode 100644 index fe815ef94..000000000 Binary files a/samples/EMU World/Tube/Tube (10).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (11).wav b/samples/EMU World/Tube/Tube (11).wav deleted file mode 100644 index 7c17ef529..000000000 Binary files a/samples/EMU World/Tube/Tube (11).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (12).wav b/samples/EMU World/Tube/Tube (12).wav deleted file mode 100644 index fc4a14c43..000000000 Binary files a/samples/EMU World/Tube/Tube (12).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (13).wav b/samples/EMU World/Tube/Tube (13).wav deleted file mode 100644 index b1fe3a8d0..000000000 Binary files a/samples/EMU World/Tube/Tube (13).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (14).wav b/samples/EMU World/Tube/Tube (14).wav deleted file mode 100644 index 19250e001..000000000 Binary files a/samples/EMU World/Tube/Tube (14).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (15).wav b/samples/EMU World/Tube/Tube (15).wav deleted file mode 100644 index 8a6caf67b..000000000 Binary files a/samples/EMU World/Tube/Tube (15).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (16).wav b/samples/EMU World/Tube/Tube (16).wav deleted file mode 100644 index 80d1a36fc..000000000 Binary files a/samples/EMU World/Tube/Tube (16).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (17).wav b/samples/EMU World/Tube/Tube (17).wav deleted file mode 100644 index 5d5a2baf1..000000000 Binary files a/samples/EMU World/Tube/Tube (17).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (18).wav b/samples/EMU World/Tube/Tube (18).wav deleted file mode 100644 index 535ad816e..000000000 Binary files a/samples/EMU World/Tube/Tube (18).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (19).wav b/samples/EMU World/Tube/Tube (19).wav deleted file mode 100644 index 862efa97f..000000000 Binary files a/samples/EMU World/Tube/Tube (19).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (2).wav b/samples/EMU World/Tube/Tube (2).wav deleted file mode 100644 index e883c5cbe..000000000 Binary files a/samples/EMU World/Tube/Tube (2).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (20).wav b/samples/EMU World/Tube/Tube (20).wav deleted file mode 100644 index 96a6021ac..000000000 Binary files a/samples/EMU World/Tube/Tube (20).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (21).wav b/samples/EMU World/Tube/Tube (21).wav deleted file mode 100644 index 5ad024399..000000000 Binary files a/samples/EMU World/Tube/Tube (21).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (22).wav b/samples/EMU World/Tube/Tube (22).wav deleted file mode 100644 index f90062a0e..000000000 Binary files a/samples/EMU World/Tube/Tube (22).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (23).wav b/samples/EMU World/Tube/Tube (23).wav deleted file mode 100644 index bde94f3a2..000000000 Binary files a/samples/EMU World/Tube/Tube (23).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (24).wav b/samples/EMU World/Tube/Tube (24).wav deleted file mode 100644 index 3e0e5d310..000000000 Binary files a/samples/EMU World/Tube/Tube (24).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (25).wav b/samples/EMU World/Tube/Tube (25).wav deleted file mode 100644 index 1ce73cd30..000000000 Binary files a/samples/EMU World/Tube/Tube (25).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (26).wav b/samples/EMU World/Tube/Tube (26).wav deleted file mode 100644 index b2916322a..000000000 Binary files a/samples/EMU World/Tube/Tube (26).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (27).wav b/samples/EMU World/Tube/Tube (27).wav deleted file mode 100644 index d7161411a..000000000 Binary files a/samples/EMU World/Tube/Tube (27).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (28).wav b/samples/EMU World/Tube/Tube (28).wav deleted file mode 100644 index 498224e64..000000000 Binary files a/samples/EMU World/Tube/Tube (28).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (3).wav b/samples/EMU World/Tube/Tube (3).wav deleted file mode 100644 index fb56646ae..000000000 Binary files a/samples/EMU World/Tube/Tube (3).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (4).wav b/samples/EMU World/Tube/Tube (4).wav deleted file mode 100644 index ec6f49a4d..000000000 Binary files a/samples/EMU World/Tube/Tube (4).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (5).wav b/samples/EMU World/Tube/Tube (5).wav deleted file mode 100644 index c64eaeefb..000000000 Binary files a/samples/EMU World/Tube/Tube (5).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (6).wav b/samples/EMU World/Tube/Tube (6).wav deleted file mode 100644 index ef5df1012..000000000 Binary files a/samples/EMU World/Tube/Tube (6).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (7).wav b/samples/EMU World/Tube/Tube (7).wav deleted file mode 100644 index ba5813a23..000000000 Binary files a/samples/EMU World/Tube/Tube (7).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (8).wav b/samples/EMU World/Tube/Tube (8).wav deleted file mode 100644 index fafec9630..000000000 Binary files a/samples/EMU World/Tube/Tube (8).wav and /dev/null differ diff --git a/samples/EMU World/Tube/Tube (9).wav b/samples/EMU World/Tube/Tube (9).wav deleted file mode 100644 index b781908f4..000000000 Binary files a/samples/EMU World/Tube/Tube (9).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (1).wav b/samples/EMU World/Udu/Udu (1).wav deleted file mode 100644 index 78a414dbb..000000000 Binary files a/samples/EMU World/Udu/Udu (1).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (10).wav b/samples/EMU World/Udu/Udu (10).wav deleted file mode 100644 index 944699b2b..000000000 Binary files a/samples/EMU World/Udu/Udu (10).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (11).wav b/samples/EMU World/Udu/Udu (11).wav deleted file mode 100644 index d513aa1ca..000000000 Binary files a/samples/EMU World/Udu/Udu (11).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (12).wav b/samples/EMU World/Udu/Udu (12).wav deleted file mode 100644 index e31ddf457..000000000 Binary files a/samples/EMU World/Udu/Udu (12).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (13).wav b/samples/EMU World/Udu/Udu (13).wav deleted file mode 100644 index e42bad07d..000000000 Binary files a/samples/EMU World/Udu/Udu (13).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (14).wav b/samples/EMU World/Udu/Udu (14).wav deleted file mode 100644 index fe879eb18..000000000 Binary files a/samples/EMU World/Udu/Udu (14).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (15).wav b/samples/EMU World/Udu/Udu (15).wav deleted file mode 100644 index 15e1e0e21..000000000 Binary files a/samples/EMU World/Udu/Udu (15).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (16).wav b/samples/EMU World/Udu/Udu (16).wav deleted file mode 100644 index 0242a70fc..000000000 Binary files a/samples/EMU World/Udu/Udu (16).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (17).wav b/samples/EMU World/Udu/Udu (17).wav deleted file mode 100644 index 6ee977d05..000000000 Binary files a/samples/EMU World/Udu/Udu (17).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (18).wav b/samples/EMU World/Udu/Udu (18).wav deleted file mode 100644 index f1846c1bf..000000000 Binary files a/samples/EMU World/Udu/Udu (18).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (19).wav b/samples/EMU World/Udu/Udu (19).wav deleted file mode 100644 index 654fa8cd0..000000000 Binary files a/samples/EMU World/Udu/Udu (19).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (20).wav b/samples/EMU World/Udu/Udu (20).wav deleted file mode 100644 index c866c6989..000000000 Binary files a/samples/EMU World/Udu/Udu (20).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (21).wav b/samples/EMU World/Udu/Udu (21).wav deleted file mode 100644 index f504cd88e..000000000 Binary files a/samples/EMU World/Udu/Udu (21).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (22).wav b/samples/EMU World/Udu/Udu (22).wav deleted file mode 100644 index 85736c863..000000000 Binary files a/samples/EMU World/Udu/Udu (22).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (23).wav b/samples/EMU World/Udu/Udu (23).wav deleted file mode 100644 index d4bd2bc6a..000000000 Binary files a/samples/EMU World/Udu/Udu (23).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (24).wav b/samples/EMU World/Udu/Udu (24).wav deleted file mode 100644 index 1e1cbf588..000000000 Binary files a/samples/EMU World/Udu/Udu (24).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (25).wav b/samples/EMU World/Udu/Udu (25).wav deleted file mode 100644 index b42c28b71..000000000 Binary files a/samples/EMU World/Udu/Udu (25).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (26).wav b/samples/EMU World/Udu/Udu (26).wav deleted file mode 100644 index d44087ab5..000000000 Binary files a/samples/EMU World/Udu/Udu (26).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (27).wav b/samples/EMU World/Udu/Udu (27).wav deleted file mode 100644 index 576ecd8d5..000000000 Binary files a/samples/EMU World/Udu/Udu (27).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (28).wav b/samples/EMU World/Udu/Udu (28).wav deleted file mode 100644 index e0c21dc1f..000000000 Binary files a/samples/EMU World/Udu/Udu (28).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (6).wav b/samples/EMU World/Udu/Udu (6).wav deleted file mode 100644 index 484212700..000000000 Binary files a/samples/EMU World/Udu/Udu (6).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (7).wav b/samples/EMU World/Udu/Udu (7).wav deleted file mode 100644 index 437498be3..000000000 Binary files a/samples/EMU World/Udu/Udu (7).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (8).wav b/samples/EMU World/Udu/Udu (8).wav deleted file mode 100644 index 62ee9dede..000000000 Binary files a/samples/EMU World/Udu/Udu (8).wav and /dev/null differ diff --git a/samples/EMU World/Udu/Udu (9).wav b/samples/EMU World/Udu/Udu (9).wav deleted file mode 100644 index 6037e12b0..000000000 Binary files a/samples/EMU World/Udu/Udu (9).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (1).wav b/samples/EMU World/Whistle/Whistle (1).wav deleted file mode 100644 index dde9df297..000000000 Binary files a/samples/EMU World/Whistle/Whistle (1).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (10).wav b/samples/EMU World/Whistle/Whistle (10).wav deleted file mode 100644 index 908ba33e3..000000000 Binary files a/samples/EMU World/Whistle/Whistle (10).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (11).wav b/samples/EMU World/Whistle/Whistle (11).wav deleted file mode 100644 index a1e8d0e38..000000000 Binary files a/samples/EMU World/Whistle/Whistle (11).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (12).wav b/samples/EMU World/Whistle/Whistle (12).wav deleted file mode 100644 index e91c95fc2..000000000 Binary files a/samples/EMU World/Whistle/Whistle (12).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (13).wav b/samples/EMU World/Whistle/Whistle (13).wav deleted file mode 100644 index 9771e58e3..000000000 Binary files a/samples/EMU World/Whistle/Whistle (13).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (14).wav b/samples/EMU World/Whistle/Whistle (14).wav deleted file mode 100644 index ecc7587fb..000000000 Binary files a/samples/EMU World/Whistle/Whistle (14).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (15).wav b/samples/EMU World/Whistle/Whistle (15).wav deleted file mode 100644 index f2c818190..000000000 Binary files a/samples/EMU World/Whistle/Whistle (15).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (16).wav b/samples/EMU World/Whistle/Whistle (16).wav deleted file mode 100644 index cb29a5637..000000000 Binary files a/samples/EMU World/Whistle/Whistle (16).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (17).wav b/samples/EMU World/Whistle/Whistle (17).wav deleted file mode 100644 index 6aeadfce5..000000000 Binary files a/samples/EMU World/Whistle/Whistle (17).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (18).wav b/samples/EMU World/Whistle/Whistle (18).wav deleted file mode 100644 index aa20433c8..000000000 Binary files a/samples/EMU World/Whistle/Whistle (18).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (19).wav b/samples/EMU World/Whistle/Whistle (19).wav deleted file mode 100644 index 4e33999be..000000000 Binary files a/samples/EMU World/Whistle/Whistle (19).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (2).wav b/samples/EMU World/Whistle/Whistle (2).wav deleted file mode 100644 index f8dd1b55b..000000000 Binary files a/samples/EMU World/Whistle/Whistle (2).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (20).wav b/samples/EMU World/Whistle/Whistle (20).wav deleted file mode 100644 index 8be31b4a7..000000000 Binary files a/samples/EMU World/Whistle/Whistle (20).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (21).wav b/samples/EMU World/Whistle/Whistle (21).wav deleted file mode 100644 index 38db92278..000000000 Binary files a/samples/EMU World/Whistle/Whistle (21).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (22).wav b/samples/EMU World/Whistle/Whistle (22).wav deleted file mode 100644 index c3fd67e03..000000000 Binary files a/samples/EMU World/Whistle/Whistle (22).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (23).wav b/samples/EMU World/Whistle/Whistle (23).wav deleted file mode 100644 index e289d7f15..000000000 Binary files a/samples/EMU World/Whistle/Whistle (23).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (24).wav b/samples/EMU World/Whistle/Whistle (24).wav deleted file mode 100644 index 420c7a885..000000000 Binary files a/samples/EMU World/Whistle/Whistle (24).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (25).wav b/samples/EMU World/Whistle/Whistle (25).wav deleted file mode 100644 index 720116a3c..000000000 Binary files a/samples/EMU World/Whistle/Whistle (25).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (26).wav b/samples/EMU World/Whistle/Whistle (26).wav deleted file mode 100644 index 48c784230..000000000 Binary files a/samples/EMU World/Whistle/Whistle (26).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (3).wav b/samples/EMU World/Whistle/Whistle (3).wav deleted file mode 100644 index a1842956a..000000000 Binary files a/samples/EMU World/Whistle/Whistle (3).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (4).wav b/samples/EMU World/Whistle/Whistle (4).wav deleted file mode 100644 index 89af9f1ea..000000000 Binary files a/samples/EMU World/Whistle/Whistle (4).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (5).wav b/samples/EMU World/Whistle/Whistle (5).wav deleted file mode 100644 index 18ea8e3e6..000000000 Binary files a/samples/EMU World/Whistle/Whistle (5).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (6).wav b/samples/EMU World/Whistle/Whistle (6).wav deleted file mode 100644 index 0454a3ea0..000000000 Binary files a/samples/EMU World/Whistle/Whistle (6).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (7).wav b/samples/EMU World/Whistle/Whistle (7).wav deleted file mode 100644 index 520447c9b..000000000 Binary files a/samples/EMU World/Whistle/Whistle (7).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (8).wav b/samples/EMU World/Whistle/Whistle (8).wav deleted file mode 100644 index 0375803e9..000000000 Binary files a/samples/EMU World/Whistle/Whistle (8).wav and /dev/null differ diff --git a/samples/EMU World/Whistle/Whistle (9).wav b/samples/EMU World/Whistle/Whistle (9).wav deleted file mode 100644 index 21db1b380..000000000 Binary files a/samples/EMU World/Whistle/Whistle (9).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (1).wav b/samples/EMU World/Wood Thing/WoodThing (1).wav deleted file mode 100644 index 1b6cefd73..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (1).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (10).wav b/samples/EMU World/Wood Thing/WoodThing (10).wav deleted file mode 100644 index 95e5cc6be..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (10).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (11).wav b/samples/EMU World/Wood Thing/WoodThing (11).wav deleted file mode 100644 index 4eb9791e9..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (11).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (12).wav b/samples/EMU World/Wood Thing/WoodThing (12).wav deleted file mode 100644 index 383df4166..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (12).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (13).wav b/samples/EMU World/Wood Thing/WoodThing (13).wav deleted file mode 100644 index fa4a5ee32..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (13).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (14).wav b/samples/EMU World/Wood Thing/WoodThing (14).wav deleted file mode 100644 index fd7be22ba..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (14).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (2).wav b/samples/EMU World/Wood Thing/WoodThing (2).wav deleted file mode 100644 index 892346dfa..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (2).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (3).wav b/samples/EMU World/Wood Thing/WoodThing (3).wav deleted file mode 100644 index 88552703e..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (3).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (4).wav b/samples/EMU World/Wood Thing/WoodThing (4).wav deleted file mode 100644 index bee260fce..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (4).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (5).wav b/samples/EMU World/Wood Thing/WoodThing (5).wav deleted file mode 100644 index 90022aaba..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (5).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (6).wav b/samples/EMU World/Wood Thing/WoodThing (6).wav deleted file mode 100644 index 651d3693f..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (6).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (7).wav b/samples/EMU World/Wood Thing/WoodThing (7).wav deleted file mode 100644 index a75ddfa73..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (7).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (8).wav b/samples/EMU World/Wood Thing/WoodThing (8).wav deleted file mode 100644 index d79cb49cc..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (8).wav and /dev/null differ diff --git a/samples/EMU World/Wood Thing/WoodThing (9).wav b/samples/EMU World/Wood Thing/WoodThing (9).wav deleted file mode 100644 index ec01f3866..000000000 Binary files a/samples/EMU World/Wood Thing/WoodThing (9).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (1).wav b/samples/EMU World/Wood and Metal/WoodMetal (1).wav deleted file mode 100644 index 94b113ed5..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (1).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (10).wav b/samples/EMU World/Wood and Metal/WoodMetal (10).wav deleted file mode 100644 index 40cb2f58c..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (10).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (11).wav b/samples/EMU World/Wood and Metal/WoodMetal (11).wav deleted file mode 100644 index 5814f2376..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (11).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (12).wav b/samples/EMU World/Wood and Metal/WoodMetal (12).wav deleted file mode 100644 index 402c88aad..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (12).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (13).wav b/samples/EMU World/Wood and Metal/WoodMetal (13).wav deleted file mode 100644 index 55ac9dded..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (13).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (14).wav b/samples/EMU World/Wood and Metal/WoodMetal (14).wav deleted file mode 100644 index eb570aa17..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (14).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (15).wav b/samples/EMU World/Wood and Metal/WoodMetal (15).wav deleted file mode 100644 index dba037a4f..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (15).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (16).wav b/samples/EMU World/Wood and Metal/WoodMetal (16).wav deleted file mode 100644 index 0b66db1ca..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (16).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (17).wav b/samples/EMU World/Wood and Metal/WoodMetal (17).wav deleted file mode 100644 index 76420a332..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (17).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (18).wav b/samples/EMU World/Wood and Metal/WoodMetal (18).wav deleted file mode 100644 index 4cd042a74..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (18).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (19).wav b/samples/EMU World/Wood and Metal/WoodMetal (19).wav deleted file mode 100644 index f235187e0..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (19).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (2).wav b/samples/EMU World/Wood and Metal/WoodMetal (2).wav deleted file mode 100644 index 4ac1d3880..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (2).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (20).wav b/samples/EMU World/Wood and Metal/WoodMetal (20).wav deleted file mode 100644 index d275dc736..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (20).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (21).wav b/samples/EMU World/Wood and Metal/WoodMetal (21).wav deleted file mode 100644 index 89258b285..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (21).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (22).wav b/samples/EMU World/Wood and Metal/WoodMetal (22).wav deleted file mode 100644 index 5d073d71a..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (22).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (23).wav b/samples/EMU World/Wood and Metal/WoodMetal (23).wav deleted file mode 100644 index ec4bbc94f..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (23).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (24).wav b/samples/EMU World/Wood and Metal/WoodMetal (24).wav deleted file mode 100644 index 8a1f6560c..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (24).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (25).wav b/samples/EMU World/Wood and Metal/WoodMetal (25).wav deleted file mode 100644 index 093f5a686..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (25).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (26).wav b/samples/EMU World/Wood and Metal/WoodMetal (26).wav deleted file mode 100644 index b93af4d46..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (26).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (27).wav b/samples/EMU World/Wood and Metal/WoodMetal (27).wav deleted file mode 100644 index 6032b5a15..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (27).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (28).wav b/samples/EMU World/Wood and Metal/WoodMetal (28).wav deleted file mode 100644 index 74b379e6e..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (28).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (29).wav b/samples/EMU World/Wood and Metal/WoodMetal (29).wav deleted file mode 100644 index e32af4fc9..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (29).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (3).wav b/samples/EMU World/Wood and Metal/WoodMetal (3).wav deleted file mode 100644 index 885d76e97..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (3).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (30).wav b/samples/EMU World/Wood and Metal/WoodMetal (30).wav deleted file mode 100644 index fca85f0ea..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (30).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (31).wav b/samples/EMU World/Wood and Metal/WoodMetal (31).wav deleted file mode 100644 index f0c52fac0..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (31).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (32).wav b/samples/EMU World/Wood and Metal/WoodMetal (32).wav deleted file mode 100644 index b5c28b33b..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (32).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (33).wav b/samples/EMU World/Wood and Metal/WoodMetal (33).wav deleted file mode 100644 index d21aba41a..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (33).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (34).wav b/samples/EMU World/Wood and Metal/WoodMetal (34).wav deleted file mode 100644 index 3c43341ce..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (34).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (35).wav b/samples/EMU World/Wood and Metal/WoodMetal (35).wav deleted file mode 100644 index 601a4a82a..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (35).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (36).wav b/samples/EMU World/Wood and Metal/WoodMetal (36).wav deleted file mode 100644 index af5f0dcc9..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (36).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (37).wav b/samples/EMU World/Wood and Metal/WoodMetal (37).wav deleted file mode 100644 index 9b5ca4d06..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (37).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (38).wav b/samples/EMU World/Wood and Metal/WoodMetal (38).wav deleted file mode 100644 index 1d0ded1ad..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (38).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (39).wav b/samples/EMU World/Wood and Metal/WoodMetal (39).wav deleted file mode 100644 index 9b4b1761c..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (39).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (4).wav b/samples/EMU World/Wood and Metal/WoodMetal (4).wav deleted file mode 100644 index e281563c3..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (4).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (40).wav b/samples/EMU World/Wood and Metal/WoodMetal (40).wav deleted file mode 100644 index 51505959c..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (40).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (41).wav b/samples/EMU World/Wood and Metal/WoodMetal (41).wav deleted file mode 100644 index 727ac7195..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (41).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (42).wav b/samples/EMU World/Wood and Metal/WoodMetal (42).wav deleted file mode 100644 index 3442beb0a..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (42).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (43).wav b/samples/EMU World/Wood and Metal/WoodMetal (43).wav deleted file mode 100644 index fe6f2754c..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (43).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (44).wav b/samples/EMU World/Wood and Metal/WoodMetal (44).wav deleted file mode 100644 index 0c510fb88..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (44).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (45).wav b/samples/EMU World/Wood and Metal/WoodMetal (45).wav deleted file mode 100644 index 500d9f3b0..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (45).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (46).wav b/samples/EMU World/Wood and Metal/WoodMetal (46).wav deleted file mode 100644 index b8343befb..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (46).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (5).wav b/samples/EMU World/Wood and Metal/WoodMetal (5).wav deleted file mode 100644 index 8a116e984..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (5).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (6).wav b/samples/EMU World/Wood and Metal/WoodMetal (6).wav deleted file mode 100644 index 0432d5003..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (6).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (7).wav b/samples/EMU World/Wood and Metal/WoodMetal (7).wav deleted file mode 100644 index 0ad9c1a0f..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (7).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (8).wav b/samples/EMU World/Wood and Metal/WoodMetal (8).wav deleted file mode 100644 index 2b7f48206..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (8).wav and /dev/null differ diff --git a/samples/EMU World/Wood and Metal/WoodMetal (9).wav b/samples/EMU World/Wood and Metal/WoodMetal (9).wav deleted file mode 100644 index 390e3b997..000000000 Binary files a/samples/EMU World/Wood and Metal/WoodMetal (9).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (1).wav b/samples/EMU World/Woodblock and Bell/WoodBell (1).wav deleted file mode 100644 index e809a0cd4..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (1).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (10).wav b/samples/EMU World/Woodblock and Bell/WoodBell (10).wav deleted file mode 100644 index ceab34b20..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (10).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (11).wav b/samples/EMU World/Woodblock and Bell/WoodBell (11).wav deleted file mode 100644 index 1b4cdef72..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (11).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (12).wav b/samples/EMU World/Woodblock and Bell/WoodBell (12).wav deleted file mode 100644 index 865834c11..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (12).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (13).wav b/samples/EMU World/Woodblock and Bell/WoodBell (13).wav deleted file mode 100644 index 6794f29c8..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (13).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (14).wav b/samples/EMU World/Woodblock and Bell/WoodBell (14).wav deleted file mode 100644 index 1231edd49..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (14).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (15).wav b/samples/EMU World/Woodblock and Bell/WoodBell (15).wav deleted file mode 100644 index 09d7aac23..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (15).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (16).wav b/samples/EMU World/Woodblock and Bell/WoodBell (16).wav deleted file mode 100644 index 523bcb9a5..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (16).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (17).wav b/samples/EMU World/Woodblock and Bell/WoodBell (17).wav deleted file mode 100644 index 9a42b3b3d..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (17).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (18).wav b/samples/EMU World/Woodblock and Bell/WoodBell (18).wav deleted file mode 100644 index 6c0905bcb..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (18).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (19).wav b/samples/EMU World/Woodblock and Bell/WoodBell (19).wav deleted file mode 100644 index f014e1cb5..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (19).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (2).wav b/samples/EMU World/Woodblock and Bell/WoodBell (2).wav deleted file mode 100644 index 34ff5c5cf..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (2).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (20).wav b/samples/EMU World/Woodblock and Bell/WoodBell (20).wav deleted file mode 100644 index 857e8bffd..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (20).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (21).wav b/samples/EMU World/Woodblock and Bell/WoodBell (21).wav deleted file mode 100644 index da834c278..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (21).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (22).wav b/samples/EMU World/Woodblock and Bell/WoodBell (22).wav deleted file mode 100644 index 20cd8691c..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (22).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (23).wav b/samples/EMU World/Woodblock and Bell/WoodBell (23).wav deleted file mode 100644 index 71285b7a9..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (23).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (24).wav b/samples/EMU World/Woodblock and Bell/WoodBell (24).wav deleted file mode 100644 index 4bf0c30d8..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (24).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (25).wav b/samples/EMU World/Woodblock and Bell/WoodBell (25).wav deleted file mode 100644 index 5359540aa..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (25).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (26).wav b/samples/EMU World/Woodblock and Bell/WoodBell (26).wav deleted file mode 100644 index ba4f91dfb..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (26).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (27).wav b/samples/EMU World/Woodblock and Bell/WoodBell (27).wav deleted file mode 100644 index d1678d380..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (27).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (28).wav b/samples/EMU World/Woodblock and Bell/WoodBell (28).wav deleted file mode 100644 index 59a331df0..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (28).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (29).wav b/samples/EMU World/Woodblock and Bell/WoodBell (29).wav deleted file mode 100644 index c66de1854..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (29).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (3).wav b/samples/EMU World/Woodblock and Bell/WoodBell (3).wav deleted file mode 100644 index 217ccf154..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (3).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (30).wav b/samples/EMU World/Woodblock and Bell/WoodBell (30).wav deleted file mode 100644 index 08dc5bee9..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (30).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (31).wav b/samples/EMU World/Woodblock and Bell/WoodBell (31).wav deleted file mode 100644 index e474e7c2e..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (31).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (32).wav b/samples/EMU World/Woodblock and Bell/WoodBell (32).wav deleted file mode 100644 index e7a8e4712..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (32).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (33).wav b/samples/EMU World/Woodblock and Bell/WoodBell (33).wav deleted file mode 100644 index 5e819254b..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (33).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (34).wav b/samples/EMU World/Woodblock and Bell/WoodBell (34).wav deleted file mode 100644 index 672918fb2..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (34).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (35).wav b/samples/EMU World/Woodblock and Bell/WoodBell (35).wav deleted file mode 100644 index 664d6b403..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (35).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (36).wav b/samples/EMU World/Woodblock and Bell/WoodBell (36).wav deleted file mode 100644 index 3e82b0c11..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (36).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (37).wav b/samples/EMU World/Woodblock and Bell/WoodBell (37).wav deleted file mode 100644 index e6a44d2b8..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (37).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (38).wav b/samples/EMU World/Woodblock and Bell/WoodBell (38).wav deleted file mode 100644 index db1e66a0f..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (38).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (39).wav b/samples/EMU World/Woodblock and Bell/WoodBell (39).wav deleted file mode 100644 index 944168c67..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (39).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (4).wav b/samples/EMU World/Woodblock and Bell/WoodBell (4).wav deleted file mode 100644 index 7e3dfe508..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (4).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (40).wav b/samples/EMU World/Woodblock and Bell/WoodBell (40).wav deleted file mode 100644 index ace8fdbf1..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (40).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (41).wav b/samples/EMU World/Woodblock and Bell/WoodBell (41).wav deleted file mode 100644 index 7de605539..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (41).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (42).wav b/samples/EMU World/Woodblock and Bell/WoodBell (42).wav deleted file mode 100644 index 8e2b01234..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (42).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (43).wav b/samples/EMU World/Woodblock and Bell/WoodBell (43).wav deleted file mode 100644 index 483d59ca2..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (43).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (44).wav b/samples/EMU World/Woodblock and Bell/WoodBell (44).wav deleted file mode 100644 index 58fd3e2a0..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (44).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (45).wav b/samples/EMU World/Woodblock and Bell/WoodBell (45).wav deleted file mode 100644 index 67aaef1c7..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (45).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (46).wav b/samples/EMU World/Woodblock and Bell/WoodBell (46).wav deleted file mode 100644 index e2afff315..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (46).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (47).wav b/samples/EMU World/Woodblock and Bell/WoodBell (47).wav deleted file mode 100644 index 7e3d02286..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (47).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (48).wav b/samples/EMU World/Woodblock and Bell/WoodBell (48).wav deleted file mode 100644 index 0366fad47..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (48).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (49).wav b/samples/EMU World/Woodblock and Bell/WoodBell (49).wav deleted file mode 100644 index 0eb34f00f..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (49).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (5).wav b/samples/EMU World/Woodblock and Bell/WoodBell (5).wav deleted file mode 100644 index d51223a45..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (5).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (50).wav b/samples/EMU World/Woodblock and Bell/WoodBell (50).wav deleted file mode 100644 index dd18d3fd5..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (50).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (51).wav b/samples/EMU World/Woodblock and Bell/WoodBell (51).wav deleted file mode 100644 index cf3d4c66b..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (51).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (52).wav b/samples/EMU World/Woodblock and Bell/WoodBell (52).wav deleted file mode 100644 index 02bbc869d..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (52).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (53).wav b/samples/EMU World/Woodblock and Bell/WoodBell (53).wav deleted file mode 100644 index cb42dbb30..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (53).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (54).wav b/samples/EMU World/Woodblock and Bell/WoodBell (54).wav deleted file mode 100644 index 8d6a7aa50..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (54).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (55).wav b/samples/EMU World/Woodblock and Bell/WoodBell (55).wav deleted file mode 100644 index 7ad50f6c3..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (55).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (56).wav b/samples/EMU World/Woodblock and Bell/WoodBell (56).wav deleted file mode 100644 index da820019f..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (56).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (57).wav b/samples/EMU World/Woodblock and Bell/WoodBell (57).wav deleted file mode 100644 index dd72d8a71..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (57).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (58).wav b/samples/EMU World/Woodblock and Bell/WoodBell (58).wav deleted file mode 100644 index 9cc0baab0..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (58).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (6).wav b/samples/EMU World/Woodblock and Bell/WoodBell (6).wav deleted file mode 100644 index 9fdde4797..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (6).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (7).wav b/samples/EMU World/Woodblock and Bell/WoodBell (7).wav deleted file mode 100644 index e528d5f03..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (7).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (8).wav b/samples/EMU World/Woodblock and Bell/WoodBell (8).wav deleted file mode 100644 index 52322e94c..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (8).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock and Bell/WoodBell (9).wav b/samples/EMU World/Woodblock and Bell/WoodBell (9).wav deleted file mode 100644 index c8d4f764c..000000000 Binary files a/samples/EMU World/Woodblock and Bell/WoodBell (9).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (1).wav b/samples/EMU World/Woodblock/Woodblock (1).wav deleted file mode 100644 index 03b4e1726..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (1).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (10).wav b/samples/EMU World/Woodblock/Woodblock (10).wav deleted file mode 100644 index aed269c83..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (10).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (100).wav b/samples/EMU World/Woodblock/Woodblock (100).wav deleted file mode 100644 index d75208296..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (100).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (101).wav b/samples/EMU World/Woodblock/Woodblock (101).wav deleted file mode 100644 index e9aff12ba..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (101).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (102).wav b/samples/EMU World/Woodblock/Woodblock (102).wav deleted file mode 100644 index 5e134d572..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (102).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (103).wav b/samples/EMU World/Woodblock/Woodblock (103).wav deleted file mode 100644 index 0ab9af6df..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (103).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (104).wav b/samples/EMU World/Woodblock/Woodblock (104).wav deleted file mode 100644 index 9d75ffbf6..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (104).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (105).wav b/samples/EMU World/Woodblock/Woodblock (105).wav deleted file mode 100644 index aa3c418ad..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (105).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (106).wav b/samples/EMU World/Woodblock/Woodblock (106).wav deleted file mode 100644 index ba42909bc..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (106).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (107).wav b/samples/EMU World/Woodblock/Woodblock (107).wav deleted file mode 100644 index f0f214e70..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (107).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (108).wav b/samples/EMU World/Woodblock/Woodblock (108).wav deleted file mode 100644 index 9096ccfd8..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (108).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (11).wav b/samples/EMU World/Woodblock/Woodblock (11).wav deleted file mode 100644 index 868c6663e..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (11).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (12).wav b/samples/EMU World/Woodblock/Woodblock (12).wav deleted file mode 100644 index 98027140e..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (12).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (13).wav b/samples/EMU World/Woodblock/Woodblock (13).wav deleted file mode 100644 index 6ad4571dd..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (13).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (14).wav b/samples/EMU World/Woodblock/Woodblock (14).wav deleted file mode 100644 index 8a8453f62..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (14).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (15).wav b/samples/EMU World/Woodblock/Woodblock (15).wav deleted file mode 100644 index 7c9483b30..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (15).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (16).wav b/samples/EMU World/Woodblock/Woodblock (16).wav deleted file mode 100644 index f57090c60..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (16).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (17).wav b/samples/EMU World/Woodblock/Woodblock (17).wav deleted file mode 100644 index 87163dc8e..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (17).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (18).wav b/samples/EMU World/Woodblock/Woodblock (18).wav deleted file mode 100644 index 8cbe70236..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (18).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (19).wav b/samples/EMU World/Woodblock/Woodblock (19).wav deleted file mode 100644 index e95a0c22e..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (19).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (2).wav b/samples/EMU World/Woodblock/Woodblock (2).wav deleted file mode 100644 index 25fb7577b..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (2).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (20).wav b/samples/EMU World/Woodblock/Woodblock (20).wav deleted file mode 100644 index 1eb82b4b6..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (20).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (21).wav b/samples/EMU World/Woodblock/Woodblock (21).wav deleted file mode 100644 index 110b7c0fb..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (21).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (22).wav b/samples/EMU World/Woodblock/Woodblock (22).wav deleted file mode 100644 index fca981b7f..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (22).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (23).wav b/samples/EMU World/Woodblock/Woodblock (23).wav deleted file mode 100644 index 76c765325..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (23).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (24).wav b/samples/EMU World/Woodblock/Woodblock (24).wav deleted file mode 100644 index 69ec8eec8..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (24).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (25).wav b/samples/EMU World/Woodblock/Woodblock (25).wav deleted file mode 100644 index 6161232de..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (25).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (26).wav b/samples/EMU World/Woodblock/Woodblock (26).wav deleted file mode 100644 index b7d37e692..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (26).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (27).wav b/samples/EMU World/Woodblock/Woodblock (27).wav deleted file mode 100644 index bd6a1f3e8..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (27).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (28).wav b/samples/EMU World/Woodblock/Woodblock (28).wav deleted file mode 100644 index 280407750..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (28).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (29).wav b/samples/EMU World/Woodblock/Woodblock (29).wav deleted file mode 100644 index 534085ef6..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (29).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (3).wav b/samples/EMU World/Woodblock/Woodblock (3).wav deleted file mode 100644 index d34f85448..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (3).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (30).wav b/samples/EMU World/Woodblock/Woodblock (30).wav deleted file mode 100644 index a1a881811..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (30).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (31).wav b/samples/EMU World/Woodblock/Woodblock (31).wav deleted file mode 100644 index 8ac2cc1d1..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (31).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (32).wav b/samples/EMU World/Woodblock/Woodblock (32).wav deleted file mode 100644 index f05a8c506..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (32).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (33).wav b/samples/EMU World/Woodblock/Woodblock (33).wav deleted file mode 100644 index 36bf0d550..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (33).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (34).wav b/samples/EMU World/Woodblock/Woodblock (34).wav deleted file mode 100644 index 60b084811..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (34).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (35).wav b/samples/EMU World/Woodblock/Woodblock (35).wav deleted file mode 100644 index 4fe65a7de..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (35).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (36).wav b/samples/EMU World/Woodblock/Woodblock (36).wav deleted file mode 100644 index 374a14b33..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (36).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (37).wav b/samples/EMU World/Woodblock/Woodblock (37).wav deleted file mode 100644 index 72f66b731..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (37).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (38).wav b/samples/EMU World/Woodblock/Woodblock (38).wav deleted file mode 100644 index 0135da00b..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (38).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (39).wav b/samples/EMU World/Woodblock/Woodblock (39).wav deleted file mode 100644 index bfa2a1551..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (39).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (4).wav b/samples/EMU World/Woodblock/Woodblock (4).wav deleted file mode 100644 index 8da1efe69..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (4).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (40).wav b/samples/EMU World/Woodblock/Woodblock (40).wav deleted file mode 100644 index a8d7ba8e9..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (40).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (41).wav b/samples/EMU World/Woodblock/Woodblock (41).wav deleted file mode 100644 index 68a860298..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (41).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (42).wav b/samples/EMU World/Woodblock/Woodblock (42).wav deleted file mode 100644 index 12e8db489..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (42).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (43).wav b/samples/EMU World/Woodblock/Woodblock (43).wav deleted file mode 100644 index 56bacc951..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (43).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (44).wav b/samples/EMU World/Woodblock/Woodblock (44).wav deleted file mode 100644 index e501a6d8e..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (44).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (45).wav b/samples/EMU World/Woodblock/Woodblock (45).wav deleted file mode 100644 index b6dcd87b1..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (45).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (46).wav b/samples/EMU World/Woodblock/Woodblock (46).wav deleted file mode 100644 index 8d7f7455f..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (46).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (47).wav b/samples/EMU World/Woodblock/Woodblock (47).wav deleted file mode 100644 index d80cfba76..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (47).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (48).wav b/samples/EMU World/Woodblock/Woodblock (48).wav deleted file mode 100644 index 10e717f97..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (48).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (49).wav b/samples/EMU World/Woodblock/Woodblock (49).wav deleted file mode 100644 index fec90799d..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (49).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (5).wav b/samples/EMU World/Woodblock/Woodblock (5).wav deleted file mode 100644 index 6e2d1652e..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (5).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (50).wav b/samples/EMU World/Woodblock/Woodblock (50).wav deleted file mode 100644 index 4641eafad..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (50).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (51).wav b/samples/EMU World/Woodblock/Woodblock (51).wav deleted file mode 100644 index c5bc23ae9..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (51).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (52).wav b/samples/EMU World/Woodblock/Woodblock (52).wav deleted file mode 100644 index 81f7991b1..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (52).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (53).wav b/samples/EMU World/Woodblock/Woodblock (53).wav deleted file mode 100644 index c71d47c7a..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (53).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (54).wav b/samples/EMU World/Woodblock/Woodblock (54).wav deleted file mode 100644 index 37b2f8534..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (54).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (55).wav b/samples/EMU World/Woodblock/Woodblock (55).wav deleted file mode 100644 index 2d840d217..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (55).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (56).wav b/samples/EMU World/Woodblock/Woodblock (56).wav deleted file mode 100644 index 963f4777d..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (56).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (57).wav b/samples/EMU World/Woodblock/Woodblock (57).wav deleted file mode 100644 index b64a5d4f5..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (57).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (58).wav b/samples/EMU World/Woodblock/Woodblock (58).wav deleted file mode 100644 index 4ef50e91a..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (58).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (59).wav b/samples/EMU World/Woodblock/Woodblock (59).wav deleted file mode 100644 index e5fa4256a..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (59).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (6).wav b/samples/EMU World/Woodblock/Woodblock (6).wav deleted file mode 100644 index 4f9c837c8..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (6).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (60).wav b/samples/EMU World/Woodblock/Woodblock (60).wav deleted file mode 100644 index 9123ca26d..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (60).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (61).wav b/samples/EMU World/Woodblock/Woodblock (61).wav deleted file mode 100644 index 40f3245b5..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (61).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (62).wav b/samples/EMU World/Woodblock/Woodblock (62).wav deleted file mode 100644 index 59b891b4e..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (62).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (63).wav b/samples/EMU World/Woodblock/Woodblock (63).wav deleted file mode 100644 index fead41eb6..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (63).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (64).wav b/samples/EMU World/Woodblock/Woodblock (64).wav deleted file mode 100644 index a57def18c..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (64).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (65).wav b/samples/EMU World/Woodblock/Woodblock (65).wav deleted file mode 100644 index d20acc2c2..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (65).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (66).wav b/samples/EMU World/Woodblock/Woodblock (66).wav deleted file mode 100644 index 4c2b186e4..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (66).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (67).wav b/samples/EMU World/Woodblock/Woodblock (67).wav deleted file mode 100644 index fcffdf26e..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (67).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (68).wav b/samples/EMU World/Woodblock/Woodblock (68).wav deleted file mode 100644 index 4d8d728c9..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (68).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (69).wav b/samples/EMU World/Woodblock/Woodblock (69).wav deleted file mode 100644 index b41b3884f..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (69).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (7).wav b/samples/EMU World/Woodblock/Woodblock (7).wav deleted file mode 100644 index 30d1f2aa9..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (7).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (70).wav b/samples/EMU World/Woodblock/Woodblock (70).wav deleted file mode 100644 index 5368c2a21..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (70).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (71).wav b/samples/EMU World/Woodblock/Woodblock (71).wav deleted file mode 100644 index a856ff2c4..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (71).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (72).wav b/samples/EMU World/Woodblock/Woodblock (72).wav deleted file mode 100644 index e0fa33e7e..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (72).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (73).wav b/samples/EMU World/Woodblock/Woodblock (73).wav deleted file mode 100644 index 8a7210bbe..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (73).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (74).wav b/samples/EMU World/Woodblock/Woodblock (74).wav deleted file mode 100644 index b545cacf3..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (74).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (75).wav b/samples/EMU World/Woodblock/Woodblock (75).wav deleted file mode 100644 index 246fdcdd3..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (75).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (76).wav b/samples/EMU World/Woodblock/Woodblock (76).wav deleted file mode 100644 index 88e4f8471..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (76).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (77).wav b/samples/EMU World/Woodblock/Woodblock (77).wav deleted file mode 100644 index d51e72bc7..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (77).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (78).wav b/samples/EMU World/Woodblock/Woodblock (78).wav deleted file mode 100644 index 6c5b913b0..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (78).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (79).wav b/samples/EMU World/Woodblock/Woodblock (79).wav deleted file mode 100644 index e01b83700..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (79).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (8).wav b/samples/EMU World/Woodblock/Woodblock (8).wav deleted file mode 100644 index 763dcc28a..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (8).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (80).wav b/samples/EMU World/Woodblock/Woodblock (80).wav deleted file mode 100644 index ff7851f30..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (80).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (81).wav b/samples/EMU World/Woodblock/Woodblock (81).wav deleted file mode 100644 index 974a3ff62..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (81).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (82).wav b/samples/EMU World/Woodblock/Woodblock (82).wav deleted file mode 100644 index df88548b9..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (82).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (83).wav b/samples/EMU World/Woodblock/Woodblock (83).wav deleted file mode 100644 index 2e7d03fb7..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (83).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (84).wav b/samples/EMU World/Woodblock/Woodblock (84).wav deleted file mode 100644 index 6121a9b57..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (84).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (85).wav b/samples/EMU World/Woodblock/Woodblock (85).wav deleted file mode 100644 index 4d2d0c7aa..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (85).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (86).wav b/samples/EMU World/Woodblock/Woodblock (86).wav deleted file mode 100644 index 26be423ab..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (86).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (87).wav b/samples/EMU World/Woodblock/Woodblock (87).wav deleted file mode 100644 index 2fcb36c2c..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (87).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (88).wav b/samples/EMU World/Woodblock/Woodblock (88).wav deleted file mode 100644 index 329944548..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (88).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (89).wav b/samples/EMU World/Woodblock/Woodblock (89).wav deleted file mode 100644 index 66d183828..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (89).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (9).wav b/samples/EMU World/Woodblock/Woodblock (9).wav deleted file mode 100644 index 2b604ad07..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (9).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (90).wav b/samples/EMU World/Woodblock/Woodblock (90).wav deleted file mode 100644 index 5fd2394c0..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (90).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (91).wav b/samples/EMU World/Woodblock/Woodblock (91).wav deleted file mode 100644 index f34149750..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (91).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (92).wav b/samples/EMU World/Woodblock/Woodblock (92).wav deleted file mode 100644 index 26d00d1ff..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (92).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (93).wav b/samples/EMU World/Woodblock/Woodblock (93).wav deleted file mode 100644 index 4fdde6b73..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (93).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (94).wav b/samples/EMU World/Woodblock/Woodblock (94).wav deleted file mode 100644 index 53672021a..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (94).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (95).wav b/samples/EMU World/Woodblock/Woodblock (95).wav deleted file mode 100644 index 309219c8a..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (95).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (96).wav b/samples/EMU World/Woodblock/Woodblock (96).wav deleted file mode 100644 index ae19cdb66..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (96).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (97).wav b/samples/EMU World/Woodblock/Woodblock (97).wav deleted file mode 100644 index bad0beaa4..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (97).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (98).wav b/samples/EMU World/Woodblock/Woodblock (98).wav deleted file mode 100644 index d72d475a4..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (98).wav and /dev/null differ diff --git a/samples/EMU World/Woodblock/Woodblock (99).wav b/samples/EMU World/Woodblock/Woodblock (99).wav deleted file mode 100644 index 21f178e31..000000000 Binary files a/samples/EMU World/Woodblock/Woodblock (99).wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Bass Drum 2.wav b/samples/EMU World/World Kit 2/WK2 Bass Drum 2.wav deleted file mode 100644 index de7034bd1..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Bass Drum 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Bass Drum 3.wav b/samples/EMU World/World Kit 2/WK2 Bass Drum 3.wav deleted file mode 100644 index 22a32d466..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Bass Drum 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Bass Drum 4.wav b/samples/EMU World/World Kit 2/WK2 Bass Drum 4.wav deleted file mode 100644 index 96be477e8..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Bass Drum 4.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Bass Drum.wav b/samples/EMU World/World Kit 2/WK2 Bass Drum.wav deleted file mode 100644 index c9f73a73d..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Bass Drum.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Block 2.wav b/samples/EMU World/World Kit 2/WK2 Block 2.wav deleted file mode 100644 index 8741a7bcf..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Block 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Block 3.wav b/samples/EMU World/World Kit 2/WK2 Block 3.wav deleted file mode 100644 index cb1a84d07..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Block 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Block.wav b/samples/EMU World/World Kit 2/WK2 Block.wav deleted file mode 100644 index 8ac37e099..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Block.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Bottle 2.wav b/samples/EMU World/World Kit 2/WK2 Bottle 2.wav deleted file mode 100644 index 21fd294d9..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Bottle 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Clap 2.wav b/samples/EMU World/World Kit 2/WK2 Clap 2.wav deleted file mode 100644 index 58d714afd..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Clap 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Clap.wav b/samples/EMU World/World Kit 2/WK2 Clap.wav deleted file mode 100644 index 7a44cd20c..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Clap.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Clay Drum.wav b/samples/EMU World/World Kit 2/WK2 Clay Drum.wav deleted file mode 100644 index 2d68cde59..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Clay Drum.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 High Conga 3.wav b/samples/EMU World/World Kit 2/WK2 High Conga 3.wav deleted file mode 100644 index 3e2aa127f..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 High Conga 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 High Conga.wav b/samples/EMU World/World Kit 2/WK2 High Conga.wav deleted file mode 100644 index 46fcda8ab..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 High Conga.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Low Conga 3.wav b/samples/EMU World/World Kit 2/WK2 Low Conga 3.wav deleted file mode 100644 index 5a992e1ae..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Low Conga 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Low Tom 2.wav b/samples/EMU World/World Kit 2/WK2 Low Tom 2.wav deleted file mode 100644 index 7b2f123cb..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Low Tom 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Low Tom 3.wav b/samples/EMU World/World Kit 2/WK2 Low Tom 3.wav deleted file mode 100644 index fc3054888..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Low Tom 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Low Tom 4.wav b/samples/EMU World/World Kit 2/WK2 Low Tom 4.wav deleted file mode 100644 index 13b9a9336..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Low Tom 4.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Low Tom.wav b/samples/EMU World/World Kit 2/WK2 Low Tom.wav deleted file mode 100644 index 1d3d66f04..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Low Tom.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Mid Conga 2.wav b/samples/EMU World/World Kit 2/WK2 Mid Conga 2.wav deleted file mode 100644 index 95c0bd92b..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Mid Conga 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Mid Conga 3.wav b/samples/EMU World/World Kit 2/WK2 Mid Conga 3.wav deleted file mode 100644 index bfec5046a..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Mid Conga 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Mid Conga.wav b/samples/EMU World/World Kit 2/WK2 Mid Conga.wav deleted file mode 100644 index 62c6ca4ef..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Mid Conga.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Mid Tom 3.wav b/samples/EMU World/World Kit 2/WK2 Mid Tom 3.wav deleted file mode 100644 index 9330da14b..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Mid Tom 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Mid Tom.wav b/samples/EMU World/World Kit 2/WK2 Mid Tom.wav deleted file mode 100644 index 0efbacf1a..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Mid Tom.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 MidTom 2.wav b/samples/EMU World/World Kit 2/WK2 MidTom 2.wav deleted file mode 100644 index 1e33c5ea6..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 MidTom 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Mute Conga Hi.wav b/samples/EMU World/World Kit 2/WK2 Mute Conga Hi.wav deleted file mode 100644 index e5171ad8f..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Mute Conga Hi.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Mute Conga Low 2.wav b/samples/EMU World/World Kit 2/WK2 Mute Conga Low 2.wav deleted file mode 100644 index ba05c2064..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Mute Conga Low 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Mute Conga Low.wav b/samples/EMU World/World Kit 2/WK2 Mute Conga Low.wav deleted file mode 100644 index 173174311..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Mute Conga Low.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Mute Conga Mid.wav b/samples/EMU World/World Kit 2/WK2 Mute Conga Mid.wav deleted file mode 100644 index 85a887c09..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Mute Conga Mid.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Rattle 2.wav b/samples/EMU World/World Kit 2/WK2 Rattle 2.wav deleted file mode 100644 index 4857c9e89..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Rattle 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Rattle 3.wav b/samples/EMU World/World Kit 2/WK2 Rattle 3.wav deleted file mode 100644 index d2bf7712d..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Rattle 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Rattle 4.wav b/samples/EMU World/World Kit 2/WK2 Rattle 4.wav deleted file mode 100644 index 4cd906441..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Rattle 4.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Rattle 5.wav b/samples/EMU World/World Kit 2/WK2 Rattle 5.wav deleted file mode 100644 index 23a33d590..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Rattle 5.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Rattle 6.wav b/samples/EMU World/World Kit 2/WK2 Rattle 6.wav deleted file mode 100644 index 36f9c5c95..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Rattle 6.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Rattle.wav b/samples/EMU World/World Kit 2/WK2 Rattle.wav deleted file mode 100644 index e5544e014..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Rattle.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Snare.wav b/samples/EMU World/World Kit 2/WK2 Snare.wav deleted file mode 100644 index 32d47bf4f..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Snare.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Tabla 2.wav b/samples/EMU World/World Kit 2/WK2 Tabla 2.wav deleted file mode 100644 index 5751855a5..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Tabla 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Tabla 3.wav b/samples/EMU World/World Kit 2/WK2 Tabla 3.wav deleted file mode 100644 index 8114174d6..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Tabla 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Tabla 4.wav b/samples/EMU World/World Kit 2/WK2 Tabla 4.wav deleted file mode 100644 index 770e96558..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Tabla 4.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Tabla.wav b/samples/EMU World/World Kit 2/WK2 Tabla.wav deleted file mode 100644 index 42d97a550..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Tabla.wav and /dev/null differ diff --git a/samples/EMU World/World Kit 2/WK2 Timbale.wav b/samples/EMU World/World Kit 2/WK2 Timbale.wav deleted file mode 100644 index 03d26460c..000000000 Binary files a/samples/EMU World/World Kit 2/WK2 Timbale.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Agogo 1.wav b/samples/EMU World/World Kit/WK Agogo 1.wav deleted file mode 100644 index 28b48daad..000000000 Binary files a/samples/EMU World/World Kit/WK Agogo 1.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Agogo 2.wav b/samples/EMU World/World Kit/WK Agogo 2.wav deleted file mode 100644 index 226e46d6e..000000000 Binary files a/samples/EMU World/World Kit/WK Agogo 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Bass Drum 2.wav b/samples/EMU World/World Kit/WK Bass Drum 2.wav deleted file mode 100644 index 3d89aa3c6..000000000 Binary files a/samples/EMU World/World Kit/WK Bass Drum 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Bass Drum 3.wav b/samples/EMU World/World Kit/WK Bass Drum 3.wav deleted file mode 100644 index 4cd9c53c4..000000000 Binary files a/samples/EMU World/World Kit/WK Bass Drum 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Bass Drum 4.wav b/samples/EMU World/World Kit/WK Bass Drum 4.wav deleted file mode 100644 index 4c4d20ac4..000000000 Binary files a/samples/EMU World/World Kit/WK Bass Drum 4.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Bass Drum.wav b/samples/EMU World/World Kit/WK Bass Drum.wav deleted file mode 100644 index 424791ae1..000000000 Binary files a/samples/EMU World/World Kit/WK Bass Drum.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Block 2.wav b/samples/EMU World/World Kit/WK Block 2.wav deleted file mode 100644 index 739c013e9..000000000 Binary files a/samples/EMU World/World Kit/WK Block 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Block 3.wav b/samples/EMU World/World Kit/WK Block 3.wav deleted file mode 100644 index cbf39d1eb..000000000 Binary files a/samples/EMU World/World Kit/WK Block 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Block 4.wav b/samples/EMU World/World Kit/WK Block 4.wav deleted file mode 100644 index 141210e8b..000000000 Binary files a/samples/EMU World/World Kit/WK Block 4.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Block.wav b/samples/EMU World/World Kit/WK Block.wav deleted file mode 100644 index a01f8111d..000000000 Binary files a/samples/EMU World/World Kit/WK Block.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Bottle 2.wav b/samples/EMU World/World Kit/WK Bottle 2.wav deleted file mode 100644 index 28810dc83..000000000 Binary files a/samples/EMU World/World Kit/WK Bottle 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Bottle.wav b/samples/EMU World/World Kit/WK Bottle.wav deleted file mode 100644 index 13224a15c..000000000 Binary files a/samples/EMU World/World Kit/WK Bottle.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Clap 2.wav b/samples/EMU World/World Kit/WK Clap 2.wav deleted file mode 100644 index 7a0417b2c..000000000 Binary files a/samples/EMU World/World Kit/WK Clap 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Cowbell.wav b/samples/EMU World/World Kit/WK Cowbell.wav deleted file mode 100644 index 68d92676f..000000000 Binary files a/samples/EMU World/World Kit/WK Cowbell.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Cup.wav b/samples/EMU World/World Kit/WK Cup.wav deleted file mode 100644 index fdd653db1..000000000 Binary files a/samples/EMU World/World Kit/WK Cup.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Cymb 2.wav b/samples/EMU World/World Kit/WK Cymb 2.wav deleted file mode 100644 index fa27e92eb..000000000 Binary files a/samples/EMU World/World Kit/WK Cymb 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Cymb.wav b/samples/EMU World/World Kit/WK Cymb.wav deleted file mode 100644 index 10ac17baf..000000000 Binary files a/samples/EMU World/World Kit/WK Cymb.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Guerro.wav b/samples/EMU World/World Kit/WK Guerro.wav deleted file mode 100644 index 11d6bb02e..000000000 Binary files a/samples/EMU World/World Kit/WK Guerro.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK High Conga.wav b/samples/EMU World/World Kit/WK High Conga.wav deleted file mode 100644 index 7d8185cd6..000000000 Binary files a/samples/EMU World/World Kit/WK High Conga.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK High Tom.wav b/samples/EMU World/World Kit/WK High Tom.wav deleted file mode 100644 index d811939ae..000000000 Binary files a/samples/EMU World/World Kit/WK High Tom.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Low Bass Tom.wav b/samples/EMU World/World Kit/WK Low Bass Tom.wav deleted file mode 100644 index 73d9dcf17..000000000 Binary files a/samples/EMU World/World Kit/WK Low Bass Tom.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Low Conga.wav b/samples/EMU World/World Kit/WK Low Conga.wav deleted file mode 100644 index ac3a0de9b..000000000 Binary files a/samples/EMU World/World Kit/WK Low Conga.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Mid Bass Tom.wav b/samples/EMU World/World Kit/WK Mid Bass Tom.wav deleted file mode 100644 index 436c8de82..000000000 Binary files a/samples/EMU World/World Kit/WK Mid Bass Tom.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Mid Conga.wav b/samples/EMU World/World Kit/WK Mid Conga.wav deleted file mode 100644 index 872e34058..000000000 Binary files a/samples/EMU World/World Kit/WK Mid Conga.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Mid Tom 2.wav b/samples/EMU World/World Kit/WK Mid Tom 2.wav deleted file mode 100644 index a6bf07261..000000000 Binary files a/samples/EMU World/World Kit/WK Mid Tom 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Mid Tom.wav b/samples/EMU World/World Kit/WK Mid Tom.wav deleted file mode 100644 index e97c07ff8..000000000 Binary files a/samples/EMU World/World Kit/WK Mid Tom.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Open Hat.wav b/samples/EMU World/World Kit/WK Open Hat.wav deleted file mode 100644 index 50008689d..000000000 Binary files a/samples/EMU World/World Kit/WK Open Hat.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Rattle.wav b/samples/EMU World/World Kit/WK Rattle.wav deleted file mode 100644 index a1b77298d..000000000 Binary files a/samples/EMU World/World Kit/WK Rattle.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Rim.wav b/samples/EMU World/World Kit/WK Rim.wav deleted file mode 100644 index 26846b6ef..000000000 Binary files a/samples/EMU World/World Kit/WK Rim.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Scraper 1.wav b/samples/EMU World/World Kit/WK Scraper 1.wav deleted file mode 100644 index be02df55f..000000000 Binary files a/samples/EMU World/World Kit/WK Scraper 1.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Scraper 2.wav b/samples/EMU World/World Kit/WK Scraper 2.wav deleted file mode 100644 index a9649eb95..000000000 Binary files a/samples/EMU World/World Kit/WK Scraper 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Shaker 1.wav b/samples/EMU World/World Kit/WK Shaker 1.wav deleted file mode 100644 index 31d9c9329..000000000 Binary files a/samples/EMU World/World Kit/WK Shaker 1.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Shaker 2.wav b/samples/EMU World/World Kit/WK Shaker 2.wav deleted file mode 100644 index 0acb440ad..000000000 Binary files a/samples/EMU World/World Kit/WK Shaker 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Shaker 3.wav b/samples/EMU World/World Kit/WK Shaker 3.wav deleted file mode 100644 index 39522df75..000000000 Binary files a/samples/EMU World/World Kit/WK Shaker 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Shaker Cymb.wav b/samples/EMU World/World Kit/WK Shaker Cymb.wav deleted file mode 100644 index 2931c3c64..000000000 Binary files a/samples/EMU World/World Kit/WK Shaker Cymb.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Sticks.wav b/samples/EMU World/World Kit/WK Sticks.wav deleted file mode 100644 index c99aad1ca..000000000 Binary files a/samples/EMU World/World Kit/WK Sticks.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Tamb 2.wav b/samples/EMU World/World Kit/WK Tamb 2.wav deleted file mode 100644 index 16aef38d4..000000000 Binary files a/samples/EMU World/World Kit/WK Tamb 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Tamb 3.wav b/samples/EMU World/World Kit/WK Tamb 3.wav deleted file mode 100644 index 64deeed4f..000000000 Binary files a/samples/EMU World/World Kit/WK Tamb 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Tamb.wav b/samples/EMU World/World Kit/WK Tamb.wav deleted file mode 100644 index 4f161b277..000000000 Binary files a/samples/EMU World/World Kit/WK Tamb.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Triangle 2.wav b/samples/EMU World/World Kit/WK Triangle 2.wav deleted file mode 100644 index eb9b83bb5..000000000 Binary files a/samples/EMU World/World Kit/WK Triangle 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Triangle 3.wav b/samples/EMU World/World Kit/WK Triangle 3.wav deleted file mode 100644 index aa28fbcf7..000000000 Binary files a/samples/EMU World/World Kit/WK Triangle 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Triangle 4.wav b/samples/EMU World/World Kit/WK Triangle 4.wav deleted file mode 100644 index baad61a6b..000000000 Binary files a/samples/EMU World/World Kit/WK Triangle 4.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Triangle 5.wav b/samples/EMU World/World Kit/WK Triangle 5.wav deleted file mode 100644 index af12cbbd3..000000000 Binary files a/samples/EMU World/World Kit/WK Triangle 5.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Triangle 6.wav b/samples/EMU World/World Kit/WK Triangle 6.wav deleted file mode 100644 index e1e287e5b..000000000 Binary files a/samples/EMU World/World Kit/WK Triangle 6.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Triangle.wav b/samples/EMU World/World Kit/WK Triangle.wav deleted file mode 100644 index 344fa3b5f..000000000 Binary files a/samples/EMU World/World Kit/WK Triangle.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Whistle 1.wav b/samples/EMU World/World Kit/WK Whistle 1.wav deleted file mode 100644 index 6e1249781..000000000 Binary files a/samples/EMU World/World Kit/WK Whistle 1.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Whistle 2.wav b/samples/EMU World/World Kit/WK Whistle 2.wav deleted file mode 100644 index 39674f910..000000000 Binary files a/samples/EMU World/World Kit/WK Whistle 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Whistle 3.wav b/samples/EMU World/World Kit/WK Whistle 3.wav deleted file mode 100644 index 974714f34..000000000 Binary files a/samples/EMU World/World Kit/WK Whistle 3.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Woop 2.wav b/samples/EMU World/World Kit/WK Woop 2.wav deleted file mode 100644 index d0dbbeb26..000000000 Binary files a/samples/EMU World/World Kit/WK Woop 2.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/WK Woop.wav b/samples/EMU World/World Kit/WK Woop.wav deleted file mode 100644 index 0dfec7265..000000000 Binary files a/samples/EMU World/World Kit/WK Woop.wav and /dev/null differ diff --git a/samples/EMU World/World Kit/World Kit 2 (3).wav b/samples/EMU World/World Kit/World Kit 2 (3).wav deleted file mode 100644 index 29d9991aa..000000000 Binary files a/samples/EMU World/World Kit/World Kit 2 (3).wav and /dev/null differ diff --git a/tutorial/assets/index.1bcaf8c1.js b/tutorial/assets/index.1bcaf8c1.js new file mode 100644 index 000000000..b5fa88968 --- /dev/null +++ b/tutorial/assets/index.1bcaf8c1.js @@ -0,0 +1 @@ +import{W as a,F as b}from"./index.91bb3680.js";export{a as WebMidi,b as enableWebMidi}; diff --git a/tutorial/assets/index.2ac97f4b.js b/tutorial/assets/index.2ac97f4b.js deleted file mode 100644 index 0b91a1f18..000000000 --- a/tutorial/assets/index.2ac97f4b.js +++ /dev/null @@ -1,8 +0,0 @@ -var at=Object.defineProperty,it=Object.defineProperties;var ft=Object.getOwnPropertyDescriptors;var M=Object.getOwnPropertySymbols;var Pe=Object.prototype.hasOwnProperty,Oe=Object.prototype.propertyIsEnumerable;var Re=(a,f,r)=>f in a?at(a,f,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[f]=r,H=(a,f)=>{for(var r in f||(f={}))Pe.call(f,r)&&Re(a,r,f[r]);if(M)for(var r of M(f))Oe.call(f,r)&&Re(a,r,f[r]);return a},J=(a,f)=>it(a,ft(f));var qe=(a,f)=>{var r={};for(var $ in a)Pe.call(a,$)&&f.indexOf($)<0&&(r[$]=a[$]);if(a!=null&&M)for(var $ of M(a))f.indexOf($)<0&&Oe.call(a,$)&&(r[$]=a[$]);return r};import{C as ot}from"./index.e8a05ade.js";function ct(a,f){function r(){this.constructor=a}r.prototype=f.prototype,a.prototype=new r}function D(a,f,r,$){var l=Error.call(this,a);return Object.setPrototypeOf&&Object.setPrototypeOf(l,D.prototype),l.expected=f,l.found=r,l.location=$,l.name="SyntaxError",l}ct(D,Error);function K(a,f,r){return r=r||" ",a.length>f?a:(f-=a.length,r+=r.repeat(f),a+r.slice(0,f))}D.prototype.format=function(a){var f="Error: "+this.message;if(this.location){var r=null,$;for($=0;$ `+_+` -`+w+` | -`+l.line+" | "+E+` -`+w+" | "+K("",l.column-1," ")+K("",h,"^")}else f+=` - at `+_}return f};D.buildMessage=function(a,f){var r={literal:function(d){return'"'+l(d.text)+'"'},class:function(d){var h=d.parts.map(function(y){return Array.isArray(y)?_(y[0])+"-"+_(y[1]):_(y)});return"["+(d.inverted?"^":"")+h.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(d){return d.description}};function $(d){return d.charCodeAt(0).toString(16).toUpperCase()}function l(d){return d.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(h){return"\\x0"+$(h)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(h){return"\\x"+$(h)})}function _(d){return d.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(h){return"\\x0"+$(h)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(h){return"\\x"+$(h)})}function A(d){return r[d.type](d)}function w(d){var h=d.map(A),y,F;if(h.sort(),h.length>0){for(y=1,F=1;y",Ue="@",Xe="!",He="(",Je=")",Ke="/",Qe="*",Ve="%",ee="struct",re="target",se="euclid",te="slow",ne="rotL",ae="rotR",ie="fast",fe="scale",oe="//",ce="cat",We="$",le="setcps",ue="setbpm",pe="hush",Ye=/^[1-9]/,er=/^[eE]/,rr=/^[0-9]/,ge=/^[ \n\r\t]/,sr=/^[0-9a-zA-Z~]/,ve=/^[^\n]/,tr=ye("number"),$e=g(".",!1),nr=j([["1","9"]],!1,!1),ar=j(["e","E"],!1,!1),he=g("-",!1),ir=g("+",!1),fr=g("0",!1),or=j([["0","9"]],!1,!1),cr=ye("whitespace"),me=j([" ",` -`,"\r"," "],!1,!1),lr=g(",",!1),ur=g('"',!1),pr=g("'",!1),gr=j([["0","9"],["a","z"],["A","Z"],"~"],!1,!1),vr=g("#",!1),$r=g("^",!1),hr=g("_",!1),mr=g(":",!1),_e=g("[",!1),de=g("]",!1),_r=g("<",!1),dr=g(">",!1),wr=g("@",!1),Ar=g("!",!1),br=g("(",!1),yr=g(")",!1),Cr=g("/",!1),xr=g("*",!1),Er=g("%",!1),Fr=g("struct",!1),jr=g("target",!1),Sr=g("euclid",!1),Rr=g("slow",!1),Pr=g("rotL",!1),Or=g("rotR",!1),qr=g("fast",!1),Dr=g("scale",!1),Ir=g("//",!1),we=j([` -`],!0,!1),Nr=g("cat",!1),kr=g("$",!1),Tr=g("setcps",!1),zr=g("setbpm",!1),Lr=g("hush",!1),Mr=function(){return parseFloat(ms())},Zr=function(e){return e.join("")},Br=function(e){return e},Gr=function(e){return e.arguments_.alignment="t",e},Ur=function(e){return{weight:e}},Xr=function(e){return{replicate:e}},Hr=function(e,t,n){return{operator:{type_:"bjorklund",arguments_:{pulse:e,step:t,rotation:n||0}}}},Jr=function(e){return{operator:{type_:"stretch",arguments_:{amount:e}}}},Kr=function(e){return{operator:{type_:"stretch",arguments_:{amount:"1/"+e}}}},Qr=function(e){return{operator:{type_:"fixed-step",arguments_:{amount:e}}}},Vr=function(e,t){return new nt(e,t)},Wr=function(e){return new U(e,"h")},Ae=function(e,t){return t},Yr=function(e,t){return t.length==0&&e instanceof Object?e:(t.unshift(e),new U(t,"v"))},es=function(e){return e},rs=function(e){return{name:"struct",args:{sequence:e}}},ss=function(e){return{name:"target",args:{name:e}}},ts=function(e,t,n){return{name:"bjorklund",args:{pulse:parseInt(e),step:parseInt(t)}}},ns=function(e){return{name:"stretch",args:{amount:e}}},as=function(e){return{name:"shift",args:{amount:"-"+e}}},is=function(e){return{name:"shift",args:{amount:e}}},fs=function(e){return{name:"stretch",args:{amount:"1/"+e}}},os=function(e){return{name:"scale",args:{scale:e.join("")}}},be=function(e,t){return t},cs=function(e,t){return t.unshift(e),new U(t,"t")},ls=function(e){return e},us=function(e,t){return new tt(e.name,e.args,t)},ps=function(e){return e},gs=function(e){return e},vs=function(e){return new X("setcps",{value:e})},$s=function(e){return new X("setcps",{value:e/120/2})},hs=function(){return new X("hush")},s=0,p=0,N=[{line:1,column:1}],x=0,Z=[],o=0,k;if("startRule"in f){if(!(f.startRule in l))throw new Error(`Can't start parsing from rule "`+f.startRule+'".');_=l[f.startRule]}function ms(){return a.substring(p,s)}function _s(){return B(p,s)}function g(e,t){return{type:"literal",text:e,ignoreCase:t}}function j(e,t,n){return{type:"class",parts:e,inverted:t,ignoreCase:n}}function ds(){return{type:"end"}}function ye(e){return{type:"other",description:e}}function Ce(e){var t=N[e],n;if(t)return t;for(n=e-1;!N[n];)n--;for(t=N[n],t={line:t.line,column:t.column};nx&&(x=s,Z=[]),Z.push(e))}function ws(e,t,n){return new D(D.buildMessage(e,t),e,t,n)}function xe(){var e;return e=st(),e}function b(){var e,t;return o++,e=s,Ee(),t=T(),t!==r?(xs(),Cs(),p=e,e=Mr()):(s=e,e=r),o--,e===r&&o===0&&c(tr),e}function As(){var e;return a.charCodeAt(s)===46?(e=A,s++):(e=r,o===0&&c($e)),e}function bs(){var e;return Ye.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(nr)),e}function ys(){var e;return er.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(ar)),e}function Cs(){var e,t,n,i,v;if(e=s,t=ys(),t!==r){if(n=Ee(),n===r&&(n=Es()),n===r&&(n=null),i=[],v=S(),v!==r)for(;v!==r;)i.push(v),v=S();else i=r;i!==r?(t=[t,n,i],e=t):(s=e,e=r)}else s=e,e=r;return e}function xs(){var e,t,n,i;if(e=s,t=As(),t!==r){if(n=[],i=S(),i!==r)for(;i!==r;)n.push(i),i=S();else n=r;n!==r?(t=[t,n],e=t):(s=e,e=r)}else s=e,e=r;return e}function T(){var e,t,n,i;if(e=Fs(),e===r)if(e=s,t=bs(),t!==r){for(n=[],i=S();i!==r;)n.push(i),i=S();t=[t,n],e=t}else s=e,e=r;return e}function Ee(){var e;return a.charCodeAt(s)===45?(e=w,s++):(e=r,o===0&&c(he)),e}function Es(){var e;return a.charCodeAt(s)===43?(e=E,s++):(e=r,o===0&&c(ir)),e}function Fs(){var e;return a.charCodeAt(s)===48?(e=d,s++):(e=r,o===0&&c(fr)),e}function S(){var e;return rr.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(or)),e}function u(){var e,t;for(o++,e=[],ge.test(a.charAt(s))?(t=a.charAt(s),s++):(t=r,o===0&&c(me));t!==r;)e.push(t),ge.test(a.charAt(s))?(t=a.charAt(s),s++):(t=r,o===0&&c(me));return o--,t=r,o===0&&c(cr),e}function R(){var e,t,n,i;return e=s,t=u(),a.charCodeAt(s)===44?(n=h,s++):(n=r,o===0&&c(lr)),n!==r?(i=u(),t=[t,n,i],e=t):(s=e,e=r),e}function P(){var e;return a.charCodeAt(s)===34?(e=y,s++):(e=r,o===0&&c(ur)),e===r&&(a.charCodeAt(s)===39?(e=F,s++):(e=r,o===0&&c(pr))),e}function z(){var e;return sr.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(gr)),e===r&&(a.charCodeAt(s)===45?(e=w,s++):(e=r,o===0&&c(he)),e===r&&(a.charCodeAt(s)===35?(e=ze,s++):(e=r,o===0&&c(vr)),e===r&&(a.charCodeAt(s)===46?(e=A,s++):(e=r,o===0&&c($e)),e===r&&(a.charCodeAt(s)===94?(e=Le,s++):(e=r,o===0&&c($r)),e===r&&(a.charCodeAt(s)===95?(e=Me,s++):(e=r,o===0&&c(hr)),e===r&&(a.charCodeAt(s)===58?(e=Ze,s++):(e=r,o===0&&c(mr)))))))),e}function Fe(){var e,t,n;if(e=s,u(),t=[],n=z(),n!==r)for(;n!==r;)t.push(n),n=z();else t=r;return t!==r?(n=u(),p=e,e=Zr(t)):(s=e,e=r),e}function js(){var e,t,n,i;return e=s,u(),a.charCodeAt(s)===91?(t=W,s++):(t=r,o===0&&c(_e)),t!==r?(u(),n=Se(),n!==r?(u(),a.charCodeAt(s)===93?(i=Y,s++):(i=r,o===0&&c(de)),i!==r?(u(),p=e,e=Br(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Ss(){var e,t,n,i;return e=s,u(),a.charCodeAt(s)===60?(t=Be,s++):(t=r,o===0&&c(_r)),t!==r?(u(),n=L(),n!==r?(u(),a.charCodeAt(s)===62?(i=Ge,s++):(i=r,o===0&&c(dr)),i!==r?(u(),p=e,e=Gr(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Rs(){var e;return e=Fe(),e===r&&(e=js(),e===r&&(e=Ss())),e}function Ps(){var e;return e=Os(),e===r&&(e=Ds(),e===r&&(e=Is(),e===r&&(e=Ns(),e===r&&(e=ks(),e===r&&(e=qs()))))),e}function Os(){var e,t,n;return e=s,a.charCodeAt(s)===64?(t=Ue,s++):(t=r,o===0&&c(wr)),t!==r?(n=b(),n!==r?(p=e,e=Ur(n)):(s=e,e=r)):(s=e,e=r),e}function qs(){var e,t,n;return e=s,a.charCodeAt(s)===33?(t=Xe,s++):(t=r,o===0&&c(Ar)),t!==r?(n=b(),n!==r?(p=e,e=Xr(n)):(s=e,e=r)):(s=e,e=r),e}function Ds(){var e,t,n,i,v,m,C;return e=s,a.charCodeAt(s)===40?(t=He,s++):(t=r,o===0&&c(br)),t!==r?(u(),n=b(),n!==r?(u(),i=R(),i!==r?(u(),v=b(),v!==r?(u(),R(),u(),m=b(),m===r&&(m=null),u(),a.charCodeAt(s)===41?(C=Je,s++):(C=r,o===0&&c(yr)),C!==r?(p=e,e=Hr(n,v,m)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Is(){var e,t,n;return e=s,a.charCodeAt(s)===47?(t=Ke,s++):(t=r,o===0&&c(Cr)),t!==r?(n=b(),n!==r?(p=e,e=Jr(n)):(s=e,e=r)):(s=e,e=r),e}function Ns(){var e,t,n;return e=s,a.charCodeAt(s)===42?(t=Qe,s++):(t=r,o===0&&c(xr)),t!==r?(n=b(),n!==r?(p=e,e=Kr(n)):(s=e,e=r)):(s=e,e=r),e}function ks(){var e,t,n;return e=s,a.charCodeAt(s)===37?(t=Ve,s++):(t=r,o===0&&c(Er)),t!==r?(n=b(),n!==r?(p=e,e=Qr(n)):(s=e,e=r)):(s=e,e=r),e}function je(){var e,t,n;return e=s,t=Rs(),t!==r?(n=Ps(),n===r&&(n=null),p=e,e=Vr(t,n)):(s=e,e=r),e}function L(){var e,t,n;if(e=s,t=[],n=je(),n!==r)for(;n!==r;)t.push(n),n=je();else t=r;return t!==r&&(p=e,t=Wr(t)),e=t,e}function Se(){var e,t,n,i,v,m;if(e=s,t=L(),t!==r){for(n=[],i=s,v=R(),v!==r?(m=L(),m!==r?(p=i,i=Ae(t,m)):(s=i,i=r)):(s=i,i=r);i!==r;)n.push(i),i=s,v=R(),v!==r?(m=L(),m!==r?(p=i,i=Ae(t,m)):(s=i,i=r)):(s=i,i=r);p=e,e=Yr(t,n)}else s=e,e=r;return e}function Ts(){var e,t,n,i;return e=s,u(),t=P(),t!==r?(n=Se(),n!==r?(i=P(),i!==r?(p=e,e=es(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function zs(){var e;return e=Hs(),e===r&&(e=Bs(),e===r&&(e=Xs(),e===r&&(e=Ms(),e===r&&(e=Zs(),e===r&&(e=Ls(),e===r&&(e=Us(),e===r&&(e=Gs()))))))),e}function Ls(){var e,t,n;return e=s,a.substr(s,6)===ee?(t=ee,s+=6):(t=r,o===0&&c(Fr)),t!==r?(u(),n=O(),n!==r?(p=e,e=rs(n)):(s=e,e=r)):(s=e,e=r),e}function Ms(){var e,t,n,i,v;return e=s,a.substr(s,6)===re?(t=re,s+=6):(t=r,o===0&&c(jr)),t!==r?(u(),n=P(),n!==r?(i=Fe(),i!==r?(v=P(),v!==r?(p=e,e=ss(i)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Zs(){var e,t,n,i;return e=s,a.substr(s,6)===se?(t=se,s+=6):(t=r,o===0&&c(Sr)),t!==r?(u(),n=T(),n!==r?(u(),i=T(),i!==r?(u(),T(),p=e,e=ts(n,i)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Bs(){var e,t,n;return e=s,a.substr(s,4)===te?(t=te,s+=4):(t=r,o===0&&c(Rr)),t!==r?(u(),n=b(),n!==r?(p=e,e=ns(n)):(s=e,e=r)):(s=e,e=r),e}function Gs(){var e,t,n;return e=s,a.substr(s,4)===ne?(t=ne,s+=4):(t=r,o===0&&c(Pr)),t!==r?(u(),n=b(),n!==r?(p=e,e=as(n)):(s=e,e=r)):(s=e,e=r),e}function Us(){var e,t,n;return e=s,a.substr(s,4)===ae?(t=ae,s+=4):(t=r,o===0&&c(Or)),t!==r?(u(),n=b(),n!==r?(p=e,e=is(n)):(s=e,e=r)):(s=e,e=r),e}function Xs(){var e,t,n;return e=s,a.substr(s,4)===ie?(t=ie,s+=4):(t=r,o===0&&c(qr)),t!==r?(u(),n=b(),n!==r?(p=e,e=fs(n)):(s=e,e=r)):(s=e,e=r),e}function Hs(){var e,t,n,i,v;if(e=s,a.substr(s,5)===fe?(t=fe,s+=5):(t=r,o===0&&c(Dr)),t!==r)if(u(),n=P(),n!==r){if(i=[],v=z(),v!==r)for(;v!==r;)i.push(v),v=z();else i=r;i!==r?(v=P(),v!==r?(p=e,e=os(i)):(s=e,e=r)):(s=e,e=r)}else s=e,e=r;else s=e,e=r;return e}function G(){var e,t,n,i;if(e=s,a.substr(s,2)===oe?(t=oe,s+=2):(t=r,o===0&&c(Ir)),t!==r){for(n=[],ve.test(a.charAt(s))?(i=a.charAt(s),s++):(i=r,o===0&&c(we));i!==r;)n.push(i),ve.test(a.charAt(s))?(i=a.charAt(s),s++):(i=r,o===0&&c(we));t=[t,n],e=t}else s=e,e=r;return e}function Js(){var e,t,n,i,v,m,C,q;if(e=s,a.substr(s,3)===ce?(t=ce,s+=3):(t=r,o===0&&c(Nr)),t!==r)if(u(),a.charCodeAt(s)===91?(n=W,s++):(n=r,o===0&&c(_e)),n!==r)if(u(),i=O(),i!==r){for(v=[],m=s,C=R(),C!==r?(q=O(),q!==r?(p=m,m=be(i,q)):(s=m,m=r)):(s=m,m=r);m!==r;)v.push(m),m=s,C=R(),C!==r?(q=O(),q!==r?(p=m,m=be(i,q)):(s=m,m=r)):(s=m,m=r);m=u(),a.charCodeAt(s)===93?(C=Y,s++):(C=r,o===0&&c(de)),C!==r?(p=e,e=cs(i,v)):(s=e,e=r)}else s=e,e=r;else s=e,e=r;else s=e,e=r;return e}function Ks(){var e;return e=Js(),e===r&&(e=Ts()),e}function O(){var e,t,n,i,v;if(e=s,t=Ks(),t!==r){for(u(),n=[],i=G();i!==r;)n.push(i),i=G();p=e,e=ls(t)}else s=e,e=r;return e===r&&(e=s,t=zs(),t!==r?(u(),a.charCodeAt(s)===36?(n=We,s++):(n=r,o===0&&c(kr)),n!==r?(i=u(),v=O(),v!==r?(p=e,e=us(t,v)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)),e}function Qs(){var e,t;return e=s,t=O(),t!==r&&(p=e,t=ps(t)),e=t,e===r&&(e=G()),e}function Vs(){var e;return e=Qs(),e}function Ws(){var e,t;return e=s,u(),t=Ys(),t===r&&(t=et(),t===r&&(t=rt())),t!==r?(u(),p=e,e=gs(t)):(s=e,e=r),e}function Ys(){var e,t,n;return e=s,a.substr(s,6)===le?(t=le,s+=6):(t=r,o===0&&c(Tr)),t!==r?(u(),n=b(),n!==r?(p=e,e=vs(n)):(s=e,e=r)):(s=e,e=r),e}function et(){var e,t,n;return e=s,a.substr(s,6)===ue?(t=ue,s+=6):(t=r,o===0&&c(zr)),t!==r?(u(),n=b(),n!==r?(p=e,e=$s(n)):(s=e,e=r)):(s=e,e=r),e}function rt(){var e,t;return e=s,a.substr(s,4)===pe?(t=pe,s+=4):(t=r,o===0&&c(Lr)),t!==r&&(p=e,t=hs()),e=t,e}function st(){var e;return e=Vs(),e===r&&(e=Ws()),e}var U=function(e,t){this.type_="pattern",this.arguments_={alignment:t},this.source_=e},tt=function(e,t,n){this.type_=e,this.arguments_=t,this.source_=n},nt=function(e,t){this.type_="element",this.source_=e,this.options_=t,this.location_=_s()},X=function(e,t){this.type_="command",this.name_=e,this.options_=t};if(k=_(),k!==r&&s===a.length)return k;throw k!==r&&s(f,r)=>{const l=a.source_[r].options_,_=l==null?void 0:l.operator;if(_){switch(_.type_){case"stretch":const w=Ne(_.arguments_.amount).inverse();return Te(f).fast(w);case"bjorklund":return f.euclid(_.arguments_.pulse,_.arguments_.step,_.arguments_.rotation)}console.warn(`operator "${_.type_}" not implemented`)}if(l!=null&&l.weight)return f;const A=Object.keys(l||{}).filter(w=>w!=="operator");return A.length&&console.warn(`option${A.length>1?"s":""} ${A.map(w=>`"${w}"`).join(", ")} not implemented`),f};function $t(a){a.source_=a.source_.map(f=>{const l=f.options_||{},{replicate:r}=l,$=qe(l,["replicate"]);return r?J(H({},f),{options_:J(H({},$),{weight:r}),source_:{type_:"pattern",arguments_:{alignment:"h"},source_:[{type_:"element",source_:f.source_,location_:f.location_,options_:{operator:{type_:"stretch",arguments_:{amount:Ne(r).inverse().toString()}}}}]}}):f})}function I(a){switch(a.type_){case"pattern":$t(a);const f=a.source_.map(I).map(vt(a)),r=a.arguments_.alignment;if(r==="v")return ut(...f);const $=a.source_.some(l=>{var _;return!!((_=l.options_)!=null&&_.weight)});if(!$&&r==="t")return pt(...f);if($){const l=gt(...a.source_.map((_,A)=>{var w;return[((w=_.options_)==null?void 0:w.weight)||1,f[A]]}));if(r==="t"){const _=a.source_.reduce((A,w)=>{var E;return A+(((E=w.options_)==null?void 0:E.weight)||1)},0);return l._slow(_)}return l}return ke(...f);case"element":if(a.source_==="~")return De;if(typeof a.source_!="object"){if(!a.location_)return console.warn("no location for",a),a.source_;const{start:l,end:_}=a.location_,A=isNaN(Number(a.source_))?a.source_:Number(a.source_);return lt(A).withLocation([l.line,l.column,l.offset],[_.line,_.column,_.offset])}return I(a.source_);case"stretch":return I(a.source_).slow(a.arguments_.amount);default:return console.warn(`node type "${a.type_}" not implemented -> returning silence`),De}}const V=(...a)=>{const f=a.map(r=>{const $=Ie(`"${r}"`);return I($)});return ke(...f)},ht=a=>{const f=Ie(a);return I(f)};Q.prototype.define("mini",V,{composable:!0});Q.prototype.define("m",V,{composable:!0});Q.prototype.define("h",ht,{composable:!0});function dt(a){return typeof a=="string"?V(a):Te(a)}export{D as SyntaxError,ht as h,V as mini,dt as minify,Ie as parse,I as patternifyAST}; diff --git a/tutorial/assets/index.60173075.js b/tutorial/assets/index.327a2669.js similarity index 99% rename from tutorial/assets/index.60173075.js rename to tutorial/assets/index.327a2669.js index 26b5aa690..af4164573 100644 --- a/tutorial/assets/index.60173075.js +++ b/tutorial/assets/index.327a2669.js @@ -1 +1 @@ -var h=Object.defineProperty,q=Object.defineProperties;var g=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertySymbols;var y=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable;var m=(i,n,e)=>n in i?h(i,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[n]=e,c=(i,n)=>{for(var e in n||(n={}))y.call(n,e)&&m(i,e,n[e]);if(p)for(var e of p(n))b.call(n,e)&&m(i,e,n[e]);return i},a=(i,n)=>q(i,g(n));import{P as o,w as _}from"./index.e8a05ade.js";function S(i){if(!/^[1-9]+[0-9]*edo$/.test(i))throw new Error('not an edo scale: "'+i+'"');const[n,e]=i.match(/^([1-9]+[0-9]*)edo$/);return Array.from({length:e},(r,s)=>Math.pow(2,s/e))}const f={"12ji":[1/1,16/15,9/8,6/5,5/4,4/3,45/32,3/2,8/5,5/3,16/9,15/8]};function v(i,n){return n.map(e=>e*i)}const w=220;function k(i,n){if(typeof i=="string")if(/^[1-9]+[0-9]*edo$/.test(i))i=S(i);else if(f[i])i=f[i];else throw new Error('unknown scale name: "'+i+'"');return i=v(w,i),n?i.filter((e,r)=>n.includes(r)):i}function l(i,n,e=0){const r=_(e+n,i.length),s=Math.floor(n/i.length);return i[r]*Math.pow(2,s)}o.prototype._xen=function(i,n){return this._asNumber()._withHap(e=>{const r=k(i);n=n||r.length;const s=l(r,e.value);return e.withValue(()=>s).setContext(a(c({},e.context),{type:"frequency"}))})};o.prototype.tuning=function(i){return this._asNumber()._withHap(n=>{const e=l(i,n.value);return n.withValue(()=>e).setContext(a(c({},n.context),{type:"frequency"}))})};o.prototype.define("xen",(i,n)=>n.xen(i),{composable:!0,patternified:!0});function t(){this.scale=[],this.mode={output:"frequency",input:"step"},this.etmajor=[261.62558,293.664764,329.627563,349.228241,391.995422,440,493.883301,523.25116],this.tonic=440}t.prototype.tonicize=function(i){this.tonic=i};t.prototype.note=function(i,n){var e;return this.mode.output=="frequency"?e=this.frequency(i,n):this.mode.output=="ratio"?e=this.ratio(i,n):this.mode.output=="MIDI"?e=this.MIDI(i,n):e=this.frequency(i,n),e};t.prototype.frequency=function(i,n){(this.mode.input=="midi"||this.mode.input=="MIDI")&&(this.stepIn+=60);var e=Math.floor(i/this.scale.length);n&&(e+=n);for(var r=i%this.scale.length;r<0;)r+=this.scale.length;var s=this.tonic*this.scale[r];return s=s*Math.pow(2,e),s=Math.floor(s*1e11)/1e11,s};t.prototype.ratio=function(i,n){(this.mode.input=="midi"||this.mode.input=="MIDI")&&(this.stepIn+=60);var e=Math.floor(i/this.scale.length);n&&(e+=n);var r=i%this.scale.length,s=Math.pow(2,e)*this.scale[r];return s=Math.floor(s*1e11)/1e11,s};t.prototype.MIDI=function(i,n){var e=this.frequency(i,n),r=69+12*Math.log(e/440)/Math.log(2);return r=Math.floor(r*1e9)/1e9,r};t.prototype.loadScale=function(i){var n=u[i].frequencies;this.scale=[];for(var e=0;e[1, 1, -1]->[0, 1, -1]->[0, 0, -1]->[0, 0, 0]->[0, -1, 0],[0, -1, 1]->[0, -2, 1]->[-1, -2, 1]"},breedt1:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,326.6631048533,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,489.99465727995,523.2511306012],description:"Graham Breed's 1/4 P temperament, TL 10-06-99"},breedt2:{frequencies:[261.6255653006,276.37000081643,293.53214922797,310.91625060765,328.43856194079,349.78078158391,368.4933346061,392.4383479509,414.55500101742,439.10654054756,466.37437567834,492.65784266492,523.2511306012],description:"Graham Breed's 1/5 P temperament, TL 10-06-99"},breedt3:{frequencies:[261.6255653006,276.55731914056,293.33333347996,311.12698372208,328.88393162803,350.01785633742,368.74309237173,392.4383479509,414.83597850347,438.51190905657,466.69047534984,491.65745674141,523.2511306012],description:"Graham Breed's other 1/4 P temperament, TL 10-06-99"},brown:{frequencies:[261.6255653006,272.52663052146,275.62199471997,275.93321340298,279.38237857051,287.10624449997,290.69507255622,291.02331101095,294.32876096318,306.24666079997,306.59245933664,310.07474405997,310.42486507835,322.99452506247,327.03195662575,331.11985608357,344.52749339997,344.91651675372,348.83408706747,349.22797321314,363.36884069528,367.49599295996,367.91095120397,372.50983809402,382.80832599996,387.59343007496,388.03108134794,392.4383479509,408.78994578219,413.43299207996,413.89982010446,430.65936674996,436.04260883433,436.53496651643,441.49314144476,459.36999119996,459.88868900496,465.11211608996,465.63729761752,484.4917875937,489.99465727995,490.54793493862,496.67978412536,516.79124009995,517.37477513058,523.2511306012],description:"Tuning of Colin Brown's Voice Harmonium, Glasgow. Helmholtz/Ellis p. 470-473"},bruder:{frequencies:[261.6255653006,276.38325105256,293.66476791741,310.22971009486,327.53979283172,349.02656754477,368.60786575306,391.65594491223,414.34624765043,439.23819834286,465.62553897253,491.60634075178,523.2511306012],description:"Ignaz Bruder organ temperament (1829) according to P. Vier"},burma3:{frequencies:[261.6255653006,287.71029735626,317.68827763215,350.39147881787,389.32370520689,429.81331927092,476.14308821464,523.2511306012],description:"Burmese scale, von Hornbostel"},"burt-forks":{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Warren Burt 19-tone Forks. Interval 5(3): pp. 13+23 Winter 1986-87"},burt1:{frequencies:[261.6255653006,272.09058791262,283.42769574232,295.75063903546,309.19384990071,340.11323489078,358.01393146398,377.90359432309,415.52295665389,425.14154361347,453.48431318771,485.87604984397,523.2511306012],description:"W. Burt's 13diatsub #1"},burt10:{frequencies:[261.6255653006,265.11390617127,268.69652652494,272.3773008609,276.16031892841,355.06326719367,368.21375857121,382.37582620857,386.08821287079,389.87339142835,393.73352401674,397.67085925691,523.2511306012],description:"W. Burt's 19enhsub #10"},burt11:{frequencies:[261.6255653006,344.24416486921,347.6866065179,351.12904816659,354.57148981529,358.01393146398,371.78369805875,385.55346465352,495.71159741166,502.59648070905,509.48136400643,516.36624730382,523.2511306012],description:"W. Burt's 19enhharm #11"},burt12:{frequencies:[261.6255653006,302.93486508491,316.70463167967,330.47439827444,344.24416486921,358.01393146398,371.78369805875,385.55346465352,440.63253103259,468.17206422213,495.71159741166,509.48136400643,523.2511306012],description:"W. Burt's 19diatharm #12"},burt13:{frequencies:[261.6255653006,273.51763645063,286.54228580542,293.53112204458,300.86940009569,334.29933343966,353.96400011258,376.08675011961,401.15920012759,429.81342870813,445.73244458621,462.87600014722,523.2511306012],description:"W. Burt's 23diatsub #13"},burt14:{frequencies:[261.6255653006,264.50057151269,267.43946675172,270.4444045804,273.51763645063,334.29933343966,353.96400011258,376.08675011961,382.05638107389,388.21858076863,394.58281979763,401.15920012759,523.2511306012],description:"W. Burt's 23enhsub #14"},burt15:{frequencies:[261.6255653006,341.25073734861,346.93824963775,352.6257619269,358.31327421604,364.00078650518,386.75083566176,409.50088481833,500.50108144463,506.18859373377,511.87610602291,517.56361831206,523.2511306012],description:"W. Burt's 23enhharm #15"},burt16:{frequencies:[261.6255653006,295.75063903546,307.12566361375,318.50068819203,341.25073734861,364.00078650518,386.75083566176,409.50088481833,455.00098313148,466.37600770977,477.75103228805,500.50108144463,523.2511306012],description:"W. Burt's 23diatharm #16"},burt17:{frequencies:[261.6255653006,262.27760655527,262.77528702311,280.51080915002,281.04308772525,281.33584094163,286.12102533302,286.66394947976,306.91182648178,308.56189006502,309.14739649778,336.61297098002,337.2517052703,337.60300912996,338.42271813583,339.41807907152,363.01398831179,369.18841978454,370.27426807802,396.01525997649,398.14437427744,399.31538714296,403.93556517602,406.10726176299,434.33931739357,434.79175418253,435.61678597414,437.95881170519,475.21831197179,476.86837555503,477.77324913293,478.27092960078,479.17846457156,521.20718087229,521.75010501903,522.74014316897,523.2511306012],description:`W. Burt's "2 out of 3,5,11,17,31 dekany" CPS with 1/1=3/1. 1/1 vol. 10(1) '98`},burt18:{frequencies:[261.6255653006,268.26840191956,269.80136421624,270.50397193556,275.42222597075,281.04308772525,286.15296204753,295.09524211152,300.46061014991,306.59245933664,309.14739649778,314.76825825228,321.92208230347,324.60476632267,337.2517052703,343.38355445704,344.27778246344,354.11429053382,357.69120255941,367.91095120397,370.97687579734,375.57576268738,393.46032281536,404.70204632437,413.13333895612,421.56463158788,429.2294430713,432.80635509689,449.66894036041,463.72109474667,472.15238737843,490.54793493862,491.82540351919,500.76768358318,505.87755790546,515.07533168556,523.2511306012],description:`W. Burt's "2 out of 1,3,5,7,11 dekany" CPS with 1/1=1/1. 1/1 vol. 10(1) '98`},burt19:{frequencies:[261.6255653006,268.26840191956,286.15296204753,294.32876096318,300.46061014991,306.59245933664,321.92208230347,327.03195662575,343.38355445704,357.69120255941,367.91095120397,375.57576268738,392.4383479509,400.61414686654,408.78994578219,429.2294430713,457.84473927605,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:`W. Burt's "2 out of 2,3,4,5,7 dekany" CPS with 1/1=1/1. 1/1 vol. 10(1) '98`},burt2:{frequencies:[261.6255653006,264.16561933264,266.75547834571,269.39662169567,272.09058791262,340.11323489078,344.41846571218,348.83408706747,353.36439988652,358.01393146398,412.25846653428,485.87604984397,523.2511306012],description:"W. Burt's 13enhsub #2"},burt20:{frequencies:[261.6255653006,269.10058145205,279.06726965397,279.38237857051,294.32876096318,298.00787047521,330.74639366397,335.25885428462,367.91095120397,376.74081403286,412.06026534844,418.60090448096,523.2511306012],description:'Warren Burt tuning for "Commas" (1993) 1/1=263. XH 16'},burt3:{frequencies:[261.6255653006,281.75060878526,332.06321749692,382.37582620857,387.40708707973,392.4383479509,397.46960882207,402.50086969323,503.12608711654,508.1573479877,513.18860885887,518.21986973003,523.2511306012],description:"W. Burt's 13enhharm #3"},burt4:{frequencies:[261.6255653006,281.75060878526,301.87565226992,322.00069575458,342.12573923925,362.25078272391,382.37582620857,402.50086969323,442.75095666255,462.87600014722,483.00104363188,503.12608711654,523.2511306012],description:"W. Burt's 13diatharm #4, see his post 3/30/94 in Tuning Digest #57"},burt5:{frequencies:[261.6255653006,277.97716313189,296.50897400735,317.68818643644,342.12573923925,277.97716313189,386.75083566176,404.33041910093,423.58424858192,444.76346101102,468.17206422213,494.18162334558,523.2511306012],description:"W. Burt's 17diatsub #5"},burt6:{frequencies:[261.6255653006,265.53042448419,269.55361273395,273.7005913914,277.97716313189,370.63621750918,386.75083566176,404.33041910093,408.97789518255,413.73345210327,418.60090448096,423.58424858192,523.2511306012],description:"W. Burt's 17enhsub #6"},burt7:{frequencies:[261.6255653006,323.18452184192,327.03195662575,330.87939140958,334.72682619341,338.57426097725,353.96400011258,369.35373924791,492.47165233054,500.16652189821,507.86139146587,515.55626103354,523.2511306012],description:"W. Burt's 17enhharm #7"},burt8:{frequencies:[261.6255653006,277.01530443593,292.40504357126,307.79478270659,323.18452184192,338.57426097725,353.96400011258,369.35373924791,400.13321751856,430.91269578922,461.69217405988,492.47165233054,523.2511306012],description:"W. Burt's 17diatharm #8"},burt9:{frequencies:[261.6255653006,268.69652652494,276.16031892841,292.40504357126,310.68035879446,355.06326719367,368.21375857121,382.37582620857,397.67085925691,414.24047839262,432.2509339749,451.89870370104,523.2511306012],description:"W. Burt's 19diatsub #9"},burt_fibo:{frequencies:[261.6255653006,277.97716313189,294.32876096318,311.70233365892,327.03195662575,343.38355445704,363.82305174615,385.28452389971,392.4383479509,425.14154361347,449.66894036041,476.24028683625,523.2511306012],description:'Warren Burt, 3/2+5/3+8/5+etc. "Recurrent Sequences", 2002'},burt_fibo23:{frequencies:[261.6255653006,267.05480676802,277.97716313189,282.81557538079,294.32876096318,299.5065008038,311.70233365892,327.03195662575,330.09788121912,343.38355445704,349.5792770728,363.82305174615,370.21039464899,385.28452389971,392.4383479509,408.02346463385,425.14154361347,432.10374737758,449.66894036041,457.60521391719,476.24028683625,484.61169812829,504.34459560877,523.2511306012],description:'Warren Burt, 23-tone Fibonacci scale. "Recurrent Sequences", 2002'},burt_primes:{frequencies:[261.6255653006,267.75741448733,273.88926367407,277.97716313189,280.0211128608,284.10901231862,290.24086150535,298.416660421,302.50455987882,304.54850960773,308.63640906555,310.68035879446,320.90010743902,322.94405716793,327.03195662575,333.16380581248,335.20775554139,339.29565499922,341.33960472813,351.55935337268,353.60330310159,359.73515228832,363.82305174615,365.86700147506,369.95490093288,376.08675011961,384.26254903526,390.39439822199,392.4383479509,394.48229767981,396.52624740872,402.65809659545,406.74599605328,412.87784524001,421.05364415565,425.14154361347,431.27339280021,433.31734252912,437.40524198694,445.58104090258,455.80078954714,457.84473927605,461.93263873387,463.97658846278,468.0644879206,474.19633710734,476.24028683625,482.37213602298,488.50398520971,492.59188466754,498.72373385427,506.89953276991,513.03138195665,519.16323114338,523.2511306012],description:'Warren Burt, primes until 251. "Some Numbers", Dec. 2002'},bushmen:{frequencies:[261.6255653006,347.0163224393,394.26624244126,453.9405988926,523.2511306012],description:"Observed scale of South-African bushmen, almost (4 notes) equal pentatonic"},dan_semantic:{frequencies:[261.6255653006,272.52663052146,275.62199471997,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,322.99452506247,327.03195662575,331.11985608357,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,397.34382730029,408.78994578219,413.43299207996,418.60090448096,430.65936674996,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.67978412536,516.79124009995,523.2511306012],description:'The Semantic Scale, from Alain Dani\xEF\xBF\xBDlou: "S\xEF\xBF\xBDmantique Musicale" (1967)'},danielou5_53:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.62199471997,279.06726965397,282.55561052465,285.76488412567,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,479.0507177135,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"Dani\xEF\xBF\xBDlou's Harmonic Division in 5-limit, symmetrized"},danielou_53:{frequencies:[261.6255653006,264.89588486686,267.43946675172,272.52663052146,275.62199471997,279.06726965397,282.55561052465,287.78812183066,290.69507255622,294.32876096318,297.67175429757,301.87565226992,306.59245933664,310.07474405997,313.95067836072,318.93402246168,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,479.64686971777,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"Dani\xEF\xBF\xBDlou's Harmonic Division of the Octave, see p. 153"},darreg:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"This set of 19 ratios in 5-limit JI is for his megalyra family"},darreg_ennea:{frequencies:[261.6255653006,269.29177952703,277.18263097687,293.66476791741,349.22823143301,391.99543598175,403.48177901006,415.30469757995,440,523.2511306012],description:"Ivor Darreg's Mixed Enneatonic, a mixture of chromatic and enharmonic"},darreg_genus:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,348.83408706747,392.4383479509,406.97310157871,418.60090448096,436.04260883433,523.2511306012],description:"Ivor Darreg's Mixed JI Genus (Archytas Enh, Ptolemy Soft Chrom, Didymos Chrom"},darreg_genus2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,348.83408706747,392.4383479509,406.97310157871,418.60090448096,441.49314144476,523.2511306012],description:"Darreg's Mixed JI Genus 2 (Archytas Enharmonic and Chromatic Genera)"},david11:{frequencies:[261.6255653006,269.80136421624,274.70684356563,285.40970760065,294.32876096318,305.22982618403,314.76825825228,327.03195662575,332.97799220076,343.38355445704,359.73515228832,366.27579142084,374.60024122586,392.4383479509,406.97310157871,419.69101100305,428.11456140098,441.49314144476,457.84473927605,479.64686971777,490.54793493862,499.46698830115,523.2511306012],description:"11-limit system from Gary David, 1967"},david7:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,336.37572681506,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,488.36772189445,523.2511306012],description:"Gary David's Constant Structure, 1967. A mode of Fokker's 7-limit scale"},ddimlim1:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"First 27/25&2048/1875 scale"},de_caus:{frequencies:[261.6255653006,272.52663052146,290.69507255622,306.59245933664,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"De Caus (a mode of Ellis's duodene) (1615)"},degung1:{frequencies:[261.6255653006,286.1303811777,319.28416942365,390.63652710512,420.90734643474,523.2511306012],description:"Gamelan Degung, Kabupaten Sukabumi. 1/1=363 Hz"},degung2:{frequencies:[261.6255653006,276.67939184371,325.99375993805,390.36201910543,415.27879033283,523.2511306012],description:"Gamelan Degung, Kabupaten Bandung. 1/1=252 Hz"},degung3:{frequencies:[261.6255653006,282.83850205216,320.55017368416,393.28023705203,426.95140008307,523.2511306012],description:"Gamelan Degung, Kabupaten Sumedang. 1/1=388.5 Hz"},degung4:{frequencies:[261.6255653006,284.6485709981,319.18312009646,379.88037698982,415.46137490477,523.2511306012],description:"Gamelan Degung, Kasepuhan Cheribon. 1/1=250 Hz"},degung5:{frequencies:[261.6255653006,284.24274449773,317.86283634652,388.77066331187,430.33748813761,523.2511306012],description:"Gamelan Degung, Kanoman Cheribon. 1/1=428 Hz"},degung6:{frequencies:[261.6255653006,273.29426590363,298.47415715355,379.54129348313,409.02013274169,523.2511306012],description:"Gamelan Degung, Kacherbonan Cheribon. 1/1=426 Hz"},dekany:{frequencies:[261.6255653006,299.7792935736,305.22982618403,327.03195662575,359.73515228832,381.53728273004,419.69101100305,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"2)5 Dekany 1.3.5.7.11 (1.3 tonic)"},dekany2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,348.83408706747,358.80077526939,398.6675280771,418.60090448096,448.50096908674,465.11211608996,523.2511306012],description:"3)5 Dekany 1.3.5.7.9 (1.3.5.7.9 tonic)"},dekany3:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,343.38355445704,381.53728273004,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"2)5 Dekany 1.3.5.7.9 and 3)5 Dekany 1 1/3 1/5 1/7 1/9"},dekany4:{frequencies:[261.6255653006,270.96933548991,288.48890459486,310.68035879446,321.77608589426,355.06326719367,425.14154361347,440.3251701711,474.19633710734,485.87604984397,523.2511306012],description:"2)5 Dekany 1.7.13.19.29 (1.7 tonic)"},dekany_union:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,366.27579142084,381.53728273004,392.4383479509,412.06026534844,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Union of 2)5 and 3)5 [ 1 3 5 7 9] dekanies"},dent:{frequencies:[261.6255653006,276.73939277812,293.41671964988,311.13637945111,328.33487278761,349.18153137729,368.9858570375,391.91718148616,414.84850593482,438.82216331296,465.92281947955,491.98114271667,523.2511306012],description:"Tom Dent, well temperament with A=421 Hz. Integer Hz beat rates from A"},dent2:{frequencies:[261.6255653006,276.57667301797,293.18838124587,310.79781949647,328.55897053596,349.10502918563,369.05532299592,391.67735584266,414.54302837239,438.92977277749,465.83490899549,492.45596147139,523.2511306012],description:"Tom Dent, well-temperament, 2/32 and 5/32 comma. TL 3 & 5-9-2005"},dent3:{frequencies:[261.6255653006,276.38325105256,293.15632631094,310.94732162256,328.48713220126,349.22823143301,368.7143392539,391.76907592069,414.58565256441,438.73106346722,466.16376151809,492.17459484008,523.2511306012],description:'Tom Dent, Bach harpsichord "sine wave" temperament, TL 10-10-2005'},deporcy:{frequencies:[261.6255653006,272.52663052146,286.15296204753,299.00064605783,313.95067836072,327.03195662575,348.83408706747,358.80077526939,381.53728273004,392.4383479509,418.60090448096,436.04260883433,457.84473927605,478.40103369253,502.32108537715,523.2511306012],description:"A 15-note chord-based detempering of 7-limit porcupine"},diab19_612:{frequencies:[261.6255653006,267.01398215014,280.33982809972,299.03492334906,305.19382000629,313.95883772326,320.42510414137,327.02455105776,348.83292260574,366.24210002542,373.7851897098,392.43965797471,418.61038382265,427.23204601759,436.03127668087,448.5538823653,457.79225819026,488.32116993744,512.69177642068,523.2511306012],description:"diab19a in 612-tET"},diab19_72:{frequencies:[261.6255653006,266.71173418545,279.86396690685,299.37379946195,305.19382000629,314.13668154225,320.24370022528,326.46944327063,349.22823143301,366.44956000397,373.57357677338,391.99543598175,419.32216217931,427.47405410759,435.78442404634,448.5538823653,457.27406033445,489.15147723638,513.27277840175,523.2511306012],description:"diab19a in 72-tET"},diablack:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,331.11985608357,372.08969287196,392.4383479509,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"Unique 256/245&2048/2025 Fokker block"},diachrome1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"First 25/24&2048/2025 scale"},diacycle13:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,307.79478270659,317.12189733406,327.03195662575,337.58137458142,348.83408706747,360.86284869048,373.75080757229,387.59343007496,402.50086969323,413.09299784305,424.25767346043,436.04260883433,448.50096908674,461.69217405988,475.68284600109,490.54793493862,506.37206187213,523.2511306012],description:"Diacycle on 20/13, 13/10; there are also nodes at 3/2, 4/3; 13/9, 18/13"},diaddim1:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,334.88072358477,344.91651675372,357.20610515709,367.91095120397,392.4383479509,418.60090448096,446.50763144636,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"First 2048/2025&2048/1875 scale"},dialim1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,348.83408706747,353.19451315581,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"First 27/25&2048/2025 scale"},diamisty:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,413.89982010446,436.53496651643,470.39487098876,496.11959049595,523.2511306012],description:"Diamisty scale 2048/2025 and 67108864/66430125"},diamond11a:{frequencies:[261.6255653006,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,523.2511306012],description:"11-limit Diamond with added 16/15 & 15/8, Zoomoozophone tuning: 1/1 = 392 Hz"},diamond11ak:{frequencies:[261.6255653006,279.72330032405,285.63317938628,287.78812183066,290.69507255622,293.86839138568,299.07491977616,305.39295512204,314.19649759716,319.76457981184,326.52043447049,333.41680553884,335.93301933283,349.10721912206,359.17247822875,366.75848641051,373.2589099097,381.14243472333,392.13131479202,407.50942884268,410.58480125643,419.25667855894,428.11456140098,435.70146034294,448.26139746089,457.73103588952,465.84075338014,470.92601754108,475.68284600109,479.27160679251,489.39746055879,523.2511306012],description:"microtempered version of diamond11a, Dave Keenan TL 11-1-2000, 225/224&385/384"},diamond11at:{frequencies:[261.6255653006,279.83704120119,285.33574350137,287.98268367985,290.84948650387,293.82121114493,299.2738827313,305.22380787491,314.19079532693,320.23980272009,326.48518221507,332.71524733285,336.02719554531,349.1122100506,359.53680125564,366.52331521885,373.4984028396,380.75621844446,392.12570885984,407.39521875769,411.45055399509,419.30194782174,427.47925671618,435.70936791853,448.50981249085,457.42672761267,465.91555560021,470.67599975252,475.36147343465,479.7712027167,489.19854301666,523.2511306012],description:"microtempered version of diamond11a, OdC"},diamond11map:{frequencies:[195.99771799087,228.66400432268,261.33029065449,293.99657698631,326.66286331812,359.32914964993,391.99543598174,457.32800864536,522.66058130899,587.99315397261,653.32572663623,718.65829929986,213.81569235368,249.45164107929,285.0875898049,320.72353853051,356.35948725613,391.99543598174,427.63138470735,498.90328215858,570.1751796098,641.44707706103,712.71897451225,783.99087196348,235.19726158904,274.39680518722,313.59634878539,352.79589238357,391.99543598174,431.19497957991,470.39452317809,548.79361037444,627.19269757078,705.59178476713,783.99087196348,862.38995915983,261.33029065449,304.88533909691,348.44038753932,391.99543598174,435.55048442416,479.10553286657,522.66058130899,609.77067819382,696.88077507865,783.99087196348,871.10096884831,958.21106573314,293.99657698631,342.99600648402,391.99543598174,440.99486547946,489.99429497718,538.99372447489,587.99315397261,685.99201296804,783.99087196348,881.98973095892,979.98858995435,1077.98744894978,335.99608798435,391.99543598174,447.99478397913,503.99413197652,559.99347997391,615.99282797131,671.9921759687,783.99087196348,895.98956795826,1007.98826395305,1119.98695994783,1231.98565594261,783.99087196348],description:"11-limit diamond on a 'centreless' map"},diamond15:{frequencies:[261.6255653006,269.80136421624,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.87565226992,305.22982618403,309.19384990071,310.07474405997,313.95067836072,318.85615771011,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,343.38355445704,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,367.91095120397,372.08969287196,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,398.6675280771,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,429.33426100611,436.04260883433,441.49314144476,442.75095666255,448.50096908674,453.48431318771,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,507.3950357345,523.2511306012],description:"15-limit Diamond + 2nd ratios. See Novaro, 1927, Sistema Natural..."},diamond17:{frequencies:[261.6255653006,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,322.00069575458,327.03195662575,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,366.27579142084,369.35373924791,370.63621750918,373.75080757229,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,418.60090448096,425.14154361347,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,523.2511306012],description:"17-limit Diamond"},diamond17a:{frequencies:[261.6255653006,277.01530443593,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,494.18162334558,523.2511306012],description:"17-limit, +9 Diamond"},diamond19:{frequencies:[261.6255653006,275.39533189537,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,292.40504357126,299.00064605783,302.93486508491,305.22982618403,307.79478270659,309.19384990071,310.68035879446,313.95067836072,317.68818643644,322.00069575458,327.03195662575,330.47439827444,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,355.06326719367,358.01393146398,359.73515228832,366.27579142084,369.35373924791,370.63621750918,373.75080757229,380.54627680087,382.37582620857,385.55346465352,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,414.24047839262,418.60090448096,425.14154361347,430.91269578922,436.04260883433,440.63253103259,442.75095666255,444.76346101102,448.50096908674,451.89870370104,457.84473927605,468.17206422213,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,497.08857407114,523.2511306012],description:"19-limit Diamond"},diamond7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,523.2511306012],description:"7-limit Diamond, also double-tie circular mirroring of 4:5:6:7"},diamond9:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"9-limit Diamond"},diamond_chess:{frequencies:[261.6255653006,299.00064605783,313.95067836072,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,436.04260883433,457.84473927605,523.2511306012],description:"9-limit chessboard pattern diamond. OdC"},diamond_chess11:{frequencies:[261.6255653006,287.78812183066,299.00064605783,313.95067836072,319.76457981184,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,428.11456140098,436.04260883433,457.84473927605,475.68284600109,523.2511306012],description:"11-limit chessboard pattern diamond. OdC"},diamond_dup:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Two 7-limit diamonds 3/2 apart"},diamond_mod:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"13-tone Octave Modular Diamond, based on Archytas's Enharmonic"},diamond_tetr:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,339.14425131559,348.83408706747,358.80077526939,523.2511306012],description:"Tetrachord Modular Diamond based on Archytas's Enharmonic"},diaphonic_10:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,336.37572681506,362.25078272391,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"10-tone Diaphonic Cycle"},diaphonic_12:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,323.18452184192,343.38355445704,366.27579142084,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"12-tone Diaphonic Cycle, conjunctive form on 3/2 and 4/3"},diaphonic_12a:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,323.18452184192,343.38355445704,366.27579142084,385.55346465352,406.97310157871,430.91269578922,457.84473927605,488.36772189445,523.2511306012],description:"2nd 12-tone Diaphonic Cycle, conjunctive form on 10/7 and 7/5"},diaphonic_5:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:"D5-tone Diaphonic Cycle"},diaphonic_7:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"7-tone Diaphonic Cycle, disjunctive form on 4/3 and 3/2"},diaschismic:{frequencies:[261.6255653006,266.61097723855,278.05603152599,283.35453458855,295.51835494038,301.14961170579,314.07733767684,320.06224556188,333.80185153667,340.16262034629,354.76509561975,369.99442271164,377.04485988831,393.23061088369,400.72382577504,417.92606548687,425.88986517773,444.17243057662,452.63636847719,472.06710558841,481.06259110609,501.71360968203,523.2511306012],description:"diaschismic temperament, g=105.446531, p=600, 5-limit"},diat13:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,392.4383479509,418.60090448096,483.00104363188,523.2511306012],description:"This genus is from K.S's diatonic Hypodorian harmonia"},diat15:{frequencies:[261.6255653006,301.87565226992,327.03195662575,356.76213450082,373.75080757229,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Tonos-15 Diatonic and its own trite synemmenon Bb"},diat15_inv:{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,366.27579142084,383.71749577421,418.60090448096,453.48431318771,523.2511306012],description:"Inverted Tonos-15 Harmonia, a harmonic series from 15 from 30."},diat17:{frequencies:[261.6255653006,296.50897400735,342.12573923925,370.63621750918,386.75083566176,404.33041910093,444.76346101102,494.18162334558,523.2511306012],description:"Tonos-17 Diatonic and its own trite synemmenon Bb"},diat19:{frequencies:[261.6255653006,276.16031892841,310.68035879446,355.06326719367,368.21375857121,382.37582620857,414.24047839262,451.89870370104,523.2511306012],description:"Tonos-19 Diatonic and its own trite synemmenon Bb"},diat21:{frequencies:[261.6255653006,289.16509849014,305.22982618403,343.38355445704,366.27579142084,392.4383479509,422.62591317789,457.84473927605,523.2511306012],description:"Tonos-21 Diatonic and its own trite synemmenon Bb"},diat21_inv:{frequencies:[261.6255653006,299.00064605783,323.91736656265,348.83408706747,373.75080757229,398.6675280771,448.50096908674,473.41768959156,523.2511306012],description:"Inverted Tonos-21 Harmonia, a harmonic series from 21 from 42."},diat23:{frequencies:[261.6255653006,286.54228580542,300.86940009569,334.29933343966,353.96400011258,376.08675011961,429.81342870813,462.87600014722,523.2511306012],description:"Tonos-23 Diatonic and its own trite synemmenon Bb"},diat25:{frequencies:[261.6255653006,297.30177875068,327.03195662575,363.36884069528,384.74347838324,408.78994578219,467.18850946536,503.12608711654,523.2511306012],description:"Tonos-25 Diatonic and its own trite synemmenon Bb"},diat27:{frequencies:[261.6255653006,294.32876096318,336.37572681506,353.19451315581,371.78369805875,392.4383479509,441.49314144476,504.56359022259,523.2511306012],description:"Tonos-27 Diatonic and its own trite synemmenon Bb"},diat27_inv:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,377.90359432309,387.59343007496,406.97310157871,465.11211608996,523.2511306012],description:"Inverted Tonos-27 Harmonia, a harmonic series from 27 from 54"},diat29:{frequencies:[261.6255653006,291.81313052759,316.13089140489,344.87006335079,361.29244731988,379.35706968587,421.50785520652,474.19633710734,523.2511306012],description:"Tonos-29 Diatonic and its own trite synemmenon Bb"},diat31:{frequencies:[261.6255653006,289.65687586852,311.93817401225,337.93302184661,352.6257619269,368.65420565085,405.51962621593,450.57736246214,523.2511306012],description:"Tonos-31 Diatonic. The disjunctive and conjunctive diatonic forms are the same"},diat33:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,375.37581108347,392.4383479509,431.68218274599,479.64686971777,523.2511306012],description:"Tonos-33 Diatonic. The conjunctive form is 23 (Bb instead of B) 20 18 33/2"},diat_chrom:{frequencies:[261.6255653006,280.31310567921,301.87565226992,348.83408706747,392.4383479509,420.46965851882,452.81347840488,523.2511306012],description:"Diatonic- Chromatic, on the border between the chromatic and diatonic genera"},diat_dies2:{frequencies:[261.6255653006,266.71168334607,311.12698372208,349.22823143301,391.99543598175,399.61600264311,466.16376151809,523.2511306012],description:"Dorian Diatonic, 2 part Diesis"},diat_dies5:{frequencies:[261.6255653006,274.52693220706,311.12698372208,349.22823143301,391.99543598175,411.32564531909,466.16376151809,523.2511306012],description:"Dorian Diatonic, 5 part Diesis"},diat_enh:{frequencies:[261.6255653006,269.29177952703,311.12698372208,349.22823143301,391.99543598175,403.48177901006,466.16376151809,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode"},diat_enh2:{frequencies:[261.6255653006,269.29177952703,302.26980244078,349.22823143301,391.99543598175,403.48177901006,452.89298412314,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode 3 + 12 + 15 parts"},diat_enh3:{frequencies:[261.6255653006,302.26980244078,311.12698372208,349.22823143301,391.99543598175,452.89298412314,466.16376151809,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode, 15 + 3 + 12 parts"},diat_enh4:{frequencies:[261.6255653006,302.26980244078,339.28638158975,349.22823143301,391.99543598175,452.89298412314,508.3551866238,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode, 15 + 12 + 3 parts"},diat_enh5:{frequencies:[261.6255653006,293.66476791741,339.28638158975,349.22823143301,391.99543598175,440,508.3551866238,523.2511306012],description:"Dorian Mode, 12 + 15 + 3 parts"},diat_enh6:{frequencies:[261.6255653006,293.66476791741,302.26980244078,349.22823143301,391.99543598175,440,452.89298412314,523.2511306012],description:"Dorian Mode, 12 + 3 + 15 parts"},diat_eq:{frequencies:[261.6255653006,288.06466200271,317.1754314895,349.22823143301,391.99543598175,431.60932167676,475.22619361214,523.2511306012],description:"Equal Diatonic, Islamic form, similar to 11/10 x 11/10 x 400/363"},diat_eq2:{frequencies:[261.6255653006,287.78812183066,317.12189733406,348.83408706747,392.4383479509,431.68218274599,475.68284600109,523.2511306012],description:"Equal Diatonic, 11/10 x 400/363 x 11/10"},diat_gold:{frequencies:[261.6255653006,292.38332274669,326.75708630452,349.99258496952,391.13935185123,437.1232727958,488.51296691354,523.2511306012],description:"Diatonic scale with ratio between whole and half tone the Golden Section"},diat_hemchrom:{frequencies:[261.6255653006,273.20871865617,311.12698372208,349.22823143301,391.99543598175,409.35055662695,466.16376151809,523.2511306012],description:"Diat. + Hem. Chrom. Diesis, Another genus of Aristoxenos, Dorian Mode"},diat_smal:{frequencies:[261.6255653006,299.00064605783,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:'"Smallest number" diatonic scale'},diat_sofchrom:{frequencies:[261.6255653006,271.8968348557,311.12698372208,349.22823143301,391.99543598175,407.38495184466,466.16376151809,523.2511306012],description:"Diat. + Soft Chrom. Diesis, Another genus of Aristoxenos, Dorian Mode"},diat_soft:{frequencies:[261.6255653006,274.52693220706,302.26980244078,349.22823143301,391.99543598175,411.32564531909,452.89298412314,523.2511306012],description:"Soft Diatonic genus 5 + 10 + 15 parts"},diat_soft2:{frequencies:[261.6255653006,281.2143451833,302.26980244078,349.22823143301,391.99543598175,421.34544350737,452.89298412314,523.2511306012],description:"Soft Diatonic genus with equally divided Pyknon; Dorian Mode"},diat_soft3:{frequencies:[261.6255653006,281.2143451833,324.90175210669,349.22823143301,391.99543598175,421.34544350737,486.80259447109,523.2511306012],description:"New Soft Diatonic genus with equally divided Pyknon; Dorian Mode; 1:1 pyknon"},diat_soft4:{frequencies:[261.6255653006,302.26980244078,324.90175210669,349.22823143301,391.99543598175,452.89298412314,486.80259447109,523.2511306012],description:"New Soft Diatonic genus with equally divided Pyknon; Dorian Mode; 1:1 pyknon"},dicot:{frequencies:[261.6255653006,270.35822989652,294.32876096318,320.42456924675,331.11985608357,360.47764004221,392.4383479509,405.53734464206,441.49314144476,480.63685362987,523.2511306012],description:"Dicot temperament, g=350.9775, 5-limit"},didy_chrom:{frequencies:[261.6255653006,279.06726965397,290.69507255622,348.83408706747,392.4383479509,418.60090448096,436.04260883433,523.2511306012],description:"Didymus Chromatic"},didy_chrom1:{frequencies:[261.6255653006,279.06726965397,334.88072358477,348.83408706747,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Permuted Didymus Chromatic"},didy_chrom2:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,470.92601754108,490.54793493862,523.2511306012],description:"Didymos's Chromatic, 6/5 x 25/24 x 16/15"},didy_chrom3:{frequencies:[261.6255653006,272.52663052146,290.69507255622,348.83408706747,392.4383479509,408.78994578219,436.04260883433,523.2511306012],description:"Didymos's Chromatic, 25/24 x 16/15 x 6/5"},didy_diat:{frequencies:[261.6255653006,279.06726965397,310.07474405997,348.83408706747,392.4383479509,418.60090448096,465.11211608996,523.2511306012],description:"Didymus Diatonic"},didy_diatinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Inverse Didymus Diatonic, variant of Ptolemy with 2 identical triads"},didy_enh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,392.4383479509,405.0976494977,418.60090448096,523.2511306012],description:"Dorian mode of Didymos's Enharmonic"},didy_enh2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,348.83408706747,392.4383479509,413.43299207996,418.60090448096,523.2511306012],description:"Permuted Didymus Enharmonic"},"diesic-m":{frequencies:[261.6255653006,289.62525622617,320.62153003931,354.93508703008,392.92094947462,434.97213484265,481.52372211906,523.2511306012],description:"Minimal Diesic temperament, g=176.021, 5-limit"},"diesic-t":{frequencies:[261.6255653006,272.92239980638,281.87304203955,294.04415210774,303.68749398125,316.80053726141,327.19018747082,337.92057205022,352.51178108166,364.07260143821,379.79303732838,392.24856169057,409.18561859271,422.60509148244,436.46466102477,455.31094249407,470.24311865111,490.54793493862,506.63572944675,523.2511306012],description:"Tiny Diesic temperament, g=443.017, 5-limit"},diff31_72:{frequencies:[261.6255653006,269.29177952703,274.52698453615,279.86396690685,285.30470202322,293.66476791741,299.37379946195,305.19382000629,314.13668154225,320.24370022528,326.46944327063,336.03572815422,342.56848033562,352.60650301302,356.01745236555,366.44956000397,373.57357677338,384.52011812375,388.23978476841,399.61607881612,407.38487419079,419.32216217931,427.47405410759,435.78442404634,448.5538823653,457.27406033445,466.16376151809,479.82340237272,489.15147723638,498.66089874196,508.3551866238,523.2511306012],description:"Diff31, 11/9, 4/3, 7/5, 3/2, 7/4, 9/5 difference diamond, tempered to 72-et"},dimteta:{frequencies:[261.6255653006,282.55561052465,307.12566361375,336.37572681506,406.97310157871,439.53094970501,477.75103228805,523.2511306012],description:"A heptatonic form on the 9/7"},dimtetb:{frequencies:[261.6255653006,294.32876096318,336.37572681506,406.97310157871,457.84473927605,523.2511306012],description:"A pentatonic form on the 9/7"},div_fifth1:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #1, From Schlesinger, see Chapter 8, p. 160"},div_fifth2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #2, From Schlesinger, see Chapter 8, p. 160"},div_fifth3:{frequencies:[261.6255653006,271.31540105247,305.22982618403,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #3, From Schlesinger, see Chapter 8, p. 160"},div_fifth4:{frequencies:[261.6255653006,274.70684356563,305.22982618403,343.38355445704,392.4383479509,523.2511306012],description:"Divided Fifth #4, From Schlesinger, see Chapter 8, p. 160"},div_fifth5:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,411.12588832951,523.2511306012],description:"Divided Fifth #5, From Schlesinger, see Chapter 8, p. 160"},dkring1:{frequencies:[261.6255653006,274.70684356563,305.22982618403,313.95067836072,320.49131749323,327.03195662575,366.27579142084,392.4383479509,439.53094970501,448.50096908674,457.84473927605,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 4:5:6:7"},dkring2:{frequencies:[261.6255653006,274.70684356563,305.22982618403,329.64821227876,336.37572681506,353.19451315581,366.27579142084,392.4383479509,406.97310157871,427.32175665765,436.04260883433,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 3:5:7:9"},dkring3:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,348.83408706747,384.42940207435,392.4383479509,398.6675280771,448.50096908674,465.11211608996,504.56359022259,523.2511306012],description:"Double-tie circular mirroring of 6:7:8:9"},dkring4:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,327.03195662575,336.37572681506,367.91095120397,373.75080757229,378.42269266694,420.46965851882,467.18850946536,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 7:8:9:10"},dodeceny:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Degenerate eikosany 3)6 from 1.3.5.9.15.45 tonic 1.3.15"},dorian_chrom:{frequencies:[261.6255653006,279.06726965397,299.00064605783,310.07474405997,315.92521092903,322.00069575458,348.83408706747,380.54627680087,398.6675280771,408.39112632289,418.60090448096,465.11211608996,523.2511306012,558.13453930795,598.00129211566,620.14948811994,631.85042185805,644.00139150917,697.66817413493,761.09255360175,797.33505615421,816.78225264578,837.20180896192,930.22423217991,1046.5022612024],description:"Dorian Chromatic Tonos"},dorian_chrom2:{frequencies:[261.6255653006,274.08392555301,287.78812183066,359.73515228832,411.12588832951,426.35277308246,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the chromatic genus"},dorian_chrominv:{frequencies:[261.6255653006,273.00058987889,285.40970760065,332.97799220076,380.54627680087,404.33041910093,428.11456140098,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Dorian inverted"},dorian_diat:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012,558.13453930795,598.00129211566,644.00139150917,669.76144716954,697.66817413493,728.00157301037,761.09255360175,837.20180896192,881.26506206518,930.22423217991,984.94330466108,1046.5022612024],description:"Dorian Diatonic Tonos"},dorian_diat2:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,411.12588832951,442.75095666255,479.64686971777,523.2511306012],description:"Schlesinger's Dorian Harmonia, a subharmonic series through 13 from 22"},dorian_diat2inv:{frequencies:[261.6255653006,285.40970760065,309.19384990071,332.97799220076,356.76213450082,380.54627680087,428.11456140098,475.68284600109,523.2511306012],description:"Inverted Schlesinger's Dorian Harmonia, a harmonic series from 11 from 22"},dorian_diatcon:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,411.12588832951,479.64686971777,523.2511306012],description:"A Dorian Diatonic with its own trite synemmenon replacing paramese"},dorian_diatred11:{frequencies:[261.6255653006,287.78812183066,316.56693401373,348.83408706747,392.4383479509,431.68218274599,474.85040102059,523.2511306012],description:"Dorian mode of a diatonic genus with reduplicated 11/10"},dorian_enh:{frequencies:[261.6255653006,279.06726965397,299.00064605783,304.4370214407,307.2300216374,310.07474405997,348.83408706747,380.54627680087,389.39619021485,393.97732186443,398.6675280771,465.11211608996,523.2511306012,558.13453930795,598.00129211566,608.8740428814,614.4600432748,620.14948811994,697.66817413493,761.09255360175,778.79238042969,787.95464372887,797.33505615421,930.22423217991,1046.5022612024],description:"Dorian Enharmonic Tonos"},dorian_enh2:{frequencies:[261.6255653006,267.70988077271,274.08392555301,359.73515228832,411.12588832951,426.35277308246,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the enharmonic genus"},dorian_enhinv:{frequencies:[261.6255653006,267.19206668997,273.00058987889,332.97799220076,380.54627680087,392.4383479509,404.33041910093,523.2511306012],description:"A harmonic form of Schlesinger's Dorian enharmonic inverted"},dorian_pent:{frequencies:[261.6255653006,271.49822814213,287.78812183066,359.73515228832,411.12588832951,423.21782622156,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the pentachromatic genus"},dorian_pis:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the Dorian Tonos, a non-rep. 16 tone gamut"},dorian_schl:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,442.75095666255,460.46099492906,479.64686971777,523.2511306012],description:"Schlesinger's Dorian Piano Tuning (Sub 22)"},dorian_tri1:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,411.12588832951,421.15334902048,431.68218274599,523.2511306012],description:"Schlesinger's Dorian Harmonia in the first trichromatic genus"},dorian_tri2:{frequencies:[261.6255653006,269.80136421624,287.78812183066,359.73515228832,411.12588832951,421.15334902048,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the second trichromatic genus"},douwes:{frequencies:[261.6255653006,273.00058987889,292.50063201309,313.39353429974,327.01933943691,350.37786403433,365.61168556196,391.72680409,408.75840577964,436.81779569448,468.01906681552,488.36772189445,523.2511306012],description:"Claas Douwes recommendation of 24/23 and 15/14 steps for clavichord (1699)"},dow_high:{frequencies:[261.6255653006,277.01530443593,278.50463402967,294.32876096318,308.34441624714,313.31771328338,327.34193952303,331.11985608357,346.88746827803,348.83408706747,369.35373924791,392.4383479509,417.75695104451,441.49314144476,462.5166243707],description:"Highest octave of Dowlands lute tuning, strings 5,6. 1/1=G (1610)"},dow_lmh:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,371.33951203956,392.4383479509,411.12588832951,417.75695104451,436.45591936403,441.49314144476,462.5166243707,465.11211608996,492.47165233054,495.11934938608,523.2511306012,548.16785110602,557.00926805934,581.94122581871,588.65752192635,616.68883249427,620.14948811994,626.63542656676,656.62886977405,662.23971216714,693.77493655606,697.66817413493,736.51936392681,742.67902407912,784.8766959018,822.25177665903,831.04591330779,835.51390208901,882.98628288953,925.03324874141,939.95313985014,982.02581856908,993.35956825072,1040.66240483408,1046.5022612024,1108.06121774372,1114.01853611868,1177.3150438527,1233.37766498854,1253.27085313352,1309.3677580921,1324.47942433429,1387.54987311211,1395.33634826987,1477.41495699162,1569.7533918036,1671.02780417803,1765.97256577905,1850.06649748281],description:"All three octaves of Dowland's lute tuning"},dow_low:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,371.33951203956,392.4383479509,411.12588832951,417.75695104451,436.45591936403,441.49314144476,462.5166243707,465.11211608996,492.47165233054,495.11934938608,523.2511306012],description:"Lowest octave of Dowlands lute tuning, strings 1,2,3. 1/1=G. (1610)"},dow_middle:{frequencies:[261.6255653006,274.08392555301,278.50463402967,290.97061290936,294.32876096318,308.34441624714,310.07474405997,313.31771328338,328.31443488703,331.11985608357,346.88746827803,348.83408706747,368.2596819634,371.33951203956,392.4383479509,411.12588832951,415.52295665389,417.75695104451,441.49314144476,462.5166243707,469.97656992507,491.01290928454,496.67978412536,520.33120241704,523.2511306012],description:"Middle octave of Dowlands lute tuning, strings 3,4,5. 1/1=G (1610)"},dowland_12:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,392.4383479509,417.75695104451,441.49314144476,462.5166243707,492.47165233054,523.2511306012],description:"subset of Dowland's lute tuning, lowest octave"},druri:{frequencies:[261.6255653006,285.79952600623,326.97270111135,357.18467683857,523.2511306012],description:"Scale of druri dana of Siwoli, south Nias, Jaap Kunst"},dudon_a:{frequencies:[261.6255653006,285.85015468029,319.76457981184,348.83408706747,392.4383479509,428.77523202043,479.64686971777,523.2511306012],description:"Dudon Tetrachord A"},dudon_b:{frequencies:[261.6255653006,283.42769574232,321.58142401532,348.83408706747,392.4383479509,425.14154361347,482.37213602298,523.2511306012],description:"Dudon Tetrachord B"},dudon_c12:{frequencies:[261.6255653006,302.50455987882,327.03195662575,343.38355445704,392.4383479509,425.14154361347,474.19633710734,523.2511306012],description:"Differentially coherent scale in interval class 1 and 2"},dudon_diat:{frequencies:[261.6255653006,294.32876096318,321.08592105074,350.8160989258,392.4383479509,428.11456140098,481.6288815761,523.2511306012],description:"Dudon Neutral Diatonic"},dudon_moha_baya:{frequencies:[261.6255653006,285.30470202322,320.24370022528,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Mohajira + Bayati (Dudon) 3 + 4 + 3 Mohajira and 3 + 3 + 4 Bayati tetrachords"},dudon_mohajira:{frequencies:[261.6255653006,285.30470202322,320.24370022528,349.22823143301,391.99543598175,427.47405410759,479.82340237272,523.2511306012],description:"Dudon's Mohajira, two 3 + 4 + 3 tetrachords, neutral diatonic"},dudon_mohajira_r:{frequencies:[261.6255653006,283.42769574232,321.58142401532,348.83408706747,392.4383479509,425.14154361347,479.64686971777,523.2511306012],description:"Jacques Dudon, JI Mohajira, Lumi\xEF\xBF\xBDres audibles"},dudon_thai:{frequencies:[261.6255653006,288.26147859917,317.63518509943,350.43752981487,386.47021463976,426.17461277719,469.97930400405,523.2511306012],description:"Dudon, coherent Thai heptatonic scale, 1/1 vol. 11/2, 2003"},dudon_thai2:{frequencies:[261.6255653006,288.02814528506,314.43072526953,347.1339209321,383.13743909274,422.44127975143,475.35895071461,523.2511306012],description:"Slightly better version, 3.685 cents deviation"},dudon_thai3:{frequencies:[261.6255653006,291.60349465796,321.58142401532,354.2846196779,394.48229767981,434.67997568173,478.96555314146,523.2511306012],description:"Dudon, Thai scale with two 704/703 = 2.46 c. deviations and simpler numbers"},duncan:{frequencies:[261.6255653006,277.97716313189,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Dudley Duncan's Superparticular Scale"},duoden12:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,413.89982010446,440.99519155196,465.63729761752,496.11959049595,523.2511306012],description:"Almost equal 12-tone subset of Duodenarium"},duodenarium:{frequencies:[14.56761754744,14.73307690724,14.74971276678,14.91724036858,14.98726085128,15.00418372272,15.10370587319,15.17460161192,15.19173601925,15.34695511171,15.36428413207,15.5387920506,15.55633768372,15.71528203439,15.73302695124,15.80687667908,15.91172305982,15.92968978813,16.00446263757,16.18624171938,16.20451842054,16.38856974087,16.57471152064,16.59342686263,16.78189541465,16.86066845769,16.87970668806,16.99166910733,17.07142681341,17.26532450067,17.28481964857,17.48114105693,17.67969228869,17.69965532014,17.78273626396,17.90068844229,17.98471302153,18.00502046726,18.2095219343,18.41634613405,18.43714095848,18.64655046072,18.73407606409,18.85833844126,18.87963234148,18.9682520149,18.98967002407,19.18369388963,19.20535516508,19.42349006325,19.44542210465,19.64410254298,19.66628368904,19.88965382477,19.91211223516,20.00557829696,20.13827449758,20.23280214922,20.25564802567,20.48571217609,20.7183894008,20.74178357829,20.97736926831,21.07583557211,21.21563074642,21.23958638417,21.33928351676,21.58165562584,21.60602456072,21.85142632116,22.09961536086,22.12456915017,22.37586055287,22.48089127691,22.50627558408,22.65555880978,22.76190241787,23.02043266756,23.0464261981,23.3081880759,23.57292305158,23.59954042685,23.71031501862,23.86758458973,23.97961736204,24.00669395635,24.27936257907,24.30677763081,24.55512817873,24.5828546113,24.86206728096,24.89014029395,25.14445125502,25.17284312198,25.29100268653,25.31956003209,25.487503661,25.60714022011,25.897986751,25.92722947286,26.22171158539,26.51953843303,26.54948298021,26.67410439595,26.85103266344,26.9770695323,27.0075307009,27.31428290145,27.62451920107,27.65571143772,27.96982569108,28.10111409614,28.2875076619,28.31944851222,28.45237802234,28.77554083445,28.80803274762,29.13523509488],description:"Ellis's Duodenarium : genus [3^12 5^8]"},duodene:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ellis's Duodene : genus [33355]"},"duodene14-18-21":{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,378.42269266694,392.4383479509,406.97310157871,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:"14-18-21 Duodene"},"duodene3-11_9":{frequencies:[261.6255653006,285.40970760065,294.32876096318,319.76457981184,321.08592105074,348.83408706747,359.73515228832,392.4383479509,426.35277308246,428.11456140098,479.64686971777,481.6288815761,523.2511306012],description:"3-11/9 Duodene"},"duodene3-7":{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,515.07533168556,523.2511306012],description:"3-7 Duodene"},"duodene6-7-9":{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,406.97310157871,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:"6-7-9 Duodene"},duodene_min:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,353.19451315581,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Minor Duodene"},"duodene_r-45":{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,353.19451315581,376.74081403286,401.85686830172,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated -45 degrees"},duodene_r45:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,313.95067836072,334.88072358477,383.2405741708,408.78994578219,436.04260883433,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated 45 degrees"},duodene_r90:{frequencies:[261.6255653006,272.52663052146,279.06726965397,306.59245933664,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated 90 degrees: genus [33555]"},duodene_skew:{frequencies:[261.6255653006,282.55561052465,290.69507255622,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,502.32108537715,523.2511306012],description:"Rotated 6/5x3/2 duodene"},duodene_t:{frequencies:[261.6255653006,279.3825857701,293.66476791741,313.59634948548,327.03195662575,349.22823143301,367.08095907728,391.99543598175,418.60090448096,436.53528831673,469.86362971679,489.99429388332,523.2511306012],description:"Duodene with equal tempered fifths"},duowell:{frequencies:[261.6255653006,278.41172412276,294.03623226919,312.90189200955,327.96500300935,349.00756672938,368.59392213143,392.24328034087,417.4100028405,437.50413894442,469.11953885575,491.70297432358,523.2511306012],description:"Ellis duodene well-tuned to fifth=(7168/11)^(1/16) third=(11/7)^(1/2)"},dwarf6_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,373.75080757229,392.4383479509,448.50096908674,523.2511306012],description:"Dwarf(<6 10 14 17|)"},cairo:{frequencies:[261.6255653006,269.38381929633,276.03456984659,285.15047989166,293.63138642043,300.85736580106,309.799366845,312.20234522745,320.03127253896,327.93377450564,337.66851484331,348.83408706747,357.41197445437,367.9166999024,380.21445327801,392.4383479509,401.02017979859,414.62054722758,417.26565438692,427.77234352616,440.44707963064,451.93568025669,468.86302025197,480.04690880844,491.77737838459,510.98743222773,523.2511306012],description:"P.42, of d'Erlanger, vol.5. Congress of Arabic Music, Cairo, 1932"},canright:{frequencies:[261.6255653006,286.48426603331,306.03443598155,335.11270457212,357.98136125932,391.99543598175,418.74586628806,458.53356119912,489.82466832727,523.2511306012],description:`David Canright's piano tuning for "Fibonacci Suite" (2001)`},carlos_alpha:{frequencies:[261.6255653006,273.68256372566,286.29520819723,299.48910562989,313.29104303136,327.729041887,342.83241505062,358.63182625716,375.1593523779,392.44854854484,410.5345162762,429.45397474154,449.24533531117,469.94877954106,491.60634075178,514.26198936695,537.96172218451,562.75365576207,588.68812410589],description:"Wendy Carlos' Alpha scale with perfect fifth divided in nine"},carlos_alpha2:{frequencies:[261.6255653006,267.58616452957,273.68256372566,279.91785681123,286.29520819723,292.81785438923,299.48910562989,306.31234757893,313.29104303136,320.42873367481,327.729041887,335.19567257401,342.83241505062,350.6431449633,358.63182625716,366.8025131876,375.1593523779,383.7065849236,392.44854854484,401.3896797878,410.5345162762,419.88769901416,429.45397474154,439.23819834286,449.24533531117,459.48046426806,469.94877954106,480.6555937997,491.60634075178,502.8065779009,514.26198936695,525.97838877075,537.96172218451,550.21807114943,562.75365576207,575.57483783111,588.68812410589],description:"Wendy Carlos' Alpha prime scale with perfect fifth divided by eightteen"},carlos_beta:{frequencies:[261.6255653006,271.44693432634,281.63699549204,292.20958942356,303.17907632096,314.56035546319,326.36888544505,338.62070517372,351.33245565363,364.52140258903,378.2054598351,392.40321372938,407.13394833666,422.41767164147,438.27514272393,454.72789995564,471.7982902542,489.50949943583,507.88558370741,526.95150234083,546.73315157381,567.25739978343,588.55212398003],description:"Wendy Carlos' Beta scale with perfect fifth divided by eleven"},carlos_beta2:{frequencies:[261.6255653006,266.49100855797,271.44693432634,276.49502530642,281.63699549204,286.87459075215,292.20958942356,297.64380291476,303.17907632096,308.81728905054,314.56035546319,320.41022551991,326.36888544505,332.43835840072,338.62070517372,344.91802487526,351.33245565363,357.86617542024,364.52140258903,371.30039682974,378.2054598351,385.23893610237,392.40321372938,399.70072522531,407.13394833666,414.70540688852,422.41767164147,430.27336116448,438.27514272393,446.42573318931,454.72789995564,463.18446188312,471.7982902542,480.57230974851,489.50949943583,498.61289378764,507.88558370741,517.33071758003,526.95150234083,536.75120456442,546.73315157381,556.90073257014,567.25739978343,577.80666964473,588.55212398003],description:"Wendy Carlos' Beta prime scale with perfect fifth divided by twentytwo"},carlos_gamma:{frequencies:[261.6255653006,266.98388983977,272.45195763676,278.03201633122,283.72635959645,289.53732808222,295.4673103769,301.51874398927,307.69411635045,313.99596583639,320.42688281121,326.98951069203,333.68654703547,340.52074464653,347.49491271011,354.6119179457,361.87468578579,369.2862015783,376.84951181374,384.56772537748,392.44401482761,400.48161769905,408.68383783428,417.05404674148,425.59568498025,434.31226357598,443.20736546293,452.28464695708,461.547839259,471.00074998758,480.64726474513,490.49134871455,500.53704828923,510.78849273629,521.24989589392,531.92555790347],description:"Wendy Carlos' Gamma scale with third divided by eleven or fifth by twenty"},carlos_harm:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Carlos Harmonic & Ben Johnston's scale of 'Blues' from Suite f.micr.piano (1977) & David Beardsley's scale of 'Science Friction'"},carlos_super:{frequencies:[261.6255653006,277.97716313189,294.32876096318,313.95067836072,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Carlos Super Just"},carlson:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Brian Carlson's guitar scale (or 7 is 21/16 instead) fretted by Mark Rankin"},cassandra1:{frequencies:[261.6255653006,265.52313139125,271.43629763673,275.48001908354,279.58398024378,283.7490817683,290.06813927787,294.38942683035,298.7750924519,305.42877739024,309.97889991383,314.59680966486,319.28351286859,326.39391783308,331.25637026535,336.19125912653,343.67819754196,348.79814248043,353.99435973883,359.26798967332,367.26884406885,372.74022844163,378.29312490007,386.71766674112,392.47878977853,398.32574139651,407.19640716832,413.26261206104,419.41919061043,425.66748431192,435.14704737009,441.62964923022,448.20882304357,458.19037897128,465.01626879626,471.9438445688,478.97462660712,489.64133323501,496.93576068834,504.33885972365,515.57042175735,523.2511306012],description:"Cassandra temperament (Erv Wilson), 13-limit, g=497.866"},cassandra2:{frequencies:[261.6255653006,265.34593985135,270.18130909623,275.10479273152,279.0168449367,284.10133754875,289.27848429833,293.3920895946,298.7385406747,304.18241953205,309.72550158209,314.12986807617,319.85422136322,325.68288889698,330.31417303802,336.33345109576,342.46241778116,348.70307193775,353.66170827405,360.10644584283,366.66862514012,371.88273569526,378.65951299923,385.5597827545,392.58579535013,398.16845391153,405.42423290482,412.81223314336,418.68251621245,426.31212065787,434.08075852776,440.25348482514,448.27617460765,456.44506096456,464.76280801961,471.37183998139,479.96159605313,488.70788228454,495.65741860341,504.6897280454,513.8866322474,523.2511306012],description:"Cassandra temperament, schismic variant, 13-limit, g=497.395"},catler:{frequencies:[261.6255653006,269.80136421624,279.06726965397,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,322.00069575458,327.03195662575,343.38355445704,348.83408706747,359.73515228832,367.91095120397,380.54627680087,392.4383479509,418.60090448096,425.14154361347,436.04260883433,441.49314144476,457.84473927605,465.11211608996,483.00104363188,490.54793493862,523.2511306012],description:'Catler 24-tone JI from "Over and Under the 13 Limit", 1/1 3(3)'},cbrat19:{frequencies:[261.6255653006,272.05448646742,281.65887246066,291.7164960911,303.76422848609,314.23522436032,325.78124145721,339.14379232251,350.05979530932,364.18597952318,377.95660802413,389.93691761381,406.2330981776,420.87727247778,436.65546295526,454.14747622901,467.92430113657,486.684954898,506.27371414348,523.2511306012],description:"brats = -1 -1 -1 -1 -1 -1 -1 -1 0 3/7 390808/591947 1/2 1/2 1/2 1/2 1/4 0 0 -1"},ceb88f:{frequencies:[261.6255653006,275.30280934529,289.60851057007,304.80308899558,320.69584574771,337.31885569235,354.97473368038,373.44187862432,393.05647479461,413.57234190108,435.03089105397,457.82276134277,481.66189358475,506.59641128799],description:"88 cents steps with equal beating fifths"},ceb88s:{frequencies:[261.6255653006,275.27750547448,289.60710371138,304.74878776577,320.64207659236,337.32428016541,354.95189689869,373.45451504132,392.8755714351,413.39725679488,434.93759942207,457.54716438978,481.43806014345,506.51485544552,533.01280425363],description:"88 cents steps with equal beating sevenths"},ceb88t:{frequencies:[261.6255653006,275.20384442973,289.60910777612,304.54100616185,320.3823320487,337.18847246966,354.60902163481,373.09056856306,392.69773188536,413.02170471677,434.58350960486,457.45853552679,481.16983689269,506.32527343025,533.01280425363],description:"88 cents steps with equal beating 7/6 thirds"},cet105:{frequencies:[261.6255653006,277.98437592617,295.36606150822,313.83458334354,333.45789502888,354.30820661869,376.46223533368,400.00150378562,425.01262301844,451.58762919357,479.82430313337,509.82655042708,541.70476218406,575.57624366132],description:"Equal temperament with very good 6/5 and 13/8"},cet105a:{frequencies:[261.6255653006,278.09098920184,295.59266404146,314.19580976213,333.96974580612,354.98815389674,377.32935907335,401.07660961589,426.31839262878,453.14877154631,481.66772230429,511.98151233648,544.20310589723,578.45256778249,614.85751848055,653.5536209391,694.68506540856,738.40511604959,784.8766959018],description:"18th root of 3"},cet111:{frequencies:[261.6255653006,279.02234237845,297.57591715819,317.3632108372,338.46625752841,360.97255206362,384.97540137331,410.57431878206,437.87543474729,466.99193686517,498.04453913461,531.16197935691,566.48156495049,604.14972437838,644.32262592407,687.16682227215,732.8599410185,781.59142109591,833.56329335333,888.99103711409,948.10444554232,1011.14859670036,1078.38486510237,1150.09200534594,1226.56730779978,1308.127826503],description:'25th root of 5, Karlheinz Stockhausen in "Studie II" (1954)'},cet111a:{frequencies:[261.6255653006,279.09119608948,297.72279782842,317.59821198502,338.80046946076,361.41815173468,385.54574794778,411.2840547398,438.74060487161,468.03009995854,499.27490936609,532.60556349815,568.16130614457,606.09068659426,646.55215742719,689.71476370538,735.75882016749,784.8766959018],description:"17th root of 3. McLaren 'Microtonal Music', volume 1, track 8"},cet112:{frequencies:[261.6255653006,279.13807488234,297.82282461384,317.75828292395,339.02816520012,361.72179601836,385.93447726538,411.76789245756,439.33052439618,468.73812456399,500.11419015728,533.59048802364,569.30759588159,607.4155105893,648.07426630787,691.45461344743,737.73872000797,787.12095980595,839.80871352279,896.02324851892,956.00062766807,1019.99273078287,1088.26829265547,1161.11404316696,1238.83588500259,1321.76021726874,1410.23528064063,1504.63263477595,1605.34868446028,1712.8063948195,1827.45703443292,1949.78208984359,2080.29524321777,2219.54459500735,2368.11492276755,2526.63016208001,2695.75596930795,2876.20260183901,3068.72784518,3274.14022786751,3493.30234242079,3727.13457771193,3976.61891204907,4242.80307922676,4526.8048719912,4829.81697864182,5153.11189830808,5498.04733953642,5866.07179694692,6258.73081875602,6677.6733762505,7124.65885956048,7601.56430418436,8110.3925243186],description:"53rd root of 31. McLaren 'Microtonal Music', volume 4, track 16"},cet114:{frequencies:[261.6255653006,279.47933554513,298.55147893584,318.92513586406,340.68912750315,363.93832870511,388.77409689134,415.30469757995,443.64579124771,473.92093172942,506.26209616971,540.81027939262,577.71608583803,617.1404103833,659.25511382574,704.24379572788,752.30258557703,803.64098403142,858.48280642307,917.06712239825,979.64933665453,1046.5022612024],description:"21st root of 4"},cet115:{frequencies:[261.6255653006,279.68949451567,299.00064605783,319.64513593742,341.71502406609,365.30872604057,390.53145607553,417.49568846357,446.32166408632,477.13792869952,510.08190181294],description:"2nd root of 8/7. Werner Linden, Musiktheorie, 2003 no.1 midi 15.Eb=19.44544 Hz"},cet117:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,342.56848033562,366.44956000397,391.99543598175,419.32216217931,448.5538823653,479.82340237272,513.27277840175,549.0539690723,587.32953583482,628.27336308449,672.07145630843,718.92279942609,769.0402362475,822.65144744826,880,941.34642612261,1006.96941915374,1077.1671181081,1152.25842837255,1232.58448551457,1318.51022765149,1410.42601205207,1508.74940691646,1613.92711604023,1726.4369576214,1846.79005749489,1975.53320502451,2113.25127526858,2260.56991361642,2418.15841952625,2586.73271138559,2767.05861265008,2959.95538169309],description:"72nd root of 128, step = generator of Miracle"},cet118:{frequencies:[261.6255653006,280.22072913446,300.13755324878,321.46997343155,344.3186075731,368.79121945838,395.0032340925,423.07827792492,453.14877154631,485.35654007358,519.85349135637,556.8023269521,596.37732215892,638.76512932755,684.16567043124,732.79307276157,784.8766959018],description:"16th root of 3. McLaren 'Microtonal Music', volume 1, track 7"},cet126:{frequencies:[261.6255653006,281.50639381697,302.89795903081,325.91506125677,350.68122444233,377.32935907335,406.00247545366,436.85445118639,470.05085697597,505.76984518255,544.20310589723,585.55689566922,630.05314440547,677.93064638327,729.44634176744,784.8766959018],description:"15th root of 3. McLaren 'Microtonal Music', volume 1, track 6"},cet126a:{frequencies:[261.6255653006,281.42815779395,302.72962012827,325.64340264099,350.29154279212,376.80531512858,405.32593044476,436.00528786292,469.00678383895,504.50618240233,542.69254813034,583.76926541313,627.95510352048,675.48539363125,726.61327927927,781.61106458091,840.77166451082,904.41016494992,972.86550081423,1046.5022612024],description:"19th root of 4"},cet133:{frequencies:[261.6255653006,282.54488373859,305.13688994853,329.53533037111,355.88464567857,384.34082587483,415.07233376839,448.26110228542,484.10361152681,522.81205194575,564.61558053174,609.76167743791,658.5176110828,711.17202040031],description:"13th root of e"},cet140:{frequencies:[261.6255653006,283.72172983292,307.68407293041,333.67021037701,361.85106232365,392.4119924075,425.55401329039,461.49511402661,500.47170241421,542.7401414615,588.57845795114,638.28815062634,692.19618110881,750.65713728047,814.05554253056,882.80839491877,957.36792629418,1038.22454144983,1125.91008648826,1221.00130775733,1324.12366033919,1435.95544645068,1557.23222387914,1688.75170820144,1831.3789571042],description:"24th root of 7"},cet141:{frequencies:[261.6255653006,283.85429714132,307.97166902637,334.13814720468,362.52783176564,393.32961502355,426.7484383229,463.0066556268,502.34551296122,545.02675670673,591.33436279611,641.57644431325,696.08728968715,755.22958979995,819.39685117042,889.01601417107,964.55029369918,1046.5022612024],description:"17th root of 4"},cet146:{frequencies:[261.6255653006,284.69629445872,309.80145226022,337.12043918596,366.84847565362,399.19799705513,434.40017432099,472.70655602525,514.39088038704,559.75102196641,609.11112257023,662.82390755693,721.27320639821,784.8766959018],description:"13th root of 3, Bohlen-Pierce approximation"},cet148:{frequencies:[261.6255653006,284.92791524313,310.30575035912,337.94392545772,368.04376529149,400.82452432448,436.52498800167,475.40520223986,517.74838217475,563.86296895784,614.08486606944,668.77990486322,728.34649714081,793.21854485147,863.86858278563,940.81124699851,1024.60701225804,1115.86625569541,1215.25373699679,1323.49342609599,1441.37375222579,1569.7533918036],description:"21th root of 6, Moreno's C-21"},cet152:{frequencies:[261.6255653006,285.70808394691,312.0073878821,340.72733440875,372.0911362405,406.34196228781,443.74556186468,484.59214639302,529.19833545193,577.91081034511,631.10724720728,689.20039277289,752.64098693245,821.92125998587],description:"13th root of pi"},cet158:{frequencies:[261.6255653006,286.70831230381,314.19580976213,344.3186075731,377.32935907335,413.50494015483,453.14877154631,496.5933637384,544.20310589723,596.37732215892,653.5536209391,716.21156534988,784.8766959018],description:`12th root of 3, Moreno's A-12, see dissertation "Embedding Equal Pitch Spaces.`},cet159:{frequencies:[261.6255653006,286.82842069679,314.45911373416,344.75151869218,377.96204482418,414.37180231943,454.28897403052,498.05144066897,546.02962057131],description:"4e-th root of e. e-th root of e is highest x-th root of x"},cet160:{frequencies:[261.6255653006,286.95745534843,314.74210513576,345.21700307457,378.64263238751,415.30469757995,455.51656649021,499.62194879119,547.99783383788,601.05771297194,659.25511382574,723.0874768355,793.10040709753,869.89233791055,954.11964586525,1046.5022612024],description:'15th root of 4, Rudolf Escher in "The Long Christmas Dinner" (1960)'},cet160a:{frequencies:[261.6255653006,287.06963246392,314.98822873932,345.62201499981,379.23505183234,416.11708252541,456.58602635137,500.99072933585,549.71395617638,603.17569602575,661.83679400878,726.20290371434,796.8288589228,874.32344802967,959.35468153537,1052.65552131526,1155.03021091382,1267.36122959081,1390.6168610076,1525.85955590014,1674.2551187631,1837.08270650821,2015.74588766663,2211.78472029595,2426.88907720145,2662.91313932742,2921.89140956529,3206.0563044734,3517.85730085803,3859.98211320646,4235.37982185266,4647.28638964387,5099.2524155536,5595.17379976366,6139.32543031277,6736.39784717273,7391.53779523322,8110.3925243186],description:"37th root of 31. McLaren 'Microtonal Music', volume 2, track 7"},cet163:{frequencies:[261.6255653006,287.45276480522,315.82957660097,347.00769742017,381.26366336311,418.90131810157,460.25449359467,505.68997636603,555.61077020009,610.45965236807],description:'9th root of 7/3. Jeff Scott in "Quiet Moonlight" (2001)'},cet163a:{frequencies:[261.6255653006,287.41152361975,315.7389582221,346.85836204295,381.04491126651,418.60090448096,459.85843616195,505.18233428314,554.97338050766],description:"5th root of 8/5"},cet166:{frequencies:[261.6255653006,287.95619440582,316.93680165166,348.83408706747],description:"3rd root of 4/3"},cet173:{frequencies:[261.6255653006,289.10449173793,319.46957112932,353.02394045842,390.10257564198,431.07563562091,476.35215768611,526.38414093011,581.67105858963,642.7648443263,710.27540222401,784.8766959018],description:"11th root of 3, Moreno's A-11"},cet175:{frequencies:[261.6255653006,289.48414624674,320.30918244523,354.41654988346,392.15575985798,433.91353804458,480.11779720922,531.2420078798,587.8100594825,650.40162657281,719.65810898332,796.28920449429,881.08018137935,974.89992535123,1078.70983713651,1193.57370864212,1320.66858845324,1461.29686662697,1616.89961515233,1789.07135516847,1979.57639663535,2190.36691789568,2423.60297039629,2681.67459807517,2967.22638952895,3283.18448966052,3632.78664249769,4019.61535560076,4447.6346101102],description:"28th root of 7. McLaren 'Microtonal Music', volume 6, track 3"},cet175a:{frequencies:[261.6255653006,289.53628281337,320.42456924675,354.60807736883,392.4383479509,434.30442400296,480.63685362987,531.91211578736],description:"4th root of 3/2"},cet178:{frequencies:[261.6255653006,289.91935960089,321.27301846367,356.01745236555,394.51936464224,437.18511000944,484.46499093218,536.85800524663,594.91712478053,659.25511382574,730.5510078664,809.55727745129,897.10776473059,994.12650420781,1101.63744560301,1220.77528002516,1352.79740322961,1499.09721690784,1661.21879031979,1840.87318566558,2039.95650991293,2260.56991361642,2505.04181781964,2775.9524141353,3076.16094499002,3408.83584914421,3777.48827884202,4186.0090448096],description:"27th root of 16"},cet181:{frequencies:[261.6255653006,290.48091212946,322.51878830959,358.09020513941,397.58488163802,441.43552612833,490.12256936272,544.17943316245,604.19836236377,670.83693141722,744.82523718317,826.97390553231,918.18295398723,1019.45167961503,1131.88958971281,1256.72856920928,1395.33634826987],description:"6.625 tET. The 16/3 is the so-called Kidjel Ratio promoted by Maurice Kidjel in 1958"},cet182:{frequencies:[261.6255653006,290.70585738945,323.0184918031,358.92275093366,398.81785224951,443.14738973192,492.40425618917,547.1361382945,607.95159681319,675.52683545966,750.61321956915,834.04563048717,926.75174856904,1029.76237395443,1144.22286477952,1271.40590625444,1412.7256395721,1569.7533918036],description:"17th root of 6, Moreno's C-17"},cet195:{frequencies:[261.6255653006,292.81795587218,327.72927094457,366.80289667873,410.53509014096,459.48126579586,514.26306468681,575.57624366132],description:"7th root of 11/5"},cet21k:{frequencies:[261.6255653006,264.89588486686,268.20708342769,271.55967197054,274.95416787017,278.3910952928,281.87098404962,285.39437141672,288.96180112674,292.57382370898,296.23099657435,299.9338841014,303.68305772341,307.47909424051,311.32258299104,315.21411535185,319.1542918681,323.14372059172,327.18301717534,331.2728049672,335.41371510742,339.60638662537,343.85146653829,348.14960995112,352.50148015762,356.90774874273,361.36909568619,365.8862094675,370.45978717215,375.09053459917,379.77916637013,384.52640603933,389.33298620552,394.19964862491,399.1271443257,404.11623372391,409.16768674077,414.28228292154,419.46080913287,424.70406934596,430.01287031296,435.38803129329,440.83038178715,446.34076166346,451.92002128953,457.56902166224,463.28863454093,469.07974258197,474.94323947488,480.88003008033,486.89103056976,492.97716856672,499.13938329007,505.37862569893,511.69585863936,518.09205699304,524.56820782765],description:"scale of syntonic comma's, almost 56-tET"},cet222:{frequencies:[261.6255653006,297.3462123974,337.94392545772,384.08458333231,436.52498800167,496.12526073276,563.86296895784,640.8491384935,728.34649714081,827.79017883768,940.81124699851,1069.2634803114,1215.25373699679,1381.1765584523,1569.7533918036],description:"14th root of 6, Moreno's C-14"},cet233:{frequencies:[261.6255653006,299.41460910537,342.66187834083,392.15575985798,448.79850611373,513.6227001391,587.8100594825,672.71300106294,769.87926947615,881.08018137935,1008.34288220748,1153.98733901804,1320.66858845324,1511.42518780658,1729.7345489351,1979.57639663535,2265.50524176842,2592.73349533282,2967.22638952895,3395.81083571538,3886.29974647262,4447.6346101102],description:"21st root of 17. McLaren 'Microtonal Music', volume 2, track 15"},cet24:{frequencies:[261.6255653006,265.3411057651,269.1094134006,272.9312375932,276.80733837157,280.73848655813,284.72546392233,288.7690633361,292.87008893155,297.02935626086,301.24769245848,305.52593640563,309.86493889709,314.26556281043,318.72868327757,323.25518785885,327.84597671953,332.50196280875,337.22407204116,342.01324348101,346.8704295289,351.79659611118,356.79272287204,361.85980336835,366.9988452672,372.21087054633,377.49691569736,382.85803193188,388.29528539052,393.80975735501,399.40254446313,405.07475892685,410.82752875349,416.66199797006,422.57932685074,428.58069214763,434.66728732478,440.84032279551,447.10102616311,453.45064246502,459.89043442035,466.42168268106,473.04568608657,479.76376192214,486.57724618073,493.48749382879,500.49587907561,507.6037956467,514.81265706088,522.12389691142,529.53896915113],description:"least squares fit primes 2-13"},cet258:{frequencies:[261.6255653006,303.75687573192,352.67287219582,409.46613795376,475.40520223986,551.96287401486,640.8491384935,744.04935121924,863.86858278563,1002.98310468409,1164.50016626124,1352.0273979586,1569.7533918036],description:"12th root of 6, Moreno's C-12"},cet29:{frequencies:[51.91308719749,52.80006242627,53.70219231256,54.6197354699,55.55295587693,56.50212107609,57.46750349647,58.44938022184,59.44803272677,60.46374832519,61.49681820986,62.54753889218,63.61621194966,64.70314373878,65.80864697157,66.93303858176,68.07664129187,69.2397833384,70.42279815925,71.62602610967,72.84981213985,74.09450750046,75.36046944358,76.64806088248,77.95765225928,79.28961901721,80.64434345693,82.02221441105,83.42362735565,84.84898403373,86.29869452271,87.77317443616,89.27284697886,90.79814258634,92.34949851506,93.9273610926,95.53218267212,97.16442386902,98.82455316866,100.51304648023,102.230389586,103.97707482641,105.75360353451,107.56048560902,109.39823902877,111.26739251837,113.16848194039,115.10205294491,117.06866050489,119.06886838764,121.10325205621,123.17239474253,125.2768903313,127.4173428542,129.59436591466,131.80858584574,134.06063743615,136.35116706905,138.68083217153,141.05030058861,143.46025402018,145.91138336926,148.40439215824,150.93999592972,153.51892156515,156.14191102559,158.8097162888,161.52310306741,164.28285015685,167.08974869373,169.94460622727,172.84824120887,175.80148703892,178.80519135714,181.8602162858,184.96743760879,188.12774927869,191.34205731671,194.61128429254,197.93636853869,201.31826325695,204.75794142387,208.2563891515,211.8146105632,215.43362693858,219.11447574094,222.85821595641,226.66592086774,230.53868336123,234.47761499594,238.48384494529,242.55852580808,246.70282574354,250.91793424736,255.20506113867,259.56543598745],description:"95th root of 5"},cet39:{frequencies:[261.6255653006,267.55763511324,273.62420803617,279.82833216202,286.17312954462,292.66178817784,299.29756995616,306.08381073387,313.02392200207,320.12139075456,327.37978859613,334.80276256646,342.39404424694,350.15744982839,358.09687996112,366.21632994368,374.51987945827,383.01170275779,391.6960687417,400.57734310204,409.65998815178,418.94857448076,428.44776921301,438.16234766073,448.09719341103,458.25729813392,468.64777462103,479.27384364987,490.14084702027,501.25424765147,512.61963232837,524.24271148185,536.12933410494,548.28547272565,560.71723832061,573.43088042607,586.43278689221,599.72950056876,613.32770249519,627.23422858353,641.45606974252,656.00037539202,670.87445318194,686.08578808043,701.64202314362,717.55097860059,733.82065199545,750.45921787297,767.47504913108,784.8766959018],description:"49th root of 3"},cet39a:{frequencies:[261.6255653006,267.54999903763,273.60843178624,279.80421399945,286.14029787289,292.61969147246,299.24597805224,306.02231493662,312.9519192023,320.03862308027,327.28580327671,334.69690040195,342.27601296361,350.02675229311,357.95279806627,366.05853356918,374.34782106107,382.82459589435,391.49354592099,400.35880176332,409.42457221564,418.6958708581,428.17711532294,437.87280684605,447.78830736843,457.9283414747,468.29772316218,478.90218693807,489.74678566745,500.83666784082,512.17796641877,523.77608535691],description:"31-tET with least squares octave; equal weight to 5/4, 3/2, 7/4 and 2/1"},cet39b:{frequencies:[261.6255653006,267.54443554965,273.59736903996,279.78708267123,286.11699418435,292.58994480246,299.2095086599,305.97865699219,312.90112748358,319.98002733127,327.21907624411,334.6220906301,342.19239338178,349.93416455252,357.85087908811,365.94690831825,374.22588619981,382.6921630398,391.3502022376,400.20389001205,409.25811505631,418.51694141988,427.98548149913,437.66798531163,447.56979919346,457.69536764001,468.05001127562,478.63918904181,489.46765396188,500.54138513107,511.86535306771,523.4458104663],description:"31-tET with l.s. 8/7, 5/4, 4/3, 3/2, 8/5, 7/4, 2/1; equal weights"},cet39c:{frequencies:[261.6255653006,267.52919373065,273.56603860918,279.73910598956,286.05147140959,292.50627485027,299.10673210371,305.85612987468,312.75782903301,319.8152662872,327.03195662575,334.41149334841,341.95754947331,349.67388372612,357.56433846376,365.63284274659,373.88341429498,382.32016148985,390.94728541851,399.7690842757,408.78994578219,418.01436575232,427.44693588739,437.09235368188,446.9554220819,457.04105241293,467.35426952494,477.9002035559,488.68410850494,499.71135422907,510.98743222773,522.51795602393],description:"10th root of 5/4"},cet39d:{frequencies:[261.6255653006,267.55786538889,273.62467903016,279.82905628857,286.1741163878,292.66304927922,299.29911724561,306.08565654127,313.02607906932,320.12387409698,327.38261000985,334.80593610581,342.39758442978,350.16137164992,358.1012009765,366.22106412416,374.52504331879,383.0173133498,391.70214366901,400.58390053708,409.66704921865,418.95615622721,428.45589162089,438.17103135034,448.1064596598,458.26717154264,468.65827525256,479.28499487175,490.15267293726,501.26677312698,512.63288300643,524.25671683791],description:"31-tET with l.s. 5/4, 3/2, 7/4"},cet39e:{frequencies:[261.6255653006,267.56053134626,273.63013029147,279.83741943955,286.18551905392,292.67762672082,299.3170076044,306.10700082387,313.05102655064,320.15257723818,327.41522444303,334.84262641603,342.43851674365,350.20672153383,358.15114775562,366.27579142084],description:"15th root of 7/5, X.J. Scott"},cet44:{frequencies:[261.6255653006,268.36512159638,275.27829096782,282.369545742,289.64347345451,297.10477981732,304.75829176301,312.60896056742,320.66186505284,328.92221487359,337.3953538863,346.08676360706,355.00206675748,364.14703090225,373.52757218034,383.14975913231,393.01981662619,403.14412988459,413.52924861543,424.18189124916,435.1089492851,446.31749174973,457.81476976988,469.60822126365,481.70547575226,494.11435929576,506.84289955596,519.89933098975,533.2921001762],description:"least maximum error of 10.0911 cents to a set of 11-limit consonances"},cet45:{frequencies:[261.6255653006,268.55812265554,275.67437899809,282.97903853108,290.47742047479,298.17449463282,306.07552595385,314.18591889722,322.51122112969,331.05693609414,339.82928674186,348.83408706747],description:"11th root of 4/3"},cet45a:{frequencies:[261.6255653006,268.48547646737,275.52525683447,282.74962263341,290.1634137569,297.77159700127,305.57926939395,313.59166160814,321.8141414671,330.2522175402,338.9115428334,347.79791857637,356.91729810903,366.27579142084],description:"13th root of 7/5, X.J. Scott"},cet49:{frequencies:[261.6255653006,269.10883825956,276.80615518671,284.72363837915,292.86758524998,301.24447333711,309.86096545541,318.72391499615,327.84037137809,337.21758565441,346.86301628009,356.78433504421,366.98943317194,377.48642760107,388.28366743806,399.38974059878,410.81348063915,422.56397378117,434.65056613995,447.08287115744,459.87077724873,473.02445566714,486.55436859423,500.47127746122,514.78625150841,529.51067658945],description:"least squares fit primes 3-13"},cet49a:{frequencies:[261.6255653006,269.10939785623,276.80730639354,284.72541458317,292.8700212642,301.24760545475,309.86483150611,318.72855440416,327.84582522255,337.22389673177,346.87022916874,356.7924961714,366.99859088307,377.49663223147,388.29497138724,399.40219840734,410.82714906841,422.57891189558,434.66683539241,447.10053547759,459.8899031344,473.04511227892,486.57662785344,500.49521415122,514.81194337949,529.53820446742],description:"least squares fit primes 5-13"},cet49b:{frequencies:[261.6255653006,269.11089011973,276.81037630182,284.73015118141,292.87651740119,301.25595792767,309.87514121046,318.74092648901,327.86036925135,337.24072684885,346.88946427176,356.81426008988,367.0230125633,377.52384592787,388.3251168606,399.43542112995,410.86360043647,422.61874944911,434.71022304287,447.14764374346,459.94090938509,473.10020098719,486.63599085665,500.55905092174,514.88046130456,529.61161913871],description:"least squares fit primes 3-11"},cet51:{frequencies:[261.6255653006,269.45730810595,277.52349357863,285.8311397433,294.38747470873,303.19994295657,312.27621181854,321.62417814738,331.25197518754,341.1679796516,351.38081900843,361.89937898954,372.73281132023,383.89054168203,395.38227791356,407.21801845694,419.40806105693,431.96301172054,444.89379394488,458.21165822114,471.92819182319,486.05532888913,500.60536080461,515.59094689708,531.0251223827,546.92132188791,563.29337300176,580.1555203085,597.52243480304,615.40922665547,633.83145835774,652.80515826392,672.34683453572,692.47348950549,713.20263446921,734.55230492227,756.54107625132,779.18807989593,802.51301999392,826.53619052513,851.2784929682,876.7614544861,903.00724665589,930.0387047592,957.87934765022,986.55339821839,1016.08580446361,1046.5022612024],description:"47nd root of 4"},cet53:{frequencies:[261.6255653006,269.81714175785,278.26519897904,286.97776745533,295.963129115,305.22982618403],description:"5th root of 7/6, X.J. Scott"},cet54:{frequencies:[261.6255653006,269.96706985652,278.57452968396,287.45642599351,296.6215054241,306.0787984682,315.83762188043,325.9075894649,336.29862154621,347.0209567468,358.08515411748,369.5021153806,381.28308783765,393.43967739203,405.98385998242,418.92799580061,432.28483186346,446.06752886518,460.28966468743,474.96525012045,490.10874266572,505.73506369981,521.85960157932,538.49824405725,555.66738252045,573.38393096839,591.66534267587,610.52963091344,629.99537269573,650.08174791487,670.80854445602,692.19618110881,714.26572768264,737.03893002078,760.53821452531,784.78673539949,809.80838082331,835.62780061242,862.2704354823,889.76252234217,918.13114956434,947.40426420901,977.61070438283,1008.78022764847,1040.94354635268,1074.13233401713,1108.37929206026,1143.71815851921,1180.1837471134,1217.81198154093,1256.63993812708,1296.7058535394,1338.04920533515,1380.71072249048,1424.73243255855,1470.15770307252,1517.03129303135,1565.39936221354,1615.30956841503,1666.81108016015,1719.95463363144,1774.79258265191,1831.3789571042],description:"62nd root of 7"},cet54a:{frequencies:[36.70809598968,37.88151295543,39.09243955873,40.34207507177,41.63165640381,42.96246070241,44.33580570763,45.75305128262,47.21560103286,48.72490261351,50.28245077394,51.88978777214,53.5485051662,55.26024570942,57.02670371,58.84962859429,60.73082539186,62.67215683218,64.67554556259,66.74297456936,68.87649134796,71.07820847085,73.35030604133,75.69503428946,78.11471406483,80.61174171737,83.18858976192,85.8478097501,88.59203530858,91.42398271579,94.34645661434,97.36235078878,100.47465152683,103.6864411753,107.00089881505,110.42130694669,113.95105240089,117.59363027227,121.3526480812,125.23182656372,129.23500749643,133.36615476182,137.62935895249,142.02884224198,146.56895930934,151.25420649717,156.08922305851,161.0787965455,166.22786851013,171.54153558634,177.0250602084,182.68387207023,188.52357443227,194.5499507934,200.76896615752,207.18677957808,213.80974586608,220.64442297146,227.69757979185,234.97619765489,242.48748500016,250.23887937817,258.23805608937,266.49293732345,275.01169389411,283.8027624226,292.87484767725,302.23693268442,311.89828942495,321.86848086456,332.15738106504,342.77517792247,353.73238500089,365.03985405114,376.70877738729,388.75071142436,401.17757988308,414.00168763976,427.23573537822,440.89282237095,454.98647402737,469.53064564449,484.53973861665,500.02861758376,516.01261368641,532.50755680773,549.52977996323,567.09613827221,585.22402902787,603.93139550692,623.23676470498,643.1592524742,663.71858572717,684.9351219702,706.82987354375,729.42451222373,752.74141479803,776.80366927173,801.63510168485,827.26030448295,853.70464190233,880.99430375232],description:"101st root of 24"},cet54b:{frequencies:[261.6255653006,269.96795403263,278.5763544202,287.45924871019,296.62539133416,306.08381073387,315.84382837889,325.91506125677,336.30743300953,347.03118371184,358.09687996112,369.51542742358,381.29807310848,393.45642905887,406.00247545366,418.94857448076,432.30748251802,446.09236270275,460.31680056078,474.99480683953,490.14084702027,505.76984518255,521.89720128632,538.53880634615,555.71105808945,573.43088042607,591.71572697754,610.58361784146,630.05314440547,650.14349087612,670.87445318194,692.26646247798,714.3405894063,737.11858847932,760.62290389144,784.8766959018],description:"35th root of 3 or shrunk 22-tET"},cet55:{frequencies:[261.6255653006,270.01349691657,278.67035254505,287.60475577316,296.82560168354,306.34207552634,316.16365537714,326.30012507123,336.76157646737,347.55843063202,358.70144085484,370.20170518484,382.07067969055,394.32018111076,406.96241165943,420.00996255663,433.47583121124,447.37342422819,461.71658555081,476.51960046685,491.79721226214,507.56463983627,523.83758122386,540.63224654693,557.96536270557,575.85419620437,594.31655714751,613.37083662462,633.03601203256,653.33166919923,674.2780257851,695.8959359612,718.20693418482,741.23324143097,764.99779551626,789.52425640623,814.83705588084,840.96140460432,867.92332151557,895.74966491622,924.46813868508,954.10735043232,984.69681977767,1016.26701863443,1048.84937826003,1082.47635523452,1117.18144085251,1152.9992001672,1189.96531328939,1228.1165836432,1267.49101522141,1308.127826503],description:"51th root of 5"},cet55a:{frequencies:[261.6255653006,270.1234331478,278.89732210685,287.95619440582,297.30930820811,306.96622255393,316.93680165166,327.23123542864,337.86004496999,348.83408706747],description:"9th root of 4/3"},cet63:{frequencies:[261.6255653006,271.38398887572,281.50639381697,292.00635633712,302.89795903081,314.19580976213,325.91506125677,338.07143142496,350.68122444233,363.76135261718,377.32935907335,391.4034412791,406.00247545366,421.14604188408,436.85445118639,453.14877154631,470.05085697597,487.58337662462,505.76984518255,524.63465441916,544.20310589723,564.50144490757,585.55689566922,607.39769784277,630.05314440547,653.5536209391,677.93064638327,703.21691530872,729.44634176744,756.65410477833,784.8766959018],description:"30th root of 3 or stretched 19-tET"},cet63a:{frequencies:[261.6255653006,271.37251603396,281.48259278098,291.96932561311,302.84674360983,314.12940356828,325.83240291761,337.9714015469,350.5626427598,363.62297711023,377.1698766242,391.22147055517,405.79656146784,420.91465242294,436.59597307447,452.86150935499,469.73302118774,487.23308701689,505.38512383853,524.21342105699,543.74317298677,564.00051582303,585.01254970054,606.80739415229,629.41421305643,652.8632568014,677.18590276436,702.41470135475,728.58340348685,755.72702964881,783.88190097186,813.08569174348,843.37747981977,874.79780396885,907.38869808556,941.19377721109,976.25827622702,1012.62911525602,1050.35496244617,1089.48630538731,1130.07549372248,1172.17684627813,1215.84669925421,1261.14348767523,1308.127826503],description:"44th root of 5"},cet67:{frequencies:[261.6255653006,271.89449162354,282.56647812794,293.65734341902,305.18353207836,317.16212905639,329.61089159214,342.54827390456,355.99345454941,369.96636271272,384.48771622149,399.57903967613,415.26270466472,431.56196087069,448.50096908674],description:"14th root of 12/7, X.J. Scott"},cet70:{frequencies:[261.6255653006,272.49048247121,283.80660334964,295.59266404146,307.86818385681,320.65348759128,333.96974580612,347.83900623503,362.28423824861,377.32935907335,392.99928119148,409.31995166322,426.31839262878,444.02275580482,462.46235461904,481.66772230429,501.67065719504,522.50428685614,544.20310589723,566.80304433509,590.34152430617,614.85751848055,640.39162865951,666.98613212152,694.68506540856,723.53429383412,753.58158307649,784.8766959018],description:"27th root of 3"},cet78:{frequencies:[261.6255653006,273.68177330057,286.29355449603,299.48651076576,313.28742377221,327.72430932822,342.82647426905,358.62457594514,375.15068445646,392.4383479509],description:"9th root of 3/2"},cet79:{frequencies:[261.6255653006,273.87994580863,286.70831230381,300.13755324878,314.19580976213,328.91254817579,344.3186075731,360.44627930254,377.32935907335,395.0032340925,413.50494015483,432.87325713404,453.14877154631,474.3739811962,496.5933637384,519.85349135637,544.20310589723,569.69324454502,596.37732215892,624.31126899512,653.5536209391,684.16567043124,716.21156534988,749.7584744066,784.8766959018],description:"24th root of 3, James Heffernan (1906)."},cet80:{frequencies:[261.6255653006,273.93704112612,286.82786567404,300.32530171503,314.4578949408,329.25553433534,344.74951538696,360.97260627516,377.95911717185,395.74497280393,414.36778843034,433.8669493945,454.28369442026,475.66120282759,498.04439817054,521.48118104407,546.02084308555,571.71528316122,598.61884237431,626.7884189909,656.28358877393,687.16673097983,719.50316028422,753.36126491573,788.81265129014,825.93229545055,864.79870163404,905.49406830005,948.10446197172,992.7199992577,1039.43503743958,1088.34837402783,1139.56345570838,1193.18859712177,1249.33720993748,1308.127826503],description:"35th root of 5"},cet84:{frequencies:[261.6255653006,274.70153691096,288.43104187674,302.84674360983,317.98293803021,333.87563322966,350.5626427598,368.08366429725,386.48038152577,405.79656146784,426.0781586093,447.37342422819,469.73302118774,493.21014446673,517.86064472263,543.74317298677,570.91930267857,599.45368763079,629.41421305643,660.87215705217,693.9023601738,728.58340348685,764.99779551626,803.23216389999,843.37747981977,885.52924725223,929.78774807537,976.25827622702,1025.05138820617,1076.28316609431,1130.07549372248,1186.55634664103,1245.86008938569,1308.127826503],description:"33rd root of 5"},cet87:{frequencies:[261.6255653006,275.05808287728,289.18026151691,304.0275068203,319.63704721237,336.04802279017,353.30157737897,371.44097305523,390.51169339433,410.56155044631,431.64081781968,453.80235066263,477.10170997643,501.59731726833,527.35059397819,554.42610593952],description:"Least-squares stretched ET to telephone dial tones. 1/1=697 Hz"},cet88:{frequencies:[261.6255653006,275.26799068863,289.6217982776,304.72408298441,320.61387403473,337.33223582731,354.92237405774,373.42974737602,392.90218486657,413.39000965417,434.94616895528,457.62637091093,481.48922855473,506.59641128799,533.01280425363],description:"88 cents steps by Gary Morrison"},cet88_appr:{frequencies:[261.6255653006,275.62199471997,290.69507255622,305.22982618403,320.49131749323,336.37572681506,354.37113606854,373.75080757229,392.4383479509,413.43299207996,436.04260883433,457.84473927605,482.33849075995,504.56359022259,531.55670410281,560.62621135843,588.65752192635,620.14948811994,654.0639132515,686.76710891407,723.50773613993,763.07456546008,801.22829373309],description:"88 cents scale approximated"},cet88b:{frequencies:[261.6255653006,275.26385669298,289.61326650562,304.7105300898,320.59498481995,337.30729585456,354.89100872976,373.39113880701,392.85588995712,413.33509311257,434.8821088097,457.55209870333,481.40413163568,506.49927024418,532.9029023296],description:"87.9745 cents steps. Least squares of 7/6, 11/9, 10/7, 3/2, 7/4."},cet88bis:{frequencies:[261.6255653006,289.53272725508,320.41669955092,337.26306895804,373.23835706057,392.86190344834,434.76782633734,457.62637091093],description:"Bistep approximation of 2212121 mode in 7/4 to 11/9 9/7 10/7 3/2"},cet88bm:{frequencies:[261.6255653006,275.22889829239,289.53954239223,304.59427454323,320.43178392135,337.09277136281,354.62005396115,373.05867644715,392.45602022512,412.86193859025,434.32887139488,456.91198653787,480.66932039657,505.66192697453,531.95403480429],description:"87.75412 cents steps. Minimal highest deviation for 7/6, 11/9, 10/7, 3/2, 7/4."},cet88c:{frequencies:[261.6255653006,275.37188725148,289.84046967782,305.06925821769,321.09819727018,337.96933026971,355.72690383892,374.4174952616,394.09012940783,414.79640018179,436.59061916193,459.52995194191,483.67455974508,509.0877727469,535.83624905561,563.99013984227,593.62329144382,624.813430743,657.64235771869,692.19618110881,728.56553457307,766.84580121693,807.13738838693,849.54597972796,894.18279699007,941.16492045434,990.61558284509,1042.66447461031,1097.44811755542,1155.11020756021,1215.8019705522,1279.68259818323,1346.91964745566,1417.68945580607,1492.17764912727,1570.57960775359,1653.10095047047,1739.95812689496,1831.3789571042],description:"38th root of 7. McLaren 'Microtonal Music', volume 3, track 7"},cet89:{frequencies:[261.6255653006,275.56724848068,290.25186566903,305.71900507847,322.01036982349,339.16988002511,357.2437980159,376.28084921395,396.33236207144,417.45239374596,439.69788420361,463.12880499146,487.80833148705,513.80299757552,541.1828853206,570.0218080747,600.39752248465,632.39191886931,666.09125466774,701.58637981228,738.97299766656,778.35189934333,819.82925103406,863.51687139942,909.53255273344,958.00034936337,1009.05093129669,1062.82192563509,1119.45831186524,1179.11277682321,1241.94614996535,1308.127826503],description:"31st root of 5. McLaren 'Microtonal Music', volume 2, track 22"},cet90:{frequencies:[261.6255653006,275.62199471997,290.36720431405,305.90125228146,322.26633935092,339.50692625527,357.66984706396,376.80444887746,396.96271256675,418.19939952297,440.572208006,464.1419130862,488.97255163391,515.13157534193,542.69005603758,571.72285881831,602.3088534069,634.53113933145],description:"Scale with limma steps"},cet93:{frequencies:[261.6255653006,275.99488223824,291.15340824655,307.14448922429,324.01384989472,341.80973194459,360.58302103444,380.38739950036,401.27949808494,423.31905787312],description:"Tuning used in John Chowning's STRIA, 9th root of Phi"},cet98:{frequencies:[261.6255653006,276.83245825991,292.92324815749,309.94930780463,327.96500300935,347.02785219778,367.1987248383,388.54202015806,411.12588832951],description:"8th root of 11/7, X.J. Scott"},chahargah:{frequencies:[261.6255653006,277.18263097687,283.66146785671,311.12698372208,326.97270111135,348.82502010853,367.86341164695,392.44854854484,415.30469757995,425.01198472693,466.16376151809,493.88330125613,523.2511306012],description:"Chahargah in C"},chahargah2:{frequencies:[261.6255653006,283.66146785671,327.729041887,348.82502010853,392.44854854484,425.01198472693,493.88330125613,523.2511306012],description:"Dastgah Chahargah in C, Mohammad Reza Gharib"},chalmers:{frequencies:[261.6255653006,274.70684356563,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,418.60090448096,436.04260883433,457.84473927605,470.92601754108,488.36772189445,515.07533168556,523.2511306012],description:"Chalmers' 19-tone with more hexanies than Perrett's Tierce-Tone"},chalmers_17:{frequencies:[261.6255653006,269.10058145205,286.15296204753,294.32876096318,313.95067836072,327.03195662575,336.37572681506,343.38355445704,376.74081403286,384.42940207435,392.4383479509,400.61414686654,408.78994578219,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"7-limit figurative scale, Chalmers '96 Adnexed S&H decads"},chalmers_19:{frequencies:[261.6255653006,269.10058145205,290.69507255622,294.32876096318,305.22982618403,313.95067836072,336.37572681506,348.83408706747,356.10146388137,363.36884069528,376.74081403286,384.42940207435,392.4383479509,406.97310157871,436.04260883433,448.50096908674,465.11211608996,470.92601754108,508.71637697339,523.2511306012],description:"7-limit figurative scale. Reversed S&H decads"},chalmers_csurd:{frequencies:[261.6255653006,273.35108123154,287.04667286017,303.37994773979,315.80837468238,323.38635505005,348.83408706747,357.38803216938,383.0466618906,392.4383479509,423.31690179539,433.47765231178,451.2357321491,476.91154755397,500.80604115761,523.2511306012],description:"Combined Surd Scale, combination of Surd and Inverted Surd, JHC, 26-6-97"},chalmers_isurd:{frequencies:[261.6255653006,273.35108123154,287.04667286017,303.37994773979,323.38635505005,348.83408706747,383.0466618906,433.47765231178,523.2511306012],description:"Inverted Surd Scale, of the form 4/(SQRT(N)+1, JHC, 26-6-97"},chalmers_ji1:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,466.02053819169,490.54793493862,523.2511306012],description:"Based loosely on Wronski's and similar JI scales, May 2, 1997."},chalmers_ji2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,466.02053819169,490.54793493862,523.2511306012],description:"Based loosely on Wronski's and similar JI scales, May 2, 1997."},chalmers_ji3:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,366.27579142084,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"15 16 17 18 19 20 21 on 1/1, 15-20 on 3/2, May 2, 1997. See other scales"},chalmers_ji4:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,372.08969287196,395.34529867646,418.60090448096,441.85651028546,465.11211608996,496.11959049595,523.2511306012],description:"15 16 17 18 19 20 on 1/1, same on 4/3, + 16/15 on 16/9"},chalmers_surd:{frequencies:[261.6255653006,315.80837468238,357.38803216938,392.4383479509,423.31690179539,451.2357321491,476.91154755397,500.80604115761,523.2511306012],description:"Surd Scale, Surds of the form (SQRT(N)+1)/2, JHC, 26-6-97"},chalmers_surd2:{frequencies:[261.6255653006,272.2395613933,282.33485096279,291.98077704337,301.23248980765,310.13469895524,318.72425558532,327.03195662575,335.08385052998,342.90220911983,350.50624086893,357.91266581346,365.13613061818,372.18956061116,379.08442465499,385.8309605564,392.4383479509,398.91485744029,405.26796981327,411.50448329997,417.63058822561,423.65195171798,429.57376586736,435.40081471708,441.13750301549,446.78791303515,452.35581962987,457.84473927605,463.2579384726,468.59846621725,473.86917438523,479.07273156015,484.21164154672,489.28825377326,494.3047826718,499.26331035461,504.16580309972,509.01411882861,513.81001953884,518.55516185524,523.2511306012],description:"Surd Scale, Surds of the form (SQRT(N)+1)/4"},chalung:{frequencies:[261.6255653006,328.09251713275,362.03316295439,390.31715077734,479.41117101029,527.4935758042,647.70012555753,728.30917696308,823.06004869243,961.65052057178,1054.9871516084,1301.05663342451],description:'Tuning of chalung from Tasikmalaya. "slendroid". 1/1=185 Hz'},chaumont:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.49749487796,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.40109831725,489.02683710225,523.2511306012],description:"Lambert Chaumont organ temperament (1695), 1st interpretation"},chaumont2:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.30531842668,327.84547867349,349.70184487387,366.99801003998,391.46454285105,410.8262805401,438.2147004401,465.11211608996,490.54793493862,523.2511306012],description:"Lambert Chaumont organ temperament (1695), 2nd interpretation"},chimes:{frequencies:[261.6255653006,288.69027895239,130.8127826503,144.34513947619],description:"Heavenly Chimes"},chimes_peck:{frequencies:[261.6255653006,327.03195662575,392.4383479509,457.84473927605,588.65752192635,719.47030457665,850.28308722695,981.09586987725,1046.5022612024],description:"Kris Peck, 9-tone windchime tuning. TL 7-3-2001"},chin_12:{frequencies:[261.6255653006,277.05457499359,293.57996645301,310.53449241474,329.24697610111,347.79893712036,368.97000115401,391.76907592069,413.1274313058,439.00991514661,462.11551390967,491.43599249807,523.2511306012],description:"Chinese scale, 4th cent."},chin_5:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,441.49314144476,523.2511306012],description:"Chinese pentatonic from Zhou period"},chin_60:{frequencies:[261.6255653006,262.17244551937,265.19499215873,268.81311753311,272.48060600886,276.1981310001,279.38237857051,283.19406633357,287.05775848811,290.97416342694,294.32876096318,294.94400091442,298.34436617857,302.41475692242,306.54068145351,310.72289706448,314.30517589183,318.59332496145,322.93997797627,327.34593352805,331.11985608357,331.812000697,335.63741195089,340.21660119759,344.85826629043,349.56326086722,353.59332287831,358.41749022331,363.30747486009,368.26417485089,372.50983809402,373.28850041093,377.59208844475,382.74367817547,387.96555142985,392.4383479509,393.25866808247,397.79248823809,403.21967609811,408.72090880899,414.29719629306,419.07356785577,424.79110016094,430.58663751693,436.46124492224,441.49314144476,442.41600115048,447.51654926786,453.62213515688,459.81102195042,466.08434536373,471.45776383774,477.8899872033,484.40996672226,491.01890004663,496.67978412536,497.7180007967,503.45611792634,510.32490448905,517.28740216504,523.2511306012],description:'Chinese scale of fifths (the 60 lu")'},chin_7:{frequencies:[261.6255653006,294.32876096318,331.11985608357,348.83408706747,392.4383479509,441.49314144476,496.67978412536,523.2511306012],description:"Chinese heptatonic scale and tritriadic of 64:81:96 triad"},chin_bianzhong:{frequencies:[261.6255653006,277.82379926216,312.56802260838,375.1593523779,420.13030572059,469.40618689596,506.59641128799,563.72967895209,627.66881138238,764.75812197709,849.53311813274,949.1724262561,1225.95732655636],description:"Pitches of Bianzhong bells (Xinyang). 1/1=b, Liang Mingyue, 1975."},chin_bianzhong2a:{frequencies:[261.6255653006,284.81073476233,312.56802260838,372.56793743951,413.39000965417,447.94973572445,491.60634075178,562.75365576207,652.05945856061,695.63805470995,863.88355261715,960.75607282217,1173.30283584026],description:"A-tones (GU) of 13 Xinyang bells (Ma Cheng-Yuan) 1/1=d#=619 Hz"},chin_bianzhong2b:{frequencies:[261.6255653006,279.59231184543,312.74738729016,375.37536096215,418.43048063126,468.86028020615,505.12945327459,562.08698385796,624.42058858709,762.97988553915,849.53425657971,936.08862980659,1215.37624187632],description:"B-tones (SUI) of 13 Xinyang bells (Ma Cheng-Yuan) 1/1=b+=506.6 Hz"},chin_bianzhong3:{frequencies:[261.6255653006,508.3551866238,542.32970395878,608.04166718582,619.02750937577,673.88551872153,729.80120031671,739.56153452917,812.57643344187,881.52624580654,911.03313298042,978.11461117351,982.0774855146,1059.88575280263,1092.20381072382,1163.18085489566,1213.27682870749,1331.52122774489,1483.40111876828,1542.82606951623,1645.93659621657,1649.74391394557,1818.91159982256,2044.01922018919,2273.22753490632,2362.92760489328,2776.13057951436],description:"A and B-tones of 13 Xinyang bells (Ma Cheng-Yuan) abs. pitches wrt middle-C"},chin_bronze:{frequencies:[261.6255653006,299.00064605783,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:`Scale found on ancient Chinese bronze instrument 3rd c.BC & "Scholar's Lute"`},chin_chime:{frequencies:[261.6255653006,248.6592656401,341.74499057264,392.56190849927,548.78974538591,648.86582834888,714.36935367713,785.57745330134,889.7110417619,886.88898199546,992.62825668803,1044.08711871947,1326.14827969763],description:"Pitches of 12 stone chimes, F. Kuttner, 1951, ROMA Toronto. %1=b4"},chin_ching:{frequencies:[261.6255653006,276.1981310001,294.32876096318,310.72289706448,331.11985608357,349.56326086722,368.26417485089,392.4383479509,414.29719629306,441.49314144476,466.08434536373,496.67978412536,524.34489103873],description:"Scale of Ching Fang, c.45 BC. Pyth.steps 0 1 2 3 4 5 47 48 49 50 51 52 53"},chin_di:{frequencies:[261.6255653006,298.70635408336,316.56004827153,360.50766037677,409.94872043165,433.75364775074,527.37121036213],description:"Chinese di scale"},chin_di2:{frequencies:[261.6255653006,289.95657583698,318.21537073485,338.89464890898,383.48501130814,436.9606979923,494.73987775324,522.04355935974],description:"Observed tuning from Chinese flute dizi, Helmholtz/Ellis p. 518, nr.103"},chin_huang:{frequencies:[261.6255653006,331.11985608357,392.4383479509,441.49314144476,523.2511306012,588.65752192635,662.23971216714],description:"Huang Zhong qin tuning"},"chin_liu-an":{frequencies:[261.6255653006,278.83777354406,294.32876096318,311.64221749042,331.11985608357,353.19451315581,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,492.82955324067],description:'Scale of Liu An, in: "Huai Nan Tzu", c.122 BC, 1st known corr. to Pyth. scale'},chin_lu:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,328.55303549378,348.83408706747,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,495.71159741166,523.2511306012],description:"Chinese L\xEF\xBF\xBD scale by Huai Nan zi, Han era. P\xEF\xBF\xBDre Amiot 1780, Kurt Reinhard"},chin_lu2:{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,331.11985608357,353.59332287831,372.50983809402,392.4383479509,419.07356785577,441.49314144476,471.45776383774,496.67978412536,523.2511306012],description:"Chinese L\xEF\xBF\xBD (Lushi chunqiu, by Lu Buwei). Mingyue: Music of the billion, p.67"},chin_lu3:{frequencies:[261.6255653006,277.34278419245,293.66476791741,310.58830860439,329.24697610111,347.81902735497,369.14054089803,391.76907592069,413.1512951712,439.23819834286,462.1422075194,491.60634075178,523.2511306012],description:"Chinese L\xEF\xBF\xBD scale by Ho Ch'\xEF\xBF\xBDng-T'ien, reported in Sung Shu (500 AD)"},chin_lu3a:{frequencies:[261.6255653006,277.06033146978,293.58830182213,310.53780743131,329.25144446584,347.79484055318,368.74579520635,391.78066943209,413.13681807919,438.99947255393,462.1072190611,491.17907538715,523.2511306012],description:`Chinese L\xEF\xBF\xBD scale by Ho Ch'\xEF\xBF\xBDng-T'ien, calc. basis is "big number" 177147`},chin_lu4:{frequencies:[261.6255653006,276.78521684908,293.5444075184,310.55356739316,329.35741152087,348.44172229085,369.5396750577,391.9150968203,414.62425518576,439.72952246257,465.20924434298,493.37740286979,523.2511306012],description:'Chinese L\xEF\xBF\xBD "749-Temperament"'},chin_lu5:{frequencies:[261.6255653006,277.35401920913,293.41471131112,311.37240624271,329.40299530711,349.20610523279,369.80535913035,392.03738806826,415.16320853113,440.12206674667,466.08434536373,494.10449271367,522.71643616375],description:"Chinese L\xEF\xBF\xBD scale by Ch'ien Lo-Chih, c.450 AD Pyth.steps 0 154 255 103 204 etc."},chin_lusheng:{frequencies:[261.6255653006,316.38258506467,348.82502010853,389.28772571905,466.97226207056,520.53801357752],description:"Observed tuning of a small Lusheng, 1/1=d, OdC '97"},chin_pan:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Pan Huai-su pure system, in: Sin-Yan Shen, 1991"},chin_pipa:{frequencies:[261.6255653006,284.4818984792,320.42873367481,380.17671965621,433.44136952667,521.74210224793],description:"Observed tuning from Chinese balloon lute p'i-p'a, Helmholtz/Ellis p. 518, nr.109"},chin_sheng:{frequencies:[261.6255653006,295.36595061166,318.03161540472,348.82502010853,395.40657391157,442.03793673691,477.05982293263,522.94897617031],description:"Observed tuning from Chinese sheng or mouth organ, Helmholtz/Ellis p. 518, nr.105"},chin_sientsu:{frequencies:[261.6255653006,291.80478157373,326.97270111135,392.44854854484,438.22451411849,523.2511306012],description:"Observed tuning from Chinese tamboura sienzi, Helmholtz/Ellis p. 518, nr.108"},chin_sona:{frequencies:[261.6255653006,284.4818984792,310.58830860439,337.33223582731,377.98706287655,418.43499793376,469.94877954106,528.10941333272],description:"Observed tuning from Chinese oboe (so-na), Helmholtz/Ellis p. 518, nr.104"},"chin_wang-po":{frequencies:[261.6255653006,294.32876096318,330.24264909897,371.97947673071,392.4383479509,440.94196398978,495.71159741166,517.50111817701],description:"Scale of Wang Po, 958 AD. H. Pischner: Musik in China, Berlin, 1955, p.20"},chin_yangqin:{frequencies:[261.6255653006,288.45311779165,306.48933163909,347.41744306689,383.26356564167,434.44398956347,465.08793784701,522.64699622026],description:"Observed tuning from Chinese dulcimer yangqin, Helmholtz/Ellis p. 518, nr.107"},chin_yunlo:{frequencies:[261.6255653006,288.45311779165,323.40385076956,367.0144478307,386.1523605003,409.35055662695,483.1608380663,525.67465946865],description:"Observed tuning from Chinese gong-chime (y\xEF\xBF\xBDn-lo), Helmholtz/Ellis p. 518, nr.106"},choquel:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,475.68284600109,490.54793493862,523.2511306012],description:"Choquel/Barbour/Marpurg?"},chordal:{frequencies:[261.6255653006,392.4383479509,327.03195662575,457.84473927605,588.65752192635,719.47030457665,850.28308722695,981.09586987725,981.09586987725,490.54793493862,555.95432626377,621.36071758893,310.68035879446,523.2511306012,348.83408706747,418.60090448096,299.00064605783,465.11211608996,380.54627680087,322.00069575458,279.06726965397,610.45965236807,915.6894785521,872.08521766867,697.66817413493,654.0639132515,627.90135672144,448.50096908674,319.76457981184,377.90359432309,444.76346101102,889.52692202204,336.37572681506,294.32876096318,465.11211608996,411.12588832951,305.22982618403,366.27579142084,373.75080757229,313.95067836072,470.92601754108],description:"Chordal Notes S&H"},chrom15:{frequencies:[261.6255653006,280.31310567921,301.87565226992,356.76213450082,392.4383479509,413.09299784305,436.04260883433,523.2511306012],description:"Tonos-15 Chromatic"},chrom15_inv:{frequencies:[261.6255653006,313.95067836072,331.39238271409,348.83408706747,383.71749577421,453.48431318771,488.36772189445,523.2511306012],description:"Inverted Chromatic Tonos-15 Harmonia"},chrom15_inv2:{frequencies:[261.6255653006,279.06726965397,296.50897400735,348.83408706747,383.71749577421,401.15920012759,418.60090448096,523.2511306012],description:"A harmonic form of the Chromatic Tonos-15 inverted"},chrom17:{frequencies:[261.6255653006,277.97716313189,296.50897400735,370.63621750918,404.33041910093,423.58424858192,444.76346101102,523.2511306012],description:"Tonos-17 Chromatic"},chrom17_con:{frequencies:[261.6255653006,277.97716313189,296.50897400735,370.63621750918,386.75083566176,404.33041910093,494.18162334558,523.2511306012],description:"Conjunct Tonos-17 Chromatic"},chrom19:{frequencies:[261.6255653006,276.16031892841,292.40504357126,355.06326719367,382.37582620857,397.67085925691,414.24047839262,523.2511306012],description:"Tonos-19 Chromatic"},chrom19_con:{frequencies:[261.6255653006,276.16031892841,292.40504357126,355.06326719367,368.21375857121,382.37582620857,451.89870370104,523.2511306012],description:"Conjunct Tonos-19 Chromatic"},chrom21:{frequencies:[261.6255653006,274.70684356563,289.16509849014,343.38355445704,392.4383479509,406.97310157871,422.62591317789,523.2511306012],description:"Tonos-21 Chromatic"},chrom21_inv:{frequencies:[261.6255653006,323.91736656265,336.37572681506,348.83408706747,398.6675280771,473.41768959156,498.33441009638,523.2511306012],description:"Inverted Chromatic Tonos-21 Harmonia"},chrom21_inv2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,398.6675280771,423.58424858192,448.50096908674,523.2511306012],description:"Inverted harmonic form of the Chromatic Tonos-21"},chrom23:{frequencies:[261.6255653006,273.51763645063,286.54228580542,334.29933343966,376.08675011961,401.15920012759,429.81342870813,523.2511306012],description:"Tonos-23 Chromatic"},chrom23_con:{frequencies:[261.6255653006,273.51763645063,286.54228580542,334.29933343966,353.96400011258,376.08675011961,462.87600014722,523.2511306012],description:"Conjunct Tonos-23 Chromatic"},chrom25:{frequencies:[261.6255653006,278.32506946872,297.30177875068,363.36884069528,408.78994578219,436.04260883433,467.18850946536,523.2511306012],description:"Tonos-25 Chromatic"},chrom25_con:{frequencies:[261.6255653006,278.32506946872,297.30177875068,363.36884069528,384.74347838324,408.78994578219,503.12608711654,523.2511306012],description:"Conjunct Tonos-25 Chromatic"},chrom27:{frequencies:[261.6255653006,277.01530443593,294.32876096318,353.19451315581,392.4383479509,415.52295665389,441.49314144476,523.2511306012],description:"Tonos-27 Chromatic"},chrom27_inv:{frequencies:[261.6255653006,310.07474405997,329.45441556372,348.83408706747,387.59343007496,465.11211608996,494.18162334558,523.2511306012],description:"Inverted Chromatic Tonos-27 Harmonia"},chrom27_inv2:{frequencies:[261.6255653006,271.31540105247,281.00523680435,348.83408706747,387.59343007496,406.97310157871,436.04260883433,523.2511306012],description:"Inverted harmonic form of the Chromatic Tonos-27"},chrom29:{frequencies:[261.6255653006,270.96933548991,281.00523680435,344.87006335079,379.35706968587,399.32323124828,421.50785520652,523.2511306012],description:"Tonos-29 Chromatic"},chrom29_con:{frequencies:[261.6255653006,270.96933548991,281.00523680435,344.87006335079,361.29244731988,379.35706968587,474.19633710734,523.2511306012],description:"Conjunct Tonos-29 Chromatic"},chrom31:{frequencies:[261.6255653006,279.66870773512,300.3849083081,337.93302184661,352.6257619269,368.65420565085,386.2091678247,405.51962621593,523.2511306012],description:"Tonos-31 Chromatic. Tone 24 alternates with 23 as MESE or A"},chrom31_con:{frequencies:[261.6255653006,279.66870773512,300.3849083081,337.93302184661,352.6257619269,368.65420565085,386.2091678247,450.57736246214,523.2511306012],description:"Conjunct Tonos-31 Chromatic"},chrom33:{frequencies:[261.6255653006,278.50463402967,297.71185016965,359.73515228832,392.4383479509,411.12588832951,431.68218274599,523.2511306012],description:"Tonos-33 Chromatic. A variant is 66 63 60 48"},chrom33_con:{frequencies:[261.6255653006,278.50463402967,297.71185016965,359.73515228832,375.37581108347,392.4383479509,479.64686971777,523.2511306012],description:"Conjunct Tonos-33 Chromatic"},chrom_new:{frequencies:[261.6255653006,273.20871865617,297.93622032612,349.22823143301,391.99543598175,409.35055662695,446.39994737251,523.2511306012],description:"New Chromatic genus 4.5 + 9 + 16.5"},chrom_new2:{frequencies:[261.6255653006,273.6474710507,299.37374239667,349.22823143301,391.99543598175,410.00794244467,448.55379686399,523.2511306012],description:"New Chromatic genus 14/3 + 28/3 + 16 parts"},chrom_soft:{frequencies:[261.6255653006,271.68808704293,282.55561052465,348.83408706747,392.4383479509,407.5321305644,423.83341578697,523.2511306012],description:"100/81 Chromatic. This genus is a good approximation to the soft chromatic"},chrom_soft2:{frequencies:[261.6255653006,268.42893440103,282.57118533961,349.22823143301,391.99543598175,402.18897205153,423.37840671577,523.2511306012],description:"1:2 Soft Chromatic"},chrom_soft3:{frequencies:[261.6255653006,271.31540105247,281.75060878526,348.83408706747,392.4383479509,406.97310157871,422.62591317789,523.2511306012],description:"Soft chromatic genus is from K. Schlesinger's modified Mixolydian Harmonia"},cifariello:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"F. Cifariello Ciardi, ICMC 86 Proc. 15-tone 5-limit tuning"},ckring1:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,523.2511306012],description:"Double-tie circular mirroring with common pivot of 4:5:6:7 = square 1 3 5 7"},ckring2:{frequencies:[261.6255653006,290.69507255622,305.22982618403,313.95067836072,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,436.04260883433,448.50096908674,470.92601754108,523.2511306012],description:"Double-tie circular mirroring with common pivot of 3:5:7:9"},"clampitt-phi":{frequencies:[261.6255653006,289.46753582364,320.2724252102,340.92857683151,377.20990650852,444.26963537301,491.54843559637,523.2511306012],description:'David Clampitt, phi+1 mod 3phi+2, from "Pairwise Well-Formed Scales", 1997'},classr:{frequencies:[261.6255653006,275.93321340298,287.4304306281,313.95067836072,327.03195662575,344.91651675372,367.91095120397,392.4383479509,408.78994578219,441.49314144476,459.88868900496,490.54793493862,523.2511306012],description:"Marvel projection to the 5-limit of class"},cluster:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"13-tone 5-limit Tritriadic Cluster"},cluster6a:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Six-Tone Triadic Cluster 4:5:6"},cluster6b:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Six-Tone Triadic Cluster 4:6:5"},cluster6c:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,418.60090448096,436.04260883433,523.2511306012],description:"Six-Tone Triadic Cluster 3:4:5"},cluster6d:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Six-Tone Triadic Cluster 3:5:4"},cluster6e:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Six-Tone Triadic Cluster 5:6:8"},cluster6f:{frequencies:[261.6255653006,313.95067836072,348.83408706747,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"Six-Tone Triadic Cluster 5:8:6"},cluster6g:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,457.84473927605,523.2511306012],description:"Six-Tone Triadic Cluster 4:5:7"},cluster6h:{frequencies:[261.6255653006,286.15296204753,327.03195662575,366.27579142084,418.60090448096,457.84473927605,523.2511306012],description:"Six-Tone Triadic Cluster 4:7:5"},cluster6i:{frequencies:[261.6255653006,313.95067836072,366.27579142084,373.75080757229,439.53094970501,448.50096908674,523.2511306012],description:"Six-Tone Triadic Cluster 5:6:7"},cluster6j:{frequencies:[261.6255653006,305.22982618403,313.95067836072,366.27579142084,436.04260883433,439.53094970501,523.2511306012],description:"Six-Tone Triadic Cluster 5:7:6"},cluster8a:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Eight-Tone Triadic Cluster 4:5:6"},cluster8b:{frequencies:[261.6255653006,306.59245933664,313.95067836072,327.03195662575,392.4383479509,408.78994578219,418.60090448096,490.54793493862,523.2511306012],description:"Eight-Tone Triadic Cluster 4:6:5"},cluster8c:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,363.36884069528,418.60090448096,436.04260883433,484.4917875937,523.2511306012],description:"Eight-Tone Triadic Cluster 3:4:5"},cluster8d:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,387.59343007496,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"Eight-Tone Triadic Cluster 3:5:4"},cluster8e:{frequencies:[261.6255653006,313.95067836072,327.03195662575,334.88072358477,392.4383479509,401.85686830172,418.60090448096,502.32108537715,523.2511306012],description:"Eight-Tone Triadic Cluster 5:6:8"},cluster8f:{frequencies:[261.6255653006,301.39265122629,313.95067836072,348.83408706747,376.74081403286,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"Eight-Tone Triadic Cluster 5:8:6"},cluster8g:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Eight-Tone Triadic Cluster 4:5:7"},cluster8h:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,366.27579142084,408.78994578219,418.60090448096,457.84473927605,523.2511306012],description:"Eight-Tone Triadic Cluster 4:7:5"},cluster8i:{frequencies:[261.6255653006,307.67166479351,313.95067836072,366.27579142084,373.75080757229,439.53094970501,448.50096908674,512.78610798918,523.2511306012],description:"Eight-Tone Triadic Cluster 5:6:7"},cluster8j:{frequencies:[261.6255653006,263.718569823,305.22982618403,313.95067836072,366.27579142084,376.74081403286,436.04260883433,439.53094970501,523.2511306012],description:"Eight-Tone Triadic Cluster 5:7:6"},cohenf_11:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,523.2511306012],description:`Flynn Cohen, 7-limit scale of "Rameau's nephew", 1996`},coleman:{frequencies:[261.6255653006,276.70272600503,293.15632631094,310.58830860439,328.48713220126,349.43001184052,368.92737853004,391.76907592069,414.58565256441,438.98455767189,465.89457252293,491.89038573682,523.2511306012],description:"Jim Coleman's ModX piano temperament. TL 16 Mar 1999"},collengettes:{frequencies:[261.6255653006,269.10058145205,275.62199471997,285.40970760065,294.32876096318,302.73815413355,310.07474405997,321.08592105074,331.11985608357,340.58042340025,348.83408706747,358.80077526939,367.49599295996,380.54627680087,392.4383479509,403.65087217807,413.43299207996,428.11456140098,441.49314144476,454.10723120033,465.11211608996,478.40103369253,496.67978412536,507.3950357345,523.2511306012],description:"R.P. Collengettes, from p.23 of d'Erlanger, vol 5. 24 tone Arabic system"},colonna1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,308.86351459099,327.03195662575,348.83408706747,363.36884069528,392.4383479509,399.70572476481,436.04260883433,463.29527188648,490.54793493862,523.2511306012],description:"Colonna 1"},colonna2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,479.64686971777,523.2511306012],description:"Colonna 2"},concertina:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"English Concertina, Helmholtz/Ellis, p. 470"},cons11:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 11 not exceeding 2/1"},cons12:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 12 not exceeding 2/1"},cons13:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 13 not exceeding 2/1"},cons14:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 14 not exceeding 2/1"},cons15:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 15 not exceeding 2/1"},cons16:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 16 not exceeding 2/1"},cons17:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 17 not exceeding 2/1"},cons18:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 18 not exceeding 2/1"},cons19:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 19 not exceeding 2/1"},cons20:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Set of intervals with num + den <= 20 not exceeding 2/1"},cons21:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Set of intervals with num + den <= 21 not exceeding 2/1"},cons8:{frequencies:[261.6255653006,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Set of intervals with num + den <= 8 not exceeding 2/1"},cons9:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Set of intervals with num + den <= 9 not exceeding 2/1"},cons_5:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,523.2511306012],description:"Set of consonant 5-limit intervals within the octave"},cons_7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605],description:"Set of consonant 7-limit intervals of tetrad 4:5:6:7 and inverse"},cons_7a:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605],description:"Set of consonant 7-limit intervals, harmonic entropy minima"},cont_frac1:{frequencies:[261.6255653006,264.29672053658,267.01859068163,284.39991302433,288.64312378534,304.51680721446,328.36325429535,342.47239171077,368.24757473349,390.36247006958,408.23697512781,419.80330474394,448.3033221197,488.42606438843,498.20005830409],description:"Continued fraction scale 1, see McLaren in Xenharmonikon 15, pp.33-38"},cont_frac2:{frequencies:[261.6255653006,268.67076720771,283.00159623424,287.78825007941,303.56038377389,306.30898587133,329.63288816559,333.85601282718,352.97051886932,380.09613548074,393.10104267352,426.45795861378,432.83315799354,472.91012288255,483.94654132265,519.4303061261],description:"Continued fraction scale 2, see McLaren in Xenharmonikon 15, pp.33-38"},cordier:{frequencies:[261.6255653006,277.2273508585,293.75953199293,311.27759533081,329.84032939425,349.51003591412,370.35272620855,392.4383479509,415.84102607989,440.63929776914,466.91639276282,494.76049384407,524.26505360912],description:"Serge Cordier, piano tuning, 1975 (Piano bien temp\xEF\xBF\xBDr\xEF\xBF\xBD et justesse orchestrale)"},corner11:{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,314.76825825228,327.03195662575,343.38355445704,359.73515228832,392.4383479509,400.61414686654,408.78994578219,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 11-limit. Chalmers '96"},corner13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,359.73515228832,371.99885066179,392.4383479509,400.61414686654,408.78994578219,425.14154361347,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 13-limit. Chalmers '96"},corner17:{frequencies:[261.6255653006,265.71346475842,269.80136421624,277.97716313189,286.15296204753,292.28481123426,294.32876096318,295.35073582763,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,347.47145391486,359.73515228832,371.99885066179,382.21859930635,392.4383479509,400.61414686654,408.78994578219,416.96574469783,425.14154361347,449.66894036041,451.71289008932,457.84473927605,486.4600354808,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 17-limit."},corner17a:{frequencies:[261.6255653006,265.71346475842,269.80136421624,275.93321340298,277.97716313189,286.15296204753,292.28481123426,294.32876096318,295.35073582763,306.59245933664,312.72430852337,314.76825825228,318.85615771011,327.03195662575,331.11985608357,337.2517052703,343.38355445704,345.42750418595,347.47145391486,359.73515228832,367.91095120397,371.99885066179,382.21859930635,392.4383479509,398.57019713763,400.61414686654,404.70204632437,408.78994578219,416.96574469783,425.14154361347,429.2294430713,441.49314144476,449.66894036041,451.71289008932,457.84473927605,459.88868900496,478.28423656516,486.4600354808,490.54793493862,494.63583439645,515.07533168556,521.20718087229,523.2511306012],description:"Quadratic Corner 17 odd limit."},corner7:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,343.38355445704,392.4383479509,400.61414686654,408.78994578219,457.84473927605,490.54793493862,523.2511306012],description:"Quadratic corner 7-limit. Chalmers '96"},corner9:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,331.11985608357,343.38355445704,367.91095120397,392.4383479509,400.61414686654,408.78994578219,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"First 9 harmonics of 5th through 9th harmonics"},corners11:{frequencies:[261.6255653006,269.80136421624,276.76092858245,279.06726965397,286.15296204753,294.32876096318,299.00064605783,304.4370214407,314.76825825228,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,359.73515228832,380.54627680087,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,434.91003062957,449.66894036041,457.84473927605,465.11211608996,478.40103369253,490.54793493862,494.63583439645,507.3950357345,523.2511306012],description:"Quadratic Corners 11-limit. Chalmers '96"},corners13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,276.76092858245,279.06726965397,286.15296204753,292.28481123426,294.32876096318,299.00064605783,304.4370214407,314.76825825228,318.85615771011,322.00069575458,327.03195662575,334.88072358477,341.71502406609,343.38355445704,345.42750418595,348.83408706747,359.73515228832,368.0007951481,371.99885066179,380.54627680087,392.4383479509,396.30854862103,398.6675280771,400.61414686654,408.78994578219,418.60090448096,425.14154361347,429.33426100611,434.91003062957,449.66894036041,457.84473927605,465.11211608996,468.3646483703,478.40103369253,490.54793493862,494.63583439645,507.3950357345,515.20111320734,523.2511306012],description:"Quadratic Corners 13-limit. Chalmers '96"},corners7:{frequencies:[261.6255653006,279.06726965397,286.15296204753,294.32876096318,299.00064605783,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,457.84473927605,465.11211608996,478.40103369253,490.54793493862,523.2511306012],description:"Quadratic Corners 7-limit. Chalmers '96"},corrette:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.11326130363,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.33704984564,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Corrette temperament"},corrette2:{frequencies:[261.6255653006,272.8349596094,292.34127285051,310.42509491746,326.6631048533,350.01785633742,365.01443422269,391.11111150212,409.71484950008,437.02884834934,466.16376151809,488.33748205014,523.2511306012],description:"Michel Corrette, modified meantone temperament (1753)"},coul_12:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,340.65828815182,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Scale 1 5/4 3/2 2 successively split largest intervals by smallest interval"},coul_12a:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Scale 1 6/5 3/2 2 successively split largest intervals by smallest interval"},coul_12sup:{frequencies:[261.6255653006,280.31310567921,294.32876096318,310.68035879446,331.39238271409,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,466.02053819169,497.08857407114,523.2511306012],description:"Superparticular approximation to Pythagorean scale. Op de Coul, 2003"},coul_13:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Symmetrical 13-tone 5-limit just system"},coul_17sup:{frequencies:[261.6255653006,276.16031892841,279.06726965397,294.57100685697,310.07474405997,313.95067836072,331.39238271409,348.83408706747,368.21375857121,372.08969287196,392.76134247596,413.43299207996,418.60090448096,441.85651028546,465.11211608996,470.92601754108,497.08857407114,523.2511306012],description:"Superparticular approximation to Pythagorean 17-tone scale. Op de Coul, 2003"},coul_20:{frequencies:[261.6255653006,277.18263097687,282.2367833559,293.66476791741,305.55548036855,311.12698372208,329.62755691287,335.63799088232,349.22823143301,363.36884069528,369.99442271164,391.99543598175,399.14308682247,415.30469757995,432.12070439462,440,466.16376151809,474.66379875343,493.88330125613,513.88101620607,523.2511306012],description:"Tuning for a 3-row symmetrical keyboard, Op de Coul, 1989"},coul_27:{frequencies:[261.6255653006,275.62199471997,275.93321340298,279.06726965397,293.99679436797,294.32876096318,310.07474405997,310.42486507835,327.03195662575,330.74639366397,331.11985608357,348.83408706747,367.49599295996,367.91095120397,372.08969287196,372.50983809402,392.4383479509,413.43299207996,413.89982010446,418.60090448096,440.99519155196,441.49314144476,465.11211608996,465.63729761752,490.54793493862,496.11959049595,496.67978412536,523.2511306012],description:"Symmetrical 27-tone 5-limit just system, 67108864/66430125 and 25/24"},counterschismic:{frequencies:[261.6255653006,265.12640119254,268.67408364533,272.2692364133,275.65170316539,279.34022410565,283.07810312094,286.865997406,290.70457953408,294.3160713245,298.25434362449,302.24531258767,306.28968684494,310.09479611189,314.24420508029,318.4491358588,322.71033506911,327.0285519162,331.0913069245,335.5216703313,340.01131880467,344.56104171562,348.84160709651,353.50948891197,358.2398341551,363.03347451625,367.54352740958,372.46166135084,377.44560747755,382.49624206822,387.61445966759,392.4298881006,397.68103103357,403.0024376988,408.3950505989,413.46864135256,419.00130591222,424.60800114791,430.28972009123,436.04746916004,441.46459261549,447.37187116862,453.35819556254,459.4246261707,465.13216971689,471.35614630867,477.663406507,484.05506753352,490.06860102591,496.62625431187,503.27165616309,510.00598369715,516.83042094502,523.2511306012],description:"Counterschismic temperament, g=498.082318, 5-limit"},couperin:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.28785294636,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.24345038333,489.02683710225,523.2511306012],description:"Couperin modified meantone"},cross13:{frequencies:[261.6255653006,281.75060878526,285.40970760065,290.69507255622,299.00064605783,305.22982618403,322.00069575458,332.97799220076,336.37572681506,366.27579142084,373.75080757229,406.97310157871,411.12588832951,425.14154361347,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"13-limit harmonic/subharmonic cross"},cross2:{frequencies:[261.6255653006,282.55561052465,339.14425131559,366.27579142084,436.04260883433,470.92601754108,560.62621135843,605.4763082671,726.73768139056,784.8766959018],description:"Pusey's double 5-7 cross reduced by 3/1"},cross2_5:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,392.4383479509,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"double 3-5 cross reduced by 2/1"},cross2_7:{frequencies:[261.6255653006,294.32876096318,299.00064605783,327.03195662575,334.88072358477,341.71502406609,348.83408706747,392.4383479509,400.61414686654,408.78994578219,418.60090448096,457.84473927605,465.11211608996,523.2511306012],description:"longer 3-5-7 cross reduced by 2/1"},cross3:{frequencies:[261.6255653006,282.55561052465,311.45900631024,336.37572681506,363.28578496026,403.74315632809,436.04260883433,470.92601754108,508.60009894437,565.24041885932,610.45965236807,659.29642455751,726.73768139056,784.8766959018],description:"Pusey's triple 5-7 cross reduced by 3/1"},cross_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,348.83408706747,392.4383479509,418.60090448096,457.84473927605,523.2511306012],description:"3-5-7 cross reduced by 2/1, quasi diatonic, similar to Zalzal's, Flynn Cohen"},cross_72:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,313.95067836072,343.38355445704,348.83408706747,392.4383479509,398.6675280771,436.04260883433,448.50096908674,465.11211608996,490.54793493862,523.2511306012],description:"double 3-5-7 cross reduced by 2/1"},cross_7a:{frequencies:[261.6255653006,336.37572681506,392.4383479509,436.04260883433,470.92601754108,523.2511306012,610.45965236807,784.8766959018],description:"2-5-7 cross reduced by 3/1"},cruciform:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Cruciform Lattice"},galilei:{frequencies:[261.6255653006,277.66336828161,293.32570896007,311.30674962848,328.86683469969,348.2210758395,368.7143392539,390.41365788584,413.39000965417,437.71854962063,463.47885582013,490.75518955849,523.2511306012],description:"Vincenzo Galilei's approximation"},gamelan_om:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Other Music gamelan (7 limit black keys)"},gamelan_udan:{frequencies:[261.6255653006,261.6255653006,290.69507255622,305.22982618403,334.88072358477,351.32575911795,364.00078650518,392.4383479509,402.50086969323,465.11211608996,465.11211608996,501.44900015948,523.2511306012],description:"Gamelan Udan Mas (approx) s6,p6,p7,s1,p1,s2,p2,p3,s3,p4,s5,p5"},ganassi:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,369.35373924791,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Sylvestro Ganassi's temperament (1543)"},gann_custer:{frequencies:[261.6255653006,269.80136421624,274.70684356563,279.06726965397,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,380.54627680087,392.4383479509,406.97310157871,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,507.3950357345,523.2511306012],description:"Kyle Gann, scale from Custer's Ghost to Sitting Bull, 1/1=G"},gann_frac:{frequencies:[261.6255653006,264.89588486686,294.32876096318,305.22982618403,309.04519901133,313.95067836072,348.83408706747,353.19451315581,366.27579142084,392.4383479509,397.34382730029,412.06026534844,418.60090448096,423.83341578697,457.84473927605,470.92601754108,523.2511306012],description:"Kyle Gann, scale from Fractured Paradise, 1/1=B"},gann_ghost:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Kyle Gann, scale from Ghost Town, 1/1=E"},gann_super:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"Kyle Gann, scale from Superparticular Woman (1992), 1/1=G"},gann_things:{frequencies:[261.6255653006,266.47048317654,272.52663052146,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,343.38355445704,348.83408706747,373.75080757229,387.59343007496,392.4383479509,406.97310157871,408.78994578219,436.04260883433,448.50096908674,465.11211608996,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Kyle Gann, scale from How Miraculous Things Happen, 1/1=A"},garcia:{frequencies:[261.6255653006,268.33391312882,271.68808704293,279.06726965397,286.22284067074,294.32876096318,301.87565226992,310.07474405997,313.95067836072,322.00069575458,331.11985608357,339.61010880366,348.83408706747,357.77855083843,362.25078272391,372.08969287196,381.63045422766,392.4383479509,402.50086969323,407.5321305644,418.60090448096,429.33426100611,441.49314144476,452.81347840488,465.11211608996,470.92601754108,483.00104363188,496.11959049595,509.4151632055,523.2511306012],description:"Linear 29-tone scale by Jos\xEF\xBF\xBD L. Garcia, 1988 15/13-52/45 alternating"},garibaldi24:{frequencies:[261.6255653006,271.45160478635,275.48458787532,290.07776082447,294.38747453868,305.44397410364,309.9819851541,326.40257969757,331.25197480486,343.69301829526,348.79929894143,361.89937857146,367.27615309757,386.73177659938,392.47748849606,407.21801775129,413.26809573999,435.16003837828,441.62525370518,458.21165716245,465.0193526482,489.65270106975,496.92751922541,515.59094540799,523.2511306012],description:"Garibaldi[24] in 94-tET tuning."},genovese:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,296.50897400735,299.00064605783,301.87565226992,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,338.57426097725,340.11323489078,342.12573923925,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,400.13321751856,402.50086969323,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,453.48431318771,457.84473927605,461.69217405988,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Denny Genovese's 65-note scale. 3/2=384 Hz"},genovese_12:{frequencies:[261.6255653006,285.40970760065,294.32876096318,313.95067836072,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Denny Genovese's superposition of harmonics 8-16 and subharmonics 6-12"},genovese_38:{frequencies:[261.6255653006,280.31310567921,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Denny Genovese's 38-note scale. Harm 1..16 x Subh. 1..12"},"gf1-2":{frequencies:[261.6255653006,269.29177952703,277.18263097687,285.30470202322,293.66476791741,311.12698372208,320.24370022528,339.28638158975,349.22823143301,359.46139971304,380.8360868427,403.48177901006,415.30469757995,440,466.16376151809,493.88330125613,523.2511306012],description:"16-note scale with all possible quadruplets of 50 & 100 c. Galois Field GF(2)"},"gf2-3":{frequencies:[261.6255653006,270.85177093588,280.40333801024,290.29174037004,300.52885648597,316.56538760238,327.729041887,345.21700307457,357.39105439675,369.99442271164,389.73770840504,410.5345162762,425.01198472693,447.69106452518,471.58032351597,496.7443381147,523.2511306012],description:"16-note scale with all possible quadruplets of 60 & 90 c. Galois Field GF(2)"},gilson7:{frequencies:[261.6255653006,261.6255653006,299.00064605783,313.95067836072,327.03195662575,392.4383479509,373.75080757229,392.4383479509,408.78994578219,408.78994578219,467.18850946536,490.54793493862,523.2511306012],description:"Gilson septimal"},gilson7a:{frequencies:[261.6255653006,261.6255653006,280.31310567921,299.00064605783,313.95067836072,336.37572681506,373.75080757229,373.75080757229,392.4383479509,418.60090448096,470.92601754108,470.92601754108,523.2511306012],description:"Gilson septimal 2"},golden_10:{frequencies:[261.6255653006,287.58715183149,304.90466328003,323.26497397694,342.73087946949,376.74069565061,399.42672527674,423.47882962254,465.50141625349,493.53231135469,523.2511306012],description:"Golden version of Rapoport's Major 10 out of 13"},golden_5:{frequencies:[261.6255653006,327.03195662575,343.38355445704,392.4383479509,425.14154361347,523.2511306012],description:"Golden pentatonic"},gradus10:{frequencies:[261.6255653006,290.69507255622,299.00064605783,305.22982618403,490.54793493862,882.98628288953,930.22423217991,941.85203508216,1220.91930473613,1255.80271344288,1674.40361792384,2747.0684356563,3270.3195662575,3488.34087067467,5886.5752192635,10595.8353946743,10988.2737426252,11162.69078615893,13081.27826503,14651.0316568336,23546.300877054,31395.067836072,41860.090448096,42383.3415786972,56511.1221049296,75348.1628065728,100464.2170754304,133952.2894339072],description:"Intervals > 1 with Gradus = 10"},gradus3:{frequencies:[261.6255653006,784.8766959018,1046.5022612024],description:"Intervals > 1 with Gradus = 3"},gradus4:{frequencies:[261.6255653006,392.4383479509,1569.7533918036,2093.0045224048],description:"Intervals > 1 with Gradus = 4"},gradus5:{frequencies:[261.6255653006,348.83408706747,1308.127826503,2354.6300877054,3139.5067836072,4186.0090448096],description:"Intervals > 1 with Gradus = 5"},gradus6:{frequencies:[261.6255653006,654.0639132515,697.66817413493,1177.3150438527,2616.255653006,4709.2601754108,6279.0135672144,8372.0180896192],description:"Intervals > 1 with Gradus = 6"},gradus7:{frequencies:[261.6255653006,327.03195662575,436.04260883433,588.65752192635,1395.33634826987,1831.3789571042,3924.383479509,5232.511306012,7063.8902631162,9418.5203508216,12558.0271344288,16744.0361792384],description:"Intervals > 1 with Gradus = 7"},gradus8:{frequencies:[261.6255653006,294.32876096318,313.95067836072,418.60090448096,872.08521766867,915.6894785521,1962.1917397545,2790.67269653973,3531.9451315581,3662.7579142084,7848.766959018,10465.022612024,14127.7805262324,18837.0407016432,25116.0542688576,33488.0723584768],description:"Intervals > 1 with Gradus = 8"},gradus9:{frequencies:[261.6255653006,457.84473927605,465.11211608996,470.92601754108,610.45965236807,627.90135672144,837.20180896192,981.09586987725,1744.17043533733,1765.97256577905,5494.1368713126,5581.34539307947,6540.639132515,7325.5158284168,11773.150438527,15697.533918036,20930.045224048,21191.6707893486,28255.5610524648,37674.0814032864,50232.1085377152,66976.1447169536],description:"Intervals > 1 with Gradus = 9"},grady11:{frequencies:[261.6255653006,277.4816601673,290.69507255622,305.22982618403,332.97799220076,356.76213450082,378.42269266694,392.4383479509,420.46965851882,458.69417292962,481.6288815761,504.56359022259,523.2511306012],description:"Kraig Grady's dual [5 7 9 11] hexany scale"},grady7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:`Kraig Grady's 7-limit "Centaur" scale (1987), see Xenharmonikon 16`},grady7t:{frequencies:[261.6255653006,274.79177208104,293.65339461903,305.54250820508,326.68804977983,349.10444036529,366.6627351378,392.00975085961,407.77240291308,436.0718257558,457.96530027286,489.37179607373,523.2511306012],description:"Tempered version of grady7 with egalised 225/224"},grady_14:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Kraig Grady, letter to Lou Harrison, published in 1/1 7 (1) 1991 p 5."},grammateus:{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,348.83408706747,369.99442271164,392.4383479509,416.24372513446,441.49314144476,468.27419030811,496.67978412536,523.2511306012],description:"H. Grammateus (Heinrich Schreiber) (1518). B-F# and Bb-F 1/2 P. Also Marpurg temp.nr.6"},graupner:{frequencies:[261.6255653006,277.083518473,293.59062125964,310.9808189359,329.55130849159,349.11528328816,370.00708353276,392.01655298731,415.20348378516,439.96413779539,466.04943410823,493.90517116572,523.2511306012],description:"Johann Gottlieb Graupner's temperament (1819)"},groenewald_21:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,330.74639366397,348.83408706747,367.91095120397,372.08969287196,392.4383479509,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"J\xEF\xBF\xBDrgen Gr\xEF\xBF\xBDnewald, new meantone temperament I (2000)"},gross:{frequencies:[13.75,13.83042567154,13.91662997964,13.99803029322,14.07990672861,14.1622619889,14.24509903843,14.32842061343,14.41222946472,14.49652860895,14.58132083065,14.67220542837,14.75802520833,14.84434696019,14.93117353378,15.01850805439,15.10635340681,15.19471249121,15.28358848801,15.37298433293,15.46880332718,15.55928251958,15.65029093742,15.74183158529,15.83390775812,15.92652249736,16.01967895316,16.113380201,16.20762961362,16.30865090754,16.4040424858,16.49999202274,16.59650278193,16.69357794961,16.79122101993,16.88943521823,16.98822378696,17.08759028197,17.18753798549,17.29466699621,17.39582592037,17.49757653721,17.59992220598,17.70286661052,17.80641315127,17.91056524676,18.01532664586,18.12070080902,18.23364617402,18.34029731861,18.44757228066,18.55547460176,18.66400816581,18.77317655783,18.88298349104,18.99343259063,19.10452783216,19.2236053387,19.33604689279,19.44914613325,19.56290690697,19.67733296969,19.79242844011,19.90819712001,20.02464283144,20.14176976577,20.26731246322,20.38585868839,20.50509842475,20.62503561099,20.74567420676,20.86701855437,20.98907266203,21.11184068121,21.23532666504,21.36768545088,21.49266790503,21.61838152318,21.74483045784,21.87201888365,21.99995137868,22.12863216875,22.25806563075,22.38825603783,22.52780097787,22.65956910312,22.79210808945,22.92542231482,23.05951631373,23.1943945132,23.33006176809,23.46652255971,23.60378139323,23.75090264526,23.88982499399,24.02955978014,24.17011203339,24.3114863964,24.45368753658,24.59672057234,24.74059022832,24.88530139802,25.04041015894,25.18687501732,25.33419642278,25.48237967807,25.63142967793,25.78135134315,25.93215007005,26.08383083979,26.23639881154,26.39992889083,26.55434576426,26.70966568928,26.86589425653,27.0230366265,27.18109814415,27.34008402779,27.5],description:"Gross temperament, g=91.531021, 5-limit"},groven:{frequencies:[261.6255653006,264.7464578752,272.5650766677,275.81646505128,279.10663876478,290.77709705464,294.24573392894,297.75574765819,306.54921255625,310.20599265769,313.90639394672,327.03195662575,330.93307160522,334.88072358477,344.77058253591,348.88329767713,353.04507480266,363.47137260637,367.80716871461,372.19468374184,387.75749219625,392.38299382393,397.06367008113,408.78994578219,413.66634097248,418.60090448096,436.10412364188,441.30634506723,446.57062302059,459.75895986689,465.24335632603,470.79317533731,484.69686416326,490.47874118496,496.32958936031,517.08292506126,523.2511306012],description:"Eivind Groven's 36-tone scale with 1/8-schisma temp. fifths and 5/4 (1948)"},groven_ji:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.11959049595,517.37477513058,523.2511306012],description:"Untempered version of Groven's 36-tone scale"},gumbeng:{frequencies:[261.6255653006,305.03156112838,348.43777142572,394.8168394034,470.9259392365,525.62941881859],description:"Scale of gumbeng ensemble, Java. 1/1=440 Hz."},gunkali:{frequencies:[261.6255653006,275.93321340298,282.55561052465,348.83408706747,392.4383479509,408.78994578219,418.60090448096,523.2511306012],description:"Indian mode Gunkali, see Dani\xEF\xBF\xBDlou: Intr. to the Stud. of Mus. Scales, p.175"},gyaling:{frequencies:[261.6255653006,283.49766588023,307.55338551939,339.28638158975,347.81902735497,393.58362272115,435.9522698367],description:'Tibetan Buddhist Gyaling tones measured from CD "The Diamond Path", Ligon 2002'},far12_104:{frequencies:[261.6255653006,276.7193479141,294.32876096318,311.93817401225,329.54758706133,349.67263054599,369.79767403066,392.4383479509,415.07902187114,440.23532622697,465.3916305828,493.06356537421,523.2511306012],description:"Farey approximation to 12-tET with den=104"},far12_65:{frequencies:[261.6255653006,277.72560008833,293.82563487606,309.92566966379,330.05071314845,350.17575663311,370.30080011777,390.42584360243,414.57589578403,438.72594796562,466.90100884415,495.07606972267,523.2511306012],description:"Farey approximation to 12-tET with den=65"},far12_80:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,330.30227619201,349.92419358955,369.5461109871,392.4383479509,415.3305849147,441.49314144476,467.65569797482,493.81825450488,523.2511306012],description:"Farey approximation to 12-tET with den=80"},farey3:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,418.60090448096,523.2511306012],description:"Farey fractions between 0 and 1 until 3rd level, normalised by 2/1"},farey4:{frequencies:[261.6255653006,299.00064605783,313.95067836072,327.03195662575,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Farey fractions between 0 and 1 until 4th level, normalised by 2/1"},farey5:{frequencies:[261.6255653006,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,322.00069575458,327.03195662575,332.97799220076,348.83408706747,366.27579142084,373.75080757229,380.54627680087,392.4383479509,402.50086969323,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"Farey fractions between 0 and 1 until 5th level, normalised by 2/1"},farnsworth:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Farnsworth's scale"},fibo_9:{frequencies:[261.6255653006,277.97716313189,327.03195662575,343.38355445704,363.82305174615,392.4383479509,425.14154361347,449.66894036041,523.2511306012],description:"First 9 Fibonacci terms reduced by 2/1, B. McLaren, XH 13, 1991"},finnamore:{frequencies:[261.6255653006,277.97716313189,310.68035879446,348.83408706747,392.4383479509,416.96574469783,457.84473927605,466.02053819169,523.2511306012],description:"David J. Finnamore, Tuning List 9 May '97. Tetrachordal scale, 17/16x19/17x64/57"},finnamore53:{frequencies:[261.6255653006,286.15296204753,310.68035879446,327.03195662575,343.38355445704,359.73515228832,367.91095120397,376.08675011961,392.4383479509,408.78994578219,416.96574469783,425.14154361347,433.31734252912,441.49314144476,457.84473927605,474.19633710734,523.2511306012],description:'David J. Finnamore, tuning for "Crawlspace", 53-limit, 1998.'},finnamore_11:{frequencies:[261.6255653006,287.78812183066,294.32876096318,305.22982618403,323.76163705949,331.11985608357,343.38355445704,348.83408706747,392.4383479509,431.68218274599,441.49314144476,457.84473927605,485.64245558924,515.07533168556,523.2511306012],description:"David J. Finnamore, 11-limit scale, Tuning List 3 Sept '98"},finnamore_7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,309.04519901133,331.11985608357,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,463.567798517,496.67978412536,523.2511306012],description:"David J. Finnamore, TL 1 Sept '98. 7-tone Pyth. with 9/8 div. in 21/20 &15/14"},finnamore_7a:{frequencies:[261.6255653006,280.31310567921,294.32876096318,315.35224388912,331.11985608357,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,473.02836583367,496.67978412536,523.2511306012],description:"David J. Finnamore, TL 1 Sept '98. 7-tone Pyth. with 9/8 div. in 15/14 &21/20"},finnamore_jc:{frequencies:[261.6255653006,276.16031892841,310.68035879446,348.83408706747,392.4383479509,414.24047839262,466.02053819169,523.2511306012],description:"Chalmers' modification of Finnamore. Tuning List 9-5-97 19/18 x 9/8 x 64/57"},fisher:{frequencies:[261.6255653006,273.37431312998,292.50627485027,310.67535808973,327.03195662575,349.71841093413,365.63284485857,391.22147055517,410.55062036439,437.39890198442,467.47330218196,489.02683992698,523.2511306012],description:"Alexander Metcalf Fisher's modified meantone temperament (1818)"},"fj-10tet":{frequencies:[261.6255653006,280.31310567921,300.51585203447,322.00069575458,345.20039866051,370.01329949656,396.52624740872,425.14154361347,455.42228033808,488.36772189445,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 10-tet"},"fj-12tet":{frequencies:[261.6255653006,277.19851561611,293.6613488068,311.12229387098,329.64821227876,348.83408706747,370.01329949656,391.99491478937,415.52295665389,440.00663255101,466.16918908107,490.54793493862,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 12-tet"},"fj-13tet":{frequencies:[261.6255653006,275.96121271433,291.05844139692,306.97399661937,323.91736656265,341.56671025356,360.27127025001,379.97998769849,400.78810003496,422.62591317789,445.95266812602,41.6222490251,496.18641694941,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 13-tet"},"fj-14tet":{frequencies:[261.6255653006,274.92856014639,288.87822835275,303.4856557487,318.85615771011,335.0643204727,352.18826098158,370.01329949656,388.70083987518,408.5030756448,429.33426100611,451.0785608631,473.88781639354,497.93252750759,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 14-tet"},"fj-15tet":{frequencies:[261.6255653006,274.08392555301,286.94416839421,300.51585203447,314.76825825228,329.64821227876,345.20039866051,361.51896296083,378.66858135613,396.52624740872,415.52295665389,392.4383479509,455.42228033808,477.08191319521,499.46698830115,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 15-tet"},"fj-16tet":{frequencies:[261.6255653006,273.25336820285,285.40970760065,297.96244937013,311.12229387098,324.92207303462,339.29565499922,354.2846196779,370.01329949656,386.4008349055,403.52417698906,421.50785520652,440.00663255101,459.44001711325,479.64686971777,500.9851250437,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 16-tet"},"fj-17tet":{frequencies:[261.6255653006,272.52663052146,283.8915708581,295.75063903546,307.98958953109,320.70230585235,334.29933343966,348.03400888612,362.53828334512,373.75080757229,392.4383479509,409.71550792358,426.86276443782,444.76346101102,462.87600014722,482.37213602298,502.32108537715,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 17-tet"},"fj-18tet":{frequencies:[261.6255653006,271.88539139082,282.55561052465,293.6613488068,305.22982618403,317.12189733406,329.64821227876,342.60490694126,355.98232655655,370.01329949656,384.51030051755,399.57359064092,415.52295665389,431.68218274599,448.50096908674,466.16918908107,484.4917875937,503.12608711654,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 18-tet"},"fj-19tet":{frequencies:[261.6255653006,271.31540105247,281.44568388398,291.81313052759,302.73815413355,313.95067836072,325.69713231299,337.73482066077,350.31219760589,363.36884069528,376.74081403286,390.78248994267,405.26313056367,420.46965851882,436.04260883433,451.89870370104,468.95148497277,485.87604984397,504.56359022259,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 19-tet"},"fj-20tet":{frequencies:[261.6255653006,270.8594087818,280.31310567921,290.29686012806,300.51585203447,311.12229387098,322.00069575458,333.44434793214,345.20039866051,357.34223553253,370.01329949656,383.09457776159,396.52624740872,410.48149038542,425.14154361347,440.00663255101,455.42228033808,470.92601754108,488.36772189445,505.41302387616,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 20-tet"},"fj-21tet":{frequencies:[261.6255653006,270.34641747729,279.46367202564,288.87822835275,298.56093922539,308.58400009814,318.85615771011,329.64821227876,340.72166643799,352.18826098158,364.00078650518,376.08675011961,388.70083987518,401.78211814021,415.52295665389,429.33426100611,443.62595855319,457.84473927605,473.88781639354,489.85212226495,506.18859373377,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 21-tet"},"fj-22tet":{frequencies:[261.6255653006,270.06509966514,278.68810216803,287.55242312318,296.76929795292,306.29334474217,316.13089140489,326.18252297218,336.37572681506,347.40443916965,358.52392281934,370.01329949656,381.83190611439,392.4383479509,392.4383479509,419.69101100305,433.03541842858,446.94367405519,461.28718092474,475.68284600109,491.34557385722,506.89953276991,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 22-tet"},"fj-23tet":{frequencies:[261.6255653006,269.55361273395,277.97716313189,286.37392958579,295.1673044417,304.21577360535,313.47928094576,323.18452184192,332.97799220076,343.1154954762,353.6790049434,364.40703738298,375.66747838035,387.20583664489,398.97898708342,411.12588832951,423.58424858192,436.04260883433,449.99597231703,463.79077485106,477.96978276071,492.47165233054,507.86139146587,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 23-tet"},"fj-24tet":{frequencies:[261.6255653006,269.32043486826,277.19851561611,285.40970760065,293.6613488068,302.32287545847,311.12229387098,320.2657782128,329.64821227876,339.29565499922,348.83408706747,348.83408706747,370.01329949656,380.54627680087,391.99491478937,403.52417698906,415.52295665389,427.53446036927,440.00663255101,452.81347840488,466.16918908107,479.64686971777,490.54793493862,508.30109829831,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 24-tet"},"fj-26tet":{frequencies:[261.6255653006,268.69652652494,275.96121271433,283.42769574232,291.05844139692,299.00064605783,306.97399661937,315.29234792636,323.91736656265,332.57487114483,341.56671025356,350.8160989258,360.27127025001,370.01329949656,379.97998769849,390.22118214327,400.78810003496,411.12588832951,422.62591317789,434.18710837121,445.95266812602,457.84473927605,457.84473927605,483.00104363188,496.18641694941,509.48136400643,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 26-tet"},"fj-30tet":{frequencies:[261.6255653006,267.70988077271,274.08392555301,280.31310567921,286.94416839421,293.6613488068,300.51585203447,307.52478728316,314.76825825228,322.00069575458,329.64821227876,337.35928157183,345.20039866051,353.19451315581,361.51896296083,370.01329949656,378.66858135613,387.59343007496,396.52624740872,405.78659107848,415.52295665389,425.14154361347,392.4383479509,444.76346101102,455.42228033808,466.16918908107,477.08191319521,488.36772189445,499.46698830115,511.35905945117,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 30-tet"},"fj-31tet":{frequencies:[261.6255653006,267.57160087561,273.51763645063,279.79400733536,286.15296204753,292.60754013883,299.00064605783,305.96888145324,312.81317590289,319.76457981184,327.03195662575,334.53760808929,342.12573923925,349.884792149,357.81143489641,366.27579142084,373.75080757229,382.37582620857,391.25985441351,400.13321751856,409.20921752145,418.60090448096,428.11456140098,437.54620403721,447.51741432997,457.84473927605,467.90726101838,478.40103369253,489.12605686634,500.50108144463,511.62332769895,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 31-tet"},"fj-36tet":{frequencies:[261.6255653006,266.75547834571,271.88539139082,277.19851561611,282.55561052465,288.08208313999,293.6613488068,299.00064605783,305.22982618403,311.12229387098,317.12189733406,323.18452184192,329.64821227876,327.03195662575,342.60490694126,348.83408706747,355.98232655655,362.89997767503,370.01329949656,377.22755927063,384.51030051755,391.99491478937,399.57359064092,406.97310157871,415.52295665389,423.35773294097,431.68218274599,440.00663255101,448.50096908674,436.04260883433,466.16918908107,475.19745534191,484.4917875937,490.54793493862,503.12608711654,513.18860885887,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 36-tet"},"fj-41tet":{frequencies:[261.6255653006,266.05989691586,270.64713651786,275.21650375777,279.87851171692,284.71017400359,289.532292266,294.32876096318,299.49242343621,304.63250754179,309.81974838229,315.13988547572,320.49131749323,325.95972070239,331.39238271409,337.09447836808,342.81970625596,348.83408706747,354.64798851859,360.72615821749,366.27579142084,373.13810133036,379.35706968587,386.00493241072,392.4383479509,399.32323124828,405.97070477679,413.09299784305,419.97788114044,427.14378008261,434.48531380278,441.85651028546,449.45930449077,436.04260883433,465.11211608996,472.93852188955,480.82536325516,489.12605686634,497.08857407114,505.80942624783,514.53027842451,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 41-tet"},"fj-42tet":{frequencies:[261.6255653006,265.98599138894,270.34641747729,274.92856014639,279.46367202564,284.05061375494,288.87822835275,293.6613488068,298.56093922539,303.4856557487,308.58400009814,313.7026920429,318.85615771011,324.18820048118,329.64821227876,335.0643204727,340.72166643799,346.37750898953,352.18826098158,358.01393146398,364.00078650518,370.01329949656,376.08675011961,382.37582620857,388.70083987518,395.22159864559,401.78211814021,408.5030756448,415.52295665389,422.16852582597,429.33426100611,436.04260883433,443.62595855319,451.0785608631,457.84473927605,466.16918908107,473.88781639354,481.94183081689,489.85212226495,497.93252750759,506.18859373377,514.81159623666,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 42-tet"},"fj-43tet":{frequencies:[261.6255653006,265.84533248287,270.2034526875,274.70684356563,279.06726965397,283.42769574232,288.1672893166,292.86443876933,297.71185016965,302.50455987882,307.4100392282,312.38873468728,317.43901923139,322.67153053741,327.85988562987,332.97799220076,338.57426097725,344.24416486921,348.83408706747,355.41586229515,361.11697745717,367.05676325756,372.95559308809,379.09010482332,385.17097113699,391.45479319413,397.88888056133,404.33041910093,392.4383479509,417.48760420309,424.25767346043,431.1976909584,438.2228218785,445.32011114996,452.54151835779,459.82675113439,467.18850946536,475.05694751951,483.00104363188,490.54793493862,498.33441009638,506.89953276991,514.81159623666,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 43-tet"},"fj-53tet":{frequencies:[261.6255653006,265.06800694929,268.51044859798,272.09058791262,275.69145590816,279.30296836145,282.98275430473,286.71294827463,290.48132617934,294.32876096318,298.13145813324,302.11523612093,306.05254808749,310.07474405997,313.95067836072,318.31110444906,322.46872002167,326.7649917632,331.03642956402,335.41739141103,336.37572681506,344.24416486921,348.83408706747,353.42400926572,358.01393146398,362.89997767503,367.52162744608,372.31330446624,377.3445653374,382.37582620857,387.20583664489,392.4383479509,397.67085925691,402.82031482791,408.13588186894,413.53718386224,418.60090448096,424.41480593208,429.81342870813,436.04260883433,441.49314144476,447.29532132038,453.1728541814,459.07882213124,465.11211608996,470.92601754108,477.46665667359,483.76047923507,485.87604984397,496.55464434604,503.12608711654,509.83443494476,516.36624730382,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 53-tet"},"fj-54tet":{frequencies:[261.6255653006,265.02329991489,268.42103452919,271.88539139082,275.39533189537,279.06726965397,282.55561052465,286.15296204753,289.90941019796,293.6613488068,297.46468383493,301.26580246736,305.22982618403,309.19384990071,313.15787361738,317.12189733406,321.29455387793,325.43667878855,329.64821227876,333.91683992313,338.19890148614,342.60490694126,346.93824963775,351.55935337268,355.98232655655,360.61902244137,365.28852513669,370.01329949656,374.76094489005,379.61356533813,384.51030051755,389.53139722534,394.5147413263,399.57359064092,404.77917650282,409.88005230427,415.52295665389,420.652869699,426.07592063241,431.68218274599,436.04260883433,442.75095666255,448.50096908674,454.40229762736,460.26719821402,466.16918908107,472.20223981084,478.40103369253,484.4917875937,490.54793493862,497.08857407114,503.12608711654,510.16985233617,516.54278277298,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 54-tet"},"fj-55tet":{frequencies:[261.6255653006,264.93728131706,268.33391312882,271.68808704293,275.15792212649,278.68810216803,282.14521748104,285.77561748219,289.37373131733,293.02063313667,296.76929795292,300.51585203447,304.33994330886,308.21641939523,312.11470948142,316.13089140489,319.76457981184,324.10331223806,328.22116374075,332.33517754401,336.37572681506,340.90603963412,345.20039866051,348.83408706747,353.96400011258,358.52392281934,363.07221307022,367.68998366571,372.31330446624,377.04860881557,381.83190611439,386.75083566176,391.58336244338,396.52624740872,401.56482115906,406.65712867376,411.81801945465,416.96574469783,418.60090448096,427.65717404906,433.03541842858,438.60756535689,444.15502946381,449.8123754291,455.42228033808,461.28718092474,467.18850946536,472.93852188955,479.03272519828,485.0974023282,491.34557385722,497.60156537565,503.87145909745,510.16985233617,516.71049146868,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 55-tet"},"fj-5tet":{frequencies:[261.6255653006,300.51585203447,345.20039866051,396.52624740872,455.42228033808,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 5-tet"},"fj-60tet":{frequencies:[261.6255653006,264.66772303665,267.70988077271,270.8594087818,274.08392555301,277.19851561611,280.31310567921,283.6903720127,286.94416839421,290.29686012806,293.6613488068,297.10021822272,300.51585203447,304.05133264664,307.52478728316,311.12229387098,314.76825825228,318.50068819203,322.00069575458,325.79787377056,329.64821227876,333.44434793214,337.35928157183,341.25073734861,345.20039866051,348.83408706747,353.19451315581,357.34223553253,361.51896296083,365.74186169574,370.01329949656,374.3258088147,378.66858135613,383.09457776159,387.59343007496,391.99491478937,396.52624740872,401.15920012759,405.78659107848,410.48149038542,415.52295665389,420.18651396763,425.14154361347,429.81342870813,434.91003062957,440.00663255101,444.76346101102,450.23934493592,455.42228033808,460.95932933915,466.16918908107,470.92601754108,477.08191319521,482.55382044333,488.36772189445,490.54793493862,499.46698830115,505.41302387616,511.35905945117,517.30509502619,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 60-tet"},"fj-66tet":{frequencies:[261.6255653006,264.37951861955,267.19206668997,270.06509966514,272.83808952777,275.76748774928,278.68810216803,281.58005756929,284.57517629188,287.55242312318,290.69507255622,293.6613488068,296.76929795292,299.91223339337,302.93486508491,306.29334474217,309.48390041656,312.81317590289,316.13089140489,319.38705374359,322.78478835788,326.18252297218,329.64821227876,332.97799220076,336.37572681506,340.11323489078,343.8507429665,347.40443916965,351.12904816659,354.74652922115,358.52392281934,362.25078272391,366.27579142084,370.01329949656,373.75080757229,377.90359432309,381.83190611439,385.89770881839,389.97018224052,392.4383479509,398.12586024004,402.50086969323,406.65712867376,411.12588832951,415.52295665389,419.69101100305,424.01384721132,428.62060698183,433.03541842858,437.71969579139,442.27178896054,446.94367405519,451.89870370104,456.45311392871,461.28718092474,466.16918908107,470.92601754108,475.68284600109,481.05345877852,485.87604984397,491.34557385722,496.41773928832,501.44900015948,506.89953276991,512.35006538034,517.80059799077,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 66-tet"},"fj-72tet":{frequencies:[195.99771799087,197.9006084568,199.84081050049,201.76235675531,203.68390301012,205.67661764474,207.66424882366,209.67197738558,211.67753543014,213.81569235368,215.817711945,217.77524221208,219.99743856118,222.13074705632,223.99739198957,226.48625190056,228.66400432268,230.8417567448,233.07836734049,235.19726158904,237.57299150408,239.92824098882,242.11482810637,244.5635242187,246.9571246685,249.45164107929,251.74018824515,254.18454051941,256.66367832138,259.11562717437,261.33029065449,264.17083729204,266.68541956135,269.28382123963,271.86780237443,274.39680518722,277.19677258709,279.99673998696,282.60136082405,285.0875898049,288.0572521987,290.83532347032,293.66437746429,296.5093682426,299.34196929515,302.30156503677,304.88533909691,307.99641398565,311.29049327962,313.59634878539,317.15994365795,320.28895378996,323.39623468494,326.46784071315,329.63252571192,332.8263135694,335.99608798435,339.22681959958,342.55457018224,345.87832586624,349.232297511,352.79589238357,355.99585512627,359.32914964993,362.95873702013,366.4305162438,367.49572123288,373.6206499201,376.91868844398,380.79556638226,384.45706221286,388.2262490973,391.99543598174],description:"Franck Jedrzejewski continued fractions approx. of 72-tet"},"fj-78tet":{frequencies:[138.59131548844,139.82873794816,141.06616040788,142.33702671786,143.60064014465,144.89092073791,146.18536017274,147.4753741736,148.781853392,150.14059177914,151.48353088271,152.80580938469,154.18283848089,155.56168065029,156.95883922787,158.39007484393,159.76498868806,161.21846903757,162.6138101731,164.12129465736,165.53962683341,167.02030328094,168.55700532378,170.00534699915,171.58924774759,173.06676710248,174.62505751543,176.17540104463,177.75842638735,179.35346710269,180.93866188769,182.53490332624,184.15558359423,185.8383548595,187.50589742554,188.98815748424,190.84705739392,192.48793817839,194.02784168382,196.00771761937,197.74614527009,199.57149430335,201.28738678083,203.10796235375,204.87411854813,206.71247055903,207.88697323266,210.45347907504,212.31010032272,214.18657848213,216.10849194808,217.78635291041,220.11561871693,221.7461047815,223.87827886594,225.96410133985,228.00506741647,230.00260868294,232.05987709692,234.17153306667,236.2351968553,238.37706264012,240.41350645954,242.53480210477,244.7463656498,246.9445257794,249.1343885566,251.39820018833,253.59261982991,255.8608901325,258.1602935569,260.55167311827,262.84559834014,265.13121223875,267.51346943117,269.88835121433,272.23294113801,274.70778605744,277.18263097688],description:"Franck Jedrzejewski continued fractions approx. of 78-tet"},"fj-7tet":{frequencies:[261.6255653006,288.87822835275,318.85615771011,352.18826098158,388.70083987518,429.33426100611,473.88781639354,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 7-tet"},"fj-84tet":{frequencies:[97.99885899544,98.81551615374,99.63217331203,100.44883047033,101.26548762862,102.12512674262,102.98185182572,103.83212441184,104.68059938149,105.53723276432,106.39876119505,107.33208366167,108.20707347413,109.09306944775,109.9987192806,110.89344570537,111.83399203009,112.76581035092,113.67867643471,114.64017467391,115.58839778949,116.53918367025,117.50574088079,118.47623251688,119.43610940069,120.45693084856,121.43336875522,122.4985737443,123.47856233425,124.48503710232,125.50731064328,126.58185953578,127.62642101732,128.62350243151,129.74496824748,130.66514532725,131.9215409554,132.99845149381,134.10370178323,135.17083999371,136.34623860235,137.19840259362,138.59838629355,139.73911375276,140.87335980595,142.09834554339,143.22910160872,144.41937115117,145.59830479323,146.83218873215,148.0408295463,149.25980062382,150.498247743,151.74016876713,153.01576229113,154.29607586516,155.64524663982,156.7981743927,158.13452246991,159.45577056885,160.81864040277,162.07503603092,163.33143165907,164.81626285597,166.17197829662,167.54643634704,168.96354999214,170.33135015874,171.49800324202,173.20728566636,174.61614875551,176.03498745477,177.50736723702,178.95443816559,180.52421393897,181.99788099153,183.48722535316,183.74786061645,186.51395744293,188.05186455882,189.60648805639,191.21728584476,192.8364644749,194.36440367429,195.99771799088],description:"Franck Jedrzejewski continued fractions approx. of 84-tet"},"fj-8tet":{frequencies:[261.6255653006,285.40970760065,311.12229387098,339.29565499922,370.01329949656,403.52417698906,440.00663255101,479.64686971777,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 8-tet"},"fj-90tet":{frequencies:[69.29565774422,69.83283338565,70.37840239647,70.9071846685,71.46114704873,72.0131345185,72.59545097014,73.14541650779,73.69538204544,74.24534758309,74.83931036376,75.40998048636,76.00168913882,76.58993750677,77.19009976571,77.78084032514,78.38361285822,78.99704982841,79.59636362512,80.23707738804,80.84493403492,81.4527906818,82.08870225085,82.70772053342,83.37133822351,83.99473665966,84.69469279849,85.2869633775,85.97794571968,86.61957218027,87.31252875772,87.95218098305,88.65767976099,89.35492709123,90.08435506749,90.74431371267,91.43177063473,92.14038007748,92.85618137725,93.5491379547,94.28753430771,95.03404490636,95.75399979201,96.51895185802,97.25706350066,98.00385880968,98.74631228551,99.50145727375,100.29634673506,101.05616754365,101.84361819984,102.66023369514,103.42635484212,103.94348661633,105.02623126858,105.83336819117,106.60870422188,107.47897935838,108.27446522534,109.14066094715,110.05780935847,110.87305239075,111.72157064884,112.60544383436,113.39289449054,114.33783527796,115.19278170468,116.11704811194,116.93642244337,117.80261816517,118.79255613295,119.69249974002,120.62577459179,121.5942673625,122.52275717094,123.4722628897,124.41720367712,125.39214258478,126.36267000417,127.35418180019,128.32529211893,129.35189445588,130.27583655913,131.29703572589,132.29171023897,133.26088027735,134.39157865546,135.4415128637,136.49144707195,137.52522844622,138.59131548844],description:"Franck Jedrzejewski continued fractions approx. of 90-tet"},"fj-96tet":{frequencies:[48.99942949772,49.35708956705,49.70956615711,50.0646344868,50.44058918883,50.81422318282,51.17718191984,51.5338827476,51.91606220592,52.2660581309,52.67438671005,53.04896912563,53.45392308842,53.81904551389,54.21213476343,54.59936429746,54.9993596403,55.39065943221,55.80490581685,56.20522795327,56.62156297514,57.01751796098,57.44760699733,57.85474808165,58.26959183513,58.69162434342,59.11042288614,59.54361052887,59.98206024721,60.41025554513,60.85413018265,61.24928687215,61.73928116713,62.19158359326,62.61038213598,63.09515579158,63.54613512986,63.99925485416,64.47293354963,64.92424408448,65.33257266363,65.89578449693,66.3533941115,66.81740386053,67.32095530991,67.84536391992,68.30223505743,68.78766064103,69.29919314678,69.78706625433,70.30352927934,70.77695371893,71.27189745123,71.86582992999,72.36838818125,72.90159022832,73.41609436608,73.94459360565,74.47913283653,75.03037641838,75.5753912592,76.10549687944,76.66039776256,77.21122223883,77.82262331991,78.34524166943,78.94352530188,79.48796340741,80.07223844749,80.64489438166,81.23589627254,81.66571582953,82.40813142798,82.999033639,83.58726208435,84.21776944921,84.8067048999,85.43490271397,86.04777863014,86.69129834212,87.30807437776,87.94769397027,88.57589178434,89.20408959841,89.83228741249,90.46048522656,91.16172929808,91.87393030822,92.49330511929,93.09891604567,93.82869478287,94.4988997456,95.19889159557,95.91377688915,96.59887529551,97.28872233605,97.99885899544],description:"Franck Jedrzejewski continued fractions approx. of 96-tet"},"fj-9tet":{frequencies:[261.6255653006,282.55561052465,305.22982618403,329.64821227876,355.98232655655,384.51030051755,415.52295665389,448.50096908674,484.4917875937,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 9-tet"},flavel:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Bill Flavel's just tuning. Tuning List 6-5-98"},fogliano:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Fogliano's Monochord with D-/D and Bb-/Bb"},fogliano1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Fogliano's Monochord no.1, Musica theorica (1529)"},fogliano2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Fogliano's Monochord no.2"},"fokker-h":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Fokker-H 5-limit per.bl. synt.comma&small diesis, KNAW B71, 1968"},"fokker-ht":{frequencies:[261.6255653006,272.31140503734,279.67242998298,290.89121260742,305.67073265504,313.92185180985,326.66733279836,335.5942968927,349.22294231864,363.36596605244,376.74379448613,392.00137290182,407.92073675044,419.068143928,436.08264938702,447.85404100892,470.60848490625,489.4864783277,502.71810253025,523.2511306012],description:"Tempered version of Fokker-H per.bl. with better 6 tetrads, OdC"},"fokker-k":{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"Fokker-K 5-limit per.bl. of 225/224 & 81/80 & 10976/10935, KNAW B71, 1968"},"fokker-l":{frequencies:[261.6255653006,271.31540105247,282.62020942966,291.99281841585,301.39265122629,313.95067836072,325.57848126297,339.14425131559,350.39138209902,363.36884069528,376.74081403286,390.69417751556,403.65087217807,420.46965851882,436.04260883433,454.2110508691,468.83301301868,484.38104661368,504.56359022259,523.2511306012],description:"Fokker-L 7-limit periodicity block 10976/10935 & 225/224 & 15625/15552, 1969"},"fokker-lt":{frequencies:[261.6255653006,272.07297743248,282.57734531132,291.77233860052,302.20925621315,313.90139500947,326.42149564976,339.58797317787,349.9403315901,363.14714144228,376.97081214523,391.19775936204,403.12344267272,419.38375585596,436.11106867998,452.98371913917,469.18728997524,484.4545223075,503.15865298196,523.2511306012],description:"Tempered version of Fokker-L per.bl. with more triads"},"fokker-m":{frequencies:[261.6255653006,265.7783520514,274.70684356563,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,336.37572681506,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,406.97310157871,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker-M 7-limit periodicity block 81/80 & 225/224 & 1029/1024, KNAW B72, 1969"},"fokker-n":{frequencies:[261.6255653006,265.7783520514,273.37201925287,277.71125765371,286.15296204753,290.69507255622,299.00064605783,303.74668805875,313.95067836072,318.93402246168,328.62879235146,333.84512238879,343.38355445704,348.83408706747,358.80077526939,364.4960256705,375.57576268738,381.53728273004,392.4383479509,398.6675280771,410.05802887931,416.56688648057,429.2294430713,436.04260883433,450.69091522486,457.84473927605,470.92601754108,478.40103369253,492.94318852719,500.76768358318,515.07533168556,523.2511306012],description:"Fokker-N 7-limit periodicity block 81/80 & 2100875/2097152 & 1029/1024, 1969"},"fokker-n2":{frequencies:[261.6255653006,265.7783520514,272.52663052146,279.06726965397,286.15296204753,290.69507255622,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,334.88072358477,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,478.40103369253,490.54793493862,502.32108537715,515.07533168556,523.2511306012],description:"Fokker-N different block shape"},"fokker-p":{frequencies:[261.6255653006,267.90457886781,273.37201925287,280.31310567921,286.15296204753,290.69507255622,299.00064605783,306.17666156322,312.97980223949,320.35783506196,327.03195662575,334.88072358477,341.85740532612,350.39138209902,357.69120255941,366.27579142084,373.75080757229,382.72082695402,390.69417751556,400.44729382745,408.78994578219,418.60090448096,427.32175665765,437.39523080459,447.11400319927,457.84473927605,470.92601754108,478.40103369253,488.36772189445,500.76768358318,510.98743222773,523.2511306012],description:"Fokker-P 7-limit periodicity block 65625/65536 & 6144/6125 & 2401/2400, 1969"},"fokker-q":{frequencies:[261.6255653006,265.7783520514,269.10058145205,272.52663052146,274.70684356563,279.06726965397,284.76252005507,286.15296204753,290.69507255622,294.32876096318,299.00064605783,301.39265122629,305.22982618403,311.45900631024,313.95067836072,318.93402246168,321.92208230347,327.03195662575,332.22294006425,334.88072358477,340.65828815182,343.38355445704,348.83408706747,353.19451315581,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,381.53728273004,387.59343007496,392.4383479509,398.6675280771,401.85686830172,408.78994578219,412.06026534844,418.60090448096,425.24536328225,429.2294430713,436.04260883433,439.53094970501,448.50096908674,454.2110508691,457.84473927605,465.11211608996,470.92601754108,478.40103369253,480.73697623985,490.54793493862,498.33441009638,502.32108537715,508.71637697339,515.07533168556,523.2511306012],description:"Fokker-Q 7-limit per.bl. 225/224 & 4000/3969 & 6144/6125, KNAW B72, 1969"},"fokker-r":{frequencies:[261.6255653006,264.95644634031,268.26840191956,272.52663052146,275.55899540689,279.06726965397,282.62020942966,287.04062021552,290.69507255622,294.32876096318,298.07600213285,301.80195215951,306.17666156322,310.07474405997,313.95067836072,317.94773560837,322.92069774245,327.03195662575,331.19555792538,334.88072358477,340.1962906258,344.44874425862,348.83408706747,353.19451315581,357.69120255941,363.36884069528,367.91095120397,372.08969287196,376.74081403286,382.72082695402,387.59343007496,392.4383479509,397.43466951046,402.40260287934,408.78994578219,413.33849311034,418.60090448096,423.93031414449,430.56093032327,436.04260883433,441.49314144476,447.11400319927,453.59505416773,459.26499234482,465.11211608996,470.92601754108,476.92160341255,484.38104661368,490.54793493862,496.79333688808,502.32108537715,510.29443593869,516.67311638793,523.2511306012],description:"Fokker-R 7-limit per.bl. 4375/4374 & 65625/65536 & 6144/6125, 1969"},"fokker-s":{frequencies:[261.6255653006,265.7783520514,269.10058145205,273.37201925287,273.85732695955,278.20426865732,282.55561052465,286.15296204753,290.69507255622,295.2417807931,299.00064605783,303.74668805875,304.28591884395,309.04519901133,313.95067836072,317.94773560837,322.92069774245,328.04642310345,332.22294006425,333.84512238879,338.01818641865,343.38355445704,348.83408706747,353.19451315581,358.80077526939,364.4960256705,369.13660007139,370.8542388136,375.57576268738,381.53728273004,387.59343007496,392.4383479509,398.6675280771,404.99558407833,410.05802887931,412.06026534844,417.30640298598,423.93031414449,430.56093032327,436.04260883433,442.96392008567,449.89223739901,450.69091522486,457.84473927605,463.67378109554,470.92601754108,478.40103369253,484.4917875937,492.06963465517,499.88026377668,500.76768358318,508.71637697339,515.07533168556,523.2511306012],description:"Fokker-S 7-limit per.bl. 4375/4374 & 323/322 & 64827/65536, 1969"},fokker_12:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,348.83408706747,367.91095120397,392.4383479509,420.46965851882,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Fokker's 7-limit 12-tone just scale"},fokker_12a:{frequencies:[261.6255653006,274.70684356563,293.02063313667,309.04519901133,327.03195662575,348.83408706747,367.91095120397,390.69417751556,412.06026534844,439.53094970501,465.11211608996,490.54793493862,523.2511306012],description:"Fokker's 7-limit periodicity block of 2048/2025 & 3969/4000 & 225/224"},fokker_12b:{frequencies:[261.6255653006,275.93321340298,293.02063313667,309.04519901133,332.22294006425,348.83408706747,367.91095120397,392.4383479509,412.06026534844,439.53094970501,467.18850946536,496.11959049595,523.2511306012],description:"Fokker's 7-limit semitone scale KNAW B72, 1969"},fokker_12c:{frequencies:[261.6255653006,275.93321340298,293.02063313667,311.45900631024,332.22294006425,348.83408706747,372.08969287196,392.4383479509,412.06026534844,442.96392008567,467.18850946536,496.11959049595,523.2511306012],description:"Fokker's 7-limit complementary semitone scale, KNAW B72, 1969"},fokker_12t:{frequencies:[261.6255653006,279.53180800295,293.53544531438,305.4439412874,326.66157401657,349.08351368992,366.63408494061,391.81886165309,419.06057467847,436.03416050506,457.88164994338,489.21957814041,523.2511306012],description:"Tempered version of fokker_12 with egalised 225/224, see also lumma"},fokker_12t2:{frequencies:[261.6255653006,279.53060025556,293.5302824794,305.44678713816,326.66192308793,349.10467831311,366.62831408589,391.81689264402,419.03095498017,436.04260883433,457.88067400285,489.21694446174,523.2511306012],description:"Another tempered version of fokker_12 with egalised 225/224"},fokker_22:{frequencies:[261.6255653006,272.52663052146,279.06726965397,287.4304306281,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Fokker's 22-tone periodicity block of 2048/2025 & 3125/3072. KNAW B71, 1968"},fokker_22a:{frequencies:[261.6255653006,269.46602871384,279.06726965397,287.4304306281,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,431.14564594215,446.50763144636,459.88868900496,476.27480687611,490.54793493862,502.32108537715,523.2511306012],description:"Fokker's 22-tone periodicity block of 2048/2025 & 2109375/2097152 = semicomma"},fokker_31:{frequencies:[261.6255653006,265.7783520514,275.93321340298,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,315.35224388912,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,406.97310157871,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,482.88312345521,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone just system"},fokker_31a:{frequencies:[261.6255653006,269.10058145205,272.52663052146,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,311.45900631024,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,412.06026534844,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,476.92160341255,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone first alternate septimal tuning"},fokker_31b:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,480.53675259294,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone second alternate septimal tuning"},fokker_31c:{frequencies:[261.6255653006,269.46602871384,272.52663052146,279.06726965397,287.4304306281,294.32876096318,297.67175429757,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,344.91651675372,348.83408706747,359.28803828513,367.91095120397,372.08969287196,383.2405741708,392.4383479509,396.89567239676,408.78994578219,418.60090448096,431.14564594215,436.04260883433,446.50763144636,459.88868900496,465.11211608996,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Fokker's 31-tone periodicity block of 81/80 & 2109375/2097152 = semicomma"},fokker_31d:{frequencies:[261.6255653006,266.13928761861,272.52663052146,279.06726965397,287.4304306281,294.32876096318,299.40669857094,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,359.28803828513,367.91095120397,376.74081403286,383.2405741708,392.4383479509,399.20893142792,408.78994578219,418.60090448096,425.82286018978,436.04260883433,443.56547936435,459.88868900496,470.92601754108,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Fokker's 31-tone periodicity block of 81/80 & W\xEF\xBF\xBDrschmidt's comma"},fokker_31d2:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,290.69507255622,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,425.82286018978,436.04260883433,446.50763144636,454.2110508691,465.11211608996,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Reduced version of fokker_31d by Prooijen expressibility"},fokker_41:{frequencies:[261.6255653006,264.89588486686,271.31540105247,274.70684356563,280.31310567921,283.8170195002,290.69507255622,294.32876096318,300.33547037059,305.22982618403,311.45900631024,313.95067836072,321.55899383997,325.57848126297,329.64821227876,336.37572681506,341.85740532612,348.83408706747,353.19451315581,361.75386806997,366.27579142084,373.75080757229,378.42269266694,387.59343007496,392.4383479509,400.44729382745,406.97310157871,415.27867508032,420.46965851882,425.72552925031,436.04260883433,439.53094970501,448.50096908674,455.80987376816,465.11211608996,470.92601754108,482.33849075995,488.36772189445,498.33441009638,504.56359022259,516.79124009995,523.2511306012],description:"Fokker's 7-limit supracomma per.bl. 10976/10935 & 225/224 & 496125/262144"},fokker_41a:{frequencies:[261.6255653006,264.59711493117,272.83435407277,275.93321340298,279.06726965397,287.4304306281,291.02331101095,294.32876096318,297.67175429757,306.59245933664,310.42486507835,313.95067836072,323.35923445661,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.77913876369,367.91095120397,372.08969287196,376.315896791,388.03108134794,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,431.14564594215,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,485.03885168492,490.54793493862,496.11959049595,502.32108537715,517.37477513058,523.2511306012],description:"Fokker's 41-tone periodicity block of schisma & 34171875/33554432"},fokker_41b:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,287.4304306281,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.42486507835,313.95067836072,323.35923445661,327.03195662575,331.11985608357,340.65828815182,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,383.2405741708,388.03108134794,392.4383479509,397.34382730029,408.78994578219,413.89982010446,418.60090448096,431.14564594215,436.04260883433,441.49314144476,454.2110508691,459.88868900496,465.11211608996,470.92601754108,485.03885168492,490.54793493862,496.67978412536,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 41-tone periodicity block of schisma & 3125/3072"},fokker_53:{frequencies:[261.6255653006,263.718569823,268.26840191956,272.52663052146,274.70684356563,279.06726965397,282.55561052465,286.15296204753,290.69507255622,294.32876096318,299.00064605783,300.46061014991,305.22982618403,309.04519901133,313.95067836072,317.87506184023,321.92208230347,327.03195662575,329.64821227876,334.88072358477,340.65828815182,343.38355445704,348.83408706747,353.19451315581,357.69120255941,360.55273217989,366.27579142084,373.75080757229,376.74081403286,381.53728273004,386.30649876417,392.4383479509,398.6675280771,400.61414686654,410.05802887931,412.06026534844,418.60090448096,423.83341578697,429.2294430713,436.04260883433,439.53094970501,448.50096908674,450.69091522486,457.84473927605,465.11211608996,470.92601754108,476.92160341255,480.73697623985,490.54793493862,498.33441009638,502.32108537715,508.71637697339,515.07533168556,523.2511306012],description:"Fokker's 53-tone system, degree 37 has alternatives"},fokker_53a:{frequencies:[261.6255653006,264.89588486686,269.46602871384,272.52663052146,275.93321340298,279.38237857051,283.88190679319,287.4304306281,290.69507255622,294.32876096318,298.00787047521,302.80736724606,306.59245933664,310.42486507835,313.95067836072,319.36714514233,323.35923445661,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,359.28803828513,363.36884069528,367.91095120397,372.50983809402,378.50920905758,383.2405741708,388.03108134794,392.4383479509,397.34382730029,403.74315632809,408.78994578219,413.89982010446,418.60090448096,425.82286018978,431.14564594215,436.04260883433,441.49314144476,447.01180571282,454.2110508691,459.88868900496,465.63729761752,470.92601754108,479.0507177135,484.4917875937,490.54793493862,496.67978412536,504.67894541011,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 53-tone periodicity block of schisma & kleisma"},fokker_53b:{frequencies:[261.6255653006,264.59711493117,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.51653791741,323.35923445661,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,388.03108134794,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.89982010446,418.60090448096,423.35538388988,431.14564594215,436.04260883433,441.49314144476,446.50763144636,451.5790761492,459.88868900496,465.11211608996,470.92601754108,476.27480687611,485.03885168492,490.54793493862,496.11959049595,502.32108537715,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 53-tone periodicity block of schisma & 2109375/2097152"},fokker_av:{frequencies:[261.6255653006,267.53238172257,273.57240048543,279.74894499065,286.06477437084,292.52336378682,299.12777114678,305.88111195206,312.78710209553,319.84901131344,327.07017092477,334.45455423048,342.00545991849,349.72704272607,357.62295854304,365.69693211485,373.95340598657,382.39606841888,391.02956482064,399.85798283974,408.88548711149,418.11704484248,427.5567798744,437.20988623572,447.08093432269,457.17458061119,467.49637893146,478.0512162812,488.84407170063,499.88088374606,511.16658268681,522.70737825664],description:"Fokker's suggestion for a shrinked octave by averaging approximations"},fokker_bosch:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,348.83408706747,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'Scale of "Naar Den Bosch toe", genus diatonicum cum septimis. 1/1=D'},fokker_sr:{frequencies:[261.6255653006,269.10058145205,279.06726965397,287.04062021552,296.75121990114,305.22982618403,315.35224388912,325.57848126297,336.37572681506,347.28371334717,358.80077526939,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,434.10464168396,446.50763144636,461.31528248922,474.80195184183,490.54793493862,506.45541529795,523.2511306012],description:"Fokker's 7-limit sruti scale, KNAW B72, 1969"},fokker_sr2:{frequencies:[261.6255653006,270.30192333353,279.06726965397,288.32205155576,296.75121990114,306.59245933664,315.35224388912,327.03195662575,336.37572681506,348.83408706747,358.80077526939,372.08969287196,381.53728273004,394.1903048614,406.97310157871,420.46965851882,434.10464168396,448.50096908674,461.31528248922,476.92160341255,490.54793493862,508.71637697339,523.2511306012],description:"Fokker's complementary 7-limit sruti scale, KNAW B72, 1969"},fokker_sra:{frequencies:[261.6255653006,269.76956886185,278.7476190342,287.42460593148,296.37169586701,305.59729331129,315.11006948887,325.59707150921,336.43308557971,346.90573279191,357.7043774887,368.83916960349,381.11429755927,392.97780480816,406.05627704035,419.57000893919,433.5334812886,447.02871783796,460.94403787128,475.29252052682,490.08765232515,506.39798251136,523.2511306012],description:"Two-step approximation 9-13 to Fokker's 7-limit sruti scale"},fokker_srb:{frequencies:[261.6255653006,269.31534001393,278.64197723942,286.83190328195,296.76515515861,305.48776291796,316.06708432391,325.35701999957,336.62443200122,346.51859521924,358.51885197895,369.0565423573,381.83730669135,393.06038214356,406.67242132093,418.62545783369,433.12283887627,445.85331391262,461.29362042034,474.85209942927,491.29666030217,505.73699464332,523.2511306012],description:"Two-step maximally even approximation 11-11 to Fokker's 7-limit sruti scale"},fokker_uv:{frequencies:[220,220.05029721079,220.09166666667,220.14198483463,220.15668113546,220.24841308594,220.29876708984,220.3905582428,220.5253936656,220.68244897959,220.7744,220.82487425697,220.98214285714,221.03266460905,221.0236875,221.07421875,221.28224372864,221.41762468656,221.66763848397,221.71831695641,221.76,221.81069958848,222.01040039062,222.06115722656,222.40609622534,222.44790857143,222.4987654321,222.65722615577,222.75,222.80092592593,223.00151824951,223.05250167847,223.14544022083,223.18896568405,223.23999196793,223.44097959184,223.49206349206,223.58518518519,223.79557291667,223.88882107205,224.18534499514,224.23659907493,224.33003099121,224.48979591837,224.58333333333,224.79466029576,224.83692169189,224.88832473755,225.18617242815,225.28,225.33150434385,225.49198250729,225.5859375,225.67993164062,225.9788277551,226.03049186753,226.28571428571,226.4317558299,226.68743133545,227.08224,227.1341563786,227.29591836735,227.390625,227.44261188272,228.096,228.14814814815,229.16666666667,231,232.03125,233.6237037037,233.84353741497],description:"Table of Unison Vectors, Microsons and Minisons, from article KNAW, 1969"},foote:{frequencies:[261.6255653006,276.70272600503,293.15632631094,310.58830860439,328.48713220126,349.43001184052,368.92737853004,391.76907592069,414.58565256441,438.98455767189,465.89457252293,492.17459484008,523.2511306012],description:"Ed Foote, piano temperament. TL 9 Jun 1999, almost equal to Coleman"},forster:{frequencies:[261.6255653006,279.06726965397,283.42769574232,287.78812183066,299.00064605783,309.19384990071,319.76457981184,327.03195662575,336.37572681506,340.11323489078,343.38355445704,353.19451315581,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,387.59343007496,392.4383479509,398.6675280771,402.50086969323,406.97310157871,418.60090448096,428.11456140098,441.49314144476,442.75095666255,448.50096908674,457.84473927605,465.11211608996,483.00104363188,490.54793493862,507.3950357345,523.2511306012],description:"Cris Forster's Chrysalis tuning, XH 7+8"},fortuna11:{frequencies:[261.6255653006,274.70684356563,299.00064605783,305.22982618403,332.97799220076,343.38355445704,373.75080757229,398.6675280771,411.12588832951,448.50096908674,457.84473927605,498.33441009638,523.2511306012],description:"11-limit scale from Clem Fortuna"},fortuna_a1:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,320.24370022528,349.22823143301,369.99442271164,391.99543598175,415.30469757995,440,466.16376151809,479.82340237272,523.2511306012],description:"Clem Fortuna, Arabic mode of 24-tET, try C or G major, superset of Basandida, trivalent"},fortuna_a2:{frequencies:[261.6255653006,277.18263097687,285.30470202322,311.12698372208,329.62755691287,349.22823143301,369.99442271164,391.99543598175,428.11456140098,440,466.16376151809,493.88330125613,523.2511306012],description:"Clem Fortuna, Arabic mode of 24-tET, try C or F minor"},fortuna_bag:{frequencies:[261.6255653006,266.17557513191,291.58269109838,303.42373253797,318.96815495553,348.01136516401,359.18086083642,388.55281975337,398.8194592997,432.92801877123,462.35552488468,479.64686971777,523.2511306012],description:"Bagpipe tuning from Fortuna, try key of G with F natural"},fortuna_eth:{frequencies:[261.6255653006,280.31310567921,288.69027895239,305.7551787248,323.91736656265,346.02090894595,368.95913055213,385.17097113699,414.24047839262,422.62591317789,469.58434797544,484.00729580611,523.2511306012],description:"Ethiopian Tunings from Fortuna"},fortuna_sheng:{frequencies:[261.6255653006,275.29257244317,286.94416839421,312.81317590289,320.2657782128,348.83408706747,367.19377586049,382.62738925213,417.81993264424,433.74764773521,467.75479856774,484.77678276288,523.2511306012],description:"Sheng scale on naturals starting on d, from Fortuna"},"francis_r12-14p":{frequencies:[261.6255653006,277.2273508585,293.19140419912,311.27759533081,328.56574776048,349.51003591412,369.636465861,391.67937618637,415.43871422078,438.93656251816,466.46466724696,492.84862139436,523.2511306012],description:"Bach WTC theoretical temperament, 1/14 Pyth. comma, Cornet-ton"},"francis_r12-2":{frequencies:[261.6255653006,277.2831963903,293.15801965318,311.35818177599,328.6319369554,349.45847225471,369.71092870521,391.50168688506,415.45657533448,438.80025285527,466.56783666625,492.94847466277,523.2511306012],description:"J. Charles Francis, Bach WTC temperament R12-2, fifths beat ratios 0, 1, 2. C=279.331 Cornet-ton"},"francis_r2-1":{frequencies:[261.6255653006,276.41735337657,293.40958958006,310.96959408698,328.77281747949,349.18425877583,368.55655650762,391.91325216238,414.62612565656,439.06418506387,465.92902003736,492.10921220871,523.2511306012],description:"J. Charles Francis, Bach WTC temperament R2-1, fifths beat ratios 0, 1, 2. C=249.072 Cammerton"},"francis_r2-14p":{frequencies:[261.6255653006,276.42350693124,293.47533146651,310.97644498676,328.88393162803,349.17189700163,368.56467609256,392.05867944486,414.6352601896,439.36162975058,466.01338145177,492.37181018521,523.2511306012],description:"Bach WTC theoretical temperament, 1/14 Pyth. comma, Cammerton"},francis_seal:{frequencies:[261.6255653006,275.89934348748,293.01242796531,310.38672525582,327.92787107993,349.18506556371,367.865749003,391.38524198103,413.84896721463,437.93907827641,465.58008765101,490.83740312498,523.2511306012],description:"J. Charles Francis, Bach tuning interpretion as beats/sec. from seal"},francis_suppig:{frequencies:[261.6255653006,276.33536163417,293.13939342657,310.64213412049,328.58201670643,349.47038191026,368.45885450371,391.47500324588,414.51381656966,438.73106346722,465.97531289569,491.91879926026,523.2511306012],description:"J. Charles Francis, Suppig Calculus musicus, 5ths beat ratios 0, 1, 2."},efg333:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,523.2511306012],description:"Genus primum [333]"},efg333333333337:{frequencies:[261.6255653006,275.01702890535,279.38237857051,289.72987407313,294.32876096318,309.39415751852,314.30517589183,325.94610833227,331.11985608357,343.38355445704,353.59332287831,366.6893718738,372.50983809402,386.30649876417,392.4383479509,412.52554335802,419.07356785577,434.59481110969,441.49314144476,457.84473927605,471.45776383774,488.9191624984,496.67978412536,515.07533168556,523.2511306012],description:"Genus [333333333337]"},efg333333355:{frequencies:[261.6255653006,264.89588486686,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.42486507835,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,397.34382730029,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Genus [333333355]"},efg33335:{frequencies:[261.6255653006,275.93321340298,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Genus [33335]"},efg3333555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Genus [3333555]"},efg33335555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Genus bis-ultra-chromaticum [33335555]"},efg333355577:{frequencies:[261.6255653006,267.07609791103,268.26840191956,272.52663052146,274.70684356563,278.20426865732,279.06726965397,281.68182201554,284.8811711051,286.15296204753,290.69507255622,294.32876096318,300.46061014991,305.22982618403,306.59245933664,312.97980223949,313.95067836072,317.94773560837,320.49131749323,321.92208230347,325.57848126297,327.03195662575,333.84512238879,343.38355445704,348.83408706747,352.10227751942,356.10146388137,357.69120255941,360.55273217989,363.36884069528,366.27579142084,367.91095120397,372.08969287196,375.57576268738,381.53728273004,392.4383479509,400.61414686654,402.40260287934,406.97310157871,408.78994578219,412.06026534844,417.30640298598,418.60090448096,427.32175665765,429.2294430713,436.04260883433,445.12682985172,450.69091522486,457.84473927605,459.88868900496,465.11211608996,469.46970335923,470.92601754108,476.92160341255,480.73697623985,488.36772189445,490.54793493862,500.76768358318,508.71637697339,515.07533168556,523.2511306012],description:"Genus [333355577]"},efg33337:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,386.30649876417,392.4383479509,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"Genus [33337]"},efg3335:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Genus diatonicum veterum correctum [3335]"},efg33355:{frequencies:[261.6255653006,272.52663052146,290.69507255622,310.07474405997,327.03195662575,348.83408706747,363.36884069528,387.59343007496,408.78994578219,436.04260883433,465.11211608996,484.4917875937,523.2511306012],description:"Genus diatonico-chromaticum hodiernum correctum [33355]"},efg333555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Genus diatonico-hyperchromaticum [333555]"},efg33355555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,287.4304306281,294.32876096318,306.59245933664,313.95067836072,319.36714514233,327.03195662575,340.65828815182,348.83408706747,359.28803828513,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,425.82286018978,436.04260883433,459.88868900496,470.92601754108,479.0507177135,490.54793493862,510.98743222773,523.2511306012],description:"Genus [33355555]"},efg333555777:{frequencies:[261.6255653006,262.79353657426,267.07609791103,268.26840191956,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,281.68182201554,286.15296204753,294.32876096318,299.00064605783,300.46061014991,305.22982618403,306.59245933664,311.45900631024,312.97980223949,313.95067836072,318.93402246168,320.49131749323,321.92208230347,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,350.39138209902,352.10227751942,357.69120255941,358.80077526939,360.55273217989,366.27579142084,367.91095120397,373.75080757229,375.57576268738,381.53728273004,392.4383479509,398.6675280771,400.61414686654,402.40260287934,408.78994578219,412.06026534844,417.30640298598,418.60090448096,420.46965851882,427.32175665765,429.2294430713,436.04260883433,448.50096908674,450.69091522486,457.84473927605,459.88868900496,467.18850946536,469.46970335923,470.92601754108,476.92160341255,478.40103369253,480.73697623985,488.36772189445,490.54793493862,498.33441009638,500.76768358318,515.07533168556,523.2511306012],description:"Genus [333555777]"},efg333557:{frequencies:[261.6255653006,265.7783520514,279.06726965397,280.31310567921,290.69507255622,299.00064605783,313.95067836072,318.93402246168,327.03195662575,332.22294006425,348.83408706747,358.80077526939,372.08969287196,373.75080757229,392.4383479509,398.6675280771,418.60090448096,425.24536328225,436.04260883433,448.50096908674,465.11211608996,478.40103369253,490.54793493862,498.33441009638,523.2511306012],description:"Genus diatonico-enharmonicum [333557]"},efg33357:{frequencies:[261.6255653006,274.70684356563,279.06726965397,305.22982618403,313.95067836072,325.57848126297,343.38355445704,348.83408706747,366.27579142084,372.08969287196,392.4383479509,406.97310157871,418.60090448096,457.84473927605,465.11211608996,488.36772189445,523.2511306012],description:"Genus diatonico-enharmonicum [33357]"},efg3335711:{frequencies:[261.6255653006,265.58571790036,269.80136421624,275.93321340298,286.15296204753,294.32876096318,295.09524211152,303.52653474327,314.76825825228,321.92208230347,327.03195662575,331.98214737546,337.2517052703,343.38355445704,354.11429053382,359.73515228832,367.91095120397,379.40816842909,386.30649876417,392.4383479509,393.46032281536,404.70204632437,429.2294430713,441.49314144476,442.64286316727,449.66894036041,457.84473927605,472.15238737843,482.88312345521,490.54793493862,505.87755790546,515.07533168556,523.2511306012],description:"Genus [3 3 3 5 7 11], expanded hexany 1 3 5 7 9 11"},efg333577:{frequencies:[261.6255653006,267.07609791103,281.68182201554,286.15296204753,294.32876096318,300.46061014991,305.22982618403,321.92208230347,327.03195662575,333.84512238879,343.38355445704,348.83408706747,367.91095120397,375.57576268738,381.53728273004,392.4383479509,400.61414686654,429.2294430713,436.04260883433,450.69091522486,457.84473927605,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:"Genus [333577]"},efg3337:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,392.4383479509,457.84473927605,515.07533168556,523.2511306012],description:"Genus [3337]"},efg33377:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,515.07533168556,523.2511306012],description:"Genus [33377] Bi-enharmonicum simplex"},efg335:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Genus secundum [335]"},efg3355:{frequencies:[261.6255653006,279.06726965397,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Genus chromaticum veterum correctum [3355]"},efg33555:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,367.91095120397,392.4383479509,408.78994578219,418.60090448096,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"Genus bichromaticum [33555]"},efg335555577:{frequencies:[261.6255653006,267.07609791103,268.26840191956,272.52663052146,274.70684356563,279.06726965397,286.15296204753,293.02063313667,300.46061014991,305.22982618403,306.59245933664,312.97980223949,313.95067836072,320.49131749323,327.03195662575,333.84512238879,334.88072358477,341.85740532612,343.38355445704,348.83408706747,357.69120255941,366.27579142084,375.57576268738,381.53728273004,384.58958099188,390.69417751556,392.4383479509,400.61414686654,408.78994578219,417.30640298598,418.60090448096,427.32175665765,429.2294430713,436.04260883433,439.53094970501,446.50763144636,457.84473927605,469.46970335923,476.92160341255,480.73697623985,488.36772189445,490.54793493862,500.76768358318,502.32108537715,512.78610798918,523.2511306012],description:"Genus [335555577]"},efg33557:{frequencies:[261.6255653006,274.70684356563,279.06726965397,286.15296204753,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,418.60090448096,429.2294430713,436.04260883433,457.84473927605,488.36772189445,490.54793493862,523.2511306012],description:"Genus chromatico-enharmonicum [33557]"},efg335577:{frequencies:[261.6255653006,274.70684356563,279.06726965397,280.31310567921,286.15296204753,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,478.40103369253,488.36772189445,490.54793493862,498.33441009638,523.2511306012],description:"Genus chromaticum septimis triplex [335577]"},efg3357:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,343.38355445704,348.83408706747,381.53728273004,392.4383479509,429.2294430713,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Genus enharmonicum vocale [3357]"},efg33577:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,305.22982618403,327.03195662575,343.38355445704,348.83408706747,373.75080757229,381.53728273004,392.4383479509,398.6675280771,429.2294430713,436.04260883433,448.50096908674,457.84473927605,490.54793493862,498.33441009638,523.2511306012],description:"Genus [33577]"},efg337:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,457.84473927605,515.07533168556,523.2511306012],description:"Genus quintum [337]"},efg3377:{frequencies:[261.6255653006,299.00064605783,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,523.2511306012],description:"Genus [3377]"},efg33777:{frequencies:[261.6255653006,267.07609791103,299.00064605783,300.46061014991,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [33777]"},efg33777a:{frequencies:[261.6255653006,267.07609791103,299.00064605783,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,523.2511306012],description:"Genus [33777] with comma discarded which disappears in 31-tET"},efg355:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Genus tertium [355]"},efg3555:{frequencies:[261.6255653006,306.59245933664,327.03195662575,383.2405741708,392.4383479509,408.78994578219,490.54793493862,510.98743222773,523.2511306012],description:"Genus enharmonicum veterum correctum [3555]"},efg35555:{frequencies:[261.6255653006,306.59245933664,313.95067836072,327.03195662575,334.88072358477,392.4383479509,408.78994578219,418.60090448096,490.54793493862,502.32108537715,523.2511306012],description:"Genus [35555]"},efg35557:{frequencies:[261.6255653006,268.26840191956,274.70684356563,286.15296204753,306.59245933664,313.95067836072,327.03195662575,343.38355445704,357.69120255941,366.27579142084,392.4383479509,408.78994578219,418.60090448096,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus [35557]"},efg3557:{frequencies:[261.6255653006,274.70684356563,286.15296204753,313.95067836072,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus enharmonicum instrumentale [3557]"},efg35577:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,358.80077526939,366.27579142084,373.75080757229,392.4383479509,418.60090448096,429.2294430713,448.50096908674,457.84473927605,478.40103369253,490.54793493862,523.2511306012],description:"Genus [35577]"},efg357:{frequencies:[261.6255653006,286.15296204753,327.03195662575,343.38355445704,392.4383479509,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus sextum [357] & 7-limit Octony, see ch.6 p.118"},efg35711:{frequencies:[261.6255653006,269.80136421624,286.15296204753,295.09524211152,314.76825825228,327.03195662575,337.2517052703,343.38355445704,359.73515228832,392.4383479509,393.46032281536,429.2294430713,449.66894036041,457.84473927605,472.15238737843,490.54793493862,523.2511306012],description:"Genus [3 5 7 11]"},efg3571113:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.01701053212,278.99913799634,286.15296204753,292.28481123426,295.09524211152,314.76825825228,318.85615771011,319.68651228748,327.03195662575,337.2517052703,343.38355445704,348.74892249543,359.73515228832,365.35601404283,371.99885066179,383.62381474497,392.4383479509,393.46032281536,398.57019713763,425.14154361347,429.2294430713,438.4272168514,449.66894036041,457.84473927605,464.99856332724,472.15238737843,479.52976843121,490.54793493862,511.49841965996,523.2511306012],description:"Genus [3 5 7 11 13]"},efg3577:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,327.03195662575,343.38355445704,373.75080757229,392.4383479509,429.2294430713,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Genus [3577]"},efg35777:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,300.46061014991,327.03195662575,343.38355445704,373.75080757229,375.57576268738,392.4383479509,400.61414686654,429.2294430713,448.50096908674,457.84473927605,490.54793493862,500.76768358318,523.2511306012],description:"Genus [35777]"},efg35777a:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,327.03195662575,343.38355445704,373.75080757229,392.4383479509,400.61414686654,429.2294430713,448.50096908674,457.84473927605,490.54793493862,500.76768358318,523.2511306012],description:"Genus [35777] with comma discarded which disappears in 31-tET"},efg377:{frequencies:[261.6255653006,300.46061014991,343.38355445704,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Genus octavum [377]"},efg3777:{frequencies:[261.6255653006,262.90303388117,300.46061014991,343.38355445704,350.53737850823,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Genus [3777]"},efg37777:{frequencies:[261.6255653006,262.90303388117,299.00064605783,300.46061014991,343.38355445704,350.53737850823,392.4383479509,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [37777]"},efg37777a:{frequencies:[261.6255653006,299.00064605783,343.38355445704,350.53737850823,392.4383479509,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [37777] with comma discarded that disappears in 31-tET"},efg555:{frequencies:[261.6255653006,327.03195662575,408.78994578219,510.98743222773,523.2511306012],description:"Genus quartum [555]"},efg55557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,366.27579142084,408.78994578219,418.60090448096,447.11400319927,457.84473927605,510.98743222773,523.2511306012],description:"Genus [55557]"},efg5557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,408.78994578219,447.11400319927,457.84473927605,510.98743222773,523.2511306012],description:"Genus [5557]"},efg55577:{frequencies:[261.6255653006,286.15296204753,291.99281841585,299.00064605783,327.03195662575,357.69120255941,373.75080757229,408.78994578219,447.11400319927,457.84473927605,467.18850946536,510.98743222773,523.2511306012],description:"Genus [55577]"},efg557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,366.27579142084,418.60090448096,457.84473927605,523.2511306012],description:"Genus septimum [557]"},efg5577:{frequencies:[261.6255653006,293.02063313667,320.49131749323,334.88072358477,366.27579142084,400.61414686654,418.60090448096,457.84473927605,512.78610798918,523.2511306012],description:"Genus [5577]"},efg55777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,320.49131749323,327.03195662575,366.27579142084,373.75080757229,400.61414686654,418.60090448096,457.84473927605,478.40103369253,500.76768358318,523.2511306012],description:"Genus [55777]"},efg577:{frequencies:[261.6255653006,286.15296204753,327.03195662575,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Genus nonum [577]"},efg5777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Genus [5777]"},efg57777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,350.53737850823,373.75080757229,400.61414686654,438.17172313528,457.84473927605,500.76768358318,523.2511306012],description:"Genus [57777]"},efg777:{frequencies:[261.6255653006,350.53737850823,400.61414686654,457.84473927605,523.2511306012],description:"Genus decimum [777]"},efg77777:{frequencies:[261.6255653006,299.00064605783,341.71502406609,350.53737850823,400.61414686654,457.84473927605,523.2511306012],description:"Genus [77777]"},eikohole1:{frequencies:[261.6255653006,277.4816601673,305.22982618403,332.97799220076,436.04260883433,475.68284600109,523.2511306012],description:"First eikohole ball <6 9 13 17 20|-epimorphic"},eikohole2:{frequencies:[261.6255653006,266.38239376061,274.70684356563,285.40970760065,299.68019298069,313.95067836072,332.97799220076,348.83408706747,366.27579142084,380.54627680087,392.4383479509,399.57359064092,418.60090448096,428.11456140098,443.97065626768,470.92601754108,488.36772189445,499.46698830115,523.2511306012],description:"Second eikohole ball"},eikohole4:{frequencies:[261.6255653006,274.70684356563,279.79400733536,287.78812183066,305.22982618403,313.95067836072,319.76457981184,335.75280880244,348.83408706747,359.73515228832,366.27579142084,373.05867644715,383.71749577421,392.4383479509,406.97310157871,418.60090448096,419.69101100305,431.68218274599,447.67041173658,457.84473927605,470.92601754108,479.64686971777,488.36772189445,503.62921320365,523.2511306012],description:"Fourth eikohole ball"},eikohole5:{frequencies:[261.6255653006,266.38239376061,274.70684356563,279.06726965397,285.40970760065,287.78812183066,294.32876096318,295.98043751179,299.68019298069,305.22982618403,313.95067836072,321.08592105074,325.57848126297,332.97799220076,342.49164912079,348.83408706747,353.19451315581,355.17652501415,363.24871876447,366.27579142084,374.60024122586,380.54627680087,392.4383479509,399.57359064092,406.97310157871,412.06026534844,418.60090448096,428.11456140098,439.53094970501,443.97065626768,448.50096908674,449.52028947103,456.65553216105,457.84473927605,465.11211608996,466.16918908107,470.92601754108,475.68284600109,488.36772189445,499.46698830115,507.3950357345,513.73747368118,523.2511306012],description:"Fifth eikohole ball"},eikohole6:{frequencies:[261.6255653006,266.38239376061,272.43653907335,274.70684356563,279.06726965397,285.40970760065,287.78812183066,293.02063313667,294.32876096318,295.98043751179,299.00064605783,299.68019298069,305.22982618403,310.77945938738,313.95067836072,317.12189733406,321.08592105074,325.57848126297,329.64821227876,332.97799220076,336.37572681506,342.49164912079,348.83408706747,349.6268918108,353.19451315581,355.17652501415,356.76213450082,363.24871876447,366.27579142084,374.60024122586,380.54627680087,383.71749577421,392.4383479509,399.57359064092,406.97310157871,412.06026534844,418.60090448096,428.11456140098,431.68218274599,439.53094970501,443.97065626768,448.50096908674,449.52028947103,456.65553216105,457.84473927605,465.11211608996,466.16918908107,470.92601754108,475.68284600109,484.33162501929,488.36772189445,499.46698830115,507.3950357345,513.73747368118,523.2511306012],description:"Sixth eikohole ball"},eikosany:{frequencies:[261.6255653006,269.80136421624,274.70684356563,287.78812183066,294.32876096318,305.22982618403,323.76163705949,335.75280880244,343.38355445704,359.73515228832,366.27579142084,377.72190990274,392.4383479509,412.06026534844,419.69101100305,431.68218274599,457.84473927605,470.92601754108,479.64686971777,503.62921320365,523.2511306012],description:"3)6 1.3.5.7.9.11 Eikosany (1.3.5 tonic)"},ekring1:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,353.19451315581,367.91095120397,376.74081403286,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Single-tie circular mirroring of 3:4:5"},ekring2:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,384.42940207435,400.61414686654,448.50096908674,457.84473927605,504.56359022259,515.07533168556,523.2511306012],description:"Single-tie circular mirroring of 6:7:8"},ekring3:{frequencies:[261.6255653006,266.96486255163,299.00064605783,305.10270005901,327.03195662575,333.70607818954,341.71502406609,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,523.2511306012],description:"Single-tie circular mirroring of 4:5:7"},ekring4:{frequencies:[261.6255653006,279.06726965397,313.95067836072,334.88072358477,348.83408706747,376.74081403286,392.4383479509,401.85686830172,436.04260883433,446.50763144636,465.11211608996,502.32108537715,523.2511306012],description:"Single-tie circular mirroring of 4:5:6"},ekring5:{frequencies:[261.6255653006,263.718569823,269.10058145205,305.22982618403,322.92069774245,366.27579142084,373.75080757229,376.74081403286,384.42940207435,439.53094970501,448.50096908674,512.78610798918,523.2511306012],description:"Single-tie circular mirroring of 3:5:7"},ekring5bp:{frequencies:[261.6255653006,282.55561052465,336.37572681506,363.28578496026,366.27579142084,395.57785473451,432.48307733364,512.78610798918,560.62621135843,605.4763082671,610.45965236807,659.29642455751,784.8766959018],description:"Single-tie BP circular mirroring of 3:5:7"},ekring6:{frequencies:[261.6255653006,288.32205155576,299.00064605783,336.37572681506,348.83408706747,384.42940207435,392.4383479509,406.97310157871,432.48307733364,465.11211608996,494.26637409559,512.57253609913,523.2511306012],description:"Single-tie circular mirroring of 6:7:9"},ekring7:{frequencies:[261.6255653006,266.96486255163,290.69507255622,296.62762505737,322.99452506247,336.37572681506,343.24053756638,406.97310157871,415.27867508032,432.48307733364,470.92601754108,480.53675259294,523.2511306012],description:"Single-tie circular mirroring of 5:7:9"},ekring7bp:{frequencies:[261.6255653006,311.45900631024,336.37572681506,400.44729382745,432.48307733364,436.04260883433,470.92601754108,514.86080634958,610.45965236807,667.41215637908,720.80512888941,726.73768139056,784.8766959018],description:"Single-tie BP circular mirroring of 5:7:9"},ellis:{frequencies:[261.6255653006,277.10015133873,293.57875905702,310.98767008297,329.52610437773,349.11112716429,369.96685849926,391.93834696391,415.15022554673,439.86813926913,465.98150356841,493.78915701915,523.2511306012],description:"Alexander John Ellis' imitation equal temperament (1875)"},ellis_24:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,294.32876096318,298.00787047521,306.59245933664,310.42486507835,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.50983809402,392.4383479509,397.34382730029,408.78994578219,413.89982010446,436.04260883433,441.49314144476,459.88868900496,465.63729761752,490.54793493862,496.67978412536,523.2511306012],description:"Ellis, from p.421 of Helmholtz, 24 tones of JI for 1 manual harmonium"},ellis_eb:{frequencies:[261.6255653006,277.21587437848,293.6537610003,311.19285946782,329.68548178616,349.2169654334,370.02116610622,391.93834696391,415.32381240723,439.98064151826,466.28928903228,494.02822100775,523.2511306012],description:"Ellis' new equal beating temperament for pianofortes (1885)"},ellis_harm:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,353.19451315581,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ellis's Just Harmonium"},ellis_mteb:{frequencies:[261.6255653006,273.31920907322,292.34465012884,313.05587813274,326.9349299255,350.18846153218,365.78692922515,391.15004079048,408.78346942429,437.23842445073,468.2723780569,489.17031487243,523.2511306012],description:"Ellis' equal beating meantone tuning (1885)"},enh14:{frequencies:[261.6255653006,267.70988077271,274.08392555301,348.83408706747,392.4383479509,401.56482115906,411.12588832951,523.2511306012],description:"14/11 Enharmonic"},enh15:{frequencies:[261.6255653006,270.64713651786,280.31310567921,356.76213450082,392.4383479509,402.50086969323,413.09299784305,523.2511306012],description:"Tonos-15 Enharmonic"},enh15_inv:{frequencies:[261.6255653006,331.39238271409,340.11323489078,348.83408706747,383.71749577421,488.36772189445,505.80942624783,523.2511306012],description:"Inverted Enharmonic Tonos-15 Harmonia"},enh15_inv2:{frequencies:[261.6255653006,270.34641747729,279.06726965397,348.83408706747,383.71749577421,392.4383479509,401.15920012759,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-15"},enh17:{frequencies:[261.6255653006,269.55361273395,277.97716313189,370.63621750918,404.33041910093,413.73345210327,423.58424858192,523.2511306012],description:"Tonos-17 Enharmonic"},enh17_con:{frequencies:[261.6255653006,269.55361273395,277.97716313189,370.63621750918,378.52209447746,386.75083566176,494.18162334558,523.2511306012],description:"Conjunct Tonos-17 Enharmonic"},enh19:{frequencies:[261.6255653006,268.69652652494,276.16031892841,355.06326719367,382.37582620857,389.87339142835,397.67085925691,523.2511306012],description:"Tonos-19 Enharmonic"},enh19_con:{frequencies:[261.6255653006,268.69652652494,276.16031892841,355.06326719367,361.51896296083,368.21375857121,451.89870370104,523.2511306012],description:"Conjunct Tonos-19 Enharmonic"},enh2:{frequencies:[261.6255653006,266.71168334607,277.18263097687,349.22823143301,391.99543598175,399.61600264311,415.30469757995,523.2511306012],description:"1:2 Enharmonic. New genus 2 + 4 + 24 parts"},enh21:{frequencies:[261.6255653006,268.0066766494,274.70684356563,343.38355445704,392.4383479509,399.57359064092,406.97310157871,523.2511306012],description:"Tonos-21 Enharmonic"},enh21_inv:{frequencies:[261.6255653006,336.37572681506,342.60490694126,348.83408706747,398.6675280771,498.33441009638,510.79277034879,523.2511306012],description:"Inverted Enharmonic Tonos-21 Harmonia"},enh21_inv2:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,398.6675280771,411.12588832951,423.58424858192,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-21"},enh23:{frequencies:[261.6255653006,267.43946675172,273.51763645063,334.29933343966,376.08675011961,388.21858076863,401.15920012759,523.2511306012],description:"Tonos-23 Enharmonic"},enh23_con:{frequencies:[261.6255653006,267.43946675172,273.51763645063,334.29933343966,343.8507429665,353.96400011258,462.87600014722,523.2511306012],description:"Conjunct Tonos-23 Enharmonic"},enh25:{frequencies:[261.6255653006,269.71707762948,278.32506946872,363.36884069528,408.78994578219,421.97671822677,436.04260883433,523.2511306012],description:"Tonos-25 Enharmonic"},enh25_con:{frequencies:[261.6255653006,269.71707762948,278.32506946872,363.36884069528,373.75080757229,384.74347838324,503.12608711654,523.2511306012],description:"Conjunct Tonos-25 Enharmonic"},enh27:{frequencies:[261.6255653006,269.10058145205,277.01530443593,353.19451315581,392.4383479509,403.65087217807,415.52295665389,523.2511306012],description:"Tonos-27 Enharmonic"},enh27_inv:{frequencies:[261.6255653006,329.45441556372,339.14425131559,348.83408706747,387.59343007496,494.18162334558,508.71637697339,523.2511306012],description:"Inverted Enharmonic Tonos-27 Harmonia"},enh27_inv2:{frequencies:[261.6255653006,266.38239376061,271.31540105247,348.83408706747,387.59343007496,397.28326582684,406.97310157871,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-27"},enh29:{frequencies:[261.6255653006,266.21548749886,270.96933548991,344.87006335079,379.35706968587,389.08417403679,399.32323124828,523.2511306012],description:"Tonos-29 Enharmonic"},enh29_con:{frequencies:[261.6255653006,266.21548749886,270.96933548991,344.87006335079,352.8902973822,361.29244731988,474.19633710734,523.2511306012],description:"Conjunct Tonos-29 Enharmonic"},enh31:{frequencies:[261.6255653006,270.34641747729,279.66870773512,337.93302184661,352.6257619269,368.65420565085,377.22755927063,386.2091678247,523.2511306012],description:"Tonos-31 Enharmonic. Tone 24 alternates with 23 as MESE or A"},enh31_con:{frequencies:[261.6255653006,270.34641747729,279.66870773512,337.93302184661,352.6257619269,360.46188996972,368.65420565085,450.57736246214,523.2511306012],description:"Conjunct Tonos-31 Enharmonic"},enh33:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,392.4383479509,401.56482115906,411.12588832951,523.2511306012],description:"Tonos-33 Enharmonic"},enh33_con:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,367.38909169871,375.37581108347,479.64686971777,523.2511306012],description:"Conjunct Tonos-33 Enharmonic"},enh_invcon:{frequencies:[261.6255653006,283.42769574232,370.63621750918,381.53728273004,392.4383479509,501.44900015948,512.35006538034,523.2511306012],description:"Inverted Enharmonic Conjunct Phrygian Harmonia"},enh_mod:{frequencies:[261.6255653006,294.32876096318,305.22982618403,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Enharmonic After Wilson's Purvi Modulations, See page 111"},enh_perm:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Permuted Enharmonic, After Wilson's Marwa Permutations, See page 110."},enn45ji:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,276.85245005354,282.55561052465,288.32205155576,290.69507255622,296.75121990114,299.00064605783,305.22982618403,311.45900631024,313.95067836072,320.49131749323,322.92069774245,329.64821227876,336.37572681506,339.14425131559,346.06556256693,348.83408706747,356.10146388137,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,392.4383479509,395.57785473451,403.65087217807,406.97310157871,415.27867508032,423.93031414449,427.32175665765,436.04260883433,439.53094970501,448.50096908674,457.84473927605,461.31528248922,470.92601754108,474.80195184183,484.4917875937,494.47231841813,498.33441009638,508.71637697339,512.78610798918,523.2511306012],description:"Detempered Ennealimma[45], Hahn reduced"},enn72synch:{frequencies:[195.99771799087,197.54967854522,199.11392792408,201.62391554947,203.22042578925,204.82957760946,207.41161549338,209.05395423619,211.68924370912,213.36545381699,215.05493658943,217.76587316352,219.49019959291,221.22817968434,224.01693484168,225.790758792,228.63703016722,230.44743589451,232.27217821307,235.20015301436,237.06252857463,238.93964952543,241.95167308427,243.86750892427,246.94165062806,248.89699839908,250.8678291188,254.03021536301,256.04169222048,258.06909647124,261.3222603528,263.39147750593,266.71173418544,268.8236265844,270.95224149283,274.36780754746,276.54032271274,278.73004041423,282.24365173996,284.47852987378,288.0646054292,290.34557537779,292.64460663558,296.33362372129,298.68006816723,301.0450940916,304.84000597616,307.25380610435,311.12698372207,313.59056753865,316.0736586482,320.05801564518,322.59231767928,325.14668697146,329.24541662461,331.85246687263,336.03572815421,338.69654584276,341.37843257302,345.68177614255,348.4189737305,351.17784515594,355.60471802638,358.42048803112,362.93866010991,365.81250216232,368.70910003837,373.35696816148,376.31330506793,379.29305101359,384.07434037944,387.11553797119,391.99543598174],description:"Poptimal synchonized beating ennealimmal tuning, TM 10-10-2005"},ennea45:{frequencies:[261.6255653006,267.02028728287,269.13615104392,274.68574138534,276.8623300691,282.57123430547,288.39787286736,290.68311542614,296.67700440585,299.02785016604,305.1938252949,311.48692526882,313.95512370264,320.42888174436,322.96795420876,329.62755691287,336.42448069667,339.09030198792,346.08234767737,348.824677577,356.01744619623,363.3585507705,366.23777597441,373.78960287068,376.751482929,384.52012478698,392.44893391322,395.5586690753,403.715093104,406.91412394911,415.30469757995,423.86828492968,427.22700928979,436.03643483576,439.49155400205,448.55387459245,457.80308677504,461.43068321685,470.94538888861,474.67712392136,484.46499932732,494.45467284607,498.37269363637,508.649143962,512.67967026301,523.2511306012],description:"Ennealimmal-45, in a 7-limit least-squares tuning, g=48.999, G.W. Smith"},epimore_enh:{frequencies:[261.6255653006,265.11390617127,279.06726965397,348.83408706747,392.4383479509,397.67085925691,418.60090448096,523.2511306012],description:"New Epimoric Enharmonic, Dorian mode of the 4th new Enharmonic on Hofmann's list"},eratos_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,392.4383479509,413.09299784305,436.04260883433,523.2511306012],description:"Dorian mode of Eratosthenes's Chromatic. same as Ptol. Intense Chromatic"},eratos_diat:{frequencies:[261.6255653006,275.62199471997,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Dorian mode of Eratosthenes's Diatonic, Pythagorean"},eratos_enh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,392.4383479509,402.50086969323,413.09299784305,523.2511306012],description:"Dorian mode of Eratosthenes's Enharmonic"},erlangen:{frequencies:[261.6255653006,275.62199471997,293.99679436797,310.07474405997,327.03195662575,348.83408706747,367.49599295996,392.4383479509,413.43299207996,440.99519155196,465.11211608996,490.54793493862,523.2511306012],description:"Anonymus: Pro clavichordiis faciendis, Erlangen 15th century"},erlangen2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Revised Erlangen"},erlich1:{frequencies:[261.6255653006,278.64199172491,296.7651860139,326.1838132033,347.39918201406,369.99442271164,394.05928374402,433.12277132725,461.29357245868,491.2966347616,523.2511306012],description:"Asymmetrical Major decatonic mode of 22-tET, Paul Erlich"},erlich10:{frequencies:[261.6255653006,274.70684356563,299.00064605783,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Canonical JI interpretation of the Pentachordal decatonic mode of 22-tET"},erlich10s1:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Superparticular version of erlich10 using 50/49 decatonic comma"},erlich10s2:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Other superparticular version of erlich10 using 50/49 decatonic comma"},erlich11:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Canonical JI interpretation of the Symmetrical decatonic mode of 22-tET"},erlich11s1:{frequencies:[261.6255653006,274.70684356563,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Superparticular version of erlich11 using 50/49 decatonic comma"},erlich11s2:{frequencies:[261.6255653006,280.31310567921,305.22982618403,311.45900631024,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Other superparticular version of erlich11 using 50/49 decatonic comma"},erlich12:{frequencies:[261.6255653006,267.01308914069,282.57123920205,288.39008844866,305.19382000629,311.47852302926,329.62755691287,336.41541160581,356.01745236555,363.34874301751,384.52011812375,392.4383479509,415.30469757995,423.85685859121,448.5538823653,457.7907297806,484.46499093218,494.44133512215,523.2511306012],description:"Two 9-tET scales 3/2 shifted, Paul Erlich, TL 5-12-2001"},erlich13:{frequencies:[261.6255653006,269.80136421624,294.32876096318,327.03195662575,343.38355445704,359.73515228832,392.4383479509,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Just scale by Paul Erlich (2002)"},erlich2:{frequencies:[261.6255653006,278.64199172491,296.7651860139,316.06713361714,347.39918201406,369.99442271164,394.05928374402,419.68935090103,446.98642698175,476.05893615592,523.2511306012],description:"Asymmetrical Minor decatonic mode of 22-tET, Paul Erlich"},erlich3:{frequencies:[261.6255653006,278.64199172491,296.7651860139,326.1838132033,347.39918201406,369.99442271164,394.05928374402,419.68935090103,461.29357245868,491.2966347616,523.2511306012],description:"Symmetrical Major decatonic mode of 22-tET, Paul Erlich"},erlich4:{frequencies:[261.6255653006,278.64199172491,296.7651860139,316.06713361714,347.39918201406,369.99442271164,394.05928374402,419.68935090103,446.98642698175,491.2966347616,523.2511306012],description:"Symmetrical Minor decatonic mode of 22-tET, Paul Erlich"},erlich5:{frequencies:[261.6255653006,269.33066959279,278.10477655849,287.16472157287,295.62197660533,306.17967660611,315.19693888202,326.45372959864,335.05049156411,348.07025322573,357.23626005287,368.87410717392,380.89108570115,393.29954676976,406.11224388345,419.34234602259,433.00345117936,444.40607048653,461.67529188567,473.83294924974,490.75518955849,505.2083639382,523.2511306012],description:"Unequal 22-note compromise between decatonic & Indian srutis, Paul Erlich"},erlich6:{frequencies:[261.6255653006,274.70684356563,280.31310567921,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Scale of consonant tones against 1/1-3/2 drone. TL 23-9-1998"},erlich7:{frequencies:[261.6255653006,272.64118737561,277.98432293805,281.84855879469,292.47977325983,303.51199286577,307.73108663824,313.76190292287,326.97270111135,337.05955506058,340.85784563832,350.05627231138,365.1325261687,373.60234843661,378.13992750117,391.18115131013,406.9458559663,413.62886206386,420.42161880722,437.36472209676,452.44848028305,457.94368329907,468.56640608675,488.7466646507,501.93603498211,507.59230220159,523.2511306012],description:"Meantone-like circle of sinuoidally varying fifths, TL 08-12-99"},erlich8:{frequencies:[261.6255653006,263.902226729,277.18263097687,279.59466973861,293.66476791741,296.22023396764,311.12698372208,313.83440569119,329.62755691287,332.49597057,349.22823143301,352.26720984209,369.99442271164,373.21410818061,391.99543598175,395.40657391157,415.30469757995,418.91867232636,440,443.82887286778,466.16376151809,470.22031101449,493.88330125613,498.18106573801,523.2511306012],description:"Two 12-tET scales 15 cents shifted, Paul Erlich"},erlich9:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,302.70726563706,308.34441624714,319.76457981184,332.97799220076,345.34574619679,356.76213450082,369.97554688974,383.71749577421,396.40237166758,411.12588832951,428.11456140098,436.04260883433,452.23847716247,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"11-limit periodicity block, u.v.: 9801/9800 243/242 126/125 100/99"},erlich_bpf:{frequencies:[261.6255653006,269.93113880221,277.4816601673,282.55561052465,293.6613488068,301.87565226992,311.45900631024,319.76457981184,328.70904358281,336.37572681506,347.05432131712,356.76213450082,366.27579142084,377.90359432309,388.47432423422,400.44729382745,411.12588832951,422.62591317789,436.04260883433,447.67041173658,458.69417292962,470.92601754108,485.87604984397,499.46698830115,512.78610798918,528.59042785223,543.37617408586,560.62621135843,575.57624366132,591.67627844905,610.45965236807,624.69777837082,642.17184210147,659.29642455751,680.22646978156,699.2537836216,726.73768139056,740.02659899313,760.72664372021,784.8766959018],description:"Erlich's 39-tone Triple Bohlen-Pierce scale"},erlich_bpp:{frequencies:[261.6255653006,268.60224704195,277.4816601673,282.55561052465,293.6613488068,299.68019298069,311.45900631024,319.76457981184,323.65460841914,336.37572681506,345.34574619679,356.76213450082,366.27579142084,380.67211882362,385.30310526088,400.44729382745,411.12588832951,419.55227017296,436.04260883433,447.67041173658,458.69417292962,470.92601754108,489.43558134466,499.46698830115,512.78610798918,528.59042785223,539.42434736524,560.62621135843,575.57624366132,594.60355750136,610.45965236807,629.27431887171,642.17184210147,659.29642455751,685.20981388252,699.2537836216,720.80512888941,740.02659899313,764.49028821604,784.8766959018],description:"Periodicity block for erlich_bpf, 1625/1617 1331/1323 275/273 245/243"},erlich_bpp2:{frequencies:[261.6255653006,268.60224704195,277.4816601673,282.55561052465,293.92501780685,299.68019298069,311.45900631024,319.76457981184,326.02570445152,336.37572681506,345.34574619679,356.76213450082,366.27579142084,377.90359432309,385.30310526088,400.44729382745,411.12588832951,422.62591317789,436.04260883433,447.67041173658,458.69417292962,470.92601754108,485.87604984397,499.46698830115,512.78610798918,528.59042785223,543.37617408586,560.62621135843,575.57624366132,594.60355750136,610.45965236807,629.83932387181,642.17184210147,659.29642455751,685.20981388252,698.62650953896,726.73768139056,740.02659899313,764.49028821604,784.8766959018],description:"Improved shape for erlich_bpp"},erlich_bppe:{frequencies:[261.6255653006,269.03526454087,276.77324548748,284.61195549492,292.79795257063,301.09050901183,309.7504615497,318.52314490095,327.68449417797,337.10934179701,346.6568752383,356.62740568226,366.72772736951,377.27553481706,387.96064596243,399.11915372018,410.59860200806,422.22748385656,434.37157296247,446.67374500165,459.5209564409,472.53540627884,486.12644973042,499.89441151621,514.27235352402,529.06383329425,544.0478609495,559.69574261012,575.54731703113,592.10118472076,608.870542156,626.38285104305,644.39884822068,662.64936456684,681.70845767885,701.01565227402,721.17823493702,741.60327945962,762.93324174612,784.8766959018],description:"LS optimal 3:5:7:11:13 tempering, virtually equal, g=780.2702 cents"},erlich_bppm:{frequencies:[261.6255653006,269.3148593258,276.83859227209,284.97500405989,292.93622770824,301.54575630263,309.96990811138,319.08006614158,327.99406628962,337.15709295818,347.06629484351,356.76213450082,367.24753706379,377.50717076432,388.60227773252,399.45849178361,410.61798882758,422.6862401977,434.49464068244,447.26463523836,459.75967424319,473.27221959449,486.49381977384,500.79209531182,514.78250488433,529.16376146212,544.7161244152,559.93362036345,576.39032675477,592.49269103014,609.9063234692,626.94500947499,644.45969779399,663.40066444061,681.93379843592,701.97614206495,721.5869464624,742.79471409673,763.54584931731,784.8766959018],description:"MM optimal 3:5:7:11:13 tempering, g=780.352 cents"},erlich_paj:{frequencies:[261.6255653006,269.74106841426,278.59741216196,287.23937405609,296.67040683594,305.87298460253,315.91563888094,325.71519477697,336.4093235789,346.84458402385,358.23265591403,369.99442271164,381.47147728046,393.99623872149,406.21781843768,419.55531290213,432.56972318844,446.77218107119,460.63084592459,475.75462791404,490.51231476219,506.61748047856,523.2511306012],description:"Erlich's Pajara or Twintone, with RMS optimal generator"},erlich_paj2:{frequencies:[261.6255653006,270.25447814202,278.68577354399,287.87753105276,296.85845221806,306.64959036092,316.21614384055,326.645747324,336.83612131731,347.94582350257,358.80069640371,369.99442271164,382.1975482805,394.12120058634,407.1203087173,419.82124923186,433.66800958456,447.19715926063,461.9468459571,476.35821106408,492.06970256841,507.42081104304,523.2511306012],description:"Erlich's Pajara or Twintone with minimax optimal generator"},escapade:{frequencies:[261.6255653006,270.11362843741,278.8770761192,287.9248395776,297.26614463769,306.91051483225,316.86778450163,327.1481015562,337.76194863153,348.72014864112,360.03386958939,371.71464785337,383.77439429365,392.56657056143,405.30282760495,418.45229174958,432.02837124332,446.04490958069,460.51619165905,475.45697355792,490.88248752006,506.80846290374,523.2511306012],description:"Escapade temperament, g=55.275493, 5-limit"},"et-mix6":{frequencies:[261.6255653006,293.66476791741,300.52885648597,311.12698372208,329.62755691287,345.21700307457,369.99442271164,396.55020354877,415.30469757995,440,455.51656649021,466.16376151809,523.2511306012],description:"Mix of equal temperaments from 1-6 (= 4-6)"},euler:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Euler's Monochord (a mode of Ellis's duodene) (1739), genus [33355]"},euler20:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,320.58100381398,326.62388782443,329.50688232588,342.79852229325,366.55580177366,381.34192228364,391.95955371998,407.7704102616,411.36965665618,427.96347506501,439.87918162894,457.62301915088,489.33808574423,509.07699553894,513.57043963064,523.2511306012],description:"Genus [3333555] tempered by 225/224-planar"},euler24:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,308.1508239679,320.58100381398,326.62388782443,329.50688232588,342.79852229325,366.55580177366,381.34192228364,384.70789368407,391.95955371998,407.7704102616,411.36965665618,427.96347506501,439.87918162894,457.62301915088,480.28481865546,489.33808574423,493.65730140218,509.07699553894,513.57043963064,523.2511306012],description:"Genus [33333555] tempered by 225/224-planar"},euler_diat:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Euler's genus diatonicum veterum correctum"},euler_enh:{frequencies:[261.6255653006,267.90457886781,275.62199471997,348.83408706747,392.4383479509,401.85686830172,413.43299207996,523.2511306012],description:"Euler's Old Enharmonic, From Tentamen Novae Theoriae Musicae"},euler_gm:{frequencies:[261.6255653006,271.31540105247,279.06726965397,289.40309445597,348.83408706747,361.75386806997,372.08969287196,385.87079260796,523.2511306012],description:"Euler's Genus Musicum, Octony based on Archytas's Enharmonic"},exptriad2:{frequencies:[261.6255653006,306.59245933664,327.03195662575,367.91095120397,392.4383479509,459.88868900496,490.54793493862,523.2511306012],description:"Two times expanded major triad"},exptriad3:{frequencies:[261.6255653006,269.46602871384,275.93321340298,279.06726965397,287.4304306281,294.32876096318,297.67175429757,303.14928230307,306.59245933664,313.95067836072,323.35923445661,327.03195662575,344.91651675372,348.83408706747,359.28803828513,367.91095120397,372.08969287196,378.93660287884,383.2405741708,392.4383479509,404.19904307077,408.78994578219,418.60090448096,431.14564594215,436.04260883433,446.50763144636,459.88868900496,490.54793493862,505.24880383846,517.37477513058,523.2511306012],description:"Three times expanded major triad"},iivv17:{frequencies:[261.6255653006,269.80136421624,277.97716313189,283.42769574232,294.32876096318,305.22982618403,318.85615771011,327.03195662575,343.38355445704,348.83408706747,359.73515228832,367.91095120397,370.63621750918,392.4383479509,416.96574469783,425.14154361347,436.04260883433,441.49314144476,457.84473927605,479.64686971777,490.54793493862,523.2511306012],description:"17-limit IIVV"},"indian-ayyar":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Carnatic sruti system, C.Subrahmanya Ayyar, 1976. alt:21/20 25/16 63/40 40/21"},"indian-dk":{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,348.83408706747,392.4383479509,406.97310157871,418.60090448096,465.11211608996,523.2511306012],description:"Raga Darbari Kanada"},"indian-ellis":{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,358.01393146398,367.68998366571,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Ellis's Indian Chromatic, theoretical #74 of App.XX, p.517 of Helmholtz"},"indian-hahn":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Indian shrutis Paul Hahn proposal"},"indian-hrdaya1":{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,328.55303549378,348.83408706747,375.07381928051,392.4383479509,428.11456140098,441.49314144476,470.92601754108,492.82955324067,523.2511306012],description:"From Hrdayakautaka of Hrdaya Narayana (17th c) Bhatkande's interpretation"},"indian-hrdaya2":{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,330.47439827444,348.83408706747,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012],description:"From Hrdayakautaka of Hrdaya Narayana (17th c) Levy's interpretation"},"indian-invrot":{frequencies:[261.6255653006,267.90457886781,279.06726965397,313.95067836072,327.03195662575,334.88072358477,348.83408706747,392.4383479509,418.60090448096,446.50763144636,490.54793493862,502.32108537715,523.2511306012],description:"Inverted and rotated North Indian gamut"},"indian-magrama":{frequencies:[261.6255653006,294.32876096318,327.03195662575,367.91095120397,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Indian mode Ma-grama (Sa Ri Ga Ma Pa Dha Ni Sa)"},"indian-newbengali":{frequencies:[261.6255653006,269.13627541126,277.02257024271,285.46954808622,294.32876096318,303.84527498141,313.95067836072,324.71413568646,336.35938765066,348.83408706747,358.01090280364,367.91095120397,377.98706287655,388.6137256405,400.23209335925,412.19781491431,425.25755219187,438.98455767189,453.41648894489,469.13512554326,485.39868175205,503.9696508909,523.2511306012],description:"Modern Bengali scale,S.M. Tagore: The mus. scales of the Hindus,Calcutta 1884"},"indian-old2ellis":{frequencies:[261.6255653006,270.06509966514,277.97716313189,285.40970760065,294.32876096318,305.22982618403,316.13089140489,327.03195662575,337.93302184661,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,404.33041910093,415.52295665389,428.11456140098,441.49314144476,457.84473927605,474.19633710734,490.54793493862,505.80942624783,523.2511306012],description:"Ellis Old Indian Chrom2, Helmholtz, p. 517. This is a 4 cent appr. to #73"},"indian-oldellis":{frequencies:[261.6255653006,269.44737349144,277.4816601673,285.79952600623,294.32876096318,304.84150796353,315.71315096976,327.03195662575,337.72216249472,348.83408706747,359.25382662183,369.99442271164,381.0561299374,392.4383479509,404.18156579781,416.22249025095,428.71043212875,441.49314144476,457.27414749797,473.58203588493,490.54793493862,506.59641128799,523.2511306012],description:"Ellis Old Indian Chromatic, Helmholtz, p. 517. This is a 0.5 cent appr. to #73"},"indian-raja":{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,490.54793493862,523.2511306012],description:"A folk scale from Rajasthan, India"},"indian-sagrama":{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Indian mode Sa-grama (Sa Ri Ga Ma Pa Dha Ni Sa), inverse of Didymus' diatonic"},"indian-srutiharm":{frequencies:[261.6255653006,275.04226095704,278.87560257317,292.29229825722,294.20896982953,310.50067090621,313.3756771183,327.75070817877,332.5423844325,351.70909240436,354.58409877157,369.9174668925,374.70914348171,393.87585105695,414.95923028882,421.66757847392,437.95928040996,441.79262140873,467.66767825558,473.41768959156,493.54273382289,499.29274676062,523.2511306012],description:"B. Chaitanya Deva's sruti harmonium. The Music of India, 1981, p. 109"},"indian-srutivina":{frequencies:[261.6255653006,268.56758546278,278.98051393788,288.52577197574,297.52863491406,305.33829130574,314.01573591759,327.57422802312,336.57725592546,350.35262131413,358.2707318239,366.40588882483,378.77125721528,394.82459335461,403.28512412878,416.95215854696,428.77531684666,444.28620821491,453.93981227417,469.5594057965,487.34812384257,504.37765306036,529.32520658991],description:"Raja S.M. Tagore's sruti vina, measured by Ellis and Hipkins, 1886. 1/1=241.2"},"indian-srutivina2":{frequencies:[261.6255653006,275.04226095704,278.87560257317,292.29229825722,294.20896982953,310.50067090621,313.3756771183,327.75070817877,332.5423844325,351.70909240436,354.58409877157,369.9174668925,374.70914348171,393.87585105695,414.95923028882,421.66757847392,437.95928040996,441.79262140873,467.66767825558,473.41768959156,493.54273382289,499.29274676062,523.2511306012],description:"S. Ramanathan's sruti vina, 1973. In B.C. Deva, The Music of India, p. 110"},"indian-vina":{frequencies:[261.6255653006,276.70272600503,292.81785438923,313.29104303136,329.05685050583,352.26720984209,369.14054089803,390.18821123181,411.0090584005,435.70052664441,465.35666077712,491.60634075178,525.37110555681],description:"Observed South Indian tuning of a vina, Ellis"},"indian-vina2":{frequencies:[261.6255653006,277.02257024271,292.81785438923,308.97787266236,326.21810583671,344.81842302716,363.84824628932,386.37547528213,409.11417474979,432.19134773437,455.25352578019,480.93331155807,507.76825077597,539.82938999168,571.59905201246,602.44805673853,637.90290877605,678.5727631795,715.19510239543,756.4109196702,799.53998816902,846.10508618474,890.73947019126,943.16064703194,1001.55531043729],description:"Observed tuning of old vina in Tanjore Palace, Ellis and Hipkins. 1/1=210.7 Hz"},"indian-vina3":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Tuning of K.S. Subramanian's vina (1983)"},indian:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.50983809402,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Indian shruti scale"},indian2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Indian shruti scale with tritone 64/45 schisma lower (Mr.Devarajan, Madurai)"},indian2_sm:{frequencies:[261.6255653006,275.80107697063,279.12844116922,290.7446524607,294.25230137258,310.19560923413,313.9379197281,327.00276442799,330.9478443499,348.87940629173,353.08841191408,367.78254402461,372.21960384438,392.38737044642,413.64787586584,418.63827382983,436.06032987759,441.3211172644,465.23297251763,470.84571179248,490.44043044945,496.35728163707,523.2511306012],description:"Shruti/Mathieu's Magic Mode scale in 289-equal (schismic) temperament"},indian3:{frequencies:[261.6255653006,270.06509966514,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,506.89953276991,523.2511306012],description:"Indian shruti scale with 32/31 and 31/16 and tritone schisma lower"},indian4:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,330.74639366397,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"Indian shruti scale according to Firoze Framjee: Text book of Indian music"},indian5:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"23 Shrutis, Amit Mitra, 1/1 no. 12:2, Table C."},indian6:{frequencies:[146.8323839587,148.66778875818,150.35636117371,151.0621234143,152.23581568838,152.95039995698,154.68761437624,154.86227995644,156.62120955595,158.5789746754,159.32333328852,163.14709328744,165.18643195354,167.06262352634,169.15090632042,169.94488884109,172.0691999516,174.02356617327,176.19886075044,178.40134650982,179.23874994958,180.42763340845,181.27454809716,183.54047994838,185.62513725149,185.83473594773,187.94545146714,188.82765426788,190.29476961048,191.18799994622,193.3595179703,193.57784994555,195.77651194493,198.22371834425,200.47514823161,202.98108758451,203.93386660931,206.48303994192,208.82827940793,209.0640779412,211.43863290053,212.43111105136,214.08161581178,215.0864999395,217.52945771659,220.24857593805,223.00168313728,225.53454176056,226.59318512145,228.35372353257,229.42559993547,232.03142156437,232.29341993466,234.93181433392,237.86846201309,238.98499993278,240.57017787793,241.69939746288,244.72063993117,247.77964793031,250.59393528951,253.72635948063,254.91733326163,258.1037999274,261.03534925991,264.29829112566,267.60201976473,270.64145011268,271.91182214574,275.31071992256,278.43770587724,278.75210392159,281.9181772007,283.24148140181,285.44215441571,286.78199991934,290.03927695546,293.6647679174],description:"Shrutis calculated by generation method, Amit Mitra, 1/1 no. 12:2, Table B."},indian_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"North Indian Gamut, modern Hindustani gamut out of 22 or more shrutis"},indian_12c:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,328.55303549378,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,470.92601754108,492.82955324067,523.2511306012],description:"Carnatic gamut. Kuppuswami: Carnatic music and the Tamils, p. v"},indian_a:{frequencies:[261.6255653006,290.79521372391,318.76727400207,355.94891173479,388.6137256405,432.69092326853,486.52148746092,523.2511306012],description:"One observed indian mode"},indian_b:{frequencies:[261.6255653006,290.79521372391,305.95868600104,356.15457528086,388.83826257328,432.94092754357,461.60862817266,523.2511306012],description:"Observed Indian mode"},indian_c:{frequencies:[261.6255653006,278.94941459687,313.65318017499,356.15457528086,388.83826257328,422.07621250312,470.76384471612,523.2511306012],description:"Observed Indian mode"},indian_d:{frequencies:[261.6255653006,289.28740724512,320.24370022528,344.61930560862,391.31674786192,442.03793673691,485.39868175205,523.2511306012],description:"Indian D (Ellis, correct)"},indian_e:{frequencies:[261.6255653006,275.58617649731,323.21709932123,347.81902735497,393.58362272115,410.77171881178,488.21056770985,523.2511306012],description:"Observed Indian mode"},indian_g:{frequencies:[261.6255653006,275.48458755707,279.57748987366,290.07776015425,294.38747470873,309.98198497505,314.58741860623,326.40257913196,331.25197518754,348.79929894143,353.98144532328,367.27615246113,372.73281132023,392.47748849606,413.26809526256,419.40806105693,435.16003737285,441.62525396027,465.0193523796,471.92819182319,489.65270022124,496.92751979948,523.2511306012],description:"Shruti/Mathieu's Magic Mode scale in 94-et (garibaldi) temperament"},indian_rat:{frequencies:[261.6255653006,269.55361273395,277.4816601673,285.40970760065,294.32876096318,302.93486508491,315.75499260417,327.03195662575,337.58137458142,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,404.33041910093,416.22249025095,428.77523202043,441.49314144476,457.84473927605,473.41768959156,490.54793493862,506.37206187213,523.2511306012],description:"Indian Raga, From Fortuna, after Helmholtz, ratios by JC"},indian_rot:{frequencies:[261.6255653006,272.52663052146,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,510.98743222773,523.2511306012],description:"Rotated North Indian Gamut"},ionic:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Ancient greek Ionic"},iran_diat:{frequencies:[261.6255653006,297.21429859784,337.6441411202,347.13660997509,394.35734781054,448.00148789644,460.59652406882,523.2511306012],description:"Iranian Diatonic from Dariush Anooshfar, Safi-a-ddin Armavi's scale from 125 ET"},iraq:{frequencies:[261.6255653006,290.3675288125,326.6631048533,348.83408706747,387.1561215731,435.55129321875,465.11211608996,516.20736538157,523.2511306012],description:"Iraq 8-tone scale, Ellis"},isfahan_5:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,523.2511306012],description:"Isfahan (IG #2, DF #8), from Rouanet"},islamic:{frequencies:[261.6255653006,283.42769574232,305.22982618403,330.6656450327,348.83408706747,523.2511306012],description:"Islamic Genus (DF#7), from Rouanet"},italian:{frequencies:[261.6255653006,274.68983337859,292.34127285051,309.02606224197,326.6631048533,348.44038788768,366.66693712906,391.11111150212,411.56972129721,437.02884834934,464.06284405662,489.44164088633,523.2511306012],description:"Italian organ temperament, G.C. Klop (1974), 1/12 P.comma, also d'Alembert/Rousseau (1752/67)"},iter1:{frequencies:[261.6255653006,264.43874342211,268.51044859798,278.54662176283,304.33994330886,376.91818729747,631.61998662719],description:"McLaren style, IE= 2.414214, PD=5, SD=0"},iter10:{frequencies:[261.6255653006,277.06070189651,293.38358189778,297.59908052943,301.91391280887,310.68035879446,328.97472072452,338.5155215149,348.35227203008,368.89204707385,413.65123162392,438.0707139917,463.89070822207,520.1365405381,535.27989222422,550.79066379074,583.29634230953,654.0639132515],description:"Iterated 5/2 Scale, IE=5/2, PD=4, SD=3"},iter11:{frequencies:[261.6255653006,278.87608544381,297.26403435806,306.90779184711,316.86440944623,337.75715313333,360.02747892105,383.76621672426,396.21625406084,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #2"},iter12:{frequencies:[261.6255653006,297.26403435806,306.90779184711,316.86440944623,337.75715313333,360.02747892105,383.76621672426,396.21625406084,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #4"},iter13:{frequencies:[261.6255653006,297.26403435806,337.75715313333,383.76621672426,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #6"},iter14:{frequencies:[261.6255653006,280.22072913446,300.13755324878,344.3186075731,368.79121945838,395.0032340925,453.14877154631,519.85349135637,596.37732215892,638.76512932755,684.16567043124,784.8766959018],description:"Binary Divided 3/1 Scale #2"},iter15:{frequencies:[261.6255653006,285.30470202322,311.12698372208,324.90175210669,339.28638158975,369.99442271164,403.48177901006,440,459.48046426806,479.82340237272,523.2511306012],description:"Binary Division Scale"},iter16:{frequencies:[261.6255653006,273.20871865617,285.30470202322,311.12698372208,324.90175210669,339.28638158975,369.99442271164,403.48177901006,440,459.48046426806,479.82340237272,523.2511306012],description:"Binary Division Scale 4+2"},iter17:{frequencies:[261.6255653006,278.49896488475,296.46060526524,301.12918013362,305.87127435301,315.58067012184,335.93387506143,346.5975621448,357.59974896504,380.66295170881,431.34763334053,459.16716607109,488.78090454553,553.8613271114,571.44277158458,589.58231097183,627.60710380636,711.17202040031],description:"Binary E Scale #2"},iter18:{frequencies:[261.6255653006,296.46060526524,335.93387506143,357.59974896504,380.66295170881,431.34763334053,488.78090454553,553.8613271114,589.58231097183,627.60710380636,711.17202040031],description:"Binary E Scale #4"},iter19:{frequencies:[261.6255653006,322.51878830959,331.06584352035,339.83940187549,358.09020513941,397.58488163802,418.936859706,441.43552612833,490.12256936272,604.19836236377,670.83693141722,744.82523718317,918.18295398723,967.49323514067,1019.45167961503,1131.88958971281,1395.33634826987],description:"Binary Kidjel Ratio scale #2, IE=16/3"},iter2:{frequencies:[261.6255653006,264.43874342211,268.51044859798,278.54662176283,304.33994330886,376.91818729747,466.76379263857,529.06503205232,631.63886479716],description:"Iterated 1 + SQR(2) Scale, IE=2.414214, PD=5, SD=1"},iter20:{frequencies:[261.6255653006,269.61366892789,277.84567157694,295.07138236029,304.08067308856,313.36504071103,332.79286022776,353.42515415018,375.3365967665,386.79659161311,398.60648967463,423.31905787312],description:"Binary PHI Scale #2"},iter21:{frequencies:[261.6255653006,265.58958666715,269.61366892789,277.84567157694,295.07138236029,304.08067308856,313.36504071103,332.79286022776,353.42515415018,375.3365967665,386.79659161311,398.60648967463,423.31905787312],description:"Binary PHI Scale 5+2 #2"},iter22:{frequencies:[261.6255653006,301.8727519909,307.3207469799,312.86706369289,324.26179396336,348.311367392,360.99698978488,374.14462916403,401.89387036212,463.7192413329,498.11197631533,535.05552246568,617.36582527423,639.85050556571,663.15408964479,712.33833913185,821.92095613931],description:"Binary PI Scale #2"},iter23:{frequencies:[261.6255653006,280.22072913446,282.63618845904,285.07246866924,290.00821285991,300.13755151512,305.33413252207,310.62068712289,321.46997343155,344.3186075731,356.34488692223,368.79121945838,395.00323181087,401.84231702948,408.7998141568,423.07827792492,453.14877154631],description:"Binary SQR(3) Scale #2"},iter24:{frequencies:[261.6255653006,289.31157243481,292.97226416221,296.67927674571,304.23460945445,319.92739457651,328.07477344771,336.42963427227,353.78307729046,391.22147055517,411.40114203819,432.62170761687,478.4030399831,490.58621022536,503.07964402145,529.02909391167,585.01254970054],description:"Binary SQR(5) Scale #2"},iter25:{frequencies:[261.6255653006,295.4600775297,299.98610231105,304.581459303,313.98443628203,333.67021037701,343.97120738708,354.59021667251,376.82183739983,425.55401329039,452.23482674104,480.58843796626,542.7401414615,559.49550492793,576.76813324226,612.92956630767,692.19618110881],description:"Binary SQR(7) Scale #2"},iter26:{frequencies:[261.6255653006,266.56189672137,275.04226095704,276.16031892841,278.32506946872,283.8915708581,299.68019298069,302.93486508491,309.19384990071,326.13597866239,377.90359432309,389.87339142835,411.92110281371,477.08191319521,486.74523776856,503.12608711654,552.32063785682,711.29450566101],description:"E Scale"},iter27:{frequencies:[261.6255653006,264.53251602616,264.59858308811,264.97973921471,266.91093025617,277.4816601673,277.93638607994,279.98525409362,291.05844139692,358.0999925052,361.3330282979,375.61956161015,462.09190754392,465.48964215821,480.4396744611,568.53247844169,1395.33634826987],description:"Iterated Kidjel Ratio Scale, IE=16/3, PD=3, SD=3"},iter28:{frequencies:[261.6255653006,265.20947715403,272.47639519786,295.60291144354,377.3445653374,784.8766959018],description:"McLaren 3-Division Scale"},iter29:{frequencies:[261.6255653006,264.46932144517,267.35459227799,273.20191774753,285.29018929764,311.12229387098,370.01329949656,523.2511306012],description:"Iterated Binary Division of the Octave, IE=2, PD=6, SD=0"},iter3:{frequencies:[261.6255653006,291.72408166262,314.40967058055,328.65360269166,338.82655178274,356.71329642628,384.4758307461,404.77917650282,417.30358762823,426.15298265459,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=3, SD=2"},iter30:{frequencies:[261.6255653006,263.40533105094,266.47048317654,274.97380842818,299.54231389489,377.98194879009,711.1793535636],description:"Iterated E-scale, IE= 2.71828, PD=5, SD=0"},iter31:{frequencies:[261.6255653006,264.53251602616,277.4816601673,358.0999925052,1395.33634826987],description:"Iterated Kidjel Ratio Scale, IE=16/3, PD=3, SD=0"},iter32:{frequencies:[261.6255653006,264.32273607689,265.98599138894,268.74462830198,273.21657135822,280.65287914064,293.09931751721,314.43072526953,352.25402909754,423.30428543018],description:"Iterated PHI scale, IE= 1.61803339, PD=8, SD=0"},iter33:{frequencies:[261.6255653006,264.70351312767,271.46111286829,293.79264300149,376.62581378438,821.87425059077],description:"Iterated PI Scale, IE= 3.14159, PD=4, SD=0"},iter34:{frequencies:[261.6255653006,263.41752122732,264.70351312767,267.00143308075,271.01725226011,278.10591587072,290.81088732616,314.21361862735,359.24704489038,453.1728541814],description:"Iterated SQR3 Scale, IE= 1.73205, PD=8, SD=0"},iter35:{frequencies:[261.6255653006,263.32443260775,265.41724016003,270.17542037578,281.14986121856,307.30621955943,374.94109676838,585.0238335194],description:"Iterated SQR 5 Scale, IE= 2.23607, PD=6, SD=0"},iter36:{frequencies:[261.6255653006,263.60757715894,266.85807660661,275.72514666411,300.63990398578,377.90359432309,692.2176415245],description:"Iterated SQR 7 Scale, IE= 2.64575, PD=5, SD=0"},iter37:{frequencies:[261.6255653006,295.02271214403,313.28742377221,326.0879260201,332.68289475257,342.82647426905,364.05069339959,375.15068445646,382.73792346942,386.58911684499,392.4383479509],description:"Iterated 3/2 scale, IE=3/2, PD=3, SD=2"},iter4:{frequencies:[261.6255653006,267.82522324611,277.41331493081,278.97828136646,281.37089098366,287.35922746131,302.93486508491,307.2300216374,313.76772341995,330.79094463294,377.42704502382,390.96854140427,412.14986314478,470.26367433779,480.2976795817,495.79659597089,536.59937372878,654.0639132515],description:"Iterated 5/2 Scale, IE=5/2, PD=4, SD=3"},iter5:{frequencies:[261.6255653006,292.148547919,314.45380444784,328.62723446295,338.43307070995,355.46951807147,382.59222452561,401.8431885336,413.81298563886,422.03832066739,436.04260883433],description:"Iterated 5/3 Scale, analog of Hexachord, IE=5/3, PD=3, SD=2"},iter6:{frequencies:[261.6255653006,276.4345595629,292.10621368514,326.13597866239,344.58001283494,364.1180547998,406.52587839016,453.84026633778,506.69255051888,535.41976154541,565.73733351326,631.63886479716],description:"Iterated binary 1+SQR(2) scale, IE= 2.414214, G=2, PD=4, SD=2"},iter7:{frequencies:[261.6255653006,279.30296836145,298.19688088025,308.09852755794,318.34159693919,339.84351781315,362.8203594263,387.34174602946,400.24806631808,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=3, SD=2"},iter8:{frequencies:[261.6255653006,298.19688088025,308.09852755794,318.34159693919,339.84351781315,362.8203594263,387.34174602946,400.24806631808,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=2, SD=2"},iter9:{frequencies:[261.6255653006,298.19688088025,339.84351781315,387.34174602946,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=2, SD=12"},ives:{frequencies:[261.6255653006,302.26980244078,349.22823143301,375.37611551499,433.69180740168,501.06699929295,578.9091089468,622.25396744417],description:`Charles Ives' stretched major scale, "Scrapbook" pp. 108-110`},ives2a:{frequencies:[261.6255653006,303.72829164664,352.60650301302,379.92060676531,441.0602510811,512.03893786214,594.44004134205,640.48740045057],description:"Speculation by Joe Monzo for Ives' other stretched scale"},ives2b:{frequencies:[261.6255653006,300.81831683262,345.88232658126,370.885984045,426.44646246473,490.3301667422,563.78395315523,604.53960488156],description:"Alt. speculation by Joe Monzo for Ives' other stretched scale"},abell1:{frequencies:[261.6255653006,273.68256372566,292.6487650037,305.95868600104,327.16162250699,342.04121835587,365.95599773772,391.31674786192,409.35055662695,437.71854962063,457.62637091093,489.33987776603,523.2511306012],description:"Ross Abell's French Baroque Meantone 1, a'=520"},abell2:{frequencies:[261.6255653006,275.90473010106,294.68429813772,308.79945157961,330.00857764288,348.01999353916,369.14054089803,392.90218486657,412.67427966689,441.52756934418,463.21121723949,493.59810545034,523.2511306012],description:"Ross Abell's French Baroque Meantone 2, a'=520"},abell3:{frequencies:[261.6255653006,275.90505521365,293.49576926806,308.08682543008,329.24698751194,350.03632176331,368.71497179837,392.44893164635,412.28324979826,440.25465969448,462.14293627657,492.7440237889,523.2511306012],description:"Ross Abell's French Baroque Meantone 3, a' = 520"},abell4:{frequencies:[261.6255653006,274.95017225036,292.98704147282,308.2648062752,328.10786809908,346.01554587335,367.43868454848,391.54284657258,411.48414905414,438.47771564426,461.87534079415,491.0387427573,523.2511306012],description:"Ross Abell's French Baroque Meantone 4, a'=520"},abell5:{frequencies:[261.6255653006,277.98432293805,295.87822452474,311.66659310186,331.15428443044,349.43001184052,371.27895029721,395.6350356808,416.26536455926,442.29334161825,466.70260620202,495.88429116026,523.2511306012],description:"Ross Abell's French Baroque Meantone 5, a'=520"},abell6:{frequencies:[261.6255653006,277.02257024271,293.32570896007,311.66659310186,330.00857764288,349.43001184052,369.99442271164,391.76907592069,414.82519580403,440.76312290327,466.70260620202,494.16866184506,523.2511306012],description:"Ross Abell's French Baroque Meantone 6, a'=520"},abell7:{frequencies:[261.6255653006,277.50302994288,294.34406205295,310.05056613125,328.86683469969,348.82502010853,369.99442271164,392.44854854484,416.26536455926,438.47771564426,465.08793784701,493.31307433255,523.2511306012],description:"Ross Abell's French Baroque Meantone 7, a'=520"},abell8:{frequencies:[261.6255653006,277.82379926216,294.68429813772,311.48661940174,329.62755691287,350.03605285217,371.27895029721,392.44854854484,415.30469757995,441.01779121056,467.78216486233,494.45418731234,523.2511306012],description:"Ross Abell's French Baroque Meantone 8, a'=520"},abell9:{frequencies:[261.6255653006,276.06414495892,293.32570896007,309.69258848748,330.19925313612,348.62358905703,369.14054089803,391.99543598175,412.67427966689,440,464.55095742407,493.88330125613,523.2511306012],description:"Ross Abell's French Baroque Meantone 9, a'=520"},"ad-dik":{frequencies:[261.6255653006,269.0348830679,275.62199471997,285.40970760065,294.32876096318,300.46061014991,310.07474405997,321.08592105074,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.49599295996,378.42269266694,392.4383479509,400.61414686654,413.43299207996,428.11456140098,441.49314144476,453.48431318771,470.92601754108,479.64686971777,490.54793493862,508.71637697339,523.2511306012],description:"Amin Ad-Dik, d'Erlanger, vol 5, p.42"},adjeng:{frequencies:[261.6255653006,285.30470202322,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Soeroepan adjeng"},aeolic:{frequencies:[261.6255653006,294.32876096318,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Ancient Greek Aeolic, also tritriadic scale of the 54:64:81 triad"},agricola:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,331.11985608357,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Agricola's Monochord, Rudimenta musices (1539)"},"al-din":{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,516.20836322497,523.2511306012,551.24398943995,580.73440862809,588.65752192635,620.14948811994,653.3262097066,688.27781763329,697.66817413493,734.99198591993,774.31254483746,784.8766959018,826.86598415992,871.10161294214,917.70375684439,930.22423217991,979.98931455991,1032.41672644994,1046.5022612024,1102.48797887989],description:"Safi al-Din's complete lute tuning on 5 strings 4/3 apart"},"al-din_19":{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,516.20836322497,523.2511306012],description:"Arabic scale by Safi al-Din"},"al-farabi":{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Al-Farabi Syn Chrom"},"al-farabi_19":{frequencies:[261.6255653006,275.62199471997,285.40970760065,294.32876096318,310.07474405997,326.6631048533,331.11985608357,336.87132687997,348.83408706747,367.49599295996,380.54627680087,392.4383479509,413.43299207996,435.55080647107,441.49314144476,455.28980211491,465.11211608996,489.99465727995,507.3950357345,523.2511306012],description:"Arabic scale by Al Farabi"},"al-farabi_22":{frequencies:[261.6255653006,275.62199471997,277.01530443593,285.40970760065,294.32876096318,310.07474405997,321.08592105074,326.6631048533,331.11985608357,348.83408706747,367.49599295996,369.35373924791,380.54627680087,392.4383479509,413.43299207996,428.11456140098,435.55080647107,441.49314144476,465.11211608996,489.99465727995,492.47165233054,507.3950357345,523.2511306012],description:"Al-Farabi 22 note ud scale"},"al-farabi_9":{frequencies:[261.6255653006,294.32876096318,321.08592105074,331.11985608357,348.83408706747,392.4383479509,428.11456140098,441.49314144476,465.11211608996,523.2511306012],description:"Al-Farabi 9 note ud scale"},"al-farabi_blue":{frequencies:[261.6255653006,294.32876096318,367.91095120397,380.81054504865,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Another tuning from Al Farabi, c700 AD"},"al-farabi_chrom":{frequencies:[261.6255653006,294.32876096318,353.19451315581,372.50983809402,392.4383479509,470.92601754108,497.08857407114,523.2511306012],description:"Al Farabi's Chromatic c700 AD"},"al-farabi_chrom2":{frequencies:[261.6255653006,279.06726965397,325.57848126297,348.83408706747,392.4383479509,418.60090448096,488.36772189445,523.2511306012],description:"Al-Farabi's Chromatic permuted"},"al-farabi_diat":{frequencies:[261.6255653006,299.00064605783,341.71502406609,348.83408706747,392.4383479509,448.50096908674,512.57253609913,523.2511306012],description:"Al-Farabi's Diatonic"},"al-farabi_diat2":{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Old Phrygian, permuted form of Al-Farabi's reduplicated 10/9 diatonic genus, same as ptolemy_diat"},"al-farabi_div":{frequencies:[261.6255653006,275.62199471997,277.01530443593,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,321.08592105074,331.11985608357,348.83408706747],description:"Al Farabi's 10 intervals for the division of the tetrachord"},"al-farabi_div2":{frequencies:[261.6255653006,275.62199471997,277.01530443593,279.38237857051,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,314.30517589183,321.08592105074,331.11985608357,348.83408706747],description:"Al-Farabi's tetrachord division, incl. extra 2187/2048 & 19683/16384"},"al-farabi_divo":{frequencies:[261.6255653006,275.62199471997,277.01530443593,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,321.08592105074,331.11985608357,348.83408706747,367.49599295996,369.35373924791,379.26927587201,392.4383479509,413.43299207996,415.52295665389,426.67793535601,432.48307733364,441.49314144476,465.11211608996,467.46332623563,481.6288815761,496.67978412536,523.2511306012],description:"Al Farabi's theoretical octave division with identical tetrachords, 10th c."},"al-farabi_dor":{frequencies:[261.6255653006,282.55561052465,313.95067836072,348.83408706747,392.4383479509,423.83341578697,470.92601754108,523.2511306012],description:"Dorian mode of Al-Farabi's 10/9 Diatonic"},"al-farabi_dor2":{frequencies:[261.6255653006,267.07609791103,305.22982618403,348.83408706747,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Dorian mode of Al-Farabi's Diatonic"},"al-farabi_g1":{frequencies:[261.6255653006,294.32876096318,331.11985608357,367.91095120397,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Al-Farabi's Greek genus conjunctum medium, Land"},"al-farabi_g10":{frequencies:[261.6255653006,294.32876096318,343.38355445704,367.91095120397,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Al-Farabi's Greek genus chromaticum forte"},"al-farabi_g11":{frequencies:[261.6255653006,294.32876096318,353.19451315581,372.50983809402,392.4383479509,470.92601754108,496.67978412536,523.2511306012],description:"Al-Farabi's Greek genus chromaticum mollissimum"},"al-farabi_g12":{frequencies:[261.6255653006,294.32876096318,367.91095120397,380.17464957743,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Al-Farabi's Greek genus mollissimum ordinantium"},"al-farabi_g3":{frequencies:[261.6255653006,294.32876096318,336.37572681506,378.42269266694,392.4383479509,448.50096908674,504.56359022259,523.2511306012],description:"Al-Farabi's Greek genus conjunctum primum"},"al-farabi_g4":{frequencies:[261.6255653006,294.32876096318,336.37572681506,384.42940207435,392.4383479509,448.50096908674,512.57253609913,523.2511306012],description:"Al-Farabi's Greek genus forte duplicatum primum"},"al-farabi_g5":{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Al-Farabi's Greek genus conjunctum tertium, or forte aequatum"},"al-farabi_g6":{frequencies:[261.6255653006,294.32876096318,336.37572681506,373.75080757229,392.4383479509,448.50096908674,498.33441009638,523.2511306012],description:"Al-Farabi's Greek genus forte disjunctum primum"},"al-farabi_g7":{frequencies:[261.6255653006,294.32876096318,343.38355445704,374.60024122586,392.4383479509,457.84473927605,499.46698830115,523.2511306012],description:"Al-Farabi's Greek genus non continuum acre"},"al-farabi_g8":{frequencies:[261.6255653006,294.32876096318,353.19451315581,378.42269266694,392.4383479509,470.92601754108,504.56359022259,523.2511306012],description:"Al-Farabi's Greek genus non continuum mediocre"},"al-farabi_g9":{frequencies:[261.6255653006,294.32876096318,367.91095120397,383.71749577421,392.4383479509,490.54793493862,511.62332769895,523.2511306012],description:"Al-Farabi's Greek genus non continuum laxum"},"al-hwarizmi":{frequencies:[261.6255653006,294.32876096318,302.73815413355,311.64221749042,321.08592105074,331.11985608357,348.83408706747],description:"Al-Hwarizmi's tetrachord division"},"al-kindi":{frequencies:[261.6255653006,275.62199471997,279.38237857051,294.32876096318,310.07474405997,331.11985608357,348.83408706747],description:"Al-Kindi's tetrachord division"},"al-kindi2":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,523.2511306012],description:"Arabic mode by al-Kindi"},"al-mausili":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,441.49314144476,465.11211608996,523.2511306012],description:"Arabic mode by Ishaq al-Mausili, ? - 850 AD"},albion:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Terry Riley's Harp of New Albion scale, inverse Malcolm's Monochord, 1/1 on C#"},alembert:{frequencies:[261.6255653006,273.70610837433,292.50627485027,307.8325111191,327.03195662575,347.99121610009,365.92863081328,391.22147055517,409.45161370755,437.39890198442,462.86717295458,489.22460251523,523.2511306012],description:"Jean-Le Rond d'Alembert modified meantone (1752)"},alembert2:{frequencies:[261.6255653006,274.99999938609,292.5775112526,309.28790118232,327.03195662575,348.53877105022,367.08095907728,391.31674786192,412.03444522126,437.50542525192,464.32494005553,489.99429388332,523.2511306012],description:"d'Alembert (?)"},alves:{frequencies:[261.6255653006,267.07609791103,294.32876096318,305.22982618403,327.03195662575,336.37572681506,348.83408706747,359.73515228832,392.4383479509,425.14154361347,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:'Bill Alves, tuning for "Instantaneous Motion", 1/1 vol. 6/3'},alves_22:{frequencies:[261.6255653006,269.80136421624,279.06726965397,287.78812183066,297.30177875068,305.22982618403,317.12189733406,327.03195662575,336.37572681506,348.83408706747,359.73515228832,370.01329949656,380.54627680087,392.4383479509,406.97310157871,418.60090448096,431.68218274599,448.50096908674,460.46099492906,475.68284600109,490.54793493862,507.3950357345,523.2511306012],description:"11-limit rational interpretation of 22-tET, Bill Alves, tuning list 9-1-98"},amity:{frequencies:[261.6255653006,265.19165427121,275.22357733525,278.97501409741,282.77758484276,286.63198489776,290.53892403345,294.49911672845,305.63971046081,309.80573452349,314.02854360428,318.30891171173,322.64762154083,327.04547204619,339.41726037801,344.04368955469,348.73317930436,353.48658917459,358.304790429,371.85908609843,376.92771379174,382.0654272409,387.27317253358,392.55190203235,397.90258328792,412.95482206782,418.58360545772,424.28911201625,430.07238503487,435.93448947821,452.42543551278,458.59222335614,464.84306764133,471.17911410024,477.60152408164,484.11147196776,502.42490579041,509.27320879713,516.21486058423,523.2511306012],description:"Amity temperament, g=339.508826, 5-limit"},angklung:{frequencies:[261.6255653006,294.70472480469,326.28010551578,372.13971319976,421.00655337609,533.77627782773,589.40944960937,672.10704388342,757.81210779894],description:"Scale of an anklung set from Tasikmalaya. 1/1=174 Hz"},appunn:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.38237857051,287.10624449997,290.69507255622,294.32876096318,302.46583782713,306.24666079997,310.07474405997,322.99452506247,327.03195662575,331.11985608357,340.27406755552,344.52749339997,348.83408706747,363.36884069528,367.91095120397,372.50983809402,382.80832599996,387.59343007496,392.4383479509,408.78994578219,413.89982010446,419.07356785577,430.65936674996,436.04260883433,441.49314144476,453.6987567407,459.36999119996,465.11211608996,484.4917875937,490.54793493862,496.67978412536,510.41110133328,516.79124009995,523.2511306012],description:"Probable tuning of A. Appunn's 36-tone harmonium w. 3 manuals 80/81 apart,1887"},arabic:{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,516.20836322497,523.2511306012],description:"Arabic 17-tone Pythagorean mode, Safi al-Din"},arabic_s:{frequencies:[261.6255653006,275.62199471997,290.69507255622,294.32876096318,310.07474405997,327.03195662575,331.11985608357,348.83408706747,367.91095120397,387.59343007496,392.4383479509,413.43299207996,436.04260883433,441.49314144476,465.11211608996,490.54793493862,516.79124009995,523.2511306012],description:"Schimatically altered Arabic 17-tone Pythagorean mode"},arch_chrom:{frequencies:[261.6255653006,271.31540105247,294.32876096318,348.83408706747,392.4383479509,406.97310157871,441.49314144476,523.2511306012],description:"Archytas' Chromatic"},arch_chromc2:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,331.11985608357,343.38355445704,348.83408706747,361.75386806997,392.4383479509,406.97310157871,422.04617941496,441.49314144476,457.84473927605,496.67978412536,523.2511306012],description:"Product set of 2 of Archytas' Chromatic"},arch_dor:{frequencies:[261.6255653006,271.31540105247,294.32876096318,348.83408706747,392.4383479509,406.97310157871,465.11211608996,441.49314144476,523.2511306012],description:"Dorian mode of Archytas' Chromatic with added 16/9"},arch_enh:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Archytas' Enharmonic"},arch_enh2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,465.11211608996,418.60090448096,523.2511306012],description:"Archytas' Enharmonic with added 16/9"},arch_enh3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,358.80077526939,448.50096908674,523.2511306012],description:"Complex 9 of p. 113 based on Archytas's Enharmonic"},arch_enhp:{frequencies:[261.6255653006,269.10058145205,279.06726965397,348.83408706747,392.4383479509,403.65087217807,418.60090448096,523.2511306012],description:"Permutation of Archytas's Enharmonic with the 36/35 first"},arch_enht:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,336.37572681506,348.83408706747,504.56359022259,523.2511306012],description:"Complex 6 of p. 113 based on Archytas's Enharmonic"},arch_enht2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,348.83408706747,490.54793493862,508.71637697339,523.2511306012],description:"Complex 5 of p. 113 based on Archytas's Enharmonic"},arch_enht3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,281.36411960997,289.40309445597,348.83408706747,361.75386806997,523.2511306012],description:"Complex 1 of p. 113 based on Archytas's Enharmonic"},arch_enht4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,339.14425131559,348.83408706747,436.04260883433,523.2511306012],description:"Complex 8 of p. 113 based on Archytas's Enharmonic"},arch_enht5:{frequencies:[261.6255653006,263.77886213435,271.31540105247,279.06726965397,339.14425131559,348.83408706747,508.71637697339,523.2511306012],description:"Complex 10 of p. 113 based on Archytas's Enharmonic"},arch_enht6:{frequencies:[261.6255653006,271.31540105247,279.06726965397,289.40309445597,297.67175429757,348.83408706747,372.08969287196,523.2511306012],description:"Complex 2 of p. 113 based on Archytas's Enharmonic"},arch_enht7:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,287.04062021552,348.83408706747,358.80077526939,523.2511306012],description:"Complex 11 of p. 113 based on Archytas's Enharmonic"},arch_mult:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,490.54793493862,504.56359022259,523.2511306012],description:"Multiple Archytas"},arch_ptol:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,310.07474405997,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,436.04260883433,465.11211608996,523.2511306012],description:"Archytas/Ptolemy Hybrid 1"},arch_ptol2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,313.95067836072,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"Archytas/Ptolemy Hybrid 2"},arch_sept:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,310.07474405997,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,441.49314144476,465.11211608996,523.2511306012],description:"Archytas Septimal"},ariel1:{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ariel 1"},ariel2:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ariel 2"},ariel3:{frequencies:[261.6255653006,279.06726965397,290.69507255622,310.07474405997,322.99452506247,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,465.11211608996,484.4917875937,523.2511306012],description:"Ariel's 12-tone JI scale"},ariel_19:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,302.80736724606,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,452.08897683944,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Ariel 19-tone scale"},ariel_31:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Ariel's 31-tone system"},arist_archenh:{frequencies:[261.6255653006,271.89678302796,279.86396690685,349.22823143301,391.99543598175,407.38487419079,419.32216217931,523.2511306012],description:"PsAristo Arch. Enharmonic, 4 + 3 + 23 parts, similar to Archytas' enharmonic"},arist_chrom:{frequencies:[261.6255653006,277.18263097687,329.62755691287,349.22823143301,391.99543598175,415.30469757995,493.88330125613,523.2511306012],description:"Dorian, Neo-Chromatic,6+18+6 parts = Athanasopoulos' Byzant.liturg. 2nd chromatic"},arist_chrom2:{frequencies:[261.6255653006,282.57123920205,336.03572815422,349.22823143301,391.99543598175,423.37848741825,503.48470957687,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 8 + 18 + 4 parts"},arist_chrom3:{frequencies:[261.6255653006,279.86388595857,299.37253740865,349.22869576324,391.99491478937,419.32387668214,448.55625766774,523.2511306012],description:"PsAristo 3 Chromatic, 7 + 7 + 16 parts"},arist_chrom4:{frequencies:[261.6255653006,275.85166538713,290.85115308106,349.22823143301,391.99543598175,413.31050241775,435.7843409791,523.2511306012],description:"PsAristo Chromatic, 5.5 + 5.5 + 19 parts"},arist_chromenh:{frequencies:[261.6255653006,269.29177952703,293.66476791741,349.22823143301,391.99543598175,403.48177901006,440,523.2511306012],description:"Aristoxenos' Chromatic/Enharmonic, 3 + 9 + 18 parts"},arist_chrominv:{frequencies:[261.6255653006,311.12698372208,329.62755691287,349.22823143301,391.99543598175,466.16376151809,493.88330125613,523.2511306012],description:"Aristoxenos' Inverted Chromatic, Dorian mode, 18 + 6 + 6 parts"},arist_chromrej:{frequencies:[261.6255653006,277.18263097687,285.30470202322,349.22823143301,391.99543598175,415.30469757995,427.47405410759,523.2511306012],description:"Aristoxenos Rejected Chromatic, 6 + 3 + 21 parts"},arist_chromunm:{frequencies:[261.6255653006,273.20871865617,282.57118533961,349.22823143301,391.99543598175,409.35055662695,423.37840671577,523.2511306012],description:"Unmelodic Chromatic, genus of Aristoxenos, Dorian Mode, 4.5 + 3.5 + 22 parts"},arist_diat:{frequencies:[261.6255653006,293.66476791741,311.12698372208,349.22823143301,391.99543598175,440,466.16376151809,523.2511306012],description:"Phrygian octave species on E, 12 + 6 + 12 parts"},arist_diat2:{frequencies:[261.6255653006,279.86396690685,311.12698372208,349.22823143301,391.99543598175,419.32216217931,466.16376151809,523.2511306012],description:"PsAristo 2 Diatonic, 7 + 11 + 12 parts"},arist_diat3:{frequencies:[261.6255653006,286.68133251996,314.13668154225,349.22823143301,391.99543598175,429.53666932309,470.6732130613,523.2511306012],description:"PsAristo Diat 3, 9.5 + 9.5 + 11 parts"},arist_diat4:{frequencies:[261.6255653006,282.57123920205,305.19382000629,349.22823143301,391.99543598175,423.37848741825,457.27406033445,523.2511306012],description:"PsAristo Diatonic, 8 + 8 + 14 parts"},arist_diatdor:{frequencies:[261.6255653006,299.37379946195,305.19382000629,349.22823143301,391.99543598175,448.5538823653,457.27406033445,523.2511306012],description:"PsAristo Redup. Diatonic, 14 + 2 + 14 parts"},arist_diatinv:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,440,493.88330125613,523.2511306012],description:"Lydian octave species on E, major mode, 12 + 12 + 6 parts"},arist_diatred:{frequencies:[261.6255653006,299.37379946195,342.56848033562,349.22823143301,391.99543598175,448.5538823653,513.27277840175,523.2511306012],description:"Aristo Redup. Diatonic, Dorian Mode, 14 + 14 + 2 parts"},arist_diatred2:{frequencies:[261.6255653006,271.89678302796,308.14612137864,349.22823143301,391.99543598175,407.38487419079,461.69751437372,523.2511306012],description:"PsAristo 2 Redup. Diatonic 2, 4 + 13 + 13 parts"},arist_diatred3:{frequencies:[261.6255653006,282.57123920205,314.13668154225,349.22823143301,391.99543598175,423.37848741825,470.6732130613,523.2511306012],description:"PsAristo 3 Redup. Diatonic, 8 + 11 + 11 parts"},arist_enh:{frequencies:[261.6255653006,269.29177952703,277.18263097687,349.22823143301,391.99543598175,403.48177901006,415.30469757995,523.2511306012],description:"Aristoxenos' Enharmonion, Dorian mode"},arist_enh2:{frequencies:[261.6255653006,270.59109411209,279.86402025325,349.22823143301,391.99543598175,405.42855124795,419.32224210861,523.2511306012],description:"PsAristo 2 Enharmonic, 3.5 + 3.5 + 23 parts"},arist_enh3:{frequencies:[261.6255653006,267.99870394401,274.52693220706,349.22823143301,391.99543598175,401.54435471309,411.32564531909,523.2511306012],description:"PsAristo Enharmonic, 2.5 + 2.5 + 25 parts"},arist_hemchrom:{frequencies:[261.6255653006,273.20871865617,285.30470202322,349.22823143301,391.99543598175,409.35055662695,427.47405410759,523.2511306012],description:"Aristoxenos's Chromatic Hemiolion, Dorian Mode"},arist_hemchrom2:{frequencies:[261.6255653006,273.20871865617,293.66476791741,349.22823143301,391.99543598175,409.35055662695,440,523.2511306012],description:"PsAristo C/H Chromatic, 4.5 + 7.5 + 18 parts"},arist_hemchrom3:{frequencies:[261.6255653006,271.81876914348,282.83844897362,348.83408706747,392.4383479509,407.72815371522,424.25767346043,523.2511306012],description:"Dorian mode of Aristoxenos' Hemiolic Chromatic according to Ptolemy's interpret"},arist_hypenh2:{frequencies:[261.6255653006,267.3544191957,273.20871865617,349.22823143301,391.99543598175,400.57901831518,409.35055662695,523.2511306012],description:"PsAristo 2nd Hyperenharmonic, 37.5 + 37.5 + 425 cents"},arist_hypenh3:{frequencies:[261.6255653006,265.43099677612,269.29177952703,349.22823143301,391.99543598175,397.69714089209,403.48177901006,523.2511306012],description:"PsAristo 3 Hyperenharmonic, 1.5 + 1.5 + 27 parts"},arist_hypenh4:{frequencies:[261.6255653006,266.71168334607,271.8968348557,349.22823143301,391.99543598175,399.61600264311,407.38495184466,523.2511306012],description:"PsAristo 4 Hyperenharmonic, 2 + 2 + 26 parts"},arist_hypenh5:{frequencies:[261.6255653006,265.12453591719,268.67030163715,349.22823143301,391.99543598175,397.23796841836,402.55061428954,523.2511306012],description:"PsAristo Hyperenharmonic, 23 + 23 + 454 cents"},arist_intdiat:{frequencies:[261.6255653006,275.39533189537,307.79478270659,348.83408706747,392.4383479509,413.09299784305,461.69217405988,523.2511306012],description:"Dorian mode of Aristoxenos's Intense Diatonic according to Ptolemy"},arist_penh2:{frequencies:[261.6255653006,269.29177952703,339.28638158975,349.22823143301,391.99543598175,403.48177901006,508.3551866238,523.2511306012],description:"Permuted Aristoxenos's Enharmonion, 3 + 24 + 3 parts"},arist_penh3:{frequencies:[261.6255653006,329.62755691287,339.28638158975,349.22823143301,391.99543598175,493.88330125613,508.3551866238,523.2511306012],description:"Permuted Aristoxenos's Enharmonion, 24 + 3 + 3 parts"},arist_pschrom2:{frequencies:[261.6255653006,278.52001838539,296.50560089735,349.22823143301,391.99543598175,417.30851459865,444.25644015807,523.2511306012],description:"PsAristo 2 Chromatic, 6.5 + 6.5 + 17 parts"},arist_softchrom:{frequencies:[261.6255653006,271.89678302796,282.57123920205,349.22823143301,391.99543598175,407.38487419079,423.37848741825,523.2511306012],description:"Aristoxenos's Chromatic Malakon, Dorian Mode"},arist_softchrom2:{frequencies:[261.6255653006,277.18263097687,324.90175210669,349.22823143301,391.99543598175,415.30469757995,486.80259447109,523.2511306012],description:"Aristoxenos' Soft Chromatic, 6 + 16.5 + 9.5 parts"},arist_softchrom3:{frequencies:[261.6255653006,281.2143451833,329.62755691287,349.22823143301,391.99543598175,421.34544350737,493.88330125613,523.2511306012],description:"Aristoxenos's Chromatic Malakon, 9.5 + 16.5 + 6 parts"},arist_softchrom4:{frequencies:[261.6255653006,277.18263097687,297.93622032612,349.22823143301,391.99543598175,415.30469757995,446.39994737251,523.2511306012],description:"PsAristo S. Chromatic, 6 + 7.5 + 16.5 parts"},arist_softchrom5:{frequencies:[261.6255653006,270.64713651786,280.31310567921,348.83408706747,392.4383479509,405.97070477679,420.46965851882,523.2511306012],description:"Dorian mode of Aristoxenos' Soft Chromatic according to Ptolemy's interpretati"},arist_softdiat:{frequencies:[261.6255653006,277.18263097687,302.26980244078,349.22823143301,391.99543598175,415.30469757995,452.89298412314,523.2511306012],description:"Aristoxenos's Diatonon Malakon, Dorian Mode"},arist_softdiat2:{frequencies:[261.6255653006,277.18263097687,320.24370022528,349.22823143301,391.99543598175,415.30469757995,479.82340237272,523.2511306012],description:"Dorian Mode, 6 + 15 + 9 parts"},arist_softdiat3:{frequencies:[261.6255653006,285.30470202322,329.62755691287,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Dorian Mode, 9 + 15 + 6 parts"},arist_softdiat4:{frequencies:[261.6255653006,285.30470202322,302.26980244078,349.22823143301,391.99543598175,427.47405410759,452.89298412314,523.2511306012],description:"Dorian Mode, 9 + 6 + 15 parts"},arist_softdiat5:{frequencies:[261.6255653006,302.26980244078,320.24370022528,349.22823143301,391.99543598175,452.89298412314,479.82340237272,523.2511306012],description:"Dorian Mode, 15 + 6 + 9 parts"},arist_softdiat6:{frequencies:[261.6255653006,302.26980244078,329.62755691287,349.22823143301,391.99543598175,452.89298412314,493.88330125613,523.2511306012],description:"Dorian Mode, 15 + 9 + 6 parts"},arist_softdiat7:{frequencies:[261.6255653006,275.39533189537,299.00064605783,348.83408706747,392.4383479509,413.09299784305,448.50096908674,523.2511306012],description:"Dorian mode of Aristoxenos's Soft Diatonic according to Ptolemy"},arist_synchrom:{frequencies:[261.6255653006,277.18263097687,293.66476791741,349.22823143301,391.99543598175,415.30469757995,440,523.2511306012],description:"Aristoxenos's Chromatic Syntonon, Dorian Mode"},arist_syndiat:{frequencies:[261.6255653006,277.18263097687,311.12698372208,349.22823143301,391.99543598175,415.30469757995,466.16376151809,523.2511306012],description:"Aristoxenos's Diatonon Syntonon, Dorian Mode"},arist_unchrom:{frequencies:[261.6255653006,271.89678302796,293.66476791741,349.22823143301,391.99543598175,407.38487419079,440,523.2511306012],description:"Aristoxenos's Unnamed Chromatic, Dorian Mode, 4 + 8 + 18 parts"},arist_unchrom2:{frequencies:[261.6255653006,282.57123920205,293.66476791741,349.22823143301,391.99543598175,423.37848741825,440,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 8 + 4 + 18 parts"},arist_unchrom3:{frequencies:[261.6255653006,311.12698372208,323.3415889232,349.22823143301,391.99543598175,466.16376151809,484.46499093218,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 18 + 4 + 8 parts"},arist_unchrom4:{frequencies:[261.6255653006,311.12698372208,336.03572815422,349.22823143301,391.99543598175,466.16376151809,503.48470957687,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 18 + 8 + 4 parts"},arith13:{frequencies:[261.6255653006,269.80136421624,294.32876096318,318.85615771011,327.03195662575,343.38355445704,367.91095120397,371.99885066179,392.4383479509,449.66894036041,457.84473927605,490.54793493862,523.2511306012],description:"The first 13 terms of the arithmetic series, octave reduced"},arith22:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,312.72430852337,318.85615771011,327.03195662575,343.38355445704,349.51540364377,367.91095120397,371.99885066179,388.35044849308,392.4383479509,429.2294430713,449.66894036041,457.84473927605,472.15238737843,490.54793493862,517.11928141447,523.2511306012],description:"The first 22 terms of the arithmetic series, octave reduced"},arnautoff_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,361.75386806997,367.91095120397,372.08969287196,378.42269266694,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,523.2511306012],description:"Philip Arnautoff, transposed Archytas enharmonic (2005), 1/1 vol 12/1"},"aron-neidhardt":{frequencies:[261.6255653006,275.62199471997,292.53519855339,310.07474405997,327.04005607367,348.83408706747,367.49599295996,391.42133845759,413.43299207996,437.43855491017,465.11211608996,489.99465727995,523.2511306012],description:"Aron-Neidhardt equal beating well temperament"},art_nam:{frequencies:[261.6255653006,287.78812183066,317.68818643644,324.77656382143,348.83408706747,353.19451315581,392.4383479509,431.68218274599,473.41768959156,523.2511306012],description:"Artificial Nam System"},artusi:{frequencies:[261.6255653006,276.63528606528,292.50629850443,309.28767786778,327.03195662575,349.91920725962,369.99442271164,391.22137338448,413.66637442451,437.39882871549,462.49310482954,489.02679755603,523.2511306012],description:"Lute tuning of Giovanni Maria Artusi (1603). 1/4-comma w. acc. 1/2-way naturals"},astro:{frequencies:[13.75,13.8316453704,13.91377553836,13.99639338254,14.07098381034,14.15453513289,14.23858257025,14.32312915102,14.40817767355,14.49373120103,14.57979273211,14.66636528323,14.75345188876,14.84105560105,14.92917949063,15.01782664621,15.10700017487,15.1875093157,15.27769039377,15.36840704189,15.45966226264,15.55145934276,15.64380149972,15.73669197012,15.83013400973,15.92413089371,16.01868591662,16.11380239262,16.20948365552,16.30573305894,16.39263055969,16.48996755631,16.58788242969,16.68637870643,16.78545983879,16.88512929958,16.98539058219,17.08624720077,17.18770269033,17.28976060687,17.39242452751,17.49569805061,17.59958489756,17.69337767194,17.7984382082,17.90412257766,18.01043448453,18.11737765504,18.22495583753,18.33317280261,18.44203234327,18.55153827502,18.66169443603,18.77250468726,18.88397302169,18.99610312873,19.09733831271,19.21073534981,19.32480572095,19.43955342429,19.55498248173,19.67109693902,19.78790086598,19.90539835657,20.02359352906,20.14249064253,20.26209363229,20.38240680608,20.50343438087,20.62518059864,20.73509756099,20.85821935885,20.98207223488,21.1066605301,21.23198861133,21.35806087129,21.4848817288,21.61245575376,21.74078716869,21.86988059568,21.99974055944,22.13037161156,22.26177833063,22.38041714879,22.51330859954,22.64698913914,22.78146345308,22.91673625467,23.0528122852,23.18969644807,23.32739327396,23.46590772227,23.60524464792,23.74540893465,23.88640549521,24.02823927151,24.15629202037,24.29972834105,24.44401636439,24.58916114767,24.73516777819,24.8820415172,25.02978722599,25.17841022592,25.32791572621,25.478308967,25.62959521956,25.78177978645,25.93486800174,26.07308167197,26.22789959273,26.38363679833,26.54029874734,26.69789108494,26.85641902723,27.01588828389,27.17630444429,27.33767313101,27.5],description:"Astro temperament, g=132.194511, 5-limit"},athan_chrom:{frequencies:[261.6255653006,285.30470202322,329.62755691287,349.22823143301,391.99543598175,427.47405410759,493.88330125613,523.2511306012],description:"Athanasopoulos's Byzantine Liturgical mode Chromatic"},auftetf:{frequencies:[261.6255653006,264.29521392612,269.80136421624,287.78812183066,359.73515228832,380.54627680087,384.42940207435,392.4383479509,418.60090448096],description:"5/4 C.I. again"},augmented:{frequencies:[261.6255653006,312.71213182188,329.62755691287,393.99259743989,415.30469757995,496.39956701727,523.2511306012],description:"Augmented temperament, g=91.2, oct=1/3, 5-limit"},augteta:{frequencies:[261.6255653006,280.76889934699,302.93486508491,328.90071066361,359.73515228832,380.54627680087,408.39112632289,440.63253103259,478.40103369253],description:"Linear Division of the 11/8, duplicated on the 16/11"},augteta2:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,366.27579142084,373.75080757229,402.50086969323,436.04260883433,475.68284600109],description:"Linear Division of the 7/5, duplicated on the 10/7"},augtetb:{frequencies:[261.6255653006,270.8594087818,280.76889934699,302.93486508491,359.73515228832,380.54627680087,295.48299139832,408.39112632289,440.63253103259],description:"Harmonic mean division of 11/8"},augtetc:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,359.73515228832,380.54627680087,407.72815371522,439.09185784716,475.68284600109],description:"11/10 C.I."},augtetd:{frequencies:[261.6255653006,271.68808704293,282.55561052465,294.32876096318,359.73515228832,380.54627680087,395.18267206244,410.98997894494,428.11456140098],description:"11/9 C.I."},augtete:{frequencies:[261.6255653006,269.80136421624,278.50463402967,287.78812183066,359.73515228832,380.54627680087,392.4383479509,405.0976494977,418.60090448096],description:"5/4 C.I."},augtetg:{frequencies:[261.6255653006,278.50463402967,297.71185016965,319.76457981184,359.73515228832,380.54627680087,405.0976494977,433.03541842858,465.11211608996],description:"9/8 C.I."},augteth:{frequencies:[261.6255653006,278.50463402967,287.78812183066,319.76457981184,359.73515228832,380.54627680087,405.0976494977,418.60090448096,465.11211608996],description:"9/8 C.I. A gapped version of this scale is called AugTetI"},augtetj:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,380.54627680087,428.11456140098,475.68284600109],description:"9/8 C.I. comprised of 11:10:9:8 subharmonic series on 1 and 8:9:10:11 on 16/11"},augtetk:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,380.54627680087,418.60090448096,465.11211608996],description:"9/8 C.I. This is the converse form of AugTetJ"},augtetl:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,380.54627680087,428.11456140098,475.68284600109],description:"9/8 C.I. This is the harmonic form of AugTetI"},avg_bac:{frequencies:[261.6255653006,290.69507255622,307.79478270659,348.83408706747,392.4383479509,436.04260883433,461.69217405988,523.2511306012],description:"Average Bac System"},avicenna:{frequencies:[261.6255653006,290.69507255622,299.00064605783,348.83408706747,392.4383479509,436.04260883433,448.50096908674,523.2511306012],description:"Soft diatonic of Avicenna (Ibn Sina)"},avicenna_17:{frequencies:[261.6255653006,278.99913799634,283.42769574232,294.32876096318,310.07474405997,318.85615771011,331.11985608357,348.83408706747,371.99885066179,377.90359432309,392.4383479509,413.43299207996,425.14154361347,441.49314144476,465.11211608996,495.99846754905,503.87145909745,523.2511306012],description:"Tuning by Avicenna (Ibn Sina), Ahmed Mahmud Hifni, Cairo, 1977"},avicenna_19:{frequencies:[261.6255653006,275.62199471997,283.49690885483,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,358.80077526939,372.50983809402,377.99587847311,392.4383479509,413.43299207996,425.24536328225,441.49314144476,465.11211608996,478.40103369253,496.67978412536,503.45611792634,523.2511306012],description:"Arabic scale by Ibn Sina"},avicenna_chrom:{frequencies:[261.6255653006,269.10058145205,299.00064605783,348.83408706747,392.4383479509,403.65087217807,448.50096908674,523.2511306012],description:"Dorian mode a chromatic genus of Avicenna"},avicenna_chrom2:{frequencies:[261.6255653006,271.8968348557,323.34165055711,349.22823143301,391.99543598175,407.38495184466,484.46508327871,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 4 + 18 + 8 parts"},avicenna_chrom3:{frequencies:[261.6255653006,290.69507255622,339.14425131559,348.83408706747,392.4383479509,436.04260883433,508.71637697339,523.2511306012],description:"Avicenna's Chromatic permuted"},avicenna_diat:{frequencies:[261.6255653006,281.75060878526,305.22982618403,348.83408706747,392.4383479509,422.62591317789,457.84473927605,523.2511306012],description:"Dorian mode a soft diatonic genus of Avicenna"},avicenna_diff:{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,310.68035879446,343.38355445704,367.91095120397,392.4383479509,400.61414686654,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"Difference tones of Avicenna's Soft diatonic reduced by 2/1"},avicenna_enh:{frequencies:[261.6255653006,268.33391312882,279.06726965397,348.83408706747,392.4383479509,402.50086969323,418.60090448096,523.2511306012],description:"Dorian mode of Avicenna's (Ibn Sina) Enharmonic genus"},awad:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,307.79478270659,317.12189733406,327.03195662575,337.58137458142,348.83408706747,358.80077526939,369.35373924791,380.54627680087,392.4383479509,402.50086969323,413.09299784305,424.25767346043,436.04260883433,448.50096908674,461.69217405988,475.68284600109,490.54793493862,506.37206187213,523.2511306012],description:"d'Erlanger vol.5, p.37, after Mans.ur 'Awad"},awraamoff:{frequencies:[261.6255653006,294.32876096318,299.00064605783,313.95067836072,327.03195662575,343.38355445704,348.83408706747,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Awraamoff Septimal Just"},ayers:{frequencies:[261.6255653006,268.89294211451,276.57559760349,284.71017400359,293.33775503401,302.50455987882,312.26277148781,322.67153053741,333.7981350387,345.71949700436,358.52392281934,372.31330446624,387.20583664489,403.33941317176,420.87590939662,440.00663255101,460.95932933915,484.00729580611,509.48136400643,537.78588422901,569.42034800719,605.00911975764,645.34306107481,691.43899400873,744.62660893248,806.67882634352,880.01326510202,968.01459161222,1075.57176845802,1210.01823951527,1382.87798801746,1613.35765268703,1936.02918322444,2420.03647903055,3226.71530537407,4840.0729580611,9680.1459161222],description:"Lydia Ayers, algorithmic composition, subharmonics 1-37"},ayers_19:{frequencies:[261.6255653006,268.89294211451,276.57559760349,284.71017400359,293.33775503401,302.50455987882,312.26277148781,322.67153053741,333.7981350387,345.71949700436,358.52392281934,372.31330446624,387.20583664489,403.33941317176,420.87590939662,440.00663255101,460.95932933915,484.00729580611,509.48136400643,523.2511306012],description:"Scale for NINETEEN, for 19 for the 90's CD. Repeats at 37/19 (or 2/1)"},ayers_ap:{frequencies:[261.6255653006,299.00064605783,336.37572681506,388.70083987518,448.50096908674,523.2511306012],description:"Lydia Ayers' Appetizer, ICMC 96, Balinese Slendro from Singaraja,"},ayers_me:{frequencies:[261.6255653006,280.31310567921,299.00064605783,308.34441624714,336.37572681506,392.4383479509,420.46965851882,448.50096908674,504.56359022259,523.2511306012],description:"Scale for Merapi (1996), Lydia Ayers. Slendro 0 2 4 5 7 9, Pelog 0 1 3 6 8 9"},h10_27:{frequencies:[261.6255653006,281.00523680435,300.3849083081,319.76457981184,348.83408706747,368.21375857121,397.28326582684,426.35277308246,455.42228033808,484.4917875937,523.2511306012],description:"10-tET harmonic approximation, fundamental=27"},h12_24:{frequencies:[261.6255653006,272.52663052146,294.32876096318,316.13089140489,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,468.74580449691,490.54793493862,523.2511306012],description:"12-tET harmonic approximation, fundamental=24"},h14_27:{frequencies:[261.6255653006,271.31540105247,290.69507255622,300.3849083081,319.76457981184,339.14425131559,348.83408706747,368.21375857121,387.59343007496,406.97310157871,426.35277308246,455.42228033808,474.80195184183,494.18162334558,523.2511306012],description:"14-tET harmonic approximation, fundamental=27"},h15_24:{frequencies:[261.6255653006,272.52663052146,283.42769574232,305.22982618403,316.13089140489,327.03195662575,348.83408706747,359.73515228832,381.53728273004,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"15-tET harmonic approximation, fundamental=24"},hahn9:{frequencies:[261.6255653006,286.15296204753,313.95067836072,327.03195662575,366.27579142084,392.4383479509,418.60090448096,457.84473927605,490.54793493862,523.2511306012],description:"Paul Hahn's just version of 9 out of 31 scale. TL 6-8-'98"},hahn_7:{frequencies:[261.6255653006,274.70684356563,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Paul Hahn's scale with 32 consonant 7-limit dyads. TL '99, see also smithgw_hahn12"},hahn_g:{frequencies:[261.6255653006,280.50183143454,294.66523452594,309.54379154736,331.87735433448,348.63486612079,373.78884718875,392.66259958718,420.99317852788,442.25042328711,464.58101193362,498.10049926644,523.2511306012],description:'fourth of sqrt(2)-1 octave "recursive" meantone, Paul Hahn'},hahnmaxr:{frequencies:[261.6255653006,275.93321340298,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Paul Hahn's hahn_7 marvel projected to the 5-limit"},halfefg357777:{frequencies:[261.6255653006,280.31310567921,299.00064605783,320.35783506196,341.71502406609,375.57576268738,400.61414686654,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Half genus [357777]"},hamilton:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,426.35277308246,442.75095666255,479.64686971777,523.2511306012],description:"Elsie Hamilton's gamut, from article The Modes of Ancient Greek Music (1953)"},hamilton_jc:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,359.73515228832,338.57426097725,411.12588832951,383.71749577421,442.75095666255,426.35277308246,479.64686971777,523.2511306012],description:"Chalmers' permutation of Hamilton's gamut. Diatonic notes on white"},hamilton_jc2:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,359.73515228832,383.71749577421,411.12588832951,426.35277308246,442.75095666255,460.46099492906,479.64686971777,523.2511306012],description:"EH gamut, diatonic notes on white and drops 17 for 25. JC Dorian Harmonia on C"},hammond:{frequencies:[261.6255653006,226.52945288223,240.12209418,254.35818848669,269.43528366778,285.40970760065,302.50455987882,320.49131749323,339.40613876835,359.73515228832,381.06332337261,403.65087217807,427.65717404906,453.05890576445],description:'Hammond organ pitch wheel ratios, 1/1=320 Hz. Do "del 0" to get 12-tone scale'},hammond12:{frequencies:[261.6255653006,277.32410877127,293.76579515365,311.17877832054,329.62811300357,349.37146352202,370.1449018936,391.99018843668,415.46876743159,440.10130305006,466.18833124791,493.91391932426,523.2511306012],description:"Hammond organ scale, 1/1=277.0731707 Hz, A=440, see hammond for the ratios"},handblue:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'"Handy Blues" of Pitch Palette, 7-limit'},handel:{frequencies:[261.6255653006,276.07055536165,292.89641271707,310.57937447136,328.79480940231,349.02322090701,368.4933346061,391.37619916626,414.10583283548,438.86859125239,465.61660972366,492.3908742288,523.2511306012],description:"Well temperament according to Georg Friedrich H\xEF\xBF\xBDndel's rules (c. 1780)"},hanson_19:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,302.80736724606,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"JI version of Hanson's 19 out of 53-tET scale"},"harm-doreninv1":{frequencies:[261.6255653006,321.08592105074,327.03195662575,332.97799220076,380.54627680087,499.46698830115,511.35905945117,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Dorian Harmonia"},"harm-dorinv1":{frequencies:[261.6255653006,309.19384990071,321.08592105074,332.97799220076,380.54627680087,475.68284600109,499.46698830115,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Dorian Harmonia"},"harm-lydchrinv1":{frequencies:[261.6255653006,322.00069575458,342.12573923925,362.25078272391,402.50086969323,483.00104363188,503.12608711654,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Lydian Harmonia"},"harm-lydeninv1":{frequencies:[261.6255653006,342.12573923925,352.18826098158,362.25078272391,402.50086969323,503.12608711654,513.18860885887,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Lydian Harmonia"},"harm-mixochrinv1":{frequencies:[261.6255653006,336.37572681506,355.06326719367,373.75080757229,411.12588832951,485.87604984397,504.56359022259,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Mixolydian Harmonia"},"harm-mixoeninv1":{frequencies:[261.6255653006,355.06326719367,364.40703738298,373.75080757229,411.12588832951,504.56359022259,513.90736041189,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Mixolydian Harmonia"},harm10:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,331.11985608357,343.38355445704,367.91095120397,392.4383479509,400.61414686654,408.78994578219,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"6/7/8/9/10 harmonics"},harm11s:{frequencies:[261.6255653006,65.40639132515,95.13656920022,104.65022612024,116.27802902249,130.8127826503,149.50032302891,174.41704353373,196.21917397545,209.30045224048,261.6255653006,327.03195662575,348.83408706747,392.4383479509,457.84473927605,523.2511306012,588.65752192635,654.0639132515,719.47030457665,1046.5022612024],description:"Harm. 1/4-11/4 and subh. 4/1-4/11. Joseph Pehrson 1999"},harm12s:{frequencies:[261.6255653006,294.32876096318,299.00064605783,327.03195662575,348.83408706747,359.73515228832,380.54627680087,392.4383479509,418.60090448096,457.84473927605,465.11211608996,523.2511306012],description:"Harmonics 1 to 12 and subharmonics mixed"},"harm15-30":{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,366.27579142084,383.71749577421,418.60090448096,436.04260883433,453.48431318771,488.36772189445,523.2511306012],description:"Harmonics 15 to 30"},harm15:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991],description:"Fifth octave of the harmonic overtone series"},"harm16-32":{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Harmonics 16-32 & Tom Stone's Guitar Scale"},harm16:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,2093.0045224048,1395.33634826987,1046.5022612024,837.20180896192,697.66817413493,598.00129211566,523.2511306012,465.11211608996,418.60090448096,380.54627680087,348.83408706747,322.00069575458,299.00064605783,279.06726965397,261.6255653006],description:"First 16 harmonics and subharmonics"},"harm1c-dorian":{frequencies:[261.6255653006,309.19384990071,321.08592105074,332.97799220076,380.54627680087,475.68284600109,499.46698830115,523.2511306012],description:"Harm1C-Dorian"},"harm1c-hypod":{frequencies:[261.6255653006,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"HarmC-Hypodorian"},"harm1c-hypol":{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,366.27579142084,392.4383479509,418.60090448096,444.76346101102,523.2511306012],description:"HarmC-Hypolydian"},"harm1c-lydian":{frequencies:[261.6255653006,271.68808704293,281.75060878526,362.25078272391,382.37582620857,402.50086969323,422.62591317789,442.75095666255,523.2511306012],description:"Harm1C-Lydian"},"harm1c-mix":{frequencies:[261.6255653006,299.00064605783,373.75080757229,392.4383479509,411.12588832951,485.87604984397,504.56359022259,523.2511306012],description:"Harm1C-Con Mixolydian"},"harm1c-mixolydian":{frequencies:[261.6255653006,280.31310567921,299.00064605783,373.75080757229,411.12588832951,429.81342870813,448.50096908674,523.2511306012],description:"Harm1C-Mixolydian"},harm24:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"Harmonics 12 to 24"},harm24_2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Harmonics 12 to 24, mode 9"},harm3:{frequencies:[261.6255653006,327.03195662575,392.4383479509,457.84473927605],description:"Third octave of the harmonic overtone series"},"harm30-60":{frequencies:[261.6255653006,270.34641747729,279.06726965397,287.78812183066,296.50897400735,305.22982618403,313.95067836072,322.67153053741,331.39238271409,340.11323489078,348.83408706747,357.55493924415,366.27579142084,374.99664359753,383.71749577421,392.4383479509,401.15920012759,409.88005230427,418.60090448096,427.32175665765,436.04260883433,444.76346101102,453.48431318771,462.20516536439,470.92601754108,479.64686971777,488.36772189445,497.08857407114,505.80942624783,514.53027842451,523.2511306012],description:"Harmonics 30-60"},harm30:{frequencies:[261.6255653006,279.06726965397,288.69027895239,299.00064605783,310.07474405997,322.00069575458,334.88072358477,348.83408706747,364.00078650518,398.6675280771,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024,1196.00258423131,1395.33634826987,1674.40361792384,2093.0045224048,2790.67269653973,4186.0090448096,8372.0180896192,8633.6436549198,8895.2692202204,9156.894785521,9418.5203508216,9680.1459161222,9941.7714814228,10203.3970467234,10465.022612024,10726.6481773246,10988.2737426252,11249.8993079258,11511.5248732264,11773.150438527,12034.7760038276,12296.4015691282,12558.0271344288,12819.6526997294,13081.27826503,13342.9038303306,13604.5293956312,13866.1549609318,14127.7805262324,14389.406091533,14651.0316568336,14912.6572221342,15174.2827874348,15435.9083527354,15697.533918036,15959.1594833366,16220.7850486372],description:"First 30 harmonics and subharmonics"},"harm32-64":{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,335.20775554139,343.38355445704,351.55935337268,359.73515228832,367.91095120397,376.08675011961,384.26254903526,392.4383479509,400.61414686654,408.78994578219,416.96574469783,425.14154361347,433.31734252912,441.49314144476,449.66894036041,457.84473927605,466.02053819169,474.19633710734,482.37213602298,490.54793493862,498.72373385427,506.89953276991,515.07533168556,523.2511306012],description:"Harmonics 32-64"},harm37odd:{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Odd harmonics until 37"},harm4:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,490.54793493862],description:"Fourth octave of the harmonic overtone series"},"harm6-12":{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,314.76825825228,327.03195662575,331.11985608357,343.38355445704,359.73515228832,367.91095120397,392.4383479509,400.61414686654,404.70204632437,408.78994578219,441.49314144476,449.66894036041,457.84473927605,490.54793493862,494.63583439645,515.07533168556,523.2511306012],description:"First 12 harmonics of 6th through 12th harmonics"},harm6:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,523.2511306012],description:"Harmonics 6-12"},"harm60-30":{frequencies:[261.6255653006,280.31310567921,290.69507255622,313.95067836072,327.03195662575,348.83408706747,373.75080757229,392.4383479509,413.09299784305,436.04260883433,448.50096908674,490.54793493862,523.2511306012],description:"Harmonics 60 to 30 (Perkis)"},harm7lim:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,3139.5067836072,3662.7579142084,3924.383479509,4186.0090448096,4709.2601754108,5232.511306012,5494.1368713126,5755.7624366132,6279.0135672144,6540.639132515,7325.5158284168,7848.766959018,8372.0180896192,9156.894785521,9418.5203508216,10465.022612024,10988.2737426252,11773.150438527,12558.0271344288,12819.6526997294,13081.27826503,14651.0316568336,15697.533918036,16482.4106139378,16744.0361792384,18313.789571042,18837.0407016432,19621.917397545,20930.045224048,21191.6707893486,21976.5474852504,23546.300877054,25116.0542688576,25639.3053994588,26162.55653006,27470.684356563,29302.0633136672,31395.067836072],description:"7-limit harmonics"},harm8:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Harmonics 8-16"},harm9:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,356.10146388137,392.4383479509,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"6/7/8/9 harmonics, First 9 overtones of 5th through 9th harmonics"},harm_bastard:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:`Schlesinger's "Bastard" Hypodorian Harmonia & inverse 1)7 from 1.3.5.7.9.11.13`},harm_bastinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,523.2511306012],description:`Inverse Schlesinger's "Bastard" Hypodorian Harmonia & 1)7 from 1.3.5.7.9.11.13`},harm_darreg:{frequencies:[261.6255653006,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,5232.511306012,6279.0135672144,7325.5158284168,8372.0180896192,9418.5203508216,10465.022612024,11511.5248732264,12558.0271344288,13604.5293956312,14651.0316568336,15697.533918036],description:"Darreg Harmonics 4-15"},harm_mean:{frequencies:[261.6255653006,270.06509966514,279.06726965397,299.00064605783,348.83408706747,392.4383479509,405.0976494977,418.60090448096,448.50096908674,523.2511306012],description:"Harm. Mean 9-tonic 8/7 is HM of 1/1 and 4/3, etc."},"harmc-hypop":{frequencies:[261.6255653006,319.76457981184,334.29933343966,348.83408706747,363.36884069528,377.90359432309,406.97310157871,465.11211608996,494.18162334558,523.2511306012],description:"HarmC-Hypophrygian"},"harmd-15":{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,383.71749577421,418.60090448096,453.48431318771,523.2511306012],description:"HarmD-15-Harmonia"},"harmd-conmix":{frequencies:[261.6255653006,299.00064605783,336.37572681506,392.4383479509,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"HarmD-ConMixolydian"},"harmd-hypod":{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"HarmD-Hypodorian"},"harmd-hypol":{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"HarmD-Hypolydian"},"harmd-hypop":{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,363.36884069528,377.90359432309,406.97310157871,436.04260883433,465.11211608996,523.2511306012],description:"HarmD-Hypophrygian"},"harmd-lyd":{frequencies:[261.6255653006,281.75060878526,301.87565226992,322.00069575458,362.25078272391,382.37582620857,402.50086969323,442.75095666255,483.00104363188,523.2511306012],description:"HarmD-Lydian"},"harmd-mix":{frequencies:[261.6255653006,299.00064605783,336.37572681506,373.75080757229,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"HarmD-Mixolydian. Harmonics 7-14"},"harmd-phr":{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,348.83408706747,327.03195662575,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"HarmD-Phryg (with 5 extra tones)"},"harme-hypod":{frequencies:[261.6255653006,343.38355445704,351.55935337268,359.73515228832,376.08675011961,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"HarmE-Hypodorian"},"harme-hypol":{frequencies:[261.6255653006,281.24748269815,274.70684356563,340.11323489078,366.27579142084,392.4383479509,405.51962621593,418.60090448096,523.2511306012],description:"HarmE-Hypolydian"},"harme-hypop":{frequencies:[261.6255653006,334.29933343966,341.56671025356,348.83408706747,363.36884069528,377.90359432309,406.97310157871,494.18162334558,508.71637697339,523.2511306012],description:"HarmE-Hypophrygian"},"harmjc-15":{frequencies:[261.6255653006,280.31310567921,301.87565226992,313.95067836072,327.03195662575,356.76213450082,373.75080757229,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Rationalized JC Sub-15 Harmonia on C. MD=15, No planetary assignment."},"harmjc-17-2":{frequencies:[261.6255653006,277.97716313189,296.50897400735,317.68818643644,342.12573923925,370.63621750918,386.75083566176,404.33041910093,423.58424858192,444.76346101102,468.17206422213,494.18162334558,523.2511306012],description:"Rationalized JC Sub-17 Harmonia on C. MD=17, No planetary assignment."},"harmjc-17":{frequencies:[261.6255653006,269.55361273395,277.97716313189,296.50897400735,317.68818643644,342.12573923925,355.81076880882,370.63621750918,386.75083566176,404.33041910093,423.58424858192,444.76346101102,523.2511306012],description:"Rationalized JC Sub-17 Harmonia on C. MD=17, No planetary assignment."},"harmjc-19-2":{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,368.21375857121,382.37582620857,397.67085925691,414.24047839262,432.2509339749,451.89870370104,523.2511306012],description:"Rationalized JC Sub-19 Harmonia on C. MD=19, No planetary assignment."},"harmjc-19":{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,382.37582620857,414.24047839262,432.2509339749,451.89870370104,473.41768959156,497.08857407114,523.2511306012],description:"Rationalized JC Sub-19 Harmonia on C. MD=19, No planetary assignment."},"harmjc-21":{frequencies:[261.6255653006,268.0066766494,274.70684356563,289.16509849014,305.22982618403,343.38355445704,366.27579142084,392.4383479509,406.97310157871,422.62591317789,439.53094970501,457.84473927605,523.2511306012],description:"Rationalized JC Sub-21 Harmonia on C. MD=21, No planetary assignment."},"harmjc-23-2":{frequencies:[261.6255653006,273.51763645063,286.54228580542,300.86940009569,316.70463167967,334.29933343966,353.96400011258,376.08675011961,401.15920012759,429.81342870813,462.87600014722,501.44900015948,523.2511306012],description:"Rationalized JC Sub-23 Harmonia on C. MD=23, No planetary assignment."},"harmjc-23":{frequencies:[261.6255653006,273.51763645063,300.86940009569,316.70463167967,334.29933343966,376.08675011961,401.15920012759,429.81342870813,445.73244458621,462.87600014722,481.3910401531,501.44900015948,523.2511306012],description:"Rationalized JC Sub-23 Harmonia on C. MD=23, No planetary assignment."},"harmjc-25":{frequencies:[261.6255653006,272.52663052146,297.30177875068,311.45900631024,327.03195662575,363.36884069528,384.74347838324,408.78994578219,436.04260883433,467.18850946536,484.4917875937,503.12608711654,523.2511306012],description:"Rationalized JC Sub-25 Harmonia on C. MD=25, No planetary assignment."},"harmjc-27":{frequencies:[261.6255653006,271.68808704293,294.32876096318,307.12566361375,321.08592105074,353.19451315581,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,504.56359022259,523.2511306012],description:"Rationalized JC Sub-27 Harmonia on C. MD=27, No planetary assignment."},"harmjc-hypod16":{frequencies:[261.6255653006,279.06726965397,299.00064605783,310.07474405997,322.00069575458,348.83408706747,364.00078650518,380.54627680087,398.6675280771,418.60090448096,440.63253103259,465.11211608996,523.2511306012],description:"Rationalized JC Hypodorian Harmonia on C. Saturn Scale on C, MD=16. (Steiner)"},"harmjc-hypol20":{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,455.00098313148,575.57624366132,523.2511306012],description:"Rationalized JC Hypolydian Harmonia on C. Mars scale on C., MD=20"},"harmjc-hypop18":{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,336.37572681506,362.25078272391,376.74081403286,392.4383479509,409.50088481833,428.11456140098,448.50096908674,470.92601754108,523.2511306012],description:"Rationalized JC Hypophrygian Harmonia on C. Jupiter scale on C, MD =18"},"harmjc-lydian13":{frequencies:[261.6255653006,272.09058791262,283.42769574232,295.75063903546,309.19384990071,340.11323489078,358.01393146398,377.90359432309,400.13321751856,425.14154361347,453.48431318771,485.87604984397,523.2511306012],description:"Rationalized JC Lydian Harmonia on C. Mercury scale on C, MD = 26 or 13"},"harmjc-mix14":{frequencies:[261.6255653006,271.31540105247,281.75060878526,293.02063313667,305.22982618403,332.97799220076,348.83408706747,366.27579142084,385.55346465352,406.97310157871,430.91269578922,457.84473927605,523.2511306012],description:"Rationalized JC Mixolydian Harmonia on C. Moon Scale on C, MD = 14"},"harmjc-phryg12":{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,465.11211608996,483.00104363188,523.2511306012],description:"Rationalized JC Phrygian Harmonia on C. Venus scale on C, MD = 24 or 12"},harmonical:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"See pp 17 and 466-468 Helmholtz. lower 4 oct. Instr. designed & tuned by Ellis"},harmonical_up:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,359.73515228832,457.84473927605,392.4383479509,408.78994578219,425.14154361347,474.19633710734,490.54793493862,523.2511306012],description:"Upper 2 octaves of Ellis's Harmonical"},harmsub16:{frequencies:[261.6255653006,280.31310567921,294.32876096318,301.87565226992,327.03195662575,356.76213450082,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"16 harmonics on 1/1 and 16 subharmonics on 15/8"},harrison_16:{frequencies:[261.6255653006,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,370.63621750918,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:'Lou Harrison 16-tone superparticular "Ptolemy Duple"'},harrison_5:{frequencies:[261.6255653006,279.06726965397,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_1:{frequencies:[261.6255653006,285.40970760065,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_3:{frequencies:[261.6255653006,271.31540105247,348.83408706747,392.4383479509,406.97310157871,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_4:{frequencies:[261.6255653006,279.06726965397,313.95067836072,392.4383479509,490.54793493862,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_8:{frequencies:[261.6255653006,279.06726965397,313.95067836072,327.03195662575,367.91095120397,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:'Lou Harrison 8-tone tuning for "Serenade for Guitar"'},harrison_cinna:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,343.38355445704,367.91095120397,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:`Lou Harrison, "Incidental Music for Corneille's Cinna" (1955-56) 1/1=C`},harrison_diat:{frequencies:[261.6255653006,274.70684356563,313.95067836072,348.83408706747,392.4383479509,412.06026534844,470.92601754108,523.2511306012],description:"From Lou Harrison, a soft diatonic"},harrison_joy:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Lou Harrison's Joyous 6"},harrison_mid:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Lou Harrison mid mode"},harrison_mid2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,448.50096908674,470.92601754108,523.2511306012],description:"Lou Harrison mid mode 2"},harrison_min:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"From Lou Harrison, a symmetrical pentatonic with minor thirds"},harrison_mix1:{frequencies:[261.6255653006,285.40970760065,313.95067836072,392.4383479509,425.14154361347,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix2:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,490.54793493862,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix3:{frequencies:[261.6255653006,313.95067836072,336.37572681506,392.4383479509,418.60090448096,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix4:{frequencies:[261.6255653006,280.31310567921,327.03195662575,392.4383479509,448.50096908674,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_songs:{frequencies:[261.6255653006,271.31540105247,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,406.97310157871,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:'Shared gamut of "Four Strict Songs" (1951-55), each pentatonic'},harrisonj:{frequencies:[261.6255653006,272.17712546173,292.13970819848,313.56642833783,326.21280531667,350.13858362887,364.25994396351,390.97625694066,406.744629928,436.57694340361,468.59728067062,487.49616921257,523.2511306012],description:"John Harrison's temperament (1775), almost 3/10-comma. Third = 1200/pi"},harrisonm_rev:{frequencies:[261.6255653006,257.53766584278,294.32876096318,289.72987407313,331.11985608357,343.38355445704,372.50983809402,392.4383479509,386.30649876417,441.49314144476,457.84473927605,496.67978412536,523.2511306012],description:'Michael Harrison, piano tuning for "Revelation" (2001), 1/1=F'},haverstick13:{frequencies:[261.6255653006,283.85429714132,301.75671459889,307.97166902637,320.78822215662,341.02002673508,362.52783176564,377.61479489998,401.43059675514,426.7484383229,444.50800708553,482.27514684959,502.34551296122,523.2511306012],description:"Neil Haverstick, scale in 34-tET, MMM 21-5-2006"},hawkes:{frequencies:[261.6255653006,274.56549986328,292.86986732103,310.24975557428,327.84547867349,349.70184487387,366.99801003998,391.46454285105,411.84824958905,438.2147004401,467.42901507992,490.54793493862,523.2511306012],description:"William Hawkes' modified 1/5-comma meantone (1807)"},hawkes2:{frequencies:[261.6255653006,275.15193010334,293.04845178801,312.10900487995,328.24542585003,349.59527202198,367.66978141816,391.58387939843,411.8292495232,438.61558204759,467.14415995873,491.2960898965,523.2511306012],description:"Meantone with fifth tempered 1/6 of 53-tET step by William Hawkes (1808)"},hawkes3:{frequencies:[261.6255653006,274.56549986328,292.86986732103,311.6193417424,327.84547867349,349.70184487387,366.99801003998,391.46454285105,411.84824958905,438.2147004401,467.42901237995,490.54793493862,523.2511306012],description:"William Hawkes' modified 1/5-comma meantone (1811)"},hbarnes:{frequencies:[261.6255653006,276.71351472429,293.33333347996,310.95136287868,328.88393162803,349.42547049952,369.15973155124,391.77416758435,414.83597850347,439.25532436715,466.16376151809,493.04743111995,523.2511306012],description:"Variation on Barnes with 1/6P -> 1/8P. OdC '99"},hebdome1:{frequencies:[261.6255653006,265.71346475842,267.23182741418,269.80136421624,273.30527803723,280.31310567921,283.42769574232,287.78812183066,289.07289023169,292.28481123426,294.32876096318,300.63580584096,303.67253115248,308.34441624714,311.77046531655,315.35224388912,318.85615771011,323.76163705949,327.03195662575,334.03978426773,336.37572681506,340.11323489078,341.63159754654,346.88746827803,350.74177348112,359.73515228832,364.40703738298,367.91095120397,370.01329949656,375.7947573012,382.62738925213,385.43052030892,389.71308164569,392.4383479509,400.84774112128,404.70204632437,409.95791705585,411.12588832951,417.54973033466,420.46965851882,425.14154361347,431.68218274599,437.28844485957,441.49314144476,445.38637902364,449.66894036041,455.50879672872,462.5166243707,467.65569797482,470.92601754108,478.28423656516,479.64686971777,485.87604984397,490.54793493862,501.0596764016,504.56359022259,510.16985233617,513.90736041189,523.2511306012],description:"Wilson 1.3.5.7.9.11.13.15 hebdomekontany, 1.3.5.7 tonic"},helmholtz:{frequencies:[261.6255653006,279.06726965397,327.03195662575,348.83408706747,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Helmholtz's Chromatic scale and Gipsy major from Slovakia"},helmholtz_24:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,327.03195662575,331.11985608357,344.91651675372,348.83408706747,367.91095120397,372.50983809402,388.03108134794,392.4383479509,408.78994578219,413.89982010446,436.04260883433,441.49314144476,459.88868900496,465.63729761752,490.54793493862,496.67978412536,517.37477513058,523.2511306012],description:"Simplified Helmholtz 24"},helmholtz_hd:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,523.2511306012],description:"Helmholtz Harmonic Decad"},helmholtz_pure:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,327.03195662575,330.74639366397,344.91651675372,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,408.78994578219,413.43299207996,436.04260883433,441.49314144476,459.88868900496,465.11211608996,490.54793493862,496.11959049595,516.79124009995,523.2511306012],description:"Helmholtz's two-keyboard harmonium tuning untempered"},helmholtz_temp:{frequencies:[261.6255653006,275.81645389904,279.10671937395,290.77707354032,294.24580701304,306.54917537161,310.20605716322,327.03195662575,330.9330448436,344.77062435684,348.88325535732,367.80710710303,372.19474608839,387.75741156435,392.38304142029,408.78994578219,413.66637442451,436.10414127513,441.30625330017,459.75895986689,465.24324076996,490.4788828408,496.3296094287,517.08305349316,523.2511306012],description:"Helmholtz's two-keyboard harmonium tuning"},hem_chrom:{frequencies:[261.6255653006,269.55361273395,285.40970760065,348.83408706747,392.4383479509,404.33041910093,428.11456140098,523.2511306012],description:"Hemiolic Chromatic genus has the strong or 1:2 division of the 12/11 pyknon"},hem_chrom11:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"11'al Hemiolic Chromatic genus with a CI of 11/9, Winnington-Ingram"},hem_chrom13:{frequencies:[261.6255653006,272.09058791262,283.42769574232,348.83408706747,392.4383479509,408.13588186894,425.14154361347,523.2511306012],description:"13'al Hemiolic Chromatic or neutral-third genus has a CI of 16/13"},hem_chrom2:{frequencies:[261.6255653006,269.29177952703,285.30470202322,349.22823143301,391.99543598175,403.48177901006,427.47405410759,523.2511306012],description:"1:2 Hemiolic Chromatic genus 3 + 6 + 21 parts"},hemiwuer24:{frequencies:[261.6255653006,274.60778382002,280.48822448524,286.49458884928,292.62957327549,307.15025309186,313.72755695954,320.44570714783,327.30771955335,350.90592546776,358.42021185082,366.09540888186,373.9349620795,392.49012653442,400.89489544613,409.47964376542,418.24822532303,439.00227453173,448.4030528436,458.00513880662,467.8128437444,491.02635713596,501.54117720983,512.28116095218,523.2511306012],description:"Hemiw\xEF\xBF\xBDrschmidt[24] in 229-tET tuning."},hen12:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Adjusted Hahn12"},hen22:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,366.27579142084,381.53728273004,392.4383479509,415.27867508032,418.60090448096,436.04260883433,448.50096908674,457.84473927605,484.4917875937,490.54793493862,508.71637697339,523.2511306012],description:"Adjusted Hahn22"},hept_diamond:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,316.53463456122,325.57848126297,327.03195662575,334.88072358477,336.37572681506,348.83408706747,392.4383479509,406.97310157871,408.78994578219,418.60090448096,420.46965851882,432.48307733364,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Inverted-Prime Heptatonic Diamond based on Archytas's Enharmonic"},hept_diamondi:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,281.36411960997,289.40309445597,294.32876096318,297.67175429757,327.03195662575,336.37572681506,348.83408706747,361.75386806997,367.91095120397,372.08969287196,378.42269266694,392.4383479509,406.97310157871,418.60090448096,459.88868900496,465.11211608996,473.02836583367,486.54346200035,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Prime-Inverted Heptatonic Diamond based on Archytas's Enharmonic"},hept_diamondp:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,339.14425131559,348.83408706747,358.80077526939,361.75386806997,367.91095120397,372.08969287196,378.42269266694,381.53728273004,392.4383479509,403.65087217807,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Heptatonic Diamond based on Archytas's Enharmonic, 27 tones"},herf:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Sims:Reflections on This and That, 1991. Used by Herf in Ekmelischer Gesang"},heun:{frequencies:[261.6255653006,275.15237829755,293.0485888979,312.10878854255,328.24573110938,349.59519124833,367.67029324081,391.58396987353,411.83001550364,438.61588607285,467.14394139401,491.29666030217,523.2511306012],description:"Well temperament for organ of Jan Heun (1805), subset of 55-tET"},hexagonal13:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Star hexagonal 13-tone scale"},hexagonal37:{frequencies:[261.6255653006,272.52663052146,279.06726965397,282.55561052465,283.88190679319,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,313.95067836072,322.99452506247,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,423.83341578697,436.04260883433,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,482.22824196207,484.4917875937,490.54793493862,502.32108537715,523.2511306012],description:"Star hexagonal 37-tone scale"},hexany1:{frequencies:[261.6255653006,305.22982618403,327.03195662575,381.53728273004,436.04260883433,457.84473927605,523.2511306012],description:"Two out of 1 3 5 7 hexany on 1.3"},hexany10:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"1.3.5.9 Hexany"},hexany11:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:"1.3.7.9 Hexany on 1.3"},hexany12:{frequencies:[261.6255653006,290.69507255622,305.22982618403,339.14425131559,406.97310157871,436.04260883433,523.2511306012],description:"3.5.7.9 Hexany on 3.9"},hexany13:{frequencies:[261.6255653006,285.40970760065,327.03195662575,356.76213450082,392.4383479509,475.68284600109,523.2511306012],description:"1.3.5.11 Hexany on 1.11"},hexany14:{frequencies:[261.6255653006,287.78812183066,340.11323489078,383.71749577421,453.48431318771,498.83274450648,523.2511306012],description:"5.11.13.15 Hexany (5.15), used in The Giving, by Stephen J. Taylor"},hexany15:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,418.60090448096,523.2511306012],description:"1.3.5.15 2)4 hexany (1.15 tonic) degenerate, symmetrical pentatonic"},hexany16:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,465.11211608996,523.2511306012],description:"1.3.9.27 Hexany, a degenerate pentatonic form"},hexany17:{frequencies:[261.6255653006,327.03195662575,334.88072358477,408.78994578219,418.60090448096,523.2511306012],description:"1.5.25.125 Hexany, a degenerate pentatonic form"},hexany18:{frequencies:[261.6255653006,299.00064605783,341.71502406609,400.61414686654,457.84473927605,523.2511306012],description:"1.7.49.343 Hexany, a degenerate pentatonic form"},hexany19:{frequencies:[261.6255653006,299.00064605783,327.03195662575,418.60090448096,457.84473927605,523.2511306012],description:"1.5.7.35 Hexany, a degenerate pentatonic form"},hexany2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,490.54793493862,523.2511306012],description:"Hexany Cluster 2"},hexany20:{frequencies:[261.6255653006,279.06726965397,305.22982618403,398.6675280771,436.04260883433,465.11211608996,523.2511306012],description:"3.5.7.105 Hexany"},hexany21:{frequencies:[261.6255653006,279.06726965397,310.07474405997,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"3.5.9.135 Hexany"},hexany21a:{frequencies:[261.6255653006,279.06726965397,310.07474405997,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"3.5.9.135 Hexany + 4/3. Is Didymos Diatonic tetrachord on 1/1 and inv. on 3/2"},hexany22:{frequencies:[261.6255653006,276.76092858245,359.73515228832,380.54627680087,494.63583439645,523.2511306012],description:"1.11.121.1331 Hexany, a degenerate pentatonic form"},hexany23:{frequencies:[261.6255653006,348.83408706747,359.73515228832,380.54627680087,392.4383479509,523.2511306012],description:"1.3.11.33 Hexany, degenerate pentatonic form"},hexany24:{frequencies:[261.6255653006,327.03195662575,359.73515228832,380.54627680087,418.60090448096,523.2511306012],description:"1.5.11.55 Hexany, a degenerate pentatonic form"},hexany25:{frequencies:[261.6255653006,299.00064605783,359.73515228832,380.54627680087,457.84473927605,523.2511306012],description:"1.7.11.77 Hexany, a degenerate pentatonic form"},hexany26:{frequencies:[261.6255653006,294.32876096318,359.73515228832,380.54627680087,465.11211608996,523.2511306012],description:"1.9.11.99 Hexany, a degenerate pentatonic form"},hexany3:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 3"},hexany4:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Hexany Cluster 4"},hexany49:{frequencies:[261.6255653006,299.00064605783,305.22982618403,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"1.3.21.49 2)4 hexany (1.21 tonic)"},hexany5:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 5"},hexany6:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Hexany Cluster 6"},hexany7:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Hexany Cluster 7"},hexany8:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,340.65828815182,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 8"},hexany9:{frequencies:[261.6255653006,299.00064605783,313.95067836072,358.80077526939,418.60090448096,448.50096908674,523.2511306012],description:"1.3.5.7 Hexany on 5.7"},hexany_cl:{frequencies:[261.6255653006,294.32876096318,301.39265122629,313.95067836072,327.03195662575,348.83408706747,353.19451315581,376.74081403286,392.4383479509,418.60090448096,470.92601754108,502.32108537715,523.2511306012],description:"Hexany Cluster 1"},hexany_cl2:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,490.54793493862,502.32108537715,523.2511306012],description:"Composed of 1.3.5.45, 1.3.5.75, 1.3.5.9, and 1.3.5.25 hexanies"},hexany_flank:{frequencies:[261.6255653006,267.07609791103,299.00064605783,305.22982618403,327.03195662575,348.83408706747,373.75080757229,381.53728273004,427.14378008261,436.04260883433,457.84473927605,498.33441009638,523.2511306012],description:"Hexany Flanker, 7-limit, from Wilson"},hexany_tetr:{frequencies:[261.6255653006,269.10058145205,279.06726965397,336.37572681506,348.83408706747,358.80077526939,523.2511306012],description:"Complex 12 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans:{frequencies:[261.6255653006,271.31540105247,279.06726965397,339.14425131559,348.83408706747,361.75386806997,523.2511306012],description:"Complex 1 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,358.80077526939,372.08969287196,523.2511306012],description:"Complex 2 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,523.2511306012],description:"Complex 9 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_u2:{frequencies:[261.6255653006,274.70684356563,279.06726965397,280.31310567921,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,418.60090448096,436.04260883433,448.50096908674,457.84473927605,478.40103369253,488.36772189445,490.54793493862,498.33441009638,523.2511306012],description:"Hexany union = genus [335577] minus two corners"},hexany_union:{frequencies:[261.6255653006,274.70684356563,280.31310567921,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,488.36772189445,498.33441009638,523.2511306012],description:"The union of all of the pitches of the 1.3.5.7 hexany on each tone as 1/1"},hexany_urot:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,290.69507255622,299.00064605783,305.22982618403,327.03195662575,333.84512238879,343.38355445704,348.83408706747,356.10146388137,373.75080757229,381.53728273004,392.4383479509,400.61414686654,406.97310157871,436.04260883433,445.12682985172,448.50096908674,457.84473927605,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Aggregate rotations of 1.3.5.7 hexany, 1.3 = 1/1"},hexanys:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,343.38355445704,367.91095120397,392.4383479509,429.2294430713,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Hexanys 1 3 5 7 9"},hexanys2:{frequencies:[261.6255653006,314.76825825228,425.14154361347,457.84473927605,269.80136421624,371.99885066179,392.4383479509,472.15238737843,318.85615771011,359.73515228832,343.38355445704,292.28481123426,523.2511306012],description:"Hexanys 1 3 7 11 13"},higgs:{frequencies:[261.6255653006,392.4383479509,418.60090448096,422.62591317789,423.58424858192,425.14154361347,436.04260883433,523.2511306012],description:"From Greg Higgs announcement of the formation of an Internet Tuning list"},hinsz_gr:{frequencies:[261.6255653006,274.68983337859,292.34127285051,310.07474405997,326.6631048533,348.83408706747,366.25311135453,391.11111150212,412.03474986192,437.02884834934,465.11211608996,489.99465727995,523.2511306012],description:"Reconstructed Hinsz temperament, organ Pelstergasthuiskerk Groningen. Ortgies,2002"},hipkins:{frequencies:[261.6255653006,275.62199471997,299.00064605783,348.83408706747,392.4383479509,413.43299207996,448.50096908674,523.2511306012],description:"Hipkins' Chromatic"},hirajoshi:{frequencies:[261.6255653006,291.13134764929,317.84796618517,388.16504068057,412.91271853531,523.2511306012],description:"Observed Japanese pentatonic koto scale. Helmholtz/Ellis p.519, nr.112"},hirajoshi2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"Japanese pentatonic koto scale, theoretical. Helmholz/Ellis p.519, nr.110"},hirajoshi3:{frequencies:[261.6255653006,292.47977325983,321.54118165335,396.32121331049,415.54465627623,522.94897617031],description:"Observed Japanese pentatonic koto scale. Helmholtz/Ellis p.519, nr.111"},hirashima:{frequencies:[261.6255653006,277.33928225406,292.50627485027,312.00669222389,327.03195662575,349.91912034749,369.78570985692,391.22147055517,416.00892317314,437.39889945791,468.01003810189,489.02683710225,523.2511306012],description:"Tatsushi Hirashima, temperament of chapel organ of Kobe Shoin Women's Univ."},hjelmboogie:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,367.91095120397,392.4383479509,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:`Paul Hjelmstad's "Boogie Woogie" scale, TL 20-3-2006`},ho_mai_nhi:{frequencies:[261.6255653006,287.78812183066,348.83408706747,392.4383479509,431.68218274599,523.2511306012],description:"Ho Mai Nhi (Nam Hue) dan tranh scale, Vietnam"},hochgartz:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.86458629683,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.49999887294,438.2147004401,465.53241962975,490.54793493862,523.2511306012],description:"Michael Hochgartz, modified 1/5-comma meantone temperament"},hofmann1:{frequencies:[261.6255653006,262.65154790962,279.06726965397,348.83408706747,392.4383479509,393.97732186443,418.60090448096,523.2511306012],description:"Hofmann's Enharmonic #1, Dorian mode"},hofmann2:{frequencies:[261.6255653006,263.56353245097,279.06726965397,348.83408706747,392.4383479509,395.34529867646,418.60090448096,523.2511306012],description:"Hofmann's Enharmonic #2, Dorian mode"},hofmann_chrom:{frequencies:[261.6255653006,264.26824777838,290.69507255622,348.83408706747,392.4383479509,396.40237166758,436.04260883433,523.2511306012],description:"Hofmann's Chromatic"},holder:{frequencies:[261.6255653006,274.23214485994,292.57879058083,312.45989404005,327.40114268825,349.76744711215,366.57630213591,391.03837375367,409.94826565972,437.46806069696,467.28984664562,489.70152554512,523.2511306012],description:"William Holder's equal beating meantone temperament (1694). 3/2 beats 2.8 Hz"},holder2:{frequencies:[261.6255653006,274.23214485994,292.57879058083,312.45989404005,327.40114268825,349.76744711215,366.57630213591,391.03837375367,410.64811919433,437.46806069696,467.46154552107,489.70152554512,523.2511306012],description:"Holder's irregular e.b. temperament with improved Eb and G#"},hummel:{frequencies:[261.6255653006,277.1703574486,293.54676487235,311.03465677994,329.45811370906,349.13199096171,369.8583804246,391.99149393462,415.308682162,439.8732919971,466.10512967869,493.74031485884,523.2511306012],description:"Johann Nepomuk Hummel's quasi-equal temperament (1829)"},hummel2:{frequencies:[261.6255653006,277.22760066578,293.66431501254,311.21660561883,329.70790803338,349.18845812715,369.99117208793,391.90679138833,415.30984563838,439.96491544382,466.29335337935,494.03030700757,523.2511306012],description:"Johann Nepomuk Hummel's temperament according to the second bearing plan"},husmann:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,314.30517589183,331.11985608357,348.83408706747],description:"Tetrachord division according to Husmann"},hwerck3:{frequencies:[261.6255653006,276.40121172404,293.00227310437,310.60041853231,328.69828757761,349.03110370139,368.74309237173,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Variation on Werckmeister III with 1/4P -> 1/6P and 0P -> 1/24P. OdC '99"},hyper_enh:{frequencies:[261.6255653006,264.93728131706,268.33391312882,348.83408706747,392.4383479509,397.40592197559,402.50086969323,523.2511306012],description:"13/10 HyperEnharmonic. This genus is at the limit of usable tunings"},hyper_enh2:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,392.4383479509,400.78810003496,409.50088481833,523.2511306012],description:"Hyperenharmonic genus from Kathleen Schlesinger's enharmonic Phrygian Harmonia"},hypo_chrom:{frequencies:[261.6255653006,275.39533189537,282.83844897362,290.69507255622,348.83408706747,373.75080757229,387.59343007496,402.50086969323,418.60090448096,427.14378008261,436.04260883433,455.00098313148,523.2511306012],description:"Hypolydian Chromatic Tonos"},hypo_diat:{frequencies:[261.6255653006,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,387.59343007496,402.50086969323,436.04260883433,455.00098313148,475.68284600109,498.33441009638,523.2511306012],description:"Hypolydian Diatonic Tonos"},hypo_enh:{frequencies:[261.6255653006,268.33391312882,271.81876914348,275.39533189537,348.83408706747,373.75080757229,387.59343007496,402.50086969323,410.39304360878,414.45634107026,418.60090448096,465.11211608996,523.2511306012],description:"Hypolydian Enharmonic Tonos"},hypod_chrom:{frequencies:[261.6255653006,279.06726965397,288.69027895239,299.00064605783,322.00069575458,348.83408706747,364.00078650518,380.54627680087,398.6675280771,408.39112632289,418.60090448096,465.11211608996,523.2511306012],description:"Hypodorian Chromatic Tonos"},hypod_chrom2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,380.54627680087,398.6675280771,418.60090448096,523.2511306012],description:"Schlesinger's Chromatic Hypodorian Harmonia"},hypod_chrom2inv:{frequencies:[261.6255653006,327.03195662575,343.38355445704,359.73515228832,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypodorian Harmonia"},hypod_chromenh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,380.54627680087,398.6675280771,418.60090448096,523.2511306012],description:"Schlesinger's Hypodorian Harmonia in a mixed chromatic-enharmonic genus"},hypod_chrominv:{frequencies:[261.6255653006,277.97716313189,294.32876096318,359.73515228832,392.4383479509,408.78994578219,425.14154361347,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypodorian Inverted"},hypod_diat:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012],description:"Hypodorian Diatonic Tonos"},hypod_diat2:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,364.00078650518,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"Schlesinger's Hypodorian Harmonia, a subharmonic series through 13 from 16"},hypod_diatcon:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,364.00078650518,418.60090448096,465.11211608996,523.2511306012],description:"A Hypodorian Diatonic with its own trite synemmenon replacing paramese"},hypod_diatinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Inverted Schlesinger's Hypodorian Harmonia, a harmonic series from 8 from 16"},hypod_enh:{frequencies:[261.6255653006,270.06509966514,274.49239638096,279.06726965397,310.07474405997,348.83408706747,364.00078650518,380.54627680087,389.39619021485,393.97732186443,398.6675280771,452.54151835779,523.2511306012],description:"Hypodorian Enharmonic Tonos"},hypod_enhinv:{frequencies:[261.6255653006,343.38355445704,351.55935337268,359.73515228832,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypodorian Harmonia"},hypod_enhinv2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,359.73515228832,392.4383479509,400.61414686654,408.78994578219,523.2511306012],description:"A harmonic form of Schlesinger's Hypodorian enharmonic inverted"},hypodorian_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,392.4383479509,418.60090448096,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,784.8766959018,897.00193817349,966.00208726375,1046.5022612024],description:"Diatonic Perfect Immutable System in the Hypodorian Tonos"},hypol_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the chromatic genus"},hypol_chrominv:{frequencies:[261.6255653006,313.95067836072,327.03195662575,340.11323489078,366.27579142084,392.4383479509,470.92601754108,497.08857407114,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypolydian Harmonia"},hypol_chrominv2:{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,366.27579142084,392.4383479509,418.60090448096,523.2511306012],description:"harmonic form of Schlesinger's Chromatic Hypolydian inverted"},hypol_chrominv3:{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,392.4383479509,418.60090448096,444.76346101102,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypolydian inverted"},hypol_diat:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,373.75080757229,402.50086969323,436.04260883433,475.68284600109,523.2511306012],description:"Schlesinger's Hypolydian Harmonia, a subharmonic series through 13 from 20"},hypol_diatcon:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,402.50086969323,436.04260883433,475.68284600109,523.2511306012],description:"A Hypolydian Diatonic with its own trite synemmenon replacing paramese"},hypol_diatinv:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Inverted Schlesinger's Hypolydian Harmonia, a harmonic series from 10 from 20"},hypol_enh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the enharmonic genus"},hypol_enhinv:{frequencies:[261.6255653006,327.03195662575,333.57259575826,340.11323489078,366.27579142084,392.4383479509,497.08857407114,510.16985233617,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypolydian Harmonia"},hypol_enhinv2:{frequencies:[261.6255653006,268.16620443312,274.70684356563,340.11323489078,366.27579142084,379.35706968587,392.4383479509,523.2511306012],description:"A harmonic form of Schlesinger's Hypolydian enharmonic inverted"},hypol_enhinv3:{frequencies:[261.6255653006,268.16620443312,274.70684356563,340.11323489078,392.4383479509,405.51962621593,418.60090448096,523.2511306012],description:"A harmonic form of Schlesinger's Hypolydian enharmonic inverted"},hypol_pent:{frequencies:[261.6255653006,272.52663052146,290.69507255622,348.83408706747,373.75080757229,402.50086969323,415.27867508032,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the pentachromatic genus"},hypol_tri:{frequencies:[261.6255653006,270.64713651786,280.31310567921,348.83408706747,373.75080757229,402.50086969323,413.09299784305,424.25767346043,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the first trichromatic genus"},hypol_tri2:{frequencies:[261.6255653006,270.64713651786,290.69507255622,348.83408706747,373.75080757229,402.50086969323,413.09299784305,436.04260883433,2093.0045224048],description:"Schlesinger's Hypolydian Harmonia in the second trichromatic genus"},hypolydian_pis:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,366.27579142084,406.97310157871,457.84473927605,488.36772189445,523.2511306012,563.50121757052,610.45965236807,665.95598440153,732.55158284168,813.94620315742,915.6894785521,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Hypolydian Tonos"},hypop_chrom:{frequencies:[261.6255653006,277.01530443593,285.40970760065,294.32876096318,336.37572681506,362.25078272391,376.74081403286,392.4383479509,409.50088481833,418.60090448096,428.11456140098,470.92601754108,523.2511306012],description:"Hypophrygian Chromatic Tonos"},hypop_chromenh:{frequencies:[261.6255653006,269.10058145205,277.01530443593,362.25078272391,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Schlesinger's Hypophrygian Harmonia in a mixed chromatic-enharmonic genus"},hypop_chrominv:{frequencies:[261.6255653006,319.76457981184,334.29933343966,348.83408706747,377.90359432309,465.11211608996,494.18162334558,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypophrygian Harmonia"},hypop_chrominv2:{frequencies:[261.6255653006,276.16031892841,290.69507255622,348.83408706747,377.90359432309,406.97310157871,436.04260883433,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypophrygian inverted"},hypop_diat:{frequencies:[261.6255653006,294.32876096318,303.82323712328,313.95067836072,336.37572681506,362.25078272391,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012],description:"Hypophrygian Diatonic Tonos"},hypop_diat2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,362.25078272391,376.74081403286,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Schlesinger's Hypophrygian Harmonia"},hypop_diat2inv:{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,363.36884069528,377.90359432309,436.04260883433,465.11211608996,523.2511306012],description:"Inverted Schlesinger's Hypophrygian Harmonia, a harmonic series from 9 from 18"},hypop_diatcon:{frequencies:[261.6255653006,294.32876096318,313.95067836072,362.25078272391,376.74081403286,428.11456140098,470.92601754108,523.2511306012],description:"A Hypophrygian Diatonic with its own trite synemmenon replacing paramese"},hypop_enh:{frequencies:[261.6255653006,269.10058145205,273.00058987889,277.01530443593,313.95067836072,362.25078272391,376.74081403286,392.4383479509,400.78810003496,405.0976494977,409.50088481833,470.92601754108,523.2511306012],description:"Hypophrygian Enharmonic Tonos"},hypop_enhinv:{frequencies:[261.6255653006,334.29933343966,341.56671025356,348.83408706747,377.90359432309,494.18162334558,508.71637697339,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypophrygian Harmonia"},hypop_enhinv2:{frequencies:[261.6255653006,268.89294211451,276.16031892841,348.83408706747,377.90359432309,392.4383479509,406.97310157871,523.2511306012],description:"A harmonic form of Schlesinger's Hypophrygian enharmonic inverted"},hypophryg_pis:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,377.90359432309,425.14154361347,453.48431318771,523.2511306012,544.18117582525,566.85539148463,618.38769980142,680.22646978156,755.80718864618,850.28308722695,971.75209968794,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Hypophrygian Tonos"},kanzelmeyer_11:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,474.19633710734,506.89953276991,523.2511306012],description:"Bruce Kanzelmeyer, 11 harmonics from 16 to 32. Base 388.3614815 Hz"},kanzelmeyer_18:{frequencies:[261.6255653006,277.97716313189,302.50455987882,310.68035879446,327.03195662575,335.20775554139,351.55935337268,359.73515228832,376.08675011961,384.26254903526,392.4383479509,425.14154361347,433.31734252912,457.84473927605,474.19633710734,482.37213602298,498.72373385427,506.89953276991,523.2511306012],description:"Bruce Kanzelmeyer, 18 harmonics from 32 to 64. Base 388.3614815 Hz"},kayolonian:{frequencies:[261.6255653006,267.90457886781,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:"19-tone 5-limit scale of the Kayenian Imperium on Kayolonia (reeks van Sjauriek)"},kayolonian_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"See Barnard: De Keiaanse Muziek, p. 11. (uitgebreide reeks)"},kayolonian_40:{frequencies:[261.6255653006,267.90457886781,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,319.36714514233,327.03195662575,331.11985608357,334.88072358477,340.65828815182,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,401.85686830172,408.78994578219,413.43299207996,418.60090448096,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,490.54793493862,496.11959049595,502.32108537715,510.98743222773,523.2511306012],description:"See Barnard: De Keiaanse Muziek"},kayolonian_f:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"Kayolonian scale F and periodicity block (128/125, 16875/16384)"},kayolonian_p:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,418.60090448096,459.88868900496,490.54793493862,523.2511306012],description:"Kayolonian scale P"},kayolonian_s:{frequencies:[261.6255653006,287.4304306281,306.59245933664,327.03195662575,359.28803828513,392.4383479509,418.60090448096,459.88868900496,490.54793493862,523.2511306012],description:"Kayolonian scale S"},kayolonian_t:{frequencies:[261.6255653006,279.06726965397,297.67175429757,317.51653791741,348.83408706747,381.01984550089,418.60090448096,446.50763144636,476.27480687611,523.2511306012],description:"Kayolonian scale T"},kayolonian_z:{frequencies:[261.6255653006,279.06726965397,297.67175429757,327.03195662575,348.83408706747,392.4383479509,418.60090448096,446.50763144636,476.27480687611,523.2511306012],description:"Kayolonian scale Z"},kayoloniana:{frequencies:[261.6255653006,267.90457886781,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:"Amendment by Rasch of Kayolonian scale's note 9"},"kebyar-b":{frequencies:[261.6255653006,280.40333801024,299.48910562989,384.37207420335,402.78320381033,523.2511306012],description:"Gamelan Kebyar tuning begbeg, Andrew Toth, 1993"},"kebyar-s":{frequencies:[261.6255653006,283.00682726281,309.51375468789,385.26118901859,416.26536455926,523.2511306012],description:"Gamelan kebyar tuning sedung, Andrew Toth, 1993"},"kebyar-t":{frequencies:[261.6255653006,293.15632631094,325.27731021818,397.46748834812,422.07621250312,523.2511306012],description:"Gamelan kebyar tuning tirus, Andrew Toth, 1993"},keenan:{frequencies:[261.6255653006,279.77706779472,292.57243455474,305.95298478736,327.17991022208,349.87955533643,365.88099775759,391.26571058456,418.41160951721,437.54730686196,457.55816161244,489.30340830564,523.2511306012],description:"Dave Keenan 31-ET mode has 3 4:5:6:7 tetrads + 3 inv. is Fokker's 12-tone mode"},keenan2:{frequencies:[261.6255653006,278.14493936283,295.70736791055,306.84360659709,326.21810583671,346.81593583087,369.99442271164,393.35634555235,418.19337019276,433.94238997708,461.34206956593,490.47180009913,523.2511306012],description:"Dave Keenan strange 9-limit temperament TL 19-11-98"},keenan3:{frequencies:[261.6255653006,272.10155294862,282.99701916355,314.19580976213,326.77681046955,339.86157848985,377.32935907335,392.4383479509,408.1523292189,453.14877154631,471.29371440761,523.2511306012],description:"Chain of 1/6 kleisma tempered 6/5s, 10 tetrads, Dave Keenan, 30-Jun-99, TD235"},keenan3eb:{frequencies:[261.6255653006,272.52625793573,283.88113057344,314.31833892864,327.41448875753,341.05629284549,377.62371824792,393.35750206077,409.74683779238,453.67913385439,472.5817850056,523.2511306012],description:"Chain of 11 equal beating minor thirds, 6/5=3/2 same"},keenan3eb2:{frequencies:[261.6255653006,271.88912362492,282.55531921581,314.13446783,326.45794787121,339.26487744082,377.18204004818,391.97887331053,407.35618327602,452.88341485066,470.6500094,523.2511306012],description:"Chain of 11 equal beating minor thirds, 6/5=3/2 opposite"},keenan3j:{frequencies:[261.6255653006,291.88463270656,302.72962012827,313.97755176024,350.29154279212,363.30663963964,405.32593044476,420.38583225541,436.00528786292,486.43275040712,504.50618240233,523.2511306012],description:"Chain of 11 nearly just 19-tET minor thirds, Dave Keenan, 1-Jul-99"},keenan7:{frequencies:[261.6255653006,269.29177952703,279.86396690685,288.06460709314,296.5055443788,305.19382000629,314.13668154225,326.46944327063,336.03572815422,349.22823143301,359.46139971304,369.99442271164,380.8360868427,391.99543598175,407.38487419079,419.32216217931,435.78442404634,448.5538823653,461.69751437372,475.22628419761,489.15147723638,508.3551866238,523.2511306012],description:"Dave Keenan, 22 out of 72-tET periodicity block. TL 29-04-2001"},keenanmt:{frequencies:[261.6255653006,279.93529690293,292.50627485027,305.64177427204,327.03195662575,349.91912034749,365.63284274659,391.22147055517,418.60090448096,437.39890198442,457.04105241293,489.02683710225,523.2511306012],description:"Dave Keenan 1/4-comma tempered version of keenan with 6 7-limit tetrads"},keenanst:{frequencies:[261.6255653006,268.50609092997,277.46533822773,286.72352888229,294.26410920268,304.08282473376,314.22916151277,322.49311613356,333.25374941849,342.01803421352,353.43015577174,365.22306367425,374.82811589307,387.33500976677,397.52158713557,410.7856943143,424.4923875554,435.65616946139,450.19271626925,462.0323945472,477.44903730562,493.38008744487,506.35555615636,523.2511306012],description:"Dave Keenan, 7-limit temperament, g=260.353"},kelletat:{frequencies:[261.6255653006,275.58617649731,292.98704147282,310.05056613125,327.14272545641,348.82502010853,367.43868454848,391.99543598175,413.39000965417,437.97145880542,465.08793784701,489.90551202062,523.2511306012],description:"Herbert Kelletat's Bach-tuning (1967)"},kellner:{frequencies:[261.6255653006,275.62199471997,292.73769384471,310.07474405997,327.54963108844,348.83408706747,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,491.32444638706,523.2511306012],description:"Herbert Anton Kellner's Bach tuning. 5 1/5 Pyth. comma and 7 pure fifths"},kellners:{frequencies:[261.6255653006,275.84425785506,292.86986732103,310.2247482054,327.84547867349,348.89032888179,367.85164222246,391.46454285105,413.69968681881,438.2147004401,465.26210635182,491.68894399626,523.2511306012],description:"Kellner's temperament with 1/5 synt. comma instead of 1/5 Pyth. comma"},kepler1:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Kepler's Monochord no.1, Harmonices Mundi (1619)"},kepler2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Kepler's Monochord no.2"},kepler3:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,496.67978412536,523.2511306012],description:"Kepler's choice system, Harmonices Mundi, Liber III (1619)"},kilroy:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Kilroy"},kimball:{frequencies:[261.6255653006,272.52663052146,275.93321340298,290.69507255622,294.32876096318,306.59245933664,327.03195662575,331.11985608357,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Buzz Kimball 18-note just scale"},kimball_53:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,281.75060878526,283.42769574232,285.40970760065,287.78812183066,296.50897400735,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,461.69217405988,475.68284600109,479.64686971777,483.00104363188,485.87604984397,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Buzz Kimball 53-note just scale"},kirkwood:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Scale based on Kirkwood gaps of the asteroid belt"},"kirn-stan":{frequencies:[261.6255653006,276.16031892841,292.60754013883,310.68035879446,327.03195662575,348.83408706747,368.21375857121,392.4383479509,414.24047839262,437.1900893839,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger temperament improved by Charles Earl Stanhope (1806)"},kirnberger:{frequencies:[261.6255653006,275.62199471997,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.22147055517,413.43299207996,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger's well-temperament, also called Kirnberger III, letter to Forkel 1779"},kirnberger1:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,438.75944753732,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger's temperament 1 (1766)"},kirnberger2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,438.75941205608,465.11211608996,490.54793493862,523.2511306012],description:'Kirnberger 2: 1/2 synt. comma. "Die Kunst des reinen Satzes" (1774)'},kirnberger3:{frequencies:[261.6255653006,275.93321340298,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.22147055517,413.89982010446,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger 3: 1/4 synt. comma (1744)"},kirnberger3v:{frequencies:[261.6255653006,275.93321340298,292.50063201309,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.21579858034,413.43299207996,437.39258595147,465.11211608996,490.54793493862,523.2511306012],description:"Variant well-temperament like Kirnberger 3, Kenneth Scholz, MTO 4.4, 1998"},klais:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,327.21690075602,348.83408706747,367.49599295996,391.99543598175,413.43299207996,438.01699797506,465.11211608996,489.99465727995,523.2511306012],description:"Johannes Klais, Bach temperament"},klonaris:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Johnny Klonaris, 19-limit harmonic scale"},knot:{frequencies:[261.6255653006,268.26840191956,280.31310567921,286.15296204753,294.32876096318,299.00064605783,306.59245933664,327.03195662575,348.83408706747,357.69120255941,366.27579142084,367.91095120397,381.53728273004,392.4383479509,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,459.88868900496,476.92160341255,478.40103369253,490.54793493862,523.2511306012],description:"Smallest knot in 3-D, American Scientist, Nov-Dec '97 p506-510, trefoil knot"},koepf_36:{frequencies:[261.6255653006,272.26348829648,274.95017225036,277.18263097687,288.45311779165,291.29956028699,293.66476791741,305.60543275312,308.62113352716,311.12698372208,323.77767743764,326.97270111135,329.62755691287,343.03050002254,346.41550969045,349.22823143301,363.4281550135,367.0144478307,369.99442271164,385.03871768789,388.83826257328,391.99543598175,407.93431128975,411.95978887118,415.30469757995,432.19134773437,436.45619266906,440,457.89078262597,462.40922843744,466.16376151809,485.11838543951,489.90551202062,493.88330125613,513.96502576833,519.03680970905,523.2511306012],description:"Siegfried Koepf, 36-tone subset of 48-tone scale (1991)"},koepf_48:{frequencies:[261.6255653006,269.44737349144,272.26348829648,274.95017225036,277.18263097687,285.46954808622,288.45311779165,291.29956028699,293.66476791741,302.44445076078,305.60543275312,308.62113352716,311.12698372208,320.42873367481,323.77767743764,326.97270111135,329.62755691287,339.48241770075,343.03050002254,346.41550969045,349.22823143301,359.66909273781,363.4281550135,367.0144478307,369.99442271164,381.0561299374,385.03871768789,388.83826257328,391.99543598175,403.71490654806,407.93431128975,411.95978887118,415.30469757995,427.72104413038,432.19134773437,436.45619266906,440,453.15466093696,457.89078262597,462.40922843744,466.16376151809,480.10063929961,485.11838543951,489.90551202062,493.88330125613,508.64890891624,513.96502576833,519.03680970905,523.2511306012],description:"Siegfried Koepf, 48-tone scale (1991)"},kolinsky:{frequencies:[261.6255653006,277.2273508585,293.75953199293,311.27759533081,329.84032939425,349.51003591412,370.35272620855,392.4383479509,415.84102607989,440.63929776914,466.91639276282,494.76049384407,524.26505360912],description:"Kolinsky's 7th root of 3/2, also invented by Augusto Novaro"},kora1:{frequencies:[261.6255653006,293.66476791741,326.78388880949,349.22823143301,391.99543598175,440,489.62261321254,523.2511306012],description:"Kora tuning Tomora Ba, also called Silaba, 1/1=F, R. King"},kora2:{frequencies:[261.6255653006,298.79793764201,315.65242990842,349.22823143301,391.99543598175,447.69106452518,472.94426956511,523.2511306012],description:"Kora tuning Tomora Mesengo, also called Tomora, 1/1=F, R. King"},kora3:{frequencies:[261.6255653006,291.13134764929,330.58093469714,349.22823143301,391.99543598175,436.20415848357,495.31175393723,523.2511306012],description:"Kora tuning Hardino, 1/1=F, R.King"},kora4:{frequencies:[261.6255653006,291.13134764929,330.58093469714,371.06455309218,391.99543598175,436.20415848357,495.31175393723,523.2511306012],description:"Kora tuning Sauta, 1/1=F, R. King"},korea_5:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,470.92601754108,523.2511306012],description:'According to Lou Harrison, called "the Delightful" in Korea'},kornerup:{frequencies:[261.6255653006,272.97226153513,280.22976278938,292.38332274669,305.0639823888,313.17470478367,326.75708630452,340.92853547661,349.99278713323,365.17196824772,374.88056242272,391.13935185123,408.10305876469,418.95303445734,437.12302030357,456.08130156398,468.2068441924,488.51296691354,509.70006023951,523.2511306012],description:"Kornerup's temperament with fifth of (15 - sqrt 5) / 22 octaves"},kornerup_11:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Kornerup's doric minor"},kraeh_22:{frequencies:[261.6255653006,267.07609791103,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,320.49131749323,336.37572681506,343.38355445704,353.19451315581,366.27579142084,381.53728273004,392.4383479509,400.61414686654,412.06026534844,436.04260883433,441.49314144476,457.84473927605,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"Kraehenbuehl & Schmidt 7-limit 22-tone tuning"},kraeh_22a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,311.45900631024,313.95067836072,318.93402246168,320.49131749323,327.03195662575,336.37572681506,343.38355445704,348.83408706747,350.39138209902,353.19451315581,358.80077526939,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,400.61414686654,403.65087217807,408.78994578219,412.06026534844,418.60090448096,420.46965851882,436.04260883433,441.49314144476,448.50096908674,457.84473927605,467.18850946536,470.92601754108,476.92160341255,478.40103369253,488.36772189445,490.54793493862,498.33441009638,504.56359022259,523.2511306012],description:'Kraehenbuehl & Schmidt 7-limit 22-tone tuning with "inflections" for some tones'},kraeh_22b:{frequencies:[261.6255653006,269.10058145205,279.06726965397,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.91095120397,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,448.50096908674,457.84473927605,476.92160341255,490.54793493862,504.56359022259,523.2511306012],description:"Best 22-tET approximation of KRAEH_22A"},kring1:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,523.2511306012],description:"Double-tie circular mirroring of 4:5:6 and Partch's 5-limit tonality Diamond"},kring1p3:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,282.55561052465,290.69507255622,294.32876096318,301.39265122629,306.59245933664,310.07474405997,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,436.04260883433,441.49314144476,446.50763144636,454.2110508691,465.11211608996,470.92601754108,484.4917875937,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Third carthesian power of double-tie mirroring of 4:5:6 with kleismas removed"},kring2:{frequencies:[261.6255653006,299.00064605783,305.22982618403,348.83408706747,392.4383479509,448.50096908674,457.84473927605,523.2511306012],description:"Double-tie circular mirroring of 6:7:8"},kring2p3:{frequencies:[261.6255653006,265.7783520514,271.31540105247,288.32205155576,294.32876096318,299.00064605783,305.22982618403,310.07474405997,329.51091606373,336.37572681506,343.38355445704,348.83408706747,356.10146388137,384.42940207435,392.4383479509,398.6675280771,406.97310157871,415.4517078616,441.49314144476,448.50096908674,457.84473927605,465.11211608996,474.80195184183,504.56359022259,515.07533168556,523.2511306012],description:"Third power of 6:7:8 mirroring with 1029/1024 intervals removed"},kring3:{frequencies:[261.6255653006,305.22982618403,313.95067836072,366.27579142084,373.75080757229,436.04260883433,448.50096908674,523.2511306012],description:"Double-tie circular mirroring of 3:5:7"},kring3bp:{frequencies:[261.6255653006,336.37572681506,366.27579142084,436.04260883433,470.92601754108,560.62621135843,610.45965236807,784.8766959018],description:"Double-tie BP circular mirroring of 3:5:7"},kring4:{frequencies:[261.6255653006,299.00064605783,327.03195662575,366.27579142084,373.75080757229,418.60090448096,457.84473927605,523.2511306012],description:"Double-tie circular mirroring of 4:5:7"},kring4p3:{frequencies:[261.6255653006,267.90457886781,273.37201925287,280.42990280658,286.15296204753,293.02063313667,299.00064605783,305.10270005901,320.49131749323,327.03195662575,334.88072358477,341.71502406609,350.53737850823,357.69120255941,366.27579142084,373.75080757229,382.72082695402,390.53145607553,400.61414686654,408.78994578219,418.60090448096,427.14378008261,448.68784449053,457.84473927605,467.18850946536,478.40103369253,488.16432009441,500.76768358318,510.98743222773,523.2511306012],description:"Third power of 4:5:7 mirroring with 3136/3125 intervals removed"},kring5:{frequencies:[261.6255653006,290.69507255622,336.37572681506,366.27579142084,373.75080757229,406.97310157871,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 5:7:9"},kring5p3:{frequencies:[261.6255653006,266.96486255163,272.4643387202,278.02483542877,284.8811711051,290.69507255622,296.68339105088,302.73815413355,308.91648380975,316.53463456122,322.99452506247,329.64821227876,336.37572681506,343.24053756638,351.70514951247,358.88280562497,366.27579142084,373.75080757229,381.45007420827,389.23476960028,398.83363954714,406.97310157871,415.27867508032,423.83341578697,432.48307733364,443.14848838571,452.19233508746,461.42075008924,470.92601754108,480.53675259294,492.38720931745,502.43592787495,512.78610798918,523.2511306012],description:"Third power of 5:7:9 mirroring with 250047/250000 intervals removed"},kring6:{frequencies:[261.6255653006,305.22982618403,336.37572681506,348.83408706747,392.4383479509,406.97310157871,448.50096908674,523.2511306012],description:"Double-tie circular mirroring of 6:7:9"},kring6p3:{frequencies:[261.6255653006,267.07609791103,271.31540105247,276.96780524107,288.32205155576,294.32876096318,299.00064605783,305.22982618403,310.07474405997,316.53463456122,324.36230800023,329.51091606373,336.37572681506,343.38355445704,348.83408706747,356.10146388137,361.75386806997,369.29040698809,378.42269266694,384.42940207435,392.4383479509,398.6675280771,406.97310157871,415.4517078616,422.04617941496,432.48307733364,441.49314144476,448.50096908674,457.84473927605,465.11211608996,474.80195184183,494.26637409559,504.56359022259,512.57253609913,523.2511306012],description:"Third power of 6:7:9 mirroring with 118098/117649 intervals removed"},krousseau:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,343.38355445704,348.83408706747,366.27579142084,392.4383479509,406.97310157871,457.84473927605,465.11211608996,488.36772189445,523.2511306012],description:"Kami Rousseau's tri-blues scale"},krousseau2:{frequencies:[261.6255653006,271.34627406517,291.88463270656,302.72962012827,337.74269681563,350.29154279212,363.30663963964,390.80553229045,405.32593044476,452.20508247496,469.00678383895,486.43275040712,523.2511306012],description:"19-tET version of Kami Rousseau's tri-blues scale"},kukuya:{frequencies:[261.6255653006,307.37578701508,361.96165147221,412.67427966689,460.80941404108],description:"African Kukuya Horns (aerophone, ivory, one note only)"},kurzw_arab:{frequencies:[261.6255653006,282.02769802256,290.29174037004,302.26980244078,321.16993719469,349.63190883464,374.94271441196,393.35634555235,411.95978887118,429.20598402782,447.69106452518,496.7443381147,523.2511306012],description:'Kurzweil "Empirical Arabic"'},kurzw_harmp:{frequencies:[261.6255653006,285.46954808622,287.62123438446,306.48933163909,308.79945157961,324.90175210669,345.81573716922,348.42227432308,427.72104413038,430.94493093825,458.94995811222,462.40922843744,523.2511306012],description:'Kurzweil "Empirical Bali/Java Harmonic Pelog"'},kurzw_melp:{frequencies:[261.6255653006,281.53940445957,283.98935579354,303.66981774726,307.02089761314,323.96475278212,344.02264297658,347.0163224393,421.10213511252,424.76655906637,451.06547253417,454.99063696457,523.2511306012],description:'Kurzweil "Empirical Bali/Java Melodic Pelog"'},kurzw_slen:{frequencies:[261.6255653006,266.96862289802,288.95340229325,306.66641795878,318.95145438803,352.26720984209,352.26720984209,389.06292924114,404.41509766528,429.20598402782,464.81937009253,474.03826620294,523.2511306012],description:'Kurzweil "Empirical Bali/Java Slendro, Siam 7"'},kurzw_tibet:{frequencies:[261.6255653006,270.53905136894,299.14332201883,312.9293240034,325.46525203475,353.69443592699,373.86139962101,397.69714089209,408.87792937274,438.98455767189,471.30800669535,489.90551202062,523.2511306012],description:'Kurzweil "Empirical Tibetian Ceremonial"'},kwazy:{frequencies:[13.75,13.8425266748,13.92142234948,14.00076777204,14.0805654254,14.16081788707,14.25610896047,14.337361936,14.41907801447,14.50125983535,14.58391005315,14.66703125278,14.76572882594,14.84988638999,14.93452361174,15.01964313826,15.10524789197,15.20689431811,15.29356631363,15.38073220905,15.46839499707,15.55655742089,15.66124080485,15.75050226619,15.84027256598,15.93055451337,16.0213510245,16.11266503216,16.22109048883,16.31354291552,16.40652227664,16.50003157548,16.59407373656,16.70573878851,16.80095347779,16.89671084507,16.99301388521,17.08986590459,17.18726993397,17.30292672931,17.40154500258,17.50072545316,17.60047118468,17.70078541898,17.81989766631,17.92146252619,18.023606257,18.12633215803,18.22964354736,18.35231459047,18.45691397115,18.56210951808,18.66790462912,18.77430261304,18.88130712282,19.00836345475,19.11670199894,19.22565790976,19.335234928,19.44543648263,19.57628896102,19.68786429416,19.80007566685,19.91292659048,20.02642071019,20.16118263857,20.27609169854,20.39165568498,20.50787833065,20.62476338959,20.74231451743,20.88189396397,21.00091073243,21.12060583931,21.24098302814,21.36204643183,21.50579618625,21.62836889778,21.75164008927,21.875613993,22.00029448845,22.14833914981,22.27457391904,22.40152829449,22.52920624893,22.65761190639,22.78674941445,22.94008616579,23.07083364148,23.202326315,23.33456843363,23.46756413327,23.62548236417,23.76013626908,23.89555763659,24.03175070206,24.16872014141,24.30647024079,24.47003364934,24.60950094889,24.74976328722,24.89082505353,25.03269080417,25.2011409598,25.3447753621,25.48922841152,25.63450477396,25.78060914191,25.95409219477,26.10201805756,26.25078702673,26.40040390759,26.55087337946,26.70220060843,26.88188539622,27.03509923475,27.18918616153,27.34415146685,27.5],description:"Kwazy temperament, g=162.741892, p=600, 5-limit"},lambdoma5_12:{frequencies:[261.6255653006,21.80213044172,23.78414230005,26.16255653006,29.06950725562,32.70319566257,37.37508075723,43.60426088343,47.56828460011,52.32511306012,58.13901451124,65.40639132515,71.35242690016,74.75016151446,78.48766959018,87.20852176687,95.13656920022,98.10958698772,104.65022612024,109.01065220858,112.12524227169,116.27802902249,118.92071150027,130.8127826503,145.34753627811,149.50032302891,156.97533918036,163.51597831288,174.41704353373,186.87540378614,196.21917397545,209.30045224048,218.02130441717,261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012,654.0639132515,784.8766959018,1046.5022612024,1308.127826503],description:"5x12 Lambdoma"},lambdoma_prim:{frequencies:[261.6255653006,8.43953436454,9.02157121726,11.37502457829,13.76976659477,15.38973913533,16.87906872907,18.04314243452,20.12504348466,22.75004915657,23.78414230005,25.31860309361,27.06471365179,27.53953318954,30.77947827066,34.12507373486,37.37508075723,40.25008696932,41.30929978431,42.19767182268,45.10785608631,46.16921740599,47.56828460011,52.32511306012,56.87512289143,59.07674055175,60.37513045398,63.15099852083,68.84883297384,71.35242690016,74.75016151446,76.94869567665,79.62517204801,87.20852176687,96.38836616338,100.62521742331,104.65022612024,107.72817394731,112.12524227169,118.92071150027,130.8127826503,140.87530439263,156.97533918036,166.48899610038,174.41704353373,186.87540378614,261.6255653006,366.27579142084,392.4383479509,436.04260883433,523.2511306012,610.45965236807,654.0639132515,784.8766959018,915.6894785521,1308.127826503,1831.3789571042],description:"Prime Lambdoma"},lambert:{frequencies:[261.6255653006,276.15600972046,293.19138048956,310.67551062492,328.56569462012,349.50994910362,368.20801314466,391.67947347082,414.23401437362,438.93663604468,466.01326570444,491.89550004992,523.2511306012],description:"Lambert's temperament (1774) 1/7 Pyth. comma, 5 pure"},lara:{frequencies:[261.6255653006,286.4606265643,298.28060863281,313.11013128311,341.05478972476,377.11473546037,395.40657391157,420.13030572059,450.02449304881,492.74350578058,523.2511306012,577.23956595248,599.67057787333],description:"Sundanese 'multi-laras' gamelan Ki Barong tuning, Weintraub, TL 15-2-99 1/1=497"},lebanon:{frequencies:[261.6255653006,285.30470202322,311.12698372208,349.22823143301,391.99543598175,415.30469757995,466.16376151809,523.2511306012],description:"Lebanese scale? Dastgah Shur"},leedy:{frequencies:[261.6255653006,269.80136421624,290.69507255622,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,436.04260883433,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:'Douglas Leedy, scale for "Pastorale" (1987), 1/1=f, 10/9 only in vocal parts'},leeuw1:{frequencies:[261.6255653006,311.12698372208,349.22823143301,380.8360868427,415.30469757995,466.16376151809,508.3551866238,554.36526195375,604.53960488156,659.25511382574,739.98884542327,806.96355802011,880,987.76660251225],description:'Ton de Leeuw: non-oct. mode from "Car nos vignes sont en fleurs",part 5. 1/1=A'},leftpistol:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Left Pistol"},legros1:{frequencies:[261.6255653006,274.22463192287,292.50627485027,309.49749487796,327.03195662575,348.83408706747,365.63284274659,391.22147055517,411.33694767869,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Example of temperament with 3 just major thirds"},legros2:{frequencies:[261.6255653006,275.07759559501,292.50627485027,309.49749487796,327.03195662575,348.83408706747,366.77012764335,391.22147055517,412.61639318626,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Example of temperament with 2 just major thirds"},"lehman-bach":{frequencies:[261.6255653006,276.86979852503,293.00227310437,310.77584116741,328.14198392915,349.6228209638,369.15973155124,391.5530240856,414.83597850347,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Brad Lehman's Bach keyboard temperament"},lemba10:{frequencies:[261.6255653006,283.65327551057,298.9489942119,324.1191713102,341.59697290141,370.35792032269,401.5404117335,423.19307614937,458.82405293702,483.56568031466,524.27976214079],description:"10-note Lemba scale, Herman Miller"},lemba12:{frequencies:[261.6255653006,276.1173031791,283.29759227608,298.9897683987,323.75689816556,341.69016129748,369.99442271164,390.48883496177,400.64329718448,422.83538548023,457.86139629758,483.22286023634,523.2511306012],description:"Lemba[12] in 270-et (poptimal)"},lemba22:{frequencies:[261.6255653006,268.42900262332,276.1173031791,283.29759227608,298.9897683987,306.76484424299,315.55115201964,323.75689816556,341.69016129748,350.57563899649,360.61677037127,369.99442271164,379.61593604418,390.48883496177,400.64329718448,422.83538548023,433.83100318771,446.25671880862,457.86139629758,483.22286023634,495.78882330645,509.98912747823,523.2511306012],description:"Lemba[22] in 270-et (poptimal)"},lemba24:{frequencies:[261.6255653006,275.73346179752,283.65327551057,290.60211247891,298.9489942119,307.53562105228,315.06951922004,324.1191713102,332.05932738876,341.59697290141,351.40856549044,360.01724743313,370.35792032269,390.32910012969,401.5404117335,411.37720579947,423.19307614937,435.34833037897,446.01333880095,458.82405293702,470.06416125332,483.56568031466,497.45499966368,509.64147516102,524.27976214079],description:"24-note Lemba scale for mapping millerlemba24.kbm"},lemba8:{frequencies:[261.6255653006,275.73334871592,283.6533803711,298.94898212432,307.53584843097,324.11927802481,341.59694330429,351.4088110982,370.358025147],description:"Lemba temperament (4 down, 3 up) TOP tuning, Herman Miller, TL 22-11-2004"},leusden:{frequencies:[261.6255653006,275.54404190554,292.50627485027,310.51268695591,327.03195662575,349.91912034749,367.08095907728,391.22147055517,413.66634097248,437.39890198442,466.16376151809,489.02683710225,523.2511306012],description:"Organ in Gereformeerde kerk De Koningshof, Henk van Eeken, 1984, a'=415, modif. 1/4 mean"},leven:{frequencies:[261.6255653006,279.06726965397,298.97057995496,313.95067836072,330.39003879965,348.83408706747,369.35382642901,392.4383479509,418.60090448096,448.46752658184,465.11211608996,502.32108537715,523.2511306012],description:"Leven's monochord ?"},ligon:{frequencies:[261.6255653006,279.66870773512,292.40504357126,309.19384990071,329.87571277032,342.12573923925,366.27579142084,392.4383479509,411.12588832951,436.04260883433,462.87600014722,485.87604984397,523.2511306012],description:"Jacky Ligon, strictly proper all prime scale, TL 08-09-2000"},ligon2:{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,382.37582620857,411.78935130154,441.2028763945,470.61640148747,500.02992658044,529.4434516734,558.85697676637],description:"Jacky Ligon, 19-limit symmetrical non-octave scale, 2001"},ligon3:{frequencies:[261.6255653006,273.51763645063,286.54228580542,300.86940009569,316.70463167967,334.29933343966,341.25073734861,376.08675011961,401.15920012759,427.90314680276,471.58492637221,481.3910401531,508.13498682828,534.87893350345,561.62288017862,588.36682685379,615.11077352897],description:"Jacky Ligon, 23-limit non-octave scale (2001)"},ligon4:{frequencies:[261.6255653006,278.49926570678,289.46759601673,308.13698517552,320.27237341115,340.92853547661,362.91692931321,386.32347802158,401.53832428939,427.43578342293,444.26952759254,472.92296174596,491.54841572131,523.2511306012,556.99853141357,592.92249142473,616.27397035104,640.54474682231,681.85707095323,725.83385862642,754.41987838254,803.07664857879],description:"Jacky Ligon, 2/1 Phi Scale, TL 12-04-2001"},ligon5:{frequencies:[261.6255653006,273.22765669781,280.653851324,293.09977429907,314.41721066027,328.36040925687,337.28508524374,352.24238645938,377.86132347501,394.61802538749,405.34378524393,423.31898451752,454.1076550834,474.24531572837,487.13535379632,508.73764640933,545.73895363303],description:'Jacky Ligon, scale for "Two Golden Flutes" (2001)'},ligon6:{frequencies:[261.6255653006,280.653851324,293.09977429907,314.41721066027,328.36040925687,352.24238645938,377.86132347501,394.61802538749,423.31898451752,442.09155952525,474.24531572837,508.73764640933,531.29821178855,569.94005600595],description:'Jacky Ligon, "Primal Golden Tuning" (2001)'},ligon7:{frequencies:[261.6255653006,294.32876096318,321.08592105074,361.22166118208,394.05999401681,443.31749326891,483.61908356609,527.58445479937],description:"Jacky Ligon, 7 tone, 27/22=generator, MMM 22-01-2002"},lindley_ea:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,349.6228209638,367.9112241576,391.5530240856,413.43299207996,438.51190905657,465.63764214343,491.10256480205,523.2511306012],description:"Mark Lindley +J. de Boer +W. Drake (1991), for organ Grosvenor Chapel, London"},lindley_sf:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.07474405997,328.14198392915,349.6228209638,368.32692341742,391.5530240856,413.90012676351,438.51190905657,465.63764214343,491.10256480205,523.2511306012],description:"Lindley (1988) suggestion nr. 2 for Stanford Fisk organ"},"ling-lun":{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,331.11985608357,353.59332287831,372.50983809402,392.4383479509,419.07356785577,441.49314144476,471.45776383774,496.67978412536,523.2511306012],description:"Scale of Ling Lun from C"},liu_major:{frequencies:[261.6255653006,290.69507255622,322.99452506247,348.83408706747,392.4383479509,436.04260883433,484.4917875937,523.2511306012],description:`Linus Liu's Major Scale, see his 1978 book, "Intonation Theory"`},liu_mel:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,423.83341578697,436.04260883433,470.92601754108,484.4917875937,523.2511306012],description:"Linus Liu's Melodic Minor, use 5 and 7 descending and 6 and 8 ascending"},liu_minor:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,387.59343007496,418.60090448096,484.4917875937,523.2511306012],description:"Linus Liu's Harmonic Minor"},liu_pent:{frequencies:[261.6255653006,294.32876096318,331.11985608357,353.19451315581,392.4383479509,441.49314144476,496.67978412536,529.79176973372],description:`Linus Liu's "pentatonic scale"`},lorina:{frequencies:[261.6255653006,271.31540105247,293.02063313667,305.22982618403,313.95067836072,348.83408706747,348.83408706747,385.55346465352,406.97310157871,457.84473927605,457.84473927605,465.11211608996,523.2511306012],description:"Lorina"},lt46a:{frequencies:[261.6255653006,265.62583852249,273.73233506765,277.91772325275,286.39934942254,290.77841553921,299.65253047503,308.79746990018,313.51900484808,323.08712797864,328.02715279963,338.03804253716,348.35444940179,353.68081538041,364.47461587782,370.04745828823,381.3407438317,387.1714705201,398.98735486934,411.16384203565,417.45056598488,430.19052226982,436.76816801564,450.09766813034,463.83396431287,470.92601754108,485.29796386361,492.71820372913,507.75521382755,523.2511306012],description:"13-limit temperament, minimax g=495.66296 cents"},lucy_19:{frequencies:[261.6255653006,272.17716319349,280.81422591737,292.13972001074,301.4102593031,313.56641022552,326.2128298123,336.56461921066,350.13857756143,364.25998604447,375.81913491042,390.97626371576,406.74469336313,419.65201956185,436.57696862128,450.43096951372,468.59726172356,487.49621708267,502.96605061019,523.2511306012],description:"Lucy's 19-tone scale"},lucy_24:{frequencies:[261.6255653006,269.92785558198,272.17712546173,280.81425349217,292.13970819848,301.41031849758,303.92192719902,313.56642833783,326.21280343239,336.56467170065,339.36921655583,350.13858362887,364.25994396351,375.81917832675,390.97625694066,403.38329512334,406.744629928,419.65205349792,436.57694340361,450.43105016925,454.18442712942,468.59728067062,487.49616921257,502.96612033609,523.2511306012],description:"Lucy/Harrison, meantone tuning from Bbb to Cx, third=1200.0/pi, 1/1=A"},lucy_31:{frequencies:[261.6255653006,269.92785558198,272.17712546173,280.81425349217,283.15423815518,292.13970819848,301.41031849758,303.92192719902,313.56642833783,323.51698308414,326.21280343239,336.56467170065,339.36921655583,350.13858362887,361.24970022276,364.25994396351,375.81917832675,378.95082751155,390.97625694066,403.38329512334,406.744629928,419.65205349792,432.96907456701,436.57694340361,450.43105016925,454.18442712942,468.59728067062,483.46750424654,487.49616921257,502.96612033609,507.15726445705,523.2511306012],description:"Lucy/Harrison's meantone tuning, 1/1=A"},lucy_7:{frequencies:[261.6255653006,292.13972001074,326.2128298123,350.13857756143,390.97626371576,436.57696862128,487.49621708267,523.2511306012],description:"Diatonic Lucy's scale"},lumma5:{frequencies:[261.6255653006,279.06726965397,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Carl Lumma's 5-limit version of lumma7, also Fokker 12-tone just."},lumma7:{frequencies:[261.6255653006,279.06726965397,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,390.69417751556,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Carl Lumma's 7-limit 12-tone scale, a.k.a GW Smith's Prism. TL 21-11-98"},lumma7t:{frequencies:[261.6255653006,279.68948643792,293.67396186758,305.56991806333,326.66797434652,349.22276480589,366.68390442934,392.00157215927,419.06732091375,436.04260883433,457.84473927605,489.45662770953,523.2511306012],description:"Tempered lumma7, 6 tetrads + 4 triads within 2c of Just, TL 19-2-99"},lumma7t72:{frequencies:[261.6255653006,279.86396690685,293.66476791741,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,435.78442404634,457.27406033445,489.15147723638,523.2511306012],description:"72-tET version of lumma7t"},lumma7t_keen:{frequencies:[261.6255653006,279.95098841649,293.39965821869,305.14186035122,326.51537799354,349.38597341375,366.17023517096,391.81845653432,419.26317124465,436.04260556019,456.98979229899,488.99939844699,523.2511306012],description:"Dave Keenan's adaptation of lumma7t to include 6:8:11, TL 17-04-9"},lumma_10:{frequencies:[261.6255653006,281.2143451833,302.26980244078,324.90175210669,349.22823143301,375.37611551499,391.99543598175,421.34544350737,452.89298412314,486.80259447109,523.2511306012],description:"Carl Lumma's 10-tone 125 cent Pyth. scale, TL 29-12-1999"},lumma_12_fun:{frequencies:[261.6255653006,276.16031892841,293.246794009,310.68035879446,327.94037872749,348.23056788569,368.93292606842,390.99572534534,413.52379936426,439.8701910135,464.30742384759,491.05951174505,522.34585182853],description:"Rational well temperament based on 577/289, 3/2, and 19/16."},"lumma_12_moh-ha-ha":{frequencies:[261.6255653006,276.16031892841,293.42033886144,310.68035879446,330.09788121912,349.51540364377,368.93292606842,391.72740891476,414.24047839262,440.13050829216,466.02053819169,493.4335110265,523.2511306012],description:"Rational well temperament."},lumma_12_strangeion:{frequencies:[261.6255653006,277.97716313189,292.40504357126,310.68035879446,330.09788121912,349.23197505989,368.93292606842,391.9912339477,414.71297038361,440.63253103259,468.17206422213,492.47165233054,523.2511306012],description:'19-limit "dodekaphonic" scale.'},lumma_22:{frequencies:[261.6255653006,263.29318697558,262.98919438538,262.83732973433,262.68555277841,262.53386346698,263.29318697558,262.38226174944,262.98919438538,262.23074757519,263.29318697558,262.68555277841,262.07932089369,263.29318697558,262.83732973433,263.59753095473,262.38226174944,263.44531501617,262.68555277841,262.98919438538,263.29318697558,263.902226729,261.92798165442],description:"Carl Lumma, intervals of attraction by trial and error, 1999."},lumma_5151:{frequencies:[261.6255653006,276.7826524273,292.81785438923,309.78204413166,327.729041887,346.71578592374,369.67398581173,391.09077971329,413.74834001613,437.71854962063,463.0774559108,489.90551202062,522.3451906503],description:"Carl Lumma's 5151 temperament III (1197/709.5/696). June 2003"},lumma_al1:{frequencies:[261.6255653006,274.63272075836,292.81785438923,309.78204413166,327.729041887,346.71578592374,366.8025131876,391.09077971329,413.74834001613,437.71854962063,463.0774559108,489.90551202062,522.3451906503],description:"Alaska I (1197/709.5/696), Carl Lumma, 6 June 2003."},lumma_al2:{frequencies:[261.6255653006,275.18850165466,292.98704147282,310.05056613125,328.10786809908,347.216824829,367.43868454848,391.20374747207,413.98739946535,438.09796819065,463.6127330944,490.61347436729,522.3451906503],description:"Alaska II (1197/707/696.5), Carl Lumma, 6 June 2003."},lumma_al3:{frequencies:[261.6255653006,275.18850165466,292.98704147282,310.05056613125,328.10786809908,349.32910706765,367.43868454848,391.20374747207,413.98739946535,438.09796819065,463.6127330944,490.61347436729,522.3451906503],description:"Alaska III (1197/707/696.5), Carl Lumma, 6 June 2003."},lumma_al4:{frequencies:[261.6255653006,276.38325105256,293.32570896007,309.87152561537,328.86683469969,349.02656754477,368.7143392539,391.31674786192,413.39000965417,438.73106346722,464.55095742407,491.89038573682,522.04355935974],description:"Alaska IV (1196/701/697), Carl Lumma, 6 June 2003."},lumma_al5:{frequencies:[261.6255653006,276.84261239447,293.89809826895,310.99222741882,329.08061019985,349.35433052883,369.67398581173,391.17550247358,415.27471248744,439.42852501549,464.98720675925,493.63374591774,522.3451906503],description:"Alaska V (1197/702/696.375), Carl Lumma, 6 June 2003."},lumma_al6:{frequencies:[261.6255653006,276.86260193655,293.83444433876,310.94732162256,329.05685050583,349.22823143301,369.56723519412,391.09077971329,415.06487744922,439.23819834286,464.81937009253,493.31307433255,522.04355935974],description:"Alaska VI (1196/701/696), Carl Lumma, 6 June 2003."},lumma_al7:{frequencies:[261.6255653006,276.11677207256,293.26810788146,310.16878953668,328.73958549954,348.42227432308,368.499294457,391.39134599911,413.94674961638,438.72852926454,464.99660740427,491.79379203259,522.3451906503],description:"Alaska VII, Carl Lumma, 27 Jan 2004"},lumma_dec1:{frequencies:[261.6255653006,286.10322937235,299.18791603519,327.17991022208,342.14320575162,374.15409293384,391.26571058456,427.87249484695,457.55816161244,489.30340830564,523.2511306012],description:"Carl Lumma, two 5-tone 7/4-chains, 5/4 apart in 31-tET, TL 9-2-2000"},lumma_dec2:{frequencies:[261.6255653006,286.10322937235,292.57243455474,327.17991022208,342.14320575162,382.6142546815,391.26571058456,437.54730686196,457.55816161244,511.68128147674,523.2511306012],description:"Carl Lumma, two 5-tone 3/2-chains, 7/4 apart in 31-tET, TL 9-2-2000"},lumma_magic:{frequencies:[261.6255653006,293.02063313667,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,418.60090448096,436.04260883433,457.84473927605,467.18850946536,523.2511306012],description:"Magic chord test, Carl Lumma, TL 24-06-99"},"lumma_synchtrines+2":{frequencies:[261.6255653006,277.1478691313,293.59111644706,311.009943641,329.46223568632,349.00930447981,369.71610741159,391.65144749868,414.88821865981,439.50363030131,465.57948255979,493.20241832805,522.46423212702],description:"The 12-tone equal temperament with 2:3:4 brats of +2"},"lumma_synchtrines-2":{frequencies:[261.6255653006,277.19623399848,293.69359242342,311.17279259662,329.69226891672,349.31393351076,370.10338321153,392.13011885309,415.46777761785,440.19437666896,466.39258399594,494.14997995304,523.55935978973],description:"The 12-tone equal temperament with 2:3:4 brats of -2"},lydian_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,317.12189733406,327.03195662575,373.75080757229,402.50086969323,418.60090448096,427.14378008261,436.04260883433,475.68284600109,523.2511306012,550.79066379074,581.39014511244,615.58956541318,634.24379466812,654.0639132515,747.50161514457,805.00173938646,837.20180896192,854.28756016522,872.08521766867,951.36569200218,1046.5022612024],description:"Lydian Chromatic Tonos"},lydian_chrom2:{frequencies:[261.6255653006,272.09058791262,283.42769574232,340.11323489078,377.90359432309,400.13321751856,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the chromatic genus"},lydian_chrominv:{frequencies:[261.6255653006,271.68808704293,281.75060878526,362.25078272391,402.50086969323,422.62591317789,442.75095666255,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Lydian inverted"},lydian_diat:{frequencies:[261.6255653006,275.39533189537,290.69507255622,327.03195662575,348.83408706747,373.75080757229,387.59343007496,402.50086969323,436.04260883433,455.00098313148,475.68284600109,498.33441009638,523.2511306012,550.79066379074,581.39014511244,654.0639132515,697.66817413493,747.50161514457,852.70554616492,805.00173938646,872.08521766867,910.00196626296,951.36569200218,996.66882019276,1046.5022612024],description:"Lydian Diatonic Tonos"},lydian_diat2:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,358.01393146398,377.90359432309,425.14154361347,485.87604984397,523.2511306012],description:"Schlesinger's Lydian Harmonia, a subharmonic series through 13 from 26"},lydian_diat2inv:{frequencies:[261.6255653006,281.75060878526,322.00069575458,362.25078272391,382.37582620857,402.50086969323,442.75095666255,483.00104363188,523.2511306012],description:"Inverted Schlesinger's Lydian Harmonia, a harmonic series from 13 from 26"},lydian_diatcon:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,358.01393146398,425.14154361347,485.87604984397,523.2511306012],description:"A Lydian Diatonic with its own trite synemmenon replacing paramese"},lydian_enh:{frequencies:[261.6255653006,275.39533189537,290.69507255622,299.00064605783,303.33398875432,307.79478270659,373.75080757229,402.50086969323,410.39304360878,414.45634107026,418.60090448096,475.68284600109,523.2511306012,550.79066379074,581.39014511244,598.00129211566,606.66797750864,615.58956541318,747.50161514457,805.00173938646,820.78608721757,828.91268214051,837.20180896192,951.36569200218,1046.5022612024],description:"Lydian Enharmonic Tonos"},lydian_enh2:{frequencies:[261.6255653006,266.75547834571,272.09058791262,340.11323489078,377.90359432309,388.70083987518,400.13321751856,523.2511306012],description:"Schlesinger's Lydian Harmonia in the enharmonic genus"},lydian_enhinv:{frequencies:[261.6255653006,266.65682617177,271.68808704293,362.25078272391,402.50086969323,412.56339143556,422.62591317789,523.2511306012],description:"A harmonic form of Schlesinger's Enharmonic Lydian inverted"},lydian_pent:{frequencies:[261.6255653006,269.93113880221,283.42769574232,340.11323489078,377.90359432309,395.48050568695,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the pentachromatic genus"},lydian_pis:{frequencies:[261.6255653006,290.69507255622,327.03195662575,373.75080757229,402.50086969323,436.04260883433,475.68284600109,523.2511306012,550.79066379074,581.39014511244,654.0639132515,747.50161514457,805.00173938646,872.08521766867,951.36569200218,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Lydian Tonos"},lydian_tri:{frequencies:[261.6255653006,268.51044859798,275.76748774928,340.11323489078,377.90359432309,392.4383479509,408.13588186894,523.2511306012],description:"Schlesinger's Lydian Harmonia in the first trichromatic genus"},lydian_tri2:{frequencies:[261.6255653006,268.51044859798,283.42769574232,340.11323489078,377.90359432309,392.4383479509,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the second trichromatic genus"},nachbaur_6:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,523.2511306012],description:`Fred Nachbaur's harmonic hexatonic, as used in "Void of Sensation"`},nassarre:{frequencies:[261.6255653006,277.66336828161,294.34406205295,311.66659310186,331.15428443044,350.6431449633,372.56793743951,394.49404533893,419.16071913933,443.82887286778,471.58032351597,495.88429116026,523.2511306012],description:"Nassarre's Equal Semitones"},negri5_19:{frequencies:[261.6255653006,271.22480440713,281.41555648081,291.74090527404,302.70251050738,313.80889368201,325.59966315504,337.54616011163,350.22880998446,363.07896889448,376.72096510961,390.54314115106,405.21705098851,420.08476989056,435.86864979507,451.86099895106,468.83881245397,486.04086171852,504.30291533224,523.2511306012],description:"Negri temperament, g=126.238272, 5-limit"},negri_19:{frequencies:[261.6255653006,269.02825605326,281.18681366715,289.14299126725,302.21061955257,310.76166549402,324.80633749066,333.99672707734,349.09149261831,358.96903024071,375.19240283292,392.14898023137,403.24482870584,421.46921730446,433.39468387282,452.98167562873,465.79878414581,486.85025820508,500.62567766841,523.2511306012],description:"Negri temperament, 13-limit, g=124.831"},negri_29:{frequencies:[261.6255653006,269.02825605326,276.64040740805,281.18681366715,289.14299126725,297.32428710198,302.21061955257,310.76166549402,319.55466133443,324.80633749066,333.99672707734,343.44715857517,349.09149261831,358.96903024071,369.1260526158,375.19240283292,385.80846524917,392.14898023137,403.24482870584,414.65463641221,421.46921730446,433.39468387282,445.65757880387,452.98167562873,465.79878414581,478.97855252217,486.85025820508,500.62567766841,514.79087238232,523.2511306012],description:"Negri temperament, 13-limit, g=124.831"},"neid-mar-morg":{frequencies:[261.6255653006,277.49581689502,293.99657683935,311.12698372208,329.99999983505,349.6228209638,369.99442271164,392.4383479509,415.77394625748,440,466.69047534984,494.44133512215,523.2511306012],description:"Neidhardt-Marpurg-de Morgan temperament (1858)"},neidhardt1:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.42509491746,328.14198392915,348.83408706747,368.32692341742,391.5530240856,414.36778843034,438.51190905657,465.11211608996,491.65745674141,523.2511306012],description:"Neidhardt I temperament (1724)"},neidhardt2:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,349.22823143301,369.15973155124,391.5530240856,414.36778843034,438.51190905657,466.16376151809,492.7691222293,523.2511306012],description:"Neidhardt II temperament (1724)"},neidhardt3:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,348.83408706747,369.15973155124,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Neidhardt III temperament (1724) 'Grosse Stadt'"},neidhardt4:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,329.62755691287,349.22823143301,369.99442271164,391.99543598175,415.30469757995,440,466.16376151809,493.88330125613,523.2511306012],description:"Neidhardt IV temperament (1724), equal temperament"},neidhardtn:{frequencies:[261.6255653006,276.86979852503,293.66476791741,310.77584116741,329.62755691287,348.83408706747,369.99442271164,391.5530240856,415.30469757995,439.50340943686,466.16376151809,493.32589719545,523.2511306012],description:"Johann Georg Neidhardt's temperament (1732), alt. 1/6 & 0 P, also Marpurg nr.10"},neogeb24:{frequencies:[261.6255653006,270.11478301563,282.39420473706,291.55732426372,295.23185084282,304.81152420286,308.65309481038,318.66826025208,333.15492371116,343.96512368902,348.30015108876,359.6017829051,375.94928703407,388.14807710176,393.03994675222,405.79329398283,424.24066266408,438.00640969567,443.52664897728,457.91818970179,463.68937649142,478.73515685363,500.49846361623,516.73862125829,523.2511306012],description:"Neo-Gothic e-based lineotuning (T/S or Blackwood's R=e, ~2.71828), 24 notes"},neogji12:{frequencies:[261.6255653006,282.52678126125,294.32876096318,317.84262891891,332.97799220076,348.83408706747,374.60024122586,392.4383479509,423.79017189188,441.49314144476,443.97065626768,499.46698830115,523.2511306012],description:"M. Schulter, neo-Gothic 12-note JI (prim. 2/3/7/11) 1/1=F with Eb key as D+1"},neogp16a:{frequencies:[261.6255653006,274.38778799819,281.28352228595,295.02457363685,309.19384990071,317.19205704586,332.33517754401,348.83408706747,366.27579142084,374.86334014511,392.4383479509,411.12588832951,422.62591317789,442.75095666255,464.34856430463,498.91386871277,523.2511306012],description:"M. Schulter, scale from mainly prime-to-prime ratios and octave complements (Gb-D#)"},neutr_diat:{frequencies:[261.6255653006,294.32876096318,320.24370022528,348.83408706747,392.4383479509,427.47405410759,479.82340237272,523.2511306012],description:"Neutral Diatonic, 9 + 9 + 12 parts, geometric mean of major and minor"},neutr_pent1:{frequencies:[261.6255653006,302.32287545847,348.83408706747,392.4383479509,453.48431318771,523.2511306012],description:"Quasi-Neutral Pentatonic 1, 15/13 x 52/45 in each trichord, after Dudon"},neutr_pent2:{frequencies:[261.6255653006,301.87565226992,348.83408706747,392.4383479509,452.81347840488,523.2511306012],description:"Quasi-Neutral Pentatonic 2, 15/13 x 52/45 in each trichord, after Dudon"},new_enh:{frequencies:[261.6255653006,264.89588486686,279.06726965397,348.83408706747,392.4383479509,397.34382730029,418.60090448096,523.2511306012],description:"New Enharmonic"},new_enh2:{frequencies:[261.6255653006,327.03195662575,331.11985608357,348.83408706747,392.4383479509,490.54793493862,496.67978412536,523.2511306012],description:"New Enharmonic permuted"},newcastle:{frequencies:[261.6255653006,273.65745935891,291.9012907804,312.65334602246,327.03195662575,350.28154752005,366.3906401674,390.81668391305,410.48618883318,436.04260883433,467.04206359353,490.54793493862,523.2511306012],description:"Newcastle modified 1/3-comma meantone"},norden:{frequencies:[261.6255653006,274.87601291722,292.73769384471,310.07474405997,327.54963108844,349.78078158391,366.5013507395,391.37619916626,412.31401916973,437.91808280662,466.37437567834,489.99465727995,523.2511306012],description:"Reconstructed Schnitger temperament, organ in Norden. Ortgies, 2002"},novaro:{frequencies:[261.6255653006,274.70684356563,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,498.33441009638,523.2511306012],description:"9-limit diamond with 21/20, 16/15, 15/8 and 40/21 added for evenness"},novaro15:{frequencies:[261.6255653006,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.87565226992,305.22982618403,309.19384990071,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,442.75095666255,448.50096908674,453.48431318771,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,523.2511306012],description:"1-15 diamond, see Novaro, 1927, Sistema Natural base del Natural-Aproximado, p"},novaro_eb:{frequencies:[261.6255653006,277.27733921611,293.70273468471,311.34510173929,329.85947563084,349.74559786079,370.61463194963,392.51515715445,416.03831243363,440.72414616847,467.23897542105,495.06435356607,524.26505360912],description:"Novaro (?) equal beating 4/3 with strectched octave, almost pure 3/2"},janke1:{frequencies:[261.6255653006,276.38325105256,293.32570896007,310.58830860439,328.86683469969,349.02656754477,368.7143392539,391.76907592069,414.34624765043,439.23819834286,465.62553897253,492.45896815637,523.2511306012],description:"Rainer Janke, Temperatur I"},janke2:{frequencies:[261.6255653006,276.38325105256,292.98704147282,310.58830860439,328.48713220126,349.02656754477,368.7143392539,391.54284657258,414.34624765043,438.73106346722,465.62553897253,491.89038573682,523.2511306012],description:"Rainer Janke, Temperatur II"},janke3:{frequencies:[261.6255653006,276.22365192501,292.98704147282,310.40895756597,328.29744538229,349.02656754477,368.50142299854,391.54284657258,414.10698098223,438.47771564426,465.62553897253,491.60634075178,523.2511306012],description:"Rainer Janke, Temperatur III"},janke4:{frequencies:[261.6255653006,275.90473010106,292.98704147282,310.76776326996,328.10786809908,349.22823143301,368.07595926604,391.54284657258,413.86785247997,438.47771564426,465.89457252293,491.32245979018,523.2511306012],description:"Rainer Janke, Temperatur IV"},janke5:{frequencies:[261.6255653006,275.58617649731,292.98704147282,310.05056613125,328.10786809908,348.82502010853,367.43868454848,391.54284657258,413.39000965417,438.47771564426,465.08793784701,491.0387427573,523.2511306012],description:"Rainer Janke, Temperatur V"},janke6:{frequencies:[261.6255653006,275.74540729824,292.98704147282,310.58830860439,328.10786809908,349.43001184052,367.65098676472,391.54284657258,413.86785247997,438.47771564426,465.89457252293,491.0387427573,523.2511306012],description:"Rainer Janke, Temperatur VI"},janke7:{frequencies:[261.6255653006,275.42703764514,292.81785438923,311.12698372208,327.91840028839,349.63190883464,367.0144478307,391.54284657258,413.62886206386,438.22451411849,467.24207374344,490.75518955849,523.2511306012],description:"Rainer Janke, Temperatur VII"},jemblung1:{frequencies:[261.6255653006,298.87388797409,337.89601991959,388.44742741354,452.30188977628,523.2511306012],description:"Scale of bamboo gamelan jemblung from Kalijering, slendro-like. 1/1=590 Hz."},jemblung2:{frequencies:[261.6255653006,300.03885820455,355.06324470257,391.40016308218,451.61555914985,523.2511306012],description:"Bamboo gamelan jemblung at Royal Batavia Society. 1/1=504 Hz."},ji_10coh:{frequencies:[261.6255653006,283.42769574232,299.7792935736,327.03195662575,348.83408706747,370.63621750918,392.4383479509,436.04260883433,457.84473927605,485.0974023282,523.2511306012],description:"Differentially coherent 10-tone scale"},ji_10coh2:{frequencies:[261.6255653006,305.22982618403,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,479.64686971777,523.2511306012],description:"Other diff. coherent 10-tone scale"},ji_11:{frequencies:[261.6255653006,276.96780524107,294.32876096318,316.53463456122,336.37572681506,356.10146388137,384.42940207435,406.97310157871,432.48307733364,465.11211608996,494.26637409559,523.2511306012],description:"3 and 7 prime rational interpretation of 11-tET. OdC 2000"},ji_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Basic JI with 7-limit tritone"},ji_12a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"7-limit 12-tone scale"},ji_12b:{frequencies:[261.6255653006,272.52663052146,290.69507255622,305.22982618403,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"alternate 7-limit 12-tone scale"},ji_12c:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'Kurzweil "Just with natural b7th", is Sauveur Just with 7/4'},ji_13:{frequencies:[261.6255653006,279.06726965397,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,418.60090448096,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"5-limit 12-tone symmetrical scale with two tritones"},ji_17:{frequencies:[261.6255653006,271.31540105247,283.8170195002,294.32876096318,310.07474405997,321.55899383997,336.37572681506,348.83408706747,361.75386806997,378.42269266694,392.4383479509,406.97310157871,425.72552925031,441.49314144476,465.11211608996,482.33849075995,504.56359022259,523.2511306012],description:"3 and 7 prime rational interpretation of 17-tET. OdC"},ji_17a:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,310.07474405997,321.08592105074,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,426.35277308246,441.49314144476,465.11211608996,484.4917875937,502.32108537715,523.2511306012],description:"3, 5 and 11 prime rational interpretation of 17-tET, OdC"},ji_17b:{frequencies:[261.6255653006,272.52663052146,285.40970760065,294.32876096318,310.07474405997,319.76457981184,334.88072358477,348.83408706747,359.73515228832,380.54627680087,392.4383479509,408.78994578219,428.11456140098,441.49314144476,465.11211608996,479.64686971777,502.32108537715,523.2511306012],description:"Alt. 3, 5 and 11 prime rational interpretation of 17-tET, OdC"},ji_19:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,353.19451315581,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"5-limit 19-tone scale"},ji_20:{frequencies:[261.6255653006,271.31540105247,279.38237857051,288.32205155576,299.00064605783,310.07474405997,321.55899383997,331.11985608357,348.83408706747,356.10146388137,372.50983809402,384.42940207435,392.4383479509,413.43299207996,425.72552925031,441.49314144476,457.84473927605,474.80195184183,489.99465727995,504.56359022259,523.2511306012],description:"3 and 7 prime rational interpretation of 20-tET. OdC"},ji_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"7-limit 21-tone just scale, Op de Coul, 2001"},ji_22:{frequencies:[261.6255653006,272.52663052146,279.06726965397,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"5-limit 22-tone scale (Zarlino?)"},ji_27:{frequencies:[261.6255653006,267.90457886781,275.62199471997,282.55561052465,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,331.11985608357,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,413.43299207996,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.4917875937,496.67978412536,510.98743222773,523.2511306012],description:"7-limit rational interpretation of 27-tET, OdC"},ji_29:{frequencies:[261.6255653006,267.90457886781,275.62199471997,282.55561052465,287.78812183066,294.32876096318,301.39265122629,310.07474405997,317.12189733406,323.76163705949,331.11985608357,340.65828815182,348.83408706747,356.76213450082,367.91095120397,372.08969287196,383.71749577421,392.4383479509,401.85686830172,413.43299207996,422.82919644541,431.68218274599,441.49314144476,454.2110508691,465.11211608996,475.68284600109,484.4917875937,496.67978412536,510.98743222773,523.2511306012],description:"3,5,11-prime rational interpretation of 29-tET, OdC"},ji_30:{frequencies:[261.6255653006,267.57160087561,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.7792935736,308.34441624714,313.95067836072,321.92208230347,329.64821227876,336.37572681506,344.91651675372,353.19451315581,360.81424763342,370.01329949656,379.40816842909,387.59343007496,396.89567239676,406.97310157871,415.27867508032,425.24536328225,436.04260883433,443.97065626768,456.65553216105,465.11211608996,478.40103369253,488.36772189445,498.33441009638,511.62332769895,523.2511306012],description:"11-limit rational interpretation of 30-tET"},ji_31:{frequencies:[261.6255653006,267.57160087561,274.08392555301,280.31310567921,285.40970760065,293.02063313667,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,334.88072358477,343.38355445704,348.83408706747,356.76213450082,366.27579142084,373.75080757229,383.71749577421,392.4383479509,398.6675280771,408.78994578219,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,467.18850946536,479.64686971777,490.54793493862,499.46698830115,512.78610798918,523.2511306012],description:"A just 11-limit 31-tone scale, optimized for Mann complexity"},ji_31a:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,334.88072358477,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"A just 7-limit 31-tone scale"},ji_31b:{frequencies:[261.6255653006,267.90457886781,275.93321340298,282.55561052465,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,344.91651675372,353.19451315581,359.28803828513,367.91095120397,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,431.14564594215,441.49314144476,452.08897683944,459.88868900496,470.92601754108,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"A just 5-limit 31-tone scale, corner clipped genus"},ji_31c:{frequencies:[261.6255653006,267.57160087561,272.52663052146,279.06726965397,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,334.88072358477,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,398.6675280771,408.78994578219,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,479.64686971777,490.54793493862,502.32108537715,511.62332769895,523.2511306012],description:"A just 11-limit 31-tone scale"},ji_5coh:{frequencies:[261.6255653006,305.22982618403,348.83408706747,381.53728273004,446.94367405519,523.2511306012],description:"Differential fully coherent pentatonic scale"},ji_6coh:{frequencies:[261.6255653006,294.32876096318,330.74639366397,372.08969287196,418.60090448096,465.11211608996,523.2511306012],description:"Differential coherent 6-tone scale, OdC 2003"},ji_7:{frequencies:[261.6255653006,290.69507255622,318.93402246168,348.83408706747,392.4383479509,429.2294430713,470.92601754108,523.2511306012],description:"7-limit rational interpretation of 7-tET. OdC"},ji_7a:{frequencies:[261.6255653006,287.78812183066,319.76457981184,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Superparticular approximation to 7-tET. Op de Coul, 1998"},ji_8coh:{frequencies:[261.6255653006,286.99041781007,312.35527031954,339.96223546814,370.00947616612,405.83764015148,441.71144237774,480.75585116768,523.2511306012],description:"Differential coherent 8-tone scale, OdC, 2003"},ji_8coh3:{frequencies:[261.6255653006,277.97716313189,302.50455987882,327.03195662575,359.73515228832,392.4383479509,425.14154361347,466.02053819169,523.2511306012],description:"Differential fully coherent 8-tone scale, OdC, 2003"},ji_9coh:{frequencies:[261.6255653006,287.78812183066,313.95067836072,327.03195662575,366.27579142084,392.4383479509,418.60090448096,470.92601754108,497.08857407114,523.2511306012],description:"Differentially coherent 9-tone scale"},ji_ri24a:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,301.87565226992,310.68035879446,319.76457981184,329.87571277032,340.11323489078,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,402.50086969323,414.99227599406,428.11456140098,440.63253103259,453.48431318771,465.11211608996,479.64686971777,494.18162334558,508.71637697339,523.2511306012],description:"M. Schulter, just/rational intonation system - with circulating 24-note set"},jioct12:{frequencies:[261.6255653006,272.52663052146,282.55561052465,302.80736724606,313.95067836072,327.03195662575,363.36884069528,376.74081403286,392.4383479509,436.04260883433,454.2110508691,470.92601754108,523.2511306012],description:"12-tone JI version of Messiaen's octatonic scale, Erlich & Par\xEF\xBF\xBDzek"},"jobin-bach":{frequencies:[261.6255653006,275.07759559501,292.50627485027,309.76836826904,327.03195662575,348.83408706747,366.77012764335,391.22147055517,412.61639318626,437.39890198442,464.6525521713,489.02683710225,523.2511306012],description:"Emile Jobin, WTC temperament after Bach's signet"},"johnson-secor_rwt":{frequencies:[261.6255653006,276.16031892841,293.03678286293,310.07474405997,327.94037872749,348.83408706747,368.21375857121,391.52992584916,414.24047839262,438.40450629885,465.11211608996,490.95167809495,523.2511306012],description:"Johnson/Secor proportional-beating well-temperament with five 24/19s."},johnson_44:{frequencies:[261.6255653006,265.7783520514,269.99705605222,274.2827236086,278.63641763414,283.05921791404,287.55222124002,292.11654190835,296.75331210627,301.46368356757,306.24882108355,311.17820103386,316.11753722951,321.13527558179,326.23266245367,331.4109583385,336.67144939063,342.01544029518,347.44425644654,352.9592442771,358.56177366235,364.2532300084,370.03502692537,375.90859839047,381.87540114246,387.93691728375,394.09464571975,400.35011587045,406.70487919155,413.16051176499,419.71861468993,426.38081694263,433.14876596753,440.02414274758,447.00865248514,454.10402744924,461.31203006992,468.63444275836,476.07308421189,483.62979961065,491.30646309654,499.10497838378,507.02727962797,515.07533168556,523.2511306012],description:"Aaron Johnson, 44-tET approximation"},johnson_7:{frequencies:[261.6255653006,288.83389952765,318.87182567809,352.10227751942,388.71994014354,429.2294430713,473.86811641255,523.2511306012],description:"Aaron Johnson, 7-tET approximation"},johnson_eb:{frequencies:[261.6255653006,273.1678696521,292.40504357126,312.71949922989,327.03195662575,349.65487315468,365.50630446407,390.89937403737,408.78994578219,437.06859144336,467.84806971401,488.62421754671,523.2511306012],description:'Aaron Johnson, "1/4-comma tempered" equal beating C-G-D-A-E plus just thirds'},johnson_ratwell:{frequencies:[261.6255653006,276.16031892841,292.90688289089,310.07474405997,327.94037872749,348.83408706747,368.21375857121,391.49724879514,414.24047839262,438.30776524386,465.11211608996,490.95167809495,523.2511306012],description:"Aaron Johnson, rational well-temperament with five 24/19's"},johnson_temp:{frequencies:[261.6255653006,275.52965735686,292.50638298357,309.88336774144,327.03195662575,348.76230617841,367.55223824197,391.22154286826,413.09299784305,437.39914452994,464.92072007996,490.30891677011,523.2511306012],description:"Aaron Johnson, temperament with just 5/4, 24/19 and 19/15"},johnston:{frequencies:[261.6255653006,275.93321340298,294.32876096318,315.35224388912,327.03195662575,359.73515228832,367.91095120397,392.4383479509,401.35740131342,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Ben Johnston's combined otonal-utonal scale"},johnston_21:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Johnston 21-note just enharmonic scale"},johnston_22:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,353.19451315581,367.91095120397,378.42269266694,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Johnston 22-note scale from end of string quartet nr. 4"},johnston_25:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,331.11985608357,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Johnston 25-note just enharmonic scale"},"johnston_6-qt":{frequencies:[261.6255653006,262.79353657426,266.47048317654,267.57160087561,271.31540105247,272.52663052146,277.4816601673,280.31310567921,284.23518205497,290.69507255622,294.32876096318,297.30177875068,299.7792935736,300.33547037059,305.22982618403,306.59245933664,310.07474405997,311.45900631024,316.53463456122,317.12189733406,319.76457981184,322.99452506247,327.03195662575,334.46450109452,339.14425131559,342.60490694126,348.83408706747,350.39138209902,355.29397756872,356.76213450082,361.75386806997,363.36884069528,367.91095120397,373.75080757229,381.53728273004,382.24514410802,387.59343007496,390.82337532559,392.4383479509,396.40237166758,399.70572476481,406.97310157871,408.78994578219,413.43299207996,420.46965851882,426.35277308246,436.04260883433,445.95266812602,452.19233508746,459.88868900496,465.11211608996,467.18850946536,475.68284600109,479.64686971777,484.4917875937,486.49381977384,490.54793493862,248.7057842981,498.33441009638,508.71637697339,516.79124009995,523.2511306012],description:"11-limit complete system from Ben Johnston's _6th Quartet_"},"johnston_6-qt_row":{frequencies:[261.6255653006,272.52663052146,290.69507255622,306.59245933664,327.03195662575,350.39138209902,363.36884069528,399.70572476481,408.78994578219,436.04260883433,445.95266812602,490.54793493862,508.71637697339],description:`11-limit 'prime row' from Ben Johnston's "6th Quartet"`},johnston_81:{frequencies:[116.54094037952,117.99770213426,119.33792294863,119.89808681021,120.82964698549,121.39681289533,122.77564089365,122.91427305652,124.31033640482,124.45070146973,125.86421560988,127.43751830501,127.89129259755,128.03570110055,129.48993375502,131.10855792696,132.74741490105,134.25516331721,134.88534766148,135.93335285867,136.57141450725,138.12259600536,138.27855718859,139.84912845542,141.59724256112,142.26189011172,143.87770417225,145.6761754744,147.49712766783,149.17240368579,151.03705873186,151.74601611917,153.46955111706,155.38792050603,157.33026951235,159.11723059817,159.29689788126,161.10619598065,161.86241719378,163.70085452487,163.8856974087,165.74711520643,165.93426862631,167.81895414651,169.91669107334,170.71426813406,172.6532450067,174.81141056928,176.9965532014,179.00688442294,179.84713021531,181.24447047823,182.095219343,184.16346134048,184.37140958479,186.46550460723,188.79632341482,189.68252014896,191.15627745751,191.83693889633,194.23490063253,196.66283689044,198.89653824771,199.12112235157,199.83014468368,201.38274497581,202.32802149222,204.62606815608,204.85712176088,207.18389400804,207.41783578289,209.77369268314,212.39586384168,213.39283516758,215.81655625837,218.5142632116,221.24569150175,223.75860552868,226.55558809779,227.61902417875,230.2043266756,233.08188075904],description:"Johnston 81-note 5-limit scale of Sonata for Microtonal Piano"},jorgensen:{frequencies:[261.6255653006,269.51415085551,288.85811466493,309.59046173614,318.92511007349,352.12195684808,355.62605411908,388.77403176757,408.50706336067,429.24143792307,469.25139168707,473.92081401802,523.2511306012],description:"Jorgensen's 5&7 temperament"},jousse:{frequencies:[261.6255653006,276.90198715646,293.15566421679,311.51473523959,328.62702621286,349.28097970329,369.20264759391,391.76800554826,415.35298052707,439.0631553946,466.60176257857,492.27019703794,523.2511306012],description:"Temperament of Jean Jousse (1832)"},jousse2:{frequencies:[261.6255653006,277.21176919085,293.63180098233,311.16627887077,329.63881547742,349.36510452864,370.14670828388,392.04008509316,415.41939014292,440.0494382652,466.3511549761,494.0599599767,523.2511306012],description:"Jean Jousse's quasi-equal temperament"},quasi_5:{frequencies:[261.6255653006,302.26980244078,349.22823143301,391.99543598175,452.89298412314,523.2511306012],description:"Quasi-Equal 5-Tone in 24-tET, 5 5 4 5 5 steps"},quasi_9:{frequencies:[261.6255653006,281.2143451833,302.26980244078,324.90175210669,349.22823143301,391.99543598175,421.34544350737,452.89298412314,486.80259447109,523.2511306012],description:'Quasi-Equal Enneatonic, Each "tetrachord" has 125 + 125 + 125 + 125 cents'},quint_chrom:{frequencies:[261.6255653006,277.01530443593,294.32876096318,348.83408706747,392.4383479509,415.52295665389,441.49314144476,523.2511306012],description:"Aristides Quintilianus' Chromatic genus"},oconnell:{frequencies:[261.6255653006,267.57429119961,272.27874977392,278.46970304972,283.3657217904,288.34782337261,294.90414810658,300.08911516052,305.36524364276,312.30850472426,317.79947295261,323.38698268281,330.74001416845,336.55504284097,344.20748191927,350.25929591231,356.41751010259,364.52157313929,370.93054700815,377.45220049416,386.03454097812,392.82175095637,399.72829510222,408.81713953112,416.00491024634,423.31905787312],description:"Walter O'Connell, Pythagorean scale of 25 octaves reduced by Phi. XH 15 (1993)"},oconnell_11:{frequencies:[261.6255653006,272.27874977392,288.34782337261,300.08911516052,312.30850472426,323.38698268281,344.20748191927,356.41751010259,370.93054700815,386.03454097812,408.81713953112,423.31905787312],description:"Walter O'Connell, 11-note mode of 25-tone scale"},oconnell_14:{frequencies:[261.6255653006,272.27874977392,283.3657217904,288.34782337261,300.08911516052,312.30850472426,323.38698268281,336.55504284097,344.20748191927,356.41751010259,370.93054700815,386.03454097812,399.72829510222,408.81713953112,423.31905787312],description:"Walter O'Connell, 14-note mode of 25-tone scale"},oconnell_7:{frequencies:[261.6255653006,283.3657217904,300.08911516052,323.38698268281,344.20748191927,370.93054700815,392.82175095637,423.31905787312],description:"Walter O'Connell, 7-note mode of 25-tone scale"},oconnell_9:{frequencies:[261.6255653006,278.46970304972,294.90414810658,305.36524364276,323.38698268281,344.20748191927,364.52157313929,377.45220049416,399.72829510222,423.31905787312],description:"Walter O'Connell, 9-tone mode of 25-tone scale"},oconnell_9a:{frequencies:[261.6255653006,272.27874977392,288.34782337261,305.36524364276,323.38698268281,344.20748191927,356.41751010259,377.45220049416,399.72829510222,423.31905787312],description:"Walter O'Connell, 7+2 major mode analogy for 25-tone scale"},octony_min:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Octony on Harmonic Minor, from Palmer on an album of Turkish music"},octony_rot:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Rotated Octony on Harmonic Minor"},octony_trans:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,348.83408706747,408.78994578219,420.46965851882,436.04260883433,523.2511306012],description:"Complex 10 of p. 115, an Octony based on Archytas's Enharmonic,"},octony_trans2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,315.35224388912,324.36230800023,336.37572681506,348.83408706747,504.56359022259,523.2511306012],description:"Complex 6 of p. 115 based on Archytas's Enharmonic, an Octony"},octony_trans3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,306.59245933664,315.35224388912,327.03195662575,348.83408706747,490.54793493862,523.2511306012],description:"Complex 5 of p. 115 based on Archytas's Enharmonic, an Octony"},octony_trans4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,420.46965851882,432.48307733364,448.50096908674,523.2511306012],description:"Complex 11 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_trans5:{frequencies:[261.6255653006,271.31540105247,279.06726965397,317.94773560837,327.03195662575,339.14425131559,348.83408706747,508.71637697339,523.2511306012],description:"Complex 15 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_trans6:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,336.37572681506,345.98646186692,348.83408706747,358.80077526939,523.2511306012],description:"Complex 14 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_u:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,356.76213450082,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"7)8 octony from 1.3.5.7.9.11.13.15, 1.3.5.7.9.11.13 tonic (subharmonics 8-16)"},odd1:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"ODD-1"},odd2:{frequencies:[261.6255653006,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"ODD-2"},oettingen:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,298.00787047521,301.39265122629,306.59245933664,310.42486507835,313.95067836072,317.87506184023,323.35923445661,327.03195662575,331.11985608357,334.88072358477,339.06673262958,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.50983809402,376.74081403286,383.2405741708,388.03108134794,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.89982010446,418.60090448096,423.83341578697,431.14564594215,436.04260883433,441.49314144476,446.50763144636,452.08897683944,459.88868900496,465.11211608996,470.92601754108,476.81259276034,485.03885168492,490.54793493862,496.67978412536,502.32108537715,510.98743222773,517.37477513058,523.2511306012],description:"von Oettingen's Orthotonophonium tuning"},oettingen2:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.51653791741,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,431.14564594215,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.27480687611,484.4917875937,490.54793493862,496.11959049595,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"von Oettingen's Orthotonophonium tuning with central 1/1"},ogr10:{frequencies:[261.6255653006,264.15640940857,271.89678302796,296.5055443788,342.56848033562,359.46139971304,411.32572372413,440,484.46499093218,513.27277840175,523.2511306012],description:"Optimal Golomb Ruler of 10 segments, length 72"},ogr10a:{frequencies:[261.6255653006,264.15640940857,285.30470202322,314.13668154225,329.62755691287,352.60650301302,431.60923940535,448.5538823653,457.27406033445,508.3551866238,523.2511306012],description:"2nd Optimal Golomb Ruler of 10 segments, length 72"},ogr11:{frequencies:[261.6255653006,265.92749183559,274.74472021414,318.1829357186,331.4244391468,362.52783176564,371.50609336774,409.69842558521,455.51656649021,482.27514684959,486.22402266421,523.2511306012],description:"Optimal Golomb Ruler of 11 segments, length 85"},ogr12:{frequencies:[261.6255653006,265.06964174786,270.3209511875,308.09015504092,333.2396629384,346.57411320722,384.79959982017,413.49815209867,456.11269186454,468.20039948765,496.58195036371,499.83980314828,523.2511306012],description:"Optimal Golomb Ruler of 12 segments, length 106"},ogr2:{frequencies:[261.6255653006,329.62755691287,523.2511306012],description:"Optimal Golomb Ruler of 2 segments, length 3"},ogr3:{frequencies:[261.6255653006,293.66476791741,415.30469757995,523.2511306012],description:"Optimal Golomb Ruler of 3 segments, length 6"},ogr4:{frequencies:[261.6255653006,278.64197723942,336.62443200122,461.29362042034,523.2511306012],description:"Optimal Golomb Ruler of 4 segments, length 11"},ogr4a:{frequencies:[261.6255653006,296.76515515861,406.67242132093,433.12283887627,523.2511306012],description:"2nd Optimal Golomb Ruler of 4 segments, length 11"},ogr5:{frequencies:[261.6255653006,272.51337835337,307.97166902637,393.32961502355,426.7484383229,523.2511306012],description:"Optimal Golomb Ruler of 5 segments, length 17"},ogr5a:{frequencies:[261.6255653006,272.51337835337,307.97166902637,393.32961502355,482.27514684959,523.2511306012],description:"2nd Optimal Golomb Ruler of 5 segments, length 17"},ogr5b:{frequencies:[261.6255653006,272.51337835337,362.52783176564,426.7484383229,463.0066556268,523.2511306012],description:"3rd Optimal Golomb Ruler of 5 segments, length 17"},ogr5c:{frequencies:[261.6255653006,272.51337835337,362.52783176564,409.69842558521,444.50800708553,523.2511306012],description:"4th Optimal Golomb Ruler of 5 segments, length 17"},ogr6:{frequencies:[261.6255653006,268.98086109226,292.31087910123,345.21700307457,430.94493093825,495.02573326308,523.2511306012],description:"Optimal Golomb Ruler of 6 segments, length 25"},ogr6a:{frequencies:[261.6255653006,276.5429423948,284.31762274025,345.21700307457,407.69874723177,468.32288027948,523.2511306012],description:"2nd Optimal Golomb Ruler of 6 segments, length 25"},ogr6b:{frequencies:[261.6255653006,268.98086109226,354.92237405774,407.69874723177,443.06044202496,495.02573326308,523.2511306012],description:"3rd Optimal Golomb Ruler of 6 segments, length 25"},ogr6c:{frequencies:[261.6255653006,268.98086109226,317.66442301495,354.92237405774,455.51656649021,495.02573326308,523.2511306012],description:"4th Optimal Golomb Ruler of 6 segments, length 25"},ogr6d:{frequencies:[261.6255653006,276.5429423948,317.66442301495,375.1593523779,468.32288027948,481.48922855473,523.2511306012],description:"5th Optimal Golomb Ruler of 6 segments, length 25"},ogr7:{frequencies:[261.6255653006,267.01398215014,283.85429714132,314.3146261019,355.21191871351,409.69842558521,502.34551296122,523.2511306012],description:"Optimal Golomb Ruler of 7 segments, length 34"},ogr8:{frequencies:[261.6255653006,265.77967818767,283.06627815664,316.06708432391,387.90015179087,400.3161696196,454.08364189083,499.09751029017,523.2511306012],description:"Optimal Golomb Ruler of 8 segments, length 44"},ogr9:{frequencies:[261.6255653006,264.94361147373,282.17583275232,296.76515515861,349.59519124833,363.06573983159,401.57942110183,438.61588607285,510.2272282764,523.2511306012],description:"Optimal Golomb Ruler of 9 segments, length 55"},oldani:{frequencies:[261.6255653006,272.52663052146,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"This scale by Norbert L. Oldani appeared in Interval 5(3), p.10-11"},oljare:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,381.53728273004,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:'Mats \xEF\xBF\xBDljare, scale for "Tampere" (2001)'},oljare17:{frequencies:[261.6255653006,272.51337835337,320.78822215662,334.13814720468,393.32961502355,409.69842558521,426.7484383229,502.34551296122,523.2511306012],description:'Mats \xEF\xBF\xBDljare, scale for "Fafner" (2001), MOS in 17-tET'},olympos:{frequencies:[261.6255653006,279.06726965397,348.83408706747,372.08969287196,465.11211608996,523.2511306012],description:"Scale of ancient Greek flutist Olympos, 6th century BC as reported by Partch"},opelt:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Friederich Wilhelm Opelt 19-tone"},organ1373a:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"English organ tuning (1373) with 18:17:16 ficta semitones (Eb-G#)"},organ1373b:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,467.46332623563,496.67978412536,523.2511306012],description:"English organ tuning (1373) with 18:17:16 accidental semitones (Eb-G#)"},ragib:{frequencies:[261.6255653006,269.99542342683,281.01564479119,288.12007609225,294.32876096318,303.49446183192,311.45900631024,323.77767743764,335.77702597132,341.99420300732,348.83408706747,360.36579242507,371.06455309218,381.37837507376,392.4383479509,407.46331920162,417.22825371678,432.79663407874,450.28451247858,458.15534711532,465.11211608996,476.50902003141,487.19844562495,503.12608711654,523.2511306012],description:"Idris Ragib Bey, vol.5 d'Erlanger, p 40. Idris Rag'ib Bey"},ragib7:{frequencies:[261.6255653006,270.30192333353,281.29980781121,288.32205155576,294.32876096318,303.74668805875,311.45900631024,324.36230800023,336.37572681506,341.71502406609,348.83408706747,360.4025644447,370.6997805717,381.53728273004,392.4383479509,406.97310157871,417.13259773693,432.48307733364,450.69091522486,457.84473927605,465.11211608996,476.92160341255,486.65469735975,502.32108537715,523.2511306012],description:"7-limit version of Idris Rag'ib Bey scale"},"rameau-flat":{frequencies:[261.6255653006,276.01120901503,292.50629850443,312.00666699279,327.03195662575,349.91920725962,366.20974703841,391.22137338448,415.30469757995,437.39882871549,468.01000025525,489.02679755603,523.2511306012],description:'Rameau bemols, see Pierre-Yves Asselin in "Musique et temperament"'},"rameau-gall":{frequencies:[261.6255653006,274.65078342868,292.50627485027,310.49874388777,327.03195662575,349.91912034749,366.20104475463,391.22147055517,412.61639318626,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"Rameau's temperament, after Gallimard (1st solution)"},"rameau-merc":{frequencies:[261.6255653006,273.37431312998,292.50627485027,308.72950296259,327.03195662575,348.83408706747,365.63284274659,391.22147055517,409.55238583376,437.39890198442,464.53468854848,489.02683710225,523.2511306012],description:"Rameau's temperament, after Mercadier"},"rameau-minor":{frequencies:[261.6255653006,294.32876096318,313.95067836072,353.19451315581,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Rameau's systeme diatonique mineur on E. Asc. 4-6-8-9, desc. 9-7-5-4"},"rameau-nouv":{frequencies:[261.6255653006,275.98004852257,292.50627485027,311.49614460359,327.03195662575,349.91912034749,367.37127028704,391.22147055517,414.64857675456,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"Temperament by Rameau in Nouveau Systeme (1726)"},"rameau-sharp":{frequencies:[261.6255653006,273.37431312998,292.50629850443,308.54983514133,327.03195662575,348.83408706747,365.63293356166,391.22137338448,409.42528169498,437.39882871549,464.33633889105,489.02679755603,523.2511306012],description:'Rameau dieses, see Pierre-Yves Asselin in "Musique et temperament"'},rameau:{frequencies:[261.6255653006,275.07757335026,292.50629850443,310.73186404381,327.03195662575,349.91920725962,366.77009798369,391.22137338448,412.61635981914,437.39882871549,468.01000025525,489.02679755603,523.2511306012],description:"Rameau's modified meantone temperament (1725)"},ramis:{frequencies:[261.6255653006,275.93321340298,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Monochord of Ramos de Pareja (Ramis de Pareia), Musica practica (1482). Carlos: Switched on Bach"},rapoport_8:{frequencies:[261.6255653006,297.86386736488,316.53463456122,336.37572681506,382.96782946913,406.97310157871,432.48307733364,492.38720931745,523.2511306012],description:"Paul Rapoport, cycle of 14/9 close to 8 out of 11-tET, XH 13, 1991"},rast_moha:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,427.47405410759,479.82340237272,523.2511306012],description:"Rast + Mohajira (Dudon) 4 + 3 + 3 Rast and 3 + 4 + 3 Mohajira tetrachords"},rat_dorenh:{frequencies:[261.6255653006,267.70988077271,274.08392555301,359.73515228832,411.12588832951,418.60090448096,426.35277308246,523.2511306012],description:"Rationalized Schlesinger's Dorian Harmonia in the enharmonic genus"},rat_hypodenh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,380.54627680087,389.39619021485,398.6675280771,523.2511306012],description:"1+1 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodenh2:{frequencies:[261.6255653006,270.06509966514,288.69027895239,348.83408706747,380.54627680087,389.39619021485,408.39112632289,523.2511306012],description:"1+2 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodenh3:{frequencies:[261.6255653006,270.06509966514,299.00064605783,348.83408706747,380.54627680087,389.39619021485,418.60090448096,523.2511306012],description:"1+3 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,380.54627680087,386.4008349055,392.4383479509,523.2511306012],description:"1+1 rationalized hexachromatic/hexenharmonic genus derived from K.S.'Bastard'"},rat_hypodhex2:{frequencies:[261.6255653006,267.19206668997,279.06726965397,348.83408706747,380.54627680087,386.4008349055,398.6675280771,523.2511306012],description:"1+2 rat. hexachromatic/hexenharmonic genus derived from K.S.'s 'Bastard' Hypodo"},rat_hypodhex3:{frequencies:[261.6255653006,267.19206668997,285.40970760065,348.83408706747,380.54627680087,386.4008349055,405.0976494977,523.2511306012],description:"1+3 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex4:{frequencies:[261.6255653006,267.19206668997,292.04714266113,348.83408706747,380.54627680087,386.4008349055,411.73859457144,523.2511306012],description:"1+4 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex5:{frequencies:[261.6255653006,267.19206668997,299.00064605783,348.83408706747,380.54627680087,386.4008349055,418.60090448096,523.2511306012],description:"1+5 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex6:{frequencies:[261.6255653006,273.00058987889,292.04714266113,348.83408706747,380.54627680087,392.4383479509,411.73859457144,523.2511306012],description:"2+3 rationalized hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' hypod"},rat_hypodpen:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,380.54627680087,387.59343007496,394.90651366128,523.2511306012],description:"1+1 rationalized pentachromatic/pentenharmonic genus derived from K.S.'s 'Bastar"},rat_hypodpen2:{frequencies:[261.6255653006,268.33391312882,282.83844897362,348.83408706747,380.54627680087,387.59343007496,402.50086969323,523.2511306012],description:"1+2 rationalized pentachromatic/pentenharmonic genus from K.S.'s 'Bastard' hyp"},rat_hypodpen3:{frequencies:[261.6255653006,268.33391312882,290.69507255622,348.83408706747,380.54627680087,387.59343007496,410.39304360878,523.2511306012],description:"1+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen4:{frequencies:[261.6255653006,268.33391312882,299.00064605783,348.83408706747,380.54627680087,387.59343007496,418.60090448096,523.2511306012],description:"1+4 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen5:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,380.54627680087,394.90651366128,410.39304360878,523.2511306012],description:"2+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen6:{frequencies:[261.6255653006,268.33391312882,299.00064605783,348.83408706747,380.54627680087,394.90651366128,418.60090448096,523.2511306012],description:"2+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodtri:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,380.54627680087,392.4383479509,405.0976494977,523.2511306012],description:"rationalized first (1+1) trichromatic genus derived from K.S.'s 'Bastard' hyp"},rat_hypodtri2:{frequencies:[261.6255653006,273.00058987889,299.00064605783,348.83408706747,380.54627680087,392.4383479509,418.60090448096,523.2511306012],description:"rationalized second (1+2) trichromatic genus derived from K.S.'s 'Bastard' hyp"},rat_hypolenh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,373.75080757229,402.50086969323,410.39304360878,418.60090448096,523.2511306012],description:"Rationalized Schlesinger's Hypolydian Harmonia in the enharmonic genus"},rat_hypopchrom:{frequencies:[261.6255653006,277.01530443593,294.32876096318,362.25078272391,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the chromatic genus"},rat_hypopenh:{frequencies:[261.6255653006,269.10058145205,277.01530443593,362.25078272391,392.4383479509,400.78810003496,409.50088481833,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the enharmonic genus"},rat_hypoppen:{frequencies:[261.6255653006,273.79419624481,294.32876096318,362.25078272391,392.4383479509,405.97070477679,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the pentachromatic genus"},rat_hypoptri:{frequencies:[261.6255653006,271.68808704293,282.55561052465,362.25078272391,392.4383479509,403.65087217807,415.52295665389,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in first trichromatic genus"},rat_hypoptri2:{frequencies:[261.6255653006,271.68808704293,294.32876096318,362.25078272391,392.4383479509,403.65087217807,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in second trichromatic genus"},rectsp10:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,340.11323489078,348.83408706747,359.73515228832,366.27579142084,373.75080757229,377.90359432309,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,523.2511306012],description:"Rectangle minimal beats spectrum of order 10"},rectsp10a:{frequencies:[261.6255653006,275.39533189537,277.01530443593,279.06726965397,281.75060878526,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.79478270659,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,523.2511306012],description:"Rectangle minimal beats spectrum of order 10 union with inversion"},rectsp11:{frequencies:[261.6255653006,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,451.89870370104,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,499.46698830115,523.2511306012],description:"Rectangle minimal beats spectrum of order 11"},rectsp12:{frequencies:[261.6255653006,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,404.33041910093,406.97310157871,411.12588832951,414.24047839262,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,451.89870370104,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,499.46698830115,501.44900015948,523.2511306012],description:"Rectangle minimal beats spectrum of order 12"},rectsp6:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Rectangle minimal beats spectrum of order 6 (=songlines)"},rectsp6a:{frequencies:[261.6255653006,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Rectangle minimal beats spectrum of order 6 union with inversion"},rectsp7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Rectangle minimal beats spectrum of order 7"},rectsp7a:{frequencies:[261.6255653006,281.75060878526,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,332.97799220076,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Rectangle minimal beats spectrum of order 7 union with inversion"},rectsp8:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Rectangle minimal beats spectrum of order 8"},rectsp8a:{frequencies:[261.6255653006,279.06726965397,281.75060878526,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,322.00069575458,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Rectangle minimal beats spectrum of order 8 union with inversion"},rectsp9:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,377.90359432309,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,523.2511306012],description:"Rectangle minimal beats spectrum of order 9"},rectsp9a:{frequencies:[261.6255653006,277.01530443593,279.06726965397,281.75060878526,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,523.2511306012],description:"Rectangle minimal beats spectrum of order 9 union with inversion"},redfield:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Redfield New Diatonic"},reinhard:{frequencies:[261.6255653006,277.01530443593,294.32876096318,309.81974838229,327.03195662575,348.83408706747,369.35373924791,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Reinhard 19-limit superparticular"},reinhard17:{frequencies:[261.6255653006,277.01530443593,277.97716313189,286.94416839421,292.40504357126,296.50897400735,307.79478270659,317.68818643644,338.57426097725,342.12573923925,369.35373924791,400.13321751856,404.33041910093,430.91269578922,444.76346101102,477.08191319521,492.47165233054,523.2511306012],description:`Reinhard's Harmonic-17 tuning for "Tresspass", 1998`},renteng1:{frequencies:[261.6255653006,285.40970760065,313.15788183285,391.64553850062,426.52890806662,523.2511306012],description:"Gamelan Renteng from Chileunyi (Tg. Sari). 1/1=330 Hz"},renteng2:{frequencies:[261.6255653006,294.32876096318,311.77048523333,396.07199334683,425.86840190162,523.2511306012],description:"Gamelan Renteng from Chikebo (Tg. Sari). 1/1=360 Hz"},renteng3:{frequencies:[261.6255653006,278.97471276149,312.97903559457,379.60005211265,409.44065404912,468.42785143649,523.2511306012],description:"Gamelan Renteng from Lebakwangi (Pameungpeuk). 1/1=377 Hz"},renteng4:{frequencies:[261.6255653006,296.45730715573,311.93819010347,397.0826586675,424.17395032031,523.2511306012],description:"Gamelan Renteng Bale` bandung from Kanoman (Cheribon). 1/1=338 Hz"},robot:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Dead Robot (see lattice)"},robot_live:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,376.74081403286,392.4383479509,418.60090448096,446.50763144636,490.54793493862,502.32108537715,523.2511306012],description:"Live Robot"},romieu:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Romieu's Monochord, Memoire theorique & pratique (1758)"},romieu_inv:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Romieu inverted, Pure (just) C minor in Wilkinson: Tuning In"},rosati_21:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Dante Rosati, JI guitar tuning"},rosati_21a:{frequencies:[261.6255653006,280.31310567921,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,488.36772189445,523.2511306012],description:"Alternative version of rosati_21 with more tetrads"},rousseau:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Rousseau's Monochord, Dictionnaire de musique (1768)"},rousseauw:{frequencies:[261.6255653006,276.81658657456,293.31219032635,311.14941643136,328.83652403056,349.33732971591,369.19521129916,391.76004912942,415.1051791302,439.20783490896,466.32059269121,492.40223109551,523.2511306012],description:"Jean-Jacques Rousseau's temperament (1768)"},rsr_12:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"RSR - 7 limit JI"},"rvf-1":{frequencies:[261.6255653006,272.14556467328,280.20095193414,292.09989854643,304.19649364034,313.29104303136,326.0297292803,340.21856244106,350.08660369014,364.11104988921,374.67209286633,390.97784457618,406.87534373272,419.03967825638,436.39317047385,454.92493848389,468.39051363853,487.22455955444,508.94280091833,523.2511306012],description:"D-A 695 cents, the increment is 0.25 cents, interval range 49.5 to 75.5"},"rvf-2":{frequencies:[261.6255653006,272.87751533003,278.75612859219,292.27711197479,305.71136588092,312.51386339015,326.29348693151,342.97106251658,349.87433921674,364.79522794952,372.13777859784,391.13596290168,408.38225803817,417.4934384938,436.65792486176,457.83788806384,467.7011114131,487.81592522452,513.9947144098,523.2511306012],description:"695 cents, 0.607 cents, 31-90 cents, C-A# is 7/4."},"rvf-3":{frequencies:[261.6255653006,272.98787180262,278.19314238431,292.29399505039,306.11778315204,312.24320803046,326.25579420701,343.90343447252,349.81371586656,364.81629995674,371.08598724028,391.15855645336,408.71263878415,416.89098941754,436.60748307387,458.73792719255,467.48503753613,487.78774868553,515.83876338215,523.2511306012],description:"694.737, 0.082, 25-97, the fifth E#-B# is 3/2."},majmin:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Malcolm & Marpurg 4 (Yamaha major & minor) mixed. Mersenne/Ban without D#"},major_clus:{frequencies:[261.6255653006,275.93321340298,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Chalmers' Major Mode Cluster"},major_wing:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Chalmers' Major Wing with 7 major and 6 minor triads"},malcolm:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Malcolm's Monochord (1721), and C major in Yamaha synths, Wilkinson: Tuning In"},malcolm2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,463.29527188648,490.54793493862,523.2511306012],description:"Malcolm 2"},malcolm_ap:{frequencies:[261.6255653006,279.47938236087,293.66476791741,313.97746652079,326.1838132033,349.22823143301,369.99442271164,391.99543598175,419.68935090103,436.0054062308,466.16376151809,489.82458627646,523.2511306012],description:"Best approximations in mix of all ETs from 12-23 to Malcolm's Monochord"},malcolm_me:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Malcolm's Mid-East"},malcolme:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,496.11959049595,523.2511306012],description:"Most equal interval permutation of Malcolm's Monochord"},malcolme2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Inverse most equal interval permutation of Malcolm's Monochord"},malcolms:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,369.99442271164,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Symmetrical version of Malcolm's Monochord and Albion scale"},malerbi:{frequencies:[261.6255653006,275.62199471997,292.73769384471,310.07474405997,327.54963108844,348.83408706747,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,489.99465727995,523.2511306012],description:"Luigi Malerbi's well-temperament nr.1 (1794) (nr.2 = Young)"},malgache:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,353.19451315581,367.91095120397,392.4383479509,413.89982010446,441.49314144476,459.88868900496,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malgache1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,310.07474405997,327.03195662575,353.19451315581,376.74081403286,392.4383479509,418.60090448096,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malgache2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,353.19451315581,367.91095120397,392.4383479509,408.78994578219,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malkauns:{frequencies:[261.6255653006,313.95067836072,348.83408706747,418.60090448096,465.11211608996,523.2511306012],description:"Raga Malkauns, inverse of prime_5"},mambuti:{frequencies:[261.6255653006,294.34406205295,331.72862856444,394.26624244126,466.16376151809,525.06772693396,590.39077962608,792.18471060794,999.82182774046],description:"African Mambuti Flutes (aerophone; vertical wooden; one note each)"},mandelbaum5:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,454.2110508691,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"Mandelbaum's 5-limit 19-tone scale, kleismic detempered circle of minor thirds"},mandelbaum7:{frequencies:[261.6255653006,272.52663052146,280.31310567921,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Mandelbaum's 7-limit 19-tone scale"},marimba1:{frequencies:[261.6255653006,284.4818984792,319.50463429683,342.83241505062,371.92288545737,411.72190027758,457.09800545097,500.48847822777,547.68138927822,612.97866327818,651.68292300609,728.11694797601,807.8963375694,903.69557412727,1013.19282257599,1069.7265813247,1225.95732655636,1303.36584601218],description:"Marimba of the Bakwese, SW Belgian Congo (Zaire). 1/1=140.5 Hz"},marimba2:{frequencies:[261.6255653006,279.11058864149,318.03161540472,343.03050002254,379.95718438213,421.58889248327,458.6849347701,519.33670373121,571.2689787911,613.68721319418,694.83488613378,761.23234162637,846.59395682498,953.56868388592,1049.52904699774,1145.8425062572,1271.3918647407,1389.66977226756],description:"Marimba of the Bakubu, S. Belgian Congo (Zaire). 1/1=141.5 Hz"},marimba3:{frequencies:[261.6255653006,296.73398952435,348.2210758395,420.13030572059,476.50902003141,518.73708886244,603.49292471609,696.44215167899,840.26061144117,953.01804006282,1037.47417772488],description:"Marimba from the Yakoma tribe, Zaire. 1/1=185.5 Hz"},marion:{frequencies:[261.6255653006,269.91407136119,278.46532473603,287.28749371714,296.38899008685,305.77900572762,315.46632790985,325.46074015958,335.7715953476,346.4093067252,357.3838291689,368.70624618807,380.38737313392,392.4383479509,411.71310103548,431.93429139282,453.14890242083,475.40520223986,498.75490298644,523.2511306012],description:"scale with two different ET step sizes"},marion1:{frequencies:[261.6255653006,262.79353657426,272.52663052146,280.31310567921,286.15296204753,294.32876096318,305.22982618403,311.45900631024,327.03195662575,336.37572681506,343.38355445704,350.39138209902,367.91095120397,373.75080757229,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,457.84473927605,467.18850946536,476.92160341255,490.54793493862,515.07533168556,523.2511306012],description:"Marion's 7-limit Scale # 1"},marion10:{frequencies:[261.6255653006,267.07609791103,272.52663052146,286.15296204753,290.69507255622,296.75121990114,305.22982618403,317.94773560837,327.03195662575,339.14425131559,356.10146388137,363.36884069528,370.93902487643,381.53728273004,400.61414686654,406.97310157871,408.78994578219,423.93031414449,436.04260883433,445.12682985172,457.84473927605,474.80195184183,476.92160341255,484.4917875937,508.71637697339,523.2511306012],description:"Marion's 7-limit Scale # 10"},marion15:{frequencies:[261.6255653006,269.10058145205,280.31310567921,288.32205155576,299.00064605783,313.95067836072,320.35783506196,327.03195662575,336.37572681506,353.19451315581,358.80077526939,360.4025644447,373.75080757229,384.42940207435,392.4383479509,403.65087217807,418.60090448096,420.46965851882,427.14378008261,448.50096908674,461.31528248922,470.92601754108,480.53675259294,504.56359022259,523.2511306012],description:"Marion's 7-limit Scale # 15"},marion19:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,294.32876096318,309.04519901133,313.95067836072,315.35224388912,327.03195662575,336.37572681506,343.38355445704,353.19451315581,366.27579142084,367.91095120397,373.75080757229,392.4383479509,403.65087217807,412.06026534844,420.46965851882,441.49314144476,457.84473927605,470.92601754108,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Marion's 7-limit Scale # 19"},marion26:{frequencies:[261.6255653006,271.31540105247,279.06726965397,284.8811711051,293.02063313667,303.87324917877,305.22982618403,310.07474405997,325.57848126297,334.88072358477,341.85740532612,348.83408706747,366.27579142084,379.84156147346,390.69417751556,406.97310157871,418.60090448096,427.32175665765,434.10464168396,455.80987376816,465.11211608996,474.80195184183,488.36772189445,512.78610798918,523.2511306012],description:"Marion's 7-limit Scale # 26"},marissing:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Peter van Marissing, just scale, Mens en Melodie, 1979"},"marpurg-1":{frequencies:[261.6255653006,276.86979852503,294.32876096318,311.47852302926,329.62755691287,348.83408706747,370.83100115625,392.4383479509,415.30469757995,439.50340943686,467.21778431035,494.44133512215,523.2511306012],description:"Other temperament by Marpurg, 3 fifths 1/3 Pyth. comma flat"},"marpurg-t1":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Marpurg's temperament nr.1, Kirnbergersche Temperatur (1766)"},"marpurg-t11":{frequencies:[261.6255653006,278.12325072816,294.32876096318,311.47852302926,331.11985608357,348.83408706747,371.66947115233,392.4383479509,416.24372513446,441.49314144476,466.16376151809,496.67978412536,523.2511306012],description:"Marpurg's temperament nr.11, 6 tempered fifths"},"marpurg-t12":{frequencies:[261.6255653006,279.06706247425,294.66131982972,310.42509491746,330.74614861362,349.22823143301,372.08941681833,392.88175996935,418.60059350213,441.99197952365,465.63764214343,496.11922267243,523.2511306012],description:"Marpurg's temperament nr.12, 4 tempered fifths"},"marpurg-t2":{frequencies:[261.6255653006,278.75210322491,294.32876096318,313.59611581451,331.11985608357,348.83408706747,371.66947115233,392.4383479509,418.12815462835,441.49314144476,470.39417348663,495.55929511749,523.2511306012],description:"Marpurg's temperament nr.2, 2 tempered fifths, Neue Methode (1790)"},"marpurg-t3":{frequencies:[261.6255653006,276.55731914056,294.32876096318,311.12698372208,331.11985608357,348.83408706747,368.74309237173,392.4383479509,414.83597850347,441.49314144476,465.11211608996,491.65745674141,523.2511306012],description:"Marpurg's temperament nr.3, 2 tempered fifths"},"marpurg-t4":{frequencies:[261.6255653006,276.86979852503,294.32876096318,310.07474405997,331.11985608357,348.83408706747,369.15973155124,392.4383479509,415.30469757995,441.49314144476,465.11211608996,492.21297564769,523.2511306012],description:"Marpurg's temperament nr.4, 2 tempered fifths"},"marpurg-t5":{frequencies:[261.6255653006,277.80935667884,294.32876096318,312.53552595124,331.11985608357,348.83408706747,370.41247575694,392.4383479509,416.71403480995,441.49314144476,468.80328869252,493.88330125613,523.2511306012],description:"Marpurg's temperament nr.5, 2 tempered fifths"},"marpurg-t7":{frequencies:[261.6255653006,276.86979852503,293.00227310437,310.07474405997,329.62755691287,348.83408706747,369.15973155124,390.66969766777,415.30469757995,439.50340943686,465.11211608996,492.21297564769,523.2511306012],description:"Marpurg's temperament nr.7, 3 tempered fifths"},"marpurg-t8":{frequencies:[261.6255653006,277.49581689502,293.33333347996,311.12698372208,329.99999983505,348.83408706747,369.99442271164,391.11111150212,414.83597850347,440,466.69047534984,493.32589719545,523.2511306012],description:"Marpurg's temperament nr.8, 4 tempered fifths"},"marpurg-t9":{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,350.01785633742,371.24999944327,392.4383479509,416.24372513446,441.49314144476,468.27419030811,496.67978412536,523.2511306012],description:"Marpurg's temperament nr.9, 4 tempered fifths"},marpurg:{frequencies:[261.6255653006,277.49581689502,293.83071040301,311.12698372208,329.99999983505,349.42557141756,369.99442271164,392.4383479509,415.53937569366,440,466.69047534984,494.16238213869,523.2511306012],description:"Marpurg, Versuch ueber die musikalische Temperatur (1776), p. 153"},marpurg1:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Marpurg's Monochord no.1 (1776)"},marpurg3:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Marpurg 3"},marpurg4:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Marpurg 4, also Yamaha Pure Minor"},marsh:{frequencies:[261.6255653006,275.50659558095,293.15632631094,311.93674864629,328.48713220126,349.53094576004,368.07595926604,391.65594491223,412.43597848639,438.85779226656,466.97226207056,491.74834273545,523.2511306012],description:"John Marsh's meantone temperament (1809)"},marsh2:{frequencies:[261.6255653006,277.22760066578,293.66431501254,311.21660561883,329.70790803338,349.18845812715,369.99117208793,391.90679138833,415.30984563838,439.96491544382,466.29335337935,494.03030700757,523.2511306012],description:"John Marsh's quasi-equal temperament (1840)"},mavila12:{frequencies:[261.6255653006,256.98292999787,287.53945699376,321.72930260925,316.02010771872,353.59644178868,347.32175377489,388.62000642034,381.72381344999,427.11263899087,477.89842030218,469.41794908116,525.2340355968],description:"A 12-note mavila scale (for warping meantone-based music)"},mavila9:{frequencies:[261.6255653006,287.53945699376,316.02010771872,321.72930260925,353.59644178868,388.62000642034,427.11263899087,434.82882549415,477.89842030218,525.2340355968],description:"9-note scale of mavila temperament (TOP tuning)"},mavlim1:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,465.11211608996,523.2511306012],description:"First 27/25&135/128 scale"},mbira_banda:{frequencies:[261.6255653006,291.13134764929,327.53979283172,368.50142299854,404.88256627495,443.57258128492,480.10063929961,555.00605988575],description:"Mubayiwa Bandambira's tuning of keys R2-R9 from Berliner: The soul of mbira."},mbira_banda2:{frequencies:[261.6255653006,321.16993719469,360.29289210659,380.8360868427,422.32008370967,461.34206956593,587.32953583482,513.96502576833,761.67217368541,711.48673390068,849.04255025658,936.10488897708,1046.50286568598,633.49659152295,1055.60951665979,1174.65975017952,1321.5609185619,1486.83332446121,1633.62433483289,1789.73120457747,1937.11498804338,2239.34414798534],description:"Mubayiwa Bandambira's Mbira DzaVadzimu tuning B1=114 Hz"},mbira_gondo:{frequencies:[261.6255653006,315.28798447451,345.21700307457,379.51849407657,422.56409582244,461.07566488503,564.05539604512,516.94239487354,778.57545143809,697.24717811406,842.69088701475,926.42243447898,1029.11884353824,628.3943418294,1040.47545270591,1153.813137635,1308.64724593201,1415.59600512246,1572.51770682594,1715.83353717518,1883.05646656025,2103.91477035149],description:"John Gondo's Mbira DzaVadzimu tuning B1=122 Hz"},mbira_kunaka:{frequencies:[261.6255653006,292.98704147282,325.27731021818,350.44066402496,386.59871897734,434.19311733646,479.82340237272,507.76825077597],description:"John Kunaka's mbira tuning of keys R2-R9"},mbira_kunaka2:{frequencies:[261.6255653006,340.26769547546,358.83903996308,405.11650317313,448.98591596033,490.75518955849,622.61349925697,541.70354187177,817.28364083393,724.3415782324,907.35693646861,997.5144154576,1094.73088724383,673.88551872153,1085.91380691742,1216.08403680913,1350.10935126711,1454.55340013417,1604.63250673428,1802.17976955899,1991.5747030301,2107.56373750553],description:"John Kunaka's Mbira DzaVadzimu tuning B1=113 Hz"},mbira_mude:{frequencies:[261.6255653006,289.28740724512,309.15639683494,364.68988616898,372.56793743951,408.17001145418,507.1819925915,459.74594725879,689.63684605432,610.50517472746,760.79276355093,824.39562982862,887.65774573556,562.75365576207,888.68380073365,1015.53708814899,1126.80895076279,1206.28956516212,1365.00817887311,1507.58874420517,1666.02447560859,1935.99638964471],description:"Hakurotwi Mude's Mbira DzaVadzimu tuning B1=132 Hz"},mbira_mujuru:{frequencies:[261.6255653006,281.37682788104,301.05008478933,329.43721154897,394.9500460767,419.64523240241,533.01280425363,488.77489658044,700.88132804992,602.10016957865,765.19999119503,809.29752893,942.6160133907,577.57308891646,937.72844143307,1046.50286568598,1145.18149427149,1243.7900049313,1411.51350174391,1540.15576038017,1658.34356815416,1904.9365287586],description:"Ephat Mujuru's Mbira DzaVadzimu tuning, B1=106 Hz"},mbira_zimb:{frequencies:[261.6255653006,276.86260193655,305.95868600104,343.62544191138,379.08031027329,408.40584780369,453.41648894489,507.76825077597],description:"Shona mbira scale"},mboko_bow:{frequencies:[261.6255653006,347.61817721989,375.37611551499],description:"African Mboko Mouth Bow (chordophone, single string, plucked)"},mboko_zither:{frequencies:[261.6255653006,294.68429813772,319.3201344739,354.92237405774,396.55020354877,418.67676528474,472.67116512585,513.07516347663],description:"African Mboko Zither (chordophone; idiochordic palm fibre, plucked)"},mcclain:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,331.11985608357,367.91095120397,392.4383479509,408.78994578219,441.49314144476,490.54793493862,510.98743222773,523.2511306012],description:"McClain's 12-tone scale, see page 119 of The Myth of Invariance"},mcclain_18:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,319.36714514233,327.03195662575,331.11985608357,344.91651675372,367.91095120397,383.2405741708,392.4383479509,408.78994578219,413.89982010446,441.49314144476,459.88868900496,490.54793493862,496.67978412536,510.98743222773,523.2511306012],description:"McClain's 18-tone scale, see page 143 of The Myth of Invariance"},mcclain_8:{frequencies:[261.6255653006,294.32876096318,327.03195662575,367.91095120397,392.4383479509,408.78994578219,441.49314144476,490.54793493862,523.2511306012],description:"McClain's 8-tone scale, see page 51 of The Myth of Invariance"},mccoskey_22:{frequencies:[261.6255653006,270.06509966514,279.06726965397,287.78812183066,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,382.37582620857,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,506.89953276991,523.2511306012],description:"31-limit rational interpretation of 22-tET, Marion McCoskey"},mclaren_bar:{frequencies:[261.6255653006,281.77400528964,292.14326370913,304.76756192248,325.50548568708,328.66136118639,353.45752508165,360.67039921732,379.1552038283,397.63971531932,405.75513620619,436.411067852,476.98680497297,521.16951219839],description:"Metal bar scale. see McLaren, Xenharmonicon 15, pp.31-33"},mclaren_cps:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,306.59245933664,327.03195662575,343.38355445704,367.91095120397,392.4383479509,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"2)12 [1,2,3,4,5,6,8,9,10,12,14,15] a degenerate CPS"},mclaren_harm:{frequencies:[261.6255653006,279.06726965397,299.00064605783,304.4370214407,307.2300216374,348.83408706747,380.54627680087,389.39619021485,393.97732186443,398.6675280771,465.11211608996,523.2511306012],description:'from "Wilson part 9", claimed to be Schlesingers Dorian Enharmonic, prov. unkn'},mclaren_rath1:{frequencies:[261.6255653006,279.06726965397,299.00064605783,334.88072358477,341.71502406609,348.83408706747,372.08969287196,380.54627680087,389.39619021485,398.6675280771,492.47165233054,507.3950357345,523.2511306012],description:"McLaren Rat H1"},mclaren_rath2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,334.88072358477,341.71502406609,348.83408706747,380.54627680087,389.39619021485,398.6675280771,440.63253103259,452.54151835779,465.11211608996,523.2511306012],description:"McLaren Rat H2"},mean10:{frequencies:[261.6255653006,272.18829429226,292.14313377277,313.56091500001,326.220453695,350.13653284039,364.27275363262,390.97854693193,406.76370320307,436.58461973079,468.59178605305,487.51045723915,523.2511306012],description:"3/10-comma meantone scale"},mean11:{frequencies:[261.6255653006,272.83457350033,292.34115464648,313.24237654315,326.6628419965,350.01792709981,365.01399145768,391.11103243201,407.86767761879,437.02858581415,468.2743796482,488.33699124025,523.2511306012],description:"3/11-comma meantone scale. A.J. Ellis no. 10"},mean11ls_19:{frequencies:[261.6255653006,272.93479580544,280.25721516838,292.37183188538,305.01012622427,313.1930753928,326.73140514978,340.85495140859,349.99956372811,365.12891753666,374.92476290643,391.13155279262,408.03891236124,418.98596425085,437.09738047696,455.99169236578,468.2252457596,488.46511500326,509.57988860269,523.2511306012],description:"Least squares appr. to 3/2, 5/4, 7/6, 15/14 and 11/8, Petr Par\xEF\xBF\xBDzek"},mean13:{frequencies:[261.6255653006,273.83184954717,292.64606374809,312.75295135888,327.34460995374,349.8355370417,366.15730590163,391.31494185909,409.57195510156,437.7124891801,467.78648270341,489.61131479929,523.2511306012],description:"3/13-comma meantone scale"},mean14:{frequencies:[261.6255653006,274.22463192287,292.76593693997,312.56088569186,327.61283758281,349.76390952171,366.60744235102,391.39507854003,410.24343789088,437.98145930734,467.59494724206,490.11285326462,523.2511306012],description:"3/14-comma meantone scale (Giordano Riccati, 1762)"},mean14_15:{frequencies:[261.6255653006,274.22463192287,279.31500250577,292.76593693997,306.86462618694,312.56088569186,327.61283758281,349.76390952171,366.60744235102,391.39507854003,410.24343789088,417.8586951835,437.98145930734,467.59494724206,490.11285326462,523.2511306012],description:"15 of 3/14-comma meantone scale"},mean14_19:{frequencies:[261.6255653006,274.22463192287,279.31500250577,292.76593693997,306.86462618694,312.56088569186,327.61283758281,343.38964426558,349.76390952171,366.60744235102,373.41269440635,391.39507854003,410.24343789088,417.8586951835,437.98145930734,459.07327263526,467.59494724206,490.11285326462,513.71515101261,523.2511306012],description:"19 of 3/14-comma meantone scale"},mean14_7:{frequencies:[261.6255653006,292.76593693997,327.61283758281,349.76390952171,391.39507854003,437.98145930734,490.11285326462,523.2511306012],description:"Least squares appr. of 5L+2S to Ptolemy's Intense Diatonic scale"},mean14a:{frequencies:[261.6255653006,274.24690838881,292.77273178776,312.55000460003,327.62804498858,349.75985073129,366.63296888199,391.39962048672,410.28152481852,437.9967071602,467.58409501387,490.1412915133,523.2511306012],description:'fifth of sqrt(5/2)-1 octave "recursive" meantone, Paul Hahn'},mean16:{frequencies:[261.6255653006,274.864106667,292.9608347655,312.24903186879,328.04917632434,349.64754658398,367.34009701877,391.52533508436,411.33694767869,438.41888642025,467.28387071703,490.92894854125,523.2511306012],description:"3/16-comma meantone scale"},mean17:{frequencies:[261.6255653006,273.72412433093,292.61316553779,312.80569569783,327.2710181906,349.85520131118,366.03383354947,391.29294726693,409.38781813791,437.63868343995,467.83907547741,489.47372981579,523.2511306012],description:"4/17-comma meantone scale, least squares error of 5/4 and 3/2"},mean17_17:{frequencies:[261.6255653006,273.72412433093,279.67971414776,292.61316553779,306.14471057197,312.80569569783,327.2710181906,349.85520131118,366.03383354947,373.99786656393,391.29294726693,409.38781813791,418.29512920081,437.63868343995,457.8767570375,467.83907547741,489.47372981579,523.2511306012],description:"4/17-comma meantone scale with split C#/Db, D#/Eb, F#/Gb, G#/Ab and A#/Bb"},mean17_19:{frequencies:[261.6255653006,273.72412433093,279.67971414776,292.61316553779,306.14471057197,312.80569569783,327.2710181906,342.40527209253,349.85520131118,366.03383354947,373.99786656393,391.29294726693,409.38781813791,418.29512920081,437.63868343995,457.8767570375,467.83907547741,489.47372981579,512.10885267608,523.2511306012],description:"4/17-comma meantone scale, least squares error of 5/4 and 3/2"},mean18:{frequencies:[261.6255653006,272.71477685134,292.30447317753,313.30134186202,326.58087306932,350.03988839382,364.87661266094,391.0864943589,407.66301227525,436.94633423564,468.33314368944,488.18382342185,523.2511306012],description:"5/18-comma meantone scale (Smith). 3/2 and 5/3 eq. beat. A.J. Ellis no. 9"},mean19:{frequencies:[261.6255653006,273.06170311607,292.41066686775,313.13068664042,326.81820677503,349.97632128221,365.27443420834,391.15752841841,408.25574814862,437.18446858874,468.16306089008,488.62733218513,523.2511306012],description:"5/19-comma meantone scale, fifths beats three times third. A.J. Ellis no. 11"},mean19r:{frequencies:[261.6255653006,273.04332227389,292.40504357126,313.13971948727,326.80563693258,349.97968716666,365.25335892465,391.15376651139,408.22434232755,437.17185753972,468.17206422213,488.60384173026,523.2511306012],description:"Approximate 5/19-comma meantone with 19/17 tone, Petr Parizek, 2002"},mean23:{frequencies:[261.6255653006,274.15058593695,292.74334833321,312.59706303545,327.56228503462,349.77740346966,366.52259116395,391.37997903742,410.11684180717,437.93077103284,467.63102771476,490.01832104213,523.2511306012],description:"5/23-comma meantone scale, A.J. Ellis no. 4"},mean23six:{frequencies:[261.6255653006,273.11604376732,292.42729246507,313.10398392891,326.85537164611,349.96637341293,365.33674088125,391.16864715511,408.34860251967,437.22175336101,468.13644404983,488.69678846289,523.2511306012],description:"6/23-comma meantone scale"},mean25:{frequencies:[261.6255653006,272.66208311698,292.28833573479,313.32728859832,326.54481265413,350.04955123355,364.81618195011,391.07569872695,407.57299290994,436.91015056532,468.35900068872,488.11644468937,523.2511306012],description:"7/25-comma meantone scale, least square weights 3/2:0 5/4:1 6/5:1"},mean26:{frequencies:[261.6255653006,272.91754119498,292.36655103694,313.20156187458,326.7196004604,350.00272362315,365.10913291207,391.12802157824,408.00943064927,437.08553692506,468.23370304224,488.44305713046,523.2511306012],description:"7/26-comma meantone scale (Woolhouse 1835). Almost equal to meaneb742"},mean26_21:{frequencies:[261.6255653006,272.91754592428,280.26986822267,292.36655272572,304.98534036063,313.20156006546,326.71960423481,335.52133892506,340.8210986211,350.00272362315,365.10913712997,374.9450750913,391.12802157824,408.00943771953,419.00109777107,437.08553944976,455.95052092314,468.23370033762,488.44306277317,501.60158217053,509.52467838008,523.2511306012],description:"21 of 7/26-comma meantone scale (Woolhouse 1835)"},mean27:{frequencies:[261.6255653006,273.15429014256,292.43899158768,313.08519355925,326.88152513903,349.9593710588,365.38059276675,391.17647406766,408.41395592075,437.24799400905,468.11771609009,488.74567091648,523.2511306012],description:"7/27-comma meantone scale, least square weights 3/2:2 5/4:1 6/5:1"},mean29:{frequencies:[261.6255653006,273.57932033947,292.56893127899,312.87664195194,327.1720749345,349.88164908166,365.86785468743,391.26336919078,409.14031659695,437.53944680455,467.90980928584,489.28875967044,523.2511306012],description:"7/29-comma meantone scale, least square weights 3/2:4 5/4:1 6/5:1"},mean2sev:{frequencies:[261.6255653006,272.52663052146,292.24684137387,313.39402123097,326.45210604021,350.07440004945,364.66083404534,391.04793957621,407.34160211012,436.81711699543,468.42550014967,487.94322738789,523.2511306012],description:"2/7-comma meantone scale. Zarlino's temperament (1558). See also meaneb371"},mean2sev_15:{frequencies:[261.6255653006,272.52663052146,280.55692507618,292.24689370448,304.42377254813,313.39402847191,326.45203249943,350.07447082328,364.66081719444,391.04786051887,407.34165622677,419.34452602299,436.81710690282,468.42541627199,487.94330348661,523.2511306012],description:"15 of 2/7-comma meantone scale"},mean2sev_19:{frequencies:[261.6255653006,272.52663052146,280.55692507618,292.24689370448,304.42377254813,313.39402847191,326.45203249943,340.0543130973,350.07447082328,364.66081719444,375.40603866065,391.04786051887,407.34165622677,419.34452602299,436.81710690282,455.01770749831,468.42541627199,487.94330348661,508.27414914183,523.2511306012],description:"19 of 2/7-comma meantone scale"},mean2sev_31:{frequencies:[261.6255653006,264.72620698393,272.52663052146,280.55692507618,283.88190679319,292.24689370448,300.8583415146,304.42377254813,313.39402847191,317.10820138491,326.45203249943,336.07138073182,340.0543130973,350.07447082328,354.22315547012,364.66081719444,375.40603866065,379.85514366424,391.04786051887,395.6823437549,407.34165622677,419.34452602299,424.31412061457,436.81710690282,449.68851049921,455.01770749831,468.42541627199,473.97693555703,487.94330348661,502.32108537715,508.27414914183,523.2511306012],description:"31 of 2/7-comma meantone scale"},mean2seveb:{frequencies:[261.6255653006,274.26749945295,292.59076110537,312.44357330613,327.42660602987,349.76102048238,366.6169314736,391.04794861134,410.01084835752,437.49574139527,467.27496094916,489.74950989452,523.2511306012],description:'"2/7-comma" meantone with equal beating fifths. A.J. Ellis no. 8'},mean2sevr:{frequencies:[261.6255653006,272.52663052146,292.24289114742,313.39346366789,326.45152465405,350.07234194042,364.65868952128,391.04531121882,407.33886585294,436.81651812993,468.41855142334,487.93599106598,523.2511306012],description:"Rational approximation to 2/7-comma meantone, 1/1 = 262.9333"},mean9:{frequencies:[261.6255653006,274.03547926168,292.70827332867,306.59245933664,327.48360691354,349.79835961887,366.39065074918,391.35653176554,409.92008797511,437.85206746661,467.68706357679,489.87127257422,523.2511306012],description:"2/9-comma meantone scale, Lemme Rossi, Sistema musico (1666)"},mean94:{frequencies:[261.6255653006,268.79084150406,291.09659021292,315.25339315665,323.88740273232,350.76536842075,360.37196303797,390.27761906502,400.96635635801,434.24075936811,470.27645613296,483.15616342113,523.2511306012],description:"4/9-comma meantone scale"},mean9_15:{frequencies:[261.6255653006,274.03547926168,279.45274708261,292.70827332867,306.59245933664,312.65343270838,327.48360691354,349.79835961887,366.39065074918,391.35653176554,409.92008797511,418.0235894185,437.85206746661,467.68706357679,489.87127257422,523.2511306012],description:"15 of 2/9-comma meantone scale"},mean9_19:{frequencies:[261.6255653006,274.03547926168,279.45274708261,292.70827332867,306.59245933664,312.65343270838,327.48360691354,343.0174228875,349.79835961887,366.39065074918,373.63364091796,391.35653176554,409.92008797511,418.0235894185,437.85206746661,458.62082212371,467.68706357679,489.87127257422,513.10776453427,523.2511306012],description:"19 of 2/9-comma meantone scale"},mean9_31:{frequencies:[261.6255653006,268.72322665693,274.03547926168,279.45274708261,287.03404351137,292.70827332867,298.49467410529,306.59245933664,312.65343270838,321.13524775754,327.48360691354,333.95746354843,343.0174228875,349.79835961887,359.28803828513,366.39065074918,373.63364091796,383.76997851754,391.35653176554,401.97367512027,409.92008797511,418.0235894185,429.36393755067,437.85181455341,446.50763144636,458.62082212371,467.68706357679,480.3749841712,489.87127257422,499.55528826613,513.10776453427,523.2511306012],description:"31 of 2/9-comma meantone scale"},meaneb1071:{frequencies:[261.6255653006,273.45959631537,292.5323192343,305.76452283047,327.09038632535,349.9034421565,365.73073124967,391.23900009103,408.93579686983,437.45744778434,457.24482979639,489.13584427285,523.2511306012],description:"Equal beating 7/4 = 3/2 same."},meaneb1071a:{frequencies:[261.6255653006,273.94115519525,292.67936294368,306.45675889694,327.41929816594,349.81553441422,366.28252094772,391.33731744348,409.75863641311,437.78732645584,458.39517452459,489.75074612717,523.2511306012],description:"Equal beating 7/4 = 3/2 opposite."},meaneb341:{frequencies:[261.6255653006,272.43747957464,292.21954801903,313.43802026715,326.39113133433,350.09085029289,364.55867287416,391.02956482064,407.18921698842,436.75579855003,468.46925117002,487.82916876009,523.2511306012],description:"Equal beating 6/5 = 5/4 same. Almost 4/15 Pyth. comma"},meaneb371:{frequencies:[261.6255653006,272.52577151658,292.24657972098,313.39444482621,326.45151771442,350.07455777399,364.65985037488,391.0477633913,407.34013625771,436.81652657765,468.42591953828,487.94213100406,523.2511306012],description:"Equal beating 6/5 = 3/2 same. Practically 2/7-comma (Zarlino)"},meaneb371a:{frequencies:[261.6255653006,269.83862220337,291.42039690163,314.72828847419,324.6081803116,350.57044084899,361.57569171511,390.49462500658,421.72650333798,434.96526321606,469.75391665508,484.50062400899,523.2511306012],description:"Equal beating 6/5 = 3/2 opposite. Almost 2/5-comma"},meaneb381:{frequencies:[261.6255653006,275.92799893014,293.28437056932,311.73248946737,328.77414682856,349.45463702831,368.55847249214,391.74146894101,416.38271791821,439.14534885862,466.76838786866,492.28548089506,523.2511306012],description:"Equal beating 6/5 = 8/5 same. Almost 1/7-comma"},meaneb451:{frequencies:[261.6255653006,274.36682021224,292.8092284668,312.49148032108,327.70992276921,349.73795145032,366.77030983847,391.42412846541,410.48661799548,438.07873640926,467.5258138363,490.29448158868,523.2511306012],description:"Equal beating 5/4 = 4/3 same, 5/24 comma meantone. A.J. Ellis no. 6"},meaneb471:{frequencies:[261.6255653006,272.3284467197,292.18612898941,313.49179640307,326.31648163178,350.11087068539,364.43361138613,391.00720457415,407.00321492741,436.68087780422,468.52283272721,487.68970701588,523.2511306012],description:"Equal beating 5/4 = 3/2 same. Almost 5/17-comma"},meaneb471a:{frequencies:[261.6255653006,274.14912748586,292.7429036132,312.59777626068,327.56128980523,349.7776701617,366.52092076205,391.37968062521,410.11434970273,437.92977184699,467.63173811584,490.01645860508,523.2511306012],description:"Equal beating 5/4 = 3/2 opposite. Almost 1/5 Pyth. Gottfried Keller (1707)"},meaneb471b:{frequencies:[261.6255653006,272.31089540773,292.18072491748,313.50040506268,326.30440921209,350.11400731728,364.41338872146,391.00370158472,406.97310157871,436.668886633,468.53149836075,487.66729542944,523.2511306012],description:"21/109-comma meantone with 9/7 major thirds, almost equal beating 5/4 and 3/2"},meaneb472:{frequencies:[261.6255653006,270.83769079127,291.72826852127,314.23020335825,325.29440843388,350.38540704884,362.72286472858,390.7008399429,404.45761497645,435.65472502222,469.25816799182,485.78126704788,523.2511306012],description:"Beating of 5/4 = twice 3/2 same. Almost 5/14-comma"},meaneb472_19:{frequencies:[261.6255653006,270.8378472333,281.80541953687,291.72826852127,302.00051792575,314.23002185182,325.29459633135,336.74877333101,350.38540704884,362.72307424558,377.41153667283,390.7008399429,404.45808222448,420.83660282593,435.65497666633,450.99513069838,469.25816799182,485.78154764623,502.88674365212,523.2511306012],description:"Beating of 5/4 = twice 3/2 same, 19 tones"},meaneb472a:{frequencies:[261.6255653006,274.74648495017,292.92493846141,312.30633997417,327.96897748493,349.66886860972,367.20529370531,391.50146074488,411.13561642091,438.33843670622,467.34113372786,490.7787182415,523.2511306012],description:"Beating of 5/4 = twice 3/2 opposite. Almost 3/17-comma"},meaneb591:{frequencies:[261.6255653006,273.06215106005,292.41085266114,313.13038820279,326.81843330822,349.97621009739,365.27491737756,391.15765268623,418.87439289145,437.18488525956,468.16276342643,488.62782610925,523.2511306012],description:"Equal beating 4/3 = 5/3 same."},meaneb732:{frequencies:[261.6255653006,272.00548436883,292.08705896894,313.65121264041,326.09523618955,350.1701397801,364.06303937825,390.94102347986,406.4514961644,436.45893055948,468.68174619223,487.27655969467,523.2511306012],description:"Beating of 3/2 = twice 6/5 same. Almost 4/13-comma"},meaneb732_19:{frequencies:[261.6255653006,272.00553778846,280.94077405591,292.08707584055,303.67560621907,313.65118727632,326.09527197795,339.03307470248,350.17012966679,364.06310036266,376.02237826726,390.94103477068,406.45158772689,419.80330474394,436.45896585468,453.77543893118,468.68171912011,487.27662724555,506.60928680033,523.2511306012],description:"Beating of 3/2 = twice 6/5 same, 19 tones"},meaneb732a:{frequencies:[261.6255653006,270.68848625127,291.6822692306,314.3042667302,325.1920204578,350.41293324447,362.5515203525,390.67014898736,404.20304509584,435.55206635241,469.33217160858,485.59021720901,523.2511306012],description:"Beating of 3/2 = twice 6/5 opposite. Almost 1/3 Pyth. comma"},meaneb742:{frequencies:[261.6255653006,272.89343543801,292.35917287023,313.21341909223,326.70311046689,350.00714105462,365.08148980199,391.12308516115,407.96824372307,437.06899032128,468.24551969328,488.41224041213,523.2511306012],description:"Beating of 3/2 = twice 5/4 same."},meaneb742a:{frequencies:[261.6255653006,273.78850133971,292.63287562287,312.77409391616,327.31510698093,349.84341999552,366.10759179471,391.30612443552,409.49789158088,437.68290117536,467.80756449982,489.55615570194,523.2511306012],description:"Beating of 3/2 = twice 5/4 opposite. Almost 3/13-comma, 3/14 Pyth. comma"},meaneb781:{frequencies:[261.6255653006,273.88372205101,292.66195046404,312.72748571568,327.38015167213,349.82604176358,366.21672762941,391.32556326448,418.15568884829,437.74813244966,467.76108961433,489.67748280644,523.2511306012],description:"Equal beating 3/2 = 8/5 same."},meaneb891:{frequencies:[261.6255653006,272.7426257605,292.31307409948,313.28760473417,326.59990179186,350.03483972175,364.90860969063,391.092135133,419.1546662649,436.96549358815,468.31936361194,488.21959184068,523.2511306012],description:"Equal beating 8/5 = 5/3 same. Almost 5/18-comma"},meaneight:{frequencies:[261.6255653006,276.08926119362,293.33333347996,311.65444160511,328.88393162803,349.42547049952,368.74309237173,391.77416758435,413.43299207996,439.25532436715,466.69047534984,492.49097043477,523.2511306012],description:"1/8 Pyth. comma meantone scale"},meanfifth:{frequencies:[261.6255653006,274.56546814423,292.86978442859,312.39456569414,327.84548435462,349.70179235499,366.99791252626,391.46460164194,410.82629477826,438.21464222188,467.42914467878,490.54793493862,523.2511306012],description:"1/5-comma meantone scale (Verheijen)"},meanfifth2:{frequencies:[261.6255653006,279.06726965397,292.86986732103,312.39452419152,327.84547867349,349.70184487387,366.99801003998,391.46454285105,417.56218018201,438.2147004401,467.42901237995,490.54793493862,523.2511306012],description:"1/5-comma meantone by John Holden (1770)"},meanfifth_19:{frequencies:[261.6255653006,274.56546814423,279.06726965397,292.86978442859,307.35519222791,312.39456569414,327.84548435462,344.06059968708,349.70179235499,366.99791252626,373.01539917593,391.46460164194,410.82629477826,417.56217294621,438.21464222188,459.88868900496,467.42914467878,490.54793493862,514.81033759999,523.2511306012],description:"19 of 1/5-comma meantone scale"},meanfifth_43:{frequencies:[261.6255653006,265.91515911649,270.13633240739,274.56546814423,279.06726965397,283.49717461664,288.14537375445,292.86978442859,297.67175429757,302.39711110066,307.35519222791,312.39456569414,317.35355938713,322.556865357,327.84548435462,333.22081516619,338.51040756711,344.06059968708,349.70179235499,355.43547760922,361.07770857381,366.99791252626,373.01539917593,378.93660287884,385.14971481892,391.46460164194,397.88302689184,404.19904307077,410.82629477826,417.56217294621,424.19061149626,431.14564594215,438.21464222188,445.39957775044,452.46991103879,459.88868900496,467.42914467878,475.09307907327,482.63477102771,490.54793493862,498.59100550039,506.50570672499,514.81033759999,523.2511306012],description:"Complete 1/5-comma meantone scale"},meanfiftheb:{frequencies:[261.6255653006,275.80023422757,293.11157312801,311.73372470712,328.53333183909,349.48325286892,368.3828117434,391.46459711956,412.7266004334,438.69360944226,466.62683936965,491.82624824197,523.2511306012],description:'"1/5-comma" meantone with equal beating fifths'},meangold:{frequencies:[261.6255653006,272.97231199113,292.38331430233,313.17462880702,326.75706743029,349.99269211627,365.17193449866,391.13923210785,408.10300926149,437.12312635029,468.20685771475,488.51307131873,523.2511306012],description:"Meantone scale with Blackwood's R = phi, and diat./chrom. ST = phi, ~4/15-comma"},meanhalf:{frequencies:[261.6255653006,267.49544939623,290.69507255622,315.90677595028,322.99452506247,351.00752840096,358.88280562497,390.00836666198,398.75867291663,433.34262909025,470.92601754108,481.49180950675,523.2511306012],description:"1/2-comma meantone scale"},meanhar2:{frequencies:[261.6255653006,273.08769296879,292.41861893027,305.22982618403,326.83598255713,349.97156260351,365.30423365264,391.16284711627,408.30015740759,437.20230245522,456.35665612784,488.66055322307,523.2511306012],description:"1/9-Harrison's comma meantone scale"},meanhar3:{frequencies:[261.6255653006,274.22153683641,292.76499331753,306.86017365004,327.61072570921,343.38355445704,366.60389537541,391.39444778107,410.23814647641,437.9793418028,459.06587176894,490.10890120058,523.2511306012],description:"1/11-Harrison's comma meantone scale"},meanharris:{frequencies:[261.6255653006,273.71072489962,292.60907359238,306.12544311476,327.26186315247,349.85764856047,366.01847563765,391.29021017831,409.36491649663,437.62950220286,457.84473927605,489.45661357347,523.2511306012],description:"1/10-Harrison's comma meantone scale"},meanhsev:{frequencies:[261.6255653006,265.69493617871,271.18768033644,275.4057836544,279.68949451567,284.03983498254,289.91182549392,294.4211659268,299.00064605783,305.1819244006,309.92877868547,314.74946639166,321.25632089757,326.25319922315,331.32779988873,336.4813337451,343.43745382287,348.77934146077,354.20431777528,361.52682728594,367.15008027699,372.86080050545,378.66034414493,386.48843610249,392.49994642563,398.60496085649,406.84537033315,413.17351844213,419.60009331305,426.12662827999,434.93599657884,441.70106893056,448.57136642871,457.84473927605,464.96613926104,472.19830582795,481.96011959425,489.45661357347,497.06970936204,504.80122352123,515.23704142273,523.2511306012],description:"1/14-septimal schisma tempered meantone scale"},meanhskl:{frequencies:[261.6255653006,275.0605216927,293.02063313667,312.15345277639,328.18310911307,349.61186736411,367.56508220664,391.56529173291,411.67289207144,438.55312706018,467.18850946536,491.17950266504,523.2511306012],description:"Half septimal kleisma meantone"},meanlst357_19:{frequencies:[261.6255653006,273.71260157103,279.68803244686,292.60971924044,306.12821574316,312.81131320311,327.26311833974,342.38279105966,349.85736361975,366.02068710341,374.01129952811,391.29052886394,409.36829077259,418.30522648629,437.63082426891,457.84952434322,467.84458559023,489.45917220726,512.07206464598,523.2511306012],description:"19 of mean-tone scale, least square error in 3/2, 5/4 and 7/4"},meanmalc:{frequencies:[261.6255653006,279.16226462633,292.82999876562,312.45832383396,327.75622702832,349.72564885805,366.84815356577,391.43789792004,417.67588698136,438.12522309524,467.49265244264,490.38100841085,523.2511306012],description:"Meantone approximation to Malcolm's Monochord, 3/16 Pyth. comma"},meannkleis:{frequencies:[261.6255653006,277.55670411237,293.77792781181,311.66693695111,329.88161264913,349.96913477239,370.42222384066,392.07096746411,415.94530241673,440.25439013544,467.06275302556,494.35929617392,523.2511306012],description:"1/5 kleisma tempered meantone scale"},meanpi:{frequencies:[261.6255653006,275.38456311745,294.43027471344,309.91448590794,326.2128298123,348.77404705732,367.11600789597,392.50613131028,413.14795414706,434.87532652316,464.95175460796,489.40347900327,523.2511306012],description:"Pi-based meantone with Harrison's major third by Erv Wilson"},meanpi2:{frequencies:[261.6255653006,287.5806999253,296.7710142931,326.2128298123,336.6377243117,370.0346037192,381.85992557156,394.06315326167,433.15704755212,446.99959483943,491.34516423327,507.04724898227,523.2511306012],description:"Pi-based meantone by Erv Wilson analogous to 22-tET"},meanpkleis:{frequencies:[261.6255653006,274.33428876064,294.88060759996,309.2047285643,324.22465805628,348.50752497012,365.43662717622,392.80607455881,411.88702081614,442.73537947933,464.24169412807,486.7926967469,523.2511306012],description:"1/5 kleisma positive temperament"},meanquar:{frequencies:[261.6255653006,273.37431312998,292.50627485027,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale. Pietro Aaron's temp. (1523). 6/5 beats twice 3/2"},meanquar_14:{frequencies:[261.6255653006,273.37431312998,292.50627485027,305.64177427204,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,418.60090448096,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split D#/Eb and G#/Ab, Otto Gibelius (1666)"},meanquar_15:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177427204,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,418.60090448096,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb and G#/Ab"},meanquar_16:{frequencies:[261.6255653006,273.37431312998,279.93548123753,292.50629850443,305.64179898843,312.97722776199,327.03195662575,349.91920725962,365.63293356166,391.22137338448,408.78994578219,418.60090448096,437.39882871549,457.04097849371,468.01000025525,489.02679755603,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb, G#/Ab and A#/Bb"},meanquar_17:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177250659,312.977175335,327.03195662575,349.91912034749,365.63284274659,374.40803131735,391.22147055517,408.78994578219,418.60090448096,437.39889945791,457.04105241293,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb, F#/Gb, G#/Ab and A#/Bb"},meanquar_19:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177427204,312.977175335,327.03195662575,341.71789064962,349.91912034749,365.63284274659,374.40803131735,391.22147055517,408.78994578219,418.60090448096,437.39890198442,457.04105241293,468.01003810189,489.02683710225,510.98743222773,523.2511306012],description:"19 of 1/4-comma meantone scale"},meanquar_27:{frequencies:[261.6255653006,273.37431312998,279.93529690293,285.65065877038,292.50627485027,299.52642572255,305.64177427204,312.977175335,327.03195662575,334.88072358477,341.71789064962,349.91912034749,365.63284274659,374.40803131735,382.05221698715,391.22147055517,400.61078621746,408.78994578219,418.60090448096,427.14736482575,437.39890198442,447.89647345742,457.04105241293,468.01003810189,489.02683710225,500.76348165392,510.98743222773,523.2511306012],description:"27 of 1/4-comma meantone scale"},meanquar_31:{frequencies:[261.6255653006,267.90457886781,273.37431312998,279.93529690293,285.65065877038,292.50627485027,299.52642572255,305.64177427204,312.977175335,320.48862783822,327.03195662575,334.88072358477,341.71789064962,349.91912034749,358.31717956585,365.63284274659,374.40803131735,382.05221698715,391.22147055517,400.61078621746,408.78994578219,418.60090448096,427.14736482575,437.39890198442,447.89647345742,457.04105241293,468.01003810189,479.24227945773,489.02683710225,500.76348165392,510.98743222773,523.2511306012],description:"31 of 1/4-comma meantone scale"},meanquareb:{frequencies:[261.6255653006,274.90575459855,292.80763523599,312.14798050979,327.88746490679,349.6453532581,367.3522744581,391.22144795733,411.14173398328,437.99455416256,467.00507093977,490.61429903129,523.2511306012],description:"Variation on 1/4-comma meantone with equal beating fifths"},meanquarm23:{frequencies:[261.6255653006,273.51763645063,292.40504357126,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,408.78994578219,436.04260883433,468.17206422213,489.12605686634,523.2511306012],description:"1/4-comma meantone approximation with minimal order 23 beatings"},meanquarr:{frequencies:[261.6255653006,273.37036621967,292.50063201309,312.98169478553,327.03195662575,349.92419358955,365.62579001637,391.21579858034,408.78994578219,437.39258595147,468.01906681552,489.01974822542,523.2511306012],description:"Rational approximation to 1/4-comma meantone, Kenneth Scholz, MTO 4.4, 1998"},meansabat:{frequencies:[261.6255653006,279.13726386405,294.25495796556,313.95067836072,330.95382015833,348.87783040382,372.229687597,392.38914286775,418.65339720992,441.32709511026,470.8669722571,496.36848628125,523.2511306012],description:"1/9-schisma meantone scale of Eduard Sa'bat-Garibaldi"},meansabat_53:{frequencies:[261.6255653006,264.79625752493,268.00537599851,271.25338610366,275.79485124716,279.13726386405,282.52018221184,285.94410045135,290.73152483281,294.25495796556,297.82109228474,301.4304452945,305.08354077075,310.19140758515,313.95067836072,317.75550958044,321.60645175541,326.99095182327,330.95382015833,334.96471528237,339.02421924159,343.13292113612,348.87783040382,353.10595017045,357.38531136087,361.71653498009,367.77258074571,372.229687597,376.74081403286,381.30660995465,385.92774054592,392.38914286775,397.14458487807,401.95765903525,406.82906379475,413.640406907,418.65339720992,423.72714093867,428.86237189887,436.04260883433,441.32709511026,446.67562589029,452.08897683944,457.56793273834,465.22877230071,470.8669722571,476.57350267936,482.349191678,490.42492909292,496.36848628125,502.38407462043,508.4725670703,514.63484717027,523.2511306012],description:"53-tone 1/9-schisma meantone scale"},meanschis:{frequencies:[261.6255653006,275.81646505128,294.24573392894,310.20599265769,327.03195662575,348.88329767713,367.80716871461,392.38299382393,413.66634097248,436.10412364188,465.24335632603,490.47874118496,523.2511306012],description:"1/8-schisma temperament, Helmholtz"},meanschis7:{frequencies:[261.6255653006,275.84425785506,294.23387584933,310.2247482054,327.0846843223,348.89032888179,367.85164222246,392.37508610937,413.69968681881,436.18322603255,465.26210635182,490.54793493862,523.2511306012],description:"1/7-schisma linear temperament"},meanschis_17:{frequencies:[261.6255653006,275.81646505128,290.77709705464,294.24573392894,310.20599265769,327.03195662575,330.93307160522,348.88329767713,367.80716871461,372.19468374184,392.38299382393,413.66634097248,436.10412364188,441.30634506723,465.24335632603,490.47874118496,496.32958936031,523.2511306012],description:"17-tone 1/8-schisma linear temperament"},meansept:{frequencies:[261.6255653006,273.93523095528,292.67762672082,312.70235991264,327.41522444303,349.81667202162,366.27579142084,391.33604481052,409.74867679276,437.78330574787,467.73603562223,489.74334292241,523.2511306012],description:"Meantone scale with septimal diminished fifth"},meansept2:{frequencies:[261.6255653006,273.61459551034,286.15296204753,292.57963558274,305.98714063953,320.00886175336,327.19620693615,342.18982383643,349.87514759905,365.9082279648,382.67602660872,391.27063976147,409.20043831214,427.95210889573,437.56358849756,457.61500463173,478.58500343311,489.333659422,511.75744671018,523.2511306012],description:"Meantone scale with septimal neutral second"},meansept3:{frequencies:[261.6255653006,267.11515986718,271.23581508831,275.42019673559,281.19923906193,285.53716249988,289.94217244295,296.02592413073,300.59257160392,305.22982618403,309.9384746623,316.44180152381,321.32358037849,326.28048244956,333.12670774706,338.26588629419,343.48414905091,348.7829114007,356.10146388137,361.59490682213,367.17305499414,374.87731434423,380.66058361349,386.53284867747,394.643327573,400.73152907611,406.91341882127,413.19091223118,421.86074762795,428.36858751681,434.97682067587,444.1040384307,450.95501471222,457.91167766162,464.97592623609,474.73234784313,482.05581210758,489.49253462334,499.76337935275,507.47298512535,515.30182087389,523.2511306012],description:"Pythagorean scale with septimal minor third"},meansept4:{frequencies:[261.6255653006,266.94086705872,271.13211808455,275.38917613856,280.98410555769,285.39585012732,289.87686370457,295.76613145071,300.40996929954,305.12672026341,309.91752915454,316.21395200486,321.17884203959,326.22168604472,332.8493514236,338.07543464185,343.38355445704,348.77505435772,355.86092403367,361.44831302863,367.12342987925,374.58207334188,380.46340397682,386.43730087372,394.28810581018,400.47907310734,406.76701374557,413.15368163355,421.54749623588,428.16623317002,434.88889120201,443.72428802318,450.69091522486,457.76754776364,464.95497741911,474.40121026751,481.84980583512,489.41535214975,499.35853288878,507.19898454493,515.16253949886,523.2511306012],description:"Pythagorean scale with septimal narrow fourth"},meansev:{frequencies:[261.6255653006,275.93321340298,293.28595453555,311.72996498387,328.77769811601,349.45369437647,368.5644419122,391.74252566418,413.16594588103,439.14890519043,466.76586696593,492.29212632197,523.2511306012],description:"1/7-comma meantone scale, Jean-Baptiste Romieu (1755)"},meansev2:{frequencies:[261.6255653006,273.98141462199,292.76593693997,312.83835055233,327.61283758281,350.07440004945,366.60744235102,391.74252566418,410.24343789088,438.37026184168,468.42550014967,490.54793493862,524.18054130269],description:"Meantone scale with 1/7-comma stretched octave (stretched meansept)"},meansev_19:{frequencies:[261.6255653006,275.93321340298,278.07859353335,293.28589524255,309.32501829942,311.72996858511,328.77775508885,346.75764506664,349.4536277652,368.56443339655,371.42996022741,391.74260033637,413.16585280598,416.37814821359,439.14890011719,463.16493144882,466.76596133102,492.29202110912,496.11959049595,523.2511306012],description:"19 of 1/7-comma meantone scale"},meanseveb:{frequencies:[261.6255653006,276.822915312,293.45907344559,311.2600957924,329.2717708679,349.29792128041,369.56105314287,391.74259807358,414.53862252605,439.49286138442,466.19439430972,493.21190508606,523.2511306012],description:'"1/7-comma" meantone with equal beating fifths'},meansixth:{frequencies:[261.6255653006,275.36245350283,293.11247215425,312.00666699279,328.38886075091,349.55699144229,367.91095120397,391.62676241399,412.18948168074,438.75944753732,467.04212833931,491.56459996916,523.2511306012],description:"1/6-comma meantone scale (tritonic temperament of Salinas)"},meansixth_19:{frequencies:[261.6255653006,275.36245350283,278.49009641114,293.11247215425,308.50278723002,312.00666699279,328.38886075091,345.6314161331,349.55699144229,367.91095120397,372.08969287196,391.62676241399,412.18948168074,416.87124381956,438.75944753732,461.79691129422,467.04212833931,491.56459996916,517.37477513058,523.2511306012],description:"19 of 1/6-comma meantone scale"},meansixtheb:{frequencies:[261.6255653006,276.39673661379,293.31426069206,311.4574698476,328.96404447481,349.37515437283,369.07004939896,391.62674884124,413.78350416977,439.15979251365,466.37460465854,492.63446576705,523.2511306012],description:'"1/6-comma" meantone with equal beating fifths'},meansixthm:{frequencies:[261.6255653006,275.36250599118,293.11251278827,312.00669222389,328.38895179964,349.55706816887,367.91095120397,391.62667645325,414.52369088643,438.75941205608,467.04206359353,491.56462836305,523.2511306012],description:"modified 1/6-comma meantone scale, wolf spread over 2 fifths"},meansixthm2:{frequencies:[261.6255653006,276.14113065853,293.11251278827,310.24975557428,328.38895179964,349.55706816887,367.91095120397,391.62667645325,414.52380581681,438.75941205608,465.72523006308,491.56462836305,523.2511306012],description:"modified 1/6-comma meantone scale, wolf spread over 4 fifths"},meansixthpm:{frequencies:[261.6255653006,275.00020270933,293.00227310437,309.72478954314,328.14198392915,348.83408706747,367.49599295996,391.5530240856,412.50030385781,438.51190905657,465.11211608996,491.10256480205,523.2511306012],description:"modified 1/6P-comma temperament, French 18th century"},meansixthso:{frequencies:[261.6255653006,273.09145986506,292.50627485027,313.30134186202,327.03195662575,350.28154752005,365.63284274659,391.62667645325,408.78994578219,437.85193595173,468.98001879925,489.53334447372,524.3356019912],description:"1/6-comma meantone scale with 1/6-comma stretched oct, Dave Keenan TL 13-12-99"},meanstr:{frequencies:[261.6255653006,272.52663052146,292.30447317753,313.51763757869,326.58087306932,350.28154752005,364.87661266094,391.35649333595,407.66301227525,437.24799400905,468.98001879925,488.52085380073,523.97386302914],description:"Meantone with 1/9-comma stretched octave, Petr Parizek (2006)"},meanten:{frequencies:[261.6255653006,276.96346718799,293.59840699152,311.2324721493,329.47860040677,349.26769656434,369.74365294187,391.95114287501,414.92943551322,439.85086739936,466.26912673157,493.60433806962,523.2511306012],description:"1/10-comma meantone scale"},meanthird:{frequencies:[261.6255653006,271.40047399919,291.9012907804,313.95067836072,325.68056936328,350.28154752005,363.36884069528,390.81668391305,405.4184580124,436.04260883433,468.98001879925,486.50215045777,523.2511306012],description:"1/3-comma meantone scale (Salinas)"},meanthird_19:{frequencies:[261.6255653006,271.40047399919,281.38801176707,291.9012907804,302.80736724606,313.95067836072,325.68056936328,337.848714425,350.28154752005,363.36884069528,376.74081403286,390.81668391305,405.4184580124,420.33785775232,436.04260883433,452.33412516107,468.98001879925,486.50215045777,504.40543017669,523.2511306012],description:"Complete 1/3-comma meantone scale"},meanthirdeb:{frequencies:[261.6255653006,273.41679662438,292.30169912182,312.83755546226,326.81234905863,349.91518709086,365.63683018302,390.81669745772,408.5035451685,436.83089868331,467.63468237516,488.59687355467,523.2511306012],description:'"1/3-comma" meantone with equal beating fifths'},meanvar1:{frequencies:[261.6255653006,274.22463192287,292.50627485027,312.00669222389,327.03195662575,349.55706816887,366.3906401674,391.22147055517,410.48618883318,437.39890198442,467.04206359353,489.53334447372,523.2511306012],description:"Variable meantone 1: C-G-D-A-E 1/4, others 1/6"},meanvar2:{frequencies:[261.6255653006,274.19219069011,292.50627485027,312.04360750473,327.03195662575,349.70184487387,366.23895640989,391.22147055517,410.65012590831,437.39890198442,467.23549927892,489.3306802979,523.2511306012],description:"Variable meantone 2: C..E 1/4, 1/5-1/6-1/7-1/8 outward both directions"},meanvar3:{frequencies:[261.6255653006,275.36250599118,292.50627485027,310.71739423852,327.03195662575,349.55706816887,367.15000817177,391.22147055517,413.04376116614,437.39890198442,466.0760911248,489.53334447372,523.2511306012],description:"Variable meantone 3: C..E 1/4, 1/6 next, then Pyth."},meanvar4:{frequencies:[261.6255653006,275.07759559501,292.50627485027,311.03921839762,327.03195662575,349.91912034749,366.77012764335,391.22147055517,412.61639318626,437.39890198442,466.55882736321,489.02683710225,523.2511306012],description:"Variable meantone 4: naturals 1/4-comma, accidentals Pyth."},mediant16:{frequencies:[261.6255653006,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,523.2511306012],description:"Mediant doubling of octave done four times"},mercadier:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.42509491746,328.14198392915,349.22823143301,368.74309237173,391.5530240856,413.90012676351,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Mercadier's well-temperament (1777), 1/12 and 1/6 Pyth. comma"},mercadier2:{frequencies:[261.6255653006,276.14388692511,292.95319623755,310.40895756597,328.03206784165,349.20805980193,368.45885450371,391.49761638186,413.86785247997,438.37641748302,465.57175090792,491.63473786767,523.2511306012],description:"Mercadier de Belestas (1776)"},mercator:{frequencies:[261.6255653006,272.09448029963,279.3054110864,290.48161516351,306.08206748155,318.32990397837,326.76614606023,335.42596179815,348.84778913489,362.80689075348,372.42184279259,387.32403355801,408.12545368833,418.94141877379,435.70530841001,453.13974129598,465.14865565404,490.12996697565,509.74216322321,523.2511306012],description:"19 out of 53-tET, see Mandelbaum p. 331"},merrick:{frequencies:[261.6255653006,278.62147458377,295.28844751169,312.94924079019,329.91874474504,349.29981986967,371.62722343835,394.01440557319,416.60121863153,438.96906929631,468.0242659544,493.6331420766,523.2511306012],description:"A. Merrick's melodically tuned equal temperament (1811)"},mersen_l1:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Mersenne lute 1"},mersen_l2:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Mersenne lute 2"},mersen_s1:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Mersenne spinet 1"},mersen_s2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Mersenne spinet 2"},mersenmt1:{frequencies:[261.6255653006,273.37431312998,292.50627485027,311.03921839762,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,466.55882736321,489.02683710225,523.2511306012],description:"Mersenne's Improved Meantone 1"},mersenmt2:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.11326130363,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Mersenne's Improved Meantone 2"},mersenne:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,313.95067836072,322.99452506247,327.03195662575,340.65828815182,344.52749339997,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,408.78994578219,413.43299207996,418.60090448096,430.65936674996,436.04260883433,454.2110508691,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,510.98743222773,523.2511306012],description:"31-note choice system of Mersenne, Harmonie universelle (1636)"},meyer:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Max Meyer, see Doty, David, 1/1 August 1992 (7:4) p.1 and 10-14"},meyer_29:{frequencies:[261.6255653006,268.26840191956,275.93321340298,286.15296204753,289.72987407313,294.32876096318,306.59245933664,321.92208230347,327.03195662575,331.11985608357,343.38355445704,344.91651675372,357.69120255941,367.91095120397,372.50983809402,383.2405741708,386.30649876417,392.4383479509,408.78994578219,413.89982010446,429.2294430713,441.49314144476,457.84473927605,459.88868900496,482.88312345521,490.54793493862,496.67978412536,510.98743222773,515.07533168556,523.2511306012],description:"Max Meyer, see Doty, David, 1/1 August 1992 (7:4) p.1 and 10-14"},mid_enh1:{frequencies:[261.6255653006,269.10058145205,336.37572681506,348.83408706747,392.4383479509,403.65087217807,504.56359022259,523.2511306012],description:"Mid-Mode1 Enharmonic, permutation of Archytas's with the 5/4 lying medially"},mid_enh2:{frequencies:[261.6255653006,271.31540105247,339.14425131559,348.83408706747,392.4383479509,406.97310157871,508.71637697339,523.2511306012],description:"Permutation of Archytas' Enharmonic with the 5/4 medially and 28/27 first"},miller19:{frequencies:[261.6255653006,271.16557874802,283.07475767856,293.39690257971,304.09543631541,315.18408718336,326.67707691855,338.58915326012,350.93559605343,363.73224209988,376.99551198295,390.74241649248,407.9032302438,422.77716528297,438.1934715504,454.17192383337,470.73301771751,487.89800430439,505.68889852562,524.12852955557],description:"TOP tempered nr. 64 [1202.9, 570.4479508], 7-limit {225/224, 1029/1000}"},miller7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,313.95067836072,329.64821227876,353.19451315581,366.27579142084,392.4383479509,412.06026534844,439.53094970501,470.92601754108,494.47231841813,523.2511306012],description:"Herman Miller, 7-limit JI. mode of parizek_ji1"},miller_12:{frequencies:[261.6255653006,273.36657578691,291.63627719304,313.29104303136,327.35065305942,349.22823143301,364.90060015836,391.99543598175,418.19337019276,436.9606979923,456.57025003029,487.08386390194,523.2511306012],description:"Herman Miller, scale with appr. to three 7/4 and one 11/8. Tuning List 19-11-99"},miller_12a:{frequencies:[261.6255653006,273.46133384191,291.68681828778,313.23675853409,327.40738352015,349.22823143301,365.02708698668,391.99543598175,418.12090908234,437.03642407223,456.80766452229,487.25270356141,523.85596330884],description:'Herman Miller, "Starling" scale, alternative version TL 25-11-99'},miller_12r:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,454.2110508691,484.4917875937,523.2511306012],description:'Herman Miller, "Starling" scale rational version'},miller_ar1:{frequencies:[261.6255653006,276.1828093671,293.13465239421,310.07474405997,327.9937953665,348.83408706747,368.24374600687,391.64146650178,414.27421384356,438.21489534465,465.11211608996,490.99166158792,523.2511306012],description:'Herman Miller, "Arrow I" well-temperament'},miller_ar2:{frequencies:[261.6255653006,276.1828093671,293.13465239421,310.2849072826,328.2161033156,349.07052034394,368.24374600687,391.64146650178,414.27421384356,438.51190905657,465.42736069124,491.32444638706,523.2511306012],description:'Herman Miller, "Arrow II" well-temperament'},miller_b1:{frequencies:[261.6255653006,276.37000081643,292.93610587951,310.49521248455,328.2161033156,348.83408706747,368.4933346061,391.64146650178,413.993616853,438.80912407872,465.11211608996,491.32444638706,523.2511306012],description:'Herman Miller, "Butterfly I" well-temperament'},miller_b2:{frequencies:[261.6255653006,276.55731914056,293.13465239421,310.70566022736,328.2161033156,349.07052034394,368.74309237173,392.17254067411,414.27421384356,439.10654054756,465.42736069124,491.99069280383,523.2511306012],description:'Herman Miller, "Butterfly II" well-temperament'},miller_bug:{frequencies:[261.6255653006,275.99574470663,292.73769384471,310.49521248455,327.54963108844,348.83408706747,368.4933346061,391.64146650178,413.993616853,437.62147130622,465.11211608996,491.32444638706,523.2511306012],description:'Herman Miller, "Bug I" well-temperament'},miller_dim:{frequencies:[261.6255653006,272.37088095799,275.97178311718,291.10467300644,307.06737543415,311.12698372208,323.9053895548,328.18760802294,346.1837483498,365.1667076515,369.99442271164,385.1905938463,390.2830385166,411.68417663589,434.25884690128,440,458.07139483414,464.12736626882,489.57775198944,516.42371048788,523.2511306012],description:"Diminished temperament, g=92.421, oct=1/4, 7-limit"},miller_nikta:{frequencies:[261.6255653006,272.78230567952,282.82337239762,292.30660227893,305.1368529352,315.1779191367,326.89249731477,341.39626079795,349.76381456689,364.82541608424,379.88701473,391.60159255926,407.77886614283,422.28262813098,436.22855406869,456.86852448015,469.69877536137,488.10739794888,508.74736733766,523.2511306012],description:'Herman Miller, 19-tone scale of "Nikta". Tuning List 22-1-99'},miller_sp:{frequencies:[261.6255653006,276.74268633071,292.73329748773,304.15432597486,321.72882314722,340.31880135827,353.5963846,374.02771873076,395.63960626236,411.07553805605,434.82810464551,459.95313047266,477.89826295658,505.51194770063,525.23456349057],description:"Herman Miller, Superpelog temperament, TOP tuning"},minor_5:{frequencies:[261.6255653006,299.00064605783,348.83408706747,418.60090448096,465.11211608996,523.2511306012],description:"A minor pentatonic"},minor_clus:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,353.19451315581,372.08969287196,392.4383479509,418.60090448096,441.49314144476,465.11211608996,470.92601754108,523.2511306012],description:"Chalmers' Minor Mode Cluster, Genus [333335]"},minor_wing:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Chalmers' Minor Wing with 7 minor and 6 major triads"},minortone:{frequencies:[261.6255653006,264.87670583656,269.18630372462,273.56601964703,276.96554054138,281.47182622933,286.05143175444,290.70554674078,294.31805527354,299.10666990622,303.97319627313,307.75057781118,312.75774231814,317.84637624619,323.01780144749,327.03184444407,332.35271908155,337.76016543181,341.95740725719,347.52112383796,353.17536321933,358.9216002989,363.3818066762,369.29410472703,375.30259493676,379.96636500161,386.14849505708,392.43120962619,398.81614754309,403.7721109712,410.34156772664,417.0179085097,422.20006196255,429.06934285921,436.05038835349,443.14501943782,448.65184388114,455.95150328441,463.36992699746,469.12808274602,476.76089208744,484.51788878959,492.4010934061,498.52001054206,506.63103252794,514.8740254656,523.2511306012],description:"Minortone temperament, g=182.466089, 5-limit"},miracle1:{frequencies:[261.6255653006,266.71173418545,279.86396690685,285.30470202322,299.37379946195,305.19382000629,320.24370022528,326.46944327063,342.56848033562,349.22823143301,366.44956000397,373.57357677338,391.99543598175,399.61607881612,419.32216217931,427.47405410759,448.5538823653,457.27406033445,479.82340237272,489.15147723638,513.27277840175,523.2511306012],description:'21 out of 72-tET Pyth. scale "Miracle/Blackjack", Keenan & Erlich, TL 2-5-2001'},miracle1a:{frequencies:[261.6255653006,266.57640943865,279.87817034289,285.17441410431,299.40418912991,305.0699313594,320.29246281951,326.35348199782,342.63803067389,349.1219037468,366.54256247747,373.47879032775,392.11482112276,399.53496279579,419.47115746916,427.40897376302,448.73603972606,457.22764679928,480.04261976898,489.12665346498,513.5333359992,523.2511306012],description:"Version of Blackjack with just 11/8 intervals"},miracle2:{frequencies:[261.6255653006,266.71172956369,274.52699087907,279.86396690685,285.30469707927,293.66477470251,299.3738011912,305.19381471768,314.13668880034,320.24370207508,326.46943949911,336.03573785931,342.56848231438,349.22822739856,359.4614100947,366.44956423737,373.57357245769,380.83607584373,391.99544051026,399.61607650784,407.38486242506,419.32216702351,427.4740516384,435.78441397758,448.55389013814,457.27405769313,466.16375074742,479.82341068742,489.15147723638,498.66088722045,513.27278729609,523.2511306012],description:'31 out of 72-tET Pythagorean scale "Miracle/Canasta", tempered Fokker-M, 36 7-limit tetrads'},miracle24:{frequencies:[261.6255653006,266.71173418545,274.52698453615,279.86396690685,285.30470202322,299.37379946195,305.19382000629,320.24370022528,326.46944327063,342.56848033562,349.22823143301,366.44956000397,373.57357677338,391.99543598175,399.61607881612,419.32216217931,427.47405410759,448.5538823653,457.27406033445,466.16376151809,479.82340237272,489.15147723638,498.66089874196,513.27277840175,523.2511306012],description:"Miracle[24] in 72-tET tuning."},miracle2a:{frequencies:[261.6255653006,266.57640943865,274.68028654691,279.87817034289,285.17441410431,293.84366906071,299.40418912991,305.0699313594,314.34400674513,320.29246281951,326.35348199782,336.27457379784,342.63803067389,349.1219037468,359.73515228832,366.54256247747,373.47879032775,380.54627680087,392.11482112276,399.53496279579,407.09552105481,419.47115746916,427.40897376302,435.49700296564,448.73603972606,457.22764679928,465.87994655565,480.04261976898,489.12665346498,498.38259075187,513.5333359992,523.2511306012],description:"Version of Canasta with just 11/8 intervals"},miracle3:{frequencies:[261.6255653006,266.71172956369,271.8967720342,274.52699087907,279.86396690685,285.30469707927,290.85119844166,293.66477470251,299.3738011912,305.19381471768,311.12697293924,314.13668880034,320.24370207508,326.46943949911,332.81620914398,336.03573785931,342.56848231438,349.22822739856,356.01744208336,359.4614100947,366.44956423737,373.57357245769,380.83607584373,384.52012922913,391.99544051026,399.61607650784,407.38486242506,411.32573797959,419.32216702351,427.4740516384,435.78441397758,440.00001524924,448.55389013814,457.27405769313,466.16375074742,470.67322937359,479.82341068742,489.15147723638,498.66088722045,503.48472993456,513.27278729609,523.2511306012],description:'41 out of 72-tET Pythagorean scale "Miracle/Studloco", Erlich/Keenan 2001'},miracle31s:{frequencies:[261.6255653006,266.63636836248,274.61234258734,279.87187586531,285.23214274484,293.7643779857,299.39072204343,305.12482507342,314.2521161294,320.27085311289,326.40486440328,336.1687117034,342.60720791066,349.16901789451,359.61381619398,366.50134650551,373.52079096839,380.6746756467,392.06191220286,399.57090708206,407.22371854314,419.40512463865,427.43781242392,435.62434685833,448.6553095271,457.24821364991,466.00569400686,479.94546308962,489.13765420145,498.50589943595,513.41785698047,523.2511306012],description:"Canasta with Secor's minimax generator of 116.7155941 cents (5:9 exact). XH5, 1976"},miracle3a:{frequencies:[261.6255653006,266.57640943865,271.6209387912,274.68028654691,279.87817034289,285.17441410431,290.57088243021,293.84366906071,299.40418912991,305.0699313594,310.84289043406,314.34400674513,320.29246281951,326.35348199782,332.52919812642,336.27457379784,342.63803067389,349.1219037468,355.72847573316,359.73515228832,366.54256247747,373.47879032775,380.54627680087,384.83248369581,392.11482112276,399.53496279579,407.09552105481,411.6807594913,419.47115746916,427.40897376302,435.49700296564,440.40213577526,448.73603972606,457.22764679928,465.87994655565,471.12729153307,480.04261976898,489.12665346498,498.38259075187,503.99602271809,513.5333359992,523.2511306012],description:"Version of Studloco with just 11/8 intervals"},miracle3ls:{frequencies:[261.6255653006,266.8561524992,272.19132869617,274.36355553357,279.84880885615,285.44374339214,291.1505189834,293.47406686496,299.34138986722,305.32601617869,311.43030899178,313.91568307924,320.1916880693,326.59318586748,333.12264767748,335.78115718319,342.4943108472,349.34167821305,356.32594256772,359.16962765504,366.35037871957,373.67471357934,381.14545968569,384.18721873359,391.86813762951,399.70261841457,407.69373119716,410.94736065575,419.16328558448,427.54349328421,436.09121881038,439.57145109254,448.35967321435,457.32356924795,466.46667727785,470.18934850506,479.58967749961,489.177972196,498.95793401383,502.93987502638,512.99500332159,523.2511306012],description:"Miracle-41 in a 7-limit least-squares tuning, Gene Ward Smith, 2001"},miracle3p:{frequencies:[261.6255653006,266.34679554672,270.06721067987,274.94077677072,279.90228841312,284.95333588433,290.09553330897,294.14767822015,299.45579274291,304.85969791727,310.36112062791,314.69634158508,320.37527393455,326.15668500873,332.04242788125,336.6805001021,342.75615313904,348.94144590806,355.2383548887,360.20043713509,366.70052302062,373.3179099666,380.0547104455,385.36343543368,392.31760641523,399.39727291251,406.60469732047,412.28427858225,419.7242587073,427.29849640545,435.00941939202,441.0857666732,449.04549132915,457.14885520764,465.39844769831,471.89927840742,480.41505607532,489.08450736089,497.91040254418,504.86537329764,513.97604599191,523.2511306012],description:"Least squares Pythagorean approximation to partch_43"},miracle41s:{frequencies:[261.6255653006,266.63636836248,269.45164985995,274.61234258734,279.87187586531,285.23214274484,290.69507255622,293.7643779857,299.39072204343,305.12482507342,310.96875093738,314.2521161294,320.27085311289,326.40486440328,332.65635780028,336.1687117034,342.60720791066,349.16901789451,355.85650343121,359.61381619398,366.50134650551,373.52079096839,380.6746756467,384.69403121132,392.06191220286,399.57090708206,407.22371854314,411.52339231679,419.40512463865,427.43781242392,435.62434685833,440.22388881539,448.6553095271,457.24821364991,466.00569400686,470.92601754108,479.94546308962,489.13765420145,498.50589943595,503.76937659657,513.41785698047,523.2511306012],description:"StudLoco with Secor's minimax generator of 116.7155941 cents (5:9 exact). XH5, 1976"},miracle_12:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,336.03572815422,342.56848033562,359.46139971304,366.44956000397,384.52011812375,411.32572372413,440,470.6732130613,523.2511306012],description:"A 12-tone subset of Blackjack with six 4-7-9-11 tetrads"},miracle_12a:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,342.56848033562,366.44956000397,391.99543598175,419.32216217931,448.5538823653,479.82339960115,489.15147723638,513.27277840175,523.2511306012],description:"A 12-tone chain of Miracle generators and subset of Blackjack"},"24erlich-keenan":{frequencies:[261.6255653006,266.71173469898,279.86396636799,285.30470202322,290.8512090818,299.37380003836,305.19381941867,320.24370022528,326.46944389922,342.56847967604,349.22823143301,356.01745305102,366.44956070954,373.5735760541,391.99543598175,399.61607958554,407.38487340641,419.32216137194,427.47405410759,448.55388322895,457.27405945401,479.82340237272,489.15147817819,498.66089778183,523.2511306012],description:"24 note mapping for Erlich/Keenan Miracle scale low version, tuned to 72-equal"},miracle_8:{frequencies:[261.6255653006,279.86396690685,314.13668154225,336.03572815422,366.44956000397,391.99543598175,419.32216217931,448.5538823653,523.2511306012],description:"tet3a in 72-et"},miring1:{frequencies:[261.6255653006,285.29448470177,307.6953604706,387.15515639797,420.96788906714,523.2511306012],description:"Gamelan Miring from Serdang wetan, Tangerang. 1/1=309.5 Hz"},miring2:{frequencies:[261.6255653006,279.34865171253,304.66723527068,384.42070010042,412.69311132744,523.2511306012],description:"Gamelan Miring (Melog gender) from Serdang wetan"},misca:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,348.83408706747,392.4383479509,412.06026534844,433.74764773521,457.84473927605,523.2511306012],description:"21/20 x 20/19 x 19/18=7/6 7/6 x 8/7=4/3"},miscb:{frequencies:[261.6255653006,269.80136421624,278.50463402967,319.76457981184,348.83408706747,392.4383479509,404.70204632437,417.75695104451,479.64686971777,523.2511306012],description:"33/32 x 32/31x 31/27=11/9 11/9 x 12/11=4/3"},miscc:{frequencies:[261.6255653006,276.00059636107,292.04714266113,310.07474405997,348.83408706747,392.4383479509,414.00089454161,438.0707139917,465.11211608996,523.2511306012],description:"96/91 x 91/86 x 86/54=32/27. 32/27 x 9/8=4/3."},miscd:{frequencies:[261.6255653006,271.68808704293,282.55561052465,294.32876096318,348.83408706747,392.4383479509,407.5321305644,423.83341578697,441.49314144476,523.2511306012],description:"27/26 x 26/25 x 25/24=9/8. 9/8 x 32/27=4/3."},misce:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,348.83408706747,392.4383479509,420.46965851882,452.81347840488,490.54793493862,523.2511306012],description:"15/14 x 14/13 x 13/12=5/4. 5/4 x 16/15= 4/3."},miscf:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,378.42269266694,392.4383479509,406.97310157871,418.60090448096,504.56359022259,523.2511306012],description:"SupraEnh1"},miscg:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,504.56359022259,523.2511306012],description:"SupraEnh 2"},misch:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,392.4383479509,406.97310157871,490.54793493862,504.56359022259,523.2511306012],description:"SupraEnh 3"},misty:{frequencies:[261.6255653006,268.57642185399,270.57706033988,272.59260010205,274.62315370363,276.66883458144,284.01936005382,286.13503371773,288.26646546986,290.41377434565,292.57708030445,300.35025535204,302.58757688062,304.84156607104,307.11234355974,309.40003795144,311.70477168653,319.9861304005,322.36972224007,324.77106769218,327.19030275625,329.62755691287,338.38508739928,340.90573394089,343.44515491415,346.00349213972,348.58088853904,357.84197030948,360.50755209334,363.19298782427,365.89842747751,368.62402219236,378.41760905933,381.23645754858,384.07630597582,386.93730633346,389.81962065329,392.72340320054,403.157261366,406.16039889903,409.18590458221,412.23394976407,415.30469757995,426.33849458487,429.51431022199,432.71378016074,435.93708308397,439.18439906139,450.85263092877,454.21105352848,457.59449053401,461.00313090234,464.43716505707,476.77631130474,480.3278378528,483.9058226648,487.51045723915,491.14194572312,494.80048247871,507.94632001299,511.73003620658,515.54193450341,519.38223078906,523.2511306012],description:"Misty temperament, g=96.787939, p=400, 5-limit"},mistyschism:{frequencies:[261.6255653006,278.75251614148,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,418.12877421223,440.99519155196,465.63729761752,496.11959049595,523.2511306012],description:"Mistyschism scale 32805/32768 and 67108864/66430125"},mixed9_3:{frequencies:[261.6255653006,273.20871865617,285.30470202322,311.12698372208,349.22823143301,391.99543598175,409.35055662695,427.47405410759,466.16376151809,523.2511306012],description:"A mixture of the hemiolic chromatic and diatonic genera, 75 + 75 + 150 + 200 c"},mixed9_4:{frequencies:[261.6255653006,271.89678302796,282.57123920205,305.19382000629,349.22823143301,391.99543598175,407.38487419079,423.37848741825,457.27406033445,523.2511306012],description:'Mixed enneatonic 4, each "tetrachord" contains 67 + 67 + 133 + 233 cents.'},mixed9_5:{frequencies:[261.6255653006,277.18263097687,293.66476791741,329.62755691287,349.22823143301,391.99543598175,415.30469757995,440,493.88330125613,523.2511306012],description:"A mixture of the intense chromatic genus and the permuted intense diatonic"},mixed9_6:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,349.22823143301,391.99543598175,415.30469757995,440,466.16376151809,523.2511306012],description:"Mixed 9-tonic 6, Mixture of Chromatic and Diatonic"},mixed9_7:{frequencies:[261.6255653006,277.18263097687,311.12698372208,329.62755691287,349.22823143301,391.99543598175,415.30469757995,466.16376151809,493.88330125613,523.2511306012],description:"Mixed 9-tonic 7, Mixture of Chromatic and Diatonic"},mixed9_8:{frequencies:[261.6255653006,293.66476791741,311.12698372208,329.62755691287,349.22823143301,391.99543598175,440,466.16376151809,493.88330125613,523.2511306012],description:"Mixed 9-tonic 8, Mixture of Chromatic and Diatonic"},mixol_chrom:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,311.12229387098,319.76457981184,359.73515228832,411.12588832951,426.35277308246,434.39716502741,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,605.86973016981,622.24458774197,639.52915962369,719.47030457665,822.25177665903,852.70554616492,868.79433005482,885.50191332511,959.29373943553,1046.5022612024],description:"Mixolydian chromatic tonos"},mixol_chrom2:{frequencies:[261.6255653006,271.31540105247,281.75060878526,332.97799220076,366.27579142084,385.55346465352,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the chromatic genus"},mixol_chrominv:{frequencies:[261.6255653006,279.06726965397,299.00064605783,373.75080757229,411.12588832951,429.81342870813,448.50096908674,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Mixolydian inverted"},mixol_diat:{frequencies:[261.6255653006,274.08392555301,287.78812183066,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,442.75095666255,460.46099492906,479.64686971777,500.50108144463,523.2511306012,548.16785110602,575.57624366132,639.52915962369,677.14852195449,719.47030457665,767.43499154843,822.25177665903,885.50191332511,920.92198985811,959.29373943553,1001.00216288925,1046.5022612024],description:"Mixolydian diatonic tonos"},mixol_diat2:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,348.83408706747,366.27579142084,406.97310157871,457.84473927605,523.2511306012],description:"Schlesinger's Mixolydian Harmonia, a subharmonic series though 13 from 28"},mixol_diatcon:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"A Mixolydian Diatonic with its own trite synemmenon replacing paramese"},mixol_diatinv:{frequencies:[261.6255653006,299.00064605783,336.37572681506,348.83408706747,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"A Mixolydian Diatonic with its own trite synemmenon replacing paramese"},mixol_diatinv2:{frequencies:[261.6255653006,299.00064605783,336.37572681506,348.83408706747,373.75080757229,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"Inverted Schlesinger's Mixolydian Harmonia, a harmonic series from 14 from 28"},mixol_enh:{frequencies:[261.6255653006,274.08392555301,287.78812183066,295.1673044417,299.00064605783,302.93486508491,348.83408706747,411.12588832951,418.60090448096,422.44127975143,426.35277308246,469.85815809087,523.2511306012,548.16785110602,575.57624366132,590.33460888341,598.00129211566,605.86973016981,697.66817413493,822.25177665903,837.20180896192,844.88255950285,852.70554616492,939.71631618175,1046.5022612024],description:"Mixolydian Enharmonic Tonos"},mixol_enh2:{frequencies:[261.6255653006,266.38239376061,271.31540105247,332.97799220076,366.27579142084,375.66747838035,385.55346465352,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the enharmonic genus"},mixol_enhinv:{frequencies:[261.6255653006,270.34641747729,279.06726965397,373.75080757229,411.12588832951,420.46965851882,429.81342870813,523.2511306012],description:"A harmonic form of Schlesinger's Mixolydian inverted"},mixol_penta:{frequencies:[261.6255653006,269.32043486826,281.75060878526,332.97799220076,366.27579142084,381.53728273004,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the pentachromatic genus"},mixol_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,411.12588832951,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,822.25177665903,885.50191332511,959.29373943553,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Mixolydian Tonos"},mixol_tri1:{frequencies:[261.6255653006,268.0066766494,274.70684356563,332.97799220076,366.27579142084,378.90599112501,392.4383479509,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the first trichromatic genus"},mixol_tri2:{frequencies:[261.6255653006,268.0066766494,281.75060878526,332.97799220076,366.27579142084,378.90599112501,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the second trichromatic genus"},mmmgeo1:{frequencies:[261.6255653006,291.52662303231,317.822348206,348.40303271111,392.9238840789,423.23948674937,463.96335069158,523.2511306012],description:"Scale for MakeMicroMusic in Peppermint 24, maybe a bit like Georgian tunings"},mmmgeo2:{frequencies:[261.6255653006,295.05751399041,323.4477810403,352.62279726972,392.9238840789,430.73079539701,485.77193724523,529.58860866211],description:"Scale for MakeMicroMusic in Peppermint 24, maybe a bit like Georgian tunings"},mmmgeo3a:{frequencies:[261.6255653006,281.81099471089,317.822348206,348.40303271111,392.9238840789,423.23948674937,463.96335069158,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmmgeo4a:{frequencies:[261.6255653006,281.81099471089,317.822348206,348.40303271111,392.9238840789,423.23948674937,477.32335087626,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmmgeo4b:{frequencies:[261.6255653006,295.05751399041,323.4477810403,348.40303271111,392.9238840789,430.73079539701,485.77193724523,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmswap:{frequencies:[261.6255653006,251.16054268858,294.32876096318,282.55561052465,313.95067836072,348.83408706747,353.19451315581,392.4383479509,376.74081403286,418.60090448096,423.83341578697,470.92601754108,523.2511306012],description:"Swapping major and minor in 5-limit JI"},mokhalif:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,425.01198472693,477.05982293263,523.2511306012],description:"Iranian mode Mokhalif from C"},montvallon:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Montvallon's Monochord, Nouveau sisteme de musique (1742)"},monzismic:{frequencies:[261.6255653006,265.20988799749,268.52946324281,272.20837072565,275.61554447717,279.39153269358,282.88861654172,286.76424730356,290.69297498385,294.33151655947,298.3639173457,302.09847446042,306.23728412706,310.07039048391,314.31841699833,318.25267316085,322.61279858837,327.03265671938,331.12605620426,335.66254762155,339.86396564906,344.52016812641,348.83245514045,353.61152766937,358.03760933268,362.94279426564,367.48567344471,372.52029869489,377.62390147213,382.35053879638,387.58881783384,392.44018387738,397.81669307529,402.79607923799,408.31446627855,413.42525081527,419.08925963743,424.33490995001,430.14838328955,436.04150237937,441.49934027584,447.54796975207,453.14983163098,459.35807517454,465.10776160818,471.47983118983,477.38124304179,483.92146177974,489.97860285142,496.69140794435,503.49617981289,509.7983334288,516.78267280423,523.2511306012],description:"Monzismic temperament, g=249.018448, 5-limit"},sevengroups:{frequencies:[261.6255653006,261.6255653006,275.62199471997,265.19499215873,270.69536599394,266.7406479561],description:"Here are some suggestions for a logical system encompassing intervals into seven broad groups: skhisma, kleisma, comma,"},"monzo-sym-11":{frequencies:[261.6255653006,269.80136421624,276.76092858245,279.06726965397,285.40970760065,286.15296204753,287.78812183066,294.32876096318,299.00064605783,304.4370214407,305.22982618403,313.95067836072,314.76825825228,327.03195662575,332.97799220076,334.88072358477,341.71502406609,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,398.6675280771,400.61414686654,408.78994578219,411.12588832951,418.60090448096,434.91003062957,436.04260883433,448.50096908674,449.66894036041,457.84473927605,465.11211608996,475.68284600109,478.40103369253,479.64686971777,490.54793493862,494.63583439645,507.3950357345,523.2511306012],description:"Monzo symmetrical system: 11-limit"},"monzo-sym-5":{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Monzo symmetrical system: 5-limit"},"monzo-sym-7":{frequencies:[261.6255653006,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,523.2511306012],description:"Monzo symmetrical system: 7-limit"},monzo_sumerian_2place12:{frequencies:[261.6255653006,277.17835052447,293.68632213351,311.15032543183,329.66469551353,349.22211163595,369.93402791915,391.94841243536,415.27867508032,439.91220695103,466.03267445926,493.6331420766,523.2511306012],description:"Monzo - most accurate 2-place sexagesimal 12-tET approximation"},monzo_sumerian_simp12:{frequencies:[261.6255653006,277.34158865788,293.41184893525,310.84225580269,329.78012432849,348.83408706747,370.22485655745,392.4383479509,415.27867508032,440.11777340288,466.26338370404,493.6331420766,523.2511306012],description:"Monzo - simplified 2-place sexagesimal 12-tET approximation"},morgan:{frequencies:[261.6255653006,277.18263097687,294.07958763262,310.86358783941,330.18637907377,349.03110370139,370.30791823326,392.32757291716,415.07027187895,440.74593809176,465.76911360306,494.58094207912,523.2511306012],description:"Augustus de Morgan's temperament (1843)"},"mos11-34":{frequencies:[261.6255653006,272.51337835337,301.75671459889,314.3146261019,348.04364484358,362.52783176564,377.61479489998,418.13653788176,435.53771116377,453.66305442345,502.34551296122,523.2511306012],description:"Wilson 11 of 34-tET, G=9, Chain of minor & major thirds with Kleismatic fusion"},"mos12-17":{frequencies:[261.6255653006,272.51337835337,283.85429714132,307.97166902637,320.78822215662,348.04364484358,362.52783176564,377.61479489998,409.69842558521,426.7484383229,463.0066556268,482.27514684959,523.2511306012],description:"MOS 12 of 17, generator 7"},"mos12-22":{frequencies:[261.6255653006,287.56082683758,296.76515515861,326.18384711731,336.62443200122,347.39920007397,381.83730669135,394.05926325844,433.12283887627,446.9863572706,491.29666030217,507.02222283506,523.2511306012],description:"MOS 12 of 22, contains nearly just, recognizable diatonic, and pentatonic scales"},"mos13-22":{frequencies:[261.6255653006,278.64197723942,296.76515515861,316.06708432391,326.18384711731,347.39920007397,369.99442271164,381.83730669135,406.67242132093,433.12283887627,446.9863572706,476.05883716226,507.02222283506,523.2511306012],description:"MOS 13 of 22, contains 5 and 9 tone MOS as well. G=5 or 17"},"mos15-22":{frequencies:[261.6255653006,278.64197723942,287.56082683758,306.26409645618,316.06708432391,336.62443200122,347.39920007397,369.99442271164,381.83730669135,406.67242132093,419.68930726506,446.9863572706,461.29362042034,491.29666030217,507.02222283506,523.2511306012],description:"MOS 15 in 22, contains 7 and 8 tone MOS as well. G= 3 or 19"},moscow:{frequencies:[261.6255653006,277.4816141504,293.64820765919,311.48626315692,329.67368081467,349.7414907984,370.88289054572,392.4383479509,416.22242101754,440.4723112686,467.22939450183,494.51052097482,523.2511306012],description:"Charles E. Moscow's equal beating piano tuning (1895)"},mundeuc45:{frequencies:[261.6255653006,267.57160087561,269.80136421624,271.31540105247,274.70684356563,280.31310567921,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,488.36772189445,499.46698830115,504.56359022259,507.3950357345,513.90736041189,523.2511306012],description:"Euclidean reduced detempered Miracle[45] with Tenney tie-breaker"},musaqa:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Egyptian scale by Miha'il Musaqa"},musaqa_24:{frequencies:[261.6255653006,269.02051582234,276.67624041581,284.6011815168,292.80374147632,300.29158209195,310.07474405997,319.15917884888,328.55303549378,338.26335715633,348.29659232622,358.65845048745,369.35373924791,380.38618160659,391.75821216589,403.47075130695,415.52295665389,427.91195157543,440.63253103259,453.67684579974,467.03406698289,480.69003385373,494.62688932105,508.8227088795,523.2511306012],description:"from d'Erlanger vol.5, p.34, after Mih.a'il Mu^saqah, 1899, a Lebanese scholar"},myna23:{frequencies:[261.6255653006,267.85369360167,274.23008563259,291.58574485564,298.52709031489,305.63367799752,312.90944157785,320.35840837329,327.98470157359,348.7424193045,357.04440817535,365.54403007102,374.24598974517,383.15510395049,392.27630410488,417.10295228105,427.03229805648,437.19801690717,447.60573581317,458.26121570764,469.17035466565,498.86352554567,510.73922293119,522.89762727195],description:"23 notes of Myna temperament, 7-limit TOP tuning (Paul Erlich)"},"mystic-r":{frequencies:[261.6255653006,367.91095120397,465.11211608996,654.0639132515,872.08521766867,1177.3150438527],description:"Skriabin's mystic chord, op. 60 rationalised"},mystic:{frequencies:[261.6255653006,369.99442271164,466.16376151809,659.25511382574,880,1174.65907166964],description:"Skriabin's mystic chord, op. 60"},urmawi:{frequencies:[261.6255653006,294.32876096318,326.6631048533,348.83408706747,392.4383479509,441.49314144476,471.45776383774,523.2511306012],description:"al-Urmawi, one of twelve maqam rows. First tetrachord is Rast"},valentine:{frequencies:[261.6255653006,276.16031892841,294.32876096318,310.68035879446,330.47439827444,348.83408706747,371.78369805875,392.4383479509,414.24047839262,440.63253103259,466.02053819169,495.71159741166,523.2511306012],description:"Robert Valentine, tuning with primes 3 & 19, TL 7-2-2002"},valentine2:{frequencies:[261.6255653006,286.10322937235,312.87102146627,349.87955533643,382.6142546815,418.41160951721,467.90420651233,511.68128147674,559.55413558945,625.74204293254,684.28641150324,748.30818586768,782.53142116911,855.74498969389,935.80841302466,1046.5022612024],description:"Robert Valentine, two octave 31-tET subset for guitar, TL 10-5-2002"},vallotti:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.14198392915,349.6228209638,368.32692341742,391.5530240856,414.36778843034,438.51190905657,466.16376151809,491.10256480205,523.2511306012],description:"Vallotti & Young scale (Vallotti version)"},vavoom:{frequencies:[164.81377845643,165.83014536684,167.75567809608,168.79018601865,170.75008918846,172.7327497266,173.79795102719,175.81600173949,176.90021569146,178.95428827501,180.05785630665,182.14859375797,184.26360775673,185.39991601304,187.55268266167,188.70927492235,190.90046811205,192.07770535997,194.30800987601,196.56421264146,197.77637683895,200.07285246365,201.3066535986,203.64411977036,206.00872855044,207.27913480479,209.68595147418,210.9790342774,213.42881100738,214.74497512464,217.23848121866,219.76094059848,221.11615343515,223.68363702025,225.06304018178,227.6763542391,229.0803795269,231.74034082302,234.43118684139,235.87686755635,238.61574610914,240.08723199411,242.87499909192,244.37274935352,247.21027763268,250.08075380295,251.62294163139,254.54465534315,256.1143694988,259.0882353168,260.68597011615,263.71291896434,266.77501515601,268.42015092639,271.53690502834,273.21140777811,276.38379544331,278.08818779989,281.31720045362,284.58370833477,286.33866758091,289.66348210637,291.44976709494,294.83392732599,296.65209720599,300.09666587055,303.58123106099,305.45334345815,309.00010579622,310.90563508986,314.51570836542,316.45525105281,320.12976356015,323.84694071013,325.84402686189,329.62755691286],description:"Vavoom temperament, g=111.875426, 5-limit"},veroli:{frequencies:[261.6255653006,276.87699530057,293.57148765354,310.97965314221,329.42008585855,349.28270065725,369.64409253099,391.93430587921,414.97617910427,439.79164309579,466.09106516521,493.49262474744,523.2511306012],description:"Claudio di Veroli's well temperament (1978)"},vertex_chrom:{frequencies:[261.6255653006,271.89678302796,317.17549194805,349.22823143301,391.99543598175,407.38487419079,448.5538823653,523.2511306012],description:"A vertex tetrachord from Chapter 5, 66.7 + 266.7 + 166.7 cents"},vertex_chrom2:{frequencies:[261.6255653006,274.52698453615,323.3415889232,349.22823143301,391.99543598175,411.32572372413,484.46499093218,523.2511306012],description:"A vertex tetrachord from Chapter 5, 83.3 + 283.3 + 133.3 cents"},vertex_chrom3:{frequencies:[261.6255653006,275.18850165466,324.90175210669,349.22823143301,391.99543598175,412.31687950427,486.80259447109,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 287.5 + 125 cents"},vertex_chrom4:{frequencies:[261.6255653006,275.40936140075,325.42347822215,349.22823143301,391.99543598175,412.64779522483,487.58430040208,523.2511306012],description:"A vertex tetrachord from Chapter 5, 88.9 + 288.9 + 122.2 cents"},vertex_chrom5:{frequencies:[261.6255653006,282.57123920205,329.62755691287,349.22823143301,391.99543598175,423.37848741825,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 133.3 + 266.7 + 100 cents"},vertex_diat:{frequencies:[261.6255653006,299.37379946195,323.3415889232,349.22823143301,391.99543598175,448.5538823653,484.46499932732,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.3 + 133.3 + 133.3 cents"},vertex_diat10:{frequencies:[261.6255653006,295.79278388132,324.90175210669,349.22823143301,391.99543598175,443.18842137843,486.80259447109,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 162.5 + 125 cents"},vertex_diat11:{frequencies:[261.6255653006,295.79278388132,306.66641795878,349.22823143301,391.99543598175,443.18842137843,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 62.5 + 225 cents"},vertex_diat12:{frequencies:[261.6255653006,293.66476791741,315.65242990842,349.22823143301,391.99543598175,440,472.94426956511,523.2511306012],description:"A vertex tetrachord from Chapter 5, 200 + 125 + 175 cents"},vertex_diat2:{frequencies:[261.6255653006,299.37379946195,329.62755691287,349.22823143301,391.99543598175,448.5538823653,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.3 + 166.7 + 100 cents"},vertex_diat3:{frequencies:[261.6255653006,273.20871865617,311.12698372208,349.22823143301,391.99543598175,409.35055662695,466.16376151809,523.2511306012],description:"A vertex tetrachord from Chapter 5, 75 + 225 + 200 cents"},vertex_diat4:{frequencies:[261.6255653006,297.93622032612,329.62755691287,349.22823143301,391.99543598175,446.39994737251,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 225 + 175 + 100 cents"},vertex_diat5:{frequencies:[261.6255653006,275.18850165466,315.65242990842,349.22823143301,391.99543598175,412.31687950427,472.94426956511,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 237.5 + 175 cents"},vertex_diat7:{frequencies:[261.6255653006,293.66476791741,306.66641795878,349.22823143301,391.99543598175,440,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 200 + 75 + 225 cents"},vertex_diat8:{frequencies:[261.6255653006,277.18263097687,306.66641795878,349.22823143301,391.99543598175,415.30469757995,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 100 + 175 + 225 cents"},vertex_diat9:{frequencies:[261.6255653006,295.79278388132,320.24370022528,349.22823143301,391.99543598175,443.18842137843,479.82340237272,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 137.5 + 150 cents"},vertex_sdiat:{frequencies:[261.6255653006,275.18850165466,306.66641795878,349.22823143301,391.99543598175,412.31687950427,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 187.5 + 225 cents"},vertex_sdiat2:{frequencies:[261.6255653006,273.20871865617,302.26980244078,349.22823143301,391.99543598175,409.35055662695,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 75 + 175 + 250 cents"},vertex_sdiat3:{frequencies:[261.6255653006,265.43099677612,302.26980244078,349.22823143301,391.99543598175,397.69714089209,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 25 + 225 + 250 cents"},vertex_sdiat4:{frequencies:[261.6255653006,271.8968348557,302.26980244078,349.22823143301,391.99543598175,407.38495184466,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 66.7 + 183.3 + 250 cents"},vertex_sdiat5:{frequencies:[261.6255653006,299.37374239667,302.26980244078,349.22823143301,391.99543598175,448.55379686399,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.33 + 16.67 + 250 cents"},vicentino1:{frequencies:[261.6255653006,267.54129532085,273.59078691818,279.77706779472,286.10322937235,292.57243455474,295.8616864168,299.18791603519,305.95298478736,312.87102146627,319.94548489658,327.17991022208,330.85823737058,334.57791819083,342.14320575162,349.87955533643,357.79083283678,365.88099775759,374.15409293384,382.6142546815,391.26571058456,395.66452371628,400.11279059885,409.15991580663,418.41160951721,427.87249484695,437.54730686196,442.46644183113,447.44088028055,457.55816161244,467.90420651233,478.48419305869,489.30340830564,494.80441235385,500.36726155789,511.68128147674,523.2511306012],description:"Usual Archicembalo tuning, 31-tET plus D,E,G,A,B a 10th tone higher"},vicentino2:{frequencies:[261.6255653006,262.40966637115,273.59078691818,274.41074818102,279.77706779472,280.61556956011,292.57243455474,293.44928279173,305.95298478736,306.86993670158,312.87102146627,313.80870698104,327.17991022208,328.16047998243,342.14320575162,343.16862103779,349.87955533643,350.92815470883,365.88099775759,366.97755604579,374.15409293384,391.26571058456,392.4383479509,409.15991580663,410.38618254261,418.41160951721,419.66560148231,437.54730686196,438.85865161274,457.55816161244,458.92947695163,467.90420651233,469.30653196482,489.30340830564,490.7698679226,511.68128147674,523.2511306012],description:"Alternative Archicembalo tuning, lower 3 rows the same upper 3 rows 3/2 higher"},vicentino2q217:{frequencies:[261.6255653006,262.46259217279,273.59078691818,274.46609608433,279.77706779472,280.67216895906,292.57243455474,293.50847071582,305.95298478736,306.93183153514,312.87102146627,313.87199953275,327.17991022208,328.2266690608,342.14320575162,343.23783523487,349.87955533643,350.99893596542,365.88099775759,367.05157442308,374.15409293384,391.26571058456,392.51750150462,409.15991580663,410.46895395112,418.41160951721,419.7502468954,437.54730686196,438.9471656765,457.55816161244,459.02204178186,467.90420651233,469.40118981889,489.30340830564,490.86885203792,511.68128147674,523.2511306012],description:"Vicentino's second tuning, 217-tET version"},vicentino36:{frequencies:[261.6255653006,262.43934012943,273.37431312998,274.22463192287,279.93529690293,280.80602334765,292.50627485027,293.41610276971,305.64177427204,306.59245933664,312.97717714283,313.95067836072,327.03195662575,328.04917632434,341.71789064962,349.91912034749,351.00752840096,365.63284274659,366.77012764335,374.40803131735,375.5726110527,391.22147055517,392.4383479509,408.78994578219,410.06146948999,418.60090448096,419.90294514449,437.39889945791,438.75941205608,457.04105505291,458.46266117889,468.01003810189,469.46576276783,489.02683710225,490.54793493862,510.98743222773,523.2511306012],description:"Vicentino's second tuning of 1555"},victor_eb:{frequencies:[261.6255653006,276.45300885359,293.16631378471,311.00963644582,328.52867116285,348.83408706747,368.60401198904,391.83966133014,414.6795130731,439.03603741286,465.77732204887,492.79300649794,523.2511306012],description:"Equal beating Victorian piano temperament, interpr. by Bill Bremmer (improved)"},victorian:{frequencies:[261.6255653006,276.5429423948,293.32570896007,310.76776326996,328.29744538229,349.22823143301,368.92737853004,391.99543598175,414.58565256441,438.73106346722,465.89457252293,492.17459484008,523.2511306012],description:"Form of Victorian temperament (1885)"},vitale1:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,336.37572681506,343.38355445704,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,457.84473927605,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Rami Vitale's 7-limit just scale"},vitale2:{frequencies:[261.6255653006,274.70684356563,294.32876096318,299.00064605783,305.22982618403,313.95067836072,336.37572681506,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,448.50096908674,457.84473927605,470.92601754108,504.56359022259,523.2511306012],description:"Rami Vitale, inverse mode of vitale1"},vitale3:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,412.06026534844,420.46965851882,441.49314144476,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Superset of several Byzantine scales by Rami Vitale, TL 29-Aug-2001"},vogel_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,310.07474405997,313.95067836072,321.55899383997,330.74639366397,348.83408706747,361.75386806997,372.08969287196,392.4383479509,406.97310157871,413.43299207996,418.60090448096,428.74532511996,440.99519155196,465.11211608996,482.33849075995,496.11959049595,523.2511306012],description:"Martin Vogel's 21-tone Archytas system, see Divisions of the tetrachord"},vogelh_b:{frequencies:[261.6255653006,276.37000081643,292.73769384471,310.07474405997,327.54963108844,349.78078158391,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,489.99465727995,523.2511306012],description:"Harald Vogel's temperament, van Eeken organ in Bunschoten, Immanuelkerk, 1992"},vogelh_fisk:{frequencies:[261.6255653006,274.01856817608,292.73769384471,312.85332572834,327.54963108844,349.78078158391,366.49445363528,391.37619916626,409.75340805561,437.91808280662,467.82492621575,489.99465727995,523.2511306012],description:"Modified meantone tuning of Fisk organ in Memorial Church at Stanford"},vogelh_hb:{frequencies:[261.6255653006,276.50527247638,293.79744652436,312.85332572834,329.92547760025,349.78078158391,369.82037393809,392.08397832814,413.47189899094,440.29822362186,467.82492621575,494.44133512215,523.2511306012],description:"Harald Vogel hybrid meantone (1984)"},vogelh_jakobi:{frequencies:[261.6255653006,275.2485073924,292.86986732103,310.4251397446,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.87276088221,438.2147004401,466.26912673157,490.54793493862,523.2511306012],description:"Harald Vogel's temperament for the Schnitger organ in St. Jakobi, Hamburg"},volans:{frequencies:[261.6255653006,288.78654445823,322.09885310804,352.06379107796,388.6137256405,429.95038611107,482.60299106564,523.2511306012],description:"African scale according to Kevin Volans 1/1=G"},vong:{frequencies:[261.6255653006,287.78812183066,324.77656382143,353.19451315581,392.4383479509,431.68218274599,476.53227965466,523.2511306012],description:"Vong Co Dan Tranh scale, Vietnam"},"vries19-72":{frequencies:[261.6255653006,271.89678302796,282.57123920205,293.66476791741,305.19382000629,314.13668154225,326.46944327063,339.28638158975,352.60650301302,366.44956000397,377.18735172911,391.99543598175,407.38487419079,423.37848741825,452.89298412314,470.6732130613,489.15147723638,508.3551866238,523.2511306012],description:"Leo de Vries 19/72 Through-Transposing-Tonality 18 tone scale"},"vries35-72":{frequencies:[261.6255653006,320.24370022528,326.46944327063,332.81622067851,339.28638158975,345.88232658126,352.60650301302,359.46139971304,366.44956000397,448.5538823653,457.27406033445,466.16376151809,475.22628419761,484.46499093218,493.88330125613,503.48470957687,513.27277840175,523.2511306012],description:"Leo de Vries 35/72 Through-Transposing-Tonality 17 tone scale"},"vries5-72":{frequencies:[261.6255653006,269.29177952703,274.52698453615,282.57123920205,288.06460709314,296.5055443788,302.26980244078,317.17549194805,332.81622067851,349.22823143301,366.44956000397,384.52011812375,403.48177901006,423.37848741825,444.25635547592,466.16376151809,489.15147723638,513.27277840175,523.2511306012],description:"Leo de Vries 5/72 Through-Transposing-Tonality 18 tone scale"},"vries6-31":{frequencies:[261.6255653006,292.57243455474,299.18791603519,334.57791819083,342.14320575162,382.6142546815,391.26571058456,437.54730686196,447.44088028055,500.36726155789,511.68128147674,523.2511306012],description:'Leo de Vries 6/31 TTT used in "For 31-tone organ" (1995)'},vulture:{frequencies:[261.6255653006,265.58852967049,269.02996542365,272.51599294435,276.04719319079,279.62414831161,283.24745441839,286.9177088442,290.63552324927,294.40151054717,298.21629835234,302.73351960911,306.6562716924,310.62985211059,314.65492307423,318.73214815075,322.86220682342,327.0457799678,331.28356479042,335.57625992643,339.9245807679,344.32924417279,349.54496173019,354.07428378691,358.66229781376,363.30976018416,368.01744541334,372.78612960355,377.61660747204,382.50967536449,387.46614872711,392.486844677,398.43202813578,403.59481739244,408.82450722915,414.12195980508,419.48805795853,424.92368633675,430.42975080549,436.00715908665,441.65684067409,447.37972696622,453.17677170128,460.0412514682,466.0023613576,472.04071122634,478.15730738573,484.35315820906,490.6292962557,496.98675620078,503.42659462849,509.94988192555,516.55769649554,523.2511306012],description:"Vulture temperament, g=475.542233, 5-limit"},walker_21:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,327.03195662575,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:'Douglas Walker, 1977, for "out of the fathomless dark/into the limitless light'},walkerr_11:{frequencies:[261.6255653006,291.47537246454,299.00064605783,333.11471138804,341.71502406609,380.70252730062,390.53145607553,435.08860262928,484.72943438718,497.2441172906,510.08190181294,523.2511306012],description:'Robert Walker, "Seven to Pi" scale, TL 09-07-2002'},wauchope:{frequencies:[261.6255653006,274.70684356563,305.22982618403,327.03195662575,366.27579142084,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Symmetrical 7-limit JI whole-half step scale, Ken Wauchope"},wendell1:{frequencies:[261.6255653006,276.25045813601,293.35468319005,310.78176509232,328.42642049784,348.83408706747,369.47972269069,391.8804287311,414.37568699689,438.92294511207,466.17264740545,492.63963050051,523.2511306012],description:"Robert Wendell's Natural Synchronous well-temperament (2003)"},wendell1r:{frequencies:[261.6255653006,276.25560153172,293.36810129327,310.78755172318,328.43721515437,348.83408706747,369.49186704867,391.89926583958,414.38340229758,438.93945576706,466.18132758477,492.65582273156,523.2511306012],description:"Rational version of wendell1 by Gene Ward Smith"},wendell2:{frequencies:[261.6255653006,276.37223575148,293.46077701205,310.91876490958,328.50868755512,348.91469434159,369.57235851938,392.00856887742,414.55835341999,438.92345217603,466.37814713124,492.76314493882,523.2511306012],description:"Robert Wendell's Very Mild Synchronous well-temperament (2003)"},werck1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Werckmeister I (just intonation)"},werck3:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,327.77163799145,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,491.65745674141,523.2511306012],description:"Andreas Werckmeister's temperament III (the most famous one, 1681)"},werck3_eb:{frequencies:[261.6255653006,275.62199471997,292.52927773082,310.07474405997,328.06371231954,348.83408706747,367.49599295996,391.41011079897,413.43299207996,437.41828331138,465.11211608996,492.10978071589,523.2511306012],description:"Werckmeister III equal beating version, 5/4 beats twice 3/2"},werck3_mod:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,327.77163799145,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,490.82535372381,523.2511306012],description:"Modified Werckmeister III with B between E and F#, Nijsse (1997), organ Soest"},werck4:{frequencies:[261.6255653006,274.37997440822,293.00227310437,310.07474405997,328.14198392915,348.83408706747,367.49599295996,390.66969766777,411.5699614066,437.52264545758,467.21778431035,489.99465727995,523.2511306012],description:"Andreas Werckmeister's temperament IV"},werck5:{frequencies:[261.6255653006,276.55731914056,294.32876096318,311.12698372208,328.88393162803,350.01785633742,369.99442271164,392.4383479509,413.43299207996,440,466.69047534984,493.32589719545,523.2511306012],description:"Andreas Werckmeister's temperament V"},werck6:{frequencies:[261.6255653006,275.69145590816,291.35574317567,310.77945938738,328.70904358281,348.83408706747,368.91086905696,391.43977709097,413.53718386224,438.27872477707,466.16918908107,493.06356537421,523.2511306012],description:`Andreas Werckmeister's "septenarius" tuning VI`},werck6_dup:{frequencies:[261.6255653006,275.62199471997,291.49363009634,310.67551062492,328.56569462012,348.83408706747,368.92162485303,391.67947347082,413.43299207996,438.08759304581,466.01326570444,492.84854168382,523.2511306012],description:"Andreas Werckmeister's VI in the interpretation by Dupont (1935)"},werck_cl5:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.97737261399,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.14811800305,438.2147004401,466.26912673157,490.54793493862,523.2511306012],description:"Werckmeister Clavier temperament (Nothw. Anm.) Poletti reconstr. 1/5-comma"},werck_cl6:{frequencies:[261.6255653006,275.36250599118,293.11251278827,310.35057963607,328.38895179964,349.55706816887,367.91095120397,391.62667645325,413.31226430431,438.75941205608,466.0760911248,491.56462836305,523.2511306012],description:"Werckmeister Clavier temperament (Nothw. Anm.) Poletti reconstr. 1/6-comma"},werck_puzzle:{frequencies:[261.6255653006,272.52663052146,291.60349465796,306.59245933664,327.03195662575,347.47145391486,365.18568489875,389.71308164569,408.78994578219,436.04260883433,461.93263873387,490.54793493862,523.2511306012],description:"From Hypomnemata Musica, 1697, p. 49, 1/1=192, fifths tempered superparticular"},white:{frequencies:[261.6255653006,275.93321340298,289.72987407313,294.32876096318,305.22982618403,310.42486507835,327.03195662575,331.11985608357,343.38355445704,348.83408706747,367.91095120397,386.30649876417,392.4383479509,406.97310157871,413.89982010446,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:"Justin White's 22-tone scale based on Al-Farabi's tetrachord"},wicks:{frequencies:[261.6255653006,276.65728054629,293.45376109391,310.36444075595,329.26048109616,348.28499607284,369.54304125029,391.93835601961,414.48592121967,439.68064187634,465.04666232412,493.39072329352,523.2511306012],description:"Mark Wicks' equal beating temperament for organs (1887)"},wier_cl:{frequencies:[261.6255653006,276.16031892841,290.69507255622,305.22982618403,319.76457981184,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"Danny Wier, ClownTone (2003)"},wiesse:{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,348.83408706747,369.99442271164,392.4383479509,416.24372513446,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Von Wiesse's 1/2 Pyth. comma tuning"},wilson1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson's 19-tone Scott scale (1976)"},wilson11:{frequencies:[261.6255653006,271.31540105247,277.4816601673,291.35574317567,305.22982618403,312.16686768822,325.57848126297,332.97799220076,348.83408706747,366.27579142084,374.60024122586,392.4383479509,406.97310157871,416.22249025095,437.0336147635,457.84473927605,468.25030153232,488.36772189445,499.46698830115,523.2511306012],description:"Wilson 11-limit 19-tone scale, 1977"},wilson1t:{frequencies:[261.6255653006,273.34666024156,279.64601698606,292.92954243175,306.05308604033,313.10617410217,327.13365148064,334.67254769546,349.66622272551,366.27579142084,374.71672979763,391.50442319155,409.04422481132,418.47077311482,437.21869500104,457.98711402938,468.54156606881,489.53271107931,500.81414097667,523.2511306012],description:"Wilson's Scott scale, wilson1, in minimax minerva tempering"},wilson2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,372.08969287196,392.4383479509,406.97310157871,418.60090448096,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 19-tone, 1975"},wilson3:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,515.07533168556,523.2511306012],description:"Wilson 19-tone"},wilson5:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson's 22-tone 5-limit scale"},wilson7:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson's 22-tone 7-limit 'marimba' scale"},wilson7_2:{frequencies:[261.6255653006,263.718569823,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,329.64821227876,343.38355445704,353.19451315581,366.27579142084,376.74081403286,392.4383479509,408.78994578219,412.06026534844,436.04260883433,439.53094970501,457.84473927605,470.92601754108,490.54793493862,494.47231841813,523.2511306012],description:"Wilson 7-limit scale"},wilson7_3:{frequencies:[261.6255653006,267.90457886781,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson 7-limit scale"},wilson7_4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,372.08969287196,387.59343007496,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 7-limit 22-tone scale XH 3, 1975"},wilson_17:{frequencies:[261.6255653006,275.93321340298,290.69507255622,294.32876096318,310.42486507835,327.03195662575,331.11985608357,348.83408706747,367.91095120397,372.50983809402,392.4383479509,413.89982010446,436.04260883433,441.49314144476,465.11211608996,490.54793493862,496.67978412536,523.2511306012],description:"Wilson's 17-tone 5-limit scale"},wilson_31:{frequencies:[261.6255653006,265.7783520514,271.31540105247,279.06726965397,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,321.08592105074,327.03195662575,332.22294006425,339.14425131559,348.83408706747,354.37113606854,361.75386806997,372.08969287196,380.54627680087,392.4383479509,398.6675280771,406.97310157871,418.60090448096,428.11456140098,441.49314144476,448.50096908674,457.84473927605,470.92601754108,481.6288815761,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Wilson 11-limit 31-tone scale XH 3, 1975"},wilson_41:{frequencies:[261.6255653006,265.7783520514,271.31540105247,275.62199471997,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,321.08592105074,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,354.37113606854,361.75386806997,367.49599295996,372.08969287196,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,413.43299207996,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,481.6288815761,490.54793493862,496.67978412536,504.56359022259,515.07533168556,523.2511306012],description:"Wilson 11-limit 41-tone scale XH 3, 1975"},wilson_alessandro:{frequencies:[261.6255653006,265.58571790036,269.80136421624,270.50397193556,275.93321340298,278.232656848,284.55612632182,286.15296204753,288.53757006459,294.32876096318,295.09524211152,303.52653474327,304.3169684275,305.22982618403,309.14739649778,314.76825825228,321.92208230347,324.60476632267,327.03195662575,331.98214737546,337.2517052703,340.06213614756,343.38355445704,347.79082106,351.18772614924,354.11429053382,359.73515228832,365.180362113,367.91095120397,370.97687579734,379.40816842909,386.30649876417,391.2646736925,392.4383479509,393.46032281536,404.70204632437,405.75595790334,413.89982010446,417.348985272,419.69101100305,429.2294430713,432.80635509689,441.49314144476,442.64286316727,449.66894036041,456.47545264125,457.84473927605,463.72109474667,472.15238737843,482.88312345521,486.907149484,490.54793493862,494.63583439645,505.87755790546,515.07533168556,521.68623159,523.2511306012],description:"D'Alessandro, genus [3 3 3 5 7 11 11] plus 8 pigtails, XH 12, 1989"},wilson_bag:{frequencies:[261.6255653006,294.32876096318,318.85615771011,349.51540364377,392.4383479509,425.14154361347,466.02053819169,523.2511306012],description:"Erv's bagpipe, mar '97, after Theodore Podnos (37-39)."},wilson_class:{frequencies:[261.6255653006,272.52663052146,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,381.53728273004,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Class Scale, Erv Wilson, 9 july 1967"},wilson_dia1:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,362.25078272391,371.78369805875,381.83190611439,392.4383479509,403.65087217807,415.52295665389,428.11456140098,441.49314144476,455.73485568492,470.92601754108,487.16484573215,504.56359022259,523.2511306012],description:"Wilson Diaphonic cycles, tetrachordal form"},wilson_dia2:{frequencies:[261.6255653006,268.51044859798,275.76748774928,283.42769574232,291.52562990638,300.09991313892,309.19384990071,318.85615771011,329.14184021688,340.11323489078,351.84127747322,364.40703738298,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Wilson Diaphonic cycle, conjunctive form"},wilson_dia3:{frequencies:[261.6255653006,268.51044859798,275.76748774928,283.42769574232,291.52562990638,300.09991313892,309.19384990071,318.85615771011,329.14184021688,340.11323489078,351.84127747322,364.40703738298,377.90359432309,392.4383479509,403.65087217807,415.52295665389,428.11456140098,441.49314144476,455.73485568492,470.92601754108,487.16484573215,504.56359022259,523.2511306012],description:"Wilson Diaphonic cycle on 3/2"},wilson_dia4:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,358.01393146398,381.83190611439,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Wilson Diaphonic cycle on 4/3"},wilson_duo:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 'duovigene'"},wilson_enh:{frequencies:[261.6255653006,264.37951861955,279.06726965397,348.83408706747,392.4383479509,396.56927792933,418.60090448096,523.2511306012],description:"Wilson's Enharmonic & 3rd new Enharmonic on Hofmann's list of superp. 4chords"},wilson_enh2:{frequencies:[261.6255653006,265.7783520514,275.62199471997,348.83408706747,392.4383479509,398.6675280771,413.43299207996,523.2511306012],description:"Wilson's 81/64 Enharmonic, a strong division of the 256/243 pyknon"},wilson_facet:{frequencies:[261.6255653006,271.31540105247,274.70684356563,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,366.27579142084,387.59343007496,392.4383479509,406.97310157871,412.06026534844,436.04260883433,452.19233508746,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Wilson study in 'conjunct facets', Hexany based"},wilson_gh1:{frequencies:[261.6255653006,286.54684077898,313.84200313831,343.73718179912,398.2573899082,436.19359890902,477.74343791599,523.2511306012],description:"Golden Horagram nr.1: 1phi+0 / 7phi+1"},wilson_gh11:{frequencies:[261.6255653006,294.51148904212,316.87124012705,356.70145865606,383.78276711707,432.02365977685,464.82353976398,523.2511306012],description:"Golden Horagram nr.11: 1phi+0 / 3phi+1"},wilson_gh2:{frequencies:[261.6255653006,290.51361927671,322.59142140135,358.21117585067,382.16527586729,424.3630293795,471.22015545621,523.2511306012],description:"Golden Horagram nr.2: 1phi+0 / 6phi+1"},wilson_gh50:{frequencies:[261.6255653006,270.80964219588,280.31611759965,306.81496952381,317.58537244461,347.60736272384,359.80973785756,372.44046183271,407.64801512355,421.95805149354,461.8466031062,478.05922145,523.2511306012],description:"Golden Horagram nr.50: 7phi+2 / 17phi+5"},wilson_helix:{frequencies:[261.6255653006,283.42769574232,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"Wilson's Helix Song, see David Rosenthal, Helix Song, XH 7&8, 1979. Also Secor, 1964"},wilson_hypenh:{frequencies:[261.6255653006,266.38239376061,271.31540105247,348.83408706747,392.4383479509,399.57359064092,406.97310157871,523.2511306012],description:"Wilson's Hyperenharmonic, this genus has a CI of 9/7"},wilson_l1:{frequencies:[261.6255653006,269.80136421624,274.70684356563,286.15296204753,294.32876096318,305.22982618403,314.76825825228,327.03195662575,337.2517052703,343.38355445704,359.73515228832,366.27579142084,377.72190990274,392.4383479509,404.70204632437,419.69101100305,431.68218274599,449.66894036041,457.84473927605,472.15238737843,490.54793493862,503.62921320365,523.2511306012],description:"Wilson 11-limit scale"},wilson_l2:{frequencies:[261.6255653006,267.07609791103,279.79400733536,287.78812183066,294.32876096318,305.22982618403,314.76825825228,327.03195662575,335.75280880244,348.83408706747,359.73515228832,373.05867644715,381.53728273004,392.4383479509,411.12588832951,419.69101100305,436.04260883433,447.67041173658,457.84473927605,479.64686971777,490.54793493862,503.62921320365,523.2511306012],description:"Wilson 11-limit scale"},wilson_l3:{frequencies:[261.6255653006,269.80136421624,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,332.97799220076,343.38355445704,359.73515228832,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,499.46698830115,523.2511306012],description:"Wilson 11-limit scale"},wilson_l4:{frequencies:[261.6255653006,267.07609791103,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,356.10146388137,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Wilson 11-limit scale"},wilson_l5:{frequencies:[261.6255653006,267.07609791103,279.79400733536,285.40970760065,299.00064605783,305.22982618403,313.95067836072,327.03195662575,332.97799220076,348.83408706747,356.10146388137,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,479.64686971777,488.36772189445,508.71637697339,523.2511306012],description:"Wilson 11-limit scale"},wilson_l6:{frequencies:[261.6255653006,267.57160087561,277.4816601673,285.40970760065,294.32876096318,305.22982618403,312.16686768822,327.03195662575,332.97799220076,348.83408706747,356.76213450082,369.97554688974,381.53728273004,392.4383479509,406.97310157871,416.22249025095,436.04260883433,443.97065626768,457.84473927605,475.68284600109,490.54793493862,499.46698830115,523.2511306012],description:"Wilson 1 3 7 9 11 15 eikosany plus 9/8 and tritone. Used Stearns: Jewel"},window:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,297.67175429757,306.59245933664,327.03195662575,334.88072358477,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,446.50763144636,459.88868900496,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"Window lattice"},wonder1:{frequencies:[261.6255653006,272.72256190885,277.86237426839,283.09905309511,288.43442562998,293.8703485525,299.4087202614,312.10830899518,317.99039712482,323.98334274799,330.08923137594,336.31019538088,342.64839962317,357.18202566262,363.91358676728,370.77201292014,377.75969724053,384.87907140314,392.13262172187,408.76514672187,416.46885901676,424.31776026786,432.3145818485,440.46211650535,448.76319953449,467.79774494453,476.61400354229,485.59641603135,494.74811665626,504.07229015717,513.57219283465,523.2511306012],description:"Wonder Scale, gen=~233.54 cents, 8/7+1029/1024^7/25, LS 12:14:18:21, M.Schulter"},wonder36:{frequencies:[261.6255653006,271.89678302796,277.18263097687,282.57123920205,288.06460709314,293.66476791741,299.37379946195,311.12698372208,317.17549194805,323.3415889232,329.62755691287,336.03572815422,342.56848033562,356.01745236555,362.93866220634,369.99442271164,377.18735172911,384.52011812375,391.99543598175,407.38487419079,415.30469757995,423.37848741825,431.60923940535,440,448.5538823653,466.16376151809,475.22628419761,484.46499093218,493.88330125613,503.48470957687,513.27277840175,523.2511306012],description:"Wonder Scale, 36-tET version"},wronski:{frequencies:[261.6255653006,277.97716313189,294.32876096318,308.86351459099,327.03195662575,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,463.29527188648,494.18162334558,523.2511306012],description:`Wronski's scale, from Jocelyn Godwin, "Music and the Occult", p. 105.`},wurschmidt:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,331.11985608357,353.19451315581,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's normalised 12-tone system"},wurschmidt1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,502.32108537715,523.2511306012],description:"W\xEF\xBF\xBDrschmidt-1 19-tone scale"},wurschmidt2:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,484.4917875937,502.32108537715,523.2511306012],description:"W\xEF\xBF\xBDrschmidt-2 19-tone scale"},wurschmidt_31:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,476.27480687611,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 31-tone system"},wurschmidt_31a:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,372.08969287196,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,476.27480687611,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 31-tone system with alternative tritone"},wurschmidt_53:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,319.36714514233,321.48549464138,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.43299207996,418.60090448096,425.82286018978,428.6473261885,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.27480687611,484.4917875937,490.54793493862,496.11959049595,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 53-tone system"},wurschmidt_temp:{frequencies:[261.6255653006,270.6876810201,276.46178051834,282.35904862511,288.38211267756,294.53365605714,300.81641938515,307.23320174366,313.78686192261,320.48031969341,327.31655710978,338.6540596739,345.87796520471,353.25596548096,360.79134753214,368.48746850413,376.34775715481,384.37571538166,392.57491978195,400.94902556208,409.5017589506,423.68596790742,432.72370810117,441.95423435346,451.38165902684,461.01018486849,470.84409628664,480.88777706987,491.14570185547,501.62244073019,512.32266126632,523.2511306012],description:"W\xEF\xBF\xBDrschmidt temperament, 5-limit, g=387.744375, 5-limit"},"t-side":{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Tau-on-Side"},"t-side2":{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"Tau-on-Side opposite"},tagawa_55:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,296.50897400735,299.00064605783,301.87565226992,305.22982618403,307.79478270659,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,442.75095666255,444.76346101102,448.50096908674,453.48431318771,457.84473927605,461.69217405988,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Rick Tagawa, 17-limit diamond subset with good 72-tET approximation, 2003"},tamil:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,372.50983809402,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Possible Tamil sruti scale. Alternative 11th sruti is 45/32 or 64/45"},tamil_vi:{frequencies:[261.6255653006,275.62199471997,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.91095120397,387.59343007496,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Vilarippalai scale in Tamil music, Vidyasankar Sundaresan"},tamil_vi2:{frequencies:[261.6255653006,275.62199471997,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.49599295996,387.59343007496,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Vilarippalai scale with 1024/729 tritone"},tanaka:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,331.11985608357,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"26-note choice system of Shoh\xEF\xBF\xBD Tanaka, Studien i.G.d. reinen Stimmung (1890)"},tanbur:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,306.66732929008,314.73752216614,323.24394168414,332.22294006425,341.71502406609,351.76546595039,523.2511306012],description:"Sub-40 tanbur scale"},tansur:{frequencies:[261.6255653006,275.71279889585,293.19126194179,310.07474405997,328.21516866261,348.83408706747,367.61706537823,391.78834765065,413.56919813705,438.48689188122,465.11211608996,491.022754507,523.2511306012],description:"William Tans'ur temperament from A New Musical Grammar (1746) p. 73"},tartini_7:{frequencies:[261.6255653006,294.32876096318,313.95067836072,367.91095120397,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Tartini (1754) with 2 neochromatic tetrachords, 1/1=d, Minor Gipsy (Slovakia)"},taylor_g:{frequencies:[261.6255653006,274.70684356563,287.78812183066,294.32876096318,313.95067836072,353.19451315581,366.27579142084,392.4383479509,412.06026534844,418.60090448096,431.68218274599,470.92601754108,523.2511306012],description:"Gregory Taylor's Dutch train ride scale based on pelog_schmidt"},taylor_n:{frequencies:[261.6255653006,275.93341798027,292.67158636845,310.42509491746,327.40170814054,348.83408706747,367.9112241576,391.33200541501,413.90012676351,437.76975193523,465.63764214343,491.10256480205,523.2511306012],description:"Nigel Taylor's Circulating Balanced temperament (20th cent.)"},telemann:{frequencies:[261.6255653006,264.94361147373,271.70648167539,275.15237829755,278.64197723942,282.17583275232,289.3785657319,293.0485888979,296.76515515861,300.52885648597,304.34029066685,308.20006306951,312.10878854255,316.06708432391,324.13491490251,328.24573110938,332.40868242763,336.62443200122,345.21700307457,349.59519124833,354.02890545793,363.06573983159,367.67029324081,372.33324354561,377.05533136015,386.67993129161,391.58396987353,396.55020354877,406.67242132093,411.83001550364,417.05301810033,422.34226102699,433.12283887627,438.61588607285,444.17860098504,449.81186203693,461.29362042034,467.14394139401,473.06846134744,485.14386048744,491.29666030217,497.52749252881,503.83734680745,516.69814597997,523.2511306012],description:"G.Ph. Telemann (1767). 55-tET interpretation of Klang- und Intervallen-Tafel"},telemann_28:{frequencies:[261.6255653006,264.94361147373,275.15237829755,278.64197723942,293.0485888979,296.76515515861,308.20006306951,312.10878854255,328.24573110938,332.40868242763,345.21700307457,349.59519124833,354.02890545793,367.67029324081,372.33324354561,386.67993129161,391.58396987353,396.55020354877,406.67242132093,411.83001550364,438.61588607285,444.17860098504,461.29362042034,467.14394139401,473.06846134744,491.29666030217,497.52749252881,516.69814597997,523.2511306012],description:"Telemann's tuning as described on Sorge's monochord, 1746, 1748, 1749"},"temes-mix":{frequencies:[261.6255653006,306.31659399917,323.38698268281,342.47239171077,361.55773069062,378.62819763364,399.72843132859,423.31905787312,446.91000942727,523.2511306012],description:"Temes' 5-tone Phi scale mixed with its octave inverse"},"temes-ur":{frequencies:[261.6255653006,306.31659399917,323.38703872151,342.47239171077,361.55773069062,423.31905787312],description:"Temes' Ur 5-tone phi scale"},temes:{frequencies:[261.6255653006,306.31659399917,323.38703872151,342.47239171077,361.55773069062,423.31905787312,495.63057556553,523.2511306012,554.13187513888,585.01259700885,684.94462120932],description:"Temes' 5-tone Phi scale / 2 cycle"},"temes2-mix":{frequencies:[261.6255653006,306.31659399917,323.38698268281,342.47239171077,361.55773069062,399.72843132859,423.31905787312,468.0102705885,495.63057556553,523.2511306012,552.41124604023,585.01259700885,646.77396536561,684.94438778203,757.25639526728,799.45686265718,846.63811574624,893.82001885454,1046.5022612024],description:"Temes' 2 cycle Phi scale mixed with its 4/1 inverse"},temp10coh:{frequencies:[261.6255653006,279.06726965397,299.10339764541,320.57805584394,343.5945271479,368.2635494613,394.70435354475,423.05284121745,453.57582505819,488.36772189445,523.2511306012],description:"Differential coherent 10-tone scale, OdC, 2003"},temp10ebss:{frequencies:[261.6255653006,280.43397904206,300.58585223371,322.17714382919,345.31067040124,370.09659148016,396.65293718743,425.1061627261,455.59176355181,488.25490599611,523.2511306012],description:`Cycle of 10 equal "beating" 15/14's`},temp11ebst:{frequencies:[261.6255653006,278.68301283272,296.80966039395,316.07252488244,336.70993118161,358.64093492832,381.94662420398,406.71316497313,433.24697173408,461.44397806515,491.40843569917,523.2511306012],description:"Cycle of 11 equal beating 9/7's"},temp12coh3:{frequencies:[261.6255653006,279.8393060116,294.68135606466,311.32770136359,332.21069717879,353.56473801237,370.2386298036,397.61708850394,418.97112933752,440.1984563065,471.2874275201,496.80305467842,523.2511306012],description:"Differential coherent scale, interval=3, OdC, 2003"},temp12ebf:{frequencies:[261.6255653006,277.18807786937,293.58315284916,311.09098010692,329.5354160273,349.23174343306,369.98176018664,391.84186131702,415.18563115404,439.77824302677,466.03998256716,493.70667148145,523.2511306012],description:"Equal beating temperament tuned by The Best Factory Tuners (1840)"},temp12ebf4:{frequencies:[261.6255653006,276.98801737971,293.51517393789,310.79793252689,329.39098365485,348.83408706747,369.75126958642,391.78747833067,414.83115644933,439.62189128662,465.54602917011,493.43560586205,523.2511306012],description:"Eleven equal beating fifths and just fourth"},temp12ebfo:{frequencies:[261.6255653006,277.20265787963,293.64844512428,311.16011036869,329.64835309433,349.33484978517,370.11921182839,392.06266066657,415.42830219132,440.09698059047,466.36447845344,494.0968438935,523.62658899088],description:"Equal beating fifths and fifth beats twice octave at C"},temp12ebfp:{frequencies:[261.6255653006,277.75307788644,293.77513637875,310.82931496301,329.94340332986,349.12935317325,370.63270249518,391.99544730302,416.18671544528,440.21980402758,465.80107112682,494.47220378931,523.2511306012],description:"All fifths except G#-Eb beat same as 700 c. C-G"},temp12ebfr:{frequencies:[261.6255653006,277.1880780098,293.58315312731,311.09097992515,329.53543943235,349.23174457993,369.98176152553,391.84186168221,415.185630746,439.77824342227,466.03998361904,493.70667287983,523.2511306012],description:"Exact values of equal beating temperament of Best Factory Tuners (1840)"},temp12ep:{frequencies:[261.6255653006,277.19910487213,293.6996776193,311.18246278326,329.70593120198,349.3320268423,370.12638880276,392.15855510068,415.50221189151,440.23542223935,466.44090588941,494.20629608476,523.62445363767],description:"Pythagorean comma distributed equally over octave and fifth: 1/19-Pyth comma"},temp12fo1o:{frequencies:[261.6255653006,277.20349049726,293.7089710611,311.19723286579,329.72679517909,349.35966199273,370.1615231373,392.20198585541,415.5548023839,440.29810917508,466.51470234738,494.29230838881,523.72386870485],description:"Fifth beats same octave opposite"},temp12fo2o:{frequencies:[261.6255653006,277.19623399848,293.69359242342,311.17279259662,329.69226891672,349.31393351076,370.10338107372,392.13011658806,415.46777521802,440.19437666896,466.39258399594,494.14997995304,523.55935978973],description:"Fifth beats twice octave opposite"},temp12p10:{frequencies:[261.6255653006,277.12003622197,293.53214922797,310.91625060765,329.32990524605,349.3071136959,369.493381814,391.90691363044,415.11714643072,439.70197837153,465.74281849401,493.32589719545,523.2511306012],description:"1/10-Pyth. comma well temperament"},temp12p6:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,349.6228209638,367.9112241576,391.5530240856,413.43299207996,438.51190905657,466.16376151809,491.10256480205,523.2511306012],description:"Modified 1/6-Pyth. comma temperament"},temp12p8:{frequencies:[261.6255653006,277.02617059261,293.33333347996,310.60041853231,328.88393162803,349.42547049952,369.36822764145,391.77416758435,414.83597850347,439.25532436715,465.90062756558,492.49097043477,523.2511306012],description:"1/8-Pyth. comma well temperament"},temp12p8a:{frequencies:[261.6255653006,276.55731914056,293.33333347996,311.12698372208,328.88393162803,349.42547049952,368.74309237173,391.77416758435,414.83597850347,439.25532436715,466.69047534984,492.49097043477,523.2511306012],description:"1/8-Pyth. comma well temperament, consecutive just fifths"},temp12s17:{frequencies:[261.6255653006,275.41266079541,292.61316553779,309.9334225479,327.2710181906,348.78108411875,367.16108497228,391.29294726693,413.18177371806,437.63868343995,464.97078294553,490.98112850332,523.2511306012],description:'4/17th synt. comma "well"-temperament. OdC 1999'},temp12s3:{frequencies:[261.6255653006,275.79485124716,293.07576161921,310.19140758515,326.99095182327,348.87783040382,367.77258074571,390.81668391305,413.640406907,437.79703699716,465.22877230071,490.42492909292,523.2511306012],description:'1/3 synt. comma "well"-temperament. OdC 1999'},temp12septendec:{frequencies:[261.6255653006,277.01530443593,293.31032234393,310.5638707171,328.83233370046,348.17541215342,368.65631875068,390.34198455955,413.30334035457,437.61515184999,463.35732874365,494.18162334558,523.2511306012],description:"Scale with 18/17 steps"},temp12w2b:{frequencies:[261.6255653006,276.80621914251,293.38957467182,310.9374037046,329.12408537692,349.33498699812,369.32540968366,391.68699838314,414.83365420901,439.33301386008,466.03043161756,492.93477894539,523.2511306012],description:"The fifths on white keys beat twice the amount of fifths on black keys"},temp15coh:{frequencies:[261.6255653006,273.98642352939,286.93424587686,300.52595924487,314.76156220527,329.6715499436,345.28562122078,360.48992106995,377.61407292725,395.54746439596,414.33033691342,434.93480826785,455.53927928881,477.11963158959,499.65025190386,523.2511306012],description:"Differential coherent 15-tone scale, OdC, 2003"},temp15ebmt:{frequencies:[261.6255653006,274.13344448045,287.10161388969,300.54701305042,315.02372625978,330.03318193885,345.59498492211,361.72946206059,379.10151766291,397.1128647533,415.78702800292,435.14840215297,455.99486887387,477.60848441971,500.01748339385,523.2511306012],description:"Cycle of 15 equal beating minor thirds"},temp15ebsi:{frequencies:[261.6255653006,274.09084013406,287.01483652929,300.41443756554,314.84183942382,329.80016763418,345.30896502873,361.38848559819,378.7013656391,396.65136316555,415.2619179078,434.55734100747,455.33280077531,476.87279531786,499.20546063174,523.2511306012],description:"Cycle of 15 equal beating major sixths"},temp15mt:{frequencies:[261.6255653006,272.10155294862,290.46827626332,302.09918118188,314.19580976213,326.77681046955,348.83408706747,362.80207077951,377.32935907335,392.4383479509,418.92774655891,435.70241417719,453.14877154631,471.29371440761,503.10581234929,523.2511306012],description:"Cycle of 15 minor thirds, Petr Parizek"},temp16d3:{frequencies:[261.6255653006,272.52663052146,287.69189096389,299.67905363019,312.16568143019,325.17258353382,338.72144179457,352.83483584176,372.46899992671,387.98854005196,404.15472995283,420.99451113006,438.53594735503,462.93911228358,482.22824196207,502.32108537715,523.2511306012],description:"Cycle of 16 thirds tempered by 1/3 small diesis"},temp16d4:{frequencies:[261.6255653006,271.36369423603,291.82218013836,302.68427617679,313.95067836072,325.63643364742,337.75715313333,350.32902355546,376.74081403286,390.76372105392,405.30858212106,420.39482899491,436.04260883433,468.91646607712,486.37029938793,504.47379566792,523.2511306012],description:"Cycle of 16 thirds tempered by 1/4 small diesis"},temp16ebs:{frequencies:[261.6255653006,273.35566334732,285.38860666159,297.73221513295,311.13803992337,324.88997598926,338.996955196,354.31789928052,370.0343963911,386.15666093499,403.66631166114,421.62802297921,440.05346707662,460.0644954801,480.59216613216,501.64981691394,523.2511306012],description:"Cycle of 16 equal beating sevenths"},temp16ebt:{frequencies:[261.6255653006,273.54317752885,285.74681450472,298.24333695649,311.03977535434,324.14332902314,339.04034606654,354.29488987405,369.91554384313,385.91109319424,402.29053605603,420.91180538217,439.97998583037,459.50580330844,479.50024102158,499.97454326842,523.2511306012],description:"Cycle of 16 equal beating thirds"},temp16l4:{frequencies:[261.6255653006,278.81939890042,286.59644689091,305.43134787805,313.95067836072,322.70763593891,343.91573686494,353.50850469302,376.74081403286,387.24916379762,412.69888495295,424.21020636659,436.04260883433,464.69899736225,477.66074674968,509.05224558146,523.2511306012],description:"Cycle of 16 fifths tempered by 1/4 major limma"},temp17c10:{frequencies:[261.6255653006,278.13248184697,287.25399162485,296.67464640038,315.39293803189,325.73642523995,336.41913481987,347.45218787195,369.37422084479,381.48805431277,393.9991677018,418.85802036446,432.59470262079,446.78188702878,474.97099505857,490.54793493862,506.63572944675,523.2511306012],description:'Cycle of 17 fifths tempered by 1/10 of "17-tET comma"'},temp17c11:{frequencies:[261.6255653006,276.93071634298,286.5293181416,296.46061382736,313.80362259461,324.68026371274,335.93389640617,347.57758745223,367.91095120397,380.66298908833,393.8570200719,416.89773925535,431.34769064645,446.29848691039,472.40704302301,488.78098359819,505.72245578392,523.2511306012],description:'Cycle of 17 fifths tempered by 1/11 of "17-tET comma"'},temp17c12:{frequencies:[261.6255653006,275.93321340298,285.92682111936,296.28237159295,312.48531442823,323.80274674587,335.53006800342,347.68212334757,366.69599021774,379.97679689512,393.73860099464,415.27118158544,430.3112595477,445.8960513142,470.2809925818,487.31338757149,504.96265307831,523.2511306012],description:'Cycle of 17 fifths tempered by 1/12 of "17-tET comma"'},temp17c13:{frequencies:[261.6255653006,275.09197878886,285.41800532755,296.13163442011,311.37414725128,323.06208421743,335.18874504319,347.77059980835,365.67107999768,379.3971387881,393.63842979584,413.89982010446,429.43622376713,445.55581352332,468.48950048969,486.07501593832,504.32063522708,523.2511306012],description:'Cycle of 17 fifths tempered by 1/13 of "17-tET comma"'},temp17c14:{frequencies:[261.6255653006,274.37296298479,284.98259752889,296.00249241327,310.42486507835,322.42857866752,334.89645942743,347.84645641687,364.79486552165,378.90099378095,393.5525871037,412.72797362103,428.68761089217,445.26438593469,466.95936897503,485.01606158014,503.77098227424,523.2511306012],description:'Cycle of 17 fifths tempered by 1/14 of "17-tET comma"'},temp17c15:{frequencies:[261.6255653006,273.75133628611,284.60578240525,295.8906154666,309.60449456672,321.88054534371,334.64335075548,347.91221098893,364.0371787025,378.47152629398,393.47820661021,411.71505587788,428.03986711385,445.01196937812,465.63729761752,484.10016650719,503.29510175355,523.2511306012],description:'Cycle of 17 fifths tempered by 1/15 of "17-tET comma"'},temp17ebf:{frequencies:[261.6255653006,272.44226039746,283.83762774933,295.84262353625,308.01140541539,320.83119298602,334.33681303028,348.02669374128,362.44895565855,377.64277622383,393.64943714798,409.87448211667,426.96753159265,444.97502525992,463.22819966593,482.45788080796,502.71631088044,523.2511306012],description:"Cycle of 17 equal beating fifths"},temp17ebs:{frequencies:[261.6255653006,272.25303191034,284.09302419378,294.99486987374,307.14054534497,320.67196534338,333.1312181383,347.01199086095,362.47647062671,376.71561430061,392.57935523584,410.25304697073,426.52635565248,444.65634289229,464.854847056,483.45291583119,504.17290303449,523.2511306012],description:"Cycle of 17 equal beating sevenths"},temp17fo2:{frequencies:[261.6255653006,272.49443630436,283.81483782984,295.60553136463,307.88605111976,320.67674980257,333.99881838086,347.87433573796,362.32629011314,377.37863296804,393.05630224552,409.38528080469,426.39262165238,444.10651133426,462.55629730628,481.77255670213,501.78712602614,522.6331757532],description:"Fifth beats twice octave"},temp17nt:{frequencies:[261.6255653006,272.67141175251,283.62400127587,295.59862296305,308.07881564783,321.08592105074,333.98321109015,348.08400151932,362.78013022893,377.35217954558,393.28401259522,409.88848628312,426.35277308246,444.35341180422,463.11404114636,482.66674266598,502.05436630802,523.2511306012],description:"17-tone temperament with 27/22 neutral thirds"},temp17s:{frequencies:[261.6255653006,272.47577100117,283.83144686231,295.66037914716,307.98229466369,320.75501909295,334.12277657932,348.04764753103,362.48197303348,377.58873713905,393.32509157531,409.63717539588,426.70917767843,444.49267120113,463.01730800927,482.21968335939,502.31662775181,523.2511306012],description:"Cycle of 17 fifths tempered by 2 schismas. Schulter, Tuning List 10-9-98"},temp19d5:{frequencies:[261.6255653006,270.66831710441,280.02362001571,289.70227696231,304.50185643804,315.02657220273,325.91506125677,337.17989695691,348.83408706747,360.89108965294,379.3273836973,392.4383479509,406.00247545366,420.03542981361,434.55341522625,449.57319616728,472.53985806789,488.87259164079,505.76984518255,523.2511306012],description:"Cycle of 19 thirds tempered by 1/5 small diesis. Third = 3\\5"},temp19ebf:{frequencies:[261.6255653006,271.21349495395,281.45216719787,291.55303152151,302.33945232218,313.85796000757,325.22143162672,337.35615460362,350.31447634238,363.09838134063,376.74994653359,390.21776437961,404.59965986997,419.95766938963,435.10896436483,451.288596451,468.56635736893,485.61156561298,503.81364896584,523.2511306012],description:"Cycle of 19 equal beating fifths"},temp19ebmt:{frequencies:[261.6255653006,271.3515811897,281.43551369743,291.89053542337,302.73030209663,313.98726376766,325.65848288741,337.75920164946,350.30522706536,363.3129458114,376.82130195458,390.82676353803,405.34762742982,420.40285701732,436.01212051281,452.22214724761,469.0287008844,486.45373685079,504.52001310976,523.2511306012],description:"Cycle of 19 equal beating minor thirds"},temp19ebo:{frequencies:[261.6255653006,277.22364042749,293.65618047886,311.2040149966,329.6906225544,349.43193638686,370.22936988938,392.1394232912,415.53653598153,440.18534605859,466.50709783521,494.2370091719,523.84897992059,555.04513017437,587.91021027711,623.0058793126,659.97909442818,699.46172209312,741.05658909815,784.8766959018],description:"Cycle of 19 equal beating octaves in twelfth"},temp19ebt:{frequencies:[261.6255653006,271.59402175166,281.80172126331,292.25440577595,302.95795550425,313.91838845704,325.14187338321,337.60244413755,350.36206814823,363.42792409681,376.80735887968,390.50790160795,404.53725818867,420.11297167574,436.06250107414,452.39482160095,469.11911613638,486.2447950704,503.78149001575,523.2511306012],description:"Cycle of 19 equal beating thirds"},temp19k10:{frequencies:[261.6255653006,271.76196854941,282.29109592175,293.22816309454,304.58897525989,314.09773337131,326.2671147593,338.90798583865,352.03861397416,365.67797428016,377.09383089344,391.70392883316,406.88007915549,422.6442137645,439.01911266466,452.72455471179,470.26488431194,488.48479525859,507.41061720556,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/10 kleisma"},temp19k3:{frequencies:[261.6255653006,272.95237156345,284.76956174698,297.09836322231,309.96092731219,314.44113201634,328.05453510669,342.25731432435,357.07498823553,372.53417996774,377.91882441317,394.28042610165,411.35038641496,429.15937528906,447.73938330242,454.2110508691,473.87564511273,494.39160029408,515.79576952378,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/3 kleisma"},temp19k4:{frequencies:[261.6255653006,272.52663052146,283.88190679319,295.71031957624,308.03158289191,314.31844786309,327.4150485592,341.05734286691,355.26806612985,370.07090075127,377.62397563434,393.35830866491,409.74823893478,426.8210805314,444.6052930255,453.67960031314,472.58291784883,492.27387080735,512.78528301977,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/4 kleisma"},temp19k5:{frequencies:[261.6255653006,272.27150423996,283.35064249518,294.88062803952,306.8797443789,314.24485853342,327.03195662575,340.33937954017,354.18830437416,368.6007608062,377.44717941318,392.80607455881,408.78994578219,425.42422593284,442.73537947933,453.36102900438,471.8089732132,491.00759210237,510.98743222773,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/5 kleisma"},temp19k6:{frequencies:[261.6255653006,272.10155294862,282.99701916355,294.32876096318,306.11424676116,314.19580976213,326.77681046955,339.86157848985,353.47028562902,367.62391141072,377.32935907335,392.4383479509,408.1523292189,424.49552853314,441.49314144476,453.14877154631,471.29371440761,490.16521545931,509.79236747994,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/6 kleisma"},temp19k7:{frequencies:[261.6255653006,271.9802243463,282.7447017667,293.93521741989,305.56863311614,314.16077935352,326.59468561952,339.52070304385,352.95830848174,366.92774752709,377.24522513926,392.17589782962,407.69749910471,423.83341578697,440.60837682578,452.99722066906,470.92601754108,489.56440442681,508.94046380742,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/7 kleisma"},temp19k8:{frequencies:[261.6255653006,271.88926339885,282.55561052465,293.64040364533,305.16005936662,314.13450956378,326.45815718343,339.26526937521,352.57481080357,366.4064920117,377.18213591051,391.97917444376,407.35670799125,423.33750965456,439.94524339387,452.88359011983,470.65043349884,489.11427877975,508.30246674991,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/8 kleisma"},temp19k9:{frequencies:[261.6255653006,271.81853598083,282.40862793607,293.41130980736,304.84265779003,314.11407882217,326.35200974457,339.06673262958,352.27682225125,366.00158141044,377.13307501509,391.82623534045,407.09184571451,422.95220417284,439.43048454013,452.79523167251,470.4362008006,488.76446469244,507.80680338678,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/9 kleisma"},temp19lst:{frequencies:[261.6255653006,270.56149416036,279.80263334807,289.3594074481,304.78245180412,315.19242188443,325.95794877725,337.09117667186,348.60466454729,360.5114003397,379.7268899367,392.69661814622,406.10933276067,419.98016416303,434.32475952075,449.15930043669,473.09978287909,489.25870067642,505.96953296163,523.2511306012],description:"Cycle of 19 least squares thirds 5/4^5 = 3/2"},temp19lst2:{frequencies:[261.6255653006,270.86681403244,280.43448605562,290.34011310859,303.98143643885,314.71879896063,325.83542931914,337.34472599098,349.26055890156,361.59728998429,378.58655645252,391.95915298383,405.80409975455,420.1380835834,434.97837844393,450.34287106955,471.50175486263,488.15634183652,505.39920634693,523.2511306012],description:"Cycle of 19 least squares thirds 5/4, 3/2 (5), 6/5 (4)"},temp21ebs:{frequencies:[261.6255653006,270.48603901573,279.57527100587,288.89916626223,298.46378542286,308.59004184051,318.97773454914,329.63361550747,340.56460989801,352.13747205507,364.00912264098,376.18727282918,388.67983604901,401.90596519454,415.47356606258,429.3914526989,443.66866815503,458.78424493347,474.29007331382,490.19622772738,506.51304733863,523.2511306012],description:"Cycle of 21 equal beating sevenths"},temp22ebf:{frequencies:[261.6255653006,269.81217946012,278.43675961795,287.52273893052,297.09479717246,306.30473778727,316.00739221221,326.22911792828,336.99768333647,347.35886661388,358.27435338478,369.77379349451,381.88843101834,394.65117841871,406.93109909525,419.8679691216,433.49693671533,447.85502662133,461.66993710068,476.2239184443,491.55650493929,507.70935693135,523.2511306012],description:"Cycle of 22 equal beating fifths"},temp22ebt:{frequencies:[261.6255653006,270.16401944699,278.90739732088,287.86061708193,297.02871287074,306.4168425362,316.03028815926,325.87445510174,336.54752540671,347.4767459334,358.66827061689,370.12838991426,381.86355177507,393.88036006393,406.18556836568,419.52690380046,433.1884314408,447.17783799964,461.50298590676,476.17193984405,491.19294816955,506.57446222015,523.2511306012],description:"Cycle of 22 equal beating thirds"},temp22fo2:{frequencies:[261.6255653006,269.97341665226,278.58762814388,287.47669703533,296.64939669548,306.114775449,315.88217199169,325.96122111215,336.36187067071,347.09438029185,358.16933884319,369.59767092309,381.39065611261,393.55992749281,406.11749146369,419.07573510033,432.44744798202,446.24582051114,460.48446638525,475.17743368268,490.33921589034,505.98477744485,522.12955176559],description:"Fifth beats twice opposite rate as octave"},temp23ebs:{frequencies:[261.6255653006,269.54528659271,277.75645349026,286.26979186473,295.09642104593,304.24787054065,313.41421505132,322.9178815064,332.77128133421,342.98728793362,353.5792427091,364.56098080918,375.56059498003,386.96499273375,398.78907363541,411.04828247111,423.75862731373,436.93671323096,450.13624919654,463.82153026575,478.01042762353,492.72147385367,507.97388874722,523.2511306012],description:"Cycle of 23 equal beating major sixths"},temp24ebaf:{frequencies:[261.6255653006,269.28287293678,277.23083697142,285.33112867981,293.73889258015,302.30779732819,311.20195864933,320.26658492056,329.67528611807,339.26431305611,349.21731641877,359.36108127338,369.88988063787,380.8183283077,391.95623237686,403.5169050439,415.29914897519,427.52862168357,439.9924847314,452.92944495636,466.1143590732,479.79973930305,493.74741628009,508.22451419243,523.2511306012],description:"Cycle of 24 equal beating 11/8's"},temp24ebf:{frequencies:[261.6255653006,269.29177952703,277.18807786937,285.37455545576,293.58315284916,302.20762754558,311.09098010692,320.17688686519,329.5354160273,339.23795459232,349.23174343306,359.45337270909,369.98176018664,380.89707445632,391.84186131702,403.3411703213,415.18563115404,427.4653330282,439.77824302677,452.71493931339,466.03998256716,479.66882917609,493.70667148145,508.26043277122,523.2511306012],description:"24-tone ET with 23 equal beatings fifths. Fifth on 17 slightly smaller."},temp25ebt:{frequencies:[261.6255653006,269.07040607882,276.69392272178,284.50040351526,292.49424189123,300.67993013952,309.06207502162,317.64539198503,326.43470939254,335.74076076764,345.27015661764,355.02825763358,365.02055286832,375.25266439783,385.73034580726,396.45949385543,407.44613828076,419.07870286007,430.99044652419,443.18807578441,455.67844358274,468.46858279232,481.56568677979,494.97711759939,508.71042703507,523.2511306012],description:"Cycle of 25 equal beating thirds"},temp26eb3:{frequencies:[261.6255653006,268.53506427639,276.23413316293,283.52944261778,291.01742029734,298.70315454572,307.26715974579,315.38204761281,323.71124866952,332.26042290088,341.78653782772,350.81307822085,360.07800843467,370.40166886388,380.18393134541,390.22454217496,400.5303243006,412.0137801623,422.89501338113,434.06361862988,445.5271853685,458.30072684004,470.40439262311,482.82771472967,495.57913524385,509.78770018956,523.2511306012],description:"Cycle of 26 fifths, 5/4 beats three times 3/2"},temp26ebf:{frequencies:[261.6255653006,268.42568455944,275.6873347244,283.44184249631,290.6057533496,298.25588724353,306.42524452376,315.14906491362,323.2084665433,331.81486605817,341.00539333861,350.8196903474,359.88651586494,369.56871668171,379.90806097321,389.45994242989,399.66012078319,410.55259814459,422.18435687733,432.93022440227,444.40542617247,456.65946119637,469.74519313893,481.83429211771,494.74389287961,508.52968420524,523.2511306012],description:"Cycle of 26 equal beating fifths"},temp26ebmt:{frequencies:[261.6255653006,268.65375733515,276.22103845862,283.50786797993,291.35362426947,298.90860888253,307.04308924768,315.80151824033,324.23534814673,333.31608510092,342.06028051348,351.47518831899,360.54116941247,370.30254728737,380.81265974123,390.93325547321,401.83014055422,412.32317421544,423.62106542614,434.50024245702,446.21389528982,458.82603004394,470.97074536855,484.04700949484,496.63864979835,510.1961187079,523.2511306012],description:"Cycle of 26 equal beating minor thirds"},temp26ebs:{frequencies:[261.6255653006,268.70854008298,275.97438147252,283.42781183148,291.07367309004,298.91693448926,307.01176285104,315.31558194419,323.83378869523,332.57191674,341.53564330438,350.78687613393,360.27695513986,370.01204624828,379.9984780646,390.24273934583,400.81557597059,411.66137956276,422.7871998129,434.200265189,445.90799193987,457.99123299379,470.38643795716,483.10166179174,496.14516363988,509.5254229925,523.2511306012],description:"Cycle of 26 equal beating sevenths"},temp27c8:{frequencies:[261.6255653006,268.8683660761,273.88218275531,281.46429379013,289.25630678777,297.26403435806,305.49344487497,313.95067836072,319.80518189674,328.65861797738,337.75715313333,347.10756874671,356.7168418477,363.36884069528,373.42828707985,383.76621672426,394.39034225616,405.30858212106,412.86671295557,424.29645219584,436.04260883433,448.1139452722,460.51946086698,473.26841152735,482.09384659572,495.44005640506,509.15574351714,523.2511306012],description:"Cycle of 27 fifths tempered by 1/8 of difference between augm. 2nd and 5/4"},temp27eb2:{frequencies:[261.6255653006,268.46319812592,275.47953375729,282.6792426258,290.06711722511,297.6480770209,305.21714541248,313.19405229436,321.37943712173,329.77875040935,338.39757940759,347.00289091411,356.07187808578,365.37788286775,374.92710181611,384.72589137834,394.78077412888,404.81988946592,415.39993259502,426.25648711974,437.39677971686,448.82822593369,460.24174609969,472.27024976331,484.61312060812,497.27857467888,510.27504274822,523.2511306012],description:"Cycle of 27 fourths, 5/4 beats twice 4/3"},temp28ebt:{frequencies:[261.6255653006,268.20719354764,274.94677993062,281.84811597329,288.91508487862,296.15166190523,303.56191452522,311.15001492268,318.92023016627,326.87692943437,335.10396312415,343.5284476344,352.15511767098,360.98882840285,370.03454814671,379.29736707683,388.78249121135,398.49525813745,408.44113355924,418.72492751128,429.25553103998,440.03886948281,451.08100913788,462.38815755283,473.96667987616,485.82308640697,497.96404651665,510.39638953936,523.2511306012],description:"Cycle of 28 equal beating thirds"},temp29c14:{frequencies:[261.6255653006,268.03384168485,274.59908446169,281.12309545065,288.00894581307,294.85155418799,302.07367045706,309.47268578827,316.82523654187,324.58557784847,332.29718551084,340.4364979057,348.77517523396,357.06148706459,365.80737813473,374.49834647311,383.67133729641,392.78672100419,402.40767098088,412.26427490957,422.0589810157,432.39692561869,442.66994710331,453.51274088813,464.62111626441,475.65973015548,487.31057837675,498.88825560972,511.10806227553,523.2511306012],description:"Cycle of 29 fifths 1/14 comma positive"},temp29ebf:{frequencies:[261.6255653006,267.97141371953,274.40384216744,281.08918054527,287.86573007783,294.90872015661,302.04780073409,309.28428172011,316.80528774769,324.42890571749,332.35226986162,340.383734589,348.52477529448,356.98590767403,365.56247629567,374.47626314535,383.51165984234,392.90231649713,402.42108995343,412.06973029551,422.09773822292,432.26256191617,442.8270465847,453.53566813958,464.39038927288,475.67189906986,487.10732348594,498.99237046175,511.03956815915,523.2511306012],description:"Cycle of 29 equal beating fifths"},temp29fo:{frequencies:[261.6255653006,267.94780983951,274.42283293416,281.05432651499,287.84607006616,294.80193939197,301.92589896847,309.2220107369,316.69443479624,324.34743177532,332.18536334326,340.21270232633,348.43402388135,356.85401564372,365.47747852664,374.30932945854,383.35460418662,392.61845788025,402.10617708826,411.82316930666,421.77497497272,431.96726840975,442.4058610624,453.0967048103,464.04589268124,475.25967298378,486.74443697706,498.50673304697,510.55326782272,522.89091000079],description:"Fifth beats with opposite equal rate as octave"},temp31c51:{frequencies:[261.6255653006,267.17944246504,273.80687224646,279.61933836952,286.55534345926,292.63843680803,298.85066583755,306.26370726525,312.76517639908,319.40466275447,327.32754956004,334.27616903285,342.56794607269,349.84009583671,357.26662128823,366.1286782788,373.90098334082,383.17565840352,391.30984260196,399.61670205031,409.52926208827,418.22288720188,428.59697681668,437.69538032917,446.98692528774,458.07451174337,467.79867446983,477.72926229583,489.57941763243,499.97237729845,512.37427391379,523.2511306012],description:"Cycle of 31 51/220-comma tempered fifths (twice diff. of 31-tET and 1/4-comma)"},temp31coh:{frequencies:[261.6255653006,267.17903658035,272.71444919697,278.8328003927,286.67318542907,292.31259119845,298.22448926086,305.9625493141,312.79375273624,319.37019903425,325.99008611032,333.53448283298,342.55073731576,349.35067604096,356.49690427728,365.94514964733,373.94225818849,381.74854907994,389.68867781295,401.66236977474,409.34549662494,417.52928752537,426.20510506248,437.61344561246,447.02040600938,456.30467151405,466.17931462488,479.8608061495,489.18804557359,499.02680928636,509.58872491278,523.2511306012],description:"Differential coherent 31-tone scale, interval=8, OdC, 2003"},temp31eb1:{frequencies:[261.6255653006,267.35556661283,273.21106374578,279.19480525048,287.36432599524,293.65804565963,300.08960744161,306.66203029506,313.37839929357,320.24186707858,327.25565533923,334.42305632458,341.74743438901,349.23222958864,356.8809512704,367.32364464292,375.36859607341,383.58974428421,391.99094825517,400.57615379751,409.34938620036,418.31476585427,427.47650107887,436.83889236244,446.40633438056,459.46863260649,469.5317006585,479.81516534138,490.32385367952,501.06269841655,512.03674033076,523.2511306012],description:"Cycle of 31 thirds, 3/2 beats equal 5/4. Third 1/18 synt. comma higher"},temp31eb1a:{frequencies:[261.6255653006,267.52830363402,273.56421824856,279.73631545395,286.19123047598,292.64821393201,299.25087842544,306.00251077972,312.90647197491,319.96619882071,327.18520755731,334.56708808783,342.11551697966,349.83425186023,357.90667665031,365.98168819447,374.23888853079,382.68238383924,391.31637942763,400.14517332125,409.17316051655,418.40483516889,427.84479530109,437.49773526159,447.36846272566,457.69148927209,468.01782376277,478.57713873597,489.37469064597,500.41585743254,511.7061296998,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats equal 7/4"},temp31eb2:{frequencies:[261.6255653006,267.43633367564,273.37616065041,279.44791264824,286.8151286113,293.18536340431,299.69708268426,306.35342885652,313.15761412007,320.11292201761,327.22270902014,334.4904061467,341.91952062013,349.51363755953,357.2764217104,366.69546492458,374.83986170174,383.16514754137,391.67534003419,400.37454600262,409.26696348258,418.35688374945,427.64869338884,437.14687641357,446.85601642745,458.63669049374,468.82312458207,479.23580188553,489.87974732177,500.7600974131,511.88210276525,523.2511306012],description:"Cycle of 31 thirds, 3/2 beats twice 5/4"},temp31eb2a:{frequencies:[261.6255653006,267.30377559621,273.10522335955,279.03258328435,287.71713441117,293.9616250555,300.34164347605,306.86013111019,313.520093235,320.3246003528,327.27678960683,334.37986622751,341.63710501026,349.05185182525,356.62752721996,367.72712485201,375.70811839104,383.86232802855,392.19351543866,400.70551714108,409.40225971792,418.28775270674,427.36609266644,436.64146506587,446.11814621352,460.00303307438,469.98674378481,480.18713671772,490.60891465214,501.25688243424,512.13594919255,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats twice 3/2"},temp31eb2b:{frequencies:[261.6255653006,267.52098517401,273.5492512983,279.71335720518,286.24081966732,292.69091492047,299.28635537219,306.03041620307,312.92644639599,319.97787039914,327.18818982659,334.56098519707,342.09991771207,349.80873107384,357.97195918064,366.0384300542,374.28666922186,382.72077261519,391.34492846269,400.16341936959,409.18062444454,418.40102147414,427.82918914659,437.46980932536,447.32766937413,457.76662230541,468.08184681118,478.62951259033,489.41485742956,500.44323714283,511.72012823096,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats twice 7/4 (7/4 beats twice 5/4 gives 31-tET)"},temp31ebf:{frequencies:[261.6255653006,267.58895287558,273.47207673981,279.84020613447,286.1226232561,292.32048149598,299.02929415269,305.64780689513,312.81195283539,319.87967238294,326.85226402826,334.39967773649,341.84550545999,349.90516819854,357.85635261941,365.7005167875,374.19135817901,382.56791460144,390.83172556312,399.77680617055,408.60149248083,418.153686518,427.57731316062,436.87410111252,446.93731687602,456.86508723973,467.61130449655,478.21288647115,488.67177324268,499.99289085438,511.16163412976,523.2511306012],description:"Cycle of 31 equal beating fifths"},temp31ebf2:{frequencies:[261.6255653006,268.47208070676,273.9410776603,281.1098810272,286.83632036086,292.67941197057,300.33857976184,306.45672349367,312.69950064833,320.88257689406,327.41921873353,335.98749730659,342.8318387903,349.81560715632,358.96997989875,366.28249344322,375.86779039798,383.5245262314,391.33723606718,401.57819634767,409.75867428285,420.48170539436,429.04726334649,437.78730875453,449.24382765192,458.39529367535,467.73318258368,479.97335657757,489.75080836323,502.56716753771,512.80487382351,523.2511306012],description:"Cycle of 31 fifths, 3/2 beats equal 7/4"},temp31ebs:{frequencies:[261.6255653006,267.49970467488,273.5255021102,279.70687352555,286.04783307233,292.55250379055,299.22511217624,305.93841412724,312.82503848113,319.88946348152,327.13627425327,334.57018402367,342.19602042672,349.86836735032,357.73879552978,365.81242398075,374.09449397971,382.59039112658,391.30563169636,400.0740276901,409.06880268892,418.29580572823,427.76103041037,437.4706255228,447.4309015606,457.4519243295,467.73166961576,478.27681510244,489.09421437332,500.19089295757,511.57406697079,523.2511306012],description:"Cycle of 31 equal beating sevenths"},temp31ebs1:{frequencies:[261.6255653006,267.15774161678,272.80689957055,278.57550963341,287.00766304701,293.07655388437,299.27377555355,305.60203820353,312.06411627904,318.6628357552,328.30838543699,335.25059642555,342.33960321815,349.5785118895,356.97048813578,364.51877275634,375.55232561156,383.49353066309,391.60265342908,399.88324912115,408.33893898267,416.9734277591,429.59472356821,438.6786743379,447.954711436,457.42689142912,467.09936712211,476.97636845082,491.41388278482,501.80502418824,512.41589335668,523.2511306012],description:"Cycle of 31 sevenths, 3/2 beats equal 7/4. 17/9 schisma fifth"},temp31ebs2:{frequencies:[261.6255653006,267.52957387699,273.56681763873,279.74030009523,286.13080593576,292.58781532731,299.19053769144,305.94226304679,312.84635035505,319.90623967996,327.21431324819,334.59843914397,342.14920188821,349.87035796113,357.76575454309,365.83932576918,374.19671203989,382.64107477964,391.27599615891,400.10577865514,409.13482199124,418.3676180873,427.92498506647,437.58181190976,447.45656083737,457.55415226032,467.87960969795,478.43807796233,489.36771995709,500.41110255739,511.70370009509,523.2511306012],description:"Cycle of 31 sevenths, 3/2 beats twice 7/4. Almost 31-tET"},temp31ebsi:{frequencies:[261.6255653006,267.31506098272,273.2139312212,279.32987994092,285.67089487749,292.24525964349,299.06156112772,306.12870201667,312.71376833043,319.5411631371,326.61980701828,333.95894503443,341.56816427739,349.45740040562,357.63696227352,366.11753111539,374.01961057916,382.2124855973,390.7068565555,399.51382386635,408.64488423766,418.11197066674,427.92744450622,438.10412760018,447.58662182594,457.41807184609,467.61131789159,478.17967690081,489.136951815,500.49745466086,512.27602199232,523.2511306012],description:"Cycle of 31 equal beating major sixths"},temp31ebt:{frequencies:[261.6255653006,267.508686718,273.53300221315,279.70190221389,286.0188552526,292.48741633838,299.11122072338,305.89399777728,312.83956126154,319.95181832117,327.23477005018,334.588671338,342.11906613961,349.83019225353,357.72638299858,365.81208378543,374.09184045976,382.57031224079,391.25226584136,400.14258695229,409.24627647794,418.43865241641,427.85164834976,437.49055334209,447.36079317794,457.46791872903,467.81761394993,478.41570188597,489.26814549043,500.38104816704,511.76065992154,523.2511306012],description:"Cycle of 31 equal beating thirds"},temp31g3:{frequencies:[261.6255653006,266.21023205793,270.87523947024,275.62199471997,289.25983723073,294.32876096318,299.48651076576,304.73464409936,310.07474405997,315.5084236529,331.11985608357,336.92232427465,342.82647426905,348.83408706747,354.94697625466,361.16698614085,379.03761443004,385.6797831671,392.4383479509,399.31534788729,406.31285900225,413.43299207996,433.88975562921,441.49314144476,449.22976592409,457.10196592055,465.11211608996,473.26263524279,496.67978412536,505.38348615935,514.23971114652,523.2511306012],description:"Wonder Scale, cycle of 31 sevenths tempered by 1/3 gamelan residue, s.wonder1"},temp31g4:{frequencies:[261.6255653006,266.75106828164,271.97698492363,277.30528403104,287.97116616014,293.61280545832,299.36497003718,305.22982618403,311.20958045219,317.30648321666,329.51091606373,335.96636137331,342.54827390456,349.25913259695,356.10146388137,363.07784268567,377.0427625798,384.42940207435,391.96075366681,399.63965159508,407.46898671086,415.4517078616,431.43106138252,439.88322158593,448.50096908674,457.28754710584,466.24626137824,475.38048570318,493.66485502092,503.33623955776,513.19709315346,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/4 gamelan residue"},temp31g5:{frequencies:[261.6255653006,267.07609791103,272.64018328418,278.3201871026,287.20071989568,293.1840695693,299.2920706603,305.52732176658,311.89247392994,318.39023342226,328.54930692245,335.39408374843,342.38146206091,349.5144087687,356.79595852417,364.22920722399,375.85089312601,383.68111960674,391.67447579625,399.83436022994,408.16424460367,416.66766586736,429.96253800336,438.92009035289,448.06425836543,457.39892986705,466.92807368021,476.65574406444,491.86469103391,502.11187209711,512.57253609913,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/5 gamelan residue"},temp31g6:{frequencies:[261.6255653006,267.29300481931,273.08321314304,278.9988528944,286.68823620156,292.89859205665,299.24348036203,305.72581270733,312.34856974117,319.11478979112,327.9097940226,335.01310892782,342.27029731995,349.68469585889,357.2597060542,364.99881126821,375.05840734677,383.18307527508,391.48374080678,399.96422099622,408.62840644009,417.48028065389,428.98629965513,438.27917301224,447.77335490729,457.47320099372,467.3831713443,477.50781354513,490.66822826519,501.2972832058,512.15658610391,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/6 gamelan residue"},temp31g7:{frequencies:[261.6255653006,267.44804485495,273.40010374961,279.48462577409,286.32273545638,292.69485077785,299.20877758909,305.86767190621,312.6747599825,319.63333987564,327.45376040978,334.74124806474,342.19091885571,349.80638115363,357.59132564064,365.54952414453,374.49336901227,382.82772265927,391.34755742947,400.0570012071,408.96027492626,418.06169111145,428.2903432132,437.821949061,447.565680886,457.52625955954,467.70851101039,478.11736856842,489.81539667363,500.71624319167,511.85968815724,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/7 gamelan residue"},temp31h10:{frequencies:[261.6255653006,267.8597617245,273.71072489962,279.68949451567,286.35413084244,292.60907359238,299.00064605783,306.12544311476,312.81225819702,320.26616683613,327.26186315247,334.41036913783,342.37893460431,349.85764856047,358.19430059608,366.01847563765,374.01355928612,382.92581520849,391.29021017831,400.61414686654,409.36491649663,418.30683086326,428.27453775026,437.62950220286,447.18881072031,457.84473927605,467.84561789912,478.99376955124,489.45661357347,500.14800438647,512.06587983104,523.2511306012],description:"Cycle of 31 fifths tempered by 1/10 Harrison's comma"},temp31h11:{frequencies:[261.6255653006,269.21878403965,274.22153683641,279.31725480271,287.42394184039,292.76499331753,298.20529308835,306.86017365004,312.56239683413,321.63396690808,327.61072570921,333.69854562169,343.38355445704,349.7644731902,359.91576765193,366.60389537541,373.41630725864,384.25405432087,391.39444778107,402.75397853578,410.23814647641,417.86138882164,429.98907567166,437.9793418028,446.11808436842,459.06587176894,467.59645436585,481.16761342105,490.10890120058,499.21634316923,513.70521350358,523.2511306012],description:"Cycle of 31 fifths tempered by 1/11 Harrison's comma"},temp31h12:{frequencies:[261.6255653006,270.35656674398,274.64794212014,279.0074329748,288.31850430385,292.89498819461,297.54411640065,307.47379627264,312.35433239663,322.77826253379,327.90172667751,333.10651564349,344.2229903876,349.68684701428,361.35664068489,367.0924599966,372.91932620731,385.3644371109,391.48133253101,404.54589939324,410.96726244836,417.49055189439,431.4231018689,438.27108715714,445.22777061734,460.08596806997,467.38892215786,482.98668436162,490.65313915878,498.44128370652,515.07533168556,523.2511306012],description:"Cycle of 31 fifths tempered by 1/12 Harrison's comma"},temp31h8:{frequencies:[261.6255653006,264.15772162327,272.31089540773,280.71571360382,283.4326348965,292.18072491748,301.19882119914,304.11398928909,313.50040506268,316.53463456122,326.30440921209,336.37572681506,339.63135730234,350.11400731728,353.50260556257,364.41338872146,375.66093089504,379.29678648678,391.00370158472,394.788050771,406.97310157871,419.5342415638,423.59472503043,436.668886633,450.14658206855,454.50334862767,468.53149836075,473.06620699858,487.66729542944,502.71904336675,507.58463809481,523.2511306012],description:"Cycle of 31 fifths tempered by 1/8 Harrison's comma"},temp31h9:{frequencies:[261.6255653006,266.20804854623,273.08769296879,280.14512719472,285.05198845745,292.41861893027,299.97562432697,305.22982618403,313.11791376428,318.60230743232,326.83598255713,335.28243953396,341.15505431438,349.97156260351,356.10146388137,365.30423365264,374.74482972428,381.30864508241,391.16284711627,398.01423104415,408.30015740759,418.85190169901,426.18827121524,437.20230245522,448.50096908674,456.35665612784,468.15032961482,476.35018210031,488.66055322307,501.28905975035,510.06935121341,523.2511306012],description:"Cycle of 31 fifths tempered by 1/9 Harrison's comma"},temp31ms:{frequencies:[261.6255653006,267.90457886781,273.56603860918,280.13162379381,286.05147140959,292.91670530125,299.10673210371,306.2852939563,312.75782903301,320.26401722477,327.03195662575,334.88072358477,341.95754947331,350.16453098318,357.56433846376,366.14588292411,373.88341429498,382.85661659068,390.94728541851,400.33002063726,408.78994578219,418.60090448096,427.44693588739,437.70566275183,446.9554220819,457.68235263341,467.35426952494,478.57076966998,488.68410850494,500.41252756995,510.98743222773,523.2511306012],description:"Cycle of 31 5th root of 5/4 chromatic semitones"},temp31mt:{frequencies:[261.6255653006,267.90457886781,274.33428876064,280.9183116909,285.65057792122,292.50627485027,299.52642572255,306.71505845072,314.07622014281,319.36714514233,327.03195662575,334.88072358477,342.9178609508,351.14788961362,359.57543896435,365.63273925968,374.40803131735,383.39382442208,392.5952765698,402.01756125559,408.78994578219,418.60090448096,428.6473261885,438.93486201703,449.46929870544,457.04092569426,468.01003810189,479.24227945773,490.7440946167,502.52195335034,510.98743222773,523.2511306012],description:"Cycle of 31 square root of 5/4 meantones"},temp31to:{frequencies:[261.6255653006,267.53589118464,273.57973594714,279.76011588387,286.08011543105,292.54288870475,299.15166280294,305.90973254237,312.82047235615,319.88733118052,327.11383586587,334.50359293692,342.06029039257,349.78769954651,357.68967690936,365.77016611333,374.03319988033,382.48290424395,391.12349182016,399.95927701915,408.9946695077,418.23417857039,427.68241536008,437.34409519915,447.22403993284,457.32718033558,467.65855857191,478.22333071276,489.02676930874,500.07426891005,511.37133726836,522.92361522538],description:"Third beats with opposite equal rate as octave"},temp31w10:{frequencies:[261.6255653006,267.37376533775,273.24825962152,279.25182297475,287.24047076273,293.55146000581,300.00110689476,306.59245933664,313.32863150945,320.21280450383,327.24823031411,334.4382321302,341.78620813039,349.29562523194,356.97015906904,367.18199034811,375.24938058245,383.49402021056,391.91980359563,400.53071066429,409.33081115087,418.32425711308,427.51529892703,436.90827798988,446.50763144636,459.28102021135,469.37192694062,479.68454193593,490.22373920221,500.99449133668,512.00188868489,523.2511306012],description:"Cycle of 31 thirds tempered by 1/10 Wuerschmidt comma"},temp31w11:{frequencies:[261.6255653006,267.42197848694,273.34681181717,279.40291364591,286.91265577589,293.26931399985,299.76680465545,306.40825140143,313.19684009872,320.13583435099,327.22856275086,334.47843511672,341.88893114233,349.46360748692,357.20610515709,366.80702823839,374.93377645155,383.2405741708,391.73141324262,400.41036830387,409.28161120445,418.34939984118,427.61808628905,437.09212645494,446.77606497733,458.78443573652,468.94897543376,479.33871705477,489.95864449434,500.81386326642,511.90958055231,523.2511306012],description:"Cycle of 31 thirds tempered by 1/11 Wuerschmidt comma"},temp31w12:{frequencies:[261.6255653006,267.46216197987,273.42896553533,279.52888390694,286.63976159726,293.03439921138,299.57169286871,306.25482853931,313.08705807777,320.0717057658,327.2121755928,334.51194000906,341.9745565771,349.60365642833,357.40295156876,366.49485373999,374.67097398132,383.02949720151,391.57448819698,400.31011139524,409.24061734241,418.37035125513,427.70376253715,437.24539007841,446.99988402026,458.37102198078,468.59680699416,479.0507177135,489.73784363297,500.66339010461,511.83267129957,523.2511306012],description:"Cycle of 31 thirds tempered by 1/12 Wuerschmidt comma"},temp31w13:{frequencies:[261.6255653006,267.49616787535,273.49850059869,279.63551774138,286.40905375482,292.83577174957,299.40669857094,306.12507001426,312.99419468163,320.01745343487,327.19830857776,334.54029455907,342.04702698539,349.72220057363,357.56974544479,366.23091133098,374.44874787361,382.85098402684,391.44175752404,400.22529663315,409.2059314354,418.38808223908,427.77627085136,437.37511801764,447.18935574711,458.02150335998,468.29902426597,478.80716193382,489.55109116118,500.53609997149,511.7676037195,523.2511306012],description:"Cycle of 31 thirds tempered by 1/13 Wuerschmidt comma"},temp31w14:{frequencies:[261.6255653006,267.52531966849,273.55811412425,279.72695193191,286.21145362846,292.66562728487,299.26534666214,306.01389218024,312.91461811683,319.97095981222,327.18642276261,334.56459899164,342.10915585471,349.82384327668,357.71250180664,366.00482869479,374.25837321367,382.69803863807,391.32802257119,400.15261355898,409.17620468607,418.4030501472,427.83842920638,437.48634583318,447.35182400506,457.72212848121,468.04393370572,478.5984967348,489.39107187298,500.42702361787,511.71183724724,523.2511306012],description:"Cycle of 31 thirds tempered by 1/14 Wuerschmidt comma"},temp31w15:{frequencies:[261.6255653006,267.55058630145,273.60979095449,279.80621811014,286.0403087015,292.51824916652,299.142895223,305.91756930507,312.84566908988,319.93066920159,327.176122954,334.58566413263,342.16300881716,349.91195724514,357.83639571789,365.80900091179,374.09345893182,382.56553686518,391.22947931103,400.08963362509,409.15044340767,418.41645289306,427.89230922859,437.58276480531,447.49267964143,457.46282942114,467.82296651709,478.41773025336,489.25243249537,500.33250769337,511.66351279634,523.2511306012],description:"Cycle of 31 thirds tempered by 1/15 Wuerschmidt comma, almost 31-tET"},temp31w8:{frequencies:[261.6255653006,267.24122592191,272.97742543896,278.83674800471,288.14389744169,294.32876096318,300.64638059818,307.09960331181,313.69134300364,320.42456924675,327.30232268102,334.32770172848,341.50387698892,348.83408706747,356.32163474066,368.21511264804,376.11866406852,384.19186344763,392.4383479509,400.86184099795,409.46613795376,418.25512179799,427.23275920923,436.40309460541,445.77026919414,460.64940473745,470.53701427025,480.63685362987,490.95348377613,501.49155234204,512.25581818623,523.2511306012],description:"Cycle of 31 thirds tempered by 1/8 Wuerschmidt comma"},temp31w9:{frequencies:[261.6255653006,267.31485098896,273.12785536516,279.06726965397,287.64164332106,293.89667226994,300.28772424256,306.81775371411,313.48978461115,320.30690488373,327.27226963218,334.38910256736,341.66069947616,349.09042189481,356.68171037974,367.64079770339,375.63548096925,383.80401588848,392.15018302326,400.67784514756,409.39095139962,418.29352970104,427.38970265849,436.68368016368,446.1797636563,459.88868900496,469.88938665048,480.10755840871,490.54793493862,501.21534712998,512.11473036853,523.2511306012],description:"Cycle of 31 thirds tempered by 1/9 Wuerschmidt comma"},temp32ebf:{frequencies:[261.6255653006,266.99024669658,272.64192755012,278.59596223891,284.86852586219,291.47665855944,298.4383110444,304.47357861204,310.83171904039,317.53000821614,324.58664278196,332.02079024875,339.85265231199,346.64232633314,353.79523650997,361.33080945807,369.26952339658,377.6329406438,386.44378308989,395.72598875513,403.77301123196,412.25053247262,421.18158418009,430.59042797451,440.50262726312,450.945108697,459.9980085603,469.53522100534,479.58265227668,490.16760508681,501.31882698223,513.0666164148,523.2511306012],description:"Cycle of 32 equal beating fifths"},temp33a12:{frequencies:[261.6255653006,266.94139439278,272.36523138282,277.89927397158,284.73748648557,290.5229142688,296.42589304627,302.44880952638,308.5941041528,316.1876182869,322.61206437627,329.16704532903,335.85521147284,342.67927280589,351.11151394887,358.24555988319,365.52455654698,372.95145333883,382.12859604556,389.89286138208,397.81488464837,405.89786889835,414.14508930077,424.3358756666,432.95772800787,441.75476312782,450.73053786756,459.88868900496,471.20507923536,480.77924170569,490.54793493862,500.51511311891,512.83118959171,523.2511306012],description:'Cycle of 33 fifths tempered by 1/12 "11 fifths" comma'},temp34eb2a:{frequencies:[261.6255653006,267.30377714022,273.10522651459,279.03258811962,285.08859470169,291.27603831759,293.96161656556,300.34163653669,306.86012579271,313.52008961307,320.32459850253,327.27678960683,334.37986815896,341.63710895701,349.05185787385,356.62753339984,364.36762821878,372.27571081823,375.70810971034,383.86232137672,392.19350864246,400.70551251195,409.40225735312,418.28775270674,427.36609513501,436.64147011015,446.11815394416,455.80051576031,465.69301950749,469.98673021106,480.18712562304,490.60890615053,501.2568766435,512.13594623433,523.2511306012],description:"Cycle of 34 thirds, 5/4 beats twice 3/2"},temp34ebsi:{frequencies:[261.6255653006,266.99788221884,272.57696520339,278.14698300137,283.93137567849,289.70637009331,295.70363067102,301.69114426564,307.90910207865,314.36637542255,320.81315450625,327.50805511637,334.19207543599,341.13334896852,348.06334108321,355.26005273528,362.44506998142,369.90662102486,377.65534755435,385.39148338011,393.42536256589,401.44618836017,409.77571602141,418.09170597447,426.72775997548,435.3497813463,444.30364141769,453.60211446558,462.88547695756,472.52613162558,482.15112257833,492.14655599832,502.125745683,512.48900933996,523.2511306012],description:"Cycle of 34 equal beating major sixths"},temp34ebt:{frequencies:[261.6255653006,266.93199967636,272.36578831151,277.92998813547,283.62773001764,289.46221547291,295.43672985114,301.55463262869,307.81936583026,314.23445063866,320.80349820247,327.5302045997,334.16324661664,340.95548417522,347.91073392156,355.03290870525,362.32601803901,369.79415983503,377.44153922514,385.2724539348,393.29131162714,401.50262139782,409.91100286066,418.20230551726,426.69260242977,435.3866631899,444.28938530291,453.40576935587,462.74094691381,472.3001707563,482.08881469934,492.11238732973,502.37652397446,512.8870010249,523.2511306012],description:"Cycle of 34 equal beating thirds"},temp34w10:{frequencies:[261.6255653006,267.37376533775,273.24825962152,279.25182297475,281.06516151868,287.24047076273,293.55146000581,300.00110689476,306.59245933664,313.32863150945,320.21280450383,327.24823031411,334.4382321302,341.78620813039,349.29562523194,351.5637974276,359.28803828513,367.18199034811,375.24938058245,383.49402021056,391.91980359563,400.53071066429,409.33081115087,418.32425711308,427.51529892703,436.90827798988,446.50763144636,449.40705529895,459.28102021135,469.37192694062,479.68454193593,490.22373920221,500.99449133668,512.00188868489,523.2511306012],description:"Cycle of 34 thirds tempered by 1/10 Wuerschmidt comma"},temp34w5:{frequencies:[261.6255653006,266.84400329087,272.16653090376,277.59522118835,285.18293865736,290.87125860088,296.67303727804,302.5905394405,308.62607485572,314.78199505921,321.06070411799,327.46464776022,333.99632772474,340.65828815182,347.45313114562,356.95032497057,364.07013256472,371.33195122039,378.73861781039,386.29301712643,393.99809806388,401.85686830172,409.8723892274,418.04779164423,426.38625992488,434.89105154177,443.56547936435,455.68978545099,464.77906877635,474.04965097839,483.50514461458,493.14924173292,502.98569917153,513.01835960126,523.2511306012],description:"Cycle of 34 thirds tempered by 1/5 Wuerschmidt comma"},temp34w6:{frequencies:[261.6255653006,267.02047390967,272.52663052146,278.06968704778,283.80368699438,289.65592453275,295.6288411546,301.72492193478,307.94670831505,314.29679425134,320.77782174252,327.39249271371,334.14356492035,341.03384719449,348.06621207862,355.14570764395,362.46906930947,369.94344613252,377.57194788125,385.35775486011,393.30411308867,401.41432870635,409.69178284295,418.13992649314,426.76227456772,435.56242170336,444.42154779224,453.58584388327,462.93911228358,472.48525217168,482.22824196207,492.17213857029,502.32108537715,512.67931193931,523.2511306012],description:"Cycle of 34 thirds tempered by 1/6 Wuerschmidt comma"},temp34w7:{frequencies:[261.6255653006,267.14659557842,272.78413659373,276.97759061533,282.82259314675,288.79093992594,294.88523549471,301.10813946365,307.46236235072,313.95067836072,320.57591524951,327.34096447962,334.24877325582,341.30235609413,348.50479124753,353.86228320674,361.3297679824,368.9548354601,376.74081403286,384.69109896591,392.80915578714,401.0985286019,409.56282802254,418.20574780595,427.03105980737,436.04260883433,442.74580331919,452.08897683944,461.62931955889,471.37098776125,481.31823237599,491.47539447856,501.84689823661,512.43727265667,523.2511306012],description:"Cycle of 34 thirds tempered by 1/7 Wuerschmidt comma"},temp34w8:{frequencies:[261.6255653006,267.24122592191,272.97742543896,276.16133434798,282.08899791039,288.14389744169,294.32876096318,300.64638059818,307.09960331181,313.69134300364,320.42456924675,327.30232268102,334.32770172848,341.50387698892,348.83408706747,352.90276052629,360.47764004221,368.21511264804,376.11866406852,384.19186344763,392.4383479509,400.86184099795,409.46613795376,418.25512179799,427.23275920923,436.40309460541,441.49314144476,450.96957067185,460.64940473745,470.53701427025,480.63685362987,490.95348377613,501.49155234204,512.25581818623,523.2511306012],description:"Cycle of 34 thirds tempered by 1/8 Wuerschmidt comma"},temp34w9:{frequencies:[261.6255653006,267.31485098896,273.12785536516,279.06726965397,281.5197407082,287.64164332106,293.89667226994,300.28772424256,306.81775371411,313.48978461115,320.30690488373,327.27226963218,334.38910256736,341.66069947616,349.09042189481,352.15826244648,359.81626391233,367.64079770339,375.63548096925,383.80401588848,392.15018302326,400.67784514756,409.39095139962,418.29352970104,427.38970265849,436.68368016368,440.52130132575,450.10083737825,459.88868900496,469.88938665048,480.10755840871,490.54793493862,501.21534712998,512.11473036853,523.2511306012],description:"Cycle of 34 thirds tempered by 1/9 Wuerschmidt comma"},temp35ebsi:{frequencies:[261.6255653006,266.57889315685,271.71450319234,277.03910343536,282.55964921963,288.28335166643,294.21768457231,300.3704033182,306.74954035112,312.48255822683,318.42655208483,324.58928450704,330.97880464114,337.6034601246,344.47190142434,351.59310182482,358.97636423712,366.63132974323,373.51095055492,380.64374131787,388.03901984907,395.70644562254,403.65603146762,411.89816253905,420.4436041444,429.30351656419,438.48947534443,446.74502047858,455.30437022365,464.17870575399,473.37961532931,482.91911915131,492.80967579032,503.06420520117,513.69610107468,523.2511306012],description:"Cycle of 35 equal beating major sixths"},temp37ebs:{frequencies:[261.6255653006,266.54882370674,271.76117582243,276.81154351547,282.15846820925,287.3392230449,292.82419544994,298.13870690002,303.76528724985,309.7222634282,315.49411047005,321.60488016898,327.52574544851,333.79428377068,339.86801168664,346.29839044807,353.1063601343,359.70275861181,366.68649693083,373.45319917734,380.61724149647,387.55864668979,394.907650003,402.68818871569,410.22692643911,418.2083422233,425.94171605945,434.12919568644,442.06222705415,450.46108885682,459.35313199837,467.96883572953,477.09045247204,485.92859505436,495.28571063961,504.35203618851,513.95073426779,523.2511306012],description:"Cycle of 37 equal beating sevenths"},temp37ebt:{frequencies:[261.6255653006,266.44794669373,271.38606435347,276.44269655507,281.62068893017,286.92295259461,292.35247205526,297.91229840101,303.60556084342,309.43546158348,315.40528084,321.51837488336,327.7781831369,333.8061589736,339.9788066307,346.29959662983,352.77208770341,359.39991652139,366.18681567584,373.13659908053,380.25317623321,387.54055229398,395.00282568127,402.64419215928,410.46895395112,418.00392297279,425.71973353547,433.62072344005,441.71133574434,449.99612361773,458.47974493329,467.16697490003,476.06269518051,485.17191513214,494.49975815874,504.05146656861,513.83241864047,523.2511306012],description:"Cycle of 37 equal beating thirds"},temp3ebt:{frequencies:[261.6255653006,330.24866439584,416.02753826489,523.2511306012],description:"Cycle of 3 equal beating thirds"},temp4ebmt:{frequencies:[261.6255653006,310.36356181711,368.84915763691,439.03187262068,523.2511306012],description:"Cycle of 4 equal beating minor thirds"},temp4ebsi:{frequencies:[261.6255653006,310.92686529443,370.08842528703,441.08229727815,523.2511306012],description:"Cycle of 4 equal beating major sixths"},temp53ebs:{frequencies:[261.6255653006,264.97369574946,268.51842903659,272.2713107977,275.7058824095,279.342132921,283.19190440533,286.71515038985,290.44528277978,294.39444663109,298.00865518834,301.83509073593,305.88621462445,310.17522146598,314.10044576101,318.25616227247,322.65590013911,326.68246801001,330.94547393755,335.45880590636,339.58933056423,343.96239778214,348.59225483118,353.4939765515,357.97994689961,362.72933676467,367.75761084241,372.35940104854,377.23140801172,382.38950169412,387.11009989437,392.10789272021,397.3991578827,403.00112480292,408.12795020911,413.55582307376,419.3024201087,424.56160969567,430.12961973912,436.02458225248,441.41955172249,447.13131541518,453.17847579573,459.58072182695,465.43995070361,471.64323472325,478.21077610462,484.22127701861,490.5847168482,497.32181757346,503.48749858841,510.01522804676,516.92626488088,523.2511306012],description:"Cycle of 53 equal beating harmonic sevenths"},temp53ebsi:{frequencies:[261.6255653006,265.08815342092,268.54511416675,272.14096825888,275.73097879106,279.31515577755,283.04333763043,286.76545980208,290.48153462492,294.34691329876,298.20601137227,302.05883614112,306.06646174912,310.06757319581,314.22944103195,318.38454699407,322.53289853772,326.84792360782,331.1559371129,335.45694960827,339.93076775401,344.39731584765,348.85660497561,353.49505873963,358.12597594237,362.74936749482,367.55851619873,372.35985057275,377.35409330215,382.34021841275,387.3182413058,392.49627136254,397.66588656991,402.8271015422,408.19568270781,413.55554119639,418.90668980097,424.47283359145,430.02993471298,435.57800299537,441.34898312942,447.11058430799,453.10367443873,459.08702461554,465.06065502782,471.27428848056,477.47782740925,483.67128540638,490.11358366391,496.54541154487,502.96678854317,509.64616466331,516.31468511822,523.2511306012],description:"Cycle of 53 equal beating major sixths"},temp53ebt:{frequencies:[261.6255653006,265.06408390481,268.61942739596,272.14046995187,275.78114176924,279.3866896354,283.11473715719,286.8068186786,290.62433945466,294.40503066492,298.31417332138,302.18560037327,306.18856199636,310.15290198883,314.25193588094,318.31142144389,322.50883104059,326.66574402863,330.9638909587,335.40807143415,339.80937339101,344.36021509659,348.86714800611,353.52720940583,358.14231011275,362.91421253104,367.64007568808,372.5265022753,377.36578530136,382.3694885676,387.32491504393,392.44870495902,397.52306357866,402.76982394565,407.96596497751,413.33865052838,418.89387526617,424.39550434456,430.08405345947,435.71772111176,441.54279782575,447.31167294612,453.27655186057,459.18388087721,465.29191391782,471.34101945319,477.59564801313,483.78993007475,490.19466758193,496.53761595054,503.09606844751,509.59124455492,516.30709807412,523.2511306012],description:"Cycle of 53 equal beating thirds"},temp57ebs:{frequencies:[261.6255653006,264.8277951114,268.04955507264,271.33445958124,274.63939933433,278.00911284632,281.39937814535,284.85609135359,288.33388628378,291.8798428433,295.4474281527,299.08493440323,302.74462553584,306.42663750246,310.18081323211,313.95788745209,317.80898926922,321.68357852782,325.63410692083,329.60872876069,333.66125215256,337.73849074816,341.89564167341,346.07814569972,350.28615866377,354.57664765081,358.89330206442,363.2945606359,367.72266219717,372.23755268366,376.77997919433,381.41143316036,386.07113633698,390.82216502962,395.60217018381,400.41132814233,405.3147417445,410.24806349136,415.27807310888,420.33876095689,425.4986359826,430.68997922537,435.98307052812,441.30844296951,446.73819252663,452.20105472878,457.69723413281,463.30113726238,468.93921588924,474.68780077646,480.47144432851,486.36844238798,492.30140788993,498.35065469266,504.4367956254,510.6422225112,516.88549425379,523.2511306012],description:"Cycle of 57 equal beating harmonic sevenths"},temp59ebt:{frequencies:[261.6255653006,264.71774803536,267.84005552541,271.00645194849,274.20369404321,277.44608402629,280.72006081878,284.04026812198,287.39281927261,290.79271098314,294.22572486522,297.70721418515,301.22261902261,304.78766466692,308.38743972219,312.03804524126,315.72421513091,319.46243532331,323.23707283878,327.06501147453,330.93024062011,334.83312418563,338.79111909993,342.78767359614,346.84065928187,350.93313112856,355.08338946648,359.27407840069,363.52394351295,367.81521017702,372.16707169716,376.56132871014,381.01763522853,385.51735474883,390.08061088885,394.68832388107,399.36109834092,404.07939600279,408.86431870994,413.69585627072,418.57446131049,423.52195428502,428.51764625978,433.58387848862,438.69946807471,443.88729218006,449.12565432864,454.4379830027,459.80206875391,465.24189440938,470.73471441434,476.30509804765,481.92974808423,487.63381799831,493.39345924022,499.23442935246,505.13230099895,511.11345315981,517.15287439575,523.2511306012],description:"Cycle of 59 equal beating thirds"},temp5ebf:{frequencies:[261.6255653006,300.99242152138,345.28013476976,397.76927639746,456.81956072863,523.2511306012],description:"Cycle of 5 equal beating fifths"},temp5ebs:{frequencies:[261.6255653006,300.72264357012,345.40501873528,396.4705903526,454.83124362955,523.2511306012],description:"Cycle of 5 equal beating harmonic sevenths"},temp6:{frequencies:[261.6255653006,292.50629174609,327.17562781541,373.91502405318,418.23333786749,467.5991148023,523.2511306012],description:"Tempered wholetone scale with approximations to 5/4 (4), 7/5 (4) and 7/4 (1)"},temp65ebf:{frequencies:[261.6255653006,264.41601755103,267.24454169377,270.11165630441,273.01788702098,275.96376822181,278.903505094,281.88335012505,284.90384796088,287.96555727487,291.06903608099,294.16604397209,297.30530343106,300.48739162418,303.71289539257,306.98240612292,310.29652144782,313.60372560746,316.95605020285,320.35411162765,323.7985328567,327.28994911888,330.77408078649,334.30574717623,337.88559766085,341.51429052286,345.19248907458,348.92086961342,352.64147345074,356.41283883338,360.23565716142,364.11063345825,368.0384739541,371.95812372083,375.93124824951,379.95858022583,384.04085801267,388.17883226226,392.30817269042,396.49385281186,400.73664000181,405.03730976228,409.39665754461,413.81548025993,418.22508312451,422.69484912531,427.22559773342,431.81816208034,436.47338166162,441.11888946365,445.82778005125,450.60091414809,455.43916939942,460.34343547357,465.31460883154,470.27541574397,475.30390033467,480.4009926512,485.56762723834,490.80474851567,496.03094699932,501.32844669322,506.69822455894,512.14126217109,517.65855736571,523.2511306012],description:"Cycle of 65 equal beating fifths"},temp65ebt:{frequencies:[261.6255653006,264.43406811535,267.2034679247,270.07937559507,272.91523803531,275.86016780291,278.76409255008,281.77970028627,284.75331888701,287.84130158502,290.886287826,294.04838131756,297.16644728835,300.4044304772,303.59732911309,306.91302510559,310.18255295306,313.57782661988,316.92582314139,320.40258196387,323.83093239735,327.39113302053,330.90176198948,334.36350914498,337.95839429282,341.50322405771,345.18438591943,348.81429298672,352.58380229516,356.30082494405,360.1608038988,363.96703524466,367.91965255368,371.81723365001,375.86471396542,379.85583700975,384.00045811272,388.08736764479,392.33145942297,396.5164558179,400.86240365726,405.1478399234,409.59809307723,413.98637838791,418.31356254814,422.80716945583,427.23820566351,431.83965831621,436.37704077554,441.08892851835,445.73520856761,450.56017999004,455.31796985254,460.25874195194,465.13071889642,470.19006822446,475.1789734801,480.35974823468,485.46838574269,490.77349931217,496.0047455553,501.43718079349,506.7939752079,512.35679191473,517.84214996629,523.2511306012],description:"Cycle of 65 equal beating thirds"},temp6eb2:{frequencies:[261.6255653006,293.46010680596,329.2739659995,369.56455759223,414.89147313404,465.88425311859,523.2511306012],description:"Cycle of 6 equal beating 9/8 seconds"},temp6s:{frequencies:[261.6255653006,271.93638072959,309.96730300827,353.31693843766,402.72911708552,459.05170412301,523.2511306012],description:"Cycle of 6 tempered harmonic sevenths, 6/5 and 4/3 minimax, Op de Coul, 2002"},temp6teb:{frequencies:[261.6255653006,314.31996068356,377.55323514312,453.43316449459,544.48907971635,653.75617798246,784.8766959018],description:"Cycle of 6 equal beating 6/5's in a twelfth"},"temp7-5ebf":{frequencies:[261.6255653006,272.53310095338,288.29512120063,313.54121701986,318.29837158817,352.05202827415,359.67534615791,387.61143614087,414.35283422339,427.61576999092,475.86500581459,472.62064557223,523.2511306012],description:"7 equal beating fifths on white, 5 equal beating fifths on black"},temp7ebf:{frequencies:[261.6255653006,288.29512120063,318.29837158817,352.05202827415,387.61143614087,427.61576999092,472.62064557223,523.2511306012],description:"Cycle of 7 equal beating fifths"},temp7ebnt:{frequencies:[261.6255653006,288.84289825546,318.65722544634,351.9228541964,388.36258888271,429.02057812008,473.55803233064,523.2511306012],description:"Cycle of 7 equal beating 11/9 neutral thirds"},temp8eb3q:{frequencies:[261.6255653006,285.27029088455,311.06453578321,339.20371183191,369.9009952302,403.38894083349,439.92124473489,479.77466958441,523.2511306012],description:`Cycle of 8 equal "beating" 12/11's`},temp9ebmt:{frequencies:[261.6255653006,282.57058469242,305.18178513943,329.6176429161,355.99737593287,384.50587463168,415.28223014648,448.54214811156,484.4478959333,523.2511306012],description:"Cycle of 9 equal beating 7/6 septimal minor thirds"},tenney_11:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,523.2511306012],description:`Scale of James Tenney's "Spectrum II" for wind quintet`},tertiadia:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,431.14564594215,459.88868900496,490.54793493862,523.2511306012],description:"Tertiadia 2048/2025 and 262144/253125 scale"},tertiadie:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,383.2405741708,408.78994578219,436.04260883433,476.27480687611,490.54793493862,523.2511306012],description:"First Tertiadie 262144/253125 and 128/125 scale"},tet3a:{frequencies:[261.6255653006,280.31310567921,313.95067836072,336.37572681506,366.27579142084,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Eight notes, two major one minor tetrad"},tetracot:{frequencies:[261.6255653006,266.81074454173,272.09868928948,277.49143626213,289.66902367154,295.4099985897,301.26475437609,307.23554606336,320.71844041089,327.07478634962,333.55710924695,340.16790585091,355.09602205939,362.13370020095,369.31085868177,376.6302618745,393.15851224787,400.95055410677,408.89702710335,417.00099192139,435.30089370336,443.92815899023,452.72640877864,461.69903182491,481.96048707062,491.51250279099,501.25383072009,523.2511306012],description:"tetracot temperament, g=176.28227, 5-limit"},"tetragam-di":{frequencies:[261.6255653006,279.06726965397,290.69507255622,290.69507255622,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,436.04260883433,457.84473927605,523.2511306012],description:"Tetragam Dia2"},"tetragam-enh":{frequencies:[261.6255653006,271.31540105247,279.06726965397,279.06726965397,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,418.60090448096,418.60090448096,457.84473927605,523.2511306012],description:"Tetragam Enharm."},"tetragam-hex":{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,327.03195662575,343.38355445704,381.53728273004,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Tetragam/Hexgam"},"tetragam-py":{frequencies:[261.6255653006,275.62199471997,294.32876096318,294.32876096318,331.11985608357,348.83408706747,372.50983809402,392.4383479509,413.43299207996,441.49314144476,441.49314144476,465.11211608996,523.2511306012],description:"Tetragam Pyth."},"tetragam-slpe":{frequencies:[261.6255653006,261.6255653006,300.52885648597,300.52885648597,279.06726965397,345.21700307457,348.83408706747,396.55020354877,455.51656649021,392.4383479509,455.51656649021,418.60090448096,523.2511306012],description:"Tetragam Slendro as 5-tET, Pelog-like pitches on C# E F# A B"},"tetragam-slpe2":{frequencies:[261.6255653006,261.6255653006,300.52885648597,300.52885648597,286.29520819723,345.21700307457,313.29104303136,396.55020354877,396.55020354877,387.04559340587,455.51656649021,423.54155496477,523.2511306012],description:"Tetragam Slendro as 5-tET, Pelog-like pitches on C# E F# A B"},"tetragam-sp":{frequencies:[261.6255653006,271.31540105247,271.31540105247,271.31540105247,336.37572681506,348.83408706747,366.27579142084,392.4383479509,406.97310157871,406.97310157871,406.97310157871,457.84473927605,523.2511306012],description:"Tetragam Septimal"},"tetragam-un":{frequencies:[261.6255653006,269.80136421624,285.40970760065,285.40970760065,319.76457981184,348.83408706747,359.73515228832,392.4383479509,404.70204632437,428.11456140098,428.11456140098,479.64686971777,523.2511306012],description:"Tetragam Undecimal"},tetragam13:{frequencies:[261.6255653006,275.95382006469,307.00724256551,307.00724256551,341.55514486295,341.55514486295,400.80167111126,400.80167111126,445.90437572008,445.90437572008,445.90437572008,496.08254310677,523.2511306012],description:"Tetragam (13-tET)"},tetragam5:{frequencies:[261.6255653006,300.52885648597,300.52885648597,300.52885648597,300.52885648597,345.21700307457,345.21700307457,396.55020354877,455.51656649021,455.51656649021,455.51656649021,455.51656649021,523.2511306012],description:"Tetragam (5-tET)"},tetragam7:{frequencies:[261.6255653006,288.85811466493,288.85811466493,288.85811466493,318.92511007349,352.12195684808,352.12195684808,388.77403176757,429.24143792307,429.24143792307,429.24143792307,473.92081401802,523.2511306012],description:"Tetragam (7-tET)"},tetragam8:{frequencies:[261.6255653006,285.30470202322,311.12698372208,311.12698372208,339.28638158975,339.28638158975,403.48177901006,403.48177901006,440,440,440,440,523.2511306012],description:"Tetragam (8-tET)"},tetragam9a:{frequencies:[261.6255653006,282.57118533961,305.19387818096,305.19387818096,329.62755691287,356.01738450312,415.30469757995,415.30469757995,448.55379686399,448.55379686399,448.55379686399,484.46508327871,523.2511306012],description:"Tetragam (9-tET) A"},tetragam9b:{frequencies:[261.6255653006,282.57118533961,282.57118533961,282.57118533961,305.19387818096,305.19387818096,384.52019141924,384.52019141924,415.30469757995,415.30469757995,415.30469757995,448.55379686399,523.2511306012],description:"Tetragam (9-tET) B"},tetraphonic_31:{frequencies:[261.6255653006,266.96486255163,272.52663052146,278.32506946872,284.37561445717,290.69507255622,297.30177875068,304.21577360535,311.45900631024,319.05556743976,327.03195662575,333.99008336247,341.25073734861,348.83408706747,356.76213450082,365.05892832642,373.75080757229,382.86668092771,392.4383479509,400.61414686654,409.13785211902,418.03215325205,427.32175665765,437.0336147635,447.19718719986,457.84473927605,467.58611670746,477.75103228805,488.36772189445,499.46698830115,511.08249965699,523.2511306012],description:"31-tone Tetraphonic Cycle, conjunctive form on 5/4, 6/5, 7/6 and 8/7"},tetratriad:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"4:5:6 Tetratriadic scale"},tetratriad1:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"3:5:9 Tetratriadic scale"},tetratriad2:{frequencies:[261.6255653006,296.75121990114,305.22982618403,356.10146388137,373.75080757229,415.4517078616,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"3:5:7 Tetratriadic scale"},thailand:{frequencies:[261.6255653006,281.86483947605,307.02089761314,350.84574289301,397.92692612688,408.40584780369,474.03826620294,539.82938999168],description:"Observed ranat tuning from Thailand, Helmholtz/Ellis p. 518, nr.85"},thailand2:{frequencies:[261.6255653006,293.66476791741,318.39923223688,356.77227917518,391.76907592069,435.19747628762,477.88722128969,525.37110555681],description:"Observed ranat t'hong tuning, Helmholtz/Ellis p. 518"},thailand3:{frequencies:[261.6255653006,293.32570896007,322.47117131255,354.92237405774,396.55020354877,437.46578647972,488.21056770985,538.58355905405],description:"Observed tak'hay tuning. Helmholtz, p. 518"},thailand4:{frequencies:[261.6255653006,281.88044777549,304.38587215019,332.5176539627,392.71966479735,416.35036198375,461.923848369,523.2511306012,563.76089555097,608.77174430039,665.59794246809,786.00196746963,831.57545378481,924.97296635309,1046.5022612024,1127.52179110194],description:"Khong mon (bronze percussion vessels) tuning, Gemeentemuseum Den Haag 1/1=465"},thirds:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,454.2110508691,502.32108537715,523.2511306012],description:"Major and minor thirds parallellogram"},thomas:{frequencies:[261.6255653006,280.80530480292,294.66217084622,313.95044496966,332.05645032639,350.21604710412,374.62015588545,391.99543598175,420.73257541073,441.99197952365,468.79922683914,499.49209883845,523.2511306012],description:"Tuning of the Thomas/Philpott organ, Gereformeerde Kerk, St. Jansklooster"},tiby1:{frequencies:[261.6255653006,295.66718139806,337.56154978455,348.04364484358,393.32961502355,444.50800708553,507.49227916989,523.2511306012],description:"Tiby's 1st Byzantine Liturgical genus, 12 + 13 + 3 parts"},tiby2:{frequencies:[261.6255653006,295.66718139806,311.12698372208,348.04364484358,393.32961502355,444.50800708553,467.75037672729,523.2511306012],description:"Tiby's second Byzantine Liturgical genus, 12 + 5 + 11 parts"},tiby3:{frequencies:[261.6255653006,295.66718139806,324.07484847125,348.04364484358,393.32961502355,444.50800708553,487.21628271135,523.2511306012],description:"Tiby's third Byzantine Liturgical genus, 12 + 9 + 7 parts"},tiby4:{frequencies:[261.6255653006,286.76251801126,324.07484847125,348.04364484358,393.32961502355,431.12067692221,487.21628271135,523.2511306012],description:"Tiby's fourth Byzantine Liturgical genus, 9 + 12 + 7 parts"},todi_av:{frequencies:[261.6255653006,276.38325105256,310.05056613125,371.27895029721,392.44854854484,413.39000965417,495.88429116026,523.2511306012],description:"Average of 8 interpretations of raga Todi, in B. Bel, 1988."},tonos15_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,767.43499154843,885.50191332511,959.29373943553,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-15"},tonos17_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,418.60090448096,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,738.70747849581,784.8766959018,897.00193817349,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-17"},tonos19_pis:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,385.55346465352,406.97310157871,457.84473927605,523.2511306012,542.63080210495,563.50121757052,610.45965236807,665.95598440153,771.10692930703,813.94620315742,915.6894785521,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-19"},tonos21_pis:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,398.6675280771,440.63253103259,465.11211608996,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,797.33505615421,881.26506206518,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-21"},tonos23_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,409.50088481833,448.50096908674,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,819.00176963666,897.00193817349,941.85203508216,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-23"},tonos25_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,376.74081403286,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,753.48162806573,856.22912280196,941.85203508216,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-25"},tonos27_pis:{frequencies:[261.6255653006,290.69507255622,327.03195662575,373.75080757229,387.59343007496,436.04260883433,498.33441009638,523.2511306012,550.79066379074,581.39014511244,654.0639132515,747.50161514457,775.18686014993,872.08521766867,996.66882019276,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-27"},tonos29_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,396.94913355953,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,793.89826711906,885.50191332511,959.29373943553,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-29"},tonos31_pis:{frequencies:[261.6255653006,273.51763645063,300.86940009569,334.29933343966,388.21858076863,429.81342870813,462.87600014722,501.44900015948,523.2511306012,547.03527290125,601.73880019138,668.59866687931,776.43716153726,859.62685741626,925.75200029443,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-31"},tonos31_pis2:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,405.0976494977,448.50096908674,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,810.19529899541,897.00193817349,966.00208726375,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-31B"},tonos33_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-33"},top31:{frequencies:[261.6255653006,267.49189720203,273.48976766293,279.62212612306,285.89198815637,292.30243695391,298.85662483994,305.55777482212,312.40918217641,319.41421606749,326.57632120555,333.89901954025,341.38591199258,349.04068022565,358.99452880887,367.04412845091,375.2742212459,383.6888543241,392.29216556304,401.08838562235,410.08184002413,419.27695128006,428.67824106611,438.29033244612,448.11795214515,458.16593287385,468.4392157049,478.94285250284,489.68200840824,500.66196437769,511.88811978069,523.36599505479],description:"Top temperament, 11-limit, {225/224, 385/384, 1331/1323}, Gene Ward Smith"},trab19:{frequencies:[261.6255653006,279.06726965397,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Diamond {1,3,5,45,75,225}"},trab19a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,344.91651675372,348.83408706747,367.91095120397,372.08969287196,392.4383479509,396.89567239676,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Diamond {1,3,9,15,675}"},tranh:{frequencies:[261.6255653006,290.69507255622,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Bac Dan Tranh scale, Vietnam"},tranh2:{frequencies:[261.6255653006,290.69507255622,307.79478270659,392.4383479509,436.04260883433,523.2511306012],description:"Dan Ca Dan Tranh Scale"},tranh3:{frequencies:[261.6255653006,317.68818643644,348.83408706747,392.4383479509,473.41768959156,476.53227965466,523.2511306012],description:"Sa Mac Dan Tranh scale"},"tri12-1":{frequencies:[261.6255653006,264.29521392612,275.21650375777,319.76457981184,323.02748368748,332.97799220076,336.37572681506,406.97310157871,411.12588832951,428.11456140098,432.48307733364,502.48719684718,523.2511306012],description:"12-tone Tritriadic of 7:9:11"},"tri12-2":{frequencies:[261.6255653006,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,448.50096908674,457.84473927605,474.80195184183,504.56359022259,523.2511306012],description:"12-tone Tritriadic of 6:7:9"},"tri19-1":{frequencies:[261.6255653006,266.96486255163,269.10058145205,305.22982618403,311.45900631024,313.95067836072,320.35783506196,356.10146388137,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,427.32175665765,436.04260883433,439.53094970501,448.50096908674,508.71637697339,512.78610798918,523.2511306012],description:"3:5:7 Tritriadic 19-Tone Matrix"},"tri19-2":{frequencies:[261.6255653006,282.55561052465,290.69507255622,294.32876096318,313.95067836072,322.99452506247,327.03195662575,348.83408706747,353.19451315581,363.36884069528,376.74081403286,387.59343007496,392.4383479509,418.60090448096,423.83341578697,436.04260883433,465.11211608996,470.92601754108,484.4917875937,523.2511306012],description:"3:5:9 Tritriadic 19-Tone Matrix"},"tri19-3":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"4:5:6 Tritriadic 19-Tone Matrix"},"tri19-4":{frequencies:[261.6255653006,264.89588486686,290.69507255622,294.32876096318,322.99452506247,327.03195662575,331.11985608357,334.88072358477,363.36884069528,367.91095120397,372.08969287196,376.74081403286,408.78994578219,413.43299207996,418.60090448096,423.83341578697,465.11211608996,470.92601754108,516.79124009995,523.2511306012],description:"4:5:9 Tritriadic 19-Tone Matrix"},"tri19-5":{frequencies:[261.6255653006,266.96486255163,284.8811711051,290.69507255622,302.73815413355,316.53463456122,322.99452506247,329.64821227876,336.37572681506,366.27579142084,373.75080757229,406.97310157871,415.27867508032,423.83341578697,432.48307733364,452.19233508746,470.92601754108,480.53675259294,512.78610798918,523.2511306012],description:"5:7:9 Tritriadic 19-Tone Matrix"},"tri19-6":{frequencies:[261.6255653006,267.07609791103,294.32876096318,299.00064605783,305.22982618403,336.37572681506,341.71502406609,343.38355445704,348.83408706747,356.10146388137,384.42940207435,392.4383479509,398.6675280771,400.61414686654,406.97310157871,448.50096908674,457.84473927605,465.11211608996,512.57253609913,523.2511306012],description:"6:7:8 Tritriadic 19-Tone Matrix"},"tri19-7":{frequencies:[261.6255653006,271.31540105247,288.32205155576,294.32876096318,299.00064605783,305.22982618403,316.53463456122,336.37572681506,348.83408706747,356.10146388137,384.42940207435,392.4383479509,406.97310157871,432.48307733364,448.50096908674,457.84473927605,465.11211608996,474.80195184183,504.56359022259,523.2511306012],description:"6:7:9 Tritriadic 19-Tone Matrix"},"tri19-8":{frequencies:[261.6255653006,264.29521392612,272.43653907335,275.21650375777,316.53463456122,319.76457981184,323.02748368748,332.97799220076,336.37572681506,350.27555023717,390.82337532559,406.97310157871,411.12588832951,423.79017189188,428.11456140098,432.48307733364,497.4115685962,502.48719684718,517.96576564563,523.2511306012],description:"7:9:11 Tritriadic 19-Tone Matrix"},"tri19-9":{frequencies:[261.6255653006,266.96486255163,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,334.88072358477,341.71502406609,366.27579142084,373.75080757229,400.61414686654,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.78610798918,523.2511306012],description:"4:5:7 Tritriadic 19-Tone Matrix"},triang11:{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,327.03195662575,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,418.60090448096,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"11-limit triangular diamond lattice with 64/63 intervals removed"},triaphonic_12:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,367.19377586049,387.59343007496,410.39304360878,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"12-tone Triaphonic Cycle, conjunctive form on 4/3, 5/4 and 6/5"},triaphonic_17:{frequencies:[261.6255653006,271.31540105247,281.75060878526,293.02063313667,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,390.69417751556,406.97310157871,422.62591317789,439.53094970501,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:"17-tone Triaphonic Cycle, conjunctive form on 4/3, 7/6 and 9/7"},trichord7:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,392.4383479509,436.04260883433,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Trichordal undecatonic, 7-limit"},tricot:{frequencies:[261.6255653006,264.94025538413,268.70564228797,272.11003565477,275.55755973666,279.4738436282,283.01466417842,286.6003471482,290.673570175,294.35628843049,298.08566525814,302.32211998602,306.15242072385,310.03124984507,314.43747949204,318.42127516569,322.45554578164,327.03835025925,331.18179578139,335.37773516927,339.62683737367,344.45368576554,348.81777463097,353.23715677741,358.25743790514,362.79641682209,367.39290067029,372.61436622199,377.33523951767,382.11592657559,387.54663888312,392.45669803325,397.4289679423,403.0773124301,408.18413893183,413.35566924724,419.23036738005,424.541846554,429.92062250389,436.03074525334,441.55507841911,447.14940523431,453.50438708518,459.25010687752,465.06861996272,470.9608512551,477.65424916833,483.70593529179,489.8342966599,496.79592520903,503.09012862502,509.46407999504,516.70469117363,523.2511306012],description:"Tricot temperament, g=565.988015, 5-limit"},tritriad:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Tritriadic scale of the 10:12:15 triad, natural minor mode"},tritriad10:{frequencies:[261.6255653006,274.70684356563,294.32876096318,348.83408706747,366.27579142084,392.4383479509,488.36772189445,523.2511306012],description:"Tritriadic scale of the 10:14:15 triad"},tritriad11:{frequencies:[261.6255653006,309.19384990071,356.76213450082,383.71749577421,421.62797713733,453.48431318771,486.49381977384,523.2511306012],description:"Tritriadic scale of the 11:13:15 triad"},tritriad13:{frequencies:[261.6255653006,294.32876096318,340.11323489078,348.83408706747,392.4383479509,453.48431318771,510.16985233617,523.2511306012],description:"Tritriadic scale of the 10:13:15 triad"},tritriad14:{frequencies:[261.6255653006,294.32876096318,336.37572681506,348.83408706747,392.4383479509,448.50096908674,504.56359022259,523.2511306012],description:"Tritriadic scale of the 14:18:21 triad"},tritriad18:{frequencies:[261.6255653006,294.32876096318,319.76457981184,348.83408706747,392.4383479509,426.35277308246,479.64686971777,523.2511306012],description:"Tritriadic scale of the 18:22:27 triad"},tritriad22:{frequencies:[261.6255653006,294.32876096318,321.08592105074,348.83408706747,392.4383479509,428.11456140098,481.6288815761,523.2511306012],description:"Tritriadic scale of the 22:27:33 triad"},tritriad26:{frequencies:[261.6255653006,294.32876096318,301.87565226992,348.83408706747,392.4383479509,402.50086969323,452.81347840488,523.2511306012],description:"Tritriadic scale of the 26:30:39 triad"},tritriad3:{frequencies:[261.6255653006,305.22982618403,356.10146388137,373.75080757229,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"Tritriadic scale of the 3:5:7 triad. Possibly Mathews's 3.5.7a"},tritriad32:{frequencies:[261.6255653006,294.32876096318,322.00069575458,348.83408706747,392.4383479509,429.33426100611,483.00104363188,523.2511306012],description:"Tritriadic scale of the 26:32:39 triad"},tritriad3c:{frequencies:[261.6255653006,305.22982618403,366.27579142084,373.75080757229,427.32175665765,436.04260883433,512.78610798918,523.2511306012],description:"From 1/1 7/6 7/5, a variant of the 3.5.7 triad"},tritriad3d:{frequencies:[261.6255653006,305.22982618403,313.95067836072,363.36884069528,366.27579142084,436.04260883433,508.71637697339,523.2511306012],description:"From 1/1 7/6 5/3, a variant of the 3.5.7 triad"},tritriad5:{frequencies:[261.6255653006,290.69507255622,329.64821227876,366.27579142084,406.97310157871,423.83341578697,470.92601754108,523.2511306012],description:"Tritriadic scale of the 5:7:9 triad. Possibly Mathews's 5.7.9a."},tritriad68:{frequencies:[261.6255653006,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"Tritriadic scale of the 6:7:8 triad"},tritriad68i:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,398.6675280771,448.50096908674,465.11211608996,523.2511306012],description:"Tritriadic scale of the subharmonic 6:7:8 triad"},tritriad69:{frequencies:[261.6255653006,294.32876096318,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Tritriadic scale of the 6:7:9 triad, septimal natural minor"},tritriad7:{frequencies:[261.6255653006,264.29521392612,323.02748368748,332.97799220076,336.37572681506,411.12588832951,428.11456140098,523.2511306012],description:"Tritriadic scale of the 7:9:11 triad"},tritriad9:{frequencies:[261.6255653006,272.93037367779,319.76457981184,362.25078272391,377.90359432309,442.75095666255,461.88217083933,523.2511306012],description:"Tritriadic scale of the 9:11:13 triad"},tsjerepnin:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,367.91095120397,392.4383479509,418.60090448096,470.92601754108,490.54793493862,523.2511306012],description:"Scale from Ivan Tsjerepnin's Santur Opera (1977) & suite from it Santur Live!"},tsuda13:{frequencies:[261.6255653006,281.75060878526,283.42769574232,322.00069575458,340.11323489078,362.25078272391,377.90359432309,402.50086969323,425.14154361347,442.75095666255,485.87604984397,518.26778650024,523.2511306012],description:"Mayumi Tsuda's Harmonic-13 scale. 1/1=440 Hz."},tuneable3:{frequencies:[36.70809598968,41.95210970249,42.82611198796,43.59086398774,44.04971518762,44.86545065405,45.8851199871,46.71939489596,47.1961234153,47.72052478658,48.94412798624,49.55592958607,50.47363198581,51.39133438555,52.00313598538,52.44013712811,53.02280531843,53.39359416681,55.06214398452,57.10148265061,57.68415084093,58.73295358349,59.65065598323,61.1801599828,62.40376318246,62.92816455374,64.23916798194,66.07457278142,66.74199270851,67.29817598108,68.17217826655,68.82767998065,70.35718398022,73.41619197936,79.53420797764,80.7578111773,82.59321597678,85.65222397592,87.18172797549,88.09943037523,89.14823311779,89.73090130811,90.10169015649,91.7702399742,94.39224683061,95.44104957317,96.35875197291,97.88825597248,100.94726397162,102.7826687711,104.00627197076,104.88027425623,105.53577597033,110.12428796904,114.20296530123,114.71279996775,115.36830168185,116.24230396732,117.46590716698,119.30131196646,120.61231539466,122.3603199656,123.88982396517,124.80752636491,125.85632910747,128.47833596388,132.14914556285,134.59635196216,137.6553599613,139.49076476078,140.71436796044,141.58837024591,146.83238395872,152.950399957,154.17400315666,156.00940795614,159.06841595528,161.51562235459,165.18643195356,168.85724155253,171.30444795184,174.36345595098,176.19886075046,183.5404799484,190.88209914634,192.71750394582,195.77651194496,201.89452794324,205.56533754221,208.01254394152,211.07155194066,220.24857593808,229.4255999355,232.48460793464,238.60262393292,244.7206399312,247.77964793034,256.95667192776,269.19270392432,275.3107199226,281.42873592088,293.66476791744],description:"Marc Sabat, 3 octaves of intervals tuneable by ear"},tuners1:{frequencies:[261.6255653006,276.50456653385,293.15590636358,311.0676370396,328.627540632,349.28088891463,369.11955599459,391.76814585061,414.75684959346,439.06365754828,466.60145532616,492.6062100846,523.2511306012],description:"The Tuner's Guide well temperament no. 1 (1840)"},tuners2:{frequencies:[261.6255653006,276.9861853325,293.55936848273,311.27971878774,329.48489606404,349.42029142443,369.90111701824,391.99869425741,415.03962525779,439.89939957166,466.4799232208,493.78769382322,523.2511306012],description:"The Tuner's Guide well temperament no. 2 (1840)"},tuners3:{frequencies:[261.6255653006,276.9180796764,293.64050032496,311.25753558078,329.38199580693,349.20116137147,369.59117881045,391.8877401954,415.37711930697,439.91014033466,466.33569310799,493.52238512763,523.2511306012],description:"The Tuner's Guide well temperament no. 3 (1840)"},turkish:{frequencies:[261.6255653006,279.06726965397,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"Turkish, 5-limit from Palmer on a Turkish music record, harmonic minor inverse"},turkish_24:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Ra'uf Yekta, 24-tone Pythagorean Turkish Theoretical Gamut, 1/1=D (perde yegah) at 294 Hz"},turkish_24a:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,344.52749339997,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,459.36999119996,465.11211608996,490.54793493862,496.67978412536,516.79124009995,523.2511306012],description:"Turkish gamut with schismatic simplifications"},turkish_41:{frequencies:[261.6255653006,266.80864394988,272.09440643071,275.67629620338,281.13773466533,286.70737164501,290.48162858661,294.30556868769,300.13607443832,306.08208692954,310.11139540064,316.25503135793,322.52037740267,326.76608188608,333.2396629384,339.84149442859,344.31521657963,348.8478314504,355.75887527351,362.80683626646,367.58287746967,374.8650823332,382.29155536296,387.32409620162,392.42288612931,400.19720009986,408.12552912594,413.49815209867,421.6899870258,430.04411333507,435.70527569249,441.44096240275,450.1863739015,459.10504388656,465.14876849982,474.36385666592,483.76150545705,490.12981126508,499.83980314828,509.74215733443,516.45247616827,523.2511306012],description:"Abd\xEF\xBF\xBDlkadir T\xEF\xBF\xBDre and M. Ekrem Karadeniz theoretical Turkish gamut"},turkish_41a:{frequencies:[261.6255653006,268.5590565112,272.09440643071,275.67629620338,279.3053384865,286.70737164501,290.48162858661,294.30556868769,298.17984938441,306.08208692954,310.11139540064,314.19374626607,322.52037740267,326.76608188608,335.42589979828,339.84149442859,344.31521657963,348.8478314504,353.4401143131,362.80683626646,367.58287746967,377.32440283229,382.29155536296,387.32409620162,392.42288612931,402.82271318249,408.12552912594,413.49815209867,424.45650702809,430.04411333507,435.70527569249,441.44096240275,453.1398459935,459.10504388656,465.14876849982,477.47594368525,483.76150545705,490.12981126508,503.11902634639,509.74215733443,516.45247616827,523.2511306012],description:"Karadeniz's theoretical Turkish gamut, quantized to subset of 53-tET"},turkish_aeu:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,465.11211608996,471.45776383774,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Arel-Ezgi-Uzdilek (AEU) 24 tone theoretical system"},turkish_bagl:{frequencies:[261.6255653006,277.01530443593,285.40970760065,294.32876096318,311.64221749042,321.08592105074,331.11985608357,348.83408706747,369.35373924791,380.54627680087,392.4383479509,415.52295665389,428.11456140098,441.49314144476,465.11211608996,492.47165233054,507.3950357345,523.2511306012],description:'Ratios of the 17 frets on the neck of "Baglama" ("saz") according to Yal\xEF\xBF\xBD\xEF\xBF\xBDn Tura'},two29:{frequencies:[261.6255653006,265.43099677612,267.95417262175,271.85165581044,274.43586616969,278.42762776199,281.0743490329,285.16266958193,287.87341387594,292.06062910037,294.83694510625,299.12544722478,301.96892109338,306.36116019141,309.2734164419,313.77190187131,316.75460431924,321.36190613206,324.41675883995,329.13550925662,332.26425750751,337.09715242073,340.3015837153,345.25138423021,348.53332930799,353.60286331966,356.96419720496,362.15636101402,365.59900408717,370.91676405444,374.44268531179,379.88907958456,383.50028913155,389.07842928561,392.77699240278,398.49006531303,402.2780950448,408.12936467525,412.00902517967,418.00183444819,421.97534223334,428.1131149215,432.1827401118,438.46898282094,442.63705045414,449.07535460876,453.34424596425,459.9382898638,464.31044382305,471.06399474345,475.54190918343,482.45882552933,487.04505874954,494.12929225872,498.82646444278,506.0820624438,510.89285715645,518.32396488098,523.2511306012],description:"Two 29-tET scales 25 cents shifted, many near just intervals"},two29a:{frequencies:[261.6255653006,264.02813680074,267.95417262175,270.41486126945,274.43586616969,276.95607779319,281.0743490329,283.65552346679,287.87341387594,290.51702578379,294.83694510625,297.54450482308,301.96892109338,304.74197548856,309.2734164419,312.11354980287,316.75460431924,319.66343925668,324.41675883995,327.39595721478,332.26425750751,335.31552138031,340.3015837153,343.42665631876,348.53332930799,351.73399604284,356.96419720496,360.24228665998,365.59900408717,368.95638908389,374.44268531179,377.88128181162,383.50028913155,387.02206376789,392.77699240278,396.38395721814,402.2780950448,405.97231075214,412.00902517967,415.79260233969,421.97534223334,425.85044246025,432.1827401118,436.15157730833,442.63705045414,446.70189207635,453.34424596425,457.50741431695,464.31044382305,468.5743173866,475.54190918343,479.90892674463,487.04505874954,491.51771254425,498.82646444278,503.40730976502,510.89285715645,515.58451111167,523.2511306012],description:"Two 29-tET scales 15.826 cents shifted, 13-limit chords, Mystery temperament, Gene Ward Smith"},xenakis_chrom:{frequencies:[261.6255653006,274.52698453615,329.62755691287,349.22823143301,391.99543598175,411.32572372413,493.88330125613,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 5 + 19 + 6 parts"},xenakis_diat:{frequencies:[261.6255653006,293.66476791741,326.46944327063,349.22823143301,391.99543598175,440,489.15147723638,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 12 + 11 + 7 parts"},xenakis_schrom:{frequencies:[261.6255653006,279.86396690685,326.46944327063,349.22823143301,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 7 + 16 + 7 parts"},xenoga24:{frequencies:[261.6255653006,265.7783520514,279.38237857051,283.8170195002,294.32876096318,299.00064605783,310.07474405997,314.99656539426,331.11985608357,336.37572681506,348.83408706747,354.37113606854,372.50983809402,378.42269266694,392.4383479509,398.6675280771,419.07356785577,425.72552925031,441.49314144476,448.50096908674,465.11211608996,472.49484809138,496.67978412536,504.56359022259,523.2511306012],description:"M. Schulter, 3+7 ratios Xeno-Gothic adaptive tuning (keyboards 64:63 apart)"},xylophone2:{frequencies:[261.6255653006,295.19538981304,332.68808325276,388.83826257328,446.65787257783,506.59641128799,527.19506190947,579.57827742703,633.13077520476,751.1860077911,842.69088701475],description:"African Yaswa xylophones (idiophone; calbash resonators with membrane)"},xylophone3:{frequencies:[261.6255653006,292.47977325983,348.01999353916,392.4383479509,442.29334161825,523.2511306012],description:"African Banyoro xylophone (idiophone; loose log)"},xylophone4:{frequencies:[261.6255653006,281.70207497315,314.1971709147,349.63190883464,391.76907592069,436.9606979923,505.71930677521,568.9637969584,597.94115990992,660.7800775993,716.43551549302],description:"African Bapare xylophone (idiophone, loose-log)"},zalzal:{frequencies:[261.6255653006,294.32876096318,321.08592105074,348.83408706747,392.4383479509,428.11456140098,465.11211608996,523.2511306012],description:"Tuning of popular flute by Al Farabi & Zalzal. First tetrachord is modern Rast"},zalzal2:{frequencies:[261.6255653006,294.32876096318,331.11985608357,348.83408706747,387.59343007496,419.89288258121,465.11211608996,523.2511306012],description:"Zalzal's Scale, a medieval Islamic with Ditone Diatonic & 10/9 x 13/12 x 72/65"},zarlino:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Ptolemy's Intense Diatonic Systonon, also Zarlino's scale"},zarlino2:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"16-note choice system of Zarlino, Sopplimenti musicali (1588)"},zartehijaz1:{frequencies:[261.6255653006,280.55696721076,336.07142343876,350.07440004945,375.4060213132,393.89732161404,446.43551156053,468.42549744394,502.32108537715,523.2511306012],description:"Scale from Zarlino temperament extraordinaire -- lower Hijaz tetrachord"},zesster_a:{frequencies:[261.6255653006,279.06726965397,313.95067836072,334.88072358477,348.83408706747,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Harmonic six-star, group A, from Fokker"},zesster_b:{frequencies:[261.6255653006,293.02063313667,299.00064605783,334.88072358477,366.27579142084,418.60090448096,457.84473927605,478.40103369253,523.2511306012],description:"Harmonic six-star, group B, from Fokker"},zesster_c:{frequencies:[261.6255653006,299.00064605783,305.22982618403,348.83408706747,398.6675280771,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"Harmonic six-star, group C on Eb, from Fokker"},zesster_mix:{frequencies:[261.6255653006,274.70684356563,279.06726965397,293.02063313667,299.00064605783,313.95067836072,334.88072358477,348.83408706747,358.80077526939,366.27579142084,392.4383479509,418.60090448096,457.84473927605,478.40103369253,488.36772189445,502.32108537715,523.2511306012],description:"Harmonic six-star, groups A, B and C mixed, from Fokker"},zest24:{frequencies:[261.6255653006,269.33468959023,272.52663052146,280.55696721076,292.24684137387,300.8582598368,308.87634556583,317.97777315513,326.45210604021,336.07142343876,350.07440004945,360.38977980792,364.66083404534,375.4060213132,391.04793957621,402.57065589001,410.30971075781,422.39999923493,436.81711699543,449.68847932918,465.03699205118,478.73988827571,487.94322738789,502.32108537715,523.2511306012],description:"Zarlino Extraordinaire Spectrum Temperament (two circles at ~50.28c apart)"},zir_bouzourk:{frequencies:[261.6255653006,281.75060878526,305.22982618403,313.95067836072,353.19451315581,392.4383479509,523.2511306012],description:"Zirafkend Bouzourk (IG #3, DF #9), from both Rouanet and Safi al-Din"},zwolle:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Henri Arnaut De Zwolle. Pythagorean on G flat."},zwolle2:{frequencies:[261.6255653006,273.37431312998,292.50627485027,311.68386704488,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,467.04206359353,489.02683710225,523.2511306012],description:"Henri Arnaut De Zwolle's modified meantone tuning (c. 1440)"},yarman12:{frequencies:[261.6255653006,283.42769574232,294.32876096318,309.19384990071,332.97799220076,348.83408706747,377.90359432309,392.4383479509,411.12588832951,442.75095666255,465.11211608996,499.46698830115,523.2511306012],description:"Detempered Yarman 13-limit, [<1 1 -20 -6 -3 -1|, <0 1 38 15 11 8|]"},yarman12_80:{frequencies:[261.6255653006,282.84340331238,295.36595061166,319.3201344739,333.45764463229,348.2210758395,376.46181130035,393.12919962609,425.01198472693,443.82887286778,479.82340237272,501.06699929295,523.2511306012],description:"Ozan Yarman MOS, 80-et version"},yarman17:{frequencies:[261.6255653006,274.08392555301,283.42769574232,294.32876096318,309.19384990071,322.00069575458,332.97799220076,348.83408706747,362.25078272391,377.90359432309,392.4383479509,411.12588832951,425.14154361347,442.75095666255,465.11211608996,485.87604984397,499.46698830115,523.2511306012],description:"80-et commas 13-limit detempering of a chain of 16 fifths"},"yarman_ney-ahengs":{frequencies:[261.6255653006,275.39533189537,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,494.18162334558,523.2511306012],description:"Well Temperament for piano by Ozan Yarman from Ney Ahengs"},yasser_6:{frequencies:[261.6255653006,291.88463270656,325.64340264099,363.30663963964,405.32593044476,452.20508247496,523.2511306012],description:"Yasser Hexad, 6 of 19 as whole tone scale"},yasser_diat:{frequencies:[261.6255653006,281.42815779395,291.88463270656,313.97755176024,325.64340264099,350.29154279212,376.80531512858,390.80553229045,420.38583225541,436.00528786292,469.00678383895,486.43275040712,523.2511306012],description:"Yasser's Supra-Diatonic, the flat notes are V,W,X,Y,and Z"},yasser_ji:{frequencies:[261.6255653006,282.64904822654,294.32876096318,304.39128270551,327.03195662575,347.87575166344,359.73515228832,391.36022062136,425.14154361347,434.84468957929,457.84473927605,478.32915853722,523.2511306012],description:"Yasser's just scale, 2 Yasser hexads, 121/91 apart"},yekta:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,502.32108537715,523.2511306012],description:"Rauf Yekta's 12-tone tuning suggested in 1922 Lavignac Music Encyclopedia"},"young-g":{frequencies:[261.6255653006,299.07507698093,319.76457981184,341.88537054616,390.82337532559,446.76650366117,477.67301428683,510.71739232152,583.82257301724,667.39198333921,713.56092257662,762.92356430953,872.13001648254,996.96833978235,1065.93668681199,1139.67601990796,1302.81150610354,1489.29848625885,1592.32474578757,1702.47910946196,1946.17475603251,2224.75468143463,2378.65811671778,2543.20970830682,2907.24890901465,3323.39919648924,3553.30434397593,3799.11599765247,4342.92768045015],description:"Gayle Young's Harmonium, see PNM 26(2): 204-212 (1988)"},"young-lm_guitar":{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"LaMonte Young, Tuning of For Guitar '58. 1/1 March '92, inv.of Mersenne lute 1"},"young-lm_piano":{frequencies:[261.6255653006,289.72987407313,294.32876096318,300.46061014991,343.38355445704,338.01818641865,386.30649876417,392.4383479509,400.61414686654,457.84473927605,450.69091522486,515.07533168556,523.2511306012],description:"LaMonte Young's Well-Tempered Piano"},"young-w10":{frequencies:[261.6255653006,277.18263097687,302.26980244078,320.24370022528,349.22823143301,369.99442271164,391.99543598175,427.47405410759,452.89298412314,493.88330125613,523.2511306012],description:"William Lyman Young 10 out of 24-tET (1961)"},"young-w14":{frequencies:[261.6255653006,277.18263097687,293.66476791741,302.26980244078,320.24370022528,339.28638158975,359.46139971304,369.99442271164,391.99543598175,415.30469757995,427.47405410759,452.89298412314,479.82340237272,508.3551866238,523.2511306012],description:"William Lyman Young 14 out of 24-tET (1961)"},"young-wt":{frequencies:[261.6255653006,285.40970760065,309.19384990071,348.83408706747,392.4383479509,428.11456140098,463.79077485106,523.2511306012],description:'William Lyman Young "exquisite 3/4 tone Hellenic Lyre" dorian'},young:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,348.83408706747,367.49599295996,391.5530240856,413.43299207996,438.51190905657,465.11211608996,491.10256480205,523.2511306012],description:"Thomas Young well temperament (1807), also Luigi Malerbi nr.2 (1794)"},young2:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.14198392915,349.22823143301,368.32692341742,391.5530240856,414.36778843034,438.51190905657,466.16376151809,491.65745674141,523.2511306012],description:"Thomas Young well temperament no.2 (1799)"},yugo_bagpipe:{frequencies:[261.6255653006,277.02257024271,294.00421879736,322.47117131255,341.84370465044,381.9375744369,404.41509766528,430.1988069325,452.63145841613,463.74664903953,478.99265177484,502.22604835608,523.2511306012],description:"Yugoslavian Bagpipe"},yves:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:`St Yves's scale II from Jocelyn Godwin, "Music and the Occult", 1995.`},saba_sup:{frequencies:[261.6255653006,287.78812183066,313.95067836072,327.03195662575,392.4383479509,418.60090448096,470.92601754108,497.08857407114,523.2511306012],description:"Superparticular version of maqam Sab"},sabagh:{frequencies:[261.6255653006,275.67629620338,279.3053384865,286.70737164501,294.30556868769,310.11139540064,314.19374626607,322.52037740267,326.76608188608,331.06767743197,348.8478314504,362.80683626646,367.58287746967,372.42178901277,392.42288612931,413.49815209867,418.94150105041,430.04411333507,441.44096240275,465.14876849982,471.27205084813,483.76150545705,490.12981126508,496.58195036371,523.2511306012],description:"Twfiq Al-Sabagh, Arabic master musical scale in 53-tET (1954)"},sabbagh:{frequencies:[261.6255653006,294.30556868769,321.46759848648,348.8478314504,392.42288612931,428.64035280622,465.14876849982,523.2511306012],description:"Tawfiq as-Sabbagh, a composer from Syria. 1/1=G"},safi_diat:{frequencies:[261.6255653006,276.16031892841,305.22982618403,348.83408706747,392.4383479509,414.24047839262,457.84473927605,523.2511306012],description:"Safi al-Din's Diatonic, also the strong form of Avicenna's 8/7 diatonic"},safi_diat2:{frequencies:[261.6255653006,283.79722337692,310.07474405997,348.83408706747,392.4383479509,425.69583506538,465.11211608996,523.2511306012],description:"Safi al-Din's 2nd Diatonic, a 3/4 tone diatonic like Ptolemy's Equable Diatonic"},safi_major:{frequencies:[261.6255653006,281.75060878526,322.00069575458,348.83408706747,375.66747838035,392.4383479509,523.2511306012],description:"Singular Major (DF #6), from Safi al-Din, strong 32/27 chromatic"},salinas_19:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:`Salinas' enharmonic tuning for his 19-tone instr. "instrumentum imperfectum"`},salinas_24:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,459.88868900496,465.11211608996,470.92601754108,490.54793493862,510.98743222773,523.2511306012],description:'Salinas enharmonic system "instrumentum perfectum". Subset of Mersenne'},salinas_enh:{frequencies:[261.6255653006,272.52663052146,279.06726965397,348.83408706747,392.4383479509,408.78994578219,418.60090448096,523.2511306012],description:"Salinas's and Euler's enharmonic"},salunding:{frequencies:[261.6255653006,282.38958039978,310.76686573877,390.36201910543,419.43149305958,523.2511306012],description:"Gamelan slunding, Kengetan, South-Bali. 1/1=378 Hz"},sankey:{frequencies:[261.6255653006,274.88665260982,292.54735824399,309.58527581215,327.03195662575,348.83408706747,366.73895666255,391.24894371175,412.31687950427,437.13741259348,464.79252184829,489.99465727995,523.2511306012],description:"John Sankey's Scarlatti tuning, personal evaluation based on d'Alembert's"},santur1:{frequencies:[261.6255653006,282.02765077995,319.3201344739,347.21689301951,376.46192220133,427.47393558663,475.68393915562,504.55222794679,523.2511306012],description:"Persian santur tuning. 1/1=E"},santur2:{frequencies:[261.6255653006,281.2143451833,317.48098583281,345.21700307457,375.37611551499,423.78627283082,475.68393915562,498.18106573801,523.2511306012],description:"Persian santur tuning. 1/1=E"},sanza:{frequencies:[261.6255653006,293.15632631094,308.97787266236,346.21547002486,390.18821123181,462.40922843744,524.46149515038,595.18445928535,620.10113226249],description:"African N'Gundi Sanza (idiophone; set of lamellas, thumb-plucked)"},sanza2:{frequencies:[261.6255653006,390.63923480058,465.35666077712,523.2511306012,588.68812410589,663.45725712889,702.9084786129,783.08569314515],description:"African Baduma Sanza (idiophone, like mbira)"},sauveur:{frequencies:[261.6255653006,274.85950244128,292.7026939092,313.25286195357,328.80795208256,349.69755047152,367.27338607435,391.35133250294,417.15885134862,438.29716799286,468.84228427561,491.11646492505,523.2511306012],description:"Sauveur's tempered system of the harpsichord. Trait\xEF\xBF\xBD (1697)"},sauveur2:{frequencies:[261.6255653006,278.64199172491,293.04864983565,312.10886966906,328.2456799168,349.5951549002,372.33322418948,391.58401058733,417.05308314313,438.61577206336,467.14384425417,491.2966347616,523.2511306012],description:"Sauveur's Syste^me Chromatique des Musiciens (Memoires 1701), 12 out of 55."},sauveur_17:{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,441.49314144476,465.11211608996,489.99465727995,496.67978412536,523.2511306012],description:"Sauveur's oriental system, aft. Kitab al-adwar (Bagdad 1294) by Safi al-Din"},sauveur_ji:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Aplication des sons harmoniques aux jeux d'orgues (1702) (PB 81/80 & 128/125)"},savas_bardiat:{frequencies:[261.6255653006,282.57123920205,317.17549194805,349.22823143301,391.99543598175,423.37848741825,475.22628419761,523.2511306012],description:"Savas's Byzantine Liturgical mode, 8 + 12 + 10 parts"},savas_barenh:{frequencies:[261.6255653006,282.57123920205,329.62755691287,349.22823143301,391.99543598175,423.37848741825,493.88330125613,523.2511306012],description:"Savas's Byzantine Liturgical mode, 8 + 16 + 6 parts"},savas_chrom:{frequencies:[261.6255653006,282.57123920205,323.3415889232,349.22823143301,391.99543598175,423.37848741825,484.46499093218,523.2511306012],description:"Savas's Chromatic, Byzantine Liturgical mode, 8 + 14 + 8 parts"},savas_diat:{frequencies:[261.6255653006,288.06460709314,311.12698372208,349.22823143301,391.99543598175,431.60923940535,466.16376151809,523.2511306012],description:"Savas's Diatonic, Byzantine Liturgical mode, 10 + 8 + 12 parts"},savas_palace:{frequencies:[261.6255653006,277.18263097687,336.03572815422,349.22823143301,391.99543598175,415.30469757995,503.48470957687,523.2511306012],description:"Savas's Byzantine Liturgical mode, 6 + 20 + 4 parts"},scalatron:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,510.98743222773,523.2511306012],description:"Scalatron (tm) 19-tone scale, see manual, 1974"},scheengaas:{frequencies:[261.6255653006,273.84069463911,292.6487650037,312.74862113192,327.53979283172,350.03605285217,366.8025131876,391.54284657258,418.19337019276,437.97145880542,467.51204131067,489.62261321254,523.2511306012],description:"Scheengaas' variation"},scheffer:{frequencies:[261.6255653006,274.56546814423,292.86978442859,309.86465789076,327.84548435462,349.70179235499,366.99791252626,391.46460164194,410.82629477826,438.21464222188,467.42914467878,490.54793493862,523.2511306012],description:"H.Th. Scheffer (1748) modified 1/5-comma temperament, Sweden"},schidlof:{frequencies:[261.6255653006,264.89588486686,274.70684356563,280.31310567921,294.32876096318,305.22982618403,315.35224388912,322.99452506247,327.03195662575,348.83408706747,353.19451315581,366.27579142084,373.75080757229,392.4383479509,406.97310157871,420.46965851882,436.04260883433,457.84473927605,467.18850946536,484.4917875937,490.54793493862,523.2511306012],description:"Schidlof"},schillinger:{frequencies:[261.6255653006,262.8879410321,275.85161280553,277.18263097687,278.52007147562,292.25460328695,293.66476791741,295.08173676673,309.63296633914,311.12698372208,312.62820992379,328.04470063332,329.62755691287,331.21805066987,347.55125362114,349.22823143301,350.91330087035,368.21772660991,369.99442271164,371.77969159194,390.11309203208,391.99543598175,393.88686247394,413.31042363438,415.30469757995,417.30859414412,437.88714035463,440,442.12305445465,463.92526470026,466.16376151809,468.41305936011,491.51169649079,493.88330125613,496.26634930797,520.73850287792,523.2511306012],description:"Joseph Schillinger's double equal temperament, p.664 Mathematical Basis..."},schis41:{frequencies:[261.6255653006,266.96486255163,272.52663052146,275.21650375777,280.31310567921,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,311.45900631024,313.95067836072,321.08592105074,327.03195662575,329.64821227876,336.37572681506,343.38355445704,348.83408706747,355.95315006884,363.36884069528,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,415.27867508032,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,484.4917875937,490.54793493862,497.4115685962,504.56359022259,512.78610798918,523.2511306012],description:"41&53 <<1 -8 -14 23 -15 -25 33 -10 81 113||"},schisynch17:{frequencies:[261.6255653006,275.80289341725,290.74848220557,294.25152581512,310.19683462128,327.0062098829,330.94609980123,348.87986495302,367.78544978395,387.71551660339,392.38685458718,413.65005636851,436.06549769577,441.31937388998,465.23419873014,490.4449531872,496.35401261224,523.2511306012],description:"fifth satisfies f^9 + f^8 - 64 = 0"},schlick:{frequencies:[261.6255653006,275.62199471997,293.00227310437,311.47852302926,328.14198392915,349.6228209638,367.9112241576,391.5530240856,414.36778843034,438.51190905657,466.69047534984,491.10256480205,523.2511306012],description:"Reconstructed temp. A. Schlick, Spiegel d. Orgelmacher und Organisten (1511)"},schlick2:{frequencies:[261.6255653006,275.31092272332,293.00227310437,311.83045953724,328.14198392915,349.6228209638,367.9112241576,391.5530240856,415.30469757995,438.51190905657,466.69047534984,491.10256480205,523.2511306012],description:"Schlick's temperament reconstructed by F.J. Ratte (1991)"},schlick3:{frequencies:[261.6255653006,275.31092431358,293.00227310437,311.83045953724,328.14198392915,349.6228209638,367.70355049744,391.5530240856,415.07027187895,438.51190905657,466.95405539699,491.10256480205,523.2511306012],description:"Possible well-tempered interpretation of 1555 tuning, Margo Schulter"},schlick4:{frequencies:[261.6255653006,275.29566620843,293.00166043901,311.83758337792,328.14192706649,349.6222474261,367.6987228158,391.55300599201,415.35839309639,438.51185079886,466.95962791236,491.10245700671,523.2511306012],description:"Another reconstructed Schlick's modified meantone (Poletti?)"},scholz:{frequencies:[261.6255653006,271.31540105247,299.00064605783,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Simple Tune #1 Carter Scholz"},scholz_epi:{frequencies:[261.6255653006,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,4709.2601754108,5232.511306012,5494.1368713126,5755.7624366132,6279.0135672144,6540.639132515,6802.2646978156,7063.8902631162,7325.5158284168,8372.0180896192,8633.6436549198,9156.894785521,9418.5203508216,10203.3970467234,10465.022612024,10988.2737426252,11511.5248732264,11773.150438527,12558.0271344288,12819.6526997294,13081.27826503,14127.7805262324,14389.406091533,14651.0316568336,16482.4106139378,16744.0361792384,17005.661744539],description:"Carter Scholz, Epimore"},schulter:{frequencies:[261.6255653006,277.184065539,293.66520219021,311.12905403417,329.62853176407,349.23107169224,369.99606406306,391.99572582396,415.30715405467,440.00097595231,466.1672081452,493.88512703986,523.25577305438],description:`Margo Schulter's 5-limit JI virt. ET, "scintilla of Artusi" tempered 22-08-98`},schulter_17:{frequencies:[261.6255653006,272.43653907335,282.13181390574,295.15344695336,308.77608605158,319.09647917983,332.97799220076,348.34640884647,361.82138782225,375.64984936577,392.98775403209,410.26687922759,423.79017189188,443.34998408798,463.81254988138,480.53289366295,500.16624277499,523.2511306012],description:"Neo-Gothic well-temperament (14:11, 9:7 hypermeantone fifths) TL 04-09-2000"},schulter_24:{frequencies:[261.6255653006,270.06509966514,283.8170195002,292.97240722602,295.75063903546,305.22982618403,307.79478270659,317.68818643644,334.29933343966,345.08318290545,348.06842720833,359.29644098925,377.90359432309,390.09403284964,393.30161007617,406.07983174306,426.86276443782,440.63253103259,444.76346101102,458.66231916761,462.87600014722,477.80748402293,502.32108537715,518.89070451286,523.2511306012],description:'Rational intonation (RI) scale with some "17-ish" features (24 notes)'},schulter_cart34:{frequencies:[261.6255653006,270.08718526646,272.51337835337,281.3271372098,283.85429714132,293.03484945212,295.66718139806,305.22982618403,307.97166902637,317.93223698752,320.78822215662,331.16330924834,334.13814720468,344.94500399825,348.04364484358,359.30023993517,362.52783176564,374.2528814026,377.61479489998,389.82779436071,393.32961502355,406.05087076101,409.69842558521,422.94908927295,426.7484383229,440.55054172958,444.50800708553,458.88449901367,463.0066556268,477.98143975034,482.27514684959,497.87312179111,502.34551296122,518.59261334435,523.2511306012],description:'"Carthesian tuning" with two 17-tET chains 55.106 cents apart'},schulter_diat7:{frequencies:[261.6255653006,295.1673044417,332.97799220076,348.83408706747,392.4383479509,442.75095666255,499.46698830115,523.2511306012],description:"Diatonic scale, symmetrical tetrachords based on 14/11 and 13/11 triads"},schulter_ham:{frequencies:[261.6255653006,272.52663052146,283.8170195002,295.75063903546,307.79478270659,320.70230585235,334.29933343966,348.01136516401,362.25078272391,377.90359432309,393.36609818246,409.50088481833,426.86276443782,444.76346101102,462.87600014722,482.33849075995,502.32108537715,523.2511306012],description:'New rational tuning of "Hammond organ type", TL 01-03-2002'},schulter_jot17a:{frequencies:[261.6255653006,271.31540105247,281.75060878526,295.1673044417,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,392.4383479509,406.97310157871,422.62591317789,442.75095666255,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:"Just octachord tuning -- 4:3-9:8-4:3 division, 17 steps (7 + 3 + 7), Bb-Bb"},schulter_jot17bb:{frequencies:[261.6255653006,271.31540105247,281.75060878526,295.15228855401,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,392.4383479509,406.97310157871,422.62591317789,442.72843283101,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:'"Just Octachord Tuning" (Bb-Eb, F-Bb) -- 896:891 divided into 1792:1787:1782'},schulter_jwt17:{frequencies:[261.6255653006,272.43653907335,282.34838235411,295.1673044417,308.34441624714,319.76457981184,332.97799220076,347.8430811383,362.25078272391,376.08675011961,393.55640592227,409.81906732402,425.14154361347,443.97065626768,462.87600014722,481.6288815761,500.8899711738,523.2511306012],description:'"Just well-tuned 17" circulating system'},"schulter_lin76-34":{frequencies:[261.6255653006,270.6250663876,281.88470155261,291.58108453077,295.07956188513,305.22982618403,308.89206602106,319.51745915009,332.81131277165,344.25948974019,348.39001840879,360.3740779397,375.36781334896,388.27986588625,392.93856423817,406.45502016129,423.36600317146,437.92911415628,443.18352164838,458.42832346067,463.9286840578,479.88708893184,499.85328649772,517.04744024951,523.2511306012],description:"Two 12-note chains, ~704.160 cents, 34 4ths apart (32 4ths = 7:6), TL 29-11-02"},schulter_pel:{frequencies:[261.6255653006,271.31540105247,305.22982618403,392.4383479509,406.97310157871,523.2511306012],description:"Just pelog-style Phrygian pentatonic"},schulter_pepr:{frequencies:[261.6255653006,270.64528702739,281.81099471089,291.52662303231,295.05751399041,305.22982618403,308.92668738628,319.57714790608,332.76158224462,344.23376719628,348.40303271111,360.41446953256,375.28368107222,388.22184469544,392.9238840789,406.47020586181,423.23948674937,437.83095983374,443.13385158124,458.41119660824,463.96335069158,479.95880706014,499.75992392917,516.98949183803,523.2511306012],description:"Peppermint 24: Wilson/Pepper apotome/limma=Phi, 2 chains spaced for pure 7:6"},schulter_qcm62a:{frequencies:[261.6255653006,262.43934012943,267.90457886781,268.73788454005,273.37431312998,274.22463192287,279.93529690293,280.80602334765,285.65065877038,286.53916259713,292.50627485027,293.41610276971,299.52642572255,300.45808951291,305.64177427204,306.59245933664,312.977175335,313.95067836072,320.36052345918,320.48862783822,327.03195662575,328.04917632434,334.88072358477,335.92235492515,341.71789064962,342.78078913836,349.91912034749,351.00752840096,358.31717956585,359.43170941363,365.63284274659,366.77012764335,374.40803131735,375.5726110527,382.05221698715,383.2405741708,391.22147055517,392.4383479509,400.61078621746,401.85686830172,408.78994578219,410.06146948999,418.60090448096,419.90294514449,427.14736482575,428.47598794138,437.39890198442,438.75941205608,447.89647345742,449.28963835923,457.04105241293,458.46266117889,468.01003810189,469.46576276783,479.24227945773,480.73294151703,489.02683710225,490.54793493862,500.76348165392,502.32108537715,510.98743222773,512.57683571821,523.2511306012],description:"1/4-comma meantone, two 31-notes at 1/4-comma (Vicentino-like system)"},schulter_qcmlji24:{frequencies:[261.6255653006,262.43934012943,273.37431312998,274.22463192287,292.50627485027,293.41610276971,306.59245933664,312.977175335,327.03195662575,328.04917632434,349.91912034749,351.00752840096,365.63284274659,366.77012764335,391.22147055517,392.4383479509,408.78994578219,410.06146948999,437.39890198442,438.75941205608,458.46266117889,468.01003810189,489.02683710225,490.54793493862,523.2511306012],description:"24-note adaptive JI (Eb-G#/F'-A#') for Lasso's Prologue to _Prophetiae_"},schulter_qcmqd8_4:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.28772967674,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.22091428214,437.39890198442,465.24335632603,489.02683710225,523.2511306012],description:"F-C# in 1/4-comma meantone, other 5ths ~4.888 cents wide or (2048/2025)^(1/4)"},schulter_sq:{frequencies:[261.6255653006,271.31540105247,279.38237857051,289.72987407313,294.32876096318,305.22982618403,310.07474405997,325.94610833227,331.11985608357,343.38355445704,348.83408706747,361.75386806997,372.50983809402,386.30649876417,392.4383479509,406.97310157871,419.07356785577,434.59481110969,441.49314144476,457.84473927605,465.11211608996,488.9191624984,496.67978412536,515.07533168556,523.2511306012],description:'"Sesquisexta" tuning, two 12-tone Pyth. manuals a 7/6 apart. TL 16-5-2001'},schulter_tedorian:{frequencies:[261.6255653006,295.99553712036,309.28772789022,347.85054122562,393.54796334264,442.61656607198,462.49302735707,523.2511306012],description:"Eb Dorian in temperament extraordinaire -- neo-medieval style"},schulter_zarte84:{frequencies:[261.6255653006,272.52663052146,292.24684137387,308.87634556583,326.45210604021,350.07440004945,364.66083404534,391.04793957621,410.30971075781,436.81711699543,465.03699205118,487.94322738789,523.2511306012],description:"Temperament extraordinaire, Zarlino's 2/7-comma meantone (F-C#)"},schulter_zarte84n:{frequencies:[261.6255653006,272.46997760396,292.1447183254,308.81896225817,326.44489157977,350.01709816983,364.52535053201,391.11195868293,410.09013064752,436.73596474349,465.11312402839,488.01232708701,523.2511306012],description:"Zarlino temperament extraordinaire, 1024-tET mapping"},scotbag:{frequencies:[261.6255653006,290.69507255622,327.03195662575,356.76213450082,387.59343007496,436.04260883433,479.64686971777,523.2511306012],description:"Scottish bagpipe tuning"},scotbag2:{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Scottish bagpipe tuning 2"},scotbag3:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,441.49314144476,479.64686971777,523.2511306012],description:"Scottish bagpipe tuning 3"},scotbag4:{frequencies:[261.6255653006,293.15632631094,318.58319997217,348.2210758395,392.67530119805,428.21545238314,468.59347232539,523.2511306012],description:"Scottish Higland Bagpipe by Macdonald, Edinburgh. Helmholtz/Ellis p. 515, nr.52"},scottd1:{frequencies:[261.6255653006,275.93341798027,292.67158636845,310.42509491746,327.40170814054,349.22823143301,367.9112241576,391.5530240856,413.90012676351,437.52264545758,465.63764214343,490.54829628849,523.2511306012],description:"Dale Scott's temperament 1, TL 9-6-1999"},scottd2:{frequencies:[261.6255653006,276.1828093671,292.93610587951,310.70566022736,327.9937953665,349.3071136959,368.24374600687,391.64146650178,414.27421384356,438.21489534465,466.05849010807,491.32444638706,523.2511306012],description:"Dale Scott's temperament 2, TL 9-6-1999"},scottd3:{frequencies:[261.6255653006,276.40121172404,293.16775656083,310.95136287868,328.51274831708,349.22813057195,368.53494914961,391.77416758435,414.60181737882,438.75957425603,466.42704408487,491.93513777943,523.2511306012],description:"Dale Scott's temperament 3, TL 9-6-1999"},scottd4:{frequencies:[261.6255653006,276.60439543337,293.30494246724,310.98285414553,328.78580734933,349.37474066871,369.05201453919,391.83105388699,414.77686160481,439.10664961187,466.16991430388,492.5350487994,523.2511306012],description:"Dale Scott's temperament 4, TL 9-6-1999"},scottj:{frequencies:[261.6255653006,294.32876096318,336.37572681506,348.83408706747,392.4383479509],description:`Jeff Scott's "seven and five" tuning, fifth-repeating. TL 20-04-99`},scottj2:{frequencies:[261.6255653006,290.69507255622,299.00064605783,305.22982618403,313.95067836072,348.83408706747,366.27579142084,406.97310157871,418.60090448096,428.11456140098,436.04260883433,485.87604984397,523.2511306012,566.85539148463,581.39014511244,598.00129211566,610.45965236807,680.22646978156,719.47030457665,784.8766959018],description:`Jeff Scott's "just tritone/13" tuning. TL 17-03-2001`},secor12_1:{frequencies:[261.6255653006,275.03488264166,292.74290192225,310.07362690431,327.56128791316,349.21167447253,366.91716522699,391.37968062521,412.76363757129,437.92977184699,465.61556619611,490.01645577464,523.2511306012],description:"George Secor's 12-tone temperament ordinaire #1, proportional beating"},secor12_2:{frequencies:[261.6255653006,275.62199471997,292.79557634972,310.07474405997,327.35540669465,348.83408706747,367.49599295996,391.60840570078,413.43299207996,437.83150862942,465.11211608996,489.99465727995,523.2511306012],description:"George Secor's closed 12-tone well-temperament #2, with 7 just fifths"},secor12_3:{frequencies:[261.6255653006,274.49585366342,292.50627485027,309.76836826904,327.03195662575,349.57337698802,365.99447173417,391.22147055517,411.74378028931,437.39890198442,466.09783352473,489.02683710225,523.2511306012],description:"George Secor's closed 12-tone temperament #3 with 5 meantone, 3 just, and 2 wide fifths"},secor17htt1:{frequencies:[261.6255653006,266.21235100401,283.6936382117,294.88137067808,304.94368688875,319.75456524059,327.03195662575,348.50707605838,360.3992766165,372.69727792826,392.80658053205,399.69321489333,425.93975025566,435.63385416574,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #1 on C (5/4 & 7/4 exact)"},secor17htt2:{frequencies:[261.6255653006,266.21235100401,279.78524030783,294.88137067808,300.05119287674,319.75456524059,327.03195662575,348.50707605838,360.3992766165,372.69727792826,392.80658053205,399.69321489333,425.93975025566,442.73709545768,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #2 on Eo (5/4 & 7/4 exact)"},secor17htt3:{frequencies:[261.6255653006,270.55308473255,279.78524030783,294.88137067808,300.05119287674,319.75456524059,327.03195662575,343.70575469589,360.3992766165,368.60172104124,392.80658053205,399.69321489333,425.93975025566,442.73709545768,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #3 on G (5/4 & 7/4 exact)"},secor17htt4:{frequencies:[261.6255653006,270.55308473255,279.78524030783,294.88137067808,300.05119287674,319.75456524059,332.36439517321,343.70575469589,360.3992766165,368.60172104124,392.80658053205,399.69321489333,420.07165483694,442.73709545768,450.49910517366,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #4 on Bo (5/4 & 7/4 exact)"},secor17wt:{frequencies:[261.6255653006,271.90848849519,284.45827635845,296.12458543709,307.25838681362,320.91221742866,335.17278980765,347.77473997341,362.0378075073,378.74746489181,393.63374363584,408.43373030454,427.2847686483,445.53990619223,462.29147990415,482.0422296857,504.29062567056,523.2511306012],description:"George Secor's well temperament with 5 pure 11/7 and 3 near just 11/6"},secor19wt:{frequencies:[261.6255653006,272.32755795875,282.27948808054,292.18583194851,304.13791554835,314.37102040472,326.31582004031,339.6640167515,350.11094753355,364.43250202589,378.27942889874,391.0071187494,407.00156221801,421.24111755476,436.68033801788,454.54308187078,469.17957429271,487.6886112017,506.92782577841,523.2511306012],description:"George Secor's 19-tone well temperament with ten 5/17-comma fifths"},secor19wt1:{frequencies:[261.6255653006,272.32845615788,282.22605479514,292.18610873661,304.13920677667,314.3856167727,326.31643450984,339.6657766488,350.11078170334,364.43353349925,378.23315721313,391.00730395019,407.00309738029,421.33223555387,436.68095599763,454.54522431957,469.16941157468,487.689760539,506.89867708289,523.2511306012],description:"George Secor's 19-tone proportional-beating (5/17-comma) well temperament (v.1)"},secor19wt2:{frequencies:[261.6255653006,272.32845615788,282.22605479514,292.18610873661,304.13920677667,314.27577204952,326.31643450984,339.6657766488,350.11078170334,364.43353349925,378.23315721313,391.00730395019,407.00309738029,421.20165315727,436.68095599763,454.54522431957,469.03541436973,487.689760539,506.89867708289,523.2511306012],description:"George Secor's 19-tone proportional-beating (5/17-comma) well temperament (v.2)"},secor1_4tx:{frequencies:[261.6255653006,274.52656755164,292.65557420835,309.65910769439,327.20096538886,349.14957009195,366.50113643833,391.42429537222,412.04336447213,437.62002395673,465.5327601226,489.58458498887,523.2511306012],description:"George Secor's rational 1/4-comma temperament extraordinaire"},secor1_5tx:{frequencies:[261.6255653006,275.23833828784,292.86443876933,310.12174699459,327.84546895566,349.26796031009,366.98445105045,391.462133155,412.85750743176,438.21197504744,465.69061374678,490.54793493862,523.2511306012],description:"George Secor's 1/5-comma temperament extraordinaire (ratios supplied by G. W. Smith)"},secor1_5wt:{frequencies:[261.6255653006,275.62199471997,292.86443876933,310.07474405997,327.84546895566,348.83408706747,367.44664657419,391.462133155,413.43299207996,438.21197504744,465.11211608996,490.54793493862,523.2511306012],description:"George Secor's 1/5-comma well-temperament (ratios supplied by G. W. Smith)"},secor1_7wt:{frequencies:[261.6255653006,276.40791719395,293.28186156416,310.6264877857,328.77715667764,349.45479875891,368.54388959194,391.74026793015,414.61187579093,439.14616729155,465.93973167855,492.29203182992,523.2511306012],description:"George Secor's 1/7-comma well-temperament (ratios supplied by G. W. Smith)"},secor22_19p3:{frequencies:[261.6255653006,266.86058412305,272.32845615788,282.28026746552,292.18610873661,304.13920677667,314.37137994881,326.31643450984,339.6657766488,350.11078170334,357.11635499175,364.43353349925,378.28077924825,391.00730395019,407.00309738029,421.28573964817,436.68095599763,454.54522431957,469.17973147781,477.89781576412,487.689760539,506.93004530576,523.2511306012],description:"George Secor's 19+3 well temperament with ten ~5/17-comma (equal-beating) fifths and 3 pure 9:11. TL 28-6-2002,26-10-2006. Aux=1,10,19"},secor22_ji29:{frequencies:[261.6255653006,272.52663052146,283.42769574232,286.15296204753,294.32876096318,305.22982618403,316.13089140489,327.03195662575,340.65828815182,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,414.24047839262,425.14154361347,436.04260883433,441.49314144476,457.84473927605,479.64686971777,490.54793493862,501.44900015948,523.2511306012],description:"George Secor's 22-tone just intonation (29-limit otonality on 4/3)"},secor29htt:{frequencies:[261.6255653006,270.55308473255,276.71069203503,283.6936382117,290.1503157249,294.88137067808,304.94368688875,310.54087273367,319.75456524059,327.03195662575,332.36439517321,343.70575469589,348.50707605838,360.3992766165,368.60172104124,377.19539564757,387.3949548402,392.80658053205,406.21042497925,415.4555026381,425.93975025566,435.63385416574,442.73709545768,457.84473927605,464.24049278842,480.08189580921,491.0082387498,499.01438878341,516.04239079678,523.2511306012],description:"George Secor's 29-tone 13-limit high-tolerance temperament (5/4 & 7/4 exact)"},secor2_11wt:{frequencies:[261.6255653006,275.91396717201,292.9984614786,310.40321306851,328.14053952957,349.20361470207,367.88528956268,391.55148162785,413.87095075801,438.50612639837,465.60481960276,491.10222639053,523.2511306012],description:"George Secor's rational 2/11-comma well-temperament"},secor41htt:{frequencies:[261.6255653006,266.21235100401,270.55308473255,276.71069203503,279.78524030783,283.6936382117,290.1503157249,294.88137067808,300.05119287674,304.94368688875,310.54087273367,315.34936221801,319.75456524059,327.03195662575,332.36439517321,338.19136297459,343.70575469589,348.50707605838,354.61705516636,360.3992766165,368.60172104124,372.69727792826,377.90358994896,387.3949548402,392.80658053205,399.69321489333,406.21042497925,415.4555026381,420.07165483694,425.93975025566,435.63385416574,442.73709545768,450.49910517366,457.84473927605,464.24049278842,473.46789104304,480.08189580921,491.0082387498,499.01438878341,507.7630447553,516.04239079678,523.2511306012],description:"George Secor's 13-limit high-tolerance temperament superset (5/4 & 7/4 exact)"},secor5_23tx:{frequencies:[261.6255653006,275.02417915696,292.7420830065,310.0721322444,327.56084927797,349.21018850905,366.91927748105,391.38056264645,412.75664067387,437.92311604224,465.61358467873,490.0190422864,523.2511306012],description:"George Secor's rational 5/23-comma temperament extraordinaire"},secor5_23wt:{frequencies:[261.6255653006,275.62199471997,292.75872440224,310.07474405997,327.56278518065,348.83408706747,367.49599295996,391.3766908411,413.43299207996,437.81158306864,465.11211608996,489.99465727995,523.2511306012],description:"George Secor's rational 5/23-comma proportional-beating well-temperament"},secor7p:{frequencies:[261.6255653006,281.10327891957,302.03108525935,356.94582815655,383.52002471837,412.07263653985,442.75095666255,523.2511306012],description:"George Secor's pelog-like MOS with near just 11:13:15:19 tetrads (1979)"},secor_vrwt:{frequencies:[261.6255653006,276.32932769153,293.15777167588,310.55777256823,328.11844153148,349.04269216937,368.62018440632,392.00375398861,414.25255044712,438.65017260809,465.6191423793,491.6947801169,523.2511306012],description:"George Secor's Victorian rational well-temperament (based on Ellis #2)"},"secor_wt1-7":{frequencies:[261.6255653006,276.2204353545,293.2843722634,310.74798946314,328.77415062671,349.45463702831,368.55847674989,391.74146894101,414.33065282463,439.14535139523,466.13275379077,492.28548658217,523.2511306012],description:"George Secor's 1/7-comma well-temperament"},secor_wt10:{frequencies:[261.6255653006,276.4188590209,293.2843722634,310.62634254146,328.77415062671,349.45463500978,368.55847887877,391.7414712038,414.6282883241,439.14535393183,465.93951357928,492.28548942572,523.2511306012],description:"George Secor's 12-tone well-temperament, proportional beating"},"secor_wtpb-24a":{frequencies:[261.6255653006,275.62199471997,292.84836938997,310.07474405997,327.30111872997,348.83408706747,367.49599295996,391.90002374246,413.43299207996,437.54991661796,465.11211608996,490.95167809495,523.2511306012],description:"George Secor's 24-triad proportional-beating well-temperament (24a)"},"secor_wtpb-24b":{frequencies:[261.6255653006,275.62199471997,292.56126314547,310.07474405997,327.51644841334,348.83408706747,367.49599295996,391.46936437571,413.43299207996,437.76524630133,465.11211608996,490.37746560595,523.2511306012],description:"George Secor's 24-triad proportional-beating well-temperament (24b)"},segah:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,440,479.82340237272,523.2511306012],description:"Arabic SEGAH (Dudon) Two 4 + 3 + 3 tetrachords"},segah2:{frequencies:[261.6255653006,293.66476791741,318.39923223688,349.22823143301,391.99543598175,425.01198472693,466.16376151809,523.2511306012],description:"Iranian mode Segah from C"},segah_rat:{frequencies:[261.6255653006,294.32876096318,319.76457981184,348.83408706747,392.4383479509,441.49314144476,479.64686971777,523.2511306012],description:"Rationalized Arabic Seg\xEF\xBF\xBDh\r"},seidel974:{frequencies:[261.6255653006,262.64754016506,266.73543962288,267.75741448733,268.77938935179,273.88926367407,274.91123853852,276.95518826743,277.97716313189,280.0211128608,283.08703745416,284.10901231862,285.13098718308,287.17493691199,289.2188866409,290.24086150535,294.32876096318,457.84473927605,461.93263873387,463.97658846278,468.0644879206,474.19633710734,476.24028683625,482.37213602298,486.4600354808,488.50398520971,492.59188466754,498.72373385427,506.89953276991,513.03138195665,515.07533168556,519.16323114338,523.2511306012],description:"Dave Seidel, Base 9:7:4 Symmetry, scale for Passacaglia and Fugue State (2005)"},seikilos:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,441.49314144476,457.84473927605,504.56359022259,523.2511306012],description:"Seikilos Tuning"},sekati1:{frequencies:[261.6255653006,285.2147362526,318.99014578736,340.97107458785,383.86043226246,424.60539155549,468.56721805116,523.2511306012],description:"Gamelan sekati from Sumenep, East-Madura. 1/1=244 Hz."},sekati2:{frequencies:[261.6255653006,288.87830434024,317.34219433319,357.31261688157,393.64955765984,420.29657220667,469.35141988267,523.2511306012],description:"Gamelan Kyahi Sepuh from kraton Solo. 1/1=216 Hz."},sekati3:{frequencies:[261.6255653006,291.90272733088,308.20569577938,369.53649673407,403.69531865382,425.43272843735,475.11832680028,523.2511306012],description:"Gamelan Kyahi Henem from kraton Solo. 1/1=168.5 Hz."},sekati4:{frequencies:[261.6255653006,271.36353278789,288.89182053123,342.12578909252,379.12979967788,410.29128883625,439.50493264224,523.2511306012],description:"Gamelan Kyahi Guntur madu from kraton Jogya. 1/1=201.5 Hz."},sekati5:{frequencies:[261.6255653006,274.79663866182,311.31645994273,355.61927540077,375.97459751383,397.52718524897,433.44837981883,523.2511306012],description:"Gamelan Kyahi Naga Ilaga from kraton Jogya. 1/1=218.5 Hz."},sekati6:{frequencies:[261.6255653006,284.57524936299,310.80330758934,358.01400474517,390.79902205709,427.51850178351,468.18764285778,523.2511306012],description:"Gamelan Kyahi Munggang from Paku Alaman, Jogya. 1/1=199.5 Hz."},sekati7:{frequencies:[261.6255653006,286.67481979642,318.21831168293,371.10013445627,390.58282835584,422.12643845206,463.87524473877,523.2511306012],description:"Gamelan of Sultan Anom from Cheribon. 1/1=282 Hz."},sekati8:{frequencies:[261.6255653006,287.04067548259,315.94410704802,350.82750428678,381.72407804086,425.57749367468,447.5043967797,523.2511306012],description:"The old Sultans-gamelan Kyahi Suka rame from Banten. 1/1=262.5 Hz."},sekati9:{frequencies:[261.6255653006,280.44107893528,310.90439774384,346.74342440827,376.31071188751,412.14996063869,455.1567650372,523.2511306012],description:"Gamelan Sekati from Katjerbonan, Cheribon. 1/1=292 Hz."},selisir:{frequencies:[261.6255653006,278.78833362316,320.24370022528,380.8360868427,417.71053321823,524.76452349887],description:"Gamelan semara pagulingan, Bali. Pagan Kelod"},selisir2:{frequencies:[261.6255653006,279.59466973861,299.66214729245,376.46181130035,408.17001145418,520.23742585195],description:"Gamelan semara pagulingan, Bali. Kamasan"},selisir3:{frequencies:[261.6255653006,284.98499077387,305.5412851438,378.42269266694,406.45400323486,523.2511306012],description:"Gamelan gong, Pliatan, Bali. 1/1=280 Hz, McPhee, 1966"},selisir4:{frequencies:[261.6255653006,277.23130136276,295.59098907682,376.373620257,399.32323124828,523.2511306012],description:"Gamelan gong, Apuan, Bali. 1/1=285 Hz. McPhee, 1966"},selisir5:{frequencies:[261.6255653006,275.89605068063,309.19384990071,383.40037296022,406.23315014465,523.2511306012],description:"Gamelan gong, Sayan, Bali. 1/1=275 Hz. McPhee, 1966"},selisir6:{frequencies:[261.6255653006,282.63199755101,312.23197007902,396.25769882774,415.35445602102,523.2511306012],description:"Gamelan gong, Gianyar, Bali. 1/1=274 Hz. McPhee, 1966"},semipor1:{frequencies:[261.6255653006,290.69507255622,313.95067836072,327.03195662575,353.19451315581,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"First 16/15&250/243 = 648/625&250/243 scale"},semisixths:{frequencies:[261.6255653006,264.19830736984,270.23055453212,272.88791531122,275.57140613391,281.86332858923,284.63508234504,291.13394747727,293.99686553194,300.70948316519,303.66656221886,306.65272199551,313.65430163898,316.7386758187,323.97054074552,327.15636145846,330.37351240232,337.91669168384,341.23965429995,349.03093233441,352.46319080675,360.51072564419,364.05587272954,367.63587953306,376.02984347246,379.72760059524,388.39764380609,392.21702191873,396.07395857323,405.11722624758,409.10101938242,418.44172684717,422.55654641528,426.71183224275,436.45463212963,440.74658728358,450.80983509489,455.24295209046,465.63718490681,470.21611194415,474.84006394159,485.68174342829,490.45777940536,501.656046885,506.58917188228,511.57080469686,523.2511306012],description:"Semisixths temperament, 13-limit, g=443.0"},"scalamakesrc2\\semisixths_8":{frequencies:[261.6255653006,282.20554108354,304.40437778605,337.94858305883,364.53227585368,393.20709362444,436.53702313055,470.87587163898,522.76460573117],description:"8-note MOS of Semisixths [7, 9, 13, -2, 1, 5] temperament, TOP tuning"},semisuper:{frequencies:[261.6255653006,267.78942821112,272.60119889127,277.49943141001,284.03728045772,289.141002119,295.95312328758,301.27095467792,308.36885759663,313.90977919898,321.30545111289,327.07882560827,334.78475653951,340.80033382945,348.82954357113,355.09748450744,363.46353108469,369.99442271164,378.7114412363,385.5163125912,392.44345945086,401.68937424288,408.90712663484,418.54092077997,426.06147005461,436.09942062666,443.93546710474,454.39452662825,462.55931114028,473.45714317395,481.96445416288,493.31947147471,502.18367855499,514.01505508798,523.2511306012],description:"Semisuper temperament, g=71.146064, p=600, 5-limit"},semithirds:{frequencies:[13.75,13.81661017188,13.90316796691,13.99026794524,14.07791366516,14.14611237417,14.23473442257,14.3239115844,14.41364750281,14.48347263281,14.57420816344,14.665512046,14.73655738771,14.82887834882,14.92177776458,15.01525908647,15.08799873642,15.18252139242,15.27763629821,15.37334698758,15.4478213521,15.54459820959,15.64198144101,15.73997475533,15.81622511342,15.91530993122,16.01501558389,16.11534586889,16.19341466585,16.29486248479,16.39694594444,16.47637891809,16.57959953527,16.68346670883,16.78798468204,16.86931199442,16.97499424439,17.08133847,17.18834901569,17.27161584349,17.37981843193,17.48869878298,17.59826134469,17.68351394199,17.7942969746,17.90577393328,18.01794937217,18.10523509614,18.21866011204,18.33279560295,18.42160666689,18.53701356879,18.6531435747,18.77000099922,18.86093005309,18.97908920954,19.09798871479,19.21763298632,19.3107305405,19.43170758802,19.55344264036,19.67594033402,19.77125798984,19.89512013023,20.01975835255,20.14517740386,20.24276822054,20.36958425827,20.49719488615,20.62560496443,20.72552315291,20.85536353332,20.98601745346,21.08768161561,21.21979095359,21.352727802,21.48649759166,21.59058626784,21.72584618454,21.86195334633,21.99891331359,22.10548432428,22.24396995552,22.38332303719,22.52354926226,22.63266180681,22.7744500803,22.91712649141,23.06069686887,23.17241155847,23.3175812365,23.46366023269,23.57732716458,23.72503340608,23.87366512928,24.02322785632,24.1396055475,24.29083432682,24.44301065897,24.59614033986,24.71529329517,24.87012861873,25.02593409262,25.18271565096,25.30471019771,25.46323807533,25.62275923969,25.78327976642,25.90818367164,26.07049216435,26.23381763196,26.36090411207,26.52604894185,26.69222821075,26.85944870765,26.98956598001,27.15864922771,27.32879158412,27.5],description:"Semithirds temperament, g=193.199615, 5-limit"},sensisynch19:{frequencies:[261.6255653006,272.4389540986,281.73678149918,293.38139793239,303.39395317428,313.74821628003,326.71591476706,337.86611241253,351.83064080634,363.83795665907,376.25506171692,391.80626469239,405.17787315281,421.92450060765,436.32398762558,454.35793210906,469.86431365505,485.89989602801,505.98288939536,523.2511306012],description:"Sensi[19] in synch (brat=-1) tuning, generator ~162/125 satisfies g^9-g^7-4=0"},serre_enh:{frequencies:[261.6255653006,265.7783520514,279.06726965397,348.83408706747,392.4383479509,398.6675280771,418.60090448096,523.2511306012],description:"Dorian mode of the Serre's Enharmonic"},"sev-elev":{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,336.37572681506,359.73515228832,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'"Seven-Eleven Blues" of Pitch Palette'},sha:{frequencies:[261.6255653006,266.96486255163,280.31310567921,284.82183961519,290.63452941521,294.32876096318,300.33547037059,305.16625703708,320.42456924675,326.96384715385,343.31203882349,348.83408706747,355.95315006884,373.75080757229,392.4383479509,400.44729382745,406.8883429195,420.46965851882,427.23275920923,435.9517939049,457.74938532681,480.63685362987,490.44577048562,498.33441009638,523.2511306012],description:"Three chains of sqrt(3/2) separated by 10/7"},shahin:{frequencies:[261.6255653006,277.01530443593,282.55561052465,294.32876096318,310.50067090621,317.47821407264,328.55303549378,348.83408706747,357.66532977804,371.78369805875,376.74081403286,392.4383479509,415.52295665389,428.11456140098,441.49314144476,463.20591889287,478.90781444856,495.71159741166,523.2511306012],description:"Mohajeri Shahin Iranian style scale, TL 9-4-2006"},shahin_wt:{frequencies:[261.6255653006,276.93928561067,294.25491037444,311.47852302926,329.62755691287,348.92163548373,370.73795561568,392.4383479509,415.30469757995,439.61371330969,467.10055427519,494.44133512215,523.2511306012],description:"Mohajeri Shahin, well temperament, TL 28-12-2006"},shalfun:{frequencies:[261.6255653006,269.43930514995,277.46904793785,285.74220762407,294.32876096318,302.80736724606,311.45900631024,320.30554027987,329.50323085718,338.98103822311,348.83408706747,359.12912189513,369.78878487717,380.87868001252,392.4383479509,404.24222079821,416.2697936366,428.68354137408,441.49314144476,454.4477424016,467.68960547122,481.19471271032,494.94053216156,508.90014647073,523.2511306012],description:"d'Erlanger vol.5, p.40. After Alexandre ^Salfun (Chalfoun)"},"sharm1c-conm":{frequencies:[261.6255653006,305.22982618403,318.50068819203,332.97799220076,406.97310157871,430.91269578922,457.84473927605,523.2511306012],description:"Subharm1C-ConMixolydian"},"sharm1c-conp":{frequencies:[261.6255653006,313.95067836072,330.47439827444,348.83408706747,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Subharm1C-ConPhryg"},"sharm1c-dor":{frequencies:[261.6255653006,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,479.64686971777,547.03527290125,523.2511306012],description:"Subharm1C-Dorian"},"sharm1c-lyd":{frequencies:[261.6255653006,309.19384990071,323.91736656265,340.11323489078,382.37582620857,377.90359432309,485.87604984397,503.87145909745,523.2511306012],description:"Subharm1C-Lydian"},"sharm1c-mix":{frequencies:[261.6255653006,305.22982618403,318.50068819203,332.97799220076,366.27579142084,457.84473927605,488.36772189445,523.2511306012],description:"Subharm1C-Mixolydian"},"sharm1c-phr":{frequencies:[261.6255653006,313.95067836072,330.47439827444,348.83408706747,392.4383479509,483.00104363188,502.32108537715,523.2511306012],description:"Subharm1C-Phrygian"},"sharm1e-conm":{frequencies:[261.6255653006,318.50068819203,325.57848126297,332.97799220076,430.91269578922,443.97065626768,457.84473927605,523.2511306012],description:"Subharm1E-ConMixolydian"},"sharm1e-conp":{frequencies:[261.6255653006,330.47439827444,339.40613876835,348.83408706747,448.50096908674,465.11211608996,483.00104363188,523.2511306012],description:"Subharm1E-ConPhrygian"},"sharm1e-dor":{frequencies:[261.6255653006,338.57426097725,348.83408706747,359.73515228832,383.71749577421,411.12588832951,500.50108144463,511.62332769895,523.2511306012],description:"Subharm1E-Dorian"},"sharm1e-lyd":{frequencies:[261.6255653006,323.91736656265,331.81779013735,340.11323489078,382.37582620857,377.90359432309,503.87145909745,513.37846775967,523.2511306012],description:"Subharm1E-Lydian"},"sharm1e-mix":{frequencies:[261.6255653006,318.50068819203,325.57848126297,332.97799220076,366.27579142084,488.36772189445,505.20798816668,523.2511306012],description:"Subharm1E-Mixolydian"},"sharm1e-phr":{frequencies:[261.6255653006,330.47439827444,339.40613876835,348.83408706747,392.4383479509,502.32108537715,512.57253609913,523.2511306012],description:"Subharm1E-Phrygian"},"sharm2c-15":{frequencies:[261.6255653006,327.03195662575,341.25073734861,356.76213450082,392.4383479509,461.69217405988,490.54793493862,523.2511306012],description:"Subharm2C-15-Harmonia"},"sharm2c-hypod":{frequencies:[261.6255653006,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,465.11211608996,492.47165233054,523.2511306012],description:"SHarm2C-Hypodorian"},"sharm2c-hypol":{frequencies:[261.6255653006,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,475.68284600109,498.33441009638,523.2511306012],description:"SHarm2C-Hypolydian"},"sharm2c-hypop":{frequencies:[261.6255653006,336.37572681506,348.83408706747,362.25078272391,376.74081403286,392.4383479509,470.92601754108,495.71159741166,523.2511306012],description:"SHarm2C-Hypophrygian"},"sharm2e-15":{frequencies:[261.6255653006,341.25073734861,348.83408706747,356.76213450082,392.4383479509,490.54793493862,506.37206187213,523.2511306012],description:"Subharm2E-15-Harmonia"},"sharm2e-hypod":{frequencies:[261.6255653006,334.88072358477,341.71502406609,348.83408706747,364.00078650518,380.54627680087,492.47165233054,507.3950357345,523.2511306012],description:"SHarm2E-Hypodorian"},"sharm2e-hypol":{frequencies:[261.6255653006,327.03195662575,337.58137458142,348.83408706747,373.75080757229,402.50086969323,498.33441009638,510.48890790361,523.2511306012],description:"SHarm2E-Hypolydian"},"sharm2e-hypop":{frequencies:[261.6255653006,348.83408706747,355.41586229515,362.25078272391,376.74081403286,392.4383479509,495.71159741166,509.10920815252,523.2511306012],description:"SHarm2E-Hypophrygian"},sherwood:{frequencies:[261.6255653006,279.50101530337,292.73346657716,312.73435005323,327.54017122074,349.91920725962,366.48547573919,391.52543233055,418.27599117656,438.07873640926,468.01000025525,490.16733894289,523.65750116998],description:"Sherwood's improved meantone temperament"},shrutar:{frequencies:[261.6255653006,269.80136421624,277.49581689502,285.40970760065,294.32876096318,304.37698984459,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,368.95121675679,379.48299988042,392.4383479509,405.83598431812,417.42065019394,428.11456140098,441.49314144476,457.84473927605,470.92601754108,490.54793493862,505.97733342682,523.2511306012],description:"Paul Erlich's Shrutar tuning (from 9th fret) tempered with Dave Keenan"},shrutar_temp:{frequencies:[261.6255653006,269.67683152447,277.97586744827,286.53029793775,295.34798250635,304.4370214407,313.80576690868,327.74897996102,337.83512841993,348.23166805304,358.94815083964,369.99442271164,381.38063259971,393.11724175776,405.21503337437,417.68512248001,430.53896367224,443.78837151315,463.50705251482,477.77102045752,492.47394780842,507.62934310616,523.2511306012],description:"Shrutar temperament, 11-limit, g=52.474, 1/2 oct."},shrutart:{frequencies:[261.6255653006,269.83675183105,278.27349931787,286.14641333958,294.32706056425,305.2349557921,313.94319125793,327.02936607233,337.2932679302,348.82502010853,358.79758764604,369.99442271164,381.540672377,392.44854854484,405.86600994967,418.6042204156,436.0530078362,448.49343183014,465.11480315564,478.41198231361,491.94721442498,507.32849364948,523.2511306012],description:"Paul Erlich's 'Shrutar' tuning tempered by Dave Keenan, TL 29-12-2000"},siamese:{frequencies:[261.6255653006,269.26067151764,288.95340229325,296.22023396764,319.13574119147,352.26720984209,362.5475414329,388.79334481031,400.18585940536,429.40436513853,443.77760270734,473.98350631811,523.2511306012],description:"Siamese Tuning, after Clem Fortuna's Microtonal Guide"},silbermann1:{frequencies:[261.6255653006,275.15551885617,293.66476791741,312.53552595124,327.77163799145,349.82028288879,367.9112241576,391.99543598175,411.56972129721,438.75957425603,467.74568907204,491.10256480205,523.2511306012],description:"Gottfried Silbermann's temperament nr. 1"},silbermann2:{frequencies:[261.6255653006,275.00020270933,293.00227310437,312.18279369479,328.14198392915,349.6228209638,367.49599295996,391.5530240856,411.56972129721,438.51190905657,467.21778431035,491.10256480205,523.2511306012],description:"Gottfried Silbermann's temperament nr. 2, 1/6 Pyth. comma meantone"},silbermann2a:{frequencies:[261.6255653006,275.00020270933,293.00227310437,310.77584116741,328.14198392915,349.6228209638,367.49599295996,391.5530240856,411.56972129721,438.51190905657,467.21778431035,491.10256480205,523.2511306012],description:"Modified Silbermann's temperament nr. 2, also used by Hinsz in Midwolda"},silver:{frequencies:[261.6255653006,277.18807786937,293.58315284916,311.09098010692,329.53543886896,349.23174545031,369.98176232374,391.84186131702,415.18563115404,439.77824302677,466.03998256716,493.70667148145,523.2511306012],description:"Equal beating chromatic scale, A.L.Leigh Silver JASA 29/4, 476-481, 1957"},silver_10:{frequencies:[261.6255653006,270.26884019355,294.27266239927,320.41022551991,330.99364634362,360.39280035711,392.40094712608,405.36462386145,441.36692569059,480.56953386201,523.2511306012],description:"Ten-tone MOS from 350.9 cents"},silver_11:{frequencies:[261.6255653006,277.73657748574,294.83971256733,315.81001885226,335.25773244276,355.90304440354,381.21644531515,404.69191411574,429.61301214396,460.16899244324,488.50639225338,523.2511306012],description:"Eleven-tone MOS from 1+sqr(2), 1525.864 cents"},silver_11a:{frequencies:[261.6255653006,272.21316796874,283.22923537857,314.22802528801,326.94437231289,340.17533123945,377.40674067136,392.67983758722,408.5710143206,453.28817432381,471.63208149661,523.2511306012],description:"Eleven-tone MOS from 317.17 cents"},silver_11b:{frequencies:[261.6255653006,281.48899567641,302.85877036442,316.87090334834,340.92873240472,366.81310701257,383.78194911277,412.91987382947,444.27004083312,464.82473992747,500.11279777071,523.2511306012],description:"Eleven-tone MOS from 331.67 cents"},silver_7:{frequencies:[261.6255653006,277.73649727228,315.81000061035,335.2576162513,381.21640127531,404.69175048432,460.16888612163,523.2511306012],description:"Seven-tone MOS from 1+sqr(2), 1525.864 cents"},silver_8:{frequencies:[261.6255653006,288.49477506296,306.46277751246,337.93681424842,358.98416079003,395.852196628,420.50662316693,492.57276348379,523.2511306012],description:"Eight-tone MOS from 273.85 cents"},silver_9:{frequencies:[261.6255653006,294.18258755347,307.6617709921,345.94759796409,361.79860795042,406.82129262791,425.46148093979,478.40645551359,500.32661205896,523.2511306012],description:"Nine-tone MOS from 280.61 cents"},silvermean:{frequencies:[261.6255653006,286.15296204753,327.03195662575,345.42750418595,392.4383479509,416.96574469783,474.19633710734,523.2511306012],description:"First 6 approximants to the Silver Mean, 1+ sqr(2) reduced by 2/1"},simonton:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,465.11211608996,494.18162334558,523.2511306012],description:"Simonton Integral Ratio Scale, JASA 25/6 (1953): A new integral ratio scale"},sims:{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,316.13089140489,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Ezra Sims' 18-tone mode"},sims2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Sims II"},sims_24:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.97716313189,283.42769574232,286.15296204753,294.32876096318,302.50455987882,305.22982618403,310.68035879446,316.13089140489,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"See his article, Reflections on This and That, 1991 p.93-106"},sin:{frequencies:[261.6255653006,275.08939827539,302.09917071192,334.63165645627,369.99442271164,407.01712569342,445.10399729103,483.9175316883,523.2511306012,562.97086325858,602.98541169118,643.23087116255,683.66056756853,724.23972686276,764.94197926416,805.74682982871,846.63811574624,887.6028851904,928.63083777952,969.71346974542,1010.84345850104,1052.01529432917],description:"1/sin(2pi/n), n=4..25"},sinemod12:{frequencies:[261.6255653006,270.6035983646,282.0485507085,292.16840832754,301.82804372114,314.42520179993,326.24260278214,336.76433478807,350.4641458176,364.21811789193,375.86233664064,390.61306119732,406.50371126161,419.61372202861,435.38454314112,453.55584308858,468.551249676,485.36279478778,505.89080731022,523.2511306012],description:"Sine modulated F=12, A=-.08203754"},sinemod8:{frequencies:[261.6255653006,272.43905323978,281.98404270447,290.99567087708,301.68076007415,314.40050256998,326.99158834066,337.97331861211,348.96407538813,362.38276875396,377.76595534172,392.29216556304,405.04934945717,418.6525822649,435.418746849,453.77727371169,470.43955130022,485.47382867757,502.48255971303,523.2511306012],description:"Sine modulated F=8, A=.11364155. Deviation minimal3/2, 4/3, 5/4, 6/5, 5/3, 8/5"},singapore:{frequencies:[261.6255653006,291.46787011619,321.35550581422,354.51258839996,385.70651737906,428.95813651779,462.1422075194,523.2511306012],description:"An observed xylophone tuning from Singapore"},sintemp6:{frequencies:[261.6255653006,277.18263097687,292.42974339757,312.08834713741,327.870830746,349.91196330865,369.15973155124,391.11111150212,416.11779639122,437.6550518996,467.60417912673,491.80624587316,523.2511306012],description:"Sine modulated fifths, A=1/6 Pyth, one cycle, f0=-90 degrees"},sintemp6a:{frequencies:[261.6255653006,276.17281343288,293.21211353711,310.64741311165,328.42667470471,349.22823143301,368.43838932195,391.77416758435,414.19655102258,438.82595961933,465.90062756558,491.80624587316,523.2511306012],description:"Sine modulated fifths, A=1/12 Pyth, one cycle, f0= D-A"},sintemp_19:{frequencies:[261.6255653006,272.86445838226,281.30973389888,292.50627485027,304.14845459111,313.56198179795,327.03195662575,338.65502209741,350.02113164026,365.30494475029,376.98581738134,391.19763056219,407.47965586966,419.94695489748,437.42555500456,453.91586039553,468.43012697388,488.88431353627,505.29249383438,523.2511306012],description:"Sine modulated thirds, A=7.366 cents, one cycle over fifths, f0=90 degrees"},sintemp_7:{frequencies:[261.6255653006,291.06608881088,319.67397341855,351.09362859375,390.60192440975,432.07134328681,473.03044489876,523.2511306012],description:"Sine modulated fifths, A=8.12 cents, one cycle, f0=90 degrees"},slen_pel:{frequencies:[261.6255653006,261.6255653006,283.17034563789,298.45295203849,338.50336851425,364.68988616898,346.01554587335,389.06292924114,398.38689497567,420.13030572059,455.51656649021,493.31307433255,523.2511306012],description:"Pelog white, Slendro black"},slen_pel16:{frequencies:[261.6255653006,261.6255653006,285.30470202322,285.30470202322,297.93622032612,311.12698372208,339.28638158975,386.37547528213,386.37547528213,403.48177901006,421.34544350737,440,523.2511306012],description:"16-tET Slendro and Pelog"},slen_pel23:{frequencies:[261.6255653006,261.6255653006,295.14355885465,295.14355885465,286.38154466424,343.14246862785,313.47984535337,398.94762483098,398.94762483098,387.10394860926,450.05828708186,423.73315704439,523.2511306012],description:"23-tET Slendro and Pelog"},slen_pel_jc:{frequencies:[261.6255653006,261.6255653006,299.00064605783,299.00064605783,279.06726965397,341.71502406609,348.83408706747,392.4383479509,392.4383479509,392.4383479509,448.50096908674,418.60090448096,523.2511306012],description:"Slendro/JC PELOG S1c,P1c#,S2d,eb,P2e,S3f,P3f#,S4g,ab,P4a,S5bb,P5b"},slen_pel_schmidt:{frequencies:[261.6255653006,261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,392.4383479509,457.84473927605,457.84473927605,490.54793493862,523.2511306012],description:"Dan Schmidt (Pelog white, Slendro black)"},slendro:{frequencies:[261.6255653006,298.45295203849,346.01554587335,398.38689497567,455.51656649021,523.2511306012],description:"Observed Javanese Slendro scale, Helmholtz/Ellis p. 518, nr.94"},slendro10:{frequencies:[261.6255653006,304.21577360535,342.24274530602,391.67780832635,463.92905474816,523.2511306012],description:"Low gender from Singaraja (banjar Lod Peken), Bali. 1/1=172 Hz. McPhee, 1966."},slendro11:{frequencies:[261.6255653006,299.11221417218,343.62760815601,387.36203100102,452.96366529656,523.2511306012],description:"Low gender from Sawan, Bali. 1/1=167.5 Hz. McPhee, 1966."},slendro2:{frequencies:[261.6255653006,299.13295468097,343.58614396263,395.91119354826,450.08870388136,523.2511306012],description:"Gamelan slendro from Ranchaiyuh, distr. Tanggerang, Batavia. 1/1=282.5 Hz"},slendro3:{frequencies:[261.6255653006,298.44694115772,339.14425131559,391.46936437571,453.48431318771,522.28214737536],description:"Gamelan kodok ngorek. 1/1=270 Hz"},slendro4:{frequencies:[261.6255653006,294.5074669504,344.54514337401,400.3014113889,467.49486258632,523.2511306012],description:"Low gender in saih lima from Kuta, Bali. 1/1=183 Hz. McPhee, 1966"},slendro5_1:{frequencies:[261.6255653006,299.00064605783,336.37572681506,392.4383479509,448.50096908674,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7; from Lou Harrison"},slendro5_2:{frequencies:[261.6255653006,305.22982618403,348.83408706747,392.4383479509,457.84473927605,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7, no. 2"},slendro5_4:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7, no. 4"},slendro6:{frequencies:[261.6255653006,295.05549864457,341.56671025356,398.25224940202,461.478427683,523.2511306012],description:"Low gender from Klandis, Bali. 1/1=180 Hz. McPhee, 1966"},slendro8:{frequencies:[261.6255653006,309.85821141747,350.78288084997,406.32350365121,467.71050779996,523.2511306012],description:"Low gender from Tabanan, Bali. 1/1=179 Hz. McPhee, 1966."},slendro9:{frequencies:[261.6255653006,299.00064605783,336.37572681506,388.70083987518,448.50096908674,523.2511306012],description:"Low gender from Singaraja (banjar Panataran), Bali. 1/1=175 Hz. McPhee, 1966."},slendro_7_1:{frequencies:[261.6255653006,299.00064605783,341.71502406609,392.4383479509,448.50096908674,523.2511306012],description:"Septimal Slendro 1, From HMSL Manual, also Lou Harrison, Jacques Dudon"},slendro_7_2:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,448.50096908674,523.2511306012],description:"Septimal Slendro 2, From Lou Harrison, Jacques Dudon's APTOS"},slendro_7_3:{frequencies:[261.6255653006,294.32876096318,336.37572681506,392.4383479509,448.50096908674,523.2511306012],description:'Septimal Slendro 3, Harrison, Dudon, called "MILLS" after Mills Gamelan'},slendro_7_4:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:'Septimal Slendro 4, from Lou Harrison, Jacques Dudon, called "NAT"'},slendro_7_5:{frequencies:[261.6255653006,305.22982618403,343.38355445704,400.61414686654,467.3831713443,523.2511306012],description:"Septimal Slendro 5, from Jacques Dudon"},slendro_7_6:{frequencies:[261.6255653006,299.00064605783,341.71502406609,390.53145607553,455.62003208812,523.2511306012],description:"Septimal Slendro 6, from Robert Walker"},slendro_a1:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,457.84473927605,523.2511306012],description:`Dudon's Slendro A1, "Seven-Limit Slendro Mutations", 1/1 8:2'94 hexany 1.3.7.21`},slendro_a2:{frequencies:[261.6255653006,299.00064605783,341.71502406609,398.6675280771,448.50096908674,523.2511306012],description:`Dudon's Slendro A2 from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_alv:{frequencies:[261.6255653006,299.00064605783,348.83408706747,406.97310157871,465.11211608996,523.2511306012],description:"Bill Alves, slendro for Gender Barung, 1/1 vol.9 no.4, 1997. 1/1=282.86"},slendro_ang:{frequencies:[261.6255653006,299.00064605783,340.82516392797,388.43396508487,445.83123341082,523.2511306012],description:"Gamelan Angklung Sangsit, North Bali. 1/1=294 Hz"},slendro_av:{frequencies:[261.6255653006,298.97057995496,344.02264297658,395.86362945285,454.20288100724,525.67465946865],description:"Average of 30 measured slendro gamelans, W. Surjodiningrat et al., 1993."},slendro_dudon:{frequencies:[261.6255653006,305.22982618403,348.83408706747,399.70572476481,457.84473927605,523.2511306012],description:'Dudon\'s Slendro from "Fleurs de lumie`re"'},slendro_gum:{frequencies:[261.6255653006,305.03156112838,348.43777142572,394.8168394034,470.92601754108,525.62941881859],description:"Gumbeng, bamboo idiochord from Banyumas. 1/1=440 Hz"},slendro_ky1:{frequencies:[261.6255653006,297.58776037991,344.33874539242,394.68595744625,449.52853279627,523.2511306012],description:"Kyahi Kanyut Me`sem slendro, Mangku Nagaran, Solo. 1/1=291 Hz"},slendro_ky2:{frequencies:[261.6255653006,302.42139140287,345.87786599062,395.54249276388,453.1886900261,523.2511306012],description:"Kyahi Pengawe' sari, Paku Alaman, Jogya. 1/1=295 Hz"},slendro_laras:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012,598.00129211566,697.66817413493],description:'Lou Harrison, gamelan "Si Betty"'},slendro_m:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:`Dudon's Slendro M from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_madu:{frequencies:[261.6255653006,300.52885648597,345.61604384578,394.49404533893,447.94973572445,522.94897617031],description:"Sultan's gamelan Madoe kentir, Jogjakarta, Jaap Kunst"},slendro_mat:{frequencies:[261.6255653006,261.6255653006,299.00064605783,299.00064605783,341.71502406609,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,455.62003208812,457.84473927605,523.2511306012],description:`Dudon's Slendro Matrix from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_pa:{frequencies:[261.6255653006,304.19649364034,353.69443592699,411.24653512154,478.16333951147,523.2511306012],description:'"Blown fifth" primitive slendro, von Hornbostel'},slendro_pas:{frequencies:[261.6255653006,300.35531433711,343.03050002254,393.12919962609,450.54468214486,523.2511306012],description:"Gamelan slendro of regent of Pasoeroean, Jaap Kunst"},slendro_pb:{frequencies:[261.6255653006,304.72408298441,342.83241505062,399.30842833955,449.24533531117,523.2511306012],description:'"Blown fifth" medium slendro, von Hornbostel'},slendro_pc:{frequencies:[261.6255653006,299.48910562989,342.83241505062,392.44854854484,449.24533531117,523.2511306012],description:'"Blown fifth" modern slendro, von Hornbostel'},slendro_pliat:{frequencies:[261.6255653006,299.73468146833,339.98478643783,393.08060743874,447.03290350508,523.2511306012,599.46936293666,679.96957287566,786.16121487749,894.06580701017],description:"Gender wayang from Pliatan, South Bali (Slendro), 1/1=305.5 Hz"},slendro_q13:{frequencies:[261.6255653006,307.00725675226,360.2608752926,400.8015646157,470.32478922042,523.2511306012],description:"13-tET quasi slendro, Blackwood"},slendro_s1:{frequencies:[261.6255653006,299.00064605783,348.83408706747,398.6675280771,457.84473927605,523.2511306012],description:`Dudon's Slendro S1 from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_s2:{frequencies:[261.6255653006,299.00064605783,341.71502406609,398.6675280771,455.62003208812,523.2511306012],description:"Dudon's Slendro S2"},slendro_udan:{frequencies:[261.6255653006,305.22982618403,351.32575911795,402.50086969323,465.11211608996,523.2511306012],description:"Slendro Udan Mas (approx)"},slendro_wolf:{frequencies:[261.6255653006,298.18866107946,339.86157848985,395.0032340925,450.20632964813,523.2511306012],description:"Daniel Wolf's slendro. Tuning List 30 5 1997"},slendrob1:{frequencies:[261.6255653006,307.44024341205,355.66611281954,409.9203247543,476.83364134848,523.2511306012],description:"Gamelan miring of Musadikrama, desa Katur, Bajanegara. 1/1=434 Hz"},slendrob2:{frequencies:[261.6255653006,307.55978097874,346.50416420081,398.42969909174,449.35693171058,523.2511306012],description:"Gamelan miring from Bajanegara. 1/1=262 Hz"},slendrob3:{frequencies:[261.6255653006,304.90191053936,342.27700149692,398.33972372326,447.51732140012,523.2511306012],description:"Gamelan miring from Ngumpak, Bajanegara. 1/1=266 Hz"},slendroc1:{frequencies:[261.6255653006,297.59222964268,344.42030317161,394.72197985873,449.50490455178,523.2511306012],description:"Kyahi Kanyut mesem slendro (Mangku Nagaran Solo). 1/1=291 Hz"},slendroc2:{frequencies:[261.6255653006,302.44445076078,346.01554587335,396.09235530397,453.15466093696,523.2511306012],description:"Kyahi Pengawe sari (Paku Alaman, Jogja). 1/1=295 Hz."},slendroc3:{frequencies:[261.6255653006,301.39807245198,344.42030317161,395.40657391157,451.84778706363,523.2511306012],description:"Gamelan slendro of R.M. Jayadipura, Jogja. 1/1=231 Hz"},slendroc4:{frequencies:[261.6255653006,299.14332201883,343.8239850859,396.09235530397,450.28451247858,523.2511306012],description:"Gamelan slendro, Rancha iyuh, Tanggerang, Batavia. 1/1=282.5 Hz"},slendroc5:{frequencies:[261.6255653006,299.83528893666,340.07120590121,393.12919962609,447.17417015401,523.2511306012],description:"Gender wayang from Pliatan, South Bali. 1/1=611 Hz"},slendroc6:{frequencies:[261.6255653006,296.73398952435,343.8239850859,396.7793260952,453.9405988926,527.19506190947,607.33963549452,696.44215167899,797.23415748628,918.4302691641,1071.58188326661],description:"from William Malm: Music Cultures of the Pacific, the Near East and Asia."},slendrod1:{frequencies:[261.6255653006,292.47977325983,340.6610152784,389.06292924114,444.85552088095,523.2511306012],description:"Gender wayang from Ubud (S. Bali). 1/1=347 Hz"},smith_eh:{frequencies:[261.6255653006,272.7117507892,292.30354792656,313.30283124826,326.5788018031,350.04044239751,364.87314355143,391.08587539224,407.65784362321,436.94425707006,468.33462614046,488.17995458879,523.2511306012],description:"Robert Smith's Equal Harmony temperament (1749)"},smith_mq:{frequencies:[261.6255653006,273.37438418823,292.50629623572,312.97714101186,327.03200500996,349.91910755601,365.63292511375,391.22148485648,408.79006910398,437.39894995248,468.01000388518,489.02693031834,523.2511306012],description:"Robert Smith approximation of quarter comma meantone fifth"},"scalamakesrc2\\smithgw-ball":{frequencies:[261.6255653006,267.07609791103,272.52663052146,274.70684356563,280.31310567921,286.15296204753,294.32876096318,300.46061014991,305.22982618403,306.59245933664,313.95067836072,320.49131749323,327.03195662575,333.84512238879,336.37572681506,343.38355445704,350.39138209902,357.69120255941,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,470.92601754108,476.92160341255,480.73697623985,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:"Ball 2 around tetrad lattice hole"},smithgw46:{frequencies:[261.6255653006,273.72380653152,313.47993226845,327.97605323154,364.46098649856,392.98113253789,436.69740466987,456.89141950378,523.2511306012],description:'Gene Ward Smith 46-tET subset "Star"'},smithgw46a:{frequencies:[261.6255653006,282.09853500802,313.47993226845,327.97605323154,375.61187043063,392.98113253789,436.69740466987,470.87026054824,523.2511306012],description:'46-tET version of "Star", alternative version'},smithgw72a:{frequencies:[261.6255653006,285.30470202322,299.37379946195,326.46944327063,342.56848033562,373.57357677338,391.99543598175,427.47405410759,435.78442404634,457.27406033445,498.66089874196,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72c:{frequencies:[261.6255653006,279.86396690685,305.19382000629,326.46944327063,349.22823143301,391.99543598175,419.32216217931,457.27406033445,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72d:{frequencies:[261.6255653006,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72e:{frequencies:[261.6255653006,279.86396690685,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72f:{frequencies:[261.6255653006,326.46944327063,349.22823143301,435.78442404634,466.16376151809,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72g:{frequencies:[261.6255653006,326.46944327063,349.22823143301,391.99543598175,419.32216217931,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72h:{frequencies:[261.6255653006,279.86396690685,314.13668154225,349.22823143301,391.99543598175,435.78442404634,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 09-01-2002"},smithgw72i:{frequencies:[261.6255653006,279.86396690685,293.66476791741,314.13668154225,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,435.78442404634,470.6732130613,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset version of Duodene, TL 02-06-2002"},smithgw72j:{frequencies:[261.6255653006,274.52698453615,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,435.78442404634,457.27406033445,489.15147723638,523.2511306012],description:"{225/224, 441/440} tempering of decad, 72-et version (2002)"},smithgw84:{frequencies:[261.6255653006,286.48426603331,306.03443598155,335.11270457212,357.98136125932,391.99543598175,418.74586628806,458.53356119912,489.82466832727,523.2511306012],description:'Gene Ward Smith 84-tET subset, 11-limit temperament "Orwell", 2002'},smithgw_18:{frequencies:[261.6255653006,272.52663052146,280.31310567921,286.15296204753,294.32876096318,306.59245933664,327.03195662575,343.38355445704,350.39138209902,367.91095120397,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,457.84473927605,467.18850946536,490.54793493862,523.2511306012],description:"Gene Ward Smith chord analogue to periodicity blocks, TL 12-07-2002"},smithgw_21:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,299.00064605783,305.22982618403,320.49131749323,327.03195662575,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,418.60090448096,427.14378008261,448.50096908674,457.84473927605,478.40103369253,488.36772189445,512.57253609913,523.2511306012],description:"Gene Ward Smith symmetrical 7-limit JI version of Blackjack, TL 10-5-2002"},smithgw_45:{frequencies:[261.6255653006,267.02002970726,269.13627541126,274.68560334708,276.86260193655,282.57123920205,288.39758300936,290.68325478745,296.67686217097,299.02814898089,305.19382000629,311.48661940174,313.95528147508,320.42873367481,322.96826575344,329.62755691287,336.42415617173,339.09045868095,346.08217376006,348.82502010853,356.01745236555,363.35818557229,366.23795155866,373.78942366597,376.75185941212,384.52011812375,392.44854854484,395.55886785613,403.71490654806,406.9145164708,415.30469757995,423.86787605389,427.22720671064,436.03621571368,439.49198556474,448.5538823653,457.80262665414,461.43090443914,470.94516310483,474.67759826036,484.46499093218,494.45418731234,498.37294408452,508.64890891624,512.68016480935,523.2511306012],description:"Gene Ward Smith large limma repeating 5-tone MOS"},smithgw_58:{frequencies:[261.6255653006,264.89588486686,267.57160087561,269.80136421624,274.70684356563,279.06726965397,282.55561052465,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.49231810831,305.22982618403,310.07474405997,313.95067836072,317.12189733406,319.76457981184,323.76163705949,327.03195662575,332.97799220076,336.37572681506,340.54567384169,343.38355445704,348.83408706747,353.19451315581,356.76213450082,359.73515228832,366.27579142084,370.01329949656,373.75080757229,380.54627680087,383.71749577421,387.59343007496,392.4383479509,398.6675280771,401.98975747775,406.97310157871,411.12588832951,418.60090448096,423.83341578697,428.11456140098,431.68218274599,436.04260883433,441.49314144476,448.50096908674,452.23847716247,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,484.4917875937,490.54793493862,498.33441009638,507.3950357345,511.62332769895,516.79124009995,523.2511306012],description:"Gene Ward Smith 58-tone epimorphic superset of Partch's 43-tone scale"},smithgw_9:{frequencies:[261.6255653006,279.06726965397,305.22982618403,327.03195662575,348.83408706747,392.4383479509,418.60090448096,448.50096908674,490.54793493862,523.2511306012],description:'Gene Ward Smith "Miracle-Magic square" tuning, genus chromaticum of ji_12a'},"smithgw_al-baked":{frequencies:[261.6255653006,277.59364499865,293.85651796007,311.0721560172,330.05816364769,349.39467974592,369.86402907174,392.4383479509,415.42941801053,439.76742419786,466.60823379256,493.94455998605,522.88238970142],description:"Baked alaska, with beat ratios of 2 and 3/2"},"smithgw_al-fried":{frequencies:[261.6255653006,277.00141553195,293.28091128458,310.96067952124,329.23597434237,348.58531822795,369.59898601143,391.32048195179,414.31855981944,439.29480556849,465.11235566178,492.44721175277,522.13326741512],description:"Fried alaska, with octave-fifth brats of 1 and 2"},smithgw_asbru:{frequencies:[261.6255653006,275.52281548997,293.66476791741,313.00128725319,329.62755691287,351.33206601369,367.77883484915,391.99543598175,415.30469757995,440,468.97204376297,490.92584627687,523.2511306012],description:"Modified bifrost (2003)"},smithgw_bifrost:{frequencies:[261.6255653006,275.07759559501,292.50627485027,311.03921839762,327.03195662575,349.91912034749,366.77012764335,391.22147055517,413.66634097248,437.39889945791,466.55882736321,489.02683710225,523.2511306012],description:"Six meantone fifths, four pure, two of sqrt(2048/2025 sqrt(5))"},smithgw_cauldron:{frequencies:[261.6255653006,275.03056468741,291.83931845209,312.58541512404,325.54230007562,350.31873582686,364.83969341757,390.77519652096,414.65779561271,435.90375768372,469.07960710644,486.243977751,523.2511306012],description:"Circulating temperament with two pure 9/7 thirds"},smithgw_ck:{frequencies:[195.99771799087,198.06437430898,200.15282320192,202.2632921446,203.72940721765,205.87758869102,208.04842120778,210.24214482145,211.76609376362,213.99901760782,216.25548480725,218.5357448459,220.11981156469,222.44081817627,224.78629944762,227.15651084977,228.80306427848,231.21563094,233.65363506284,235.34728316698,237.82885399313,240.33658984216,242.87076938222,244.63122826831,247.21069030843,249.81735238129,252.45149840587,254.28140507407,256.96262135434,259.67210915034,262.4101678886,264.31225911206,267.09924514556,269.91561641866,272.7616843206,274.73881033537,277.63573538138,280.56320805899,282.59688215652,285.57666497222,288.58786914203,291.63082264784,293.74472081062,296.84205135845,299.9720393359,303.13503255793,305.33231946532,308.55183127196,311.80529233825,315.09305703284,317.37702217863,320.72353853051,324.10533989702,327.52280172307,329.89686439088,333.37539375097,336.89059979959,339.33256534187,342.91058750208,346.52633537645,350.18021075922,352.71850659998,356.43767199462,360.19605541958,363.99406623991,366.6324923874,370.49837299068,374.40501441099,378.35285076765,381.09535716275,385.11373623244,389.17448849491,391.99543598174],description:"Catakleismic temperament, g=316.745, 11-limit"},smithgw_decab:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,439.53094970501,488.36772189445,523.2511306012],description:"(10/9) <==> (16/15) transform of decaa"},smithgw_decac:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,498.33441009638,523.2511306012],description:"inversion of decaa"},smithgw_decad:{frequencies:[261.6255653006,280.31310567921,311.45900631024,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,467.18850946536,498.33441009638,523.2511306012],description:"inversion of decab"},smithgw_diff13:{frequencies:[261.6255653006,274.70684356563,280.31310567921,299.00064605783,313.95067836072,320.35783506196,336.37572681506,406.97310157871,427.32175665765,436.04260883433,457.84473927605,488.36772189445,498.33441009638,523.2511306012],description:"mod 13 perfect difference set, 7-limit"},smithgw_dwarf6_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,373.75080757229,392.4383479509,448.50096908674,523.2511306012],description:"Dwarf(<6 10 14 17|)"},smithgw_exotic1:{frequencies:[261.6255653006,274.95996987324,293.39100498914,313.05750197389,327.96500300935,349.94905375768,367.78508905896,392.4383479509,411.12588832951,438.68435539504,468.09011223803,491.94750426812,523.2511306012],description:"Exotic temperament featuring four pure 14/11 thirds and two pure fifths"},smithgw_glumma:{frequencies:[261.6255653006,269.10058145205,299.00064605783,313.95067836072,327.03195662575,358.80077526939,373.75080757229,392.4383479509,436.04260883433,448.50096908674,457.84473927605,512.57253609913,523.2511306012],description:"Gene Smith's Glumma scale, 7-limit, 2002"},smithgw_gm:{frequencies:[261.6255653006,264.89588486686,269.80136421624,274.70684356563,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,498.33441009638,507.3950357345,516.79124009995,523.2511306012],description:'Gene Ward Smith "Genesis Minus" periodicity block'},smithgw_graileq:{frequencies:[261.6255653006,274.83794140225,293.02845982215,312.42294214419,328.20064112269,350.39711148969,365.67350481015,391.53226450123,414.40482204179,438.61355268439,469.63029662389,490.10494633744,523.2511306012],description:"56% RMS grail + 44% JI grail"},smithgw_grailrms:{frequencies:[261.6255653006,274.64037495938,293.11160698959,312.82513967025,328.38692028068,350.6222941497,365.93760986436,391.94882001935,414.52240989365,438.39608269016,469.55771333591,490.068176414,523.2511306012],description:"RMS optimized Holy Grail"},smithgw_hahn12:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Hahn-reduced 12 note scale, Fokker block 225/224, 126/125, 64/63"},smithgw_hahn15:{frequencies:[261.6255653006,279.06726965397,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Hahn-reduced 15 note scale"},smithgw_hahn16:{frequencies:[261.6255653006,280.31310567921,294.32876096318,299.00064605783,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,408.78994578219,418.60090448096,436.04260883433,457.84473927605,488.36772189445,490.54793493862,523.2511306012],description:"Hahn-reduced 16 note scale"},smithgw_hahn19:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Hahn-reduced 19 note scale"},smithgw_hahn22:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Hahn-reduced 22 note scale"},smithgw_indianred:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"32805/32768 Hahn-reduced"},smithgw_klv:{frequencies:[261.6255653006,271.78681896552,282.34272472006,293.30861211826,314.10491445143,326.30440921209,338.97771913949,352.14324873572,377.11107157735,391.75765725694,406.97310157871,422.77949745352,452.75560414132,470.34014155688,488.60764618722,523.2511306012],description:"Variant of kleismic with 9/7 thirds, g=316.492"},smithgw_meandin:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,336.37572681506,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,470.92601754108,504.56359022259,523.2511306012],description:"Gene Smith, inverted detempered 7-limit meantone"},smithgw_meanred:{frequencies:[261.6255653006,281.29980781121,291.99281841585,313.95067836072,325.57848126297,350.39138209902,363.36884069528,390.69417751556,420.46965851882,436.04260883433,468.83301301868,486.65469735975,523.2511306012],description:"171-et Hahn reduced rational Meantone[12]"},smithgw_meantune:{frequencies:[261.6255653006,273.55401844854,279.77233440758,292.56174910339,312.85829351777,327.16018629281,334.59705725462,349.85254391288,365.77071543428,374.29488261541,391.03456781852,418.40555295943,437.51985793188,468.14464283802,489.08159472971,500.47948461038,523.2511306012],description:"Meantune scale/temperament, Gene Ward Smith, 2003"},smithgw_mir22:{frequencies:[261.6255653006,267.57160087561,274.70684356563,280.31310567921,285.40970760065,299.00064605783,305.22982618403,319.76457981184,327.03195662575,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,418.60090448096,428.11456140098,448.50096908674,457.84473927605,479.64686971777,490.54793493862,512.78610798918,523.2511306012],description:"11-limit Miracle[22]"},smithgw_mmt:{frequencies:[261.6255653006,273.37431312998,292.50627485027,307.38829724655,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.12588832951,437.39890198442,459.65271605653,489.02683710225,523.2511306012],description:"Modified meantone with 5/4, 14/11 and 44/35 major thirds, TL 17-03-2003"},smithgw_modmos12a:{frequencies:[261.6255653006,265.27772209197,292.31087910123,304.72408298441,326.59518553839,340.46429857933,364.90060015836,391.09077971329,407.69874723177,425.01198472693,455.51656649021,488.21056770985,523.2511306012],description:"A 12-note modmos in 50-et meantone"},smithgw_octoid:{frequencies:[261.6255653006,272.34559486824,274.88944875317,277.45706359738,280.04865972334,282.66446436432,285.30470202322,296.99497716113,299.76906949343,302.56907333554,305.39522895084,308.24778413898,311.12698372208,323.87531915696,326.90048829645,329.95391413777,333.03585868997,336.14659218049,339.28638158975,353.18853996009,356.48751029933,359.81729479041,363.17817915623,366.5704580819,369.99442271164,385.15483391523,388.75238658,392.38354231563,396.04861270515,399.74791910495,403.48177901006,420.01432465796,423.93748365756,427.89728706578,431.89407466632,435.9281969008,440,458.02886886968,462.30710409523,466.62530033172,470.98382811593,475.38306960714,479.82340237272,499.48402328631,504.14947188193,508.85849826899,513.6115065207,518.40891338474,523.2511306012],description:"Octoid temperament, g=16.096, oct=1/8, 11-limit"},smithgw_orw18r:{frequencies:[261.6255653006,269.10058145205,280.31310567921,286.15296204753,299.00064605783,305.22982618403,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,448.50096908674,457.84473927605,474.80195184183,490.54793493862,523.2511306012],description:'Rational version of two cycles of 9-tone "Orwell"'},smithgw_pel1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 1"},smithgw_pel2:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 2"},smithgw_pel3:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 3"},smithgw_pk:{frequencies:[261.6255653006,271.01659746112,280.74472171431,290.822034715,313.8821415949,325.1489200649,336.82012073975,348.91025643633,376.57634157395,390.09352641046,404.09590743895,418.60090448096,451.79296003201,468.01003810189,484.80922990434,523.2511306012],description:"Parakleismic temperament, g=315.263, 5-limit"},smithgw_pris:{frequencies:[261.6255653006,279.06726965397,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"optimized (15/14)^3 (16/15)^4 (21/20)^3 (25/24)^2 scale"},smithgw_prisa:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,439.53094970501,457.84473927605,488.36772189445,523.2511306012],description:"optimized (15/14)^3 (16/15)^4 (21/20)^3 (25/24)^2 scale"},smithgw_pum13marv:{frequencies:[261.6255653006,293.67396865289,305.56991629828,343.00138030143,326.66798000724,366.68389807519,349.22276077151,392.00157668785,407.88051296056,457.84473927605,436.04260883433,489.45661357347,549.41368713126,523.2511306012],description:"pum13 marvel tempered and in epimorphic order"},smithgw_qm3a:{frequencies:[261.6255653006,279.86396690685,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,457.27406033445,489.15147723638,523.2511306012],description:"Qm(3) 10-note quasi-miracle scale, mode A, 72-tET, TL 04-01-2002"},smithgw_qm3b:{frequencies:[261.6255653006,279.86396690685,299.37379946195,326.46944327063,349.22823143301,373.57357677338,391.99543598175,419.32216217931,448.5538823653,489.15147723638,523.2511306012],description:"Qm(3) 10-note quasi-miracle scale, mode B"},smithgw_ragasyn1:{frequencies:[261.6255653006,269.16210421872,290.69507255622,313.95067836072,322.99452506247,348.83408706747,363.36884069528,392.4383479509,403.74315632809,436.04260883433,470.92601754108,484.4917875937,523.2511306012],description:"Ragasyn 6561/6250 81/80 scale"},smithgw_rainbow:{frequencies:[261.6255653006,273.37431312998,292.50627485027,310.51268695591,327.03195662575,349.91912034749,365.63284274659,391.22147055517,412.03444522126,437.39889945791,468.01003810189,489.02683710225,523.2511306012],description:"Circulating 1/4-comma meantone, Gene Ward SMith"},smithgw_ratwell:{frequencies:[261.6255653006,275.62199471997,293.02063313667,310.07474405997,326.72451751701,348.83408706747,367.49599295996,392.4383479509,413.43299207996,437.57747881743,465.11211608996,489.99465727995,523.2511306012],description:"7-limit rational well-temperament"},smithgw_ratwolf:{frequencies:[261.6255653006,272.55669785235,292.25605339318,313.37920299881,326.47268679644,350.06888377949,364.69531895389,391.05410158062,407.39296674476,436.83777202739,468.410735204,487.98168129749,523.2511306012],description:"Eleven fifths of (418/5)^(1/11) and one 20/13 wolf, G.W. Smith 2003"},smithgw_rectoo:{frequencies:[261.6255653006,290.69507255622,299.00064605783,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Hahn-reduced circle of fifths via <12 19 27 34| kernel"},smithgw_sc19:{frequencies:[261.6255653006,269.16210421872,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,508.60009894437,523.2511306012],description:"Fokker block from commas <81/80, 78732/78125>, Gene Ward Smith 2002"},smithgw_sch13:{frequencies:[261.6255653006,269.71217215021,278.04872701265,282.14859498561,290.86954990528,295.15846273282,304.2815407612,313.68660297237,318.31195648825,328.15068782436,332.98931632582,343.28171142549,353.89223299652,359.11042631209,370.21019888355,375.66900084958,387.28058594818,392.99109319609,405.13808832031,417.66053353744,423.81899742763,436.9188548657,443.36128543927,457.06517711961,471.19264083172,478.14044600934,492.91932687455,500.18749236202,515.64783010531,523.2511306012],description:"13-limit schismic temperament, g=704.3917, TL 31-10-2002"},smithgw_sch13a:{frequencies:[261.6255653006,266.49502311502,271.45511438723,280.18048669638,285.39529457963,294.56874561631,300.051354061,305.6360048159,315.46005229837,321.33149462105,331.66004360268,337.8330052901,344.12086009392,355.18192699392,361.79268541866,373.4217751344,380.37201938485,392.59830625439,399.90547017058,407.34863733398,420.4420328577,428.26743302475,442.03321824291,450.26048038501,458.64087358289,473.38295124548,482.19370453904,497.69284002863,506.95605959354,523.2511306012],description:"13-limit schismic temperament, g=702.660507, TL 31-10-2002"},smithgw_scj22a:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,301.39265122629,313.95067836072,327.03195662575,334.88072358477,348.83408706747,361.67118147155,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"225/224 ^ 15625/15552 = [6,5,22,37,-18,-6] catakleismic"},smithgw_scj22b:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,372.08969287196,387.59343007496,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"5120/5103 ^ 225/224 = [1,-8,-14,-10,25,-15] schismic candidate"},smithgw_scj22c:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"225/224 ^ 65625/65536 = [7,-3,827,7,-21] orwell candidate"},smithgw_secab:{frequencies:[261.6255653006,274.07613169002,291.39807132323,313.10572011471,348.73657263424,365.33268718488,392.54808236386,417.35759110361,437.21932894603,486.97408086388,523.2511306012],description:"{126/125, 176/175} tempering of decab, 328-et version"},smithgw_secac:{frequencies:[261.6255653006,281.11531641881,298.8821409504,313.10572011471,348.73657263424,374.71564313773,392.54808236386,417.35759110361,448.44857247831,499.48119153644,523.2511306012],description:"{126/125, 176/175} tempering of decac, 328-et version"},smithgw_secad:{frequencies:[261.6255653006,281.11531641881,313.10572011471,328.00618883132,348.73657263424,374.71564313773,392.54808236386,437.21932894603,469.78990700991,499.48119153644,523.2511306012],description:"{126/125, 176/175} tempering of decad, 328-et version"},smithgw_smalldi11:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,322.92069774245,366.27579142084,373.75080757229,423.93031414449,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"Small diesic 11-note block, <10/9, 126/125, 1728/1715> commas"},smithgw_smalldi19a:{frequencies:[261.6255653006,269.10058145205,272.52663052146,299.00064605783,305.22982618403,313.95067836072,317.94773560837,327.03195662575,358.80077526939,366.27579142084,373.75080757229,381.53728273004,418.60090448096,430.56093032327,436.04260883433,448.50096908674,457.84473927605,502.32108537715,508.71637697339,523.2511306012],description:"Small diesic 19-note block, <16/15, 126/125, 1728/1715> commas"},smithgw_smalldi19b:{frequencies:[261.6255653006,266.96486255163,274.70684356563,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,358.80077526939,366.27579142084,373.75080757229,381.53728273004,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,498.33441009638,512.78610798918,523.2511306012],description:"Small diesic 19-note block, <16/15, 126/125, 2401/2400> commas"},smithgw_smalldi19c:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,286.15296204753,313.95067836072,320.49131749323,327.03195662575,336.37572681506,343.38355445704,373.75080757229,381.53728273004,392.4383479509,400.61414686654,436.04260883433,448.50096908674,457.84473927605,470.92601754108,508.71637697339,523.2511306012],description:"Small diesic 19-note scale containing glumma"},smithgw_smalldiglum19:{frequencies:[261.6255653006,267.74077300753,273.99891691894,280.40333801024,286.95745534843,312.9293240034,320.24370022528,327.729041887,335.38934511627,343.22869944589,374.29355081838,383.0422478503,391.99543598175,401.15789496562,437.46578647972,447.69106452518,458.15534711532,468.86422071654,511.30005826145,523.2511306012],description:'Small diesic "glumma" variant of 19-note MOS, 31/120 version'},smithgw_smalldimos11:{frequencies:[261.6255653006,267.74077300753,305.78200836532,312.9293240034,320.24370022528,365.74467430283,374.29355081838,427.47405410759,437.46578647972,447.69106452518,511.30005826145,523.2511306012],description:"Small diesic 11-note MOS, 31/120 version"},smithgw_smalldimos19:{frequencies:[261.6255653006,267.74077300753,273.99891691894,298.79793764201,305.78200836532,312.9293240034,320.24370022528,327.729041887,357.39105439675,365.74467430283,374.29355081838,383.0422478503,417.71053321823,427.47405410759,437.46578647972,447.69106452518,458.15534711532,499.62194879119,511.30005826145,523.2511306012],description:"Small diesic 19-note MOS, 31/120 version"},smithgw_star:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:'Gene Ward Smith "Star" scale, untempered version'},smithgw_star2:{frequencies:[261.6255653006,282.55561052465,313.95067836072,327.03195662575,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:'Gene Ward Smith "Star" scale, alternative untempered version'},starra:{frequencies:[261.6255653006,274.07613169002,294.49338559574,313.10572011471,328.00618883132,343.61575980934,374.71564313773,392.54808236386,411.22915413197,437.21932894603,458.02627217006,492.14685988839,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_starrb:{frequencies:[261.6255653006,274.07613169002,287.1192112957,305.26548915336,328.00618883132,343.61575980934,365.33268718488,392.54808236386,411.22915413197,437.21932894603,458.02627217006,479.82340237272,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_starrc:{frequencies:[261.6255653006,274.07613169002,287.1192112957,313.10572011471,328.00618883132,343.61575980934,365.33268718488,392.54808236386,411.22915413197,437.21932894603,458.02627217006,492.14685988839,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_tetra:{frequencies:[261.6255653006,274.84135386022,293.90210492181,314.2847539672,326.44746606412,342.93767672779,366.7210324511,392.15380743582,419.35039192746,435.57910814854,457.58200907672,489.31615916483,523.2511306012],description:"{225/224, 385/384} tempering of two-tetrachord 12-note scale"},smithgw_tr31:{frequencies:[261.6255653006,267.54129532085,292.57243455474,299.18791603519,305.95298478736,334.57791819083,342.14320575162,349.87955533643,391.26571058456,400.11279059885,409.15991580663,447.44088028055,457.55816161244,467.90420651233,511.68128147674,523.2511306012],description:"6/31 generator supermajor seconds tripentatonic scale"},smithgw_tr7_13:{frequencies:[261.6255653006,183.87449048025,346.05860897284,243.21533855007,457.74028507734,321.70694650116,605.46440189891,425.52973856044,299.06887661109,562.85871464284,395.58580335293,744.50714985079,523.2511306012],description:"81/80 ==> 28561/28672"},smithgw_tr7_13b:{frequencies:[261.6255653006,372.25357492539,395.58580335293,281.42935732142,299.06887661109,425.52973856044,302.73220094945,321.70694650116,457.74028507734,486.43067710015,346.05860897284,367.7489809605,523.2511306012],description:"reverse reduced 81/80 ==> 28561/28672"},smithgw_tr7_13r:{frequencies:[261.6255653006,367.7489809605,346.05860897284,486.43067710015,457.74028507734,321.70694650116,302.73220094945,425.52973856044,299.06887661109,281.42935732142,395.58580335293,372.25357492539,523.2511306012],description:"reduced 81/80 ==> 28561/28672"},smithgw_tra:{frequencies:[261.6255653006,128.35937755236,399.56478905052,196.03545836752,610.23096296248,299.39301413087,931.96857771927,457.24471305759,224.33452437931,698.32199734535,342.61245382262,1066.50464849657,523.2511306012],description:"81/80 ==> 1029/512"},smithgw_tre:{frequencies:[261.6255653006,256.71872396454,399.56476227799,392.07084290614,305.11544059319,299.39293769309,465.98419519089,457.24482979639,448.66910888407,349.16106442144,342.6124767791,533.2523889322,523.2511306012],description:"81/80 ==> 1029/512 ==> reduction"},smithgw_treb:{frequencies:[261.6255653006,266.6261944661,342.6124767791,349.16106442144,448.66910888407,457.24482979639,465.98419519089,299.39293769309,305.11544059319,392.07084290614,399.56476227799,513.43744792908,523.2511306012],description:"reversed 81/80 ==> 1029/512 ==> reduction"},smithgw_trx:{frequencies:[261.6255653006,490.17835855476,354.35176059633,331.954494127,479.94227969828,449.60690021487,325.02250210538,304.47902995326,285.23403465053,412.39349145653,386.32762147798,279.2776760715,523.2511306012],description:"reduced 3/2->7/6 5/4->11/6 scale"},smithgw_trxb:{frequencies:[261.6255653006,279.2776760715,386.32762147798,412.39349145653,285.23403465053,304.47902995326,325.02250210538,449.60690021487,479.94227969828,331.954494127,354.35176059633,490.17835855476,523.2511306012],description:"reversed reduced 3/2->7/6 5/4->11/6 scale"},smithgw_wa:{frequencies:[261.6255653006,273.6474362764,299.37379946195,313.13022722746,327.51877211613,349.22823143301,374.77430422696,391.99543598175,417.97870684853,437.18511000944,469.1652354389,500.26367760099,523.2511306012],description:"Wreckmeister A temperament, TL 2-6-2002"},smithgw_wa120:{frequencies:[261.6255653006,273.99891691894,298.79793764201,312.9293240034,327.729041887,349.22823143301,374.29355081838,391.99543598175,417.71053321823,437.46578647972,468.86422071654,499.62194879119,523.2511306012],description:"120-tET version of Wreckmeister A temperament"},smithgw_wb:{frequencies:[261.6255653006,280.76349612739,291.78605424516,313.13022722746,327.51877211613,349.22823143301,365.2755039332,391.99543598175,417.97870684853,437.18511000944,469.1652354389,487.58430040208,523.2511306012],description:"Wreckmeister B temperament, TL 2-6-2002"},smithgw_well1:{frequencies:[261.6255653006,275.92984511873,292.92635710626,310.42107575858,327.5229776175,349.2237102284,367.90646015831,391.734151992,413.8947676781,437.99072463899,465.63161363786,490.54194687775,523.2511306012],description:"Well-temperament, Gene Ward Smith (2005)"},smithgw_whelp1:{frequencies:[261.6255653006,275.93321340298,292.50627485027,310.07474405997,327.03195662575,348.05120395042,368.50381975103,390.45372436301,413.66634097248,438.25895612273,464.36382062247,491.65133958137,523.2511306012],description:"well-temperament with one pure third, Gene Ward Smith, 2003"},smithgw_whelp2:{frequencies:[261.6255653006,275.85000668176,292.43269265164,309.98104674077,327.03195662575,347.97308568611,368.21146504308,391.7894791814,413.34036955908,438.14417346548,464.48314871299,489.73685071229,523.2511306012],description:"well-temperament with two pure thirds"},smithgw_whelp3:{frequencies:[261.6255653006,275.96871294479,292.50627485027,310.03485655885,327.03195662575,349.46135677641,368.11883862276,391.73393619399,413.66634097248,436.82669499534,464.84945270756,489.66742197778,523.2511306012],description:"well-temperament with three pure thirds"},smithgw_wiz28:{frequencies:[261.6255653006,269.80136421624,277.4816601673,280.31310567921,287.78812183066,297.30177875068,305.22982618403,308.34441624714,317.12189733406,327.03195662575,336.37572681506,345.34574619679,348.83408706747,359.73515228832,370.01329949656,380.54627680087,392.4383479509,396.40237166758,406.97310157871,418.60090448096,431.68218274599,436.04260883433,448.50096908674,460.46099492906,475.68284600109,490.54793493862,493.35106599542,508.71637697339,523.2511306012],description:"11-limit Wizard[28]"},smithgw_wiz34:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.4816601673,280.31310567921,287.78812183066,297.30177875068,305.22982618403,308.34441624714,313.95067836072,317.12189733406,327.03195662575,336.37572681506,345.34574619679,348.83408706747,356.76213450082,359.73515228832,370.01329949656,380.54627680087,383.71749577421,392.4383479509,396.40237166758,406.97310157871,418.60090448096,431.68218274599,436.04260883433,443.97065626768,448.50096908674,460.46099492906,475.68284600109,490.54793493862,493.35106599542,504.56359022259,508.71637697339,523.2511306012],description:"11-limit Wizard[34]"},smithgw_wiz38:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.4816601673,280.31310567921,285.40970760065,287.78812183066,297.30177875068,305.22982618403,308.34441624714,313.95067836072,317.12189733406,327.03195662575,336.37572681506,339.14425131559,345.34574619679,348.83408706747,356.76213450082,359.73515228832,370.01329949656,380.54627680087,383.71749577421,392.4383479509,396.40237166758,403.65087217807,406.97310157871,418.60090448096,431.68218274599,436.04260883433,443.97065626768,448.50096908674,460.46099492906,475.68284600109,479.64686971777,490.54793493862,493.35106599542,504.56359022259,508.71637697339,523.2511306012],description:"11-limit Wizard[38]"},smithgw_wreckpop:{frequencies:[261.6255653006,272.73569398658,292.31087910123,313.29104303136,326.59518553839,350.03605285217,364.90060015836,391.09077971329,419.16071913933,436.9606979923,455.51656649021,501.93603498211,523.2511306012],description:'"Wreckmeister" 13-limit meanpop (50-et) tempered thirds'},smithj12:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,331.11985608357,344.91651675372,363.36884069528,392.4383479509,408.78994578219,441.49314144476,459.88868900496,496.67978412536,523.2511306012],description:"J. Smith, 5-limit JI scale, MMM 21-3-2006"},smithj17:{frequencies:[261.6255653006,272.57820116223,283.17034563789,295.02492750576,308.97787266236,319.3201344739,332.68808325276,348.42227432308,363.00854876594,377.11473546037,392.90218486657,411.48414905414,425.25755219187,443.06044202496,464.01459698705,479.54632553791,499.62194879119,523.2511306012],description:"J. Smith 17-tone well temperament, MMM 12-2006"},smithrk_19:{frequencies:[261.6255653006,274.68253637698,286.11368885031,294.3308008075,305.19387818096,313.95878694534,327.0246436172,343.34529416761,348.83287827711,366.24211271841,381.48359653409,392.43970784476,406.92376081862,418.61050714007,436.03134720211,457.79213919624,470.93981233279,488.32112480698,508.64303280756,523.2511306012],description:"19 out of 612-tET by Roger K. Smith, 1978"},smithrk_mult:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:'Roger K. Smith, "Multitonic" scale, just version'},solar:{frequencies:[261.6255653006,394.58976180129,774.00176545642,2207.36533954793,5481.83445910426,34573.03685904828,65024.37680021134,105705.6559450381],description:"Solar system scale: 0=Pluto, 8=Mercury. 1/1=248.54 years period"},solemn:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Solemn 6"},songlines:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Songlines.DEM, Bill Thibault and Scott Gresham-Lancaster. 1992 ICMC (=rectsp6)"},sorge:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Sorge's Monochord (1756)"},sorge1:{frequencies:[261.6255653006,276.86979852503,293.00227310437,311.47852302926,328.88393162803,349.6228209638,369.57684148724,391.5530240856,415.30469757995,439.00737933323,466.69047534984,493.32589719545,523.2511306012],description:"Georg Andreas Sorge, 1744 (A)"},sorge2:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.88393162803,348.83408706747,368.74309237173,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Georg Andreas Sorge, 1744 (B)"},sorge3:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,348.83408706747,369.15973155124,391.5530240856,414.83597850347,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Georg Andreas Sorge, well temperament, (1756, 1758)"},sparschuh:{frequencies:[261.6255653006,276.27659695743,293.02063313667,310.81117157711,328.60171001755,349.008504111,368.36879594324,391.3918456897,414.41489543615,439.53094970501,465.69350623507,491.85606276513,523.2511306012],description:"Andreas Sparschuh WTC temperament, 1/1=C=250, modified Collatz sequence"},sparschuh2:{frequencies:[261.6255653006,276.27659695743,293.02063313667,310.81117157711,328.60171001755,349.008504111,368.36879594324,391.3918456897,414.41489543615,438.48444744381,465.69350623507,491.85606276513,523.2511306012],description:"Modified Sparschuh temperament with A=419Hz by Tom Dent"},spec1_14:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,523.2511306012],description:"Spectrum sequence of 8/7: 1 to 27 reduced by 2/1"},spec1_17:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,490.54793493862,523.2511306012],description:"Spectrum sequence of 7/6: 1 to 27 reduced by 2/1"},spec1_25:{frequencies:[261.6255653006,277.97716313189,294.32876096318,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 5/4: 1 to 25 reduced by 2/1"},spec1_33:{frequencies:[261.6255653006,277.97716313189,294.32876096318,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,474.19633710734,490.54793493862,523.2511306012],description:"Spectrum sequence of 4/3: 1 to 29 reduced by 2/1"},spec1_4:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 7/5: 1 to 25 reduced by 2/1"},spec1_5:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 1.5: 1 to 27 reduced by 2/1"},specr2:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,474.19633710734,490.54793493862,523.2511306012],description:"Spectrum sequence of sqrt(2): 1 to 29 reduced by 2/1"},specr3:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Spectrum sequence of sqrt(3): 1 to 31 reduced by 2/1"},spon_chal1:{frequencies:[261.6255653006,280.31310567921,285.40970760065,286.15296204753,348.83408706747,392.4383479509,420.46965851882,428.11456140098,429.2294430713,523.2511306012],description:"JC Spondeion, from discussions with George Kahrimanis about tritone of spondeion"},spon_chal2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,285.40970760065,348.83408706747,392.4383479509,413.43299207996,418.60090448096,428.11456140098,523.2511306012],description:"JC Spondeion II, 10 May 1997. Various tunings for the parhypatai and hence trito"},spon_mont:{frequencies:[261.6255653006,271.31540105247,348.83408706747,392.4383479509,428.11456140098,523.2511306012],description:"Montford's Spondeion, a mixed septimal and undecimal pentatonic, 1923"},spon_terp:{frequencies:[261.6255653006,285.40970760065,348.83408706747,392.4383479509,428.11456140098,523.2511306012],description:"Subharm. 6-tone series, guess at Greek poet Terpander's, 6th c. BC & Spondeion, Winnington-Ingram (1928)"},stade:{frequencies:[261.6255653006,274.22463192287,292.50627485027,309.28772967674,327.03195662575,348.83408706747,365.63284274659,391.22147055517,411.33694767869,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Organs in St. Cosmae, Stade; Magnuskerk, Anloo; H.K. Sluipwijk, modif. 1/4 mean"},stanhope:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,326.6631048533,348.83408706747,367.49599295996,392.4383479509,413.43299207996,437.52264545758,465.11211608996,489.99465727995,523.2511306012],description:"Well temperament of Charles, third earl of Stanhope (1806)"},stanhope2:{frequencies:[261.6255653006,275.85537639807,293.11251278827,310.16223770573,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.66634097248,437.85193595173,465.11211608996,490.54793493862,523.2511306012],description:"Stanhope temperament (real version?) with 1/3 synt. comma temp."},stanhope_f:{frequencies:[261.6255653006,275.62199471997,292.46014274879,310.07474405997,326.6631048533,348.83408706747,367.49599295996,392.4383479509,413.43299207996,436.79202494356,465.11211608996,489.99465727995,523.2511306012],description:"Stanhope temperament, equal beating version by Farey (1807)"},stanhope_s:{frequencies:[261.6255653006,275.77758308753,293.11247215425,310.2497806633,327.03195662575,348.83408706747,367.7034443005,392.4383479509,413.66637442451,437.85181455341,465.11211608996,490.54793493862,523.2511306012],description:"Stanhope temperament, alt. version with 1/3 syntonic comma"},starling:{frequencies:[261.6255653006,278.9816419584,293.66476791741,313.14630527334,327.50195613664,349.22823143301,367.60851651046,391.99543598175,418.00016846495,437.16266336983,466.16376151809,490.69849857048,523.2511306012],description:"Starling temperament, Herman Miller (1999)"},stearns:{frequencies:[261.6255653006,299.00064605783,336.37572681506,366.27579142084,398.6675280771,448.50096908674,504.56359022259,523.2511306012],description:"Dan Stearns, guitar scale"},stearns2:{frequencies:[261.6255653006,280.31310567921,287.78812183066,299.00064605783,313.95067836072,317.68818643644,336.37572681506,340.11323489078,355.06326719367,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,429.81342870813,444.76346101102,448.50096908674,467.18850946536,470.92601754108,485.87604984397,497.08857407114,504.56359022259,523.2511306012],description:'Dan Stearns, scale for "At A Day Job" based on harmonics 10-20 and 14-28'},stearns3:{frequencies:[261.6255653006,304.11599009871,327.88291945286,364.30920726489,423.47641042702,470.52269644143,546.93995798074,607.70247408742,706.39900722312,784.8766959018],description:"Dan Stearns, trivalent version of Bohlen's Lambda scale"},stearns4:{frequencies:[261.6255653006,296.65550714972,336.37572681506,347.46339693852,393.986457405,446.73865184892,461.46412096988,523.2511306012],description:"Dan Stearns, 1/4-septimal comma temperament, tuning-math 2-12-2001"},steldek1:{frequencies:[261.6255653006,274.70684356563,275.93321340298,280.31310567921,286.15296204753,294.32876096318,305.22982618403,309.04519901133,315.35224388912,321.92208230347,327.03195662575,331.11985608357,343.38355445704,353.19451315581,367.91095120397,381.53728273004,386.30649876417,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,441.49314144476,457.84473927605,490.54793493862,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Stellated two out of 1 3 5 7 9 dekany"},steldek1s:{frequencies:[261.6255653006,274.70684356563,275.93321340298,280.31310567921,286.15296204753,294.32876096318,305.22982618403,309.04519901133,315.35224388912,321.92208230347,327.03195662575,331.11985608357,339.14425131559,343.38355445704,353.19451315581,360.4025644447,367.91095120397,381.53728273004,386.30649876417,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,441.49314144476,457.84473927605,482.88312345521,490.54793493862,494.47231841813,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Superstellated two out of 1 3 5 7 9 dekany"},steldek2:{frequencies:[261.6255653006,262.3068818769,269.80136421624,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.7792935736,308.34441624714,312.16686768822,314.76825825228,327.03195662575,337.2517052703,343.38355445704,356.76213450082,359.73515228832,377.72190990274,381.53728273004,385.43052030892,392.4383479509,393.46032281536,400.61414686654,408.78994578219,416.22249025095,419.69101100305,429.2294430713,431.68218274599,449.66894036041,457.84473927605,472.15238737843,490.54793493862,494.63583439645,499.46698830115,503.62921320365,513.90736041189,523.2511306012],description:"Stellated two out of 1 3 5 7 11 dekany"},steldek2s:{frequencies:[261.6255653006,262.3068818769,269.80136421624,274.70684356563,280.31310567921,286.15296204753,294.32876096318,295.09524211152,299.7792935736,302.17752792219,308.34441624714,312.16686768822,314.76825825228,327.03195662575,337.2517052703,343.38355445704,349.7425091692,356.76213450082,359.73515228832,377.72190990274,381.53728273004,385.43052030892,392.4383479509,393.46032281536,400.61414686654,408.78994578219,416.22249025095,419.69101100305,429.2294430713,431.68218274599,440.49202321019,449.66894036041,454.06089845559,457.84473927605,472.15238737843,490.54793493862,494.63583439645,499.46698830115,503.62921320365,513.90736041189,523.2511306012],description:"Superstellated two out of 1 3 5 7 11 dekany"},steleik1:{frequencies:[220,220.57291666667,224.58333333333,225,226.875,229.16666666667,232.03125,235.27777777778,238.21875,240.625,242.63020833333,243.08035714286,247.5,248.14453125,252.08333333333,252.65625,255.234375,256.66666666667,257.8125,262.5,264.6875,270.703125,272.25,275,277.29166666667,278.4375,280.72916666667,283.59375,288.75,294.09722222222,297.7734375,302.5,308.80208333333,309.375,311.953125,315,315.10416666667,317.625,320.83333333333,324.10714285714,324.84375,330,330.859375,336.11111111111,336.875,340.3125,343.75,346.5,346.61458333333,350,352.91666666667,353.57142857143,360.9375,366.66666666667,371.25,378.125,385,388.92857142857,392.12962962963,393.75,397.03125,401.04166666667,403.33333333333,412.5,415.9375,423.5,425.390625,427.77777777778,432.14285714286,433.125,440],description:"Stellated Eikosany 3 out of 1 3 5 7 9 11"},steleik1s:{frequencies:[123.47082531403,123.79236392162,125.33976847064,127.32928860509,129.9819821177,130.22313607339,131.308328874,132.59082945654,132.63467563031,133.69575303535,135.04621518722,136.42423779117,136.73429287706,138.90467847828,139.26640941182,141.47698733899,141.79852594658,143.24544968073,144.69237341488,145.8499124022,145.89814319334,147.3231438406,148.55083670594,148.82644122673,151.92699208562,154.33853164254,156.26776328807,156.6747105883,159.16161075637,160.43490364242,160.48795751267,162.05545822466,163.70908534941,165.05648522882,165.43161360434,165.73853682068,167.11969129419,168.80776898403,169.77238480679,173.63084809785,175.077771832,175.80123369908,178.26100404713,179.05681210091,180.06162024963,181.89898372156,182.31239050275,185.20623797104,185.68854588243,189.06470126211,189.41547065221,190.99393290764,192.92316455317,195.33470411009,198.06778227459,200.54362955302,202.56932278083,204.25740047067,204.63635668676,208.35701771743,208.89961411773,212.21548100849,212.69778891987,214.8681745211,216.07394429955,217.03856012232,220.07531363843,220.98471576091,222.82625505891,227.89048812843,229.19271948917,231.50779746381,233.43702910934,233.87012192772,234.4016449321,236.33087657764,238.74241613455,241.07423537553,241.15395569146,243.083187337,246.94165062806],description:"Superstellated Eikosany 3 out of 1 3 5 7 9 11"},steleik2:{frequencies:[123.47082531403,124.49974885831,126.04313417474,126.11662871362,127.68005799519,128.74405847848,129.64436657973,130.41605923794,132.04518818306,132.96858110742,133.76006075687,135.81790784543,137.94006265552,138.64744759221,140.44806379471,141.47698733899,144.0492961997,145.92006628022,146.26543921816,147.13606683255,148.16499037684,148.55083670594,151.25176100969,152.15206911093,154.33853164254,154.49287017418,155.62468607289,156.05340421634,157.14468676331,157.64578589202,158.45422581967,160.51207290824,160.9300730981,163.85607442716,164.62776708537,167.20007594608,169.77238480679,170.24007732692,171.65874463798,172.85915543964,173.88807898393,175.56007974339,176.56328019906,180.06162024963,181.09054379391,182.8317990227,183.92008354069,185.20623797104,186.74962328747,187.26408505961,190.14507098361,193.11608771773,194.02558263633,197.55332050245,198.06778227459,200.6400911353,201.66901467958,202.31209189476,203.72686176815,204.2880927923,205.78470885672,205.99049356557,208.95062745451,210.19438118936,214.01609721099,214.57343079747,216.07394429955,217.36009872991,217.87456050205,220.70410024883,224.71690207153,226.36317974239,229.30296129748,230.47887391952,234.08010632452,237.68133872951,239.0961086029,240.76810936236,243.77573203026,245.22677805425,246.94165062806],description:"Stellated Eikosany 3 out of 1 3 5 7 11 13"},steleik2s:{frequencies:[61.73541265702,61.89618196081,62.32902239411,62.70002847979,63.66464430255,64.65940436978,64.99099105886,65.83502990378,66.22690508177,66.31733781516,67.05419712422,67.52310759362,68.40003106886,68.56192463352,68.97003132776,69.45233923915,69.63320470592,70.8992629733,71.32128239576,72.34618670745,72.41853289415,72.94907159667,73.15003322642,73.66157192031,73.89646213689,74.27541835298,75.24003417574,75.43597176474,76.80753488774,77.16926582128,78.37503559973,79.58080537819,79.800036247,80.24397875634,80.46503654906,81.02772911234,81.51003702372,82.29378737972,82.71580680218,82.76403759332,84.40388449202,84.45309958502,84.8861924034,85.7024057919,86.21253915971,86.81542404893,87.05458499673,87.53888591601,87.7800398717,89.13050202357,90.52316611769,90.94949186079,92.60311898553,92.84427294122,94.05004271968,94.53235063106,94.83379307568,95.49696645383,95.7600434964,96.46158227659,96.55804385887,97.94560661931,98.52861618252,100.32004556766,100.58129568632,101.28466139042,101.88754627965,102.12870023534,103.45504699165,104.17850885872,105.33604784604,105.47988405157,106.10774050425,107.4857631082,108.03697214979,109.72504983963,111.41312752947,112.07630090762,112.86005126361,113.15395764711,114.2698743892,114.95005221294,115.75389873191,115.86965263064,116.71851455468,118.16543828883,118.23433941902,119.7000543705,120.57697784574,120.69755482359,121.54159366851,122.26505553558,123.47082531404],description:"Superstellated Eikosany 3 out of 1 3 5 7 11 13"},stelhex1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,294.32876096318,327.03195662575,343.38355445704,381.53728273004,392.4383479509,400.61414686654,408.78994578219,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 7 hexany, also dekatesserany, mandala, tetradekany"},stelhex2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,327.03195662575,331.11985608357,353.19451315581,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 9 hexany"},stelhex3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,281.36411960997,289.40309445597,297.67175429757,339.14425131559,348.83408706747,358.80077526939,361.75386806997,372.08969287196,385.87079260796,434.10464168396,465.11211608996,523.2511306012],description:"Stellated Tetrachordal Hexany based on Archytas's Enharmonic"},stelhex4:{frequencies:[261.6255653006,269.10058145205,276.78916949353,279.06726965397,287.04062021552,297.67175429757,336.37572681506,348.83408706747,358.80077526939,361.75386806997,372.08969287196,382.72082695402,430.56093032327,465.11211608996,523.2511306012],description:"Stellated Tetrachordal Hexany based on the 1/1 35/36 16/15 4/3 tetrachord"},stelhex5:{frequencies:[261.6255653006,294.32876096318,305.22982618403,331.11985608357,343.38355445704,386.30649876417,392.4383479509,400.61414686654,441.49314144476,457.84473927605,504.56359022259,515.07533168556,523.2511306012],description:"Stellated two out of 1 3 7 9 hexany, stellation is degenerate"},stelhex6:{frequencies:[261.6255653006,269.80136421624,294.32876096318,299.7792935736,327.03195662575,337.2517052703,356.76213450082,359.73515228832,392.4383479509,408.78994578219,431.68218274599,449.66894036041,490.54793493862,494.63583439645,523.2511306012],description:"Stellated two out of 1 3 5 11 hexany, from The Giving, by Stephen J. Taylor"},stelpd1:{frequencies:[207.65234878997,208.19311011494,212.37172035338,214.14148468966,218.03496622947,219.00833661442,222.07265078927,222.48465941783,222.99030637105,224.84855892414,227.11975648903,229.43730502463,233.60889238872,237.93498298851,240.90917027586,242.2610735883,244.73312535961,245.28933700815,247.76700707894,249.83173213793,250.29524184505,254.84606442405,255.50972605016,256.96978162759,259.56543598746,262.81000393731,267.67685586207,272.54370778684,275.32476602956,277.59081348659,280.33067086646,281.06069865517,283.1622938045,285.52197958621,292.0111154859,297.32040849473,299.79807856552,302.82634198537,305.91640669951,306.61167126019,311.47852318496,312.28966517242,317.24664398468,317.96765908464,318.55758053007,321.21222703448,324.45679498433,327.0524493442,330.35600943859,333.10897618391,333.72698912674,340.67963473354,342.62637550345,346.08724798328,350.41333858307,356.90247448276,363.39161038245,367.09968803941,371.65051061841,374.7475982069,380.69597278161,385.45467244138,389.34815398119,392.59272193104,396.42721132631,399.73077142069,400.47238695209,401.51528379311,403.7684559805,407.88854226601,408.81556168025,415.30469757994],description:"Stellated two out of 1 3 5 7 9 11 pentadekany"},stelpd1s:{frequencies:[21.82676446456,21.88360499702,22.15715005948,22.2309638065,22.3228272933,22.50885085408,22.68892166091,22.91810268779,23.02041564622,23.14959867453,23.15196087848,23.34251199682,23.38581906917,23.43896865797,23.624449876,23.63429339678,23.87302363311,24.11662591508,24.35217522905,24.55511002263,24.61905562165,25.00983428231,25.20991295657,25.32245721084,25.46455854199,25.72440097609,25.78286552376,25.93612444091,26.04329850885,26.26032599642,26.30904645282,26.78739275196,26.85715158725,27.01062102489,27.2834555807,27.56185818867,27.62449877546,27.69643757435,28.01101439619,28.1360635676,28.29395393554,28.36115207614,28.41087110056,28.58266775121,28.64762835974,28.9399510981,29.17813999603,29.29871082246,29.46613202716,29.54286674598,29.7637697244,30.01180113877,30.06748166036,30.69388752829,30.99367756425,31.12334932909,31.25195821062,31.51239119571,31.65307151355,31.83069817748,32.15550122011,32.2285819047,32.41274522987,32.74014669684,32.82540749553,33.0742298264,33.34644570974,33.42223308636,33.48424093995,33.76327628112,34.09304532068,34.10431947588,34.37715403168,34.58149925455,34.7243980118,35.01376799523,35.07872860376,35.45144009517,35.80953544967,36.01416136652,36.17493887262,36.37794077427,36.74914425156,36.83266503394,36.92858343247,37.50234985274,37.51475142346,37.81486943485,37.88116146742,38.19683781298,38.26770393137,38.58660146413,38.90418666137,39.06494776328,39.39048899464,40.01573485169,40.28572738088,40.51593153734,40.92518337105,41.25258483802,41.26622656581,41.342787283,41.66927761416,42.01652159428,42.09447432451,42.2040953514,42.44093090331,42.61630665085,42.87400162681,42.9714425396,43.65352892912],description:"Superstellated two out of 1 3 5 7 9 11 pentadekany"},stelpent1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,353.19451315581,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,406.97310157871,412.06026534844,420.46965851882,436.04260883433,441.49314144476,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Stellated one out of 1 3 5 7 9 pentany"},stelpent1s:{frequencies:[261.6255653006,271.31540105247,274.70684356563,275.93321340298,280.31310567921,282.55561052465,286.15296204753,288.32205155576,290.69507255622,294.32876096318,301.46155672497,305.22982618403,309.04519901133,313.95067836072,315.35224388912,320.35783506196,321.92208230347,327.03195662575,329.64821227876,336.37572681506,339.14425131559,343.38355445704,348.83408706747,353.19451315581,360.4025644447,366.27579142084,367.91095120397,373.75080757229,381.53728273004,386.30649876417,387.59343007496,392.4383479509,395.57785473451,403.65087217807,406.97310157871,411.88864507966,412.06026534844,420.46965851882,429.2294430713,436.04260883433,439.53094970501,441.49314144476,448.50096908674,452.19233508746,457.84473927605,470.92601754108,480.53675259294,482.88312345521,488.36772189445,490.54793493862,494.47231841813,498.33441009638,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Superstellated one out of 1 3 5 7 9 pentany"},steltet1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,305.22982618403,313.95067836072,327.03195662575,343.38355445704,366.27579142084,373.75080757229,381.53728273004,392.4383479509,436.04260883433,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Stellated one out of 1 3 5 7 tetrany"},steltet1s:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,305.22982618403,313.95067836072,320.35783506196,327.03195662575,343.38355445704,366.27579142084,373.75080757229,381.53728273004,392.4383479509,429.2294430713,436.04260883433,439.53094970501,448.50096908674,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:"Superstellated one out of 1 3 5 7 tetrany"},steltet2:{frequencies:[261.6255653006,267.07609791103,272.52663052146,286.15296204753,305.22982618403,327.03195662575,333.84512238879,343.38355445704,381.53728273004,392.4383479509,400.61414686654,408.78994578219,436.04260883433,457.84473927605,476.92160341255,490.54793493862,523.2511306012],description:"Stellated three out of 1 3 5 7 tetrany"},steltet2s:{frequencies:[261.6255653006,286.15296204753,294.32876096318,300.46061014991,306.59245933664,327.03195662575,343.38355445704,350.53737850823,357.69120255941,367.91095120397,392.4383479509,400.61414686654,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Superstellated three out of 1 3 5 7 tetrany"},steltri1:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Stellated one out of 1 3 5 triany"},steltri2:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,408.78994578219,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 triany"},stevin:{frequencies:[261.6255653006,277.20445571159,293.66434538175,311.1256573916,329.66931111467,349.25319089654,369.99797100919,392.00714009679,415.41055144586,440.15068186507,466.27261682516,494.00597677606,523.2511306012],description:"Simon Stevin, monochord division of 10000 parts for 12-tET (1585)"},stopper:{frequencies:[261.6255653006,277.19910487213,293.6996776193,311.18246278326,329.70593120198,349.3320268423,370.12638880276,392.15855510068,415.50221189151,440.23542223935,466.44090588941,494.20629608476,523.62445363767,554.79375523088,587.81844599272,622.80896314278,659.88233179115,699.16252826162,740.78092441407,784.8766959018],description:"Bernard Stopper, piano tuning with 19th root of 3 (1988)"},storbeck:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,358.80077526939,381.53728273004,387.59343007496,392.4383479509,403.65087217807,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"Ulrich Storbeck, 2001"},strahle:{frequencies:[261.6255653006,278.94941459687,296.90543930973,315.65242990842,335.0021118691,355.12744448111,376.24442122187,398.15684412917,421.10213511252,444.85552088095,469.94877954106,496.17080790016,523.2511306012],description:"Strahle's Geometrical scale"},"sub24-12":{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Subharmonics 24-12"},sub24:{frequencies:[261.6255653006,10.90106522086,11.37502457829,11.89207115003,12.45836025241,13.08127826503,13.76976659477,14.53475362781,15.38973913533,16.35159783129,17.44170435337,18.68754037861,20.12504348466,21.80213044172,23.78414230005,26.16255653006,29.06950725562,32.70319566257,37.37508075723,43.60426088343,52.32511306012,65.40639132515,87.20852176687,130.8127826503,261.6255653006],description:"Subharmonics 24-1"},sub40:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,475.68284600109,498.33441009638,523.2511306012],description:"sub 40-20"},sub48:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,465.11211608996,502.32108537715,523.2511306012],description:"12 of sub 48 (Leven)"},sub50:{frequencies:[261.6255653006,272.52663052146,290.69507255622,311.45900631024,327.03195662575,344.24416486921,373.75080757229,384.74347838324,408.78994578219,436.04260883433,467.18850946536,484.4917875937,523.2511306012],description:"12 of sub 50"},sub8:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"Subharmonic series 1/16 - 1/8"},sumatra:{frequencies:[261.6255653006,266.79889483106,324.44528279699,356.96377863828,390.9602296356,474.47355835313,530.64156666967,639.28283484968,713.92755727656,784.8766959018],description:'"Archeological" tuning of Pasirah Rus orch. in Muaralakitan, Sumatra. 1/1=354 Hz'},super_10:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"A superparticular 10-tone scale"},super_11:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"A superparticular 11-tone scale"},super_12:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,372.08969287196,395.34529867646,418.60090448096,441.85651028546,465.11211608996,494.18162334558,523.2511306012],description:"A superparticular 12-tone scale"},super_12_1:{frequencies:[261.6255653006,280.31310567921,299.00064605783,317.68818643644,336.37572681506,355.06326719367,373.75080757229,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"Another superparticular 12-tone scale"},super_12_2:{frequencies:[261.6255653006,280.31310567921,299.00064605783,317.68818643644,336.37572681506,355.06326719367,373.75080757229,392.4383479509,420.46965851882,448.50096908674,473.41768959156,498.33441009638,523.2511306012],description:"Another superparticular 12-tone scale"},super_13:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"A superparticular 13-tone scale"},super_14:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"A superparticular 14-tone scale"},super_15:{frequencies:[261.6255653006,276.16031892841,290.69507255622,305.22982618403,319.76457981184,334.29933343966,348.83408706747,363.36884069528,381.53728273004,399.70572476481,417.87416679957,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"A superparticular 15-tone scale"},super_17:{frequencies:[261.6255653006,274.08392555301,286.54228580542,299.00064605783,311.45900631024,323.91736656265,336.37572681506,348.83408706747,363.36884069528,377.90359432309,392.4383479509,411.12588832951,429.81342870813,448.50096908674,467.18850946536,485.87604984397,504.56359022259,523.2511306012],description:"Superparticular 17-tone scale"},super_19:{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,316.13089140489,327.03195662575,340.11323489078,353.19451315581,366.27579142084,379.35706968587,392.4383479509,408.13588186894,423.83341578697,439.53094970501,455.22848362304,470.92601754108,488.36772189445,505.80942624783,523.2511306012],description:"Superparticular 19-tone scale"},super_19_1:{frequencies:[261.6255653006,272.09058791262,282.55561052465,293.02063313667,303.4856557487,313.95067836072,325.57848126297,337.20628416522,348.83408706747,363.36884069528,377.90359432309,392.4383479509,408.13588186894,423.83341578697,439.53094970501,455.22848362304,470.92601754108,488.36772189445,505.80942624783,523.2511306012],description:"Superparticular 19-tone scale"},super_19_2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Superparticular 19-tone scale"},super_22:{frequencies:[261.6255653006,270.96933548991,280.31310567921,289.65687586852,299.00064605783,308.34441624714,317.68818643644,327.03195662575,337.93302184661,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,406.45400323486,420.46965851882,434.48531380278,448.50096908674,463.45100138963,478.40103369253,493.35106599542,508.30109829831,523.2511306012],description:"Superparticular 22-tone scale"},super_22_1:{frequencies:[261.6255653006,272.09058791262,282.55561052465,293.02063313667,303.4856557487,313.95067836072,325.16320258789,336.37572681506,347.58825104223,358.80077526939,370.01329949656,381.22582372373,392.4383479509,405.51962621593,418.60090448096,431.68218274599,444.76346101102,457.84473927605,470.92601754108,484.00729580611,497.08857407114,510.16985233617,523.2511306012],description:"Superparticular 22-tone scale"},super_24:{frequencies:[261.6255653006,270.34641747729,279.06726965397,287.78812183066,296.50897400735,305.22982618403,313.95067836072,322.67153053741,331.39238271409,340.11323489078,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,405.51962621593,418.60090448096,431.68218274599,444.76346101102,457.84473927605,470.92601754108,484.00729580611,497.08857407114,510.16985233617,523.2511306012],description:"Superparticular 24-tone scale, inverse of Mans.ur 'Awad"},super_7:{frequencies:[261.6255653006,287.78812183066,313.95067836072,353.19451315581,392.4383479509,431.68218274599,470.92601754108,523.2511306012],description:"A superparticular 7-tone scale"},super_8:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"A superparticular 8 tone scale"},super_9:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"A superparticular 9-tone scale"},suppig:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Friedrich Suppig's 19-tone JI scale. Calculus Musicus, Berlin 1722"},sur_7:{frequencies:[261.6255653006,280.40333801024,327.729041887,351.25128999693,383.0422478503,410.5345162762,479.82340237272,523.2511306012],description:"7-tone surupan"},sur_9:{frequencies:[261.6255653006,280.40333801024,305.78200836532,327.729041887,351.25128999693,383.0422478503,410.5345162762,447.69106452518,479.82340237272,523.2511306012],description:"Theoretical nine-tone surupan gamut"},sur_ajeng:{frequencies:[261.6255653006,285.30470202322,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Surupan ajeng"},sur_degung:{frequencies:[261.6255653006,322.09885310804,345.21700307457,396.55020354877,488.21056770985,523.2511306012],description:"Surupan degung"},sur_madenda:{frequencies:[261.6255653006,322.09885310804,345.21700307457,425.01198472693,488.21056770985,523.2511306012],description:"Surupan madenda"},sur_melog:{frequencies:[261.6255653006,280.40333801024,305.78200836532,383.0422478503,410.5345162762,523.2511306012],description:"Surupan melog"},sur_miring:{frequencies:[261.6255653006,285.30470202322,305.78200836532,389.73770840504,417.71053321823,523.2511306012],description:"Surupan miring"},sur_x:{frequencies:[261.6255653006,280.40333801024,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Surupan tone-gender X (= unmodified nyorog)"},sur_y:{frequencies:[261.6255653006,280.40333801024,300.52885648597,383.0422478503,410.5345162762,523.2511306012],description:"Surupan tone-gender Y (= mode on pamiring)"},sverige:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,440,466.16376151809,493.88330125613,523.2511306012,554.36526195375,587.32953583482,622.25396744417,659.25511382574,698.45646286601,739.98884542327,783.9908719635,830.60939515989,880,932.32752303618,987.76660251225,1046.5022612024,1174.65907166964,1318.51022765149,1396.91292573202,1567.98174392701],description:"Scale on Swedish 50 crown banknote of some kind of violin."},syntonolydian:{frequencies:[261.6255653006,294.32876096318,331.11985608357,372.50983809402,392.4383479509,441.49314144476,496.67978412536,523.2511306012],description:"Greek Syntonolydian, also genus duplicatum medium, or ditonum (Al-Farabi)"},syrian:{frequencies:[261.6255653006,268.67837258085,275.62199471997,279.38237857051,286.74979536837,294.32876096318,302.10804307229,310.07474405997,314.30517589183,322.59351978942,326.6631048533,331.11985608357,339.85160932548,348.83408706747,358.05397697456,367.49599295996,372.50983809402,382.33306049116,392.4383479509,402.81072409638,413.43299207996,419.07356785577,430.12469305256,441.49314144476,453.13547910064,465.11211608996,477.40530263275,489.99465727995,496.67978412536,509.77741398822,523.2511306012],description:"After ^Sayh.'Ali ad-Darwis^ (Shaykh Darvish) from d'Erlanger vol.5, p.29"},szpak_24:{frequencies:[261.6255653006,270.98948203641,277.18263097687,287.10335517712,293.66476791741,304.17540907689,311.12698372208,322.26262012861,329.62755691287,341.42535271779,349.22823143301,361.7275606831,369.99442271164,383.23700075636,391.99543598175,406.02545869431,415.30469757995,430.16898885692,440,455.74816803176,466.16376151809,482.84836435151,493.88330125613,511.56002220218,523.2511306012],description:"Stephen Szpak's scale, TL 2-1-2004"},pagano_b:{frequencies:[261.6255653006,277.97716313189,289.55954492905,312.72430852337,333.57259575826,351.8148470888,370.63621750918,389.16802838464,416.96574469783,444.76346101102,463.29527188648,486.4600354808,523.2511306012],description:"Pat Pagano and David Beardsley, 17-limit scale, TL 27-2-2001"},palace:{frequencies:[261.6255653006,277.01530443593,294.32876096318,299.00064605783,336.37572681506,348.83408706747,373.75080757229,392.4383479509,409.50088481833,428.11456140098,448.50096908674,470.92601754108,523.2511306012],description:"Palace mode+"},palace2:{frequencies:[261.6255653006,277.01530443593,336.37572681506,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Byzantine Palace mode, 17-limit"},panpipe1:{frequencies:[261.6255653006,305.78200836532,346.61566493686,386.59871897734,424.03113209229,475.68400784708,523.2511306012],description:"Palina panpipe of Solomon Islands. 1/1=f+45c. From Ocora CD Guadalcanal"},panpipe2:{frequencies:[261.6255653006,301.39807245198,340.46429857933,389.512652082,435.70052664441,481.48922855473,540.45338572244,606.98892366383,675.83458963267,749.45240308975,819.17415016614,915.78156525194,979.24522642508,1073.44040298899,1178.73719255088,1360.28482360484],description:"Lalave panpipe of Solomon Islands. 1/1=f'+47c."},panpipe3:{frequencies:[261.6255653006,302.44445076078,341.44901934006,382.59999559751,433.19107626846,482.88183400971,542.01653249392,602.10016957865,677.78929781797,755.1012944609,822.018116801,906.30932187391,994.06270356141,1067.87449159209,1155.14617783291,1300.35790771888],description:"Tenaho panpipe of Solomon Islands. 1/1=f'+67c."},parachrom:{frequencies:[261.6255653006,274.52698453615,288.06460709314,349.22823143301,391.99543598175,411.32572372413,431.60923940535,523.2511306012],description:"Parachromatic, new genus 5 + 5 + 20 parts"},parakleismic:{frequencies:[261.6255653006,269.41173453909,271.00883762044,279.07425994419,280.72864356353,282.39283618632,290.79705467987,292.52093234567,301.22657042972,303.0122754386,312.03014360907,313.87989341557,323.22118988972,325.13728335605,327.06473376202,336.79842078181,338.79499972275,348.87778808468,350.94597487438,361.39038519337,363.53274806687,374.35175001315,376.5709514911,387.77797996035,390.07677146523,392.38919046486,404.06698135965,406.46233589795,418.55895395107,421.04021853379,433.57068509561,436.14094342919,449.12081866987,451.783257426,465.22865943552,467.98658728446,470.76086444006,484.77105399159,487.64483417146,502.15750307968,505.13434926963,520.16751901001,523.2511306012],description:"Parakleismic temperament, g=315.250913, 5-limit"},parizek:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Petr Parizek, 12-tone Linear Level tuning, 1/1=Ab"},parizek_13lqmt:{frequencies:[261.6255653006,272.70676208351,292.18581651805,313.05623198362,325.57848126297,348.83408706747,365.23227064756,391.32028997953,406.97310157871,436.04260883433,467.18850946536,486.97636086341,523.2511306012],description:"April 2003 - Petr Parizek"},parizek_17lqmt:{frequencies:[261.6255653006,272.52663052146,291.99281841585,312.60407618638,327.03195662575,350.39138209902,364.70475555078,390.75509523297,408.78994578219,436.04260883433,467.18850946536,488.44386904122,523.2511306012],description:"To tune the scale by ear, please choose the intervals in the following order:"},parizek_7lmtd1:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,418.60090448096,437.98922762377,468.83301301868,490.54793493862,523.2511306012],description:"Use SET MIDDLE 62"},parizek_7lqmtd2:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,390.69417751556,418.60090448096,437.98922762377,468.83301301868,488.36772189445,523.2511306012],description:"Use SET MIDDLE 62"},parizek_cirot:{frequencies:[261.6255653006,273.76082553017,293.33333347996,307.98092841354,327.40170814054,348.04713286849,366.66693712906,392.88175996935,409.71484950008,438.01699797506,463.01593599647,491.10256480205,523.2511306012],description:"Overtempered circular tuning (1/1 is F)"},parizek_epi:{frequencies:[261.6255653006,283.42769574232,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"In The Epimoric World"},parizek_epi2:{frequencies:[261.6255653006,283.42769574232,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,523.2511306012,523.2511306012],description:"In the Epimoric World - extended (version for two keyboards)"},parizek_epi2a:{frequencies:[261.6255653006,283.42769574232,287.78812183066,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012,523.2511306012],description:"April 2003 - Petr Parizek"},parizek_ji1:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,366.27579142084,392.4383479509,412.06026534844,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Petr Parizek, 12-tone septimal tuning, 2002."},parizek_jiweltmp:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,329.45441556372,348.83408706747,370.63621750918,392.4383479509,416.96574469783,440.63253103259,465.11211608996,494.18162334558,523.2511306012],description:"April 2003 - Petr Parizek"},jiwt2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,331.11985608357,348.83408706747,372.08969287196,392.4383479509,415.8649508569,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"June 2003 - Petr Parizek"},parizek_llt7:{frequencies:[261.6255653006,283.42769574232,327.03195662575,359.73515228832,392.4383479509,425.14154361347,479.64686971777,523.2511306012],description:"7-tone mode of Linear Level Tuning 2000 (= wilson_helix)"},parizek_qmeb1:{frequencies:[261.6255653006,273.53155294581,293.066620053,305.25690181412,326.9069921792,350.33366042609,366.2083106197,392.1884190578,408.50877577745,437.87542071709,457.7197748295,488.61098601707,523.2511306012],description:"Equal beating quasi-meantone tuning no. 1 - F...A# (1/1 = 261.7Hz)(3/2 5/3 5/4 7/4 7/6)"},parizek_qmeb2:{frequencies:[261.6255653006,274.12423619715,293.39509530855,306.21121252767,327.1564453797,350.32795211486,366.55713600477,391.6914154272,409.44351174042,438.20041390279,457.4712730142,489.73875803795,523.2511306012],description:"Equal beating quasi-meantone tuning no. 2 - F...A# (1/1 = 262.7Hz)"},parizek_qmeb3:{frequencies:[261.6255653006,274.23252240717,293.57983281823,306.4052273004,327.28159934073,350.29865766202,366.78755898655,391.93906252094,409.53887392713,438.37260750749,457.59509656107,490.04864950866,523.2511306012],description:"Equal beating quasi-meantone tuning no. 3 - F...A#. 1/1 = 262Hz"},parizek_qmtp12:{frequencies:[261.6255653006,273.55480692456,293.00227310437,305.44101254122,326.6631048533,350.4133380576,366.39100206434,391.84790908124,408.48291326839,437.52264545758,457.47219685667,489.2574430773,523.2511306012],description:"12-tone quasi-meantone tuning with 1/9 Pyth. comma as basic tempering unit (F...A#)"},parizek_qmtp24:{frequencies:[261.6255653006,273.14323313659,280.64720643091,285.59764149034,293.00227310437,305.44101254122,313.83229199844,326.6631048533,335.63741195089,341.5578378819,350.4133380576,365.83975262993,375.89034660662,381.37064019061,391.84790908124,407.86833637529,419.07356785577,437.52264545758,448.86620556368,457.47219685667,469.33298761093,489.2574430773,502.69865025911,510.02774559919,523.2511306012],description:"24-tone quasi-meantone tuning with 1/9 Pyth. comma as basic tempering unit (Bbb...C##)"},parizek_syndiat:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,353.19451315581,387.59343007496,392.4383479509,436.04260883433,441.49314144476,484.4917875937,490.54793493862,523.2511306012],description:"Petr Parizek, diatonic scale with syntonic alternatives"},parizek_syntonal:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Petr Parizek, Syntonic corrections in JI tonality, Jan. 2004"},parizek_temp19:{frequencies:[261.6255653006,276.69969455132,294.32876096318,310.68035879446,328.58088727969,349.51540364377,368.93292606842,392.4383479509,415.04954182698,438.10784970625,466.02053819169,492.87133091954,523.2511306012],description:"Petr Parizek, genus [3 3 19 19 19] well temperament"},"partch-barstow":{frequencies:[261.6255653006,279.06726965397,287.78812183066,290.69507255622,294.32876096318,299.00064605783,313.95067836072,327.03195662575,348.83408706747,359.73515228832,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,470.92601754108,479.64686971777,490.54793493862,523.2511306012],description:"Guitar scale for Partch's Barstow (1941, 1968)"},"partch-greek":{frequencies:[261.6255653006,261.6255653006,271.31540105247,294.32876096318,279.06726965397,348.83408706747,313.95067836072,392.4383479509,392.4383479509,406.97310157871,418.60090448096,418.60090448096,523.2511306012],description:'Partch Greek scales from "Two Studies on Ancient Greek Scales" on black/white'},"partch-grm":{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,313.95067836072,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:'Partch Greek scales from "Two Studies on Ancient Greek Scales" mixed'},"partch-indian":{frequencies:[261.6255653006,269.80136421624,277.97716313189,285.40970760065,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,383.71749577421,392.4383479509,406.97310157871,411.12588832951,428.11456140098,441.49314144476,457.84473927605,475.68284600109,490.54793493862,507.3950357345,523.2511306012],description:"Partch's Indian Chromatic, Exposition of Monophony, 1933."},"partch-ur":{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"Ur-Partch curved keyboard, published in Interval"},"partch_29-av":{frequencies:[261.6255653006,269.80136421624,274.70684356563,280.31310567921,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,488.36772189445,498.33441009638,507.3950357345,523.2511306012],description:"29-tone JI scale from Partch's Adapted Viola 1928-30"},partch_29:{frequencies:[261.6255653006,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,523.2511306012],description:"Partch/Ptolemy 11-limit Diamond"},partch_37:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol.9(2)'},partch_39:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"Ur-Partch Keyboard 39 tones, published in Interval"},partch_41:{frequencies:[261.6255653006,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,442.75095666255,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,523.2511306012],description:"13-limit Diamond after Partch, Genesis of a Music, p 454, 2nd edition"},partch_41a:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol. 9(2)'},partch_41comb:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,274.70684356563,279.06726965397,280.31310567921,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,488.36772189445,490.54793493862,498.33441009638,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"41-tone JI combination from Partch's 29-tone and 37-tone scales"},partch_43:{frequencies:[261.6255653006,264.89588486686,269.80136421624,274.70684356563,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,498.33441009638,507.3950357345,516.79124009995,523.2511306012],description:"Harry Partch's 43-tone pure scale"},partch_43a:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.70684356563,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,498.33441009638,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol. 9(2)'},patala:{frequencies:[261.6255653006,289.6217982776,320.24370022528,355.94891173479,393.58362272115,439.74591942221,480.6555937997,537.34060327431],description:"Observed patala tuning from Burma, Helmholtz/Ellis p. 518, nr.83"},pelog1:{frequencies:[261.6255653006,285.79952600623,313.83440569119,359.87690576543,393.35634555235,426.98050185716,482.04578814299,523.2511306012],description:"Gamelan Saih pitu from Ksatria, Den Pasar (South Bali). 1/1=312.5 Hz"},pelog10:{frequencies:[261.6255653006,290.16653606067,310.14521470005,342.49164912079,385.30310526088,418.60090448096,442.38504678101,523.2511306012],description:"Balinese saih 7 scale, Krobokan. 1/1=275 Hz. McPhee, 1966"},pelog11:{frequencies:[261.6255653006,289.11520789678,327.03195662575,352.6257619269,388.64667309147,441.73012112348,478.69895237627,523.2511306012],description:"Balinese saih pitu, gamelan luang, banjar Se`se'h. 1/1=276 Hz. McPhee, 1966"},pelog11i:{frequencies:[261.6255653006,267.83009854382,287.76973397991,309.19384990071,332.21296611011,356.94582815655,383.52002471837,392.61532371972,421.84506978464,453.25093845942,486.99493426005,523.2511306012],description:"George Secor's isopelogic scale with ~537.84194 generator and just 13/11"},pelog12:{frequencies:[261.6255653006,284.41230790592,308.04300430555,358.68021049276,385.68672051706,409.31741667997,472.61392441399,523.2511306012],description:"Balinese saih pitu, gamelan Semar Pegulingan, Tampak Gangsai, 1/1=310, McPhee"},pelog13:{frequencies:[261.6255653006,289.80062617913,323.61069924911,351.78575931905,394.45085229937,454.02098012766,494.27106657141,523.2511306012],description:"Balinese saih pitu, gamelan Semar Pegulingan, Klungkung, 1/1=325. McPhee, 1966"},pelog14:{frequencies:[261.6255653006,287.66412867175,309.98289727559,347.18084494866,375.69927149802,402.97776645827,427.77639824032,523.2511306012],description:"Balinese saih pitu, suling gambuh, Tabanan, 1/1=211 Hz, McPhee, 1966"},pelog15:{frequencies:[261.6255653006,284.9387344858,307.6043148279,344.51683351465,375.60105909492,407.98046074103,427.4081017287,523.2511306012],description:"Balinese saih pitu, suling gambuh, Batuan, 1/1=202 Hz. McPhee, 1966"},pelog2:{frequencies:[261.6255653006,285.30470202322,314.92395982138,345.81573716922,388.6137256405,424.52127512829,466.97226207056,523.2511306012],description:"Bamboo gambang from Batu lulan (South Bali). 1/1=315 Hz"},pelog3:{frequencies:[261.6255653006,285.63448939555,315.83481057014,390.18821123181,421.34544350737,523.2511306012],description:"Gamelan Gong from Padangtegal, distr. Ubud (South Bali). 1/1=555 Hz"},pelog4:{frequencies:[261.6255653006,290.96323214696,317.29765457754,352.87817160549,385.03871768789,434.94616895528,470.49199937597,523.2511306012],description:"Hindu-Jav. demung, excavated in Banjarnegara. 1/1=427 Hz"},pelog5:{frequencies:[261.6255653006,284.64626913494,310.94732162256,358.21775774651,390.8649420513,427.47405410759,468.32288027948,523.2511306012],description:"Gamelan Kyahi Munggang (Paku Alaman, Jogja). 1/1=199.5 Hz"},pelog6:{frequencies:[261.6255653006,282.02769802256,315.83481057014,354.51258839996,386.37547528213,413.39000965417,523.2511306012],description:"Gamelan Semar pegulingan, Ubud (S. Bali). 1/1=263.5 Hz"},pelog7:{frequencies:[261.6255653006,281.2143451833,303.31920717687,353.89879686059,384.81637482457,412.43597848639,448.72664641273,523.2511306012],description:"Gamelan Kantjilbelik (kraton Jogja). Measured by Surjodiningrat, 1972."},pelog8:{frequencies:[261.6255653006,281.2143451833,305.0763174688,362.1707891162,386.59871897734,415.30469757995,456.83405152976,529.33101587613,573.91491069685,623.33318620372,730.64478690489,786.25839925218,840.74610520523,945.88853913022,1075.30214607265],description:"from William Malm: Music Cultures of the Pacific, the Near East and Asia."},pelog9:{frequencies:[261.6255653006,282.57123920205,305.19382000629,356.01745236555,384.52011812375,415.30469757995,448.5538823653,523.2511306012],description:"9-tET Pelog"},pelog9i:{frequencies:[261.6255653006,287.76973397991,309.19384990071,332.21296611011,356.94582815655,383.52002471837,421.84506978464,453.25093845942,486.99493426005,523.2511306012],description:"George Secor's isopelogic scale with ~537.84194 generator and just 13/11"},pelog_24:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,440,479.82340237272,523.2511306012],description:"Subset of 24-tET (Sumatra?)"},pelog_a:{frequencies:[261.6255653006,280.7274598329,305.95868600104,363.84824628932,386.82209166041,411.72190027758,452.10885997356,523.2511306012],description:"Pelog, average class A. Kunst 1949"},pelog_alv:{frequencies:[261.6255653006,299.00064605783,313.95067836072,343.38355445704,392.4383479509,418.60090448096,457.84473927605,523.2511306012],description:"Bill Alves JI Pelog, 1/1 vol. 9 no. 4, 1997. 1/1=293.33"},pelog_av:{frequencies:[261.6255653006,280.40333801024,305.78200836532,357.39105439675,385.26118901859,411.72190027758,452.89298412314,523.2511306012],description:'"Normalised Pelog", Kunst, 1949. Average of 39 Javanese gamelans'},pelog_b:{frequencies:[261.6255653006,280.07959041159,302.79405018898,354.30787302884,382.82105786018,408.64182041696,451.58686491179,523.2511306012],description:"Pelog, average class B. Kunst 1949"},pelog_c:{frequencies:[261.6255653006,279.91785681123,304.37225518229,350.84574289301,384.81637482457,410.29745071461,451.58686491179,523.2511306012],description:"Pelog, average class C. Kunst 1949"},pelog_he:{frequencies:[261.6255653006,283.17034563789,338.50336851425,364.68988616898,389.06292924114,420.13030572059,493.31307433255,523.2511306012],description:"Observed Javanese Pelog scale, Helmholtz/Ellis p. 518, nr.96"},pelog_jc:{frequencies:[261.6255653006,294.32876096318,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"John Chalmers' Pelog, on keys C# E F# A B c#, like Olympos' Enharmonic on 4/3"},pelog_laras:{frequencies:[261.6255653006,283.42769574232,305.22982618403,370.63621750918,392.4383479509,414.24047839262,457.84473927605,523.2511306012],description:'Lou Harrison, gamelan "Si Betty"'},pelog_me1:{frequencies:[261.6255653006,281.13654920971,305.96893643544,353.85975480175,389.33427481332,412.3928606827,454.07565526112,523.2511306012],description:"Gamelan Kyahi Kanyut Mesem pelog (Mangku Nagaran). 1/1=295 Hz"},pelog_me2:{frequencies:[261.6255653006,277.86440299076,299.96729002515,349.58586605592,383.41679241104,405.97081699752,447.47001910635,523.2511306012],description:"Gamelan Kyahi Bermara (kraton Jogja). 1/1=290 Hz"},pelog_me3:{frequencies:[261.6255653006,281.75056896146,306.90688773629,358.59164065877,385.12012728597,411.64865826518,457.38747412584,523.2511306012],description:"Gamelan Kyahi Pangasih (kraton Solo). 1/1=286 Hz"},pelog_pa:{frequencies:[261.6255653006,286.29520819723,313.29104303136,342.83241505062,387.04559340587,423.54155496477,463.47885582013,523.2511306012],description:'"Blown fifth" pelog, von Hornbostel, type a.'},pelog_pa2:{frequencies:[261.6255653006,286.29520819723,313.29104303136,353.69443592699,387.04559340587,423.54155496477,463.47885582013,523.2511306012],description:"New mixed gender Pelog"},pelog_pb:{frequencies:[261.6255653006,277.98432293805,304.19649364034,353.69443592699,387.04559340587,411.24653512154,450.02449304881,523.2511306012],description:'"Primitive" Pelog, step of blown semi-fourths, von Hornbostel, type b.'},pelog_pb2:{frequencies:[261.6255653006,277.50302994288,303.66981774726,353.69443592699,387.04559340587,410.5345162762,449.24533531117,523.2511306012],description:'"Primitive" Pelog, Kunst: Music in Java, p. 28'},pelog_schmidt:{frequencies:[261.6255653006,287.78812183066,313.95067836072,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Modern Pelog designed by Dan Schmidt and used by Berkeley Gamelan"},pelog_selun:{frequencies:[261.6255653006,281.10829462369,350.68958753059,378.52209447746,416.55977244877,523.2511306012,562.21664032682,701.37917506118,757.04418895493,833.11970794305,1046.5022612024,1124.43328065364],description:"Gamelan selunding from Kengetan, South Bali (Pelog), 1/1=141 Hz"},pelog_slen:{frequencies:[261.6255653006,289.4545544734,306.66641795878,334.42210013281,344.22141564971,354.30787302884,386.37547528213,397.69714089209,446.39994737251,459.48046426806,493.88330125613,523.2511306012],description:"W.P. Malm, pelog+slendro, Musical Cultures Of The Pacific, The Near East, And Asia. P: 1,3,5,6,8,10; S: 2,4,7,9"},pelog_str:{frequencies:[261.6255653006,282.73796785026,305.22982618403,329.86096249197,356.10146388137,384.83778957396,415.4517078616,448.97742116962,484.69365917187,523.80699136456],description:"JI Pelog with stretched 2/1 and extra tones between 2-3, 6-7. Wolf, XH 11, '87"},pelogic:{frequencies:[261.6255653006,268.93425429917,294.59920226397,322.71340889889,353.51061198674,363.38617257172,398.06486099125,436.0530078362,477.66644151787,523.2511306012],description:"Pelogic temperament, g=521.1, 5-limit"},pelogic2:{frequencies:[261.6255653006,252.56770712848,285.96465797334,276.06414495892,312.56802260838,301.74646235804,341.64630500046,386.82209166041,373.42974737602,422.80824892286,408.17001145418,462.1422075194,523.2511306012],description:"Pelogic temperament, g=677.0 in cycle of fifths order"},penta1:{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,331.11985608357,372.50983809402,376.74081403286,397.34382730029,423.83341578697,441.49314144476,470.92601754108,496.67978412536,523.2511306012],description:"Pentagonal scale 9/8 3/2 16/15 4/3 5/3"},penta2:{frequencies:[261.6255653006,267.07609791103,286.15296204753,305.22982618403,312.97980223949,333.84512238879,356.10146388137,363.36884069528,400.61414686654,436.04260883433,457.84473927605,476.92160341255,523.2511306012],description:"Pentagonal scale 7/4 4/3 15/8 32/21 6/5"},penta_opt:{frequencies:[261.6255653006,292.5084949701,327.03692214239,391.62201198054,436.95817401562,523.2511306012],description:"Optimally consonant major pentatonic, John deLaubenfels, 2001"},pentadekany:{frequencies:[261.6255653006,283.42769574232,299.7792935736,305.22982618403,327.03195662575,354.2846196779,359.73515228832,381.53728273004,389.71308164569,419.69101100305,425.14154361347,436.04260883433,457.84473927605,479.64686971777,495.99846754905,523.2511306012],description:"2)6 1.3.5.7.11.13 Pentadekany (1.3 tonic)"},pentadekany2:{frequencies:[261.6255653006,269.80136421624,294.32876096318,299.7792935736,305.22982618403,327.03195662575,343.38355445704,359.73515228832,381.53728273004,392.4383479509,419.69101100305,436.04260883433,457.84473927605,479.64686971777,490.54793493862,523.2511306012],description:"2)6 1.3.5.7.9.11 Pentadekany (1.3 tonic)"},pentadekany3:{frequencies:[261.6255653006,277.97716313189,278.79474302345,287.78812183066,291.4672313427,300.86940009569,305.77487944508,319.67373760167,359.73515228832,376.08675011961,405.51962621593,413.69542513157,430.86460285443,444.76346101102,506.89953276991,523.2511306012],description:"2)6 1.5.11.17.23.31 Pentadekany (1.5 tonic)"},pentatetra1:{frequencies:[261.6255653006,275.39533189537,290.69507255622,327.03195662575,348.83408706747,392.4383479509,413.09299784305,436.04260883433,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatetra2:{frequencies:[261.6255653006,275.39533189537,307.79478270659,327.03195662575,348.83408706747,392.4383479509,413.09299784305,461.69217405988,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatetra3:{frequencies:[261.6255653006,290.69507255622,307.79478270659,327.03195662575,348.83408706747,392.4383479509,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatriad:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"4:5:6 Pentatriadic scale"},pentatriad1:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,387.59343007496,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"3:5:9 Pentatriadic scale"},pepper:{frequencies:[261.6255653006,274.70684356563,290.69507255622,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,367.91095120397,392.4383479509,406.97310157871,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"Keenan Pepper's 17-tone jazz tuning, TL 07-06-2000"},pepper2:{frequencies:[261.6255653006,281.81099471089,295.05751399041,308.92668738628,332.76158224462,348.40303271111,375.28368107222,392.9238840789,423.23948674937,443.13385158124,463.96335069158,499.75992392917,523.2511306012],description:`Keenan Pepper's "Noble Fifth" with chromatic/diatonic semitone = Phi (12)`},peprmint:{frequencies:[261.6255653006,270.64528749638,281.81099405977,291.52662269553,295.0575145017,305.22982618403,308.92668738628,319.57714845986,332.76158147578,344.23376699744,348.40303331485,360.41446869983,375.28368085545,388.22184514393,392.92388339801,406.47020562703,423.23948723831,437.83096109824,443.13385158124,458.41119713782,463.9633498876,479.95880678291,499.75992479518,516.98949333115,523.2511306012],description:"Peppermint 24: Wilson/Pepper apotome/limma=Phi, 2 chains spaced for pure 7:6"},"perkis-indian":{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.01393146398,369.99442271164,377.90359432309,388.70083987518,400.13321751856,412.18367363396,425.14154361347,438.99882991118,453.48431318771,469.12170329763,485.27322596079,503.87145909745,523.2511306012],description:"Indian 22 Perkis"},"perrett-tt":{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,515.07533168556,523.2511306012],description:"Perrett Tierce-Tone"},perrett:{frequencies:[261.6255653006,274.70684356563,279.06726965397,348.83408706747,392.4383479509,412.06026534844,418.60090448096,523.2511306012],description:"Perrett / Tartini / Pachymeres Enharmonic"},perrett_14:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,412.06026534844,436.04260883433,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Perrett's 14-tone system (subscale of tierce-tone)"},perrett_chrom:{frequencies:[261.6255653006,274.70684356563,294.32876096318,348.83408706747,392.4383479509,412.06026534844,441.49314144476,523.2511306012],description:"Perrett's Chromatic"},perry:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Robin Perry, Tuning List 22-9-'98"},perry2:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,415.27867508032,436.04260883433,457.84473927605,498.33441009638,523.2511306012],description:"Robin Perry, 7-limit scale, TL 22-10-2006"},perry3:{frequencies:[261.6255653006,277.97716313189,294.32876096318,307.79478270659,327.03195662575,348.83408706747,369.35373924791,370.63621750918,392.4383479509,418.60090448096,444.76346101102,465.11211608996,492.47165233054,523.2511306012],description:"Robin Perry, symmetrical 3,5,17 scale, TL 22-10-2006"},"persian-far":{frequencies:[261.6255653006,275.58617649731,282.84340331238,294.51413096332,310.22971009486,318.39923223688,331.53706992441,349.22823143301,362.58942698662,376.46181130035,391.99543598175,412.91271853531,423.78627283082,441.27260666252,464.81937009253,477.05982293263,496.7443381147,523.2511306012],description:"Hormoz Farhat, average of observed Persian tar and sehtar tunings (1966)"},"persian-vaz":{frequencies:[261.6255653006,277.18263097687,285.30470202322,293.66476791741,311.12698372208,320.24370022528,329.62755691287,349.22823143301,359.46139971304,380.8360868427,391.99543598175,415.30469757995,427.47405410759,440,466.16376151809,479.82340237272,493.88330125613,523.2511306012],description:"Vaziri's Persian tuning, using quartertones"},persian:{frequencies:[261.6255653006,275.62199471997,282.55561052465,294.32876096318,310.07474405997,317.87506184023,331.11985608357,348.83408706747,363.36884069528,376.74081403286,392.4383479509,413.43299207996,423.83341578697,441.49314144476,465.11211608996,476.81259276034,496.67978412536,523.2511306012],description:"Persian Tar Scale, from Dariush Anooshfar, Internet Tuning List 2/10/94"},persian2:{frequencies:[261.6255653006,275.62199471997,288.32205155576,294.32876096318,310.07474405997,321.08592105074,331.11985608357,348.83408706747,367.49599295996,384.42940207435,392.4383479509,413.43299207996,428.11456140098,441.49314144476,465.11211608996,489.99465727995,512.57253609913,523.2511306012],description:"Traditional Persian scale, from Mark Rankin"},phi1_13:{frequencies:[261.6255653006,272.27874348295,293.41755524936,305.36527715608,329.07281683115,342.47239171077,356.41758627629,384.088434771,399.72820043646,416.00480451705,448.3020273708,466.55651779723,502.7784067407,523.2511306012],description:"Pythagorean scale with (Phi + 1) / 2 as fifth"},phi_10:{frequencies:[261.6255653006,277.06593756944,293.41755524936,323.38703872151,342.47239171077,362.68389667063,399.72820043646,423.31898451752,448.3020273708,494.09131284284,523.2511306012],description:"Pythagorean scale with Phi as fifth"},phi_12:{frequencies:[261.6255653006,280.653851324,301.06608340242,314.41721066027,337.28508524374,352.24238645938,377.86132347501,405.34355110824,423.31898451752,454.10739278061,474.24531572837,508.73764640933,531.29821178855],description:"Non-Octave Pythagorean scale with Phi as fourth. Jacky Ligon TL 12-04-2001"},phi_13:{frequencies:[261.6255653006,277.06593756944,293.41755524936,305.36527715608,323.38703872151,342.47239171077,362.68389667063,377.45230514615,399.72820043646,423.31898451752,448.3020273708,466.55651779723,494.09131284284,523.2511306012],description:"Pythagorean scale with Phi as fifth"},phi_13a:{frequencies:[261.6255653006,280.653851324,293.09977429907,314.41721066027,328.36040925687,352.24238645938,377.86132347501,394.61802538749,423.31898451752,442.09155952525,474.24531572837,508.73764640933,531.29821178855,569.94005600595],description:"Non-Octave Pythagorean scale with Phi as fifth, Jacky Ligon TL 12-04-2001"},phi_13b:{frequencies:[261.6255653006,277.56939878091,287.90530191745,305.45065986668,316.82478268872,336.13253486432,356.61692887617,369.89633953852,392.4383479509,407.05164722964,431.8579526603,458.17598957099,475.23717379553,504.19880204444],description:"Non-Octave Pythagorean scale with 12 3/2s, Jacky Ligon, TL 12-04-2001"},phi_17:{frequencies:[261.6255653006,276.86436108535,292.99059544936,310.05629713556,328.11582814217,347.22745468775,367.4522682176,388.8548834608,411.50435256812,435.47307590797,460.83762934409,487.67984759381,516.08523529366,546.14543793146,577.9565447239,611.62018657326,647.24497389216,684.94478342154],description:"Phi + 1 equal division by 17, Brouncker (1653)"},phi_7b:{frequencies:[261.6255653006,277.06593756944,299.7954575021,323.38703872151,342.47239171077,369.42210382256,399.72820043646,423.31898451752],description:"Heinz Bohlen's Pythagorean scale with Phi as fifth (1999)"},phi_7be:{frequencies:[261.6255653006,277.18263097687,299.37379946195,323.3415889232,342.56848033562,369.99442271164,399.61607881612,423.37848741825],description:"36-tET approximation of phi_7b"},phi_8:{frequencies:[261.6255653006,280.010356995,292.01318753119,312.53354015396,325.93049860793,348.83408706747,373.34714284662,389.35091690288,416.71138708025],description:"Non-Octave Pythagorean scale with 4/3s, Jacky Ligon, TL 12-04-2001"},phi_8a:{frequencies:[261.6255653006,275.77662731691,284.90271245142,300.31281179658,310.2506767011,327.03195662575,344.72084112096,356.12824371673,375.39107678967],description:"Non-Octave Pythagorean scale with 5/4s, Jacky Ligon, TL 12-04-2001"},phillips_19:{frequencies:[261.6255653006,274.63272075836,286.12988535196,293.66476791741,305.42895910556,326.59518553839,329.62755691287,342.83241505062,349.22823143301,366.5907009274,384.81637482457,391.99543598175,407.69874723177,428.71043212875,440,457.62637091093,489.33987776603,493.88330125613,513.66823365307,523.2511306012],description:"Pauline Phillips, organ manual scale, TL 7-10-2002"},phillips_19a:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,326.62388782443,329.50688232588,342.79852229325,349.26020182051,366.55580177366,381.34192228364,391.95955371998,407.7704102616,427.96347506501,439.87918162894,457.62301915088,489.33808574423,493.65730140218,509.07699553894,523.2511306012],description:"Adaptation by Gene Ward Smith with more consonant chords, TL 25-10-2002"},phillips_22:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.5744765615,306.59245933664,327.03195662575,331.11985608357,343.38355445704,349.22797321314,367.91095120397,392.4383479509,407.76797091773,408.78994578219,416.96574469783,429.2294430713,441.49314144476,457.84473927605,459.88868900496,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:"All-key 19-limit JI scale (2002), TL 21-10-2002"},phillips_ji:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.5744765615,306.59245933664,327.03195662575,331.11985608357,349.22797321314,367.91095120397,386.30649876417,392.4383479509,407.76797091773,408.78994578219,429.2294430713,441.49314144476,457.84473927605,459.88868900496,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:'Pauline Phillips, JI 0 #/b "C" scale (2002), TL 8-10-2002'},phryg_chromcon2:{frequencies:[261.6255653006,283.42769574232,294.32876096318,305.22982618403,392.4383479509,414.24047839262,436.04260883433,523.2511306012],description:"Harmonic Conjunct Chromatic Phrygian"},phryg_chromconi:{frequencies:[261.6255653006,283.42769574232,348.83408706747,370.63621750918,392.4383479509,479.64686971777,501.44900015948,523.2511306012],description:"Inverted Conjunct Chromatic Phrygian"},phryg_chrominv:{frequencies:[261.6255653006,272.52663052146,283.42769574232,348.83408706747,392.4383479509,414.24047839262,436.04260883433,523.2511306012],description:"Inverted Schlesinger's Chromatic Phrygian"},phryg_chromt:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,324.77656382143,336.37572681506,362.25078272391,392.4383479509,409.50088481833,418.60090448096,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,627.90135672144,649.55312764287,672.75145363011,724.50156544782,784.8766959018,819.00176963666,837.20180896192,856.22912280196,941.85203508216,1046.5022612024],description:"Phrygian Chromatic Tonos"},phryg_diat:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,392.4383479509,448.50096908674,483.00104363188,523.2511306012],description:"Schlesinger's Phrygian Harmonia, a subharmonic series through 13 from 24"},phryg_diatcon:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,448.50096908674,483.00104363188,523.2511306012],description:"A Phrygian Diatonic with its own trite synemmenon replacing paramese"},phryg_diatinv:{frequencies:[261.6255653006,283.42769574232,305.22982618403,370.63621750918,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Inverted Conjunct Phrygian Harmonia with 17, the local Trite Synemmenon"},phryg_diatsinv:{frequencies:[261.6255653006,283.42769574232,305.22982618403,348.83408706747,370.63621750918,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Inverted Schlesinger's Phrygian Harmonia, a harmonic series from 12 from 24"},phryg_enh:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,392.4383479509,405.0976494977,418.60090448096,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the enharmonic genus"},phryg_enhcon:{frequencies:[261.6255653006,283.42769574232,288.87822835275,294.32876096318,392.4383479509,403.33941317176,414.24047839262,523.2511306012],description:"Harmonic Conjunct Enharmonic Phrygian"},phryg_enhinv:{frequencies:[261.6255653006,327.03195662575,337.93302184661,348.83408706747,392.4383479509,501.44900015948,512.35006538034,523.2511306012],description:"Inverted Schlesinger's Enharmonic Phrygian Harmonia"},phryg_enhinv2:{frequencies:[261.6255653006,267.07609791103,272.52663052146,348.83408706747,392.4383479509,403.33941317176,414.24047839262,523.2511306012],description:"Inverted harmonic form of Schlesinger's Enharmonic Phrygian"},phryg_penta:{frequencies:[261.6255653006,270.64713651786,285.40970760065,348.83408706747,392.4383479509,413.09299784305,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the pentachromatic genus"},phryg_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,392.4383479509,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,784.8766959018,856.22912280196,941.85203508216,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Phrygian Tonos"},phryg_tri1:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the chromatic genus"},phryg_tri1inv:{frequencies:[261.6255653006,305.22982618403,327.03195662575,348.83408706747,392.4383479509,479.64686971777,501.44900015948,523.2511306012],description:"Inverted Schlesinger's Chromatic Phrygian Harmonia"},phryg_tri2:{frequencies:[261.6255653006,269.10058145205,285.40970760065,348.83408706747,392.4383479509,409.50088481833,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the second trichromatic genus"},phryg_tri3:{frequencies:[261.6255653006,269.10058145205,277.01530443593,348.83408706747,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the first trichromatic genus"},phrygian:{frequencies:[261.6255653006,290.69507255622,313.95067836072,327.03195662575,348.83408706747,353.19451315581,387.59343007496,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,523.2511306012],description:"Old Phrygian ??"},phrygian_diat:{frequencies:[261.6255653006,277.01530443593,294.32876096318,336.37572681506,348.83408706747,362.25078272391,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012,554.03060887186,588.65752192635,672.75145363011,697.66817413493,724.50156544782,753.48162806573,784.8766959018,856.22912280196,897.00193817349,941.85203508216,991.42319482333,1046.5022612024],description:"Phrygian Diatonic Tonos"},phrygian_enh:{frequencies:[261.6255653006,277.01530443593,294.32876096318,303.82323712328,308.80394592858,313.95067836072,348.83408706747,392.4383479509,400.78810003496,405.0976494977,409.50088481833,459.44001711325,523.2511306012],description:"Phrygian Enharmonic Tonos"},phrygian_harm:{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Phrygian Harmonia-Aliquot 24 (flute tuning)"},piano:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"Enhanced Piano Total Gamut, see 1/1 vol. 8/2 January 1994"},piano7:{frequencies:[261.6255653006,275.93321340298,294.32876096318,305.22982618403,327.03195662575,348.83408706747,367.91095120397,392.4383479509,406.97310157871,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Enhanced piano 7-limit"},pipedum_10:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,372.08969287196,396.89567239676,431.14564594215,459.88868900496,490.54793493862,523.2511306012],description:"2048/2025 and 34171875/33554432 are homophonic intervals"},pipedum_10a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,465.11211608996,490.54793493862,523.2511306012],description:"2048/2025 and 25/24, Manuel Op de Coul, 2001"},pipedum_10b:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,367.91095120397,392.4383479509,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"225/224, 64/63 and 25/24 are homophonic intervals"},pipedum_10c:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 64/63 and 49/48 are homophonic intervals"},pipedum_10d:{frequencies:[261.6255653006,279.06726965397,299.00064605783,318.93402246168,343.38355445704,372.08969287196,392.4383479509,425.24536328225,448.50096908674,488.36772189445,523.2511306012],description:"1029/1024, 2048/2025 and 64/63 are homophonic intervals"},pipedum_10e:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,367.91095120397,406.97310157871,429.2294430713,465.11211608996,490.54793493862,523.2511306012],description:"2048/2025, 64/63 and 49/48 are homophonic intervals"},pipedum_10f:{frequencies:[261.6255653006,280.31310567921,294.32876096318,327.03195662575,348.83408706747,373.75080757229,392.4383479509,420.46965851882,465.11211608996,490.54793493862,523.2511306012],description:"225/224, 64/63 and 28/27 are homophonic intervals"},pipedum_10g:{frequencies:[261.6255653006,280.31310567921,299.00064605783,325.57848126297,348.83408706747,372.08969287196,398.6675280771,425.24536328225,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 1029/1024 and 2048/2025 are homophonic intervals"},pipedum_10h:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,373.75080757229,400.61414686654,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 1029/1024 and 64/63 are homophonic intervals"},pipedum_10i:{frequencies:[261.6255653006,279.06726965397,294.32876096318,321.92208230347,343.38355445704,367.91095120397,392.4383479509,418.60090448096,457.84473927605,488.36772189445,523.2511306012],description:"225/224, 2048/2025 and 49/48 are homophonic intervals"},pipedum_10j:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,457.84473927605,488.36772189445,523.2511306012],description:"25/24, 28/27 and 49/48, Gene Ward Smith, 2002"},pipedum_10k:{frequencies:[261.6255653006,280.31310567921,299.00064605783,320.49131749323,343.38355445704,367.91095120397,394.1903048614,420.46965851882,455.80987376816,488.36772189445,523.2511306012],description:"2048/2025, 225/224 and 2401/2400"},pipedum_11:{frequencies:[261.6255653006,272.52663052146,282.55561052465,313.95067836072,327.03195662575,363.36884069528,376.74081403286,392.4383479509,436.04260883433,454.2110508691,470.92601754108,523.2511306012],description:"16/15 and 15625/15552 are homophonic intervals"},pipedum_11a:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,322.92069774245,366.27579142084,376.74081403286,381.53728273004,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"126/125, 1728/1715 and 10/9, Gene Ward Smith, 2002"},pipedum_12:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"81/80 and 2048/2025 are homophonic intervals"},pipedum_12a:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"81/80 and 2048/2025 are homophonic intervals"},pipedum_12b:{frequencies:[261.6255653006,274.70684356563,299.00064605783,313.95067836072,320.49131749323,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,488.36772189445,523.2511306012],description:"64/63, 50/49 comma and 36/35 chroma"},pipedum_12c:{frequencies:[261.6255653006,280.31310567921,294.32876096318,315.35224388912,327.03195662575,348.83408706747,367.91095120397,392.4383479509,420.46965851882,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 64/63 and 36/35 are homophonic intervals"},pipedum_12d:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"50/49, 128/125 and 225/224 are homophonic intervals"},pipedum_12e:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,373.75080757229,392.4383479509,418.60090448096,439.53094970501,467.18850946536,500.55911728431,523.2511306012],description:"50/49, 225/224 and 3136/3125 are homophonic intervals"},pipedum_12f:{frequencies:[261.6255653006,273.74326726486,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,408.78994578219,437.98922762377,468.83301301868,490.54793493862,523.2511306012],description:"128/125, 3136/3125 and 703125/702464 are homophonic intervals"},pipedum_12g:{frequencies:[261.6255653006,279.06726965397,286.15296204753,306.59245933664,327.03195662575,348.83408706747,366.27579142084,390.69417751556,408.78994578219,437.98922762377,457.84473927605,488.36772189445,523.2511306012],description:"50/49, 225/224 and 28672/28125 are homophonic intervals"},pipedum_12h:{frequencies:[261.6255653006,275.93321340298,291.02331101095,310.42486507835,330.74639366397,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.53496651643,465.11211608996,496.11959049595,523.2511306012],description:"2048/2025 and 67108864/66430125, Gene Ward Smith, 2004"},pipedum_12i:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,378.42269266694,392.4383479509,406.97310157871,441.49314144476,465.11211608996,504.56359022259,523.2511306012],description:"64/63 and 6561/6272, Gene Ward Smith, 2004"},pipedum_12j:{frequencies:[261.6255653006,283.8170195002,285.83021674664,310.07474405997,336.37572681506,348.83408706747,378.42269266694,392.4383479509,413.43299207996,448.50096908674,465.11211608996,504.56359022259,523.2511306012],description:"6561/6272 and 59049/57344"},pipedum_12k:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,448.50096908674,457.84473927605,474.80195184183,523.2511306012],description:"64/63 and 729/686, Gene Ward Smith, 2004"},pipedum_12l:{frequencies:[261.6255653006,276.16031892841,294.32876096318,310.68035879446,331.39238271409,348.83408706747,368.21375857121,392.4383479509,414.24047839262,441.49314144476,465.11211608996,497.08857407114,523.2511306012],description:"81/80, 361/360 and 513/512, Gene Ward Smith"},pipedum_13:{frequencies:[261.6255653006,276.76092858245,287.78812183066,309.14739649778,327.03195662575,345.95116072807,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"33275/32768 and 163840/161051 are homophonic intervals. Op de Coul, 2001"},pipedum_13a:{frequencies:[261.6255653006,266.96486255163,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,512.78610798918,523.2511306012],description:"15/14, 3136/3125, 2401/2400, Gene Ward Smith, 2002"},pipedum_13b:{frequencies:[261.6255653006,267.90457886781,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,510.98743222773,523.2511306012],description:"15/14, 3136/3125, 6144/6125, Gene Ward Smith, 2002"},pipedum_13bp:{frequencies:[261.6255653006,282.55561052465,305.16005936662,336.45263027341,363.36884069528,392.4383479509,436.04260883433,470.92601754108,508.60009894437,545.05326104292,605.61473449213,654.0639132515,706.38902631162,784.8766959018],description:"78732/78125 and 250/243, twelfth based, Manuel Op de Coul, 2003"},pipedum_13bp2:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012,565.1112210493,627.90135672144,678.13346525916,726.73768139056,784.8766959018],description:"250/243 and 648/625, twelfth based, Manuel Op de Coul, 2003"},pipedum_13c:{frequencies:[261.6255653006,267.07609791103,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,512.57253609913,523.2511306012],description:"15/14, 2401/2400, 6144/6125, Gene Ward Smith, 2002"},pipedum_13d:{frequencies:[261.6255653006,281.04308772525,287.78812183066,309.14739649778,327.03195662575,334.88072358477,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"125/121 and 33275/32768, Joe Monzo, 2003"},pipedum_13e:{frequencies:[261.6255653006,276.76092858245,287.78812183066,304.4370214407,327.03195662575,334.88072358477,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"33275/32768 and 163840/161051, Manuel Op de Coul, 2004"},pipedum_14:{frequencies:[261.6255653006,274.70684356563,284.76252005507,305.22982618403,320.49131749323,336.37572681506,348.83408706747,373.90653707544,392.4383479509,406.97310157871,427.14378008261,448.50096908674,480.73697623985,498.33441009638,523.2511306012],description:"81/80, 49/48 and 2401/2400, Paul Erlich, TL 17-1-2001"},pipedum_14a:{frequencies:[261.6255653006,274.70684356563,284.8811711051,305.22982618403,320.35783506196,336.37572681506,348.83408706747,366.27579142084,392.4383479509,406.97310157871,427.32175665765,448.50096908674,480.53675259294,498.33441009638,523.2511306012],description:"81/80, 50/49 and 2401/2400, Paul Erlich, 2001"},pipedum_14b:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,313.95067836072,339.14425131559,353.19451315581,366.27579142084,392.4383479509,406.97310157871,418.60090448096,457.84473927605,470.92601754108,508.71637697339,523.2511306012],description:"245/243, 81/80 comma and 25/24 chroma"},pipedum_14c:{frequencies:[261.6255653006,280.31310567921,282.55561052465,305.22982618403,327.03195662575,336.37572681506,363.36884069528,366.27579142084,392.4383479509,403.65087217807,436.04260883433,467.18850946536,470.92601754108,508.71637697339,523.2511306012],description:"245/243, 50/49 comma and 25/24 chroma"},pipedum_15:{frequencies:[261.6255653006,272.52663052146,290.69507255622,301.39265122629,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,454.2110508691,470.92601754108,502.32108537715,523.2511306012],description:"126/125, 128/125 and 875/864, 5-limit, Paul Erlich, 2001"},pipedum_15a:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,381.53728273004,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,502.32108537715,523.2511306012],description:"Septimal version of pipedum_15, Manuel Op de Coul, 2001"},pipedum_15b:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,311.45900631024,327.03195662575,343.38355445704,357.69120255941,382.72082695402,398.6675280771,418.60090448096,439.53094970501,457.84473927605,478.40103369253,498.33441009638,523.2511306012],description:"126/125, 128/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15c:{frequencies:[261.6255653006,274.70684356563,284.76252005507,299.00064605783,313.95067836072,327.03195662575,341.71502406609,358.80077526939,381.53728273004,400.61414686654,418.60090448096,436.04260883433,457.84473927605,480.73697623985,498.33441009638,523.2511306012],description:"49/48, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15d:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,360.55273217989,379.68336007343,398.6675280771,418.60090448096,436.04260883433,457.84473927605,478.40103369253,498.33441009638,523.2511306012],description:"64/63, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15e:{frequencies:[261.6255653006,273.37201925287,286.15296204753,299.00064605783,313.95067836072,332.22294006425,343.38355445704,358.80077526939,381.53728273004,398.6675280771,412.06026534844,436.04260883433,457.84473927605,478.40103369253,500.76768358318,523.2511306012],description:"64/63, 875/864 and 1029/1024, Paul Erlich, 2001"},pipedum_15f:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,387.59343007496,392.4383479509,418.60090448096,436.04260883433,465.11211608996,488.36772189445,490.54793493862,523.2511306012],description:"126/125, 64/63 comma and 28/27 chroma"},pipedum_15g:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"128/125 and 250/243"},pipedum_16:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,355.95315006884,373.75080757229,384.58958099188,400.61414686654,418.60090448096,439.53094970501,457.84473927605,480.73697623985,498.33441009638,523.2511306012],description:"50/49, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_16a:{frequencies:[261.6255653006,272.52663052146,283.88190679319,301.39265122629,313.95067836072,327.03195662575,340.65828815182,354.85238349148,363.36884069528,385.78259356965,401.85686830172,418.60090448096,436.04260883433,454.2110508691,482.22824196207,502.32108537715,523.2511306012],description:"3125/3072 and 1990656/1953125, OdC 2004"},pipedum_17:{frequencies:[261.6255653006,269.10058145205,286.15296204753,294.32876096318,305.22982618403,318.93402246168,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,429.2294430713,448.50096908674,465.11211608996,478.40103369253,508.71637697339,523.2511306012],description:"245/243, 64/63 and 525/512, Paul Erlich, 2001"},pipedum_17a:{frequencies:[261.6255653006,271.31540105247,286.15296204753,296.75121990114,305.22982618403,318.93402246168,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,429.2294430713,448.50096908674,461.31528248922,478.40103369253,504.56359022259,523.2511306012],description:"245/243, 525/512 and 1728/1715, Paul Erlich, 2001"},pipedum_17b:{frequencies:[261.6255653006,264.89588486686,286.15296204753,294.32876096318,305.22982618403,327.03195662575,339.14425131559,343.38355445704,367.91095120397,381.53728273004,392.4383479509,406.97310157871,436.04260883433,441.49314144476,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:"245/243, 64/63 comma and 25/24 chroma"},pipedum_17c:{frequencies:[261.6255653006,273.6806973752,285.83021674664,299.00064605783,310.07474405997,321.55899383997,336.37572681506,348.83408706747,364.90759650026,378.42269266694,392.4383479509,413.43299207996,428.74532511996,448.50096908674,465.11211608996,486.54346200035,504.56359022259,523.2511306012],description:"1605632/1594323 and 177147/175616, Manuel Op de Coul, 2002"},pipedum_17d:{frequencies:[261.6255653006,274.08392555301,284.23518205497,299.00064605783,308.34441624714,319.76457981184,336.37572681506,348.83408706747,365.44523407068,373.05867644715,392.4383479509,411.12588832951,426.35277308246,448.50096908674,465.11211608996,479.64686971777,504.56359022259,523.2511306012],description:"243/242, 99/98 and 64/63, Manuel Op de Coul, 2002"},pipedum_17e:{frequencies:[261.6255653006,271.31540105247,286.15296204753,296.75121990114,310.07474405997,321.92208230347,336.37572681506,348.83408706747,362.16234259141,378.42269266694,395.66829320152,413.43299207996,429.2294430713,445.12682985172,465.11211608996,482.88312345521,504.56359022259,523.2511306012],description:"245/243, 1728/1715 and 32805/32768, Manuel Op de Coul, 2003"},pipedum_17f:{frequencies:[261.6255653006,269.80136421624,285.40970760065,294.32876096318,310.07474405997,319.76457981184,331.11985608357,348.83408706747,359.73515228832,380.54627680087,392.4383479509,413.43299207996,428.11456140098,441.49314144476,465.11211608996,479.64686971777,507.3950357345,523.2511306012],description:"243/242 and 8192/8019, Manuel Op de Coul"},pipedum_17g:{frequencies:[261.6255653006,274.08392555301,285.40970760065,299.00064605783,305.22982618403,319.76457981184,336.37572681506,348.83408706747,359.73515228832,380.54627680087,392.4383479509,406.97310157871,428.11456140098,448.50096908674,457.84473927605,479.64686971777,499.46698830115,523.2511306012],description:"243/242, 896/891 and 99/98, Manuel Op de Coul"},pipedum_18:{frequencies:[261.6255653006,272.52663052146,280.31310567921,296.75121990114,305.22982618403,317.94773560837,327.03195662575,340.65828815182,350.39138209902,379.84156147346,390.69417751556,406.97310157871,418.60090448096,436.04260883433,448.50096908674,474.80195184183,488.36772189445,508.71637697339,523.2511306012],description:"875/864, 686/675 and 128/125, Paul Erlich, 2001"},pipedum_18a:{frequencies:[261.6255653006,269.10058145205,280.31310567921,293.02063313667,305.22982618403,313.95067836072,327.03195662575,341.85740532612,356.10146388137,366.27579142084,384.42940207435,400.44729382745,418.60090448096,436.04260883433,448.50096908674,467.18850946536,488.36772189445,508.71637697339,523.2511306012],description:"875/864, 686/675 and 50/49, Paul Erlich, 2001"},pipedum_18b:{frequencies:[261.6255653006,272.52663052146,280.31310567921,296.75121990114,305.22982618403,317.94773560837,327.03195662575,346.20975655133,356.10146388137,373.75080757229,384.42940207435,400.44729382745,418.60090448096,436.04260883433,448.50096908674,467.18850946536,488.36772189445,508.71637697339,523.2511306012],description:"1728/1715, 875/864 and 686/675, Paul Erlich, 2001"},pipedum_19:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,301.39265122629,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,401.85686830172,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"81/80 and 15625/15552 are homophonic intervals, inverse of Mandelbaum"},pipedum_19a:{frequencies:[261.6255653006,271.25338610366,282.55561052465,294.32876096318,301.39265122629,313.95067836072,327.03195662575,339.06673262958,353.19451315581,361.67118147155,376.74081403286,392.4383479509,408.78994578219,416.64520105522,434.00541776586,452.08897683944,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"3125/3072 and 15625/15552 are homophonic intervals"},pipedum_19b:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"15625/15552 and 78732/78125, Paul Erlich, TL 19-2-2001"},pipedum_19c:{frequencies:[261.6255653006,269.10058145205,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19d:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19e:{frequencies:[261.6255653006,269.10058145205,280.31310567921,287.04062021552,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,476.92160341255,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19f:{frequencies:[261.6255653006,269.10058145205,279.06726965397,287.04062021552,305.22982618403,315.35224388912,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,434.10464168396,448.50096908674,476.92160341255,490.54793493862,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19g:{frequencies:[261.6255653006,269.10058145205,280.31310567921,288.32205155576,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,360.4025644447,379.84156147346,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,474.80195184183,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19h:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,353.19451315581,366.27579142084,381.53728273004,392.4383479509,412.06026534844,415.27867508032,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"126/125, 81/80 comma and 49/48 chroma"},pipedum_19i:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.22982618403,321.92208230347,327.03195662575,343.38355445704,348.83408706747,367.91095120397,381.53728273004,392.4383479509,406.97310157871,429.2294430713,436.04260883433,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"225/224, 81/80 comma and 49/48 chroma"},pipedum_19j:{frequencies:[261.6255653006,266.96486255163,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,333.70607818954,358.95027559242,366.27579142084,373.75080757229,381.37837507376,410.22888639134,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.78610798918,523.2511306012],description:"21/20, 3136/3125 and 2401/2400, Gene Ward Smith, 2002"},pipedum_19k:{frequencies:[261.6255653006,267.90457886781,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,334.88072358477,357.69120255941,366.27579142084,373.75080757229,382.72082695402,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,510.98743222773,523.2511306012],description:"21/20, 3136/3125 and 6144/6125, Gene Ward Smith, 2002"},pipedum_19l:{frequencies:[261.6255653006,267.07609791103,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,333.84512238879,358.80077526939,366.27579142084,373.75080757229,381.53728273004,410.05802887931,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.57253609913,523.2511306012],description:"21/20, 2401/2400 and 6144/6125, Gene Ward Smith, 2002"},pipedum_19m:{frequencies:[261.6255653006,269.10058145205,293.02063313667,299.00064605783,305.22982618403,313.95067836072,317.94773560837,348.83408706747,358.80077526939,366.27579142084,373.75080757229,406.97310157871,418.60090448096,430.56093032327,436.04260883433,448.50096908674,488.36772189445,502.32108537715,508.71637697339,523.2511306012],description:"126/125, 1728/1715 and 16/15, Gene Ward Smith, 2002"},pipedum_19n:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,305.22982618403,313.95067836072,320.49131749323,327.03195662575,333.70607818954,366.27579142084,373.75080757229,381.53728273004,392.4383479509,427.32175665765,436.04260883433,448.50096908674,457.84473927605,467.18850946536,512.78610798918,523.2511306012],description:"126/125, 2401/2400 and 16/15, Gene Ward Smith, 2002"},pipedum_19o:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,502.32108537715,523.2511306012],description:"225/224, 3136/3125 and 4375/4374, OdC 2000"},pipedum_21:{frequencies:[261.6255653006,267.07609791103,280.31310567921,284.8811711051,299.00064605783,305.22982618403,320.35783506196,327.03195662575,341.85740532612,348.83408706747,366.27579142084,373.75080757229,392.4383479509,400.44729382745,418.60090448096,427.32175665765,448.50096908674,457.84473927605,480.53675259294,488.36772189445,512.57253609913,523.2511306012],description:"36/35, 225/224 and 2401/2400, P. Erlich, 2001. Just PB version of miracle1"},pipedum_21a:{frequencies:[261.6255653006,265.7783520514,286.15296204753,290.69507255622,299.00064605783,305.22982618403,327.03195662575,332.22294006425,343.38355445704,348.83408706747,373.75080757229,381.53728273004,392.4383479509,398.6675280771,429.2294430713,436.04260883433,448.50096908674,457.84473927605,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"1029/1024, 81/80 comma and 25/24 chroma"},pipedum_21b:{frequencies:[261.6255653006,267.07609791103,279.06726965397,284.8811711051,299.00064605783,305.22982618403,318.93402246168,325.57848126297,343.38355445704,348.83408706747,366.27579142084,372.08969287196,392.4383479509,398.6675280771,418.60090448096,427.32175665765,448.50096908674,457.84473927605,478.40103369253,488.36772189445,496.11959049595,523.2511306012],description:"36/35, 225/224 and 1029/1024, Gene Ward Smith, 2002"},pipedum_21c:{frequencies:[261.6255653006,269.46602871384,279.06726965397,287.4304306281,297.67175429757,306.59245933664,317.51653791741,327.03195662575,344.91651675372,348.83408706747,367.91095120397,372.08969287196,392.4383479509,396.89567239676,418.60090448096,431.14564594215,446.50763144636,459.88868900496,476.27480687611,490.54793493862,508.02646066786,523.2511306012],description:"First 128/125 and ampersand comma Fokker block"},pipedum_22:{frequencies:[261.6255653006,267.90457886781,279.06726965397,285.76488412567,299.40669857094,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,365.77905168086,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,457.22381460107,479.0507177135,490.54793493862,510.98743222773,523.2511306012],description:"3125/3072 and 2109375/2097152 are homophonic intervals"},pipedum_22a:{frequencies:[261.6255653006,267.90457886781,279.06726965397,287.4304306281,297.67175429757,306.59245933664,317.51653791741,327.03195662575,334.88072358477,348.83408706747,357.20610515709,372.08969287196,381.01984550089,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,476.27480687611,490.54793493862,508.02646066786,523.2511306012],description:"2048/2025 and 2109375/2097152 are homophonic intervals"},pipedum_22b:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,357.69120255941,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:'2025/2048, 245/243 and 64/63. P. Erlich "7-limit Indian", TL 19-12-2000'},pipedum_22b2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,448.50096908674,465.11211608996,478.40103369253,490.54793493862,504.56359022259,523.2511306012],description:"Version of pipedum_22b with other shape, Paul Erlich"},pipedum_22c:{frequencies:[261.6255653006,267.07609791103,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,512.57253609913,523.2511306012],description:"1728/1715, 64/63 and 50/49, Paul Erlich, 2001"},pipedum_22d:{frequencies:[261.6255653006,269.10058145205,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,333.84512238879,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,410.05802887931,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,508.71637697339,523.2511306012],description:"1728/1715, 875/864 and 64/63, Paul Erlich, 2001"},pipedum_22e:{frequencies:[261.6255653006,269.10058145205,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,384.42940207435,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 50/49, Paul Erlich, 2001"},pipedum_22f:{frequencies:[261.6255653006,269.10058145205,276.78916949353,290.69507255622,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,470.92601754108,494.58536650191,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 875/864, Paul Erlich, 2001"},pipedum_22g:{frequencies:[261.6255653006,267.07609791103,279.06726965397,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,478.40103369253,490.54793493862,512.57253609913,523.2511306012],description:"225/224, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_22h:{frequencies:[261.6255653006,269.10058145205,280.31310567921,287.04062021552,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,476.92160341255,488.36772189445,508.71637697339,523.2511306012],description:"225/224, 1728/1715 and 875/864, Paul Erlich, 2001"},pipedum_22i:{frequencies:[261.6255653006,269.10058145205,279.06726965397,288.32205155576,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,474.80195184183,490.54793493862,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 245/243, Paul Erlich, 2001"},pipedum_22j:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,299.00064605783,305.22982618403,320.35783506196,332.22294006425,336.37572681506,348.83408706747,353.19451315581,373.75080757229,387.59343007496,392.4383479509,406.97310157871,427.14378008261,436.04260883433,448.50096908674,465.11211608996,480.53675259294,498.33441009638,504.56359022259,523.2511306012],description:"50/49, 64/63 and 245/243, Gene Ward Smith, 2002"},pipedum_22k:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,359.73515228832,367.91095120397,380.54627680087,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"121/120, 2048/2025 and 4125/4096, Manuel Op de Coul"},pipedum_22l:{frequencies:[261.6255653006,275.62199471997,284.23518205497,290.69507255622,303.18419419197,310.07474405997,319.76457981184,330.74639366397,341.08221846597,348.83408706747,363.82103303037,372.08969287196,387.59343007496,404.24559225596,413.43299207996,426.35277308246,440.99519155196,454.77629128796,465.11211608996,485.09471070715,496.11959049595,511.62332769895,523.2511306012],description:"121/120, 736/729, 100/99 and 2048/2025"},pipedum_23:{frequencies:[261.6255653006,271.25338610366,276.85245005354,287.04062021552,297.60371503945,302.80736724606,313.95067836072,325.50406332439,332.22294006425,344.44874425862,348.83408706747,363.36884069528,376.74081403286,384.51729174103,398.6675280771,413.33849311034,420.56578784176,436.04260883433,452.08897683944,461.42075008924,478.40103369253,496.00619173241,504.67894541011,523.2511306012],description:"6144/6125, 15625/1552 and 5103/5000, Manuel Op de Coul, 2003"},pipedum_24:{frequencies:[261.6255653006,267.57160087561,275.93321340298,285.40970760065,290.69507255622,299.7792935736,310.07474405997,319.76457981184,327.03195662575,338.26335715633,348.83408706747,356.76213450082,367.91095120397,380.54627680087,392.4383479509,401.35740131342,413.43299207996,426.35277308246,436.04260883433,449.66894036041,465.11211608996,479.64686971777,490.54793493862,507.3950357345,523.2511306012],description:"121/120, 16384/16335 and 32805/32768. Manuel Op de Coul, 2001"},pipedum_24a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,321.92208230347,327.03195662575,343.38355445704,348.83408706747,366.27579142084,367.91095120397,381.53728273004,392.4383479509,412.06026534844,418.60090448096,429.2294430713,436.04260883433,457.84473927605,470.92601754108,488.36772189445,490.54793493862,515.07533168556,523.2511306012],description:"49/48, 81/80 and 128/125, Gene Ward Smith, 2002"},pipedum_24b:{frequencies:[261.6255653006,271.31540105247,275.62199471997,289.72987407313,294.32876096318,305.22982618403,310.07474405997,325.94610833227,331.11985608357,343.38355445704,348.83408706747,361.75386806997,372.50983809402,386.30649876417,392.4383479509,406.97310157871,413.43299207996,434.59481110969,441.49314144476,457.84473927605,465.11211608996,482.33849075995,496.67978412536,515.07533168556,523.2511306012],description:"49/48, 81/80 and 531441/524288"},pipedum_25:{frequencies:[261.6255653006,268.26840191956,274.70684356563,281.29980781121,291.99281841585,299.00064605783,306.17666156322,313.95067836072,327.03195662575,335.33550239945,343.38355445704,351.62475976401,364.99102301981,373.75080757229,382.72082695402,392.4383479509,408.78994578219,418.60090448096,429.2294430713,439.53094970501,447.89271634391,467.18850946536,478.40103369253,490.54793493862,502.32108537715,523.2511306012],description:"65625/65536, 1029/1024 and 3125/3072, Manuel Op de Coul, 2003"},pipedum_26:{frequencies:[261.6255653006,267.07609791103,274.70684356563,286.15296204753,292.89859205665,299.00064605783,305.22982618403,313.95067836072,327.03195662575,333.84512238879,341.71502406609,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,400.61414686654,410.05802887931,418.60090448096,436.04260883433,448.50096908674,457.84473927605,467.3831713443,478.40103369253,498.33441009638,512.57253609913,523.2511306012],description:"1029/1024, 1728/1715 and 50/49, Paul Erlich, 2001"},pipedum_26a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,294.32876096318,305.22982618403,306.59245933664,321.92208230347,325.57848126297,327.03195662575,343.38355445704,348.83408706747,366.27579142084,367.91095120397,381.53728273004,392.4383479509,408.78994578219,412.06026534844,429.2294430713,436.04260883433,457.84473927605,459.88868900496,465.11211608996,488.36772189445,490.54793493862,515.07533168556,523.2511306012],description:"50/49, 81/80 and 525/512, Gene Ward Smith, 2002"},pipedum_26b:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,290.69507255622,301.39265122629,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,392.4383479509,401.85686830172,408.78994578219,418.60090448096,436.04260883433,446.50763144636,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"81/80 and 78125/73728, Gene Ward Smith, 2005"},pipedum_27:{frequencies:[261.6255653006,271.20240005245,278.95104005395,284.76252005507,292.89859205665,299.00064605783,307.54352165948,316.40280006119,325.44288006294,332.22294006425,341.71502406609,351.47831046798,358.80077526939,369.05222599138,379.68336007343,390.53145607553,398.6675280771,410.05802887931,418.60090448096,430.56093032327,442.86267118965,455.62003208812,468.63774729064,478.40103369253,492.06963465517,502.32108537715,516.67311638793,523.2511306012],description:"126/125, 1728/1715 and 4000/3969 are homophonic intervals, Paul Erlich"},pipedum_27a:{frequencies:[261.6255653006,269.10058145205,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,508.71637697339,523.2511306012],description:"126/126, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_27b:{frequencies:[261.6255653006,266.96486255163,272.52663052146,280.31310567921,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,333.70607818954,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,410.22888639134,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,467.18850946536,488.36772189445,502.32108537715,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 128/125, Paul Erlich, 2001"},pipedum_27c:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 686/675, Paul Erlich, 2001"},pipedum_27d:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,355.95315006884,366.27579142084,373.75080757229,384.58958099188,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 64/63, Paul Erlich, 2001"},pipedum_27e:{frequencies:[261.6255653006,269.10058145205,274.70684356563,282.55561052465,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.35783506196,329.64821227876,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,415.27867508032,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.4917875937,498.33441009638,508.71637697339,523.2511306012],description:"2401/2400, 126/125 and 245/243, Paul Erlich, 2001"},pipedum_27f:{frequencies:[261.6255653006,267.07609791103,272.52663052146,280.31310567921,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,333.84512238879,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,410.05802887931,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,467.18850946536,488.36772189445,502.32108537715,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 128/125, Paul Erlich, 2001"},pipedum_27g:{frequencies:[261.6255653006,267.07609791103,274.59243005311,280.31310567921,290.81619550312,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.72988009104,488.36772189445,498.54204943392,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 686/675, Paul Erlich, 2001"},pipedum_27h:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_27i:{frequencies:[261.6255653006,269.10058145205,274.70684356563,282.43792805463,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,329.51091606373,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,415.4517078616,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.69365917187,498.33441009638,508.71637697339,523.2511306012],description:"2401/2400, 1728/1715 and 245/243, Paul Erlich, 2001"},pipedum_27j:{frequencies:[261.6255653006,269.16210421872,276.91574508099,282.55561052465,290.69507255622,299.06900468747,305.16005936662,313.95067836072,322.99452506247,329.57286411595,339.06673262958,348.83408706747,358.88280562497,366.19207123994,376.74081403286,387.59343007496,395.48743693914,406.88007915549,418.60090448096,423.83341578697,436.04260883433,448.60350703121,461.52624180165,470.92601754108,484.4917875937,498.44834114579,508.60009894437,523.2511306012],description:"78732/78125 and 390625000/387420489"},pipedum_27k:{frequencies:[261.6255653006,264.89588486686,275.62199471997,279.38237857051,290.69507255622,294.32876096318,298.00787047521,310.07474405997,313.95067836072,331.11985608357,344.52749339997,348.83408706747,353.19451315581,367.49599295996,372.50983809402,387.59343007496,392.4383479509,397.34382730029,413.43299207996,418.60090448096,441.49314144476,447.01180571282,459.36999119996,465.11211608996,470.92601754108,496.67978412536,516.79124009995,523.2511306012],description:"67108864/66430125 and 25/24"},pipedum_28:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,285.76488412567,299.40669857094,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,457.22381460107,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"393216/390625 and 16875/16384"},pipedum_29:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,288.44218574391,294.32876096318,300.33547037059,310.07474405997,316.40280006119,325.57848126297,332.22294006425,341.85740532612,348.83408706747,355.95315006884,366.27579142084,373.75080757229,384.58958099188,392.4383479509,400.44729382745,412.06026534844,420.46965851882,434.10464168396,442.96392008567,455.80987376816,465.11211608996,474.60420009179,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"5120/5103, 225/224 and 50421/50000, Manuel Op de Coul, 2003"},pipedum_29a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,290.69507255622,294.32876096318,305.22982618403,313.95067836072,317.94773560837,327.03195662575,339.14425131559,343.38355445704,348.83408706747,363.36884069528,366.27579142084,372.60080508745,381.53728273004,392.4383479509,408.78994578219,412.06026534844,429.2294430713,436.04260883433,441.49314144476,457.84473927605,470.92601754108,476.92160341255,490.54793493862,508.71637697339,515.07533168556,523.2511306012],description:"49/48, 55/54, 65/64, 91/90 and 100/99"},pipedum_31:{frequencies:[261.6255653006,271.62175694356,275.93321340298,281.68182201554,289.72987407313,294.32876096318,300.46061014991,310.42486507835,316.89204976748,321.92208230347,331.11985608357,338.01818641865,343.38355445704,356.50355598842,362.16234259141,367.91095120397,380.27045972098,386.30649876417,392.4383479509,407.43263541533,413.89982010446,422.52273302331,434.59481110969,441.49314144476,450.69091522486,465.63729761752,475.33807465122,482.88312345521,496.67978412536,507.02727962797,515.07533168556,523.2511306012],description:"81/80, 225/224 and 1029/1024 are homophonic intervals"},pipedum_31a:{frequencies:[261.6255653006,269.46602871384,275.93321340298,282.55561052465,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,321.48549464138,329.20114651277,336.83253589231,344.91651675372,353.19451315581,359.28803828513,367.91095120397,376.74081403286,385.78259356965,392.4383479509,401.85686830172,411.50143314096,421.04066986538,431.14564594215,441.49314144476,452.08897683944,459.88868900496,470.92601754108,482.22824196207,490.54793493862,502.32108537715,514.3767914262,523.2511306012],description:"393216/390625 and 2109375/2097152 are homophonic intervals"},pipedum_31b:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.54352165948,327.03195662575,333.84512238879,339.14425131559,343.38355445704,348.83408706747,356.10146388137,373.75080757229,381.53728273004,387.59343007496,392.4383479509,400.61414686654,406.97310157871,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"245/243, 1029/1024 comma and 25/24 chroma"},pipedum_31c:{frequencies:[261.6255653006,265.7783520514,274.70684356563,279.06726965397,286.15296204753,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,334.88072358477,343.38355445704,348.83408706747,360.55273217989,366.27579142084,373.75080757229,384.58958099188,392.4383479509,398.6675280771,412.06026534844,418.60090448096,429.2294430713,439.53094970501,448.50096908674,457.84473927605,470.92601754108,480.73697623985,490.54793493862,502.32108537715,515.07533168556,523.2511306012],description:"126/125, 225/224 and 1029/1024, Op de Coul"},pipedum_31d:{frequencies:[261.6255653006,269.10058145205,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,316.53463456122,327.03195662575,336.37572681506,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,403.65087217807,406.97310157871,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,478.40103369253,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"1728/1715, 225/224 and 81/80"},pipedum_31e:{frequencies:[261.6255653006,267.07609791103,272.52663052146,276.85245005354,286.15296204753,290.69507255622,299.00064605783,305.22982618403,311.45900631024,317.94773560837,327.03195662575,332.22294006425,343.38355445704,348.83408706747,357.69120255941,363.36884069528,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,415.27867508032,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,476.92160341255,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:'81/80, 126/125 and 1029/1024, Gene Smith (2005) "Synstargam"'},pipedum_32:{frequencies:[261.6255653006,267.07609791103,270.30192333353,280.31310567921,286.15296204753,292.11448209019,299.00064605783,305.22982618403,311.5887808962,315.35224388912,325.57848126297,333.84512238879,337.87740416691,348.83408706747,356.10146388137,360.4025644447,367.91095120397,379.84156147346,384.42940207435,394.1903048614,406.97310157871,415.4517078616,420.46965851882,429.2294430713,443.14848838571,448.50096908674,457.84473927605,474.80195184183,480.53675259294,490.54793493862,500.76768358318,512.57253609913,523.2511306012],description:"225/224, 2048/2025 and 117649/116640"},pipedum_32a:{frequencies:[261.6255653006,268.26840191956,274.59243005311,280.31310567921,286.15296204753,292.89859205665,299.00064605783,305.22982618403,311.5887808962,320.35783506196,327.03195662575,333.84512238879,341.71502406609,348.83408706747,356.10146388137,364.4960256705,372.08969287196,381.53728273004,390.53145607553,398.6675280771,406.97310157871,416.56688648057,425.24536328225,434.10464168396,438.17172313528,450.50320555588,459.88868900496,469.46970335923,480.53675259294,490.54793493862,500.76768358318,512.57253609913,523.2511306012],description:"589824/588245, 225/224 and 2048/2025"},pipedum_34:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,290.69507255622,294.32876096318,301.39265122629,306.59245933664,313.95067836072,321.48549464138,327.03195662575,334.88072358477,340.65828815182,348.83408706747,354.85238349148,363.36884069528,367.91095120397,376.74081403286,385.78259356965,392.4383479509,401.85686830172,408.78994578219,418.60090448096,425.82286018978,436.04260883433,446.50763144636,454.2110508691,465.11211608996,470.92601754108,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"15625/15552 and 393216/390625 are homophonic intervals"},pipedum_34a:{frequencies:[261.6255653006,264.89588486686,272.52663052146,279.06726965397,282.55561052465,290.69507255622,294.32876096318,301.39265122629,306.59245933664,313.95067836072,317.87506184023,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,423.83341578697,436.04260883433,441.49314144476,452.08897683944,465.11211608996,470.92601754108,484.4917875937,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"15625/15552 and 2048/2025, Manuel Op de Coul, 2001"},pipedum_34b:{frequencies:[261.6255653006,267.57160087561,272.52663052146,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.7792935736,310.07474405997,313.95067836072,319.76457981184,327.03195662575,334.88072358477,342.49164912079,348.83408706747,356.76213450082,359.73515228832,367.91095120397,380.54627680087,383.71749577421,392.4383479509,399.70572476481,408.78994578219,418.60090448096,428.11456140098,436.04260883433,441.49314144476,449.66894036041,465.11211608996,470.92601754108,479.64686971777,490.54793493862,502.32108537715,511.62332769895,523.2511306012],description:"100/99, 243/242 and 5632/5625, Manuel Op de Coul"},pipedum_36:{frequencies:[261.6255653006,267.07609791103,269.10058145205,280.31310567921,286.15296204753,290.69507255622,294.32876096318,300.46061014991,305.22982618403,311.5887808962,320.35783506196,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,356.10146388137,367.91095120397,373.75080757229,381.53728273004,384.42940207435,392.4383479509,400.61414686654,406.97310157871,420.46965851882,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,467.3831713443,480.53675259294,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"1029/1024, 245/243 comma and 50/49 chroma, Gene Ward Smith, 2001"},pipedum_36a:{frequencies:[261.6255653006,264.89588486686,275.62199471997,275.93321340298,279.06726965397,290.69507255622,293.99679436797,294.32876096318,310.07474405997,310.42486507835,313.95067836072,327.03195662575,330.74639366397,331.11985608357,348.83408706747,349.22797321314,353.19451315581,367.91095120397,372.08969287196,372.50983809402,387.59343007496,392.4383479509,397.34382730029,413.43299207996,413.89982010446,418.60090448096,436.04260883433,440.99519155196,441.49314144476,465.11211608996,465.63729761752,470.92601754108,490.54793493862,496.11959049595,496.67978412536,516.79124009995,523.2511306012],description:"1125/1024 and 531441/524288, Op de Coul"},pipedum_37:{frequencies:[261.6255653006,263.718569823,276.85245005354,279.06726965397,280.31310567921,290.69507255622,293.02063313667,299.00064605783,308.98710943476,311.45900631024,313.95067836072,325.57848126297,332.22294006425,333.70607818954,346.06556256693,348.83408706747,351.62475976401,353.19451315581,370.78453132171,373.75080757229,376.74081403286,390.69417751556,392.4383479509,400.44729382745,415.27867508032,418.60090448096,421.94971171681,436.04260883433,444.94143758605,448.50096908674,465.11211608996,467.18850946536,470.92601754108,494.37937509562,498.33441009638,502.32108537715,519.0983438504,523.2511306012],description:"250/243, 3136/3125 and 3125/3087, Gene Ward Smith, 2002"},pipedum_38:{frequencies:[261.6255653006,271.25338610366,272.52663052146,280.3771918945,282.55561052465,290.69507255622,292.95365699196,301.39265122629,302.80736724606,313.95067836072,315.42434088132,325.50406332439,327.03195662575,336.45263027341,339.06673262958,348.83408706747,350.47148986813,361.67118147155,363.36884069528,376.74081403286,378.50920905758,390.60487598927,392.4383479509,403.74315632809,406.88007915549,418.60090448096,420.56578784176,434.00541776586,436.04260883433,452.08897683944,454.2110508691,467.29531982417,470.92601754108,484.4917875937,488.25609498659,502.32108537715,504.67894541011,519.21702202686,523.2511306012],description:"81/80 and 1224440064/1220703125, Manuel Op de Coul, 2001"},pipedum_38a:{frequencies:[261.6255653006,268.26840191956,272.52663052146,274.70684356563,279.06726965397,286.15296204753,293.02063313667,294.32876096318,305.22982618403,306.59245933664,313.95067836072,321.92208230347,327.03195662575,329.64821227876,340.65828815182,343.38355445704,348.83408706747,357.69120255941,366.27579142084,367.91095120397,381.53728273004,383.2405741708,390.69417751556,392.4383479509,408.78994578219,412.06026534844,418.60090448096,429.2294430713,436.04260883433,439.53094970501,457.84473927605,459.88868900496,470.92601754108,476.92160341255,488.36772189445,490.54793493862,510.98743222773,515.07533168556,523.2511306012],description:"50/49, 81/80 and 3125/3072, Gene Ward Smith, 2002"},pipedum_41:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.70684356563,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,303.67253115248,308.34441624714,313.95067836072,320.49131749323,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,354.2846196779,359.73515228832,366.27579142084,373.75080757229,381.53728273004,387.40708707973,392.4383479509,400.61414686654,406.97310157871,412.06026534844,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,495.99846754905,503.62921320365,513.90736041189,523.2511306012],description:"100/99 105/104 196/195 275/273 385/384, Paul Erlich, TL 3-11-2000"},pipedum_41a:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.70684356563,280.31310567921,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,400.61414686654,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,495.99846754905,503.62921320365,513.90736041189,523.2511306012],description:"pipedum_41 improved shape by Manuel Op de Coul, all intervals superparticular"},pipedum_41b:{frequencies:[261.6255653006,265.7783520514,271.31540105247,274.70684356563,279.06726965397,284.8811711051,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,498.33441009638,504.56359022259,515.07533168556,523.2511306012],description:"pipedum_41 more improved shape by M. OdC, all intervals superparticular"},pipedum_41c:{frequencies:[261.6255653006,267.07609791103,271.31540105247,275.93321340298,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,315.35224388912,320.35783506196,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,356.10146388137,360.4025644447,367.91095120397,373.75080757229,381.53728273004,384.42940207435,392.4383479509,398.6675280771,406.97310157871,410.05802887931,420.46965851882,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,474.80195184183,480.53675259294,490.54793493862,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"225/224, 245/243 and 1029/1024, Gene Ward Smith, 2002"},pipedum_41d:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,282.55561052465,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,317.51653791741,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,423.83341578697,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.11959049595,502.32108537715,517.37477513058,523.2511306012],description:"3125/3072 and 32805/32768"},pipedum_43:{frequencies:[261.6255653006,269.10058145205,273.37201925287,274.70684356563,282.55561052465,286.15296204753,287.04062021552,290.69507255622,299.00064605783,305.22982618403,307.54352165948,313.95067836072,322.92069774245,327.03195662575,328.04642310345,332.22294006425,341.71502406609,343.38355445704,348.83408706747,358.80077526939,366.27579142084,369.05222599138,376.74081403286,379.68336007343,381.53728273004,392.4383479509,398.6675280771,410.05802887931,412.06026534844,418.60090448096,423.93031414449,430.56093032327,436.04260883433,448.50096908674,455.62003208812,457.84473927605,470.92601754108,478.40103369253,492.06963465517,494.47231841813,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 126/125 and 12288/12005, Gene Ward Smith, 2002"},pipedum_45:{frequencies:[261.6255653006,265.7783520514,267.07609791103,274.70684356563,279.06726965397,280.31310567921,284.8811711051,293.02063313667,294.32876096318,299.00064605783,303.74668805875,305.22982618403,313.95067836072,320.49131749323,325.57848126297,327.03195662575,336.37572681506,341.85740532612,343.38355445704,348.83408706747,356.10146388137,358.80077526939,366.27579142084,372.08969287196,373.75080757229,384.58958099188,392.4383479509,398.6675280771,400.61414686654,406.97310157871,418.60090448096,420.46965851882,427.32175665765,436.04260883433,439.53094970501,448.50096908674,455.80987376816,457.84473927605,465.11211608996,478.40103369253,480.73697623985,488.36772189445,498.33441009638,512.78610798918,515.07533168556,523.2511306012],description:"81/80, 525/512 and 2401/2400, Gene Ward Smith, 2002"},scala205pipedum_45a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,276.85245005354,282.55561052465,288.32205155576,290.69507255622,296.75121990114,299.00064605783,305.22982618403,311.45900631024,313.95067836072,320.49131749323,322.99452506247,329.64821227876,336.37572681506,339.14425131559,345.98646186692,348.83408706747,356.10146388137,363.28578496026,366.27579142084,373.75080757229,376.82694590621,384.42940207435,392.4383479509,395.66829320152,403.65087217807,406.97310157871,415.27867508032,423.83341578697,427.14378008261,436.04260883433,439.53094970501,448.50096908674,457.84473927605,461.31528248922,470.92601754108,474.80195184183,484.4917875937,494.47231841813,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 2401/2400 and 4375/4374, Gene Ward Smith"},pipedum_46:{frequencies:[261.6255653006,265.7783520514,270.41454913492,274.70684356563,279.06726965397,280.31310567921,286.15296204753,290.69507255622,295.30928005711,300.46061014991,305.22982618403,310.07474405997,313.95067836072,320.49131749323,325.57848126297,327.03195662575,332.22294006425,339.14425131559,343.38355445704,348.83408706747,354.37113606854,360.55273217989,366.27579142084,372.08969287196,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,427.32175665765,429.2294430713,436.04260883433,442.96392008567,450.69091522486,457.84473927605,465.11211608996,470.92601754108,480.73697623985,488.36772189445,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"126/125, 1029/1024 and 5120/5103. Manuel Op de Coul, 2001"},pipedum_46a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,279.06726965397,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.54352165948,313.95067836072,320.35783506196,320.49131749323,327.03195662575,332.22294006425,336.37572681506,343.38355445704,348.83408706747,353.19451315581,358.80077526939,366.12324007081,366.27579142084,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,427.14378008261,427.32175665765,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,470.92601754108,478.40103369253,488.36772189445,490.54793493862,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"126/125, 1029/1024 and 245/243, Gene Ward Smith, 2002"},pipedum_46b:{frequencies:[261.6255653006,264.89588486686,271.25338610366,272.52663052146,279.06726965397,282.55561052465,283.88190679319,290.69507255622,294.32876096318,301.39265122629,302.80736724606,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,334.88072358477,339.06673262958,340.65828815182,348.83408706747,353.19451315581,361.67118147155,363.36884069528,372.08969287196,376.74081403286,381.45007420827,387.59343007496,392.4383479509,401.85686830172,403.74315632809,408.78994578219,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,452.08897683944,454.2110508691,465.11211608996,470.92601754108,482.22824196207,484.4917875937,490.54793493862,502.32108537715,508.60009894437,516.79124009995,523.2511306012],description:"2048/2025 and 78732/78125"},pipedum_46c:{frequencies:[261.6255653006,266.47048317654,271.31540105247,274.08392555301,279.06726965397,282.62020942966,287.78812183066,290.69507255622,297.67175429757,299.7792935736,306.97399661937,310.07474405997,313.95067836072,319.76457981184,325.57848126297,328.90071066361,332.22294006425,339.14425131559,342.60490694126,348.83408706747,355.29397756872,359.73515228832,363.36884069528,372.08969287196,374.72411696701,383.71749577421,387.59343007496,394.68085279633,399.70572476481,406.97310157871,411.12588832951,418.60090448096,426.35277308246,431.68218274599,436.04260883433,446.50763144636,449.66894036041,460.46099492906,465.11211608996,467.18850946536,479.64686971777,484.4917875937,496.11959049595,499.63215595601,511.62332769895,516.79124009995,523.2511306012],description:"126/125, 176/175, 385/384 and 896/891, Paul Erlich"},pipedum_46d:{frequencies:[261.6255653006,267.23182741418,272.79915715198,274.70684356563,278.36648688978,283.42769574232,287.78812183066,291.52562990638,297.59908052943,299.7792935736,303.67253115248,311.77046531655,313.95067836072,320.67819289702,324.7609013714,327.03195662575,334.03978426773,340.11323489078,343.04051394309,345.34574619679,354.2846196779,359.73515228832,366.27579142084,374.12455837986,376.74081403286,381.53728273004,389.71308164569,392.4383479509,402.90337056292,408.13588186894,411.12588832951,419.69101100305,425.14154361347,431.68218274599,439.53094970501,445.38637902364,448.50096908674,457.84473927605,467.65569797482,470.92601754108,479.64686971777,485.87604984397,490.54793493862,503.62921320365,510.16985233617,519.61744219425,523.2511306012],description:"91/90, 121/120, 126/125, 169/168 and 176/175"},pipedum_5:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"16/15 and 27/25"},pipedum_50:{frequencies:[261.6255653006,267.07609791103,269.10058145205,273.37201925287,274.70684356563,276.85245005354,284.76252005507,286.15296204753,290.69507255622,299.00064605783,300.46061014991,305.22982618403,307.54352165948,313.95067836072,316.40280006119,320.49131749323,327.03195662575,332.22294006425,333.84512238879,341.71502406609,343.38355445704,348.83408706747,358.80077526939,360.55273217989,361.60320006994,366.27579142084,373.75080757229,379.68336007343,381.53728273004,392.4383479509,398.6675280771,400.61414686654,410.05802887931,412.06026534844,418.60090448096,423.93031414449,427.14378008261,436.04260883433,445.12682985172,448.50096908674,455.62003208812,457.84473927605,470.92601754108,478.40103369253,480.73697623985,484.4917875937,498.33441009638,500.76768358318,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 126/125 and 16807/16384, Gene Ward Smith, 2002"},pipedum_53:{frequencies:[261.6255653006,264.89588486686,269.16210421872,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,298.00787047521,302.80736724606,306.59245933664,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,403.74315632809,408.78994578219,413.89982010446,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.81259276034,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"15625/15552 and 32805/32768, Manuel Op de Coul, 2001"},pipedum_53a:{frequencies:[261.6255653006,266.96486255163,269.10058145205,272.52663052146,276.85245005354,280.31310567921,282.55561052465,288.32205155576,290.69507255622,294.32876096318,299.00064605783,302.80736724606,305.22982618403,311.45900631024,313.95067836072,320.35783506196,322.99452506247,327.03195662575,332.22294006425,336.37572681506,339.14425131559,346.06556256693,348.83408706747,353.19451315581,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,387.59343007496,392.4383479509,398.6675280771,403.65087217807,406.97310157871,415.27867508032,418.60090448096,423.83341578697,430.56093032327,436.04260883433,441.49314144476,448.50096908674,454.2110508691,457.84473927605,467.18850946536,470.92601754108,480.53675259294,484.4917875937,490.54793493862,498.33441009638,504.56359022259,508.71637697339,519.0983438504,523.2511306012],description:"225/224, 1728/1715 and 4375/4374, Manuel Op de Coul, 2001"},pipedum_53b:{frequencies:[261.6255653006,266.96486255163,269.10058145205,272.52663052146,274.70684356563,280.31310567921,286.03378130532,288.32205155576,290.69507255622,293.02063313667,299.00064605783,301.39265122629,305.22982618403,311.45900631024,313.95067836072,320.35783506196,322.92069774245,327.03195662575,333.70607818954,336.37572681506,341.85740532612,343.24053756638,348.83408706747,351.62475976401,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,389.3237578878,392.4383479509,400.44729382745,403.65087217807,406.97310157871,410.22888639134,418.60090448096,427.14378008261,430.56093032327,436.04260883433,439.53094970501,448.50096908674,457.65405008851,457.84473927605,467.18850946536,470.92601754108,478.60036745656,480.53675259294,488.36772189445,498.33441009638,502.32108537715,512.57253609913,512.78610798918,523.2511306012],description:"225/224, 1728/1715 and 3125/3087, Gene Ward Smith, 2002"},pipedum_55:{frequencies:[261.6255653006,267.07609791103,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,286.15296204753,293.02063313667,294.32876096318,296.75121990114,299.00064605783,305.22982618403,306.59245933664,313.95067836072,317.94773560837,320.49131749323,325.57848126297,327.03195662575,333.84512238879,336.37572681506,340.65828815182,343.38355445704,348.83408706747,356.10146388137,358.80077526939,366.27579142084,367.91095120397,373.75080757229,376.74081403286,381.53728273004,390.69417751556,392.4383479509,400.61414686654,403.65087217807,406.97310157871,408.78994578219,418.60090448096,427.32175665765,429.2294430713,436.04260883433,439.53094970501,445.12682985172,448.50096908674,457.84473927605,459.88868900496,470.92601754108,474.80195184183,476.92160341255,488.36772189445,490.54793493862,502.32108537715,504.56359022259,508.71637697339,520.92557002075,523.2511306012],description:"81/80, 686/675 and 6144/6125, Gene Ward Smith, 2002"},pipedum_58:{frequencies:[261.6255653006,264.29521392612,268.60224704195,271.31540105247,275.62199471997,277.50997462242,280.31310567921,284.8811711051,287.78812183066,292.35618725654,295.30928005711,297.33211566688,302.17752792219,305.22982618403,310.07474405997,313.23877206058,315.35224388912,320.49131749323,323.76163705949,328.90071066361,332.22294006425,337.63694353197,339.94971891247,343.38355445704,348.83408706747,352.39361856816,358.13632938927,361.75386806997,364.23184169193,370.01329949656,373.75080757229,379.84156147346,383.71749577421,389.80824967539,392.4383479509,396.44282088917,402.90337056292,406.97310157871,413.43299207996,417.65169608078,420.46965851882,427.32175665765,431.68218274599,438.53428088482,442.96392008567,445.99817350032,453.26629188329,457.84473927605,465.11211608996,469.85815809087,477.51510585235,480.73697623985,485.64245558924,493.35106599542,498.33441009638,506.45541529795,511.62332769895,515.07533168556,523.2511306012],description:"9801/9800, 2401/2400, 5120/5103 and 896/891"},pipedum_58a:{frequencies:[261.6255653006,265.65057399753,267.66008354786,270.48058443385,272.52663052146,277.4816601673,281.75060878526,285.40970760065,287.78812183066,293.02063313667,295.1673044417,297.30177875068,301.87565226992,305.22982618403,309.92566966379,313.95067836072,316.2506833304,322.00069575458,323.72860352852,327.03195662575,332.97799220076,338.10073054231,342.60490694126,344.24801655217,348.83408706747,352.18826098158,358.59168390851,362.25078272391,366.27579142084,368.95913055213,375.66747838035,379.50081999647,381.53728273004,388.47432423422,392.4383479509,399.57359064092,402.50086969323,406.97310157871,411.12588832951,418.60090448096,422.62591317789,428.25613367658,430.31002069022,436.04260883433,442.75095666255,450.80097405642,455.40098399577,457.84473927605,466.16918908107,469.58434797544,475.68284600109,483.00104363188,488.36772189445,495.88107146206,499.46698830115,503.12608711654,512.27383415502,516.54278277298,523.2511306012],description:"126/125, 144/143, 176/175, 196/195 and 364/363"},pipedum_5a:{frequencies:[261.6255653006,290.69507255622,348.83408706747,392.4383479509,470.92601754108,523.2511306012],description:"27/25 and 81/80"},pipedum_64:{frequencies:[261.6255653006,267.90457886781,266.96486255163,273.37201925287,274.70684356563,273.74326726486,280.31310567921,280.42990280658,284.76252005507,286.15296204753,294.32876096318,300.05312833195,299.00064605783,300.46061014991,307.67166479351,306.59245933664,313.95067836072,312.84944830269,320.35783506196,320.49131749323,328.18310911307,327.03195662575,336.37572681506,336.5158833679,341.71502406609,343.38355445704,351.62475976401,348.83408706747,358.80077526939,358.95027559242,366.12324007081,366.27579142084,375.06641041494,373.75080757229,382.72082695402,384.58958099188,383.2405741708,392.4383479509,392.60186392921,398.6675280771,400.61414686654,412.06026534844,408.78994578219,418.60090448096,428.6473261885,427.14378008261,429.2294430713,439.53094970501,437.98922762377,448.50096908674,448.68784449053,455.62003208812,457.84473927605,468.83301301868,467.18850946536,478.40103369253,480.73697623985,488.16432009441,490.54793493862,502.32108537715,500.55911728431,512.57253609913,512.78610798918,520.70860810071,523.2511306012],description:"225/224 235298/234375 and 67108864/66706983"},pipedum_65:{frequencies:[261.6255653006,264.59711493117,267.38234771992,270.72462706642,273.0589090967,275.93321340298,279.06726965397,282.00481986086,285.20783756792,287.99181818792,291.26283636981,294.32876096318,297.67175429757,300.80514118491,303.39878788522,306.84479880935,310.42486507835,313.95067836072,317.25542234346,320.85881726391,323.62537374423,327.30111872997,331.11985608357,334.60532825287,338.40578383303,341.32363637087,345.20039866051,348.83408706747,352.79615324157,356.9123501364,360.9661694219,364.07854546226,367.91095120397,372.08969287196,376.00642648114,380.70650681216,383.98909091723,388.35044849308,392.4383479509,396.89567239676,401.07352157989,404.53171718029,409.58836364504,413.89982010446,418.60090448096,423.00722979129,427.81175635188,431.50049832564,436.89425455471,441.49314144476,446.50763144636,451.20771177737,455.09818182783,460.26719821402,465.11211608996,470.92601754108,475.8831335152,481.28822589586,485.43806061635,490.95167809495,496.11959049595,501.90799237931,507.60867574954,511.9854545563,517.80059799077,523.2511306012],description:"1216/1215, 32805/32768 and 39858075/39845888. Manuel Op de Coul, 2001"},pipedum_65a:{frequencies:[261.6255653006,264.89588486686,267.90457886781,269.16210421872,272.52663052146,275.93321340298,279.06726965397,282.55561052465,286.08755565621,287.10624449997,290.69507255622,294.32876096318,298.00787047521,301.39265122629,302.80736724606,306.59245933664,310.07474405997,313.95067836072,317.87506184023,319.0069383333,322.99452506247,327.03195662575,331.11985608357,334.88072358477,339.06673262958,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.60944457026,358.88280562497,363.36884069528,367.91095120397,372.08969287196,376.74081403286,381.45007420827,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,403.74315632809,408.78994578219,413.43299207996,418.60090448096,423.83341578697,429.13133348431,430.65936674996,436.04260883433,441.49314144476,446.50763144636,452.08897683944,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.81259276034,478.51040749995,484.4917875937,490.54793493862,496.67978412536,502.32108537715,508.60009894437,510.98743222773,516.79124009995,523.2511306012],description:"78732/78125 and 32805/32768"},pipedum_67:{frequencies:[261.6255653006,262.79353657426,266.96486255163,267.07609791103,272.52663052146,274.70684356563,279.06726965397,280.31310567921,284.8811711051,286.15296204753,293.02063313667,294.32876096318,299.00064605783,299.12522966035,300.33547037059,305.22982618403,306.59245933664,311.45900631024,313.95067836072,320.35783506196,320.49131749323,325.57848126297,327.03195662575,332.22294006425,336.5158833679,339.00300006557,341.85740532612,343.38355445704,348.83408706747,350.39138209902,355.95315006884,360.55273217989,366.27579142084,367.91095120397,373.75080757229,373.90653707544,381.53728273004,384.58958099188,390.69417751556,392.4383479509,398.83363954714,400.44729382745,400.61414686654,406.97310157871,408.78994578219,418.60090448096,420.46965851882,427.32175665765,429.2294430713,436.04260883433,439.53094970501,448.50096908674,448.68784449053,455.80987376816,457.84473927605,459.88868900496,465.11211608996,467.18850946536,474.60420009179,480.73697623985,488.36772189445,490.54793493862,498.33441009638,504.77382505185,512.78610798918,515.07533168556,520.92557002075,523.2511306012],description:"81/80, 1029/1024 and 9604/9375, Gene Ward Smith, 2002"},pipedum_68:{frequencies:[246.94165062806,250.86135936819,252.08626834948,253.99712636029,258.02882677871,259.28873315946,263.4044273366,264.58033995864,268.89201957278,272.13977824317,273.16014686758,276.57464870343,277.80935695657,282.21902928921,286.81815421096,288.0985923994,291.6998248044,292.67158592955,296.32998075367,301.03363124183,302.50352201937,307.30516522603,308.67706328508,311.01688942076,316.08531280392,317.49640795036,322.53603347338,324.11091644933,329.25553417075,333.37122834788,334.48181249092,338.66283514705,340.17472280396,345.71831087928,351.20590311546,352.77378661151,357.18345894416,358.5226927637,362.85303765756,368.76619827124,370.41247594209,376.29203905228,378.12940252422,384.13145653254,387.04324016806,388.93309973919,395.1066410049,396.87050993795,403.33802935916,409.74022030137,411.56941771343,414.86197305514,416.71403543485,423.32854393382,430.22723131644,432.1478885991,439.00737889433,441.15096961159,444.49497113051,451.55044686274,453.56629707195,460.95774783905,468.27453748728,470.36504881535,474.12796920588,476.24461192554,483.80405021008,491.68826436165,493.88330125612],description:"245/243, 2048/2025 and 2401/2400, Gene Ward Smith, 2002"},pipedum_7:{frequencies:[261.6255653006,290.69507255622,317.94773560837,347.75533582165,392.4383479509,429.2294430713,476.92160341255,523.2511306012],description:"81/80, 64/63 and 6144/6125, Manuel Op de Coul"},pipedum_72:{frequencies:[195.99771799087,198.44768946576,200.08100378235,201.59765279061,204.16428957382,205.79760389041,208.41771227328,209.06423252359,211.67753543014,214.37250405251,216.08748408493,217.77524221208,220.49743273973,222.31222642483,223.99739198957,226.79735938944,228.66400432268,231.52230437672,232.29359169288,235.19726158904,238.19167116946,240.09720453882,241.91718334873,244.99714748859,246.9571246685,250.10125472793,251.99706598826,254.07111591409,257.24700486302,258.04499557198,261.33029065449,264.59691928767,266.7746717098,268.79687038748,272.2190527651,274.39680518722,277.89028303104,279.99673998696,282.23671390685,285.83000540335,289.40288047089,290.3669896161,293.99657698631,296.41630189977,300.12150567352,302.39647918591,304.88533909691,308.69640583562,311.1074888744,313.59634878539,317.58889489261,321.55875607877,322.55624446497,326.66286331812,329.27616622466,333.46833963724,335.99608798435,338.76148788545,342.99600648402,347.28345656507,348.44038753932,352.79589238357,357.28750675419,360.14580680822,362.95873702013,365.86240691629,370.43568700274,373.32898664928,376.31561854247,381.10667387114,385.87050729453,387.1559861548,391.99543598174],description:"225/224, 1029/1024 and 4375/4374, Gene Ward Smith, 2002"},pipedum_72a:{frequencies:[195.99771799087,197.5656997348,200.08100378235,201.59765279061,203.21043401293,205.79760389041,207.44398472154,209.99755499022,211.67753543014,213.41973736784,216.04686727389,217.77524221208,219.51744414977,222.31222642483,223.99739198957,226.84921063758,228.66400432268,230.49331635726,233.3306166558,235.19726158904,237.07883968176,240.09720453882,241.91718334873,244.99714748859,246.9571246685,248.93278166584,251.99706598826,254.07111591409,256.1036848414,259.25624072866,261.33029065449,264.65741241051,266.7746717098,268.79687038748,272.2190527651,274.39680518722,276.59197962872,279.99673998696,282.23671390685,285.83000540335,288.11664544658,290.30062001848,293.99657698631,296.3485496022,298.59492344758,302.46561418344,304.88533909691,308.7669811456,311.1074888744,313.59634878539,317.58889489261,320.12960605175,322.55624446497,326.66286331812,329.27616622466,333.46833963724,335.99608798435,338.68405668822,342.99600648402,345.73997453589,348.36074402217,352.79589238357,355.69956227973,360.07811212314,362.95873702013,365.86240691629,370.52037737472,373.32898664928,376.31561854247,381.10667387114,384.15552726211,388.884361093,391.99543598174],description:"4375/4374, 2401/2400 and 15625/15552, Manuel Op de Coul, 2002"},pipedum_72b:{frequencies:[195.99771799087,197.5656997348,200.51849868858,202.12264667808,204.16428957382,205.79760389041,207.94510975112,209.60867062912,211.67753543014,213.41973736784,215.59748978996,218.74745311481,220.49743273973,222.7983318762,224.58071853121,226.79735938944,228.66400432268,230.99731048924,232.89852292125,235.19726158904,238.19167116946,240.62219842629,242.5471760137,244.99714748859,246.9571246685,249.53413170134,251.53040475495,254.07111591409,256.1036848414,259.87197430039,262.49694373777,264.59691928767,267.35799825143,269.49686223745,272.2190527651,274.39680518722,277.19677258709,279.4782275055,283.49669923679,285.83000540335,288.74663811155,291.12315365156,293.99657698631,296.3485496022,299.44095804161,301.83648570594,304.88533909691,309.37139797666,311.91766462667,314.99633248533,317.51630314521,320.82959790172,323.39623468494,326.66286331812,329.27616622466,332.71217560179,336.87107779681,340.19603908415,342.99600648402,346.49596573386,349.34778438187,352.79589238357,355.69956227973,359.32914964993,362.08404605941,367.49572123288,371.24567757199,374.30119755201,377.99559898239,381.10667387114,384.99551748207,388.16420486875,391.99543598174],description:"225/224, 3025/3024, 1375/1372 and 4375/4374"},pipedum_72b2:{frequencies:[195.99771799087,198.44768946576,200.45221158157,202.12264667808,204.16428957382,205.79760389041,207.87636756607,209.06423252359,211.67753543014,213.81569235368,215.59748978996,217.77524221208,220.49743273973,222.72467953508,223.99739198957,226.79735938944,228.66400432268,230.99731048924,233.3306166558,235.19726158904,237.57299150408,239.55276643329,241.97249134675,244.99714748859,246.39713118852,249.45164107929,251.99706598826,254.07111591409,257.24700486302,258.71698774795,261.33029065449,264.59691928767,267.2696154421,269.49686223745,272.2190527651,274.39680518722,277.19677258709,279.99673998696,282.23671390685,285.0875898049,287.46331971994,290.3669896161,293.99657698631,296.96623938011,298.66318931942,302.39647918591,304.88533909691,307.99641398565,311.81455134911,313.59634878539,317.51630314521,320.72353853051,323.39623468494,326.66286331812,329.27616622466,332.60218810572,335.99608798435,338.76148788545,342.99600648402,344.95598366393,348.44038753932,352.79589238357,356.35948725613,359.32914964993,362.95873702013,367.49572123288,369.59569678278,374.17746161893,376.31561854247,380.11678640654,383.28442629326,387.1559861548,391.99543598174],description:"Optimised version of pipedum_72b, Manuel Op de Coul"},pipedum_72c:{frequencies:[195.99771799087,197.5656997348,199.99767141926,201.59765279061,203.25689273127,205.79760389041,207.40499258293,209.99755499022,211.67753543014,213.41973736784,215.9974851328,217.77524221208,219.51744414977,222.31222642483,223.99739198957,226.79735938944,228.66400432268,230.49331635726,233.3306166558,235.19726158904,237.13304151982,239.99720570311,241.91718334873,244.99714748859,246.9571246685,248.88599109952,251.99706598826,254.07111591409,256.1036848414,259.19698215935,261.33029065449,264.59691928767,266.7746717098,268.79687038748,272.2190527651,274.39680518722,276.47678096998,279.99673998696,282.23671390685,285.83000540335,287.99664684373,290.3669896161,293.99657698631,296.41630189977,298.66318931942,302.39647918591,304.88533909691,308.69640583562,311.1074888744,313.59634878539,317.58889489261,320.12960605175,322.55624446497,326.66286331812,329.27616622466,333.32945236543,335.99608798435,338.76148788545,342.99600648402,345.59597621247,348.44038753932,352.79589238357,355.69956227973,359.99580855466,362.95873702013,365.86240691629,370.43568700274,373.32898664928,376.31561854247,381.10667387114,384.15552726211,388.884361093,391.99543598174],description:"441/440, 2401/2400, 4375/4374 and 1375/1372"},pipedum_74:{frequencies:[174.6141157165,175.4667237034,177.38576834692,178.25190979393,182.45393315683,183.34482150233,186.25505676427,187.16450528362,187.6669026756,191.57662981467,192.51206257744,194.01568412944,194.96302633711,195.48635695375,199.55898939029,200.53339851817,202.72659239648,203.71646833592,208.51878075067,209.5369388598,210.56006844408,212.8629220163,213.90229175271,216.62558481901,218.9447197882,220.01378580279,221.73221043365,222.81488724241,228.06741644604,229.18102687791,231.68753416741,232.81882095533,233.95563160453,239.47078726834,240.6400782218,243.27191087578,244.4597620031,249.5526737115,250.2225369008,251.44432663176,253.4082404956,254.6455854199,259.95070178281,260.64847593833,261.92117357475,266.07865252038,267.37786469089,273.68089973525,275.01723225349,278.02504100089,279.3825851464,280.74675792544,285.20305567028,287.36494472201,291.02352619417,291.92629305093,292.44453950566,297.08651632321,299.33848408543,304.08988859472,305.57470250388,310.42509460711,311.94084213937,312.778171126,319.29438302446,320.85343762907,325.94634933747,328.4170796823,333.63004920107,334.22233086361,335.25910217568,339.52744722653,342.10112466906,347.53130125111,349.228231433],description:"81/80, 126/125 and 4194304/4117715, Gene Ward Smith, 2002"},pipedum_81:{frequencies:[116.54094037952,117.10998793997,118.96887663743,119.87068153322,121.77339076391,122.3679873985,122.96548733697,124.86529326377,124.9173204693,126.84728204574,127.4666535401,128.08904930934,130.12220882219,130.47149010419,131.10855792696,133.18964614802,133.83998621711,135.96443044277,136.62831926329,136.99506460939,139.16958944446,139.84912845542,140.53198552796,142.70319230145,142.76265196491,144.96832233798,145.6761754744,146.38748492496,148.71109579678,149.83835191653,152.21673845488,152.95998424812,153.70685917121,155.38792050603,156.14665058662,156.56578812502,159.82757537763,160.60798346053,163.08936263023,163.15731653133,163.95398311595,166.48705768503,167.29998277138,169.12970939431,169.95553805347,170.78539907912,173.96198680558,174.81141056928,175.66498190995,177.58619486403,178.45331495614,182.66008614586,183.55198109774,184.08675852442,184.44823100545,186.46550460723,187.37598070395,190.2709230686,191.19998031015,193.29109645065,194.23490063253,195.18331323328,199.78446922203,200.75997932566,202.95565127318,203.94664566416,204.94247889494,208.7543841667,209.77369268314,210.79797829194,213.10343383684,214.14397794737,217.45248350698,218.5142632116,218.60531082127,221.98274358004,223.06664369518,227.71386543882,228.32510768232,229.43997637218,231.94931574077,233.08188075904],description:"81/80, 126/125 and 17294403/16777216, Gene Ward Smith, 2002"},pipedum_87:{frequencies:[82.40688922822,83.34286871081,83.43697534357,84.3846545697,84.87648045204,85.84050961273,86.81548824043,86.91351598289,87.90068184343,87.99993493267,88.99944036648,90.43280025045,90.53491248218,91.56321025358,92.60318745646,92.70775038175,93.76072729966,93.86659726152,95.37834401414,96.46165360048,96.57057331432,97.66742427048,97.77770548075,98.88826707386,100.01144245297,100.59434720242,101.73690028175,101.85177654245,103.00861153527,104.17858588852,104.29621917947,105.48081821212,105.59992191921,107.30063701591,108.51936030054,108.64189497861,109.87585230429,111.12382494775,111.2493004581,112.5128727596,113.16864060272,114.45401281697,115.75398432057,115.88468797718,117.20090912458,117.3332465769,118.66592048864,120.5770670006,120.7132166429,122.0842803381,122.22213185094,123.61033384233,125.01430306622,125.15546301536,127.17112535219,128.61553813397,128.76076441909,130.22323236064,130.37027397433,131.85102276515,133.3485899373,133.49916054972,135.64920037567,135.80236872326,137.34481538037,138.90478118469,139.06162557262,140.6410909495,140.79989589228,143.06751602122,144.69248040072,144.85585997148,146.50113640572,146.66655822112,148.3324006108,150.01716367946,150.89152080363,152.60535042263,154.33864576076,154.51291730291,156.26787883277,156.4443287692,158.22122731818,160.76942266746,160.95095552387,162.7790404508,162.96284246792,164.81377845644],description:"67108864/66430125 and 15625/15552, Op de Coul"},pipedum_9:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,392.4383479509,420.46965851882,448.50096908674,490.54793493862,523.2511306012],description:"225/224, 49/48 and 36/35 are homophonic intervals"},pipedum_99:{frequencies:[41.20344461411,41.53307217102,41.72802550619,42.06184971024,42.3806858888,42.72949811834,42.92025480636,43.26361684482,43.60972577957,43.95034092172,44.14654780083,44.49972018324,44.86597302425,45.06626754668,45.407877738,45.78160512679,46.1478579678,46.35387519087,46.73538856693,47.08965098755,47.46636819545,47.68917200707,48.07068538313,48.45525086619,48.65129757643,49.0517197787,49.44413353693,49.83968660523,50.07363060743,50.47421965228,50.85682306656,51.275397742,51.50430576764,51.91634021378,52.34363519496,52.55541404861,52.975857361,53.41187264792,53.8391676291,54.07952105602,54.50191086522,54.93792615215,55.37742956136,55.62465022905,56.08246628032,56.50758118507,56.7598471725,57.22700640849,57.68482245975,58.14630103943,58.41923570866,58.86206373444,59.33296024432,59.82129736567,60.08835672891,60.56906358274,61.04214016905,61.31464972338,61.80516692116,62.29960825653,62.81236223395,63.06649685833,63.5710288332,64.0942471775,64.60700115492,64.89542526722,65.40229303827,65.92551138258,66.21982170125,66.7648408099,67.29895953638,67.80909742208,68.12738858153,68.67240769018,69.2217869517,69.77556124732,70.1030828504,70.63447648133,71.19955229318,71.53375801061,72.10602807469,72.68287629929,73.25056820286,73.57757966805,74.1662003054,74.77662170709,75.37483468075,75.67979623,76.30267521131,76.91309661301,77.25645865146,77.87451032067,78.48275164592,79.11061365909,79.4637860415,80.11780897188,80.75875144366,81.37091690649,81.75286629784,82.40688922822],description:"2401/2400, 3136/3125 and 4375/4374, Gene Ward Smith, 2002"},pipedum_9a:{frequencies:[261.6255653006,282.62020942966,305.22982618403,329.72357766794,356.10146388137,384.67750727926,415.4517078616,448.79042515914,484.69365917187,523.2511306012],description:"4375/4374, 2401/2400 and 21/20 are homophonic intervals"},pipedum_9b:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,357.20610515709,383.2405741708,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"128/125 and 2109375/2097152 are homophonic intervals"},pipedum_9c:{frequencies:[261.6255653006,285.40970760065,305.22982618403,332.97799220076,348.83408706747,392.4383479509,411.12588832951,448.50096908674,479.64686971777,523.2511306012],description:"49/48, 21/20, 99/98 and 121/120, Gene Ward Smith, 2002"},pipedum_9d:{frequencies:[261.6255653006,277.4816601673,308.34441624714,327.03195662575,346.85207520913,394.68085279633,418.60090448096,443.97065626768,493.35106599542,523.2511306012],description:"128/125, 36/35, 99/98 and 121/120, Gene Ward Smith, 2002"},pipedum_9e:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"21/20, 27/25 and 128/125"},polansky_ps:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,4447.6346101102,327.03195662575,654.0639132515,981.09586987725,1308.127826503,1635.15978312875,1962.1917397545,2289.22369638025,2616.255653006,2943.28760963175,3270.3195662575,3597.35152288325,3924.383479509,4251.41543613475,4578.4473927605,4905.47934938625,5232.511306012,5559.54326263775,392.4383479509,784.8766959018,1177.3150438527,1569.7533918036,1962.1917397545,2354.6300877054,2747.0684356563,3139.5067836072,3531.9451315581,3924.383479509,4316.8218274599,4709.2601754108,5101.6985233617,5494.1368713126,5886.5752192635,6279.0135672144,6671.4519151653],description:"Three interlocking harmonic series on 1:5:3 by Larry Polansky in Psaltery"},poole:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Poole's double diatonic or dichordal scale"},porcupine:{frequencies:[261.6255653006,268.5059110196,275.56719913678,277.81869773502,285.12489766782,287.45448663717,295.01409284105,302.77250493809,305.24628043356,313.27378316024,315.83336022842,324.13928669805,332.66364612382,335.38164643474,344.20166244741,347.01393314922,356.13986022226,365.50578499276,368.49211923405,378.18288921726,381.27279846892,391.29968045081,401.5902538439,404.87141319969,415.51890206933,418.91386427268,429.93064777916,441.23715556831,444.84224659643,456.54090625717,460.27103529174,472.37544811397,484.79818817936,488.75918813348,501.6127950959,505.71118020326,519.01059820838,523.2511306012],description:"porcupine temperament, g=162.996, 5-limit"},portbag1:{frequencies:[261.6255653006,281.75060878526,311.64221749042,334.88072358477,376.74081403286,413.43299207996,457.84473927605,523.2511306012],description:"Portugese bagpipe tuning"},portbag2:{frequencies:[261.6255653006,274.70684356563,281.75060878526,310.07474405997,317.68818643644,343.38355445704,372.08969287196,392.4383479509,408.78994578219,482.37213602298,523.2511306012],description:"Portugese bagpipe tuning 2"},prelleur:{frequencies:[261.6255653006,276.42153822591,293.20376052703,310.91918875105,328.72923110101,349.43408698743,368.89538496172,391.53834819612,414.55891854195,438.90564190541,466.17878415199,492.19384741628,523.2511306012],description:"Peter Prelleur's well temperament (1731)"},preston:{frequencies:[261.6255653006,276.24946721727,293.45376109391,311.26733605541,328.91048112005,349.30075403587,368.79929095641,391.73834630677,413.67420227347,439.48064068428,466.20100528964,492.6657196346,523.2511306012],description:"Preston's equal beating temperament (1785)"},preston2:{frequencies:[261.6255653006,276.2302000593,293.37610901672,311.58628319174,328.97985807656,349.39999567988,368.9044325484,391.80273191286,413.67420227347,439.35140993827,466.62242981045,492.67053466508,523.2511306012],description:"Preston's theoretically correct well temperament"},prime_10:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,474.19633710734,523.2511306012],description:"First 10 prime numbers reduced by 2/1"},prime_5:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,523.2511306012],description:'What Lou Harrison calls "the Prime Pentatonic", a widely used scale'},primes6:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1308.127826503,1831.3789571042,2877.8812183066,3401.1323489078],description:"First 6 primes"},prinz:{frequencies:[261.6255653006,275.62199471997,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.49599295996,391.22147055517,413.43299207996,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Prinz well-tempermament (1808)"},prinz2:{frequencies:[261.6255653006,275.62199471997,291.81313052759,310.07474405997,327.03195662575,348.83408706747,367.49599295996,390.42584360243,413.43299207996,436.71344361716,465.11211608996,490.54793493862,523.2511306012],description:"Prinz equal beating temperament (1808)"},"prod13-2":{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,359.73515228832,371.99885066179,392.4383479509,400.61414686654,408.78994578219,425.14154361347,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"13-limit binary products [1 3 5 7 11 13]"},prod13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,331.11985608357,343.38355445704,345.42750418595,359.73515228832,367.91095120397,371.99885066179,392.4383479509,400.61414686654,404.70204632437,408.78994578219,425.14154361347,441.49314144476,449.66894036041,457.84473927605,478.28423656516,490.54793493862,494.63583439645,515.07533168556,523.2511306012],description:"13-limit binary products [1 3 5 7 9 11 13]"},prod7d:{frequencies:[261.6255653006,265.7783520514,267.90457886781,273.37201925287,279.06726965397,286.15296204753,294.32876096318,299.00064605783,300.46061014991,306.59245933664,310.07474405997,318.93402246168,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,350.53737850823,357.69120255941,367.91095120397,372.08969287196,382.72082695402,390.53145607553,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,429.2294430713,441.49314144476,446.50763144636,455.62003208812,457.84473927605,465.11211608996,478.40103369253,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Double Cubic Corner 7-limit. Chalmers '96"},prod7s:{frequencies:[261.6255653006,286.15296204753,294.32876096318,300.46061014991,306.59245933664,327.03195662575,343.38355445704,350.53737850823,357.69120255941,367.91095120397,392.4383479509,400.61414686654,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Single Cubic Corner 7-limit"},prodq13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,276.76092858245,279.06726965397,286.15296204753,292.28481123426,294.32876096318,299.00064605783,304.4370214407,314.76825825228,318.85615771011,322.00069575458,327.03195662575,334.88072358477,341.71502406609,343.38355445704,345.42750418595,348.83408706747,359.73515228832,368.0007951481,371.99885066179,380.54627680087,392.4383479509,396.30854862103,400.61414686654,408.78994578219,418.60090448096,425.14154361347,429.33426100611,434.91003062957,449.66894036041,457.84473927605,465.11211608996,468.3646483703,478.40103369253,490.54793493862,494.63583439645,507.3950357345,515.20111320734,523.2511306012],description:"13-limit Binary products and quotients. Chalmers '96"},prog_ennea:{frequencies:[261.6255653006,269.29177952703,285.30470202322,311.12698372208,349.22823143301,391.99543598175,403.48177901006,427.47405410759,466.16376151809,523.2511306012],description:"Progressive Enneatonic, 50+100+150+200 cents in each half (500 cents)"},prog_ennea1:{frequencies:[261.6255653006,269.10058145205,285.40970760065,310.68035879446,348.83408706747,392.4383479509,404.33041910093,428.11456140098,465.11211608996,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+150+200 cents in each half (500 cents)"},prog_ennea2:{frequencies:[261.6255653006,269.55361273395,285.40970760065,321.08592105074,348.83408706747,392.4383479509,404.33041910093,428.11456140098,481.6288815761,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+200+150 cents in each half (500 cents)"},prog_ennea3:{frequencies:[261.6255653006,269.55361273395,285.40970760065,310.07474405997,348.83408706747,392.4383479509,404.33041910093,428.11456140098,465.11211608996,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+150+200 cents in each half (500 cents)"},prooijen1:{frequencies:[261.6255653006,339.14425131559,366.27579142084,436.04260883433,470.92601754108,610.45965236807,726.73768139056,784.8766959018],description:"Kees van Prooijen, major mode of Bohlen-Pierce"},prooijen2:{frequencies:[261.6255653006,311.45900631024,336.37572681506,436.04260883433,470.92601754108,560.62621135843,726.73768139056,784.8766959018],description:"Kees van Prooijen, minor mode of Bohlen-Pierce"},"ps-dorian":{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,490.54793493862,504.56359022259,523.2511306012],description:"Complex 4 of p. 115 based on Archytas's Enharmonic"},"ps-enh":{frequencies:[261.6255653006,266.38239376061,279.06726965397,348.83408706747,392.4383479509,399.57359064092,418.60090448096,523.2511306012],description:"Dorian mode of an Enharmonic genus found in Ptolemy's Harmonics"},"ps-hypod":{frequencies:[261.6255653006,294.32876096318,367.91095120397,378.42269266694,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Complex 7 of p. 115 based on Archytas's Enharmonic"},"ps-hypod2":{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,392.4383479509,490.54793493862,504.56359022259,523.2511306012],description:"Complex 8 of p. 115 based on Archytas's Enharmonic"},"ps-mixol":{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"Complex 3 of p. 115 based on Archytas's Enharmonic"},ptolemy:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Intense Diatonic Syntonon, also Zarlino's scale"},ptolemy_chrom:{frequencies:[261.6255653006,271.31540105247,290.69507255622,348.83408706747,392.4383479509,406.97310157871,436.04260883433,523.2511306012],description:"Ptolemy Soft Chromatic"},ptolemy_ddiat:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Lyra tuning, Dorian mode, comb. of diatonon toniaion & diatonon ditoniaion"},ptolemy_diat:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Ptolemy's Diatonon Ditoniaion & Archytas' Diatonic, also Lyra tuning"},ptolemy_diat2:{frequencies:[261.6255653006,271.31540105247,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Dorian mode of a permutation of Ptolemy's Tonic Diatonic"},ptolemy_diat3:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,441.49314144476,470.92601754108,523.2511306012],description:"Dorian mode of the remaining permutation of Ptolemy's Intense Diatonic"},ptolemy_diat4:{frequencies:[261.6255653006,299.00064605783,310.07474405997,348.83408706747,392.4383479509,448.50096908674,465.11211608996,523.2511306012],description:"permuted Ptolemy's diatonic"},ptolemy_diat5:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Sterea lyra, Dorian, comb. of 2 Tonic Diatonic 4chords, also Archytas' diatonic"},ptolemy_diff:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,392.4383479509,425.14154361347,490.54793493862,523.2511306012],description:"Difference tones of Intense Diatonic reduced by 2/1"},ptolemy_enh:{frequencies:[261.6255653006,267.43946675172,279.06726965397,348.83408706747,392.4383479509,401.15920012759,418.60090448096,523.2511306012],description:"Dorian mode of Ptolemy's Enharmonic"},ptolemy_exp:{frequencies:[261.6255653006,272.52663052146,275.93321340298,287.4304306281,290.69507255622,294.32876096318,306.59245933664,327.03195662575,340.65828815182,344.91651675372,348.83408706747,363.36884069528,367.91095120397,383.2405741708,392.4383479509,408.78994578219,413.89982010446,431.14564594215,436.04260883433,441.49314144476,459.88868900496,490.54793493862,510.98743222773,517.37477513058,523.2511306012],description:"Intense Diatonic expanded: all interval combinations"},ptolemy_hom:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Dorian mode of Ptolemy's Equable Diatonic or Diatonon Homalon"},ptolemy_iast:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Ptolemy's Iastia or Lydia tuning, mixture of Tonic Diatonic & Intense Diatonic"},ptolemy_iastaiol:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,441.49314144476,465.11211608996,523.2511306012],description:"Ptolemy's kithara tuning, mixture of Tonic Diatonic and Ditone Diatonic"},ptolemy_ichrom:{frequencies:[261.6255653006,274.08392555301,299.00064605783,348.83408706747,392.4383479509,411.12588832951,448.50096908674,523.2511306012],description:"Dorian mode of Ptolemy's Intense Chromatic"},ptolemy_idiat:{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Dorian mode of Ptolemy's Intense Diatonic (Diatonon Syntonon)"},ptolemy_imix:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Ptolemy Intense Diatonic mixed with its inverse"},ptolemy_malak:{frequencies:[261.6255653006,274.08392555301,299.00064605783,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Ptolemy's Malaka lyra tuning, a mixture of Intense Chrom. & Tonic Diatonic"},ptolemy_malak2:{frequencies:[261.6255653006,271.31540105247,290.69507255622,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Malaka lyra, mixture of his Soft Chromatic and Tonic Diatonic."},ptolemy_mdiat:{frequencies:[261.6255653006,274.70684356563,305.22982618403,348.83408706747,392.4383479509,412.06026534844,457.84473927605,523.2511306012],description:"Ptolemy soft diatonic"},ptolemy_mdiat2:{frequencies:[261.6255653006,290.69507255622,305.22982618403,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"permuted Ptolemy soft diatonic"},ptolemy_mdiat3:{frequencies:[261.6255653006,299.00064605783,313.95067836072,348.83408706747,392.4383479509,448.50096908674,470.92601754108,523.2511306012],description:"permuted Ptolemy soft diatonic"},ptolemy_meta:{frequencies:[261.6255653006,274.70684356563,305.22982618403,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Metabolika lyra tuning, mixture of Soft Diatonic & Tonic Diatonic"},ptolemy_mix:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,348.83408706747,353.19451315581,367.91095120397,372.08969287196,387.59343007496,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"All modes of Ptolemy Intense Diatonic mixed"},ptolemy_prod:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,331.11985608357,348.83408706747,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,484.4917875937,490.54793493862,523.2511306012],description:"Product of Intense Diatonic with its intervals"},ptolemy_tree:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Intense Diatonic with all their Farey parent fractions"},pygmie:{frequencies:[261.6255653006,299.00064605783,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:"Pygmie scale"},pyle:{frequencies:[261.6255653006,277.19063644077,293.6461094938,311.15753660095,329.66944764997,349.23831768549,369.99228554622,391.93430587921,415.28070933274,439.96441988338,466.23108306565,493.99742571239,523.2511306012],description:"Howard Willet Pyle quasi equal temperament"},pyramid:{frequencies:[261.6255653006,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:'This scale may also be called the "Wedding Cake"'},pyramid_down:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,348.83408706747,392.4383479509,418.60090448096,441.49314144476,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"Upside-Down Wedding Cake (divorce cake)"},pyth_12:{frequencies:[261.6255653006,279.38237857051,294.32876096318,310.07474405997,331.11985608357,348.83408706747,372.50983809402,392.4383479509,419.07356785577,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"12-tone Pythagorean scale"},pyth_12s:{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,326.6631048533,348.83408706747,367.49599295996,392.4383479509,419.07356785577,435.55080647107,471.45776383774,489.99465727995,523.2511306012],description:"Scale with major thirds flat by a schisma"},pyth_17:{frequencies:[261.6255653006,275.62199471997,279.38237857051,294.32876096318,310.07474405997,314.30517589183,331.11985608357,348.83408706747,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,441.49314144476,465.11211608996,471.45776383774,496.67978412536,523.2511306012],description:"17-tone Pythagorean scale"},pyth_17s:{frequencies:[261.6255653006,275.62199471997,279.06726965397,294.32876096318,310.07474405997,313.95067836072,331.11985608357,348.83408706747,367.49599295996,372.08969287196,392.4383479509,413.43299207996,418.60090448096,441.49314144476,465.11211608996,470.92601754108,496.67978412536,523.2511306012],description:"Schismatically altered 17-tone Pythagorean scale"},pyth_22:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,465.11211608996,471.45776383774,489.99465727995,496.67978412536,523.2511306012],description:"Pythagorean shrutis"},pyth_27:{frequencies:[261.6255653006,265.19499215873,275.62199471997,279.38237857051,290.36720431405,294.32876096318,298.34436617857,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,387.15627241873,392.4383479509,397.79248823809,413.43299207996,419.07356785577,435.55080647107,441.49314144476,447.51654926786,465.11211608996,471.45776383774,489.99465727995,496.67978412536,523.2511306012],description:"27-tone Pythagorean scale"},pyth_31:{frequencies:[261.6255653006,265.19499215873,275.62199471997,279.38237857051,283.19406633357,294.32876096318,298.34436617857,310.07474405997,314.30517589183,318.59332496145,326.6631048533,331.11985608357,335.63741195089,348.83408706747,353.59332287831,367.49599295996,372.50983809402,377.59208844475,392.4383479509,397.79248823809,413.43299207996,419.07356785577,424.79110016094,441.49314144476,447.51654926786,465.11211608996,471.45776383774,477.8899872033,489.99465727995,496.67978412536,503.45611792634,523.2511306012],description:"31-tone Pythagorean scale"},pyth_7a:{frequencies:[261.6255653006,277.97716313189,294.32876096318,312.72430852337,331.11985608357,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,469.08646278506,496.67978412536,523.2511306012],description:"Pythagorean 7-tone with whole tones divided arithmetically"},pyth_7h:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,467.46332623563,496.67978412536,523.2511306012],description:"Pythagorean 7-tone with whole tones divided harmonically"},pyth_chrom:{frequencies:[261.6255653006,275.62199471997,294.32876096318,348.83408706747,392.4383479509,413.43299207996,441.49314144476,465.11211608996,523.2511306012],description:"Dorian mode of the so-called Pythagorean chromatic, recorded by Gaudentius"},pyth_sev:{frequencies:[261.6255653006,268.38018042036,275.30918532257,282.41708286353,291.47537246454,299.00064605783,306.7202061947,314.63906894008,322.76237975718,333.11471138804,341.71502406609,350.53737850823,359.58750736009,368.87129039875,380.70252730062,390.53145607553,400.61414686654,410.95715126868,421.56719060242,435.08860262928,446.32166408632,457.84473927605,469.66531573563,481.7910743145,497.2441172906,510.08190181294,523.2511306012],description:"26-tone Pythagorean scale based on 7/4"},pyth_sev_16:{frequencies:[261.6255653006,268.38018042036,275.30918532257,282.41708286353,306.7202061947,314.63906894008,322.76237975718,350.53737850823,359.58750736009,368.87129039875,400.61414686654,410.95715126868,421.56719060242,457.84473927605,469.66531573563,481.7910743145,523.2511306012],description:'16-tone Pythagorean scale based on 7/4, "Armodue"'},pyth_third:{frequencies:[261.6255653006,267.90457886781,274.33428876064,280.9183116909,287.66035117148,290.46272611903,297.43383186155,304.57224382623,311.88197767806,319.36714514233,327.03195662575,334.88072358477,342.9178609508,351.14788961362,359.57543896435,363.07840893547,371.79228894479,380.71530478279,389.85247209758,399.20893142792,408.78994578219,418.60090448096,428.6473261885,438.93486201703,449.46929870544,453.84801015616,464.74036282794,475.89413097849,487.31559012197,499.0111642849,510.98743222773,523.2511306012],description:"Cycle of 5/4 thirds"}};o.prototype._tune=function(i,n=220){const e=new t;if(!e.isValidScale(i))throw new Error('not a valid tune.js scale name: "'+i+'". See http://abbernie.github.io/tune/scales.html');return e.loadScale(i),e.tonicize(n),this._asNumber()._withHap(r=>r.withValue(()=>e.note(r.value)).setContext(a(c({},r.context),{type:"frequency"})))};o.prototype.define("tune",(i,n)=>n.tune(i),{composable:!0,patternified:!0}); +var h=Object.defineProperty,q=Object.defineProperties;var g=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertySymbols;var y=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable;var m=(i,n,e)=>n in i?h(i,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[n]=e,c=(i,n)=>{for(var e in n||(n={}))y.call(n,e)&&m(i,e,n[e]);if(p)for(var e of p(n))b.call(n,e)&&m(i,e,n[e]);return i},a=(i,n)=>q(i,g(n));import{P as o,w as _}from"./index.91bb3680.js";function S(i){if(!/^[1-9]+[0-9]*edo$/.test(i))throw new Error('not an edo scale: "'+i+'"');const[n,e]=i.match(/^([1-9]+[0-9]*)edo$/);return Array.from({length:e},(r,s)=>Math.pow(2,s/e))}const f={"12ji":[1/1,16/15,9/8,6/5,5/4,4/3,45/32,3/2,8/5,5/3,16/9,15/8]};function v(i,n){return n.map(e=>e*i)}const w=220;function k(i,n){if(typeof i=="string")if(/^[1-9]+[0-9]*edo$/.test(i))i=S(i);else if(f[i])i=f[i];else throw new Error('unknown scale name: "'+i+'"');return i=v(w,i),n?i.filter((e,r)=>n.includes(r)):i}function l(i,n,e=0){const r=_(e+n,i.length),s=Math.floor(n/i.length);return i[r]*Math.pow(2,s)}o.prototype._xen=function(i,n){return this._asNumber()._withHap(e=>{const r=k(i);n=n||r.length;const s=l(r,e.value);return e.withValue(()=>s).setContext(a(c({},e.context),{type:"frequency"}))})};o.prototype.tuning=function(i){return this._asNumber()._withHap(n=>{const e=l(i,n.value);return n.withValue(()=>e).setContext(a(c({},n.context),{type:"frequency"}))})};o.prototype.define("xen",(i,n)=>n.xen(i),{composable:!0,patternified:!0});function t(){this.scale=[],this.mode={output:"frequency",input:"step"},this.etmajor=[261.62558,293.664764,329.627563,349.228241,391.995422,440,493.883301,523.25116],this.tonic=440}t.prototype.tonicize=function(i){this.tonic=i};t.prototype.note=function(i,n){var e;return this.mode.output=="frequency"?e=this.frequency(i,n):this.mode.output=="ratio"?e=this.ratio(i,n):this.mode.output=="MIDI"?e=this.MIDI(i,n):e=this.frequency(i,n),e};t.prototype.frequency=function(i,n){(this.mode.input=="midi"||this.mode.input=="MIDI")&&(this.stepIn+=60);var e=Math.floor(i/this.scale.length);n&&(e+=n);for(var r=i%this.scale.length;r<0;)r+=this.scale.length;var s=this.tonic*this.scale[r];return s=s*Math.pow(2,e),s=Math.floor(s*1e11)/1e11,s};t.prototype.ratio=function(i,n){(this.mode.input=="midi"||this.mode.input=="MIDI")&&(this.stepIn+=60);var e=Math.floor(i/this.scale.length);n&&(e+=n);var r=i%this.scale.length,s=Math.pow(2,e)*this.scale[r];return s=Math.floor(s*1e11)/1e11,s};t.prototype.MIDI=function(i,n){var e=this.frequency(i,n),r=69+12*Math.log(e/440)/Math.log(2);return r=Math.floor(r*1e9)/1e9,r};t.prototype.loadScale=function(i){var n=u[i].frequencies;this.scale=[];for(var e=0;e[1, 1, -1]->[0, 1, -1]->[0, 0, -1]->[0, 0, 0]->[0, -1, 0],[0, -1, 1]->[0, -2, 1]->[-1, -2, 1]"},breedt1:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,326.6631048533,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,489.99465727995,523.2511306012],description:"Graham Breed's 1/4 P temperament, TL 10-06-99"},breedt2:{frequencies:[261.6255653006,276.37000081643,293.53214922797,310.91625060765,328.43856194079,349.78078158391,368.4933346061,392.4383479509,414.55500101742,439.10654054756,466.37437567834,492.65784266492,523.2511306012],description:"Graham Breed's 1/5 P temperament, TL 10-06-99"},breedt3:{frequencies:[261.6255653006,276.55731914056,293.33333347996,311.12698372208,328.88393162803,350.01785633742,368.74309237173,392.4383479509,414.83597850347,438.51190905657,466.69047534984,491.65745674141,523.2511306012],description:"Graham Breed's other 1/4 P temperament, TL 10-06-99"},brown:{frequencies:[261.6255653006,272.52663052146,275.62199471997,275.93321340298,279.38237857051,287.10624449997,290.69507255622,291.02331101095,294.32876096318,306.24666079997,306.59245933664,310.07474405997,310.42486507835,322.99452506247,327.03195662575,331.11985608357,344.52749339997,344.91651675372,348.83408706747,349.22797321314,363.36884069528,367.49599295996,367.91095120397,372.50983809402,382.80832599996,387.59343007496,388.03108134794,392.4383479509,408.78994578219,413.43299207996,413.89982010446,430.65936674996,436.04260883433,436.53496651643,441.49314144476,459.36999119996,459.88868900496,465.11211608996,465.63729761752,484.4917875937,489.99465727995,490.54793493862,496.67978412536,516.79124009995,517.37477513058,523.2511306012],description:"Tuning of Colin Brown's Voice Harmonium, Glasgow. Helmholtz/Ellis p. 470-473"},bruder:{frequencies:[261.6255653006,276.38325105256,293.66476791741,310.22971009486,327.53979283172,349.02656754477,368.60786575306,391.65594491223,414.34624765043,439.23819834286,465.62553897253,491.60634075178,523.2511306012],description:"Ignaz Bruder organ temperament (1829) according to P. Vier"},burma3:{frequencies:[261.6255653006,287.71029735626,317.68827763215,350.39147881787,389.32370520689,429.81331927092,476.14308821464,523.2511306012],description:"Burmese scale, von Hornbostel"},"burt-forks":{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Warren Burt 19-tone Forks. Interval 5(3): pp. 13+23 Winter 1986-87"},burt1:{frequencies:[261.6255653006,272.09058791262,283.42769574232,295.75063903546,309.19384990071,340.11323489078,358.01393146398,377.90359432309,415.52295665389,425.14154361347,453.48431318771,485.87604984397,523.2511306012],description:"W. Burt's 13diatsub #1"},burt10:{frequencies:[261.6255653006,265.11390617127,268.69652652494,272.3773008609,276.16031892841,355.06326719367,368.21375857121,382.37582620857,386.08821287079,389.87339142835,393.73352401674,397.67085925691,523.2511306012],description:"W. Burt's 19enhsub #10"},burt11:{frequencies:[261.6255653006,344.24416486921,347.6866065179,351.12904816659,354.57148981529,358.01393146398,371.78369805875,385.55346465352,495.71159741166,502.59648070905,509.48136400643,516.36624730382,523.2511306012],description:"W. Burt's 19enhharm #11"},burt12:{frequencies:[261.6255653006,302.93486508491,316.70463167967,330.47439827444,344.24416486921,358.01393146398,371.78369805875,385.55346465352,440.63253103259,468.17206422213,495.71159741166,509.48136400643,523.2511306012],description:"W. Burt's 19diatharm #12"},burt13:{frequencies:[261.6255653006,273.51763645063,286.54228580542,293.53112204458,300.86940009569,334.29933343966,353.96400011258,376.08675011961,401.15920012759,429.81342870813,445.73244458621,462.87600014722,523.2511306012],description:"W. Burt's 23diatsub #13"},burt14:{frequencies:[261.6255653006,264.50057151269,267.43946675172,270.4444045804,273.51763645063,334.29933343966,353.96400011258,376.08675011961,382.05638107389,388.21858076863,394.58281979763,401.15920012759,523.2511306012],description:"W. Burt's 23enhsub #14"},burt15:{frequencies:[261.6255653006,341.25073734861,346.93824963775,352.6257619269,358.31327421604,364.00078650518,386.75083566176,409.50088481833,500.50108144463,506.18859373377,511.87610602291,517.56361831206,523.2511306012],description:"W. Burt's 23enhharm #15"},burt16:{frequencies:[261.6255653006,295.75063903546,307.12566361375,318.50068819203,341.25073734861,364.00078650518,386.75083566176,409.50088481833,455.00098313148,466.37600770977,477.75103228805,500.50108144463,523.2511306012],description:"W. Burt's 23diatharm #16"},burt17:{frequencies:[261.6255653006,262.27760655527,262.77528702311,280.51080915002,281.04308772525,281.33584094163,286.12102533302,286.66394947976,306.91182648178,308.56189006502,309.14739649778,336.61297098002,337.2517052703,337.60300912996,338.42271813583,339.41807907152,363.01398831179,369.18841978454,370.27426807802,396.01525997649,398.14437427744,399.31538714296,403.93556517602,406.10726176299,434.33931739357,434.79175418253,435.61678597414,437.95881170519,475.21831197179,476.86837555503,477.77324913293,478.27092960078,479.17846457156,521.20718087229,521.75010501903,522.74014316897,523.2511306012],description:`W. Burt's "2 out of 3,5,11,17,31 dekany" CPS with 1/1=3/1. 1/1 vol. 10(1) '98`},burt18:{frequencies:[261.6255653006,268.26840191956,269.80136421624,270.50397193556,275.42222597075,281.04308772525,286.15296204753,295.09524211152,300.46061014991,306.59245933664,309.14739649778,314.76825825228,321.92208230347,324.60476632267,337.2517052703,343.38355445704,344.27778246344,354.11429053382,357.69120255941,367.91095120397,370.97687579734,375.57576268738,393.46032281536,404.70204632437,413.13333895612,421.56463158788,429.2294430713,432.80635509689,449.66894036041,463.72109474667,472.15238737843,490.54793493862,491.82540351919,500.76768358318,505.87755790546,515.07533168556,523.2511306012],description:`W. Burt's "2 out of 1,3,5,7,11 dekany" CPS with 1/1=1/1. 1/1 vol. 10(1) '98`},burt19:{frequencies:[261.6255653006,268.26840191956,286.15296204753,294.32876096318,300.46061014991,306.59245933664,321.92208230347,327.03195662575,343.38355445704,357.69120255941,367.91095120397,375.57576268738,392.4383479509,400.61414686654,408.78994578219,429.2294430713,457.84473927605,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:`W. Burt's "2 out of 2,3,4,5,7 dekany" CPS with 1/1=1/1. 1/1 vol. 10(1) '98`},burt2:{frequencies:[261.6255653006,264.16561933264,266.75547834571,269.39662169567,272.09058791262,340.11323489078,344.41846571218,348.83408706747,353.36439988652,358.01393146398,412.25846653428,485.87604984397,523.2511306012],description:"W. Burt's 13enhsub #2"},burt20:{frequencies:[261.6255653006,269.10058145205,279.06726965397,279.38237857051,294.32876096318,298.00787047521,330.74639366397,335.25885428462,367.91095120397,376.74081403286,412.06026534844,418.60090448096,523.2511306012],description:'Warren Burt tuning for "Commas" (1993) 1/1=263. XH 16'},burt3:{frequencies:[261.6255653006,281.75060878526,332.06321749692,382.37582620857,387.40708707973,392.4383479509,397.46960882207,402.50086969323,503.12608711654,508.1573479877,513.18860885887,518.21986973003,523.2511306012],description:"W. Burt's 13enhharm #3"},burt4:{frequencies:[261.6255653006,281.75060878526,301.87565226992,322.00069575458,342.12573923925,362.25078272391,382.37582620857,402.50086969323,442.75095666255,462.87600014722,483.00104363188,503.12608711654,523.2511306012],description:"W. Burt's 13diatharm #4, see his post 3/30/94 in Tuning Digest #57"},burt5:{frequencies:[261.6255653006,277.97716313189,296.50897400735,317.68818643644,342.12573923925,277.97716313189,386.75083566176,404.33041910093,423.58424858192,444.76346101102,468.17206422213,494.18162334558,523.2511306012],description:"W. Burt's 17diatsub #5"},burt6:{frequencies:[261.6255653006,265.53042448419,269.55361273395,273.7005913914,277.97716313189,370.63621750918,386.75083566176,404.33041910093,408.97789518255,413.73345210327,418.60090448096,423.58424858192,523.2511306012],description:"W. Burt's 17enhsub #6"},burt7:{frequencies:[261.6255653006,323.18452184192,327.03195662575,330.87939140958,334.72682619341,338.57426097725,353.96400011258,369.35373924791,492.47165233054,500.16652189821,507.86139146587,515.55626103354,523.2511306012],description:"W. Burt's 17enhharm #7"},burt8:{frequencies:[261.6255653006,277.01530443593,292.40504357126,307.79478270659,323.18452184192,338.57426097725,353.96400011258,369.35373924791,400.13321751856,430.91269578922,461.69217405988,492.47165233054,523.2511306012],description:"W. Burt's 17diatharm #8"},burt9:{frequencies:[261.6255653006,268.69652652494,276.16031892841,292.40504357126,310.68035879446,355.06326719367,368.21375857121,382.37582620857,397.67085925691,414.24047839262,432.2509339749,451.89870370104,523.2511306012],description:"W. Burt's 19diatsub #9"},burt_fibo:{frequencies:[261.6255653006,277.97716313189,294.32876096318,311.70233365892,327.03195662575,343.38355445704,363.82305174615,385.28452389971,392.4383479509,425.14154361347,449.66894036041,476.24028683625,523.2511306012],description:'Warren Burt, 3/2+5/3+8/5+etc. "Recurrent Sequences", 2002'},burt_fibo23:{frequencies:[261.6255653006,267.05480676802,277.97716313189,282.81557538079,294.32876096318,299.5065008038,311.70233365892,327.03195662575,330.09788121912,343.38355445704,349.5792770728,363.82305174615,370.21039464899,385.28452389971,392.4383479509,408.02346463385,425.14154361347,432.10374737758,449.66894036041,457.60521391719,476.24028683625,484.61169812829,504.34459560877,523.2511306012],description:'Warren Burt, 23-tone Fibonacci scale. "Recurrent Sequences", 2002'},burt_primes:{frequencies:[261.6255653006,267.75741448733,273.88926367407,277.97716313189,280.0211128608,284.10901231862,290.24086150535,298.416660421,302.50455987882,304.54850960773,308.63640906555,310.68035879446,320.90010743902,322.94405716793,327.03195662575,333.16380581248,335.20775554139,339.29565499922,341.33960472813,351.55935337268,353.60330310159,359.73515228832,363.82305174615,365.86700147506,369.95490093288,376.08675011961,384.26254903526,390.39439822199,392.4383479509,394.48229767981,396.52624740872,402.65809659545,406.74599605328,412.87784524001,421.05364415565,425.14154361347,431.27339280021,433.31734252912,437.40524198694,445.58104090258,455.80078954714,457.84473927605,461.93263873387,463.97658846278,468.0644879206,474.19633710734,476.24028683625,482.37213602298,488.50398520971,492.59188466754,498.72373385427,506.89953276991,513.03138195665,519.16323114338,523.2511306012],description:'Warren Burt, primes until 251. "Some Numbers", Dec. 2002'},bushmen:{frequencies:[261.6255653006,347.0163224393,394.26624244126,453.9405988926,523.2511306012],description:"Observed scale of South-African bushmen, almost (4 notes) equal pentatonic"},dan_semantic:{frequencies:[261.6255653006,272.52663052146,275.62199471997,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,322.99452506247,327.03195662575,331.11985608357,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,397.34382730029,408.78994578219,413.43299207996,418.60090448096,430.65936674996,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.67978412536,516.79124009995,523.2511306012],description:'The Semantic Scale, from Alain Dani\xEF\xBF\xBDlou: "S\xEF\xBF\xBDmantique Musicale" (1967)'},danielou5_53:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.62199471997,279.06726965397,282.55561052465,285.76488412567,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,479.0507177135,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"Dani\xEF\xBF\xBDlou's Harmonic Division in 5-limit, symmetrized"},danielou_53:{frequencies:[261.6255653006,264.89588486686,267.43946675172,272.52663052146,275.62199471997,279.06726965397,282.55561052465,287.78812183066,290.69507255622,294.32876096318,297.67175429757,301.87565226992,306.59245933664,310.07474405997,313.95067836072,318.93402246168,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,479.64686971777,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"Dani\xEF\xBF\xBDlou's Harmonic Division of the Octave, see p. 153"},darreg:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"This set of 19 ratios in 5-limit JI is for his megalyra family"},darreg_ennea:{frequencies:[261.6255653006,269.29177952703,277.18263097687,293.66476791741,349.22823143301,391.99543598175,403.48177901006,415.30469757995,440,523.2511306012],description:"Ivor Darreg's Mixed Enneatonic, a mixture of chromatic and enharmonic"},darreg_genus:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,348.83408706747,392.4383479509,406.97310157871,418.60090448096,436.04260883433,523.2511306012],description:"Ivor Darreg's Mixed JI Genus (Archytas Enh, Ptolemy Soft Chrom, Didymos Chrom"},darreg_genus2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,348.83408706747,392.4383479509,406.97310157871,418.60090448096,441.49314144476,523.2511306012],description:"Darreg's Mixed JI Genus 2 (Archytas Enharmonic and Chromatic Genera)"},david11:{frequencies:[261.6255653006,269.80136421624,274.70684356563,285.40970760065,294.32876096318,305.22982618403,314.76825825228,327.03195662575,332.97799220076,343.38355445704,359.73515228832,366.27579142084,374.60024122586,392.4383479509,406.97310157871,419.69101100305,428.11456140098,441.49314144476,457.84473927605,479.64686971777,490.54793493862,499.46698830115,523.2511306012],description:"11-limit system from Gary David, 1967"},david7:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,336.37572681506,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,488.36772189445,523.2511306012],description:"Gary David's Constant Structure, 1967. A mode of Fokker's 7-limit scale"},ddimlim1:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"First 27/25&2048/1875 scale"},de_caus:{frequencies:[261.6255653006,272.52663052146,290.69507255622,306.59245933664,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"De Caus (a mode of Ellis's duodene) (1615)"},degung1:{frequencies:[261.6255653006,286.1303811777,319.28416942365,390.63652710512,420.90734643474,523.2511306012],description:"Gamelan Degung, Kabupaten Sukabumi. 1/1=363 Hz"},degung2:{frequencies:[261.6255653006,276.67939184371,325.99375993805,390.36201910543,415.27879033283,523.2511306012],description:"Gamelan Degung, Kabupaten Bandung. 1/1=252 Hz"},degung3:{frequencies:[261.6255653006,282.83850205216,320.55017368416,393.28023705203,426.95140008307,523.2511306012],description:"Gamelan Degung, Kabupaten Sumedang. 1/1=388.5 Hz"},degung4:{frequencies:[261.6255653006,284.6485709981,319.18312009646,379.88037698982,415.46137490477,523.2511306012],description:"Gamelan Degung, Kasepuhan Cheribon. 1/1=250 Hz"},degung5:{frequencies:[261.6255653006,284.24274449773,317.86283634652,388.77066331187,430.33748813761,523.2511306012],description:"Gamelan Degung, Kanoman Cheribon. 1/1=428 Hz"},degung6:{frequencies:[261.6255653006,273.29426590363,298.47415715355,379.54129348313,409.02013274169,523.2511306012],description:"Gamelan Degung, Kacherbonan Cheribon. 1/1=426 Hz"},dekany:{frequencies:[261.6255653006,299.7792935736,305.22982618403,327.03195662575,359.73515228832,381.53728273004,419.69101100305,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"2)5 Dekany 1.3.5.7.11 (1.3 tonic)"},dekany2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,348.83408706747,358.80077526939,398.6675280771,418.60090448096,448.50096908674,465.11211608996,523.2511306012],description:"3)5 Dekany 1.3.5.7.9 (1.3.5.7.9 tonic)"},dekany3:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,343.38355445704,381.53728273004,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"2)5 Dekany 1.3.5.7.9 and 3)5 Dekany 1 1/3 1/5 1/7 1/9"},dekany4:{frequencies:[261.6255653006,270.96933548991,288.48890459486,310.68035879446,321.77608589426,355.06326719367,425.14154361347,440.3251701711,474.19633710734,485.87604984397,523.2511306012],description:"2)5 Dekany 1.7.13.19.29 (1.7 tonic)"},dekany_union:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,366.27579142084,381.53728273004,392.4383479509,412.06026534844,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Union of 2)5 and 3)5 [ 1 3 5 7 9] dekanies"},dent:{frequencies:[261.6255653006,276.73939277812,293.41671964988,311.13637945111,328.33487278761,349.18153137729,368.9858570375,391.91718148616,414.84850593482,438.82216331296,465.92281947955,491.98114271667,523.2511306012],description:"Tom Dent, well temperament with A=421 Hz. Integer Hz beat rates from A"},dent2:{frequencies:[261.6255653006,276.57667301797,293.18838124587,310.79781949647,328.55897053596,349.10502918563,369.05532299592,391.67735584266,414.54302837239,438.92977277749,465.83490899549,492.45596147139,523.2511306012],description:"Tom Dent, well-temperament, 2/32 and 5/32 comma. TL 3 & 5-9-2005"},dent3:{frequencies:[261.6255653006,276.38325105256,293.15632631094,310.94732162256,328.48713220126,349.22823143301,368.7143392539,391.76907592069,414.58565256441,438.73106346722,466.16376151809,492.17459484008,523.2511306012],description:'Tom Dent, Bach harpsichord "sine wave" temperament, TL 10-10-2005'},deporcy:{frequencies:[261.6255653006,272.52663052146,286.15296204753,299.00064605783,313.95067836072,327.03195662575,348.83408706747,358.80077526939,381.53728273004,392.4383479509,418.60090448096,436.04260883433,457.84473927605,478.40103369253,502.32108537715,523.2511306012],description:"A 15-note chord-based detempering of 7-limit porcupine"},diab19_612:{frequencies:[261.6255653006,267.01398215014,280.33982809972,299.03492334906,305.19382000629,313.95883772326,320.42510414137,327.02455105776,348.83292260574,366.24210002542,373.7851897098,392.43965797471,418.61038382265,427.23204601759,436.03127668087,448.5538823653,457.79225819026,488.32116993744,512.69177642068,523.2511306012],description:"diab19a in 612-tET"},diab19_72:{frequencies:[261.6255653006,266.71173418545,279.86396690685,299.37379946195,305.19382000629,314.13668154225,320.24370022528,326.46944327063,349.22823143301,366.44956000397,373.57357677338,391.99543598175,419.32216217931,427.47405410759,435.78442404634,448.5538823653,457.27406033445,489.15147723638,513.27277840175,523.2511306012],description:"diab19a in 72-tET"},diablack:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,331.11985608357,372.08969287196,392.4383479509,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"Unique 256/245&2048/2025 Fokker block"},diachrome1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"First 25/24&2048/2025 scale"},diacycle13:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,307.79478270659,317.12189733406,327.03195662575,337.58137458142,348.83408706747,360.86284869048,373.75080757229,387.59343007496,402.50086969323,413.09299784305,424.25767346043,436.04260883433,448.50096908674,461.69217405988,475.68284600109,490.54793493862,506.37206187213,523.2511306012],description:"Diacycle on 20/13, 13/10; there are also nodes at 3/2, 4/3; 13/9, 18/13"},diaddim1:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,334.88072358477,344.91651675372,357.20610515709,367.91095120397,392.4383479509,418.60090448096,446.50763144636,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"First 2048/2025&2048/1875 scale"},dialim1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,348.83408706747,353.19451315581,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"First 27/25&2048/2025 scale"},diamisty:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,413.89982010446,436.53496651643,470.39487098876,496.11959049595,523.2511306012],description:"Diamisty scale 2048/2025 and 67108864/66430125"},diamond11a:{frequencies:[261.6255653006,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,523.2511306012],description:"11-limit Diamond with added 16/15 & 15/8, Zoomoozophone tuning: 1/1 = 392 Hz"},diamond11ak:{frequencies:[261.6255653006,279.72330032405,285.63317938628,287.78812183066,290.69507255622,293.86839138568,299.07491977616,305.39295512204,314.19649759716,319.76457981184,326.52043447049,333.41680553884,335.93301933283,349.10721912206,359.17247822875,366.75848641051,373.2589099097,381.14243472333,392.13131479202,407.50942884268,410.58480125643,419.25667855894,428.11456140098,435.70146034294,448.26139746089,457.73103588952,465.84075338014,470.92601754108,475.68284600109,479.27160679251,489.39746055879,523.2511306012],description:"microtempered version of diamond11a, Dave Keenan TL 11-1-2000, 225/224&385/384"},diamond11at:{frequencies:[261.6255653006,279.83704120119,285.33574350137,287.98268367985,290.84948650387,293.82121114493,299.2738827313,305.22380787491,314.19079532693,320.23980272009,326.48518221507,332.71524733285,336.02719554531,349.1122100506,359.53680125564,366.52331521885,373.4984028396,380.75621844446,392.12570885984,407.39521875769,411.45055399509,419.30194782174,427.47925671618,435.70936791853,448.50981249085,457.42672761267,465.91555560021,470.67599975252,475.36147343465,479.7712027167,489.19854301666,523.2511306012],description:"microtempered version of diamond11a, OdC"},diamond11map:{frequencies:[195.99771799087,228.66400432268,261.33029065449,293.99657698631,326.66286331812,359.32914964993,391.99543598174,457.32800864536,522.66058130899,587.99315397261,653.32572663623,718.65829929986,213.81569235368,249.45164107929,285.0875898049,320.72353853051,356.35948725613,391.99543598174,427.63138470735,498.90328215858,570.1751796098,641.44707706103,712.71897451225,783.99087196348,235.19726158904,274.39680518722,313.59634878539,352.79589238357,391.99543598174,431.19497957991,470.39452317809,548.79361037444,627.19269757078,705.59178476713,783.99087196348,862.38995915983,261.33029065449,304.88533909691,348.44038753932,391.99543598174,435.55048442416,479.10553286657,522.66058130899,609.77067819382,696.88077507865,783.99087196348,871.10096884831,958.21106573314,293.99657698631,342.99600648402,391.99543598174,440.99486547946,489.99429497718,538.99372447489,587.99315397261,685.99201296804,783.99087196348,881.98973095892,979.98858995435,1077.98744894978,335.99608798435,391.99543598174,447.99478397913,503.99413197652,559.99347997391,615.99282797131,671.9921759687,783.99087196348,895.98956795826,1007.98826395305,1119.98695994783,1231.98565594261,783.99087196348],description:"11-limit diamond on a 'centreless' map"},diamond15:{frequencies:[261.6255653006,269.80136421624,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.87565226992,305.22982618403,309.19384990071,310.07474405997,313.95067836072,318.85615771011,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,343.38355445704,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,367.91095120397,372.08969287196,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,398.6675280771,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,429.33426100611,436.04260883433,441.49314144476,442.75095666255,448.50096908674,453.48431318771,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,507.3950357345,523.2511306012],description:"15-limit Diamond + 2nd ratios. See Novaro, 1927, Sistema Natural..."},diamond17:{frequencies:[261.6255653006,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,322.00069575458,327.03195662575,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,366.27579142084,369.35373924791,370.63621750918,373.75080757229,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,418.60090448096,425.14154361347,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,523.2511306012],description:"17-limit Diamond"},diamond17a:{frequencies:[261.6255653006,277.01530443593,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,494.18162334558,523.2511306012],description:"17-limit, +9 Diamond"},diamond19:{frequencies:[261.6255653006,275.39533189537,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,292.40504357126,299.00064605783,302.93486508491,305.22982618403,307.79478270659,309.19384990071,310.68035879446,313.95067836072,317.68818643644,322.00069575458,327.03195662575,330.47439827444,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,355.06326719367,358.01393146398,359.73515228832,366.27579142084,369.35373924791,370.63621750918,373.75080757229,380.54627680087,382.37582620857,385.55346465352,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,414.24047839262,418.60090448096,425.14154361347,430.91269578922,436.04260883433,440.63253103259,442.75095666255,444.76346101102,448.50096908674,451.89870370104,457.84473927605,468.17206422213,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,497.08857407114,523.2511306012],description:"19-limit Diamond"},diamond7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,523.2511306012],description:"7-limit Diamond, also double-tie circular mirroring of 4:5:6:7"},diamond9:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"9-limit Diamond"},diamond_chess:{frequencies:[261.6255653006,299.00064605783,313.95067836072,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,436.04260883433,457.84473927605,523.2511306012],description:"9-limit chessboard pattern diamond. OdC"},diamond_chess11:{frequencies:[261.6255653006,287.78812183066,299.00064605783,313.95067836072,319.76457981184,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,428.11456140098,436.04260883433,457.84473927605,475.68284600109,523.2511306012],description:"11-limit chessboard pattern diamond. OdC"},diamond_dup:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Two 7-limit diamonds 3/2 apart"},diamond_mod:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"13-tone Octave Modular Diamond, based on Archytas's Enharmonic"},diamond_tetr:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,339.14425131559,348.83408706747,358.80077526939,523.2511306012],description:"Tetrachord Modular Diamond based on Archytas's Enharmonic"},diaphonic_10:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,336.37572681506,362.25078272391,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"10-tone Diaphonic Cycle"},diaphonic_12:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,323.18452184192,343.38355445704,366.27579142084,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"12-tone Diaphonic Cycle, conjunctive form on 3/2 and 4/3"},diaphonic_12a:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,323.18452184192,343.38355445704,366.27579142084,385.55346465352,406.97310157871,430.91269578922,457.84473927605,488.36772189445,523.2511306012],description:"2nd 12-tone Diaphonic Cycle, conjunctive form on 10/7 and 7/5"},diaphonic_5:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:"D5-tone Diaphonic Cycle"},diaphonic_7:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"7-tone Diaphonic Cycle, disjunctive form on 4/3 and 3/2"},diaschismic:{frequencies:[261.6255653006,266.61097723855,278.05603152599,283.35453458855,295.51835494038,301.14961170579,314.07733767684,320.06224556188,333.80185153667,340.16262034629,354.76509561975,369.99442271164,377.04485988831,393.23061088369,400.72382577504,417.92606548687,425.88986517773,444.17243057662,452.63636847719,472.06710558841,481.06259110609,501.71360968203,523.2511306012],description:"diaschismic temperament, g=105.446531, p=600, 5-limit"},diat13:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,392.4383479509,418.60090448096,483.00104363188,523.2511306012],description:"This genus is from K.S's diatonic Hypodorian harmonia"},diat15:{frequencies:[261.6255653006,301.87565226992,327.03195662575,356.76213450082,373.75080757229,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Tonos-15 Diatonic and its own trite synemmenon Bb"},diat15_inv:{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,366.27579142084,383.71749577421,418.60090448096,453.48431318771,523.2511306012],description:"Inverted Tonos-15 Harmonia, a harmonic series from 15 from 30."},diat17:{frequencies:[261.6255653006,296.50897400735,342.12573923925,370.63621750918,386.75083566176,404.33041910093,444.76346101102,494.18162334558,523.2511306012],description:"Tonos-17 Diatonic and its own trite synemmenon Bb"},diat19:{frequencies:[261.6255653006,276.16031892841,310.68035879446,355.06326719367,368.21375857121,382.37582620857,414.24047839262,451.89870370104,523.2511306012],description:"Tonos-19 Diatonic and its own trite synemmenon Bb"},diat21:{frequencies:[261.6255653006,289.16509849014,305.22982618403,343.38355445704,366.27579142084,392.4383479509,422.62591317789,457.84473927605,523.2511306012],description:"Tonos-21 Diatonic and its own trite synemmenon Bb"},diat21_inv:{frequencies:[261.6255653006,299.00064605783,323.91736656265,348.83408706747,373.75080757229,398.6675280771,448.50096908674,473.41768959156,523.2511306012],description:"Inverted Tonos-21 Harmonia, a harmonic series from 21 from 42."},diat23:{frequencies:[261.6255653006,286.54228580542,300.86940009569,334.29933343966,353.96400011258,376.08675011961,429.81342870813,462.87600014722,523.2511306012],description:"Tonos-23 Diatonic and its own trite synemmenon Bb"},diat25:{frequencies:[261.6255653006,297.30177875068,327.03195662575,363.36884069528,384.74347838324,408.78994578219,467.18850946536,503.12608711654,523.2511306012],description:"Tonos-25 Diatonic and its own trite synemmenon Bb"},diat27:{frequencies:[261.6255653006,294.32876096318,336.37572681506,353.19451315581,371.78369805875,392.4383479509,441.49314144476,504.56359022259,523.2511306012],description:"Tonos-27 Diatonic and its own trite synemmenon Bb"},diat27_inv:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,377.90359432309,387.59343007496,406.97310157871,465.11211608996,523.2511306012],description:"Inverted Tonos-27 Harmonia, a harmonic series from 27 from 54"},diat29:{frequencies:[261.6255653006,291.81313052759,316.13089140489,344.87006335079,361.29244731988,379.35706968587,421.50785520652,474.19633710734,523.2511306012],description:"Tonos-29 Diatonic and its own trite synemmenon Bb"},diat31:{frequencies:[261.6255653006,289.65687586852,311.93817401225,337.93302184661,352.6257619269,368.65420565085,405.51962621593,450.57736246214,523.2511306012],description:"Tonos-31 Diatonic. The disjunctive and conjunctive diatonic forms are the same"},diat33:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,375.37581108347,392.4383479509,431.68218274599,479.64686971777,523.2511306012],description:"Tonos-33 Diatonic. The conjunctive form is 23 (Bb instead of B) 20 18 33/2"},diat_chrom:{frequencies:[261.6255653006,280.31310567921,301.87565226992,348.83408706747,392.4383479509,420.46965851882,452.81347840488,523.2511306012],description:"Diatonic- Chromatic, on the border between the chromatic and diatonic genera"},diat_dies2:{frequencies:[261.6255653006,266.71168334607,311.12698372208,349.22823143301,391.99543598175,399.61600264311,466.16376151809,523.2511306012],description:"Dorian Diatonic, 2 part Diesis"},diat_dies5:{frequencies:[261.6255653006,274.52693220706,311.12698372208,349.22823143301,391.99543598175,411.32564531909,466.16376151809,523.2511306012],description:"Dorian Diatonic, 5 part Diesis"},diat_enh:{frequencies:[261.6255653006,269.29177952703,311.12698372208,349.22823143301,391.99543598175,403.48177901006,466.16376151809,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode"},diat_enh2:{frequencies:[261.6255653006,269.29177952703,302.26980244078,349.22823143301,391.99543598175,403.48177901006,452.89298412314,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode 3 + 12 + 15 parts"},diat_enh3:{frequencies:[261.6255653006,302.26980244078,311.12698372208,349.22823143301,391.99543598175,452.89298412314,466.16376151809,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode, 15 + 3 + 12 parts"},diat_enh4:{frequencies:[261.6255653006,302.26980244078,339.28638158975,349.22823143301,391.99543598175,452.89298412314,508.3551866238,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode, 15 + 12 + 3 parts"},diat_enh5:{frequencies:[261.6255653006,293.66476791741,339.28638158975,349.22823143301,391.99543598175,440,508.3551866238,523.2511306012],description:"Dorian Mode, 12 + 15 + 3 parts"},diat_enh6:{frequencies:[261.6255653006,293.66476791741,302.26980244078,349.22823143301,391.99543598175,440,452.89298412314,523.2511306012],description:"Dorian Mode, 12 + 3 + 15 parts"},diat_eq:{frequencies:[261.6255653006,288.06466200271,317.1754314895,349.22823143301,391.99543598175,431.60932167676,475.22619361214,523.2511306012],description:"Equal Diatonic, Islamic form, similar to 11/10 x 11/10 x 400/363"},diat_eq2:{frequencies:[261.6255653006,287.78812183066,317.12189733406,348.83408706747,392.4383479509,431.68218274599,475.68284600109,523.2511306012],description:"Equal Diatonic, 11/10 x 400/363 x 11/10"},diat_gold:{frequencies:[261.6255653006,292.38332274669,326.75708630452,349.99258496952,391.13935185123,437.1232727958,488.51296691354,523.2511306012],description:"Diatonic scale with ratio between whole and half tone the Golden Section"},diat_hemchrom:{frequencies:[261.6255653006,273.20871865617,311.12698372208,349.22823143301,391.99543598175,409.35055662695,466.16376151809,523.2511306012],description:"Diat. + Hem. Chrom. Diesis, Another genus of Aristoxenos, Dorian Mode"},diat_smal:{frequencies:[261.6255653006,299.00064605783,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:'"Smallest number" diatonic scale'},diat_sofchrom:{frequencies:[261.6255653006,271.8968348557,311.12698372208,349.22823143301,391.99543598175,407.38495184466,466.16376151809,523.2511306012],description:"Diat. + Soft Chrom. Diesis, Another genus of Aristoxenos, Dorian Mode"},diat_soft:{frequencies:[261.6255653006,274.52693220706,302.26980244078,349.22823143301,391.99543598175,411.32564531909,452.89298412314,523.2511306012],description:"Soft Diatonic genus 5 + 10 + 15 parts"},diat_soft2:{frequencies:[261.6255653006,281.2143451833,302.26980244078,349.22823143301,391.99543598175,421.34544350737,452.89298412314,523.2511306012],description:"Soft Diatonic genus with equally divided Pyknon; Dorian Mode"},diat_soft3:{frequencies:[261.6255653006,281.2143451833,324.90175210669,349.22823143301,391.99543598175,421.34544350737,486.80259447109,523.2511306012],description:"New Soft Diatonic genus with equally divided Pyknon; Dorian Mode; 1:1 pyknon"},diat_soft4:{frequencies:[261.6255653006,302.26980244078,324.90175210669,349.22823143301,391.99543598175,452.89298412314,486.80259447109,523.2511306012],description:"New Soft Diatonic genus with equally divided Pyknon; Dorian Mode; 1:1 pyknon"},dicot:{frequencies:[261.6255653006,270.35822989652,294.32876096318,320.42456924675,331.11985608357,360.47764004221,392.4383479509,405.53734464206,441.49314144476,480.63685362987,523.2511306012],description:"Dicot temperament, g=350.9775, 5-limit"},didy_chrom:{frequencies:[261.6255653006,279.06726965397,290.69507255622,348.83408706747,392.4383479509,418.60090448096,436.04260883433,523.2511306012],description:"Didymus Chromatic"},didy_chrom1:{frequencies:[261.6255653006,279.06726965397,334.88072358477,348.83408706747,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Permuted Didymus Chromatic"},didy_chrom2:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,470.92601754108,490.54793493862,523.2511306012],description:"Didymos's Chromatic, 6/5 x 25/24 x 16/15"},didy_chrom3:{frequencies:[261.6255653006,272.52663052146,290.69507255622,348.83408706747,392.4383479509,408.78994578219,436.04260883433,523.2511306012],description:"Didymos's Chromatic, 25/24 x 16/15 x 6/5"},didy_diat:{frequencies:[261.6255653006,279.06726965397,310.07474405997,348.83408706747,392.4383479509,418.60090448096,465.11211608996,523.2511306012],description:"Didymus Diatonic"},didy_diatinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Inverse Didymus Diatonic, variant of Ptolemy with 2 identical triads"},didy_enh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,392.4383479509,405.0976494977,418.60090448096,523.2511306012],description:"Dorian mode of Didymos's Enharmonic"},didy_enh2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,348.83408706747,392.4383479509,413.43299207996,418.60090448096,523.2511306012],description:"Permuted Didymus Enharmonic"},"diesic-m":{frequencies:[261.6255653006,289.62525622617,320.62153003931,354.93508703008,392.92094947462,434.97213484265,481.52372211906,523.2511306012],description:"Minimal Diesic temperament, g=176.021, 5-limit"},"diesic-t":{frequencies:[261.6255653006,272.92239980638,281.87304203955,294.04415210774,303.68749398125,316.80053726141,327.19018747082,337.92057205022,352.51178108166,364.07260143821,379.79303732838,392.24856169057,409.18561859271,422.60509148244,436.46466102477,455.31094249407,470.24311865111,490.54793493862,506.63572944675,523.2511306012],description:"Tiny Diesic temperament, g=443.017, 5-limit"},diff31_72:{frequencies:[261.6255653006,269.29177952703,274.52698453615,279.86396690685,285.30470202322,293.66476791741,299.37379946195,305.19382000629,314.13668154225,320.24370022528,326.46944327063,336.03572815422,342.56848033562,352.60650301302,356.01745236555,366.44956000397,373.57357677338,384.52011812375,388.23978476841,399.61607881612,407.38487419079,419.32216217931,427.47405410759,435.78442404634,448.5538823653,457.27406033445,466.16376151809,479.82340237272,489.15147723638,498.66089874196,508.3551866238,523.2511306012],description:"Diff31, 11/9, 4/3, 7/5, 3/2, 7/4, 9/5 difference diamond, tempered to 72-et"},dimteta:{frequencies:[261.6255653006,282.55561052465,307.12566361375,336.37572681506,406.97310157871,439.53094970501,477.75103228805,523.2511306012],description:"A heptatonic form on the 9/7"},dimtetb:{frequencies:[261.6255653006,294.32876096318,336.37572681506,406.97310157871,457.84473927605,523.2511306012],description:"A pentatonic form on the 9/7"},div_fifth1:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #1, From Schlesinger, see Chapter 8, p. 160"},div_fifth2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #2, From Schlesinger, see Chapter 8, p. 160"},div_fifth3:{frequencies:[261.6255653006,271.31540105247,305.22982618403,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #3, From Schlesinger, see Chapter 8, p. 160"},div_fifth4:{frequencies:[261.6255653006,274.70684356563,305.22982618403,343.38355445704,392.4383479509,523.2511306012],description:"Divided Fifth #4, From Schlesinger, see Chapter 8, p. 160"},div_fifth5:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,411.12588832951,523.2511306012],description:"Divided Fifth #5, From Schlesinger, see Chapter 8, p. 160"},dkring1:{frequencies:[261.6255653006,274.70684356563,305.22982618403,313.95067836072,320.49131749323,327.03195662575,366.27579142084,392.4383479509,439.53094970501,448.50096908674,457.84473927605,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 4:5:6:7"},dkring2:{frequencies:[261.6255653006,274.70684356563,305.22982618403,329.64821227876,336.37572681506,353.19451315581,366.27579142084,392.4383479509,406.97310157871,427.32175665765,436.04260883433,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 3:5:7:9"},dkring3:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,348.83408706747,384.42940207435,392.4383479509,398.6675280771,448.50096908674,465.11211608996,504.56359022259,523.2511306012],description:"Double-tie circular mirroring of 6:7:8:9"},dkring4:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,327.03195662575,336.37572681506,367.91095120397,373.75080757229,378.42269266694,420.46965851882,467.18850946536,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 7:8:9:10"},dodeceny:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Degenerate eikosany 3)6 from 1.3.5.9.15.45 tonic 1.3.15"},dorian_chrom:{frequencies:[261.6255653006,279.06726965397,299.00064605783,310.07474405997,315.92521092903,322.00069575458,348.83408706747,380.54627680087,398.6675280771,408.39112632289,418.60090448096,465.11211608996,523.2511306012,558.13453930795,598.00129211566,620.14948811994,631.85042185805,644.00139150917,697.66817413493,761.09255360175,797.33505615421,816.78225264578,837.20180896192,930.22423217991,1046.5022612024],description:"Dorian Chromatic Tonos"},dorian_chrom2:{frequencies:[261.6255653006,274.08392555301,287.78812183066,359.73515228832,411.12588832951,426.35277308246,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the chromatic genus"},dorian_chrominv:{frequencies:[261.6255653006,273.00058987889,285.40970760065,332.97799220076,380.54627680087,404.33041910093,428.11456140098,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Dorian inverted"},dorian_diat:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012,558.13453930795,598.00129211566,644.00139150917,669.76144716954,697.66817413493,728.00157301037,761.09255360175,837.20180896192,881.26506206518,930.22423217991,984.94330466108,1046.5022612024],description:"Dorian Diatonic Tonos"},dorian_diat2:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,411.12588832951,442.75095666255,479.64686971777,523.2511306012],description:"Schlesinger's Dorian Harmonia, a subharmonic series through 13 from 22"},dorian_diat2inv:{frequencies:[261.6255653006,285.40970760065,309.19384990071,332.97799220076,356.76213450082,380.54627680087,428.11456140098,475.68284600109,523.2511306012],description:"Inverted Schlesinger's Dorian Harmonia, a harmonic series from 11 from 22"},dorian_diatcon:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,411.12588832951,479.64686971777,523.2511306012],description:"A Dorian Diatonic with its own trite synemmenon replacing paramese"},dorian_diatred11:{frequencies:[261.6255653006,287.78812183066,316.56693401373,348.83408706747,392.4383479509,431.68218274599,474.85040102059,523.2511306012],description:"Dorian mode of a diatonic genus with reduplicated 11/10"},dorian_enh:{frequencies:[261.6255653006,279.06726965397,299.00064605783,304.4370214407,307.2300216374,310.07474405997,348.83408706747,380.54627680087,389.39619021485,393.97732186443,398.6675280771,465.11211608996,523.2511306012,558.13453930795,598.00129211566,608.8740428814,614.4600432748,620.14948811994,697.66817413493,761.09255360175,778.79238042969,787.95464372887,797.33505615421,930.22423217991,1046.5022612024],description:"Dorian Enharmonic Tonos"},dorian_enh2:{frequencies:[261.6255653006,267.70988077271,274.08392555301,359.73515228832,411.12588832951,426.35277308246,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the enharmonic genus"},dorian_enhinv:{frequencies:[261.6255653006,267.19206668997,273.00058987889,332.97799220076,380.54627680087,392.4383479509,404.33041910093,523.2511306012],description:"A harmonic form of Schlesinger's Dorian enharmonic inverted"},dorian_pent:{frequencies:[261.6255653006,271.49822814213,287.78812183066,359.73515228832,411.12588832951,423.21782622156,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the pentachromatic genus"},dorian_pis:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the Dorian Tonos, a non-rep. 16 tone gamut"},dorian_schl:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,442.75095666255,460.46099492906,479.64686971777,523.2511306012],description:"Schlesinger's Dorian Piano Tuning (Sub 22)"},dorian_tri1:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,411.12588832951,421.15334902048,431.68218274599,523.2511306012],description:"Schlesinger's Dorian Harmonia in the first trichromatic genus"},dorian_tri2:{frequencies:[261.6255653006,269.80136421624,287.78812183066,359.73515228832,411.12588832951,421.15334902048,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the second trichromatic genus"},douwes:{frequencies:[261.6255653006,273.00058987889,292.50063201309,313.39353429974,327.01933943691,350.37786403433,365.61168556196,391.72680409,408.75840577964,436.81779569448,468.01906681552,488.36772189445,523.2511306012],description:"Claas Douwes recommendation of 24/23 and 15/14 steps for clavichord (1699)"},dow_high:{frequencies:[261.6255653006,277.01530443593,278.50463402967,294.32876096318,308.34441624714,313.31771328338,327.34193952303,331.11985608357,346.88746827803,348.83408706747,369.35373924791,392.4383479509,417.75695104451,441.49314144476,462.5166243707],description:"Highest octave of Dowlands lute tuning, strings 5,6. 1/1=G (1610)"},dow_lmh:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,371.33951203956,392.4383479509,411.12588832951,417.75695104451,436.45591936403,441.49314144476,462.5166243707,465.11211608996,492.47165233054,495.11934938608,523.2511306012,548.16785110602,557.00926805934,581.94122581871,588.65752192635,616.68883249427,620.14948811994,626.63542656676,656.62886977405,662.23971216714,693.77493655606,697.66817413493,736.51936392681,742.67902407912,784.8766959018,822.25177665903,831.04591330779,835.51390208901,882.98628288953,925.03324874141,939.95313985014,982.02581856908,993.35956825072,1040.66240483408,1046.5022612024,1108.06121774372,1114.01853611868,1177.3150438527,1233.37766498854,1253.27085313352,1309.3677580921,1324.47942433429,1387.54987311211,1395.33634826987,1477.41495699162,1569.7533918036,1671.02780417803,1765.97256577905,1850.06649748281],description:"All three octaves of Dowland's lute tuning"},dow_low:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,371.33951203956,392.4383479509,411.12588832951,417.75695104451,436.45591936403,441.49314144476,462.5166243707,465.11211608996,492.47165233054,495.11934938608,523.2511306012],description:"Lowest octave of Dowlands lute tuning, strings 1,2,3. 1/1=G. (1610)"},dow_middle:{frequencies:[261.6255653006,274.08392555301,278.50463402967,290.97061290936,294.32876096318,308.34441624714,310.07474405997,313.31771328338,328.31443488703,331.11985608357,346.88746827803,348.83408706747,368.2596819634,371.33951203956,392.4383479509,411.12588832951,415.52295665389,417.75695104451,441.49314144476,462.5166243707,469.97656992507,491.01290928454,496.67978412536,520.33120241704,523.2511306012],description:"Middle octave of Dowlands lute tuning, strings 3,4,5. 1/1=G (1610)"},dowland_12:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,392.4383479509,417.75695104451,441.49314144476,462.5166243707,492.47165233054,523.2511306012],description:"subset of Dowland's lute tuning, lowest octave"},druri:{frequencies:[261.6255653006,285.79952600623,326.97270111135,357.18467683857,523.2511306012],description:"Scale of druri dana of Siwoli, south Nias, Jaap Kunst"},dudon_a:{frequencies:[261.6255653006,285.85015468029,319.76457981184,348.83408706747,392.4383479509,428.77523202043,479.64686971777,523.2511306012],description:"Dudon Tetrachord A"},dudon_b:{frequencies:[261.6255653006,283.42769574232,321.58142401532,348.83408706747,392.4383479509,425.14154361347,482.37213602298,523.2511306012],description:"Dudon Tetrachord B"},dudon_c12:{frequencies:[261.6255653006,302.50455987882,327.03195662575,343.38355445704,392.4383479509,425.14154361347,474.19633710734,523.2511306012],description:"Differentially coherent scale in interval class 1 and 2"},dudon_diat:{frequencies:[261.6255653006,294.32876096318,321.08592105074,350.8160989258,392.4383479509,428.11456140098,481.6288815761,523.2511306012],description:"Dudon Neutral Diatonic"},dudon_moha_baya:{frequencies:[261.6255653006,285.30470202322,320.24370022528,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Mohajira + Bayati (Dudon) 3 + 4 + 3 Mohajira and 3 + 3 + 4 Bayati tetrachords"},dudon_mohajira:{frequencies:[261.6255653006,285.30470202322,320.24370022528,349.22823143301,391.99543598175,427.47405410759,479.82340237272,523.2511306012],description:"Dudon's Mohajira, two 3 + 4 + 3 tetrachords, neutral diatonic"},dudon_mohajira_r:{frequencies:[261.6255653006,283.42769574232,321.58142401532,348.83408706747,392.4383479509,425.14154361347,479.64686971777,523.2511306012],description:"Jacques Dudon, JI Mohajira, Lumi\xEF\xBF\xBDres audibles"},dudon_thai:{frequencies:[261.6255653006,288.26147859917,317.63518509943,350.43752981487,386.47021463976,426.17461277719,469.97930400405,523.2511306012],description:"Dudon, coherent Thai heptatonic scale, 1/1 vol. 11/2, 2003"},dudon_thai2:{frequencies:[261.6255653006,288.02814528506,314.43072526953,347.1339209321,383.13743909274,422.44127975143,475.35895071461,523.2511306012],description:"Slightly better version, 3.685 cents deviation"},dudon_thai3:{frequencies:[261.6255653006,291.60349465796,321.58142401532,354.2846196779,394.48229767981,434.67997568173,478.96555314146,523.2511306012],description:"Dudon, Thai scale with two 704/703 = 2.46 c. deviations and simpler numbers"},duncan:{frequencies:[261.6255653006,277.97716313189,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Dudley Duncan's Superparticular Scale"},duoden12:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,413.89982010446,440.99519155196,465.63729761752,496.11959049595,523.2511306012],description:"Almost equal 12-tone subset of Duodenarium"},duodenarium:{frequencies:[14.56761754744,14.73307690724,14.74971276678,14.91724036858,14.98726085128,15.00418372272,15.10370587319,15.17460161192,15.19173601925,15.34695511171,15.36428413207,15.5387920506,15.55633768372,15.71528203439,15.73302695124,15.80687667908,15.91172305982,15.92968978813,16.00446263757,16.18624171938,16.20451842054,16.38856974087,16.57471152064,16.59342686263,16.78189541465,16.86066845769,16.87970668806,16.99166910733,17.07142681341,17.26532450067,17.28481964857,17.48114105693,17.67969228869,17.69965532014,17.78273626396,17.90068844229,17.98471302153,18.00502046726,18.2095219343,18.41634613405,18.43714095848,18.64655046072,18.73407606409,18.85833844126,18.87963234148,18.9682520149,18.98967002407,19.18369388963,19.20535516508,19.42349006325,19.44542210465,19.64410254298,19.66628368904,19.88965382477,19.91211223516,20.00557829696,20.13827449758,20.23280214922,20.25564802567,20.48571217609,20.7183894008,20.74178357829,20.97736926831,21.07583557211,21.21563074642,21.23958638417,21.33928351676,21.58165562584,21.60602456072,21.85142632116,22.09961536086,22.12456915017,22.37586055287,22.48089127691,22.50627558408,22.65555880978,22.76190241787,23.02043266756,23.0464261981,23.3081880759,23.57292305158,23.59954042685,23.71031501862,23.86758458973,23.97961736204,24.00669395635,24.27936257907,24.30677763081,24.55512817873,24.5828546113,24.86206728096,24.89014029395,25.14445125502,25.17284312198,25.29100268653,25.31956003209,25.487503661,25.60714022011,25.897986751,25.92722947286,26.22171158539,26.51953843303,26.54948298021,26.67410439595,26.85103266344,26.9770695323,27.0075307009,27.31428290145,27.62451920107,27.65571143772,27.96982569108,28.10111409614,28.2875076619,28.31944851222,28.45237802234,28.77554083445,28.80803274762,29.13523509488],description:"Ellis's Duodenarium : genus [3^12 5^8]"},duodene:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ellis's Duodene : genus [33355]"},"duodene14-18-21":{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,378.42269266694,392.4383479509,406.97310157871,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:"14-18-21 Duodene"},"duodene3-11_9":{frequencies:[261.6255653006,285.40970760065,294.32876096318,319.76457981184,321.08592105074,348.83408706747,359.73515228832,392.4383479509,426.35277308246,428.11456140098,479.64686971777,481.6288815761,523.2511306012],description:"3-11/9 Duodene"},"duodene3-7":{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,515.07533168556,523.2511306012],description:"3-7 Duodene"},"duodene6-7-9":{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,406.97310157871,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:"6-7-9 Duodene"},duodene_min:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,353.19451315581,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Minor Duodene"},"duodene_r-45":{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,353.19451315581,376.74081403286,401.85686830172,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated -45 degrees"},duodene_r45:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,313.95067836072,334.88072358477,383.2405741708,408.78994578219,436.04260883433,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated 45 degrees"},duodene_r90:{frequencies:[261.6255653006,272.52663052146,279.06726965397,306.59245933664,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated 90 degrees: genus [33555]"},duodene_skew:{frequencies:[261.6255653006,282.55561052465,290.69507255622,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,502.32108537715,523.2511306012],description:"Rotated 6/5x3/2 duodene"},duodene_t:{frequencies:[261.6255653006,279.3825857701,293.66476791741,313.59634948548,327.03195662575,349.22823143301,367.08095907728,391.99543598175,418.60090448096,436.53528831673,469.86362971679,489.99429388332,523.2511306012],description:"Duodene with equal tempered fifths"},duowell:{frequencies:[261.6255653006,278.41172412276,294.03623226919,312.90189200955,327.96500300935,349.00756672938,368.59392213143,392.24328034087,417.4100028405,437.50413894442,469.11953885575,491.70297432358,523.2511306012],description:"Ellis duodene well-tuned to fifth=(7168/11)^(1/16) third=(11/7)^(1/2)"},dwarf6_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,373.75080757229,392.4383479509,448.50096908674,523.2511306012],description:"Dwarf(<6 10 14 17|)"},cairo:{frequencies:[261.6255653006,269.38381929633,276.03456984659,285.15047989166,293.63138642043,300.85736580106,309.799366845,312.20234522745,320.03127253896,327.93377450564,337.66851484331,348.83408706747,357.41197445437,367.9166999024,380.21445327801,392.4383479509,401.02017979859,414.62054722758,417.26565438692,427.77234352616,440.44707963064,451.93568025669,468.86302025197,480.04690880844,491.77737838459,510.98743222773,523.2511306012],description:"P.42, of d'Erlanger, vol.5. Congress of Arabic Music, Cairo, 1932"},canright:{frequencies:[261.6255653006,286.48426603331,306.03443598155,335.11270457212,357.98136125932,391.99543598175,418.74586628806,458.53356119912,489.82466832727,523.2511306012],description:`David Canright's piano tuning for "Fibonacci Suite" (2001)`},carlos_alpha:{frequencies:[261.6255653006,273.68256372566,286.29520819723,299.48910562989,313.29104303136,327.729041887,342.83241505062,358.63182625716,375.1593523779,392.44854854484,410.5345162762,429.45397474154,449.24533531117,469.94877954106,491.60634075178,514.26198936695,537.96172218451,562.75365576207,588.68812410589],description:"Wendy Carlos' Alpha scale with perfect fifth divided in nine"},carlos_alpha2:{frequencies:[261.6255653006,267.58616452957,273.68256372566,279.91785681123,286.29520819723,292.81785438923,299.48910562989,306.31234757893,313.29104303136,320.42873367481,327.729041887,335.19567257401,342.83241505062,350.6431449633,358.63182625716,366.8025131876,375.1593523779,383.7065849236,392.44854854484,401.3896797878,410.5345162762,419.88769901416,429.45397474154,439.23819834286,449.24533531117,459.48046426806,469.94877954106,480.6555937997,491.60634075178,502.8065779009,514.26198936695,525.97838877075,537.96172218451,550.21807114943,562.75365576207,575.57483783111,588.68812410589],description:"Wendy Carlos' Alpha prime scale with perfect fifth divided by eightteen"},carlos_beta:{frequencies:[261.6255653006,271.44693432634,281.63699549204,292.20958942356,303.17907632096,314.56035546319,326.36888544505,338.62070517372,351.33245565363,364.52140258903,378.2054598351,392.40321372938,407.13394833666,422.41767164147,438.27514272393,454.72789995564,471.7982902542,489.50949943583,507.88558370741,526.95150234083,546.73315157381,567.25739978343,588.55212398003],description:"Wendy Carlos' Beta scale with perfect fifth divided by eleven"},carlos_beta2:{frequencies:[261.6255653006,266.49100855797,271.44693432634,276.49502530642,281.63699549204,286.87459075215,292.20958942356,297.64380291476,303.17907632096,308.81728905054,314.56035546319,320.41022551991,326.36888544505,332.43835840072,338.62070517372,344.91802487526,351.33245565363,357.86617542024,364.52140258903,371.30039682974,378.2054598351,385.23893610237,392.40321372938,399.70072522531,407.13394833666,414.70540688852,422.41767164147,430.27336116448,438.27514272393,446.42573318931,454.72789995564,463.18446188312,471.7982902542,480.57230974851,489.50949943583,498.61289378764,507.88558370741,517.33071758003,526.95150234083,536.75120456442,546.73315157381,556.90073257014,567.25739978343,577.80666964473,588.55212398003],description:"Wendy Carlos' Beta prime scale with perfect fifth divided by twentytwo"},carlos_gamma:{frequencies:[261.6255653006,266.98388983977,272.45195763676,278.03201633122,283.72635959645,289.53732808222,295.4673103769,301.51874398927,307.69411635045,313.99596583639,320.42688281121,326.98951069203,333.68654703547,340.52074464653,347.49491271011,354.6119179457,361.87468578579,369.2862015783,376.84951181374,384.56772537748,392.44401482761,400.48161769905,408.68383783428,417.05404674148,425.59568498025,434.31226357598,443.20736546293,452.28464695708,461.547839259,471.00074998758,480.64726474513,490.49134871455,500.53704828923,510.78849273629,521.24989589392,531.92555790347],description:"Wendy Carlos' Gamma scale with third divided by eleven or fifth by twenty"},carlos_harm:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Carlos Harmonic & Ben Johnston's scale of 'Blues' from Suite f.micr.piano (1977) & David Beardsley's scale of 'Science Friction'"},carlos_super:{frequencies:[261.6255653006,277.97716313189,294.32876096318,313.95067836072,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Carlos Super Just"},carlson:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Brian Carlson's guitar scale (or 7 is 21/16 instead) fretted by Mark Rankin"},cassandra1:{frequencies:[261.6255653006,265.52313139125,271.43629763673,275.48001908354,279.58398024378,283.7490817683,290.06813927787,294.38942683035,298.7750924519,305.42877739024,309.97889991383,314.59680966486,319.28351286859,326.39391783308,331.25637026535,336.19125912653,343.67819754196,348.79814248043,353.99435973883,359.26798967332,367.26884406885,372.74022844163,378.29312490007,386.71766674112,392.47878977853,398.32574139651,407.19640716832,413.26261206104,419.41919061043,425.66748431192,435.14704737009,441.62964923022,448.20882304357,458.19037897128,465.01626879626,471.9438445688,478.97462660712,489.64133323501,496.93576068834,504.33885972365,515.57042175735,523.2511306012],description:"Cassandra temperament (Erv Wilson), 13-limit, g=497.866"},cassandra2:{frequencies:[261.6255653006,265.34593985135,270.18130909623,275.10479273152,279.0168449367,284.10133754875,289.27848429833,293.3920895946,298.7385406747,304.18241953205,309.72550158209,314.12986807617,319.85422136322,325.68288889698,330.31417303802,336.33345109576,342.46241778116,348.70307193775,353.66170827405,360.10644584283,366.66862514012,371.88273569526,378.65951299923,385.5597827545,392.58579535013,398.16845391153,405.42423290482,412.81223314336,418.68251621245,426.31212065787,434.08075852776,440.25348482514,448.27617460765,456.44506096456,464.76280801961,471.37183998139,479.96159605313,488.70788228454,495.65741860341,504.6897280454,513.8866322474,523.2511306012],description:"Cassandra temperament, schismic variant, 13-limit, g=497.395"},catler:{frequencies:[261.6255653006,269.80136421624,279.06726965397,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,322.00069575458,327.03195662575,343.38355445704,348.83408706747,359.73515228832,367.91095120397,380.54627680087,392.4383479509,418.60090448096,425.14154361347,436.04260883433,441.49314144476,457.84473927605,465.11211608996,483.00104363188,490.54793493862,523.2511306012],description:'Catler 24-tone JI from "Over and Under the 13 Limit", 1/1 3(3)'},cbrat19:{frequencies:[261.6255653006,272.05448646742,281.65887246066,291.7164960911,303.76422848609,314.23522436032,325.78124145721,339.14379232251,350.05979530932,364.18597952318,377.95660802413,389.93691761381,406.2330981776,420.87727247778,436.65546295526,454.14747622901,467.92430113657,486.684954898,506.27371414348,523.2511306012],description:"brats = -1 -1 -1 -1 -1 -1 -1 -1 0 3/7 390808/591947 1/2 1/2 1/2 1/2 1/4 0 0 -1"},ceb88f:{frequencies:[261.6255653006,275.30280934529,289.60851057007,304.80308899558,320.69584574771,337.31885569235,354.97473368038,373.44187862432,393.05647479461,413.57234190108,435.03089105397,457.82276134277,481.66189358475,506.59641128799],description:"88 cents steps with equal beating fifths"},ceb88s:{frequencies:[261.6255653006,275.27750547448,289.60710371138,304.74878776577,320.64207659236,337.32428016541,354.95189689869,373.45451504132,392.8755714351,413.39725679488,434.93759942207,457.54716438978,481.43806014345,506.51485544552,533.01280425363],description:"88 cents steps with equal beating sevenths"},ceb88t:{frequencies:[261.6255653006,275.20384442973,289.60910777612,304.54100616185,320.3823320487,337.18847246966,354.60902163481,373.09056856306,392.69773188536,413.02170471677,434.58350960486,457.45853552679,481.16983689269,506.32527343025,533.01280425363],description:"88 cents steps with equal beating 7/6 thirds"},cet105:{frequencies:[261.6255653006,277.98437592617,295.36606150822,313.83458334354,333.45789502888,354.30820661869,376.46223533368,400.00150378562,425.01262301844,451.58762919357,479.82430313337,509.82655042708,541.70476218406,575.57624366132],description:"Equal temperament with very good 6/5 and 13/8"},cet105a:{frequencies:[261.6255653006,278.09098920184,295.59266404146,314.19580976213,333.96974580612,354.98815389674,377.32935907335,401.07660961589,426.31839262878,453.14877154631,481.66772230429,511.98151233648,544.20310589723,578.45256778249,614.85751848055,653.5536209391,694.68506540856,738.40511604959,784.8766959018],description:"18th root of 3"},cet111:{frequencies:[261.6255653006,279.02234237845,297.57591715819,317.3632108372,338.46625752841,360.97255206362,384.97540137331,410.57431878206,437.87543474729,466.99193686517,498.04453913461,531.16197935691,566.48156495049,604.14972437838,644.32262592407,687.16682227215,732.8599410185,781.59142109591,833.56329335333,888.99103711409,948.10444554232,1011.14859670036,1078.38486510237,1150.09200534594,1226.56730779978,1308.127826503],description:'25th root of 5, Karlheinz Stockhausen in "Studie II" (1954)'},cet111a:{frequencies:[261.6255653006,279.09119608948,297.72279782842,317.59821198502,338.80046946076,361.41815173468,385.54574794778,411.2840547398,438.74060487161,468.03009995854,499.27490936609,532.60556349815,568.16130614457,606.09068659426,646.55215742719,689.71476370538,735.75882016749,784.8766959018],description:"17th root of 3. McLaren 'Microtonal Music', volume 1, track 8"},cet112:{frequencies:[261.6255653006,279.13807488234,297.82282461384,317.75828292395,339.02816520012,361.72179601836,385.93447726538,411.76789245756,439.33052439618,468.73812456399,500.11419015728,533.59048802364,569.30759588159,607.4155105893,648.07426630787,691.45461344743,737.73872000797,787.12095980595,839.80871352279,896.02324851892,956.00062766807,1019.99273078287,1088.26829265547,1161.11404316696,1238.83588500259,1321.76021726874,1410.23528064063,1504.63263477595,1605.34868446028,1712.8063948195,1827.45703443292,1949.78208984359,2080.29524321777,2219.54459500735,2368.11492276755,2526.63016208001,2695.75596930795,2876.20260183901,3068.72784518,3274.14022786751,3493.30234242079,3727.13457771193,3976.61891204907,4242.80307922676,4526.8048719912,4829.81697864182,5153.11189830808,5498.04733953642,5866.07179694692,6258.73081875602,6677.6733762505,7124.65885956048,7601.56430418436,8110.3925243186],description:"53rd root of 31. McLaren 'Microtonal Music', volume 4, track 16"},cet114:{frequencies:[261.6255653006,279.47933554513,298.55147893584,318.92513586406,340.68912750315,363.93832870511,388.77409689134,415.30469757995,443.64579124771,473.92093172942,506.26209616971,540.81027939262,577.71608583803,617.1404103833,659.25511382574,704.24379572788,752.30258557703,803.64098403142,858.48280642307,917.06712239825,979.64933665453,1046.5022612024],description:"21st root of 4"},cet115:{frequencies:[261.6255653006,279.68949451567,299.00064605783,319.64513593742,341.71502406609,365.30872604057,390.53145607553,417.49568846357,446.32166408632,477.13792869952,510.08190181294],description:"2nd root of 8/7. Werner Linden, Musiktheorie, 2003 no.1 midi 15.Eb=19.44544 Hz"},cet117:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,342.56848033562,366.44956000397,391.99543598175,419.32216217931,448.5538823653,479.82340237272,513.27277840175,549.0539690723,587.32953583482,628.27336308449,672.07145630843,718.92279942609,769.0402362475,822.65144744826,880,941.34642612261,1006.96941915374,1077.1671181081,1152.25842837255,1232.58448551457,1318.51022765149,1410.42601205207,1508.74940691646,1613.92711604023,1726.4369576214,1846.79005749489,1975.53320502451,2113.25127526858,2260.56991361642,2418.15841952625,2586.73271138559,2767.05861265008,2959.95538169309],description:"72nd root of 128, step = generator of Miracle"},cet118:{frequencies:[261.6255653006,280.22072913446,300.13755324878,321.46997343155,344.3186075731,368.79121945838,395.0032340925,423.07827792492,453.14877154631,485.35654007358,519.85349135637,556.8023269521,596.37732215892,638.76512932755,684.16567043124,732.79307276157,784.8766959018],description:"16th root of 3. McLaren 'Microtonal Music', volume 1, track 7"},cet126:{frequencies:[261.6255653006,281.50639381697,302.89795903081,325.91506125677,350.68122444233,377.32935907335,406.00247545366,436.85445118639,470.05085697597,505.76984518255,544.20310589723,585.55689566922,630.05314440547,677.93064638327,729.44634176744,784.8766959018],description:"15th root of 3. McLaren 'Microtonal Music', volume 1, track 6"},cet126a:{frequencies:[261.6255653006,281.42815779395,302.72962012827,325.64340264099,350.29154279212,376.80531512858,405.32593044476,436.00528786292,469.00678383895,504.50618240233,542.69254813034,583.76926541313,627.95510352048,675.48539363125,726.61327927927,781.61106458091,840.77166451082,904.41016494992,972.86550081423,1046.5022612024],description:"19th root of 4"},cet133:{frequencies:[261.6255653006,282.54488373859,305.13688994853,329.53533037111,355.88464567857,384.34082587483,415.07233376839,448.26110228542,484.10361152681,522.81205194575,564.61558053174,609.76167743791,658.5176110828,711.17202040031],description:"13th root of e"},cet140:{frequencies:[261.6255653006,283.72172983292,307.68407293041,333.67021037701,361.85106232365,392.4119924075,425.55401329039,461.49511402661,500.47170241421,542.7401414615,588.57845795114,638.28815062634,692.19618110881,750.65713728047,814.05554253056,882.80839491877,957.36792629418,1038.22454144983,1125.91008648826,1221.00130775733,1324.12366033919,1435.95544645068,1557.23222387914,1688.75170820144,1831.3789571042],description:"24th root of 7"},cet141:{frequencies:[261.6255653006,283.85429714132,307.97166902637,334.13814720468,362.52783176564,393.32961502355,426.7484383229,463.0066556268,502.34551296122,545.02675670673,591.33436279611,641.57644431325,696.08728968715,755.22958979995,819.39685117042,889.01601417107,964.55029369918,1046.5022612024],description:"17th root of 4"},cet146:{frequencies:[261.6255653006,284.69629445872,309.80145226022,337.12043918596,366.84847565362,399.19799705513,434.40017432099,472.70655602525,514.39088038704,559.75102196641,609.11112257023,662.82390755693,721.27320639821,784.8766959018],description:"13th root of 3, Bohlen-Pierce approximation"},cet148:{frequencies:[261.6255653006,284.92791524313,310.30575035912,337.94392545772,368.04376529149,400.82452432448,436.52498800167,475.40520223986,517.74838217475,563.86296895784,614.08486606944,668.77990486322,728.34649714081,793.21854485147,863.86858278563,940.81124699851,1024.60701225804,1115.86625569541,1215.25373699679,1323.49342609599,1441.37375222579,1569.7533918036],description:"21th root of 6, Moreno's C-21"},cet152:{frequencies:[261.6255653006,285.70808394691,312.0073878821,340.72733440875,372.0911362405,406.34196228781,443.74556186468,484.59214639302,529.19833545193,577.91081034511,631.10724720728,689.20039277289,752.64098693245,821.92125998587],description:"13th root of pi"},cet158:{frequencies:[261.6255653006,286.70831230381,314.19580976213,344.3186075731,377.32935907335,413.50494015483,453.14877154631,496.5933637384,544.20310589723,596.37732215892,653.5536209391,716.21156534988,784.8766959018],description:`12th root of 3, Moreno's A-12, see dissertation "Embedding Equal Pitch Spaces.`},cet159:{frequencies:[261.6255653006,286.82842069679,314.45911373416,344.75151869218,377.96204482418,414.37180231943,454.28897403052,498.05144066897,546.02962057131],description:"4e-th root of e. e-th root of e is highest x-th root of x"},cet160:{frequencies:[261.6255653006,286.95745534843,314.74210513576,345.21700307457,378.64263238751,415.30469757995,455.51656649021,499.62194879119,547.99783383788,601.05771297194,659.25511382574,723.0874768355,793.10040709753,869.89233791055,954.11964586525,1046.5022612024],description:'15th root of 4, Rudolf Escher in "The Long Christmas Dinner" (1960)'},cet160a:{frequencies:[261.6255653006,287.06963246392,314.98822873932,345.62201499981,379.23505183234,416.11708252541,456.58602635137,500.99072933585,549.71395617638,603.17569602575,661.83679400878,726.20290371434,796.8288589228,874.32344802967,959.35468153537,1052.65552131526,1155.03021091382,1267.36122959081,1390.6168610076,1525.85955590014,1674.2551187631,1837.08270650821,2015.74588766663,2211.78472029595,2426.88907720145,2662.91313932742,2921.89140956529,3206.0563044734,3517.85730085803,3859.98211320646,4235.37982185266,4647.28638964387,5099.2524155536,5595.17379976366,6139.32543031277,6736.39784717273,7391.53779523322,8110.3925243186],description:"37th root of 31. McLaren 'Microtonal Music', volume 2, track 7"},cet163:{frequencies:[261.6255653006,287.45276480522,315.82957660097,347.00769742017,381.26366336311,418.90131810157,460.25449359467,505.68997636603,555.61077020009,610.45965236807],description:'9th root of 7/3. Jeff Scott in "Quiet Moonlight" (2001)'},cet163a:{frequencies:[261.6255653006,287.41152361975,315.7389582221,346.85836204295,381.04491126651,418.60090448096,459.85843616195,505.18233428314,554.97338050766],description:"5th root of 8/5"},cet166:{frequencies:[261.6255653006,287.95619440582,316.93680165166,348.83408706747],description:"3rd root of 4/3"},cet173:{frequencies:[261.6255653006,289.10449173793,319.46957112932,353.02394045842,390.10257564198,431.07563562091,476.35215768611,526.38414093011,581.67105858963,642.7648443263,710.27540222401,784.8766959018],description:"11th root of 3, Moreno's A-11"},cet175:{frequencies:[261.6255653006,289.48414624674,320.30918244523,354.41654988346,392.15575985798,433.91353804458,480.11779720922,531.2420078798,587.8100594825,650.40162657281,719.65810898332,796.28920449429,881.08018137935,974.89992535123,1078.70983713651,1193.57370864212,1320.66858845324,1461.29686662697,1616.89961515233,1789.07135516847,1979.57639663535,2190.36691789568,2423.60297039629,2681.67459807517,2967.22638952895,3283.18448966052,3632.78664249769,4019.61535560076,4447.6346101102],description:"28th root of 7. McLaren 'Microtonal Music', volume 6, track 3"},cet175a:{frequencies:[261.6255653006,289.53628281337,320.42456924675,354.60807736883,392.4383479509,434.30442400296,480.63685362987,531.91211578736],description:"4th root of 3/2"},cet178:{frequencies:[261.6255653006,289.91935960089,321.27301846367,356.01745236555,394.51936464224,437.18511000944,484.46499093218,536.85800524663,594.91712478053,659.25511382574,730.5510078664,809.55727745129,897.10776473059,994.12650420781,1101.63744560301,1220.77528002516,1352.79740322961,1499.09721690784,1661.21879031979,1840.87318566558,2039.95650991293,2260.56991361642,2505.04181781964,2775.9524141353,3076.16094499002,3408.83584914421,3777.48827884202,4186.0090448096],description:"27th root of 16"},cet181:{frequencies:[261.6255653006,290.48091212946,322.51878830959,358.09020513941,397.58488163802,441.43552612833,490.12256936272,544.17943316245,604.19836236377,670.83693141722,744.82523718317,826.97390553231,918.18295398723,1019.45167961503,1131.88958971281,1256.72856920928,1395.33634826987],description:"6.625 tET. The 16/3 is the so-called Kidjel Ratio promoted by Maurice Kidjel in 1958"},cet182:{frequencies:[261.6255653006,290.70585738945,323.0184918031,358.92275093366,398.81785224951,443.14738973192,492.40425618917,547.1361382945,607.95159681319,675.52683545966,750.61321956915,834.04563048717,926.75174856904,1029.76237395443,1144.22286477952,1271.40590625444,1412.7256395721,1569.7533918036],description:"17th root of 6, Moreno's C-17"},cet195:{frequencies:[261.6255653006,292.81795587218,327.72927094457,366.80289667873,410.53509014096,459.48126579586,514.26306468681,575.57624366132],description:"7th root of 11/5"},cet21k:{frequencies:[261.6255653006,264.89588486686,268.20708342769,271.55967197054,274.95416787017,278.3910952928,281.87098404962,285.39437141672,288.96180112674,292.57382370898,296.23099657435,299.9338841014,303.68305772341,307.47909424051,311.32258299104,315.21411535185,319.1542918681,323.14372059172,327.18301717534,331.2728049672,335.41371510742,339.60638662537,343.85146653829,348.14960995112,352.50148015762,356.90774874273,361.36909568619,365.8862094675,370.45978717215,375.09053459917,379.77916637013,384.52640603933,389.33298620552,394.19964862491,399.1271443257,404.11623372391,409.16768674077,414.28228292154,419.46080913287,424.70406934596,430.01287031296,435.38803129329,440.83038178715,446.34076166346,451.92002128953,457.56902166224,463.28863454093,469.07974258197,474.94323947488,480.88003008033,486.89103056976,492.97716856672,499.13938329007,505.37862569893,511.69585863936,518.09205699304,524.56820782765],description:"scale of syntonic comma's, almost 56-tET"},cet222:{frequencies:[261.6255653006,297.3462123974,337.94392545772,384.08458333231,436.52498800167,496.12526073276,563.86296895784,640.8491384935,728.34649714081,827.79017883768,940.81124699851,1069.2634803114,1215.25373699679,1381.1765584523,1569.7533918036],description:"14th root of 6, Moreno's C-14"},cet233:{frequencies:[261.6255653006,299.41460910537,342.66187834083,392.15575985798,448.79850611373,513.6227001391,587.8100594825,672.71300106294,769.87926947615,881.08018137935,1008.34288220748,1153.98733901804,1320.66858845324,1511.42518780658,1729.7345489351,1979.57639663535,2265.50524176842,2592.73349533282,2967.22638952895,3395.81083571538,3886.29974647262,4447.6346101102],description:"21st root of 17. McLaren 'Microtonal Music', volume 2, track 15"},cet24:{frequencies:[261.6255653006,265.3411057651,269.1094134006,272.9312375932,276.80733837157,280.73848655813,284.72546392233,288.7690633361,292.87008893155,297.02935626086,301.24769245848,305.52593640563,309.86493889709,314.26556281043,318.72868327757,323.25518785885,327.84597671953,332.50196280875,337.22407204116,342.01324348101,346.8704295289,351.79659611118,356.79272287204,361.85980336835,366.9988452672,372.21087054633,377.49691569736,382.85803193188,388.29528539052,393.80975735501,399.40254446313,405.07475892685,410.82752875349,416.66199797006,422.57932685074,428.58069214763,434.66728732478,440.84032279551,447.10102616311,453.45064246502,459.89043442035,466.42168268106,473.04568608657,479.76376192214,486.57724618073,493.48749382879,500.49587907561,507.6037956467,514.81265706088,522.12389691142,529.53896915113],description:"least squares fit primes 2-13"},cet258:{frequencies:[261.6255653006,303.75687573192,352.67287219582,409.46613795376,475.40520223986,551.96287401486,640.8491384935,744.04935121924,863.86858278563,1002.98310468409,1164.50016626124,1352.0273979586,1569.7533918036],description:"12th root of 6, Moreno's C-12"},cet29:{frequencies:[51.91308719749,52.80006242627,53.70219231256,54.6197354699,55.55295587693,56.50212107609,57.46750349647,58.44938022184,59.44803272677,60.46374832519,61.49681820986,62.54753889218,63.61621194966,64.70314373878,65.80864697157,66.93303858176,68.07664129187,69.2397833384,70.42279815925,71.62602610967,72.84981213985,74.09450750046,75.36046944358,76.64806088248,77.95765225928,79.28961901721,80.64434345693,82.02221441105,83.42362735565,84.84898403373,86.29869452271,87.77317443616,89.27284697886,90.79814258634,92.34949851506,93.9273610926,95.53218267212,97.16442386902,98.82455316866,100.51304648023,102.230389586,103.97707482641,105.75360353451,107.56048560902,109.39823902877,111.26739251837,113.16848194039,115.10205294491,117.06866050489,119.06886838764,121.10325205621,123.17239474253,125.2768903313,127.4173428542,129.59436591466,131.80858584574,134.06063743615,136.35116706905,138.68083217153,141.05030058861,143.46025402018,145.91138336926,148.40439215824,150.93999592972,153.51892156515,156.14191102559,158.8097162888,161.52310306741,164.28285015685,167.08974869373,169.94460622727,172.84824120887,175.80148703892,178.80519135714,181.8602162858,184.96743760879,188.12774927869,191.34205731671,194.61128429254,197.93636853869,201.31826325695,204.75794142387,208.2563891515,211.8146105632,215.43362693858,219.11447574094,222.85821595641,226.66592086774,230.53868336123,234.47761499594,238.48384494529,242.55852580808,246.70282574354,250.91793424736,255.20506113867,259.56543598745],description:"95th root of 5"},cet39:{frequencies:[261.6255653006,267.55763511324,273.62420803617,279.82833216202,286.17312954462,292.66178817784,299.29756995616,306.08381073387,313.02392200207,320.12139075456,327.37978859613,334.80276256646,342.39404424694,350.15744982839,358.09687996112,366.21632994368,374.51987945827,383.01170275779,391.6960687417,400.57734310204,409.65998815178,418.94857448076,428.44776921301,438.16234766073,448.09719341103,458.25729813392,468.64777462103,479.27384364987,490.14084702027,501.25424765147,512.61963232837,524.24271148185,536.12933410494,548.28547272565,560.71723832061,573.43088042607,586.43278689221,599.72950056876,613.32770249519,627.23422858353,641.45606974252,656.00037539202,670.87445318194,686.08578808043,701.64202314362,717.55097860059,733.82065199545,750.45921787297,767.47504913108,784.8766959018],description:"49th root of 3"},cet39a:{frequencies:[261.6255653006,267.54999903763,273.60843178624,279.80421399945,286.14029787289,292.61969147246,299.24597805224,306.02231493662,312.9519192023,320.03862308027,327.28580327671,334.69690040195,342.27601296361,350.02675229311,357.95279806627,366.05853356918,374.34782106107,382.82459589435,391.49354592099,400.35880176332,409.42457221564,418.6958708581,428.17711532294,437.87280684605,447.78830736843,457.9283414747,468.29772316218,478.90218693807,489.74678566745,500.83666784082,512.17796641877,523.77608535691],description:"31-tET with least squares octave; equal weight to 5/4, 3/2, 7/4 and 2/1"},cet39b:{frequencies:[261.6255653006,267.54443554965,273.59736903996,279.78708267123,286.11699418435,292.58994480246,299.2095086599,305.97865699219,312.90112748358,319.98002733127,327.21907624411,334.6220906301,342.19239338178,349.93416455252,357.85087908811,365.94690831825,374.22588619981,382.6921630398,391.3502022376,400.20389001205,409.25811505631,418.51694141988,427.98548149913,437.66798531163,447.56979919346,457.69536764001,468.05001127562,478.63918904181,489.46765396188,500.54138513107,511.86535306771,523.4458104663],description:"31-tET with l.s. 8/7, 5/4, 4/3, 3/2, 8/5, 7/4, 2/1; equal weights"},cet39c:{frequencies:[261.6255653006,267.52919373065,273.56603860918,279.73910598956,286.05147140959,292.50627485027,299.10673210371,305.85612987468,312.75782903301,319.8152662872,327.03195662575,334.41149334841,341.95754947331,349.67388372612,357.56433846376,365.63284274659,373.88341429498,382.32016148985,390.94728541851,399.7690842757,408.78994578219,418.01436575232,427.44693588739,437.09235368188,446.9554220819,457.04105241293,467.35426952494,477.9002035559,488.68410850494,499.71135422907,510.98743222773,522.51795602393],description:"10th root of 5/4"},cet39d:{frequencies:[261.6255653006,267.55786538889,273.62467903016,279.82905628857,286.1741163878,292.66304927922,299.29911724561,306.08565654127,313.02607906932,320.12387409698,327.38261000985,334.80593610581,342.39758442978,350.16137164992,358.1012009765,366.22106412416,374.52504331879,383.0173133498,391.70214366901,400.58390053708,409.66704921865,418.95615622721,428.45589162089,438.17103135034,448.1064596598,458.26717154264,468.65827525256,479.28499487175,490.15267293726,501.26677312698,512.63288300643,524.25671683791],description:"31-tET with l.s. 5/4, 3/2, 7/4"},cet39e:{frequencies:[261.6255653006,267.56053134626,273.63013029147,279.83741943955,286.18551905392,292.67762672082,299.3170076044,306.10700082387,313.05102655064,320.15257723818,327.41522444303,334.84262641603,342.43851674365,350.20672153383,358.15114775562,366.27579142084],description:"15th root of 7/5, X.J. Scott"},cet44:{frequencies:[261.6255653006,268.36512159638,275.27829096782,282.369545742,289.64347345451,297.10477981732,304.75829176301,312.60896056742,320.66186505284,328.92221487359,337.3953538863,346.08676360706,355.00206675748,364.14703090225,373.52757218034,383.14975913231,393.01981662619,403.14412988459,413.52924861543,424.18189124916,435.1089492851,446.31749174973,457.81476976988,469.60822126365,481.70547575226,494.11435929576,506.84289955596,519.89933098975,533.2921001762],description:"least maximum error of 10.0911 cents to a set of 11-limit consonances"},cet45:{frequencies:[261.6255653006,268.55812265554,275.67437899809,282.97903853108,290.47742047479,298.17449463282,306.07552595385,314.18591889722,322.51122112969,331.05693609414,339.82928674186,348.83408706747],description:"11th root of 4/3"},cet45a:{frequencies:[261.6255653006,268.48547646737,275.52525683447,282.74962263341,290.1634137569,297.77159700127,305.57926939395,313.59166160814,321.8141414671,330.2522175402,338.9115428334,347.79791857637,356.91729810903,366.27579142084],description:"13th root of 7/5, X.J. Scott"},cet49:{frequencies:[261.6255653006,269.10883825956,276.80615518671,284.72363837915,292.86758524998,301.24447333711,309.86096545541,318.72391499615,327.84037137809,337.21758565441,346.86301628009,356.78433504421,366.98943317194,377.48642760107,388.28366743806,399.38974059878,410.81348063915,422.56397378117,434.65056613995,447.08287115744,459.87077724873,473.02445566714,486.55436859423,500.47127746122,514.78625150841,529.51067658945],description:"least squares fit primes 3-13"},cet49a:{frequencies:[261.6255653006,269.10939785623,276.80730639354,284.72541458317,292.8700212642,301.24760545475,309.86483150611,318.72855440416,327.84582522255,337.22389673177,346.87022916874,356.7924961714,366.99859088307,377.49663223147,388.29497138724,399.40219840734,410.82714906841,422.57891189558,434.66683539241,447.10053547759,459.8899031344,473.04511227892,486.57662785344,500.49521415122,514.81194337949,529.53820446742],description:"least squares fit primes 5-13"},cet49b:{frequencies:[261.6255653006,269.11089011973,276.81037630182,284.73015118141,292.87651740119,301.25595792767,309.87514121046,318.74092648901,327.86036925135,337.24072684885,346.88946427176,356.81426008988,367.0230125633,377.52384592787,388.3251168606,399.43542112995,410.86360043647,422.61874944911,434.71022304287,447.14764374346,459.94090938509,473.10020098719,486.63599085665,500.55905092174,514.88046130456,529.61161913871],description:"least squares fit primes 3-11"},cet51:{frequencies:[261.6255653006,269.45730810595,277.52349357863,285.8311397433,294.38747470873,303.19994295657,312.27621181854,321.62417814738,331.25197518754,341.1679796516,351.38081900843,361.89937898954,372.73281132023,383.89054168203,395.38227791356,407.21801845694,419.40806105693,431.96301172054,444.89379394488,458.21165822114,471.92819182319,486.05532888913,500.60536080461,515.59094689708,531.0251223827,546.92132188791,563.29337300176,580.1555203085,597.52243480304,615.40922665547,633.83145835774,652.80515826392,672.34683453572,692.47348950549,713.20263446921,734.55230492227,756.54107625132,779.18807989593,802.51301999392,826.53619052513,851.2784929682,876.7614544861,903.00724665589,930.0387047592,957.87934765022,986.55339821839,1016.08580446361,1046.5022612024],description:"47nd root of 4"},cet53:{frequencies:[261.6255653006,269.81714175785,278.26519897904,286.97776745533,295.963129115,305.22982618403],description:"5th root of 7/6, X.J. Scott"},cet54:{frequencies:[261.6255653006,269.96706985652,278.57452968396,287.45642599351,296.6215054241,306.0787984682,315.83762188043,325.9075894649,336.29862154621,347.0209567468,358.08515411748,369.5021153806,381.28308783765,393.43967739203,405.98385998242,418.92799580061,432.28483186346,446.06752886518,460.28966468743,474.96525012045,490.10874266572,505.73506369981,521.85960157932,538.49824405725,555.66738252045,573.38393096839,591.66534267587,610.52963091344,629.99537269573,650.08174791487,670.80854445602,692.19618110881,714.26572768264,737.03893002078,760.53821452531,784.78673539949,809.80838082331,835.62780061242,862.2704354823,889.76252234217,918.13114956434,947.40426420901,977.61070438283,1008.78022764847,1040.94354635268,1074.13233401713,1108.37929206026,1143.71815851921,1180.1837471134,1217.81198154093,1256.63993812708,1296.7058535394,1338.04920533515,1380.71072249048,1424.73243255855,1470.15770307252,1517.03129303135,1565.39936221354,1615.30956841503,1666.81108016015,1719.95463363144,1774.79258265191,1831.3789571042],description:"62nd root of 7"},cet54a:{frequencies:[36.70809598968,37.88151295543,39.09243955873,40.34207507177,41.63165640381,42.96246070241,44.33580570763,45.75305128262,47.21560103286,48.72490261351,50.28245077394,51.88978777214,53.5485051662,55.26024570942,57.02670371,58.84962859429,60.73082539186,62.67215683218,64.67554556259,66.74297456936,68.87649134796,71.07820847085,73.35030604133,75.69503428946,78.11471406483,80.61174171737,83.18858976192,85.8478097501,88.59203530858,91.42398271579,94.34645661434,97.36235078878,100.47465152683,103.6864411753,107.00089881505,110.42130694669,113.95105240089,117.59363027227,121.3526480812,125.23182656372,129.23500749643,133.36615476182,137.62935895249,142.02884224198,146.56895930934,151.25420649717,156.08922305851,161.0787965455,166.22786851013,171.54153558634,177.0250602084,182.68387207023,188.52357443227,194.5499507934,200.76896615752,207.18677957808,213.80974586608,220.64442297146,227.69757979185,234.97619765489,242.48748500016,250.23887937817,258.23805608937,266.49293732345,275.01169389411,283.8027624226,292.87484767725,302.23693268442,311.89828942495,321.86848086456,332.15738106504,342.77517792247,353.73238500089,365.03985405114,376.70877738729,388.75071142436,401.17757988308,414.00168763976,427.23573537822,440.89282237095,454.98647402737,469.53064564449,484.53973861665,500.02861758376,516.01261368641,532.50755680773,549.52977996323,567.09613827221,585.22402902787,603.93139550692,623.23676470498,643.1592524742,663.71858572717,684.9351219702,706.82987354375,729.42451222373,752.74141479803,776.80366927173,801.63510168485,827.26030448295,853.70464190233,880.99430375232],description:"101st root of 24"},cet54b:{frequencies:[261.6255653006,269.96795403263,278.5763544202,287.45924871019,296.62539133416,306.08381073387,315.84382837889,325.91506125677,336.30743300953,347.03118371184,358.09687996112,369.51542742358,381.29807310848,393.45642905887,406.00247545366,418.94857448076,432.30748251802,446.09236270275,460.31680056078,474.99480683953,490.14084702027,505.76984518255,521.89720128632,538.53880634615,555.71105808945,573.43088042607,591.71572697754,610.58361784146,630.05314440547,650.14349087612,670.87445318194,692.26646247798,714.3405894063,737.11858847932,760.62290389144,784.8766959018],description:"35th root of 3 or shrunk 22-tET"},cet55:{frequencies:[261.6255653006,270.01349691657,278.67035254505,287.60475577316,296.82560168354,306.34207552634,316.16365537714,326.30012507123,336.76157646737,347.55843063202,358.70144085484,370.20170518484,382.07067969055,394.32018111076,406.96241165943,420.00996255663,433.47583121124,447.37342422819,461.71658555081,476.51960046685,491.79721226214,507.56463983627,523.83758122386,540.63224654693,557.96536270557,575.85419620437,594.31655714751,613.37083662462,633.03601203256,653.33166919923,674.2780257851,695.8959359612,718.20693418482,741.23324143097,764.99779551626,789.52425640623,814.83705588084,840.96140460432,867.92332151557,895.74966491622,924.46813868508,954.10735043232,984.69681977767,1016.26701863443,1048.84937826003,1082.47635523452,1117.18144085251,1152.9992001672,1189.96531328939,1228.1165836432,1267.49101522141,1308.127826503],description:"51th root of 5"},cet55a:{frequencies:[261.6255653006,270.1234331478,278.89732210685,287.95619440582,297.30930820811,306.96622255393,316.93680165166,327.23123542864,337.86004496999,348.83408706747],description:"9th root of 4/3"},cet63:{frequencies:[261.6255653006,271.38398887572,281.50639381697,292.00635633712,302.89795903081,314.19580976213,325.91506125677,338.07143142496,350.68122444233,363.76135261718,377.32935907335,391.4034412791,406.00247545366,421.14604188408,436.85445118639,453.14877154631,470.05085697597,487.58337662462,505.76984518255,524.63465441916,544.20310589723,564.50144490757,585.55689566922,607.39769784277,630.05314440547,653.5536209391,677.93064638327,703.21691530872,729.44634176744,756.65410477833,784.8766959018],description:"30th root of 3 or stretched 19-tET"},cet63a:{frequencies:[261.6255653006,271.37251603396,281.48259278098,291.96932561311,302.84674360983,314.12940356828,325.83240291761,337.9714015469,350.5626427598,363.62297711023,377.1698766242,391.22147055517,405.79656146784,420.91465242294,436.59597307447,452.86150935499,469.73302118774,487.23308701689,505.38512383853,524.21342105699,543.74317298677,564.00051582303,585.01254970054,606.80739415229,629.41421305643,652.8632568014,677.18590276436,702.41470135475,728.58340348685,755.72702964881,783.88190097186,813.08569174348,843.37747981977,874.79780396885,907.38869808556,941.19377721109,976.25827622702,1012.62911525602,1050.35496244617,1089.48630538731,1130.07549372248,1172.17684627813,1215.84669925421,1261.14348767523,1308.127826503],description:"44th root of 5"},cet67:{frequencies:[261.6255653006,271.89449162354,282.56647812794,293.65734341902,305.18353207836,317.16212905639,329.61089159214,342.54827390456,355.99345454941,369.96636271272,384.48771622149,399.57903967613,415.26270466472,431.56196087069,448.50096908674],description:"14th root of 12/7, X.J. Scott"},cet70:{frequencies:[261.6255653006,272.49048247121,283.80660334964,295.59266404146,307.86818385681,320.65348759128,333.96974580612,347.83900623503,362.28423824861,377.32935907335,392.99928119148,409.31995166322,426.31839262878,444.02275580482,462.46235461904,481.66772230429,501.67065719504,522.50428685614,544.20310589723,566.80304433509,590.34152430617,614.85751848055,640.39162865951,666.98613212152,694.68506540856,723.53429383412,753.58158307649,784.8766959018],description:"27th root of 3"},cet78:{frequencies:[261.6255653006,273.68177330057,286.29355449603,299.48651076576,313.28742377221,327.72430932822,342.82647426905,358.62457594514,375.15068445646,392.4383479509],description:"9th root of 3/2"},cet79:{frequencies:[261.6255653006,273.87994580863,286.70831230381,300.13755324878,314.19580976213,328.91254817579,344.3186075731,360.44627930254,377.32935907335,395.0032340925,413.50494015483,432.87325713404,453.14877154631,474.3739811962,496.5933637384,519.85349135637,544.20310589723,569.69324454502,596.37732215892,624.31126899512,653.5536209391,684.16567043124,716.21156534988,749.7584744066,784.8766959018],description:"24th root of 3, James Heffernan (1906)."},cet80:{frequencies:[261.6255653006,273.93704112612,286.82786567404,300.32530171503,314.4578949408,329.25553433534,344.74951538696,360.97260627516,377.95911717185,395.74497280393,414.36778843034,433.8669493945,454.28369442026,475.66120282759,498.04439817054,521.48118104407,546.02084308555,571.71528316122,598.61884237431,626.7884189909,656.28358877393,687.16673097983,719.50316028422,753.36126491573,788.81265129014,825.93229545055,864.79870163404,905.49406830005,948.10446197172,992.7199992577,1039.43503743958,1088.34837402783,1139.56345570838,1193.18859712177,1249.33720993748,1308.127826503],description:"35th root of 5"},cet84:{frequencies:[261.6255653006,274.70153691096,288.43104187674,302.84674360983,317.98293803021,333.87563322966,350.5626427598,368.08366429725,386.48038152577,405.79656146784,426.0781586093,447.37342422819,469.73302118774,493.21014446673,517.86064472263,543.74317298677,570.91930267857,599.45368763079,629.41421305643,660.87215705217,693.9023601738,728.58340348685,764.99779551626,803.23216389999,843.37747981977,885.52924725223,929.78774807537,976.25827622702,1025.05138820617,1076.28316609431,1130.07549372248,1186.55634664103,1245.86008938569,1308.127826503],description:"33rd root of 5"},cet87:{frequencies:[261.6255653006,275.05808287728,289.18026151691,304.0275068203,319.63704721237,336.04802279017,353.30157737897,371.44097305523,390.51169339433,410.56155044631,431.64081781968,453.80235066263,477.10170997643,501.59731726833,527.35059397819,554.42610593952],description:"Least-squares stretched ET to telephone dial tones. 1/1=697 Hz"},cet88:{frequencies:[261.6255653006,275.26799068863,289.6217982776,304.72408298441,320.61387403473,337.33223582731,354.92237405774,373.42974737602,392.90218486657,413.39000965417,434.94616895528,457.62637091093,481.48922855473,506.59641128799,533.01280425363],description:"88 cents steps by Gary Morrison"},cet88_appr:{frequencies:[261.6255653006,275.62199471997,290.69507255622,305.22982618403,320.49131749323,336.37572681506,354.37113606854,373.75080757229,392.4383479509,413.43299207996,436.04260883433,457.84473927605,482.33849075995,504.56359022259,531.55670410281,560.62621135843,588.65752192635,620.14948811994,654.0639132515,686.76710891407,723.50773613993,763.07456546008,801.22829373309],description:"88 cents scale approximated"},cet88b:{frequencies:[261.6255653006,275.26385669298,289.61326650562,304.7105300898,320.59498481995,337.30729585456,354.89100872976,373.39113880701,392.85588995712,413.33509311257,434.8821088097,457.55209870333,481.40413163568,506.49927024418,532.9029023296],description:"87.9745 cents steps. Least squares of 7/6, 11/9, 10/7, 3/2, 7/4."},cet88bis:{frequencies:[261.6255653006,289.53272725508,320.41669955092,337.26306895804,373.23835706057,392.86190344834,434.76782633734,457.62637091093],description:"Bistep approximation of 2212121 mode in 7/4 to 11/9 9/7 10/7 3/2"},cet88bm:{frequencies:[261.6255653006,275.22889829239,289.53954239223,304.59427454323,320.43178392135,337.09277136281,354.62005396115,373.05867644715,392.45602022512,412.86193859025,434.32887139488,456.91198653787,480.66932039657,505.66192697453,531.95403480429],description:"87.75412 cents steps. Minimal highest deviation for 7/6, 11/9, 10/7, 3/2, 7/4."},cet88c:{frequencies:[261.6255653006,275.37188725148,289.84046967782,305.06925821769,321.09819727018,337.96933026971,355.72690383892,374.4174952616,394.09012940783,414.79640018179,436.59061916193,459.52995194191,483.67455974508,509.0877727469,535.83624905561,563.99013984227,593.62329144382,624.813430743,657.64235771869,692.19618110881,728.56553457307,766.84580121693,807.13738838693,849.54597972796,894.18279699007,941.16492045434,990.61558284509,1042.66447461031,1097.44811755542,1155.11020756021,1215.8019705522,1279.68259818323,1346.91964745566,1417.68945580607,1492.17764912727,1570.57960775359,1653.10095047047,1739.95812689496,1831.3789571042],description:"38th root of 7. McLaren 'Microtonal Music', volume 3, track 7"},cet89:{frequencies:[261.6255653006,275.56724848068,290.25186566903,305.71900507847,322.01036982349,339.16988002511,357.2437980159,376.28084921395,396.33236207144,417.45239374596,439.69788420361,463.12880499146,487.80833148705,513.80299757552,541.1828853206,570.0218080747,600.39752248465,632.39191886931,666.09125466774,701.58637981228,738.97299766656,778.35189934333,819.82925103406,863.51687139942,909.53255273344,958.00034936337,1009.05093129669,1062.82192563509,1119.45831186524,1179.11277682321,1241.94614996535,1308.127826503],description:"31st root of 5. McLaren 'Microtonal Music', volume 2, track 22"},cet90:{frequencies:[261.6255653006,275.62199471997,290.36720431405,305.90125228146,322.26633935092,339.50692625527,357.66984706396,376.80444887746,396.96271256675,418.19939952297,440.572208006,464.1419130862,488.97255163391,515.13157534193,542.69005603758,571.72285881831,602.3088534069,634.53113933145],description:"Scale with limma steps"},cet93:{frequencies:[261.6255653006,275.99488223824,291.15340824655,307.14448922429,324.01384989472,341.80973194459,360.58302103444,380.38739950036,401.27949808494,423.31905787312],description:"Tuning used in John Chowning's STRIA, 9th root of Phi"},cet98:{frequencies:[261.6255653006,276.83245825991,292.92324815749,309.94930780463,327.96500300935,347.02785219778,367.1987248383,388.54202015806,411.12588832951],description:"8th root of 11/7, X.J. Scott"},chahargah:{frequencies:[261.6255653006,277.18263097687,283.66146785671,311.12698372208,326.97270111135,348.82502010853,367.86341164695,392.44854854484,415.30469757995,425.01198472693,466.16376151809,493.88330125613,523.2511306012],description:"Chahargah in C"},chahargah2:{frequencies:[261.6255653006,283.66146785671,327.729041887,348.82502010853,392.44854854484,425.01198472693,493.88330125613,523.2511306012],description:"Dastgah Chahargah in C, Mohammad Reza Gharib"},chalmers:{frequencies:[261.6255653006,274.70684356563,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,418.60090448096,436.04260883433,457.84473927605,470.92601754108,488.36772189445,515.07533168556,523.2511306012],description:"Chalmers' 19-tone with more hexanies than Perrett's Tierce-Tone"},chalmers_17:{frequencies:[261.6255653006,269.10058145205,286.15296204753,294.32876096318,313.95067836072,327.03195662575,336.37572681506,343.38355445704,376.74081403286,384.42940207435,392.4383479509,400.61414686654,408.78994578219,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"7-limit figurative scale, Chalmers '96 Adnexed S&H decads"},chalmers_19:{frequencies:[261.6255653006,269.10058145205,290.69507255622,294.32876096318,305.22982618403,313.95067836072,336.37572681506,348.83408706747,356.10146388137,363.36884069528,376.74081403286,384.42940207435,392.4383479509,406.97310157871,436.04260883433,448.50096908674,465.11211608996,470.92601754108,508.71637697339,523.2511306012],description:"7-limit figurative scale. Reversed S&H decads"},chalmers_csurd:{frequencies:[261.6255653006,273.35108123154,287.04667286017,303.37994773979,315.80837468238,323.38635505005,348.83408706747,357.38803216938,383.0466618906,392.4383479509,423.31690179539,433.47765231178,451.2357321491,476.91154755397,500.80604115761,523.2511306012],description:"Combined Surd Scale, combination of Surd and Inverted Surd, JHC, 26-6-97"},chalmers_isurd:{frequencies:[261.6255653006,273.35108123154,287.04667286017,303.37994773979,323.38635505005,348.83408706747,383.0466618906,433.47765231178,523.2511306012],description:"Inverted Surd Scale, of the form 4/(SQRT(N)+1, JHC, 26-6-97"},chalmers_ji1:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,466.02053819169,490.54793493862,523.2511306012],description:"Based loosely on Wronski's and similar JI scales, May 2, 1997."},chalmers_ji2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,466.02053819169,490.54793493862,523.2511306012],description:"Based loosely on Wronski's and similar JI scales, May 2, 1997."},chalmers_ji3:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,366.27579142084,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"15 16 17 18 19 20 21 on 1/1, 15-20 on 3/2, May 2, 1997. See other scales"},chalmers_ji4:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,372.08969287196,395.34529867646,418.60090448096,441.85651028546,465.11211608996,496.11959049595,523.2511306012],description:"15 16 17 18 19 20 on 1/1, same on 4/3, + 16/15 on 16/9"},chalmers_surd:{frequencies:[261.6255653006,315.80837468238,357.38803216938,392.4383479509,423.31690179539,451.2357321491,476.91154755397,500.80604115761,523.2511306012],description:"Surd Scale, Surds of the form (SQRT(N)+1)/2, JHC, 26-6-97"},chalmers_surd2:{frequencies:[261.6255653006,272.2395613933,282.33485096279,291.98077704337,301.23248980765,310.13469895524,318.72425558532,327.03195662575,335.08385052998,342.90220911983,350.50624086893,357.91266581346,365.13613061818,372.18956061116,379.08442465499,385.8309605564,392.4383479509,398.91485744029,405.26796981327,411.50448329997,417.63058822561,423.65195171798,429.57376586736,435.40081471708,441.13750301549,446.78791303515,452.35581962987,457.84473927605,463.2579384726,468.59846621725,473.86917438523,479.07273156015,484.21164154672,489.28825377326,494.3047826718,499.26331035461,504.16580309972,509.01411882861,513.81001953884,518.55516185524,523.2511306012],description:"Surd Scale, Surds of the form (SQRT(N)+1)/4"},chalung:{frequencies:[261.6255653006,328.09251713275,362.03316295439,390.31715077734,479.41117101029,527.4935758042,647.70012555753,728.30917696308,823.06004869243,961.65052057178,1054.9871516084,1301.05663342451],description:'Tuning of chalung from Tasikmalaya. "slendroid". 1/1=185 Hz'},chaumont:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.49749487796,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.40109831725,489.02683710225,523.2511306012],description:"Lambert Chaumont organ temperament (1695), 1st interpretation"},chaumont2:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.30531842668,327.84547867349,349.70184487387,366.99801003998,391.46454285105,410.8262805401,438.2147004401,465.11211608996,490.54793493862,523.2511306012],description:"Lambert Chaumont organ temperament (1695), 2nd interpretation"},chimes:{frequencies:[261.6255653006,288.69027895239,130.8127826503,144.34513947619],description:"Heavenly Chimes"},chimes_peck:{frequencies:[261.6255653006,327.03195662575,392.4383479509,457.84473927605,588.65752192635,719.47030457665,850.28308722695,981.09586987725,1046.5022612024],description:"Kris Peck, 9-tone windchime tuning. TL 7-3-2001"},chin_12:{frequencies:[261.6255653006,277.05457499359,293.57996645301,310.53449241474,329.24697610111,347.79893712036,368.97000115401,391.76907592069,413.1274313058,439.00991514661,462.11551390967,491.43599249807,523.2511306012],description:"Chinese scale, 4th cent."},chin_5:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,441.49314144476,523.2511306012],description:"Chinese pentatonic from Zhou period"},chin_60:{frequencies:[261.6255653006,262.17244551937,265.19499215873,268.81311753311,272.48060600886,276.1981310001,279.38237857051,283.19406633357,287.05775848811,290.97416342694,294.32876096318,294.94400091442,298.34436617857,302.41475692242,306.54068145351,310.72289706448,314.30517589183,318.59332496145,322.93997797627,327.34593352805,331.11985608357,331.812000697,335.63741195089,340.21660119759,344.85826629043,349.56326086722,353.59332287831,358.41749022331,363.30747486009,368.26417485089,372.50983809402,373.28850041093,377.59208844475,382.74367817547,387.96555142985,392.4383479509,393.25866808247,397.79248823809,403.21967609811,408.72090880899,414.29719629306,419.07356785577,424.79110016094,430.58663751693,436.46124492224,441.49314144476,442.41600115048,447.51654926786,453.62213515688,459.81102195042,466.08434536373,471.45776383774,477.8899872033,484.40996672226,491.01890004663,496.67978412536,497.7180007967,503.45611792634,510.32490448905,517.28740216504,523.2511306012],description:'Chinese scale of fifths (the 60 lu")'},chin_7:{frequencies:[261.6255653006,294.32876096318,331.11985608357,348.83408706747,392.4383479509,441.49314144476,496.67978412536,523.2511306012],description:"Chinese heptatonic scale and tritriadic of 64:81:96 triad"},chin_bianzhong:{frequencies:[261.6255653006,277.82379926216,312.56802260838,375.1593523779,420.13030572059,469.40618689596,506.59641128799,563.72967895209,627.66881138238,764.75812197709,849.53311813274,949.1724262561,1225.95732655636],description:"Pitches of Bianzhong bells (Xinyang). 1/1=b, Liang Mingyue, 1975."},chin_bianzhong2a:{frequencies:[261.6255653006,284.81073476233,312.56802260838,372.56793743951,413.39000965417,447.94973572445,491.60634075178,562.75365576207,652.05945856061,695.63805470995,863.88355261715,960.75607282217,1173.30283584026],description:"A-tones (GU) of 13 Xinyang bells (Ma Cheng-Yuan) 1/1=d#=619 Hz"},chin_bianzhong2b:{frequencies:[261.6255653006,279.59231184543,312.74738729016,375.37536096215,418.43048063126,468.86028020615,505.12945327459,562.08698385796,624.42058858709,762.97988553915,849.53425657971,936.08862980659,1215.37624187632],description:"B-tones (SUI) of 13 Xinyang bells (Ma Cheng-Yuan) 1/1=b+=506.6 Hz"},chin_bianzhong3:{frequencies:[261.6255653006,508.3551866238,542.32970395878,608.04166718582,619.02750937577,673.88551872153,729.80120031671,739.56153452917,812.57643344187,881.52624580654,911.03313298042,978.11461117351,982.0774855146,1059.88575280263,1092.20381072382,1163.18085489566,1213.27682870749,1331.52122774489,1483.40111876828,1542.82606951623,1645.93659621657,1649.74391394557,1818.91159982256,2044.01922018919,2273.22753490632,2362.92760489328,2776.13057951436],description:"A and B-tones of 13 Xinyang bells (Ma Cheng-Yuan) abs. pitches wrt middle-C"},chin_bronze:{frequencies:[261.6255653006,299.00064605783,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:`Scale found on ancient Chinese bronze instrument 3rd c.BC & "Scholar's Lute"`},chin_chime:{frequencies:[261.6255653006,248.6592656401,341.74499057264,392.56190849927,548.78974538591,648.86582834888,714.36935367713,785.57745330134,889.7110417619,886.88898199546,992.62825668803,1044.08711871947,1326.14827969763],description:"Pitches of 12 stone chimes, F. Kuttner, 1951, ROMA Toronto. %1=b4"},chin_ching:{frequencies:[261.6255653006,276.1981310001,294.32876096318,310.72289706448,331.11985608357,349.56326086722,368.26417485089,392.4383479509,414.29719629306,441.49314144476,466.08434536373,496.67978412536,524.34489103873],description:"Scale of Ching Fang, c.45 BC. Pyth.steps 0 1 2 3 4 5 47 48 49 50 51 52 53"},chin_di:{frequencies:[261.6255653006,298.70635408336,316.56004827153,360.50766037677,409.94872043165,433.75364775074,527.37121036213],description:"Chinese di scale"},chin_di2:{frequencies:[261.6255653006,289.95657583698,318.21537073485,338.89464890898,383.48501130814,436.9606979923,494.73987775324,522.04355935974],description:"Observed tuning from Chinese flute dizi, Helmholtz/Ellis p. 518, nr.103"},chin_huang:{frequencies:[261.6255653006,331.11985608357,392.4383479509,441.49314144476,523.2511306012,588.65752192635,662.23971216714],description:"Huang Zhong qin tuning"},"chin_liu-an":{frequencies:[261.6255653006,278.83777354406,294.32876096318,311.64221749042,331.11985608357,353.19451315581,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,492.82955324067],description:'Scale of Liu An, in: "Huai Nan Tzu", c.122 BC, 1st known corr. to Pyth. scale'},chin_lu:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,328.55303549378,348.83408706747,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,495.71159741166,523.2511306012],description:"Chinese L\xEF\xBF\xBD scale by Huai Nan zi, Han era. P\xEF\xBF\xBDre Amiot 1780, Kurt Reinhard"},chin_lu2:{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,331.11985608357,353.59332287831,372.50983809402,392.4383479509,419.07356785577,441.49314144476,471.45776383774,496.67978412536,523.2511306012],description:"Chinese L\xEF\xBF\xBD (Lushi chunqiu, by Lu Buwei). Mingyue: Music of the billion, p.67"},chin_lu3:{frequencies:[261.6255653006,277.34278419245,293.66476791741,310.58830860439,329.24697610111,347.81902735497,369.14054089803,391.76907592069,413.1512951712,439.23819834286,462.1422075194,491.60634075178,523.2511306012],description:"Chinese L\xEF\xBF\xBD scale by Ho Ch'\xEF\xBF\xBDng-T'ien, reported in Sung Shu (500 AD)"},chin_lu3a:{frequencies:[261.6255653006,277.06033146978,293.58830182213,310.53780743131,329.25144446584,347.79484055318,368.74579520635,391.78066943209,413.13681807919,438.99947255393,462.1072190611,491.17907538715,523.2511306012],description:`Chinese L\xEF\xBF\xBD scale by Ho Ch'\xEF\xBF\xBDng-T'ien, calc. basis is "big number" 177147`},chin_lu4:{frequencies:[261.6255653006,276.78521684908,293.5444075184,310.55356739316,329.35741152087,348.44172229085,369.5396750577,391.9150968203,414.62425518576,439.72952246257,465.20924434298,493.37740286979,523.2511306012],description:'Chinese L\xEF\xBF\xBD "749-Temperament"'},chin_lu5:{frequencies:[261.6255653006,277.35401920913,293.41471131112,311.37240624271,329.40299530711,349.20610523279,369.80535913035,392.03738806826,415.16320853113,440.12206674667,466.08434536373,494.10449271367,522.71643616375],description:"Chinese L\xEF\xBF\xBD scale by Ch'ien Lo-Chih, c.450 AD Pyth.steps 0 154 255 103 204 etc."},chin_lusheng:{frequencies:[261.6255653006,316.38258506467,348.82502010853,389.28772571905,466.97226207056,520.53801357752],description:"Observed tuning of a small Lusheng, 1/1=d, OdC '97"},chin_pan:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Pan Huai-su pure system, in: Sin-Yan Shen, 1991"},chin_pipa:{frequencies:[261.6255653006,284.4818984792,320.42873367481,380.17671965621,433.44136952667,521.74210224793],description:"Observed tuning from Chinese balloon lute p'i-p'a, Helmholtz/Ellis p. 518, nr.109"},chin_sheng:{frequencies:[261.6255653006,295.36595061166,318.03161540472,348.82502010853,395.40657391157,442.03793673691,477.05982293263,522.94897617031],description:"Observed tuning from Chinese sheng or mouth organ, Helmholtz/Ellis p. 518, nr.105"},chin_sientsu:{frequencies:[261.6255653006,291.80478157373,326.97270111135,392.44854854484,438.22451411849,523.2511306012],description:"Observed tuning from Chinese tamboura sienzi, Helmholtz/Ellis p. 518, nr.108"},chin_sona:{frequencies:[261.6255653006,284.4818984792,310.58830860439,337.33223582731,377.98706287655,418.43499793376,469.94877954106,528.10941333272],description:"Observed tuning from Chinese oboe (so-na), Helmholtz/Ellis p. 518, nr.104"},"chin_wang-po":{frequencies:[261.6255653006,294.32876096318,330.24264909897,371.97947673071,392.4383479509,440.94196398978,495.71159741166,517.50111817701],description:"Scale of Wang Po, 958 AD. H. Pischner: Musik in China, Berlin, 1955, p.20"},chin_yangqin:{frequencies:[261.6255653006,288.45311779165,306.48933163909,347.41744306689,383.26356564167,434.44398956347,465.08793784701,522.64699622026],description:"Observed tuning from Chinese dulcimer yangqin, Helmholtz/Ellis p. 518, nr.107"},chin_yunlo:{frequencies:[261.6255653006,288.45311779165,323.40385076956,367.0144478307,386.1523605003,409.35055662695,483.1608380663,525.67465946865],description:"Observed tuning from Chinese gong-chime (y\xEF\xBF\xBDn-lo), Helmholtz/Ellis p. 518, nr.106"},choquel:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,475.68284600109,490.54793493862,523.2511306012],description:"Choquel/Barbour/Marpurg?"},chordal:{frequencies:[261.6255653006,392.4383479509,327.03195662575,457.84473927605,588.65752192635,719.47030457665,850.28308722695,981.09586987725,981.09586987725,490.54793493862,555.95432626377,621.36071758893,310.68035879446,523.2511306012,348.83408706747,418.60090448096,299.00064605783,465.11211608996,380.54627680087,322.00069575458,279.06726965397,610.45965236807,915.6894785521,872.08521766867,697.66817413493,654.0639132515,627.90135672144,448.50096908674,319.76457981184,377.90359432309,444.76346101102,889.52692202204,336.37572681506,294.32876096318,465.11211608996,411.12588832951,305.22982618403,366.27579142084,373.75080757229,313.95067836072,470.92601754108],description:"Chordal Notes S&H"},chrom15:{frequencies:[261.6255653006,280.31310567921,301.87565226992,356.76213450082,392.4383479509,413.09299784305,436.04260883433,523.2511306012],description:"Tonos-15 Chromatic"},chrom15_inv:{frequencies:[261.6255653006,313.95067836072,331.39238271409,348.83408706747,383.71749577421,453.48431318771,488.36772189445,523.2511306012],description:"Inverted Chromatic Tonos-15 Harmonia"},chrom15_inv2:{frequencies:[261.6255653006,279.06726965397,296.50897400735,348.83408706747,383.71749577421,401.15920012759,418.60090448096,523.2511306012],description:"A harmonic form of the Chromatic Tonos-15 inverted"},chrom17:{frequencies:[261.6255653006,277.97716313189,296.50897400735,370.63621750918,404.33041910093,423.58424858192,444.76346101102,523.2511306012],description:"Tonos-17 Chromatic"},chrom17_con:{frequencies:[261.6255653006,277.97716313189,296.50897400735,370.63621750918,386.75083566176,404.33041910093,494.18162334558,523.2511306012],description:"Conjunct Tonos-17 Chromatic"},chrom19:{frequencies:[261.6255653006,276.16031892841,292.40504357126,355.06326719367,382.37582620857,397.67085925691,414.24047839262,523.2511306012],description:"Tonos-19 Chromatic"},chrom19_con:{frequencies:[261.6255653006,276.16031892841,292.40504357126,355.06326719367,368.21375857121,382.37582620857,451.89870370104,523.2511306012],description:"Conjunct Tonos-19 Chromatic"},chrom21:{frequencies:[261.6255653006,274.70684356563,289.16509849014,343.38355445704,392.4383479509,406.97310157871,422.62591317789,523.2511306012],description:"Tonos-21 Chromatic"},chrom21_inv:{frequencies:[261.6255653006,323.91736656265,336.37572681506,348.83408706747,398.6675280771,473.41768959156,498.33441009638,523.2511306012],description:"Inverted Chromatic Tonos-21 Harmonia"},chrom21_inv2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,398.6675280771,423.58424858192,448.50096908674,523.2511306012],description:"Inverted harmonic form of the Chromatic Tonos-21"},chrom23:{frequencies:[261.6255653006,273.51763645063,286.54228580542,334.29933343966,376.08675011961,401.15920012759,429.81342870813,523.2511306012],description:"Tonos-23 Chromatic"},chrom23_con:{frequencies:[261.6255653006,273.51763645063,286.54228580542,334.29933343966,353.96400011258,376.08675011961,462.87600014722,523.2511306012],description:"Conjunct Tonos-23 Chromatic"},chrom25:{frequencies:[261.6255653006,278.32506946872,297.30177875068,363.36884069528,408.78994578219,436.04260883433,467.18850946536,523.2511306012],description:"Tonos-25 Chromatic"},chrom25_con:{frequencies:[261.6255653006,278.32506946872,297.30177875068,363.36884069528,384.74347838324,408.78994578219,503.12608711654,523.2511306012],description:"Conjunct Tonos-25 Chromatic"},chrom27:{frequencies:[261.6255653006,277.01530443593,294.32876096318,353.19451315581,392.4383479509,415.52295665389,441.49314144476,523.2511306012],description:"Tonos-27 Chromatic"},chrom27_inv:{frequencies:[261.6255653006,310.07474405997,329.45441556372,348.83408706747,387.59343007496,465.11211608996,494.18162334558,523.2511306012],description:"Inverted Chromatic Tonos-27 Harmonia"},chrom27_inv2:{frequencies:[261.6255653006,271.31540105247,281.00523680435,348.83408706747,387.59343007496,406.97310157871,436.04260883433,523.2511306012],description:"Inverted harmonic form of the Chromatic Tonos-27"},chrom29:{frequencies:[261.6255653006,270.96933548991,281.00523680435,344.87006335079,379.35706968587,399.32323124828,421.50785520652,523.2511306012],description:"Tonos-29 Chromatic"},chrom29_con:{frequencies:[261.6255653006,270.96933548991,281.00523680435,344.87006335079,361.29244731988,379.35706968587,474.19633710734,523.2511306012],description:"Conjunct Tonos-29 Chromatic"},chrom31:{frequencies:[261.6255653006,279.66870773512,300.3849083081,337.93302184661,352.6257619269,368.65420565085,386.2091678247,405.51962621593,523.2511306012],description:"Tonos-31 Chromatic. Tone 24 alternates with 23 as MESE or A"},chrom31_con:{frequencies:[261.6255653006,279.66870773512,300.3849083081,337.93302184661,352.6257619269,368.65420565085,386.2091678247,450.57736246214,523.2511306012],description:"Conjunct Tonos-31 Chromatic"},chrom33:{frequencies:[261.6255653006,278.50463402967,297.71185016965,359.73515228832,392.4383479509,411.12588832951,431.68218274599,523.2511306012],description:"Tonos-33 Chromatic. A variant is 66 63 60 48"},chrom33_con:{frequencies:[261.6255653006,278.50463402967,297.71185016965,359.73515228832,375.37581108347,392.4383479509,479.64686971777,523.2511306012],description:"Conjunct Tonos-33 Chromatic"},chrom_new:{frequencies:[261.6255653006,273.20871865617,297.93622032612,349.22823143301,391.99543598175,409.35055662695,446.39994737251,523.2511306012],description:"New Chromatic genus 4.5 + 9 + 16.5"},chrom_new2:{frequencies:[261.6255653006,273.6474710507,299.37374239667,349.22823143301,391.99543598175,410.00794244467,448.55379686399,523.2511306012],description:"New Chromatic genus 14/3 + 28/3 + 16 parts"},chrom_soft:{frequencies:[261.6255653006,271.68808704293,282.55561052465,348.83408706747,392.4383479509,407.5321305644,423.83341578697,523.2511306012],description:"100/81 Chromatic. This genus is a good approximation to the soft chromatic"},chrom_soft2:{frequencies:[261.6255653006,268.42893440103,282.57118533961,349.22823143301,391.99543598175,402.18897205153,423.37840671577,523.2511306012],description:"1:2 Soft Chromatic"},chrom_soft3:{frequencies:[261.6255653006,271.31540105247,281.75060878526,348.83408706747,392.4383479509,406.97310157871,422.62591317789,523.2511306012],description:"Soft chromatic genus is from K. Schlesinger's modified Mixolydian Harmonia"},cifariello:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"F. Cifariello Ciardi, ICMC 86 Proc. 15-tone 5-limit tuning"},ckring1:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,523.2511306012],description:"Double-tie circular mirroring with common pivot of 4:5:6:7 = square 1 3 5 7"},ckring2:{frequencies:[261.6255653006,290.69507255622,305.22982618403,313.95067836072,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,436.04260883433,448.50096908674,470.92601754108,523.2511306012],description:"Double-tie circular mirroring with common pivot of 3:5:7:9"},"clampitt-phi":{frequencies:[261.6255653006,289.46753582364,320.2724252102,340.92857683151,377.20990650852,444.26963537301,491.54843559637,523.2511306012],description:'David Clampitt, phi+1 mod 3phi+2, from "Pairwise Well-Formed Scales", 1997'},classr:{frequencies:[261.6255653006,275.93321340298,287.4304306281,313.95067836072,327.03195662575,344.91651675372,367.91095120397,392.4383479509,408.78994578219,441.49314144476,459.88868900496,490.54793493862,523.2511306012],description:"Marvel projection to the 5-limit of class"},cluster:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"13-tone 5-limit Tritriadic Cluster"},cluster6a:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Six-Tone Triadic Cluster 4:5:6"},cluster6b:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Six-Tone Triadic Cluster 4:6:5"},cluster6c:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,418.60090448096,436.04260883433,523.2511306012],description:"Six-Tone Triadic Cluster 3:4:5"},cluster6d:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Six-Tone Triadic Cluster 3:5:4"},cluster6e:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Six-Tone Triadic Cluster 5:6:8"},cluster6f:{frequencies:[261.6255653006,313.95067836072,348.83408706747,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"Six-Tone Triadic Cluster 5:8:6"},cluster6g:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,457.84473927605,523.2511306012],description:"Six-Tone Triadic Cluster 4:5:7"},cluster6h:{frequencies:[261.6255653006,286.15296204753,327.03195662575,366.27579142084,418.60090448096,457.84473927605,523.2511306012],description:"Six-Tone Triadic Cluster 4:7:5"},cluster6i:{frequencies:[261.6255653006,313.95067836072,366.27579142084,373.75080757229,439.53094970501,448.50096908674,523.2511306012],description:"Six-Tone Triadic Cluster 5:6:7"},cluster6j:{frequencies:[261.6255653006,305.22982618403,313.95067836072,366.27579142084,436.04260883433,439.53094970501,523.2511306012],description:"Six-Tone Triadic Cluster 5:7:6"},cluster8a:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Eight-Tone Triadic Cluster 4:5:6"},cluster8b:{frequencies:[261.6255653006,306.59245933664,313.95067836072,327.03195662575,392.4383479509,408.78994578219,418.60090448096,490.54793493862,523.2511306012],description:"Eight-Tone Triadic Cluster 4:6:5"},cluster8c:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,363.36884069528,418.60090448096,436.04260883433,484.4917875937,523.2511306012],description:"Eight-Tone Triadic Cluster 3:4:5"},cluster8d:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,387.59343007496,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"Eight-Tone Triadic Cluster 3:5:4"},cluster8e:{frequencies:[261.6255653006,313.95067836072,327.03195662575,334.88072358477,392.4383479509,401.85686830172,418.60090448096,502.32108537715,523.2511306012],description:"Eight-Tone Triadic Cluster 5:6:8"},cluster8f:{frequencies:[261.6255653006,301.39265122629,313.95067836072,348.83408706747,376.74081403286,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"Eight-Tone Triadic Cluster 5:8:6"},cluster8g:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Eight-Tone Triadic Cluster 4:5:7"},cluster8h:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,366.27579142084,408.78994578219,418.60090448096,457.84473927605,523.2511306012],description:"Eight-Tone Triadic Cluster 4:7:5"},cluster8i:{frequencies:[261.6255653006,307.67166479351,313.95067836072,366.27579142084,373.75080757229,439.53094970501,448.50096908674,512.78610798918,523.2511306012],description:"Eight-Tone Triadic Cluster 5:6:7"},cluster8j:{frequencies:[261.6255653006,263.718569823,305.22982618403,313.95067836072,366.27579142084,376.74081403286,436.04260883433,439.53094970501,523.2511306012],description:"Eight-Tone Triadic Cluster 5:7:6"},cohenf_11:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,523.2511306012],description:`Flynn Cohen, 7-limit scale of "Rameau's nephew", 1996`},coleman:{frequencies:[261.6255653006,276.70272600503,293.15632631094,310.58830860439,328.48713220126,349.43001184052,368.92737853004,391.76907592069,414.58565256441,438.98455767189,465.89457252293,491.89038573682,523.2511306012],description:"Jim Coleman's ModX piano temperament. TL 16 Mar 1999"},collengettes:{frequencies:[261.6255653006,269.10058145205,275.62199471997,285.40970760065,294.32876096318,302.73815413355,310.07474405997,321.08592105074,331.11985608357,340.58042340025,348.83408706747,358.80077526939,367.49599295996,380.54627680087,392.4383479509,403.65087217807,413.43299207996,428.11456140098,441.49314144476,454.10723120033,465.11211608996,478.40103369253,496.67978412536,507.3950357345,523.2511306012],description:"R.P. Collengettes, from p.23 of d'Erlanger, vol 5. 24 tone Arabic system"},colonna1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,308.86351459099,327.03195662575,348.83408706747,363.36884069528,392.4383479509,399.70572476481,436.04260883433,463.29527188648,490.54793493862,523.2511306012],description:"Colonna 1"},colonna2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,479.64686971777,523.2511306012],description:"Colonna 2"},concertina:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"English Concertina, Helmholtz/Ellis, p. 470"},cons11:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 11 not exceeding 2/1"},cons12:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 12 not exceeding 2/1"},cons13:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 13 not exceeding 2/1"},cons14:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 14 not exceeding 2/1"},cons15:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 15 not exceeding 2/1"},cons16:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 16 not exceeding 2/1"},cons17:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 17 not exceeding 2/1"},cons18:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 18 not exceeding 2/1"},cons19:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 19 not exceeding 2/1"},cons20:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Set of intervals with num + den <= 20 not exceeding 2/1"},cons21:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Set of intervals with num + den <= 21 not exceeding 2/1"},cons8:{frequencies:[261.6255653006,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Set of intervals with num + den <= 8 not exceeding 2/1"},cons9:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Set of intervals with num + den <= 9 not exceeding 2/1"},cons_5:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,523.2511306012],description:"Set of consonant 5-limit intervals within the octave"},cons_7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605],description:"Set of consonant 7-limit intervals of tetrad 4:5:6:7 and inverse"},cons_7a:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605],description:"Set of consonant 7-limit intervals, harmonic entropy minima"},cont_frac1:{frequencies:[261.6255653006,264.29672053658,267.01859068163,284.39991302433,288.64312378534,304.51680721446,328.36325429535,342.47239171077,368.24757473349,390.36247006958,408.23697512781,419.80330474394,448.3033221197,488.42606438843,498.20005830409],description:"Continued fraction scale 1, see McLaren in Xenharmonikon 15, pp.33-38"},cont_frac2:{frequencies:[261.6255653006,268.67076720771,283.00159623424,287.78825007941,303.56038377389,306.30898587133,329.63288816559,333.85601282718,352.97051886932,380.09613548074,393.10104267352,426.45795861378,432.83315799354,472.91012288255,483.94654132265,519.4303061261],description:"Continued fraction scale 2, see McLaren in Xenharmonikon 15, pp.33-38"},cordier:{frequencies:[261.6255653006,277.2273508585,293.75953199293,311.27759533081,329.84032939425,349.51003591412,370.35272620855,392.4383479509,415.84102607989,440.63929776914,466.91639276282,494.76049384407,524.26505360912],description:"Serge Cordier, piano tuning, 1975 (Piano bien temp\xEF\xBF\xBDr\xEF\xBF\xBD et justesse orchestrale)"},corner11:{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,314.76825825228,327.03195662575,343.38355445704,359.73515228832,392.4383479509,400.61414686654,408.78994578219,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 11-limit. Chalmers '96"},corner13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,359.73515228832,371.99885066179,392.4383479509,400.61414686654,408.78994578219,425.14154361347,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 13-limit. Chalmers '96"},corner17:{frequencies:[261.6255653006,265.71346475842,269.80136421624,277.97716313189,286.15296204753,292.28481123426,294.32876096318,295.35073582763,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,347.47145391486,359.73515228832,371.99885066179,382.21859930635,392.4383479509,400.61414686654,408.78994578219,416.96574469783,425.14154361347,449.66894036041,451.71289008932,457.84473927605,486.4600354808,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 17-limit."},corner17a:{frequencies:[261.6255653006,265.71346475842,269.80136421624,275.93321340298,277.97716313189,286.15296204753,292.28481123426,294.32876096318,295.35073582763,306.59245933664,312.72430852337,314.76825825228,318.85615771011,327.03195662575,331.11985608357,337.2517052703,343.38355445704,345.42750418595,347.47145391486,359.73515228832,367.91095120397,371.99885066179,382.21859930635,392.4383479509,398.57019713763,400.61414686654,404.70204632437,408.78994578219,416.96574469783,425.14154361347,429.2294430713,441.49314144476,449.66894036041,451.71289008932,457.84473927605,459.88868900496,478.28423656516,486.4600354808,490.54793493862,494.63583439645,515.07533168556,521.20718087229,523.2511306012],description:"Quadratic Corner 17 odd limit."},corner7:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,343.38355445704,392.4383479509,400.61414686654,408.78994578219,457.84473927605,490.54793493862,523.2511306012],description:"Quadratic corner 7-limit. Chalmers '96"},corner9:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,331.11985608357,343.38355445704,367.91095120397,392.4383479509,400.61414686654,408.78994578219,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"First 9 harmonics of 5th through 9th harmonics"},corners11:{frequencies:[261.6255653006,269.80136421624,276.76092858245,279.06726965397,286.15296204753,294.32876096318,299.00064605783,304.4370214407,314.76825825228,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,359.73515228832,380.54627680087,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,434.91003062957,449.66894036041,457.84473927605,465.11211608996,478.40103369253,490.54793493862,494.63583439645,507.3950357345,523.2511306012],description:"Quadratic Corners 11-limit. Chalmers '96"},corners13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,276.76092858245,279.06726965397,286.15296204753,292.28481123426,294.32876096318,299.00064605783,304.4370214407,314.76825825228,318.85615771011,322.00069575458,327.03195662575,334.88072358477,341.71502406609,343.38355445704,345.42750418595,348.83408706747,359.73515228832,368.0007951481,371.99885066179,380.54627680087,392.4383479509,396.30854862103,398.6675280771,400.61414686654,408.78994578219,418.60090448096,425.14154361347,429.33426100611,434.91003062957,449.66894036041,457.84473927605,465.11211608996,468.3646483703,478.40103369253,490.54793493862,494.63583439645,507.3950357345,515.20111320734,523.2511306012],description:"Quadratic Corners 13-limit. Chalmers '96"},corners7:{frequencies:[261.6255653006,279.06726965397,286.15296204753,294.32876096318,299.00064605783,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,457.84473927605,465.11211608996,478.40103369253,490.54793493862,523.2511306012],description:"Quadratic Corners 7-limit. Chalmers '96"},corrette:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.11326130363,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.33704984564,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Corrette temperament"},corrette2:{frequencies:[261.6255653006,272.8349596094,292.34127285051,310.42509491746,326.6631048533,350.01785633742,365.01443422269,391.11111150212,409.71484950008,437.02884834934,466.16376151809,488.33748205014,523.2511306012],description:"Michel Corrette, modified meantone temperament (1753)"},coul_12:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,340.65828815182,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Scale 1 5/4 3/2 2 successively split largest intervals by smallest interval"},coul_12a:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Scale 1 6/5 3/2 2 successively split largest intervals by smallest interval"},coul_12sup:{frequencies:[261.6255653006,280.31310567921,294.32876096318,310.68035879446,331.39238271409,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,466.02053819169,497.08857407114,523.2511306012],description:"Superparticular approximation to Pythagorean scale. Op de Coul, 2003"},coul_13:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Symmetrical 13-tone 5-limit just system"},coul_17sup:{frequencies:[261.6255653006,276.16031892841,279.06726965397,294.57100685697,310.07474405997,313.95067836072,331.39238271409,348.83408706747,368.21375857121,372.08969287196,392.76134247596,413.43299207996,418.60090448096,441.85651028546,465.11211608996,470.92601754108,497.08857407114,523.2511306012],description:"Superparticular approximation to Pythagorean 17-tone scale. Op de Coul, 2003"},coul_20:{frequencies:[261.6255653006,277.18263097687,282.2367833559,293.66476791741,305.55548036855,311.12698372208,329.62755691287,335.63799088232,349.22823143301,363.36884069528,369.99442271164,391.99543598175,399.14308682247,415.30469757995,432.12070439462,440,466.16376151809,474.66379875343,493.88330125613,513.88101620607,523.2511306012],description:"Tuning for a 3-row symmetrical keyboard, Op de Coul, 1989"},coul_27:{frequencies:[261.6255653006,275.62199471997,275.93321340298,279.06726965397,293.99679436797,294.32876096318,310.07474405997,310.42486507835,327.03195662575,330.74639366397,331.11985608357,348.83408706747,367.49599295996,367.91095120397,372.08969287196,372.50983809402,392.4383479509,413.43299207996,413.89982010446,418.60090448096,440.99519155196,441.49314144476,465.11211608996,465.63729761752,490.54793493862,496.11959049595,496.67978412536,523.2511306012],description:"Symmetrical 27-tone 5-limit just system, 67108864/66430125 and 25/24"},counterschismic:{frequencies:[261.6255653006,265.12640119254,268.67408364533,272.2692364133,275.65170316539,279.34022410565,283.07810312094,286.865997406,290.70457953408,294.3160713245,298.25434362449,302.24531258767,306.28968684494,310.09479611189,314.24420508029,318.4491358588,322.71033506911,327.0285519162,331.0913069245,335.5216703313,340.01131880467,344.56104171562,348.84160709651,353.50948891197,358.2398341551,363.03347451625,367.54352740958,372.46166135084,377.44560747755,382.49624206822,387.61445966759,392.4298881006,397.68103103357,403.0024376988,408.3950505989,413.46864135256,419.00130591222,424.60800114791,430.28972009123,436.04746916004,441.46459261549,447.37187116862,453.35819556254,459.4246261707,465.13216971689,471.35614630867,477.663406507,484.05506753352,490.06860102591,496.62625431187,503.27165616309,510.00598369715,516.83042094502,523.2511306012],description:"Counterschismic temperament, g=498.082318, 5-limit"},couperin:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.28785294636,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.24345038333,489.02683710225,523.2511306012],description:"Couperin modified meantone"},cross13:{frequencies:[261.6255653006,281.75060878526,285.40970760065,290.69507255622,299.00064605783,305.22982618403,322.00069575458,332.97799220076,336.37572681506,366.27579142084,373.75080757229,406.97310157871,411.12588832951,425.14154361347,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"13-limit harmonic/subharmonic cross"},cross2:{frequencies:[261.6255653006,282.55561052465,339.14425131559,366.27579142084,436.04260883433,470.92601754108,560.62621135843,605.4763082671,726.73768139056,784.8766959018],description:"Pusey's double 5-7 cross reduced by 3/1"},cross2_5:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,392.4383479509,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"double 3-5 cross reduced by 2/1"},cross2_7:{frequencies:[261.6255653006,294.32876096318,299.00064605783,327.03195662575,334.88072358477,341.71502406609,348.83408706747,392.4383479509,400.61414686654,408.78994578219,418.60090448096,457.84473927605,465.11211608996,523.2511306012],description:"longer 3-5-7 cross reduced by 2/1"},cross3:{frequencies:[261.6255653006,282.55561052465,311.45900631024,336.37572681506,363.28578496026,403.74315632809,436.04260883433,470.92601754108,508.60009894437,565.24041885932,610.45965236807,659.29642455751,726.73768139056,784.8766959018],description:"Pusey's triple 5-7 cross reduced by 3/1"},cross_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,348.83408706747,392.4383479509,418.60090448096,457.84473927605,523.2511306012],description:"3-5-7 cross reduced by 2/1, quasi diatonic, similar to Zalzal's, Flynn Cohen"},cross_72:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,313.95067836072,343.38355445704,348.83408706747,392.4383479509,398.6675280771,436.04260883433,448.50096908674,465.11211608996,490.54793493862,523.2511306012],description:"double 3-5-7 cross reduced by 2/1"},cross_7a:{frequencies:[261.6255653006,336.37572681506,392.4383479509,436.04260883433,470.92601754108,523.2511306012,610.45965236807,784.8766959018],description:"2-5-7 cross reduced by 3/1"},cruciform:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Cruciform Lattice"},galilei:{frequencies:[261.6255653006,277.66336828161,293.32570896007,311.30674962848,328.86683469969,348.2210758395,368.7143392539,390.41365788584,413.39000965417,437.71854962063,463.47885582013,490.75518955849,523.2511306012],description:"Vincenzo Galilei's approximation"},gamelan_om:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Other Music gamelan (7 limit black keys)"},gamelan_udan:{frequencies:[261.6255653006,261.6255653006,290.69507255622,305.22982618403,334.88072358477,351.32575911795,364.00078650518,392.4383479509,402.50086969323,465.11211608996,465.11211608996,501.44900015948,523.2511306012],description:"Gamelan Udan Mas (approx) s6,p6,p7,s1,p1,s2,p2,p3,s3,p4,s5,p5"},ganassi:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,369.35373924791,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Sylvestro Ganassi's temperament (1543)"},gann_custer:{frequencies:[261.6255653006,269.80136421624,274.70684356563,279.06726965397,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,380.54627680087,392.4383479509,406.97310157871,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,507.3950357345,523.2511306012],description:"Kyle Gann, scale from Custer's Ghost to Sitting Bull, 1/1=G"},gann_frac:{frequencies:[261.6255653006,264.89588486686,294.32876096318,305.22982618403,309.04519901133,313.95067836072,348.83408706747,353.19451315581,366.27579142084,392.4383479509,397.34382730029,412.06026534844,418.60090448096,423.83341578697,457.84473927605,470.92601754108,523.2511306012],description:"Kyle Gann, scale from Fractured Paradise, 1/1=B"},gann_ghost:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Kyle Gann, scale from Ghost Town, 1/1=E"},gann_super:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"Kyle Gann, scale from Superparticular Woman (1992), 1/1=G"},gann_things:{frequencies:[261.6255653006,266.47048317654,272.52663052146,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,343.38355445704,348.83408706747,373.75080757229,387.59343007496,392.4383479509,406.97310157871,408.78994578219,436.04260883433,448.50096908674,465.11211608996,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Kyle Gann, scale from How Miraculous Things Happen, 1/1=A"},garcia:{frequencies:[261.6255653006,268.33391312882,271.68808704293,279.06726965397,286.22284067074,294.32876096318,301.87565226992,310.07474405997,313.95067836072,322.00069575458,331.11985608357,339.61010880366,348.83408706747,357.77855083843,362.25078272391,372.08969287196,381.63045422766,392.4383479509,402.50086969323,407.5321305644,418.60090448096,429.33426100611,441.49314144476,452.81347840488,465.11211608996,470.92601754108,483.00104363188,496.11959049595,509.4151632055,523.2511306012],description:"Linear 29-tone scale by Jos\xEF\xBF\xBD L. Garcia, 1988 15/13-52/45 alternating"},garibaldi24:{frequencies:[261.6255653006,271.45160478635,275.48458787532,290.07776082447,294.38747453868,305.44397410364,309.9819851541,326.40257969757,331.25197480486,343.69301829526,348.79929894143,361.89937857146,367.27615309757,386.73177659938,392.47748849606,407.21801775129,413.26809573999,435.16003837828,441.62525370518,458.21165716245,465.0193526482,489.65270106975,496.92751922541,515.59094540799,523.2511306012],description:"Garibaldi[24] in 94-tET tuning."},genovese:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,296.50897400735,299.00064605783,301.87565226992,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,338.57426097725,340.11323489078,342.12573923925,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,400.13321751856,402.50086969323,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,453.48431318771,457.84473927605,461.69217405988,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Denny Genovese's 65-note scale. 3/2=384 Hz"},genovese_12:{frequencies:[261.6255653006,285.40970760065,294.32876096318,313.95067836072,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Denny Genovese's superposition of harmonics 8-16 and subharmonics 6-12"},genovese_38:{frequencies:[261.6255653006,280.31310567921,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Denny Genovese's 38-note scale. Harm 1..16 x Subh. 1..12"},"gf1-2":{frequencies:[261.6255653006,269.29177952703,277.18263097687,285.30470202322,293.66476791741,311.12698372208,320.24370022528,339.28638158975,349.22823143301,359.46139971304,380.8360868427,403.48177901006,415.30469757995,440,466.16376151809,493.88330125613,523.2511306012],description:"16-note scale with all possible quadruplets of 50 & 100 c. Galois Field GF(2)"},"gf2-3":{frequencies:[261.6255653006,270.85177093588,280.40333801024,290.29174037004,300.52885648597,316.56538760238,327.729041887,345.21700307457,357.39105439675,369.99442271164,389.73770840504,410.5345162762,425.01198472693,447.69106452518,471.58032351597,496.7443381147,523.2511306012],description:"16-note scale with all possible quadruplets of 60 & 90 c. Galois Field GF(2)"},gilson7:{frequencies:[261.6255653006,261.6255653006,299.00064605783,313.95067836072,327.03195662575,392.4383479509,373.75080757229,392.4383479509,408.78994578219,408.78994578219,467.18850946536,490.54793493862,523.2511306012],description:"Gilson septimal"},gilson7a:{frequencies:[261.6255653006,261.6255653006,280.31310567921,299.00064605783,313.95067836072,336.37572681506,373.75080757229,373.75080757229,392.4383479509,418.60090448096,470.92601754108,470.92601754108,523.2511306012],description:"Gilson septimal 2"},golden_10:{frequencies:[261.6255653006,287.58715183149,304.90466328003,323.26497397694,342.73087946949,376.74069565061,399.42672527674,423.47882962254,465.50141625349,493.53231135469,523.2511306012],description:"Golden version of Rapoport's Major 10 out of 13"},golden_5:{frequencies:[261.6255653006,327.03195662575,343.38355445704,392.4383479509,425.14154361347,523.2511306012],description:"Golden pentatonic"},gradus10:{frequencies:[261.6255653006,290.69507255622,299.00064605783,305.22982618403,490.54793493862,882.98628288953,930.22423217991,941.85203508216,1220.91930473613,1255.80271344288,1674.40361792384,2747.0684356563,3270.3195662575,3488.34087067467,5886.5752192635,10595.8353946743,10988.2737426252,11162.69078615893,13081.27826503,14651.0316568336,23546.300877054,31395.067836072,41860.090448096,42383.3415786972,56511.1221049296,75348.1628065728,100464.2170754304,133952.2894339072],description:"Intervals > 1 with Gradus = 10"},gradus3:{frequencies:[261.6255653006,784.8766959018,1046.5022612024],description:"Intervals > 1 with Gradus = 3"},gradus4:{frequencies:[261.6255653006,392.4383479509,1569.7533918036,2093.0045224048],description:"Intervals > 1 with Gradus = 4"},gradus5:{frequencies:[261.6255653006,348.83408706747,1308.127826503,2354.6300877054,3139.5067836072,4186.0090448096],description:"Intervals > 1 with Gradus = 5"},gradus6:{frequencies:[261.6255653006,654.0639132515,697.66817413493,1177.3150438527,2616.255653006,4709.2601754108,6279.0135672144,8372.0180896192],description:"Intervals > 1 with Gradus = 6"},gradus7:{frequencies:[261.6255653006,327.03195662575,436.04260883433,588.65752192635,1395.33634826987,1831.3789571042,3924.383479509,5232.511306012,7063.8902631162,9418.5203508216,12558.0271344288,16744.0361792384],description:"Intervals > 1 with Gradus = 7"},gradus8:{frequencies:[261.6255653006,294.32876096318,313.95067836072,418.60090448096,872.08521766867,915.6894785521,1962.1917397545,2790.67269653973,3531.9451315581,3662.7579142084,7848.766959018,10465.022612024,14127.7805262324,18837.0407016432,25116.0542688576,33488.0723584768],description:"Intervals > 1 with Gradus = 8"},gradus9:{frequencies:[261.6255653006,457.84473927605,465.11211608996,470.92601754108,610.45965236807,627.90135672144,837.20180896192,981.09586987725,1744.17043533733,1765.97256577905,5494.1368713126,5581.34539307947,6540.639132515,7325.5158284168,11773.150438527,15697.533918036,20930.045224048,21191.6707893486,28255.5610524648,37674.0814032864,50232.1085377152,66976.1447169536],description:"Intervals > 1 with Gradus = 9"},grady11:{frequencies:[261.6255653006,277.4816601673,290.69507255622,305.22982618403,332.97799220076,356.76213450082,378.42269266694,392.4383479509,420.46965851882,458.69417292962,481.6288815761,504.56359022259,523.2511306012],description:"Kraig Grady's dual [5 7 9 11] hexany scale"},grady7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:`Kraig Grady's 7-limit "Centaur" scale (1987), see Xenharmonikon 16`},grady7t:{frequencies:[261.6255653006,274.79177208104,293.65339461903,305.54250820508,326.68804977983,349.10444036529,366.6627351378,392.00975085961,407.77240291308,436.0718257558,457.96530027286,489.37179607373,523.2511306012],description:"Tempered version of grady7 with egalised 225/224"},grady_14:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Kraig Grady, letter to Lou Harrison, published in 1/1 7 (1) 1991 p 5."},grammateus:{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,348.83408706747,369.99442271164,392.4383479509,416.24372513446,441.49314144476,468.27419030811,496.67978412536,523.2511306012],description:"H. Grammateus (Heinrich Schreiber) (1518). B-F# and Bb-F 1/2 P. Also Marpurg temp.nr.6"},graupner:{frequencies:[261.6255653006,277.083518473,293.59062125964,310.9808189359,329.55130849159,349.11528328816,370.00708353276,392.01655298731,415.20348378516,439.96413779539,466.04943410823,493.90517116572,523.2511306012],description:"Johann Gottlieb Graupner's temperament (1819)"},groenewald_21:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,330.74639366397,348.83408706747,367.91095120397,372.08969287196,392.4383479509,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"J\xEF\xBF\xBDrgen Gr\xEF\xBF\xBDnewald, new meantone temperament I (2000)"},gross:{frequencies:[13.75,13.83042567154,13.91662997964,13.99803029322,14.07990672861,14.1622619889,14.24509903843,14.32842061343,14.41222946472,14.49652860895,14.58132083065,14.67220542837,14.75802520833,14.84434696019,14.93117353378,15.01850805439,15.10635340681,15.19471249121,15.28358848801,15.37298433293,15.46880332718,15.55928251958,15.65029093742,15.74183158529,15.83390775812,15.92652249736,16.01967895316,16.113380201,16.20762961362,16.30865090754,16.4040424858,16.49999202274,16.59650278193,16.69357794961,16.79122101993,16.88943521823,16.98822378696,17.08759028197,17.18753798549,17.29466699621,17.39582592037,17.49757653721,17.59992220598,17.70286661052,17.80641315127,17.91056524676,18.01532664586,18.12070080902,18.23364617402,18.34029731861,18.44757228066,18.55547460176,18.66400816581,18.77317655783,18.88298349104,18.99343259063,19.10452783216,19.2236053387,19.33604689279,19.44914613325,19.56290690697,19.67733296969,19.79242844011,19.90819712001,20.02464283144,20.14176976577,20.26731246322,20.38585868839,20.50509842475,20.62503561099,20.74567420676,20.86701855437,20.98907266203,21.11184068121,21.23532666504,21.36768545088,21.49266790503,21.61838152318,21.74483045784,21.87201888365,21.99995137868,22.12863216875,22.25806563075,22.38825603783,22.52780097787,22.65956910312,22.79210808945,22.92542231482,23.05951631373,23.1943945132,23.33006176809,23.46652255971,23.60378139323,23.75090264526,23.88982499399,24.02955978014,24.17011203339,24.3114863964,24.45368753658,24.59672057234,24.74059022832,24.88530139802,25.04041015894,25.18687501732,25.33419642278,25.48237967807,25.63142967793,25.78135134315,25.93215007005,26.08383083979,26.23639881154,26.39992889083,26.55434576426,26.70966568928,26.86589425653,27.0230366265,27.18109814415,27.34008402779,27.5],description:"Gross temperament, g=91.531021, 5-limit"},groven:{frequencies:[261.6255653006,264.7464578752,272.5650766677,275.81646505128,279.10663876478,290.77709705464,294.24573392894,297.75574765819,306.54921255625,310.20599265769,313.90639394672,327.03195662575,330.93307160522,334.88072358477,344.77058253591,348.88329767713,353.04507480266,363.47137260637,367.80716871461,372.19468374184,387.75749219625,392.38299382393,397.06367008113,408.78994578219,413.66634097248,418.60090448096,436.10412364188,441.30634506723,446.57062302059,459.75895986689,465.24335632603,470.79317533731,484.69686416326,490.47874118496,496.32958936031,517.08292506126,523.2511306012],description:"Eivind Groven's 36-tone scale with 1/8-schisma temp. fifths and 5/4 (1948)"},groven_ji:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.11959049595,517.37477513058,523.2511306012],description:"Untempered version of Groven's 36-tone scale"},gumbeng:{frequencies:[261.6255653006,305.03156112838,348.43777142572,394.8168394034,470.9259392365,525.62941881859],description:"Scale of gumbeng ensemble, Java. 1/1=440 Hz."},gunkali:{frequencies:[261.6255653006,275.93321340298,282.55561052465,348.83408706747,392.4383479509,408.78994578219,418.60090448096,523.2511306012],description:"Indian mode Gunkali, see Dani\xEF\xBF\xBDlou: Intr. to the Stud. of Mus. Scales, p.175"},gyaling:{frequencies:[261.6255653006,283.49766588023,307.55338551939,339.28638158975,347.81902735497,393.58362272115,435.9522698367],description:'Tibetan Buddhist Gyaling tones measured from CD "The Diamond Path", Ligon 2002'},far12_104:{frequencies:[261.6255653006,276.7193479141,294.32876096318,311.93817401225,329.54758706133,349.67263054599,369.79767403066,392.4383479509,415.07902187114,440.23532622697,465.3916305828,493.06356537421,523.2511306012],description:"Farey approximation to 12-tET with den=104"},far12_65:{frequencies:[261.6255653006,277.72560008833,293.82563487606,309.92566966379,330.05071314845,350.17575663311,370.30080011777,390.42584360243,414.57589578403,438.72594796562,466.90100884415,495.07606972267,523.2511306012],description:"Farey approximation to 12-tET with den=65"},far12_80:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,330.30227619201,349.92419358955,369.5461109871,392.4383479509,415.3305849147,441.49314144476,467.65569797482,493.81825450488,523.2511306012],description:"Farey approximation to 12-tET with den=80"},farey3:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,418.60090448096,523.2511306012],description:"Farey fractions between 0 and 1 until 3rd level, normalised by 2/1"},farey4:{frequencies:[261.6255653006,299.00064605783,313.95067836072,327.03195662575,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Farey fractions between 0 and 1 until 4th level, normalised by 2/1"},farey5:{frequencies:[261.6255653006,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,322.00069575458,327.03195662575,332.97799220076,348.83408706747,366.27579142084,373.75080757229,380.54627680087,392.4383479509,402.50086969323,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"Farey fractions between 0 and 1 until 5th level, normalised by 2/1"},farnsworth:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Farnsworth's scale"},fibo_9:{frequencies:[261.6255653006,277.97716313189,327.03195662575,343.38355445704,363.82305174615,392.4383479509,425.14154361347,449.66894036041,523.2511306012],description:"First 9 Fibonacci terms reduced by 2/1, B. McLaren, XH 13, 1991"},finnamore:{frequencies:[261.6255653006,277.97716313189,310.68035879446,348.83408706747,392.4383479509,416.96574469783,457.84473927605,466.02053819169,523.2511306012],description:"David J. Finnamore, Tuning List 9 May '97. Tetrachordal scale, 17/16x19/17x64/57"},finnamore53:{frequencies:[261.6255653006,286.15296204753,310.68035879446,327.03195662575,343.38355445704,359.73515228832,367.91095120397,376.08675011961,392.4383479509,408.78994578219,416.96574469783,425.14154361347,433.31734252912,441.49314144476,457.84473927605,474.19633710734,523.2511306012],description:'David J. Finnamore, tuning for "Crawlspace", 53-limit, 1998.'},finnamore_11:{frequencies:[261.6255653006,287.78812183066,294.32876096318,305.22982618403,323.76163705949,331.11985608357,343.38355445704,348.83408706747,392.4383479509,431.68218274599,441.49314144476,457.84473927605,485.64245558924,515.07533168556,523.2511306012],description:"David J. Finnamore, 11-limit scale, Tuning List 3 Sept '98"},finnamore_7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,309.04519901133,331.11985608357,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,463.567798517,496.67978412536,523.2511306012],description:"David J. Finnamore, TL 1 Sept '98. 7-tone Pyth. with 9/8 div. in 21/20 &15/14"},finnamore_7a:{frequencies:[261.6255653006,280.31310567921,294.32876096318,315.35224388912,331.11985608357,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,473.02836583367,496.67978412536,523.2511306012],description:"David J. Finnamore, TL 1 Sept '98. 7-tone Pyth. with 9/8 div. in 15/14 &21/20"},finnamore_jc:{frequencies:[261.6255653006,276.16031892841,310.68035879446,348.83408706747,392.4383479509,414.24047839262,466.02053819169,523.2511306012],description:"Chalmers' modification of Finnamore. Tuning List 9-5-97 19/18 x 9/8 x 64/57"},fisher:{frequencies:[261.6255653006,273.37431312998,292.50627485027,310.67535808973,327.03195662575,349.71841093413,365.63284485857,391.22147055517,410.55062036439,437.39890198442,467.47330218196,489.02683992698,523.2511306012],description:"Alexander Metcalf Fisher's modified meantone temperament (1818)"},"fj-10tet":{frequencies:[261.6255653006,280.31310567921,300.51585203447,322.00069575458,345.20039866051,370.01329949656,396.52624740872,425.14154361347,455.42228033808,488.36772189445,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 10-tet"},"fj-12tet":{frequencies:[261.6255653006,277.19851561611,293.6613488068,311.12229387098,329.64821227876,348.83408706747,370.01329949656,391.99491478937,415.52295665389,440.00663255101,466.16918908107,490.54793493862,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 12-tet"},"fj-13tet":{frequencies:[261.6255653006,275.96121271433,291.05844139692,306.97399661937,323.91736656265,341.56671025356,360.27127025001,379.97998769849,400.78810003496,422.62591317789,445.95266812602,41.6222490251,496.18641694941,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 13-tet"},"fj-14tet":{frequencies:[261.6255653006,274.92856014639,288.87822835275,303.4856557487,318.85615771011,335.0643204727,352.18826098158,370.01329949656,388.70083987518,408.5030756448,429.33426100611,451.0785608631,473.88781639354,497.93252750759,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 14-tet"},"fj-15tet":{frequencies:[261.6255653006,274.08392555301,286.94416839421,300.51585203447,314.76825825228,329.64821227876,345.20039866051,361.51896296083,378.66858135613,396.52624740872,415.52295665389,392.4383479509,455.42228033808,477.08191319521,499.46698830115,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 15-tet"},"fj-16tet":{frequencies:[261.6255653006,273.25336820285,285.40970760065,297.96244937013,311.12229387098,324.92207303462,339.29565499922,354.2846196779,370.01329949656,386.4008349055,403.52417698906,421.50785520652,440.00663255101,459.44001711325,479.64686971777,500.9851250437,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 16-tet"},"fj-17tet":{frequencies:[261.6255653006,272.52663052146,283.8915708581,295.75063903546,307.98958953109,320.70230585235,334.29933343966,348.03400888612,362.53828334512,373.75080757229,392.4383479509,409.71550792358,426.86276443782,444.76346101102,462.87600014722,482.37213602298,502.32108537715,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 17-tet"},"fj-18tet":{frequencies:[261.6255653006,271.88539139082,282.55561052465,293.6613488068,305.22982618403,317.12189733406,329.64821227876,342.60490694126,355.98232655655,370.01329949656,384.51030051755,399.57359064092,415.52295665389,431.68218274599,448.50096908674,466.16918908107,484.4917875937,503.12608711654,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 18-tet"},"fj-19tet":{frequencies:[261.6255653006,271.31540105247,281.44568388398,291.81313052759,302.73815413355,313.95067836072,325.69713231299,337.73482066077,350.31219760589,363.36884069528,376.74081403286,390.78248994267,405.26313056367,420.46965851882,436.04260883433,451.89870370104,468.95148497277,485.87604984397,504.56359022259,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 19-tet"},"fj-20tet":{frequencies:[261.6255653006,270.8594087818,280.31310567921,290.29686012806,300.51585203447,311.12229387098,322.00069575458,333.44434793214,345.20039866051,357.34223553253,370.01329949656,383.09457776159,396.52624740872,410.48149038542,425.14154361347,440.00663255101,455.42228033808,470.92601754108,488.36772189445,505.41302387616,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 20-tet"},"fj-21tet":{frequencies:[261.6255653006,270.34641747729,279.46367202564,288.87822835275,298.56093922539,308.58400009814,318.85615771011,329.64821227876,340.72166643799,352.18826098158,364.00078650518,376.08675011961,388.70083987518,401.78211814021,415.52295665389,429.33426100611,443.62595855319,457.84473927605,473.88781639354,489.85212226495,506.18859373377,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 21-tet"},"fj-22tet":{frequencies:[261.6255653006,270.06509966514,278.68810216803,287.55242312318,296.76929795292,306.29334474217,316.13089140489,326.18252297218,336.37572681506,347.40443916965,358.52392281934,370.01329949656,381.83190611439,392.4383479509,392.4383479509,419.69101100305,433.03541842858,446.94367405519,461.28718092474,475.68284600109,491.34557385722,506.89953276991,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 22-tet"},"fj-23tet":{frequencies:[261.6255653006,269.55361273395,277.97716313189,286.37392958579,295.1673044417,304.21577360535,313.47928094576,323.18452184192,332.97799220076,343.1154954762,353.6790049434,364.40703738298,375.66747838035,387.20583664489,398.97898708342,411.12588832951,423.58424858192,436.04260883433,449.99597231703,463.79077485106,477.96978276071,492.47165233054,507.86139146587,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 23-tet"},"fj-24tet":{frequencies:[261.6255653006,269.32043486826,277.19851561611,285.40970760065,293.6613488068,302.32287545847,311.12229387098,320.2657782128,329.64821227876,339.29565499922,348.83408706747,348.83408706747,370.01329949656,380.54627680087,391.99491478937,403.52417698906,415.52295665389,427.53446036927,440.00663255101,452.81347840488,466.16918908107,479.64686971777,490.54793493862,508.30109829831,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 24-tet"},"fj-26tet":{frequencies:[261.6255653006,268.69652652494,275.96121271433,283.42769574232,291.05844139692,299.00064605783,306.97399661937,315.29234792636,323.91736656265,332.57487114483,341.56671025356,350.8160989258,360.27127025001,370.01329949656,379.97998769849,390.22118214327,400.78810003496,411.12588832951,422.62591317789,434.18710837121,445.95266812602,457.84473927605,457.84473927605,483.00104363188,496.18641694941,509.48136400643,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 26-tet"},"fj-30tet":{frequencies:[261.6255653006,267.70988077271,274.08392555301,280.31310567921,286.94416839421,293.6613488068,300.51585203447,307.52478728316,314.76825825228,322.00069575458,329.64821227876,337.35928157183,345.20039866051,353.19451315581,361.51896296083,370.01329949656,378.66858135613,387.59343007496,396.52624740872,405.78659107848,415.52295665389,425.14154361347,392.4383479509,444.76346101102,455.42228033808,466.16918908107,477.08191319521,488.36772189445,499.46698830115,511.35905945117,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 30-tet"},"fj-31tet":{frequencies:[261.6255653006,267.57160087561,273.51763645063,279.79400733536,286.15296204753,292.60754013883,299.00064605783,305.96888145324,312.81317590289,319.76457981184,327.03195662575,334.53760808929,342.12573923925,349.884792149,357.81143489641,366.27579142084,373.75080757229,382.37582620857,391.25985441351,400.13321751856,409.20921752145,418.60090448096,428.11456140098,437.54620403721,447.51741432997,457.84473927605,467.90726101838,478.40103369253,489.12605686634,500.50108144463,511.62332769895,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 31-tet"},"fj-36tet":{frequencies:[261.6255653006,266.75547834571,271.88539139082,277.19851561611,282.55561052465,288.08208313999,293.6613488068,299.00064605783,305.22982618403,311.12229387098,317.12189733406,323.18452184192,329.64821227876,327.03195662575,342.60490694126,348.83408706747,355.98232655655,362.89997767503,370.01329949656,377.22755927063,384.51030051755,391.99491478937,399.57359064092,406.97310157871,415.52295665389,423.35773294097,431.68218274599,440.00663255101,448.50096908674,436.04260883433,466.16918908107,475.19745534191,484.4917875937,490.54793493862,503.12608711654,513.18860885887,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 36-tet"},"fj-41tet":{frequencies:[261.6255653006,266.05989691586,270.64713651786,275.21650375777,279.87851171692,284.71017400359,289.532292266,294.32876096318,299.49242343621,304.63250754179,309.81974838229,315.13988547572,320.49131749323,325.95972070239,331.39238271409,337.09447836808,342.81970625596,348.83408706747,354.64798851859,360.72615821749,366.27579142084,373.13810133036,379.35706968587,386.00493241072,392.4383479509,399.32323124828,405.97070477679,413.09299784305,419.97788114044,427.14378008261,434.48531380278,441.85651028546,449.45930449077,436.04260883433,465.11211608996,472.93852188955,480.82536325516,489.12605686634,497.08857407114,505.80942624783,514.53027842451,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 41-tet"},"fj-42tet":{frequencies:[261.6255653006,265.98599138894,270.34641747729,274.92856014639,279.46367202564,284.05061375494,288.87822835275,293.6613488068,298.56093922539,303.4856557487,308.58400009814,313.7026920429,318.85615771011,324.18820048118,329.64821227876,335.0643204727,340.72166643799,346.37750898953,352.18826098158,358.01393146398,364.00078650518,370.01329949656,376.08675011961,382.37582620857,388.70083987518,395.22159864559,401.78211814021,408.5030756448,415.52295665389,422.16852582597,429.33426100611,436.04260883433,443.62595855319,451.0785608631,457.84473927605,466.16918908107,473.88781639354,481.94183081689,489.85212226495,497.93252750759,506.18859373377,514.81159623666,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 42-tet"},"fj-43tet":{frequencies:[261.6255653006,265.84533248287,270.2034526875,274.70684356563,279.06726965397,283.42769574232,288.1672893166,292.86443876933,297.71185016965,302.50455987882,307.4100392282,312.38873468728,317.43901923139,322.67153053741,327.85988562987,332.97799220076,338.57426097725,344.24416486921,348.83408706747,355.41586229515,361.11697745717,367.05676325756,372.95559308809,379.09010482332,385.17097113699,391.45479319413,397.88888056133,404.33041910093,392.4383479509,417.48760420309,424.25767346043,431.1976909584,438.2228218785,445.32011114996,452.54151835779,459.82675113439,467.18850946536,475.05694751951,483.00104363188,490.54793493862,498.33441009638,506.89953276991,514.81159623666,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 43-tet"},"fj-53tet":{frequencies:[261.6255653006,265.06800694929,268.51044859798,272.09058791262,275.69145590816,279.30296836145,282.98275430473,286.71294827463,290.48132617934,294.32876096318,298.13145813324,302.11523612093,306.05254808749,310.07474405997,313.95067836072,318.31110444906,322.46872002167,326.7649917632,331.03642956402,335.41739141103,336.37572681506,344.24416486921,348.83408706747,353.42400926572,358.01393146398,362.89997767503,367.52162744608,372.31330446624,377.3445653374,382.37582620857,387.20583664489,392.4383479509,397.67085925691,402.82031482791,408.13588186894,413.53718386224,418.60090448096,424.41480593208,429.81342870813,436.04260883433,441.49314144476,447.29532132038,453.1728541814,459.07882213124,465.11211608996,470.92601754108,477.46665667359,483.76047923507,485.87604984397,496.55464434604,503.12608711654,509.83443494476,516.36624730382,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 53-tet"},"fj-54tet":{frequencies:[261.6255653006,265.02329991489,268.42103452919,271.88539139082,275.39533189537,279.06726965397,282.55561052465,286.15296204753,289.90941019796,293.6613488068,297.46468383493,301.26580246736,305.22982618403,309.19384990071,313.15787361738,317.12189733406,321.29455387793,325.43667878855,329.64821227876,333.91683992313,338.19890148614,342.60490694126,346.93824963775,351.55935337268,355.98232655655,360.61902244137,365.28852513669,370.01329949656,374.76094489005,379.61356533813,384.51030051755,389.53139722534,394.5147413263,399.57359064092,404.77917650282,409.88005230427,415.52295665389,420.652869699,426.07592063241,431.68218274599,436.04260883433,442.75095666255,448.50096908674,454.40229762736,460.26719821402,466.16918908107,472.20223981084,478.40103369253,484.4917875937,490.54793493862,497.08857407114,503.12608711654,510.16985233617,516.54278277298,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 54-tet"},"fj-55tet":{frequencies:[261.6255653006,264.93728131706,268.33391312882,271.68808704293,275.15792212649,278.68810216803,282.14521748104,285.77561748219,289.37373131733,293.02063313667,296.76929795292,300.51585203447,304.33994330886,308.21641939523,312.11470948142,316.13089140489,319.76457981184,324.10331223806,328.22116374075,332.33517754401,336.37572681506,340.90603963412,345.20039866051,348.83408706747,353.96400011258,358.52392281934,363.07221307022,367.68998366571,372.31330446624,377.04860881557,381.83190611439,386.75083566176,391.58336244338,396.52624740872,401.56482115906,406.65712867376,411.81801945465,416.96574469783,418.60090448096,427.65717404906,433.03541842858,438.60756535689,444.15502946381,449.8123754291,455.42228033808,461.28718092474,467.18850946536,472.93852188955,479.03272519828,485.0974023282,491.34557385722,497.60156537565,503.87145909745,510.16985233617,516.71049146868,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 55-tet"},"fj-5tet":{frequencies:[261.6255653006,300.51585203447,345.20039866051,396.52624740872,455.42228033808,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 5-tet"},"fj-60tet":{frequencies:[261.6255653006,264.66772303665,267.70988077271,270.8594087818,274.08392555301,277.19851561611,280.31310567921,283.6903720127,286.94416839421,290.29686012806,293.6613488068,297.10021822272,300.51585203447,304.05133264664,307.52478728316,311.12229387098,314.76825825228,318.50068819203,322.00069575458,325.79787377056,329.64821227876,333.44434793214,337.35928157183,341.25073734861,345.20039866051,348.83408706747,353.19451315581,357.34223553253,361.51896296083,365.74186169574,370.01329949656,374.3258088147,378.66858135613,383.09457776159,387.59343007496,391.99491478937,396.52624740872,401.15920012759,405.78659107848,410.48149038542,415.52295665389,420.18651396763,425.14154361347,429.81342870813,434.91003062957,440.00663255101,444.76346101102,450.23934493592,455.42228033808,460.95932933915,466.16918908107,470.92601754108,477.08191319521,482.55382044333,488.36772189445,490.54793493862,499.46698830115,505.41302387616,511.35905945117,517.30509502619,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 60-tet"},"fj-66tet":{frequencies:[261.6255653006,264.37951861955,267.19206668997,270.06509966514,272.83808952777,275.76748774928,278.68810216803,281.58005756929,284.57517629188,287.55242312318,290.69507255622,293.6613488068,296.76929795292,299.91223339337,302.93486508491,306.29334474217,309.48390041656,312.81317590289,316.13089140489,319.38705374359,322.78478835788,326.18252297218,329.64821227876,332.97799220076,336.37572681506,340.11323489078,343.8507429665,347.40443916965,351.12904816659,354.74652922115,358.52392281934,362.25078272391,366.27579142084,370.01329949656,373.75080757229,377.90359432309,381.83190611439,385.89770881839,389.97018224052,392.4383479509,398.12586024004,402.50086969323,406.65712867376,411.12588832951,415.52295665389,419.69101100305,424.01384721132,428.62060698183,433.03541842858,437.71969579139,442.27178896054,446.94367405519,451.89870370104,456.45311392871,461.28718092474,466.16918908107,470.92601754108,475.68284600109,481.05345877852,485.87604984397,491.34557385722,496.41773928832,501.44900015948,506.89953276991,512.35006538034,517.80059799077,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 66-tet"},"fj-72tet":{frequencies:[195.99771799087,197.9006084568,199.84081050049,201.76235675531,203.68390301012,205.67661764474,207.66424882366,209.67197738558,211.67753543014,213.81569235368,215.817711945,217.77524221208,219.99743856118,222.13074705632,223.99739198957,226.48625190056,228.66400432268,230.8417567448,233.07836734049,235.19726158904,237.57299150408,239.92824098882,242.11482810637,244.5635242187,246.9571246685,249.45164107929,251.74018824515,254.18454051941,256.66367832138,259.11562717437,261.33029065449,264.17083729204,266.68541956135,269.28382123963,271.86780237443,274.39680518722,277.19677258709,279.99673998696,282.60136082405,285.0875898049,288.0572521987,290.83532347032,293.66437746429,296.5093682426,299.34196929515,302.30156503677,304.88533909691,307.99641398565,311.29049327962,313.59634878539,317.15994365795,320.28895378996,323.39623468494,326.46784071315,329.63252571192,332.8263135694,335.99608798435,339.22681959958,342.55457018224,345.87832586624,349.232297511,352.79589238357,355.99585512627,359.32914964993,362.95873702013,366.4305162438,367.49572123288,373.6206499201,376.91868844398,380.79556638226,384.45706221286,388.2262490973,391.99543598174],description:"Franck Jedrzejewski continued fractions approx. of 72-tet"},"fj-78tet":{frequencies:[138.59131548844,139.82873794816,141.06616040788,142.33702671786,143.60064014465,144.89092073791,146.18536017274,147.4753741736,148.781853392,150.14059177914,151.48353088271,152.80580938469,154.18283848089,155.56168065029,156.95883922787,158.39007484393,159.76498868806,161.21846903757,162.6138101731,164.12129465736,165.53962683341,167.02030328094,168.55700532378,170.00534699915,171.58924774759,173.06676710248,174.62505751543,176.17540104463,177.75842638735,179.35346710269,180.93866188769,182.53490332624,184.15558359423,185.8383548595,187.50589742554,188.98815748424,190.84705739392,192.48793817839,194.02784168382,196.00771761937,197.74614527009,199.57149430335,201.28738678083,203.10796235375,204.87411854813,206.71247055903,207.88697323266,210.45347907504,212.31010032272,214.18657848213,216.10849194808,217.78635291041,220.11561871693,221.7461047815,223.87827886594,225.96410133985,228.00506741647,230.00260868294,232.05987709692,234.17153306667,236.2351968553,238.37706264012,240.41350645954,242.53480210477,244.7463656498,246.9445257794,249.1343885566,251.39820018833,253.59261982991,255.8608901325,258.1602935569,260.55167311827,262.84559834014,265.13121223875,267.51346943117,269.88835121433,272.23294113801,274.70778605744,277.18263097688],description:"Franck Jedrzejewski continued fractions approx. of 78-tet"},"fj-7tet":{frequencies:[261.6255653006,288.87822835275,318.85615771011,352.18826098158,388.70083987518,429.33426100611,473.88781639354,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 7-tet"},"fj-84tet":{frequencies:[97.99885899544,98.81551615374,99.63217331203,100.44883047033,101.26548762862,102.12512674262,102.98185182572,103.83212441184,104.68059938149,105.53723276432,106.39876119505,107.33208366167,108.20707347413,109.09306944775,109.9987192806,110.89344570537,111.83399203009,112.76581035092,113.67867643471,114.64017467391,115.58839778949,116.53918367025,117.50574088079,118.47623251688,119.43610940069,120.45693084856,121.43336875522,122.4985737443,123.47856233425,124.48503710232,125.50731064328,126.58185953578,127.62642101732,128.62350243151,129.74496824748,130.66514532725,131.9215409554,132.99845149381,134.10370178323,135.17083999371,136.34623860235,137.19840259362,138.59838629355,139.73911375276,140.87335980595,142.09834554339,143.22910160872,144.41937115117,145.59830479323,146.83218873215,148.0408295463,149.25980062382,150.498247743,151.74016876713,153.01576229113,154.29607586516,155.64524663982,156.7981743927,158.13452246991,159.45577056885,160.81864040277,162.07503603092,163.33143165907,164.81626285597,166.17197829662,167.54643634704,168.96354999214,170.33135015874,171.49800324202,173.20728566636,174.61614875551,176.03498745477,177.50736723702,178.95443816559,180.52421393897,181.99788099153,183.48722535316,183.74786061645,186.51395744293,188.05186455882,189.60648805639,191.21728584476,192.8364644749,194.36440367429,195.99771799088],description:"Franck Jedrzejewski continued fractions approx. of 84-tet"},"fj-8tet":{frequencies:[261.6255653006,285.40970760065,311.12229387098,339.29565499922,370.01329949656,403.52417698906,440.00663255101,479.64686971777,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 8-tet"},"fj-90tet":{frequencies:[69.29565774422,69.83283338565,70.37840239647,70.9071846685,71.46114704873,72.0131345185,72.59545097014,73.14541650779,73.69538204544,74.24534758309,74.83931036376,75.40998048636,76.00168913882,76.58993750677,77.19009976571,77.78084032514,78.38361285822,78.99704982841,79.59636362512,80.23707738804,80.84493403492,81.4527906818,82.08870225085,82.70772053342,83.37133822351,83.99473665966,84.69469279849,85.2869633775,85.97794571968,86.61957218027,87.31252875772,87.95218098305,88.65767976099,89.35492709123,90.08435506749,90.74431371267,91.43177063473,92.14038007748,92.85618137725,93.5491379547,94.28753430771,95.03404490636,95.75399979201,96.51895185802,97.25706350066,98.00385880968,98.74631228551,99.50145727375,100.29634673506,101.05616754365,101.84361819984,102.66023369514,103.42635484212,103.94348661633,105.02623126858,105.83336819117,106.60870422188,107.47897935838,108.27446522534,109.14066094715,110.05780935847,110.87305239075,111.72157064884,112.60544383436,113.39289449054,114.33783527796,115.19278170468,116.11704811194,116.93642244337,117.80261816517,118.79255613295,119.69249974002,120.62577459179,121.5942673625,122.52275717094,123.4722628897,124.41720367712,125.39214258478,126.36267000417,127.35418180019,128.32529211893,129.35189445588,130.27583655913,131.29703572589,132.29171023897,133.26088027735,134.39157865546,135.4415128637,136.49144707195,137.52522844622,138.59131548844],description:"Franck Jedrzejewski continued fractions approx. of 90-tet"},"fj-96tet":{frequencies:[48.99942949772,49.35708956705,49.70956615711,50.0646344868,50.44058918883,50.81422318282,51.17718191984,51.5338827476,51.91606220592,52.2660581309,52.67438671005,53.04896912563,53.45392308842,53.81904551389,54.21213476343,54.59936429746,54.9993596403,55.39065943221,55.80490581685,56.20522795327,56.62156297514,57.01751796098,57.44760699733,57.85474808165,58.26959183513,58.69162434342,59.11042288614,59.54361052887,59.98206024721,60.41025554513,60.85413018265,61.24928687215,61.73928116713,62.19158359326,62.61038213598,63.09515579158,63.54613512986,63.99925485416,64.47293354963,64.92424408448,65.33257266363,65.89578449693,66.3533941115,66.81740386053,67.32095530991,67.84536391992,68.30223505743,68.78766064103,69.29919314678,69.78706625433,70.30352927934,70.77695371893,71.27189745123,71.86582992999,72.36838818125,72.90159022832,73.41609436608,73.94459360565,74.47913283653,75.03037641838,75.5753912592,76.10549687944,76.66039776256,77.21122223883,77.82262331991,78.34524166943,78.94352530188,79.48796340741,80.07223844749,80.64489438166,81.23589627254,81.66571582953,82.40813142798,82.999033639,83.58726208435,84.21776944921,84.8067048999,85.43490271397,86.04777863014,86.69129834212,87.30807437776,87.94769397027,88.57589178434,89.20408959841,89.83228741249,90.46048522656,91.16172929808,91.87393030822,92.49330511929,93.09891604567,93.82869478287,94.4988997456,95.19889159557,95.91377688915,96.59887529551,97.28872233605,97.99885899544],description:"Franck Jedrzejewski continued fractions approx. of 96-tet"},"fj-9tet":{frequencies:[261.6255653006,282.55561052465,305.22982618403,329.64821227876,355.98232655655,384.51030051755,415.52295665389,448.50096908674,484.4917875937,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 9-tet"},flavel:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Bill Flavel's just tuning. Tuning List 6-5-98"},fogliano:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Fogliano's Monochord with D-/D and Bb-/Bb"},fogliano1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Fogliano's Monochord no.1, Musica theorica (1529)"},fogliano2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Fogliano's Monochord no.2"},"fokker-h":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Fokker-H 5-limit per.bl. synt.comma&small diesis, KNAW B71, 1968"},"fokker-ht":{frequencies:[261.6255653006,272.31140503734,279.67242998298,290.89121260742,305.67073265504,313.92185180985,326.66733279836,335.5942968927,349.22294231864,363.36596605244,376.74379448613,392.00137290182,407.92073675044,419.068143928,436.08264938702,447.85404100892,470.60848490625,489.4864783277,502.71810253025,523.2511306012],description:"Tempered version of Fokker-H per.bl. with better 6 tetrads, OdC"},"fokker-k":{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"Fokker-K 5-limit per.bl. of 225/224 & 81/80 & 10976/10935, KNAW B71, 1968"},"fokker-l":{frequencies:[261.6255653006,271.31540105247,282.62020942966,291.99281841585,301.39265122629,313.95067836072,325.57848126297,339.14425131559,350.39138209902,363.36884069528,376.74081403286,390.69417751556,403.65087217807,420.46965851882,436.04260883433,454.2110508691,468.83301301868,484.38104661368,504.56359022259,523.2511306012],description:"Fokker-L 7-limit periodicity block 10976/10935 & 225/224 & 15625/15552, 1969"},"fokker-lt":{frequencies:[261.6255653006,272.07297743248,282.57734531132,291.77233860052,302.20925621315,313.90139500947,326.42149564976,339.58797317787,349.9403315901,363.14714144228,376.97081214523,391.19775936204,403.12344267272,419.38375585596,436.11106867998,452.98371913917,469.18728997524,484.4545223075,503.15865298196,523.2511306012],description:"Tempered version of Fokker-L per.bl. with more triads"},"fokker-m":{frequencies:[261.6255653006,265.7783520514,274.70684356563,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,336.37572681506,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,406.97310157871,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker-M 7-limit periodicity block 81/80 & 225/224 & 1029/1024, KNAW B72, 1969"},"fokker-n":{frequencies:[261.6255653006,265.7783520514,273.37201925287,277.71125765371,286.15296204753,290.69507255622,299.00064605783,303.74668805875,313.95067836072,318.93402246168,328.62879235146,333.84512238879,343.38355445704,348.83408706747,358.80077526939,364.4960256705,375.57576268738,381.53728273004,392.4383479509,398.6675280771,410.05802887931,416.56688648057,429.2294430713,436.04260883433,450.69091522486,457.84473927605,470.92601754108,478.40103369253,492.94318852719,500.76768358318,515.07533168556,523.2511306012],description:"Fokker-N 7-limit periodicity block 81/80 & 2100875/2097152 & 1029/1024, 1969"},"fokker-n2":{frequencies:[261.6255653006,265.7783520514,272.52663052146,279.06726965397,286.15296204753,290.69507255622,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,334.88072358477,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,478.40103369253,490.54793493862,502.32108537715,515.07533168556,523.2511306012],description:"Fokker-N different block shape"},"fokker-p":{frequencies:[261.6255653006,267.90457886781,273.37201925287,280.31310567921,286.15296204753,290.69507255622,299.00064605783,306.17666156322,312.97980223949,320.35783506196,327.03195662575,334.88072358477,341.85740532612,350.39138209902,357.69120255941,366.27579142084,373.75080757229,382.72082695402,390.69417751556,400.44729382745,408.78994578219,418.60090448096,427.32175665765,437.39523080459,447.11400319927,457.84473927605,470.92601754108,478.40103369253,488.36772189445,500.76768358318,510.98743222773,523.2511306012],description:"Fokker-P 7-limit periodicity block 65625/65536 & 6144/6125 & 2401/2400, 1969"},"fokker-q":{frequencies:[261.6255653006,265.7783520514,269.10058145205,272.52663052146,274.70684356563,279.06726965397,284.76252005507,286.15296204753,290.69507255622,294.32876096318,299.00064605783,301.39265122629,305.22982618403,311.45900631024,313.95067836072,318.93402246168,321.92208230347,327.03195662575,332.22294006425,334.88072358477,340.65828815182,343.38355445704,348.83408706747,353.19451315581,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,381.53728273004,387.59343007496,392.4383479509,398.6675280771,401.85686830172,408.78994578219,412.06026534844,418.60090448096,425.24536328225,429.2294430713,436.04260883433,439.53094970501,448.50096908674,454.2110508691,457.84473927605,465.11211608996,470.92601754108,478.40103369253,480.73697623985,490.54793493862,498.33441009638,502.32108537715,508.71637697339,515.07533168556,523.2511306012],description:"Fokker-Q 7-limit per.bl. 225/224 & 4000/3969 & 6144/6125, KNAW B72, 1969"},"fokker-r":{frequencies:[261.6255653006,264.95644634031,268.26840191956,272.52663052146,275.55899540689,279.06726965397,282.62020942966,287.04062021552,290.69507255622,294.32876096318,298.07600213285,301.80195215951,306.17666156322,310.07474405997,313.95067836072,317.94773560837,322.92069774245,327.03195662575,331.19555792538,334.88072358477,340.1962906258,344.44874425862,348.83408706747,353.19451315581,357.69120255941,363.36884069528,367.91095120397,372.08969287196,376.74081403286,382.72082695402,387.59343007496,392.4383479509,397.43466951046,402.40260287934,408.78994578219,413.33849311034,418.60090448096,423.93031414449,430.56093032327,436.04260883433,441.49314144476,447.11400319927,453.59505416773,459.26499234482,465.11211608996,470.92601754108,476.92160341255,484.38104661368,490.54793493862,496.79333688808,502.32108537715,510.29443593869,516.67311638793,523.2511306012],description:"Fokker-R 7-limit per.bl. 4375/4374 & 65625/65536 & 6144/6125, 1969"},"fokker-s":{frequencies:[261.6255653006,265.7783520514,269.10058145205,273.37201925287,273.85732695955,278.20426865732,282.55561052465,286.15296204753,290.69507255622,295.2417807931,299.00064605783,303.74668805875,304.28591884395,309.04519901133,313.95067836072,317.94773560837,322.92069774245,328.04642310345,332.22294006425,333.84512238879,338.01818641865,343.38355445704,348.83408706747,353.19451315581,358.80077526939,364.4960256705,369.13660007139,370.8542388136,375.57576268738,381.53728273004,387.59343007496,392.4383479509,398.6675280771,404.99558407833,410.05802887931,412.06026534844,417.30640298598,423.93031414449,430.56093032327,436.04260883433,442.96392008567,449.89223739901,450.69091522486,457.84473927605,463.67378109554,470.92601754108,478.40103369253,484.4917875937,492.06963465517,499.88026377668,500.76768358318,508.71637697339,515.07533168556,523.2511306012],description:"Fokker-S 7-limit per.bl. 4375/4374 & 323/322 & 64827/65536, 1969"},fokker_12:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,348.83408706747,367.91095120397,392.4383479509,420.46965851882,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Fokker's 7-limit 12-tone just scale"},fokker_12a:{frequencies:[261.6255653006,274.70684356563,293.02063313667,309.04519901133,327.03195662575,348.83408706747,367.91095120397,390.69417751556,412.06026534844,439.53094970501,465.11211608996,490.54793493862,523.2511306012],description:"Fokker's 7-limit periodicity block of 2048/2025 & 3969/4000 & 225/224"},fokker_12b:{frequencies:[261.6255653006,275.93321340298,293.02063313667,309.04519901133,332.22294006425,348.83408706747,367.91095120397,392.4383479509,412.06026534844,439.53094970501,467.18850946536,496.11959049595,523.2511306012],description:"Fokker's 7-limit semitone scale KNAW B72, 1969"},fokker_12c:{frequencies:[261.6255653006,275.93321340298,293.02063313667,311.45900631024,332.22294006425,348.83408706747,372.08969287196,392.4383479509,412.06026534844,442.96392008567,467.18850946536,496.11959049595,523.2511306012],description:"Fokker's 7-limit complementary semitone scale, KNAW B72, 1969"},fokker_12t:{frequencies:[261.6255653006,279.53180800295,293.53544531438,305.4439412874,326.66157401657,349.08351368992,366.63408494061,391.81886165309,419.06057467847,436.03416050506,457.88164994338,489.21957814041,523.2511306012],description:"Tempered version of fokker_12 with egalised 225/224, see also lumma"},fokker_12t2:{frequencies:[261.6255653006,279.53060025556,293.5302824794,305.44678713816,326.66192308793,349.10467831311,366.62831408589,391.81689264402,419.03095498017,436.04260883433,457.88067400285,489.21694446174,523.2511306012],description:"Another tempered version of fokker_12 with egalised 225/224"},fokker_22:{frequencies:[261.6255653006,272.52663052146,279.06726965397,287.4304306281,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Fokker's 22-tone periodicity block of 2048/2025 & 3125/3072. KNAW B71, 1968"},fokker_22a:{frequencies:[261.6255653006,269.46602871384,279.06726965397,287.4304306281,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,431.14564594215,446.50763144636,459.88868900496,476.27480687611,490.54793493862,502.32108537715,523.2511306012],description:"Fokker's 22-tone periodicity block of 2048/2025 & 2109375/2097152 = semicomma"},fokker_31:{frequencies:[261.6255653006,265.7783520514,275.93321340298,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,315.35224388912,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,406.97310157871,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,482.88312345521,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone just system"},fokker_31a:{frequencies:[261.6255653006,269.10058145205,272.52663052146,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,311.45900631024,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,412.06026534844,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,476.92160341255,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone first alternate septimal tuning"},fokker_31b:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,480.53675259294,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone second alternate septimal tuning"},fokker_31c:{frequencies:[261.6255653006,269.46602871384,272.52663052146,279.06726965397,287.4304306281,294.32876096318,297.67175429757,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,344.91651675372,348.83408706747,359.28803828513,367.91095120397,372.08969287196,383.2405741708,392.4383479509,396.89567239676,408.78994578219,418.60090448096,431.14564594215,436.04260883433,446.50763144636,459.88868900496,465.11211608996,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Fokker's 31-tone periodicity block of 81/80 & 2109375/2097152 = semicomma"},fokker_31d:{frequencies:[261.6255653006,266.13928761861,272.52663052146,279.06726965397,287.4304306281,294.32876096318,299.40669857094,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,359.28803828513,367.91095120397,376.74081403286,383.2405741708,392.4383479509,399.20893142792,408.78994578219,418.60090448096,425.82286018978,436.04260883433,443.56547936435,459.88868900496,470.92601754108,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Fokker's 31-tone periodicity block of 81/80 & W\xEF\xBF\xBDrschmidt's comma"},fokker_31d2:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,290.69507255622,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,425.82286018978,436.04260883433,446.50763144636,454.2110508691,465.11211608996,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Reduced version of fokker_31d by Prooijen expressibility"},fokker_41:{frequencies:[261.6255653006,264.89588486686,271.31540105247,274.70684356563,280.31310567921,283.8170195002,290.69507255622,294.32876096318,300.33547037059,305.22982618403,311.45900631024,313.95067836072,321.55899383997,325.57848126297,329.64821227876,336.37572681506,341.85740532612,348.83408706747,353.19451315581,361.75386806997,366.27579142084,373.75080757229,378.42269266694,387.59343007496,392.4383479509,400.44729382745,406.97310157871,415.27867508032,420.46965851882,425.72552925031,436.04260883433,439.53094970501,448.50096908674,455.80987376816,465.11211608996,470.92601754108,482.33849075995,488.36772189445,498.33441009638,504.56359022259,516.79124009995,523.2511306012],description:"Fokker's 7-limit supracomma per.bl. 10976/10935 & 225/224 & 496125/262144"},fokker_41a:{frequencies:[261.6255653006,264.59711493117,272.83435407277,275.93321340298,279.06726965397,287.4304306281,291.02331101095,294.32876096318,297.67175429757,306.59245933664,310.42486507835,313.95067836072,323.35923445661,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.77913876369,367.91095120397,372.08969287196,376.315896791,388.03108134794,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,431.14564594215,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,485.03885168492,490.54793493862,496.11959049595,502.32108537715,517.37477513058,523.2511306012],description:"Fokker's 41-tone periodicity block of schisma & 34171875/33554432"},fokker_41b:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,287.4304306281,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.42486507835,313.95067836072,323.35923445661,327.03195662575,331.11985608357,340.65828815182,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,383.2405741708,388.03108134794,392.4383479509,397.34382730029,408.78994578219,413.89982010446,418.60090448096,431.14564594215,436.04260883433,441.49314144476,454.2110508691,459.88868900496,465.11211608996,470.92601754108,485.03885168492,490.54793493862,496.67978412536,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 41-tone periodicity block of schisma & 3125/3072"},fokker_53:{frequencies:[261.6255653006,263.718569823,268.26840191956,272.52663052146,274.70684356563,279.06726965397,282.55561052465,286.15296204753,290.69507255622,294.32876096318,299.00064605783,300.46061014991,305.22982618403,309.04519901133,313.95067836072,317.87506184023,321.92208230347,327.03195662575,329.64821227876,334.88072358477,340.65828815182,343.38355445704,348.83408706747,353.19451315581,357.69120255941,360.55273217989,366.27579142084,373.75080757229,376.74081403286,381.53728273004,386.30649876417,392.4383479509,398.6675280771,400.61414686654,410.05802887931,412.06026534844,418.60090448096,423.83341578697,429.2294430713,436.04260883433,439.53094970501,448.50096908674,450.69091522486,457.84473927605,465.11211608996,470.92601754108,476.92160341255,480.73697623985,490.54793493862,498.33441009638,502.32108537715,508.71637697339,515.07533168556,523.2511306012],description:"Fokker's 53-tone system, degree 37 has alternatives"},fokker_53a:{frequencies:[261.6255653006,264.89588486686,269.46602871384,272.52663052146,275.93321340298,279.38237857051,283.88190679319,287.4304306281,290.69507255622,294.32876096318,298.00787047521,302.80736724606,306.59245933664,310.42486507835,313.95067836072,319.36714514233,323.35923445661,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,359.28803828513,363.36884069528,367.91095120397,372.50983809402,378.50920905758,383.2405741708,388.03108134794,392.4383479509,397.34382730029,403.74315632809,408.78994578219,413.89982010446,418.60090448096,425.82286018978,431.14564594215,436.04260883433,441.49314144476,447.01180571282,454.2110508691,459.88868900496,465.63729761752,470.92601754108,479.0507177135,484.4917875937,490.54793493862,496.67978412536,504.67894541011,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 53-tone periodicity block of schisma & kleisma"},fokker_53b:{frequencies:[261.6255653006,264.59711493117,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.51653791741,323.35923445661,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,388.03108134794,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.89982010446,418.60090448096,423.35538388988,431.14564594215,436.04260883433,441.49314144476,446.50763144636,451.5790761492,459.88868900496,465.11211608996,470.92601754108,476.27480687611,485.03885168492,490.54793493862,496.11959049595,502.32108537715,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 53-tone periodicity block of schisma & 2109375/2097152"},fokker_av:{frequencies:[261.6255653006,267.53238172257,273.57240048543,279.74894499065,286.06477437084,292.52336378682,299.12777114678,305.88111195206,312.78710209553,319.84901131344,327.07017092477,334.45455423048,342.00545991849,349.72704272607,357.62295854304,365.69693211485,373.95340598657,382.39606841888,391.02956482064,399.85798283974,408.88548711149,418.11704484248,427.5567798744,437.20988623572,447.08093432269,457.17458061119,467.49637893146,478.0512162812,488.84407170063,499.88088374606,511.16658268681,522.70737825664],description:"Fokker's suggestion for a shrinked octave by averaging approximations"},fokker_bosch:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,348.83408706747,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'Scale of "Naar Den Bosch toe", genus diatonicum cum septimis. 1/1=D'},fokker_sr:{frequencies:[261.6255653006,269.10058145205,279.06726965397,287.04062021552,296.75121990114,305.22982618403,315.35224388912,325.57848126297,336.37572681506,347.28371334717,358.80077526939,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,434.10464168396,446.50763144636,461.31528248922,474.80195184183,490.54793493862,506.45541529795,523.2511306012],description:"Fokker's 7-limit sruti scale, KNAW B72, 1969"},fokker_sr2:{frequencies:[261.6255653006,270.30192333353,279.06726965397,288.32205155576,296.75121990114,306.59245933664,315.35224388912,327.03195662575,336.37572681506,348.83408706747,358.80077526939,372.08969287196,381.53728273004,394.1903048614,406.97310157871,420.46965851882,434.10464168396,448.50096908674,461.31528248922,476.92160341255,490.54793493862,508.71637697339,523.2511306012],description:"Fokker's complementary 7-limit sruti scale, KNAW B72, 1969"},fokker_sra:{frequencies:[261.6255653006,269.76956886185,278.7476190342,287.42460593148,296.37169586701,305.59729331129,315.11006948887,325.59707150921,336.43308557971,346.90573279191,357.7043774887,368.83916960349,381.11429755927,392.97780480816,406.05627704035,419.57000893919,433.5334812886,447.02871783796,460.94403787128,475.29252052682,490.08765232515,506.39798251136,523.2511306012],description:"Two-step approximation 9-13 to Fokker's 7-limit sruti scale"},fokker_srb:{frequencies:[261.6255653006,269.31534001393,278.64197723942,286.83190328195,296.76515515861,305.48776291796,316.06708432391,325.35701999957,336.62443200122,346.51859521924,358.51885197895,369.0565423573,381.83730669135,393.06038214356,406.67242132093,418.62545783369,433.12283887627,445.85331391262,461.29362042034,474.85209942927,491.29666030217,505.73699464332,523.2511306012],description:"Two-step maximally even approximation 11-11 to Fokker's 7-limit sruti scale"},fokker_uv:{frequencies:[220,220.05029721079,220.09166666667,220.14198483463,220.15668113546,220.24841308594,220.29876708984,220.3905582428,220.5253936656,220.68244897959,220.7744,220.82487425697,220.98214285714,221.03266460905,221.0236875,221.07421875,221.28224372864,221.41762468656,221.66763848397,221.71831695641,221.76,221.81069958848,222.01040039062,222.06115722656,222.40609622534,222.44790857143,222.4987654321,222.65722615577,222.75,222.80092592593,223.00151824951,223.05250167847,223.14544022083,223.18896568405,223.23999196793,223.44097959184,223.49206349206,223.58518518519,223.79557291667,223.88882107205,224.18534499514,224.23659907493,224.33003099121,224.48979591837,224.58333333333,224.79466029576,224.83692169189,224.88832473755,225.18617242815,225.28,225.33150434385,225.49198250729,225.5859375,225.67993164062,225.9788277551,226.03049186753,226.28571428571,226.4317558299,226.68743133545,227.08224,227.1341563786,227.29591836735,227.390625,227.44261188272,228.096,228.14814814815,229.16666666667,231,232.03125,233.6237037037,233.84353741497],description:"Table of Unison Vectors, Microsons and Minisons, from article KNAW, 1969"},foote:{frequencies:[261.6255653006,276.70272600503,293.15632631094,310.58830860439,328.48713220126,349.43001184052,368.92737853004,391.76907592069,414.58565256441,438.98455767189,465.89457252293,492.17459484008,523.2511306012],description:"Ed Foote, piano temperament. TL 9 Jun 1999, almost equal to Coleman"},forster:{frequencies:[261.6255653006,279.06726965397,283.42769574232,287.78812183066,299.00064605783,309.19384990071,319.76457981184,327.03195662575,336.37572681506,340.11323489078,343.38355445704,353.19451315581,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,387.59343007496,392.4383479509,398.6675280771,402.50086969323,406.97310157871,418.60090448096,428.11456140098,441.49314144476,442.75095666255,448.50096908674,457.84473927605,465.11211608996,483.00104363188,490.54793493862,507.3950357345,523.2511306012],description:"Cris Forster's Chrysalis tuning, XH 7+8"},fortuna11:{frequencies:[261.6255653006,274.70684356563,299.00064605783,305.22982618403,332.97799220076,343.38355445704,373.75080757229,398.6675280771,411.12588832951,448.50096908674,457.84473927605,498.33441009638,523.2511306012],description:"11-limit scale from Clem Fortuna"},fortuna_a1:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,320.24370022528,349.22823143301,369.99442271164,391.99543598175,415.30469757995,440,466.16376151809,479.82340237272,523.2511306012],description:"Clem Fortuna, Arabic mode of 24-tET, try C or G major, superset of Basandida, trivalent"},fortuna_a2:{frequencies:[261.6255653006,277.18263097687,285.30470202322,311.12698372208,329.62755691287,349.22823143301,369.99442271164,391.99543598175,428.11456140098,440,466.16376151809,493.88330125613,523.2511306012],description:"Clem Fortuna, Arabic mode of 24-tET, try C or F minor"},fortuna_bag:{frequencies:[261.6255653006,266.17557513191,291.58269109838,303.42373253797,318.96815495553,348.01136516401,359.18086083642,388.55281975337,398.8194592997,432.92801877123,462.35552488468,479.64686971777,523.2511306012],description:"Bagpipe tuning from Fortuna, try key of G with F natural"},fortuna_eth:{frequencies:[261.6255653006,280.31310567921,288.69027895239,305.7551787248,323.91736656265,346.02090894595,368.95913055213,385.17097113699,414.24047839262,422.62591317789,469.58434797544,484.00729580611,523.2511306012],description:"Ethiopian Tunings from Fortuna"},fortuna_sheng:{frequencies:[261.6255653006,275.29257244317,286.94416839421,312.81317590289,320.2657782128,348.83408706747,367.19377586049,382.62738925213,417.81993264424,433.74764773521,467.75479856774,484.77678276288,523.2511306012],description:"Sheng scale on naturals starting on d, from Fortuna"},"francis_r12-14p":{frequencies:[261.6255653006,277.2273508585,293.19140419912,311.27759533081,328.56574776048,349.51003591412,369.636465861,391.67937618637,415.43871422078,438.93656251816,466.46466724696,492.84862139436,523.2511306012],description:"Bach WTC theoretical temperament, 1/14 Pyth. comma, Cornet-ton"},"francis_r12-2":{frequencies:[261.6255653006,277.2831963903,293.15801965318,311.35818177599,328.6319369554,349.45847225471,369.71092870521,391.50168688506,415.45657533448,438.80025285527,466.56783666625,492.94847466277,523.2511306012],description:"J. Charles Francis, Bach WTC temperament R12-2, fifths beat ratios 0, 1, 2. C=279.331 Cornet-ton"},"francis_r2-1":{frequencies:[261.6255653006,276.41735337657,293.40958958006,310.96959408698,328.77281747949,349.18425877583,368.55655650762,391.91325216238,414.62612565656,439.06418506387,465.92902003736,492.10921220871,523.2511306012],description:"J. Charles Francis, Bach WTC temperament R2-1, fifths beat ratios 0, 1, 2. C=249.072 Cammerton"},"francis_r2-14p":{frequencies:[261.6255653006,276.42350693124,293.47533146651,310.97644498676,328.88393162803,349.17189700163,368.56467609256,392.05867944486,414.6352601896,439.36162975058,466.01338145177,492.37181018521,523.2511306012],description:"Bach WTC theoretical temperament, 1/14 Pyth. comma, Cammerton"},francis_seal:{frequencies:[261.6255653006,275.89934348748,293.01242796531,310.38672525582,327.92787107993,349.18506556371,367.865749003,391.38524198103,413.84896721463,437.93907827641,465.58008765101,490.83740312498,523.2511306012],description:"J. Charles Francis, Bach tuning interpretion as beats/sec. from seal"},francis_suppig:{frequencies:[261.6255653006,276.33536163417,293.13939342657,310.64213412049,328.58201670643,349.47038191026,368.45885450371,391.47500324588,414.51381656966,438.73106346722,465.97531289569,491.91879926026,523.2511306012],description:"J. Charles Francis, Suppig Calculus musicus, 5ths beat ratios 0, 1, 2."},efg333:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,523.2511306012],description:"Genus primum [333]"},efg333333333337:{frequencies:[261.6255653006,275.01702890535,279.38237857051,289.72987407313,294.32876096318,309.39415751852,314.30517589183,325.94610833227,331.11985608357,343.38355445704,353.59332287831,366.6893718738,372.50983809402,386.30649876417,392.4383479509,412.52554335802,419.07356785577,434.59481110969,441.49314144476,457.84473927605,471.45776383774,488.9191624984,496.67978412536,515.07533168556,523.2511306012],description:"Genus [333333333337]"},efg333333355:{frequencies:[261.6255653006,264.89588486686,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.42486507835,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,397.34382730029,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Genus [333333355]"},efg33335:{frequencies:[261.6255653006,275.93321340298,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Genus [33335]"},efg3333555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Genus [3333555]"},efg33335555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Genus bis-ultra-chromaticum [33335555]"},efg333355577:{frequencies:[261.6255653006,267.07609791103,268.26840191956,272.52663052146,274.70684356563,278.20426865732,279.06726965397,281.68182201554,284.8811711051,286.15296204753,290.69507255622,294.32876096318,300.46061014991,305.22982618403,306.59245933664,312.97980223949,313.95067836072,317.94773560837,320.49131749323,321.92208230347,325.57848126297,327.03195662575,333.84512238879,343.38355445704,348.83408706747,352.10227751942,356.10146388137,357.69120255941,360.55273217989,363.36884069528,366.27579142084,367.91095120397,372.08969287196,375.57576268738,381.53728273004,392.4383479509,400.61414686654,402.40260287934,406.97310157871,408.78994578219,412.06026534844,417.30640298598,418.60090448096,427.32175665765,429.2294430713,436.04260883433,445.12682985172,450.69091522486,457.84473927605,459.88868900496,465.11211608996,469.46970335923,470.92601754108,476.92160341255,480.73697623985,488.36772189445,490.54793493862,500.76768358318,508.71637697339,515.07533168556,523.2511306012],description:"Genus [333355577]"},efg33337:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,386.30649876417,392.4383479509,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"Genus [33337]"},efg3335:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Genus diatonicum veterum correctum [3335]"},efg33355:{frequencies:[261.6255653006,272.52663052146,290.69507255622,310.07474405997,327.03195662575,348.83408706747,363.36884069528,387.59343007496,408.78994578219,436.04260883433,465.11211608996,484.4917875937,523.2511306012],description:"Genus diatonico-chromaticum hodiernum correctum [33355]"},efg333555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Genus diatonico-hyperchromaticum [333555]"},efg33355555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,287.4304306281,294.32876096318,306.59245933664,313.95067836072,319.36714514233,327.03195662575,340.65828815182,348.83408706747,359.28803828513,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,425.82286018978,436.04260883433,459.88868900496,470.92601754108,479.0507177135,490.54793493862,510.98743222773,523.2511306012],description:"Genus [33355555]"},efg333555777:{frequencies:[261.6255653006,262.79353657426,267.07609791103,268.26840191956,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,281.68182201554,286.15296204753,294.32876096318,299.00064605783,300.46061014991,305.22982618403,306.59245933664,311.45900631024,312.97980223949,313.95067836072,318.93402246168,320.49131749323,321.92208230347,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,350.39138209902,352.10227751942,357.69120255941,358.80077526939,360.55273217989,366.27579142084,367.91095120397,373.75080757229,375.57576268738,381.53728273004,392.4383479509,398.6675280771,400.61414686654,402.40260287934,408.78994578219,412.06026534844,417.30640298598,418.60090448096,420.46965851882,427.32175665765,429.2294430713,436.04260883433,448.50096908674,450.69091522486,457.84473927605,459.88868900496,467.18850946536,469.46970335923,470.92601754108,476.92160341255,478.40103369253,480.73697623985,488.36772189445,490.54793493862,498.33441009638,500.76768358318,515.07533168556,523.2511306012],description:"Genus [333555777]"},efg333557:{frequencies:[261.6255653006,265.7783520514,279.06726965397,280.31310567921,290.69507255622,299.00064605783,313.95067836072,318.93402246168,327.03195662575,332.22294006425,348.83408706747,358.80077526939,372.08969287196,373.75080757229,392.4383479509,398.6675280771,418.60090448096,425.24536328225,436.04260883433,448.50096908674,465.11211608996,478.40103369253,490.54793493862,498.33441009638,523.2511306012],description:"Genus diatonico-enharmonicum [333557]"},efg33357:{frequencies:[261.6255653006,274.70684356563,279.06726965397,305.22982618403,313.95067836072,325.57848126297,343.38355445704,348.83408706747,366.27579142084,372.08969287196,392.4383479509,406.97310157871,418.60090448096,457.84473927605,465.11211608996,488.36772189445,523.2511306012],description:"Genus diatonico-enharmonicum [33357]"},efg3335711:{frequencies:[261.6255653006,265.58571790036,269.80136421624,275.93321340298,286.15296204753,294.32876096318,295.09524211152,303.52653474327,314.76825825228,321.92208230347,327.03195662575,331.98214737546,337.2517052703,343.38355445704,354.11429053382,359.73515228832,367.91095120397,379.40816842909,386.30649876417,392.4383479509,393.46032281536,404.70204632437,429.2294430713,441.49314144476,442.64286316727,449.66894036041,457.84473927605,472.15238737843,482.88312345521,490.54793493862,505.87755790546,515.07533168556,523.2511306012],description:"Genus [3 3 3 5 7 11], expanded hexany 1 3 5 7 9 11"},efg333577:{frequencies:[261.6255653006,267.07609791103,281.68182201554,286.15296204753,294.32876096318,300.46061014991,305.22982618403,321.92208230347,327.03195662575,333.84512238879,343.38355445704,348.83408706747,367.91095120397,375.57576268738,381.53728273004,392.4383479509,400.61414686654,429.2294430713,436.04260883433,450.69091522486,457.84473927605,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:"Genus [333577]"},efg3337:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,392.4383479509,457.84473927605,515.07533168556,523.2511306012],description:"Genus [3337]"},efg33377:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,515.07533168556,523.2511306012],description:"Genus [33377] Bi-enharmonicum simplex"},efg335:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Genus secundum [335]"},efg3355:{frequencies:[261.6255653006,279.06726965397,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Genus chromaticum veterum correctum [3355]"},efg33555:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,367.91095120397,392.4383479509,408.78994578219,418.60090448096,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"Genus bichromaticum [33555]"},efg335555577:{frequencies:[261.6255653006,267.07609791103,268.26840191956,272.52663052146,274.70684356563,279.06726965397,286.15296204753,293.02063313667,300.46061014991,305.22982618403,306.59245933664,312.97980223949,313.95067836072,320.49131749323,327.03195662575,333.84512238879,334.88072358477,341.85740532612,343.38355445704,348.83408706747,357.69120255941,366.27579142084,375.57576268738,381.53728273004,384.58958099188,390.69417751556,392.4383479509,400.61414686654,408.78994578219,417.30640298598,418.60090448096,427.32175665765,429.2294430713,436.04260883433,439.53094970501,446.50763144636,457.84473927605,469.46970335923,476.92160341255,480.73697623985,488.36772189445,490.54793493862,500.76768358318,502.32108537715,512.78610798918,523.2511306012],description:"Genus [335555577]"},efg33557:{frequencies:[261.6255653006,274.70684356563,279.06726965397,286.15296204753,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,418.60090448096,429.2294430713,436.04260883433,457.84473927605,488.36772189445,490.54793493862,523.2511306012],description:"Genus chromatico-enharmonicum [33557]"},efg335577:{frequencies:[261.6255653006,274.70684356563,279.06726965397,280.31310567921,286.15296204753,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,478.40103369253,488.36772189445,490.54793493862,498.33441009638,523.2511306012],description:"Genus chromaticum septimis triplex [335577]"},efg3357:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,343.38355445704,348.83408706747,381.53728273004,392.4383479509,429.2294430713,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Genus enharmonicum vocale [3357]"},efg33577:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,305.22982618403,327.03195662575,343.38355445704,348.83408706747,373.75080757229,381.53728273004,392.4383479509,398.6675280771,429.2294430713,436.04260883433,448.50096908674,457.84473927605,490.54793493862,498.33441009638,523.2511306012],description:"Genus [33577]"},efg337:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,457.84473927605,515.07533168556,523.2511306012],description:"Genus quintum [337]"},efg3377:{frequencies:[261.6255653006,299.00064605783,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,523.2511306012],description:"Genus [3377]"},efg33777:{frequencies:[261.6255653006,267.07609791103,299.00064605783,300.46061014991,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [33777]"},efg33777a:{frequencies:[261.6255653006,267.07609791103,299.00064605783,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,523.2511306012],description:"Genus [33777] with comma discarded which disappears in 31-tET"},efg355:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Genus tertium [355]"},efg3555:{frequencies:[261.6255653006,306.59245933664,327.03195662575,383.2405741708,392.4383479509,408.78994578219,490.54793493862,510.98743222773,523.2511306012],description:"Genus enharmonicum veterum correctum [3555]"},efg35555:{frequencies:[261.6255653006,306.59245933664,313.95067836072,327.03195662575,334.88072358477,392.4383479509,408.78994578219,418.60090448096,490.54793493862,502.32108537715,523.2511306012],description:"Genus [35555]"},efg35557:{frequencies:[261.6255653006,268.26840191956,274.70684356563,286.15296204753,306.59245933664,313.95067836072,327.03195662575,343.38355445704,357.69120255941,366.27579142084,392.4383479509,408.78994578219,418.60090448096,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus [35557]"},efg3557:{frequencies:[261.6255653006,274.70684356563,286.15296204753,313.95067836072,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus enharmonicum instrumentale [3557]"},efg35577:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,358.80077526939,366.27579142084,373.75080757229,392.4383479509,418.60090448096,429.2294430713,448.50096908674,457.84473927605,478.40103369253,490.54793493862,523.2511306012],description:"Genus [35577]"},efg357:{frequencies:[261.6255653006,286.15296204753,327.03195662575,343.38355445704,392.4383479509,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus sextum [357] & 7-limit Octony, see ch.6 p.118"},efg35711:{frequencies:[261.6255653006,269.80136421624,286.15296204753,295.09524211152,314.76825825228,327.03195662575,337.2517052703,343.38355445704,359.73515228832,392.4383479509,393.46032281536,429.2294430713,449.66894036041,457.84473927605,472.15238737843,490.54793493862,523.2511306012],description:"Genus [3 5 7 11]"},efg3571113:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.01701053212,278.99913799634,286.15296204753,292.28481123426,295.09524211152,314.76825825228,318.85615771011,319.68651228748,327.03195662575,337.2517052703,343.38355445704,348.74892249543,359.73515228832,365.35601404283,371.99885066179,383.62381474497,392.4383479509,393.46032281536,398.57019713763,425.14154361347,429.2294430713,438.4272168514,449.66894036041,457.84473927605,464.99856332724,472.15238737843,479.52976843121,490.54793493862,511.49841965996,523.2511306012],description:"Genus [3 5 7 11 13]"},efg3577:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,327.03195662575,343.38355445704,373.75080757229,392.4383479509,429.2294430713,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Genus [3577]"},efg35777:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,300.46061014991,327.03195662575,343.38355445704,373.75080757229,375.57576268738,392.4383479509,400.61414686654,429.2294430713,448.50096908674,457.84473927605,490.54793493862,500.76768358318,523.2511306012],description:"Genus [35777]"},efg35777a:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,327.03195662575,343.38355445704,373.75080757229,392.4383479509,400.61414686654,429.2294430713,448.50096908674,457.84473927605,490.54793493862,500.76768358318,523.2511306012],description:"Genus [35777] with comma discarded which disappears in 31-tET"},efg377:{frequencies:[261.6255653006,300.46061014991,343.38355445704,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Genus octavum [377]"},efg3777:{frequencies:[261.6255653006,262.90303388117,300.46061014991,343.38355445704,350.53737850823,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Genus [3777]"},efg37777:{frequencies:[261.6255653006,262.90303388117,299.00064605783,300.46061014991,343.38355445704,350.53737850823,392.4383479509,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [37777]"},efg37777a:{frequencies:[261.6255653006,299.00064605783,343.38355445704,350.53737850823,392.4383479509,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [37777] with comma discarded that disappears in 31-tET"},efg555:{frequencies:[261.6255653006,327.03195662575,408.78994578219,510.98743222773,523.2511306012],description:"Genus quartum [555]"},efg55557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,366.27579142084,408.78994578219,418.60090448096,447.11400319927,457.84473927605,510.98743222773,523.2511306012],description:"Genus [55557]"},efg5557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,408.78994578219,447.11400319927,457.84473927605,510.98743222773,523.2511306012],description:"Genus [5557]"},efg55577:{frequencies:[261.6255653006,286.15296204753,291.99281841585,299.00064605783,327.03195662575,357.69120255941,373.75080757229,408.78994578219,447.11400319927,457.84473927605,467.18850946536,510.98743222773,523.2511306012],description:"Genus [55577]"},efg557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,366.27579142084,418.60090448096,457.84473927605,523.2511306012],description:"Genus septimum [557]"},efg5577:{frequencies:[261.6255653006,293.02063313667,320.49131749323,334.88072358477,366.27579142084,400.61414686654,418.60090448096,457.84473927605,512.78610798918,523.2511306012],description:"Genus [5577]"},efg55777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,320.49131749323,327.03195662575,366.27579142084,373.75080757229,400.61414686654,418.60090448096,457.84473927605,478.40103369253,500.76768358318,523.2511306012],description:"Genus [55777]"},efg577:{frequencies:[261.6255653006,286.15296204753,327.03195662575,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Genus nonum [577]"},efg5777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Genus [5777]"},efg57777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,350.53737850823,373.75080757229,400.61414686654,438.17172313528,457.84473927605,500.76768358318,523.2511306012],description:"Genus [57777]"},efg777:{frequencies:[261.6255653006,350.53737850823,400.61414686654,457.84473927605,523.2511306012],description:"Genus decimum [777]"},efg77777:{frequencies:[261.6255653006,299.00064605783,341.71502406609,350.53737850823,400.61414686654,457.84473927605,523.2511306012],description:"Genus [77777]"},eikohole1:{frequencies:[261.6255653006,277.4816601673,305.22982618403,332.97799220076,436.04260883433,475.68284600109,523.2511306012],description:"First eikohole ball <6 9 13 17 20|-epimorphic"},eikohole2:{frequencies:[261.6255653006,266.38239376061,274.70684356563,285.40970760065,299.68019298069,313.95067836072,332.97799220076,348.83408706747,366.27579142084,380.54627680087,392.4383479509,399.57359064092,418.60090448096,428.11456140098,443.97065626768,470.92601754108,488.36772189445,499.46698830115,523.2511306012],description:"Second eikohole ball"},eikohole4:{frequencies:[261.6255653006,274.70684356563,279.79400733536,287.78812183066,305.22982618403,313.95067836072,319.76457981184,335.75280880244,348.83408706747,359.73515228832,366.27579142084,373.05867644715,383.71749577421,392.4383479509,406.97310157871,418.60090448096,419.69101100305,431.68218274599,447.67041173658,457.84473927605,470.92601754108,479.64686971777,488.36772189445,503.62921320365,523.2511306012],description:"Fourth eikohole ball"},eikohole5:{frequencies:[261.6255653006,266.38239376061,274.70684356563,279.06726965397,285.40970760065,287.78812183066,294.32876096318,295.98043751179,299.68019298069,305.22982618403,313.95067836072,321.08592105074,325.57848126297,332.97799220076,342.49164912079,348.83408706747,353.19451315581,355.17652501415,363.24871876447,366.27579142084,374.60024122586,380.54627680087,392.4383479509,399.57359064092,406.97310157871,412.06026534844,418.60090448096,428.11456140098,439.53094970501,443.97065626768,448.50096908674,449.52028947103,456.65553216105,457.84473927605,465.11211608996,466.16918908107,470.92601754108,475.68284600109,488.36772189445,499.46698830115,507.3950357345,513.73747368118,523.2511306012],description:"Fifth eikohole ball"},eikohole6:{frequencies:[261.6255653006,266.38239376061,272.43653907335,274.70684356563,279.06726965397,285.40970760065,287.78812183066,293.02063313667,294.32876096318,295.98043751179,299.00064605783,299.68019298069,305.22982618403,310.77945938738,313.95067836072,317.12189733406,321.08592105074,325.57848126297,329.64821227876,332.97799220076,336.37572681506,342.49164912079,348.83408706747,349.6268918108,353.19451315581,355.17652501415,356.76213450082,363.24871876447,366.27579142084,374.60024122586,380.54627680087,383.71749577421,392.4383479509,399.57359064092,406.97310157871,412.06026534844,418.60090448096,428.11456140098,431.68218274599,439.53094970501,443.97065626768,448.50096908674,449.52028947103,456.65553216105,457.84473927605,465.11211608996,466.16918908107,470.92601754108,475.68284600109,484.33162501929,488.36772189445,499.46698830115,507.3950357345,513.73747368118,523.2511306012],description:"Sixth eikohole ball"},eikosany:{frequencies:[261.6255653006,269.80136421624,274.70684356563,287.78812183066,294.32876096318,305.22982618403,323.76163705949,335.75280880244,343.38355445704,359.73515228832,366.27579142084,377.72190990274,392.4383479509,412.06026534844,419.69101100305,431.68218274599,457.84473927605,470.92601754108,479.64686971777,503.62921320365,523.2511306012],description:"3)6 1.3.5.7.9.11 Eikosany (1.3.5 tonic)"},ekring1:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,353.19451315581,367.91095120397,376.74081403286,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Single-tie circular mirroring of 3:4:5"},ekring2:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,384.42940207435,400.61414686654,448.50096908674,457.84473927605,504.56359022259,515.07533168556,523.2511306012],description:"Single-tie circular mirroring of 6:7:8"},ekring3:{frequencies:[261.6255653006,266.96486255163,299.00064605783,305.10270005901,327.03195662575,333.70607818954,341.71502406609,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,523.2511306012],description:"Single-tie circular mirroring of 4:5:7"},ekring4:{frequencies:[261.6255653006,279.06726965397,313.95067836072,334.88072358477,348.83408706747,376.74081403286,392.4383479509,401.85686830172,436.04260883433,446.50763144636,465.11211608996,502.32108537715,523.2511306012],description:"Single-tie circular mirroring of 4:5:6"},ekring5:{frequencies:[261.6255653006,263.718569823,269.10058145205,305.22982618403,322.92069774245,366.27579142084,373.75080757229,376.74081403286,384.42940207435,439.53094970501,448.50096908674,512.78610798918,523.2511306012],description:"Single-tie circular mirroring of 3:5:7"},ekring5bp:{frequencies:[261.6255653006,282.55561052465,336.37572681506,363.28578496026,366.27579142084,395.57785473451,432.48307733364,512.78610798918,560.62621135843,605.4763082671,610.45965236807,659.29642455751,784.8766959018],description:"Single-tie BP circular mirroring of 3:5:7"},ekring6:{frequencies:[261.6255653006,288.32205155576,299.00064605783,336.37572681506,348.83408706747,384.42940207435,392.4383479509,406.97310157871,432.48307733364,465.11211608996,494.26637409559,512.57253609913,523.2511306012],description:"Single-tie circular mirroring of 6:7:9"},ekring7:{frequencies:[261.6255653006,266.96486255163,290.69507255622,296.62762505737,322.99452506247,336.37572681506,343.24053756638,406.97310157871,415.27867508032,432.48307733364,470.92601754108,480.53675259294,523.2511306012],description:"Single-tie circular mirroring of 5:7:9"},ekring7bp:{frequencies:[261.6255653006,311.45900631024,336.37572681506,400.44729382745,432.48307733364,436.04260883433,470.92601754108,514.86080634958,610.45965236807,667.41215637908,720.80512888941,726.73768139056,784.8766959018],description:"Single-tie BP circular mirroring of 5:7:9"},ellis:{frequencies:[261.6255653006,277.10015133873,293.57875905702,310.98767008297,329.52610437773,349.11112716429,369.96685849926,391.93834696391,415.15022554673,439.86813926913,465.98150356841,493.78915701915,523.2511306012],description:"Alexander John Ellis' imitation equal temperament (1875)"},ellis_24:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,294.32876096318,298.00787047521,306.59245933664,310.42486507835,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.50983809402,392.4383479509,397.34382730029,408.78994578219,413.89982010446,436.04260883433,441.49314144476,459.88868900496,465.63729761752,490.54793493862,496.67978412536,523.2511306012],description:"Ellis, from p.421 of Helmholtz, 24 tones of JI for 1 manual harmonium"},ellis_eb:{frequencies:[261.6255653006,277.21587437848,293.6537610003,311.19285946782,329.68548178616,349.2169654334,370.02116610622,391.93834696391,415.32381240723,439.98064151826,466.28928903228,494.02822100775,523.2511306012],description:"Ellis' new equal beating temperament for pianofortes (1885)"},ellis_harm:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,353.19451315581,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ellis's Just Harmonium"},ellis_mteb:{frequencies:[261.6255653006,273.31920907322,292.34465012884,313.05587813274,326.9349299255,350.18846153218,365.78692922515,391.15004079048,408.78346942429,437.23842445073,468.2723780569,489.17031487243,523.2511306012],description:"Ellis' equal beating meantone tuning (1885)"},enh14:{frequencies:[261.6255653006,267.70988077271,274.08392555301,348.83408706747,392.4383479509,401.56482115906,411.12588832951,523.2511306012],description:"14/11 Enharmonic"},enh15:{frequencies:[261.6255653006,270.64713651786,280.31310567921,356.76213450082,392.4383479509,402.50086969323,413.09299784305,523.2511306012],description:"Tonos-15 Enharmonic"},enh15_inv:{frequencies:[261.6255653006,331.39238271409,340.11323489078,348.83408706747,383.71749577421,488.36772189445,505.80942624783,523.2511306012],description:"Inverted Enharmonic Tonos-15 Harmonia"},enh15_inv2:{frequencies:[261.6255653006,270.34641747729,279.06726965397,348.83408706747,383.71749577421,392.4383479509,401.15920012759,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-15"},enh17:{frequencies:[261.6255653006,269.55361273395,277.97716313189,370.63621750918,404.33041910093,413.73345210327,423.58424858192,523.2511306012],description:"Tonos-17 Enharmonic"},enh17_con:{frequencies:[261.6255653006,269.55361273395,277.97716313189,370.63621750918,378.52209447746,386.75083566176,494.18162334558,523.2511306012],description:"Conjunct Tonos-17 Enharmonic"},enh19:{frequencies:[261.6255653006,268.69652652494,276.16031892841,355.06326719367,382.37582620857,389.87339142835,397.67085925691,523.2511306012],description:"Tonos-19 Enharmonic"},enh19_con:{frequencies:[261.6255653006,268.69652652494,276.16031892841,355.06326719367,361.51896296083,368.21375857121,451.89870370104,523.2511306012],description:"Conjunct Tonos-19 Enharmonic"},enh2:{frequencies:[261.6255653006,266.71168334607,277.18263097687,349.22823143301,391.99543598175,399.61600264311,415.30469757995,523.2511306012],description:"1:2 Enharmonic. New genus 2 + 4 + 24 parts"},enh21:{frequencies:[261.6255653006,268.0066766494,274.70684356563,343.38355445704,392.4383479509,399.57359064092,406.97310157871,523.2511306012],description:"Tonos-21 Enharmonic"},enh21_inv:{frequencies:[261.6255653006,336.37572681506,342.60490694126,348.83408706747,398.6675280771,498.33441009638,510.79277034879,523.2511306012],description:"Inverted Enharmonic Tonos-21 Harmonia"},enh21_inv2:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,398.6675280771,411.12588832951,423.58424858192,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-21"},enh23:{frequencies:[261.6255653006,267.43946675172,273.51763645063,334.29933343966,376.08675011961,388.21858076863,401.15920012759,523.2511306012],description:"Tonos-23 Enharmonic"},enh23_con:{frequencies:[261.6255653006,267.43946675172,273.51763645063,334.29933343966,343.8507429665,353.96400011258,462.87600014722,523.2511306012],description:"Conjunct Tonos-23 Enharmonic"},enh25:{frequencies:[261.6255653006,269.71707762948,278.32506946872,363.36884069528,408.78994578219,421.97671822677,436.04260883433,523.2511306012],description:"Tonos-25 Enharmonic"},enh25_con:{frequencies:[261.6255653006,269.71707762948,278.32506946872,363.36884069528,373.75080757229,384.74347838324,503.12608711654,523.2511306012],description:"Conjunct Tonos-25 Enharmonic"},enh27:{frequencies:[261.6255653006,269.10058145205,277.01530443593,353.19451315581,392.4383479509,403.65087217807,415.52295665389,523.2511306012],description:"Tonos-27 Enharmonic"},enh27_inv:{frequencies:[261.6255653006,329.45441556372,339.14425131559,348.83408706747,387.59343007496,494.18162334558,508.71637697339,523.2511306012],description:"Inverted Enharmonic Tonos-27 Harmonia"},enh27_inv2:{frequencies:[261.6255653006,266.38239376061,271.31540105247,348.83408706747,387.59343007496,397.28326582684,406.97310157871,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-27"},enh29:{frequencies:[261.6255653006,266.21548749886,270.96933548991,344.87006335079,379.35706968587,389.08417403679,399.32323124828,523.2511306012],description:"Tonos-29 Enharmonic"},enh29_con:{frequencies:[261.6255653006,266.21548749886,270.96933548991,344.87006335079,352.8902973822,361.29244731988,474.19633710734,523.2511306012],description:"Conjunct Tonos-29 Enharmonic"},enh31:{frequencies:[261.6255653006,270.34641747729,279.66870773512,337.93302184661,352.6257619269,368.65420565085,377.22755927063,386.2091678247,523.2511306012],description:"Tonos-31 Enharmonic. Tone 24 alternates with 23 as MESE or A"},enh31_con:{frequencies:[261.6255653006,270.34641747729,279.66870773512,337.93302184661,352.6257619269,360.46188996972,368.65420565085,450.57736246214,523.2511306012],description:"Conjunct Tonos-31 Enharmonic"},enh33:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,392.4383479509,401.56482115906,411.12588832951,523.2511306012],description:"Tonos-33 Enharmonic"},enh33_con:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,367.38909169871,375.37581108347,479.64686971777,523.2511306012],description:"Conjunct Tonos-33 Enharmonic"},enh_invcon:{frequencies:[261.6255653006,283.42769574232,370.63621750918,381.53728273004,392.4383479509,501.44900015948,512.35006538034,523.2511306012],description:"Inverted Enharmonic Conjunct Phrygian Harmonia"},enh_mod:{frequencies:[261.6255653006,294.32876096318,305.22982618403,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Enharmonic After Wilson's Purvi Modulations, See page 111"},enh_perm:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Permuted Enharmonic, After Wilson's Marwa Permutations, See page 110."},enn45ji:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,276.85245005354,282.55561052465,288.32205155576,290.69507255622,296.75121990114,299.00064605783,305.22982618403,311.45900631024,313.95067836072,320.49131749323,322.92069774245,329.64821227876,336.37572681506,339.14425131559,346.06556256693,348.83408706747,356.10146388137,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,392.4383479509,395.57785473451,403.65087217807,406.97310157871,415.27867508032,423.93031414449,427.32175665765,436.04260883433,439.53094970501,448.50096908674,457.84473927605,461.31528248922,470.92601754108,474.80195184183,484.4917875937,494.47231841813,498.33441009638,508.71637697339,512.78610798918,523.2511306012],description:"Detempered Ennealimma[45], Hahn reduced"},enn72synch:{frequencies:[195.99771799087,197.54967854522,199.11392792408,201.62391554947,203.22042578925,204.82957760946,207.41161549338,209.05395423619,211.68924370912,213.36545381699,215.05493658943,217.76587316352,219.49019959291,221.22817968434,224.01693484168,225.790758792,228.63703016722,230.44743589451,232.27217821307,235.20015301436,237.06252857463,238.93964952543,241.95167308427,243.86750892427,246.94165062806,248.89699839908,250.8678291188,254.03021536301,256.04169222048,258.06909647124,261.3222603528,263.39147750593,266.71173418544,268.8236265844,270.95224149283,274.36780754746,276.54032271274,278.73004041423,282.24365173996,284.47852987378,288.0646054292,290.34557537779,292.64460663558,296.33362372129,298.68006816723,301.0450940916,304.84000597616,307.25380610435,311.12698372207,313.59056753865,316.0736586482,320.05801564518,322.59231767928,325.14668697146,329.24541662461,331.85246687263,336.03572815421,338.69654584276,341.37843257302,345.68177614255,348.4189737305,351.17784515594,355.60471802638,358.42048803112,362.93866010991,365.81250216232,368.70910003837,373.35696816148,376.31330506793,379.29305101359,384.07434037944,387.11553797119,391.99543598174],description:"Poptimal synchonized beating ennealimmal tuning, TM 10-10-2005"},ennea45:{frequencies:[261.6255653006,267.02028728287,269.13615104392,274.68574138534,276.8623300691,282.57123430547,288.39787286736,290.68311542614,296.67700440585,299.02785016604,305.1938252949,311.48692526882,313.95512370264,320.42888174436,322.96795420876,329.62755691287,336.42448069667,339.09030198792,346.08234767737,348.824677577,356.01744619623,363.3585507705,366.23777597441,373.78960287068,376.751482929,384.52012478698,392.44893391322,395.5586690753,403.715093104,406.91412394911,415.30469757995,423.86828492968,427.22700928979,436.03643483576,439.49155400205,448.55387459245,457.80308677504,461.43068321685,470.94538888861,474.67712392136,484.46499932732,494.45467284607,498.37269363637,508.649143962,512.67967026301,523.2511306012],description:"Ennealimmal-45, in a 7-limit least-squares tuning, g=48.999, G.W. Smith"},epimore_enh:{frequencies:[261.6255653006,265.11390617127,279.06726965397,348.83408706747,392.4383479509,397.67085925691,418.60090448096,523.2511306012],description:"New Epimoric Enharmonic, Dorian mode of the 4th new Enharmonic on Hofmann's list"},eratos_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,392.4383479509,413.09299784305,436.04260883433,523.2511306012],description:"Dorian mode of Eratosthenes's Chromatic. same as Ptol. Intense Chromatic"},eratos_diat:{frequencies:[261.6255653006,275.62199471997,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Dorian mode of Eratosthenes's Diatonic, Pythagorean"},eratos_enh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,392.4383479509,402.50086969323,413.09299784305,523.2511306012],description:"Dorian mode of Eratosthenes's Enharmonic"},erlangen:{frequencies:[261.6255653006,275.62199471997,293.99679436797,310.07474405997,327.03195662575,348.83408706747,367.49599295996,392.4383479509,413.43299207996,440.99519155196,465.11211608996,490.54793493862,523.2511306012],description:"Anonymus: Pro clavichordiis faciendis, Erlangen 15th century"},erlangen2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Revised Erlangen"},erlich1:{frequencies:[261.6255653006,278.64199172491,296.7651860139,326.1838132033,347.39918201406,369.99442271164,394.05928374402,433.12277132725,461.29357245868,491.2966347616,523.2511306012],description:"Asymmetrical Major decatonic mode of 22-tET, Paul Erlich"},erlich10:{frequencies:[261.6255653006,274.70684356563,299.00064605783,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Canonical JI interpretation of the Pentachordal decatonic mode of 22-tET"},erlich10s1:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Superparticular version of erlich10 using 50/49 decatonic comma"},erlich10s2:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Other superparticular version of erlich10 using 50/49 decatonic comma"},erlich11:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Canonical JI interpretation of the Symmetrical decatonic mode of 22-tET"},erlich11s1:{frequencies:[261.6255653006,274.70684356563,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Superparticular version of erlich11 using 50/49 decatonic comma"},erlich11s2:{frequencies:[261.6255653006,280.31310567921,305.22982618403,311.45900631024,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Other superparticular version of erlich11 using 50/49 decatonic comma"},erlich12:{frequencies:[261.6255653006,267.01308914069,282.57123920205,288.39008844866,305.19382000629,311.47852302926,329.62755691287,336.41541160581,356.01745236555,363.34874301751,384.52011812375,392.4383479509,415.30469757995,423.85685859121,448.5538823653,457.7907297806,484.46499093218,494.44133512215,523.2511306012],description:"Two 9-tET scales 3/2 shifted, Paul Erlich, TL 5-12-2001"},erlich13:{frequencies:[261.6255653006,269.80136421624,294.32876096318,327.03195662575,343.38355445704,359.73515228832,392.4383479509,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Just scale by Paul Erlich (2002)"},erlich2:{frequencies:[261.6255653006,278.64199172491,296.7651860139,316.06713361714,347.39918201406,369.99442271164,394.05928374402,419.68935090103,446.98642698175,476.05893615592,523.2511306012],description:"Asymmetrical Minor decatonic mode of 22-tET, Paul Erlich"},erlich3:{frequencies:[261.6255653006,278.64199172491,296.7651860139,326.1838132033,347.39918201406,369.99442271164,394.05928374402,419.68935090103,461.29357245868,491.2966347616,523.2511306012],description:"Symmetrical Major decatonic mode of 22-tET, Paul Erlich"},erlich4:{frequencies:[261.6255653006,278.64199172491,296.7651860139,316.06713361714,347.39918201406,369.99442271164,394.05928374402,419.68935090103,446.98642698175,491.2966347616,523.2511306012],description:"Symmetrical Minor decatonic mode of 22-tET, Paul Erlich"},erlich5:{frequencies:[261.6255653006,269.33066959279,278.10477655849,287.16472157287,295.62197660533,306.17967660611,315.19693888202,326.45372959864,335.05049156411,348.07025322573,357.23626005287,368.87410717392,380.89108570115,393.29954676976,406.11224388345,419.34234602259,433.00345117936,444.40607048653,461.67529188567,473.83294924974,490.75518955849,505.2083639382,523.2511306012],description:"Unequal 22-note compromise between decatonic & Indian srutis, Paul Erlich"},erlich6:{frequencies:[261.6255653006,274.70684356563,280.31310567921,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Scale of consonant tones against 1/1-3/2 drone. TL 23-9-1998"},erlich7:{frequencies:[261.6255653006,272.64118737561,277.98432293805,281.84855879469,292.47977325983,303.51199286577,307.73108663824,313.76190292287,326.97270111135,337.05955506058,340.85784563832,350.05627231138,365.1325261687,373.60234843661,378.13992750117,391.18115131013,406.9458559663,413.62886206386,420.42161880722,437.36472209676,452.44848028305,457.94368329907,468.56640608675,488.7466646507,501.93603498211,507.59230220159,523.2511306012],description:"Meantone-like circle of sinuoidally varying fifths, TL 08-12-99"},erlich8:{frequencies:[261.6255653006,263.902226729,277.18263097687,279.59466973861,293.66476791741,296.22023396764,311.12698372208,313.83440569119,329.62755691287,332.49597057,349.22823143301,352.26720984209,369.99442271164,373.21410818061,391.99543598175,395.40657391157,415.30469757995,418.91867232636,440,443.82887286778,466.16376151809,470.22031101449,493.88330125613,498.18106573801,523.2511306012],description:"Two 12-tET scales 15 cents shifted, Paul Erlich"},erlich9:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,302.70726563706,308.34441624714,319.76457981184,332.97799220076,345.34574619679,356.76213450082,369.97554688974,383.71749577421,396.40237166758,411.12588832951,428.11456140098,436.04260883433,452.23847716247,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"11-limit periodicity block, u.v.: 9801/9800 243/242 126/125 100/99"},erlich_bpf:{frequencies:[261.6255653006,269.93113880221,277.4816601673,282.55561052465,293.6613488068,301.87565226992,311.45900631024,319.76457981184,328.70904358281,336.37572681506,347.05432131712,356.76213450082,366.27579142084,377.90359432309,388.47432423422,400.44729382745,411.12588832951,422.62591317789,436.04260883433,447.67041173658,458.69417292962,470.92601754108,485.87604984397,499.46698830115,512.78610798918,528.59042785223,543.37617408586,560.62621135843,575.57624366132,591.67627844905,610.45965236807,624.69777837082,642.17184210147,659.29642455751,680.22646978156,699.2537836216,726.73768139056,740.02659899313,760.72664372021,784.8766959018],description:"Erlich's 39-tone Triple Bohlen-Pierce scale"},erlich_bpp:{frequencies:[261.6255653006,268.60224704195,277.4816601673,282.55561052465,293.6613488068,299.68019298069,311.45900631024,319.76457981184,323.65460841914,336.37572681506,345.34574619679,356.76213450082,366.27579142084,380.67211882362,385.30310526088,400.44729382745,411.12588832951,419.55227017296,436.04260883433,447.67041173658,458.69417292962,470.92601754108,489.43558134466,499.46698830115,512.78610798918,528.59042785223,539.42434736524,560.62621135843,575.57624366132,594.60355750136,610.45965236807,629.27431887171,642.17184210147,659.29642455751,685.20981388252,699.2537836216,720.80512888941,740.02659899313,764.49028821604,784.8766959018],description:"Periodicity block for erlich_bpf, 1625/1617 1331/1323 275/273 245/243"},erlich_bpp2:{frequencies:[261.6255653006,268.60224704195,277.4816601673,282.55561052465,293.92501780685,299.68019298069,311.45900631024,319.76457981184,326.02570445152,336.37572681506,345.34574619679,356.76213450082,366.27579142084,377.90359432309,385.30310526088,400.44729382745,411.12588832951,422.62591317789,436.04260883433,447.67041173658,458.69417292962,470.92601754108,485.87604984397,499.46698830115,512.78610798918,528.59042785223,543.37617408586,560.62621135843,575.57624366132,594.60355750136,610.45965236807,629.83932387181,642.17184210147,659.29642455751,685.20981388252,698.62650953896,726.73768139056,740.02659899313,764.49028821604,784.8766959018],description:"Improved shape for erlich_bpp"},erlich_bppe:{frequencies:[261.6255653006,269.03526454087,276.77324548748,284.61195549492,292.79795257063,301.09050901183,309.7504615497,318.52314490095,327.68449417797,337.10934179701,346.6568752383,356.62740568226,366.72772736951,377.27553481706,387.96064596243,399.11915372018,410.59860200806,422.22748385656,434.37157296247,446.67374500165,459.5209564409,472.53540627884,486.12644973042,499.89441151621,514.27235352402,529.06383329425,544.0478609495,559.69574261012,575.54731703113,592.10118472076,608.870542156,626.38285104305,644.39884822068,662.64936456684,681.70845767885,701.01565227402,721.17823493702,741.60327945962,762.93324174612,784.8766959018],description:"LS optimal 3:5:7:11:13 tempering, virtually equal, g=780.2702 cents"},erlich_bppm:{frequencies:[261.6255653006,269.3148593258,276.83859227209,284.97500405989,292.93622770824,301.54575630263,309.96990811138,319.08006614158,327.99406628962,337.15709295818,347.06629484351,356.76213450082,367.24753706379,377.50717076432,388.60227773252,399.45849178361,410.61798882758,422.6862401977,434.49464068244,447.26463523836,459.75967424319,473.27221959449,486.49381977384,500.79209531182,514.78250488433,529.16376146212,544.7161244152,559.93362036345,576.39032675477,592.49269103014,609.9063234692,626.94500947499,644.45969779399,663.40066444061,681.93379843592,701.97614206495,721.5869464624,742.79471409673,763.54584931731,784.8766959018],description:"MM optimal 3:5:7:11:13 tempering, g=780.352 cents"},erlich_paj:{frequencies:[261.6255653006,269.74106841426,278.59741216196,287.23937405609,296.67040683594,305.87298460253,315.91563888094,325.71519477697,336.4093235789,346.84458402385,358.23265591403,369.99442271164,381.47147728046,393.99623872149,406.21781843768,419.55531290213,432.56972318844,446.77218107119,460.63084592459,475.75462791404,490.51231476219,506.61748047856,523.2511306012],description:"Erlich's Pajara or Twintone, with RMS optimal generator"},erlich_paj2:{frequencies:[261.6255653006,270.25447814202,278.68577354399,287.87753105276,296.85845221806,306.64959036092,316.21614384055,326.645747324,336.83612131731,347.94582350257,358.80069640371,369.99442271164,382.1975482805,394.12120058634,407.1203087173,419.82124923186,433.66800958456,447.19715926063,461.9468459571,476.35821106408,492.06970256841,507.42081104304,523.2511306012],description:"Erlich's Pajara or Twintone with minimax optimal generator"},escapade:{frequencies:[261.6255653006,270.11362843741,278.8770761192,287.9248395776,297.26614463769,306.91051483225,316.86778450163,327.1481015562,337.76194863153,348.72014864112,360.03386958939,371.71464785337,383.77439429365,392.56657056143,405.30282760495,418.45229174958,432.02837124332,446.04490958069,460.51619165905,475.45697355792,490.88248752006,506.80846290374,523.2511306012],description:"Escapade temperament, g=55.275493, 5-limit"},"et-mix6":{frequencies:[261.6255653006,293.66476791741,300.52885648597,311.12698372208,329.62755691287,345.21700307457,369.99442271164,396.55020354877,415.30469757995,440,455.51656649021,466.16376151809,523.2511306012],description:"Mix of equal temperaments from 1-6 (= 4-6)"},euler:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Euler's Monochord (a mode of Ellis's duodene) (1739), genus [33355]"},euler20:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,320.58100381398,326.62388782443,329.50688232588,342.79852229325,366.55580177366,381.34192228364,391.95955371998,407.7704102616,411.36965665618,427.96347506501,439.87918162894,457.62301915088,489.33808574423,509.07699553894,513.57043963064,523.2511306012],description:"Genus [3333555] tempered by 225/224-planar"},euler24:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,308.1508239679,320.58100381398,326.62388782443,329.50688232588,342.79852229325,366.55580177366,381.34192228364,384.70789368407,391.95955371998,407.7704102616,411.36965665618,427.96347506501,439.87918162894,457.62301915088,480.28481865546,489.33808574423,493.65730140218,509.07699553894,513.57043963064,523.2511306012],description:"Genus [33333555] tempered by 225/224-planar"},euler_diat:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Euler's genus diatonicum veterum correctum"},euler_enh:{frequencies:[261.6255653006,267.90457886781,275.62199471997,348.83408706747,392.4383479509,401.85686830172,413.43299207996,523.2511306012],description:"Euler's Old Enharmonic, From Tentamen Novae Theoriae Musicae"},euler_gm:{frequencies:[261.6255653006,271.31540105247,279.06726965397,289.40309445597,348.83408706747,361.75386806997,372.08969287196,385.87079260796,523.2511306012],description:"Euler's Genus Musicum, Octony based on Archytas's Enharmonic"},exptriad2:{frequencies:[261.6255653006,306.59245933664,327.03195662575,367.91095120397,392.4383479509,459.88868900496,490.54793493862,523.2511306012],description:"Two times expanded major triad"},exptriad3:{frequencies:[261.6255653006,269.46602871384,275.93321340298,279.06726965397,287.4304306281,294.32876096318,297.67175429757,303.14928230307,306.59245933664,313.95067836072,323.35923445661,327.03195662575,344.91651675372,348.83408706747,359.28803828513,367.91095120397,372.08969287196,378.93660287884,383.2405741708,392.4383479509,404.19904307077,408.78994578219,418.60090448096,431.14564594215,436.04260883433,446.50763144636,459.88868900496,490.54793493862,505.24880383846,517.37477513058,523.2511306012],description:"Three times expanded major triad"},iivv17:{frequencies:[261.6255653006,269.80136421624,277.97716313189,283.42769574232,294.32876096318,305.22982618403,318.85615771011,327.03195662575,343.38355445704,348.83408706747,359.73515228832,367.91095120397,370.63621750918,392.4383479509,416.96574469783,425.14154361347,436.04260883433,441.49314144476,457.84473927605,479.64686971777,490.54793493862,523.2511306012],description:"17-limit IIVV"},"indian-ayyar":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Carnatic sruti system, C.Subrahmanya Ayyar, 1976. alt:21/20 25/16 63/40 40/21"},"indian-dk":{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,348.83408706747,392.4383479509,406.97310157871,418.60090448096,465.11211608996,523.2511306012],description:"Raga Darbari Kanada"},"indian-ellis":{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,358.01393146398,367.68998366571,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Ellis's Indian Chromatic, theoretical #74 of App.XX, p.517 of Helmholtz"},"indian-hahn":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Indian shrutis Paul Hahn proposal"},"indian-hrdaya1":{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,328.55303549378,348.83408706747,375.07381928051,392.4383479509,428.11456140098,441.49314144476,470.92601754108,492.82955324067,523.2511306012],description:"From Hrdayakautaka of Hrdaya Narayana (17th c) Bhatkande's interpretation"},"indian-hrdaya2":{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,330.47439827444,348.83408706747,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012],description:"From Hrdayakautaka of Hrdaya Narayana (17th c) Levy's interpretation"},"indian-invrot":{frequencies:[261.6255653006,267.90457886781,279.06726965397,313.95067836072,327.03195662575,334.88072358477,348.83408706747,392.4383479509,418.60090448096,446.50763144636,490.54793493862,502.32108537715,523.2511306012],description:"Inverted and rotated North Indian gamut"},"indian-magrama":{frequencies:[261.6255653006,294.32876096318,327.03195662575,367.91095120397,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Indian mode Ma-grama (Sa Ri Ga Ma Pa Dha Ni Sa)"},"indian-newbengali":{frequencies:[261.6255653006,269.13627541126,277.02257024271,285.46954808622,294.32876096318,303.84527498141,313.95067836072,324.71413568646,336.35938765066,348.83408706747,358.01090280364,367.91095120397,377.98706287655,388.6137256405,400.23209335925,412.19781491431,425.25755219187,438.98455767189,453.41648894489,469.13512554326,485.39868175205,503.9696508909,523.2511306012],description:"Modern Bengali scale,S.M. Tagore: The mus. scales of the Hindus,Calcutta 1884"},"indian-old2ellis":{frequencies:[261.6255653006,270.06509966514,277.97716313189,285.40970760065,294.32876096318,305.22982618403,316.13089140489,327.03195662575,337.93302184661,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,404.33041910093,415.52295665389,428.11456140098,441.49314144476,457.84473927605,474.19633710734,490.54793493862,505.80942624783,523.2511306012],description:"Ellis Old Indian Chrom2, Helmholtz, p. 517. This is a 4 cent appr. to #73"},"indian-oldellis":{frequencies:[261.6255653006,269.44737349144,277.4816601673,285.79952600623,294.32876096318,304.84150796353,315.71315096976,327.03195662575,337.72216249472,348.83408706747,359.25382662183,369.99442271164,381.0561299374,392.4383479509,404.18156579781,416.22249025095,428.71043212875,441.49314144476,457.27414749797,473.58203588493,490.54793493862,506.59641128799,523.2511306012],description:"Ellis Old Indian Chromatic, Helmholtz, p. 517. This is a 0.5 cent appr. to #73"},"indian-raja":{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,490.54793493862,523.2511306012],description:"A folk scale from Rajasthan, India"},"indian-sagrama":{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Indian mode Sa-grama (Sa Ri Ga Ma Pa Dha Ni Sa), inverse of Didymus' diatonic"},"indian-srutiharm":{frequencies:[261.6255653006,275.04226095704,278.87560257317,292.29229825722,294.20896982953,310.50067090621,313.3756771183,327.75070817877,332.5423844325,351.70909240436,354.58409877157,369.9174668925,374.70914348171,393.87585105695,414.95923028882,421.66757847392,437.95928040996,441.79262140873,467.66767825558,473.41768959156,493.54273382289,499.29274676062,523.2511306012],description:"B. Chaitanya Deva's sruti harmonium. The Music of India, 1981, p. 109"},"indian-srutivina":{frequencies:[261.6255653006,268.56758546278,278.98051393788,288.52577197574,297.52863491406,305.33829130574,314.01573591759,327.57422802312,336.57725592546,350.35262131413,358.2707318239,366.40588882483,378.77125721528,394.82459335461,403.28512412878,416.95215854696,428.77531684666,444.28620821491,453.93981227417,469.5594057965,487.34812384257,504.37765306036,529.32520658991],description:"Raja S.M. Tagore's sruti vina, measured by Ellis and Hipkins, 1886. 1/1=241.2"},"indian-srutivina2":{frequencies:[261.6255653006,275.04226095704,278.87560257317,292.29229825722,294.20896982953,310.50067090621,313.3756771183,327.75070817877,332.5423844325,351.70909240436,354.58409877157,369.9174668925,374.70914348171,393.87585105695,414.95923028882,421.66757847392,437.95928040996,441.79262140873,467.66767825558,473.41768959156,493.54273382289,499.29274676062,523.2511306012],description:"S. Ramanathan's sruti vina, 1973. In B.C. Deva, The Music of India, p. 110"},"indian-vina":{frequencies:[261.6255653006,276.70272600503,292.81785438923,313.29104303136,329.05685050583,352.26720984209,369.14054089803,390.18821123181,411.0090584005,435.70052664441,465.35666077712,491.60634075178,525.37110555681],description:"Observed South Indian tuning of a vina, Ellis"},"indian-vina2":{frequencies:[261.6255653006,277.02257024271,292.81785438923,308.97787266236,326.21810583671,344.81842302716,363.84824628932,386.37547528213,409.11417474979,432.19134773437,455.25352578019,480.93331155807,507.76825077597,539.82938999168,571.59905201246,602.44805673853,637.90290877605,678.5727631795,715.19510239543,756.4109196702,799.53998816902,846.10508618474,890.73947019126,943.16064703194,1001.55531043729],description:"Observed tuning of old vina in Tanjore Palace, Ellis and Hipkins. 1/1=210.7 Hz"},"indian-vina3":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Tuning of K.S. Subramanian's vina (1983)"},indian:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.50983809402,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Indian shruti scale"},indian2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Indian shruti scale with tritone 64/45 schisma lower (Mr.Devarajan, Madurai)"},indian2_sm:{frequencies:[261.6255653006,275.80107697063,279.12844116922,290.7446524607,294.25230137258,310.19560923413,313.9379197281,327.00276442799,330.9478443499,348.87940629173,353.08841191408,367.78254402461,372.21960384438,392.38737044642,413.64787586584,418.63827382983,436.06032987759,441.3211172644,465.23297251763,470.84571179248,490.44043044945,496.35728163707,523.2511306012],description:"Shruti/Mathieu's Magic Mode scale in 289-equal (schismic) temperament"},indian3:{frequencies:[261.6255653006,270.06509966514,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,506.89953276991,523.2511306012],description:"Indian shruti scale with 32/31 and 31/16 and tritone schisma lower"},indian4:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,330.74639366397,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"Indian shruti scale according to Firoze Framjee: Text book of Indian music"},indian5:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"23 Shrutis, Amit Mitra, 1/1 no. 12:2, Table C."},indian6:{frequencies:[146.8323839587,148.66778875818,150.35636117371,151.0621234143,152.23581568838,152.95039995698,154.68761437624,154.86227995644,156.62120955595,158.5789746754,159.32333328852,163.14709328744,165.18643195354,167.06262352634,169.15090632042,169.94488884109,172.0691999516,174.02356617327,176.19886075044,178.40134650982,179.23874994958,180.42763340845,181.27454809716,183.54047994838,185.62513725149,185.83473594773,187.94545146714,188.82765426788,190.29476961048,191.18799994622,193.3595179703,193.57784994555,195.77651194493,198.22371834425,200.47514823161,202.98108758451,203.93386660931,206.48303994192,208.82827940793,209.0640779412,211.43863290053,212.43111105136,214.08161581178,215.0864999395,217.52945771659,220.24857593805,223.00168313728,225.53454176056,226.59318512145,228.35372353257,229.42559993547,232.03142156437,232.29341993466,234.93181433392,237.86846201309,238.98499993278,240.57017787793,241.69939746288,244.72063993117,247.77964793031,250.59393528951,253.72635948063,254.91733326163,258.1037999274,261.03534925991,264.29829112566,267.60201976473,270.64145011268,271.91182214574,275.31071992256,278.43770587724,278.75210392159,281.9181772007,283.24148140181,285.44215441571,286.78199991934,290.03927695546,293.6647679174],description:"Shrutis calculated by generation method, Amit Mitra, 1/1 no. 12:2, Table B."},indian_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"North Indian Gamut, modern Hindustani gamut out of 22 or more shrutis"},indian_12c:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,328.55303549378,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,470.92601754108,492.82955324067,523.2511306012],description:"Carnatic gamut. Kuppuswami: Carnatic music and the Tamils, p. v"},indian_a:{frequencies:[261.6255653006,290.79521372391,318.76727400207,355.94891173479,388.6137256405,432.69092326853,486.52148746092,523.2511306012],description:"One observed indian mode"},indian_b:{frequencies:[261.6255653006,290.79521372391,305.95868600104,356.15457528086,388.83826257328,432.94092754357,461.60862817266,523.2511306012],description:"Observed Indian mode"},indian_c:{frequencies:[261.6255653006,278.94941459687,313.65318017499,356.15457528086,388.83826257328,422.07621250312,470.76384471612,523.2511306012],description:"Observed Indian mode"},indian_d:{frequencies:[261.6255653006,289.28740724512,320.24370022528,344.61930560862,391.31674786192,442.03793673691,485.39868175205,523.2511306012],description:"Indian D (Ellis, correct)"},indian_e:{frequencies:[261.6255653006,275.58617649731,323.21709932123,347.81902735497,393.58362272115,410.77171881178,488.21056770985,523.2511306012],description:"Observed Indian mode"},indian_g:{frequencies:[261.6255653006,275.48458755707,279.57748987366,290.07776015425,294.38747470873,309.98198497505,314.58741860623,326.40257913196,331.25197518754,348.79929894143,353.98144532328,367.27615246113,372.73281132023,392.47748849606,413.26809526256,419.40806105693,435.16003737285,441.62525396027,465.0193523796,471.92819182319,489.65270022124,496.92751979948,523.2511306012],description:"Shruti/Mathieu's Magic Mode scale in 94-et (garibaldi) temperament"},indian_rat:{frequencies:[261.6255653006,269.55361273395,277.4816601673,285.40970760065,294.32876096318,302.93486508491,315.75499260417,327.03195662575,337.58137458142,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,404.33041910093,416.22249025095,428.77523202043,441.49314144476,457.84473927605,473.41768959156,490.54793493862,506.37206187213,523.2511306012],description:"Indian Raga, From Fortuna, after Helmholtz, ratios by JC"},indian_rot:{frequencies:[261.6255653006,272.52663052146,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,510.98743222773,523.2511306012],description:"Rotated North Indian Gamut"},ionic:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Ancient greek Ionic"},iran_diat:{frequencies:[261.6255653006,297.21429859784,337.6441411202,347.13660997509,394.35734781054,448.00148789644,460.59652406882,523.2511306012],description:"Iranian Diatonic from Dariush Anooshfar, Safi-a-ddin Armavi's scale from 125 ET"},iraq:{frequencies:[261.6255653006,290.3675288125,326.6631048533,348.83408706747,387.1561215731,435.55129321875,465.11211608996,516.20736538157,523.2511306012],description:"Iraq 8-tone scale, Ellis"},isfahan_5:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,523.2511306012],description:"Isfahan (IG #2, DF #8), from Rouanet"},islamic:{frequencies:[261.6255653006,283.42769574232,305.22982618403,330.6656450327,348.83408706747,523.2511306012],description:"Islamic Genus (DF#7), from Rouanet"},italian:{frequencies:[261.6255653006,274.68983337859,292.34127285051,309.02606224197,326.6631048533,348.44038788768,366.66693712906,391.11111150212,411.56972129721,437.02884834934,464.06284405662,489.44164088633,523.2511306012],description:"Italian organ temperament, G.C. Klop (1974), 1/12 P.comma, also d'Alembert/Rousseau (1752/67)"},iter1:{frequencies:[261.6255653006,264.43874342211,268.51044859798,278.54662176283,304.33994330886,376.91818729747,631.61998662719],description:"McLaren style, IE= 2.414214, PD=5, SD=0"},iter10:{frequencies:[261.6255653006,277.06070189651,293.38358189778,297.59908052943,301.91391280887,310.68035879446,328.97472072452,338.5155215149,348.35227203008,368.89204707385,413.65123162392,438.0707139917,463.89070822207,520.1365405381,535.27989222422,550.79066379074,583.29634230953,654.0639132515],description:"Iterated 5/2 Scale, IE=5/2, PD=4, SD=3"},iter11:{frequencies:[261.6255653006,278.87608544381,297.26403435806,306.90779184711,316.86440944623,337.75715313333,360.02747892105,383.76621672426,396.21625406084,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #2"},iter12:{frequencies:[261.6255653006,297.26403435806,306.90779184711,316.86440944623,337.75715313333,360.02747892105,383.76621672426,396.21625406084,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #4"},iter13:{frequencies:[261.6255653006,297.26403435806,337.75715313333,383.76621672426,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #6"},iter14:{frequencies:[261.6255653006,280.22072913446,300.13755324878,344.3186075731,368.79121945838,395.0032340925,453.14877154631,519.85349135637,596.37732215892,638.76512932755,684.16567043124,784.8766959018],description:"Binary Divided 3/1 Scale #2"},iter15:{frequencies:[261.6255653006,285.30470202322,311.12698372208,324.90175210669,339.28638158975,369.99442271164,403.48177901006,440,459.48046426806,479.82340237272,523.2511306012],description:"Binary Division Scale"},iter16:{frequencies:[261.6255653006,273.20871865617,285.30470202322,311.12698372208,324.90175210669,339.28638158975,369.99442271164,403.48177901006,440,459.48046426806,479.82340237272,523.2511306012],description:"Binary Division Scale 4+2"},iter17:{frequencies:[261.6255653006,278.49896488475,296.46060526524,301.12918013362,305.87127435301,315.58067012184,335.93387506143,346.5975621448,357.59974896504,380.66295170881,431.34763334053,459.16716607109,488.78090454553,553.8613271114,571.44277158458,589.58231097183,627.60710380636,711.17202040031],description:"Binary E Scale #2"},iter18:{frequencies:[261.6255653006,296.46060526524,335.93387506143,357.59974896504,380.66295170881,431.34763334053,488.78090454553,553.8613271114,589.58231097183,627.60710380636,711.17202040031],description:"Binary E Scale #4"},iter19:{frequencies:[261.6255653006,322.51878830959,331.06584352035,339.83940187549,358.09020513941,397.58488163802,418.936859706,441.43552612833,490.12256936272,604.19836236377,670.83693141722,744.82523718317,918.18295398723,967.49323514067,1019.45167961503,1131.88958971281,1395.33634826987],description:"Binary Kidjel Ratio scale #2, IE=16/3"},iter2:{frequencies:[261.6255653006,264.43874342211,268.51044859798,278.54662176283,304.33994330886,376.91818729747,466.76379263857,529.06503205232,631.63886479716],description:"Iterated 1 + SQR(2) Scale, IE=2.414214, PD=5, SD=1"},iter20:{frequencies:[261.6255653006,269.61366892789,277.84567157694,295.07138236029,304.08067308856,313.36504071103,332.79286022776,353.42515415018,375.3365967665,386.79659161311,398.60648967463,423.31905787312],description:"Binary PHI Scale #2"},iter21:{frequencies:[261.6255653006,265.58958666715,269.61366892789,277.84567157694,295.07138236029,304.08067308856,313.36504071103,332.79286022776,353.42515415018,375.3365967665,386.79659161311,398.60648967463,423.31905787312],description:"Binary PHI Scale 5+2 #2"},iter22:{frequencies:[261.6255653006,301.8727519909,307.3207469799,312.86706369289,324.26179396336,348.311367392,360.99698978488,374.14462916403,401.89387036212,463.7192413329,498.11197631533,535.05552246568,617.36582527423,639.85050556571,663.15408964479,712.33833913185,821.92095613931],description:"Binary PI Scale #2"},iter23:{frequencies:[261.6255653006,280.22072913446,282.63618845904,285.07246866924,290.00821285991,300.13755151512,305.33413252207,310.62068712289,321.46997343155,344.3186075731,356.34488692223,368.79121945838,395.00323181087,401.84231702948,408.7998141568,423.07827792492,453.14877154631],description:"Binary SQR(3) Scale #2"},iter24:{frequencies:[261.6255653006,289.31157243481,292.97226416221,296.67927674571,304.23460945445,319.92739457651,328.07477344771,336.42963427227,353.78307729046,391.22147055517,411.40114203819,432.62170761687,478.4030399831,490.58621022536,503.07964402145,529.02909391167,585.01254970054],description:"Binary SQR(5) Scale #2"},iter25:{frequencies:[261.6255653006,295.4600775297,299.98610231105,304.581459303,313.98443628203,333.67021037701,343.97120738708,354.59021667251,376.82183739983,425.55401329039,452.23482674104,480.58843796626,542.7401414615,559.49550492793,576.76813324226,612.92956630767,692.19618110881],description:"Binary SQR(7) Scale #2"},iter26:{frequencies:[261.6255653006,266.56189672137,275.04226095704,276.16031892841,278.32506946872,283.8915708581,299.68019298069,302.93486508491,309.19384990071,326.13597866239,377.90359432309,389.87339142835,411.92110281371,477.08191319521,486.74523776856,503.12608711654,552.32063785682,711.29450566101],description:"E Scale"},iter27:{frequencies:[261.6255653006,264.53251602616,264.59858308811,264.97973921471,266.91093025617,277.4816601673,277.93638607994,279.98525409362,291.05844139692,358.0999925052,361.3330282979,375.61956161015,462.09190754392,465.48964215821,480.4396744611,568.53247844169,1395.33634826987],description:"Iterated Kidjel Ratio Scale, IE=16/3, PD=3, SD=3"},iter28:{frequencies:[261.6255653006,265.20947715403,272.47639519786,295.60291144354,377.3445653374,784.8766959018],description:"McLaren 3-Division Scale"},iter29:{frequencies:[261.6255653006,264.46932144517,267.35459227799,273.20191774753,285.29018929764,311.12229387098,370.01329949656,523.2511306012],description:"Iterated Binary Division of the Octave, IE=2, PD=6, SD=0"},iter3:{frequencies:[261.6255653006,291.72408166262,314.40967058055,328.65360269166,338.82655178274,356.71329642628,384.4758307461,404.77917650282,417.30358762823,426.15298265459,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=3, SD=2"},iter30:{frequencies:[261.6255653006,263.40533105094,266.47048317654,274.97380842818,299.54231389489,377.98194879009,711.1793535636],description:"Iterated E-scale, IE= 2.71828, PD=5, SD=0"},iter31:{frequencies:[261.6255653006,264.53251602616,277.4816601673,358.0999925052,1395.33634826987],description:"Iterated Kidjel Ratio Scale, IE=16/3, PD=3, SD=0"},iter32:{frequencies:[261.6255653006,264.32273607689,265.98599138894,268.74462830198,273.21657135822,280.65287914064,293.09931751721,314.43072526953,352.25402909754,423.30428543018],description:"Iterated PHI scale, IE= 1.61803339, PD=8, SD=0"},iter33:{frequencies:[261.6255653006,264.70351312767,271.46111286829,293.79264300149,376.62581378438,821.87425059077],description:"Iterated PI Scale, IE= 3.14159, PD=4, SD=0"},iter34:{frequencies:[261.6255653006,263.41752122732,264.70351312767,267.00143308075,271.01725226011,278.10591587072,290.81088732616,314.21361862735,359.24704489038,453.1728541814],description:"Iterated SQR3 Scale, IE= 1.73205, PD=8, SD=0"},iter35:{frequencies:[261.6255653006,263.32443260775,265.41724016003,270.17542037578,281.14986121856,307.30621955943,374.94109676838,585.0238335194],description:"Iterated SQR 5 Scale, IE= 2.23607, PD=6, SD=0"},iter36:{frequencies:[261.6255653006,263.60757715894,266.85807660661,275.72514666411,300.63990398578,377.90359432309,692.2176415245],description:"Iterated SQR 7 Scale, IE= 2.64575, PD=5, SD=0"},iter37:{frequencies:[261.6255653006,295.02271214403,313.28742377221,326.0879260201,332.68289475257,342.82647426905,364.05069339959,375.15068445646,382.73792346942,386.58911684499,392.4383479509],description:"Iterated 3/2 scale, IE=3/2, PD=3, SD=2"},iter4:{frequencies:[261.6255653006,267.82522324611,277.41331493081,278.97828136646,281.37089098366,287.35922746131,302.93486508491,307.2300216374,313.76772341995,330.79094463294,377.42704502382,390.96854140427,412.14986314478,470.26367433779,480.2976795817,495.79659597089,536.59937372878,654.0639132515],description:"Iterated 5/2 Scale, IE=5/2, PD=4, SD=3"},iter5:{frequencies:[261.6255653006,292.148547919,314.45380444784,328.62723446295,338.43307070995,355.46951807147,382.59222452561,401.8431885336,413.81298563886,422.03832066739,436.04260883433],description:"Iterated 5/3 Scale, analog of Hexachord, IE=5/3, PD=3, SD=2"},iter6:{frequencies:[261.6255653006,276.4345595629,292.10621368514,326.13597866239,344.58001283494,364.1180547998,406.52587839016,453.84026633778,506.69255051888,535.41976154541,565.73733351326,631.63886479716],description:"Iterated binary 1+SQR(2) scale, IE= 2.414214, G=2, PD=4, SD=2"},iter7:{frequencies:[261.6255653006,279.30296836145,298.19688088025,308.09852755794,318.34159693919,339.84351781315,362.8203594263,387.34174602946,400.24806631808,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=3, SD=2"},iter8:{frequencies:[261.6255653006,298.19688088025,308.09852755794,318.34159693919,339.84351781315,362.8203594263,387.34174602946,400.24806631808,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=2, SD=2"},iter9:{frequencies:[261.6255653006,298.19688088025,339.84351781315,387.34174602946,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=2, SD=12"},ives:{frequencies:[261.6255653006,302.26980244078,349.22823143301,375.37611551499,433.69180740168,501.06699929295,578.9091089468,622.25396744417],description:`Charles Ives' stretched major scale, "Scrapbook" pp. 108-110`},ives2a:{frequencies:[261.6255653006,303.72829164664,352.60650301302,379.92060676531,441.0602510811,512.03893786214,594.44004134205,640.48740045057],description:"Speculation by Joe Monzo for Ives' other stretched scale"},ives2b:{frequencies:[261.6255653006,300.81831683262,345.88232658126,370.885984045,426.44646246473,490.3301667422,563.78395315523,604.53960488156],description:"Alt. speculation by Joe Monzo for Ives' other stretched scale"},abell1:{frequencies:[261.6255653006,273.68256372566,292.6487650037,305.95868600104,327.16162250699,342.04121835587,365.95599773772,391.31674786192,409.35055662695,437.71854962063,457.62637091093,489.33987776603,523.2511306012],description:"Ross Abell's French Baroque Meantone 1, a'=520"},abell2:{frequencies:[261.6255653006,275.90473010106,294.68429813772,308.79945157961,330.00857764288,348.01999353916,369.14054089803,392.90218486657,412.67427966689,441.52756934418,463.21121723949,493.59810545034,523.2511306012],description:"Ross Abell's French Baroque Meantone 2, a'=520"},abell3:{frequencies:[261.6255653006,275.90505521365,293.49576926806,308.08682543008,329.24698751194,350.03632176331,368.71497179837,392.44893164635,412.28324979826,440.25465969448,462.14293627657,492.7440237889,523.2511306012],description:"Ross Abell's French Baroque Meantone 3, a' = 520"},abell4:{frequencies:[261.6255653006,274.95017225036,292.98704147282,308.2648062752,328.10786809908,346.01554587335,367.43868454848,391.54284657258,411.48414905414,438.47771564426,461.87534079415,491.0387427573,523.2511306012],description:"Ross Abell's French Baroque Meantone 4, a'=520"},abell5:{frequencies:[261.6255653006,277.98432293805,295.87822452474,311.66659310186,331.15428443044,349.43001184052,371.27895029721,395.6350356808,416.26536455926,442.29334161825,466.70260620202,495.88429116026,523.2511306012],description:"Ross Abell's French Baroque Meantone 5, a'=520"},abell6:{frequencies:[261.6255653006,277.02257024271,293.32570896007,311.66659310186,330.00857764288,349.43001184052,369.99442271164,391.76907592069,414.82519580403,440.76312290327,466.70260620202,494.16866184506,523.2511306012],description:"Ross Abell's French Baroque Meantone 6, a'=520"},abell7:{frequencies:[261.6255653006,277.50302994288,294.34406205295,310.05056613125,328.86683469969,348.82502010853,369.99442271164,392.44854854484,416.26536455926,438.47771564426,465.08793784701,493.31307433255,523.2511306012],description:"Ross Abell's French Baroque Meantone 7, a'=520"},abell8:{frequencies:[261.6255653006,277.82379926216,294.68429813772,311.48661940174,329.62755691287,350.03605285217,371.27895029721,392.44854854484,415.30469757995,441.01779121056,467.78216486233,494.45418731234,523.2511306012],description:"Ross Abell's French Baroque Meantone 8, a'=520"},abell9:{frequencies:[261.6255653006,276.06414495892,293.32570896007,309.69258848748,330.19925313612,348.62358905703,369.14054089803,391.99543598175,412.67427966689,440,464.55095742407,493.88330125613,523.2511306012],description:"Ross Abell's French Baroque Meantone 9, a'=520"},"ad-dik":{frequencies:[261.6255653006,269.0348830679,275.62199471997,285.40970760065,294.32876096318,300.46061014991,310.07474405997,321.08592105074,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.49599295996,378.42269266694,392.4383479509,400.61414686654,413.43299207996,428.11456140098,441.49314144476,453.48431318771,470.92601754108,479.64686971777,490.54793493862,508.71637697339,523.2511306012],description:"Amin Ad-Dik, d'Erlanger, vol 5, p.42"},adjeng:{frequencies:[261.6255653006,285.30470202322,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Soeroepan adjeng"},aeolic:{frequencies:[261.6255653006,294.32876096318,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Ancient Greek Aeolic, also tritriadic scale of the 54:64:81 triad"},agricola:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,331.11985608357,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Agricola's Monochord, Rudimenta musices (1539)"},"al-din":{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,516.20836322497,523.2511306012,551.24398943995,580.73440862809,588.65752192635,620.14948811994,653.3262097066,688.27781763329,697.66817413493,734.99198591993,774.31254483746,784.8766959018,826.86598415992,871.10161294214,917.70375684439,930.22423217991,979.98931455991,1032.41672644994,1046.5022612024,1102.48797887989],description:"Safi al-Din's complete lute tuning on 5 strings 4/3 apart"},"al-din_19":{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,516.20836322497,523.2511306012],description:"Arabic scale by Safi al-Din"},"al-farabi":{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Al-Farabi Syn Chrom"},"al-farabi_19":{frequencies:[261.6255653006,275.62199471997,285.40970760065,294.32876096318,310.07474405997,326.6631048533,331.11985608357,336.87132687997,348.83408706747,367.49599295996,380.54627680087,392.4383479509,413.43299207996,435.55080647107,441.49314144476,455.28980211491,465.11211608996,489.99465727995,507.3950357345,523.2511306012],description:"Arabic scale by Al Farabi"},"al-farabi_22":{frequencies:[261.6255653006,275.62199471997,277.01530443593,285.40970760065,294.32876096318,310.07474405997,321.08592105074,326.6631048533,331.11985608357,348.83408706747,367.49599295996,369.35373924791,380.54627680087,392.4383479509,413.43299207996,428.11456140098,435.55080647107,441.49314144476,465.11211608996,489.99465727995,492.47165233054,507.3950357345,523.2511306012],description:"Al-Farabi 22 note ud scale"},"al-farabi_9":{frequencies:[261.6255653006,294.32876096318,321.08592105074,331.11985608357,348.83408706747,392.4383479509,428.11456140098,441.49314144476,465.11211608996,523.2511306012],description:"Al-Farabi 9 note ud scale"},"al-farabi_blue":{frequencies:[261.6255653006,294.32876096318,367.91095120397,380.81054504865,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Another tuning from Al Farabi, c700 AD"},"al-farabi_chrom":{frequencies:[261.6255653006,294.32876096318,353.19451315581,372.50983809402,392.4383479509,470.92601754108,497.08857407114,523.2511306012],description:"Al Farabi's Chromatic c700 AD"},"al-farabi_chrom2":{frequencies:[261.6255653006,279.06726965397,325.57848126297,348.83408706747,392.4383479509,418.60090448096,488.36772189445,523.2511306012],description:"Al-Farabi's Chromatic permuted"},"al-farabi_diat":{frequencies:[261.6255653006,299.00064605783,341.71502406609,348.83408706747,392.4383479509,448.50096908674,512.57253609913,523.2511306012],description:"Al-Farabi's Diatonic"},"al-farabi_diat2":{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Old Phrygian, permuted form of Al-Farabi's reduplicated 10/9 diatonic genus, same as ptolemy_diat"},"al-farabi_div":{frequencies:[261.6255653006,275.62199471997,277.01530443593,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,321.08592105074,331.11985608357,348.83408706747],description:"Al Farabi's 10 intervals for the division of the tetrachord"},"al-farabi_div2":{frequencies:[261.6255653006,275.62199471997,277.01530443593,279.38237857051,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,314.30517589183,321.08592105074,331.11985608357,348.83408706747],description:"Al-Farabi's tetrachord division, incl. extra 2187/2048 & 19683/16384"},"al-farabi_divo":{frequencies:[261.6255653006,275.62199471997,277.01530443593,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,321.08592105074,331.11985608357,348.83408706747,367.49599295996,369.35373924791,379.26927587201,392.4383479509,413.43299207996,415.52295665389,426.67793535601,432.48307733364,441.49314144476,465.11211608996,467.46332623563,481.6288815761,496.67978412536,523.2511306012],description:"Al Farabi's theoretical octave division with identical tetrachords, 10th c."},"al-farabi_dor":{frequencies:[261.6255653006,282.55561052465,313.95067836072,348.83408706747,392.4383479509,423.83341578697,470.92601754108,523.2511306012],description:"Dorian mode of Al-Farabi's 10/9 Diatonic"},"al-farabi_dor2":{frequencies:[261.6255653006,267.07609791103,305.22982618403,348.83408706747,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Dorian mode of Al-Farabi's Diatonic"},"al-farabi_g1":{frequencies:[261.6255653006,294.32876096318,331.11985608357,367.91095120397,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Al-Farabi's Greek genus conjunctum medium, Land"},"al-farabi_g10":{frequencies:[261.6255653006,294.32876096318,343.38355445704,367.91095120397,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Al-Farabi's Greek genus chromaticum forte"},"al-farabi_g11":{frequencies:[261.6255653006,294.32876096318,353.19451315581,372.50983809402,392.4383479509,470.92601754108,496.67978412536,523.2511306012],description:"Al-Farabi's Greek genus chromaticum mollissimum"},"al-farabi_g12":{frequencies:[261.6255653006,294.32876096318,367.91095120397,380.17464957743,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Al-Farabi's Greek genus mollissimum ordinantium"},"al-farabi_g3":{frequencies:[261.6255653006,294.32876096318,336.37572681506,378.42269266694,392.4383479509,448.50096908674,504.56359022259,523.2511306012],description:"Al-Farabi's Greek genus conjunctum primum"},"al-farabi_g4":{frequencies:[261.6255653006,294.32876096318,336.37572681506,384.42940207435,392.4383479509,448.50096908674,512.57253609913,523.2511306012],description:"Al-Farabi's Greek genus forte duplicatum primum"},"al-farabi_g5":{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Al-Farabi's Greek genus conjunctum tertium, or forte aequatum"},"al-farabi_g6":{frequencies:[261.6255653006,294.32876096318,336.37572681506,373.75080757229,392.4383479509,448.50096908674,498.33441009638,523.2511306012],description:"Al-Farabi's Greek genus forte disjunctum primum"},"al-farabi_g7":{frequencies:[261.6255653006,294.32876096318,343.38355445704,374.60024122586,392.4383479509,457.84473927605,499.46698830115,523.2511306012],description:"Al-Farabi's Greek genus non continuum acre"},"al-farabi_g8":{frequencies:[261.6255653006,294.32876096318,353.19451315581,378.42269266694,392.4383479509,470.92601754108,504.56359022259,523.2511306012],description:"Al-Farabi's Greek genus non continuum mediocre"},"al-farabi_g9":{frequencies:[261.6255653006,294.32876096318,367.91095120397,383.71749577421,392.4383479509,490.54793493862,511.62332769895,523.2511306012],description:"Al-Farabi's Greek genus non continuum laxum"},"al-hwarizmi":{frequencies:[261.6255653006,294.32876096318,302.73815413355,311.64221749042,321.08592105074,331.11985608357,348.83408706747],description:"Al-Hwarizmi's tetrachord division"},"al-kindi":{frequencies:[261.6255653006,275.62199471997,279.38237857051,294.32876096318,310.07474405997,331.11985608357,348.83408706747],description:"Al-Kindi's tetrachord division"},"al-kindi2":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,523.2511306012],description:"Arabic mode by al-Kindi"},"al-mausili":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,441.49314144476,465.11211608996,523.2511306012],description:"Arabic mode by Ishaq al-Mausili, ? - 850 AD"},albion:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Terry Riley's Harp of New Albion scale, inverse Malcolm's Monochord, 1/1 on C#"},alembert:{frequencies:[261.6255653006,273.70610837433,292.50627485027,307.8325111191,327.03195662575,347.99121610009,365.92863081328,391.22147055517,409.45161370755,437.39890198442,462.86717295458,489.22460251523,523.2511306012],description:"Jean-Le Rond d'Alembert modified meantone (1752)"},alembert2:{frequencies:[261.6255653006,274.99999938609,292.5775112526,309.28790118232,327.03195662575,348.53877105022,367.08095907728,391.31674786192,412.03444522126,437.50542525192,464.32494005553,489.99429388332,523.2511306012],description:"d'Alembert (?)"},alves:{frequencies:[261.6255653006,267.07609791103,294.32876096318,305.22982618403,327.03195662575,336.37572681506,348.83408706747,359.73515228832,392.4383479509,425.14154361347,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:'Bill Alves, tuning for "Instantaneous Motion", 1/1 vol. 6/3'},alves_22:{frequencies:[261.6255653006,269.80136421624,279.06726965397,287.78812183066,297.30177875068,305.22982618403,317.12189733406,327.03195662575,336.37572681506,348.83408706747,359.73515228832,370.01329949656,380.54627680087,392.4383479509,406.97310157871,418.60090448096,431.68218274599,448.50096908674,460.46099492906,475.68284600109,490.54793493862,507.3950357345,523.2511306012],description:"11-limit rational interpretation of 22-tET, Bill Alves, tuning list 9-1-98"},amity:{frequencies:[261.6255653006,265.19165427121,275.22357733525,278.97501409741,282.77758484276,286.63198489776,290.53892403345,294.49911672845,305.63971046081,309.80573452349,314.02854360428,318.30891171173,322.64762154083,327.04547204619,339.41726037801,344.04368955469,348.73317930436,353.48658917459,358.304790429,371.85908609843,376.92771379174,382.0654272409,387.27317253358,392.55190203235,397.90258328792,412.95482206782,418.58360545772,424.28911201625,430.07238503487,435.93448947821,452.42543551278,458.59222335614,464.84306764133,471.17911410024,477.60152408164,484.11147196776,502.42490579041,509.27320879713,516.21486058423,523.2511306012],description:"Amity temperament, g=339.508826, 5-limit"},angklung:{frequencies:[261.6255653006,294.70472480469,326.28010551578,372.13971319976,421.00655337609,533.77627782773,589.40944960937,672.10704388342,757.81210779894],description:"Scale of an anklung set from Tasikmalaya. 1/1=174 Hz"},appunn:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.38237857051,287.10624449997,290.69507255622,294.32876096318,302.46583782713,306.24666079997,310.07474405997,322.99452506247,327.03195662575,331.11985608357,340.27406755552,344.52749339997,348.83408706747,363.36884069528,367.91095120397,372.50983809402,382.80832599996,387.59343007496,392.4383479509,408.78994578219,413.89982010446,419.07356785577,430.65936674996,436.04260883433,441.49314144476,453.6987567407,459.36999119996,465.11211608996,484.4917875937,490.54793493862,496.67978412536,510.41110133328,516.79124009995,523.2511306012],description:"Probable tuning of A. Appunn's 36-tone harmonium w. 3 manuals 80/81 apart,1887"},arabic:{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,516.20836322497,523.2511306012],description:"Arabic 17-tone Pythagorean mode, Safi al-Din"},arabic_s:{frequencies:[261.6255653006,275.62199471997,290.69507255622,294.32876096318,310.07474405997,327.03195662575,331.11985608357,348.83408706747,367.91095120397,387.59343007496,392.4383479509,413.43299207996,436.04260883433,441.49314144476,465.11211608996,490.54793493862,516.79124009995,523.2511306012],description:"Schimatically altered Arabic 17-tone Pythagorean mode"},arch_chrom:{frequencies:[261.6255653006,271.31540105247,294.32876096318,348.83408706747,392.4383479509,406.97310157871,441.49314144476,523.2511306012],description:"Archytas' Chromatic"},arch_chromc2:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,331.11985608357,343.38355445704,348.83408706747,361.75386806997,392.4383479509,406.97310157871,422.04617941496,441.49314144476,457.84473927605,496.67978412536,523.2511306012],description:"Product set of 2 of Archytas' Chromatic"},arch_dor:{frequencies:[261.6255653006,271.31540105247,294.32876096318,348.83408706747,392.4383479509,406.97310157871,465.11211608996,441.49314144476,523.2511306012],description:"Dorian mode of Archytas' Chromatic with added 16/9"},arch_enh:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Archytas' Enharmonic"},arch_enh2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,465.11211608996,418.60090448096,523.2511306012],description:"Archytas' Enharmonic with added 16/9"},arch_enh3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,358.80077526939,448.50096908674,523.2511306012],description:"Complex 9 of p. 113 based on Archytas's Enharmonic"},arch_enhp:{frequencies:[261.6255653006,269.10058145205,279.06726965397,348.83408706747,392.4383479509,403.65087217807,418.60090448096,523.2511306012],description:"Permutation of Archytas's Enharmonic with the 36/35 first"},arch_enht:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,336.37572681506,348.83408706747,504.56359022259,523.2511306012],description:"Complex 6 of p. 113 based on Archytas's Enharmonic"},arch_enht2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,348.83408706747,490.54793493862,508.71637697339,523.2511306012],description:"Complex 5 of p. 113 based on Archytas's Enharmonic"},arch_enht3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,281.36411960997,289.40309445597,348.83408706747,361.75386806997,523.2511306012],description:"Complex 1 of p. 113 based on Archytas's Enharmonic"},arch_enht4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,339.14425131559,348.83408706747,436.04260883433,523.2511306012],description:"Complex 8 of p. 113 based on Archytas's Enharmonic"},arch_enht5:{frequencies:[261.6255653006,263.77886213435,271.31540105247,279.06726965397,339.14425131559,348.83408706747,508.71637697339,523.2511306012],description:"Complex 10 of p. 113 based on Archytas's Enharmonic"},arch_enht6:{frequencies:[261.6255653006,271.31540105247,279.06726965397,289.40309445597,297.67175429757,348.83408706747,372.08969287196,523.2511306012],description:"Complex 2 of p. 113 based on Archytas's Enharmonic"},arch_enht7:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,287.04062021552,348.83408706747,358.80077526939,523.2511306012],description:"Complex 11 of p. 113 based on Archytas's Enharmonic"},arch_mult:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,490.54793493862,504.56359022259,523.2511306012],description:"Multiple Archytas"},arch_ptol:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,310.07474405997,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,436.04260883433,465.11211608996,523.2511306012],description:"Archytas/Ptolemy Hybrid 1"},arch_ptol2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,313.95067836072,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"Archytas/Ptolemy Hybrid 2"},arch_sept:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,310.07474405997,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,441.49314144476,465.11211608996,523.2511306012],description:"Archytas Septimal"},ariel1:{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ariel 1"},ariel2:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ariel 2"},ariel3:{frequencies:[261.6255653006,279.06726965397,290.69507255622,310.07474405997,322.99452506247,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,465.11211608996,484.4917875937,523.2511306012],description:"Ariel's 12-tone JI scale"},ariel_19:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,302.80736724606,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,452.08897683944,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Ariel 19-tone scale"},ariel_31:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Ariel's 31-tone system"},arist_archenh:{frequencies:[261.6255653006,271.89678302796,279.86396690685,349.22823143301,391.99543598175,407.38487419079,419.32216217931,523.2511306012],description:"PsAristo Arch. Enharmonic, 4 + 3 + 23 parts, similar to Archytas' enharmonic"},arist_chrom:{frequencies:[261.6255653006,277.18263097687,329.62755691287,349.22823143301,391.99543598175,415.30469757995,493.88330125613,523.2511306012],description:"Dorian, Neo-Chromatic,6+18+6 parts = Athanasopoulos' Byzant.liturg. 2nd chromatic"},arist_chrom2:{frequencies:[261.6255653006,282.57123920205,336.03572815422,349.22823143301,391.99543598175,423.37848741825,503.48470957687,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 8 + 18 + 4 parts"},arist_chrom3:{frequencies:[261.6255653006,279.86388595857,299.37253740865,349.22869576324,391.99491478937,419.32387668214,448.55625766774,523.2511306012],description:"PsAristo 3 Chromatic, 7 + 7 + 16 parts"},arist_chrom4:{frequencies:[261.6255653006,275.85166538713,290.85115308106,349.22823143301,391.99543598175,413.31050241775,435.7843409791,523.2511306012],description:"PsAristo Chromatic, 5.5 + 5.5 + 19 parts"},arist_chromenh:{frequencies:[261.6255653006,269.29177952703,293.66476791741,349.22823143301,391.99543598175,403.48177901006,440,523.2511306012],description:"Aristoxenos' Chromatic/Enharmonic, 3 + 9 + 18 parts"},arist_chrominv:{frequencies:[261.6255653006,311.12698372208,329.62755691287,349.22823143301,391.99543598175,466.16376151809,493.88330125613,523.2511306012],description:"Aristoxenos' Inverted Chromatic, Dorian mode, 18 + 6 + 6 parts"},arist_chromrej:{frequencies:[261.6255653006,277.18263097687,285.30470202322,349.22823143301,391.99543598175,415.30469757995,427.47405410759,523.2511306012],description:"Aristoxenos Rejected Chromatic, 6 + 3 + 21 parts"},arist_chromunm:{frequencies:[261.6255653006,273.20871865617,282.57118533961,349.22823143301,391.99543598175,409.35055662695,423.37840671577,523.2511306012],description:"Unmelodic Chromatic, genus of Aristoxenos, Dorian Mode, 4.5 + 3.5 + 22 parts"},arist_diat:{frequencies:[261.6255653006,293.66476791741,311.12698372208,349.22823143301,391.99543598175,440,466.16376151809,523.2511306012],description:"Phrygian octave species on E, 12 + 6 + 12 parts"},arist_diat2:{frequencies:[261.6255653006,279.86396690685,311.12698372208,349.22823143301,391.99543598175,419.32216217931,466.16376151809,523.2511306012],description:"PsAristo 2 Diatonic, 7 + 11 + 12 parts"},arist_diat3:{frequencies:[261.6255653006,286.68133251996,314.13668154225,349.22823143301,391.99543598175,429.53666932309,470.6732130613,523.2511306012],description:"PsAristo Diat 3, 9.5 + 9.5 + 11 parts"},arist_diat4:{frequencies:[261.6255653006,282.57123920205,305.19382000629,349.22823143301,391.99543598175,423.37848741825,457.27406033445,523.2511306012],description:"PsAristo Diatonic, 8 + 8 + 14 parts"},arist_diatdor:{frequencies:[261.6255653006,299.37379946195,305.19382000629,349.22823143301,391.99543598175,448.5538823653,457.27406033445,523.2511306012],description:"PsAristo Redup. Diatonic, 14 + 2 + 14 parts"},arist_diatinv:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,440,493.88330125613,523.2511306012],description:"Lydian octave species on E, major mode, 12 + 12 + 6 parts"},arist_diatred:{frequencies:[261.6255653006,299.37379946195,342.56848033562,349.22823143301,391.99543598175,448.5538823653,513.27277840175,523.2511306012],description:"Aristo Redup. Diatonic, Dorian Mode, 14 + 14 + 2 parts"},arist_diatred2:{frequencies:[261.6255653006,271.89678302796,308.14612137864,349.22823143301,391.99543598175,407.38487419079,461.69751437372,523.2511306012],description:"PsAristo 2 Redup. Diatonic 2, 4 + 13 + 13 parts"},arist_diatred3:{frequencies:[261.6255653006,282.57123920205,314.13668154225,349.22823143301,391.99543598175,423.37848741825,470.6732130613,523.2511306012],description:"PsAristo 3 Redup. Diatonic, 8 + 11 + 11 parts"},arist_enh:{frequencies:[261.6255653006,269.29177952703,277.18263097687,349.22823143301,391.99543598175,403.48177901006,415.30469757995,523.2511306012],description:"Aristoxenos' Enharmonion, Dorian mode"},arist_enh2:{frequencies:[261.6255653006,270.59109411209,279.86402025325,349.22823143301,391.99543598175,405.42855124795,419.32224210861,523.2511306012],description:"PsAristo 2 Enharmonic, 3.5 + 3.5 + 23 parts"},arist_enh3:{frequencies:[261.6255653006,267.99870394401,274.52693220706,349.22823143301,391.99543598175,401.54435471309,411.32564531909,523.2511306012],description:"PsAristo Enharmonic, 2.5 + 2.5 + 25 parts"},arist_hemchrom:{frequencies:[261.6255653006,273.20871865617,285.30470202322,349.22823143301,391.99543598175,409.35055662695,427.47405410759,523.2511306012],description:"Aristoxenos's Chromatic Hemiolion, Dorian Mode"},arist_hemchrom2:{frequencies:[261.6255653006,273.20871865617,293.66476791741,349.22823143301,391.99543598175,409.35055662695,440,523.2511306012],description:"PsAristo C/H Chromatic, 4.5 + 7.5 + 18 parts"},arist_hemchrom3:{frequencies:[261.6255653006,271.81876914348,282.83844897362,348.83408706747,392.4383479509,407.72815371522,424.25767346043,523.2511306012],description:"Dorian mode of Aristoxenos' Hemiolic Chromatic according to Ptolemy's interpret"},arist_hypenh2:{frequencies:[261.6255653006,267.3544191957,273.20871865617,349.22823143301,391.99543598175,400.57901831518,409.35055662695,523.2511306012],description:"PsAristo 2nd Hyperenharmonic, 37.5 + 37.5 + 425 cents"},arist_hypenh3:{frequencies:[261.6255653006,265.43099677612,269.29177952703,349.22823143301,391.99543598175,397.69714089209,403.48177901006,523.2511306012],description:"PsAristo 3 Hyperenharmonic, 1.5 + 1.5 + 27 parts"},arist_hypenh4:{frequencies:[261.6255653006,266.71168334607,271.8968348557,349.22823143301,391.99543598175,399.61600264311,407.38495184466,523.2511306012],description:"PsAristo 4 Hyperenharmonic, 2 + 2 + 26 parts"},arist_hypenh5:{frequencies:[261.6255653006,265.12453591719,268.67030163715,349.22823143301,391.99543598175,397.23796841836,402.55061428954,523.2511306012],description:"PsAristo Hyperenharmonic, 23 + 23 + 454 cents"},arist_intdiat:{frequencies:[261.6255653006,275.39533189537,307.79478270659,348.83408706747,392.4383479509,413.09299784305,461.69217405988,523.2511306012],description:"Dorian mode of Aristoxenos's Intense Diatonic according to Ptolemy"},arist_penh2:{frequencies:[261.6255653006,269.29177952703,339.28638158975,349.22823143301,391.99543598175,403.48177901006,508.3551866238,523.2511306012],description:"Permuted Aristoxenos's Enharmonion, 3 + 24 + 3 parts"},arist_penh3:{frequencies:[261.6255653006,329.62755691287,339.28638158975,349.22823143301,391.99543598175,493.88330125613,508.3551866238,523.2511306012],description:"Permuted Aristoxenos's Enharmonion, 24 + 3 + 3 parts"},arist_pschrom2:{frequencies:[261.6255653006,278.52001838539,296.50560089735,349.22823143301,391.99543598175,417.30851459865,444.25644015807,523.2511306012],description:"PsAristo 2 Chromatic, 6.5 + 6.5 + 17 parts"},arist_softchrom:{frequencies:[261.6255653006,271.89678302796,282.57123920205,349.22823143301,391.99543598175,407.38487419079,423.37848741825,523.2511306012],description:"Aristoxenos's Chromatic Malakon, Dorian Mode"},arist_softchrom2:{frequencies:[261.6255653006,277.18263097687,324.90175210669,349.22823143301,391.99543598175,415.30469757995,486.80259447109,523.2511306012],description:"Aristoxenos' Soft Chromatic, 6 + 16.5 + 9.5 parts"},arist_softchrom3:{frequencies:[261.6255653006,281.2143451833,329.62755691287,349.22823143301,391.99543598175,421.34544350737,493.88330125613,523.2511306012],description:"Aristoxenos's Chromatic Malakon, 9.5 + 16.5 + 6 parts"},arist_softchrom4:{frequencies:[261.6255653006,277.18263097687,297.93622032612,349.22823143301,391.99543598175,415.30469757995,446.39994737251,523.2511306012],description:"PsAristo S. Chromatic, 6 + 7.5 + 16.5 parts"},arist_softchrom5:{frequencies:[261.6255653006,270.64713651786,280.31310567921,348.83408706747,392.4383479509,405.97070477679,420.46965851882,523.2511306012],description:"Dorian mode of Aristoxenos' Soft Chromatic according to Ptolemy's interpretati"},arist_softdiat:{frequencies:[261.6255653006,277.18263097687,302.26980244078,349.22823143301,391.99543598175,415.30469757995,452.89298412314,523.2511306012],description:"Aristoxenos's Diatonon Malakon, Dorian Mode"},arist_softdiat2:{frequencies:[261.6255653006,277.18263097687,320.24370022528,349.22823143301,391.99543598175,415.30469757995,479.82340237272,523.2511306012],description:"Dorian Mode, 6 + 15 + 9 parts"},arist_softdiat3:{frequencies:[261.6255653006,285.30470202322,329.62755691287,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Dorian Mode, 9 + 15 + 6 parts"},arist_softdiat4:{frequencies:[261.6255653006,285.30470202322,302.26980244078,349.22823143301,391.99543598175,427.47405410759,452.89298412314,523.2511306012],description:"Dorian Mode, 9 + 6 + 15 parts"},arist_softdiat5:{frequencies:[261.6255653006,302.26980244078,320.24370022528,349.22823143301,391.99543598175,452.89298412314,479.82340237272,523.2511306012],description:"Dorian Mode, 15 + 6 + 9 parts"},arist_softdiat6:{frequencies:[261.6255653006,302.26980244078,329.62755691287,349.22823143301,391.99543598175,452.89298412314,493.88330125613,523.2511306012],description:"Dorian Mode, 15 + 9 + 6 parts"},arist_softdiat7:{frequencies:[261.6255653006,275.39533189537,299.00064605783,348.83408706747,392.4383479509,413.09299784305,448.50096908674,523.2511306012],description:"Dorian mode of Aristoxenos's Soft Diatonic according to Ptolemy"},arist_synchrom:{frequencies:[261.6255653006,277.18263097687,293.66476791741,349.22823143301,391.99543598175,415.30469757995,440,523.2511306012],description:"Aristoxenos's Chromatic Syntonon, Dorian Mode"},arist_syndiat:{frequencies:[261.6255653006,277.18263097687,311.12698372208,349.22823143301,391.99543598175,415.30469757995,466.16376151809,523.2511306012],description:"Aristoxenos's Diatonon Syntonon, Dorian Mode"},arist_unchrom:{frequencies:[261.6255653006,271.89678302796,293.66476791741,349.22823143301,391.99543598175,407.38487419079,440,523.2511306012],description:"Aristoxenos's Unnamed Chromatic, Dorian Mode, 4 + 8 + 18 parts"},arist_unchrom2:{frequencies:[261.6255653006,282.57123920205,293.66476791741,349.22823143301,391.99543598175,423.37848741825,440,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 8 + 4 + 18 parts"},arist_unchrom3:{frequencies:[261.6255653006,311.12698372208,323.3415889232,349.22823143301,391.99543598175,466.16376151809,484.46499093218,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 18 + 4 + 8 parts"},arist_unchrom4:{frequencies:[261.6255653006,311.12698372208,336.03572815422,349.22823143301,391.99543598175,466.16376151809,503.48470957687,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 18 + 8 + 4 parts"},arith13:{frequencies:[261.6255653006,269.80136421624,294.32876096318,318.85615771011,327.03195662575,343.38355445704,367.91095120397,371.99885066179,392.4383479509,449.66894036041,457.84473927605,490.54793493862,523.2511306012],description:"The first 13 terms of the arithmetic series, octave reduced"},arith22:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,312.72430852337,318.85615771011,327.03195662575,343.38355445704,349.51540364377,367.91095120397,371.99885066179,388.35044849308,392.4383479509,429.2294430713,449.66894036041,457.84473927605,472.15238737843,490.54793493862,517.11928141447,523.2511306012],description:"The first 22 terms of the arithmetic series, octave reduced"},arnautoff_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,361.75386806997,367.91095120397,372.08969287196,378.42269266694,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,523.2511306012],description:"Philip Arnautoff, transposed Archytas enharmonic (2005), 1/1 vol 12/1"},"aron-neidhardt":{frequencies:[261.6255653006,275.62199471997,292.53519855339,310.07474405997,327.04005607367,348.83408706747,367.49599295996,391.42133845759,413.43299207996,437.43855491017,465.11211608996,489.99465727995,523.2511306012],description:"Aron-Neidhardt equal beating well temperament"},art_nam:{frequencies:[261.6255653006,287.78812183066,317.68818643644,324.77656382143,348.83408706747,353.19451315581,392.4383479509,431.68218274599,473.41768959156,523.2511306012],description:"Artificial Nam System"},artusi:{frequencies:[261.6255653006,276.63528606528,292.50629850443,309.28767786778,327.03195662575,349.91920725962,369.99442271164,391.22137338448,413.66637442451,437.39882871549,462.49310482954,489.02679755603,523.2511306012],description:"Lute tuning of Giovanni Maria Artusi (1603). 1/4-comma w. acc. 1/2-way naturals"},astro:{frequencies:[13.75,13.8316453704,13.91377553836,13.99639338254,14.07098381034,14.15453513289,14.23858257025,14.32312915102,14.40817767355,14.49373120103,14.57979273211,14.66636528323,14.75345188876,14.84105560105,14.92917949063,15.01782664621,15.10700017487,15.1875093157,15.27769039377,15.36840704189,15.45966226264,15.55145934276,15.64380149972,15.73669197012,15.83013400973,15.92413089371,16.01868591662,16.11380239262,16.20948365552,16.30573305894,16.39263055969,16.48996755631,16.58788242969,16.68637870643,16.78545983879,16.88512929958,16.98539058219,17.08624720077,17.18770269033,17.28976060687,17.39242452751,17.49569805061,17.59958489756,17.69337767194,17.7984382082,17.90412257766,18.01043448453,18.11737765504,18.22495583753,18.33317280261,18.44203234327,18.55153827502,18.66169443603,18.77250468726,18.88397302169,18.99610312873,19.09733831271,19.21073534981,19.32480572095,19.43955342429,19.55498248173,19.67109693902,19.78790086598,19.90539835657,20.02359352906,20.14249064253,20.26209363229,20.38240680608,20.50343438087,20.62518059864,20.73509756099,20.85821935885,20.98207223488,21.1066605301,21.23198861133,21.35806087129,21.4848817288,21.61245575376,21.74078716869,21.86988059568,21.99974055944,22.13037161156,22.26177833063,22.38041714879,22.51330859954,22.64698913914,22.78146345308,22.91673625467,23.0528122852,23.18969644807,23.32739327396,23.46590772227,23.60524464792,23.74540893465,23.88640549521,24.02823927151,24.15629202037,24.29972834105,24.44401636439,24.58916114767,24.73516777819,24.8820415172,25.02978722599,25.17841022592,25.32791572621,25.478308967,25.62959521956,25.78177978645,25.93486800174,26.07308167197,26.22789959273,26.38363679833,26.54029874734,26.69789108494,26.85641902723,27.01588828389,27.17630444429,27.33767313101,27.5],description:"Astro temperament, g=132.194511, 5-limit"},athan_chrom:{frequencies:[261.6255653006,285.30470202322,329.62755691287,349.22823143301,391.99543598175,427.47405410759,493.88330125613,523.2511306012],description:"Athanasopoulos's Byzantine Liturgical mode Chromatic"},auftetf:{frequencies:[261.6255653006,264.29521392612,269.80136421624,287.78812183066,359.73515228832,380.54627680087,384.42940207435,392.4383479509,418.60090448096],description:"5/4 C.I. again"},augmented:{frequencies:[261.6255653006,312.71213182188,329.62755691287,393.99259743989,415.30469757995,496.39956701727,523.2511306012],description:"Augmented temperament, g=91.2, oct=1/3, 5-limit"},augteta:{frequencies:[261.6255653006,280.76889934699,302.93486508491,328.90071066361,359.73515228832,380.54627680087,408.39112632289,440.63253103259,478.40103369253],description:"Linear Division of the 11/8, duplicated on the 16/11"},augteta2:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,366.27579142084,373.75080757229,402.50086969323,436.04260883433,475.68284600109],description:"Linear Division of the 7/5, duplicated on the 10/7"},augtetb:{frequencies:[261.6255653006,270.8594087818,280.76889934699,302.93486508491,359.73515228832,380.54627680087,295.48299139832,408.39112632289,440.63253103259],description:"Harmonic mean division of 11/8"},augtetc:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,359.73515228832,380.54627680087,407.72815371522,439.09185784716,475.68284600109],description:"11/10 C.I."},augtetd:{frequencies:[261.6255653006,271.68808704293,282.55561052465,294.32876096318,359.73515228832,380.54627680087,395.18267206244,410.98997894494,428.11456140098],description:"11/9 C.I."},augtete:{frequencies:[261.6255653006,269.80136421624,278.50463402967,287.78812183066,359.73515228832,380.54627680087,392.4383479509,405.0976494977,418.60090448096],description:"5/4 C.I."},augtetg:{frequencies:[261.6255653006,278.50463402967,297.71185016965,319.76457981184,359.73515228832,380.54627680087,405.0976494977,433.03541842858,465.11211608996],description:"9/8 C.I."},augteth:{frequencies:[261.6255653006,278.50463402967,287.78812183066,319.76457981184,359.73515228832,380.54627680087,405.0976494977,418.60090448096,465.11211608996],description:"9/8 C.I. A gapped version of this scale is called AugTetI"},augtetj:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,380.54627680087,428.11456140098,475.68284600109],description:"9/8 C.I. comprised of 11:10:9:8 subharmonic series on 1 and 8:9:10:11 on 16/11"},augtetk:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,380.54627680087,418.60090448096,465.11211608996],description:"9/8 C.I. This is the converse form of AugTetJ"},augtetl:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,380.54627680087,428.11456140098,475.68284600109],description:"9/8 C.I. This is the harmonic form of AugTetI"},avg_bac:{frequencies:[261.6255653006,290.69507255622,307.79478270659,348.83408706747,392.4383479509,436.04260883433,461.69217405988,523.2511306012],description:"Average Bac System"},avicenna:{frequencies:[261.6255653006,290.69507255622,299.00064605783,348.83408706747,392.4383479509,436.04260883433,448.50096908674,523.2511306012],description:"Soft diatonic of Avicenna (Ibn Sina)"},avicenna_17:{frequencies:[261.6255653006,278.99913799634,283.42769574232,294.32876096318,310.07474405997,318.85615771011,331.11985608357,348.83408706747,371.99885066179,377.90359432309,392.4383479509,413.43299207996,425.14154361347,441.49314144476,465.11211608996,495.99846754905,503.87145909745,523.2511306012],description:"Tuning by Avicenna (Ibn Sina), Ahmed Mahmud Hifni, Cairo, 1977"},avicenna_19:{frequencies:[261.6255653006,275.62199471997,283.49690885483,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,358.80077526939,372.50983809402,377.99587847311,392.4383479509,413.43299207996,425.24536328225,441.49314144476,465.11211608996,478.40103369253,496.67978412536,503.45611792634,523.2511306012],description:"Arabic scale by Ibn Sina"},avicenna_chrom:{frequencies:[261.6255653006,269.10058145205,299.00064605783,348.83408706747,392.4383479509,403.65087217807,448.50096908674,523.2511306012],description:"Dorian mode a chromatic genus of Avicenna"},avicenna_chrom2:{frequencies:[261.6255653006,271.8968348557,323.34165055711,349.22823143301,391.99543598175,407.38495184466,484.46508327871,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 4 + 18 + 8 parts"},avicenna_chrom3:{frequencies:[261.6255653006,290.69507255622,339.14425131559,348.83408706747,392.4383479509,436.04260883433,508.71637697339,523.2511306012],description:"Avicenna's Chromatic permuted"},avicenna_diat:{frequencies:[261.6255653006,281.75060878526,305.22982618403,348.83408706747,392.4383479509,422.62591317789,457.84473927605,523.2511306012],description:"Dorian mode a soft diatonic genus of Avicenna"},avicenna_diff:{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,310.68035879446,343.38355445704,367.91095120397,392.4383479509,400.61414686654,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"Difference tones of Avicenna's Soft diatonic reduced by 2/1"},avicenna_enh:{frequencies:[261.6255653006,268.33391312882,279.06726965397,348.83408706747,392.4383479509,402.50086969323,418.60090448096,523.2511306012],description:"Dorian mode of Avicenna's (Ibn Sina) Enharmonic genus"},awad:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,307.79478270659,317.12189733406,327.03195662575,337.58137458142,348.83408706747,358.80077526939,369.35373924791,380.54627680087,392.4383479509,402.50086969323,413.09299784305,424.25767346043,436.04260883433,448.50096908674,461.69217405988,475.68284600109,490.54793493862,506.37206187213,523.2511306012],description:"d'Erlanger vol.5, p.37, after Mans.ur 'Awad"},awraamoff:{frequencies:[261.6255653006,294.32876096318,299.00064605783,313.95067836072,327.03195662575,343.38355445704,348.83408706747,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Awraamoff Septimal Just"},ayers:{frequencies:[261.6255653006,268.89294211451,276.57559760349,284.71017400359,293.33775503401,302.50455987882,312.26277148781,322.67153053741,333.7981350387,345.71949700436,358.52392281934,372.31330446624,387.20583664489,403.33941317176,420.87590939662,440.00663255101,460.95932933915,484.00729580611,509.48136400643,537.78588422901,569.42034800719,605.00911975764,645.34306107481,691.43899400873,744.62660893248,806.67882634352,880.01326510202,968.01459161222,1075.57176845802,1210.01823951527,1382.87798801746,1613.35765268703,1936.02918322444,2420.03647903055,3226.71530537407,4840.0729580611,9680.1459161222],description:"Lydia Ayers, algorithmic composition, subharmonics 1-37"},ayers_19:{frequencies:[261.6255653006,268.89294211451,276.57559760349,284.71017400359,293.33775503401,302.50455987882,312.26277148781,322.67153053741,333.7981350387,345.71949700436,358.52392281934,372.31330446624,387.20583664489,403.33941317176,420.87590939662,440.00663255101,460.95932933915,484.00729580611,509.48136400643,523.2511306012],description:"Scale for NINETEEN, for 19 for the 90's CD. Repeats at 37/19 (or 2/1)"},ayers_ap:{frequencies:[261.6255653006,299.00064605783,336.37572681506,388.70083987518,448.50096908674,523.2511306012],description:"Lydia Ayers' Appetizer, ICMC 96, Balinese Slendro from Singaraja,"},ayers_me:{frequencies:[261.6255653006,280.31310567921,299.00064605783,308.34441624714,336.37572681506,392.4383479509,420.46965851882,448.50096908674,504.56359022259,523.2511306012],description:"Scale for Merapi (1996), Lydia Ayers. Slendro 0 2 4 5 7 9, Pelog 0 1 3 6 8 9"},h10_27:{frequencies:[261.6255653006,281.00523680435,300.3849083081,319.76457981184,348.83408706747,368.21375857121,397.28326582684,426.35277308246,455.42228033808,484.4917875937,523.2511306012],description:"10-tET harmonic approximation, fundamental=27"},h12_24:{frequencies:[261.6255653006,272.52663052146,294.32876096318,316.13089140489,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,468.74580449691,490.54793493862,523.2511306012],description:"12-tET harmonic approximation, fundamental=24"},h14_27:{frequencies:[261.6255653006,271.31540105247,290.69507255622,300.3849083081,319.76457981184,339.14425131559,348.83408706747,368.21375857121,387.59343007496,406.97310157871,426.35277308246,455.42228033808,474.80195184183,494.18162334558,523.2511306012],description:"14-tET harmonic approximation, fundamental=27"},h15_24:{frequencies:[261.6255653006,272.52663052146,283.42769574232,305.22982618403,316.13089140489,327.03195662575,348.83408706747,359.73515228832,381.53728273004,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"15-tET harmonic approximation, fundamental=24"},hahn9:{frequencies:[261.6255653006,286.15296204753,313.95067836072,327.03195662575,366.27579142084,392.4383479509,418.60090448096,457.84473927605,490.54793493862,523.2511306012],description:"Paul Hahn's just version of 9 out of 31 scale. TL 6-8-'98"},hahn_7:{frequencies:[261.6255653006,274.70684356563,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Paul Hahn's scale with 32 consonant 7-limit dyads. TL '99, see also smithgw_hahn12"},hahn_g:{frequencies:[261.6255653006,280.50183143454,294.66523452594,309.54379154736,331.87735433448,348.63486612079,373.78884718875,392.66259958718,420.99317852788,442.25042328711,464.58101193362,498.10049926644,523.2511306012],description:'fourth of sqrt(2)-1 octave "recursive" meantone, Paul Hahn'},hahnmaxr:{frequencies:[261.6255653006,275.93321340298,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Paul Hahn's hahn_7 marvel projected to the 5-limit"},halfefg357777:{frequencies:[261.6255653006,280.31310567921,299.00064605783,320.35783506196,341.71502406609,375.57576268738,400.61414686654,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Half genus [357777]"},hamilton:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,426.35277308246,442.75095666255,479.64686971777,523.2511306012],description:"Elsie Hamilton's gamut, from article The Modes of Ancient Greek Music (1953)"},hamilton_jc:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,359.73515228832,338.57426097725,411.12588832951,383.71749577421,442.75095666255,426.35277308246,479.64686971777,523.2511306012],description:"Chalmers' permutation of Hamilton's gamut. Diatonic notes on white"},hamilton_jc2:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,359.73515228832,383.71749577421,411.12588832951,426.35277308246,442.75095666255,460.46099492906,479.64686971777,523.2511306012],description:"EH gamut, diatonic notes on white and drops 17 for 25. JC Dorian Harmonia on C"},hammond:{frequencies:[261.6255653006,226.52945288223,240.12209418,254.35818848669,269.43528366778,285.40970760065,302.50455987882,320.49131749323,339.40613876835,359.73515228832,381.06332337261,403.65087217807,427.65717404906,453.05890576445],description:'Hammond organ pitch wheel ratios, 1/1=320 Hz. Do "del 0" to get 12-tone scale'},hammond12:{frequencies:[261.6255653006,277.32410877127,293.76579515365,311.17877832054,329.62811300357,349.37146352202,370.1449018936,391.99018843668,415.46876743159,440.10130305006,466.18833124791,493.91391932426,523.2511306012],description:"Hammond organ scale, 1/1=277.0731707 Hz, A=440, see hammond for the ratios"},handblue:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'"Handy Blues" of Pitch Palette, 7-limit'},handel:{frequencies:[261.6255653006,276.07055536165,292.89641271707,310.57937447136,328.79480940231,349.02322090701,368.4933346061,391.37619916626,414.10583283548,438.86859125239,465.61660972366,492.3908742288,523.2511306012],description:"Well temperament according to Georg Friedrich H\xEF\xBF\xBDndel's rules (c. 1780)"},hanson_19:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,302.80736724606,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"JI version of Hanson's 19 out of 53-tET scale"},"harm-doreninv1":{frequencies:[261.6255653006,321.08592105074,327.03195662575,332.97799220076,380.54627680087,499.46698830115,511.35905945117,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Dorian Harmonia"},"harm-dorinv1":{frequencies:[261.6255653006,309.19384990071,321.08592105074,332.97799220076,380.54627680087,475.68284600109,499.46698830115,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Dorian Harmonia"},"harm-lydchrinv1":{frequencies:[261.6255653006,322.00069575458,342.12573923925,362.25078272391,402.50086969323,483.00104363188,503.12608711654,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Lydian Harmonia"},"harm-lydeninv1":{frequencies:[261.6255653006,342.12573923925,352.18826098158,362.25078272391,402.50086969323,503.12608711654,513.18860885887,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Lydian Harmonia"},"harm-mixochrinv1":{frequencies:[261.6255653006,336.37572681506,355.06326719367,373.75080757229,411.12588832951,485.87604984397,504.56359022259,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Mixolydian Harmonia"},"harm-mixoeninv1":{frequencies:[261.6255653006,355.06326719367,364.40703738298,373.75080757229,411.12588832951,504.56359022259,513.90736041189,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Mixolydian Harmonia"},harm10:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,331.11985608357,343.38355445704,367.91095120397,392.4383479509,400.61414686654,408.78994578219,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"6/7/8/9/10 harmonics"},harm11s:{frequencies:[261.6255653006,65.40639132515,95.13656920022,104.65022612024,116.27802902249,130.8127826503,149.50032302891,174.41704353373,196.21917397545,209.30045224048,261.6255653006,327.03195662575,348.83408706747,392.4383479509,457.84473927605,523.2511306012,588.65752192635,654.0639132515,719.47030457665,1046.5022612024],description:"Harm. 1/4-11/4 and subh. 4/1-4/11. Joseph Pehrson 1999"},harm12s:{frequencies:[261.6255653006,294.32876096318,299.00064605783,327.03195662575,348.83408706747,359.73515228832,380.54627680087,392.4383479509,418.60090448096,457.84473927605,465.11211608996,523.2511306012],description:"Harmonics 1 to 12 and subharmonics mixed"},"harm15-30":{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,366.27579142084,383.71749577421,418.60090448096,436.04260883433,453.48431318771,488.36772189445,523.2511306012],description:"Harmonics 15 to 30"},harm15:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991],description:"Fifth octave of the harmonic overtone series"},"harm16-32":{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Harmonics 16-32 & Tom Stone's Guitar Scale"},harm16:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,2093.0045224048,1395.33634826987,1046.5022612024,837.20180896192,697.66817413493,598.00129211566,523.2511306012,465.11211608996,418.60090448096,380.54627680087,348.83408706747,322.00069575458,299.00064605783,279.06726965397,261.6255653006],description:"First 16 harmonics and subharmonics"},"harm1c-dorian":{frequencies:[261.6255653006,309.19384990071,321.08592105074,332.97799220076,380.54627680087,475.68284600109,499.46698830115,523.2511306012],description:"Harm1C-Dorian"},"harm1c-hypod":{frequencies:[261.6255653006,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"HarmC-Hypodorian"},"harm1c-hypol":{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,366.27579142084,392.4383479509,418.60090448096,444.76346101102,523.2511306012],description:"HarmC-Hypolydian"},"harm1c-lydian":{frequencies:[261.6255653006,271.68808704293,281.75060878526,362.25078272391,382.37582620857,402.50086969323,422.62591317789,442.75095666255,523.2511306012],description:"Harm1C-Lydian"},"harm1c-mix":{frequencies:[261.6255653006,299.00064605783,373.75080757229,392.4383479509,411.12588832951,485.87604984397,504.56359022259,523.2511306012],description:"Harm1C-Con Mixolydian"},"harm1c-mixolydian":{frequencies:[261.6255653006,280.31310567921,299.00064605783,373.75080757229,411.12588832951,429.81342870813,448.50096908674,523.2511306012],description:"Harm1C-Mixolydian"},harm24:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"Harmonics 12 to 24"},harm24_2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Harmonics 12 to 24, mode 9"},harm3:{frequencies:[261.6255653006,327.03195662575,392.4383479509,457.84473927605],description:"Third octave of the harmonic overtone series"},"harm30-60":{frequencies:[261.6255653006,270.34641747729,279.06726965397,287.78812183066,296.50897400735,305.22982618403,313.95067836072,322.67153053741,331.39238271409,340.11323489078,348.83408706747,357.55493924415,366.27579142084,374.99664359753,383.71749577421,392.4383479509,401.15920012759,409.88005230427,418.60090448096,427.32175665765,436.04260883433,444.76346101102,453.48431318771,462.20516536439,470.92601754108,479.64686971777,488.36772189445,497.08857407114,505.80942624783,514.53027842451,523.2511306012],description:"Harmonics 30-60"},harm30:{frequencies:[261.6255653006,279.06726965397,288.69027895239,299.00064605783,310.07474405997,322.00069575458,334.88072358477,348.83408706747,364.00078650518,398.6675280771,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024,1196.00258423131,1395.33634826987,1674.40361792384,2093.0045224048,2790.67269653973,4186.0090448096,8372.0180896192,8633.6436549198,8895.2692202204,9156.894785521,9418.5203508216,9680.1459161222,9941.7714814228,10203.3970467234,10465.022612024,10726.6481773246,10988.2737426252,11249.8993079258,11511.5248732264,11773.150438527,12034.7760038276,12296.4015691282,12558.0271344288,12819.6526997294,13081.27826503,13342.9038303306,13604.5293956312,13866.1549609318,14127.7805262324,14389.406091533,14651.0316568336,14912.6572221342,15174.2827874348,15435.9083527354,15697.533918036,15959.1594833366,16220.7850486372],description:"First 30 harmonics and subharmonics"},"harm32-64":{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,335.20775554139,343.38355445704,351.55935337268,359.73515228832,367.91095120397,376.08675011961,384.26254903526,392.4383479509,400.61414686654,408.78994578219,416.96574469783,425.14154361347,433.31734252912,441.49314144476,449.66894036041,457.84473927605,466.02053819169,474.19633710734,482.37213602298,490.54793493862,498.72373385427,506.89953276991,515.07533168556,523.2511306012],description:"Harmonics 32-64"},harm37odd:{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Odd harmonics until 37"},harm4:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,490.54793493862],description:"Fourth octave of the harmonic overtone series"},"harm6-12":{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,314.76825825228,327.03195662575,331.11985608357,343.38355445704,359.73515228832,367.91095120397,392.4383479509,400.61414686654,404.70204632437,408.78994578219,441.49314144476,449.66894036041,457.84473927605,490.54793493862,494.63583439645,515.07533168556,523.2511306012],description:"First 12 harmonics of 6th through 12th harmonics"},harm6:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,523.2511306012],description:"Harmonics 6-12"},"harm60-30":{frequencies:[261.6255653006,280.31310567921,290.69507255622,313.95067836072,327.03195662575,348.83408706747,373.75080757229,392.4383479509,413.09299784305,436.04260883433,448.50096908674,490.54793493862,523.2511306012],description:"Harmonics 60 to 30 (Perkis)"},harm7lim:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,3139.5067836072,3662.7579142084,3924.383479509,4186.0090448096,4709.2601754108,5232.511306012,5494.1368713126,5755.7624366132,6279.0135672144,6540.639132515,7325.5158284168,7848.766959018,8372.0180896192,9156.894785521,9418.5203508216,10465.022612024,10988.2737426252,11773.150438527,12558.0271344288,12819.6526997294,13081.27826503,14651.0316568336,15697.533918036,16482.4106139378,16744.0361792384,18313.789571042,18837.0407016432,19621.917397545,20930.045224048,21191.6707893486,21976.5474852504,23546.300877054,25116.0542688576,25639.3053994588,26162.55653006,27470.684356563,29302.0633136672,31395.067836072],description:"7-limit harmonics"},harm8:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Harmonics 8-16"},harm9:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,356.10146388137,392.4383479509,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"6/7/8/9 harmonics, First 9 overtones of 5th through 9th harmonics"},harm_bastard:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:`Schlesinger's "Bastard" Hypodorian Harmonia & inverse 1)7 from 1.3.5.7.9.11.13`},harm_bastinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,523.2511306012],description:`Inverse Schlesinger's "Bastard" Hypodorian Harmonia & 1)7 from 1.3.5.7.9.11.13`},harm_darreg:{frequencies:[261.6255653006,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,5232.511306012,6279.0135672144,7325.5158284168,8372.0180896192,9418.5203508216,10465.022612024,11511.5248732264,12558.0271344288,13604.5293956312,14651.0316568336,15697.533918036],description:"Darreg Harmonics 4-15"},harm_mean:{frequencies:[261.6255653006,270.06509966514,279.06726965397,299.00064605783,348.83408706747,392.4383479509,405.0976494977,418.60090448096,448.50096908674,523.2511306012],description:"Harm. Mean 9-tonic 8/7 is HM of 1/1 and 4/3, etc."},"harmc-hypop":{frequencies:[261.6255653006,319.76457981184,334.29933343966,348.83408706747,363.36884069528,377.90359432309,406.97310157871,465.11211608996,494.18162334558,523.2511306012],description:"HarmC-Hypophrygian"},"harmd-15":{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,383.71749577421,418.60090448096,453.48431318771,523.2511306012],description:"HarmD-15-Harmonia"},"harmd-conmix":{frequencies:[261.6255653006,299.00064605783,336.37572681506,392.4383479509,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"HarmD-ConMixolydian"},"harmd-hypod":{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"HarmD-Hypodorian"},"harmd-hypol":{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"HarmD-Hypolydian"},"harmd-hypop":{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,363.36884069528,377.90359432309,406.97310157871,436.04260883433,465.11211608996,523.2511306012],description:"HarmD-Hypophrygian"},"harmd-lyd":{frequencies:[261.6255653006,281.75060878526,301.87565226992,322.00069575458,362.25078272391,382.37582620857,402.50086969323,442.75095666255,483.00104363188,523.2511306012],description:"HarmD-Lydian"},"harmd-mix":{frequencies:[261.6255653006,299.00064605783,336.37572681506,373.75080757229,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"HarmD-Mixolydian. Harmonics 7-14"},"harmd-phr":{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,348.83408706747,327.03195662575,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"HarmD-Phryg (with 5 extra tones)"},"harme-hypod":{frequencies:[261.6255653006,343.38355445704,351.55935337268,359.73515228832,376.08675011961,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"HarmE-Hypodorian"},"harme-hypol":{frequencies:[261.6255653006,281.24748269815,274.70684356563,340.11323489078,366.27579142084,392.4383479509,405.51962621593,418.60090448096,523.2511306012],description:"HarmE-Hypolydian"},"harme-hypop":{frequencies:[261.6255653006,334.29933343966,341.56671025356,348.83408706747,363.36884069528,377.90359432309,406.97310157871,494.18162334558,508.71637697339,523.2511306012],description:"HarmE-Hypophrygian"},"harmjc-15":{frequencies:[261.6255653006,280.31310567921,301.87565226992,313.95067836072,327.03195662575,356.76213450082,373.75080757229,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Rationalized JC Sub-15 Harmonia on C. MD=15, No planetary assignment."},"harmjc-17-2":{frequencies:[261.6255653006,277.97716313189,296.50897400735,317.68818643644,342.12573923925,370.63621750918,386.75083566176,404.33041910093,423.58424858192,444.76346101102,468.17206422213,494.18162334558,523.2511306012],description:"Rationalized JC Sub-17 Harmonia on C. MD=17, No planetary assignment."},"harmjc-17":{frequencies:[261.6255653006,269.55361273395,277.97716313189,296.50897400735,317.68818643644,342.12573923925,355.81076880882,370.63621750918,386.75083566176,404.33041910093,423.58424858192,444.76346101102,523.2511306012],description:"Rationalized JC Sub-17 Harmonia on C. MD=17, No planetary assignment."},"harmjc-19-2":{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,368.21375857121,382.37582620857,397.67085925691,414.24047839262,432.2509339749,451.89870370104,523.2511306012],description:"Rationalized JC Sub-19 Harmonia on C. MD=19, No planetary assignment."},"harmjc-19":{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,382.37582620857,414.24047839262,432.2509339749,451.89870370104,473.41768959156,497.08857407114,523.2511306012],description:"Rationalized JC Sub-19 Harmonia on C. MD=19, No planetary assignment."},"harmjc-21":{frequencies:[261.6255653006,268.0066766494,274.70684356563,289.16509849014,305.22982618403,343.38355445704,366.27579142084,392.4383479509,406.97310157871,422.62591317789,439.53094970501,457.84473927605,523.2511306012],description:"Rationalized JC Sub-21 Harmonia on C. MD=21, No planetary assignment."},"harmjc-23-2":{frequencies:[261.6255653006,273.51763645063,286.54228580542,300.86940009569,316.70463167967,334.29933343966,353.96400011258,376.08675011961,401.15920012759,429.81342870813,462.87600014722,501.44900015948,523.2511306012],description:"Rationalized JC Sub-23 Harmonia on C. MD=23, No planetary assignment."},"harmjc-23":{frequencies:[261.6255653006,273.51763645063,300.86940009569,316.70463167967,334.29933343966,376.08675011961,401.15920012759,429.81342870813,445.73244458621,462.87600014722,481.3910401531,501.44900015948,523.2511306012],description:"Rationalized JC Sub-23 Harmonia on C. MD=23, No planetary assignment."},"harmjc-25":{frequencies:[261.6255653006,272.52663052146,297.30177875068,311.45900631024,327.03195662575,363.36884069528,384.74347838324,408.78994578219,436.04260883433,467.18850946536,484.4917875937,503.12608711654,523.2511306012],description:"Rationalized JC Sub-25 Harmonia on C. MD=25, No planetary assignment."},"harmjc-27":{frequencies:[261.6255653006,271.68808704293,294.32876096318,307.12566361375,321.08592105074,353.19451315581,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,504.56359022259,523.2511306012],description:"Rationalized JC Sub-27 Harmonia on C. MD=27, No planetary assignment."},"harmjc-hypod16":{frequencies:[261.6255653006,279.06726965397,299.00064605783,310.07474405997,322.00069575458,348.83408706747,364.00078650518,380.54627680087,398.6675280771,418.60090448096,440.63253103259,465.11211608996,523.2511306012],description:"Rationalized JC Hypodorian Harmonia on C. Saturn Scale on C, MD=16. (Steiner)"},"harmjc-hypol20":{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,455.00098313148,575.57624366132,523.2511306012],description:"Rationalized JC Hypolydian Harmonia on C. Mars scale on C., MD=20"},"harmjc-hypop18":{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,336.37572681506,362.25078272391,376.74081403286,392.4383479509,409.50088481833,428.11456140098,448.50096908674,470.92601754108,523.2511306012],description:"Rationalized JC Hypophrygian Harmonia on C. Jupiter scale on C, MD =18"},"harmjc-lydian13":{frequencies:[261.6255653006,272.09058791262,283.42769574232,295.75063903546,309.19384990071,340.11323489078,358.01393146398,377.90359432309,400.13321751856,425.14154361347,453.48431318771,485.87604984397,523.2511306012],description:"Rationalized JC Lydian Harmonia on C. Mercury scale on C, MD = 26 or 13"},"harmjc-mix14":{frequencies:[261.6255653006,271.31540105247,281.75060878526,293.02063313667,305.22982618403,332.97799220076,348.83408706747,366.27579142084,385.55346465352,406.97310157871,430.91269578922,457.84473927605,523.2511306012],description:"Rationalized JC Mixolydian Harmonia on C. Moon Scale on C, MD = 14"},"harmjc-phryg12":{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,465.11211608996,483.00104363188,523.2511306012],description:"Rationalized JC Phrygian Harmonia on C. Venus scale on C, MD = 24 or 12"},harmonical:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"See pp 17 and 466-468 Helmholtz. lower 4 oct. Instr. designed & tuned by Ellis"},harmonical_up:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,359.73515228832,457.84473927605,392.4383479509,408.78994578219,425.14154361347,474.19633710734,490.54793493862,523.2511306012],description:"Upper 2 octaves of Ellis's Harmonical"},harmsub16:{frequencies:[261.6255653006,280.31310567921,294.32876096318,301.87565226992,327.03195662575,356.76213450082,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"16 harmonics on 1/1 and 16 subharmonics on 15/8"},harrison_16:{frequencies:[261.6255653006,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,370.63621750918,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:'Lou Harrison 16-tone superparticular "Ptolemy Duple"'},harrison_5:{frequencies:[261.6255653006,279.06726965397,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_1:{frequencies:[261.6255653006,285.40970760065,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_3:{frequencies:[261.6255653006,271.31540105247,348.83408706747,392.4383479509,406.97310157871,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_4:{frequencies:[261.6255653006,279.06726965397,313.95067836072,392.4383479509,490.54793493862,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_8:{frequencies:[261.6255653006,279.06726965397,313.95067836072,327.03195662575,367.91095120397,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:'Lou Harrison 8-tone tuning for "Serenade for Guitar"'},harrison_cinna:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,343.38355445704,367.91095120397,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:`Lou Harrison, "Incidental Music for Corneille's Cinna" (1955-56) 1/1=C`},harrison_diat:{frequencies:[261.6255653006,274.70684356563,313.95067836072,348.83408706747,392.4383479509,412.06026534844,470.92601754108,523.2511306012],description:"From Lou Harrison, a soft diatonic"},harrison_joy:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Lou Harrison's Joyous 6"},harrison_mid:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Lou Harrison mid mode"},harrison_mid2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,448.50096908674,470.92601754108,523.2511306012],description:"Lou Harrison mid mode 2"},harrison_min:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"From Lou Harrison, a symmetrical pentatonic with minor thirds"},harrison_mix1:{frequencies:[261.6255653006,285.40970760065,313.95067836072,392.4383479509,425.14154361347,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix2:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,490.54793493862,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix3:{frequencies:[261.6255653006,313.95067836072,336.37572681506,392.4383479509,418.60090448096,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix4:{frequencies:[261.6255653006,280.31310567921,327.03195662575,392.4383479509,448.50096908674,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_songs:{frequencies:[261.6255653006,271.31540105247,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,406.97310157871,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:'Shared gamut of "Four Strict Songs" (1951-55), each pentatonic'},harrisonj:{frequencies:[261.6255653006,272.17712546173,292.13970819848,313.56642833783,326.21280531667,350.13858362887,364.25994396351,390.97625694066,406.744629928,436.57694340361,468.59728067062,487.49616921257,523.2511306012],description:"John Harrison's temperament (1775), almost 3/10-comma. Third = 1200/pi"},harrisonm_rev:{frequencies:[261.6255653006,257.53766584278,294.32876096318,289.72987407313,331.11985608357,343.38355445704,372.50983809402,392.4383479509,386.30649876417,441.49314144476,457.84473927605,496.67978412536,523.2511306012],description:'Michael Harrison, piano tuning for "Revelation" (2001), 1/1=F'},haverstick13:{frequencies:[261.6255653006,283.85429714132,301.75671459889,307.97166902637,320.78822215662,341.02002673508,362.52783176564,377.61479489998,401.43059675514,426.7484383229,444.50800708553,482.27514684959,502.34551296122,523.2511306012],description:"Neil Haverstick, scale in 34-tET, MMM 21-5-2006"},hawkes:{frequencies:[261.6255653006,274.56549986328,292.86986732103,310.24975557428,327.84547867349,349.70184487387,366.99801003998,391.46454285105,411.84824958905,438.2147004401,467.42901507992,490.54793493862,523.2511306012],description:"William Hawkes' modified 1/5-comma meantone (1807)"},hawkes2:{frequencies:[261.6255653006,275.15193010334,293.04845178801,312.10900487995,328.24542585003,349.59527202198,367.66978141816,391.58387939843,411.8292495232,438.61558204759,467.14415995873,491.2960898965,523.2511306012],description:"Meantone with fifth tempered 1/6 of 53-tET step by William Hawkes (1808)"},hawkes3:{frequencies:[261.6255653006,274.56549986328,292.86986732103,311.6193417424,327.84547867349,349.70184487387,366.99801003998,391.46454285105,411.84824958905,438.2147004401,467.42901237995,490.54793493862,523.2511306012],description:"William Hawkes' modified 1/5-comma meantone (1811)"},hbarnes:{frequencies:[261.6255653006,276.71351472429,293.33333347996,310.95136287868,328.88393162803,349.42547049952,369.15973155124,391.77416758435,414.83597850347,439.25532436715,466.16376151809,493.04743111995,523.2511306012],description:"Variation on Barnes with 1/6P -> 1/8P. OdC '99"},hebdome1:{frequencies:[261.6255653006,265.71346475842,267.23182741418,269.80136421624,273.30527803723,280.31310567921,283.42769574232,287.78812183066,289.07289023169,292.28481123426,294.32876096318,300.63580584096,303.67253115248,308.34441624714,311.77046531655,315.35224388912,318.85615771011,323.76163705949,327.03195662575,334.03978426773,336.37572681506,340.11323489078,341.63159754654,346.88746827803,350.74177348112,359.73515228832,364.40703738298,367.91095120397,370.01329949656,375.7947573012,382.62738925213,385.43052030892,389.71308164569,392.4383479509,400.84774112128,404.70204632437,409.95791705585,411.12588832951,417.54973033466,420.46965851882,425.14154361347,431.68218274599,437.28844485957,441.49314144476,445.38637902364,449.66894036041,455.50879672872,462.5166243707,467.65569797482,470.92601754108,478.28423656516,479.64686971777,485.87604984397,490.54793493862,501.0596764016,504.56359022259,510.16985233617,513.90736041189,523.2511306012],description:"Wilson 1.3.5.7.9.11.13.15 hebdomekontany, 1.3.5.7 tonic"},helmholtz:{frequencies:[261.6255653006,279.06726965397,327.03195662575,348.83408706747,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Helmholtz's Chromatic scale and Gipsy major from Slovakia"},helmholtz_24:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,327.03195662575,331.11985608357,344.91651675372,348.83408706747,367.91095120397,372.50983809402,388.03108134794,392.4383479509,408.78994578219,413.89982010446,436.04260883433,441.49314144476,459.88868900496,465.63729761752,490.54793493862,496.67978412536,517.37477513058,523.2511306012],description:"Simplified Helmholtz 24"},helmholtz_hd:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,523.2511306012],description:"Helmholtz Harmonic Decad"},helmholtz_pure:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,327.03195662575,330.74639366397,344.91651675372,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,408.78994578219,413.43299207996,436.04260883433,441.49314144476,459.88868900496,465.11211608996,490.54793493862,496.11959049595,516.79124009995,523.2511306012],description:"Helmholtz's two-keyboard harmonium tuning untempered"},helmholtz_temp:{frequencies:[261.6255653006,275.81645389904,279.10671937395,290.77707354032,294.24580701304,306.54917537161,310.20605716322,327.03195662575,330.9330448436,344.77062435684,348.88325535732,367.80710710303,372.19474608839,387.75741156435,392.38304142029,408.78994578219,413.66637442451,436.10414127513,441.30625330017,459.75895986689,465.24324076996,490.4788828408,496.3296094287,517.08305349316,523.2511306012],description:"Helmholtz's two-keyboard harmonium tuning"},hem_chrom:{frequencies:[261.6255653006,269.55361273395,285.40970760065,348.83408706747,392.4383479509,404.33041910093,428.11456140098,523.2511306012],description:"Hemiolic Chromatic genus has the strong or 1:2 division of the 12/11 pyknon"},hem_chrom11:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"11'al Hemiolic Chromatic genus with a CI of 11/9, Winnington-Ingram"},hem_chrom13:{frequencies:[261.6255653006,272.09058791262,283.42769574232,348.83408706747,392.4383479509,408.13588186894,425.14154361347,523.2511306012],description:"13'al Hemiolic Chromatic or neutral-third genus has a CI of 16/13"},hem_chrom2:{frequencies:[261.6255653006,269.29177952703,285.30470202322,349.22823143301,391.99543598175,403.48177901006,427.47405410759,523.2511306012],description:"1:2 Hemiolic Chromatic genus 3 + 6 + 21 parts"},hemiwuer24:{frequencies:[261.6255653006,274.60778382002,280.48822448524,286.49458884928,292.62957327549,307.15025309186,313.72755695954,320.44570714783,327.30771955335,350.90592546776,358.42021185082,366.09540888186,373.9349620795,392.49012653442,400.89489544613,409.47964376542,418.24822532303,439.00227453173,448.4030528436,458.00513880662,467.8128437444,491.02635713596,501.54117720983,512.28116095218,523.2511306012],description:"Hemiw\xEF\xBF\xBDrschmidt[24] in 229-tET tuning."},hen12:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Adjusted Hahn12"},hen22:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,366.27579142084,381.53728273004,392.4383479509,415.27867508032,418.60090448096,436.04260883433,448.50096908674,457.84473927605,484.4917875937,490.54793493862,508.71637697339,523.2511306012],description:"Adjusted Hahn22"},hept_diamond:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,316.53463456122,325.57848126297,327.03195662575,334.88072358477,336.37572681506,348.83408706747,392.4383479509,406.97310157871,408.78994578219,418.60090448096,420.46965851882,432.48307733364,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Inverted-Prime Heptatonic Diamond based on Archytas's Enharmonic"},hept_diamondi:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,281.36411960997,289.40309445597,294.32876096318,297.67175429757,327.03195662575,336.37572681506,348.83408706747,361.75386806997,367.91095120397,372.08969287196,378.42269266694,392.4383479509,406.97310157871,418.60090448096,459.88868900496,465.11211608996,473.02836583367,486.54346200035,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Prime-Inverted Heptatonic Diamond based on Archytas's Enharmonic"},hept_diamondp:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,339.14425131559,348.83408706747,358.80077526939,361.75386806997,367.91095120397,372.08969287196,378.42269266694,381.53728273004,392.4383479509,403.65087217807,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Heptatonic Diamond based on Archytas's Enharmonic, 27 tones"},herf:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Sims:Reflections on This and That, 1991. Used by Herf in Ekmelischer Gesang"},heun:{frequencies:[261.6255653006,275.15237829755,293.0485888979,312.10878854255,328.24573110938,349.59519124833,367.67029324081,391.58396987353,411.83001550364,438.61588607285,467.14394139401,491.29666030217,523.2511306012],description:"Well temperament for organ of Jan Heun (1805), subset of 55-tET"},hexagonal13:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Star hexagonal 13-tone scale"},hexagonal37:{frequencies:[261.6255653006,272.52663052146,279.06726965397,282.55561052465,283.88190679319,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,313.95067836072,322.99452506247,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,423.83341578697,436.04260883433,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,482.22824196207,484.4917875937,490.54793493862,502.32108537715,523.2511306012],description:"Star hexagonal 37-tone scale"},hexany1:{frequencies:[261.6255653006,305.22982618403,327.03195662575,381.53728273004,436.04260883433,457.84473927605,523.2511306012],description:"Two out of 1 3 5 7 hexany on 1.3"},hexany10:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"1.3.5.9 Hexany"},hexany11:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:"1.3.7.9 Hexany on 1.3"},hexany12:{frequencies:[261.6255653006,290.69507255622,305.22982618403,339.14425131559,406.97310157871,436.04260883433,523.2511306012],description:"3.5.7.9 Hexany on 3.9"},hexany13:{frequencies:[261.6255653006,285.40970760065,327.03195662575,356.76213450082,392.4383479509,475.68284600109,523.2511306012],description:"1.3.5.11 Hexany on 1.11"},hexany14:{frequencies:[261.6255653006,287.78812183066,340.11323489078,383.71749577421,453.48431318771,498.83274450648,523.2511306012],description:"5.11.13.15 Hexany (5.15), used in The Giving, by Stephen J. Taylor"},hexany15:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,418.60090448096,523.2511306012],description:"1.3.5.15 2)4 hexany (1.15 tonic) degenerate, symmetrical pentatonic"},hexany16:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,465.11211608996,523.2511306012],description:"1.3.9.27 Hexany, a degenerate pentatonic form"},hexany17:{frequencies:[261.6255653006,327.03195662575,334.88072358477,408.78994578219,418.60090448096,523.2511306012],description:"1.5.25.125 Hexany, a degenerate pentatonic form"},hexany18:{frequencies:[261.6255653006,299.00064605783,341.71502406609,400.61414686654,457.84473927605,523.2511306012],description:"1.7.49.343 Hexany, a degenerate pentatonic form"},hexany19:{frequencies:[261.6255653006,299.00064605783,327.03195662575,418.60090448096,457.84473927605,523.2511306012],description:"1.5.7.35 Hexany, a degenerate pentatonic form"},hexany2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,490.54793493862,523.2511306012],description:"Hexany Cluster 2"},hexany20:{frequencies:[261.6255653006,279.06726965397,305.22982618403,398.6675280771,436.04260883433,465.11211608996,523.2511306012],description:"3.5.7.105 Hexany"},hexany21:{frequencies:[261.6255653006,279.06726965397,310.07474405997,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"3.5.9.135 Hexany"},hexany21a:{frequencies:[261.6255653006,279.06726965397,310.07474405997,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"3.5.9.135 Hexany + 4/3. Is Didymos Diatonic tetrachord on 1/1 and inv. on 3/2"},hexany22:{frequencies:[261.6255653006,276.76092858245,359.73515228832,380.54627680087,494.63583439645,523.2511306012],description:"1.11.121.1331 Hexany, a degenerate pentatonic form"},hexany23:{frequencies:[261.6255653006,348.83408706747,359.73515228832,380.54627680087,392.4383479509,523.2511306012],description:"1.3.11.33 Hexany, degenerate pentatonic form"},hexany24:{frequencies:[261.6255653006,327.03195662575,359.73515228832,380.54627680087,418.60090448096,523.2511306012],description:"1.5.11.55 Hexany, a degenerate pentatonic form"},hexany25:{frequencies:[261.6255653006,299.00064605783,359.73515228832,380.54627680087,457.84473927605,523.2511306012],description:"1.7.11.77 Hexany, a degenerate pentatonic form"},hexany26:{frequencies:[261.6255653006,294.32876096318,359.73515228832,380.54627680087,465.11211608996,523.2511306012],description:"1.9.11.99 Hexany, a degenerate pentatonic form"},hexany3:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 3"},hexany4:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Hexany Cluster 4"},hexany49:{frequencies:[261.6255653006,299.00064605783,305.22982618403,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"1.3.21.49 2)4 hexany (1.21 tonic)"},hexany5:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 5"},hexany6:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Hexany Cluster 6"},hexany7:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Hexany Cluster 7"},hexany8:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,340.65828815182,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 8"},hexany9:{frequencies:[261.6255653006,299.00064605783,313.95067836072,358.80077526939,418.60090448096,448.50096908674,523.2511306012],description:"1.3.5.7 Hexany on 5.7"},hexany_cl:{frequencies:[261.6255653006,294.32876096318,301.39265122629,313.95067836072,327.03195662575,348.83408706747,353.19451315581,376.74081403286,392.4383479509,418.60090448096,470.92601754108,502.32108537715,523.2511306012],description:"Hexany Cluster 1"},hexany_cl2:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,490.54793493862,502.32108537715,523.2511306012],description:"Composed of 1.3.5.45, 1.3.5.75, 1.3.5.9, and 1.3.5.25 hexanies"},hexany_flank:{frequencies:[261.6255653006,267.07609791103,299.00064605783,305.22982618403,327.03195662575,348.83408706747,373.75080757229,381.53728273004,427.14378008261,436.04260883433,457.84473927605,498.33441009638,523.2511306012],description:"Hexany Flanker, 7-limit, from Wilson"},hexany_tetr:{frequencies:[261.6255653006,269.10058145205,279.06726965397,336.37572681506,348.83408706747,358.80077526939,523.2511306012],description:"Complex 12 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans:{frequencies:[261.6255653006,271.31540105247,279.06726965397,339.14425131559,348.83408706747,361.75386806997,523.2511306012],description:"Complex 1 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,358.80077526939,372.08969287196,523.2511306012],description:"Complex 2 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,523.2511306012],description:"Complex 9 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_u2:{frequencies:[261.6255653006,274.70684356563,279.06726965397,280.31310567921,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,418.60090448096,436.04260883433,448.50096908674,457.84473927605,478.40103369253,488.36772189445,490.54793493862,498.33441009638,523.2511306012],description:"Hexany union = genus [335577] minus two corners"},hexany_union:{frequencies:[261.6255653006,274.70684356563,280.31310567921,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,488.36772189445,498.33441009638,523.2511306012],description:"The union of all of the pitches of the 1.3.5.7 hexany on each tone as 1/1"},hexany_urot:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,290.69507255622,299.00064605783,305.22982618403,327.03195662575,333.84512238879,343.38355445704,348.83408706747,356.10146388137,373.75080757229,381.53728273004,392.4383479509,400.61414686654,406.97310157871,436.04260883433,445.12682985172,448.50096908674,457.84473927605,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Aggregate rotations of 1.3.5.7 hexany, 1.3 = 1/1"},hexanys:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,343.38355445704,367.91095120397,392.4383479509,429.2294430713,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Hexanys 1 3 5 7 9"},hexanys2:{frequencies:[261.6255653006,314.76825825228,425.14154361347,457.84473927605,269.80136421624,371.99885066179,392.4383479509,472.15238737843,318.85615771011,359.73515228832,343.38355445704,292.28481123426,523.2511306012],description:"Hexanys 1 3 7 11 13"},higgs:{frequencies:[261.6255653006,392.4383479509,418.60090448096,422.62591317789,423.58424858192,425.14154361347,436.04260883433,523.2511306012],description:"From Greg Higgs announcement of the formation of an Internet Tuning list"},hinsz_gr:{frequencies:[261.6255653006,274.68983337859,292.34127285051,310.07474405997,326.6631048533,348.83408706747,366.25311135453,391.11111150212,412.03474986192,437.02884834934,465.11211608996,489.99465727995,523.2511306012],description:"Reconstructed Hinsz temperament, organ Pelstergasthuiskerk Groningen. Ortgies,2002"},hipkins:{frequencies:[261.6255653006,275.62199471997,299.00064605783,348.83408706747,392.4383479509,413.43299207996,448.50096908674,523.2511306012],description:"Hipkins' Chromatic"},hirajoshi:{frequencies:[261.6255653006,291.13134764929,317.84796618517,388.16504068057,412.91271853531,523.2511306012],description:"Observed Japanese pentatonic koto scale. Helmholtz/Ellis p.519, nr.112"},hirajoshi2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"Japanese pentatonic koto scale, theoretical. Helmholz/Ellis p.519, nr.110"},hirajoshi3:{frequencies:[261.6255653006,292.47977325983,321.54118165335,396.32121331049,415.54465627623,522.94897617031],description:"Observed Japanese pentatonic koto scale. Helmholtz/Ellis p.519, nr.111"},hirashima:{frequencies:[261.6255653006,277.33928225406,292.50627485027,312.00669222389,327.03195662575,349.91912034749,369.78570985692,391.22147055517,416.00892317314,437.39889945791,468.01003810189,489.02683710225,523.2511306012],description:"Tatsushi Hirashima, temperament of chapel organ of Kobe Shoin Women's Univ."},hjelmboogie:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,367.91095120397,392.4383479509,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:`Paul Hjelmstad's "Boogie Woogie" scale, TL 20-3-2006`},ho_mai_nhi:{frequencies:[261.6255653006,287.78812183066,348.83408706747,392.4383479509,431.68218274599,523.2511306012],description:"Ho Mai Nhi (Nam Hue) dan tranh scale, Vietnam"},hochgartz:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.86458629683,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.49999887294,438.2147004401,465.53241962975,490.54793493862,523.2511306012],description:"Michael Hochgartz, modified 1/5-comma meantone temperament"},hofmann1:{frequencies:[261.6255653006,262.65154790962,279.06726965397,348.83408706747,392.4383479509,393.97732186443,418.60090448096,523.2511306012],description:"Hofmann's Enharmonic #1, Dorian mode"},hofmann2:{frequencies:[261.6255653006,263.56353245097,279.06726965397,348.83408706747,392.4383479509,395.34529867646,418.60090448096,523.2511306012],description:"Hofmann's Enharmonic #2, Dorian mode"},hofmann_chrom:{frequencies:[261.6255653006,264.26824777838,290.69507255622,348.83408706747,392.4383479509,396.40237166758,436.04260883433,523.2511306012],description:"Hofmann's Chromatic"},holder:{frequencies:[261.6255653006,274.23214485994,292.57879058083,312.45989404005,327.40114268825,349.76744711215,366.57630213591,391.03837375367,409.94826565972,437.46806069696,467.28984664562,489.70152554512,523.2511306012],description:"William Holder's equal beating meantone temperament (1694). 3/2 beats 2.8 Hz"},holder2:{frequencies:[261.6255653006,274.23214485994,292.57879058083,312.45989404005,327.40114268825,349.76744711215,366.57630213591,391.03837375367,410.64811919433,437.46806069696,467.46154552107,489.70152554512,523.2511306012],description:"Holder's irregular e.b. temperament with improved Eb and G#"},hummel:{frequencies:[261.6255653006,277.1703574486,293.54676487235,311.03465677994,329.45811370906,349.13199096171,369.8583804246,391.99149393462,415.308682162,439.8732919971,466.10512967869,493.74031485884,523.2511306012],description:"Johann Nepomuk Hummel's quasi-equal temperament (1829)"},hummel2:{frequencies:[261.6255653006,277.22760066578,293.66431501254,311.21660561883,329.70790803338,349.18845812715,369.99117208793,391.90679138833,415.30984563838,439.96491544382,466.29335337935,494.03030700757,523.2511306012],description:"Johann Nepomuk Hummel's temperament according to the second bearing plan"},husmann:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,314.30517589183,331.11985608357,348.83408706747],description:"Tetrachord division according to Husmann"},hwerck3:{frequencies:[261.6255653006,276.40121172404,293.00227310437,310.60041853231,328.69828757761,349.03110370139,368.74309237173,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Variation on Werckmeister III with 1/4P -> 1/6P and 0P -> 1/24P. OdC '99"},hyper_enh:{frequencies:[261.6255653006,264.93728131706,268.33391312882,348.83408706747,392.4383479509,397.40592197559,402.50086969323,523.2511306012],description:"13/10 HyperEnharmonic. This genus is at the limit of usable tunings"},hyper_enh2:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,392.4383479509,400.78810003496,409.50088481833,523.2511306012],description:"Hyperenharmonic genus from Kathleen Schlesinger's enharmonic Phrygian Harmonia"},hypo_chrom:{frequencies:[261.6255653006,275.39533189537,282.83844897362,290.69507255622,348.83408706747,373.75080757229,387.59343007496,402.50086969323,418.60090448096,427.14378008261,436.04260883433,455.00098313148,523.2511306012],description:"Hypolydian Chromatic Tonos"},hypo_diat:{frequencies:[261.6255653006,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,387.59343007496,402.50086969323,436.04260883433,455.00098313148,475.68284600109,498.33441009638,523.2511306012],description:"Hypolydian Diatonic Tonos"},hypo_enh:{frequencies:[261.6255653006,268.33391312882,271.81876914348,275.39533189537,348.83408706747,373.75080757229,387.59343007496,402.50086969323,410.39304360878,414.45634107026,418.60090448096,465.11211608996,523.2511306012],description:"Hypolydian Enharmonic Tonos"},hypod_chrom:{frequencies:[261.6255653006,279.06726965397,288.69027895239,299.00064605783,322.00069575458,348.83408706747,364.00078650518,380.54627680087,398.6675280771,408.39112632289,418.60090448096,465.11211608996,523.2511306012],description:"Hypodorian Chromatic Tonos"},hypod_chrom2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,380.54627680087,398.6675280771,418.60090448096,523.2511306012],description:"Schlesinger's Chromatic Hypodorian Harmonia"},hypod_chrom2inv:{frequencies:[261.6255653006,327.03195662575,343.38355445704,359.73515228832,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypodorian Harmonia"},hypod_chromenh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,380.54627680087,398.6675280771,418.60090448096,523.2511306012],description:"Schlesinger's Hypodorian Harmonia in a mixed chromatic-enharmonic genus"},hypod_chrominv:{frequencies:[261.6255653006,277.97716313189,294.32876096318,359.73515228832,392.4383479509,408.78994578219,425.14154361347,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypodorian Inverted"},hypod_diat:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012],description:"Hypodorian Diatonic Tonos"},hypod_diat2:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,364.00078650518,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"Schlesinger's Hypodorian Harmonia, a subharmonic series through 13 from 16"},hypod_diatcon:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,364.00078650518,418.60090448096,465.11211608996,523.2511306012],description:"A Hypodorian Diatonic with its own trite synemmenon replacing paramese"},hypod_diatinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Inverted Schlesinger's Hypodorian Harmonia, a harmonic series from 8 from 16"},hypod_enh:{frequencies:[261.6255653006,270.06509966514,274.49239638096,279.06726965397,310.07474405997,348.83408706747,364.00078650518,380.54627680087,389.39619021485,393.97732186443,398.6675280771,452.54151835779,523.2511306012],description:"Hypodorian Enharmonic Tonos"},hypod_enhinv:{frequencies:[261.6255653006,343.38355445704,351.55935337268,359.73515228832,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypodorian Harmonia"},hypod_enhinv2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,359.73515228832,392.4383479509,400.61414686654,408.78994578219,523.2511306012],description:"A harmonic form of Schlesinger's Hypodorian enharmonic inverted"},hypodorian_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,392.4383479509,418.60090448096,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,784.8766959018,897.00193817349,966.00208726375,1046.5022612024],description:"Diatonic Perfect Immutable System in the Hypodorian Tonos"},hypol_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the chromatic genus"},hypol_chrominv:{frequencies:[261.6255653006,313.95067836072,327.03195662575,340.11323489078,366.27579142084,392.4383479509,470.92601754108,497.08857407114,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypolydian Harmonia"},hypol_chrominv2:{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,366.27579142084,392.4383479509,418.60090448096,523.2511306012],description:"harmonic form of Schlesinger's Chromatic Hypolydian inverted"},hypol_chrominv3:{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,392.4383479509,418.60090448096,444.76346101102,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypolydian inverted"},hypol_diat:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,373.75080757229,402.50086969323,436.04260883433,475.68284600109,523.2511306012],description:"Schlesinger's Hypolydian Harmonia, a subharmonic series through 13 from 20"},hypol_diatcon:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,402.50086969323,436.04260883433,475.68284600109,523.2511306012],description:"A Hypolydian Diatonic with its own trite synemmenon replacing paramese"},hypol_diatinv:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Inverted Schlesinger's Hypolydian Harmonia, a harmonic series from 10 from 20"},hypol_enh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the enharmonic genus"},hypol_enhinv:{frequencies:[261.6255653006,327.03195662575,333.57259575826,340.11323489078,366.27579142084,392.4383479509,497.08857407114,510.16985233617,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypolydian Harmonia"},hypol_enhinv2:{frequencies:[261.6255653006,268.16620443312,274.70684356563,340.11323489078,366.27579142084,379.35706968587,392.4383479509,523.2511306012],description:"A harmonic form of Schlesinger's Hypolydian enharmonic inverted"},hypol_enhinv3:{frequencies:[261.6255653006,268.16620443312,274.70684356563,340.11323489078,392.4383479509,405.51962621593,418.60090448096,523.2511306012],description:"A harmonic form of Schlesinger's Hypolydian enharmonic inverted"},hypol_pent:{frequencies:[261.6255653006,272.52663052146,290.69507255622,348.83408706747,373.75080757229,402.50086969323,415.27867508032,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the pentachromatic genus"},hypol_tri:{frequencies:[261.6255653006,270.64713651786,280.31310567921,348.83408706747,373.75080757229,402.50086969323,413.09299784305,424.25767346043,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the first trichromatic genus"},hypol_tri2:{frequencies:[261.6255653006,270.64713651786,290.69507255622,348.83408706747,373.75080757229,402.50086969323,413.09299784305,436.04260883433,2093.0045224048],description:"Schlesinger's Hypolydian Harmonia in the second trichromatic genus"},hypolydian_pis:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,366.27579142084,406.97310157871,457.84473927605,488.36772189445,523.2511306012,563.50121757052,610.45965236807,665.95598440153,732.55158284168,813.94620315742,915.6894785521,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Hypolydian Tonos"},hypop_chrom:{frequencies:[261.6255653006,277.01530443593,285.40970760065,294.32876096318,336.37572681506,362.25078272391,376.74081403286,392.4383479509,409.50088481833,418.60090448096,428.11456140098,470.92601754108,523.2511306012],description:"Hypophrygian Chromatic Tonos"},hypop_chromenh:{frequencies:[261.6255653006,269.10058145205,277.01530443593,362.25078272391,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Schlesinger's Hypophrygian Harmonia in a mixed chromatic-enharmonic genus"},hypop_chrominv:{frequencies:[261.6255653006,319.76457981184,334.29933343966,348.83408706747,377.90359432309,465.11211608996,494.18162334558,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypophrygian Harmonia"},hypop_chrominv2:{frequencies:[261.6255653006,276.16031892841,290.69507255622,348.83408706747,377.90359432309,406.97310157871,436.04260883433,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypophrygian inverted"},hypop_diat:{frequencies:[261.6255653006,294.32876096318,303.82323712328,313.95067836072,336.37572681506,362.25078272391,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012],description:"Hypophrygian Diatonic Tonos"},hypop_diat2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,362.25078272391,376.74081403286,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Schlesinger's Hypophrygian Harmonia"},hypop_diat2inv:{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,363.36884069528,377.90359432309,436.04260883433,465.11211608996,523.2511306012],description:"Inverted Schlesinger's Hypophrygian Harmonia, a harmonic series from 9 from 18"},hypop_diatcon:{frequencies:[261.6255653006,294.32876096318,313.95067836072,362.25078272391,376.74081403286,428.11456140098,470.92601754108,523.2511306012],description:"A Hypophrygian Diatonic with its own trite synemmenon replacing paramese"},hypop_enh:{frequencies:[261.6255653006,269.10058145205,273.00058987889,277.01530443593,313.95067836072,362.25078272391,376.74081403286,392.4383479509,400.78810003496,405.0976494977,409.50088481833,470.92601754108,523.2511306012],description:"Hypophrygian Enharmonic Tonos"},hypop_enhinv:{frequencies:[261.6255653006,334.29933343966,341.56671025356,348.83408706747,377.90359432309,494.18162334558,508.71637697339,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypophrygian Harmonia"},hypop_enhinv2:{frequencies:[261.6255653006,268.89294211451,276.16031892841,348.83408706747,377.90359432309,392.4383479509,406.97310157871,523.2511306012],description:"A harmonic form of Schlesinger's Hypophrygian enharmonic inverted"},hypophryg_pis:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,377.90359432309,425.14154361347,453.48431318771,523.2511306012,544.18117582525,566.85539148463,618.38769980142,680.22646978156,755.80718864618,850.28308722695,971.75209968794,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Hypophrygian Tonos"},kanzelmeyer_11:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,474.19633710734,506.89953276991,523.2511306012],description:"Bruce Kanzelmeyer, 11 harmonics from 16 to 32. Base 388.3614815 Hz"},kanzelmeyer_18:{frequencies:[261.6255653006,277.97716313189,302.50455987882,310.68035879446,327.03195662575,335.20775554139,351.55935337268,359.73515228832,376.08675011961,384.26254903526,392.4383479509,425.14154361347,433.31734252912,457.84473927605,474.19633710734,482.37213602298,498.72373385427,506.89953276991,523.2511306012],description:"Bruce Kanzelmeyer, 18 harmonics from 32 to 64. Base 388.3614815 Hz"},kayolonian:{frequencies:[261.6255653006,267.90457886781,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:"19-tone 5-limit scale of the Kayenian Imperium on Kayolonia (reeks van Sjauriek)"},kayolonian_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"See Barnard: De Keiaanse Muziek, p. 11. (uitgebreide reeks)"},kayolonian_40:{frequencies:[261.6255653006,267.90457886781,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,319.36714514233,327.03195662575,331.11985608357,334.88072358477,340.65828815182,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,401.85686830172,408.78994578219,413.43299207996,418.60090448096,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,490.54793493862,496.11959049595,502.32108537715,510.98743222773,523.2511306012],description:"See Barnard: De Keiaanse Muziek"},kayolonian_f:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"Kayolonian scale F and periodicity block (128/125, 16875/16384)"},kayolonian_p:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,418.60090448096,459.88868900496,490.54793493862,523.2511306012],description:"Kayolonian scale P"},kayolonian_s:{frequencies:[261.6255653006,287.4304306281,306.59245933664,327.03195662575,359.28803828513,392.4383479509,418.60090448096,459.88868900496,490.54793493862,523.2511306012],description:"Kayolonian scale S"},kayolonian_t:{frequencies:[261.6255653006,279.06726965397,297.67175429757,317.51653791741,348.83408706747,381.01984550089,418.60090448096,446.50763144636,476.27480687611,523.2511306012],description:"Kayolonian scale T"},kayolonian_z:{frequencies:[261.6255653006,279.06726965397,297.67175429757,327.03195662575,348.83408706747,392.4383479509,418.60090448096,446.50763144636,476.27480687611,523.2511306012],description:"Kayolonian scale Z"},kayoloniana:{frequencies:[261.6255653006,267.90457886781,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:"Amendment by Rasch of Kayolonian scale's note 9"},"kebyar-b":{frequencies:[261.6255653006,280.40333801024,299.48910562989,384.37207420335,402.78320381033,523.2511306012],description:"Gamelan Kebyar tuning begbeg, Andrew Toth, 1993"},"kebyar-s":{frequencies:[261.6255653006,283.00682726281,309.51375468789,385.26118901859,416.26536455926,523.2511306012],description:"Gamelan kebyar tuning sedung, Andrew Toth, 1993"},"kebyar-t":{frequencies:[261.6255653006,293.15632631094,325.27731021818,397.46748834812,422.07621250312,523.2511306012],description:"Gamelan kebyar tuning tirus, Andrew Toth, 1993"},keenan:{frequencies:[261.6255653006,279.77706779472,292.57243455474,305.95298478736,327.17991022208,349.87955533643,365.88099775759,391.26571058456,418.41160951721,437.54730686196,457.55816161244,489.30340830564,523.2511306012],description:"Dave Keenan 31-ET mode has 3 4:5:6:7 tetrads + 3 inv. is Fokker's 12-tone mode"},keenan2:{frequencies:[261.6255653006,278.14493936283,295.70736791055,306.84360659709,326.21810583671,346.81593583087,369.99442271164,393.35634555235,418.19337019276,433.94238997708,461.34206956593,490.47180009913,523.2511306012],description:"Dave Keenan strange 9-limit temperament TL 19-11-98"},keenan3:{frequencies:[261.6255653006,272.10155294862,282.99701916355,314.19580976213,326.77681046955,339.86157848985,377.32935907335,392.4383479509,408.1523292189,453.14877154631,471.29371440761,523.2511306012],description:"Chain of 1/6 kleisma tempered 6/5s, 10 tetrads, Dave Keenan, 30-Jun-99, TD235"},keenan3eb:{frequencies:[261.6255653006,272.52625793573,283.88113057344,314.31833892864,327.41448875753,341.05629284549,377.62371824792,393.35750206077,409.74683779238,453.67913385439,472.5817850056,523.2511306012],description:"Chain of 11 equal beating minor thirds, 6/5=3/2 same"},keenan3eb2:{frequencies:[261.6255653006,271.88912362492,282.55531921581,314.13446783,326.45794787121,339.26487744082,377.18204004818,391.97887331053,407.35618327602,452.88341485066,470.6500094,523.2511306012],description:"Chain of 11 equal beating minor thirds, 6/5=3/2 opposite"},keenan3j:{frequencies:[261.6255653006,291.88463270656,302.72962012827,313.97755176024,350.29154279212,363.30663963964,405.32593044476,420.38583225541,436.00528786292,486.43275040712,504.50618240233,523.2511306012],description:"Chain of 11 nearly just 19-tET minor thirds, Dave Keenan, 1-Jul-99"},keenan7:{frequencies:[261.6255653006,269.29177952703,279.86396690685,288.06460709314,296.5055443788,305.19382000629,314.13668154225,326.46944327063,336.03572815422,349.22823143301,359.46139971304,369.99442271164,380.8360868427,391.99543598175,407.38487419079,419.32216217931,435.78442404634,448.5538823653,461.69751437372,475.22628419761,489.15147723638,508.3551866238,523.2511306012],description:"Dave Keenan, 22 out of 72-tET periodicity block. TL 29-04-2001"},keenanmt:{frequencies:[261.6255653006,279.93529690293,292.50627485027,305.64177427204,327.03195662575,349.91912034749,365.63284274659,391.22147055517,418.60090448096,437.39890198442,457.04105241293,489.02683710225,523.2511306012],description:"Dave Keenan 1/4-comma tempered version of keenan with 6 7-limit tetrads"},keenanst:{frequencies:[261.6255653006,268.50609092997,277.46533822773,286.72352888229,294.26410920268,304.08282473376,314.22916151277,322.49311613356,333.25374941849,342.01803421352,353.43015577174,365.22306367425,374.82811589307,387.33500976677,397.52158713557,410.7856943143,424.4923875554,435.65616946139,450.19271626925,462.0323945472,477.44903730562,493.38008744487,506.35555615636,523.2511306012],description:"Dave Keenan, 7-limit temperament, g=260.353"},kelletat:{frequencies:[261.6255653006,275.58617649731,292.98704147282,310.05056613125,327.14272545641,348.82502010853,367.43868454848,391.99543598175,413.39000965417,437.97145880542,465.08793784701,489.90551202062,523.2511306012],description:"Herbert Kelletat's Bach-tuning (1967)"},kellner:{frequencies:[261.6255653006,275.62199471997,292.73769384471,310.07474405997,327.54963108844,348.83408706747,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,491.32444638706,523.2511306012],description:"Herbert Anton Kellner's Bach tuning. 5 1/5 Pyth. comma and 7 pure fifths"},kellners:{frequencies:[261.6255653006,275.84425785506,292.86986732103,310.2247482054,327.84547867349,348.89032888179,367.85164222246,391.46454285105,413.69968681881,438.2147004401,465.26210635182,491.68894399626,523.2511306012],description:"Kellner's temperament with 1/5 synt. comma instead of 1/5 Pyth. comma"},kepler1:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Kepler's Monochord no.1, Harmonices Mundi (1619)"},kepler2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Kepler's Monochord no.2"},kepler3:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,496.67978412536,523.2511306012],description:"Kepler's choice system, Harmonices Mundi, Liber III (1619)"},kilroy:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Kilroy"},kimball:{frequencies:[261.6255653006,272.52663052146,275.93321340298,290.69507255622,294.32876096318,306.59245933664,327.03195662575,331.11985608357,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Buzz Kimball 18-note just scale"},kimball_53:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,281.75060878526,283.42769574232,285.40970760065,287.78812183066,296.50897400735,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,461.69217405988,475.68284600109,479.64686971777,483.00104363188,485.87604984397,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Buzz Kimball 53-note just scale"},kirkwood:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Scale based on Kirkwood gaps of the asteroid belt"},"kirn-stan":{frequencies:[261.6255653006,276.16031892841,292.60754013883,310.68035879446,327.03195662575,348.83408706747,368.21375857121,392.4383479509,414.24047839262,437.1900893839,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger temperament improved by Charles Earl Stanhope (1806)"},kirnberger:{frequencies:[261.6255653006,275.62199471997,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.22147055517,413.43299207996,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger's well-temperament, also called Kirnberger III, letter to Forkel 1779"},kirnberger1:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,438.75944753732,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger's temperament 1 (1766)"},kirnberger2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,438.75941205608,465.11211608996,490.54793493862,523.2511306012],description:'Kirnberger 2: 1/2 synt. comma. "Die Kunst des reinen Satzes" (1774)'},kirnberger3:{frequencies:[261.6255653006,275.93321340298,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.22147055517,413.89982010446,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger 3: 1/4 synt. comma (1744)"},kirnberger3v:{frequencies:[261.6255653006,275.93321340298,292.50063201309,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.21579858034,413.43299207996,437.39258595147,465.11211608996,490.54793493862,523.2511306012],description:"Variant well-temperament like Kirnberger 3, Kenneth Scholz, MTO 4.4, 1998"},klais:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,327.21690075602,348.83408706747,367.49599295996,391.99543598175,413.43299207996,438.01699797506,465.11211608996,489.99465727995,523.2511306012],description:"Johannes Klais, Bach temperament"},klonaris:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Johnny Klonaris, 19-limit harmonic scale"},knot:{frequencies:[261.6255653006,268.26840191956,280.31310567921,286.15296204753,294.32876096318,299.00064605783,306.59245933664,327.03195662575,348.83408706747,357.69120255941,366.27579142084,367.91095120397,381.53728273004,392.4383479509,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,459.88868900496,476.92160341255,478.40103369253,490.54793493862,523.2511306012],description:"Smallest knot in 3-D, American Scientist, Nov-Dec '97 p506-510, trefoil knot"},koepf_36:{frequencies:[261.6255653006,272.26348829648,274.95017225036,277.18263097687,288.45311779165,291.29956028699,293.66476791741,305.60543275312,308.62113352716,311.12698372208,323.77767743764,326.97270111135,329.62755691287,343.03050002254,346.41550969045,349.22823143301,363.4281550135,367.0144478307,369.99442271164,385.03871768789,388.83826257328,391.99543598175,407.93431128975,411.95978887118,415.30469757995,432.19134773437,436.45619266906,440,457.89078262597,462.40922843744,466.16376151809,485.11838543951,489.90551202062,493.88330125613,513.96502576833,519.03680970905,523.2511306012],description:"Siegfried Koepf, 36-tone subset of 48-tone scale (1991)"},koepf_48:{frequencies:[261.6255653006,269.44737349144,272.26348829648,274.95017225036,277.18263097687,285.46954808622,288.45311779165,291.29956028699,293.66476791741,302.44445076078,305.60543275312,308.62113352716,311.12698372208,320.42873367481,323.77767743764,326.97270111135,329.62755691287,339.48241770075,343.03050002254,346.41550969045,349.22823143301,359.66909273781,363.4281550135,367.0144478307,369.99442271164,381.0561299374,385.03871768789,388.83826257328,391.99543598175,403.71490654806,407.93431128975,411.95978887118,415.30469757995,427.72104413038,432.19134773437,436.45619266906,440,453.15466093696,457.89078262597,462.40922843744,466.16376151809,480.10063929961,485.11838543951,489.90551202062,493.88330125613,508.64890891624,513.96502576833,519.03680970905,523.2511306012],description:"Siegfried Koepf, 48-tone scale (1991)"},kolinsky:{frequencies:[261.6255653006,277.2273508585,293.75953199293,311.27759533081,329.84032939425,349.51003591412,370.35272620855,392.4383479509,415.84102607989,440.63929776914,466.91639276282,494.76049384407,524.26505360912],description:"Kolinsky's 7th root of 3/2, also invented by Augusto Novaro"},kora1:{frequencies:[261.6255653006,293.66476791741,326.78388880949,349.22823143301,391.99543598175,440,489.62261321254,523.2511306012],description:"Kora tuning Tomora Ba, also called Silaba, 1/1=F, R. King"},kora2:{frequencies:[261.6255653006,298.79793764201,315.65242990842,349.22823143301,391.99543598175,447.69106452518,472.94426956511,523.2511306012],description:"Kora tuning Tomora Mesengo, also called Tomora, 1/1=F, R. King"},kora3:{frequencies:[261.6255653006,291.13134764929,330.58093469714,349.22823143301,391.99543598175,436.20415848357,495.31175393723,523.2511306012],description:"Kora tuning Hardino, 1/1=F, R.King"},kora4:{frequencies:[261.6255653006,291.13134764929,330.58093469714,371.06455309218,391.99543598175,436.20415848357,495.31175393723,523.2511306012],description:"Kora tuning Sauta, 1/1=F, R. King"},korea_5:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,470.92601754108,523.2511306012],description:'According to Lou Harrison, called "the Delightful" in Korea'},kornerup:{frequencies:[261.6255653006,272.97226153513,280.22976278938,292.38332274669,305.0639823888,313.17470478367,326.75708630452,340.92853547661,349.99278713323,365.17196824772,374.88056242272,391.13935185123,408.10305876469,418.95303445734,437.12302030357,456.08130156398,468.2068441924,488.51296691354,509.70006023951,523.2511306012],description:"Kornerup's temperament with fifth of (15 - sqrt 5) / 22 octaves"},kornerup_11:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Kornerup's doric minor"},kraeh_22:{frequencies:[261.6255653006,267.07609791103,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,320.49131749323,336.37572681506,343.38355445704,353.19451315581,366.27579142084,381.53728273004,392.4383479509,400.61414686654,412.06026534844,436.04260883433,441.49314144476,457.84473927605,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"Kraehenbuehl & Schmidt 7-limit 22-tone tuning"},kraeh_22a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,311.45900631024,313.95067836072,318.93402246168,320.49131749323,327.03195662575,336.37572681506,343.38355445704,348.83408706747,350.39138209902,353.19451315581,358.80077526939,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,400.61414686654,403.65087217807,408.78994578219,412.06026534844,418.60090448096,420.46965851882,436.04260883433,441.49314144476,448.50096908674,457.84473927605,467.18850946536,470.92601754108,476.92160341255,478.40103369253,488.36772189445,490.54793493862,498.33441009638,504.56359022259,523.2511306012],description:'Kraehenbuehl & Schmidt 7-limit 22-tone tuning with "inflections" for some tones'},kraeh_22b:{frequencies:[261.6255653006,269.10058145205,279.06726965397,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.91095120397,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,448.50096908674,457.84473927605,476.92160341255,490.54793493862,504.56359022259,523.2511306012],description:"Best 22-tET approximation of KRAEH_22A"},kring1:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,523.2511306012],description:"Double-tie circular mirroring of 4:5:6 and Partch's 5-limit tonality Diamond"},kring1p3:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,282.55561052465,290.69507255622,294.32876096318,301.39265122629,306.59245933664,310.07474405997,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,436.04260883433,441.49314144476,446.50763144636,454.2110508691,465.11211608996,470.92601754108,484.4917875937,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Third carthesian power of double-tie mirroring of 4:5:6 with kleismas removed"},kring2:{frequencies:[261.6255653006,299.00064605783,305.22982618403,348.83408706747,392.4383479509,448.50096908674,457.84473927605,523.2511306012],description:"Double-tie circular mirroring of 6:7:8"},kring2p3:{frequencies:[261.6255653006,265.7783520514,271.31540105247,288.32205155576,294.32876096318,299.00064605783,305.22982618403,310.07474405997,329.51091606373,336.37572681506,343.38355445704,348.83408706747,356.10146388137,384.42940207435,392.4383479509,398.6675280771,406.97310157871,415.4517078616,441.49314144476,448.50096908674,457.84473927605,465.11211608996,474.80195184183,504.56359022259,515.07533168556,523.2511306012],description:"Third power of 6:7:8 mirroring with 1029/1024 intervals removed"},kring3:{frequencies:[261.6255653006,305.22982618403,313.95067836072,366.27579142084,373.75080757229,436.04260883433,448.50096908674,523.2511306012],description:"Double-tie circular mirroring of 3:5:7"},kring3bp:{frequencies:[261.6255653006,336.37572681506,366.27579142084,436.04260883433,470.92601754108,560.62621135843,610.45965236807,784.8766959018],description:"Double-tie BP circular mirroring of 3:5:7"},kring4:{frequencies:[261.6255653006,299.00064605783,327.03195662575,366.27579142084,373.75080757229,418.60090448096,457.84473927605,523.2511306012],description:"Double-tie circular mirroring of 4:5:7"},kring4p3:{frequencies:[261.6255653006,267.90457886781,273.37201925287,280.42990280658,286.15296204753,293.02063313667,299.00064605783,305.10270005901,320.49131749323,327.03195662575,334.88072358477,341.71502406609,350.53737850823,357.69120255941,366.27579142084,373.75080757229,382.72082695402,390.53145607553,400.61414686654,408.78994578219,418.60090448096,427.14378008261,448.68784449053,457.84473927605,467.18850946536,478.40103369253,488.16432009441,500.76768358318,510.98743222773,523.2511306012],description:"Third power of 4:5:7 mirroring with 3136/3125 intervals removed"},kring5:{frequencies:[261.6255653006,290.69507255622,336.37572681506,366.27579142084,373.75080757229,406.97310157871,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 5:7:9"},kring5p3:{frequencies:[261.6255653006,266.96486255163,272.4643387202,278.02483542877,284.8811711051,290.69507255622,296.68339105088,302.73815413355,308.91648380975,316.53463456122,322.99452506247,329.64821227876,336.37572681506,343.24053756638,351.70514951247,358.88280562497,366.27579142084,373.75080757229,381.45007420827,389.23476960028,398.83363954714,406.97310157871,415.27867508032,423.83341578697,432.48307733364,443.14848838571,452.19233508746,461.42075008924,470.92601754108,480.53675259294,492.38720931745,502.43592787495,512.78610798918,523.2511306012],description:"Third power of 5:7:9 mirroring with 250047/250000 intervals removed"},kring6:{frequencies:[261.6255653006,305.22982618403,336.37572681506,348.83408706747,392.4383479509,406.97310157871,448.50096908674,523.2511306012],description:"Double-tie circular mirroring of 6:7:9"},kring6p3:{frequencies:[261.6255653006,267.07609791103,271.31540105247,276.96780524107,288.32205155576,294.32876096318,299.00064605783,305.22982618403,310.07474405997,316.53463456122,324.36230800023,329.51091606373,336.37572681506,343.38355445704,348.83408706747,356.10146388137,361.75386806997,369.29040698809,378.42269266694,384.42940207435,392.4383479509,398.6675280771,406.97310157871,415.4517078616,422.04617941496,432.48307733364,441.49314144476,448.50096908674,457.84473927605,465.11211608996,474.80195184183,494.26637409559,504.56359022259,512.57253609913,523.2511306012],description:"Third power of 6:7:9 mirroring with 118098/117649 intervals removed"},krousseau:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,343.38355445704,348.83408706747,366.27579142084,392.4383479509,406.97310157871,457.84473927605,465.11211608996,488.36772189445,523.2511306012],description:"Kami Rousseau's tri-blues scale"},krousseau2:{frequencies:[261.6255653006,271.34627406517,291.88463270656,302.72962012827,337.74269681563,350.29154279212,363.30663963964,390.80553229045,405.32593044476,452.20508247496,469.00678383895,486.43275040712,523.2511306012],description:"19-tET version of Kami Rousseau's tri-blues scale"},kukuya:{frequencies:[261.6255653006,307.37578701508,361.96165147221,412.67427966689,460.80941404108],description:"African Kukuya Horns (aerophone, ivory, one note only)"},kurzw_arab:{frequencies:[261.6255653006,282.02769802256,290.29174037004,302.26980244078,321.16993719469,349.63190883464,374.94271441196,393.35634555235,411.95978887118,429.20598402782,447.69106452518,496.7443381147,523.2511306012],description:'Kurzweil "Empirical Arabic"'},kurzw_harmp:{frequencies:[261.6255653006,285.46954808622,287.62123438446,306.48933163909,308.79945157961,324.90175210669,345.81573716922,348.42227432308,427.72104413038,430.94493093825,458.94995811222,462.40922843744,523.2511306012],description:'Kurzweil "Empirical Bali/Java Harmonic Pelog"'},kurzw_melp:{frequencies:[261.6255653006,281.53940445957,283.98935579354,303.66981774726,307.02089761314,323.96475278212,344.02264297658,347.0163224393,421.10213511252,424.76655906637,451.06547253417,454.99063696457,523.2511306012],description:'Kurzweil "Empirical Bali/Java Melodic Pelog"'},kurzw_slen:{frequencies:[261.6255653006,266.96862289802,288.95340229325,306.66641795878,318.95145438803,352.26720984209,352.26720984209,389.06292924114,404.41509766528,429.20598402782,464.81937009253,474.03826620294,523.2511306012],description:'Kurzweil "Empirical Bali/Java Slendro, Siam 7"'},kurzw_tibet:{frequencies:[261.6255653006,270.53905136894,299.14332201883,312.9293240034,325.46525203475,353.69443592699,373.86139962101,397.69714089209,408.87792937274,438.98455767189,471.30800669535,489.90551202062,523.2511306012],description:'Kurzweil "Empirical Tibetian Ceremonial"'},kwazy:{frequencies:[13.75,13.8425266748,13.92142234948,14.00076777204,14.0805654254,14.16081788707,14.25610896047,14.337361936,14.41907801447,14.50125983535,14.58391005315,14.66703125278,14.76572882594,14.84988638999,14.93452361174,15.01964313826,15.10524789197,15.20689431811,15.29356631363,15.38073220905,15.46839499707,15.55655742089,15.66124080485,15.75050226619,15.84027256598,15.93055451337,16.0213510245,16.11266503216,16.22109048883,16.31354291552,16.40652227664,16.50003157548,16.59407373656,16.70573878851,16.80095347779,16.89671084507,16.99301388521,17.08986590459,17.18726993397,17.30292672931,17.40154500258,17.50072545316,17.60047118468,17.70078541898,17.81989766631,17.92146252619,18.023606257,18.12633215803,18.22964354736,18.35231459047,18.45691397115,18.56210951808,18.66790462912,18.77430261304,18.88130712282,19.00836345475,19.11670199894,19.22565790976,19.335234928,19.44543648263,19.57628896102,19.68786429416,19.80007566685,19.91292659048,20.02642071019,20.16118263857,20.27609169854,20.39165568498,20.50787833065,20.62476338959,20.74231451743,20.88189396397,21.00091073243,21.12060583931,21.24098302814,21.36204643183,21.50579618625,21.62836889778,21.75164008927,21.875613993,22.00029448845,22.14833914981,22.27457391904,22.40152829449,22.52920624893,22.65761190639,22.78674941445,22.94008616579,23.07083364148,23.202326315,23.33456843363,23.46756413327,23.62548236417,23.76013626908,23.89555763659,24.03175070206,24.16872014141,24.30647024079,24.47003364934,24.60950094889,24.74976328722,24.89082505353,25.03269080417,25.2011409598,25.3447753621,25.48922841152,25.63450477396,25.78060914191,25.95409219477,26.10201805756,26.25078702673,26.40040390759,26.55087337946,26.70220060843,26.88188539622,27.03509923475,27.18918616153,27.34415146685,27.5],description:"Kwazy temperament, g=162.741892, p=600, 5-limit"},lambdoma5_12:{frequencies:[261.6255653006,21.80213044172,23.78414230005,26.16255653006,29.06950725562,32.70319566257,37.37508075723,43.60426088343,47.56828460011,52.32511306012,58.13901451124,65.40639132515,71.35242690016,74.75016151446,78.48766959018,87.20852176687,95.13656920022,98.10958698772,104.65022612024,109.01065220858,112.12524227169,116.27802902249,118.92071150027,130.8127826503,145.34753627811,149.50032302891,156.97533918036,163.51597831288,174.41704353373,186.87540378614,196.21917397545,209.30045224048,218.02130441717,261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012,654.0639132515,784.8766959018,1046.5022612024,1308.127826503],description:"5x12 Lambdoma"},lambdoma_prim:{frequencies:[261.6255653006,8.43953436454,9.02157121726,11.37502457829,13.76976659477,15.38973913533,16.87906872907,18.04314243452,20.12504348466,22.75004915657,23.78414230005,25.31860309361,27.06471365179,27.53953318954,30.77947827066,34.12507373486,37.37508075723,40.25008696932,41.30929978431,42.19767182268,45.10785608631,46.16921740599,47.56828460011,52.32511306012,56.87512289143,59.07674055175,60.37513045398,63.15099852083,68.84883297384,71.35242690016,74.75016151446,76.94869567665,79.62517204801,87.20852176687,96.38836616338,100.62521742331,104.65022612024,107.72817394731,112.12524227169,118.92071150027,130.8127826503,140.87530439263,156.97533918036,166.48899610038,174.41704353373,186.87540378614,261.6255653006,366.27579142084,392.4383479509,436.04260883433,523.2511306012,610.45965236807,654.0639132515,784.8766959018,915.6894785521,1308.127826503,1831.3789571042],description:"Prime Lambdoma"},lambert:{frequencies:[261.6255653006,276.15600972046,293.19138048956,310.67551062492,328.56569462012,349.50994910362,368.20801314466,391.67947347082,414.23401437362,438.93663604468,466.01326570444,491.89550004992,523.2511306012],description:"Lambert's temperament (1774) 1/7 Pyth. comma, 5 pure"},lara:{frequencies:[261.6255653006,286.4606265643,298.28060863281,313.11013128311,341.05478972476,377.11473546037,395.40657391157,420.13030572059,450.02449304881,492.74350578058,523.2511306012,577.23956595248,599.67057787333],description:"Sundanese 'multi-laras' gamelan Ki Barong tuning, Weintraub, TL 15-2-99 1/1=497"},lebanon:{frequencies:[261.6255653006,285.30470202322,311.12698372208,349.22823143301,391.99543598175,415.30469757995,466.16376151809,523.2511306012],description:"Lebanese scale? Dastgah Shur"},leedy:{frequencies:[261.6255653006,269.80136421624,290.69507255622,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,436.04260883433,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:'Douglas Leedy, scale for "Pastorale" (1987), 1/1=f, 10/9 only in vocal parts'},leeuw1:{frequencies:[261.6255653006,311.12698372208,349.22823143301,380.8360868427,415.30469757995,466.16376151809,508.3551866238,554.36526195375,604.53960488156,659.25511382574,739.98884542327,806.96355802011,880,987.76660251225],description:'Ton de Leeuw: non-oct. mode from "Car nos vignes sont en fleurs",part 5. 1/1=A'},leftpistol:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Left Pistol"},legros1:{frequencies:[261.6255653006,274.22463192287,292.50627485027,309.49749487796,327.03195662575,348.83408706747,365.63284274659,391.22147055517,411.33694767869,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Example of temperament with 3 just major thirds"},legros2:{frequencies:[261.6255653006,275.07759559501,292.50627485027,309.49749487796,327.03195662575,348.83408706747,366.77012764335,391.22147055517,412.61639318626,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Example of temperament with 2 just major thirds"},"lehman-bach":{frequencies:[261.6255653006,276.86979852503,293.00227310437,310.77584116741,328.14198392915,349.6228209638,369.15973155124,391.5530240856,414.83597850347,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Brad Lehman's Bach keyboard temperament"},lemba10:{frequencies:[261.6255653006,283.65327551057,298.9489942119,324.1191713102,341.59697290141,370.35792032269,401.5404117335,423.19307614937,458.82405293702,483.56568031466,524.27976214079],description:"10-note Lemba scale, Herman Miller"},lemba12:{frequencies:[261.6255653006,276.1173031791,283.29759227608,298.9897683987,323.75689816556,341.69016129748,369.99442271164,390.48883496177,400.64329718448,422.83538548023,457.86139629758,483.22286023634,523.2511306012],description:"Lemba[12] in 270-et (poptimal)"},lemba22:{frequencies:[261.6255653006,268.42900262332,276.1173031791,283.29759227608,298.9897683987,306.76484424299,315.55115201964,323.75689816556,341.69016129748,350.57563899649,360.61677037127,369.99442271164,379.61593604418,390.48883496177,400.64329718448,422.83538548023,433.83100318771,446.25671880862,457.86139629758,483.22286023634,495.78882330645,509.98912747823,523.2511306012],description:"Lemba[22] in 270-et (poptimal)"},lemba24:{frequencies:[261.6255653006,275.73346179752,283.65327551057,290.60211247891,298.9489942119,307.53562105228,315.06951922004,324.1191713102,332.05932738876,341.59697290141,351.40856549044,360.01724743313,370.35792032269,390.32910012969,401.5404117335,411.37720579947,423.19307614937,435.34833037897,446.01333880095,458.82405293702,470.06416125332,483.56568031466,497.45499966368,509.64147516102,524.27976214079],description:"24-note Lemba scale for mapping millerlemba24.kbm"},lemba8:{frequencies:[261.6255653006,275.73334871592,283.6533803711,298.94898212432,307.53584843097,324.11927802481,341.59694330429,351.4088110982,370.358025147],description:"Lemba temperament (4 down, 3 up) TOP tuning, Herman Miller, TL 22-11-2004"},leusden:{frequencies:[261.6255653006,275.54404190554,292.50627485027,310.51268695591,327.03195662575,349.91912034749,367.08095907728,391.22147055517,413.66634097248,437.39890198442,466.16376151809,489.02683710225,523.2511306012],description:"Organ in Gereformeerde kerk De Koningshof, Henk van Eeken, 1984, a'=415, modif. 1/4 mean"},leven:{frequencies:[261.6255653006,279.06726965397,298.97057995496,313.95067836072,330.39003879965,348.83408706747,369.35382642901,392.4383479509,418.60090448096,448.46752658184,465.11211608996,502.32108537715,523.2511306012],description:"Leven's monochord ?"},ligon:{frequencies:[261.6255653006,279.66870773512,292.40504357126,309.19384990071,329.87571277032,342.12573923925,366.27579142084,392.4383479509,411.12588832951,436.04260883433,462.87600014722,485.87604984397,523.2511306012],description:"Jacky Ligon, strictly proper all prime scale, TL 08-09-2000"},ligon2:{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,382.37582620857,411.78935130154,441.2028763945,470.61640148747,500.02992658044,529.4434516734,558.85697676637],description:"Jacky Ligon, 19-limit symmetrical non-octave scale, 2001"},ligon3:{frequencies:[261.6255653006,273.51763645063,286.54228580542,300.86940009569,316.70463167967,334.29933343966,341.25073734861,376.08675011961,401.15920012759,427.90314680276,471.58492637221,481.3910401531,508.13498682828,534.87893350345,561.62288017862,588.36682685379,615.11077352897],description:"Jacky Ligon, 23-limit non-octave scale (2001)"},ligon4:{frequencies:[261.6255653006,278.49926570678,289.46759601673,308.13698517552,320.27237341115,340.92853547661,362.91692931321,386.32347802158,401.53832428939,427.43578342293,444.26952759254,472.92296174596,491.54841572131,523.2511306012,556.99853141357,592.92249142473,616.27397035104,640.54474682231,681.85707095323,725.83385862642,754.41987838254,803.07664857879],description:"Jacky Ligon, 2/1 Phi Scale, TL 12-04-2001"},ligon5:{frequencies:[261.6255653006,273.22765669781,280.653851324,293.09977429907,314.41721066027,328.36040925687,337.28508524374,352.24238645938,377.86132347501,394.61802538749,405.34378524393,423.31898451752,454.1076550834,474.24531572837,487.13535379632,508.73764640933,545.73895363303],description:'Jacky Ligon, scale for "Two Golden Flutes" (2001)'},ligon6:{frequencies:[261.6255653006,280.653851324,293.09977429907,314.41721066027,328.36040925687,352.24238645938,377.86132347501,394.61802538749,423.31898451752,442.09155952525,474.24531572837,508.73764640933,531.29821178855,569.94005600595],description:'Jacky Ligon, "Primal Golden Tuning" (2001)'},ligon7:{frequencies:[261.6255653006,294.32876096318,321.08592105074,361.22166118208,394.05999401681,443.31749326891,483.61908356609,527.58445479937],description:"Jacky Ligon, 7 tone, 27/22=generator, MMM 22-01-2002"},lindley_ea:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,349.6228209638,367.9112241576,391.5530240856,413.43299207996,438.51190905657,465.63764214343,491.10256480205,523.2511306012],description:"Mark Lindley +J. de Boer +W. Drake (1991), for organ Grosvenor Chapel, London"},lindley_sf:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.07474405997,328.14198392915,349.6228209638,368.32692341742,391.5530240856,413.90012676351,438.51190905657,465.63764214343,491.10256480205,523.2511306012],description:"Lindley (1988) suggestion nr. 2 for Stanford Fisk organ"},"ling-lun":{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,331.11985608357,353.59332287831,372.50983809402,392.4383479509,419.07356785577,441.49314144476,471.45776383774,496.67978412536,523.2511306012],description:"Scale of Ling Lun from C"},liu_major:{frequencies:[261.6255653006,290.69507255622,322.99452506247,348.83408706747,392.4383479509,436.04260883433,484.4917875937,523.2511306012],description:`Linus Liu's Major Scale, see his 1978 book, "Intonation Theory"`},liu_mel:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,423.83341578697,436.04260883433,470.92601754108,484.4917875937,523.2511306012],description:"Linus Liu's Melodic Minor, use 5 and 7 descending and 6 and 8 ascending"},liu_minor:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,387.59343007496,418.60090448096,484.4917875937,523.2511306012],description:"Linus Liu's Harmonic Minor"},liu_pent:{frequencies:[261.6255653006,294.32876096318,331.11985608357,353.19451315581,392.4383479509,441.49314144476,496.67978412536,529.79176973372],description:`Linus Liu's "pentatonic scale"`},lorina:{frequencies:[261.6255653006,271.31540105247,293.02063313667,305.22982618403,313.95067836072,348.83408706747,348.83408706747,385.55346465352,406.97310157871,457.84473927605,457.84473927605,465.11211608996,523.2511306012],description:"Lorina"},lt46a:{frequencies:[261.6255653006,265.62583852249,273.73233506765,277.91772325275,286.39934942254,290.77841553921,299.65253047503,308.79746990018,313.51900484808,323.08712797864,328.02715279963,338.03804253716,348.35444940179,353.68081538041,364.47461587782,370.04745828823,381.3407438317,387.1714705201,398.98735486934,411.16384203565,417.45056598488,430.19052226982,436.76816801564,450.09766813034,463.83396431287,470.92601754108,485.29796386361,492.71820372913,507.75521382755,523.2511306012],description:"13-limit temperament, minimax g=495.66296 cents"},lucy_19:{frequencies:[261.6255653006,272.17716319349,280.81422591737,292.13972001074,301.4102593031,313.56641022552,326.2128298123,336.56461921066,350.13857756143,364.25998604447,375.81913491042,390.97626371576,406.74469336313,419.65201956185,436.57696862128,450.43096951372,468.59726172356,487.49621708267,502.96605061019,523.2511306012],description:"Lucy's 19-tone scale"},lucy_24:{frequencies:[261.6255653006,269.92785558198,272.17712546173,280.81425349217,292.13970819848,301.41031849758,303.92192719902,313.56642833783,326.21280343239,336.56467170065,339.36921655583,350.13858362887,364.25994396351,375.81917832675,390.97625694066,403.38329512334,406.744629928,419.65205349792,436.57694340361,450.43105016925,454.18442712942,468.59728067062,487.49616921257,502.96612033609,523.2511306012],description:"Lucy/Harrison, meantone tuning from Bbb to Cx, third=1200.0/pi, 1/1=A"},lucy_31:{frequencies:[261.6255653006,269.92785558198,272.17712546173,280.81425349217,283.15423815518,292.13970819848,301.41031849758,303.92192719902,313.56642833783,323.51698308414,326.21280343239,336.56467170065,339.36921655583,350.13858362887,361.24970022276,364.25994396351,375.81917832675,378.95082751155,390.97625694066,403.38329512334,406.744629928,419.65205349792,432.96907456701,436.57694340361,450.43105016925,454.18442712942,468.59728067062,483.46750424654,487.49616921257,502.96612033609,507.15726445705,523.2511306012],description:"Lucy/Harrison's meantone tuning, 1/1=A"},lucy_7:{frequencies:[261.6255653006,292.13972001074,326.2128298123,350.13857756143,390.97626371576,436.57696862128,487.49621708267,523.2511306012],description:"Diatonic Lucy's scale"},lumma5:{frequencies:[261.6255653006,279.06726965397,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Carl Lumma's 5-limit version of lumma7, also Fokker 12-tone just."},lumma7:{frequencies:[261.6255653006,279.06726965397,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,390.69417751556,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Carl Lumma's 7-limit 12-tone scale, a.k.a GW Smith's Prism. TL 21-11-98"},lumma7t:{frequencies:[261.6255653006,279.68948643792,293.67396186758,305.56991806333,326.66797434652,349.22276480589,366.68390442934,392.00157215927,419.06732091375,436.04260883433,457.84473927605,489.45662770953,523.2511306012],description:"Tempered lumma7, 6 tetrads + 4 triads within 2c of Just, TL 19-2-99"},lumma7t72:{frequencies:[261.6255653006,279.86396690685,293.66476791741,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,435.78442404634,457.27406033445,489.15147723638,523.2511306012],description:"72-tET version of lumma7t"},lumma7t_keen:{frequencies:[261.6255653006,279.95098841649,293.39965821869,305.14186035122,326.51537799354,349.38597341375,366.17023517096,391.81845653432,419.26317124465,436.04260556019,456.98979229899,488.99939844699,523.2511306012],description:"Dave Keenan's adaptation of lumma7t to include 6:8:11, TL 17-04-9"},lumma_10:{frequencies:[261.6255653006,281.2143451833,302.26980244078,324.90175210669,349.22823143301,375.37611551499,391.99543598175,421.34544350737,452.89298412314,486.80259447109,523.2511306012],description:"Carl Lumma's 10-tone 125 cent Pyth. scale, TL 29-12-1999"},lumma_12_fun:{frequencies:[261.6255653006,276.16031892841,293.246794009,310.68035879446,327.94037872749,348.23056788569,368.93292606842,390.99572534534,413.52379936426,439.8701910135,464.30742384759,491.05951174505,522.34585182853],description:"Rational well temperament based on 577/289, 3/2, and 19/16."},"lumma_12_moh-ha-ha":{frequencies:[261.6255653006,276.16031892841,293.42033886144,310.68035879446,330.09788121912,349.51540364377,368.93292606842,391.72740891476,414.24047839262,440.13050829216,466.02053819169,493.4335110265,523.2511306012],description:"Rational well temperament."},lumma_12_strangeion:{frequencies:[261.6255653006,277.97716313189,292.40504357126,310.68035879446,330.09788121912,349.23197505989,368.93292606842,391.9912339477,414.71297038361,440.63253103259,468.17206422213,492.47165233054,523.2511306012],description:'19-limit "dodekaphonic" scale.'},lumma_22:{frequencies:[261.6255653006,263.29318697558,262.98919438538,262.83732973433,262.68555277841,262.53386346698,263.29318697558,262.38226174944,262.98919438538,262.23074757519,263.29318697558,262.68555277841,262.07932089369,263.29318697558,262.83732973433,263.59753095473,262.38226174944,263.44531501617,262.68555277841,262.98919438538,263.29318697558,263.902226729,261.92798165442],description:"Carl Lumma, intervals of attraction by trial and error, 1999."},lumma_5151:{frequencies:[261.6255653006,276.7826524273,292.81785438923,309.78204413166,327.729041887,346.71578592374,369.67398581173,391.09077971329,413.74834001613,437.71854962063,463.0774559108,489.90551202062,522.3451906503],description:"Carl Lumma's 5151 temperament III (1197/709.5/696). June 2003"},lumma_al1:{frequencies:[261.6255653006,274.63272075836,292.81785438923,309.78204413166,327.729041887,346.71578592374,366.8025131876,391.09077971329,413.74834001613,437.71854962063,463.0774559108,489.90551202062,522.3451906503],description:"Alaska I (1197/709.5/696), Carl Lumma, 6 June 2003."},lumma_al2:{frequencies:[261.6255653006,275.18850165466,292.98704147282,310.05056613125,328.10786809908,347.216824829,367.43868454848,391.20374747207,413.98739946535,438.09796819065,463.6127330944,490.61347436729,522.3451906503],description:"Alaska II (1197/707/696.5), Carl Lumma, 6 June 2003."},lumma_al3:{frequencies:[261.6255653006,275.18850165466,292.98704147282,310.05056613125,328.10786809908,349.32910706765,367.43868454848,391.20374747207,413.98739946535,438.09796819065,463.6127330944,490.61347436729,522.3451906503],description:"Alaska III (1197/707/696.5), Carl Lumma, 6 June 2003."},lumma_al4:{frequencies:[261.6255653006,276.38325105256,293.32570896007,309.87152561537,328.86683469969,349.02656754477,368.7143392539,391.31674786192,413.39000965417,438.73106346722,464.55095742407,491.89038573682,522.04355935974],description:"Alaska IV (1196/701/697), Carl Lumma, 6 June 2003."},lumma_al5:{frequencies:[261.6255653006,276.84261239447,293.89809826895,310.99222741882,329.08061019985,349.35433052883,369.67398581173,391.17550247358,415.27471248744,439.42852501549,464.98720675925,493.63374591774,522.3451906503],description:"Alaska V (1197/702/696.375), Carl Lumma, 6 June 2003."},lumma_al6:{frequencies:[261.6255653006,276.86260193655,293.83444433876,310.94732162256,329.05685050583,349.22823143301,369.56723519412,391.09077971329,415.06487744922,439.23819834286,464.81937009253,493.31307433255,522.04355935974],description:"Alaska VI (1196/701/696), Carl Lumma, 6 June 2003."},lumma_al7:{frequencies:[261.6255653006,276.11677207256,293.26810788146,310.16878953668,328.73958549954,348.42227432308,368.499294457,391.39134599911,413.94674961638,438.72852926454,464.99660740427,491.79379203259,522.3451906503],description:"Alaska VII, Carl Lumma, 27 Jan 2004"},lumma_dec1:{frequencies:[261.6255653006,286.10322937235,299.18791603519,327.17991022208,342.14320575162,374.15409293384,391.26571058456,427.87249484695,457.55816161244,489.30340830564,523.2511306012],description:"Carl Lumma, two 5-tone 7/4-chains, 5/4 apart in 31-tET, TL 9-2-2000"},lumma_dec2:{frequencies:[261.6255653006,286.10322937235,292.57243455474,327.17991022208,342.14320575162,382.6142546815,391.26571058456,437.54730686196,457.55816161244,511.68128147674,523.2511306012],description:"Carl Lumma, two 5-tone 3/2-chains, 7/4 apart in 31-tET, TL 9-2-2000"},lumma_magic:{frequencies:[261.6255653006,293.02063313667,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,418.60090448096,436.04260883433,457.84473927605,467.18850946536,523.2511306012],description:"Magic chord test, Carl Lumma, TL 24-06-99"},"lumma_synchtrines+2":{frequencies:[261.6255653006,277.1478691313,293.59111644706,311.009943641,329.46223568632,349.00930447981,369.71610741159,391.65144749868,414.88821865981,439.50363030131,465.57948255979,493.20241832805,522.46423212702],description:"The 12-tone equal temperament with 2:3:4 brats of +2"},"lumma_synchtrines-2":{frequencies:[261.6255653006,277.19623399848,293.69359242342,311.17279259662,329.69226891672,349.31393351076,370.10338321153,392.13011885309,415.46777761785,440.19437666896,466.39258399594,494.14997995304,523.55935978973],description:"The 12-tone equal temperament with 2:3:4 brats of -2"},lydian_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,317.12189733406,327.03195662575,373.75080757229,402.50086969323,418.60090448096,427.14378008261,436.04260883433,475.68284600109,523.2511306012,550.79066379074,581.39014511244,615.58956541318,634.24379466812,654.0639132515,747.50161514457,805.00173938646,837.20180896192,854.28756016522,872.08521766867,951.36569200218,1046.5022612024],description:"Lydian Chromatic Tonos"},lydian_chrom2:{frequencies:[261.6255653006,272.09058791262,283.42769574232,340.11323489078,377.90359432309,400.13321751856,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the chromatic genus"},lydian_chrominv:{frequencies:[261.6255653006,271.68808704293,281.75060878526,362.25078272391,402.50086969323,422.62591317789,442.75095666255,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Lydian inverted"},lydian_diat:{frequencies:[261.6255653006,275.39533189537,290.69507255622,327.03195662575,348.83408706747,373.75080757229,387.59343007496,402.50086969323,436.04260883433,455.00098313148,475.68284600109,498.33441009638,523.2511306012,550.79066379074,581.39014511244,654.0639132515,697.66817413493,747.50161514457,852.70554616492,805.00173938646,872.08521766867,910.00196626296,951.36569200218,996.66882019276,1046.5022612024],description:"Lydian Diatonic Tonos"},lydian_diat2:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,358.01393146398,377.90359432309,425.14154361347,485.87604984397,523.2511306012],description:"Schlesinger's Lydian Harmonia, a subharmonic series through 13 from 26"},lydian_diat2inv:{frequencies:[261.6255653006,281.75060878526,322.00069575458,362.25078272391,382.37582620857,402.50086969323,442.75095666255,483.00104363188,523.2511306012],description:"Inverted Schlesinger's Lydian Harmonia, a harmonic series from 13 from 26"},lydian_diatcon:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,358.01393146398,425.14154361347,485.87604984397,523.2511306012],description:"A Lydian Diatonic with its own trite synemmenon replacing paramese"},lydian_enh:{frequencies:[261.6255653006,275.39533189537,290.69507255622,299.00064605783,303.33398875432,307.79478270659,373.75080757229,402.50086969323,410.39304360878,414.45634107026,418.60090448096,475.68284600109,523.2511306012,550.79066379074,581.39014511244,598.00129211566,606.66797750864,615.58956541318,747.50161514457,805.00173938646,820.78608721757,828.91268214051,837.20180896192,951.36569200218,1046.5022612024],description:"Lydian Enharmonic Tonos"},lydian_enh2:{frequencies:[261.6255653006,266.75547834571,272.09058791262,340.11323489078,377.90359432309,388.70083987518,400.13321751856,523.2511306012],description:"Schlesinger's Lydian Harmonia in the enharmonic genus"},lydian_enhinv:{frequencies:[261.6255653006,266.65682617177,271.68808704293,362.25078272391,402.50086969323,412.56339143556,422.62591317789,523.2511306012],description:"A harmonic form of Schlesinger's Enharmonic Lydian inverted"},lydian_pent:{frequencies:[261.6255653006,269.93113880221,283.42769574232,340.11323489078,377.90359432309,395.48050568695,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the pentachromatic genus"},lydian_pis:{frequencies:[261.6255653006,290.69507255622,327.03195662575,373.75080757229,402.50086969323,436.04260883433,475.68284600109,523.2511306012,550.79066379074,581.39014511244,654.0639132515,747.50161514457,805.00173938646,872.08521766867,951.36569200218,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Lydian Tonos"},lydian_tri:{frequencies:[261.6255653006,268.51044859798,275.76748774928,340.11323489078,377.90359432309,392.4383479509,408.13588186894,523.2511306012],description:"Schlesinger's Lydian Harmonia in the first trichromatic genus"},lydian_tri2:{frequencies:[261.6255653006,268.51044859798,283.42769574232,340.11323489078,377.90359432309,392.4383479509,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the second trichromatic genus"},nachbaur_6:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,523.2511306012],description:`Fred Nachbaur's harmonic hexatonic, as used in "Void of Sensation"`},nassarre:{frequencies:[261.6255653006,277.66336828161,294.34406205295,311.66659310186,331.15428443044,350.6431449633,372.56793743951,394.49404533893,419.16071913933,443.82887286778,471.58032351597,495.88429116026,523.2511306012],description:"Nassarre's Equal Semitones"},negri5_19:{frequencies:[261.6255653006,271.22480440713,281.41555648081,291.74090527404,302.70251050738,313.80889368201,325.59966315504,337.54616011163,350.22880998446,363.07896889448,376.72096510961,390.54314115106,405.21705098851,420.08476989056,435.86864979507,451.86099895106,468.83881245397,486.04086171852,504.30291533224,523.2511306012],description:"Negri temperament, g=126.238272, 5-limit"},negri_19:{frequencies:[261.6255653006,269.02825605326,281.18681366715,289.14299126725,302.21061955257,310.76166549402,324.80633749066,333.99672707734,349.09149261831,358.96903024071,375.19240283292,392.14898023137,403.24482870584,421.46921730446,433.39468387282,452.98167562873,465.79878414581,486.85025820508,500.62567766841,523.2511306012],description:"Negri temperament, 13-limit, g=124.831"},negri_29:{frequencies:[261.6255653006,269.02825605326,276.64040740805,281.18681366715,289.14299126725,297.32428710198,302.21061955257,310.76166549402,319.55466133443,324.80633749066,333.99672707734,343.44715857517,349.09149261831,358.96903024071,369.1260526158,375.19240283292,385.80846524917,392.14898023137,403.24482870584,414.65463641221,421.46921730446,433.39468387282,445.65757880387,452.98167562873,465.79878414581,478.97855252217,486.85025820508,500.62567766841,514.79087238232,523.2511306012],description:"Negri temperament, 13-limit, g=124.831"},"neid-mar-morg":{frequencies:[261.6255653006,277.49581689502,293.99657683935,311.12698372208,329.99999983505,349.6228209638,369.99442271164,392.4383479509,415.77394625748,440,466.69047534984,494.44133512215,523.2511306012],description:"Neidhardt-Marpurg-de Morgan temperament (1858)"},neidhardt1:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.42509491746,328.14198392915,348.83408706747,368.32692341742,391.5530240856,414.36778843034,438.51190905657,465.11211608996,491.65745674141,523.2511306012],description:"Neidhardt I temperament (1724)"},neidhardt2:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,349.22823143301,369.15973155124,391.5530240856,414.36778843034,438.51190905657,466.16376151809,492.7691222293,523.2511306012],description:"Neidhardt II temperament (1724)"},neidhardt3:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,348.83408706747,369.15973155124,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Neidhardt III temperament (1724) 'Grosse Stadt'"},neidhardt4:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,329.62755691287,349.22823143301,369.99442271164,391.99543598175,415.30469757995,440,466.16376151809,493.88330125613,523.2511306012],description:"Neidhardt IV temperament (1724), equal temperament"},neidhardtn:{frequencies:[261.6255653006,276.86979852503,293.66476791741,310.77584116741,329.62755691287,348.83408706747,369.99442271164,391.5530240856,415.30469757995,439.50340943686,466.16376151809,493.32589719545,523.2511306012],description:"Johann Georg Neidhardt's temperament (1732), alt. 1/6 & 0 P, also Marpurg nr.10"},neogeb24:{frequencies:[261.6255653006,270.11478301563,282.39420473706,291.55732426372,295.23185084282,304.81152420286,308.65309481038,318.66826025208,333.15492371116,343.96512368902,348.30015108876,359.6017829051,375.94928703407,388.14807710176,393.03994675222,405.79329398283,424.24066266408,438.00640969567,443.52664897728,457.91818970179,463.68937649142,478.73515685363,500.49846361623,516.73862125829,523.2511306012],description:"Neo-Gothic e-based lineotuning (T/S or Blackwood's R=e, ~2.71828), 24 notes"},neogji12:{frequencies:[261.6255653006,282.52678126125,294.32876096318,317.84262891891,332.97799220076,348.83408706747,374.60024122586,392.4383479509,423.79017189188,441.49314144476,443.97065626768,499.46698830115,523.2511306012],description:"M. Schulter, neo-Gothic 12-note JI (prim. 2/3/7/11) 1/1=F with Eb key as D+1"},neogp16a:{frequencies:[261.6255653006,274.38778799819,281.28352228595,295.02457363685,309.19384990071,317.19205704586,332.33517754401,348.83408706747,366.27579142084,374.86334014511,392.4383479509,411.12588832951,422.62591317789,442.75095666255,464.34856430463,498.91386871277,523.2511306012],description:"M. Schulter, scale from mainly prime-to-prime ratios and octave complements (Gb-D#)"},neutr_diat:{frequencies:[261.6255653006,294.32876096318,320.24370022528,348.83408706747,392.4383479509,427.47405410759,479.82340237272,523.2511306012],description:"Neutral Diatonic, 9 + 9 + 12 parts, geometric mean of major and minor"},neutr_pent1:{frequencies:[261.6255653006,302.32287545847,348.83408706747,392.4383479509,453.48431318771,523.2511306012],description:"Quasi-Neutral Pentatonic 1, 15/13 x 52/45 in each trichord, after Dudon"},neutr_pent2:{frequencies:[261.6255653006,301.87565226992,348.83408706747,392.4383479509,452.81347840488,523.2511306012],description:"Quasi-Neutral Pentatonic 2, 15/13 x 52/45 in each trichord, after Dudon"},new_enh:{frequencies:[261.6255653006,264.89588486686,279.06726965397,348.83408706747,392.4383479509,397.34382730029,418.60090448096,523.2511306012],description:"New Enharmonic"},new_enh2:{frequencies:[261.6255653006,327.03195662575,331.11985608357,348.83408706747,392.4383479509,490.54793493862,496.67978412536,523.2511306012],description:"New Enharmonic permuted"},newcastle:{frequencies:[261.6255653006,273.65745935891,291.9012907804,312.65334602246,327.03195662575,350.28154752005,366.3906401674,390.81668391305,410.48618883318,436.04260883433,467.04206359353,490.54793493862,523.2511306012],description:"Newcastle modified 1/3-comma meantone"},norden:{frequencies:[261.6255653006,274.87601291722,292.73769384471,310.07474405997,327.54963108844,349.78078158391,366.5013507395,391.37619916626,412.31401916973,437.91808280662,466.37437567834,489.99465727995,523.2511306012],description:"Reconstructed Schnitger temperament, organ in Norden. Ortgies, 2002"},novaro:{frequencies:[261.6255653006,274.70684356563,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,498.33441009638,523.2511306012],description:"9-limit diamond with 21/20, 16/15, 15/8 and 40/21 added for evenness"},novaro15:{frequencies:[261.6255653006,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.87565226992,305.22982618403,309.19384990071,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,442.75095666255,448.50096908674,453.48431318771,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,523.2511306012],description:"1-15 diamond, see Novaro, 1927, Sistema Natural base del Natural-Aproximado, p"},novaro_eb:{frequencies:[261.6255653006,277.27733921611,293.70273468471,311.34510173929,329.85947563084,349.74559786079,370.61463194963,392.51515715445,416.03831243363,440.72414616847,467.23897542105,495.06435356607,524.26505360912],description:"Novaro (?) equal beating 4/3 with strectched octave, almost pure 3/2"},janke1:{frequencies:[261.6255653006,276.38325105256,293.32570896007,310.58830860439,328.86683469969,349.02656754477,368.7143392539,391.76907592069,414.34624765043,439.23819834286,465.62553897253,492.45896815637,523.2511306012],description:"Rainer Janke, Temperatur I"},janke2:{frequencies:[261.6255653006,276.38325105256,292.98704147282,310.58830860439,328.48713220126,349.02656754477,368.7143392539,391.54284657258,414.34624765043,438.73106346722,465.62553897253,491.89038573682,523.2511306012],description:"Rainer Janke, Temperatur II"},janke3:{frequencies:[261.6255653006,276.22365192501,292.98704147282,310.40895756597,328.29744538229,349.02656754477,368.50142299854,391.54284657258,414.10698098223,438.47771564426,465.62553897253,491.60634075178,523.2511306012],description:"Rainer Janke, Temperatur III"},janke4:{frequencies:[261.6255653006,275.90473010106,292.98704147282,310.76776326996,328.10786809908,349.22823143301,368.07595926604,391.54284657258,413.86785247997,438.47771564426,465.89457252293,491.32245979018,523.2511306012],description:"Rainer Janke, Temperatur IV"},janke5:{frequencies:[261.6255653006,275.58617649731,292.98704147282,310.05056613125,328.10786809908,348.82502010853,367.43868454848,391.54284657258,413.39000965417,438.47771564426,465.08793784701,491.0387427573,523.2511306012],description:"Rainer Janke, Temperatur V"},janke6:{frequencies:[261.6255653006,275.74540729824,292.98704147282,310.58830860439,328.10786809908,349.43001184052,367.65098676472,391.54284657258,413.86785247997,438.47771564426,465.89457252293,491.0387427573,523.2511306012],description:"Rainer Janke, Temperatur VI"},janke7:{frequencies:[261.6255653006,275.42703764514,292.81785438923,311.12698372208,327.91840028839,349.63190883464,367.0144478307,391.54284657258,413.62886206386,438.22451411849,467.24207374344,490.75518955849,523.2511306012],description:"Rainer Janke, Temperatur VII"},jemblung1:{frequencies:[261.6255653006,298.87388797409,337.89601991959,388.44742741354,452.30188977628,523.2511306012],description:"Scale of bamboo gamelan jemblung from Kalijering, slendro-like. 1/1=590 Hz."},jemblung2:{frequencies:[261.6255653006,300.03885820455,355.06324470257,391.40016308218,451.61555914985,523.2511306012],description:"Bamboo gamelan jemblung at Royal Batavia Society. 1/1=504 Hz."},ji_10coh:{frequencies:[261.6255653006,283.42769574232,299.7792935736,327.03195662575,348.83408706747,370.63621750918,392.4383479509,436.04260883433,457.84473927605,485.0974023282,523.2511306012],description:"Differentially coherent 10-tone scale"},ji_10coh2:{frequencies:[261.6255653006,305.22982618403,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,479.64686971777,523.2511306012],description:"Other diff. coherent 10-tone scale"},ji_11:{frequencies:[261.6255653006,276.96780524107,294.32876096318,316.53463456122,336.37572681506,356.10146388137,384.42940207435,406.97310157871,432.48307733364,465.11211608996,494.26637409559,523.2511306012],description:"3 and 7 prime rational interpretation of 11-tET. OdC 2000"},ji_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Basic JI with 7-limit tritone"},ji_12a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"7-limit 12-tone scale"},ji_12b:{frequencies:[261.6255653006,272.52663052146,290.69507255622,305.22982618403,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"alternate 7-limit 12-tone scale"},ji_12c:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'Kurzweil "Just with natural b7th", is Sauveur Just with 7/4'},ji_13:{frequencies:[261.6255653006,279.06726965397,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,418.60090448096,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"5-limit 12-tone symmetrical scale with two tritones"},ji_17:{frequencies:[261.6255653006,271.31540105247,283.8170195002,294.32876096318,310.07474405997,321.55899383997,336.37572681506,348.83408706747,361.75386806997,378.42269266694,392.4383479509,406.97310157871,425.72552925031,441.49314144476,465.11211608996,482.33849075995,504.56359022259,523.2511306012],description:"3 and 7 prime rational interpretation of 17-tET. OdC"},ji_17a:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,310.07474405997,321.08592105074,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,426.35277308246,441.49314144476,465.11211608996,484.4917875937,502.32108537715,523.2511306012],description:"3, 5 and 11 prime rational interpretation of 17-tET, OdC"},ji_17b:{frequencies:[261.6255653006,272.52663052146,285.40970760065,294.32876096318,310.07474405997,319.76457981184,334.88072358477,348.83408706747,359.73515228832,380.54627680087,392.4383479509,408.78994578219,428.11456140098,441.49314144476,465.11211608996,479.64686971777,502.32108537715,523.2511306012],description:"Alt. 3, 5 and 11 prime rational interpretation of 17-tET, OdC"},ji_19:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,353.19451315581,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"5-limit 19-tone scale"},ji_20:{frequencies:[261.6255653006,271.31540105247,279.38237857051,288.32205155576,299.00064605783,310.07474405997,321.55899383997,331.11985608357,348.83408706747,356.10146388137,372.50983809402,384.42940207435,392.4383479509,413.43299207996,425.72552925031,441.49314144476,457.84473927605,474.80195184183,489.99465727995,504.56359022259,523.2511306012],description:"3 and 7 prime rational interpretation of 20-tET. OdC"},ji_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"7-limit 21-tone just scale, Op de Coul, 2001"},ji_22:{frequencies:[261.6255653006,272.52663052146,279.06726965397,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"5-limit 22-tone scale (Zarlino?)"},ji_27:{frequencies:[261.6255653006,267.90457886781,275.62199471997,282.55561052465,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,331.11985608357,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,413.43299207996,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.4917875937,496.67978412536,510.98743222773,523.2511306012],description:"7-limit rational interpretation of 27-tET, OdC"},ji_29:{frequencies:[261.6255653006,267.90457886781,275.62199471997,282.55561052465,287.78812183066,294.32876096318,301.39265122629,310.07474405997,317.12189733406,323.76163705949,331.11985608357,340.65828815182,348.83408706747,356.76213450082,367.91095120397,372.08969287196,383.71749577421,392.4383479509,401.85686830172,413.43299207996,422.82919644541,431.68218274599,441.49314144476,454.2110508691,465.11211608996,475.68284600109,484.4917875937,496.67978412536,510.98743222773,523.2511306012],description:"3,5,11-prime rational interpretation of 29-tET, OdC"},ji_30:{frequencies:[261.6255653006,267.57160087561,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.7792935736,308.34441624714,313.95067836072,321.92208230347,329.64821227876,336.37572681506,344.91651675372,353.19451315581,360.81424763342,370.01329949656,379.40816842909,387.59343007496,396.89567239676,406.97310157871,415.27867508032,425.24536328225,436.04260883433,443.97065626768,456.65553216105,465.11211608996,478.40103369253,488.36772189445,498.33441009638,511.62332769895,523.2511306012],description:"11-limit rational interpretation of 30-tET"},ji_31:{frequencies:[261.6255653006,267.57160087561,274.08392555301,280.31310567921,285.40970760065,293.02063313667,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,334.88072358477,343.38355445704,348.83408706747,356.76213450082,366.27579142084,373.75080757229,383.71749577421,392.4383479509,398.6675280771,408.78994578219,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,467.18850946536,479.64686971777,490.54793493862,499.46698830115,512.78610798918,523.2511306012],description:"A just 11-limit 31-tone scale, optimized for Mann complexity"},ji_31a:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,334.88072358477,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"A just 7-limit 31-tone scale"},ji_31b:{frequencies:[261.6255653006,267.90457886781,275.93321340298,282.55561052465,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,344.91651675372,353.19451315581,359.28803828513,367.91095120397,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,431.14564594215,441.49314144476,452.08897683944,459.88868900496,470.92601754108,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"A just 5-limit 31-tone scale, corner clipped genus"},ji_31c:{frequencies:[261.6255653006,267.57160087561,272.52663052146,279.06726965397,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,334.88072358477,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,398.6675280771,408.78994578219,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,479.64686971777,490.54793493862,502.32108537715,511.62332769895,523.2511306012],description:"A just 11-limit 31-tone scale"},ji_5coh:{frequencies:[261.6255653006,305.22982618403,348.83408706747,381.53728273004,446.94367405519,523.2511306012],description:"Differential fully coherent pentatonic scale"},ji_6coh:{frequencies:[261.6255653006,294.32876096318,330.74639366397,372.08969287196,418.60090448096,465.11211608996,523.2511306012],description:"Differential coherent 6-tone scale, OdC 2003"},ji_7:{frequencies:[261.6255653006,290.69507255622,318.93402246168,348.83408706747,392.4383479509,429.2294430713,470.92601754108,523.2511306012],description:"7-limit rational interpretation of 7-tET. OdC"},ji_7a:{frequencies:[261.6255653006,287.78812183066,319.76457981184,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Superparticular approximation to 7-tET. Op de Coul, 1998"},ji_8coh:{frequencies:[261.6255653006,286.99041781007,312.35527031954,339.96223546814,370.00947616612,405.83764015148,441.71144237774,480.75585116768,523.2511306012],description:"Differential coherent 8-tone scale, OdC, 2003"},ji_8coh3:{frequencies:[261.6255653006,277.97716313189,302.50455987882,327.03195662575,359.73515228832,392.4383479509,425.14154361347,466.02053819169,523.2511306012],description:"Differential fully coherent 8-tone scale, OdC, 2003"},ji_9coh:{frequencies:[261.6255653006,287.78812183066,313.95067836072,327.03195662575,366.27579142084,392.4383479509,418.60090448096,470.92601754108,497.08857407114,523.2511306012],description:"Differentially coherent 9-tone scale"},ji_ri24a:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,301.87565226992,310.68035879446,319.76457981184,329.87571277032,340.11323489078,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,402.50086969323,414.99227599406,428.11456140098,440.63253103259,453.48431318771,465.11211608996,479.64686971777,494.18162334558,508.71637697339,523.2511306012],description:"M. Schulter, just/rational intonation system - with circulating 24-note set"},jioct12:{frequencies:[261.6255653006,272.52663052146,282.55561052465,302.80736724606,313.95067836072,327.03195662575,363.36884069528,376.74081403286,392.4383479509,436.04260883433,454.2110508691,470.92601754108,523.2511306012],description:"12-tone JI version of Messiaen's octatonic scale, Erlich & Par\xEF\xBF\xBDzek"},"jobin-bach":{frequencies:[261.6255653006,275.07759559501,292.50627485027,309.76836826904,327.03195662575,348.83408706747,366.77012764335,391.22147055517,412.61639318626,437.39890198442,464.6525521713,489.02683710225,523.2511306012],description:"Emile Jobin, WTC temperament after Bach's signet"},"johnson-secor_rwt":{frequencies:[261.6255653006,276.16031892841,293.03678286293,310.07474405997,327.94037872749,348.83408706747,368.21375857121,391.52992584916,414.24047839262,438.40450629885,465.11211608996,490.95167809495,523.2511306012],description:"Johnson/Secor proportional-beating well-temperament with five 24/19s."},johnson_44:{frequencies:[261.6255653006,265.7783520514,269.99705605222,274.2827236086,278.63641763414,283.05921791404,287.55222124002,292.11654190835,296.75331210627,301.46368356757,306.24882108355,311.17820103386,316.11753722951,321.13527558179,326.23266245367,331.4109583385,336.67144939063,342.01544029518,347.44425644654,352.9592442771,358.56177366235,364.2532300084,370.03502692537,375.90859839047,381.87540114246,387.93691728375,394.09464571975,400.35011587045,406.70487919155,413.16051176499,419.71861468993,426.38081694263,433.14876596753,440.02414274758,447.00865248514,454.10402744924,461.31203006992,468.63444275836,476.07308421189,483.62979961065,491.30646309654,499.10497838378,507.02727962797,515.07533168556,523.2511306012],description:"Aaron Johnson, 44-tET approximation"},johnson_7:{frequencies:[261.6255653006,288.83389952765,318.87182567809,352.10227751942,388.71994014354,429.2294430713,473.86811641255,523.2511306012],description:"Aaron Johnson, 7-tET approximation"},johnson_eb:{frequencies:[261.6255653006,273.1678696521,292.40504357126,312.71949922989,327.03195662575,349.65487315468,365.50630446407,390.89937403737,408.78994578219,437.06859144336,467.84806971401,488.62421754671,523.2511306012],description:'Aaron Johnson, "1/4-comma tempered" equal beating C-G-D-A-E plus just thirds'},johnson_ratwell:{frequencies:[261.6255653006,276.16031892841,292.90688289089,310.07474405997,327.94037872749,348.83408706747,368.21375857121,391.49724879514,414.24047839262,438.30776524386,465.11211608996,490.95167809495,523.2511306012],description:"Aaron Johnson, rational well-temperament with five 24/19's"},johnson_temp:{frequencies:[261.6255653006,275.52965735686,292.50638298357,309.88336774144,327.03195662575,348.76230617841,367.55223824197,391.22154286826,413.09299784305,437.39914452994,464.92072007996,490.30891677011,523.2511306012],description:"Aaron Johnson, temperament with just 5/4, 24/19 and 19/15"},johnston:{frequencies:[261.6255653006,275.93321340298,294.32876096318,315.35224388912,327.03195662575,359.73515228832,367.91095120397,392.4383479509,401.35740131342,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Ben Johnston's combined otonal-utonal scale"},johnston_21:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Johnston 21-note just enharmonic scale"},johnston_22:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,353.19451315581,367.91095120397,378.42269266694,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Johnston 22-note scale from end of string quartet nr. 4"},johnston_25:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,331.11985608357,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Johnston 25-note just enharmonic scale"},"johnston_6-qt":{frequencies:[261.6255653006,262.79353657426,266.47048317654,267.57160087561,271.31540105247,272.52663052146,277.4816601673,280.31310567921,284.23518205497,290.69507255622,294.32876096318,297.30177875068,299.7792935736,300.33547037059,305.22982618403,306.59245933664,310.07474405997,311.45900631024,316.53463456122,317.12189733406,319.76457981184,322.99452506247,327.03195662575,334.46450109452,339.14425131559,342.60490694126,348.83408706747,350.39138209902,355.29397756872,356.76213450082,361.75386806997,363.36884069528,367.91095120397,373.75080757229,381.53728273004,382.24514410802,387.59343007496,390.82337532559,392.4383479509,396.40237166758,399.70572476481,406.97310157871,408.78994578219,413.43299207996,420.46965851882,426.35277308246,436.04260883433,445.95266812602,452.19233508746,459.88868900496,465.11211608996,467.18850946536,475.68284600109,479.64686971777,484.4917875937,486.49381977384,490.54793493862,248.7057842981,498.33441009638,508.71637697339,516.79124009995,523.2511306012],description:"11-limit complete system from Ben Johnston's _6th Quartet_"},"johnston_6-qt_row":{frequencies:[261.6255653006,272.52663052146,290.69507255622,306.59245933664,327.03195662575,350.39138209902,363.36884069528,399.70572476481,408.78994578219,436.04260883433,445.95266812602,490.54793493862,508.71637697339],description:`11-limit 'prime row' from Ben Johnston's "6th Quartet"`},johnston_81:{frequencies:[116.54094037952,117.99770213426,119.33792294863,119.89808681021,120.82964698549,121.39681289533,122.77564089365,122.91427305652,124.31033640482,124.45070146973,125.86421560988,127.43751830501,127.89129259755,128.03570110055,129.48993375502,131.10855792696,132.74741490105,134.25516331721,134.88534766148,135.93335285867,136.57141450725,138.12259600536,138.27855718859,139.84912845542,141.59724256112,142.26189011172,143.87770417225,145.6761754744,147.49712766783,149.17240368579,151.03705873186,151.74601611917,153.46955111706,155.38792050603,157.33026951235,159.11723059817,159.29689788126,161.10619598065,161.86241719378,163.70085452487,163.8856974087,165.74711520643,165.93426862631,167.81895414651,169.91669107334,170.71426813406,172.6532450067,174.81141056928,176.9965532014,179.00688442294,179.84713021531,181.24447047823,182.095219343,184.16346134048,184.37140958479,186.46550460723,188.79632341482,189.68252014896,191.15627745751,191.83693889633,194.23490063253,196.66283689044,198.89653824771,199.12112235157,199.83014468368,201.38274497581,202.32802149222,204.62606815608,204.85712176088,207.18389400804,207.41783578289,209.77369268314,212.39586384168,213.39283516758,215.81655625837,218.5142632116,221.24569150175,223.75860552868,226.55558809779,227.61902417875,230.2043266756,233.08188075904],description:"Johnston 81-note 5-limit scale of Sonata for Microtonal Piano"},jorgensen:{frequencies:[261.6255653006,269.51415085551,288.85811466493,309.59046173614,318.92511007349,352.12195684808,355.62605411908,388.77403176757,408.50706336067,429.24143792307,469.25139168707,473.92081401802,523.2511306012],description:"Jorgensen's 5&7 temperament"},jousse:{frequencies:[261.6255653006,276.90198715646,293.15566421679,311.51473523959,328.62702621286,349.28097970329,369.20264759391,391.76800554826,415.35298052707,439.0631553946,466.60176257857,492.27019703794,523.2511306012],description:"Temperament of Jean Jousse (1832)"},jousse2:{frequencies:[261.6255653006,277.21176919085,293.63180098233,311.16627887077,329.63881547742,349.36510452864,370.14670828388,392.04008509316,415.41939014292,440.0494382652,466.3511549761,494.0599599767,523.2511306012],description:"Jean Jousse's quasi-equal temperament"},quasi_5:{frequencies:[261.6255653006,302.26980244078,349.22823143301,391.99543598175,452.89298412314,523.2511306012],description:"Quasi-Equal 5-Tone in 24-tET, 5 5 4 5 5 steps"},quasi_9:{frequencies:[261.6255653006,281.2143451833,302.26980244078,324.90175210669,349.22823143301,391.99543598175,421.34544350737,452.89298412314,486.80259447109,523.2511306012],description:'Quasi-Equal Enneatonic, Each "tetrachord" has 125 + 125 + 125 + 125 cents'},quint_chrom:{frequencies:[261.6255653006,277.01530443593,294.32876096318,348.83408706747,392.4383479509,415.52295665389,441.49314144476,523.2511306012],description:"Aristides Quintilianus' Chromatic genus"},oconnell:{frequencies:[261.6255653006,267.57429119961,272.27874977392,278.46970304972,283.3657217904,288.34782337261,294.90414810658,300.08911516052,305.36524364276,312.30850472426,317.79947295261,323.38698268281,330.74001416845,336.55504284097,344.20748191927,350.25929591231,356.41751010259,364.52157313929,370.93054700815,377.45220049416,386.03454097812,392.82175095637,399.72829510222,408.81713953112,416.00491024634,423.31905787312],description:"Walter O'Connell, Pythagorean scale of 25 octaves reduced by Phi. XH 15 (1993)"},oconnell_11:{frequencies:[261.6255653006,272.27874977392,288.34782337261,300.08911516052,312.30850472426,323.38698268281,344.20748191927,356.41751010259,370.93054700815,386.03454097812,408.81713953112,423.31905787312],description:"Walter O'Connell, 11-note mode of 25-tone scale"},oconnell_14:{frequencies:[261.6255653006,272.27874977392,283.3657217904,288.34782337261,300.08911516052,312.30850472426,323.38698268281,336.55504284097,344.20748191927,356.41751010259,370.93054700815,386.03454097812,399.72829510222,408.81713953112,423.31905787312],description:"Walter O'Connell, 14-note mode of 25-tone scale"},oconnell_7:{frequencies:[261.6255653006,283.3657217904,300.08911516052,323.38698268281,344.20748191927,370.93054700815,392.82175095637,423.31905787312],description:"Walter O'Connell, 7-note mode of 25-tone scale"},oconnell_9:{frequencies:[261.6255653006,278.46970304972,294.90414810658,305.36524364276,323.38698268281,344.20748191927,364.52157313929,377.45220049416,399.72829510222,423.31905787312],description:"Walter O'Connell, 9-tone mode of 25-tone scale"},oconnell_9a:{frequencies:[261.6255653006,272.27874977392,288.34782337261,305.36524364276,323.38698268281,344.20748191927,356.41751010259,377.45220049416,399.72829510222,423.31905787312],description:"Walter O'Connell, 7+2 major mode analogy for 25-tone scale"},octony_min:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Octony on Harmonic Minor, from Palmer on an album of Turkish music"},octony_rot:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Rotated Octony on Harmonic Minor"},octony_trans:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,348.83408706747,408.78994578219,420.46965851882,436.04260883433,523.2511306012],description:"Complex 10 of p. 115, an Octony based on Archytas's Enharmonic,"},octony_trans2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,315.35224388912,324.36230800023,336.37572681506,348.83408706747,504.56359022259,523.2511306012],description:"Complex 6 of p. 115 based on Archytas's Enharmonic, an Octony"},octony_trans3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,306.59245933664,315.35224388912,327.03195662575,348.83408706747,490.54793493862,523.2511306012],description:"Complex 5 of p. 115 based on Archytas's Enharmonic, an Octony"},octony_trans4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,420.46965851882,432.48307733364,448.50096908674,523.2511306012],description:"Complex 11 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_trans5:{frequencies:[261.6255653006,271.31540105247,279.06726965397,317.94773560837,327.03195662575,339.14425131559,348.83408706747,508.71637697339,523.2511306012],description:"Complex 15 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_trans6:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,336.37572681506,345.98646186692,348.83408706747,358.80077526939,523.2511306012],description:"Complex 14 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_u:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,356.76213450082,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"7)8 octony from 1.3.5.7.9.11.13.15, 1.3.5.7.9.11.13 tonic (subharmonics 8-16)"},odd1:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"ODD-1"},odd2:{frequencies:[261.6255653006,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"ODD-2"},oettingen:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,298.00787047521,301.39265122629,306.59245933664,310.42486507835,313.95067836072,317.87506184023,323.35923445661,327.03195662575,331.11985608357,334.88072358477,339.06673262958,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.50983809402,376.74081403286,383.2405741708,388.03108134794,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.89982010446,418.60090448096,423.83341578697,431.14564594215,436.04260883433,441.49314144476,446.50763144636,452.08897683944,459.88868900496,465.11211608996,470.92601754108,476.81259276034,485.03885168492,490.54793493862,496.67978412536,502.32108537715,510.98743222773,517.37477513058,523.2511306012],description:"von Oettingen's Orthotonophonium tuning"},oettingen2:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.51653791741,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,431.14564594215,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.27480687611,484.4917875937,490.54793493862,496.11959049595,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"von Oettingen's Orthotonophonium tuning with central 1/1"},ogr10:{frequencies:[261.6255653006,264.15640940857,271.89678302796,296.5055443788,342.56848033562,359.46139971304,411.32572372413,440,484.46499093218,513.27277840175,523.2511306012],description:"Optimal Golomb Ruler of 10 segments, length 72"},ogr10a:{frequencies:[261.6255653006,264.15640940857,285.30470202322,314.13668154225,329.62755691287,352.60650301302,431.60923940535,448.5538823653,457.27406033445,508.3551866238,523.2511306012],description:"2nd Optimal Golomb Ruler of 10 segments, length 72"},ogr11:{frequencies:[261.6255653006,265.92749183559,274.74472021414,318.1829357186,331.4244391468,362.52783176564,371.50609336774,409.69842558521,455.51656649021,482.27514684959,486.22402266421,523.2511306012],description:"Optimal Golomb Ruler of 11 segments, length 85"},ogr12:{frequencies:[261.6255653006,265.06964174786,270.3209511875,308.09015504092,333.2396629384,346.57411320722,384.79959982017,413.49815209867,456.11269186454,468.20039948765,496.58195036371,499.83980314828,523.2511306012],description:"Optimal Golomb Ruler of 12 segments, length 106"},ogr2:{frequencies:[261.6255653006,329.62755691287,523.2511306012],description:"Optimal Golomb Ruler of 2 segments, length 3"},ogr3:{frequencies:[261.6255653006,293.66476791741,415.30469757995,523.2511306012],description:"Optimal Golomb Ruler of 3 segments, length 6"},ogr4:{frequencies:[261.6255653006,278.64197723942,336.62443200122,461.29362042034,523.2511306012],description:"Optimal Golomb Ruler of 4 segments, length 11"},ogr4a:{frequencies:[261.6255653006,296.76515515861,406.67242132093,433.12283887627,523.2511306012],description:"2nd Optimal Golomb Ruler of 4 segments, length 11"},ogr5:{frequencies:[261.6255653006,272.51337835337,307.97166902637,393.32961502355,426.7484383229,523.2511306012],description:"Optimal Golomb Ruler of 5 segments, length 17"},ogr5a:{frequencies:[261.6255653006,272.51337835337,307.97166902637,393.32961502355,482.27514684959,523.2511306012],description:"2nd Optimal Golomb Ruler of 5 segments, length 17"},ogr5b:{frequencies:[261.6255653006,272.51337835337,362.52783176564,426.7484383229,463.0066556268,523.2511306012],description:"3rd Optimal Golomb Ruler of 5 segments, length 17"},ogr5c:{frequencies:[261.6255653006,272.51337835337,362.52783176564,409.69842558521,444.50800708553,523.2511306012],description:"4th Optimal Golomb Ruler of 5 segments, length 17"},ogr6:{frequencies:[261.6255653006,268.98086109226,292.31087910123,345.21700307457,430.94493093825,495.02573326308,523.2511306012],description:"Optimal Golomb Ruler of 6 segments, length 25"},ogr6a:{frequencies:[261.6255653006,276.5429423948,284.31762274025,345.21700307457,407.69874723177,468.32288027948,523.2511306012],description:"2nd Optimal Golomb Ruler of 6 segments, length 25"},ogr6b:{frequencies:[261.6255653006,268.98086109226,354.92237405774,407.69874723177,443.06044202496,495.02573326308,523.2511306012],description:"3rd Optimal Golomb Ruler of 6 segments, length 25"},ogr6c:{frequencies:[261.6255653006,268.98086109226,317.66442301495,354.92237405774,455.51656649021,495.02573326308,523.2511306012],description:"4th Optimal Golomb Ruler of 6 segments, length 25"},ogr6d:{frequencies:[261.6255653006,276.5429423948,317.66442301495,375.1593523779,468.32288027948,481.48922855473,523.2511306012],description:"5th Optimal Golomb Ruler of 6 segments, length 25"},ogr7:{frequencies:[261.6255653006,267.01398215014,283.85429714132,314.3146261019,355.21191871351,409.69842558521,502.34551296122,523.2511306012],description:"Optimal Golomb Ruler of 7 segments, length 34"},ogr8:{frequencies:[261.6255653006,265.77967818767,283.06627815664,316.06708432391,387.90015179087,400.3161696196,454.08364189083,499.09751029017,523.2511306012],description:"Optimal Golomb Ruler of 8 segments, length 44"},ogr9:{frequencies:[261.6255653006,264.94361147373,282.17583275232,296.76515515861,349.59519124833,363.06573983159,401.57942110183,438.61588607285,510.2272282764,523.2511306012],description:"Optimal Golomb Ruler of 9 segments, length 55"},oldani:{frequencies:[261.6255653006,272.52663052146,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"This scale by Norbert L. Oldani appeared in Interval 5(3), p.10-11"},oljare:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,381.53728273004,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:'Mats \xEF\xBF\xBDljare, scale for "Tampere" (2001)'},oljare17:{frequencies:[261.6255653006,272.51337835337,320.78822215662,334.13814720468,393.32961502355,409.69842558521,426.7484383229,502.34551296122,523.2511306012],description:'Mats \xEF\xBF\xBDljare, scale for "Fafner" (2001), MOS in 17-tET'},olympos:{frequencies:[261.6255653006,279.06726965397,348.83408706747,372.08969287196,465.11211608996,523.2511306012],description:"Scale of ancient Greek flutist Olympos, 6th century BC as reported by Partch"},opelt:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Friederich Wilhelm Opelt 19-tone"},organ1373a:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"English organ tuning (1373) with 18:17:16 ficta semitones (Eb-G#)"},organ1373b:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,467.46332623563,496.67978412536,523.2511306012],description:"English organ tuning (1373) with 18:17:16 accidental semitones (Eb-G#)"},ragib:{frequencies:[261.6255653006,269.99542342683,281.01564479119,288.12007609225,294.32876096318,303.49446183192,311.45900631024,323.77767743764,335.77702597132,341.99420300732,348.83408706747,360.36579242507,371.06455309218,381.37837507376,392.4383479509,407.46331920162,417.22825371678,432.79663407874,450.28451247858,458.15534711532,465.11211608996,476.50902003141,487.19844562495,503.12608711654,523.2511306012],description:"Idris Ragib Bey, vol.5 d'Erlanger, p 40. Idris Rag'ib Bey"},ragib7:{frequencies:[261.6255653006,270.30192333353,281.29980781121,288.32205155576,294.32876096318,303.74668805875,311.45900631024,324.36230800023,336.37572681506,341.71502406609,348.83408706747,360.4025644447,370.6997805717,381.53728273004,392.4383479509,406.97310157871,417.13259773693,432.48307733364,450.69091522486,457.84473927605,465.11211608996,476.92160341255,486.65469735975,502.32108537715,523.2511306012],description:"7-limit version of Idris Rag'ib Bey scale"},"rameau-flat":{frequencies:[261.6255653006,276.01120901503,292.50629850443,312.00666699279,327.03195662575,349.91920725962,366.20974703841,391.22137338448,415.30469757995,437.39882871549,468.01000025525,489.02679755603,523.2511306012],description:'Rameau bemols, see Pierre-Yves Asselin in "Musique et temperament"'},"rameau-gall":{frequencies:[261.6255653006,274.65078342868,292.50627485027,310.49874388777,327.03195662575,349.91912034749,366.20104475463,391.22147055517,412.61639318626,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"Rameau's temperament, after Gallimard (1st solution)"},"rameau-merc":{frequencies:[261.6255653006,273.37431312998,292.50627485027,308.72950296259,327.03195662575,348.83408706747,365.63284274659,391.22147055517,409.55238583376,437.39890198442,464.53468854848,489.02683710225,523.2511306012],description:"Rameau's temperament, after Mercadier"},"rameau-minor":{frequencies:[261.6255653006,294.32876096318,313.95067836072,353.19451315581,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Rameau's systeme diatonique mineur on E. Asc. 4-6-8-9, desc. 9-7-5-4"},"rameau-nouv":{frequencies:[261.6255653006,275.98004852257,292.50627485027,311.49614460359,327.03195662575,349.91912034749,367.37127028704,391.22147055517,414.64857675456,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"Temperament by Rameau in Nouveau Systeme (1726)"},"rameau-sharp":{frequencies:[261.6255653006,273.37431312998,292.50629850443,308.54983514133,327.03195662575,348.83408706747,365.63293356166,391.22137338448,409.42528169498,437.39882871549,464.33633889105,489.02679755603,523.2511306012],description:'Rameau dieses, see Pierre-Yves Asselin in "Musique et temperament"'},rameau:{frequencies:[261.6255653006,275.07757335026,292.50629850443,310.73186404381,327.03195662575,349.91920725962,366.77009798369,391.22137338448,412.61635981914,437.39882871549,468.01000025525,489.02679755603,523.2511306012],description:"Rameau's modified meantone temperament (1725)"},ramis:{frequencies:[261.6255653006,275.93321340298,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Monochord of Ramos de Pareja (Ramis de Pareia), Musica practica (1482). Carlos: Switched on Bach"},rapoport_8:{frequencies:[261.6255653006,297.86386736488,316.53463456122,336.37572681506,382.96782946913,406.97310157871,432.48307733364,492.38720931745,523.2511306012],description:"Paul Rapoport, cycle of 14/9 close to 8 out of 11-tET, XH 13, 1991"},rast_moha:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,427.47405410759,479.82340237272,523.2511306012],description:"Rast + Mohajira (Dudon) 4 + 3 + 3 Rast and 3 + 4 + 3 Mohajira tetrachords"},rat_dorenh:{frequencies:[261.6255653006,267.70988077271,274.08392555301,359.73515228832,411.12588832951,418.60090448096,426.35277308246,523.2511306012],description:"Rationalized Schlesinger's Dorian Harmonia in the enharmonic genus"},rat_hypodenh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,380.54627680087,389.39619021485,398.6675280771,523.2511306012],description:"1+1 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodenh2:{frequencies:[261.6255653006,270.06509966514,288.69027895239,348.83408706747,380.54627680087,389.39619021485,408.39112632289,523.2511306012],description:"1+2 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodenh3:{frequencies:[261.6255653006,270.06509966514,299.00064605783,348.83408706747,380.54627680087,389.39619021485,418.60090448096,523.2511306012],description:"1+3 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,380.54627680087,386.4008349055,392.4383479509,523.2511306012],description:"1+1 rationalized hexachromatic/hexenharmonic genus derived from K.S.'Bastard'"},rat_hypodhex2:{frequencies:[261.6255653006,267.19206668997,279.06726965397,348.83408706747,380.54627680087,386.4008349055,398.6675280771,523.2511306012],description:"1+2 rat. hexachromatic/hexenharmonic genus derived from K.S.'s 'Bastard' Hypodo"},rat_hypodhex3:{frequencies:[261.6255653006,267.19206668997,285.40970760065,348.83408706747,380.54627680087,386.4008349055,405.0976494977,523.2511306012],description:"1+3 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex4:{frequencies:[261.6255653006,267.19206668997,292.04714266113,348.83408706747,380.54627680087,386.4008349055,411.73859457144,523.2511306012],description:"1+4 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex5:{frequencies:[261.6255653006,267.19206668997,299.00064605783,348.83408706747,380.54627680087,386.4008349055,418.60090448096,523.2511306012],description:"1+5 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex6:{frequencies:[261.6255653006,273.00058987889,292.04714266113,348.83408706747,380.54627680087,392.4383479509,411.73859457144,523.2511306012],description:"2+3 rationalized hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' hypod"},rat_hypodpen:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,380.54627680087,387.59343007496,394.90651366128,523.2511306012],description:"1+1 rationalized pentachromatic/pentenharmonic genus derived from K.S.'s 'Bastar"},rat_hypodpen2:{frequencies:[261.6255653006,268.33391312882,282.83844897362,348.83408706747,380.54627680087,387.59343007496,402.50086969323,523.2511306012],description:"1+2 rationalized pentachromatic/pentenharmonic genus from K.S.'s 'Bastard' hyp"},rat_hypodpen3:{frequencies:[261.6255653006,268.33391312882,290.69507255622,348.83408706747,380.54627680087,387.59343007496,410.39304360878,523.2511306012],description:"1+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen4:{frequencies:[261.6255653006,268.33391312882,299.00064605783,348.83408706747,380.54627680087,387.59343007496,418.60090448096,523.2511306012],description:"1+4 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen5:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,380.54627680087,394.90651366128,410.39304360878,523.2511306012],description:"2+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen6:{frequencies:[261.6255653006,268.33391312882,299.00064605783,348.83408706747,380.54627680087,394.90651366128,418.60090448096,523.2511306012],description:"2+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodtri:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,380.54627680087,392.4383479509,405.0976494977,523.2511306012],description:"rationalized first (1+1) trichromatic genus derived from K.S.'s 'Bastard' hyp"},rat_hypodtri2:{frequencies:[261.6255653006,273.00058987889,299.00064605783,348.83408706747,380.54627680087,392.4383479509,418.60090448096,523.2511306012],description:"rationalized second (1+2) trichromatic genus derived from K.S.'s 'Bastard' hyp"},rat_hypolenh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,373.75080757229,402.50086969323,410.39304360878,418.60090448096,523.2511306012],description:"Rationalized Schlesinger's Hypolydian Harmonia in the enharmonic genus"},rat_hypopchrom:{frequencies:[261.6255653006,277.01530443593,294.32876096318,362.25078272391,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the chromatic genus"},rat_hypopenh:{frequencies:[261.6255653006,269.10058145205,277.01530443593,362.25078272391,392.4383479509,400.78810003496,409.50088481833,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the enharmonic genus"},rat_hypoppen:{frequencies:[261.6255653006,273.79419624481,294.32876096318,362.25078272391,392.4383479509,405.97070477679,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the pentachromatic genus"},rat_hypoptri:{frequencies:[261.6255653006,271.68808704293,282.55561052465,362.25078272391,392.4383479509,403.65087217807,415.52295665389,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in first trichromatic genus"},rat_hypoptri2:{frequencies:[261.6255653006,271.68808704293,294.32876096318,362.25078272391,392.4383479509,403.65087217807,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in second trichromatic genus"},rectsp10:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,340.11323489078,348.83408706747,359.73515228832,366.27579142084,373.75080757229,377.90359432309,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,523.2511306012],description:"Rectangle minimal beats spectrum of order 10"},rectsp10a:{frequencies:[261.6255653006,275.39533189537,277.01530443593,279.06726965397,281.75060878526,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.79478270659,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,523.2511306012],description:"Rectangle minimal beats spectrum of order 10 union with inversion"},rectsp11:{frequencies:[261.6255653006,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,451.89870370104,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,499.46698830115,523.2511306012],description:"Rectangle minimal beats spectrum of order 11"},rectsp12:{frequencies:[261.6255653006,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,404.33041910093,406.97310157871,411.12588832951,414.24047839262,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,451.89870370104,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,499.46698830115,501.44900015948,523.2511306012],description:"Rectangle minimal beats spectrum of order 12"},rectsp6:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Rectangle minimal beats spectrum of order 6 (=songlines)"},rectsp6a:{frequencies:[261.6255653006,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Rectangle minimal beats spectrum of order 6 union with inversion"},rectsp7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Rectangle minimal beats spectrum of order 7"},rectsp7a:{frequencies:[261.6255653006,281.75060878526,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,332.97799220076,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Rectangle minimal beats spectrum of order 7 union with inversion"},rectsp8:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Rectangle minimal beats spectrum of order 8"},rectsp8a:{frequencies:[261.6255653006,279.06726965397,281.75060878526,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,322.00069575458,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Rectangle minimal beats spectrum of order 8 union with inversion"},rectsp9:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,377.90359432309,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,523.2511306012],description:"Rectangle minimal beats spectrum of order 9"},rectsp9a:{frequencies:[261.6255653006,277.01530443593,279.06726965397,281.75060878526,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,523.2511306012],description:"Rectangle minimal beats spectrum of order 9 union with inversion"},redfield:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Redfield New Diatonic"},reinhard:{frequencies:[261.6255653006,277.01530443593,294.32876096318,309.81974838229,327.03195662575,348.83408706747,369.35373924791,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Reinhard 19-limit superparticular"},reinhard17:{frequencies:[261.6255653006,277.01530443593,277.97716313189,286.94416839421,292.40504357126,296.50897400735,307.79478270659,317.68818643644,338.57426097725,342.12573923925,369.35373924791,400.13321751856,404.33041910093,430.91269578922,444.76346101102,477.08191319521,492.47165233054,523.2511306012],description:`Reinhard's Harmonic-17 tuning for "Tresspass", 1998`},renteng1:{frequencies:[261.6255653006,285.40970760065,313.15788183285,391.64553850062,426.52890806662,523.2511306012],description:"Gamelan Renteng from Chileunyi (Tg. Sari). 1/1=330 Hz"},renteng2:{frequencies:[261.6255653006,294.32876096318,311.77048523333,396.07199334683,425.86840190162,523.2511306012],description:"Gamelan Renteng from Chikebo (Tg. Sari). 1/1=360 Hz"},renteng3:{frequencies:[261.6255653006,278.97471276149,312.97903559457,379.60005211265,409.44065404912,468.42785143649,523.2511306012],description:"Gamelan Renteng from Lebakwangi (Pameungpeuk). 1/1=377 Hz"},renteng4:{frequencies:[261.6255653006,296.45730715573,311.93819010347,397.0826586675,424.17395032031,523.2511306012],description:"Gamelan Renteng Bale` bandung from Kanoman (Cheribon). 1/1=338 Hz"},robot:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Dead Robot (see lattice)"},robot_live:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,376.74081403286,392.4383479509,418.60090448096,446.50763144636,490.54793493862,502.32108537715,523.2511306012],description:"Live Robot"},romieu:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Romieu's Monochord, Memoire theorique & pratique (1758)"},romieu_inv:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Romieu inverted, Pure (just) C minor in Wilkinson: Tuning In"},rosati_21:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Dante Rosati, JI guitar tuning"},rosati_21a:{frequencies:[261.6255653006,280.31310567921,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,488.36772189445,523.2511306012],description:"Alternative version of rosati_21 with more tetrads"},rousseau:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Rousseau's Monochord, Dictionnaire de musique (1768)"},rousseauw:{frequencies:[261.6255653006,276.81658657456,293.31219032635,311.14941643136,328.83652403056,349.33732971591,369.19521129916,391.76004912942,415.1051791302,439.20783490896,466.32059269121,492.40223109551,523.2511306012],description:"Jean-Jacques Rousseau's temperament (1768)"},rsr_12:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"RSR - 7 limit JI"},"rvf-1":{frequencies:[261.6255653006,272.14556467328,280.20095193414,292.09989854643,304.19649364034,313.29104303136,326.0297292803,340.21856244106,350.08660369014,364.11104988921,374.67209286633,390.97784457618,406.87534373272,419.03967825638,436.39317047385,454.92493848389,468.39051363853,487.22455955444,508.94280091833,523.2511306012],description:"D-A 695 cents, the increment is 0.25 cents, interval range 49.5 to 75.5"},"rvf-2":{frequencies:[261.6255653006,272.87751533003,278.75612859219,292.27711197479,305.71136588092,312.51386339015,326.29348693151,342.97106251658,349.87433921674,364.79522794952,372.13777859784,391.13596290168,408.38225803817,417.4934384938,436.65792486176,457.83788806384,467.7011114131,487.81592522452,513.9947144098,523.2511306012],description:"695 cents, 0.607 cents, 31-90 cents, C-A# is 7/4."},"rvf-3":{frequencies:[261.6255653006,272.98787180262,278.19314238431,292.29399505039,306.11778315204,312.24320803046,326.25579420701,343.90343447252,349.81371586656,364.81629995674,371.08598724028,391.15855645336,408.71263878415,416.89098941754,436.60748307387,458.73792719255,467.48503753613,487.78774868553,515.83876338215,523.2511306012],description:"694.737, 0.082, 25-97, the fifth E#-B# is 3/2."},majmin:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Malcolm & Marpurg 4 (Yamaha major & minor) mixed. Mersenne/Ban without D#"},major_clus:{frequencies:[261.6255653006,275.93321340298,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Chalmers' Major Mode Cluster"},major_wing:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Chalmers' Major Wing with 7 major and 6 minor triads"},malcolm:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Malcolm's Monochord (1721), and C major in Yamaha synths, Wilkinson: Tuning In"},malcolm2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,463.29527188648,490.54793493862,523.2511306012],description:"Malcolm 2"},malcolm_ap:{frequencies:[261.6255653006,279.47938236087,293.66476791741,313.97746652079,326.1838132033,349.22823143301,369.99442271164,391.99543598175,419.68935090103,436.0054062308,466.16376151809,489.82458627646,523.2511306012],description:"Best approximations in mix of all ETs from 12-23 to Malcolm's Monochord"},malcolm_me:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Malcolm's Mid-East"},malcolme:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,496.11959049595,523.2511306012],description:"Most equal interval permutation of Malcolm's Monochord"},malcolme2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Inverse most equal interval permutation of Malcolm's Monochord"},malcolms:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,369.99442271164,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Symmetrical version of Malcolm's Monochord and Albion scale"},malerbi:{frequencies:[261.6255653006,275.62199471997,292.73769384471,310.07474405997,327.54963108844,348.83408706747,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,489.99465727995,523.2511306012],description:"Luigi Malerbi's well-temperament nr.1 (1794) (nr.2 = Young)"},malgache:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,353.19451315581,367.91095120397,392.4383479509,413.89982010446,441.49314144476,459.88868900496,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malgache1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,310.07474405997,327.03195662575,353.19451315581,376.74081403286,392.4383479509,418.60090448096,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malgache2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,353.19451315581,367.91095120397,392.4383479509,408.78994578219,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malkauns:{frequencies:[261.6255653006,313.95067836072,348.83408706747,418.60090448096,465.11211608996,523.2511306012],description:"Raga Malkauns, inverse of prime_5"},mambuti:{frequencies:[261.6255653006,294.34406205295,331.72862856444,394.26624244126,466.16376151809,525.06772693396,590.39077962608,792.18471060794,999.82182774046],description:"African Mambuti Flutes (aerophone; vertical wooden; one note each)"},mandelbaum5:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,454.2110508691,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"Mandelbaum's 5-limit 19-tone scale, kleismic detempered circle of minor thirds"},mandelbaum7:{frequencies:[261.6255653006,272.52663052146,280.31310567921,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Mandelbaum's 7-limit 19-tone scale"},marimba1:{frequencies:[261.6255653006,284.4818984792,319.50463429683,342.83241505062,371.92288545737,411.72190027758,457.09800545097,500.48847822777,547.68138927822,612.97866327818,651.68292300609,728.11694797601,807.8963375694,903.69557412727,1013.19282257599,1069.7265813247,1225.95732655636,1303.36584601218],description:"Marimba of the Bakwese, SW Belgian Congo (Zaire). 1/1=140.5 Hz"},marimba2:{frequencies:[261.6255653006,279.11058864149,318.03161540472,343.03050002254,379.95718438213,421.58889248327,458.6849347701,519.33670373121,571.2689787911,613.68721319418,694.83488613378,761.23234162637,846.59395682498,953.56868388592,1049.52904699774,1145.8425062572,1271.3918647407,1389.66977226756],description:"Marimba of the Bakubu, S. Belgian Congo (Zaire). 1/1=141.5 Hz"},marimba3:{frequencies:[261.6255653006,296.73398952435,348.2210758395,420.13030572059,476.50902003141,518.73708886244,603.49292471609,696.44215167899,840.26061144117,953.01804006282,1037.47417772488],description:"Marimba from the Yakoma tribe, Zaire. 1/1=185.5 Hz"},marion:{frequencies:[261.6255653006,269.91407136119,278.46532473603,287.28749371714,296.38899008685,305.77900572762,315.46632790985,325.46074015958,335.7715953476,346.4093067252,357.3838291689,368.70624618807,380.38737313392,392.4383479509,411.71310103548,431.93429139282,453.14890242083,475.40520223986,498.75490298644,523.2511306012],description:"scale with two different ET step sizes"},marion1:{frequencies:[261.6255653006,262.79353657426,272.52663052146,280.31310567921,286.15296204753,294.32876096318,305.22982618403,311.45900631024,327.03195662575,336.37572681506,343.38355445704,350.39138209902,367.91095120397,373.75080757229,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,457.84473927605,467.18850946536,476.92160341255,490.54793493862,515.07533168556,523.2511306012],description:"Marion's 7-limit Scale # 1"},marion10:{frequencies:[261.6255653006,267.07609791103,272.52663052146,286.15296204753,290.69507255622,296.75121990114,305.22982618403,317.94773560837,327.03195662575,339.14425131559,356.10146388137,363.36884069528,370.93902487643,381.53728273004,400.61414686654,406.97310157871,408.78994578219,423.93031414449,436.04260883433,445.12682985172,457.84473927605,474.80195184183,476.92160341255,484.4917875937,508.71637697339,523.2511306012],description:"Marion's 7-limit Scale # 10"},marion15:{frequencies:[261.6255653006,269.10058145205,280.31310567921,288.32205155576,299.00064605783,313.95067836072,320.35783506196,327.03195662575,336.37572681506,353.19451315581,358.80077526939,360.4025644447,373.75080757229,384.42940207435,392.4383479509,403.65087217807,418.60090448096,420.46965851882,427.14378008261,448.50096908674,461.31528248922,470.92601754108,480.53675259294,504.56359022259,523.2511306012],description:"Marion's 7-limit Scale # 15"},marion19:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,294.32876096318,309.04519901133,313.95067836072,315.35224388912,327.03195662575,336.37572681506,343.38355445704,353.19451315581,366.27579142084,367.91095120397,373.75080757229,392.4383479509,403.65087217807,412.06026534844,420.46965851882,441.49314144476,457.84473927605,470.92601754108,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Marion's 7-limit Scale # 19"},marion26:{frequencies:[261.6255653006,271.31540105247,279.06726965397,284.8811711051,293.02063313667,303.87324917877,305.22982618403,310.07474405997,325.57848126297,334.88072358477,341.85740532612,348.83408706747,366.27579142084,379.84156147346,390.69417751556,406.97310157871,418.60090448096,427.32175665765,434.10464168396,455.80987376816,465.11211608996,474.80195184183,488.36772189445,512.78610798918,523.2511306012],description:"Marion's 7-limit Scale # 26"},marissing:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Peter van Marissing, just scale, Mens en Melodie, 1979"},"marpurg-1":{frequencies:[261.6255653006,276.86979852503,294.32876096318,311.47852302926,329.62755691287,348.83408706747,370.83100115625,392.4383479509,415.30469757995,439.50340943686,467.21778431035,494.44133512215,523.2511306012],description:"Other temperament by Marpurg, 3 fifths 1/3 Pyth. comma flat"},"marpurg-t1":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Marpurg's temperament nr.1, Kirnbergersche Temperatur (1766)"},"marpurg-t11":{frequencies:[261.6255653006,278.12325072816,294.32876096318,311.47852302926,331.11985608357,348.83408706747,371.66947115233,392.4383479509,416.24372513446,441.49314144476,466.16376151809,496.67978412536,523.2511306012],description:"Marpurg's temperament nr.11, 6 tempered fifths"},"marpurg-t12":{frequencies:[261.6255653006,279.06706247425,294.66131982972,310.42509491746,330.74614861362,349.22823143301,372.08941681833,392.88175996935,418.60059350213,441.99197952365,465.63764214343,496.11922267243,523.2511306012],description:"Marpurg's temperament nr.12, 4 tempered fifths"},"marpurg-t2":{frequencies:[261.6255653006,278.75210322491,294.32876096318,313.59611581451,331.11985608357,348.83408706747,371.66947115233,392.4383479509,418.12815462835,441.49314144476,470.39417348663,495.55929511749,523.2511306012],description:"Marpurg's temperament nr.2, 2 tempered fifths, Neue Methode (1790)"},"marpurg-t3":{frequencies:[261.6255653006,276.55731914056,294.32876096318,311.12698372208,331.11985608357,348.83408706747,368.74309237173,392.4383479509,414.83597850347,441.49314144476,465.11211608996,491.65745674141,523.2511306012],description:"Marpurg's temperament nr.3, 2 tempered fifths"},"marpurg-t4":{frequencies:[261.6255653006,276.86979852503,294.32876096318,310.07474405997,331.11985608357,348.83408706747,369.15973155124,392.4383479509,415.30469757995,441.49314144476,465.11211608996,492.21297564769,523.2511306012],description:"Marpurg's temperament nr.4, 2 tempered fifths"},"marpurg-t5":{frequencies:[261.6255653006,277.80935667884,294.32876096318,312.53552595124,331.11985608357,348.83408706747,370.41247575694,392.4383479509,416.71403480995,441.49314144476,468.80328869252,493.88330125613,523.2511306012],description:"Marpurg's temperament nr.5, 2 tempered fifths"},"marpurg-t7":{frequencies:[261.6255653006,276.86979852503,293.00227310437,310.07474405997,329.62755691287,348.83408706747,369.15973155124,390.66969766777,415.30469757995,439.50340943686,465.11211608996,492.21297564769,523.2511306012],description:"Marpurg's temperament nr.7, 3 tempered fifths"},"marpurg-t8":{frequencies:[261.6255653006,277.49581689502,293.33333347996,311.12698372208,329.99999983505,348.83408706747,369.99442271164,391.11111150212,414.83597850347,440,466.69047534984,493.32589719545,523.2511306012],description:"Marpurg's temperament nr.8, 4 tempered fifths"},"marpurg-t9":{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,350.01785633742,371.24999944327,392.4383479509,416.24372513446,441.49314144476,468.27419030811,496.67978412536,523.2511306012],description:"Marpurg's temperament nr.9, 4 tempered fifths"},marpurg:{frequencies:[261.6255653006,277.49581689502,293.83071040301,311.12698372208,329.99999983505,349.42557141756,369.99442271164,392.4383479509,415.53937569366,440,466.69047534984,494.16238213869,523.2511306012],description:"Marpurg, Versuch ueber die musikalische Temperatur (1776), p. 153"},marpurg1:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Marpurg's Monochord no.1 (1776)"},marpurg3:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Marpurg 3"},marpurg4:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Marpurg 4, also Yamaha Pure Minor"},marsh:{frequencies:[261.6255653006,275.50659558095,293.15632631094,311.93674864629,328.48713220126,349.53094576004,368.07595926604,391.65594491223,412.43597848639,438.85779226656,466.97226207056,491.74834273545,523.2511306012],description:"John Marsh's meantone temperament (1809)"},marsh2:{frequencies:[261.6255653006,277.22760066578,293.66431501254,311.21660561883,329.70790803338,349.18845812715,369.99117208793,391.90679138833,415.30984563838,439.96491544382,466.29335337935,494.03030700757,523.2511306012],description:"John Marsh's quasi-equal temperament (1840)"},mavila12:{frequencies:[261.6255653006,256.98292999787,287.53945699376,321.72930260925,316.02010771872,353.59644178868,347.32175377489,388.62000642034,381.72381344999,427.11263899087,477.89842030218,469.41794908116,525.2340355968],description:"A 12-note mavila scale (for warping meantone-based music)"},mavila9:{frequencies:[261.6255653006,287.53945699376,316.02010771872,321.72930260925,353.59644178868,388.62000642034,427.11263899087,434.82882549415,477.89842030218,525.2340355968],description:"9-note scale of mavila temperament (TOP tuning)"},mavlim1:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,465.11211608996,523.2511306012],description:"First 27/25&135/128 scale"},mbira_banda:{frequencies:[261.6255653006,291.13134764929,327.53979283172,368.50142299854,404.88256627495,443.57258128492,480.10063929961,555.00605988575],description:"Mubayiwa Bandambira's tuning of keys R2-R9 from Berliner: The soul of mbira."},mbira_banda2:{frequencies:[261.6255653006,321.16993719469,360.29289210659,380.8360868427,422.32008370967,461.34206956593,587.32953583482,513.96502576833,761.67217368541,711.48673390068,849.04255025658,936.10488897708,1046.50286568598,633.49659152295,1055.60951665979,1174.65975017952,1321.5609185619,1486.83332446121,1633.62433483289,1789.73120457747,1937.11498804338,2239.34414798534],description:"Mubayiwa Bandambira's Mbira DzaVadzimu tuning B1=114 Hz"},mbira_gondo:{frequencies:[261.6255653006,315.28798447451,345.21700307457,379.51849407657,422.56409582244,461.07566488503,564.05539604512,516.94239487354,778.57545143809,697.24717811406,842.69088701475,926.42243447898,1029.11884353824,628.3943418294,1040.47545270591,1153.813137635,1308.64724593201,1415.59600512246,1572.51770682594,1715.83353717518,1883.05646656025,2103.91477035149],description:"John Gondo's Mbira DzaVadzimu tuning B1=122 Hz"},mbira_kunaka:{frequencies:[261.6255653006,292.98704147282,325.27731021818,350.44066402496,386.59871897734,434.19311733646,479.82340237272,507.76825077597],description:"John Kunaka's mbira tuning of keys R2-R9"},mbira_kunaka2:{frequencies:[261.6255653006,340.26769547546,358.83903996308,405.11650317313,448.98591596033,490.75518955849,622.61349925697,541.70354187177,817.28364083393,724.3415782324,907.35693646861,997.5144154576,1094.73088724383,673.88551872153,1085.91380691742,1216.08403680913,1350.10935126711,1454.55340013417,1604.63250673428,1802.17976955899,1991.5747030301,2107.56373750553],description:"John Kunaka's Mbira DzaVadzimu tuning B1=113 Hz"},mbira_mude:{frequencies:[261.6255653006,289.28740724512,309.15639683494,364.68988616898,372.56793743951,408.17001145418,507.1819925915,459.74594725879,689.63684605432,610.50517472746,760.79276355093,824.39562982862,887.65774573556,562.75365576207,888.68380073365,1015.53708814899,1126.80895076279,1206.28956516212,1365.00817887311,1507.58874420517,1666.02447560859,1935.99638964471],description:"Hakurotwi Mude's Mbira DzaVadzimu tuning B1=132 Hz"},mbira_mujuru:{frequencies:[261.6255653006,281.37682788104,301.05008478933,329.43721154897,394.9500460767,419.64523240241,533.01280425363,488.77489658044,700.88132804992,602.10016957865,765.19999119503,809.29752893,942.6160133907,577.57308891646,937.72844143307,1046.50286568598,1145.18149427149,1243.7900049313,1411.51350174391,1540.15576038017,1658.34356815416,1904.9365287586],description:"Ephat Mujuru's Mbira DzaVadzimu tuning, B1=106 Hz"},mbira_zimb:{frequencies:[261.6255653006,276.86260193655,305.95868600104,343.62544191138,379.08031027329,408.40584780369,453.41648894489,507.76825077597],description:"Shona mbira scale"},mboko_bow:{frequencies:[261.6255653006,347.61817721989,375.37611551499],description:"African Mboko Mouth Bow (chordophone, single string, plucked)"},mboko_zither:{frequencies:[261.6255653006,294.68429813772,319.3201344739,354.92237405774,396.55020354877,418.67676528474,472.67116512585,513.07516347663],description:"African Mboko Zither (chordophone; idiochordic palm fibre, plucked)"},mcclain:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,331.11985608357,367.91095120397,392.4383479509,408.78994578219,441.49314144476,490.54793493862,510.98743222773,523.2511306012],description:"McClain's 12-tone scale, see page 119 of The Myth of Invariance"},mcclain_18:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,319.36714514233,327.03195662575,331.11985608357,344.91651675372,367.91095120397,383.2405741708,392.4383479509,408.78994578219,413.89982010446,441.49314144476,459.88868900496,490.54793493862,496.67978412536,510.98743222773,523.2511306012],description:"McClain's 18-tone scale, see page 143 of The Myth of Invariance"},mcclain_8:{frequencies:[261.6255653006,294.32876096318,327.03195662575,367.91095120397,392.4383479509,408.78994578219,441.49314144476,490.54793493862,523.2511306012],description:"McClain's 8-tone scale, see page 51 of The Myth of Invariance"},mccoskey_22:{frequencies:[261.6255653006,270.06509966514,279.06726965397,287.78812183066,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,382.37582620857,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,506.89953276991,523.2511306012],description:"31-limit rational interpretation of 22-tET, Marion McCoskey"},mclaren_bar:{frequencies:[261.6255653006,281.77400528964,292.14326370913,304.76756192248,325.50548568708,328.66136118639,353.45752508165,360.67039921732,379.1552038283,397.63971531932,405.75513620619,436.411067852,476.98680497297,521.16951219839],description:"Metal bar scale. see McLaren, Xenharmonicon 15, pp.31-33"},mclaren_cps:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,306.59245933664,327.03195662575,343.38355445704,367.91095120397,392.4383479509,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"2)12 [1,2,3,4,5,6,8,9,10,12,14,15] a degenerate CPS"},mclaren_harm:{frequencies:[261.6255653006,279.06726965397,299.00064605783,304.4370214407,307.2300216374,348.83408706747,380.54627680087,389.39619021485,393.97732186443,398.6675280771,465.11211608996,523.2511306012],description:'from "Wilson part 9", claimed to be Schlesingers Dorian Enharmonic, prov. unkn'},mclaren_rath1:{frequencies:[261.6255653006,279.06726965397,299.00064605783,334.88072358477,341.71502406609,348.83408706747,372.08969287196,380.54627680087,389.39619021485,398.6675280771,492.47165233054,507.3950357345,523.2511306012],description:"McLaren Rat H1"},mclaren_rath2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,334.88072358477,341.71502406609,348.83408706747,380.54627680087,389.39619021485,398.6675280771,440.63253103259,452.54151835779,465.11211608996,523.2511306012],description:"McLaren Rat H2"},mean10:{frequencies:[261.6255653006,272.18829429226,292.14313377277,313.56091500001,326.220453695,350.13653284039,364.27275363262,390.97854693193,406.76370320307,436.58461973079,468.59178605305,487.51045723915,523.2511306012],description:"3/10-comma meantone scale"},mean11:{frequencies:[261.6255653006,272.83457350033,292.34115464648,313.24237654315,326.6628419965,350.01792709981,365.01399145768,391.11103243201,407.86767761879,437.02858581415,468.2743796482,488.33699124025,523.2511306012],description:"3/11-comma meantone scale. A.J. Ellis no. 10"},mean11ls_19:{frequencies:[261.6255653006,272.93479580544,280.25721516838,292.37183188538,305.01012622427,313.1930753928,326.73140514978,340.85495140859,349.99956372811,365.12891753666,374.92476290643,391.13155279262,408.03891236124,418.98596425085,437.09738047696,455.99169236578,468.2252457596,488.46511500326,509.57988860269,523.2511306012],description:"Least squares appr. to 3/2, 5/4, 7/6, 15/14 and 11/8, Petr Par\xEF\xBF\xBDzek"},mean13:{frequencies:[261.6255653006,273.83184954717,292.64606374809,312.75295135888,327.34460995374,349.8355370417,366.15730590163,391.31494185909,409.57195510156,437.7124891801,467.78648270341,489.61131479929,523.2511306012],description:"3/13-comma meantone scale"},mean14:{frequencies:[261.6255653006,274.22463192287,292.76593693997,312.56088569186,327.61283758281,349.76390952171,366.60744235102,391.39507854003,410.24343789088,437.98145930734,467.59494724206,490.11285326462,523.2511306012],description:"3/14-comma meantone scale (Giordano Riccati, 1762)"},mean14_15:{frequencies:[261.6255653006,274.22463192287,279.31500250577,292.76593693997,306.86462618694,312.56088569186,327.61283758281,349.76390952171,366.60744235102,391.39507854003,410.24343789088,417.8586951835,437.98145930734,467.59494724206,490.11285326462,523.2511306012],description:"15 of 3/14-comma meantone scale"},mean14_19:{frequencies:[261.6255653006,274.22463192287,279.31500250577,292.76593693997,306.86462618694,312.56088569186,327.61283758281,343.38964426558,349.76390952171,366.60744235102,373.41269440635,391.39507854003,410.24343789088,417.8586951835,437.98145930734,459.07327263526,467.59494724206,490.11285326462,513.71515101261,523.2511306012],description:"19 of 3/14-comma meantone scale"},mean14_7:{frequencies:[261.6255653006,292.76593693997,327.61283758281,349.76390952171,391.39507854003,437.98145930734,490.11285326462,523.2511306012],description:"Least squares appr. of 5L+2S to Ptolemy's Intense Diatonic scale"},mean14a:{frequencies:[261.6255653006,274.24690838881,292.77273178776,312.55000460003,327.62804498858,349.75985073129,366.63296888199,391.39962048672,410.28152481852,437.9967071602,467.58409501387,490.1412915133,523.2511306012],description:'fifth of sqrt(5/2)-1 octave "recursive" meantone, Paul Hahn'},mean16:{frequencies:[261.6255653006,274.864106667,292.9608347655,312.24903186879,328.04917632434,349.64754658398,367.34009701877,391.52533508436,411.33694767869,438.41888642025,467.28387071703,490.92894854125,523.2511306012],description:"3/16-comma meantone scale"},mean17:{frequencies:[261.6255653006,273.72412433093,292.61316553779,312.80569569783,327.2710181906,349.85520131118,366.03383354947,391.29294726693,409.38781813791,437.63868343995,467.83907547741,489.47372981579,523.2511306012],description:"4/17-comma meantone scale, least squares error of 5/4 and 3/2"},mean17_17:{frequencies:[261.6255653006,273.72412433093,279.67971414776,292.61316553779,306.14471057197,312.80569569783,327.2710181906,349.85520131118,366.03383354947,373.99786656393,391.29294726693,409.38781813791,418.29512920081,437.63868343995,457.8767570375,467.83907547741,489.47372981579,523.2511306012],description:"4/17-comma meantone scale with split C#/Db, D#/Eb, F#/Gb, G#/Ab and A#/Bb"},mean17_19:{frequencies:[261.6255653006,273.72412433093,279.67971414776,292.61316553779,306.14471057197,312.80569569783,327.2710181906,342.40527209253,349.85520131118,366.03383354947,373.99786656393,391.29294726693,409.38781813791,418.29512920081,437.63868343995,457.8767570375,467.83907547741,489.47372981579,512.10885267608,523.2511306012],description:"4/17-comma meantone scale, least squares error of 5/4 and 3/2"},mean18:{frequencies:[261.6255653006,272.71477685134,292.30447317753,313.30134186202,326.58087306932,350.03988839382,364.87661266094,391.0864943589,407.66301227525,436.94633423564,468.33314368944,488.18382342185,523.2511306012],description:"5/18-comma meantone scale (Smith). 3/2 and 5/3 eq. beat. A.J. Ellis no. 9"},mean19:{frequencies:[261.6255653006,273.06170311607,292.41066686775,313.13068664042,326.81820677503,349.97632128221,365.27443420834,391.15752841841,408.25574814862,437.18446858874,468.16306089008,488.62733218513,523.2511306012],description:"5/19-comma meantone scale, fifths beats three times third. A.J. Ellis no. 11"},mean19r:{frequencies:[261.6255653006,273.04332227389,292.40504357126,313.13971948727,326.80563693258,349.97968716666,365.25335892465,391.15376651139,408.22434232755,437.17185753972,468.17206422213,488.60384173026,523.2511306012],description:"Approximate 5/19-comma meantone with 19/17 tone, Petr Parizek, 2002"},mean23:{frequencies:[261.6255653006,274.15058593695,292.74334833321,312.59706303545,327.56228503462,349.77740346966,366.52259116395,391.37997903742,410.11684180717,437.93077103284,467.63102771476,490.01832104213,523.2511306012],description:"5/23-comma meantone scale, A.J. Ellis no. 4"},mean23six:{frequencies:[261.6255653006,273.11604376732,292.42729246507,313.10398392891,326.85537164611,349.96637341293,365.33674088125,391.16864715511,408.34860251967,437.22175336101,468.13644404983,488.69678846289,523.2511306012],description:"6/23-comma meantone scale"},mean25:{frequencies:[261.6255653006,272.66208311698,292.28833573479,313.32728859832,326.54481265413,350.04955123355,364.81618195011,391.07569872695,407.57299290994,436.91015056532,468.35900068872,488.11644468937,523.2511306012],description:"7/25-comma meantone scale, least square weights 3/2:0 5/4:1 6/5:1"},mean26:{frequencies:[261.6255653006,272.91754119498,292.36655103694,313.20156187458,326.7196004604,350.00272362315,365.10913291207,391.12802157824,408.00943064927,437.08553692506,468.23370304224,488.44305713046,523.2511306012],description:"7/26-comma meantone scale (Woolhouse 1835). Almost equal to meaneb742"},mean26_21:{frequencies:[261.6255653006,272.91754592428,280.26986822267,292.36655272572,304.98534036063,313.20156006546,326.71960423481,335.52133892506,340.8210986211,350.00272362315,365.10913712997,374.9450750913,391.12802157824,408.00943771953,419.00109777107,437.08553944976,455.95052092314,468.23370033762,488.44306277317,501.60158217053,509.52467838008,523.2511306012],description:"21 of 7/26-comma meantone scale (Woolhouse 1835)"},mean27:{frequencies:[261.6255653006,273.15429014256,292.43899158768,313.08519355925,326.88152513903,349.9593710588,365.38059276675,391.17647406766,408.41395592075,437.24799400905,468.11771609009,488.74567091648,523.2511306012],description:"7/27-comma meantone scale, least square weights 3/2:2 5/4:1 6/5:1"},mean29:{frequencies:[261.6255653006,273.57932033947,292.56893127899,312.87664195194,327.1720749345,349.88164908166,365.86785468743,391.26336919078,409.14031659695,437.53944680455,467.90980928584,489.28875967044,523.2511306012],description:"7/29-comma meantone scale, least square weights 3/2:4 5/4:1 6/5:1"},mean2sev:{frequencies:[261.6255653006,272.52663052146,292.24684137387,313.39402123097,326.45210604021,350.07440004945,364.66083404534,391.04793957621,407.34160211012,436.81711699543,468.42550014967,487.94322738789,523.2511306012],description:"2/7-comma meantone scale. Zarlino's temperament (1558). See also meaneb371"},mean2sev_15:{frequencies:[261.6255653006,272.52663052146,280.55692507618,292.24689370448,304.42377254813,313.39402847191,326.45203249943,350.07447082328,364.66081719444,391.04786051887,407.34165622677,419.34452602299,436.81710690282,468.42541627199,487.94330348661,523.2511306012],description:"15 of 2/7-comma meantone scale"},mean2sev_19:{frequencies:[261.6255653006,272.52663052146,280.55692507618,292.24689370448,304.42377254813,313.39402847191,326.45203249943,340.0543130973,350.07447082328,364.66081719444,375.40603866065,391.04786051887,407.34165622677,419.34452602299,436.81710690282,455.01770749831,468.42541627199,487.94330348661,508.27414914183,523.2511306012],description:"19 of 2/7-comma meantone scale"},mean2sev_31:{frequencies:[261.6255653006,264.72620698393,272.52663052146,280.55692507618,283.88190679319,292.24689370448,300.8583415146,304.42377254813,313.39402847191,317.10820138491,326.45203249943,336.07138073182,340.0543130973,350.07447082328,354.22315547012,364.66081719444,375.40603866065,379.85514366424,391.04786051887,395.6823437549,407.34165622677,419.34452602299,424.31412061457,436.81710690282,449.68851049921,455.01770749831,468.42541627199,473.97693555703,487.94330348661,502.32108537715,508.27414914183,523.2511306012],description:"31 of 2/7-comma meantone scale"},mean2seveb:{frequencies:[261.6255653006,274.26749945295,292.59076110537,312.44357330613,327.42660602987,349.76102048238,366.6169314736,391.04794861134,410.01084835752,437.49574139527,467.27496094916,489.74950989452,523.2511306012],description:'"2/7-comma" meantone with equal beating fifths. A.J. Ellis no. 8'},mean2sevr:{frequencies:[261.6255653006,272.52663052146,292.24289114742,313.39346366789,326.45152465405,350.07234194042,364.65868952128,391.04531121882,407.33886585294,436.81651812993,468.41855142334,487.93599106598,523.2511306012],description:"Rational approximation to 2/7-comma meantone, 1/1 = 262.9333"},mean9:{frequencies:[261.6255653006,274.03547926168,292.70827332867,306.59245933664,327.48360691354,349.79835961887,366.39065074918,391.35653176554,409.92008797511,437.85206746661,467.68706357679,489.87127257422,523.2511306012],description:"2/9-comma meantone scale, Lemme Rossi, Sistema musico (1666)"},mean94:{frequencies:[261.6255653006,268.79084150406,291.09659021292,315.25339315665,323.88740273232,350.76536842075,360.37196303797,390.27761906502,400.96635635801,434.24075936811,470.27645613296,483.15616342113,523.2511306012],description:"4/9-comma meantone scale"},mean9_15:{frequencies:[261.6255653006,274.03547926168,279.45274708261,292.70827332867,306.59245933664,312.65343270838,327.48360691354,349.79835961887,366.39065074918,391.35653176554,409.92008797511,418.0235894185,437.85206746661,467.68706357679,489.87127257422,523.2511306012],description:"15 of 2/9-comma meantone scale"},mean9_19:{frequencies:[261.6255653006,274.03547926168,279.45274708261,292.70827332867,306.59245933664,312.65343270838,327.48360691354,343.0174228875,349.79835961887,366.39065074918,373.63364091796,391.35653176554,409.92008797511,418.0235894185,437.85206746661,458.62082212371,467.68706357679,489.87127257422,513.10776453427,523.2511306012],description:"19 of 2/9-comma meantone scale"},mean9_31:{frequencies:[261.6255653006,268.72322665693,274.03547926168,279.45274708261,287.03404351137,292.70827332867,298.49467410529,306.59245933664,312.65343270838,321.13524775754,327.48360691354,333.95746354843,343.0174228875,349.79835961887,359.28803828513,366.39065074918,373.63364091796,383.76997851754,391.35653176554,401.97367512027,409.92008797511,418.0235894185,429.36393755067,437.85181455341,446.50763144636,458.62082212371,467.68706357679,480.3749841712,489.87127257422,499.55528826613,513.10776453427,523.2511306012],description:"31 of 2/9-comma meantone scale"},meaneb1071:{frequencies:[261.6255653006,273.45959631537,292.5323192343,305.76452283047,327.09038632535,349.9034421565,365.73073124967,391.23900009103,408.93579686983,437.45744778434,457.24482979639,489.13584427285,523.2511306012],description:"Equal beating 7/4 = 3/2 same."},meaneb1071a:{frequencies:[261.6255653006,273.94115519525,292.67936294368,306.45675889694,327.41929816594,349.81553441422,366.28252094772,391.33731744348,409.75863641311,437.78732645584,458.39517452459,489.75074612717,523.2511306012],description:"Equal beating 7/4 = 3/2 opposite."},meaneb341:{frequencies:[261.6255653006,272.43747957464,292.21954801903,313.43802026715,326.39113133433,350.09085029289,364.55867287416,391.02956482064,407.18921698842,436.75579855003,468.46925117002,487.82916876009,523.2511306012],description:"Equal beating 6/5 = 5/4 same. Almost 4/15 Pyth. comma"},meaneb371:{frequencies:[261.6255653006,272.52577151658,292.24657972098,313.39444482621,326.45151771442,350.07455777399,364.65985037488,391.0477633913,407.34013625771,436.81652657765,468.42591953828,487.94213100406,523.2511306012],description:"Equal beating 6/5 = 3/2 same. Practically 2/7-comma (Zarlino)"},meaneb371a:{frequencies:[261.6255653006,269.83862220337,291.42039690163,314.72828847419,324.6081803116,350.57044084899,361.57569171511,390.49462500658,421.72650333798,434.96526321606,469.75391665508,484.50062400899,523.2511306012],description:"Equal beating 6/5 = 3/2 opposite. Almost 2/5-comma"},meaneb381:{frequencies:[261.6255653006,275.92799893014,293.28437056932,311.73248946737,328.77414682856,349.45463702831,368.55847249214,391.74146894101,416.38271791821,439.14534885862,466.76838786866,492.28548089506,523.2511306012],description:"Equal beating 6/5 = 8/5 same. Almost 1/7-comma"},meaneb451:{frequencies:[261.6255653006,274.36682021224,292.8092284668,312.49148032108,327.70992276921,349.73795145032,366.77030983847,391.42412846541,410.48661799548,438.07873640926,467.5258138363,490.29448158868,523.2511306012],description:"Equal beating 5/4 = 4/3 same, 5/24 comma meantone. A.J. Ellis no. 6"},meaneb471:{frequencies:[261.6255653006,272.3284467197,292.18612898941,313.49179640307,326.31648163178,350.11087068539,364.43361138613,391.00720457415,407.00321492741,436.68087780422,468.52283272721,487.68970701588,523.2511306012],description:"Equal beating 5/4 = 3/2 same. Almost 5/17-comma"},meaneb471a:{frequencies:[261.6255653006,274.14912748586,292.7429036132,312.59777626068,327.56128980523,349.7776701617,366.52092076205,391.37968062521,410.11434970273,437.92977184699,467.63173811584,490.01645860508,523.2511306012],description:"Equal beating 5/4 = 3/2 opposite. Almost 1/5 Pyth. Gottfried Keller (1707)"},meaneb471b:{frequencies:[261.6255653006,272.31089540773,292.18072491748,313.50040506268,326.30440921209,350.11400731728,364.41338872146,391.00370158472,406.97310157871,436.668886633,468.53149836075,487.66729542944,523.2511306012],description:"21/109-comma meantone with 9/7 major thirds, almost equal beating 5/4 and 3/2"},meaneb472:{frequencies:[261.6255653006,270.83769079127,291.72826852127,314.23020335825,325.29440843388,350.38540704884,362.72286472858,390.7008399429,404.45761497645,435.65472502222,469.25816799182,485.78126704788,523.2511306012],description:"Beating of 5/4 = twice 3/2 same. Almost 5/14-comma"},meaneb472_19:{frequencies:[261.6255653006,270.8378472333,281.80541953687,291.72826852127,302.00051792575,314.23002185182,325.29459633135,336.74877333101,350.38540704884,362.72307424558,377.41153667283,390.7008399429,404.45808222448,420.83660282593,435.65497666633,450.99513069838,469.25816799182,485.78154764623,502.88674365212,523.2511306012],description:"Beating of 5/4 = twice 3/2 same, 19 tones"},meaneb472a:{frequencies:[261.6255653006,274.74648495017,292.92493846141,312.30633997417,327.96897748493,349.66886860972,367.20529370531,391.50146074488,411.13561642091,438.33843670622,467.34113372786,490.7787182415,523.2511306012],description:"Beating of 5/4 = twice 3/2 opposite. Almost 3/17-comma"},meaneb591:{frequencies:[261.6255653006,273.06215106005,292.41085266114,313.13038820279,326.81843330822,349.97621009739,365.27491737756,391.15765268623,418.87439289145,437.18488525956,468.16276342643,488.62782610925,523.2511306012],description:"Equal beating 4/3 = 5/3 same."},meaneb732:{frequencies:[261.6255653006,272.00548436883,292.08705896894,313.65121264041,326.09523618955,350.1701397801,364.06303937825,390.94102347986,406.4514961644,436.45893055948,468.68174619223,487.27655969467,523.2511306012],description:"Beating of 3/2 = twice 6/5 same. Almost 4/13-comma"},meaneb732_19:{frequencies:[261.6255653006,272.00553778846,280.94077405591,292.08707584055,303.67560621907,313.65118727632,326.09527197795,339.03307470248,350.17012966679,364.06310036266,376.02237826726,390.94103477068,406.45158772689,419.80330474394,436.45896585468,453.77543893118,468.68171912011,487.27662724555,506.60928680033,523.2511306012],description:"Beating of 3/2 = twice 6/5 same, 19 tones"},meaneb732a:{frequencies:[261.6255653006,270.68848625127,291.6822692306,314.3042667302,325.1920204578,350.41293324447,362.5515203525,390.67014898736,404.20304509584,435.55206635241,469.33217160858,485.59021720901,523.2511306012],description:"Beating of 3/2 = twice 6/5 opposite. Almost 1/3 Pyth. comma"},meaneb742:{frequencies:[261.6255653006,272.89343543801,292.35917287023,313.21341909223,326.70311046689,350.00714105462,365.08148980199,391.12308516115,407.96824372307,437.06899032128,468.24551969328,488.41224041213,523.2511306012],description:"Beating of 3/2 = twice 5/4 same."},meaneb742a:{frequencies:[261.6255653006,273.78850133971,292.63287562287,312.77409391616,327.31510698093,349.84341999552,366.10759179471,391.30612443552,409.49789158088,437.68290117536,467.80756449982,489.55615570194,523.2511306012],description:"Beating of 3/2 = twice 5/4 opposite. Almost 3/13-comma, 3/14 Pyth. comma"},meaneb781:{frequencies:[261.6255653006,273.88372205101,292.66195046404,312.72748571568,327.38015167213,349.82604176358,366.21672762941,391.32556326448,418.15568884829,437.74813244966,467.76108961433,489.67748280644,523.2511306012],description:"Equal beating 3/2 = 8/5 same."},meaneb891:{frequencies:[261.6255653006,272.7426257605,292.31307409948,313.28760473417,326.59990179186,350.03483972175,364.90860969063,391.092135133,419.1546662649,436.96549358815,468.31936361194,488.21959184068,523.2511306012],description:"Equal beating 8/5 = 5/3 same. Almost 5/18-comma"},meaneight:{frequencies:[261.6255653006,276.08926119362,293.33333347996,311.65444160511,328.88393162803,349.42547049952,368.74309237173,391.77416758435,413.43299207996,439.25532436715,466.69047534984,492.49097043477,523.2511306012],description:"1/8 Pyth. comma meantone scale"},meanfifth:{frequencies:[261.6255653006,274.56546814423,292.86978442859,312.39456569414,327.84548435462,349.70179235499,366.99791252626,391.46460164194,410.82629477826,438.21464222188,467.42914467878,490.54793493862,523.2511306012],description:"1/5-comma meantone scale (Verheijen)"},meanfifth2:{frequencies:[261.6255653006,279.06726965397,292.86986732103,312.39452419152,327.84547867349,349.70184487387,366.99801003998,391.46454285105,417.56218018201,438.2147004401,467.42901237995,490.54793493862,523.2511306012],description:"1/5-comma meantone by John Holden (1770)"},meanfifth_19:{frequencies:[261.6255653006,274.56546814423,279.06726965397,292.86978442859,307.35519222791,312.39456569414,327.84548435462,344.06059968708,349.70179235499,366.99791252626,373.01539917593,391.46460164194,410.82629477826,417.56217294621,438.21464222188,459.88868900496,467.42914467878,490.54793493862,514.81033759999,523.2511306012],description:"19 of 1/5-comma meantone scale"},meanfifth_43:{frequencies:[261.6255653006,265.91515911649,270.13633240739,274.56546814423,279.06726965397,283.49717461664,288.14537375445,292.86978442859,297.67175429757,302.39711110066,307.35519222791,312.39456569414,317.35355938713,322.556865357,327.84548435462,333.22081516619,338.51040756711,344.06059968708,349.70179235499,355.43547760922,361.07770857381,366.99791252626,373.01539917593,378.93660287884,385.14971481892,391.46460164194,397.88302689184,404.19904307077,410.82629477826,417.56217294621,424.19061149626,431.14564594215,438.21464222188,445.39957775044,452.46991103879,459.88868900496,467.42914467878,475.09307907327,482.63477102771,490.54793493862,498.59100550039,506.50570672499,514.81033759999,523.2511306012],description:"Complete 1/5-comma meantone scale"},meanfiftheb:{frequencies:[261.6255653006,275.80023422757,293.11157312801,311.73372470712,328.53333183909,349.48325286892,368.3828117434,391.46459711956,412.7266004334,438.69360944226,466.62683936965,491.82624824197,523.2511306012],description:'"1/5-comma" meantone with equal beating fifths'},meangold:{frequencies:[261.6255653006,272.97231199113,292.38331430233,313.17462880702,326.75706743029,349.99269211627,365.17193449866,391.13923210785,408.10300926149,437.12312635029,468.20685771475,488.51307131873,523.2511306012],description:"Meantone scale with Blackwood's R = phi, and diat./chrom. ST = phi, ~4/15-comma"},meanhalf:{frequencies:[261.6255653006,267.49544939623,290.69507255622,315.90677595028,322.99452506247,351.00752840096,358.88280562497,390.00836666198,398.75867291663,433.34262909025,470.92601754108,481.49180950675,523.2511306012],description:"1/2-comma meantone scale"},meanhar2:{frequencies:[261.6255653006,273.08769296879,292.41861893027,305.22982618403,326.83598255713,349.97156260351,365.30423365264,391.16284711627,408.30015740759,437.20230245522,456.35665612784,488.66055322307,523.2511306012],description:"1/9-Harrison's comma meantone scale"},meanhar3:{frequencies:[261.6255653006,274.22153683641,292.76499331753,306.86017365004,327.61072570921,343.38355445704,366.60389537541,391.39444778107,410.23814647641,437.9793418028,459.06587176894,490.10890120058,523.2511306012],description:"1/11-Harrison's comma meantone scale"},meanharris:{frequencies:[261.6255653006,273.71072489962,292.60907359238,306.12544311476,327.26186315247,349.85764856047,366.01847563765,391.29021017831,409.36491649663,437.62950220286,457.84473927605,489.45661357347,523.2511306012],description:"1/10-Harrison's comma meantone scale"},meanhsev:{frequencies:[261.6255653006,265.69493617871,271.18768033644,275.4057836544,279.68949451567,284.03983498254,289.91182549392,294.4211659268,299.00064605783,305.1819244006,309.92877868547,314.74946639166,321.25632089757,326.25319922315,331.32779988873,336.4813337451,343.43745382287,348.77934146077,354.20431777528,361.52682728594,367.15008027699,372.86080050545,378.66034414493,386.48843610249,392.49994642563,398.60496085649,406.84537033315,413.17351844213,419.60009331305,426.12662827999,434.93599657884,441.70106893056,448.57136642871,457.84473927605,464.96613926104,472.19830582795,481.96011959425,489.45661357347,497.06970936204,504.80122352123,515.23704142273,523.2511306012],description:"1/14-septimal schisma tempered meantone scale"},meanhskl:{frequencies:[261.6255653006,275.0605216927,293.02063313667,312.15345277639,328.18310911307,349.61186736411,367.56508220664,391.56529173291,411.67289207144,438.55312706018,467.18850946536,491.17950266504,523.2511306012],description:"Half septimal kleisma meantone"},meanlst357_19:{frequencies:[261.6255653006,273.71260157103,279.68803244686,292.60971924044,306.12821574316,312.81131320311,327.26311833974,342.38279105966,349.85736361975,366.02068710341,374.01129952811,391.29052886394,409.36829077259,418.30522648629,437.63082426891,457.84952434322,467.84458559023,489.45917220726,512.07206464598,523.2511306012],description:"19 of mean-tone scale, least square error in 3/2, 5/4 and 7/4"},meanmalc:{frequencies:[261.6255653006,279.16226462633,292.82999876562,312.45832383396,327.75622702832,349.72564885805,366.84815356577,391.43789792004,417.67588698136,438.12522309524,467.49265244264,490.38100841085,523.2511306012],description:"Meantone approximation to Malcolm's Monochord, 3/16 Pyth. comma"},meannkleis:{frequencies:[261.6255653006,277.55670411237,293.77792781181,311.66693695111,329.88161264913,349.96913477239,370.42222384066,392.07096746411,415.94530241673,440.25439013544,467.06275302556,494.35929617392,523.2511306012],description:"1/5 kleisma tempered meantone scale"},meanpi:{frequencies:[261.6255653006,275.38456311745,294.43027471344,309.91448590794,326.2128298123,348.77404705732,367.11600789597,392.50613131028,413.14795414706,434.87532652316,464.95175460796,489.40347900327,523.2511306012],description:"Pi-based meantone with Harrison's major third by Erv Wilson"},meanpi2:{frequencies:[261.6255653006,287.5806999253,296.7710142931,326.2128298123,336.6377243117,370.0346037192,381.85992557156,394.06315326167,433.15704755212,446.99959483943,491.34516423327,507.04724898227,523.2511306012],description:"Pi-based meantone by Erv Wilson analogous to 22-tET"},meanpkleis:{frequencies:[261.6255653006,274.33428876064,294.88060759996,309.2047285643,324.22465805628,348.50752497012,365.43662717622,392.80607455881,411.88702081614,442.73537947933,464.24169412807,486.7926967469,523.2511306012],description:"1/5 kleisma positive temperament"},meanquar:{frequencies:[261.6255653006,273.37431312998,292.50627485027,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale. Pietro Aaron's temp. (1523). 6/5 beats twice 3/2"},meanquar_14:{frequencies:[261.6255653006,273.37431312998,292.50627485027,305.64177427204,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,418.60090448096,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split D#/Eb and G#/Ab, Otto Gibelius (1666)"},meanquar_15:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177427204,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,418.60090448096,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb and G#/Ab"},meanquar_16:{frequencies:[261.6255653006,273.37431312998,279.93548123753,292.50629850443,305.64179898843,312.97722776199,327.03195662575,349.91920725962,365.63293356166,391.22137338448,408.78994578219,418.60090448096,437.39882871549,457.04097849371,468.01000025525,489.02679755603,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb, G#/Ab and A#/Bb"},meanquar_17:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177250659,312.977175335,327.03195662575,349.91912034749,365.63284274659,374.40803131735,391.22147055517,408.78994578219,418.60090448096,437.39889945791,457.04105241293,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb, F#/Gb, G#/Ab and A#/Bb"},meanquar_19:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177427204,312.977175335,327.03195662575,341.71789064962,349.91912034749,365.63284274659,374.40803131735,391.22147055517,408.78994578219,418.60090448096,437.39890198442,457.04105241293,468.01003810189,489.02683710225,510.98743222773,523.2511306012],description:"19 of 1/4-comma meantone scale"},meanquar_27:{frequencies:[261.6255653006,273.37431312998,279.93529690293,285.65065877038,292.50627485027,299.52642572255,305.64177427204,312.977175335,327.03195662575,334.88072358477,341.71789064962,349.91912034749,365.63284274659,374.40803131735,382.05221698715,391.22147055517,400.61078621746,408.78994578219,418.60090448096,427.14736482575,437.39890198442,447.89647345742,457.04105241293,468.01003810189,489.02683710225,500.76348165392,510.98743222773,523.2511306012],description:"27 of 1/4-comma meantone scale"},meanquar_31:{frequencies:[261.6255653006,267.90457886781,273.37431312998,279.93529690293,285.65065877038,292.50627485027,299.52642572255,305.64177427204,312.977175335,320.48862783822,327.03195662575,334.88072358477,341.71789064962,349.91912034749,358.31717956585,365.63284274659,374.40803131735,382.05221698715,391.22147055517,400.61078621746,408.78994578219,418.60090448096,427.14736482575,437.39890198442,447.89647345742,457.04105241293,468.01003810189,479.24227945773,489.02683710225,500.76348165392,510.98743222773,523.2511306012],description:"31 of 1/4-comma meantone scale"},meanquareb:{frequencies:[261.6255653006,274.90575459855,292.80763523599,312.14798050979,327.88746490679,349.6453532581,367.3522744581,391.22144795733,411.14173398328,437.99455416256,467.00507093977,490.61429903129,523.2511306012],description:"Variation on 1/4-comma meantone with equal beating fifths"},meanquarm23:{frequencies:[261.6255653006,273.51763645063,292.40504357126,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,408.78994578219,436.04260883433,468.17206422213,489.12605686634,523.2511306012],description:"1/4-comma meantone approximation with minimal order 23 beatings"},meanquarr:{frequencies:[261.6255653006,273.37036621967,292.50063201309,312.98169478553,327.03195662575,349.92419358955,365.62579001637,391.21579858034,408.78994578219,437.39258595147,468.01906681552,489.01974822542,523.2511306012],description:"Rational approximation to 1/4-comma meantone, Kenneth Scholz, MTO 4.4, 1998"},meansabat:{frequencies:[261.6255653006,279.13726386405,294.25495796556,313.95067836072,330.95382015833,348.87783040382,372.229687597,392.38914286775,418.65339720992,441.32709511026,470.8669722571,496.36848628125,523.2511306012],description:"1/9-schisma meantone scale of Eduard Sa'bat-Garibaldi"},meansabat_53:{frequencies:[261.6255653006,264.79625752493,268.00537599851,271.25338610366,275.79485124716,279.13726386405,282.52018221184,285.94410045135,290.73152483281,294.25495796556,297.82109228474,301.4304452945,305.08354077075,310.19140758515,313.95067836072,317.75550958044,321.60645175541,326.99095182327,330.95382015833,334.96471528237,339.02421924159,343.13292113612,348.87783040382,353.10595017045,357.38531136087,361.71653498009,367.77258074571,372.229687597,376.74081403286,381.30660995465,385.92774054592,392.38914286775,397.14458487807,401.95765903525,406.82906379475,413.640406907,418.65339720992,423.72714093867,428.86237189887,436.04260883433,441.32709511026,446.67562589029,452.08897683944,457.56793273834,465.22877230071,470.8669722571,476.57350267936,482.349191678,490.42492909292,496.36848628125,502.38407462043,508.4725670703,514.63484717027,523.2511306012],description:"53-tone 1/9-schisma meantone scale"},meanschis:{frequencies:[261.6255653006,275.81646505128,294.24573392894,310.20599265769,327.03195662575,348.88329767713,367.80716871461,392.38299382393,413.66634097248,436.10412364188,465.24335632603,490.47874118496,523.2511306012],description:"1/8-schisma temperament, Helmholtz"},meanschis7:{frequencies:[261.6255653006,275.84425785506,294.23387584933,310.2247482054,327.0846843223,348.89032888179,367.85164222246,392.37508610937,413.69968681881,436.18322603255,465.26210635182,490.54793493862,523.2511306012],description:"1/7-schisma linear temperament"},meanschis_17:{frequencies:[261.6255653006,275.81646505128,290.77709705464,294.24573392894,310.20599265769,327.03195662575,330.93307160522,348.88329767713,367.80716871461,372.19468374184,392.38299382393,413.66634097248,436.10412364188,441.30634506723,465.24335632603,490.47874118496,496.32958936031,523.2511306012],description:"17-tone 1/8-schisma linear temperament"},meansept:{frequencies:[261.6255653006,273.93523095528,292.67762672082,312.70235991264,327.41522444303,349.81667202162,366.27579142084,391.33604481052,409.74867679276,437.78330574787,467.73603562223,489.74334292241,523.2511306012],description:"Meantone scale with septimal diminished fifth"},meansept2:{frequencies:[261.6255653006,273.61459551034,286.15296204753,292.57963558274,305.98714063953,320.00886175336,327.19620693615,342.18982383643,349.87514759905,365.9082279648,382.67602660872,391.27063976147,409.20043831214,427.95210889573,437.56358849756,457.61500463173,478.58500343311,489.333659422,511.75744671018,523.2511306012],description:"Meantone scale with septimal neutral second"},meansept3:{frequencies:[261.6255653006,267.11515986718,271.23581508831,275.42019673559,281.19923906193,285.53716249988,289.94217244295,296.02592413073,300.59257160392,305.22982618403,309.9384746623,316.44180152381,321.32358037849,326.28048244956,333.12670774706,338.26588629419,343.48414905091,348.7829114007,356.10146388137,361.59490682213,367.17305499414,374.87731434423,380.66058361349,386.53284867747,394.643327573,400.73152907611,406.91341882127,413.19091223118,421.86074762795,428.36858751681,434.97682067587,444.1040384307,450.95501471222,457.91167766162,464.97592623609,474.73234784313,482.05581210758,489.49253462334,499.76337935275,507.47298512535,515.30182087389,523.2511306012],description:"Pythagorean scale with septimal minor third"},meansept4:{frequencies:[261.6255653006,266.94086705872,271.13211808455,275.38917613856,280.98410555769,285.39585012732,289.87686370457,295.76613145071,300.40996929954,305.12672026341,309.91752915454,316.21395200486,321.17884203959,326.22168604472,332.8493514236,338.07543464185,343.38355445704,348.77505435772,355.86092403367,361.44831302863,367.12342987925,374.58207334188,380.46340397682,386.43730087372,394.28810581018,400.47907310734,406.76701374557,413.15368163355,421.54749623588,428.16623317002,434.88889120201,443.72428802318,450.69091522486,457.76754776364,464.95497741911,474.40121026751,481.84980583512,489.41535214975,499.35853288878,507.19898454493,515.16253949886,523.2511306012],description:"Pythagorean scale with septimal narrow fourth"},meansev:{frequencies:[261.6255653006,275.93321340298,293.28595453555,311.72996498387,328.77769811601,349.45369437647,368.5644419122,391.74252566418,413.16594588103,439.14890519043,466.76586696593,492.29212632197,523.2511306012],description:"1/7-comma meantone scale, Jean-Baptiste Romieu (1755)"},meansev2:{frequencies:[261.6255653006,273.98141462199,292.76593693997,312.83835055233,327.61283758281,350.07440004945,366.60744235102,391.74252566418,410.24343789088,438.37026184168,468.42550014967,490.54793493862,524.18054130269],description:"Meantone scale with 1/7-comma stretched octave (stretched meansept)"},meansev_19:{frequencies:[261.6255653006,275.93321340298,278.07859353335,293.28589524255,309.32501829942,311.72996858511,328.77775508885,346.75764506664,349.4536277652,368.56443339655,371.42996022741,391.74260033637,413.16585280598,416.37814821359,439.14890011719,463.16493144882,466.76596133102,492.29202110912,496.11959049595,523.2511306012],description:"19 of 1/7-comma meantone scale"},meanseveb:{frequencies:[261.6255653006,276.822915312,293.45907344559,311.2600957924,329.2717708679,349.29792128041,369.56105314287,391.74259807358,414.53862252605,439.49286138442,466.19439430972,493.21190508606,523.2511306012],description:'"1/7-comma" meantone with equal beating fifths'},meansixth:{frequencies:[261.6255653006,275.36245350283,293.11247215425,312.00666699279,328.38886075091,349.55699144229,367.91095120397,391.62676241399,412.18948168074,438.75944753732,467.04212833931,491.56459996916,523.2511306012],description:"1/6-comma meantone scale (tritonic temperament of Salinas)"},meansixth_19:{frequencies:[261.6255653006,275.36245350283,278.49009641114,293.11247215425,308.50278723002,312.00666699279,328.38886075091,345.6314161331,349.55699144229,367.91095120397,372.08969287196,391.62676241399,412.18948168074,416.87124381956,438.75944753732,461.79691129422,467.04212833931,491.56459996916,517.37477513058,523.2511306012],description:"19 of 1/6-comma meantone scale"},meansixtheb:{frequencies:[261.6255653006,276.39673661379,293.31426069206,311.4574698476,328.96404447481,349.37515437283,369.07004939896,391.62674884124,413.78350416977,439.15979251365,466.37460465854,492.63446576705,523.2511306012],description:'"1/6-comma" meantone with equal beating fifths'},meansixthm:{frequencies:[261.6255653006,275.36250599118,293.11251278827,312.00669222389,328.38895179964,349.55706816887,367.91095120397,391.62667645325,414.52369088643,438.75941205608,467.04206359353,491.56462836305,523.2511306012],description:"modified 1/6-comma meantone scale, wolf spread over 2 fifths"},meansixthm2:{frequencies:[261.6255653006,276.14113065853,293.11251278827,310.24975557428,328.38895179964,349.55706816887,367.91095120397,391.62667645325,414.52380581681,438.75941205608,465.72523006308,491.56462836305,523.2511306012],description:"modified 1/6-comma meantone scale, wolf spread over 4 fifths"},meansixthpm:{frequencies:[261.6255653006,275.00020270933,293.00227310437,309.72478954314,328.14198392915,348.83408706747,367.49599295996,391.5530240856,412.50030385781,438.51190905657,465.11211608996,491.10256480205,523.2511306012],description:"modified 1/6P-comma temperament, French 18th century"},meansixthso:{frequencies:[261.6255653006,273.09145986506,292.50627485027,313.30134186202,327.03195662575,350.28154752005,365.63284274659,391.62667645325,408.78994578219,437.85193595173,468.98001879925,489.53334447372,524.3356019912],description:"1/6-comma meantone scale with 1/6-comma stretched oct, Dave Keenan TL 13-12-99"},meanstr:{frequencies:[261.6255653006,272.52663052146,292.30447317753,313.51763757869,326.58087306932,350.28154752005,364.87661266094,391.35649333595,407.66301227525,437.24799400905,468.98001879925,488.52085380073,523.97386302914],description:"Meantone with 1/9-comma stretched octave, Petr Parizek (2006)"},meanten:{frequencies:[261.6255653006,276.96346718799,293.59840699152,311.2324721493,329.47860040677,349.26769656434,369.74365294187,391.95114287501,414.92943551322,439.85086739936,466.26912673157,493.60433806962,523.2511306012],description:"1/10-comma meantone scale"},meanthird:{frequencies:[261.6255653006,271.40047399919,291.9012907804,313.95067836072,325.68056936328,350.28154752005,363.36884069528,390.81668391305,405.4184580124,436.04260883433,468.98001879925,486.50215045777,523.2511306012],description:"1/3-comma meantone scale (Salinas)"},meanthird_19:{frequencies:[261.6255653006,271.40047399919,281.38801176707,291.9012907804,302.80736724606,313.95067836072,325.68056936328,337.848714425,350.28154752005,363.36884069528,376.74081403286,390.81668391305,405.4184580124,420.33785775232,436.04260883433,452.33412516107,468.98001879925,486.50215045777,504.40543017669,523.2511306012],description:"Complete 1/3-comma meantone scale"},meanthirdeb:{frequencies:[261.6255653006,273.41679662438,292.30169912182,312.83755546226,326.81234905863,349.91518709086,365.63683018302,390.81669745772,408.5035451685,436.83089868331,467.63468237516,488.59687355467,523.2511306012],description:'"1/3-comma" meantone with equal beating fifths'},meanvar1:{frequencies:[261.6255653006,274.22463192287,292.50627485027,312.00669222389,327.03195662575,349.55706816887,366.3906401674,391.22147055517,410.48618883318,437.39890198442,467.04206359353,489.53334447372,523.2511306012],description:"Variable meantone 1: C-G-D-A-E 1/4, others 1/6"},meanvar2:{frequencies:[261.6255653006,274.19219069011,292.50627485027,312.04360750473,327.03195662575,349.70184487387,366.23895640989,391.22147055517,410.65012590831,437.39890198442,467.23549927892,489.3306802979,523.2511306012],description:"Variable meantone 2: C..E 1/4, 1/5-1/6-1/7-1/8 outward both directions"},meanvar3:{frequencies:[261.6255653006,275.36250599118,292.50627485027,310.71739423852,327.03195662575,349.55706816887,367.15000817177,391.22147055517,413.04376116614,437.39890198442,466.0760911248,489.53334447372,523.2511306012],description:"Variable meantone 3: C..E 1/4, 1/6 next, then Pyth."},meanvar4:{frequencies:[261.6255653006,275.07759559501,292.50627485027,311.03921839762,327.03195662575,349.91912034749,366.77012764335,391.22147055517,412.61639318626,437.39890198442,466.55882736321,489.02683710225,523.2511306012],description:"Variable meantone 4: naturals 1/4-comma, accidentals Pyth."},mediant16:{frequencies:[261.6255653006,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,523.2511306012],description:"Mediant doubling of octave done four times"},mercadier:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.42509491746,328.14198392915,349.22823143301,368.74309237173,391.5530240856,413.90012676351,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Mercadier's well-temperament (1777), 1/12 and 1/6 Pyth. comma"},mercadier2:{frequencies:[261.6255653006,276.14388692511,292.95319623755,310.40895756597,328.03206784165,349.20805980193,368.45885450371,391.49761638186,413.86785247997,438.37641748302,465.57175090792,491.63473786767,523.2511306012],description:"Mercadier de Belestas (1776)"},mercator:{frequencies:[261.6255653006,272.09448029963,279.3054110864,290.48161516351,306.08206748155,318.32990397837,326.76614606023,335.42596179815,348.84778913489,362.80689075348,372.42184279259,387.32403355801,408.12545368833,418.94141877379,435.70530841001,453.13974129598,465.14865565404,490.12996697565,509.74216322321,523.2511306012],description:"19 out of 53-tET, see Mandelbaum p. 331"},merrick:{frequencies:[261.6255653006,278.62147458377,295.28844751169,312.94924079019,329.91874474504,349.29981986967,371.62722343835,394.01440557319,416.60121863153,438.96906929631,468.0242659544,493.6331420766,523.2511306012],description:"A. Merrick's melodically tuned equal temperament (1811)"},mersen_l1:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Mersenne lute 1"},mersen_l2:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Mersenne lute 2"},mersen_s1:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Mersenne spinet 1"},mersen_s2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Mersenne spinet 2"},mersenmt1:{frequencies:[261.6255653006,273.37431312998,292.50627485027,311.03921839762,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,466.55882736321,489.02683710225,523.2511306012],description:"Mersenne's Improved Meantone 1"},mersenmt2:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.11326130363,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Mersenne's Improved Meantone 2"},mersenne:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,313.95067836072,322.99452506247,327.03195662575,340.65828815182,344.52749339997,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,408.78994578219,413.43299207996,418.60090448096,430.65936674996,436.04260883433,454.2110508691,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,510.98743222773,523.2511306012],description:"31-note choice system of Mersenne, Harmonie universelle (1636)"},meyer:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Max Meyer, see Doty, David, 1/1 August 1992 (7:4) p.1 and 10-14"},meyer_29:{frequencies:[261.6255653006,268.26840191956,275.93321340298,286.15296204753,289.72987407313,294.32876096318,306.59245933664,321.92208230347,327.03195662575,331.11985608357,343.38355445704,344.91651675372,357.69120255941,367.91095120397,372.50983809402,383.2405741708,386.30649876417,392.4383479509,408.78994578219,413.89982010446,429.2294430713,441.49314144476,457.84473927605,459.88868900496,482.88312345521,490.54793493862,496.67978412536,510.98743222773,515.07533168556,523.2511306012],description:"Max Meyer, see Doty, David, 1/1 August 1992 (7:4) p.1 and 10-14"},mid_enh1:{frequencies:[261.6255653006,269.10058145205,336.37572681506,348.83408706747,392.4383479509,403.65087217807,504.56359022259,523.2511306012],description:"Mid-Mode1 Enharmonic, permutation of Archytas's with the 5/4 lying medially"},mid_enh2:{frequencies:[261.6255653006,271.31540105247,339.14425131559,348.83408706747,392.4383479509,406.97310157871,508.71637697339,523.2511306012],description:"Permutation of Archytas' Enharmonic with the 5/4 medially and 28/27 first"},miller19:{frequencies:[261.6255653006,271.16557874802,283.07475767856,293.39690257971,304.09543631541,315.18408718336,326.67707691855,338.58915326012,350.93559605343,363.73224209988,376.99551198295,390.74241649248,407.9032302438,422.77716528297,438.1934715504,454.17192383337,470.73301771751,487.89800430439,505.68889852562,524.12852955557],description:"TOP tempered nr. 64 [1202.9, 570.4479508], 7-limit {225/224, 1029/1000}"},miller7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,313.95067836072,329.64821227876,353.19451315581,366.27579142084,392.4383479509,412.06026534844,439.53094970501,470.92601754108,494.47231841813,523.2511306012],description:"Herman Miller, 7-limit JI. mode of parizek_ji1"},miller_12:{frequencies:[261.6255653006,273.36657578691,291.63627719304,313.29104303136,327.35065305942,349.22823143301,364.90060015836,391.99543598175,418.19337019276,436.9606979923,456.57025003029,487.08386390194,523.2511306012],description:"Herman Miller, scale with appr. to three 7/4 and one 11/8. Tuning List 19-11-99"},miller_12a:{frequencies:[261.6255653006,273.46133384191,291.68681828778,313.23675853409,327.40738352015,349.22823143301,365.02708698668,391.99543598175,418.12090908234,437.03642407223,456.80766452229,487.25270356141,523.85596330884],description:'Herman Miller, "Starling" scale, alternative version TL 25-11-99'},miller_12r:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,454.2110508691,484.4917875937,523.2511306012],description:'Herman Miller, "Starling" scale rational version'},miller_ar1:{frequencies:[261.6255653006,276.1828093671,293.13465239421,310.07474405997,327.9937953665,348.83408706747,368.24374600687,391.64146650178,414.27421384356,438.21489534465,465.11211608996,490.99166158792,523.2511306012],description:'Herman Miller, "Arrow I" well-temperament'},miller_ar2:{frequencies:[261.6255653006,276.1828093671,293.13465239421,310.2849072826,328.2161033156,349.07052034394,368.24374600687,391.64146650178,414.27421384356,438.51190905657,465.42736069124,491.32444638706,523.2511306012],description:'Herman Miller, "Arrow II" well-temperament'},miller_b1:{frequencies:[261.6255653006,276.37000081643,292.93610587951,310.49521248455,328.2161033156,348.83408706747,368.4933346061,391.64146650178,413.993616853,438.80912407872,465.11211608996,491.32444638706,523.2511306012],description:'Herman Miller, "Butterfly I" well-temperament'},miller_b2:{frequencies:[261.6255653006,276.55731914056,293.13465239421,310.70566022736,328.2161033156,349.07052034394,368.74309237173,392.17254067411,414.27421384356,439.10654054756,465.42736069124,491.99069280383,523.2511306012],description:'Herman Miller, "Butterfly II" well-temperament'},miller_bug:{frequencies:[261.6255653006,275.99574470663,292.73769384471,310.49521248455,327.54963108844,348.83408706747,368.4933346061,391.64146650178,413.993616853,437.62147130622,465.11211608996,491.32444638706,523.2511306012],description:'Herman Miller, "Bug I" well-temperament'},miller_dim:{frequencies:[261.6255653006,272.37088095799,275.97178311718,291.10467300644,307.06737543415,311.12698372208,323.9053895548,328.18760802294,346.1837483498,365.1667076515,369.99442271164,385.1905938463,390.2830385166,411.68417663589,434.25884690128,440,458.07139483414,464.12736626882,489.57775198944,516.42371048788,523.2511306012],description:"Diminished temperament, g=92.421, oct=1/4, 7-limit"},miller_nikta:{frequencies:[261.6255653006,272.78230567952,282.82337239762,292.30660227893,305.1368529352,315.1779191367,326.89249731477,341.39626079795,349.76381456689,364.82541608424,379.88701473,391.60159255926,407.77886614283,422.28262813098,436.22855406869,456.86852448015,469.69877536137,488.10739794888,508.74736733766,523.2511306012],description:'Herman Miller, 19-tone scale of "Nikta". Tuning List 22-1-99'},miller_sp:{frequencies:[261.6255653006,276.74268633071,292.73329748773,304.15432597486,321.72882314722,340.31880135827,353.5963846,374.02771873076,395.63960626236,411.07553805605,434.82810464551,459.95313047266,477.89826295658,505.51194770063,525.23456349057],description:"Herman Miller, Superpelog temperament, TOP tuning"},minor_5:{frequencies:[261.6255653006,299.00064605783,348.83408706747,418.60090448096,465.11211608996,523.2511306012],description:"A minor pentatonic"},minor_clus:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,353.19451315581,372.08969287196,392.4383479509,418.60090448096,441.49314144476,465.11211608996,470.92601754108,523.2511306012],description:"Chalmers' Minor Mode Cluster, Genus [333335]"},minor_wing:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Chalmers' Minor Wing with 7 minor and 6 major triads"},minortone:{frequencies:[261.6255653006,264.87670583656,269.18630372462,273.56601964703,276.96554054138,281.47182622933,286.05143175444,290.70554674078,294.31805527354,299.10666990622,303.97319627313,307.75057781118,312.75774231814,317.84637624619,323.01780144749,327.03184444407,332.35271908155,337.76016543181,341.95740725719,347.52112383796,353.17536321933,358.9216002989,363.3818066762,369.29410472703,375.30259493676,379.96636500161,386.14849505708,392.43120962619,398.81614754309,403.7721109712,410.34156772664,417.0179085097,422.20006196255,429.06934285921,436.05038835349,443.14501943782,448.65184388114,455.95150328441,463.36992699746,469.12808274602,476.76089208744,484.51788878959,492.4010934061,498.52001054206,506.63103252794,514.8740254656,523.2511306012],description:"Minortone temperament, g=182.466089, 5-limit"},miracle1:{frequencies:[261.6255653006,266.71173418545,279.86396690685,285.30470202322,299.37379946195,305.19382000629,320.24370022528,326.46944327063,342.56848033562,349.22823143301,366.44956000397,373.57357677338,391.99543598175,399.61607881612,419.32216217931,427.47405410759,448.5538823653,457.27406033445,479.82340237272,489.15147723638,513.27277840175,523.2511306012],description:'21 out of 72-tET Pyth. scale "Miracle/Blackjack", Keenan & Erlich, TL 2-5-2001'},miracle1a:{frequencies:[261.6255653006,266.57640943865,279.87817034289,285.17441410431,299.40418912991,305.0699313594,320.29246281951,326.35348199782,342.63803067389,349.1219037468,366.54256247747,373.47879032775,392.11482112276,399.53496279579,419.47115746916,427.40897376302,448.73603972606,457.22764679928,480.04261976898,489.12665346498,513.5333359992,523.2511306012],description:"Version of Blackjack with just 11/8 intervals"},miracle2:{frequencies:[261.6255653006,266.71172956369,274.52699087907,279.86396690685,285.30469707927,293.66477470251,299.3738011912,305.19381471768,314.13668880034,320.24370207508,326.46943949911,336.03573785931,342.56848231438,349.22822739856,359.4614100947,366.44956423737,373.57357245769,380.83607584373,391.99544051026,399.61607650784,407.38486242506,419.32216702351,427.4740516384,435.78441397758,448.55389013814,457.27405769313,466.16375074742,479.82341068742,489.15147723638,498.66088722045,513.27278729609,523.2511306012],description:'31 out of 72-tET Pythagorean scale "Miracle/Canasta", tempered Fokker-M, 36 7-limit tetrads'},miracle24:{frequencies:[261.6255653006,266.71173418545,274.52698453615,279.86396690685,285.30470202322,299.37379946195,305.19382000629,320.24370022528,326.46944327063,342.56848033562,349.22823143301,366.44956000397,373.57357677338,391.99543598175,399.61607881612,419.32216217931,427.47405410759,448.5538823653,457.27406033445,466.16376151809,479.82340237272,489.15147723638,498.66089874196,513.27277840175,523.2511306012],description:"Miracle[24] in 72-tET tuning."},miracle2a:{frequencies:[261.6255653006,266.57640943865,274.68028654691,279.87817034289,285.17441410431,293.84366906071,299.40418912991,305.0699313594,314.34400674513,320.29246281951,326.35348199782,336.27457379784,342.63803067389,349.1219037468,359.73515228832,366.54256247747,373.47879032775,380.54627680087,392.11482112276,399.53496279579,407.09552105481,419.47115746916,427.40897376302,435.49700296564,448.73603972606,457.22764679928,465.87994655565,480.04261976898,489.12665346498,498.38259075187,513.5333359992,523.2511306012],description:"Version of Canasta with just 11/8 intervals"},miracle3:{frequencies:[261.6255653006,266.71172956369,271.8967720342,274.52699087907,279.86396690685,285.30469707927,290.85119844166,293.66477470251,299.3738011912,305.19381471768,311.12697293924,314.13668880034,320.24370207508,326.46943949911,332.81620914398,336.03573785931,342.56848231438,349.22822739856,356.01744208336,359.4614100947,366.44956423737,373.57357245769,380.83607584373,384.52012922913,391.99544051026,399.61607650784,407.38486242506,411.32573797959,419.32216702351,427.4740516384,435.78441397758,440.00001524924,448.55389013814,457.27405769313,466.16375074742,470.67322937359,479.82341068742,489.15147723638,498.66088722045,503.48472993456,513.27278729609,523.2511306012],description:'41 out of 72-tET Pythagorean scale "Miracle/Studloco", Erlich/Keenan 2001'},miracle31s:{frequencies:[261.6255653006,266.63636836248,274.61234258734,279.87187586531,285.23214274484,293.7643779857,299.39072204343,305.12482507342,314.2521161294,320.27085311289,326.40486440328,336.1687117034,342.60720791066,349.16901789451,359.61381619398,366.50134650551,373.52079096839,380.6746756467,392.06191220286,399.57090708206,407.22371854314,419.40512463865,427.43781242392,435.62434685833,448.6553095271,457.24821364991,466.00569400686,479.94546308962,489.13765420145,498.50589943595,513.41785698047,523.2511306012],description:"Canasta with Secor's minimax generator of 116.7155941 cents (5:9 exact). XH5, 1976"},miracle3a:{frequencies:[261.6255653006,266.57640943865,271.6209387912,274.68028654691,279.87817034289,285.17441410431,290.57088243021,293.84366906071,299.40418912991,305.0699313594,310.84289043406,314.34400674513,320.29246281951,326.35348199782,332.52919812642,336.27457379784,342.63803067389,349.1219037468,355.72847573316,359.73515228832,366.54256247747,373.47879032775,380.54627680087,384.83248369581,392.11482112276,399.53496279579,407.09552105481,411.6807594913,419.47115746916,427.40897376302,435.49700296564,440.40213577526,448.73603972606,457.22764679928,465.87994655565,471.12729153307,480.04261976898,489.12665346498,498.38259075187,503.99602271809,513.5333359992,523.2511306012],description:"Version of Studloco with just 11/8 intervals"},miracle3ls:{frequencies:[261.6255653006,266.8561524992,272.19132869617,274.36355553357,279.84880885615,285.44374339214,291.1505189834,293.47406686496,299.34138986722,305.32601617869,311.43030899178,313.91568307924,320.1916880693,326.59318586748,333.12264767748,335.78115718319,342.4943108472,349.34167821305,356.32594256772,359.16962765504,366.35037871957,373.67471357934,381.14545968569,384.18721873359,391.86813762951,399.70261841457,407.69373119716,410.94736065575,419.16328558448,427.54349328421,436.09121881038,439.57145109254,448.35967321435,457.32356924795,466.46667727785,470.18934850506,479.58967749961,489.177972196,498.95793401383,502.93987502638,512.99500332159,523.2511306012],description:"Miracle-41 in a 7-limit least-squares tuning, Gene Ward Smith, 2001"},miracle3p:{frequencies:[261.6255653006,266.34679554672,270.06721067987,274.94077677072,279.90228841312,284.95333588433,290.09553330897,294.14767822015,299.45579274291,304.85969791727,310.36112062791,314.69634158508,320.37527393455,326.15668500873,332.04242788125,336.6805001021,342.75615313904,348.94144590806,355.2383548887,360.20043713509,366.70052302062,373.3179099666,380.0547104455,385.36343543368,392.31760641523,399.39727291251,406.60469732047,412.28427858225,419.7242587073,427.29849640545,435.00941939202,441.0857666732,449.04549132915,457.14885520764,465.39844769831,471.89927840742,480.41505607532,489.08450736089,497.91040254418,504.86537329764,513.97604599191,523.2511306012],description:"Least squares Pythagorean approximation to partch_43"},miracle41s:{frequencies:[261.6255653006,266.63636836248,269.45164985995,274.61234258734,279.87187586531,285.23214274484,290.69507255622,293.7643779857,299.39072204343,305.12482507342,310.96875093738,314.2521161294,320.27085311289,326.40486440328,332.65635780028,336.1687117034,342.60720791066,349.16901789451,355.85650343121,359.61381619398,366.50134650551,373.52079096839,380.6746756467,384.69403121132,392.06191220286,399.57090708206,407.22371854314,411.52339231679,419.40512463865,427.43781242392,435.62434685833,440.22388881539,448.6553095271,457.24821364991,466.00569400686,470.92601754108,479.94546308962,489.13765420145,498.50589943595,503.76937659657,513.41785698047,523.2511306012],description:"StudLoco with Secor's minimax generator of 116.7155941 cents (5:9 exact). XH5, 1976"},miracle_12:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,336.03572815422,342.56848033562,359.46139971304,366.44956000397,384.52011812375,411.32572372413,440,470.6732130613,523.2511306012],description:"A 12-tone subset of Blackjack with six 4-7-9-11 tetrads"},miracle_12a:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,342.56848033562,366.44956000397,391.99543598175,419.32216217931,448.5538823653,479.82339960115,489.15147723638,513.27277840175,523.2511306012],description:"A 12-tone chain of Miracle generators and subset of Blackjack"},"24erlich-keenan":{frequencies:[261.6255653006,266.71173469898,279.86396636799,285.30470202322,290.8512090818,299.37380003836,305.19381941867,320.24370022528,326.46944389922,342.56847967604,349.22823143301,356.01745305102,366.44956070954,373.5735760541,391.99543598175,399.61607958554,407.38487340641,419.32216137194,427.47405410759,448.55388322895,457.27405945401,479.82340237272,489.15147817819,498.66089778183,523.2511306012],description:"24 note mapping for Erlich/Keenan Miracle scale low version, tuned to 72-equal"},miracle_8:{frequencies:[261.6255653006,279.86396690685,314.13668154225,336.03572815422,366.44956000397,391.99543598175,419.32216217931,448.5538823653,523.2511306012],description:"tet3a in 72-et"},miring1:{frequencies:[261.6255653006,285.29448470177,307.6953604706,387.15515639797,420.96788906714,523.2511306012],description:"Gamelan Miring from Serdang wetan, Tangerang. 1/1=309.5 Hz"},miring2:{frequencies:[261.6255653006,279.34865171253,304.66723527068,384.42070010042,412.69311132744,523.2511306012],description:"Gamelan Miring (Melog gender) from Serdang wetan"},misca:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,348.83408706747,392.4383479509,412.06026534844,433.74764773521,457.84473927605,523.2511306012],description:"21/20 x 20/19 x 19/18=7/6 7/6 x 8/7=4/3"},miscb:{frequencies:[261.6255653006,269.80136421624,278.50463402967,319.76457981184,348.83408706747,392.4383479509,404.70204632437,417.75695104451,479.64686971777,523.2511306012],description:"33/32 x 32/31x 31/27=11/9 11/9 x 12/11=4/3"},miscc:{frequencies:[261.6255653006,276.00059636107,292.04714266113,310.07474405997,348.83408706747,392.4383479509,414.00089454161,438.0707139917,465.11211608996,523.2511306012],description:"96/91 x 91/86 x 86/54=32/27. 32/27 x 9/8=4/3."},miscd:{frequencies:[261.6255653006,271.68808704293,282.55561052465,294.32876096318,348.83408706747,392.4383479509,407.5321305644,423.83341578697,441.49314144476,523.2511306012],description:"27/26 x 26/25 x 25/24=9/8. 9/8 x 32/27=4/3."},misce:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,348.83408706747,392.4383479509,420.46965851882,452.81347840488,490.54793493862,523.2511306012],description:"15/14 x 14/13 x 13/12=5/4. 5/4 x 16/15= 4/3."},miscf:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,378.42269266694,392.4383479509,406.97310157871,418.60090448096,504.56359022259,523.2511306012],description:"SupraEnh1"},miscg:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,504.56359022259,523.2511306012],description:"SupraEnh 2"},misch:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,392.4383479509,406.97310157871,490.54793493862,504.56359022259,523.2511306012],description:"SupraEnh 3"},misty:{frequencies:[261.6255653006,268.57642185399,270.57706033988,272.59260010205,274.62315370363,276.66883458144,284.01936005382,286.13503371773,288.26646546986,290.41377434565,292.57708030445,300.35025535204,302.58757688062,304.84156607104,307.11234355974,309.40003795144,311.70477168653,319.9861304005,322.36972224007,324.77106769218,327.19030275625,329.62755691287,338.38508739928,340.90573394089,343.44515491415,346.00349213972,348.58088853904,357.84197030948,360.50755209334,363.19298782427,365.89842747751,368.62402219236,378.41760905933,381.23645754858,384.07630597582,386.93730633346,389.81962065329,392.72340320054,403.157261366,406.16039889903,409.18590458221,412.23394976407,415.30469757995,426.33849458487,429.51431022199,432.71378016074,435.93708308397,439.18439906139,450.85263092877,454.21105352848,457.59449053401,461.00313090234,464.43716505707,476.77631130474,480.3278378528,483.9058226648,487.51045723915,491.14194572312,494.80048247871,507.94632001299,511.73003620658,515.54193450341,519.38223078906,523.2511306012],description:"Misty temperament, g=96.787939, p=400, 5-limit"},mistyschism:{frequencies:[261.6255653006,278.75251614148,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,418.12877421223,440.99519155196,465.63729761752,496.11959049595,523.2511306012],description:"Mistyschism scale 32805/32768 and 67108864/66430125"},mixed9_3:{frequencies:[261.6255653006,273.20871865617,285.30470202322,311.12698372208,349.22823143301,391.99543598175,409.35055662695,427.47405410759,466.16376151809,523.2511306012],description:"A mixture of the hemiolic chromatic and diatonic genera, 75 + 75 + 150 + 200 c"},mixed9_4:{frequencies:[261.6255653006,271.89678302796,282.57123920205,305.19382000629,349.22823143301,391.99543598175,407.38487419079,423.37848741825,457.27406033445,523.2511306012],description:'Mixed enneatonic 4, each "tetrachord" contains 67 + 67 + 133 + 233 cents.'},mixed9_5:{frequencies:[261.6255653006,277.18263097687,293.66476791741,329.62755691287,349.22823143301,391.99543598175,415.30469757995,440,493.88330125613,523.2511306012],description:"A mixture of the intense chromatic genus and the permuted intense diatonic"},mixed9_6:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,349.22823143301,391.99543598175,415.30469757995,440,466.16376151809,523.2511306012],description:"Mixed 9-tonic 6, Mixture of Chromatic and Diatonic"},mixed9_7:{frequencies:[261.6255653006,277.18263097687,311.12698372208,329.62755691287,349.22823143301,391.99543598175,415.30469757995,466.16376151809,493.88330125613,523.2511306012],description:"Mixed 9-tonic 7, Mixture of Chromatic and Diatonic"},mixed9_8:{frequencies:[261.6255653006,293.66476791741,311.12698372208,329.62755691287,349.22823143301,391.99543598175,440,466.16376151809,493.88330125613,523.2511306012],description:"Mixed 9-tonic 8, Mixture of Chromatic and Diatonic"},mixol_chrom:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,311.12229387098,319.76457981184,359.73515228832,411.12588832951,426.35277308246,434.39716502741,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,605.86973016981,622.24458774197,639.52915962369,719.47030457665,822.25177665903,852.70554616492,868.79433005482,885.50191332511,959.29373943553,1046.5022612024],description:"Mixolydian chromatic tonos"},mixol_chrom2:{frequencies:[261.6255653006,271.31540105247,281.75060878526,332.97799220076,366.27579142084,385.55346465352,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the chromatic genus"},mixol_chrominv:{frequencies:[261.6255653006,279.06726965397,299.00064605783,373.75080757229,411.12588832951,429.81342870813,448.50096908674,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Mixolydian inverted"},mixol_diat:{frequencies:[261.6255653006,274.08392555301,287.78812183066,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,442.75095666255,460.46099492906,479.64686971777,500.50108144463,523.2511306012,548.16785110602,575.57624366132,639.52915962369,677.14852195449,719.47030457665,767.43499154843,822.25177665903,885.50191332511,920.92198985811,959.29373943553,1001.00216288925,1046.5022612024],description:"Mixolydian diatonic tonos"},mixol_diat2:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,348.83408706747,366.27579142084,406.97310157871,457.84473927605,523.2511306012],description:"Schlesinger's Mixolydian Harmonia, a subharmonic series though 13 from 28"},mixol_diatcon:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"A Mixolydian Diatonic with its own trite synemmenon replacing paramese"},mixol_diatinv:{frequencies:[261.6255653006,299.00064605783,336.37572681506,348.83408706747,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"A Mixolydian Diatonic with its own trite synemmenon replacing paramese"},mixol_diatinv2:{frequencies:[261.6255653006,299.00064605783,336.37572681506,348.83408706747,373.75080757229,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"Inverted Schlesinger's Mixolydian Harmonia, a harmonic series from 14 from 28"},mixol_enh:{frequencies:[261.6255653006,274.08392555301,287.78812183066,295.1673044417,299.00064605783,302.93486508491,348.83408706747,411.12588832951,418.60090448096,422.44127975143,426.35277308246,469.85815809087,523.2511306012,548.16785110602,575.57624366132,590.33460888341,598.00129211566,605.86973016981,697.66817413493,822.25177665903,837.20180896192,844.88255950285,852.70554616492,939.71631618175,1046.5022612024],description:"Mixolydian Enharmonic Tonos"},mixol_enh2:{frequencies:[261.6255653006,266.38239376061,271.31540105247,332.97799220076,366.27579142084,375.66747838035,385.55346465352,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the enharmonic genus"},mixol_enhinv:{frequencies:[261.6255653006,270.34641747729,279.06726965397,373.75080757229,411.12588832951,420.46965851882,429.81342870813,523.2511306012],description:"A harmonic form of Schlesinger's Mixolydian inverted"},mixol_penta:{frequencies:[261.6255653006,269.32043486826,281.75060878526,332.97799220076,366.27579142084,381.53728273004,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the pentachromatic genus"},mixol_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,411.12588832951,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,822.25177665903,885.50191332511,959.29373943553,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Mixolydian Tonos"},mixol_tri1:{frequencies:[261.6255653006,268.0066766494,274.70684356563,332.97799220076,366.27579142084,378.90599112501,392.4383479509,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the first trichromatic genus"},mixol_tri2:{frequencies:[261.6255653006,268.0066766494,281.75060878526,332.97799220076,366.27579142084,378.90599112501,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the second trichromatic genus"},mmmgeo1:{frequencies:[261.6255653006,291.52662303231,317.822348206,348.40303271111,392.9238840789,423.23948674937,463.96335069158,523.2511306012],description:"Scale for MakeMicroMusic in Peppermint 24, maybe a bit like Georgian tunings"},mmmgeo2:{frequencies:[261.6255653006,295.05751399041,323.4477810403,352.62279726972,392.9238840789,430.73079539701,485.77193724523,529.58860866211],description:"Scale for MakeMicroMusic in Peppermint 24, maybe a bit like Georgian tunings"},mmmgeo3a:{frequencies:[261.6255653006,281.81099471089,317.822348206,348.40303271111,392.9238840789,423.23948674937,463.96335069158,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmmgeo4a:{frequencies:[261.6255653006,281.81099471089,317.822348206,348.40303271111,392.9238840789,423.23948674937,477.32335087626,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmmgeo4b:{frequencies:[261.6255653006,295.05751399041,323.4477810403,348.40303271111,392.9238840789,430.73079539701,485.77193724523,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmswap:{frequencies:[261.6255653006,251.16054268858,294.32876096318,282.55561052465,313.95067836072,348.83408706747,353.19451315581,392.4383479509,376.74081403286,418.60090448096,423.83341578697,470.92601754108,523.2511306012],description:"Swapping major and minor in 5-limit JI"},mokhalif:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,425.01198472693,477.05982293263,523.2511306012],description:"Iranian mode Mokhalif from C"},montvallon:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Montvallon's Monochord, Nouveau sisteme de musique (1742)"},monzismic:{frequencies:[261.6255653006,265.20988799749,268.52946324281,272.20837072565,275.61554447717,279.39153269358,282.88861654172,286.76424730356,290.69297498385,294.33151655947,298.3639173457,302.09847446042,306.23728412706,310.07039048391,314.31841699833,318.25267316085,322.61279858837,327.03265671938,331.12605620426,335.66254762155,339.86396564906,344.52016812641,348.83245514045,353.61152766937,358.03760933268,362.94279426564,367.48567344471,372.52029869489,377.62390147213,382.35053879638,387.58881783384,392.44018387738,397.81669307529,402.79607923799,408.31446627855,413.42525081527,419.08925963743,424.33490995001,430.14838328955,436.04150237937,441.49934027584,447.54796975207,453.14983163098,459.35807517454,465.10776160818,471.47983118983,477.38124304179,483.92146177974,489.97860285142,496.69140794435,503.49617981289,509.7983334288,516.78267280423,523.2511306012],description:"Monzismic temperament, g=249.018448, 5-limit"},sevengroups:{frequencies:[261.6255653006,261.6255653006,275.62199471997,265.19499215873,270.69536599394,266.7406479561],description:"Here are some suggestions for a logical system encompassing intervals into seven broad groups: skhisma, kleisma, comma,"},"monzo-sym-11":{frequencies:[261.6255653006,269.80136421624,276.76092858245,279.06726965397,285.40970760065,286.15296204753,287.78812183066,294.32876096318,299.00064605783,304.4370214407,305.22982618403,313.95067836072,314.76825825228,327.03195662575,332.97799220076,334.88072358477,341.71502406609,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,398.6675280771,400.61414686654,408.78994578219,411.12588832951,418.60090448096,434.91003062957,436.04260883433,448.50096908674,449.66894036041,457.84473927605,465.11211608996,475.68284600109,478.40103369253,479.64686971777,490.54793493862,494.63583439645,507.3950357345,523.2511306012],description:"Monzo symmetrical system: 11-limit"},"monzo-sym-5":{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Monzo symmetrical system: 5-limit"},"monzo-sym-7":{frequencies:[261.6255653006,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,523.2511306012],description:"Monzo symmetrical system: 7-limit"},monzo_sumerian_2place12:{frequencies:[261.6255653006,277.17835052447,293.68632213351,311.15032543183,329.66469551353,349.22211163595,369.93402791915,391.94841243536,415.27867508032,439.91220695103,466.03267445926,493.6331420766,523.2511306012],description:"Monzo - most accurate 2-place sexagesimal 12-tET approximation"},monzo_sumerian_simp12:{frequencies:[261.6255653006,277.34158865788,293.41184893525,310.84225580269,329.78012432849,348.83408706747,370.22485655745,392.4383479509,415.27867508032,440.11777340288,466.26338370404,493.6331420766,523.2511306012],description:"Monzo - simplified 2-place sexagesimal 12-tET approximation"},morgan:{frequencies:[261.6255653006,277.18263097687,294.07958763262,310.86358783941,330.18637907377,349.03110370139,370.30791823326,392.32757291716,415.07027187895,440.74593809176,465.76911360306,494.58094207912,523.2511306012],description:"Augustus de Morgan's temperament (1843)"},"mos11-34":{frequencies:[261.6255653006,272.51337835337,301.75671459889,314.3146261019,348.04364484358,362.52783176564,377.61479489998,418.13653788176,435.53771116377,453.66305442345,502.34551296122,523.2511306012],description:"Wilson 11 of 34-tET, G=9, Chain of minor & major thirds with Kleismatic fusion"},"mos12-17":{frequencies:[261.6255653006,272.51337835337,283.85429714132,307.97166902637,320.78822215662,348.04364484358,362.52783176564,377.61479489998,409.69842558521,426.7484383229,463.0066556268,482.27514684959,523.2511306012],description:"MOS 12 of 17, generator 7"},"mos12-22":{frequencies:[261.6255653006,287.56082683758,296.76515515861,326.18384711731,336.62443200122,347.39920007397,381.83730669135,394.05926325844,433.12283887627,446.9863572706,491.29666030217,507.02222283506,523.2511306012],description:"MOS 12 of 22, contains nearly just, recognizable diatonic, and pentatonic scales"},"mos13-22":{frequencies:[261.6255653006,278.64197723942,296.76515515861,316.06708432391,326.18384711731,347.39920007397,369.99442271164,381.83730669135,406.67242132093,433.12283887627,446.9863572706,476.05883716226,507.02222283506,523.2511306012],description:"MOS 13 of 22, contains 5 and 9 tone MOS as well. G=5 or 17"},"mos15-22":{frequencies:[261.6255653006,278.64197723942,287.56082683758,306.26409645618,316.06708432391,336.62443200122,347.39920007397,369.99442271164,381.83730669135,406.67242132093,419.68930726506,446.9863572706,461.29362042034,491.29666030217,507.02222283506,523.2511306012],description:"MOS 15 in 22, contains 7 and 8 tone MOS as well. G= 3 or 19"},moscow:{frequencies:[261.6255653006,277.4816141504,293.64820765919,311.48626315692,329.67368081467,349.7414907984,370.88289054572,392.4383479509,416.22242101754,440.4723112686,467.22939450183,494.51052097482,523.2511306012],description:"Charles E. Moscow's equal beating piano tuning (1895)"},mundeuc45:{frequencies:[261.6255653006,267.57160087561,269.80136421624,271.31540105247,274.70684356563,280.31310567921,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,488.36772189445,499.46698830115,504.56359022259,507.3950357345,513.90736041189,523.2511306012],description:"Euclidean reduced detempered Miracle[45] with Tenney tie-breaker"},musaqa:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Egyptian scale by Miha'il Musaqa"},musaqa_24:{frequencies:[261.6255653006,269.02051582234,276.67624041581,284.6011815168,292.80374147632,300.29158209195,310.07474405997,319.15917884888,328.55303549378,338.26335715633,348.29659232622,358.65845048745,369.35373924791,380.38618160659,391.75821216589,403.47075130695,415.52295665389,427.91195157543,440.63253103259,453.67684579974,467.03406698289,480.69003385373,494.62688932105,508.8227088795,523.2511306012],description:"from d'Erlanger vol.5, p.34, after Mih.a'il Mu^saqah, 1899, a Lebanese scholar"},myna23:{frequencies:[261.6255653006,267.85369360167,274.23008563259,291.58574485564,298.52709031489,305.63367799752,312.90944157785,320.35840837329,327.98470157359,348.7424193045,357.04440817535,365.54403007102,374.24598974517,383.15510395049,392.27630410488,417.10295228105,427.03229805648,437.19801690717,447.60573581317,458.26121570764,469.17035466565,498.86352554567,510.73922293119,522.89762727195],description:"23 notes of Myna temperament, 7-limit TOP tuning (Paul Erlich)"},"mystic-r":{frequencies:[261.6255653006,367.91095120397,465.11211608996,654.0639132515,872.08521766867,1177.3150438527],description:"Skriabin's mystic chord, op. 60 rationalised"},mystic:{frequencies:[261.6255653006,369.99442271164,466.16376151809,659.25511382574,880,1174.65907166964],description:"Skriabin's mystic chord, op. 60"},urmawi:{frequencies:[261.6255653006,294.32876096318,326.6631048533,348.83408706747,392.4383479509,441.49314144476,471.45776383774,523.2511306012],description:"al-Urmawi, one of twelve maqam rows. First tetrachord is Rast"},valentine:{frequencies:[261.6255653006,276.16031892841,294.32876096318,310.68035879446,330.47439827444,348.83408706747,371.78369805875,392.4383479509,414.24047839262,440.63253103259,466.02053819169,495.71159741166,523.2511306012],description:"Robert Valentine, tuning with primes 3 & 19, TL 7-2-2002"},valentine2:{frequencies:[261.6255653006,286.10322937235,312.87102146627,349.87955533643,382.6142546815,418.41160951721,467.90420651233,511.68128147674,559.55413558945,625.74204293254,684.28641150324,748.30818586768,782.53142116911,855.74498969389,935.80841302466,1046.5022612024],description:"Robert Valentine, two octave 31-tET subset for guitar, TL 10-5-2002"},vallotti:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.14198392915,349.6228209638,368.32692341742,391.5530240856,414.36778843034,438.51190905657,466.16376151809,491.10256480205,523.2511306012],description:"Vallotti & Young scale (Vallotti version)"},vavoom:{frequencies:[164.81377845643,165.83014536684,167.75567809608,168.79018601865,170.75008918846,172.7327497266,173.79795102719,175.81600173949,176.90021569146,178.95428827501,180.05785630665,182.14859375797,184.26360775673,185.39991601304,187.55268266167,188.70927492235,190.90046811205,192.07770535997,194.30800987601,196.56421264146,197.77637683895,200.07285246365,201.3066535986,203.64411977036,206.00872855044,207.27913480479,209.68595147418,210.9790342774,213.42881100738,214.74497512464,217.23848121866,219.76094059848,221.11615343515,223.68363702025,225.06304018178,227.6763542391,229.0803795269,231.74034082302,234.43118684139,235.87686755635,238.61574610914,240.08723199411,242.87499909192,244.37274935352,247.21027763268,250.08075380295,251.62294163139,254.54465534315,256.1143694988,259.0882353168,260.68597011615,263.71291896434,266.77501515601,268.42015092639,271.53690502834,273.21140777811,276.38379544331,278.08818779989,281.31720045362,284.58370833477,286.33866758091,289.66348210637,291.44976709494,294.83392732599,296.65209720599,300.09666587055,303.58123106099,305.45334345815,309.00010579622,310.90563508986,314.51570836542,316.45525105281,320.12976356015,323.84694071013,325.84402686189,329.62755691286],description:"Vavoom temperament, g=111.875426, 5-limit"},veroli:{frequencies:[261.6255653006,276.87699530057,293.57148765354,310.97965314221,329.42008585855,349.28270065725,369.64409253099,391.93430587921,414.97617910427,439.79164309579,466.09106516521,493.49262474744,523.2511306012],description:"Claudio di Veroli's well temperament (1978)"},vertex_chrom:{frequencies:[261.6255653006,271.89678302796,317.17549194805,349.22823143301,391.99543598175,407.38487419079,448.5538823653,523.2511306012],description:"A vertex tetrachord from Chapter 5, 66.7 + 266.7 + 166.7 cents"},vertex_chrom2:{frequencies:[261.6255653006,274.52698453615,323.3415889232,349.22823143301,391.99543598175,411.32572372413,484.46499093218,523.2511306012],description:"A vertex tetrachord from Chapter 5, 83.3 + 283.3 + 133.3 cents"},vertex_chrom3:{frequencies:[261.6255653006,275.18850165466,324.90175210669,349.22823143301,391.99543598175,412.31687950427,486.80259447109,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 287.5 + 125 cents"},vertex_chrom4:{frequencies:[261.6255653006,275.40936140075,325.42347822215,349.22823143301,391.99543598175,412.64779522483,487.58430040208,523.2511306012],description:"A vertex tetrachord from Chapter 5, 88.9 + 288.9 + 122.2 cents"},vertex_chrom5:{frequencies:[261.6255653006,282.57123920205,329.62755691287,349.22823143301,391.99543598175,423.37848741825,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 133.3 + 266.7 + 100 cents"},vertex_diat:{frequencies:[261.6255653006,299.37379946195,323.3415889232,349.22823143301,391.99543598175,448.5538823653,484.46499932732,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.3 + 133.3 + 133.3 cents"},vertex_diat10:{frequencies:[261.6255653006,295.79278388132,324.90175210669,349.22823143301,391.99543598175,443.18842137843,486.80259447109,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 162.5 + 125 cents"},vertex_diat11:{frequencies:[261.6255653006,295.79278388132,306.66641795878,349.22823143301,391.99543598175,443.18842137843,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 62.5 + 225 cents"},vertex_diat12:{frequencies:[261.6255653006,293.66476791741,315.65242990842,349.22823143301,391.99543598175,440,472.94426956511,523.2511306012],description:"A vertex tetrachord from Chapter 5, 200 + 125 + 175 cents"},vertex_diat2:{frequencies:[261.6255653006,299.37379946195,329.62755691287,349.22823143301,391.99543598175,448.5538823653,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.3 + 166.7 + 100 cents"},vertex_diat3:{frequencies:[261.6255653006,273.20871865617,311.12698372208,349.22823143301,391.99543598175,409.35055662695,466.16376151809,523.2511306012],description:"A vertex tetrachord from Chapter 5, 75 + 225 + 200 cents"},vertex_diat4:{frequencies:[261.6255653006,297.93622032612,329.62755691287,349.22823143301,391.99543598175,446.39994737251,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 225 + 175 + 100 cents"},vertex_diat5:{frequencies:[261.6255653006,275.18850165466,315.65242990842,349.22823143301,391.99543598175,412.31687950427,472.94426956511,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 237.5 + 175 cents"},vertex_diat7:{frequencies:[261.6255653006,293.66476791741,306.66641795878,349.22823143301,391.99543598175,440,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 200 + 75 + 225 cents"},vertex_diat8:{frequencies:[261.6255653006,277.18263097687,306.66641795878,349.22823143301,391.99543598175,415.30469757995,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 100 + 175 + 225 cents"},vertex_diat9:{frequencies:[261.6255653006,295.79278388132,320.24370022528,349.22823143301,391.99543598175,443.18842137843,479.82340237272,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 137.5 + 150 cents"},vertex_sdiat:{frequencies:[261.6255653006,275.18850165466,306.66641795878,349.22823143301,391.99543598175,412.31687950427,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 187.5 + 225 cents"},vertex_sdiat2:{frequencies:[261.6255653006,273.20871865617,302.26980244078,349.22823143301,391.99543598175,409.35055662695,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 75 + 175 + 250 cents"},vertex_sdiat3:{frequencies:[261.6255653006,265.43099677612,302.26980244078,349.22823143301,391.99543598175,397.69714089209,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 25 + 225 + 250 cents"},vertex_sdiat4:{frequencies:[261.6255653006,271.8968348557,302.26980244078,349.22823143301,391.99543598175,407.38495184466,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 66.7 + 183.3 + 250 cents"},vertex_sdiat5:{frequencies:[261.6255653006,299.37374239667,302.26980244078,349.22823143301,391.99543598175,448.55379686399,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.33 + 16.67 + 250 cents"},vicentino1:{frequencies:[261.6255653006,267.54129532085,273.59078691818,279.77706779472,286.10322937235,292.57243455474,295.8616864168,299.18791603519,305.95298478736,312.87102146627,319.94548489658,327.17991022208,330.85823737058,334.57791819083,342.14320575162,349.87955533643,357.79083283678,365.88099775759,374.15409293384,382.6142546815,391.26571058456,395.66452371628,400.11279059885,409.15991580663,418.41160951721,427.87249484695,437.54730686196,442.46644183113,447.44088028055,457.55816161244,467.90420651233,478.48419305869,489.30340830564,494.80441235385,500.36726155789,511.68128147674,523.2511306012],description:"Usual Archicembalo tuning, 31-tET plus D,E,G,A,B a 10th tone higher"},vicentino2:{frequencies:[261.6255653006,262.40966637115,273.59078691818,274.41074818102,279.77706779472,280.61556956011,292.57243455474,293.44928279173,305.95298478736,306.86993670158,312.87102146627,313.80870698104,327.17991022208,328.16047998243,342.14320575162,343.16862103779,349.87955533643,350.92815470883,365.88099775759,366.97755604579,374.15409293384,391.26571058456,392.4383479509,409.15991580663,410.38618254261,418.41160951721,419.66560148231,437.54730686196,438.85865161274,457.55816161244,458.92947695163,467.90420651233,469.30653196482,489.30340830564,490.7698679226,511.68128147674,523.2511306012],description:"Alternative Archicembalo tuning, lower 3 rows the same upper 3 rows 3/2 higher"},vicentino2q217:{frequencies:[261.6255653006,262.46259217279,273.59078691818,274.46609608433,279.77706779472,280.67216895906,292.57243455474,293.50847071582,305.95298478736,306.93183153514,312.87102146627,313.87199953275,327.17991022208,328.2266690608,342.14320575162,343.23783523487,349.87955533643,350.99893596542,365.88099775759,367.05157442308,374.15409293384,391.26571058456,392.51750150462,409.15991580663,410.46895395112,418.41160951721,419.7502468954,437.54730686196,438.9471656765,457.55816161244,459.02204178186,467.90420651233,469.40118981889,489.30340830564,490.86885203792,511.68128147674,523.2511306012],description:"Vicentino's second tuning, 217-tET version"},vicentino36:{frequencies:[261.6255653006,262.43934012943,273.37431312998,274.22463192287,279.93529690293,280.80602334765,292.50627485027,293.41610276971,305.64177427204,306.59245933664,312.97717714283,313.95067836072,327.03195662575,328.04917632434,341.71789064962,349.91912034749,351.00752840096,365.63284274659,366.77012764335,374.40803131735,375.5726110527,391.22147055517,392.4383479509,408.78994578219,410.06146948999,418.60090448096,419.90294514449,437.39889945791,438.75941205608,457.04105505291,458.46266117889,468.01003810189,469.46576276783,489.02683710225,490.54793493862,510.98743222773,523.2511306012],description:"Vicentino's second tuning of 1555"},victor_eb:{frequencies:[261.6255653006,276.45300885359,293.16631378471,311.00963644582,328.52867116285,348.83408706747,368.60401198904,391.83966133014,414.6795130731,439.03603741286,465.77732204887,492.79300649794,523.2511306012],description:"Equal beating Victorian piano temperament, interpr. by Bill Bremmer (improved)"},victorian:{frequencies:[261.6255653006,276.5429423948,293.32570896007,310.76776326996,328.29744538229,349.22823143301,368.92737853004,391.99543598175,414.58565256441,438.73106346722,465.89457252293,492.17459484008,523.2511306012],description:"Form of Victorian temperament (1885)"},vitale1:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,336.37572681506,343.38355445704,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,457.84473927605,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Rami Vitale's 7-limit just scale"},vitale2:{frequencies:[261.6255653006,274.70684356563,294.32876096318,299.00064605783,305.22982618403,313.95067836072,336.37572681506,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,448.50096908674,457.84473927605,470.92601754108,504.56359022259,523.2511306012],description:"Rami Vitale, inverse mode of vitale1"},vitale3:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,412.06026534844,420.46965851882,441.49314144476,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Superset of several Byzantine scales by Rami Vitale, TL 29-Aug-2001"},vogel_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,310.07474405997,313.95067836072,321.55899383997,330.74639366397,348.83408706747,361.75386806997,372.08969287196,392.4383479509,406.97310157871,413.43299207996,418.60090448096,428.74532511996,440.99519155196,465.11211608996,482.33849075995,496.11959049595,523.2511306012],description:"Martin Vogel's 21-tone Archytas system, see Divisions of the tetrachord"},vogelh_b:{frequencies:[261.6255653006,276.37000081643,292.73769384471,310.07474405997,327.54963108844,349.78078158391,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,489.99465727995,523.2511306012],description:"Harald Vogel's temperament, van Eeken organ in Bunschoten, Immanuelkerk, 1992"},vogelh_fisk:{frequencies:[261.6255653006,274.01856817608,292.73769384471,312.85332572834,327.54963108844,349.78078158391,366.49445363528,391.37619916626,409.75340805561,437.91808280662,467.82492621575,489.99465727995,523.2511306012],description:"Modified meantone tuning of Fisk organ in Memorial Church at Stanford"},vogelh_hb:{frequencies:[261.6255653006,276.50527247638,293.79744652436,312.85332572834,329.92547760025,349.78078158391,369.82037393809,392.08397832814,413.47189899094,440.29822362186,467.82492621575,494.44133512215,523.2511306012],description:"Harald Vogel hybrid meantone (1984)"},vogelh_jakobi:{frequencies:[261.6255653006,275.2485073924,292.86986732103,310.4251397446,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.87276088221,438.2147004401,466.26912673157,490.54793493862,523.2511306012],description:"Harald Vogel's temperament for the Schnitger organ in St. Jakobi, Hamburg"},volans:{frequencies:[261.6255653006,288.78654445823,322.09885310804,352.06379107796,388.6137256405,429.95038611107,482.60299106564,523.2511306012],description:"African scale according to Kevin Volans 1/1=G"},vong:{frequencies:[261.6255653006,287.78812183066,324.77656382143,353.19451315581,392.4383479509,431.68218274599,476.53227965466,523.2511306012],description:"Vong Co Dan Tranh scale, Vietnam"},"vries19-72":{frequencies:[261.6255653006,271.89678302796,282.57123920205,293.66476791741,305.19382000629,314.13668154225,326.46944327063,339.28638158975,352.60650301302,366.44956000397,377.18735172911,391.99543598175,407.38487419079,423.37848741825,452.89298412314,470.6732130613,489.15147723638,508.3551866238,523.2511306012],description:"Leo de Vries 19/72 Through-Transposing-Tonality 18 tone scale"},"vries35-72":{frequencies:[261.6255653006,320.24370022528,326.46944327063,332.81622067851,339.28638158975,345.88232658126,352.60650301302,359.46139971304,366.44956000397,448.5538823653,457.27406033445,466.16376151809,475.22628419761,484.46499093218,493.88330125613,503.48470957687,513.27277840175,523.2511306012],description:"Leo de Vries 35/72 Through-Transposing-Tonality 17 tone scale"},"vries5-72":{frequencies:[261.6255653006,269.29177952703,274.52698453615,282.57123920205,288.06460709314,296.5055443788,302.26980244078,317.17549194805,332.81622067851,349.22823143301,366.44956000397,384.52011812375,403.48177901006,423.37848741825,444.25635547592,466.16376151809,489.15147723638,513.27277840175,523.2511306012],description:"Leo de Vries 5/72 Through-Transposing-Tonality 18 tone scale"},"vries6-31":{frequencies:[261.6255653006,292.57243455474,299.18791603519,334.57791819083,342.14320575162,382.6142546815,391.26571058456,437.54730686196,447.44088028055,500.36726155789,511.68128147674,523.2511306012],description:'Leo de Vries 6/31 TTT used in "For 31-tone organ" (1995)'},vulture:{frequencies:[261.6255653006,265.58852967049,269.02996542365,272.51599294435,276.04719319079,279.62414831161,283.24745441839,286.9177088442,290.63552324927,294.40151054717,298.21629835234,302.73351960911,306.6562716924,310.62985211059,314.65492307423,318.73214815075,322.86220682342,327.0457799678,331.28356479042,335.57625992643,339.9245807679,344.32924417279,349.54496173019,354.07428378691,358.66229781376,363.30976018416,368.01744541334,372.78612960355,377.61660747204,382.50967536449,387.46614872711,392.486844677,398.43202813578,403.59481739244,408.82450722915,414.12195980508,419.48805795853,424.92368633675,430.42975080549,436.00715908665,441.65684067409,447.37972696622,453.17677170128,460.0412514682,466.0023613576,472.04071122634,478.15730738573,484.35315820906,490.6292962557,496.98675620078,503.42659462849,509.94988192555,516.55769649554,523.2511306012],description:"Vulture temperament, g=475.542233, 5-limit"},walker_21:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,327.03195662575,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:'Douglas Walker, 1977, for "out of the fathomless dark/into the limitless light'},walkerr_11:{frequencies:[261.6255653006,291.47537246454,299.00064605783,333.11471138804,341.71502406609,380.70252730062,390.53145607553,435.08860262928,484.72943438718,497.2441172906,510.08190181294,523.2511306012],description:'Robert Walker, "Seven to Pi" scale, TL 09-07-2002'},wauchope:{frequencies:[261.6255653006,274.70684356563,305.22982618403,327.03195662575,366.27579142084,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Symmetrical 7-limit JI whole-half step scale, Ken Wauchope"},wendell1:{frequencies:[261.6255653006,276.25045813601,293.35468319005,310.78176509232,328.42642049784,348.83408706747,369.47972269069,391.8804287311,414.37568699689,438.92294511207,466.17264740545,492.63963050051,523.2511306012],description:"Robert Wendell's Natural Synchronous well-temperament (2003)"},wendell1r:{frequencies:[261.6255653006,276.25560153172,293.36810129327,310.78755172318,328.43721515437,348.83408706747,369.49186704867,391.89926583958,414.38340229758,438.93945576706,466.18132758477,492.65582273156,523.2511306012],description:"Rational version of wendell1 by Gene Ward Smith"},wendell2:{frequencies:[261.6255653006,276.37223575148,293.46077701205,310.91876490958,328.50868755512,348.91469434159,369.57235851938,392.00856887742,414.55835341999,438.92345217603,466.37814713124,492.76314493882,523.2511306012],description:"Robert Wendell's Very Mild Synchronous well-temperament (2003)"},werck1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Werckmeister I (just intonation)"},werck3:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,327.77163799145,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,491.65745674141,523.2511306012],description:"Andreas Werckmeister's temperament III (the most famous one, 1681)"},werck3_eb:{frequencies:[261.6255653006,275.62199471997,292.52927773082,310.07474405997,328.06371231954,348.83408706747,367.49599295996,391.41011079897,413.43299207996,437.41828331138,465.11211608996,492.10978071589,523.2511306012],description:"Werckmeister III equal beating version, 5/4 beats twice 3/2"},werck3_mod:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,327.77163799145,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,490.82535372381,523.2511306012],description:"Modified Werckmeister III with B between E and F#, Nijsse (1997), organ Soest"},werck4:{frequencies:[261.6255653006,274.37997440822,293.00227310437,310.07474405997,328.14198392915,348.83408706747,367.49599295996,390.66969766777,411.5699614066,437.52264545758,467.21778431035,489.99465727995,523.2511306012],description:"Andreas Werckmeister's temperament IV"},werck5:{frequencies:[261.6255653006,276.55731914056,294.32876096318,311.12698372208,328.88393162803,350.01785633742,369.99442271164,392.4383479509,413.43299207996,440,466.69047534984,493.32589719545,523.2511306012],description:"Andreas Werckmeister's temperament V"},werck6:{frequencies:[261.6255653006,275.69145590816,291.35574317567,310.77945938738,328.70904358281,348.83408706747,368.91086905696,391.43977709097,413.53718386224,438.27872477707,466.16918908107,493.06356537421,523.2511306012],description:`Andreas Werckmeister's "septenarius" tuning VI`},werck6_dup:{frequencies:[261.6255653006,275.62199471997,291.49363009634,310.67551062492,328.56569462012,348.83408706747,368.92162485303,391.67947347082,413.43299207996,438.08759304581,466.01326570444,492.84854168382,523.2511306012],description:"Andreas Werckmeister's VI in the interpretation by Dupont (1935)"},werck_cl5:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.97737261399,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.14811800305,438.2147004401,466.26912673157,490.54793493862,523.2511306012],description:"Werckmeister Clavier temperament (Nothw. Anm.) Poletti reconstr. 1/5-comma"},werck_cl6:{frequencies:[261.6255653006,275.36250599118,293.11251278827,310.35057963607,328.38895179964,349.55706816887,367.91095120397,391.62667645325,413.31226430431,438.75941205608,466.0760911248,491.56462836305,523.2511306012],description:"Werckmeister Clavier temperament (Nothw. Anm.) Poletti reconstr. 1/6-comma"},werck_puzzle:{frequencies:[261.6255653006,272.52663052146,291.60349465796,306.59245933664,327.03195662575,347.47145391486,365.18568489875,389.71308164569,408.78994578219,436.04260883433,461.93263873387,490.54793493862,523.2511306012],description:"From Hypomnemata Musica, 1697, p. 49, 1/1=192, fifths tempered superparticular"},white:{frequencies:[261.6255653006,275.93321340298,289.72987407313,294.32876096318,305.22982618403,310.42486507835,327.03195662575,331.11985608357,343.38355445704,348.83408706747,367.91095120397,386.30649876417,392.4383479509,406.97310157871,413.89982010446,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:"Justin White's 22-tone scale based on Al-Farabi's tetrachord"},wicks:{frequencies:[261.6255653006,276.65728054629,293.45376109391,310.36444075595,329.26048109616,348.28499607284,369.54304125029,391.93835601961,414.48592121967,439.68064187634,465.04666232412,493.39072329352,523.2511306012],description:"Mark Wicks' equal beating temperament for organs (1887)"},wier_cl:{frequencies:[261.6255653006,276.16031892841,290.69507255622,305.22982618403,319.76457981184,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"Danny Wier, ClownTone (2003)"},wiesse:{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,348.83408706747,369.99442271164,392.4383479509,416.24372513446,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Von Wiesse's 1/2 Pyth. comma tuning"},wilson1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson's 19-tone Scott scale (1976)"},wilson11:{frequencies:[261.6255653006,271.31540105247,277.4816601673,291.35574317567,305.22982618403,312.16686768822,325.57848126297,332.97799220076,348.83408706747,366.27579142084,374.60024122586,392.4383479509,406.97310157871,416.22249025095,437.0336147635,457.84473927605,468.25030153232,488.36772189445,499.46698830115,523.2511306012],description:"Wilson 11-limit 19-tone scale, 1977"},wilson1t:{frequencies:[261.6255653006,273.34666024156,279.64601698606,292.92954243175,306.05308604033,313.10617410217,327.13365148064,334.67254769546,349.66622272551,366.27579142084,374.71672979763,391.50442319155,409.04422481132,418.47077311482,437.21869500104,457.98711402938,468.54156606881,489.53271107931,500.81414097667,523.2511306012],description:"Wilson's Scott scale, wilson1, in minimax minerva tempering"},wilson2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,372.08969287196,392.4383479509,406.97310157871,418.60090448096,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 19-tone, 1975"},wilson3:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,515.07533168556,523.2511306012],description:"Wilson 19-tone"},wilson5:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson's 22-tone 5-limit scale"},wilson7:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson's 22-tone 7-limit 'marimba' scale"},wilson7_2:{frequencies:[261.6255653006,263.718569823,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,329.64821227876,343.38355445704,353.19451315581,366.27579142084,376.74081403286,392.4383479509,408.78994578219,412.06026534844,436.04260883433,439.53094970501,457.84473927605,470.92601754108,490.54793493862,494.47231841813,523.2511306012],description:"Wilson 7-limit scale"},wilson7_3:{frequencies:[261.6255653006,267.90457886781,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson 7-limit scale"},wilson7_4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,372.08969287196,387.59343007496,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 7-limit 22-tone scale XH 3, 1975"},wilson_17:{frequencies:[261.6255653006,275.93321340298,290.69507255622,294.32876096318,310.42486507835,327.03195662575,331.11985608357,348.83408706747,367.91095120397,372.50983809402,392.4383479509,413.89982010446,436.04260883433,441.49314144476,465.11211608996,490.54793493862,496.67978412536,523.2511306012],description:"Wilson's 17-tone 5-limit scale"},wilson_31:{frequencies:[261.6255653006,265.7783520514,271.31540105247,279.06726965397,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,321.08592105074,327.03195662575,332.22294006425,339.14425131559,348.83408706747,354.37113606854,361.75386806997,372.08969287196,380.54627680087,392.4383479509,398.6675280771,406.97310157871,418.60090448096,428.11456140098,441.49314144476,448.50096908674,457.84473927605,470.92601754108,481.6288815761,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Wilson 11-limit 31-tone scale XH 3, 1975"},wilson_41:{frequencies:[261.6255653006,265.7783520514,271.31540105247,275.62199471997,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,321.08592105074,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,354.37113606854,361.75386806997,367.49599295996,372.08969287196,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,413.43299207996,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,481.6288815761,490.54793493862,496.67978412536,504.56359022259,515.07533168556,523.2511306012],description:"Wilson 11-limit 41-tone scale XH 3, 1975"},wilson_alessandro:{frequencies:[261.6255653006,265.58571790036,269.80136421624,270.50397193556,275.93321340298,278.232656848,284.55612632182,286.15296204753,288.53757006459,294.32876096318,295.09524211152,303.52653474327,304.3169684275,305.22982618403,309.14739649778,314.76825825228,321.92208230347,324.60476632267,327.03195662575,331.98214737546,337.2517052703,340.06213614756,343.38355445704,347.79082106,351.18772614924,354.11429053382,359.73515228832,365.180362113,367.91095120397,370.97687579734,379.40816842909,386.30649876417,391.2646736925,392.4383479509,393.46032281536,404.70204632437,405.75595790334,413.89982010446,417.348985272,419.69101100305,429.2294430713,432.80635509689,441.49314144476,442.64286316727,449.66894036041,456.47545264125,457.84473927605,463.72109474667,472.15238737843,482.88312345521,486.907149484,490.54793493862,494.63583439645,505.87755790546,515.07533168556,521.68623159,523.2511306012],description:"D'Alessandro, genus [3 3 3 5 7 11 11] plus 8 pigtails, XH 12, 1989"},wilson_bag:{frequencies:[261.6255653006,294.32876096318,318.85615771011,349.51540364377,392.4383479509,425.14154361347,466.02053819169,523.2511306012],description:"Erv's bagpipe, mar '97, after Theodore Podnos (37-39)."},wilson_class:{frequencies:[261.6255653006,272.52663052146,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,381.53728273004,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Class Scale, Erv Wilson, 9 july 1967"},wilson_dia1:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,362.25078272391,371.78369805875,381.83190611439,392.4383479509,403.65087217807,415.52295665389,428.11456140098,441.49314144476,455.73485568492,470.92601754108,487.16484573215,504.56359022259,523.2511306012],description:"Wilson Diaphonic cycles, tetrachordal form"},wilson_dia2:{frequencies:[261.6255653006,268.51044859798,275.76748774928,283.42769574232,291.52562990638,300.09991313892,309.19384990071,318.85615771011,329.14184021688,340.11323489078,351.84127747322,364.40703738298,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Wilson Diaphonic cycle, conjunctive form"},wilson_dia3:{frequencies:[261.6255653006,268.51044859798,275.76748774928,283.42769574232,291.52562990638,300.09991313892,309.19384990071,318.85615771011,329.14184021688,340.11323489078,351.84127747322,364.40703738298,377.90359432309,392.4383479509,403.65087217807,415.52295665389,428.11456140098,441.49314144476,455.73485568492,470.92601754108,487.16484573215,504.56359022259,523.2511306012],description:"Wilson Diaphonic cycle on 3/2"},wilson_dia4:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,358.01393146398,381.83190611439,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Wilson Diaphonic cycle on 4/3"},wilson_duo:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 'duovigene'"},wilson_enh:{frequencies:[261.6255653006,264.37951861955,279.06726965397,348.83408706747,392.4383479509,396.56927792933,418.60090448096,523.2511306012],description:"Wilson's Enharmonic & 3rd new Enharmonic on Hofmann's list of superp. 4chords"},wilson_enh2:{frequencies:[261.6255653006,265.7783520514,275.62199471997,348.83408706747,392.4383479509,398.6675280771,413.43299207996,523.2511306012],description:"Wilson's 81/64 Enharmonic, a strong division of the 256/243 pyknon"},wilson_facet:{frequencies:[261.6255653006,271.31540105247,274.70684356563,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,366.27579142084,387.59343007496,392.4383479509,406.97310157871,412.06026534844,436.04260883433,452.19233508746,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Wilson study in 'conjunct facets', Hexany based"},wilson_gh1:{frequencies:[261.6255653006,286.54684077898,313.84200313831,343.73718179912,398.2573899082,436.19359890902,477.74343791599,523.2511306012],description:"Golden Horagram nr.1: 1phi+0 / 7phi+1"},wilson_gh11:{frequencies:[261.6255653006,294.51148904212,316.87124012705,356.70145865606,383.78276711707,432.02365977685,464.82353976398,523.2511306012],description:"Golden Horagram nr.11: 1phi+0 / 3phi+1"},wilson_gh2:{frequencies:[261.6255653006,290.51361927671,322.59142140135,358.21117585067,382.16527586729,424.3630293795,471.22015545621,523.2511306012],description:"Golden Horagram nr.2: 1phi+0 / 6phi+1"},wilson_gh50:{frequencies:[261.6255653006,270.80964219588,280.31611759965,306.81496952381,317.58537244461,347.60736272384,359.80973785756,372.44046183271,407.64801512355,421.95805149354,461.8466031062,478.05922145,523.2511306012],description:"Golden Horagram nr.50: 7phi+2 / 17phi+5"},wilson_helix:{frequencies:[261.6255653006,283.42769574232,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"Wilson's Helix Song, see David Rosenthal, Helix Song, XH 7&8, 1979. Also Secor, 1964"},wilson_hypenh:{frequencies:[261.6255653006,266.38239376061,271.31540105247,348.83408706747,392.4383479509,399.57359064092,406.97310157871,523.2511306012],description:"Wilson's Hyperenharmonic, this genus has a CI of 9/7"},wilson_l1:{frequencies:[261.6255653006,269.80136421624,274.70684356563,286.15296204753,294.32876096318,305.22982618403,314.76825825228,327.03195662575,337.2517052703,343.38355445704,359.73515228832,366.27579142084,377.72190990274,392.4383479509,404.70204632437,419.69101100305,431.68218274599,449.66894036041,457.84473927605,472.15238737843,490.54793493862,503.62921320365,523.2511306012],description:"Wilson 11-limit scale"},wilson_l2:{frequencies:[261.6255653006,267.07609791103,279.79400733536,287.78812183066,294.32876096318,305.22982618403,314.76825825228,327.03195662575,335.75280880244,348.83408706747,359.73515228832,373.05867644715,381.53728273004,392.4383479509,411.12588832951,419.69101100305,436.04260883433,447.67041173658,457.84473927605,479.64686971777,490.54793493862,503.62921320365,523.2511306012],description:"Wilson 11-limit scale"},wilson_l3:{frequencies:[261.6255653006,269.80136421624,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,332.97799220076,343.38355445704,359.73515228832,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,499.46698830115,523.2511306012],description:"Wilson 11-limit scale"},wilson_l4:{frequencies:[261.6255653006,267.07609791103,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,356.10146388137,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Wilson 11-limit scale"},wilson_l5:{frequencies:[261.6255653006,267.07609791103,279.79400733536,285.40970760065,299.00064605783,305.22982618403,313.95067836072,327.03195662575,332.97799220076,348.83408706747,356.10146388137,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,479.64686971777,488.36772189445,508.71637697339,523.2511306012],description:"Wilson 11-limit scale"},wilson_l6:{frequencies:[261.6255653006,267.57160087561,277.4816601673,285.40970760065,294.32876096318,305.22982618403,312.16686768822,327.03195662575,332.97799220076,348.83408706747,356.76213450082,369.97554688974,381.53728273004,392.4383479509,406.97310157871,416.22249025095,436.04260883433,443.97065626768,457.84473927605,475.68284600109,490.54793493862,499.46698830115,523.2511306012],description:"Wilson 1 3 7 9 11 15 eikosany plus 9/8 and tritone. Used Stearns: Jewel"},window:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,297.67175429757,306.59245933664,327.03195662575,334.88072358477,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,446.50763144636,459.88868900496,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"Window lattice"},wonder1:{frequencies:[261.6255653006,272.72256190885,277.86237426839,283.09905309511,288.43442562998,293.8703485525,299.4087202614,312.10830899518,317.99039712482,323.98334274799,330.08923137594,336.31019538088,342.64839962317,357.18202566262,363.91358676728,370.77201292014,377.75969724053,384.87907140314,392.13262172187,408.76514672187,416.46885901676,424.31776026786,432.3145818485,440.46211650535,448.76319953449,467.79774494453,476.61400354229,485.59641603135,494.74811665626,504.07229015717,513.57219283465,523.2511306012],description:"Wonder Scale, gen=~233.54 cents, 8/7+1029/1024^7/25, LS 12:14:18:21, M.Schulter"},wonder36:{frequencies:[261.6255653006,271.89678302796,277.18263097687,282.57123920205,288.06460709314,293.66476791741,299.37379946195,311.12698372208,317.17549194805,323.3415889232,329.62755691287,336.03572815422,342.56848033562,356.01745236555,362.93866220634,369.99442271164,377.18735172911,384.52011812375,391.99543598175,407.38487419079,415.30469757995,423.37848741825,431.60923940535,440,448.5538823653,466.16376151809,475.22628419761,484.46499093218,493.88330125613,503.48470957687,513.27277840175,523.2511306012],description:"Wonder Scale, 36-tET version"},wronski:{frequencies:[261.6255653006,277.97716313189,294.32876096318,308.86351459099,327.03195662575,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,463.29527188648,494.18162334558,523.2511306012],description:`Wronski's scale, from Jocelyn Godwin, "Music and the Occult", p. 105.`},wurschmidt:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,331.11985608357,353.19451315581,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's normalised 12-tone system"},wurschmidt1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,502.32108537715,523.2511306012],description:"W\xEF\xBF\xBDrschmidt-1 19-tone scale"},wurschmidt2:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,484.4917875937,502.32108537715,523.2511306012],description:"W\xEF\xBF\xBDrschmidt-2 19-tone scale"},wurschmidt_31:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,476.27480687611,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 31-tone system"},wurschmidt_31a:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,372.08969287196,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,476.27480687611,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 31-tone system with alternative tritone"},wurschmidt_53:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,319.36714514233,321.48549464138,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.43299207996,418.60090448096,425.82286018978,428.6473261885,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.27480687611,484.4917875937,490.54793493862,496.11959049595,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 53-tone system"},wurschmidt_temp:{frequencies:[261.6255653006,270.6876810201,276.46178051834,282.35904862511,288.38211267756,294.53365605714,300.81641938515,307.23320174366,313.78686192261,320.48031969341,327.31655710978,338.6540596739,345.87796520471,353.25596548096,360.79134753214,368.48746850413,376.34775715481,384.37571538166,392.57491978195,400.94902556208,409.5017589506,423.68596790742,432.72370810117,441.95423435346,451.38165902684,461.01018486849,470.84409628664,480.88777706987,491.14570185547,501.62244073019,512.32266126632,523.2511306012],description:"W\xEF\xBF\xBDrschmidt temperament, 5-limit, g=387.744375, 5-limit"},"t-side":{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Tau-on-Side"},"t-side2":{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"Tau-on-Side opposite"},tagawa_55:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,296.50897400735,299.00064605783,301.87565226992,305.22982618403,307.79478270659,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,442.75095666255,444.76346101102,448.50096908674,453.48431318771,457.84473927605,461.69217405988,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Rick Tagawa, 17-limit diamond subset with good 72-tET approximation, 2003"},tamil:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,372.50983809402,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Possible Tamil sruti scale. Alternative 11th sruti is 45/32 or 64/45"},tamil_vi:{frequencies:[261.6255653006,275.62199471997,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.91095120397,387.59343007496,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Vilarippalai scale in Tamil music, Vidyasankar Sundaresan"},tamil_vi2:{frequencies:[261.6255653006,275.62199471997,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.49599295996,387.59343007496,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Vilarippalai scale with 1024/729 tritone"},tanaka:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,331.11985608357,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"26-note choice system of Shoh\xEF\xBF\xBD Tanaka, Studien i.G.d. reinen Stimmung (1890)"},tanbur:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,306.66732929008,314.73752216614,323.24394168414,332.22294006425,341.71502406609,351.76546595039,523.2511306012],description:"Sub-40 tanbur scale"},tansur:{frequencies:[261.6255653006,275.71279889585,293.19126194179,310.07474405997,328.21516866261,348.83408706747,367.61706537823,391.78834765065,413.56919813705,438.48689188122,465.11211608996,491.022754507,523.2511306012],description:"William Tans'ur temperament from A New Musical Grammar (1746) p. 73"},tartini_7:{frequencies:[261.6255653006,294.32876096318,313.95067836072,367.91095120397,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Tartini (1754) with 2 neochromatic tetrachords, 1/1=d, Minor Gipsy (Slovakia)"},taylor_g:{frequencies:[261.6255653006,274.70684356563,287.78812183066,294.32876096318,313.95067836072,353.19451315581,366.27579142084,392.4383479509,412.06026534844,418.60090448096,431.68218274599,470.92601754108,523.2511306012],description:"Gregory Taylor's Dutch train ride scale based on pelog_schmidt"},taylor_n:{frequencies:[261.6255653006,275.93341798027,292.67158636845,310.42509491746,327.40170814054,348.83408706747,367.9112241576,391.33200541501,413.90012676351,437.76975193523,465.63764214343,491.10256480205,523.2511306012],description:"Nigel Taylor's Circulating Balanced temperament (20th cent.)"},telemann:{frequencies:[261.6255653006,264.94361147373,271.70648167539,275.15237829755,278.64197723942,282.17583275232,289.3785657319,293.0485888979,296.76515515861,300.52885648597,304.34029066685,308.20006306951,312.10878854255,316.06708432391,324.13491490251,328.24573110938,332.40868242763,336.62443200122,345.21700307457,349.59519124833,354.02890545793,363.06573983159,367.67029324081,372.33324354561,377.05533136015,386.67993129161,391.58396987353,396.55020354877,406.67242132093,411.83001550364,417.05301810033,422.34226102699,433.12283887627,438.61588607285,444.17860098504,449.81186203693,461.29362042034,467.14394139401,473.06846134744,485.14386048744,491.29666030217,497.52749252881,503.83734680745,516.69814597997,523.2511306012],description:"G.Ph. Telemann (1767). 55-tET interpretation of Klang- und Intervallen-Tafel"},telemann_28:{frequencies:[261.6255653006,264.94361147373,275.15237829755,278.64197723942,293.0485888979,296.76515515861,308.20006306951,312.10878854255,328.24573110938,332.40868242763,345.21700307457,349.59519124833,354.02890545793,367.67029324081,372.33324354561,386.67993129161,391.58396987353,396.55020354877,406.67242132093,411.83001550364,438.61588607285,444.17860098504,461.29362042034,467.14394139401,473.06846134744,491.29666030217,497.52749252881,516.69814597997,523.2511306012],description:"Telemann's tuning as described on Sorge's monochord, 1746, 1748, 1749"},"temes-mix":{frequencies:[261.6255653006,306.31659399917,323.38698268281,342.47239171077,361.55773069062,378.62819763364,399.72843132859,423.31905787312,446.91000942727,523.2511306012],description:"Temes' 5-tone Phi scale mixed with its octave inverse"},"temes-ur":{frequencies:[261.6255653006,306.31659399917,323.38703872151,342.47239171077,361.55773069062,423.31905787312],description:"Temes' Ur 5-tone phi scale"},temes:{frequencies:[261.6255653006,306.31659399917,323.38703872151,342.47239171077,361.55773069062,423.31905787312,495.63057556553,523.2511306012,554.13187513888,585.01259700885,684.94462120932],description:"Temes' 5-tone Phi scale / 2 cycle"},"temes2-mix":{frequencies:[261.6255653006,306.31659399917,323.38698268281,342.47239171077,361.55773069062,399.72843132859,423.31905787312,468.0102705885,495.63057556553,523.2511306012,552.41124604023,585.01259700885,646.77396536561,684.94438778203,757.25639526728,799.45686265718,846.63811574624,893.82001885454,1046.5022612024],description:"Temes' 2 cycle Phi scale mixed with its 4/1 inverse"},temp10coh:{frequencies:[261.6255653006,279.06726965397,299.10339764541,320.57805584394,343.5945271479,368.2635494613,394.70435354475,423.05284121745,453.57582505819,488.36772189445,523.2511306012],description:"Differential coherent 10-tone scale, OdC, 2003"},temp10ebss:{frequencies:[261.6255653006,280.43397904206,300.58585223371,322.17714382919,345.31067040124,370.09659148016,396.65293718743,425.1061627261,455.59176355181,488.25490599611,523.2511306012],description:`Cycle of 10 equal "beating" 15/14's`},temp11ebst:{frequencies:[261.6255653006,278.68301283272,296.80966039395,316.07252488244,336.70993118161,358.64093492832,381.94662420398,406.71316497313,433.24697173408,461.44397806515,491.40843569917,523.2511306012],description:"Cycle of 11 equal beating 9/7's"},temp12coh3:{frequencies:[261.6255653006,279.8393060116,294.68135606466,311.32770136359,332.21069717879,353.56473801237,370.2386298036,397.61708850394,418.97112933752,440.1984563065,471.2874275201,496.80305467842,523.2511306012],description:"Differential coherent scale, interval=3, OdC, 2003"},temp12ebf:{frequencies:[261.6255653006,277.18807786937,293.58315284916,311.09098010692,329.5354160273,349.23174343306,369.98176018664,391.84186131702,415.18563115404,439.77824302677,466.03998256716,493.70667148145,523.2511306012],description:"Equal beating temperament tuned by The Best Factory Tuners (1840)"},temp12ebf4:{frequencies:[261.6255653006,276.98801737971,293.51517393789,310.79793252689,329.39098365485,348.83408706747,369.75126958642,391.78747833067,414.83115644933,439.62189128662,465.54602917011,493.43560586205,523.2511306012],description:"Eleven equal beating fifths and just fourth"},temp12ebfo:{frequencies:[261.6255653006,277.20265787963,293.64844512428,311.16011036869,329.64835309433,349.33484978517,370.11921182839,392.06266066657,415.42830219132,440.09698059047,466.36447845344,494.0968438935,523.62658899088],description:"Equal beating fifths and fifth beats twice octave at C"},temp12ebfp:{frequencies:[261.6255653006,277.75307788644,293.77513637875,310.82931496301,329.94340332986,349.12935317325,370.63270249518,391.99544730302,416.18671544528,440.21980402758,465.80107112682,494.47220378931,523.2511306012],description:"All fifths except G#-Eb beat same as 700 c. C-G"},temp12ebfr:{frequencies:[261.6255653006,277.1880780098,293.58315312731,311.09097992515,329.53543943235,349.23174457993,369.98176152553,391.84186168221,415.185630746,439.77824342227,466.03998361904,493.70667287983,523.2511306012],description:"Exact values of equal beating temperament of Best Factory Tuners (1840)"},temp12ep:{frequencies:[261.6255653006,277.19910487213,293.6996776193,311.18246278326,329.70593120198,349.3320268423,370.12638880276,392.15855510068,415.50221189151,440.23542223935,466.44090588941,494.20629608476,523.62445363767],description:"Pythagorean comma distributed equally over octave and fifth: 1/19-Pyth comma"},temp12fo1o:{frequencies:[261.6255653006,277.20349049726,293.7089710611,311.19723286579,329.72679517909,349.35966199273,370.1615231373,392.20198585541,415.5548023839,440.29810917508,466.51470234738,494.29230838881,523.72386870485],description:"Fifth beats same octave opposite"},temp12fo2o:{frequencies:[261.6255653006,277.19623399848,293.69359242342,311.17279259662,329.69226891672,349.31393351076,370.10338107372,392.13011658806,415.46777521802,440.19437666896,466.39258399594,494.14997995304,523.55935978973],description:"Fifth beats twice octave opposite"},temp12p10:{frequencies:[261.6255653006,277.12003622197,293.53214922797,310.91625060765,329.32990524605,349.3071136959,369.493381814,391.90691363044,415.11714643072,439.70197837153,465.74281849401,493.32589719545,523.2511306012],description:"1/10-Pyth. comma well temperament"},temp12p6:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,349.6228209638,367.9112241576,391.5530240856,413.43299207996,438.51190905657,466.16376151809,491.10256480205,523.2511306012],description:"Modified 1/6-Pyth. comma temperament"},temp12p8:{frequencies:[261.6255653006,277.02617059261,293.33333347996,310.60041853231,328.88393162803,349.42547049952,369.36822764145,391.77416758435,414.83597850347,439.25532436715,465.90062756558,492.49097043477,523.2511306012],description:"1/8-Pyth. comma well temperament"},temp12p8a:{frequencies:[261.6255653006,276.55731914056,293.33333347996,311.12698372208,328.88393162803,349.42547049952,368.74309237173,391.77416758435,414.83597850347,439.25532436715,466.69047534984,492.49097043477,523.2511306012],description:"1/8-Pyth. comma well temperament, consecutive just fifths"},temp12s17:{frequencies:[261.6255653006,275.41266079541,292.61316553779,309.9334225479,327.2710181906,348.78108411875,367.16108497228,391.29294726693,413.18177371806,437.63868343995,464.97078294553,490.98112850332,523.2511306012],description:'4/17th synt. comma "well"-temperament. OdC 1999'},temp12s3:{frequencies:[261.6255653006,275.79485124716,293.07576161921,310.19140758515,326.99095182327,348.87783040382,367.77258074571,390.81668391305,413.640406907,437.79703699716,465.22877230071,490.42492909292,523.2511306012],description:'1/3 synt. comma "well"-temperament. OdC 1999'},temp12septendec:{frequencies:[261.6255653006,277.01530443593,293.31032234393,310.5638707171,328.83233370046,348.17541215342,368.65631875068,390.34198455955,413.30334035457,437.61515184999,463.35732874365,494.18162334558,523.2511306012],description:"Scale with 18/17 steps"},temp12w2b:{frequencies:[261.6255653006,276.80621914251,293.38957467182,310.9374037046,329.12408537692,349.33498699812,369.32540968366,391.68699838314,414.83365420901,439.33301386008,466.03043161756,492.93477894539,523.2511306012],description:"The fifths on white keys beat twice the amount of fifths on black keys"},temp15coh:{frequencies:[261.6255653006,273.98642352939,286.93424587686,300.52595924487,314.76156220527,329.6715499436,345.28562122078,360.48992106995,377.61407292725,395.54746439596,414.33033691342,434.93480826785,455.53927928881,477.11963158959,499.65025190386,523.2511306012],description:"Differential coherent 15-tone scale, OdC, 2003"},temp15ebmt:{frequencies:[261.6255653006,274.13344448045,287.10161388969,300.54701305042,315.02372625978,330.03318193885,345.59498492211,361.72946206059,379.10151766291,397.1128647533,415.78702800292,435.14840215297,455.99486887387,477.60848441971,500.01748339385,523.2511306012],description:"Cycle of 15 equal beating minor thirds"},temp15ebsi:{frequencies:[261.6255653006,274.09084013406,287.01483652929,300.41443756554,314.84183942382,329.80016763418,345.30896502873,361.38848559819,378.7013656391,396.65136316555,415.2619179078,434.55734100747,455.33280077531,476.87279531786,499.20546063174,523.2511306012],description:"Cycle of 15 equal beating major sixths"},temp15mt:{frequencies:[261.6255653006,272.10155294862,290.46827626332,302.09918118188,314.19580976213,326.77681046955,348.83408706747,362.80207077951,377.32935907335,392.4383479509,418.92774655891,435.70241417719,453.14877154631,471.29371440761,503.10581234929,523.2511306012],description:"Cycle of 15 minor thirds, Petr Parizek"},temp16d3:{frequencies:[261.6255653006,272.52663052146,287.69189096389,299.67905363019,312.16568143019,325.17258353382,338.72144179457,352.83483584176,372.46899992671,387.98854005196,404.15472995283,420.99451113006,438.53594735503,462.93911228358,482.22824196207,502.32108537715,523.2511306012],description:"Cycle of 16 thirds tempered by 1/3 small diesis"},temp16d4:{frequencies:[261.6255653006,271.36369423603,291.82218013836,302.68427617679,313.95067836072,325.63643364742,337.75715313333,350.32902355546,376.74081403286,390.76372105392,405.30858212106,420.39482899491,436.04260883433,468.91646607712,486.37029938793,504.47379566792,523.2511306012],description:"Cycle of 16 thirds tempered by 1/4 small diesis"},temp16ebs:{frequencies:[261.6255653006,273.35566334732,285.38860666159,297.73221513295,311.13803992337,324.88997598926,338.996955196,354.31789928052,370.0343963911,386.15666093499,403.66631166114,421.62802297921,440.05346707662,460.0644954801,480.59216613216,501.64981691394,523.2511306012],description:"Cycle of 16 equal beating sevenths"},temp16ebt:{frequencies:[261.6255653006,273.54317752885,285.74681450472,298.24333695649,311.03977535434,324.14332902314,339.04034606654,354.29488987405,369.91554384313,385.91109319424,402.29053605603,420.91180538217,439.97998583037,459.50580330844,479.50024102158,499.97454326842,523.2511306012],description:"Cycle of 16 equal beating thirds"},temp16l4:{frequencies:[261.6255653006,278.81939890042,286.59644689091,305.43134787805,313.95067836072,322.70763593891,343.91573686494,353.50850469302,376.74081403286,387.24916379762,412.69888495295,424.21020636659,436.04260883433,464.69899736225,477.66074674968,509.05224558146,523.2511306012],description:"Cycle of 16 fifths tempered by 1/4 major limma"},temp17c10:{frequencies:[261.6255653006,278.13248184697,287.25399162485,296.67464640038,315.39293803189,325.73642523995,336.41913481987,347.45218787195,369.37422084479,381.48805431277,393.9991677018,418.85802036446,432.59470262079,446.78188702878,474.97099505857,490.54793493862,506.63572944675,523.2511306012],description:'Cycle of 17 fifths tempered by 1/10 of "17-tET comma"'},temp17c11:{frequencies:[261.6255653006,276.93071634298,286.5293181416,296.46061382736,313.80362259461,324.68026371274,335.93389640617,347.57758745223,367.91095120397,380.66298908833,393.8570200719,416.89773925535,431.34769064645,446.29848691039,472.40704302301,488.78098359819,505.72245578392,523.2511306012],description:'Cycle of 17 fifths tempered by 1/11 of "17-tET comma"'},temp17c12:{frequencies:[261.6255653006,275.93321340298,285.92682111936,296.28237159295,312.48531442823,323.80274674587,335.53006800342,347.68212334757,366.69599021774,379.97679689512,393.73860099464,415.27118158544,430.3112595477,445.8960513142,470.2809925818,487.31338757149,504.96265307831,523.2511306012],description:'Cycle of 17 fifths tempered by 1/12 of "17-tET comma"'},temp17c13:{frequencies:[261.6255653006,275.09197878886,285.41800532755,296.13163442011,311.37414725128,323.06208421743,335.18874504319,347.77059980835,365.67107999768,379.3971387881,393.63842979584,413.89982010446,429.43622376713,445.55581352332,468.48950048969,486.07501593832,504.32063522708,523.2511306012],description:'Cycle of 17 fifths tempered by 1/13 of "17-tET comma"'},temp17c14:{frequencies:[261.6255653006,274.37296298479,284.98259752889,296.00249241327,310.42486507835,322.42857866752,334.89645942743,347.84645641687,364.79486552165,378.90099378095,393.5525871037,412.72797362103,428.68761089217,445.26438593469,466.95936897503,485.01606158014,503.77098227424,523.2511306012],description:'Cycle of 17 fifths tempered by 1/14 of "17-tET comma"'},temp17c15:{frequencies:[261.6255653006,273.75133628611,284.60578240525,295.8906154666,309.60449456672,321.88054534371,334.64335075548,347.91221098893,364.0371787025,378.47152629398,393.47820661021,411.71505587788,428.03986711385,445.01196937812,465.63729761752,484.10016650719,503.29510175355,523.2511306012],description:'Cycle of 17 fifths tempered by 1/15 of "17-tET comma"'},temp17ebf:{frequencies:[261.6255653006,272.44226039746,283.83762774933,295.84262353625,308.01140541539,320.83119298602,334.33681303028,348.02669374128,362.44895565855,377.64277622383,393.64943714798,409.87448211667,426.96753159265,444.97502525992,463.22819966593,482.45788080796,502.71631088044,523.2511306012],description:"Cycle of 17 equal beating fifths"},temp17ebs:{frequencies:[261.6255653006,272.25303191034,284.09302419378,294.99486987374,307.14054534497,320.67196534338,333.1312181383,347.01199086095,362.47647062671,376.71561430061,392.57935523584,410.25304697073,426.52635565248,444.65634289229,464.854847056,483.45291583119,504.17290303449,523.2511306012],description:"Cycle of 17 equal beating sevenths"},temp17fo2:{frequencies:[261.6255653006,272.49443630436,283.81483782984,295.60553136463,307.88605111976,320.67674980257,333.99881838086,347.87433573796,362.32629011314,377.37863296804,393.05630224552,409.38528080469,426.39262165238,444.10651133426,462.55629730628,481.77255670213,501.78712602614,522.6331757532],description:"Fifth beats twice octave"},temp17nt:{frequencies:[261.6255653006,272.67141175251,283.62400127587,295.59862296305,308.07881564783,321.08592105074,333.98321109015,348.08400151932,362.78013022893,377.35217954558,393.28401259522,409.88848628312,426.35277308246,444.35341180422,463.11404114636,482.66674266598,502.05436630802,523.2511306012],description:"17-tone temperament with 27/22 neutral thirds"},temp17s:{frequencies:[261.6255653006,272.47577100117,283.83144686231,295.66037914716,307.98229466369,320.75501909295,334.12277657932,348.04764753103,362.48197303348,377.58873713905,393.32509157531,409.63717539588,426.70917767843,444.49267120113,463.01730800927,482.21968335939,502.31662775181,523.2511306012],description:"Cycle of 17 fifths tempered by 2 schismas. Schulter, Tuning List 10-9-98"},temp19d5:{frequencies:[261.6255653006,270.66831710441,280.02362001571,289.70227696231,304.50185643804,315.02657220273,325.91506125677,337.17989695691,348.83408706747,360.89108965294,379.3273836973,392.4383479509,406.00247545366,420.03542981361,434.55341522625,449.57319616728,472.53985806789,488.87259164079,505.76984518255,523.2511306012],description:"Cycle of 19 thirds tempered by 1/5 small diesis. Third = 3\\5"},temp19ebf:{frequencies:[261.6255653006,271.21349495395,281.45216719787,291.55303152151,302.33945232218,313.85796000757,325.22143162672,337.35615460362,350.31447634238,363.09838134063,376.74994653359,390.21776437961,404.59965986997,419.95766938963,435.10896436483,451.288596451,468.56635736893,485.61156561298,503.81364896584,523.2511306012],description:"Cycle of 19 equal beating fifths"},temp19ebmt:{frequencies:[261.6255653006,271.3515811897,281.43551369743,291.89053542337,302.73030209663,313.98726376766,325.65848288741,337.75920164946,350.30522706536,363.3129458114,376.82130195458,390.82676353803,405.34762742982,420.40285701732,436.01212051281,452.22214724761,469.0287008844,486.45373685079,504.52001310976,523.2511306012],description:"Cycle of 19 equal beating minor thirds"},temp19ebo:{frequencies:[261.6255653006,277.22364042749,293.65618047886,311.2040149966,329.6906225544,349.43193638686,370.22936988938,392.1394232912,415.53653598153,440.18534605859,466.50709783521,494.2370091719,523.84897992059,555.04513017437,587.91021027711,623.0058793126,659.97909442818,699.46172209312,741.05658909815,784.8766959018],description:"Cycle of 19 equal beating octaves in twelfth"},temp19ebt:{frequencies:[261.6255653006,271.59402175166,281.80172126331,292.25440577595,302.95795550425,313.91838845704,325.14187338321,337.60244413755,350.36206814823,363.42792409681,376.80735887968,390.50790160795,404.53725818867,420.11297167574,436.06250107414,452.39482160095,469.11911613638,486.2447950704,503.78149001575,523.2511306012],description:"Cycle of 19 equal beating thirds"},temp19k10:{frequencies:[261.6255653006,271.76196854941,282.29109592175,293.22816309454,304.58897525989,314.09773337131,326.2671147593,338.90798583865,352.03861397416,365.67797428016,377.09383089344,391.70392883316,406.88007915549,422.6442137645,439.01911266466,452.72455471179,470.26488431194,488.48479525859,507.41061720556,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/10 kleisma"},temp19k3:{frequencies:[261.6255653006,272.95237156345,284.76956174698,297.09836322231,309.96092731219,314.44113201634,328.05453510669,342.25731432435,357.07498823553,372.53417996774,377.91882441317,394.28042610165,411.35038641496,429.15937528906,447.73938330242,454.2110508691,473.87564511273,494.39160029408,515.79576952378,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/3 kleisma"},temp19k4:{frequencies:[261.6255653006,272.52663052146,283.88190679319,295.71031957624,308.03158289191,314.31844786309,327.4150485592,341.05734286691,355.26806612985,370.07090075127,377.62397563434,393.35830866491,409.74823893478,426.8210805314,444.6052930255,453.67960031314,472.58291784883,492.27387080735,512.78528301977,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/4 kleisma"},temp19k5:{frequencies:[261.6255653006,272.27150423996,283.35064249518,294.88062803952,306.8797443789,314.24485853342,327.03195662575,340.33937954017,354.18830437416,368.6007608062,377.44717941318,392.80607455881,408.78994578219,425.42422593284,442.73537947933,453.36102900438,471.8089732132,491.00759210237,510.98743222773,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/5 kleisma"},temp19k6:{frequencies:[261.6255653006,272.10155294862,282.99701916355,294.32876096318,306.11424676116,314.19580976213,326.77681046955,339.86157848985,353.47028562902,367.62391141072,377.32935907335,392.4383479509,408.1523292189,424.49552853314,441.49314144476,453.14877154631,471.29371440761,490.16521545931,509.79236747994,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/6 kleisma"},temp19k7:{frequencies:[261.6255653006,271.9802243463,282.7447017667,293.93521741989,305.56863311614,314.16077935352,326.59468561952,339.52070304385,352.95830848174,366.92774752709,377.24522513926,392.17589782962,407.69749910471,423.83341578697,440.60837682578,452.99722066906,470.92601754108,489.56440442681,508.94046380742,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/7 kleisma"},temp19k8:{frequencies:[261.6255653006,271.88926339885,282.55561052465,293.64040364533,305.16005936662,314.13450956378,326.45815718343,339.26526937521,352.57481080357,366.4064920117,377.18213591051,391.97917444376,407.35670799125,423.33750965456,439.94524339387,452.88359011983,470.65043349884,489.11427877975,508.30246674991,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/8 kleisma"},temp19k9:{frequencies:[261.6255653006,271.81853598083,282.40862793607,293.41130980736,304.84265779003,314.11407882217,326.35200974457,339.06673262958,352.27682225125,366.00158141044,377.13307501509,391.82623534045,407.09184571451,422.95220417284,439.43048454013,452.79523167251,470.4362008006,488.76446469244,507.80680338678,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/9 kleisma"},temp19lst:{frequencies:[261.6255653006,270.56149416036,279.80263334807,289.3594074481,304.78245180412,315.19242188443,325.95794877725,337.09117667186,348.60466454729,360.5114003397,379.7268899367,392.69661814622,406.10933276067,419.98016416303,434.32475952075,449.15930043669,473.09978287909,489.25870067642,505.96953296163,523.2511306012],description:"Cycle of 19 least squares thirds 5/4^5 = 3/2"},temp19lst2:{frequencies:[261.6255653006,270.86681403244,280.43448605562,290.34011310859,303.98143643885,314.71879896063,325.83542931914,337.34472599098,349.26055890156,361.59728998429,378.58655645252,391.95915298383,405.80409975455,420.1380835834,434.97837844393,450.34287106955,471.50175486263,488.15634183652,505.39920634693,523.2511306012],description:"Cycle of 19 least squares thirds 5/4, 3/2 (5), 6/5 (4)"},temp21ebs:{frequencies:[261.6255653006,270.48603901573,279.57527100587,288.89916626223,298.46378542286,308.59004184051,318.97773454914,329.63361550747,340.56460989801,352.13747205507,364.00912264098,376.18727282918,388.67983604901,401.90596519454,415.47356606258,429.3914526989,443.66866815503,458.78424493347,474.29007331382,490.19622772738,506.51304733863,523.2511306012],description:"Cycle of 21 equal beating sevenths"},temp22ebf:{frequencies:[261.6255653006,269.81217946012,278.43675961795,287.52273893052,297.09479717246,306.30473778727,316.00739221221,326.22911792828,336.99768333647,347.35886661388,358.27435338478,369.77379349451,381.88843101834,394.65117841871,406.93109909525,419.8679691216,433.49693671533,447.85502662133,461.66993710068,476.2239184443,491.55650493929,507.70935693135,523.2511306012],description:"Cycle of 22 equal beating fifths"},temp22ebt:{frequencies:[261.6255653006,270.16401944699,278.90739732088,287.86061708193,297.02871287074,306.4168425362,316.03028815926,325.87445510174,336.54752540671,347.4767459334,358.66827061689,370.12838991426,381.86355177507,393.88036006393,406.18556836568,419.52690380046,433.1884314408,447.17783799964,461.50298590676,476.17193984405,491.19294816955,506.57446222015,523.2511306012],description:"Cycle of 22 equal beating thirds"},temp22fo2:{frequencies:[261.6255653006,269.97341665226,278.58762814388,287.47669703533,296.64939669548,306.114775449,315.88217199169,325.96122111215,336.36187067071,347.09438029185,358.16933884319,369.59767092309,381.39065611261,393.55992749281,406.11749146369,419.07573510033,432.44744798202,446.24582051114,460.48446638525,475.17743368268,490.33921589034,505.98477744485,522.12955176559],description:"Fifth beats twice opposite rate as octave"},temp23ebs:{frequencies:[261.6255653006,269.54528659271,277.75645349026,286.26979186473,295.09642104593,304.24787054065,313.41421505132,322.9178815064,332.77128133421,342.98728793362,353.5792427091,364.56098080918,375.56059498003,386.96499273375,398.78907363541,411.04828247111,423.75862731373,436.93671323096,450.13624919654,463.82153026575,478.01042762353,492.72147385367,507.97388874722,523.2511306012],description:"Cycle of 23 equal beating major sixths"},temp24ebaf:{frequencies:[261.6255653006,269.28287293678,277.23083697142,285.33112867981,293.73889258015,302.30779732819,311.20195864933,320.26658492056,329.67528611807,339.26431305611,349.21731641877,359.36108127338,369.88988063787,380.8183283077,391.95623237686,403.5169050439,415.29914897519,427.52862168357,439.9924847314,452.92944495636,466.1143590732,479.79973930305,493.74741628009,508.22451419243,523.2511306012],description:"Cycle of 24 equal beating 11/8's"},temp24ebf:{frequencies:[261.6255653006,269.29177952703,277.18807786937,285.37455545576,293.58315284916,302.20762754558,311.09098010692,320.17688686519,329.5354160273,339.23795459232,349.23174343306,359.45337270909,369.98176018664,380.89707445632,391.84186131702,403.3411703213,415.18563115404,427.4653330282,439.77824302677,452.71493931339,466.03998256716,479.66882917609,493.70667148145,508.26043277122,523.2511306012],description:"24-tone ET with 23 equal beatings fifths. Fifth on 17 slightly smaller."},temp25ebt:{frequencies:[261.6255653006,269.07040607882,276.69392272178,284.50040351526,292.49424189123,300.67993013952,309.06207502162,317.64539198503,326.43470939254,335.74076076764,345.27015661764,355.02825763358,365.02055286832,375.25266439783,385.73034580726,396.45949385543,407.44613828076,419.07870286007,430.99044652419,443.18807578441,455.67844358274,468.46858279232,481.56568677979,494.97711759939,508.71042703507,523.2511306012],description:"Cycle of 25 equal beating thirds"},temp26eb3:{frequencies:[261.6255653006,268.53506427639,276.23413316293,283.52944261778,291.01742029734,298.70315454572,307.26715974579,315.38204761281,323.71124866952,332.26042290088,341.78653782772,350.81307822085,360.07800843467,370.40166886388,380.18393134541,390.22454217496,400.5303243006,412.0137801623,422.89501338113,434.06361862988,445.5271853685,458.30072684004,470.40439262311,482.82771472967,495.57913524385,509.78770018956,523.2511306012],description:"Cycle of 26 fifths, 5/4 beats three times 3/2"},temp26ebf:{frequencies:[261.6255653006,268.42568455944,275.6873347244,283.44184249631,290.6057533496,298.25588724353,306.42524452376,315.14906491362,323.2084665433,331.81486605817,341.00539333861,350.8196903474,359.88651586494,369.56871668171,379.90806097321,389.45994242989,399.66012078319,410.55259814459,422.18435687733,432.93022440227,444.40542617247,456.65946119637,469.74519313893,481.83429211771,494.74389287961,508.52968420524,523.2511306012],description:"Cycle of 26 equal beating fifths"},temp26ebmt:{frequencies:[261.6255653006,268.65375733515,276.22103845862,283.50786797993,291.35362426947,298.90860888253,307.04308924768,315.80151824033,324.23534814673,333.31608510092,342.06028051348,351.47518831899,360.54116941247,370.30254728737,380.81265974123,390.93325547321,401.83014055422,412.32317421544,423.62106542614,434.50024245702,446.21389528982,458.82603004394,470.97074536855,484.04700949484,496.63864979835,510.1961187079,523.2511306012],description:"Cycle of 26 equal beating minor thirds"},temp26ebs:{frequencies:[261.6255653006,268.70854008298,275.97438147252,283.42781183148,291.07367309004,298.91693448926,307.01176285104,315.31558194419,323.83378869523,332.57191674,341.53564330438,350.78687613393,360.27695513986,370.01204624828,379.9984780646,390.24273934583,400.81557597059,411.66137956276,422.7871998129,434.200265189,445.90799193987,457.99123299379,470.38643795716,483.10166179174,496.14516363988,509.5254229925,523.2511306012],description:"Cycle of 26 equal beating sevenths"},temp27c8:{frequencies:[261.6255653006,268.8683660761,273.88218275531,281.46429379013,289.25630678777,297.26403435806,305.49344487497,313.95067836072,319.80518189674,328.65861797738,337.75715313333,347.10756874671,356.7168418477,363.36884069528,373.42828707985,383.76621672426,394.39034225616,405.30858212106,412.86671295557,424.29645219584,436.04260883433,448.1139452722,460.51946086698,473.26841152735,482.09384659572,495.44005640506,509.15574351714,523.2511306012],description:"Cycle of 27 fifths tempered by 1/8 of difference between augm. 2nd and 5/4"},temp27eb2:{frequencies:[261.6255653006,268.46319812592,275.47953375729,282.6792426258,290.06711722511,297.6480770209,305.21714541248,313.19405229436,321.37943712173,329.77875040935,338.39757940759,347.00289091411,356.07187808578,365.37788286775,374.92710181611,384.72589137834,394.78077412888,404.81988946592,415.39993259502,426.25648711974,437.39677971686,448.82822593369,460.24174609969,472.27024976331,484.61312060812,497.27857467888,510.27504274822,523.2511306012],description:"Cycle of 27 fourths, 5/4 beats twice 4/3"},temp28ebt:{frequencies:[261.6255653006,268.20719354764,274.94677993062,281.84811597329,288.91508487862,296.15166190523,303.56191452522,311.15001492268,318.92023016627,326.87692943437,335.10396312415,343.5284476344,352.15511767098,360.98882840285,370.03454814671,379.29736707683,388.78249121135,398.49525813745,408.44113355924,418.72492751128,429.25553103998,440.03886948281,451.08100913788,462.38815755283,473.96667987616,485.82308640697,497.96404651665,510.39638953936,523.2511306012],description:"Cycle of 28 equal beating thirds"},temp29c14:{frequencies:[261.6255653006,268.03384168485,274.59908446169,281.12309545065,288.00894581307,294.85155418799,302.07367045706,309.47268578827,316.82523654187,324.58557784847,332.29718551084,340.4364979057,348.77517523396,357.06148706459,365.80737813473,374.49834647311,383.67133729641,392.78672100419,402.40767098088,412.26427490957,422.0589810157,432.39692561869,442.66994710331,453.51274088813,464.62111626441,475.65973015548,487.31057837675,498.88825560972,511.10806227553,523.2511306012],description:"Cycle of 29 fifths 1/14 comma positive"},temp29ebf:{frequencies:[261.6255653006,267.97141371953,274.40384216744,281.08918054527,287.86573007783,294.90872015661,302.04780073409,309.28428172011,316.80528774769,324.42890571749,332.35226986162,340.383734589,348.52477529448,356.98590767403,365.56247629567,374.47626314535,383.51165984234,392.90231649713,402.42108995343,412.06973029551,422.09773822292,432.26256191617,442.8270465847,453.53566813958,464.39038927288,475.67189906986,487.10732348594,498.99237046175,511.03956815915,523.2511306012],description:"Cycle of 29 equal beating fifths"},temp29fo:{frequencies:[261.6255653006,267.94780983951,274.42283293416,281.05432651499,287.84607006616,294.80193939197,301.92589896847,309.2220107369,316.69443479624,324.34743177532,332.18536334326,340.21270232633,348.43402388135,356.85401564372,365.47747852664,374.30932945854,383.35460418662,392.61845788025,402.10617708826,411.82316930666,421.77497497272,431.96726840975,442.4058610624,453.0967048103,464.04589268124,475.25967298378,486.74443697706,498.50673304697,510.55326782272,522.89091000079],description:"Fifth beats with opposite equal rate as octave"},temp31c51:{frequencies:[261.6255653006,267.17944246504,273.80687224646,279.61933836952,286.55534345926,292.63843680803,298.85066583755,306.26370726525,312.76517639908,319.40466275447,327.32754956004,334.27616903285,342.56794607269,349.84009583671,357.26662128823,366.1286782788,373.90098334082,383.17565840352,391.30984260196,399.61670205031,409.52926208827,418.22288720188,428.59697681668,437.69538032917,446.98692528774,458.07451174337,467.79867446983,477.72926229583,489.57941763243,499.97237729845,512.37427391379,523.2511306012],description:"Cycle of 31 51/220-comma tempered fifths (twice diff. of 31-tET and 1/4-comma)"},temp31coh:{frequencies:[261.6255653006,267.17903658035,272.71444919697,278.8328003927,286.67318542907,292.31259119845,298.22448926086,305.9625493141,312.79375273624,319.37019903425,325.99008611032,333.53448283298,342.55073731576,349.35067604096,356.49690427728,365.94514964733,373.94225818849,381.74854907994,389.68867781295,401.66236977474,409.34549662494,417.52928752537,426.20510506248,437.61344561246,447.02040600938,456.30467151405,466.17931462488,479.8608061495,489.18804557359,499.02680928636,509.58872491278,523.2511306012],description:"Differential coherent 31-tone scale, interval=8, OdC, 2003"},temp31eb1:{frequencies:[261.6255653006,267.35556661283,273.21106374578,279.19480525048,287.36432599524,293.65804565963,300.08960744161,306.66203029506,313.37839929357,320.24186707858,327.25565533923,334.42305632458,341.74743438901,349.23222958864,356.8809512704,367.32364464292,375.36859607341,383.58974428421,391.99094825517,400.57615379751,409.34938620036,418.31476585427,427.47650107887,436.83889236244,446.40633438056,459.46863260649,469.5317006585,479.81516534138,490.32385367952,501.06269841655,512.03674033076,523.2511306012],description:"Cycle of 31 thirds, 3/2 beats equal 5/4. Third 1/18 synt. comma higher"},temp31eb1a:{frequencies:[261.6255653006,267.52830363402,273.56421824856,279.73631545395,286.19123047598,292.64821393201,299.25087842544,306.00251077972,312.90647197491,319.96619882071,327.18520755731,334.56708808783,342.11551697966,349.83425186023,357.90667665031,365.98168819447,374.23888853079,382.68238383924,391.31637942763,400.14517332125,409.17316051655,418.40483516889,427.84479530109,437.49773526159,447.36846272566,457.69148927209,468.01782376277,478.57713873597,489.37469064597,500.41585743254,511.7061296998,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats equal 7/4"},temp31eb2:{frequencies:[261.6255653006,267.43633367564,273.37616065041,279.44791264824,286.8151286113,293.18536340431,299.69708268426,306.35342885652,313.15761412007,320.11292201761,327.22270902014,334.4904061467,341.91952062013,349.51363755953,357.2764217104,366.69546492458,374.83986170174,383.16514754137,391.67534003419,400.37454600262,409.26696348258,418.35688374945,427.64869338884,437.14687641357,446.85601642745,458.63669049374,468.82312458207,479.23580188553,489.87974732177,500.7600974131,511.88210276525,523.2511306012],description:"Cycle of 31 thirds, 3/2 beats twice 5/4"},temp31eb2a:{frequencies:[261.6255653006,267.30377559621,273.10522335955,279.03258328435,287.71713441117,293.9616250555,300.34164347605,306.86013111019,313.520093235,320.3246003528,327.27678960683,334.37986622751,341.63710501026,349.05185182525,356.62752721996,367.72712485201,375.70811839104,383.86232802855,392.19351543866,400.70551714108,409.40225971792,418.28775270674,427.36609266644,436.64146506587,446.11814621352,460.00303307438,469.98674378481,480.18713671772,490.60891465214,501.25688243424,512.13594919255,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats twice 3/2"},temp31eb2b:{frequencies:[261.6255653006,267.52098517401,273.5492512983,279.71335720518,286.24081966732,292.69091492047,299.28635537219,306.03041620307,312.92644639599,319.97787039914,327.18818982659,334.56098519707,342.09991771207,349.80873107384,357.97195918064,366.0384300542,374.28666922186,382.72077261519,391.34492846269,400.16341936959,409.18062444454,418.40102147414,427.82918914659,437.46980932536,447.32766937413,457.76662230541,468.08184681118,478.62951259033,489.41485742956,500.44323714283,511.72012823096,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats twice 7/4 (7/4 beats twice 5/4 gives 31-tET)"},temp31ebf:{frequencies:[261.6255653006,267.58895287558,273.47207673981,279.84020613447,286.1226232561,292.32048149598,299.02929415269,305.64780689513,312.81195283539,319.87967238294,326.85226402826,334.39967773649,341.84550545999,349.90516819854,357.85635261941,365.7005167875,374.19135817901,382.56791460144,390.83172556312,399.77680617055,408.60149248083,418.153686518,427.57731316062,436.87410111252,446.93731687602,456.86508723973,467.61130449655,478.21288647115,488.67177324268,499.99289085438,511.16163412976,523.2511306012],description:"Cycle of 31 equal beating fifths"},temp31ebf2:{frequencies:[261.6255653006,268.47208070676,273.9410776603,281.1098810272,286.83632036086,292.67941197057,300.33857976184,306.45672349367,312.69950064833,320.88257689406,327.41921873353,335.98749730659,342.8318387903,349.81560715632,358.96997989875,366.28249344322,375.86779039798,383.5245262314,391.33723606718,401.57819634767,409.75867428285,420.48170539436,429.04726334649,437.78730875453,449.24382765192,458.39529367535,467.73318258368,479.97335657757,489.75080836323,502.56716753771,512.80487382351,523.2511306012],description:"Cycle of 31 fifths, 3/2 beats equal 7/4"},temp31ebs:{frequencies:[261.6255653006,267.49970467488,273.5255021102,279.70687352555,286.04783307233,292.55250379055,299.22511217624,305.93841412724,312.82503848113,319.88946348152,327.13627425327,334.57018402367,342.19602042672,349.86836735032,357.73879552978,365.81242398075,374.09449397971,382.59039112658,391.30563169636,400.0740276901,409.06880268892,418.29580572823,427.76103041037,437.4706255228,447.4309015606,457.4519243295,467.73166961576,478.27681510244,489.09421437332,500.19089295757,511.57406697079,523.2511306012],description:"Cycle of 31 equal beating sevenths"},temp31ebs1:{frequencies:[261.6255653006,267.15774161678,272.80689957055,278.57550963341,287.00766304701,293.07655388437,299.27377555355,305.60203820353,312.06411627904,318.6628357552,328.30838543699,335.25059642555,342.33960321815,349.5785118895,356.97048813578,364.51877275634,375.55232561156,383.49353066309,391.60265342908,399.88324912115,408.33893898267,416.9734277591,429.59472356821,438.6786743379,447.954711436,457.42689142912,467.09936712211,476.97636845082,491.41388278482,501.80502418824,512.41589335668,523.2511306012],description:"Cycle of 31 sevenths, 3/2 beats equal 7/4. 17/9 schisma fifth"},temp31ebs2:{frequencies:[261.6255653006,267.52957387699,273.56681763873,279.74030009523,286.13080593576,292.58781532731,299.19053769144,305.94226304679,312.84635035505,319.90623967996,327.21431324819,334.59843914397,342.14920188821,349.87035796113,357.76575454309,365.83932576918,374.19671203989,382.64107477964,391.27599615891,400.10577865514,409.13482199124,418.3676180873,427.92498506647,437.58181190976,447.45656083737,457.55415226032,467.87960969795,478.43807796233,489.36771995709,500.41110255739,511.70370009509,523.2511306012],description:"Cycle of 31 sevenths, 3/2 beats twice 7/4. Almost 31-tET"},temp31ebsi:{frequencies:[261.6255653006,267.31506098272,273.2139312212,279.32987994092,285.67089487749,292.24525964349,299.06156112772,306.12870201667,312.71376833043,319.5411631371,326.61980701828,333.95894503443,341.56816427739,349.45740040562,357.63696227352,366.11753111539,374.01961057916,382.2124855973,390.7068565555,399.51382386635,408.64488423766,418.11197066674,427.92744450622,438.10412760018,447.58662182594,457.41807184609,467.61131789159,478.17967690081,489.136951815,500.49745466086,512.27602199232,523.2511306012],description:"Cycle of 31 equal beating major sixths"},temp31ebt:{frequencies:[261.6255653006,267.508686718,273.53300221315,279.70190221389,286.0188552526,292.48741633838,299.11122072338,305.89399777728,312.83956126154,319.95181832117,327.23477005018,334.588671338,342.11906613961,349.83019225353,357.72638299858,365.81208378543,374.09184045976,382.57031224079,391.25226584136,400.14258695229,409.24627647794,418.43865241641,427.85164834976,437.49055334209,447.36079317794,457.46791872903,467.81761394993,478.41570188597,489.26814549043,500.38104816704,511.76065992154,523.2511306012],description:"Cycle of 31 equal beating thirds"},temp31g3:{frequencies:[261.6255653006,266.21023205793,270.87523947024,275.62199471997,289.25983723073,294.32876096318,299.48651076576,304.73464409936,310.07474405997,315.5084236529,331.11985608357,336.92232427465,342.82647426905,348.83408706747,354.94697625466,361.16698614085,379.03761443004,385.6797831671,392.4383479509,399.31534788729,406.31285900225,413.43299207996,433.88975562921,441.49314144476,449.22976592409,457.10196592055,465.11211608996,473.26263524279,496.67978412536,505.38348615935,514.23971114652,523.2511306012],description:"Wonder Scale, cycle of 31 sevenths tempered by 1/3 gamelan residue, s.wonder1"},temp31g4:{frequencies:[261.6255653006,266.75106828164,271.97698492363,277.30528403104,287.97116616014,293.61280545832,299.36497003718,305.22982618403,311.20958045219,317.30648321666,329.51091606373,335.96636137331,342.54827390456,349.25913259695,356.10146388137,363.07784268567,377.0427625798,384.42940207435,391.96075366681,399.63965159508,407.46898671086,415.4517078616,431.43106138252,439.88322158593,448.50096908674,457.28754710584,466.24626137824,475.38048570318,493.66485502092,503.33623955776,513.19709315346,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/4 gamelan residue"},temp31g5:{frequencies:[261.6255653006,267.07609791103,272.64018328418,278.3201871026,287.20071989568,293.1840695693,299.2920706603,305.52732176658,311.89247392994,318.39023342226,328.54930692245,335.39408374843,342.38146206091,349.5144087687,356.79595852417,364.22920722399,375.85089312601,383.68111960674,391.67447579625,399.83436022994,408.16424460367,416.66766586736,429.96253800336,438.92009035289,448.06425836543,457.39892986705,466.92807368021,476.65574406444,491.86469103391,502.11187209711,512.57253609913,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/5 gamelan residue"},temp31g6:{frequencies:[261.6255653006,267.29300481931,273.08321314304,278.9988528944,286.68823620156,292.89859205665,299.24348036203,305.72581270733,312.34856974117,319.11478979112,327.9097940226,335.01310892782,342.27029731995,349.68469585889,357.2597060542,364.99881126821,375.05840734677,383.18307527508,391.48374080678,399.96422099622,408.62840644009,417.48028065389,428.98629965513,438.27917301224,447.77335490729,457.47320099372,467.3831713443,477.50781354513,490.66822826519,501.2972832058,512.15658610391,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/6 gamelan residue"},temp31g7:{frequencies:[261.6255653006,267.44804485495,273.40010374961,279.48462577409,286.32273545638,292.69485077785,299.20877758909,305.86767190621,312.6747599825,319.63333987564,327.45376040978,334.74124806474,342.19091885571,349.80638115363,357.59132564064,365.54952414453,374.49336901227,382.82772265927,391.34755742947,400.0570012071,408.96027492626,418.06169111145,428.2903432132,437.821949061,447.565680886,457.52625955954,467.70851101039,478.11736856842,489.81539667363,500.71624319167,511.85968815724,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/7 gamelan residue"},temp31h10:{frequencies:[261.6255653006,267.8597617245,273.71072489962,279.68949451567,286.35413084244,292.60907359238,299.00064605783,306.12544311476,312.81225819702,320.26616683613,327.26186315247,334.41036913783,342.37893460431,349.85764856047,358.19430059608,366.01847563765,374.01355928612,382.92581520849,391.29021017831,400.61414686654,409.36491649663,418.30683086326,428.27453775026,437.62950220286,447.18881072031,457.84473927605,467.84561789912,478.99376955124,489.45661357347,500.14800438647,512.06587983104,523.2511306012],description:"Cycle of 31 fifths tempered by 1/10 Harrison's comma"},temp31h11:{frequencies:[261.6255653006,269.21878403965,274.22153683641,279.31725480271,287.42394184039,292.76499331753,298.20529308835,306.86017365004,312.56239683413,321.63396690808,327.61072570921,333.69854562169,343.38355445704,349.7644731902,359.91576765193,366.60389537541,373.41630725864,384.25405432087,391.39444778107,402.75397853578,410.23814647641,417.86138882164,429.98907567166,437.9793418028,446.11808436842,459.06587176894,467.59645436585,481.16761342105,490.10890120058,499.21634316923,513.70521350358,523.2511306012],description:"Cycle of 31 fifths tempered by 1/11 Harrison's comma"},temp31h12:{frequencies:[261.6255653006,270.35656674398,274.64794212014,279.0074329748,288.31850430385,292.89498819461,297.54411640065,307.47379627264,312.35433239663,322.77826253379,327.90172667751,333.10651564349,344.2229903876,349.68684701428,361.35664068489,367.0924599966,372.91932620731,385.3644371109,391.48133253101,404.54589939324,410.96726244836,417.49055189439,431.4231018689,438.27108715714,445.22777061734,460.08596806997,467.38892215786,482.98668436162,490.65313915878,498.44128370652,515.07533168556,523.2511306012],description:"Cycle of 31 fifths tempered by 1/12 Harrison's comma"},temp31h8:{frequencies:[261.6255653006,264.15772162327,272.31089540773,280.71571360382,283.4326348965,292.18072491748,301.19882119914,304.11398928909,313.50040506268,316.53463456122,326.30440921209,336.37572681506,339.63135730234,350.11400731728,353.50260556257,364.41338872146,375.66093089504,379.29678648678,391.00370158472,394.788050771,406.97310157871,419.5342415638,423.59472503043,436.668886633,450.14658206855,454.50334862767,468.53149836075,473.06620699858,487.66729542944,502.71904336675,507.58463809481,523.2511306012],description:"Cycle of 31 fifths tempered by 1/8 Harrison's comma"},temp31h9:{frequencies:[261.6255653006,266.20804854623,273.08769296879,280.14512719472,285.05198845745,292.41861893027,299.97562432697,305.22982618403,313.11791376428,318.60230743232,326.83598255713,335.28243953396,341.15505431438,349.97156260351,356.10146388137,365.30423365264,374.74482972428,381.30864508241,391.16284711627,398.01423104415,408.30015740759,418.85190169901,426.18827121524,437.20230245522,448.50096908674,456.35665612784,468.15032961482,476.35018210031,488.66055322307,501.28905975035,510.06935121341,523.2511306012],description:"Cycle of 31 fifths tempered by 1/9 Harrison's comma"},temp31ms:{frequencies:[261.6255653006,267.90457886781,273.56603860918,280.13162379381,286.05147140959,292.91670530125,299.10673210371,306.2852939563,312.75782903301,320.26401722477,327.03195662575,334.88072358477,341.95754947331,350.16453098318,357.56433846376,366.14588292411,373.88341429498,382.85661659068,390.94728541851,400.33002063726,408.78994578219,418.60090448096,427.44693588739,437.70566275183,446.9554220819,457.68235263341,467.35426952494,478.57076966998,488.68410850494,500.41252756995,510.98743222773,523.2511306012],description:"Cycle of 31 5th root of 5/4 chromatic semitones"},temp31mt:{frequencies:[261.6255653006,267.90457886781,274.33428876064,280.9183116909,285.65057792122,292.50627485027,299.52642572255,306.71505845072,314.07622014281,319.36714514233,327.03195662575,334.88072358477,342.9178609508,351.14788961362,359.57543896435,365.63273925968,374.40803131735,383.39382442208,392.5952765698,402.01756125559,408.78994578219,418.60090448096,428.6473261885,438.93486201703,449.46929870544,457.04092569426,468.01003810189,479.24227945773,490.7440946167,502.52195335034,510.98743222773,523.2511306012],description:"Cycle of 31 square root of 5/4 meantones"},temp31to:{frequencies:[261.6255653006,267.53589118464,273.57973594714,279.76011588387,286.08011543105,292.54288870475,299.15166280294,305.90973254237,312.82047235615,319.88733118052,327.11383586587,334.50359293692,342.06029039257,349.78769954651,357.68967690936,365.77016611333,374.03319988033,382.48290424395,391.12349182016,399.95927701915,408.9946695077,418.23417857039,427.68241536008,437.34409519915,447.22403993284,457.32718033558,467.65855857191,478.22333071276,489.02676930874,500.07426891005,511.37133726836,522.92361522538],description:"Third beats with opposite equal rate as octave"},temp31w10:{frequencies:[261.6255653006,267.37376533775,273.24825962152,279.25182297475,287.24047076273,293.55146000581,300.00110689476,306.59245933664,313.32863150945,320.21280450383,327.24823031411,334.4382321302,341.78620813039,349.29562523194,356.97015906904,367.18199034811,375.24938058245,383.49402021056,391.91980359563,400.53071066429,409.33081115087,418.32425711308,427.51529892703,436.90827798988,446.50763144636,459.28102021135,469.37192694062,479.68454193593,490.22373920221,500.99449133668,512.00188868489,523.2511306012],description:"Cycle of 31 thirds tempered by 1/10 Wuerschmidt comma"},temp31w11:{frequencies:[261.6255653006,267.42197848694,273.34681181717,279.40291364591,286.91265577589,293.26931399985,299.76680465545,306.40825140143,313.19684009872,320.13583435099,327.22856275086,334.47843511672,341.88893114233,349.46360748692,357.20610515709,366.80702823839,374.93377645155,383.2405741708,391.73141324262,400.41036830387,409.28161120445,418.34939984118,427.61808628905,437.09212645494,446.77606497733,458.78443573652,468.94897543376,479.33871705477,489.95864449434,500.81386326642,511.90958055231,523.2511306012],description:"Cycle of 31 thirds tempered by 1/11 Wuerschmidt comma"},temp31w12:{frequencies:[261.6255653006,267.46216197987,273.42896553533,279.52888390694,286.63976159726,293.03439921138,299.57169286871,306.25482853931,313.08705807777,320.0717057658,327.2121755928,334.51194000906,341.9745565771,349.60365642833,357.40295156876,366.49485373999,374.67097398132,383.02949720151,391.57448819698,400.31011139524,409.24061734241,418.37035125513,427.70376253715,437.24539007841,446.99988402026,458.37102198078,468.59680699416,479.0507177135,489.73784363297,500.66339010461,511.83267129957,523.2511306012],description:"Cycle of 31 thirds tempered by 1/12 Wuerschmidt comma"},temp31w13:{frequencies:[261.6255653006,267.49616787535,273.49850059869,279.63551774138,286.40905375482,292.83577174957,299.40669857094,306.12507001426,312.99419468163,320.01745343487,327.19830857776,334.54029455907,342.04702698539,349.72220057363,357.56974544479,366.23091133098,374.44874787361,382.85098402684,391.44175752404,400.22529663315,409.2059314354,418.38808223908,427.77627085136,437.37511801764,447.18935574711,458.02150335998,468.29902426597,478.80716193382,489.55109116118,500.53609997149,511.7676037195,523.2511306012],description:"Cycle of 31 thirds tempered by 1/13 Wuerschmidt comma"},temp31w14:{frequencies:[261.6255653006,267.52531966849,273.55811412425,279.72695193191,286.21145362846,292.66562728487,299.26534666214,306.01389218024,312.91461811683,319.97095981222,327.18642276261,334.56459899164,342.10915585471,349.82384327668,357.71250180664,366.00482869479,374.25837321367,382.69803863807,391.32802257119,400.15261355898,409.17620468607,418.4030501472,427.83842920638,437.48634583318,447.35182400506,457.72212848121,468.04393370572,478.5984967348,489.39107187298,500.42702361787,511.71183724724,523.2511306012],description:"Cycle of 31 thirds tempered by 1/14 Wuerschmidt comma"},temp31w15:{frequencies:[261.6255653006,267.55058630145,273.60979095449,279.80621811014,286.0403087015,292.51824916652,299.142895223,305.91756930507,312.84566908988,319.93066920159,327.176122954,334.58566413263,342.16300881716,349.91195724514,357.83639571789,365.80900091179,374.09345893182,382.56553686518,391.22947931103,400.08963362509,409.15044340767,418.41645289306,427.89230922859,437.58276480531,447.49267964143,457.46282942114,467.82296651709,478.41773025336,489.25243249537,500.33250769337,511.66351279634,523.2511306012],description:"Cycle of 31 thirds tempered by 1/15 Wuerschmidt comma, almost 31-tET"},temp31w8:{frequencies:[261.6255653006,267.24122592191,272.97742543896,278.83674800471,288.14389744169,294.32876096318,300.64638059818,307.09960331181,313.69134300364,320.42456924675,327.30232268102,334.32770172848,341.50387698892,348.83408706747,356.32163474066,368.21511264804,376.11866406852,384.19186344763,392.4383479509,400.86184099795,409.46613795376,418.25512179799,427.23275920923,436.40309460541,445.77026919414,460.64940473745,470.53701427025,480.63685362987,490.95348377613,501.49155234204,512.25581818623,523.2511306012],description:"Cycle of 31 thirds tempered by 1/8 Wuerschmidt comma"},temp31w9:{frequencies:[261.6255653006,267.31485098896,273.12785536516,279.06726965397,287.64164332106,293.89667226994,300.28772424256,306.81775371411,313.48978461115,320.30690488373,327.27226963218,334.38910256736,341.66069947616,349.09042189481,356.68171037974,367.64079770339,375.63548096925,383.80401588848,392.15018302326,400.67784514756,409.39095139962,418.29352970104,427.38970265849,436.68368016368,446.1797636563,459.88868900496,469.88938665048,480.10755840871,490.54793493862,501.21534712998,512.11473036853,523.2511306012],description:"Cycle of 31 thirds tempered by 1/9 Wuerschmidt comma"},temp32ebf:{frequencies:[261.6255653006,266.99024669658,272.64192755012,278.59596223891,284.86852586219,291.47665855944,298.4383110444,304.47357861204,310.83171904039,317.53000821614,324.58664278196,332.02079024875,339.85265231199,346.64232633314,353.79523650997,361.33080945807,369.26952339658,377.6329406438,386.44378308989,395.72598875513,403.77301123196,412.25053247262,421.18158418009,430.59042797451,440.50262726312,450.945108697,459.9980085603,469.53522100534,479.58265227668,490.16760508681,501.31882698223,513.0666164148,523.2511306012],description:"Cycle of 32 equal beating fifths"},temp33a12:{frequencies:[261.6255653006,266.94139439278,272.36523138282,277.89927397158,284.73748648557,290.5229142688,296.42589304627,302.44880952638,308.5941041528,316.1876182869,322.61206437627,329.16704532903,335.85521147284,342.67927280589,351.11151394887,358.24555988319,365.52455654698,372.95145333883,382.12859604556,389.89286138208,397.81488464837,405.89786889835,414.14508930077,424.3358756666,432.95772800787,441.75476312782,450.73053786756,459.88868900496,471.20507923536,480.77924170569,490.54793493862,500.51511311891,512.83118959171,523.2511306012],description:'Cycle of 33 fifths tempered by 1/12 "11 fifths" comma'},temp34eb2a:{frequencies:[261.6255653006,267.30377714022,273.10522651459,279.03258811962,285.08859470169,291.27603831759,293.96161656556,300.34163653669,306.86012579271,313.52008961307,320.32459850253,327.27678960683,334.37986815896,341.63710895701,349.05185787385,356.62753339984,364.36762821878,372.27571081823,375.70810971034,383.86232137672,392.19350864246,400.70551251195,409.40225735312,418.28775270674,427.36609513501,436.64147011015,446.11815394416,455.80051576031,465.69301950749,469.98673021106,480.18712562304,490.60890615053,501.2568766435,512.13594623433,523.2511306012],description:"Cycle of 34 thirds, 5/4 beats twice 3/2"},temp34ebsi:{frequencies:[261.6255653006,266.99788221884,272.57696520339,278.14698300137,283.93137567849,289.70637009331,295.70363067102,301.69114426564,307.90910207865,314.36637542255,320.81315450625,327.50805511637,334.19207543599,341.13334896852,348.06334108321,355.26005273528,362.44506998142,369.90662102486,377.65534755435,385.39148338011,393.42536256589,401.44618836017,409.77571602141,418.09170597447,426.72775997548,435.3497813463,444.30364141769,453.60211446558,462.88547695756,472.52613162558,482.15112257833,492.14655599832,502.125745683,512.48900933996,523.2511306012],description:"Cycle of 34 equal beating major sixths"},temp34ebt:{frequencies:[261.6255653006,266.93199967636,272.36578831151,277.92998813547,283.62773001764,289.46221547291,295.43672985114,301.55463262869,307.81936583026,314.23445063866,320.80349820247,327.5302045997,334.16324661664,340.95548417522,347.91073392156,355.03290870525,362.32601803901,369.79415983503,377.44153922514,385.2724539348,393.29131162714,401.50262139782,409.91100286066,418.20230551726,426.69260242977,435.3866631899,444.28938530291,453.40576935587,462.74094691381,472.3001707563,482.08881469934,492.11238732973,502.37652397446,512.8870010249,523.2511306012],description:"Cycle of 34 equal beating thirds"},temp34w10:{frequencies:[261.6255653006,267.37376533775,273.24825962152,279.25182297475,281.06516151868,287.24047076273,293.55146000581,300.00110689476,306.59245933664,313.32863150945,320.21280450383,327.24823031411,334.4382321302,341.78620813039,349.29562523194,351.5637974276,359.28803828513,367.18199034811,375.24938058245,383.49402021056,391.91980359563,400.53071066429,409.33081115087,418.32425711308,427.51529892703,436.90827798988,446.50763144636,449.40705529895,459.28102021135,469.37192694062,479.68454193593,490.22373920221,500.99449133668,512.00188868489,523.2511306012],description:"Cycle of 34 thirds tempered by 1/10 Wuerschmidt comma"},temp34w5:{frequencies:[261.6255653006,266.84400329087,272.16653090376,277.59522118835,285.18293865736,290.87125860088,296.67303727804,302.5905394405,308.62607485572,314.78199505921,321.06070411799,327.46464776022,333.99632772474,340.65828815182,347.45313114562,356.95032497057,364.07013256472,371.33195122039,378.73861781039,386.29301712643,393.99809806388,401.85686830172,409.8723892274,418.04779164423,426.38625992488,434.89105154177,443.56547936435,455.68978545099,464.77906877635,474.04965097839,483.50514461458,493.14924173292,502.98569917153,513.01835960126,523.2511306012],description:"Cycle of 34 thirds tempered by 1/5 Wuerschmidt comma"},temp34w6:{frequencies:[261.6255653006,267.02047390967,272.52663052146,278.06968704778,283.80368699438,289.65592453275,295.6288411546,301.72492193478,307.94670831505,314.29679425134,320.77782174252,327.39249271371,334.14356492035,341.03384719449,348.06621207862,355.14570764395,362.46906930947,369.94344613252,377.57194788125,385.35775486011,393.30411308867,401.41432870635,409.69178284295,418.13992649314,426.76227456772,435.56242170336,444.42154779224,453.58584388327,462.93911228358,472.48525217168,482.22824196207,492.17213857029,502.32108537715,512.67931193931,523.2511306012],description:"Cycle of 34 thirds tempered by 1/6 Wuerschmidt comma"},temp34w7:{frequencies:[261.6255653006,267.14659557842,272.78413659373,276.97759061533,282.82259314675,288.79093992594,294.88523549471,301.10813946365,307.46236235072,313.95067836072,320.57591524951,327.34096447962,334.24877325582,341.30235609413,348.50479124753,353.86228320674,361.3297679824,368.9548354601,376.74081403286,384.69109896591,392.80915578714,401.0985286019,409.56282802254,418.20574780595,427.03105980737,436.04260883433,442.74580331919,452.08897683944,461.62931955889,471.37098776125,481.31823237599,491.47539447856,501.84689823661,512.43727265667,523.2511306012],description:"Cycle of 34 thirds tempered by 1/7 Wuerschmidt comma"},temp34w8:{frequencies:[261.6255653006,267.24122592191,272.97742543896,276.16133434798,282.08899791039,288.14389744169,294.32876096318,300.64638059818,307.09960331181,313.69134300364,320.42456924675,327.30232268102,334.32770172848,341.50387698892,348.83408706747,352.90276052629,360.47764004221,368.21511264804,376.11866406852,384.19186344763,392.4383479509,400.86184099795,409.46613795376,418.25512179799,427.23275920923,436.40309460541,441.49314144476,450.96957067185,460.64940473745,470.53701427025,480.63685362987,490.95348377613,501.49155234204,512.25581818623,523.2511306012],description:"Cycle of 34 thirds tempered by 1/8 Wuerschmidt comma"},temp34w9:{frequencies:[261.6255653006,267.31485098896,273.12785536516,279.06726965397,281.5197407082,287.64164332106,293.89667226994,300.28772424256,306.81775371411,313.48978461115,320.30690488373,327.27226963218,334.38910256736,341.66069947616,349.09042189481,352.15826244648,359.81626391233,367.64079770339,375.63548096925,383.80401588848,392.15018302326,400.67784514756,409.39095139962,418.29352970104,427.38970265849,436.68368016368,440.52130132575,450.10083737825,459.88868900496,469.88938665048,480.10755840871,490.54793493862,501.21534712998,512.11473036853,523.2511306012],description:"Cycle of 34 thirds tempered by 1/9 Wuerschmidt comma"},temp35ebsi:{frequencies:[261.6255653006,266.57889315685,271.71450319234,277.03910343536,282.55964921963,288.28335166643,294.21768457231,300.3704033182,306.74954035112,312.48255822683,318.42655208483,324.58928450704,330.97880464114,337.6034601246,344.47190142434,351.59310182482,358.97636423712,366.63132974323,373.51095055492,380.64374131787,388.03901984907,395.70644562254,403.65603146762,411.89816253905,420.4436041444,429.30351656419,438.48947534443,446.74502047858,455.30437022365,464.17870575399,473.37961532931,482.91911915131,492.80967579032,503.06420520117,513.69610107468,523.2511306012],description:"Cycle of 35 equal beating major sixths"},temp37ebs:{frequencies:[261.6255653006,266.54882370674,271.76117582243,276.81154351547,282.15846820925,287.3392230449,292.82419544994,298.13870690002,303.76528724985,309.7222634282,315.49411047005,321.60488016898,327.52574544851,333.79428377068,339.86801168664,346.29839044807,353.1063601343,359.70275861181,366.68649693083,373.45319917734,380.61724149647,387.55864668979,394.907650003,402.68818871569,410.22692643911,418.2083422233,425.94171605945,434.12919568644,442.06222705415,450.46108885682,459.35313199837,467.96883572953,477.09045247204,485.92859505436,495.28571063961,504.35203618851,513.95073426779,523.2511306012],description:"Cycle of 37 equal beating sevenths"},temp37ebt:{frequencies:[261.6255653006,266.44794669373,271.38606435347,276.44269655507,281.62068893017,286.92295259461,292.35247205526,297.91229840101,303.60556084342,309.43546158348,315.40528084,321.51837488336,327.7781831369,333.8061589736,339.9788066307,346.29959662983,352.77208770341,359.39991652139,366.18681567584,373.13659908053,380.25317623321,387.54055229398,395.00282568127,402.64419215928,410.46895395112,418.00392297279,425.71973353547,433.62072344005,441.71133574434,449.99612361773,458.47974493329,467.16697490003,476.06269518051,485.17191513214,494.49975815874,504.05146656861,513.83241864047,523.2511306012],description:"Cycle of 37 equal beating thirds"},temp3ebt:{frequencies:[261.6255653006,330.24866439584,416.02753826489,523.2511306012],description:"Cycle of 3 equal beating thirds"},temp4ebmt:{frequencies:[261.6255653006,310.36356181711,368.84915763691,439.03187262068,523.2511306012],description:"Cycle of 4 equal beating minor thirds"},temp4ebsi:{frequencies:[261.6255653006,310.92686529443,370.08842528703,441.08229727815,523.2511306012],description:"Cycle of 4 equal beating major sixths"},temp53ebs:{frequencies:[261.6255653006,264.97369574946,268.51842903659,272.2713107977,275.7058824095,279.342132921,283.19190440533,286.71515038985,290.44528277978,294.39444663109,298.00865518834,301.83509073593,305.88621462445,310.17522146598,314.10044576101,318.25616227247,322.65590013911,326.68246801001,330.94547393755,335.45880590636,339.58933056423,343.96239778214,348.59225483118,353.4939765515,357.97994689961,362.72933676467,367.75761084241,372.35940104854,377.23140801172,382.38950169412,387.11009989437,392.10789272021,397.3991578827,403.00112480292,408.12795020911,413.55582307376,419.3024201087,424.56160969567,430.12961973912,436.02458225248,441.41955172249,447.13131541518,453.17847579573,459.58072182695,465.43995070361,471.64323472325,478.21077610462,484.22127701861,490.5847168482,497.32181757346,503.48749858841,510.01522804676,516.92626488088,523.2511306012],description:"Cycle of 53 equal beating harmonic sevenths"},temp53ebsi:{frequencies:[261.6255653006,265.08815342092,268.54511416675,272.14096825888,275.73097879106,279.31515577755,283.04333763043,286.76545980208,290.48153462492,294.34691329876,298.20601137227,302.05883614112,306.06646174912,310.06757319581,314.22944103195,318.38454699407,322.53289853772,326.84792360782,331.1559371129,335.45694960827,339.93076775401,344.39731584765,348.85660497561,353.49505873963,358.12597594237,362.74936749482,367.55851619873,372.35985057275,377.35409330215,382.34021841275,387.3182413058,392.49627136254,397.66588656991,402.8271015422,408.19568270781,413.55554119639,418.90668980097,424.47283359145,430.02993471298,435.57800299537,441.34898312942,447.11058430799,453.10367443873,459.08702461554,465.06065502782,471.27428848056,477.47782740925,483.67128540638,490.11358366391,496.54541154487,502.96678854317,509.64616466331,516.31468511822,523.2511306012],description:"Cycle of 53 equal beating major sixths"},temp53ebt:{frequencies:[261.6255653006,265.06408390481,268.61942739596,272.14046995187,275.78114176924,279.3866896354,283.11473715719,286.8068186786,290.62433945466,294.40503066492,298.31417332138,302.18560037327,306.18856199636,310.15290198883,314.25193588094,318.31142144389,322.50883104059,326.66574402863,330.9638909587,335.40807143415,339.80937339101,344.36021509659,348.86714800611,353.52720940583,358.14231011275,362.91421253104,367.64007568808,372.5265022753,377.36578530136,382.3694885676,387.32491504393,392.44870495902,397.52306357866,402.76982394565,407.96596497751,413.33865052838,418.89387526617,424.39550434456,430.08405345947,435.71772111176,441.54279782575,447.31167294612,453.27655186057,459.18388087721,465.29191391782,471.34101945319,477.59564801313,483.78993007475,490.19466758193,496.53761595054,503.09606844751,509.59124455492,516.30709807412,523.2511306012],description:"Cycle of 53 equal beating thirds"},temp57ebs:{frequencies:[261.6255653006,264.8277951114,268.04955507264,271.33445958124,274.63939933433,278.00911284632,281.39937814535,284.85609135359,288.33388628378,291.8798428433,295.4474281527,299.08493440323,302.74462553584,306.42663750246,310.18081323211,313.95788745209,317.80898926922,321.68357852782,325.63410692083,329.60872876069,333.66125215256,337.73849074816,341.89564167341,346.07814569972,350.28615866377,354.57664765081,358.89330206442,363.2945606359,367.72266219717,372.23755268366,376.77997919433,381.41143316036,386.07113633698,390.82216502962,395.60217018381,400.41132814233,405.3147417445,410.24806349136,415.27807310888,420.33876095689,425.4986359826,430.68997922537,435.98307052812,441.30844296951,446.73819252663,452.20105472878,457.69723413281,463.30113726238,468.93921588924,474.68780077646,480.47144432851,486.36844238798,492.30140788993,498.35065469266,504.4367956254,510.6422225112,516.88549425379,523.2511306012],description:"Cycle of 57 equal beating harmonic sevenths"},temp59ebt:{frequencies:[261.6255653006,264.71774803536,267.84005552541,271.00645194849,274.20369404321,277.44608402629,280.72006081878,284.04026812198,287.39281927261,290.79271098314,294.22572486522,297.70721418515,301.22261902261,304.78766466692,308.38743972219,312.03804524126,315.72421513091,319.46243532331,323.23707283878,327.06501147453,330.93024062011,334.83312418563,338.79111909993,342.78767359614,346.84065928187,350.93313112856,355.08338946648,359.27407840069,363.52394351295,367.81521017702,372.16707169716,376.56132871014,381.01763522853,385.51735474883,390.08061088885,394.68832388107,399.36109834092,404.07939600279,408.86431870994,413.69585627072,418.57446131049,423.52195428502,428.51764625978,433.58387848862,438.69946807471,443.88729218006,449.12565432864,454.4379830027,459.80206875391,465.24189440938,470.73471441434,476.30509804765,481.92974808423,487.63381799831,493.39345924022,499.23442935246,505.13230099895,511.11345315981,517.15287439575,523.2511306012],description:"Cycle of 59 equal beating thirds"},temp5ebf:{frequencies:[261.6255653006,300.99242152138,345.28013476976,397.76927639746,456.81956072863,523.2511306012],description:"Cycle of 5 equal beating fifths"},temp5ebs:{frequencies:[261.6255653006,300.72264357012,345.40501873528,396.4705903526,454.83124362955,523.2511306012],description:"Cycle of 5 equal beating harmonic sevenths"},temp6:{frequencies:[261.6255653006,292.50629174609,327.17562781541,373.91502405318,418.23333786749,467.5991148023,523.2511306012],description:"Tempered wholetone scale with approximations to 5/4 (4), 7/5 (4) and 7/4 (1)"},temp65ebf:{frequencies:[261.6255653006,264.41601755103,267.24454169377,270.11165630441,273.01788702098,275.96376822181,278.903505094,281.88335012505,284.90384796088,287.96555727487,291.06903608099,294.16604397209,297.30530343106,300.48739162418,303.71289539257,306.98240612292,310.29652144782,313.60372560746,316.95605020285,320.35411162765,323.7985328567,327.28994911888,330.77408078649,334.30574717623,337.88559766085,341.51429052286,345.19248907458,348.92086961342,352.64147345074,356.41283883338,360.23565716142,364.11063345825,368.0384739541,371.95812372083,375.93124824951,379.95858022583,384.04085801267,388.17883226226,392.30817269042,396.49385281186,400.73664000181,405.03730976228,409.39665754461,413.81548025993,418.22508312451,422.69484912531,427.22559773342,431.81816208034,436.47338166162,441.11888946365,445.82778005125,450.60091414809,455.43916939942,460.34343547357,465.31460883154,470.27541574397,475.30390033467,480.4009926512,485.56762723834,490.80474851567,496.03094699932,501.32844669322,506.69822455894,512.14126217109,517.65855736571,523.2511306012],description:"Cycle of 65 equal beating fifths"},temp65ebt:{frequencies:[261.6255653006,264.43406811535,267.2034679247,270.07937559507,272.91523803531,275.86016780291,278.76409255008,281.77970028627,284.75331888701,287.84130158502,290.886287826,294.04838131756,297.16644728835,300.4044304772,303.59732911309,306.91302510559,310.18255295306,313.57782661988,316.92582314139,320.40258196387,323.83093239735,327.39113302053,330.90176198948,334.36350914498,337.95839429282,341.50322405771,345.18438591943,348.81429298672,352.58380229516,356.30082494405,360.1608038988,363.96703524466,367.91965255368,371.81723365001,375.86471396542,379.85583700975,384.00045811272,388.08736764479,392.33145942297,396.5164558179,400.86240365726,405.1478399234,409.59809307723,413.98637838791,418.31356254814,422.80716945583,427.23820566351,431.83965831621,436.37704077554,441.08892851835,445.73520856761,450.56017999004,455.31796985254,460.25874195194,465.13071889642,470.19006822446,475.1789734801,480.35974823468,485.46838574269,490.77349931217,496.0047455553,501.43718079349,506.7939752079,512.35679191473,517.84214996629,523.2511306012],description:"Cycle of 65 equal beating thirds"},temp6eb2:{frequencies:[261.6255653006,293.46010680596,329.2739659995,369.56455759223,414.89147313404,465.88425311859,523.2511306012],description:"Cycle of 6 equal beating 9/8 seconds"},temp6s:{frequencies:[261.6255653006,271.93638072959,309.96730300827,353.31693843766,402.72911708552,459.05170412301,523.2511306012],description:"Cycle of 6 tempered harmonic sevenths, 6/5 and 4/3 minimax, Op de Coul, 2002"},temp6teb:{frequencies:[261.6255653006,314.31996068356,377.55323514312,453.43316449459,544.48907971635,653.75617798246,784.8766959018],description:"Cycle of 6 equal beating 6/5's in a twelfth"},"temp7-5ebf":{frequencies:[261.6255653006,272.53310095338,288.29512120063,313.54121701986,318.29837158817,352.05202827415,359.67534615791,387.61143614087,414.35283422339,427.61576999092,475.86500581459,472.62064557223,523.2511306012],description:"7 equal beating fifths on white, 5 equal beating fifths on black"},temp7ebf:{frequencies:[261.6255653006,288.29512120063,318.29837158817,352.05202827415,387.61143614087,427.61576999092,472.62064557223,523.2511306012],description:"Cycle of 7 equal beating fifths"},temp7ebnt:{frequencies:[261.6255653006,288.84289825546,318.65722544634,351.9228541964,388.36258888271,429.02057812008,473.55803233064,523.2511306012],description:"Cycle of 7 equal beating 11/9 neutral thirds"},temp8eb3q:{frequencies:[261.6255653006,285.27029088455,311.06453578321,339.20371183191,369.9009952302,403.38894083349,439.92124473489,479.77466958441,523.2511306012],description:`Cycle of 8 equal "beating" 12/11's`},temp9ebmt:{frequencies:[261.6255653006,282.57058469242,305.18178513943,329.6176429161,355.99737593287,384.50587463168,415.28223014648,448.54214811156,484.4478959333,523.2511306012],description:"Cycle of 9 equal beating 7/6 septimal minor thirds"},tenney_11:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,523.2511306012],description:`Scale of James Tenney's "Spectrum II" for wind quintet`},tertiadia:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,431.14564594215,459.88868900496,490.54793493862,523.2511306012],description:"Tertiadia 2048/2025 and 262144/253125 scale"},tertiadie:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,383.2405741708,408.78994578219,436.04260883433,476.27480687611,490.54793493862,523.2511306012],description:"First Tertiadie 262144/253125 and 128/125 scale"},tet3a:{frequencies:[261.6255653006,280.31310567921,313.95067836072,336.37572681506,366.27579142084,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Eight notes, two major one minor tetrad"},tetracot:{frequencies:[261.6255653006,266.81074454173,272.09868928948,277.49143626213,289.66902367154,295.4099985897,301.26475437609,307.23554606336,320.71844041089,327.07478634962,333.55710924695,340.16790585091,355.09602205939,362.13370020095,369.31085868177,376.6302618745,393.15851224787,400.95055410677,408.89702710335,417.00099192139,435.30089370336,443.92815899023,452.72640877864,461.69903182491,481.96048707062,491.51250279099,501.25383072009,523.2511306012],description:"tetracot temperament, g=176.28227, 5-limit"},"tetragam-di":{frequencies:[261.6255653006,279.06726965397,290.69507255622,290.69507255622,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,436.04260883433,457.84473927605,523.2511306012],description:"Tetragam Dia2"},"tetragam-enh":{frequencies:[261.6255653006,271.31540105247,279.06726965397,279.06726965397,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,418.60090448096,418.60090448096,457.84473927605,523.2511306012],description:"Tetragam Enharm."},"tetragam-hex":{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,327.03195662575,343.38355445704,381.53728273004,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Tetragam/Hexgam"},"tetragam-py":{frequencies:[261.6255653006,275.62199471997,294.32876096318,294.32876096318,331.11985608357,348.83408706747,372.50983809402,392.4383479509,413.43299207996,441.49314144476,441.49314144476,465.11211608996,523.2511306012],description:"Tetragam Pyth."},"tetragam-slpe":{frequencies:[261.6255653006,261.6255653006,300.52885648597,300.52885648597,279.06726965397,345.21700307457,348.83408706747,396.55020354877,455.51656649021,392.4383479509,455.51656649021,418.60090448096,523.2511306012],description:"Tetragam Slendro as 5-tET, Pelog-like pitches on C# E F# A B"},"tetragam-slpe2":{frequencies:[261.6255653006,261.6255653006,300.52885648597,300.52885648597,286.29520819723,345.21700307457,313.29104303136,396.55020354877,396.55020354877,387.04559340587,455.51656649021,423.54155496477,523.2511306012],description:"Tetragam Slendro as 5-tET, Pelog-like pitches on C# E F# A B"},"tetragam-sp":{frequencies:[261.6255653006,271.31540105247,271.31540105247,271.31540105247,336.37572681506,348.83408706747,366.27579142084,392.4383479509,406.97310157871,406.97310157871,406.97310157871,457.84473927605,523.2511306012],description:"Tetragam Septimal"},"tetragam-un":{frequencies:[261.6255653006,269.80136421624,285.40970760065,285.40970760065,319.76457981184,348.83408706747,359.73515228832,392.4383479509,404.70204632437,428.11456140098,428.11456140098,479.64686971777,523.2511306012],description:"Tetragam Undecimal"},tetragam13:{frequencies:[261.6255653006,275.95382006469,307.00724256551,307.00724256551,341.55514486295,341.55514486295,400.80167111126,400.80167111126,445.90437572008,445.90437572008,445.90437572008,496.08254310677,523.2511306012],description:"Tetragam (13-tET)"},tetragam5:{frequencies:[261.6255653006,300.52885648597,300.52885648597,300.52885648597,300.52885648597,345.21700307457,345.21700307457,396.55020354877,455.51656649021,455.51656649021,455.51656649021,455.51656649021,523.2511306012],description:"Tetragam (5-tET)"},tetragam7:{frequencies:[261.6255653006,288.85811466493,288.85811466493,288.85811466493,318.92511007349,352.12195684808,352.12195684808,388.77403176757,429.24143792307,429.24143792307,429.24143792307,473.92081401802,523.2511306012],description:"Tetragam (7-tET)"},tetragam8:{frequencies:[261.6255653006,285.30470202322,311.12698372208,311.12698372208,339.28638158975,339.28638158975,403.48177901006,403.48177901006,440,440,440,440,523.2511306012],description:"Tetragam (8-tET)"},tetragam9a:{frequencies:[261.6255653006,282.57118533961,305.19387818096,305.19387818096,329.62755691287,356.01738450312,415.30469757995,415.30469757995,448.55379686399,448.55379686399,448.55379686399,484.46508327871,523.2511306012],description:"Tetragam (9-tET) A"},tetragam9b:{frequencies:[261.6255653006,282.57118533961,282.57118533961,282.57118533961,305.19387818096,305.19387818096,384.52019141924,384.52019141924,415.30469757995,415.30469757995,415.30469757995,448.55379686399,523.2511306012],description:"Tetragam (9-tET) B"},tetraphonic_31:{frequencies:[261.6255653006,266.96486255163,272.52663052146,278.32506946872,284.37561445717,290.69507255622,297.30177875068,304.21577360535,311.45900631024,319.05556743976,327.03195662575,333.99008336247,341.25073734861,348.83408706747,356.76213450082,365.05892832642,373.75080757229,382.86668092771,392.4383479509,400.61414686654,409.13785211902,418.03215325205,427.32175665765,437.0336147635,447.19718719986,457.84473927605,467.58611670746,477.75103228805,488.36772189445,499.46698830115,511.08249965699,523.2511306012],description:"31-tone Tetraphonic Cycle, conjunctive form on 5/4, 6/5, 7/6 and 8/7"},tetratriad:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"4:5:6 Tetratriadic scale"},tetratriad1:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"3:5:9 Tetratriadic scale"},tetratriad2:{frequencies:[261.6255653006,296.75121990114,305.22982618403,356.10146388137,373.75080757229,415.4517078616,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"3:5:7 Tetratriadic scale"},thailand:{frequencies:[261.6255653006,281.86483947605,307.02089761314,350.84574289301,397.92692612688,408.40584780369,474.03826620294,539.82938999168],description:"Observed ranat tuning from Thailand, Helmholtz/Ellis p. 518, nr.85"},thailand2:{frequencies:[261.6255653006,293.66476791741,318.39923223688,356.77227917518,391.76907592069,435.19747628762,477.88722128969,525.37110555681],description:"Observed ranat t'hong tuning, Helmholtz/Ellis p. 518"},thailand3:{frequencies:[261.6255653006,293.32570896007,322.47117131255,354.92237405774,396.55020354877,437.46578647972,488.21056770985,538.58355905405],description:"Observed tak'hay tuning. Helmholtz, p. 518"},thailand4:{frequencies:[261.6255653006,281.88044777549,304.38587215019,332.5176539627,392.71966479735,416.35036198375,461.923848369,523.2511306012,563.76089555097,608.77174430039,665.59794246809,786.00196746963,831.57545378481,924.97296635309,1046.5022612024,1127.52179110194],description:"Khong mon (bronze percussion vessels) tuning, Gemeentemuseum Den Haag 1/1=465"},thirds:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,454.2110508691,502.32108537715,523.2511306012],description:"Major and minor thirds parallellogram"},thomas:{frequencies:[261.6255653006,280.80530480292,294.66217084622,313.95044496966,332.05645032639,350.21604710412,374.62015588545,391.99543598175,420.73257541073,441.99197952365,468.79922683914,499.49209883845,523.2511306012],description:"Tuning of the Thomas/Philpott organ, Gereformeerde Kerk, St. Jansklooster"},tiby1:{frequencies:[261.6255653006,295.66718139806,337.56154978455,348.04364484358,393.32961502355,444.50800708553,507.49227916989,523.2511306012],description:"Tiby's 1st Byzantine Liturgical genus, 12 + 13 + 3 parts"},tiby2:{frequencies:[261.6255653006,295.66718139806,311.12698372208,348.04364484358,393.32961502355,444.50800708553,467.75037672729,523.2511306012],description:"Tiby's second Byzantine Liturgical genus, 12 + 5 + 11 parts"},tiby3:{frequencies:[261.6255653006,295.66718139806,324.07484847125,348.04364484358,393.32961502355,444.50800708553,487.21628271135,523.2511306012],description:"Tiby's third Byzantine Liturgical genus, 12 + 9 + 7 parts"},tiby4:{frequencies:[261.6255653006,286.76251801126,324.07484847125,348.04364484358,393.32961502355,431.12067692221,487.21628271135,523.2511306012],description:"Tiby's fourth Byzantine Liturgical genus, 9 + 12 + 7 parts"},todi_av:{frequencies:[261.6255653006,276.38325105256,310.05056613125,371.27895029721,392.44854854484,413.39000965417,495.88429116026,523.2511306012],description:"Average of 8 interpretations of raga Todi, in B. Bel, 1988."},tonos15_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,767.43499154843,885.50191332511,959.29373943553,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-15"},tonos17_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,418.60090448096,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,738.70747849581,784.8766959018,897.00193817349,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-17"},tonos19_pis:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,385.55346465352,406.97310157871,457.84473927605,523.2511306012,542.63080210495,563.50121757052,610.45965236807,665.95598440153,771.10692930703,813.94620315742,915.6894785521,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-19"},tonos21_pis:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,398.6675280771,440.63253103259,465.11211608996,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,797.33505615421,881.26506206518,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-21"},tonos23_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,409.50088481833,448.50096908674,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,819.00176963666,897.00193817349,941.85203508216,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-23"},tonos25_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,376.74081403286,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,753.48162806573,856.22912280196,941.85203508216,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-25"},tonos27_pis:{frequencies:[261.6255653006,290.69507255622,327.03195662575,373.75080757229,387.59343007496,436.04260883433,498.33441009638,523.2511306012,550.79066379074,581.39014511244,654.0639132515,747.50161514457,775.18686014993,872.08521766867,996.66882019276,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-27"},tonos29_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,396.94913355953,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,793.89826711906,885.50191332511,959.29373943553,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-29"},tonos31_pis:{frequencies:[261.6255653006,273.51763645063,300.86940009569,334.29933343966,388.21858076863,429.81342870813,462.87600014722,501.44900015948,523.2511306012,547.03527290125,601.73880019138,668.59866687931,776.43716153726,859.62685741626,925.75200029443,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-31"},tonos31_pis2:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,405.0976494977,448.50096908674,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,810.19529899541,897.00193817349,966.00208726375,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-31B"},tonos33_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-33"},top31:{frequencies:[261.6255653006,267.49189720203,273.48976766293,279.62212612306,285.89198815637,292.30243695391,298.85662483994,305.55777482212,312.40918217641,319.41421606749,326.57632120555,333.89901954025,341.38591199258,349.04068022565,358.99452880887,367.04412845091,375.2742212459,383.6888543241,392.29216556304,401.08838562235,410.08184002413,419.27695128006,428.67824106611,438.29033244612,448.11795214515,458.16593287385,468.4392157049,478.94285250284,489.68200840824,500.66196437769,511.88811978069,523.36599505479],description:"Top temperament, 11-limit, {225/224, 385/384, 1331/1323}, Gene Ward Smith"},trab19:{frequencies:[261.6255653006,279.06726965397,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Diamond {1,3,5,45,75,225}"},trab19a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,344.91651675372,348.83408706747,367.91095120397,372.08969287196,392.4383479509,396.89567239676,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Diamond {1,3,9,15,675}"},tranh:{frequencies:[261.6255653006,290.69507255622,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Bac Dan Tranh scale, Vietnam"},tranh2:{frequencies:[261.6255653006,290.69507255622,307.79478270659,392.4383479509,436.04260883433,523.2511306012],description:"Dan Ca Dan Tranh Scale"},tranh3:{frequencies:[261.6255653006,317.68818643644,348.83408706747,392.4383479509,473.41768959156,476.53227965466,523.2511306012],description:"Sa Mac Dan Tranh scale"},"tri12-1":{frequencies:[261.6255653006,264.29521392612,275.21650375777,319.76457981184,323.02748368748,332.97799220076,336.37572681506,406.97310157871,411.12588832951,428.11456140098,432.48307733364,502.48719684718,523.2511306012],description:"12-tone Tritriadic of 7:9:11"},"tri12-2":{frequencies:[261.6255653006,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,448.50096908674,457.84473927605,474.80195184183,504.56359022259,523.2511306012],description:"12-tone Tritriadic of 6:7:9"},"tri19-1":{frequencies:[261.6255653006,266.96486255163,269.10058145205,305.22982618403,311.45900631024,313.95067836072,320.35783506196,356.10146388137,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,427.32175665765,436.04260883433,439.53094970501,448.50096908674,508.71637697339,512.78610798918,523.2511306012],description:"3:5:7 Tritriadic 19-Tone Matrix"},"tri19-2":{frequencies:[261.6255653006,282.55561052465,290.69507255622,294.32876096318,313.95067836072,322.99452506247,327.03195662575,348.83408706747,353.19451315581,363.36884069528,376.74081403286,387.59343007496,392.4383479509,418.60090448096,423.83341578697,436.04260883433,465.11211608996,470.92601754108,484.4917875937,523.2511306012],description:"3:5:9 Tritriadic 19-Tone Matrix"},"tri19-3":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"4:5:6 Tritriadic 19-Tone Matrix"},"tri19-4":{frequencies:[261.6255653006,264.89588486686,290.69507255622,294.32876096318,322.99452506247,327.03195662575,331.11985608357,334.88072358477,363.36884069528,367.91095120397,372.08969287196,376.74081403286,408.78994578219,413.43299207996,418.60090448096,423.83341578697,465.11211608996,470.92601754108,516.79124009995,523.2511306012],description:"4:5:9 Tritriadic 19-Tone Matrix"},"tri19-5":{frequencies:[261.6255653006,266.96486255163,284.8811711051,290.69507255622,302.73815413355,316.53463456122,322.99452506247,329.64821227876,336.37572681506,366.27579142084,373.75080757229,406.97310157871,415.27867508032,423.83341578697,432.48307733364,452.19233508746,470.92601754108,480.53675259294,512.78610798918,523.2511306012],description:"5:7:9 Tritriadic 19-Tone Matrix"},"tri19-6":{frequencies:[261.6255653006,267.07609791103,294.32876096318,299.00064605783,305.22982618403,336.37572681506,341.71502406609,343.38355445704,348.83408706747,356.10146388137,384.42940207435,392.4383479509,398.6675280771,400.61414686654,406.97310157871,448.50096908674,457.84473927605,465.11211608996,512.57253609913,523.2511306012],description:"6:7:8 Tritriadic 19-Tone Matrix"},"tri19-7":{frequencies:[261.6255653006,271.31540105247,288.32205155576,294.32876096318,299.00064605783,305.22982618403,316.53463456122,336.37572681506,348.83408706747,356.10146388137,384.42940207435,392.4383479509,406.97310157871,432.48307733364,448.50096908674,457.84473927605,465.11211608996,474.80195184183,504.56359022259,523.2511306012],description:"6:7:9 Tritriadic 19-Tone Matrix"},"tri19-8":{frequencies:[261.6255653006,264.29521392612,272.43653907335,275.21650375777,316.53463456122,319.76457981184,323.02748368748,332.97799220076,336.37572681506,350.27555023717,390.82337532559,406.97310157871,411.12588832951,423.79017189188,428.11456140098,432.48307733364,497.4115685962,502.48719684718,517.96576564563,523.2511306012],description:"7:9:11 Tritriadic 19-Tone Matrix"},"tri19-9":{frequencies:[261.6255653006,266.96486255163,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,334.88072358477,341.71502406609,366.27579142084,373.75080757229,400.61414686654,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.78610798918,523.2511306012],description:"4:5:7 Tritriadic 19-Tone Matrix"},triang11:{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,327.03195662575,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,418.60090448096,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"11-limit triangular diamond lattice with 64/63 intervals removed"},triaphonic_12:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,367.19377586049,387.59343007496,410.39304360878,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"12-tone Triaphonic Cycle, conjunctive form on 4/3, 5/4 and 6/5"},triaphonic_17:{frequencies:[261.6255653006,271.31540105247,281.75060878526,293.02063313667,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,390.69417751556,406.97310157871,422.62591317789,439.53094970501,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:"17-tone Triaphonic Cycle, conjunctive form on 4/3, 7/6 and 9/7"},trichord7:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,392.4383479509,436.04260883433,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Trichordal undecatonic, 7-limit"},tricot:{frequencies:[261.6255653006,264.94025538413,268.70564228797,272.11003565477,275.55755973666,279.4738436282,283.01466417842,286.6003471482,290.673570175,294.35628843049,298.08566525814,302.32211998602,306.15242072385,310.03124984507,314.43747949204,318.42127516569,322.45554578164,327.03835025925,331.18179578139,335.37773516927,339.62683737367,344.45368576554,348.81777463097,353.23715677741,358.25743790514,362.79641682209,367.39290067029,372.61436622199,377.33523951767,382.11592657559,387.54663888312,392.45669803325,397.4289679423,403.0773124301,408.18413893183,413.35566924724,419.23036738005,424.541846554,429.92062250389,436.03074525334,441.55507841911,447.14940523431,453.50438708518,459.25010687752,465.06861996272,470.9608512551,477.65424916833,483.70593529179,489.8342966599,496.79592520903,503.09012862502,509.46407999504,516.70469117363,523.2511306012],description:"Tricot temperament, g=565.988015, 5-limit"},tritriad:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Tritriadic scale of the 10:12:15 triad, natural minor mode"},tritriad10:{frequencies:[261.6255653006,274.70684356563,294.32876096318,348.83408706747,366.27579142084,392.4383479509,488.36772189445,523.2511306012],description:"Tritriadic scale of the 10:14:15 triad"},tritriad11:{frequencies:[261.6255653006,309.19384990071,356.76213450082,383.71749577421,421.62797713733,453.48431318771,486.49381977384,523.2511306012],description:"Tritriadic scale of the 11:13:15 triad"},tritriad13:{frequencies:[261.6255653006,294.32876096318,340.11323489078,348.83408706747,392.4383479509,453.48431318771,510.16985233617,523.2511306012],description:"Tritriadic scale of the 10:13:15 triad"},tritriad14:{frequencies:[261.6255653006,294.32876096318,336.37572681506,348.83408706747,392.4383479509,448.50096908674,504.56359022259,523.2511306012],description:"Tritriadic scale of the 14:18:21 triad"},tritriad18:{frequencies:[261.6255653006,294.32876096318,319.76457981184,348.83408706747,392.4383479509,426.35277308246,479.64686971777,523.2511306012],description:"Tritriadic scale of the 18:22:27 triad"},tritriad22:{frequencies:[261.6255653006,294.32876096318,321.08592105074,348.83408706747,392.4383479509,428.11456140098,481.6288815761,523.2511306012],description:"Tritriadic scale of the 22:27:33 triad"},tritriad26:{frequencies:[261.6255653006,294.32876096318,301.87565226992,348.83408706747,392.4383479509,402.50086969323,452.81347840488,523.2511306012],description:"Tritriadic scale of the 26:30:39 triad"},tritriad3:{frequencies:[261.6255653006,305.22982618403,356.10146388137,373.75080757229,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"Tritriadic scale of the 3:5:7 triad. Possibly Mathews's 3.5.7a"},tritriad32:{frequencies:[261.6255653006,294.32876096318,322.00069575458,348.83408706747,392.4383479509,429.33426100611,483.00104363188,523.2511306012],description:"Tritriadic scale of the 26:32:39 triad"},tritriad3c:{frequencies:[261.6255653006,305.22982618403,366.27579142084,373.75080757229,427.32175665765,436.04260883433,512.78610798918,523.2511306012],description:"From 1/1 7/6 7/5, a variant of the 3.5.7 triad"},tritriad3d:{frequencies:[261.6255653006,305.22982618403,313.95067836072,363.36884069528,366.27579142084,436.04260883433,508.71637697339,523.2511306012],description:"From 1/1 7/6 5/3, a variant of the 3.5.7 triad"},tritriad5:{frequencies:[261.6255653006,290.69507255622,329.64821227876,366.27579142084,406.97310157871,423.83341578697,470.92601754108,523.2511306012],description:"Tritriadic scale of the 5:7:9 triad. Possibly Mathews's 5.7.9a."},tritriad68:{frequencies:[261.6255653006,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"Tritriadic scale of the 6:7:8 triad"},tritriad68i:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,398.6675280771,448.50096908674,465.11211608996,523.2511306012],description:"Tritriadic scale of the subharmonic 6:7:8 triad"},tritriad69:{frequencies:[261.6255653006,294.32876096318,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Tritriadic scale of the 6:7:9 triad, septimal natural minor"},tritriad7:{frequencies:[261.6255653006,264.29521392612,323.02748368748,332.97799220076,336.37572681506,411.12588832951,428.11456140098,523.2511306012],description:"Tritriadic scale of the 7:9:11 triad"},tritriad9:{frequencies:[261.6255653006,272.93037367779,319.76457981184,362.25078272391,377.90359432309,442.75095666255,461.88217083933,523.2511306012],description:"Tritriadic scale of the 9:11:13 triad"},tsjerepnin:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,367.91095120397,392.4383479509,418.60090448096,470.92601754108,490.54793493862,523.2511306012],description:"Scale from Ivan Tsjerepnin's Santur Opera (1977) & suite from it Santur Live!"},tsuda13:{frequencies:[261.6255653006,281.75060878526,283.42769574232,322.00069575458,340.11323489078,362.25078272391,377.90359432309,402.50086969323,425.14154361347,442.75095666255,485.87604984397,518.26778650024,523.2511306012],description:"Mayumi Tsuda's Harmonic-13 scale. 1/1=440 Hz."},tuneable3:{frequencies:[36.70809598968,41.95210970249,42.82611198796,43.59086398774,44.04971518762,44.86545065405,45.8851199871,46.71939489596,47.1961234153,47.72052478658,48.94412798624,49.55592958607,50.47363198581,51.39133438555,52.00313598538,52.44013712811,53.02280531843,53.39359416681,55.06214398452,57.10148265061,57.68415084093,58.73295358349,59.65065598323,61.1801599828,62.40376318246,62.92816455374,64.23916798194,66.07457278142,66.74199270851,67.29817598108,68.17217826655,68.82767998065,70.35718398022,73.41619197936,79.53420797764,80.7578111773,82.59321597678,85.65222397592,87.18172797549,88.09943037523,89.14823311779,89.73090130811,90.10169015649,91.7702399742,94.39224683061,95.44104957317,96.35875197291,97.88825597248,100.94726397162,102.7826687711,104.00627197076,104.88027425623,105.53577597033,110.12428796904,114.20296530123,114.71279996775,115.36830168185,116.24230396732,117.46590716698,119.30131196646,120.61231539466,122.3603199656,123.88982396517,124.80752636491,125.85632910747,128.47833596388,132.14914556285,134.59635196216,137.6553599613,139.49076476078,140.71436796044,141.58837024591,146.83238395872,152.950399957,154.17400315666,156.00940795614,159.06841595528,161.51562235459,165.18643195356,168.85724155253,171.30444795184,174.36345595098,176.19886075046,183.5404799484,190.88209914634,192.71750394582,195.77651194496,201.89452794324,205.56533754221,208.01254394152,211.07155194066,220.24857593808,229.4255999355,232.48460793464,238.60262393292,244.7206399312,247.77964793034,256.95667192776,269.19270392432,275.3107199226,281.42873592088,293.66476791744],description:"Marc Sabat, 3 octaves of intervals tuneable by ear"},tuners1:{frequencies:[261.6255653006,276.50456653385,293.15590636358,311.0676370396,328.627540632,349.28088891463,369.11955599459,391.76814585061,414.75684959346,439.06365754828,466.60145532616,492.6062100846,523.2511306012],description:"The Tuner's Guide well temperament no. 1 (1840)"},tuners2:{frequencies:[261.6255653006,276.9861853325,293.55936848273,311.27971878774,329.48489606404,349.42029142443,369.90111701824,391.99869425741,415.03962525779,439.89939957166,466.4799232208,493.78769382322,523.2511306012],description:"The Tuner's Guide well temperament no. 2 (1840)"},tuners3:{frequencies:[261.6255653006,276.9180796764,293.64050032496,311.25753558078,329.38199580693,349.20116137147,369.59117881045,391.8877401954,415.37711930697,439.91014033466,466.33569310799,493.52238512763,523.2511306012],description:"The Tuner's Guide well temperament no. 3 (1840)"},turkish:{frequencies:[261.6255653006,279.06726965397,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"Turkish, 5-limit from Palmer on a Turkish music record, harmonic minor inverse"},turkish_24:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Ra'uf Yekta, 24-tone Pythagorean Turkish Theoretical Gamut, 1/1=D (perde yegah) at 294 Hz"},turkish_24a:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,344.52749339997,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,459.36999119996,465.11211608996,490.54793493862,496.67978412536,516.79124009995,523.2511306012],description:"Turkish gamut with schismatic simplifications"},turkish_41:{frequencies:[261.6255653006,266.80864394988,272.09440643071,275.67629620338,281.13773466533,286.70737164501,290.48162858661,294.30556868769,300.13607443832,306.08208692954,310.11139540064,316.25503135793,322.52037740267,326.76608188608,333.2396629384,339.84149442859,344.31521657963,348.8478314504,355.75887527351,362.80683626646,367.58287746967,374.8650823332,382.29155536296,387.32409620162,392.42288612931,400.19720009986,408.12552912594,413.49815209867,421.6899870258,430.04411333507,435.70527569249,441.44096240275,450.1863739015,459.10504388656,465.14876849982,474.36385666592,483.76150545705,490.12981126508,499.83980314828,509.74215733443,516.45247616827,523.2511306012],description:"Abd\xEF\xBF\xBDlkadir T\xEF\xBF\xBDre and M. Ekrem Karadeniz theoretical Turkish gamut"},turkish_41a:{frequencies:[261.6255653006,268.5590565112,272.09440643071,275.67629620338,279.3053384865,286.70737164501,290.48162858661,294.30556868769,298.17984938441,306.08208692954,310.11139540064,314.19374626607,322.52037740267,326.76608188608,335.42589979828,339.84149442859,344.31521657963,348.8478314504,353.4401143131,362.80683626646,367.58287746967,377.32440283229,382.29155536296,387.32409620162,392.42288612931,402.82271318249,408.12552912594,413.49815209867,424.45650702809,430.04411333507,435.70527569249,441.44096240275,453.1398459935,459.10504388656,465.14876849982,477.47594368525,483.76150545705,490.12981126508,503.11902634639,509.74215733443,516.45247616827,523.2511306012],description:"Karadeniz's theoretical Turkish gamut, quantized to subset of 53-tET"},turkish_aeu:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,465.11211608996,471.45776383774,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Arel-Ezgi-Uzdilek (AEU) 24 tone theoretical system"},turkish_bagl:{frequencies:[261.6255653006,277.01530443593,285.40970760065,294.32876096318,311.64221749042,321.08592105074,331.11985608357,348.83408706747,369.35373924791,380.54627680087,392.4383479509,415.52295665389,428.11456140098,441.49314144476,465.11211608996,492.47165233054,507.3950357345,523.2511306012],description:'Ratios of the 17 frets on the neck of "Baglama" ("saz") according to Yal\xEF\xBF\xBD\xEF\xBF\xBDn Tura'},two29:{frequencies:[261.6255653006,265.43099677612,267.95417262175,271.85165581044,274.43586616969,278.42762776199,281.0743490329,285.16266958193,287.87341387594,292.06062910037,294.83694510625,299.12544722478,301.96892109338,306.36116019141,309.2734164419,313.77190187131,316.75460431924,321.36190613206,324.41675883995,329.13550925662,332.26425750751,337.09715242073,340.3015837153,345.25138423021,348.53332930799,353.60286331966,356.96419720496,362.15636101402,365.59900408717,370.91676405444,374.44268531179,379.88907958456,383.50028913155,389.07842928561,392.77699240278,398.49006531303,402.2780950448,408.12936467525,412.00902517967,418.00183444819,421.97534223334,428.1131149215,432.1827401118,438.46898282094,442.63705045414,449.07535460876,453.34424596425,459.9382898638,464.31044382305,471.06399474345,475.54190918343,482.45882552933,487.04505874954,494.12929225872,498.82646444278,506.0820624438,510.89285715645,518.32396488098,523.2511306012],description:"Two 29-tET scales 25 cents shifted, many near just intervals"},two29a:{frequencies:[261.6255653006,264.02813680074,267.95417262175,270.41486126945,274.43586616969,276.95607779319,281.0743490329,283.65552346679,287.87341387594,290.51702578379,294.83694510625,297.54450482308,301.96892109338,304.74197548856,309.2734164419,312.11354980287,316.75460431924,319.66343925668,324.41675883995,327.39595721478,332.26425750751,335.31552138031,340.3015837153,343.42665631876,348.53332930799,351.73399604284,356.96419720496,360.24228665998,365.59900408717,368.95638908389,374.44268531179,377.88128181162,383.50028913155,387.02206376789,392.77699240278,396.38395721814,402.2780950448,405.97231075214,412.00902517967,415.79260233969,421.97534223334,425.85044246025,432.1827401118,436.15157730833,442.63705045414,446.70189207635,453.34424596425,457.50741431695,464.31044382305,468.5743173866,475.54190918343,479.90892674463,487.04505874954,491.51771254425,498.82646444278,503.40730976502,510.89285715645,515.58451111167,523.2511306012],description:"Two 29-tET scales 15.826 cents shifted, 13-limit chords, Mystery temperament, Gene Ward Smith"},xenakis_chrom:{frequencies:[261.6255653006,274.52698453615,329.62755691287,349.22823143301,391.99543598175,411.32572372413,493.88330125613,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 5 + 19 + 6 parts"},xenakis_diat:{frequencies:[261.6255653006,293.66476791741,326.46944327063,349.22823143301,391.99543598175,440,489.15147723638,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 12 + 11 + 7 parts"},xenakis_schrom:{frequencies:[261.6255653006,279.86396690685,326.46944327063,349.22823143301,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 7 + 16 + 7 parts"},xenoga24:{frequencies:[261.6255653006,265.7783520514,279.38237857051,283.8170195002,294.32876096318,299.00064605783,310.07474405997,314.99656539426,331.11985608357,336.37572681506,348.83408706747,354.37113606854,372.50983809402,378.42269266694,392.4383479509,398.6675280771,419.07356785577,425.72552925031,441.49314144476,448.50096908674,465.11211608996,472.49484809138,496.67978412536,504.56359022259,523.2511306012],description:"M. Schulter, 3+7 ratios Xeno-Gothic adaptive tuning (keyboards 64:63 apart)"},xylophone2:{frequencies:[261.6255653006,295.19538981304,332.68808325276,388.83826257328,446.65787257783,506.59641128799,527.19506190947,579.57827742703,633.13077520476,751.1860077911,842.69088701475],description:"African Yaswa xylophones (idiophone; calbash resonators with membrane)"},xylophone3:{frequencies:[261.6255653006,292.47977325983,348.01999353916,392.4383479509,442.29334161825,523.2511306012],description:"African Banyoro xylophone (idiophone; loose log)"},xylophone4:{frequencies:[261.6255653006,281.70207497315,314.1971709147,349.63190883464,391.76907592069,436.9606979923,505.71930677521,568.9637969584,597.94115990992,660.7800775993,716.43551549302],description:"African Bapare xylophone (idiophone, loose-log)"},zalzal:{frequencies:[261.6255653006,294.32876096318,321.08592105074,348.83408706747,392.4383479509,428.11456140098,465.11211608996,523.2511306012],description:"Tuning of popular flute by Al Farabi & Zalzal. First tetrachord is modern Rast"},zalzal2:{frequencies:[261.6255653006,294.32876096318,331.11985608357,348.83408706747,387.59343007496,419.89288258121,465.11211608996,523.2511306012],description:"Zalzal's Scale, a medieval Islamic with Ditone Diatonic & 10/9 x 13/12 x 72/65"},zarlino:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Ptolemy's Intense Diatonic Systonon, also Zarlino's scale"},zarlino2:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"16-note choice system of Zarlino, Sopplimenti musicali (1588)"},zartehijaz1:{frequencies:[261.6255653006,280.55696721076,336.07142343876,350.07440004945,375.4060213132,393.89732161404,446.43551156053,468.42549744394,502.32108537715,523.2511306012],description:"Scale from Zarlino temperament extraordinaire -- lower Hijaz tetrachord"},zesster_a:{frequencies:[261.6255653006,279.06726965397,313.95067836072,334.88072358477,348.83408706747,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Harmonic six-star, group A, from Fokker"},zesster_b:{frequencies:[261.6255653006,293.02063313667,299.00064605783,334.88072358477,366.27579142084,418.60090448096,457.84473927605,478.40103369253,523.2511306012],description:"Harmonic six-star, group B, from Fokker"},zesster_c:{frequencies:[261.6255653006,299.00064605783,305.22982618403,348.83408706747,398.6675280771,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"Harmonic six-star, group C on Eb, from Fokker"},zesster_mix:{frequencies:[261.6255653006,274.70684356563,279.06726965397,293.02063313667,299.00064605783,313.95067836072,334.88072358477,348.83408706747,358.80077526939,366.27579142084,392.4383479509,418.60090448096,457.84473927605,478.40103369253,488.36772189445,502.32108537715,523.2511306012],description:"Harmonic six-star, groups A, B and C mixed, from Fokker"},zest24:{frequencies:[261.6255653006,269.33468959023,272.52663052146,280.55696721076,292.24684137387,300.8582598368,308.87634556583,317.97777315513,326.45210604021,336.07142343876,350.07440004945,360.38977980792,364.66083404534,375.4060213132,391.04793957621,402.57065589001,410.30971075781,422.39999923493,436.81711699543,449.68847932918,465.03699205118,478.73988827571,487.94322738789,502.32108537715,523.2511306012],description:"Zarlino Extraordinaire Spectrum Temperament (two circles at ~50.28c apart)"},zir_bouzourk:{frequencies:[261.6255653006,281.75060878526,305.22982618403,313.95067836072,353.19451315581,392.4383479509,523.2511306012],description:"Zirafkend Bouzourk (IG #3, DF #9), from both Rouanet and Safi al-Din"},zwolle:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Henri Arnaut De Zwolle. Pythagorean on G flat."},zwolle2:{frequencies:[261.6255653006,273.37431312998,292.50627485027,311.68386704488,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,467.04206359353,489.02683710225,523.2511306012],description:"Henri Arnaut De Zwolle's modified meantone tuning (c. 1440)"},yarman12:{frequencies:[261.6255653006,283.42769574232,294.32876096318,309.19384990071,332.97799220076,348.83408706747,377.90359432309,392.4383479509,411.12588832951,442.75095666255,465.11211608996,499.46698830115,523.2511306012],description:"Detempered Yarman 13-limit, [<1 1 -20 -6 -3 -1|, <0 1 38 15 11 8|]"},yarman12_80:{frequencies:[261.6255653006,282.84340331238,295.36595061166,319.3201344739,333.45764463229,348.2210758395,376.46181130035,393.12919962609,425.01198472693,443.82887286778,479.82340237272,501.06699929295,523.2511306012],description:"Ozan Yarman MOS, 80-et version"},yarman17:{frequencies:[261.6255653006,274.08392555301,283.42769574232,294.32876096318,309.19384990071,322.00069575458,332.97799220076,348.83408706747,362.25078272391,377.90359432309,392.4383479509,411.12588832951,425.14154361347,442.75095666255,465.11211608996,485.87604984397,499.46698830115,523.2511306012],description:"80-et commas 13-limit detempering of a chain of 16 fifths"},"yarman_ney-ahengs":{frequencies:[261.6255653006,275.39533189537,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,494.18162334558,523.2511306012],description:"Well Temperament for piano by Ozan Yarman from Ney Ahengs"},yasser_6:{frequencies:[261.6255653006,291.88463270656,325.64340264099,363.30663963964,405.32593044476,452.20508247496,523.2511306012],description:"Yasser Hexad, 6 of 19 as whole tone scale"},yasser_diat:{frequencies:[261.6255653006,281.42815779395,291.88463270656,313.97755176024,325.64340264099,350.29154279212,376.80531512858,390.80553229045,420.38583225541,436.00528786292,469.00678383895,486.43275040712,523.2511306012],description:"Yasser's Supra-Diatonic, the flat notes are V,W,X,Y,and Z"},yasser_ji:{frequencies:[261.6255653006,282.64904822654,294.32876096318,304.39128270551,327.03195662575,347.87575166344,359.73515228832,391.36022062136,425.14154361347,434.84468957929,457.84473927605,478.32915853722,523.2511306012],description:"Yasser's just scale, 2 Yasser hexads, 121/91 apart"},yekta:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,502.32108537715,523.2511306012],description:"Rauf Yekta's 12-tone tuning suggested in 1922 Lavignac Music Encyclopedia"},"young-g":{frequencies:[261.6255653006,299.07507698093,319.76457981184,341.88537054616,390.82337532559,446.76650366117,477.67301428683,510.71739232152,583.82257301724,667.39198333921,713.56092257662,762.92356430953,872.13001648254,996.96833978235,1065.93668681199,1139.67601990796,1302.81150610354,1489.29848625885,1592.32474578757,1702.47910946196,1946.17475603251,2224.75468143463,2378.65811671778,2543.20970830682,2907.24890901465,3323.39919648924,3553.30434397593,3799.11599765247,4342.92768045015],description:"Gayle Young's Harmonium, see PNM 26(2): 204-212 (1988)"},"young-lm_guitar":{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"LaMonte Young, Tuning of For Guitar '58. 1/1 March '92, inv.of Mersenne lute 1"},"young-lm_piano":{frequencies:[261.6255653006,289.72987407313,294.32876096318,300.46061014991,343.38355445704,338.01818641865,386.30649876417,392.4383479509,400.61414686654,457.84473927605,450.69091522486,515.07533168556,523.2511306012],description:"LaMonte Young's Well-Tempered Piano"},"young-w10":{frequencies:[261.6255653006,277.18263097687,302.26980244078,320.24370022528,349.22823143301,369.99442271164,391.99543598175,427.47405410759,452.89298412314,493.88330125613,523.2511306012],description:"William Lyman Young 10 out of 24-tET (1961)"},"young-w14":{frequencies:[261.6255653006,277.18263097687,293.66476791741,302.26980244078,320.24370022528,339.28638158975,359.46139971304,369.99442271164,391.99543598175,415.30469757995,427.47405410759,452.89298412314,479.82340237272,508.3551866238,523.2511306012],description:"William Lyman Young 14 out of 24-tET (1961)"},"young-wt":{frequencies:[261.6255653006,285.40970760065,309.19384990071,348.83408706747,392.4383479509,428.11456140098,463.79077485106,523.2511306012],description:'William Lyman Young "exquisite 3/4 tone Hellenic Lyre" dorian'},young:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,348.83408706747,367.49599295996,391.5530240856,413.43299207996,438.51190905657,465.11211608996,491.10256480205,523.2511306012],description:"Thomas Young well temperament (1807), also Luigi Malerbi nr.2 (1794)"},young2:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.14198392915,349.22823143301,368.32692341742,391.5530240856,414.36778843034,438.51190905657,466.16376151809,491.65745674141,523.2511306012],description:"Thomas Young well temperament no.2 (1799)"},yugo_bagpipe:{frequencies:[261.6255653006,277.02257024271,294.00421879736,322.47117131255,341.84370465044,381.9375744369,404.41509766528,430.1988069325,452.63145841613,463.74664903953,478.99265177484,502.22604835608,523.2511306012],description:"Yugoslavian Bagpipe"},yves:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:`St Yves's scale II from Jocelyn Godwin, "Music and the Occult", 1995.`},saba_sup:{frequencies:[261.6255653006,287.78812183066,313.95067836072,327.03195662575,392.4383479509,418.60090448096,470.92601754108,497.08857407114,523.2511306012],description:"Superparticular version of maqam Sab"},sabagh:{frequencies:[261.6255653006,275.67629620338,279.3053384865,286.70737164501,294.30556868769,310.11139540064,314.19374626607,322.52037740267,326.76608188608,331.06767743197,348.8478314504,362.80683626646,367.58287746967,372.42178901277,392.42288612931,413.49815209867,418.94150105041,430.04411333507,441.44096240275,465.14876849982,471.27205084813,483.76150545705,490.12981126508,496.58195036371,523.2511306012],description:"Twfiq Al-Sabagh, Arabic master musical scale in 53-tET (1954)"},sabbagh:{frequencies:[261.6255653006,294.30556868769,321.46759848648,348.8478314504,392.42288612931,428.64035280622,465.14876849982,523.2511306012],description:"Tawfiq as-Sabbagh, a composer from Syria. 1/1=G"},safi_diat:{frequencies:[261.6255653006,276.16031892841,305.22982618403,348.83408706747,392.4383479509,414.24047839262,457.84473927605,523.2511306012],description:"Safi al-Din's Diatonic, also the strong form of Avicenna's 8/7 diatonic"},safi_diat2:{frequencies:[261.6255653006,283.79722337692,310.07474405997,348.83408706747,392.4383479509,425.69583506538,465.11211608996,523.2511306012],description:"Safi al-Din's 2nd Diatonic, a 3/4 tone diatonic like Ptolemy's Equable Diatonic"},safi_major:{frequencies:[261.6255653006,281.75060878526,322.00069575458,348.83408706747,375.66747838035,392.4383479509,523.2511306012],description:"Singular Major (DF #6), from Safi al-Din, strong 32/27 chromatic"},salinas_19:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:`Salinas' enharmonic tuning for his 19-tone instr. "instrumentum imperfectum"`},salinas_24:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,459.88868900496,465.11211608996,470.92601754108,490.54793493862,510.98743222773,523.2511306012],description:'Salinas enharmonic system "instrumentum perfectum". Subset of Mersenne'},salinas_enh:{frequencies:[261.6255653006,272.52663052146,279.06726965397,348.83408706747,392.4383479509,408.78994578219,418.60090448096,523.2511306012],description:"Salinas's and Euler's enharmonic"},salunding:{frequencies:[261.6255653006,282.38958039978,310.76686573877,390.36201910543,419.43149305958,523.2511306012],description:"Gamelan slunding, Kengetan, South-Bali. 1/1=378 Hz"},sankey:{frequencies:[261.6255653006,274.88665260982,292.54735824399,309.58527581215,327.03195662575,348.83408706747,366.73895666255,391.24894371175,412.31687950427,437.13741259348,464.79252184829,489.99465727995,523.2511306012],description:"John Sankey's Scarlatti tuning, personal evaluation based on d'Alembert's"},santur1:{frequencies:[261.6255653006,282.02765077995,319.3201344739,347.21689301951,376.46192220133,427.47393558663,475.68393915562,504.55222794679,523.2511306012],description:"Persian santur tuning. 1/1=E"},santur2:{frequencies:[261.6255653006,281.2143451833,317.48098583281,345.21700307457,375.37611551499,423.78627283082,475.68393915562,498.18106573801,523.2511306012],description:"Persian santur tuning. 1/1=E"},sanza:{frequencies:[261.6255653006,293.15632631094,308.97787266236,346.21547002486,390.18821123181,462.40922843744,524.46149515038,595.18445928535,620.10113226249],description:"African N'Gundi Sanza (idiophone; set of lamellas, thumb-plucked)"},sanza2:{frequencies:[261.6255653006,390.63923480058,465.35666077712,523.2511306012,588.68812410589,663.45725712889,702.9084786129,783.08569314515],description:"African Baduma Sanza (idiophone, like mbira)"},sauveur:{frequencies:[261.6255653006,274.85950244128,292.7026939092,313.25286195357,328.80795208256,349.69755047152,367.27338607435,391.35133250294,417.15885134862,438.29716799286,468.84228427561,491.11646492505,523.2511306012],description:"Sauveur's tempered system of the harpsichord. Trait\xEF\xBF\xBD (1697)"},sauveur2:{frequencies:[261.6255653006,278.64199172491,293.04864983565,312.10886966906,328.2456799168,349.5951549002,372.33322418948,391.58401058733,417.05308314313,438.61577206336,467.14384425417,491.2966347616,523.2511306012],description:"Sauveur's Syste^me Chromatique des Musiciens (Memoires 1701), 12 out of 55."},sauveur_17:{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,441.49314144476,465.11211608996,489.99465727995,496.67978412536,523.2511306012],description:"Sauveur's oriental system, aft. Kitab al-adwar (Bagdad 1294) by Safi al-Din"},sauveur_ji:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Aplication des sons harmoniques aux jeux d'orgues (1702) (PB 81/80 & 128/125)"},savas_bardiat:{frequencies:[261.6255653006,282.57123920205,317.17549194805,349.22823143301,391.99543598175,423.37848741825,475.22628419761,523.2511306012],description:"Savas's Byzantine Liturgical mode, 8 + 12 + 10 parts"},savas_barenh:{frequencies:[261.6255653006,282.57123920205,329.62755691287,349.22823143301,391.99543598175,423.37848741825,493.88330125613,523.2511306012],description:"Savas's Byzantine Liturgical mode, 8 + 16 + 6 parts"},savas_chrom:{frequencies:[261.6255653006,282.57123920205,323.3415889232,349.22823143301,391.99543598175,423.37848741825,484.46499093218,523.2511306012],description:"Savas's Chromatic, Byzantine Liturgical mode, 8 + 14 + 8 parts"},savas_diat:{frequencies:[261.6255653006,288.06460709314,311.12698372208,349.22823143301,391.99543598175,431.60923940535,466.16376151809,523.2511306012],description:"Savas's Diatonic, Byzantine Liturgical mode, 10 + 8 + 12 parts"},savas_palace:{frequencies:[261.6255653006,277.18263097687,336.03572815422,349.22823143301,391.99543598175,415.30469757995,503.48470957687,523.2511306012],description:"Savas's Byzantine Liturgical mode, 6 + 20 + 4 parts"},scalatron:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,510.98743222773,523.2511306012],description:"Scalatron (tm) 19-tone scale, see manual, 1974"},scheengaas:{frequencies:[261.6255653006,273.84069463911,292.6487650037,312.74862113192,327.53979283172,350.03605285217,366.8025131876,391.54284657258,418.19337019276,437.97145880542,467.51204131067,489.62261321254,523.2511306012],description:"Scheengaas' variation"},scheffer:{frequencies:[261.6255653006,274.56546814423,292.86978442859,309.86465789076,327.84548435462,349.70179235499,366.99791252626,391.46460164194,410.82629477826,438.21464222188,467.42914467878,490.54793493862,523.2511306012],description:"H.Th. Scheffer (1748) modified 1/5-comma temperament, Sweden"},schidlof:{frequencies:[261.6255653006,264.89588486686,274.70684356563,280.31310567921,294.32876096318,305.22982618403,315.35224388912,322.99452506247,327.03195662575,348.83408706747,353.19451315581,366.27579142084,373.75080757229,392.4383479509,406.97310157871,420.46965851882,436.04260883433,457.84473927605,467.18850946536,484.4917875937,490.54793493862,523.2511306012],description:"Schidlof"},schillinger:{frequencies:[261.6255653006,262.8879410321,275.85161280553,277.18263097687,278.52007147562,292.25460328695,293.66476791741,295.08173676673,309.63296633914,311.12698372208,312.62820992379,328.04470063332,329.62755691287,331.21805066987,347.55125362114,349.22823143301,350.91330087035,368.21772660991,369.99442271164,371.77969159194,390.11309203208,391.99543598175,393.88686247394,413.31042363438,415.30469757995,417.30859414412,437.88714035463,440,442.12305445465,463.92526470026,466.16376151809,468.41305936011,491.51169649079,493.88330125613,496.26634930797,520.73850287792,523.2511306012],description:"Joseph Schillinger's double equal temperament, p.664 Mathematical Basis..."},schis41:{frequencies:[261.6255653006,266.96486255163,272.52663052146,275.21650375777,280.31310567921,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,311.45900631024,313.95067836072,321.08592105074,327.03195662575,329.64821227876,336.37572681506,343.38355445704,348.83408706747,355.95315006884,363.36884069528,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,415.27867508032,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,484.4917875937,490.54793493862,497.4115685962,504.56359022259,512.78610798918,523.2511306012],description:"41&53 <<1 -8 -14 23 -15 -25 33 -10 81 113||"},schisynch17:{frequencies:[261.6255653006,275.80289341725,290.74848220557,294.25152581512,310.19683462128,327.0062098829,330.94609980123,348.87986495302,367.78544978395,387.71551660339,392.38685458718,413.65005636851,436.06549769577,441.31937388998,465.23419873014,490.4449531872,496.35401261224,523.2511306012],description:"fifth satisfies f^9 + f^8 - 64 = 0"},schlick:{frequencies:[261.6255653006,275.62199471997,293.00227310437,311.47852302926,328.14198392915,349.6228209638,367.9112241576,391.5530240856,414.36778843034,438.51190905657,466.69047534984,491.10256480205,523.2511306012],description:"Reconstructed temp. A. Schlick, Spiegel d. Orgelmacher und Organisten (1511)"},schlick2:{frequencies:[261.6255653006,275.31092272332,293.00227310437,311.83045953724,328.14198392915,349.6228209638,367.9112241576,391.5530240856,415.30469757995,438.51190905657,466.69047534984,491.10256480205,523.2511306012],description:"Schlick's temperament reconstructed by F.J. Ratte (1991)"},schlick3:{frequencies:[261.6255653006,275.31092431358,293.00227310437,311.83045953724,328.14198392915,349.6228209638,367.70355049744,391.5530240856,415.07027187895,438.51190905657,466.95405539699,491.10256480205,523.2511306012],description:"Possible well-tempered interpretation of 1555 tuning, Margo Schulter"},schlick4:{frequencies:[261.6255653006,275.29566620843,293.00166043901,311.83758337792,328.14192706649,349.6222474261,367.6987228158,391.55300599201,415.35839309639,438.51185079886,466.95962791236,491.10245700671,523.2511306012],description:"Another reconstructed Schlick's modified meantone (Poletti?)"},scholz:{frequencies:[261.6255653006,271.31540105247,299.00064605783,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Simple Tune #1 Carter Scholz"},scholz_epi:{frequencies:[261.6255653006,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,4709.2601754108,5232.511306012,5494.1368713126,5755.7624366132,6279.0135672144,6540.639132515,6802.2646978156,7063.8902631162,7325.5158284168,8372.0180896192,8633.6436549198,9156.894785521,9418.5203508216,10203.3970467234,10465.022612024,10988.2737426252,11511.5248732264,11773.150438527,12558.0271344288,12819.6526997294,13081.27826503,14127.7805262324,14389.406091533,14651.0316568336,16482.4106139378,16744.0361792384,17005.661744539],description:"Carter Scholz, Epimore"},schulter:{frequencies:[261.6255653006,277.184065539,293.66520219021,311.12905403417,329.62853176407,349.23107169224,369.99606406306,391.99572582396,415.30715405467,440.00097595231,466.1672081452,493.88512703986,523.25577305438],description:`Margo Schulter's 5-limit JI virt. ET, "scintilla of Artusi" tempered 22-08-98`},schulter_17:{frequencies:[261.6255653006,272.43653907335,282.13181390574,295.15344695336,308.77608605158,319.09647917983,332.97799220076,348.34640884647,361.82138782225,375.64984936577,392.98775403209,410.26687922759,423.79017189188,443.34998408798,463.81254988138,480.53289366295,500.16624277499,523.2511306012],description:"Neo-Gothic well-temperament (14:11, 9:7 hypermeantone fifths) TL 04-09-2000"},schulter_24:{frequencies:[261.6255653006,270.06509966514,283.8170195002,292.97240722602,295.75063903546,305.22982618403,307.79478270659,317.68818643644,334.29933343966,345.08318290545,348.06842720833,359.29644098925,377.90359432309,390.09403284964,393.30161007617,406.07983174306,426.86276443782,440.63253103259,444.76346101102,458.66231916761,462.87600014722,477.80748402293,502.32108537715,518.89070451286,523.2511306012],description:'Rational intonation (RI) scale with some "17-ish" features (24 notes)'},schulter_cart34:{frequencies:[261.6255653006,270.08718526646,272.51337835337,281.3271372098,283.85429714132,293.03484945212,295.66718139806,305.22982618403,307.97166902637,317.93223698752,320.78822215662,331.16330924834,334.13814720468,344.94500399825,348.04364484358,359.30023993517,362.52783176564,374.2528814026,377.61479489998,389.82779436071,393.32961502355,406.05087076101,409.69842558521,422.94908927295,426.7484383229,440.55054172958,444.50800708553,458.88449901367,463.0066556268,477.98143975034,482.27514684959,497.87312179111,502.34551296122,518.59261334435,523.2511306012],description:'"Carthesian tuning" with two 17-tET chains 55.106 cents apart'},schulter_diat7:{frequencies:[261.6255653006,295.1673044417,332.97799220076,348.83408706747,392.4383479509,442.75095666255,499.46698830115,523.2511306012],description:"Diatonic scale, symmetrical tetrachords based on 14/11 and 13/11 triads"},schulter_ham:{frequencies:[261.6255653006,272.52663052146,283.8170195002,295.75063903546,307.79478270659,320.70230585235,334.29933343966,348.01136516401,362.25078272391,377.90359432309,393.36609818246,409.50088481833,426.86276443782,444.76346101102,462.87600014722,482.33849075995,502.32108537715,523.2511306012],description:'New rational tuning of "Hammond organ type", TL 01-03-2002'},schulter_jot17a:{frequencies:[261.6255653006,271.31540105247,281.75060878526,295.1673044417,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,392.4383479509,406.97310157871,422.62591317789,442.75095666255,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:"Just octachord tuning -- 4:3-9:8-4:3 division, 17 steps (7 + 3 + 7), Bb-Bb"},schulter_jot17bb:{frequencies:[261.6255653006,271.31540105247,281.75060878526,295.15228855401,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,392.4383479509,406.97310157871,422.62591317789,442.72843283101,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:'"Just Octachord Tuning" (Bb-Eb, F-Bb) -- 896:891 divided into 1792:1787:1782'},schulter_jwt17:{frequencies:[261.6255653006,272.43653907335,282.34838235411,295.1673044417,308.34441624714,319.76457981184,332.97799220076,347.8430811383,362.25078272391,376.08675011961,393.55640592227,409.81906732402,425.14154361347,443.97065626768,462.87600014722,481.6288815761,500.8899711738,523.2511306012],description:'"Just well-tuned 17" circulating system'},"schulter_lin76-34":{frequencies:[261.6255653006,270.6250663876,281.88470155261,291.58108453077,295.07956188513,305.22982618403,308.89206602106,319.51745915009,332.81131277165,344.25948974019,348.39001840879,360.3740779397,375.36781334896,388.27986588625,392.93856423817,406.45502016129,423.36600317146,437.92911415628,443.18352164838,458.42832346067,463.9286840578,479.88708893184,499.85328649772,517.04744024951,523.2511306012],description:"Two 12-note chains, ~704.160 cents, 34 4ths apart (32 4ths = 7:6), TL 29-11-02"},schulter_pel:{frequencies:[261.6255653006,271.31540105247,305.22982618403,392.4383479509,406.97310157871,523.2511306012],description:"Just pelog-style Phrygian pentatonic"},schulter_pepr:{frequencies:[261.6255653006,270.64528702739,281.81099471089,291.52662303231,295.05751399041,305.22982618403,308.92668738628,319.57714790608,332.76158224462,344.23376719628,348.40303271111,360.41446953256,375.28368107222,388.22184469544,392.9238840789,406.47020586181,423.23948674937,437.83095983374,443.13385158124,458.41119660824,463.96335069158,479.95880706014,499.75992392917,516.98949183803,523.2511306012],description:"Peppermint 24: Wilson/Pepper apotome/limma=Phi, 2 chains spaced for pure 7:6"},schulter_qcm62a:{frequencies:[261.6255653006,262.43934012943,267.90457886781,268.73788454005,273.37431312998,274.22463192287,279.93529690293,280.80602334765,285.65065877038,286.53916259713,292.50627485027,293.41610276971,299.52642572255,300.45808951291,305.64177427204,306.59245933664,312.977175335,313.95067836072,320.36052345918,320.48862783822,327.03195662575,328.04917632434,334.88072358477,335.92235492515,341.71789064962,342.78078913836,349.91912034749,351.00752840096,358.31717956585,359.43170941363,365.63284274659,366.77012764335,374.40803131735,375.5726110527,382.05221698715,383.2405741708,391.22147055517,392.4383479509,400.61078621746,401.85686830172,408.78994578219,410.06146948999,418.60090448096,419.90294514449,427.14736482575,428.47598794138,437.39890198442,438.75941205608,447.89647345742,449.28963835923,457.04105241293,458.46266117889,468.01003810189,469.46576276783,479.24227945773,480.73294151703,489.02683710225,490.54793493862,500.76348165392,502.32108537715,510.98743222773,512.57683571821,523.2511306012],description:"1/4-comma meantone, two 31-notes at 1/4-comma (Vicentino-like system)"},schulter_qcmlji24:{frequencies:[261.6255653006,262.43934012943,273.37431312998,274.22463192287,292.50627485027,293.41610276971,306.59245933664,312.977175335,327.03195662575,328.04917632434,349.91912034749,351.00752840096,365.63284274659,366.77012764335,391.22147055517,392.4383479509,408.78994578219,410.06146948999,437.39890198442,438.75941205608,458.46266117889,468.01003810189,489.02683710225,490.54793493862,523.2511306012],description:"24-note adaptive JI (Eb-G#/F'-A#') for Lasso's Prologue to _Prophetiae_"},schulter_qcmqd8_4:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.28772967674,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.22091428214,437.39890198442,465.24335632603,489.02683710225,523.2511306012],description:"F-C# in 1/4-comma meantone, other 5ths ~4.888 cents wide or (2048/2025)^(1/4)"},schulter_sq:{frequencies:[261.6255653006,271.31540105247,279.38237857051,289.72987407313,294.32876096318,305.22982618403,310.07474405997,325.94610833227,331.11985608357,343.38355445704,348.83408706747,361.75386806997,372.50983809402,386.30649876417,392.4383479509,406.97310157871,419.07356785577,434.59481110969,441.49314144476,457.84473927605,465.11211608996,488.9191624984,496.67978412536,515.07533168556,523.2511306012],description:'"Sesquisexta" tuning, two 12-tone Pyth. manuals a 7/6 apart. TL 16-5-2001'},schulter_tedorian:{frequencies:[261.6255653006,295.99553712036,309.28772789022,347.85054122562,393.54796334264,442.61656607198,462.49302735707,523.2511306012],description:"Eb Dorian in temperament extraordinaire -- neo-medieval style"},schulter_zarte84:{frequencies:[261.6255653006,272.52663052146,292.24684137387,308.87634556583,326.45210604021,350.07440004945,364.66083404534,391.04793957621,410.30971075781,436.81711699543,465.03699205118,487.94322738789,523.2511306012],description:"Temperament extraordinaire, Zarlino's 2/7-comma meantone (F-C#)"},schulter_zarte84n:{frequencies:[261.6255653006,272.46997760396,292.1447183254,308.81896225817,326.44489157977,350.01709816983,364.52535053201,391.11195868293,410.09013064752,436.73596474349,465.11312402839,488.01232708701,523.2511306012],description:"Zarlino temperament extraordinaire, 1024-tET mapping"},scotbag:{frequencies:[261.6255653006,290.69507255622,327.03195662575,356.76213450082,387.59343007496,436.04260883433,479.64686971777,523.2511306012],description:"Scottish bagpipe tuning"},scotbag2:{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Scottish bagpipe tuning 2"},scotbag3:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,441.49314144476,479.64686971777,523.2511306012],description:"Scottish bagpipe tuning 3"},scotbag4:{frequencies:[261.6255653006,293.15632631094,318.58319997217,348.2210758395,392.67530119805,428.21545238314,468.59347232539,523.2511306012],description:"Scottish Higland Bagpipe by Macdonald, Edinburgh. Helmholtz/Ellis p. 515, nr.52"},scottd1:{frequencies:[261.6255653006,275.93341798027,292.67158636845,310.42509491746,327.40170814054,349.22823143301,367.9112241576,391.5530240856,413.90012676351,437.52264545758,465.63764214343,490.54829628849,523.2511306012],description:"Dale Scott's temperament 1, TL 9-6-1999"},scottd2:{frequencies:[261.6255653006,276.1828093671,292.93610587951,310.70566022736,327.9937953665,349.3071136959,368.24374600687,391.64146650178,414.27421384356,438.21489534465,466.05849010807,491.32444638706,523.2511306012],description:"Dale Scott's temperament 2, TL 9-6-1999"},scottd3:{frequencies:[261.6255653006,276.40121172404,293.16775656083,310.95136287868,328.51274831708,349.22813057195,368.53494914961,391.77416758435,414.60181737882,438.75957425603,466.42704408487,491.93513777943,523.2511306012],description:"Dale Scott's temperament 3, TL 9-6-1999"},scottd4:{frequencies:[261.6255653006,276.60439543337,293.30494246724,310.98285414553,328.78580734933,349.37474066871,369.05201453919,391.83105388699,414.77686160481,439.10664961187,466.16991430388,492.5350487994,523.2511306012],description:"Dale Scott's temperament 4, TL 9-6-1999"},scottj:{frequencies:[261.6255653006,294.32876096318,336.37572681506,348.83408706747,392.4383479509],description:`Jeff Scott's "seven and five" tuning, fifth-repeating. TL 20-04-99`},scottj2:{frequencies:[261.6255653006,290.69507255622,299.00064605783,305.22982618403,313.95067836072,348.83408706747,366.27579142084,406.97310157871,418.60090448096,428.11456140098,436.04260883433,485.87604984397,523.2511306012,566.85539148463,581.39014511244,598.00129211566,610.45965236807,680.22646978156,719.47030457665,784.8766959018],description:`Jeff Scott's "just tritone/13" tuning. TL 17-03-2001`},secor12_1:{frequencies:[261.6255653006,275.03488264166,292.74290192225,310.07362690431,327.56128791316,349.21167447253,366.91716522699,391.37968062521,412.76363757129,437.92977184699,465.61556619611,490.01645577464,523.2511306012],description:"George Secor's 12-tone temperament ordinaire #1, proportional beating"},secor12_2:{frequencies:[261.6255653006,275.62199471997,292.79557634972,310.07474405997,327.35540669465,348.83408706747,367.49599295996,391.60840570078,413.43299207996,437.83150862942,465.11211608996,489.99465727995,523.2511306012],description:"George Secor's closed 12-tone well-temperament #2, with 7 just fifths"},secor12_3:{frequencies:[261.6255653006,274.49585366342,292.50627485027,309.76836826904,327.03195662575,349.57337698802,365.99447173417,391.22147055517,411.74378028931,437.39890198442,466.09783352473,489.02683710225,523.2511306012],description:"George Secor's closed 12-tone temperament #3 with 5 meantone, 3 just, and 2 wide fifths"},secor17htt1:{frequencies:[261.6255653006,266.21235100401,283.6936382117,294.88137067808,304.94368688875,319.75456524059,327.03195662575,348.50707605838,360.3992766165,372.69727792826,392.80658053205,399.69321489333,425.93975025566,435.63385416574,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #1 on C (5/4 & 7/4 exact)"},secor17htt2:{frequencies:[261.6255653006,266.21235100401,279.78524030783,294.88137067808,300.05119287674,319.75456524059,327.03195662575,348.50707605838,360.3992766165,372.69727792826,392.80658053205,399.69321489333,425.93975025566,442.73709545768,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #2 on Eo (5/4 & 7/4 exact)"},secor17htt3:{frequencies:[261.6255653006,270.55308473255,279.78524030783,294.88137067808,300.05119287674,319.75456524059,327.03195662575,343.70575469589,360.3992766165,368.60172104124,392.80658053205,399.69321489333,425.93975025566,442.73709545768,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #3 on G (5/4 & 7/4 exact)"},secor17htt4:{frequencies:[261.6255653006,270.55308473255,279.78524030783,294.88137067808,300.05119287674,319.75456524059,332.36439517321,343.70575469589,360.3992766165,368.60172104124,392.80658053205,399.69321489333,420.07165483694,442.73709545768,450.49910517366,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #4 on Bo (5/4 & 7/4 exact)"},secor17wt:{frequencies:[261.6255653006,271.90848849519,284.45827635845,296.12458543709,307.25838681362,320.91221742866,335.17278980765,347.77473997341,362.0378075073,378.74746489181,393.63374363584,408.43373030454,427.2847686483,445.53990619223,462.29147990415,482.0422296857,504.29062567056,523.2511306012],description:"George Secor's well temperament with 5 pure 11/7 and 3 near just 11/6"},secor19wt:{frequencies:[261.6255653006,272.32755795875,282.27948808054,292.18583194851,304.13791554835,314.37102040472,326.31582004031,339.6640167515,350.11094753355,364.43250202589,378.27942889874,391.0071187494,407.00156221801,421.24111755476,436.68033801788,454.54308187078,469.17957429271,487.6886112017,506.92782577841,523.2511306012],description:"George Secor's 19-tone well temperament with ten 5/17-comma fifths"},secor19wt1:{frequencies:[261.6255653006,272.32845615788,282.22605479514,292.18610873661,304.13920677667,314.3856167727,326.31643450984,339.6657766488,350.11078170334,364.43353349925,378.23315721313,391.00730395019,407.00309738029,421.33223555387,436.68095599763,454.54522431957,469.16941157468,487.689760539,506.89867708289,523.2511306012],description:"George Secor's 19-tone proportional-beating (5/17-comma) well temperament (v.1)"},secor19wt2:{frequencies:[261.6255653006,272.32845615788,282.22605479514,292.18610873661,304.13920677667,314.27577204952,326.31643450984,339.6657766488,350.11078170334,364.43353349925,378.23315721313,391.00730395019,407.00309738029,421.20165315727,436.68095599763,454.54522431957,469.03541436973,487.689760539,506.89867708289,523.2511306012],description:"George Secor's 19-tone proportional-beating (5/17-comma) well temperament (v.2)"},secor1_4tx:{frequencies:[261.6255653006,274.52656755164,292.65557420835,309.65910769439,327.20096538886,349.14957009195,366.50113643833,391.42429537222,412.04336447213,437.62002395673,465.5327601226,489.58458498887,523.2511306012],description:"George Secor's rational 1/4-comma temperament extraordinaire"},secor1_5tx:{frequencies:[261.6255653006,275.23833828784,292.86443876933,310.12174699459,327.84546895566,349.26796031009,366.98445105045,391.462133155,412.85750743176,438.21197504744,465.69061374678,490.54793493862,523.2511306012],description:"George Secor's 1/5-comma temperament extraordinaire (ratios supplied by G. W. Smith)"},secor1_5wt:{frequencies:[261.6255653006,275.62199471997,292.86443876933,310.07474405997,327.84546895566,348.83408706747,367.44664657419,391.462133155,413.43299207996,438.21197504744,465.11211608996,490.54793493862,523.2511306012],description:"George Secor's 1/5-comma well-temperament (ratios supplied by G. W. Smith)"},secor1_7wt:{frequencies:[261.6255653006,276.40791719395,293.28186156416,310.6264877857,328.77715667764,349.45479875891,368.54388959194,391.74026793015,414.61187579093,439.14616729155,465.93973167855,492.29203182992,523.2511306012],description:"George Secor's 1/7-comma well-temperament (ratios supplied by G. W. Smith)"},secor22_19p3:{frequencies:[261.6255653006,266.86058412305,272.32845615788,282.28026746552,292.18610873661,304.13920677667,314.37137994881,326.31643450984,339.6657766488,350.11078170334,357.11635499175,364.43353349925,378.28077924825,391.00730395019,407.00309738029,421.28573964817,436.68095599763,454.54522431957,469.17973147781,477.89781576412,487.689760539,506.93004530576,523.2511306012],description:"George Secor's 19+3 well temperament with ten ~5/17-comma (equal-beating) fifths and 3 pure 9:11. TL 28-6-2002,26-10-2006. Aux=1,10,19"},secor22_ji29:{frequencies:[261.6255653006,272.52663052146,283.42769574232,286.15296204753,294.32876096318,305.22982618403,316.13089140489,327.03195662575,340.65828815182,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,414.24047839262,425.14154361347,436.04260883433,441.49314144476,457.84473927605,479.64686971777,490.54793493862,501.44900015948,523.2511306012],description:"George Secor's 22-tone just intonation (29-limit otonality on 4/3)"},secor29htt:{frequencies:[261.6255653006,270.55308473255,276.71069203503,283.6936382117,290.1503157249,294.88137067808,304.94368688875,310.54087273367,319.75456524059,327.03195662575,332.36439517321,343.70575469589,348.50707605838,360.3992766165,368.60172104124,377.19539564757,387.3949548402,392.80658053205,406.21042497925,415.4555026381,425.93975025566,435.63385416574,442.73709545768,457.84473927605,464.24049278842,480.08189580921,491.0082387498,499.01438878341,516.04239079678,523.2511306012],description:"George Secor's 29-tone 13-limit high-tolerance temperament (5/4 & 7/4 exact)"},secor2_11wt:{frequencies:[261.6255653006,275.91396717201,292.9984614786,310.40321306851,328.14053952957,349.20361470207,367.88528956268,391.55148162785,413.87095075801,438.50612639837,465.60481960276,491.10222639053,523.2511306012],description:"George Secor's rational 2/11-comma well-temperament"},secor41htt:{frequencies:[261.6255653006,266.21235100401,270.55308473255,276.71069203503,279.78524030783,283.6936382117,290.1503157249,294.88137067808,300.05119287674,304.94368688875,310.54087273367,315.34936221801,319.75456524059,327.03195662575,332.36439517321,338.19136297459,343.70575469589,348.50707605838,354.61705516636,360.3992766165,368.60172104124,372.69727792826,377.90358994896,387.3949548402,392.80658053205,399.69321489333,406.21042497925,415.4555026381,420.07165483694,425.93975025566,435.63385416574,442.73709545768,450.49910517366,457.84473927605,464.24049278842,473.46789104304,480.08189580921,491.0082387498,499.01438878341,507.7630447553,516.04239079678,523.2511306012],description:"George Secor's 13-limit high-tolerance temperament superset (5/4 & 7/4 exact)"},secor5_23tx:{frequencies:[261.6255653006,275.02417915696,292.7420830065,310.0721322444,327.56084927797,349.21018850905,366.91927748105,391.38056264645,412.75664067387,437.92311604224,465.61358467873,490.0190422864,523.2511306012],description:"George Secor's rational 5/23-comma temperament extraordinaire"},secor5_23wt:{frequencies:[261.6255653006,275.62199471997,292.75872440224,310.07474405997,327.56278518065,348.83408706747,367.49599295996,391.3766908411,413.43299207996,437.81158306864,465.11211608996,489.99465727995,523.2511306012],description:"George Secor's rational 5/23-comma proportional-beating well-temperament"},secor7p:{frequencies:[261.6255653006,281.10327891957,302.03108525935,356.94582815655,383.52002471837,412.07263653985,442.75095666255,523.2511306012],description:"George Secor's pelog-like MOS with near just 11:13:15:19 tetrads (1979)"},secor_vrwt:{frequencies:[261.6255653006,276.32932769153,293.15777167588,310.55777256823,328.11844153148,349.04269216937,368.62018440632,392.00375398861,414.25255044712,438.65017260809,465.6191423793,491.6947801169,523.2511306012],description:"George Secor's Victorian rational well-temperament (based on Ellis #2)"},"secor_wt1-7":{frequencies:[261.6255653006,276.2204353545,293.2843722634,310.74798946314,328.77415062671,349.45463702831,368.55847674989,391.74146894101,414.33065282463,439.14535139523,466.13275379077,492.28548658217,523.2511306012],description:"George Secor's 1/7-comma well-temperament"},secor_wt10:{frequencies:[261.6255653006,276.4188590209,293.2843722634,310.62634254146,328.77415062671,349.45463500978,368.55847887877,391.7414712038,414.6282883241,439.14535393183,465.93951357928,492.28548942572,523.2511306012],description:"George Secor's 12-tone well-temperament, proportional beating"},"secor_wtpb-24a":{frequencies:[261.6255653006,275.62199471997,292.84836938997,310.07474405997,327.30111872997,348.83408706747,367.49599295996,391.90002374246,413.43299207996,437.54991661796,465.11211608996,490.95167809495,523.2511306012],description:"George Secor's 24-triad proportional-beating well-temperament (24a)"},"secor_wtpb-24b":{frequencies:[261.6255653006,275.62199471997,292.56126314547,310.07474405997,327.51644841334,348.83408706747,367.49599295996,391.46936437571,413.43299207996,437.76524630133,465.11211608996,490.37746560595,523.2511306012],description:"George Secor's 24-triad proportional-beating well-temperament (24b)"},segah:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,440,479.82340237272,523.2511306012],description:"Arabic SEGAH (Dudon) Two 4 + 3 + 3 tetrachords"},segah2:{frequencies:[261.6255653006,293.66476791741,318.39923223688,349.22823143301,391.99543598175,425.01198472693,466.16376151809,523.2511306012],description:"Iranian mode Segah from C"},segah_rat:{frequencies:[261.6255653006,294.32876096318,319.76457981184,348.83408706747,392.4383479509,441.49314144476,479.64686971777,523.2511306012],description:"Rationalized Arabic Seg\xEF\xBF\xBDh\r"},seidel974:{frequencies:[261.6255653006,262.64754016506,266.73543962288,267.75741448733,268.77938935179,273.88926367407,274.91123853852,276.95518826743,277.97716313189,280.0211128608,283.08703745416,284.10901231862,285.13098718308,287.17493691199,289.2188866409,290.24086150535,294.32876096318,457.84473927605,461.93263873387,463.97658846278,468.0644879206,474.19633710734,476.24028683625,482.37213602298,486.4600354808,488.50398520971,492.59188466754,498.72373385427,506.89953276991,513.03138195665,515.07533168556,519.16323114338,523.2511306012],description:"Dave Seidel, Base 9:7:4 Symmetry, scale for Passacaglia and Fugue State (2005)"},seikilos:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,441.49314144476,457.84473927605,504.56359022259,523.2511306012],description:"Seikilos Tuning"},sekati1:{frequencies:[261.6255653006,285.2147362526,318.99014578736,340.97107458785,383.86043226246,424.60539155549,468.56721805116,523.2511306012],description:"Gamelan sekati from Sumenep, East-Madura. 1/1=244 Hz."},sekati2:{frequencies:[261.6255653006,288.87830434024,317.34219433319,357.31261688157,393.64955765984,420.29657220667,469.35141988267,523.2511306012],description:"Gamelan Kyahi Sepuh from kraton Solo. 1/1=216 Hz."},sekati3:{frequencies:[261.6255653006,291.90272733088,308.20569577938,369.53649673407,403.69531865382,425.43272843735,475.11832680028,523.2511306012],description:"Gamelan Kyahi Henem from kraton Solo. 1/1=168.5 Hz."},sekati4:{frequencies:[261.6255653006,271.36353278789,288.89182053123,342.12578909252,379.12979967788,410.29128883625,439.50493264224,523.2511306012],description:"Gamelan Kyahi Guntur madu from kraton Jogya. 1/1=201.5 Hz."},sekati5:{frequencies:[261.6255653006,274.79663866182,311.31645994273,355.61927540077,375.97459751383,397.52718524897,433.44837981883,523.2511306012],description:"Gamelan Kyahi Naga Ilaga from kraton Jogya. 1/1=218.5 Hz."},sekati6:{frequencies:[261.6255653006,284.57524936299,310.80330758934,358.01400474517,390.79902205709,427.51850178351,468.18764285778,523.2511306012],description:"Gamelan Kyahi Munggang from Paku Alaman, Jogya. 1/1=199.5 Hz."},sekati7:{frequencies:[261.6255653006,286.67481979642,318.21831168293,371.10013445627,390.58282835584,422.12643845206,463.87524473877,523.2511306012],description:"Gamelan of Sultan Anom from Cheribon. 1/1=282 Hz."},sekati8:{frequencies:[261.6255653006,287.04067548259,315.94410704802,350.82750428678,381.72407804086,425.57749367468,447.5043967797,523.2511306012],description:"The old Sultans-gamelan Kyahi Suka rame from Banten. 1/1=262.5 Hz."},sekati9:{frequencies:[261.6255653006,280.44107893528,310.90439774384,346.74342440827,376.31071188751,412.14996063869,455.1567650372,523.2511306012],description:"Gamelan Sekati from Katjerbonan, Cheribon. 1/1=292 Hz."},selisir:{frequencies:[261.6255653006,278.78833362316,320.24370022528,380.8360868427,417.71053321823,524.76452349887],description:"Gamelan semara pagulingan, Bali. Pagan Kelod"},selisir2:{frequencies:[261.6255653006,279.59466973861,299.66214729245,376.46181130035,408.17001145418,520.23742585195],description:"Gamelan semara pagulingan, Bali. Kamasan"},selisir3:{frequencies:[261.6255653006,284.98499077387,305.5412851438,378.42269266694,406.45400323486,523.2511306012],description:"Gamelan gong, Pliatan, Bali. 1/1=280 Hz, McPhee, 1966"},selisir4:{frequencies:[261.6255653006,277.23130136276,295.59098907682,376.373620257,399.32323124828,523.2511306012],description:"Gamelan gong, Apuan, Bali. 1/1=285 Hz. McPhee, 1966"},selisir5:{frequencies:[261.6255653006,275.89605068063,309.19384990071,383.40037296022,406.23315014465,523.2511306012],description:"Gamelan gong, Sayan, Bali. 1/1=275 Hz. McPhee, 1966"},selisir6:{frequencies:[261.6255653006,282.63199755101,312.23197007902,396.25769882774,415.35445602102,523.2511306012],description:"Gamelan gong, Gianyar, Bali. 1/1=274 Hz. McPhee, 1966"},semipor1:{frequencies:[261.6255653006,290.69507255622,313.95067836072,327.03195662575,353.19451315581,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"First 16/15&250/243 = 648/625&250/243 scale"},semisixths:{frequencies:[261.6255653006,264.19830736984,270.23055453212,272.88791531122,275.57140613391,281.86332858923,284.63508234504,291.13394747727,293.99686553194,300.70948316519,303.66656221886,306.65272199551,313.65430163898,316.7386758187,323.97054074552,327.15636145846,330.37351240232,337.91669168384,341.23965429995,349.03093233441,352.46319080675,360.51072564419,364.05587272954,367.63587953306,376.02984347246,379.72760059524,388.39764380609,392.21702191873,396.07395857323,405.11722624758,409.10101938242,418.44172684717,422.55654641528,426.71183224275,436.45463212963,440.74658728358,450.80983509489,455.24295209046,465.63718490681,470.21611194415,474.84006394159,485.68174342829,490.45777940536,501.656046885,506.58917188228,511.57080469686,523.2511306012],description:"Semisixths temperament, 13-limit, g=443.0"},"scalamakesrc2\\semisixths_8":{frequencies:[261.6255653006,282.20554108354,304.40437778605,337.94858305883,364.53227585368,393.20709362444,436.53702313055,470.87587163898,522.76460573117],description:"8-note MOS of Semisixths [7, 9, 13, -2, 1, 5] temperament, TOP tuning"},semisuper:{frequencies:[261.6255653006,267.78942821112,272.60119889127,277.49943141001,284.03728045772,289.141002119,295.95312328758,301.27095467792,308.36885759663,313.90977919898,321.30545111289,327.07882560827,334.78475653951,340.80033382945,348.82954357113,355.09748450744,363.46353108469,369.99442271164,378.7114412363,385.5163125912,392.44345945086,401.68937424288,408.90712663484,418.54092077997,426.06147005461,436.09942062666,443.93546710474,454.39452662825,462.55931114028,473.45714317395,481.96445416288,493.31947147471,502.18367855499,514.01505508798,523.2511306012],description:"Semisuper temperament, g=71.146064, p=600, 5-limit"},semithirds:{frequencies:[13.75,13.81661017188,13.90316796691,13.99026794524,14.07791366516,14.14611237417,14.23473442257,14.3239115844,14.41364750281,14.48347263281,14.57420816344,14.665512046,14.73655738771,14.82887834882,14.92177776458,15.01525908647,15.08799873642,15.18252139242,15.27763629821,15.37334698758,15.4478213521,15.54459820959,15.64198144101,15.73997475533,15.81622511342,15.91530993122,16.01501558389,16.11534586889,16.19341466585,16.29486248479,16.39694594444,16.47637891809,16.57959953527,16.68346670883,16.78798468204,16.86931199442,16.97499424439,17.08133847,17.18834901569,17.27161584349,17.37981843193,17.48869878298,17.59826134469,17.68351394199,17.7942969746,17.90577393328,18.01794937217,18.10523509614,18.21866011204,18.33279560295,18.42160666689,18.53701356879,18.6531435747,18.77000099922,18.86093005309,18.97908920954,19.09798871479,19.21763298632,19.3107305405,19.43170758802,19.55344264036,19.67594033402,19.77125798984,19.89512013023,20.01975835255,20.14517740386,20.24276822054,20.36958425827,20.49719488615,20.62560496443,20.72552315291,20.85536353332,20.98601745346,21.08768161561,21.21979095359,21.352727802,21.48649759166,21.59058626784,21.72584618454,21.86195334633,21.99891331359,22.10548432428,22.24396995552,22.38332303719,22.52354926226,22.63266180681,22.7744500803,22.91712649141,23.06069686887,23.17241155847,23.3175812365,23.46366023269,23.57732716458,23.72503340608,23.87366512928,24.02322785632,24.1396055475,24.29083432682,24.44301065897,24.59614033986,24.71529329517,24.87012861873,25.02593409262,25.18271565096,25.30471019771,25.46323807533,25.62275923969,25.78327976642,25.90818367164,26.07049216435,26.23381763196,26.36090411207,26.52604894185,26.69222821075,26.85944870765,26.98956598001,27.15864922771,27.32879158412,27.5],description:"Semithirds temperament, g=193.199615, 5-limit"},sensisynch19:{frequencies:[261.6255653006,272.4389540986,281.73678149918,293.38139793239,303.39395317428,313.74821628003,326.71591476706,337.86611241253,351.83064080634,363.83795665907,376.25506171692,391.80626469239,405.17787315281,421.92450060765,436.32398762558,454.35793210906,469.86431365505,485.89989602801,505.98288939536,523.2511306012],description:"Sensi[19] in synch (brat=-1) tuning, generator ~162/125 satisfies g^9-g^7-4=0"},serre_enh:{frequencies:[261.6255653006,265.7783520514,279.06726965397,348.83408706747,392.4383479509,398.6675280771,418.60090448096,523.2511306012],description:"Dorian mode of the Serre's Enharmonic"},"sev-elev":{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,336.37572681506,359.73515228832,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'"Seven-Eleven Blues" of Pitch Palette'},sha:{frequencies:[261.6255653006,266.96486255163,280.31310567921,284.82183961519,290.63452941521,294.32876096318,300.33547037059,305.16625703708,320.42456924675,326.96384715385,343.31203882349,348.83408706747,355.95315006884,373.75080757229,392.4383479509,400.44729382745,406.8883429195,420.46965851882,427.23275920923,435.9517939049,457.74938532681,480.63685362987,490.44577048562,498.33441009638,523.2511306012],description:"Three chains of sqrt(3/2) separated by 10/7"},shahin:{frequencies:[261.6255653006,277.01530443593,282.55561052465,294.32876096318,310.50067090621,317.47821407264,328.55303549378,348.83408706747,357.66532977804,371.78369805875,376.74081403286,392.4383479509,415.52295665389,428.11456140098,441.49314144476,463.20591889287,478.90781444856,495.71159741166,523.2511306012],description:"Mohajeri Shahin Iranian style scale, TL 9-4-2006"},shahin_wt:{frequencies:[261.6255653006,276.93928561067,294.25491037444,311.47852302926,329.62755691287,348.92163548373,370.73795561568,392.4383479509,415.30469757995,439.61371330969,467.10055427519,494.44133512215,523.2511306012],description:"Mohajeri Shahin, well temperament, TL 28-12-2006"},shalfun:{frequencies:[261.6255653006,269.43930514995,277.46904793785,285.74220762407,294.32876096318,302.80736724606,311.45900631024,320.30554027987,329.50323085718,338.98103822311,348.83408706747,359.12912189513,369.78878487717,380.87868001252,392.4383479509,404.24222079821,416.2697936366,428.68354137408,441.49314144476,454.4477424016,467.68960547122,481.19471271032,494.94053216156,508.90014647073,523.2511306012],description:"d'Erlanger vol.5, p.40. After Alexandre ^Salfun (Chalfoun)"},"sharm1c-conm":{frequencies:[261.6255653006,305.22982618403,318.50068819203,332.97799220076,406.97310157871,430.91269578922,457.84473927605,523.2511306012],description:"Subharm1C-ConMixolydian"},"sharm1c-conp":{frequencies:[261.6255653006,313.95067836072,330.47439827444,348.83408706747,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Subharm1C-ConPhryg"},"sharm1c-dor":{frequencies:[261.6255653006,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,479.64686971777,547.03527290125,523.2511306012],description:"Subharm1C-Dorian"},"sharm1c-lyd":{frequencies:[261.6255653006,309.19384990071,323.91736656265,340.11323489078,382.37582620857,377.90359432309,485.87604984397,503.87145909745,523.2511306012],description:"Subharm1C-Lydian"},"sharm1c-mix":{frequencies:[261.6255653006,305.22982618403,318.50068819203,332.97799220076,366.27579142084,457.84473927605,488.36772189445,523.2511306012],description:"Subharm1C-Mixolydian"},"sharm1c-phr":{frequencies:[261.6255653006,313.95067836072,330.47439827444,348.83408706747,392.4383479509,483.00104363188,502.32108537715,523.2511306012],description:"Subharm1C-Phrygian"},"sharm1e-conm":{frequencies:[261.6255653006,318.50068819203,325.57848126297,332.97799220076,430.91269578922,443.97065626768,457.84473927605,523.2511306012],description:"Subharm1E-ConMixolydian"},"sharm1e-conp":{frequencies:[261.6255653006,330.47439827444,339.40613876835,348.83408706747,448.50096908674,465.11211608996,483.00104363188,523.2511306012],description:"Subharm1E-ConPhrygian"},"sharm1e-dor":{frequencies:[261.6255653006,338.57426097725,348.83408706747,359.73515228832,383.71749577421,411.12588832951,500.50108144463,511.62332769895,523.2511306012],description:"Subharm1E-Dorian"},"sharm1e-lyd":{frequencies:[261.6255653006,323.91736656265,331.81779013735,340.11323489078,382.37582620857,377.90359432309,503.87145909745,513.37846775967,523.2511306012],description:"Subharm1E-Lydian"},"sharm1e-mix":{frequencies:[261.6255653006,318.50068819203,325.57848126297,332.97799220076,366.27579142084,488.36772189445,505.20798816668,523.2511306012],description:"Subharm1E-Mixolydian"},"sharm1e-phr":{frequencies:[261.6255653006,330.47439827444,339.40613876835,348.83408706747,392.4383479509,502.32108537715,512.57253609913,523.2511306012],description:"Subharm1E-Phrygian"},"sharm2c-15":{frequencies:[261.6255653006,327.03195662575,341.25073734861,356.76213450082,392.4383479509,461.69217405988,490.54793493862,523.2511306012],description:"Subharm2C-15-Harmonia"},"sharm2c-hypod":{frequencies:[261.6255653006,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,465.11211608996,492.47165233054,523.2511306012],description:"SHarm2C-Hypodorian"},"sharm2c-hypol":{frequencies:[261.6255653006,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,475.68284600109,498.33441009638,523.2511306012],description:"SHarm2C-Hypolydian"},"sharm2c-hypop":{frequencies:[261.6255653006,336.37572681506,348.83408706747,362.25078272391,376.74081403286,392.4383479509,470.92601754108,495.71159741166,523.2511306012],description:"SHarm2C-Hypophrygian"},"sharm2e-15":{frequencies:[261.6255653006,341.25073734861,348.83408706747,356.76213450082,392.4383479509,490.54793493862,506.37206187213,523.2511306012],description:"Subharm2E-15-Harmonia"},"sharm2e-hypod":{frequencies:[261.6255653006,334.88072358477,341.71502406609,348.83408706747,364.00078650518,380.54627680087,492.47165233054,507.3950357345,523.2511306012],description:"SHarm2E-Hypodorian"},"sharm2e-hypol":{frequencies:[261.6255653006,327.03195662575,337.58137458142,348.83408706747,373.75080757229,402.50086969323,498.33441009638,510.48890790361,523.2511306012],description:"SHarm2E-Hypolydian"},"sharm2e-hypop":{frequencies:[261.6255653006,348.83408706747,355.41586229515,362.25078272391,376.74081403286,392.4383479509,495.71159741166,509.10920815252,523.2511306012],description:"SHarm2E-Hypophrygian"},sherwood:{frequencies:[261.6255653006,279.50101530337,292.73346657716,312.73435005323,327.54017122074,349.91920725962,366.48547573919,391.52543233055,418.27599117656,438.07873640926,468.01000025525,490.16733894289,523.65750116998],description:"Sherwood's improved meantone temperament"},shrutar:{frequencies:[261.6255653006,269.80136421624,277.49581689502,285.40970760065,294.32876096318,304.37698984459,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,368.95121675679,379.48299988042,392.4383479509,405.83598431812,417.42065019394,428.11456140098,441.49314144476,457.84473927605,470.92601754108,490.54793493862,505.97733342682,523.2511306012],description:"Paul Erlich's Shrutar tuning (from 9th fret) tempered with Dave Keenan"},shrutar_temp:{frequencies:[261.6255653006,269.67683152447,277.97586744827,286.53029793775,295.34798250635,304.4370214407,313.80576690868,327.74897996102,337.83512841993,348.23166805304,358.94815083964,369.99442271164,381.38063259971,393.11724175776,405.21503337437,417.68512248001,430.53896367224,443.78837151315,463.50705251482,477.77102045752,492.47394780842,507.62934310616,523.2511306012],description:"Shrutar temperament, 11-limit, g=52.474, 1/2 oct."},shrutart:{frequencies:[261.6255653006,269.83675183105,278.27349931787,286.14641333958,294.32706056425,305.2349557921,313.94319125793,327.02936607233,337.2932679302,348.82502010853,358.79758764604,369.99442271164,381.540672377,392.44854854484,405.86600994967,418.6042204156,436.0530078362,448.49343183014,465.11480315564,478.41198231361,491.94721442498,507.32849364948,523.2511306012],description:"Paul Erlich's 'Shrutar' tuning tempered by Dave Keenan, TL 29-12-2000"},siamese:{frequencies:[261.6255653006,269.26067151764,288.95340229325,296.22023396764,319.13574119147,352.26720984209,362.5475414329,388.79334481031,400.18585940536,429.40436513853,443.77760270734,473.98350631811,523.2511306012],description:"Siamese Tuning, after Clem Fortuna's Microtonal Guide"},silbermann1:{frequencies:[261.6255653006,275.15551885617,293.66476791741,312.53552595124,327.77163799145,349.82028288879,367.9112241576,391.99543598175,411.56972129721,438.75957425603,467.74568907204,491.10256480205,523.2511306012],description:"Gottfried Silbermann's temperament nr. 1"},silbermann2:{frequencies:[261.6255653006,275.00020270933,293.00227310437,312.18279369479,328.14198392915,349.6228209638,367.49599295996,391.5530240856,411.56972129721,438.51190905657,467.21778431035,491.10256480205,523.2511306012],description:"Gottfried Silbermann's temperament nr. 2, 1/6 Pyth. comma meantone"},silbermann2a:{frequencies:[261.6255653006,275.00020270933,293.00227310437,310.77584116741,328.14198392915,349.6228209638,367.49599295996,391.5530240856,411.56972129721,438.51190905657,467.21778431035,491.10256480205,523.2511306012],description:"Modified Silbermann's temperament nr. 2, also used by Hinsz in Midwolda"},silver:{frequencies:[261.6255653006,277.18807786937,293.58315284916,311.09098010692,329.53543886896,349.23174545031,369.98176232374,391.84186131702,415.18563115404,439.77824302677,466.03998256716,493.70667148145,523.2511306012],description:"Equal beating chromatic scale, A.L.Leigh Silver JASA 29/4, 476-481, 1957"},silver_10:{frequencies:[261.6255653006,270.26884019355,294.27266239927,320.41022551991,330.99364634362,360.39280035711,392.40094712608,405.36462386145,441.36692569059,480.56953386201,523.2511306012],description:"Ten-tone MOS from 350.9 cents"},silver_11:{frequencies:[261.6255653006,277.73657748574,294.83971256733,315.81001885226,335.25773244276,355.90304440354,381.21644531515,404.69191411574,429.61301214396,460.16899244324,488.50639225338,523.2511306012],description:"Eleven-tone MOS from 1+sqr(2), 1525.864 cents"},silver_11a:{frequencies:[261.6255653006,272.21316796874,283.22923537857,314.22802528801,326.94437231289,340.17533123945,377.40674067136,392.67983758722,408.5710143206,453.28817432381,471.63208149661,523.2511306012],description:"Eleven-tone MOS from 317.17 cents"},silver_11b:{frequencies:[261.6255653006,281.48899567641,302.85877036442,316.87090334834,340.92873240472,366.81310701257,383.78194911277,412.91987382947,444.27004083312,464.82473992747,500.11279777071,523.2511306012],description:"Eleven-tone MOS from 331.67 cents"},silver_7:{frequencies:[261.6255653006,277.73649727228,315.81000061035,335.2576162513,381.21640127531,404.69175048432,460.16888612163,523.2511306012],description:"Seven-tone MOS from 1+sqr(2), 1525.864 cents"},silver_8:{frequencies:[261.6255653006,288.49477506296,306.46277751246,337.93681424842,358.98416079003,395.852196628,420.50662316693,492.57276348379,523.2511306012],description:"Eight-tone MOS from 273.85 cents"},silver_9:{frequencies:[261.6255653006,294.18258755347,307.6617709921,345.94759796409,361.79860795042,406.82129262791,425.46148093979,478.40645551359,500.32661205896,523.2511306012],description:"Nine-tone MOS from 280.61 cents"},silvermean:{frequencies:[261.6255653006,286.15296204753,327.03195662575,345.42750418595,392.4383479509,416.96574469783,474.19633710734,523.2511306012],description:"First 6 approximants to the Silver Mean, 1+ sqr(2) reduced by 2/1"},simonton:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,465.11211608996,494.18162334558,523.2511306012],description:"Simonton Integral Ratio Scale, JASA 25/6 (1953): A new integral ratio scale"},sims:{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,316.13089140489,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Ezra Sims' 18-tone mode"},sims2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Sims II"},sims_24:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.97716313189,283.42769574232,286.15296204753,294.32876096318,302.50455987882,305.22982618403,310.68035879446,316.13089140489,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"See his article, Reflections on This and That, 1991 p.93-106"},sin:{frequencies:[261.6255653006,275.08939827539,302.09917071192,334.63165645627,369.99442271164,407.01712569342,445.10399729103,483.9175316883,523.2511306012,562.97086325858,602.98541169118,643.23087116255,683.66056756853,724.23972686276,764.94197926416,805.74682982871,846.63811574624,887.6028851904,928.63083777952,969.71346974542,1010.84345850104,1052.01529432917],description:"1/sin(2pi/n), n=4..25"},sinemod12:{frequencies:[261.6255653006,270.6035983646,282.0485507085,292.16840832754,301.82804372114,314.42520179993,326.24260278214,336.76433478807,350.4641458176,364.21811789193,375.86233664064,390.61306119732,406.50371126161,419.61372202861,435.38454314112,453.55584308858,468.551249676,485.36279478778,505.89080731022,523.2511306012],description:"Sine modulated F=12, A=-.08203754"},sinemod8:{frequencies:[261.6255653006,272.43905323978,281.98404270447,290.99567087708,301.68076007415,314.40050256998,326.99158834066,337.97331861211,348.96407538813,362.38276875396,377.76595534172,392.29216556304,405.04934945717,418.6525822649,435.418746849,453.77727371169,470.43955130022,485.47382867757,502.48255971303,523.2511306012],description:"Sine modulated F=8, A=.11364155. Deviation minimal3/2, 4/3, 5/4, 6/5, 5/3, 8/5"},singapore:{frequencies:[261.6255653006,291.46787011619,321.35550581422,354.51258839996,385.70651737906,428.95813651779,462.1422075194,523.2511306012],description:"An observed xylophone tuning from Singapore"},sintemp6:{frequencies:[261.6255653006,277.18263097687,292.42974339757,312.08834713741,327.870830746,349.91196330865,369.15973155124,391.11111150212,416.11779639122,437.6550518996,467.60417912673,491.80624587316,523.2511306012],description:"Sine modulated fifths, A=1/6 Pyth, one cycle, f0=-90 degrees"},sintemp6a:{frequencies:[261.6255653006,276.17281343288,293.21211353711,310.64741311165,328.42667470471,349.22823143301,368.43838932195,391.77416758435,414.19655102258,438.82595961933,465.90062756558,491.80624587316,523.2511306012],description:"Sine modulated fifths, A=1/12 Pyth, one cycle, f0= D-A"},sintemp_19:{frequencies:[261.6255653006,272.86445838226,281.30973389888,292.50627485027,304.14845459111,313.56198179795,327.03195662575,338.65502209741,350.02113164026,365.30494475029,376.98581738134,391.19763056219,407.47965586966,419.94695489748,437.42555500456,453.91586039553,468.43012697388,488.88431353627,505.29249383438,523.2511306012],description:"Sine modulated thirds, A=7.366 cents, one cycle over fifths, f0=90 degrees"},sintemp_7:{frequencies:[261.6255653006,291.06608881088,319.67397341855,351.09362859375,390.60192440975,432.07134328681,473.03044489876,523.2511306012],description:"Sine modulated fifths, A=8.12 cents, one cycle, f0=90 degrees"},slen_pel:{frequencies:[261.6255653006,261.6255653006,283.17034563789,298.45295203849,338.50336851425,364.68988616898,346.01554587335,389.06292924114,398.38689497567,420.13030572059,455.51656649021,493.31307433255,523.2511306012],description:"Pelog white, Slendro black"},slen_pel16:{frequencies:[261.6255653006,261.6255653006,285.30470202322,285.30470202322,297.93622032612,311.12698372208,339.28638158975,386.37547528213,386.37547528213,403.48177901006,421.34544350737,440,523.2511306012],description:"16-tET Slendro and Pelog"},slen_pel23:{frequencies:[261.6255653006,261.6255653006,295.14355885465,295.14355885465,286.38154466424,343.14246862785,313.47984535337,398.94762483098,398.94762483098,387.10394860926,450.05828708186,423.73315704439,523.2511306012],description:"23-tET Slendro and Pelog"},slen_pel_jc:{frequencies:[261.6255653006,261.6255653006,299.00064605783,299.00064605783,279.06726965397,341.71502406609,348.83408706747,392.4383479509,392.4383479509,392.4383479509,448.50096908674,418.60090448096,523.2511306012],description:"Slendro/JC PELOG S1c,P1c#,S2d,eb,P2e,S3f,P3f#,S4g,ab,P4a,S5bb,P5b"},slen_pel_schmidt:{frequencies:[261.6255653006,261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,392.4383479509,457.84473927605,457.84473927605,490.54793493862,523.2511306012],description:"Dan Schmidt (Pelog white, Slendro black)"},slendro:{frequencies:[261.6255653006,298.45295203849,346.01554587335,398.38689497567,455.51656649021,523.2511306012],description:"Observed Javanese Slendro scale, Helmholtz/Ellis p. 518, nr.94"},slendro10:{frequencies:[261.6255653006,304.21577360535,342.24274530602,391.67780832635,463.92905474816,523.2511306012],description:"Low gender from Singaraja (banjar Lod Peken), Bali. 1/1=172 Hz. McPhee, 1966."},slendro11:{frequencies:[261.6255653006,299.11221417218,343.62760815601,387.36203100102,452.96366529656,523.2511306012],description:"Low gender from Sawan, Bali. 1/1=167.5 Hz. McPhee, 1966."},slendro2:{frequencies:[261.6255653006,299.13295468097,343.58614396263,395.91119354826,450.08870388136,523.2511306012],description:"Gamelan slendro from Ranchaiyuh, distr. Tanggerang, Batavia. 1/1=282.5 Hz"},slendro3:{frequencies:[261.6255653006,298.44694115772,339.14425131559,391.46936437571,453.48431318771,522.28214737536],description:"Gamelan kodok ngorek. 1/1=270 Hz"},slendro4:{frequencies:[261.6255653006,294.5074669504,344.54514337401,400.3014113889,467.49486258632,523.2511306012],description:"Low gender in saih lima from Kuta, Bali. 1/1=183 Hz. McPhee, 1966"},slendro5_1:{frequencies:[261.6255653006,299.00064605783,336.37572681506,392.4383479509,448.50096908674,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7; from Lou Harrison"},slendro5_2:{frequencies:[261.6255653006,305.22982618403,348.83408706747,392.4383479509,457.84473927605,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7, no. 2"},slendro5_4:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7, no. 4"},slendro6:{frequencies:[261.6255653006,295.05549864457,341.56671025356,398.25224940202,461.478427683,523.2511306012],description:"Low gender from Klandis, Bali. 1/1=180 Hz. McPhee, 1966"},slendro8:{frequencies:[261.6255653006,309.85821141747,350.78288084997,406.32350365121,467.71050779996,523.2511306012],description:"Low gender from Tabanan, Bali. 1/1=179 Hz. McPhee, 1966."},slendro9:{frequencies:[261.6255653006,299.00064605783,336.37572681506,388.70083987518,448.50096908674,523.2511306012],description:"Low gender from Singaraja (banjar Panataran), Bali. 1/1=175 Hz. McPhee, 1966."},slendro_7_1:{frequencies:[261.6255653006,299.00064605783,341.71502406609,392.4383479509,448.50096908674,523.2511306012],description:"Septimal Slendro 1, From HMSL Manual, also Lou Harrison, Jacques Dudon"},slendro_7_2:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,448.50096908674,523.2511306012],description:"Septimal Slendro 2, From Lou Harrison, Jacques Dudon's APTOS"},slendro_7_3:{frequencies:[261.6255653006,294.32876096318,336.37572681506,392.4383479509,448.50096908674,523.2511306012],description:'Septimal Slendro 3, Harrison, Dudon, called "MILLS" after Mills Gamelan'},slendro_7_4:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:'Septimal Slendro 4, from Lou Harrison, Jacques Dudon, called "NAT"'},slendro_7_5:{frequencies:[261.6255653006,305.22982618403,343.38355445704,400.61414686654,467.3831713443,523.2511306012],description:"Septimal Slendro 5, from Jacques Dudon"},slendro_7_6:{frequencies:[261.6255653006,299.00064605783,341.71502406609,390.53145607553,455.62003208812,523.2511306012],description:"Septimal Slendro 6, from Robert Walker"},slendro_a1:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,457.84473927605,523.2511306012],description:`Dudon's Slendro A1, "Seven-Limit Slendro Mutations", 1/1 8:2'94 hexany 1.3.7.21`},slendro_a2:{frequencies:[261.6255653006,299.00064605783,341.71502406609,398.6675280771,448.50096908674,523.2511306012],description:`Dudon's Slendro A2 from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_alv:{frequencies:[261.6255653006,299.00064605783,348.83408706747,406.97310157871,465.11211608996,523.2511306012],description:"Bill Alves, slendro for Gender Barung, 1/1 vol.9 no.4, 1997. 1/1=282.86"},slendro_ang:{frequencies:[261.6255653006,299.00064605783,340.82516392797,388.43396508487,445.83123341082,523.2511306012],description:"Gamelan Angklung Sangsit, North Bali. 1/1=294 Hz"},slendro_av:{frequencies:[261.6255653006,298.97057995496,344.02264297658,395.86362945285,454.20288100724,525.67465946865],description:"Average of 30 measured slendro gamelans, W. Surjodiningrat et al., 1993."},slendro_dudon:{frequencies:[261.6255653006,305.22982618403,348.83408706747,399.70572476481,457.84473927605,523.2511306012],description:'Dudon\'s Slendro from "Fleurs de lumie`re"'},slendro_gum:{frequencies:[261.6255653006,305.03156112838,348.43777142572,394.8168394034,470.92601754108,525.62941881859],description:"Gumbeng, bamboo idiochord from Banyumas. 1/1=440 Hz"},slendro_ky1:{frequencies:[261.6255653006,297.58776037991,344.33874539242,394.68595744625,449.52853279627,523.2511306012],description:"Kyahi Kanyut Me`sem slendro, Mangku Nagaran, Solo. 1/1=291 Hz"},slendro_ky2:{frequencies:[261.6255653006,302.42139140287,345.87786599062,395.54249276388,453.1886900261,523.2511306012],description:"Kyahi Pengawe' sari, Paku Alaman, Jogya. 1/1=295 Hz"},slendro_laras:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012,598.00129211566,697.66817413493],description:'Lou Harrison, gamelan "Si Betty"'},slendro_m:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:`Dudon's Slendro M from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_madu:{frequencies:[261.6255653006,300.52885648597,345.61604384578,394.49404533893,447.94973572445,522.94897617031],description:"Sultan's gamelan Madoe kentir, Jogjakarta, Jaap Kunst"},slendro_mat:{frequencies:[261.6255653006,261.6255653006,299.00064605783,299.00064605783,341.71502406609,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,455.62003208812,457.84473927605,523.2511306012],description:`Dudon's Slendro Matrix from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_pa:{frequencies:[261.6255653006,304.19649364034,353.69443592699,411.24653512154,478.16333951147,523.2511306012],description:'"Blown fifth" primitive slendro, von Hornbostel'},slendro_pas:{frequencies:[261.6255653006,300.35531433711,343.03050002254,393.12919962609,450.54468214486,523.2511306012],description:"Gamelan slendro of regent of Pasoeroean, Jaap Kunst"},slendro_pb:{frequencies:[261.6255653006,304.72408298441,342.83241505062,399.30842833955,449.24533531117,523.2511306012],description:'"Blown fifth" medium slendro, von Hornbostel'},slendro_pc:{frequencies:[261.6255653006,299.48910562989,342.83241505062,392.44854854484,449.24533531117,523.2511306012],description:'"Blown fifth" modern slendro, von Hornbostel'},slendro_pliat:{frequencies:[261.6255653006,299.73468146833,339.98478643783,393.08060743874,447.03290350508,523.2511306012,599.46936293666,679.96957287566,786.16121487749,894.06580701017],description:"Gender wayang from Pliatan, South Bali (Slendro), 1/1=305.5 Hz"},slendro_q13:{frequencies:[261.6255653006,307.00725675226,360.2608752926,400.8015646157,470.32478922042,523.2511306012],description:"13-tET quasi slendro, Blackwood"},slendro_s1:{frequencies:[261.6255653006,299.00064605783,348.83408706747,398.6675280771,457.84473927605,523.2511306012],description:`Dudon's Slendro S1 from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_s2:{frequencies:[261.6255653006,299.00064605783,341.71502406609,398.6675280771,455.62003208812,523.2511306012],description:"Dudon's Slendro S2"},slendro_udan:{frequencies:[261.6255653006,305.22982618403,351.32575911795,402.50086969323,465.11211608996,523.2511306012],description:"Slendro Udan Mas (approx)"},slendro_wolf:{frequencies:[261.6255653006,298.18866107946,339.86157848985,395.0032340925,450.20632964813,523.2511306012],description:"Daniel Wolf's slendro. Tuning List 30 5 1997"},slendrob1:{frequencies:[261.6255653006,307.44024341205,355.66611281954,409.9203247543,476.83364134848,523.2511306012],description:"Gamelan miring of Musadikrama, desa Katur, Bajanegara. 1/1=434 Hz"},slendrob2:{frequencies:[261.6255653006,307.55978097874,346.50416420081,398.42969909174,449.35693171058,523.2511306012],description:"Gamelan miring from Bajanegara. 1/1=262 Hz"},slendrob3:{frequencies:[261.6255653006,304.90191053936,342.27700149692,398.33972372326,447.51732140012,523.2511306012],description:"Gamelan miring from Ngumpak, Bajanegara. 1/1=266 Hz"},slendroc1:{frequencies:[261.6255653006,297.59222964268,344.42030317161,394.72197985873,449.50490455178,523.2511306012],description:"Kyahi Kanyut mesem slendro (Mangku Nagaran Solo). 1/1=291 Hz"},slendroc2:{frequencies:[261.6255653006,302.44445076078,346.01554587335,396.09235530397,453.15466093696,523.2511306012],description:"Kyahi Pengawe sari (Paku Alaman, Jogja). 1/1=295 Hz."},slendroc3:{frequencies:[261.6255653006,301.39807245198,344.42030317161,395.40657391157,451.84778706363,523.2511306012],description:"Gamelan slendro of R.M. Jayadipura, Jogja. 1/1=231 Hz"},slendroc4:{frequencies:[261.6255653006,299.14332201883,343.8239850859,396.09235530397,450.28451247858,523.2511306012],description:"Gamelan slendro, Rancha iyuh, Tanggerang, Batavia. 1/1=282.5 Hz"},slendroc5:{frequencies:[261.6255653006,299.83528893666,340.07120590121,393.12919962609,447.17417015401,523.2511306012],description:"Gender wayang from Pliatan, South Bali. 1/1=611 Hz"},slendroc6:{frequencies:[261.6255653006,296.73398952435,343.8239850859,396.7793260952,453.9405988926,527.19506190947,607.33963549452,696.44215167899,797.23415748628,918.4302691641,1071.58188326661],description:"from William Malm: Music Cultures of the Pacific, the Near East and Asia."},slendrod1:{frequencies:[261.6255653006,292.47977325983,340.6610152784,389.06292924114,444.85552088095,523.2511306012],description:"Gender wayang from Ubud (S. Bali). 1/1=347 Hz"},smith_eh:{frequencies:[261.6255653006,272.7117507892,292.30354792656,313.30283124826,326.5788018031,350.04044239751,364.87314355143,391.08587539224,407.65784362321,436.94425707006,468.33462614046,488.17995458879,523.2511306012],description:"Robert Smith's Equal Harmony temperament (1749)"},smith_mq:{frequencies:[261.6255653006,273.37438418823,292.50629623572,312.97714101186,327.03200500996,349.91910755601,365.63292511375,391.22148485648,408.79006910398,437.39894995248,468.01000388518,489.02693031834,523.2511306012],description:"Robert Smith approximation of quarter comma meantone fifth"},"scalamakesrc2\\smithgw-ball":{frequencies:[261.6255653006,267.07609791103,272.52663052146,274.70684356563,280.31310567921,286.15296204753,294.32876096318,300.46061014991,305.22982618403,306.59245933664,313.95067836072,320.49131749323,327.03195662575,333.84512238879,336.37572681506,343.38355445704,350.39138209902,357.69120255941,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,470.92601754108,476.92160341255,480.73697623985,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:"Ball 2 around tetrad lattice hole"},smithgw46:{frequencies:[261.6255653006,273.72380653152,313.47993226845,327.97605323154,364.46098649856,392.98113253789,436.69740466987,456.89141950378,523.2511306012],description:'Gene Ward Smith 46-tET subset "Star"'},smithgw46a:{frequencies:[261.6255653006,282.09853500802,313.47993226845,327.97605323154,375.61187043063,392.98113253789,436.69740466987,470.87026054824,523.2511306012],description:'46-tET version of "Star", alternative version'},smithgw72a:{frequencies:[261.6255653006,285.30470202322,299.37379946195,326.46944327063,342.56848033562,373.57357677338,391.99543598175,427.47405410759,435.78442404634,457.27406033445,498.66089874196,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72c:{frequencies:[261.6255653006,279.86396690685,305.19382000629,326.46944327063,349.22823143301,391.99543598175,419.32216217931,457.27406033445,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72d:{frequencies:[261.6255653006,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72e:{frequencies:[261.6255653006,279.86396690685,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72f:{frequencies:[261.6255653006,326.46944327063,349.22823143301,435.78442404634,466.16376151809,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72g:{frequencies:[261.6255653006,326.46944327063,349.22823143301,391.99543598175,419.32216217931,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72h:{frequencies:[261.6255653006,279.86396690685,314.13668154225,349.22823143301,391.99543598175,435.78442404634,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 09-01-2002"},smithgw72i:{frequencies:[261.6255653006,279.86396690685,293.66476791741,314.13668154225,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,435.78442404634,470.6732130613,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset version of Duodene, TL 02-06-2002"},smithgw72j:{frequencies:[261.6255653006,274.52698453615,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,435.78442404634,457.27406033445,489.15147723638,523.2511306012],description:"{225/224, 441/440} tempering of decad, 72-et version (2002)"},smithgw84:{frequencies:[261.6255653006,286.48426603331,306.03443598155,335.11270457212,357.98136125932,391.99543598175,418.74586628806,458.53356119912,489.82466832727,523.2511306012],description:'Gene Ward Smith 84-tET subset, 11-limit temperament "Orwell", 2002'},smithgw_18:{frequencies:[261.6255653006,272.52663052146,280.31310567921,286.15296204753,294.32876096318,306.59245933664,327.03195662575,343.38355445704,350.39138209902,367.91095120397,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,457.84473927605,467.18850946536,490.54793493862,523.2511306012],description:"Gene Ward Smith chord analogue to periodicity blocks, TL 12-07-2002"},smithgw_21:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,299.00064605783,305.22982618403,320.49131749323,327.03195662575,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,418.60090448096,427.14378008261,448.50096908674,457.84473927605,478.40103369253,488.36772189445,512.57253609913,523.2511306012],description:"Gene Ward Smith symmetrical 7-limit JI version of Blackjack, TL 10-5-2002"},smithgw_45:{frequencies:[261.6255653006,267.02002970726,269.13627541126,274.68560334708,276.86260193655,282.57123920205,288.39758300936,290.68325478745,296.67686217097,299.02814898089,305.19382000629,311.48661940174,313.95528147508,320.42873367481,322.96826575344,329.62755691287,336.42415617173,339.09045868095,346.08217376006,348.82502010853,356.01745236555,363.35818557229,366.23795155866,373.78942366597,376.75185941212,384.52011812375,392.44854854484,395.55886785613,403.71490654806,406.9145164708,415.30469757995,423.86787605389,427.22720671064,436.03621571368,439.49198556474,448.5538823653,457.80262665414,461.43090443914,470.94516310483,474.67759826036,484.46499093218,494.45418731234,498.37294408452,508.64890891624,512.68016480935,523.2511306012],description:"Gene Ward Smith large limma repeating 5-tone MOS"},smithgw_58:{frequencies:[261.6255653006,264.89588486686,267.57160087561,269.80136421624,274.70684356563,279.06726965397,282.55561052465,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.49231810831,305.22982618403,310.07474405997,313.95067836072,317.12189733406,319.76457981184,323.76163705949,327.03195662575,332.97799220076,336.37572681506,340.54567384169,343.38355445704,348.83408706747,353.19451315581,356.76213450082,359.73515228832,366.27579142084,370.01329949656,373.75080757229,380.54627680087,383.71749577421,387.59343007496,392.4383479509,398.6675280771,401.98975747775,406.97310157871,411.12588832951,418.60090448096,423.83341578697,428.11456140098,431.68218274599,436.04260883433,441.49314144476,448.50096908674,452.23847716247,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,484.4917875937,490.54793493862,498.33441009638,507.3950357345,511.62332769895,516.79124009995,523.2511306012],description:"Gene Ward Smith 58-tone epimorphic superset of Partch's 43-tone scale"},smithgw_9:{frequencies:[261.6255653006,279.06726965397,305.22982618403,327.03195662575,348.83408706747,392.4383479509,418.60090448096,448.50096908674,490.54793493862,523.2511306012],description:'Gene Ward Smith "Miracle-Magic square" tuning, genus chromaticum of ji_12a'},"smithgw_al-baked":{frequencies:[261.6255653006,277.59364499865,293.85651796007,311.0721560172,330.05816364769,349.39467974592,369.86402907174,392.4383479509,415.42941801053,439.76742419786,466.60823379256,493.94455998605,522.88238970142],description:"Baked alaska, with beat ratios of 2 and 3/2"},"smithgw_al-fried":{frequencies:[261.6255653006,277.00141553195,293.28091128458,310.96067952124,329.23597434237,348.58531822795,369.59898601143,391.32048195179,414.31855981944,439.29480556849,465.11235566178,492.44721175277,522.13326741512],description:"Fried alaska, with octave-fifth brats of 1 and 2"},smithgw_asbru:{frequencies:[261.6255653006,275.52281548997,293.66476791741,313.00128725319,329.62755691287,351.33206601369,367.77883484915,391.99543598175,415.30469757995,440,468.97204376297,490.92584627687,523.2511306012],description:"Modified bifrost (2003)"},smithgw_bifrost:{frequencies:[261.6255653006,275.07759559501,292.50627485027,311.03921839762,327.03195662575,349.91912034749,366.77012764335,391.22147055517,413.66634097248,437.39889945791,466.55882736321,489.02683710225,523.2511306012],description:"Six meantone fifths, four pure, two of sqrt(2048/2025 sqrt(5))"},smithgw_cauldron:{frequencies:[261.6255653006,275.03056468741,291.83931845209,312.58541512404,325.54230007562,350.31873582686,364.83969341757,390.77519652096,414.65779561271,435.90375768372,469.07960710644,486.243977751,523.2511306012],description:"Circulating temperament with two pure 9/7 thirds"},smithgw_ck:{frequencies:[195.99771799087,198.06437430898,200.15282320192,202.2632921446,203.72940721765,205.87758869102,208.04842120778,210.24214482145,211.76609376362,213.99901760782,216.25548480725,218.5357448459,220.11981156469,222.44081817627,224.78629944762,227.15651084977,228.80306427848,231.21563094,233.65363506284,235.34728316698,237.82885399313,240.33658984216,242.87076938222,244.63122826831,247.21069030843,249.81735238129,252.45149840587,254.28140507407,256.96262135434,259.67210915034,262.4101678886,264.31225911206,267.09924514556,269.91561641866,272.7616843206,274.73881033537,277.63573538138,280.56320805899,282.59688215652,285.57666497222,288.58786914203,291.63082264784,293.74472081062,296.84205135845,299.9720393359,303.13503255793,305.33231946532,308.55183127196,311.80529233825,315.09305703284,317.37702217863,320.72353853051,324.10533989702,327.52280172307,329.89686439088,333.37539375097,336.89059979959,339.33256534187,342.91058750208,346.52633537645,350.18021075922,352.71850659998,356.43767199462,360.19605541958,363.99406623991,366.6324923874,370.49837299068,374.40501441099,378.35285076765,381.09535716275,385.11373623244,389.17448849491,391.99543598174],description:"Catakleismic temperament, g=316.745, 11-limit"},smithgw_decab:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,439.53094970501,488.36772189445,523.2511306012],description:"(10/9) <==> (16/15) transform of decaa"},smithgw_decac:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,498.33441009638,523.2511306012],description:"inversion of decaa"},smithgw_decad:{frequencies:[261.6255653006,280.31310567921,311.45900631024,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,467.18850946536,498.33441009638,523.2511306012],description:"inversion of decab"},smithgw_diff13:{frequencies:[261.6255653006,274.70684356563,280.31310567921,299.00064605783,313.95067836072,320.35783506196,336.37572681506,406.97310157871,427.32175665765,436.04260883433,457.84473927605,488.36772189445,498.33441009638,523.2511306012],description:"mod 13 perfect difference set, 7-limit"},smithgw_dwarf6_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,373.75080757229,392.4383479509,448.50096908674,523.2511306012],description:"Dwarf(<6 10 14 17|)"},smithgw_exotic1:{frequencies:[261.6255653006,274.95996987324,293.39100498914,313.05750197389,327.96500300935,349.94905375768,367.78508905896,392.4383479509,411.12588832951,438.68435539504,468.09011223803,491.94750426812,523.2511306012],description:"Exotic temperament featuring four pure 14/11 thirds and two pure fifths"},smithgw_glumma:{frequencies:[261.6255653006,269.10058145205,299.00064605783,313.95067836072,327.03195662575,358.80077526939,373.75080757229,392.4383479509,436.04260883433,448.50096908674,457.84473927605,512.57253609913,523.2511306012],description:"Gene Smith's Glumma scale, 7-limit, 2002"},smithgw_gm:{frequencies:[261.6255653006,264.89588486686,269.80136421624,274.70684356563,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,498.33441009638,507.3950357345,516.79124009995,523.2511306012],description:'Gene Ward Smith "Genesis Minus" periodicity block'},smithgw_graileq:{frequencies:[261.6255653006,274.83794140225,293.02845982215,312.42294214419,328.20064112269,350.39711148969,365.67350481015,391.53226450123,414.40482204179,438.61355268439,469.63029662389,490.10494633744,523.2511306012],description:"56% RMS grail + 44% JI grail"},smithgw_grailrms:{frequencies:[261.6255653006,274.64037495938,293.11160698959,312.82513967025,328.38692028068,350.6222941497,365.93760986436,391.94882001935,414.52240989365,438.39608269016,469.55771333591,490.068176414,523.2511306012],description:"RMS optimized Holy Grail"},smithgw_hahn12:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Hahn-reduced 12 note scale, Fokker block 225/224, 126/125, 64/63"},smithgw_hahn15:{frequencies:[261.6255653006,279.06726965397,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Hahn-reduced 15 note scale"},smithgw_hahn16:{frequencies:[261.6255653006,280.31310567921,294.32876096318,299.00064605783,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,408.78994578219,418.60090448096,436.04260883433,457.84473927605,488.36772189445,490.54793493862,523.2511306012],description:"Hahn-reduced 16 note scale"},smithgw_hahn19:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Hahn-reduced 19 note scale"},smithgw_hahn22:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Hahn-reduced 22 note scale"},smithgw_indianred:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"32805/32768 Hahn-reduced"},smithgw_klv:{frequencies:[261.6255653006,271.78681896552,282.34272472006,293.30861211826,314.10491445143,326.30440921209,338.97771913949,352.14324873572,377.11107157735,391.75765725694,406.97310157871,422.77949745352,452.75560414132,470.34014155688,488.60764618722,523.2511306012],description:"Variant of kleismic with 9/7 thirds, g=316.492"},smithgw_meandin:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,336.37572681506,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,470.92601754108,504.56359022259,523.2511306012],description:"Gene Smith, inverted detempered 7-limit meantone"},smithgw_meanred:{frequencies:[261.6255653006,281.29980781121,291.99281841585,313.95067836072,325.57848126297,350.39138209902,363.36884069528,390.69417751556,420.46965851882,436.04260883433,468.83301301868,486.65469735975,523.2511306012],description:"171-et Hahn reduced rational Meantone[12]"},smithgw_meantune:{frequencies:[261.6255653006,273.55401844854,279.77233440758,292.56174910339,312.85829351777,327.16018629281,334.59705725462,349.85254391288,365.77071543428,374.29488261541,391.03456781852,418.40555295943,437.51985793188,468.14464283802,489.08159472971,500.47948461038,523.2511306012],description:"Meantune scale/temperament, Gene Ward Smith, 2003"},smithgw_mir22:{frequencies:[261.6255653006,267.57160087561,274.70684356563,280.31310567921,285.40970760065,299.00064605783,305.22982618403,319.76457981184,327.03195662575,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,418.60090448096,428.11456140098,448.50096908674,457.84473927605,479.64686971777,490.54793493862,512.78610798918,523.2511306012],description:"11-limit Miracle[22]"},smithgw_mmt:{frequencies:[261.6255653006,273.37431312998,292.50627485027,307.38829724655,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.12588832951,437.39890198442,459.65271605653,489.02683710225,523.2511306012],description:"Modified meantone with 5/4, 14/11 and 44/35 major thirds, TL 17-03-2003"},smithgw_modmos12a:{frequencies:[261.6255653006,265.27772209197,292.31087910123,304.72408298441,326.59518553839,340.46429857933,364.90060015836,391.09077971329,407.69874723177,425.01198472693,455.51656649021,488.21056770985,523.2511306012],description:"A 12-note modmos in 50-et meantone"},smithgw_octoid:{frequencies:[261.6255653006,272.34559486824,274.88944875317,277.45706359738,280.04865972334,282.66446436432,285.30470202322,296.99497716113,299.76906949343,302.56907333554,305.39522895084,308.24778413898,311.12698372208,323.87531915696,326.90048829645,329.95391413777,333.03585868997,336.14659218049,339.28638158975,353.18853996009,356.48751029933,359.81729479041,363.17817915623,366.5704580819,369.99442271164,385.15483391523,388.75238658,392.38354231563,396.04861270515,399.74791910495,403.48177901006,420.01432465796,423.93748365756,427.89728706578,431.89407466632,435.9281969008,440,458.02886886968,462.30710409523,466.62530033172,470.98382811593,475.38306960714,479.82340237272,499.48402328631,504.14947188193,508.85849826899,513.6115065207,518.40891338474,523.2511306012],description:"Octoid temperament, g=16.096, oct=1/8, 11-limit"},smithgw_orw18r:{frequencies:[261.6255653006,269.10058145205,280.31310567921,286.15296204753,299.00064605783,305.22982618403,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,448.50096908674,457.84473927605,474.80195184183,490.54793493862,523.2511306012],description:'Rational version of two cycles of 9-tone "Orwell"'},smithgw_pel1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 1"},smithgw_pel2:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 2"},smithgw_pel3:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 3"},smithgw_pk:{frequencies:[261.6255653006,271.01659746112,280.74472171431,290.822034715,313.8821415949,325.1489200649,336.82012073975,348.91025643633,376.57634157395,390.09352641046,404.09590743895,418.60090448096,451.79296003201,468.01003810189,484.80922990434,523.2511306012],description:"Parakleismic temperament, g=315.263, 5-limit"},smithgw_pris:{frequencies:[261.6255653006,279.06726965397,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"optimized (15/14)^3 (16/15)^4 (21/20)^3 (25/24)^2 scale"},smithgw_prisa:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,439.53094970501,457.84473927605,488.36772189445,523.2511306012],description:"optimized (15/14)^3 (16/15)^4 (21/20)^3 (25/24)^2 scale"},smithgw_pum13marv:{frequencies:[261.6255653006,293.67396865289,305.56991629828,343.00138030143,326.66798000724,366.68389807519,349.22276077151,392.00157668785,407.88051296056,457.84473927605,436.04260883433,489.45661357347,549.41368713126,523.2511306012],description:"pum13 marvel tempered and in epimorphic order"},smithgw_qm3a:{frequencies:[261.6255653006,279.86396690685,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,457.27406033445,489.15147723638,523.2511306012],description:"Qm(3) 10-note quasi-miracle scale, mode A, 72-tET, TL 04-01-2002"},smithgw_qm3b:{frequencies:[261.6255653006,279.86396690685,299.37379946195,326.46944327063,349.22823143301,373.57357677338,391.99543598175,419.32216217931,448.5538823653,489.15147723638,523.2511306012],description:"Qm(3) 10-note quasi-miracle scale, mode B"},smithgw_ragasyn1:{frequencies:[261.6255653006,269.16210421872,290.69507255622,313.95067836072,322.99452506247,348.83408706747,363.36884069528,392.4383479509,403.74315632809,436.04260883433,470.92601754108,484.4917875937,523.2511306012],description:"Ragasyn 6561/6250 81/80 scale"},smithgw_rainbow:{frequencies:[261.6255653006,273.37431312998,292.50627485027,310.51268695591,327.03195662575,349.91912034749,365.63284274659,391.22147055517,412.03444522126,437.39889945791,468.01003810189,489.02683710225,523.2511306012],description:"Circulating 1/4-comma meantone, Gene Ward SMith"},smithgw_ratwell:{frequencies:[261.6255653006,275.62199471997,293.02063313667,310.07474405997,326.72451751701,348.83408706747,367.49599295996,392.4383479509,413.43299207996,437.57747881743,465.11211608996,489.99465727995,523.2511306012],description:"7-limit rational well-temperament"},smithgw_ratwolf:{frequencies:[261.6255653006,272.55669785235,292.25605339318,313.37920299881,326.47268679644,350.06888377949,364.69531895389,391.05410158062,407.39296674476,436.83777202739,468.410735204,487.98168129749,523.2511306012],description:"Eleven fifths of (418/5)^(1/11) and one 20/13 wolf, G.W. Smith 2003"},smithgw_rectoo:{frequencies:[261.6255653006,290.69507255622,299.00064605783,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Hahn-reduced circle of fifths via <12 19 27 34| kernel"},smithgw_sc19:{frequencies:[261.6255653006,269.16210421872,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,508.60009894437,523.2511306012],description:"Fokker block from commas <81/80, 78732/78125>, Gene Ward Smith 2002"},smithgw_sch13:{frequencies:[261.6255653006,269.71217215021,278.04872701265,282.14859498561,290.86954990528,295.15846273282,304.2815407612,313.68660297237,318.31195648825,328.15068782436,332.98931632582,343.28171142549,353.89223299652,359.11042631209,370.21019888355,375.66900084958,387.28058594818,392.99109319609,405.13808832031,417.66053353744,423.81899742763,436.9188548657,443.36128543927,457.06517711961,471.19264083172,478.14044600934,492.91932687455,500.18749236202,515.64783010531,523.2511306012],description:"13-limit schismic temperament, g=704.3917, TL 31-10-2002"},smithgw_sch13a:{frequencies:[261.6255653006,266.49502311502,271.45511438723,280.18048669638,285.39529457963,294.56874561631,300.051354061,305.6360048159,315.46005229837,321.33149462105,331.66004360268,337.8330052901,344.12086009392,355.18192699392,361.79268541866,373.4217751344,380.37201938485,392.59830625439,399.90547017058,407.34863733398,420.4420328577,428.26743302475,442.03321824291,450.26048038501,458.64087358289,473.38295124548,482.19370453904,497.69284002863,506.95605959354,523.2511306012],description:"13-limit schismic temperament, g=702.660507, TL 31-10-2002"},smithgw_scj22a:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,301.39265122629,313.95067836072,327.03195662575,334.88072358477,348.83408706747,361.67118147155,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"225/224 ^ 15625/15552 = [6,5,22,37,-18,-6] catakleismic"},smithgw_scj22b:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,372.08969287196,387.59343007496,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"5120/5103 ^ 225/224 = [1,-8,-14,-10,25,-15] schismic candidate"},smithgw_scj22c:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"225/224 ^ 65625/65536 = [7,-3,827,7,-21] orwell candidate"},smithgw_secab:{frequencies:[261.6255653006,274.07613169002,291.39807132323,313.10572011471,348.73657263424,365.33268718488,392.54808236386,417.35759110361,437.21932894603,486.97408086388,523.2511306012],description:"{126/125, 176/175} tempering of decab, 328-et version"},smithgw_secac:{frequencies:[261.6255653006,281.11531641881,298.8821409504,313.10572011471,348.73657263424,374.71564313773,392.54808236386,417.35759110361,448.44857247831,499.48119153644,523.2511306012],description:"{126/125, 176/175} tempering of decac, 328-et version"},smithgw_secad:{frequencies:[261.6255653006,281.11531641881,313.10572011471,328.00618883132,348.73657263424,374.71564313773,392.54808236386,437.21932894603,469.78990700991,499.48119153644,523.2511306012],description:"{126/125, 176/175} tempering of decad, 328-et version"},smithgw_smalldi11:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,322.92069774245,366.27579142084,373.75080757229,423.93031414449,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"Small diesic 11-note block, <10/9, 126/125, 1728/1715> commas"},smithgw_smalldi19a:{frequencies:[261.6255653006,269.10058145205,272.52663052146,299.00064605783,305.22982618403,313.95067836072,317.94773560837,327.03195662575,358.80077526939,366.27579142084,373.75080757229,381.53728273004,418.60090448096,430.56093032327,436.04260883433,448.50096908674,457.84473927605,502.32108537715,508.71637697339,523.2511306012],description:"Small diesic 19-note block, <16/15, 126/125, 1728/1715> commas"},smithgw_smalldi19b:{frequencies:[261.6255653006,266.96486255163,274.70684356563,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,358.80077526939,366.27579142084,373.75080757229,381.53728273004,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,498.33441009638,512.78610798918,523.2511306012],description:"Small diesic 19-note block, <16/15, 126/125, 2401/2400> commas"},smithgw_smalldi19c:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,286.15296204753,313.95067836072,320.49131749323,327.03195662575,336.37572681506,343.38355445704,373.75080757229,381.53728273004,392.4383479509,400.61414686654,436.04260883433,448.50096908674,457.84473927605,470.92601754108,508.71637697339,523.2511306012],description:"Small diesic 19-note scale containing glumma"},smithgw_smalldiglum19:{frequencies:[261.6255653006,267.74077300753,273.99891691894,280.40333801024,286.95745534843,312.9293240034,320.24370022528,327.729041887,335.38934511627,343.22869944589,374.29355081838,383.0422478503,391.99543598175,401.15789496562,437.46578647972,447.69106452518,458.15534711532,468.86422071654,511.30005826145,523.2511306012],description:'Small diesic "glumma" variant of 19-note MOS, 31/120 version'},smithgw_smalldimos11:{frequencies:[261.6255653006,267.74077300753,305.78200836532,312.9293240034,320.24370022528,365.74467430283,374.29355081838,427.47405410759,437.46578647972,447.69106452518,511.30005826145,523.2511306012],description:"Small diesic 11-note MOS, 31/120 version"},smithgw_smalldimos19:{frequencies:[261.6255653006,267.74077300753,273.99891691894,298.79793764201,305.78200836532,312.9293240034,320.24370022528,327.729041887,357.39105439675,365.74467430283,374.29355081838,383.0422478503,417.71053321823,427.47405410759,437.46578647972,447.69106452518,458.15534711532,499.62194879119,511.30005826145,523.2511306012],description:"Small diesic 19-note MOS, 31/120 version"},smithgw_star:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:'Gene Ward Smith "Star" scale, untempered version'},smithgw_star2:{frequencies:[261.6255653006,282.55561052465,313.95067836072,327.03195662575,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:'Gene Ward Smith "Star" scale, alternative untempered version'},starra:{frequencies:[261.6255653006,274.07613169002,294.49338559574,313.10572011471,328.00618883132,343.61575980934,374.71564313773,392.54808236386,411.22915413197,437.21932894603,458.02627217006,492.14685988839,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_starrb:{frequencies:[261.6255653006,274.07613169002,287.1192112957,305.26548915336,328.00618883132,343.61575980934,365.33268718488,392.54808236386,411.22915413197,437.21932894603,458.02627217006,479.82340237272,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_starrc:{frequencies:[261.6255653006,274.07613169002,287.1192112957,313.10572011471,328.00618883132,343.61575980934,365.33268718488,392.54808236386,411.22915413197,437.21932894603,458.02627217006,492.14685988839,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_tetra:{frequencies:[261.6255653006,274.84135386022,293.90210492181,314.2847539672,326.44746606412,342.93767672779,366.7210324511,392.15380743582,419.35039192746,435.57910814854,457.58200907672,489.31615916483,523.2511306012],description:"{225/224, 385/384} tempering of two-tetrachord 12-note scale"},smithgw_tr31:{frequencies:[261.6255653006,267.54129532085,292.57243455474,299.18791603519,305.95298478736,334.57791819083,342.14320575162,349.87955533643,391.26571058456,400.11279059885,409.15991580663,447.44088028055,457.55816161244,467.90420651233,511.68128147674,523.2511306012],description:"6/31 generator supermajor seconds tripentatonic scale"},smithgw_tr7_13:{frequencies:[261.6255653006,183.87449048025,346.05860897284,243.21533855007,457.74028507734,321.70694650116,605.46440189891,425.52973856044,299.06887661109,562.85871464284,395.58580335293,744.50714985079,523.2511306012],description:"81/80 ==> 28561/28672"},smithgw_tr7_13b:{frequencies:[261.6255653006,372.25357492539,395.58580335293,281.42935732142,299.06887661109,425.52973856044,302.73220094945,321.70694650116,457.74028507734,486.43067710015,346.05860897284,367.7489809605,523.2511306012],description:"reverse reduced 81/80 ==> 28561/28672"},smithgw_tr7_13r:{frequencies:[261.6255653006,367.7489809605,346.05860897284,486.43067710015,457.74028507734,321.70694650116,302.73220094945,425.52973856044,299.06887661109,281.42935732142,395.58580335293,372.25357492539,523.2511306012],description:"reduced 81/80 ==> 28561/28672"},smithgw_tra:{frequencies:[261.6255653006,128.35937755236,399.56478905052,196.03545836752,610.23096296248,299.39301413087,931.96857771927,457.24471305759,224.33452437931,698.32199734535,342.61245382262,1066.50464849657,523.2511306012],description:"81/80 ==> 1029/512"},smithgw_tre:{frequencies:[261.6255653006,256.71872396454,399.56476227799,392.07084290614,305.11544059319,299.39293769309,465.98419519089,457.24482979639,448.66910888407,349.16106442144,342.6124767791,533.2523889322,523.2511306012],description:"81/80 ==> 1029/512 ==> reduction"},smithgw_treb:{frequencies:[261.6255653006,266.6261944661,342.6124767791,349.16106442144,448.66910888407,457.24482979639,465.98419519089,299.39293769309,305.11544059319,392.07084290614,399.56476227799,513.43744792908,523.2511306012],description:"reversed 81/80 ==> 1029/512 ==> reduction"},smithgw_trx:{frequencies:[261.6255653006,490.17835855476,354.35176059633,331.954494127,479.94227969828,449.60690021487,325.02250210538,304.47902995326,285.23403465053,412.39349145653,386.32762147798,279.2776760715,523.2511306012],description:"reduced 3/2->7/6 5/4->11/6 scale"},smithgw_trxb:{frequencies:[261.6255653006,279.2776760715,386.32762147798,412.39349145653,285.23403465053,304.47902995326,325.02250210538,449.60690021487,479.94227969828,331.954494127,354.35176059633,490.17835855476,523.2511306012],description:"reversed reduced 3/2->7/6 5/4->11/6 scale"},smithgw_wa:{frequencies:[261.6255653006,273.6474362764,299.37379946195,313.13022722746,327.51877211613,349.22823143301,374.77430422696,391.99543598175,417.97870684853,437.18511000944,469.1652354389,500.26367760099,523.2511306012],description:"Wreckmeister A temperament, TL 2-6-2002"},smithgw_wa120:{frequencies:[261.6255653006,273.99891691894,298.79793764201,312.9293240034,327.729041887,349.22823143301,374.29355081838,391.99543598175,417.71053321823,437.46578647972,468.86422071654,499.62194879119,523.2511306012],description:"120-tET version of Wreckmeister A temperament"},smithgw_wb:{frequencies:[261.6255653006,280.76349612739,291.78605424516,313.13022722746,327.51877211613,349.22823143301,365.2755039332,391.99543598175,417.97870684853,437.18511000944,469.1652354389,487.58430040208,523.2511306012],description:"Wreckmeister B temperament, TL 2-6-2002"},smithgw_well1:{frequencies:[261.6255653006,275.92984511873,292.92635710626,310.42107575858,327.5229776175,349.2237102284,367.90646015831,391.734151992,413.8947676781,437.99072463899,465.63161363786,490.54194687775,523.2511306012],description:"Well-temperament, Gene Ward Smith (2005)"},smithgw_whelp1:{frequencies:[261.6255653006,275.93321340298,292.50627485027,310.07474405997,327.03195662575,348.05120395042,368.50381975103,390.45372436301,413.66634097248,438.25895612273,464.36382062247,491.65133958137,523.2511306012],description:"well-temperament with one pure third, Gene Ward Smith, 2003"},smithgw_whelp2:{frequencies:[261.6255653006,275.85000668176,292.43269265164,309.98104674077,327.03195662575,347.97308568611,368.21146504308,391.7894791814,413.34036955908,438.14417346548,464.48314871299,489.73685071229,523.2511306012],description:"well-temperament with two pure thirds"},smithgw_whelp3:{frequencies:[261.6255653006,275.96871294479,292.50627485027,310.03485655885,327.03195662575,349.46135677641,368.11883862276,391.73393619399,413.66634097248,436.82669499534,464.84945270756,489.66742197778,523.2511306012],description:"well-temperament with three pure thirds"},smithgw_wiz28:{frequencies:[261.6255653006,269.80136421624,277.4816601673,280.31310567921,287.78812183066,297.30177875068,305.22982618403,308.34441624714,317.12189733406,327.03195662575,336.37572681506,345.34574619679,348.83408706747,359.73515228832,370.01329949656,380.54627680087,392.4383479509,396.40237166758,406.97310157871,418.60090448096,431.68218274599,436.04260883433,448.50096908674,460.46099492906,475.68284600109,490.54793493862,493.35106599542,508.71637697339,523.2511306012],description:"11-limit Wizard[28]"},smithgw_wiz34:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.4816601673,280.31310567921,287.78812183066,297.30177875068,305.22982618403,308.34441624714,313.95067836072,317.12189733406,327.03195662575,336.37572681506,345.34574619679,348.83408706747,356.76213450082,359.73515228832,370.01329949656,380.54627680087,383.71749577421,392.4383479509,396.40237166758,406.97310157871,418.60090448096,431.68218274599,436.04260883433,443.97065626768,448.50096908674,460.46099492906,475.68284600109,490.54793493862,493.35106599542,504.56359022259,508.71637697339,523.2511306012],description:"11-limit Wizard[34]"},smithgw_wiz38:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.4816601673,280.31310567921,285.40970760065,287.78812183066,297.30177875068,305.22982618403,308.34441624714,313.95067836072,317.12189733406,327.03195662575,336.37572681506,339.14425131559,345.34574619679,348.83408706747,356.76213450082,359.73515228832,370.01329949656,380.54627680087,383.71749577421,392.4383479509,396.40237166758,403.65087217807,406.97310157871,418.60090448096,431.68218274599,436.04260883433,443.97065626768,448.50096908674,460.46099492906,475.68284600109,479.64686971777,490.54793493862,493.35106599542,504.56359022259,508.71637697339,523.2511306012],description:"11-limit Wizard[38]"},smithgw_wreckpop:{frequencies:[261.6255653006,272.73569398658,292.31087910123,313.29104303136,326.59518553839,350.03605285217,364.90060015836,391.09077971329,419.16071913933,436.9606979923,455.51656649021,501.93603498211,523.2511306012],description:'"Wreckmeister" 13-limit meanpop (50-et) tempered thirds'},smithj12:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,331.11985608357,344.91651675372,363.36884069528,392.4383479509,408.78994578219,441.49314144476,459.88868900496,496.67978412536,523.2511306012],description:"J. Smith, 5-limit JI scale, MMM 21-3-2006"},smithj17:{frequencies:[261.6255653006,272.57820116223,283.17034563789,295.02492750576,308.97787266236,319.3201344739,332.68808325276,348.42227432308,363.00854876594,377.11473546037,392.90218486657,411.48414905414,425.25755219187,443.06044202496,464.01459698705,479.54632553791,499.62194879119,523.2511306012],description:"J. Smith 17-tone well temperament, MMM 12-2006"},smithrk_19:{frequencies:[261.6255653006,274.68253637698,286.11368885031,294.3308008075,305.19387818096,313.95878694534,327.0246436172,343.34529416761,348.83287827711,366.24211271841,381.48359653409,392.43970784476,406.92376081862,418.61050714007,436.03134720211,457.79213919624,470.93981233279,488.32112480698,508.64303280756,523.2511306012],description:"19 out of 612-tET by Roger K. Smith, 1978"},smithrk_mult:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:'Roger K. Smith, "Multitonic" scale, just version'},solar:{frequencies:[261.6255653006,394.58976180129,774.00176545642,2207.36533954793,5481.83445910426,34573.03685904828,65024.37680021134,105705.6559450381],description:"Solar system scale: 0=Pluto, 8=Mercury. 1/1=248.54 years period"},solemn:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Solemn 6"},songlines:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Songlines.DEM, Bill Thibault and Scott Gresham-Lancaster. 1992 ICMC (=rectsp6)"},sorge:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Sorge's Monochord (1756)"},sorge1:{frequencies:[261.6255653006,276.86979852503,293.00227310437,311.47852302926,328.88393162803,349.6228209638,369.57684148724,391.5530240856,415.30469757995,439.00737933323,466.69047534984,493.32589719545,523.2511306012],description:"Georg Andreas Sorge, 1744 (A)"},sorge2:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.88393162803,348.83408706747,368.74309237173,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Georg Andreas Sorge, 1744 (B)"},sorge3:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,348.83408706747,369.15973155124,391.5530240856,414.83597850347,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Georg Andreas Sorge, well temperament, (1756, 1758)"},sparschuh:{frequencies:[261.6255653006,276.27659695743,293.02063313667,310.81117157711,328.60171001755,349.008504111,368.36879594324,391.3918456897,414.41489543615,439.53094970501,465.69350623507,491.85606276513,523.2511306012],description:"Andreas Sparschuh WTC temperament, 1/1=C=250, modified Collatz sequence"},sparschuh2:{frequencies:[261.6255653006,276.27659695743,293.02063313667,310.81117157711,328.60171001755,349.008504111,368.36879594324,391.3918456897,414.41489543615,438.48444744381,465.69350623507,491.85606276513,523.2511306012],description:"Modified Sparschuh temperament with A=419Hz by Tom Dent"},spec1_14:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,523.2511306012],description:"Spectrum sequence of 8/7: 1 to 27 reduced by 2/1"},spec1_17:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,490.54793493862,523.2511306012],description:"Spectrum sequence of 7/6: 1 to 27 reduced by 2/1"},spec1_25:{frequencies:[261.6255653006,277.97716313189,294.32876096318,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 5/4: 1 to 25 reduced by 2/1"},spec1_33:{frequencies:[261.6255653006,277.97716313189,294.32876096318,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,474.19633710734,490.54793493862,523.2511306012],description:"Spectrum sequence of 4/3: 1 to 29 reduced by 2/1"},spec1_4:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 7/5: 1 to 25 reduced by 2/1"},spec1_5:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 1.5: 1 to 27 reduced by 2/1"},specr2:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,474.19633710734,490.54793493862,523.2511306012],description:"Spectrum sequence of sqrt(2): 1 to 29 reduced by 2/1"},specr3:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Spectrum sequence of sqrt(3): 1 to 31 reduced by 2/1"},spon_chal1:{frequencies:[261.6255653006,280.31310567921,285.40970760065,286.15296204753,348.83408706747,392.4383479509,420.46965851882,428.11456140098,429.2294430713,523.2511306012],description:"JC Spondeion, from discussions with George Kahrimanis about tritone of spondeion"},spon_chal2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,285.40970760065,348.83408706747,392.4383479509,413.43299207996,418.60090448096,428.11456140098,523.2511306012],description:"JC Spondeion II, 10 May 1997. Various tunings for the parhypatai and hence trito"},spon_mont:{frequencies:[261.6255653006,271.31540105247,348.83408706747,392.4383479509,428.11456140098,523.2511306012],description:"Montford's Spondeion, a mixed septimal and undecimal pentatonic, 1923"},spon_terp:{frequencies:[261.6255653006,285.40970760065,348.83408706747,392.4383479509,428.11456140098,523.2511306012],description:"Subharm. 6-tone series, guess at Greek poet Terpander's, 6th c. BC & Spondeion, Winnington-Ingram (1928)"},stade:{frequencies:[261.6255653006,274.22463192287,292.50627485027,309.28772967674,327.03195662575,348.83408706747,365.63284274659,391.22147055517,411.33694767869,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Organs in St. Cosmae, Stade; Magnuskerk, Anloo; H.K. Sluipwijk, modif. 1/4 mean"},stanhope:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,326.6631048533,348.83408706747,367.49599295996,392.4383479509,413.43299207996,437.52264545758,465.11211608996,489.99465727995,523.2511306012],description:"Well temperament of Charles, third earl of Stanhope (1806)"},stanhope2:{frequencies:[261.6255653006,275.85537639807,293.11251278827,310.16223770573,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.66634097248,437.85193595173,465.11211608996,490.54793493862,523.2511306012],description:"Stanhope temperament (real version?) with 1/3 synt. comma temp."},stanhope_f:{frequencies:[261.6255653006,275.62199471997,292.46014274879,310.07474405997,326.6631048533,348.83408706747,367.49599295996,392.4383479509,413.43299207996,436.79202494356,465.11211608996,489.99465727995,523.2511306012],description:"Stanhope temperament, equal beating version by Farey (1807)"},stanhope_s:{frequencies:[261.6255653006,275.77758308753,293.11247215425,310.2497806633,327.03195662575,348.83408706747,367.7034443005,392.4383479509,413.66637442451,437.85181455341,465.11211608996,490.54793493862,523.2511306012],description:"Stanhope temperament, alt. version with 1/3 syntonic comma"},starling:{frequencies:[261.6255653006,278.9816419584,293.66476791741,313.14630527334,327.50195613664,349.22823143301,367.60851651046,391.99543598175,418.00016846495,437.16266336983,466.16376151809,490.69849857048,523.2511306012],description:"Starling temperament, Herman Miller (1999)"},stearns:{frequencies:[261.6255653006,299.00064605783,336.37572681506,366.27579142084,398.6675280771,448.50096908674,504.56359022259,523.2511306012],description:"Dan Stearns, guitar scale"},stearns2:{frequencies:[261.6255653006,280.31310567921,287.78812183066,299.00064605783,313.95067836072,317.68818643644,336.37572681506,340.11323489078,355.06326719367,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,429.81342870813,444.76346101102,448.50096908674,467.18850946536,470.92601754108,485.87604984397,497.08857407114,504.56359022259,523.2511306012],description:'Dan Stearns, scale for "At A Day Job" based on harmonics 10-20 and 14-28'},stearns3:{frequencies:[261.6255653006,304.11599009871,327.88291945286,364.30920726489,423.47641042702,470.52269644143,546.93995798074,607.70247408742,706.39900722312,784.8766959018],description:"Dan Stearns, trivalent version of Bohlen's Lambda scale"},stearns4:{frequencies:[261.6255653006,296.65550714972,336.37572681506,347.46339693852,393.986457405,446.73865184892,461.46412096988,523.2511306012],description:"Dan Stearns, 1/4-septimal comma temperament, tuning-math 2-12-2001"},steldek1:{frequencies:[261.6255653006,274.70684356563,275.93321340298,280.31310567921,286.15296204753,294.32876096318,305.22982618403,309.04519901133,315.35224388912,321.92208230347,327.03195662575,331.11985608357,343.38355445704,353.19451315581,367.91095120397,381.53728273004,386.30649876417,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,441.49314144476,457.84473927605,490.54793493862,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Stellated two out of 1 3 5 7 9 dekany"},steldek1s:{frequencies:[261.6255653006,274.70684356563,275.93321340298,280.31310567921,286.15296204753,294.32876096318,305.22982618403,309.04519901133,315.35224388912,321.92208230347,327.03195662575,331.11985608357,339.14425131559,343.38355445704,353.19451315581,360.4025644447,367.91095120397,381.53728273004,386.30649876417,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,441.49314144476,457.84473927605,482.88312345521,490.54793493862,494.47231841813,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Superstellated two out of 1 3 5 7 9 dekany"},steldek2:{frequencies:[261.6255653006,262.3068818769,269.80136421624,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.7792935736,308.34441624714,312.16686768822,314.76825825228,327.03195662575,337.2517052703,343.38355445704,356.76213450082,359.73515228832,377.72190990274,381.53728273004,385.43052030892,392.4383479509,393.46032281536,400.61414686654,408.78994578219,416.22249025095,419.69101100305,429.2294430713,431.68218274599,449.66894036041,457.84473927605,472.15238737843,490.54793493862,494.63583439645,499.46698830115,503.62921320365,513.90736041189,523.2511306012],description:"Stellated two out of 1 3 5 7 11 dekany"},steldek2s:{frequencies:[261.6255653006,262.3068818769,269.80136421624,274.70684356563,280.31310567921,286.15296204753,294.32876096318,295.09524211152,299.7792935736,302.17752792219,308.34441624714,312.16686768822,314.76825825228,327.03195662575,337.2517052703,343.38355445704,349.7425091692,356.76213450082,359.73515228832,377.72190990274,381.53728273004,385.43052030892,392.4383479509,393.46032281536,400.61414686654,408.78994578219,416.22249025095,419.69101100305,429.2294430713,431.68218274599,440.49202321019,449.66894036041,454.06089845559,457.84473927605,472.15238737843,490.54793493862,494.63583439645,499.46698830115,503.62921320365,513.90736041189,523.2511306012],description:"Superstellated two out of 1 3 5 7 11 dekany"},steleik1:{frequencies:[220,220.57291666667,224.58333333333,225,226.875,229.16666666667,232.03125,235.27777777778,238.21875,240.625,242.63020833333,243.08035714286,247.5,248.14453125,252.08333333333,252.65625,255.234375,256.66666666667,257.8125,262.5,264.6875,270.703125,272.25,275,277.29166666667,278.4375,280.72916666667,283.59375,288.75,294.09722222222,297.7734375,302.5,308.80208333333,309.375,311.953125,315,315.10416666667,317.625,320.83333333333,324.10714285714,324.84375,330,330.859375,336.11111111111,336.875,340.3125,343.75,346.5,346.61458333333,350,352.91666666667,353.57142857143,360.9375,366.66666666667,371.25,378.125,385,388.92857142857,392.12962962963,393.75,397.03125,401.04166666667,403.33333333333,412.5,415.9375,423.5,425.390625,427.77777777778,432.14285714286,433.125,440],description:"Stellated Eikosany 3 out of 1 3 5 7 9 11"},steleik1s:{frequencies:[123.47082531403,123.79236392162,125.33976847064,127.32928860509,129.9819821177,130.22313607339,131.308328874,132.59082945654,132.63467563031,133.69575303535,135.04621518722,136.42423779117,136.73429287706,138.90467847828,139.26640941182,141.47698733899,141.79852594658,143.24544968073,144.69237341488,145.8499124022,145.89814319334,147.3231438406,148.55083670594,148.82644122673,151.92699208562,154.33853164254,156.26776328807,156.6747105883,159.16161075637,160.43490364242,160.48795751267,162.05545822466,163.70908534941,165.05648522882,165.43161360434,165.73853682068,167.11969129419,168.80776898403,169.77238480679,173.63084809785,175.077771832,175.80123369908,178.26100404713,179.05681210091,180.06162024963,181.89898372156,182.31239050275,185.20623797104,185.68854588243,189.06470126211,189.41547065221,190.99393290764,192.92316455317,195.33470411009,198.06778227459,200.54362955302,202.56932278083,204.25740047067,204.63635668676,208.35701771743,208.89961411773,212.21548100849,212.69778891987,214.8681745211,216.07394429955,217.03856012232,220.07531363843,220.98471576091,222.82625505891,227.89048812843,229.19271948917,231.50779746381,233.43702910934,233.87012192772,234.4016449321,236.33087657764,238.74241613455,241.07423537553,241.15395569146,243.083187337,246.94165062806],description:"Superstellated Eikosany 3 out of 1 3 5 7 9 11"},steleik2:{frequencies:[123.47082531403,124.49974885831,126.04313417474,126.11662871362,127.68005799519,128.74405847848,129.64436657973,130.41605923794,132.04518818306,132.96858110742,133.76006075687,135.81790784543,137.94006265552,138.64744759221,140.44806379471,141.47698733899,144.0492961997,145.92006628022,146.26543921816,147.13606683255,148.16499037684,148.55083670594,151.25176100969,152.15206911093,154.33853164254,154.49287017418,155.62468607289,156.05340421634,157.14468676331,157.64578589202,158.45422581967,160.51207290824,160.9300730981,163.85607442716,164.62776708537,167.20007594608,169.77238480679,170.24007732692,171.65874463798,172.85915543964,173.88807898393,175.56007974339,176.56328019906,180.06162024963,181.09054379391,182.8317990227,183.92008354069,185.20623797104,186.74962328747,187.26408505961,190.14507098361,193.11608771773,194.02558263633,197.55332050245,198.06778227459,200.6400911353,201.66901467958,202.31209189476,203.72686176815,204.2880927923,205.78470885672,205.99049356557,208.95062745451,210.19438118936,214.01609721099,214.57343079747,216.07394429955,217.36009872991,217.87456050205,220.70410024883,224.71690207153,226.36317974239,229.30296129748,230.47887391952,234.08010632452,237.68133872951,239.0961086029,240.76810936236,243.77573203026,245.22677805425,246.94165062806],description:"Stellated Eikosany 3 out of 1 3 5 7 11 13"},steleik2s:{frequencies:[61.73541265702,61.89618196081,62.32902239411,62.70002847979,63.66464430255,64.65940436978,64.99099105886,65.83502990378,66.22690508177,66.31733781516,67.05419712422,67.52310759362,68.40003106886,68.56192463352,68.97003132776,69.45233923915,69.63320470592,70.8992629733,71.32128239576,72.34618670745,72.41853289415,72.94907159667,73.15003322642,73.66157192031,73.89646213689,74.27541835298,75.24003417574,75.43597176474,76.80753488774,77.16926582128,78.37503559973,79.58080537819,79.800036247,80.24397875634,80.46503654906,81.02772911234,81.51003702372,82.29378737972,82.71580680218,82.76403759332,84.40388449202,84.45309958502,84.8861924034,85.7024057919,86.21253915971,86.81542404893,87.05458499673,87.53888591601,87.7800398717,89.13050202357,90.52316611769,90.94949186079,92.60311898553,92.84427294122,94.05004271968,94.53235063106,94.83379307568,95.49696645383,95.7600434964,96.46158227659,96.55804385887,97.94560661931,98.52861618252,100.32004556766,100.58129568632,101.28466139042,101.88754627965,102.12870023534,103.45504699165,104.17850885872,105.33604784604,105.47988405157,106.10774050425,107.4857631082,108.03697214979,109.72504983963,111.41312752947,112.07630090762,112.86005126361,113.15395764711,114.2698743892,114.95005221294,115.75389873191,115.86965263064,116.71851455468,118.16543828883,118.23433941902,119.7000543705,120.57697784574,120.69755482359,121.54159366851,122.26505553558,123.47082531404],description:"Superstellated Eikosany 3 out of 1 3 5 7 11 13"},stelhex1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,294.32876096318,327.03195662575,343.38355445704,381.53728273004,392.4383479509,400.61414686654,408.78994578219,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 7 hexany, also dekatesserany, mandala, tetradekany"},stelhex2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,327.03195662575,331.11985608357,353.19451315581,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 9 hexany"},stelhex3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,281.36411960997,289.40309445597,297.67175429757,339.14425131559,348.83408706747,358.80077526939,361.75386806997,372.08969287196,385.87079260796,434.10464168396,465.11211608996,523.2511306012],description:"Stellated Tetrachordal Hexany based on Archytas's Enharmonic"},stelhex4:{frequencies:[261.6255653006,269.10058145205,276.78916949353,279.06726965397,287.04062021552,297.67175429757,336.37572681506,348.83408706747,358.80077526939,361.75386806997,372.08969287196,382.72082695402,430.56093032327,465.11211608996,523.2511306012],description:"Stellated Tetrachordal Hexany based on the 1/1 35/36 16/15 4/3 tetrachord"},stelhex5:{frequencies:[261.6255653006,294.32876096318,305.22982618403,331.11985608357,343.38355445704,386.30649876417,392.4383479509,400.61414686654,441.49314144476,457.84473927605,504.56359022259,515.07533168556,523.2511306012],description:"Stellated two out of 1 3 7 9 hexany, stellation is degenerate"},stelhex6:{frequencies:[261.6255653006,269.80136421624,294.32876096318,299.7792935736,327.03195662575,337.2517052703,356.76213450082,359.73515228832,392.4383479509,408.78994578219,431.68218274599,449.66894036041,490.54793493862,494.63583439645,523.2511306012],description:"Stellated two out of 1 3 5 11 hexany, from The Giving, by Stephen J. Taylor"},stelpd1:{frequencies:[207.65234878997,208.19311011494,212.37172035338,214.14148468966,218.03496622947,219.00833661442,222.07265078927,222.48465941783,222.99030637105,224.84855892414,227.11975648903,229.43730502463,233.60889238872,237.93498298851,240.90917027586,242.2610735883,244.73312535961,245.28933700815,247.76700707894,249.83173213793,250.29524184505,254.84606442405,255.50972605016,256.96978162759,259.56543598746,262.81000393731,267.67685586207,272.54370778684,275.32476602956,277.59081348659,280.33067086646,281.06069865517,283.1622938045,285.52197958621,292.0111154859,297.32040849473,299.79807856552,302.82634198537,305.91640669951,306.61167126019,311.47852318496,312.28966517242,317.24664398468,317.96765908464,318.55758053007,321.21222703448,324.45679498433,327.0524493442,330.35600943859,333.10897618391,333.72698912674,340.67963473354,342.62637550345,346.08724798328,350.41333858307,356.90247448276,363.39161038245,367.09968803941,371.65051061841,374.7475982069,380.69597278161,385.45467244138,389.34815398119,392.59272193104,396.42721132631,399.73077142069,400.47238695209,401.51528379311,403.7684559805,407.88854226601,408.81556168025,415.30469757994],description:"Stellated two out of 1 3 5 7 9 11 pentadekany"},stelpd1s:{frequencies:[21.82676446456,21.88360499702,22.15715005948,22.2309638065,22.3228272933,22.50885085408,22.68892166091,22.91810268779,23.02041564622,23.14959867453,23.15196087848,23.34251199682,23.38581906917,23.43896865797,23.624449876,23.63429339678,23.87302363311,24.11662591508,24.35217522905,24.55511002263,24.61905562165,25.00983428231,25.20991295657,25.32245721084,25.46455854199,25.72440097609,25.78286552376,25.93612444091,26.04329850885,26.26032599642,26.30904645282,26.78739275196,26.85715158725,27.01062102489,27.2834555807,27.56185818867,27.62449877546,27.69643757435,28.01101439619,28.1360635676,28.29395393554,28.36115207614,28.41087110056,28.58266775121,28.64762835974,28.9399510981,29.17813999603,29.29871082246,29.46613202716,29.54286674598,29.7637697244,30.01180113877,30.06748166036,30.69388752829,30.99367756425,31.12334932909,31.25195821062,31.51239119571,31.65307151355,31.83069817748,32.15550122011,32.2285819047,32.41274522987,32.74014669684,32.82540749553,33.0742298264,33.34644570974,33.42223308636,33.48424093995,33.76327628112,34.09304532068,34.10431947588,34.37715403168,34.58149925455,34.7243980118,35.01376799523,35.07872860376,35.45144009517,35.80953544967,36.01416136652,36.17493887262,36.37794077427,36.74914425156,36.83266503394,36.92858343247,37.50234985274,37.51475142346,37.81486943485,37.88116146742,38.19683781298,38.26770393137,38.58660146413,38.90418666137,39.06494776328,39.39048899464,40.01573485169,40.28572738088,40.51593153734,40.92518337105,41.25258483802,41.26622656581,41.342787283,41.66927761416,42.01652159428,42.09447432451,42.2040953514,42.44093090331,42.61630665085,42.87400162681,42.9714425396,43.65352892912],description:"Superstellated two out of 1 3 5 7 9 11 pentadekany"},stelpent1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,353.19451315581,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,406.97310157871,412.06026534844,420.46965851882,436.04260883433,441.49314144476,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Stellated one out of 1 3 5 7 9 pentany"},stelpent1s:{frequencies:[261.6255653006,271.31540105247,274.70684356563,275.93321340298,280.31310567921,282.55561052465,286.15296204753,288.32205155576,290.69507255622,294.32876096318,301.46155672497,305.22982618403,309.04519901133,313.95067836072,315.35224388912,320.35783506196,321.92208230347,327.03195662575,329.64821227876,336.37572681506,339.14425131559,343.38355445704,348.83408706747,353.19451315581,360.4025644447,366.27579142084,367.91095120397,373.75080757229,381.53728273004,386.30649876417,387.59343007496,392.4383479509,395.57785473451,403.65087217807,406.97310157871,411.88864507966,412.06026534844,420.46965851882,429.2294430713,436.04260883433,439.53094970501,441.49314144476,448.50096908674,452.19233508746,457.84473927605,470.92601754108,480.53675259294,482.88312345521,488.36772189445,490.54793493862,494.47231841813,498.33441009638,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Superstellated one out of 1 3 5 7 9 pentany"},steltet1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,305.22982618403,313.95067836072,327.03195662575,343.38355445704,366.27579142084,373.75080757229,381.53728273004,392.4383479509,436.04260883433,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Stellated one out of 1 3 5 7 tetrany"},steltet1s:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,305.22982618403,313.95067836072,320.35783506196,327.03195662575,343.38355445704,366.27579142084,373.75080757229,381.53728273004,392.4383479509,429.2294430713,436.04260883433,439.53094970501,448.50096908674,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:"Superstellated one out of 1 3 5 7 tetrany"},steltet2:{frequencies:[261.6255653006,267.07609791103,272.52663052146,286.15296204753,305.22982618403,327.03195662575,333.84512238879,343.38355445704,381.53728273004,392.4383479509,400.61414686654,408.78994578219,436.04260883433,457.84473927605,476.92160341255,490.54793493862,523.2511306012],description:"Stellated three out of 1 3 5 7 tetrany"},steltet2s:{frequencies:[261.6255653006,286.15296204753,294.32876096318,300.46061014991,306.59245933664,327.03195662575,343.38355445704,350.53737850823,357.69120255941,367.91095120397,392.4383479509,400.61414686654,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Superstellated three out of 1 3 5 7 tetrany"},steltri1:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Stellated one out of 1 3 5 triany"},steltri2:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,408.78994578219,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 triany"},stevin:{frequencies:[261.6255653006,277.20445571159,293.66434538175,311.1256573916,329.66931111467,349.25319089654,369.99797100919,392.00714009679,415.41055144586,440.15068186507,466.27261682516,494.00597677606,523.2511306012],description:"Simon Stevin, monochord division of 10000 parts for 12-tET (1585)"},stopper:{frequencies:[261.6255653006,277.19910487213,293.6996776193,311.18246278326,329.70593120198,349.3320268423,370.12638880276,392.15855510068,415.50221189151,440.23542223935,466.44090588941,494.20629608476,523.62445363767,554.79375523088,587.81844599272,622.80896314278,659.88233179115,699.16252826162,740.78092441407,784.8766959018],description:"Bernard Stopper, piano tuning with 19th root of 3 (1988)"},storbeck:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,358.80077526939,381.53728273004,387.59343007496,392.4383479509,403.65087217807,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"Ulrich Storbeck, 2001"},strahle:{frequencies:[261.6255653006,278.94941459687,296.90543930973,315.65242990842,335.0021118691,355.12744448111,376.24442122187,398.15684412917,421.10213511252,444.85552088095,469.94877954106,496.17080790016,523.2511306012],description:"Strahle's Geometrical scale"},"sub24-12":{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Subharmonics 24-12"},sub24:{frequencies:[261.6255653006,10.90106522086,11.37502457829,11.89207115003,12.45836025241,13.08127826503,13.76976659477,14.53475362781,15.38973913533,16.35159783129,17.44170435337,18.68754037861,20.12504348466,21.80213044172,23.78414230005,26.16255653006,29.06950725562,32.70319566257,37.37508075723,43.60426088343,52.32511306012,65.40639132515,87.20852176687,130.8127826503,261.6255653006],description:"Subharmonics 24-1"},sub40:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,475.68284600109,498.33441009638,523.2511306012],description:"sub 40-20"},sub48:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,465.11211608996,502.32108537715,523.2511306012],description:"12 of sub 48 (Leven)"},sub50:{frequencies:[261.6255653006,272.52663052146,290.69507255622,311.45900631024,327.03195662575,344.24416486921,373.75080757229,384.74347838324,408.78994578219,436.04260883433,467.18850946536,484.4917875937,523.2511306012],description:"12 of sub 50"},sub8:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"Subharmonic series 1/16 - 1/8"},sumatra:{frequencies:[261.6255653006,266.79889483106,324.44528279699,356.96377863828,390.9602296356,474.47355835313,530.64156666967,639.28283484968,713.92755727656,784.8766959018],description:'"Archeological" tuning of Pasirah Rus orch. in Muaralakitan, Sumatra. 1/1=354 Hz'},super_10:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"A superparticular 10-tone scale"},super_11:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"A superparticular 11-tone scale"},super_12:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,372.08969287196,395.34529867646,418.60090448096,441.85651028546,465.11211608996,494.18162334558,523.2511306012],description:"A superparticular 12-tone scale"},super_12_1:{frequencies:[261.6255653006,280.31310567921,299.00064605783,317.68818643644,336.37572681506,355.06326719367,373.75080757229,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"Another superparticular 12-tone scale"},super_12_2:{frequencies:[261.6255653006,280.31310567921,299.00064605783,317.68818643644,336.37572681506,355.06326719367,373.75080757229,392.4383479509,420.46965851882,448.50096908674,473.41768959156,498.33441009638,523.2511306012],description:"Another superparticular 12-tone scale"},super_13:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"A superparticular 13-tone scale"},super_14:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"A superparticular 14-tone scale"},super_15:{frequencies:[261.6255653006,276.16031892841,290.69507255622,305.22982618403,319.76457981184,334.29933343966,348.83408706747,363.36884069528,381.53728273004,399.70572476481,417.87416679957,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"A superparticular 15-tone scale"},super_17:{frequencies:[261.6255653006,274.08392555301,286.54228580542,299.00064605783,311.45900631024,323.91736656265,336.37572681506,348.83408706747,363.36884069528,377.90359432309,392.4383479509,411.12588832951,429.81342870813,448.50096908674,467.18850946536,485.87604984397,504.56359022259,523.2511306012],description:"Superparticular 17-tone scale"},super_19:{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,316.13089140489,327.03195662575,340.11323489078,353.19451315581,366.27579142084,379.35706968587,392.4383479509,408.13588186894,423.83341578697,439.53094970501,455.22848362304,470.92601754108,488.36772189445,505.80942624783,523.2511306012],description:"Superparticular 19-tone scale"},super_19_1:{frequencies:[261.6255653006,272.09058791262,282.55561052465,293.02063313667,303.4856557487,313.95067836072,325.57848126297,337.20628416522,348.83408706747,363.36884069528,377.90359432309,392.4383479509,408.13588186894,423.83341578697,439.53094970501,455.22848362304,470.92601754108,488.36772189445,505.80942624783,523.2511306012],description:"Superparticular 19-tone scale"},super_19_2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Superparticular 19-tone scale"},super_22:{frequencies:[261.6255653006,270.96933548991,280.31310567921,289.65687586852,299.00064605783,308.34441624714,317.68818643644,327.03195662575,337.93302184661,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,406.45400323486,420.46965851882,434.48531380278,448.50096908674,463.45100138963,478.40103369253,493.35106599542,508.30109829831,523.2511306012],description:"Superparticular 22-tone scale"},super_22_1:{frequencies:[261.6255653006,272.09058791262,282.55561052465,293.02063313667,303.4856557487,313.95067836072,325.16320258789,336.37572681506,347.58825104223,358.80077526939,370.01329949656,381.22582372373,392.4383479509,405.51962621593,418.60090448096,431.68218274599,444.76346101102,457.84473927605,470.92601754108,484.00729580611,497.08857407114,510.16985233617,523.2511306012],description:"Superparticular 22-tone scale"},super_24:{frequencies:[261.6255653006,270.34641747729,279.06726965397,287.78812183066,296.50897400735,305.22982618403,313.95067836072,322.67153053741,331.39238271409,340.11323489078,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,405.51962621593,418.60090448096,431.68218274599,444.76346101102,457.84473927605,470.92601754108,484.00729580611,497.08857407114,510.16985233617,523.2511306012],description:"Superparticular 24-tone scale, inverse of Mans.ur 'Awad"},super_7:{frequencies:[261.6255653006,287.78812183066,313.95067836072,353.19451315581,392.4383479509,431.68218274599,470.92601754108,523.2511306012],description:"A superparticular 7-tone scale"},super_8:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"A superparticular 8 tone scale"},super_9:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"A superparticular 9-tone scale"},suppig:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Friedrich Suppig's 19-tone JI scale. Calculus Musicus, Berlin 1722"},sur_7:{frequencies:[261.6255653006,280.40333801024,327.729041887,351.25128999693,383.0422478503,410.5345162762,479.82340237272,523.2511306012],description:"7-tone surupan"},sur_9:{frequencies:[261.6255653006,280.40333801024,305.78200836532,327.729041887,351.25128999693,383.0422478503,410.5345162762,447.69106452518,479.82340237272,523.2511306012],description:"Theoretical nine-tone surupan gamut"},sur_ajeng:{frequencies:[261.6255653006,285.30470202322,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Surupan ajeng"},sur_degung:{frequencies:[261.6255653006,322.09885310804,345.21700307457,396.55020354877,488.21056770985,523.2511306012],description:"Surupan degung"},sur_madenda:{frequencies:[261.6255653006,322.09885310804,345.21700307457,425.01198472693,488.21056770985,523.2511306012],description:"Surupan madenda"},sur_melog:{frequencies:[261.6255653006,280.40333801024,305.78200836532,383.0422478503,410.5345162762,523.2511306012],description:"Surupan melog"},sur_miring:{frequencies:[261.6255653006,285.30470202322,305.78200836532,389.73770840504,417.71053321823,523.2511306012],description:"Surupan miring"},sur_x:{frequencies:[261.6255653006,280.40333801024,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Surupan tone-gender X (= unmodified nyorog)"},sur_y:{frequencies:[261.6255653006,280.40333801024,300.52885648597,383.0422478503,410.5345162762,523.2511306012],description:"Surupan tone-gender Y (= mode on pamiring)"},sverige:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,440,466.16376151809,493.88330125613,523.2511306012,554.36526195375,587.32953583482,622.25396744417,659.25511382574,698.45646286601,739.98884542327,783.9908719635,830.60939515989,880,932.32752303618,987.76660251225,1046.5022612024,1174.65907166964,1318.51022765149,1396.91292573202,1567.98174392701],description:"Scale on Swedish 50 crown banknote of some kind of violin."},syntonolydian:{frequencies:[261.6255653006,294.32876096318,331.11985608357,372.50983809402,392.4383479509,441.49314144476,496.67978412536,523.2511306012],description:"Greek Syntonolydian, also genus duplicatum medium, or ditonum (Al-Farabi)"},syrian:{frequencies:[261.6255653006,268.67837258085,275.62199471997,279.38237857051,286.74979536837,294.32876096318,302.10804307229,310.07474405997,314.30517589183,322.59351978942,326.6631048533,331.11985608357,339.85160932548,348.83408706747,358.05397697456,367.49599295996,372.50983809402,382.33306049116,392.4383479509,402.81072409638,413.43299207996,419.07356785577,430.12469305256,441.49314144476,453.13547910064,465.11211608996,477.40530263275,489.99465727995,496.67978412536,509.77741398822,523.2511306012],description:"After ^Sayh.'Ali ad-Darwis^ (Shaykh Darvish) from d'Erlanger vol.5, p.29"},szpak_24:{frequencies:[261.6255653006,270.98948203641,277.18263097687,287.10335517712,293.66476791741,304.17540907689,311.12698372208,322.26262012861,329.62755691287,341.42535271779,349.22823143301,361.7275606831,369.99442271164,383.23700075636,391.99543598175,406.02545869431,415.30469757995,430.16898885692,440,455.74816803176,466.16376151809,482.84836435151,493.88330125613,511.56002220218,523.2511306012],description:"Stephen Szpak's scale, TL 2-1-2004"},pagano_b:{frequencies:[261.6255653006,277.97716313189,289.55954492905,312.72430852337,333.57259575826,351.8148470888,370.63621750918,389.16802838464,416.96574469783,444.76346101102,463.29527188648,486.4600354808,523.2511306012],description:"Pat Pagano and David Beardsley, 17-limit scale, TL 27-2-2001"},palace:{frequencies:[261.6255653006,277.01530443593,294.32876096318,299.00064605783,336.37572681506,348.83408706747,373.75080757229,392.4383479509,409.50088481833,428.11456140098,448.50096908674,470.92601754108,523.2511306012],description:"Palace mode+"},palace2:{frequencies:[261.6255653006,277.01530443593,336.37572681506,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Byzantine Palace mode, 17-limit"},panpipe1:{frequencies:[261.6255653006,305.78200836532,346.61566493686,386.59871897734,424.03113209229,475.68400784708,523.2511306012],description:"Palina panpipe of Solomon Islands. 1/1=f+45c. From Ocora CD Guadalcanal"},panpipe2:{frequencies:[261.6255653006,301.39807245198,340.46429857933,389.512652082,435.70052664441,481.48922855473,540.45338572244,606.98892366383,675.83458963267,749.45240308975,819.17415016614,915.78156525194,979.24522642508,1073.44040298899,1178.73719255088,1360.28482360484],description:"Lalave panpipe of Solomon Islands. 1/1=f'+47c."},panpipe3:{frequencies:[261.6255653006,302.44445076078,341.44901934006,382.59999559751,433.19107626846,482.88183400971,542.01653249392,602.10016957865,677.78929781797,755.1012944609,822.018116801,906.30932187391,994.06270356141,1067.87449159209,1155.14617783291,1300.35790771888],description:"Tenaho panpipe of Solomon Islands. 1/1=f'+67c."},parachrom:{frequencies:[261.6255653006,274.52698453615,288.06460709314,349.22823143301,391.99543598175,411.32572372413,431.60923940535,523.2511306012],description:"Parachromatic, new genus 5 + 5 + 20 parts"},parakleismic:{frequencies:[261.6255653006,269.41173453909,271.00883762044,279.07425994419,280.72864356353,282.39283618632,290.79705467987,292.52093234567,301.22657042972,303.0122754386,312.03014360907,313.87989341557,323.22118988972,325.13728335605,327.06473376202,336.79842078181,338.79499972275,348.87778808468,350.94597487438,361.39038519337,363.53274806687,374.35175001315,376.5709514911,387.77797996035,390.07677146523,392.38919046486,404.06698135965,406.46233589795,418.55895395107,421.04021853379,433.57068509561,436.14094342919,449.12081866987,451.783257426,465.22865943552,467.98658728446,470.76086444006,484.77105399159,487.64483417146,502.15750307968,505.13434926963,520.16751901001,523.2511306012],description:"Parakleismic temperament, g=315.250913, 5-limit"},parizek:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Petr Parizek, 12-tone Linear Level tuning, 1/1=Ab"},parizek_13lqmt:{frequencies:[261.6255653006,272.70676208351,292.18581651805,313.05623198362,325.57848126297,348.83408706747,365.23227064756,391.32028997953,406.97310157871,436.04260883433,467.18850946536,486.97636086341,523.2511306012],description:"April 2003 - Petr Parizek"},parizek_17lqmt:{frequencies:[261.6255653006,272.52663052146,291.99281841585,312.60407618638,327.03195662575,350.39138209902,364.70475555078,390.75509523297,408.78994578219,436.04260883433,467.18850946536,488.44386904122,523.2511306012],description:"To tune the scale by ear, please choose the intervals in the following order:"},parizek_7lmtd1:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,418.60090448096,437.98922762377,468.83301301868,490.54793493862,523.2511306012],description:"Use SET MIDDLE 62"},parizek_7lqmtd2:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,390.69417751556,418.60090448096,437.98922762377,468.83301301868,488.36772189445,523.2511306012],description:"Use SET MIDDLE 62"},parizek_cirot:{frequencies:[261.6255653006,273.76082553017,293.33333347996,307.98092841354,327.40170814054,348.04713286849,366.66693712906,392.88175996935,409.71484950008,438.01699797506,463.01593599647,491.10256480205,523.2511306012],description:"Overtempered circular tuning (1/1 is F)"},parizek_epi:{frequencies:[261.6255653006,283.42769574232,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"In The Epimoric World"},parizek_epi2:{frequencies:[261.6255653006,283.42769574232,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,523.2511306012,523.2511306012],description:"In the Epimoric World - extended (version for two keyboards)"},parizek_epi2a:{frequencies:[261.6255653006,283.42769574232,287.78812183066,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012,523.2511306012],description:"April 2003 - Petr Parizek"},parizek_ji1:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,366.27579142084,392.4383479509,412.06026534844,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Petr Parizek, 12-tone septimal tuning, 2002."},parizek_jiweltmp:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,329.45441556372,348.83408706747,370.63621750918,392.4383479509,416.96574469783,440.63253103259,465.11211608996,494.18162334558,523.2511306012],description:"April 2003 - Petr Parizek"},jiwt2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,331.11985608357,348.83408706747,372.08969287196,392.4383479509,415.8649508569,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"June 2003 - Petr Parizek"},parizek_llt7:{frequencies:[261.6255653006,283.42769574232,327.03195662575,359.73515228832,392.4383479509,425.14154361347,479.64686971777,523.2511306012],description:"7-tone mode of Linear Level Tuning 2000 (= wilson_helix)"},parizek_qmeb1:{frequencies:[261.6255653006,273.53155294581,293.066620053,305.25690181412,326.9069921792,350.33366042609,366.2083106197,392.1884190578,408.50877577745,437.87542071709,457.7197748295,488.61098601707,523.2511306012],description:"Equal beating quasi-meantone tuning no. 1 - F...A# (1/1 = 261.7Hz)(3/2 5/3 5/4 7/4 7/6)"},parizek_qmeb2:{frequencies:[261.6255653006,274.12423619715,293.39509530855,306.21121252767,327.1564453797,350.32795211486,366.55713600477,391.6914154272,409.44351174042,438.20041390279,457.4712730142,489.73875803795,523.2511306012],description:"Equal beating quasi-meantone tuning no. 2 - F...A# (1/1 = 262.7Hz)"},parizek_qmeb3:{frequencies:[261.6255653006,274.23252240717,293.57983281823,306.4052273004,327.28159934073,350.29865766202,366.78755898655,391.93906252094,409.53887392713,438.37260750749,457.59509656107,490.04864950866,523.2511306012],description:"Equal beating quasi-meantone tuning no. 3 - F...A#. 1/1 = 262Hz"},parizek_qmtp12:{frequencies:[261.6255653006,273.55480692456,293.00227310437,305.44101254122,326.6631048533,350.4133380576,366.39100206434,391.84790908124,408.48291326839,437.52264545758,457.47219685667,489.2574430773,523.2511306012],description:"12-tone quasi-meantone tuning with 1/9 Pyth. comma as basic tempering unit (F...A#)"},parizek_qmtp24:{frequencies:[261.6255653006,273.14323313659,280.64720643091,285.59764149034,293.00227310437,305.44101254122,313.83229199844,326.6631048533,335.63741195089,341.5578378819,350.4133380576,365.83975262993,375.89034660662,381.37064019061,391.84790908124,407.86833637529,419.07356785577,437.52264545758,448.86620556368,457.47219685667,469.33298761093,489.2574430773,502.69865025911,510.02774559919,523.2511306012],description:"24-tone quasi-meantone tuning with 1/9 Pyth. comma as basic tempering unit (Bbb...C##)"},parizek_syndiat:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,353.19451315581,387.59343007496,392.4383479509,436.04260883433,441.49314144476,484.4917875937,490.54793493862,523.2511306012],description:"Petr Parizek, diatonic scale with syntonic alternatives"},parizek_syntonal:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Petr Parizek, Syntonic corrections in JI tonality, Jan. 2004"},parizek_temp19:{frequencies:[261.6255653006,276.69969455132,294.32876096318,310.68035879446,328.58088727969,349.51540364377,368.93292606842,392.4383479509,415.04954182698,438.10784970625,466.02053819169,492.87133091954,523.2511306012],description:"Petr Parizek, genus [3 3 19 19 19] well temperament"},"partch-barstow":{frequencies:[261.6255653006,279.06726965397,287.78812183066,290.69507255622,294.32876096318,299.00064605783,313.95067836072,327.03195662575,348.83408706747,359.73515228832,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,470.92601754108,479.64686971777,490.54793493862,523.2511306012],description:"Guitar scale for Partch's Barstow (1941, 1968)"},"partch-greek":{frequencies:[261.6255653006,261.6255653006,271.31540105247,294.32876096318,279.06726965397,348.83408706747,313.95067836072,392.4383479509,392.4383479509,406.97310157871,418.60090448096,418.60090448096,523.2511306012],description:'Partch Greek scales from "Two Studies on Ancient Greek Scales" on black/white'},"partch-grm":{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,313.95067836072,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:'Partch Greek scales from "Two Studies on Ancient Greek Scales" mixed'},"partch-indian":{frequencies:[261.6255653006,269.80136421624,277.97716313189,285.40970760065,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,383.71749577421,392.4383479509,406.97310157871,411.12588832951,428.11456140098,441.49314144476,457.84473927605,475.68284600109,490.54793493862,507.3950357345,523.2511306012],description:"Partch's Indian Chromatic, Exposition of Monophony, 1933."},"partch-ur":{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"Ur-Partch curved keyboard, published in Interval"},"partch_29-av":{frequencies:[261.6255653006,269.80136421624,274.70684356563,280.31310567921,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,488.36772189445,498.33441009638,507.3950357345,523.2511306012],description:"29-tone JI scale from Partch's Adapted Viola 1928-30"},partch_29:{frequencies:[261.6255653006,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,523.2511306012],description:"Partch/Ptolemy 11-limit Diamond"},partch_37:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol.9(2)'},partch_39:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"Ur-Partch Keyboard 39 tones, published in Interval"},partch_41:{frequencies:[261.6255653006,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,442.75095666255,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,523.2511306012],description:"13-limit Diamond after Partch, Genesis of a Music, p 454, 2nd edition"},partch_41a:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol. 9(2)'},partch_41comb:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,274.70684356563,279.06726965397,280.31310567921,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,488.36772189445,490.54793493862,498.33441009638,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"41-tone JI combination from Partch's 29-tone and 37-tone scales"},partch_43:{frequencies:[261.6255653006,264.89588486686,269.80136421624,274.70684356563,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,498.33441009638,507.3950357345,516.79124009995,523.2511306012],description:"Harry Partch's 43-tone pure scale"},partch_43a:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.70684356563,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,498.33441009638,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol. 9(2)'},patala:{frequencies:[261.6255653006,289.6217982776,320.24370022528,355.94891173479,393.58362272115,439.74591942221,480.6555937997,537.34060327431],description:"Observed patala tuning from Burma, Helmholtz/Ellis p. 518, nr.83"},pelog1:{frequencies:[261.6255653006,285.79952600623,313.83440569119,359.87690576543,393.35634555235,426.98050185716,482.04578814299,523.2511306012],description:"Gamelan Saih pitu from Ksatria, Den Pasar (South Bali). 1/1=312.5 Hz"},pelog10:{frequencies:[261.6255653006,290.16653606067,310.14521470005,342.49164912079,385.30310526088,418.60090448096,442.38504678101,523.2511306012],description:"Balinese saih 7 scale, Krobokan. 1/1=275 Hz. McPhee, 1966"},pelog11:{frequencies:[261.6255653006,289.11520789678,327.03195662575,352.6257619269,388.64667309147,441.73012112348,478.69895237627,523.2511306012],description:"Balinese saih pitu, gamelan luang, banjar Se`se'h. 1/1=276 Hz. McPhee, 1966"},pelog11i:{frequencies:[261.6255653006,267.83009854382,287.76973397991,309.19384990071,332.21296611011,356.94582815655,383.52002471837,392.61532371972,421.84506978464,453.25093845942,486.99493426005,523.2511306012],description:"George Secor's isopelogic scale with ~537.84194 generator and just 13/11"},pelog12:{frequencies:[261.6255653006,284.41230790592,308.04300430555,358.68021049276,385.68672051706,409.31741667997,472.61392441399,523.2511306012],description:"Balinese saih pitu, gamelan Semar Pegulingan, Tampak Gangsai, 1/1=310, McPhee"},pelog13:{frequencies:[261.6255653006,289.80062617913,323.61069924911,351.78575931905,394.45085229937,454.02098012766,494.27106657141,523.2511306012],description:"Balinese saih pitu, gamelan Semar Pegulingan, Klungkung, 1/1=325. McPhee, 1966"},pelog14:{frequencies:[261.6255653006,287.66412867175,309.98289727559,347.18084494866,375.69927149802,402.97776645827,427.77639824032,523.2511306012],description:"Balinese saih pitu, suling gambuh, Tabanan, 1/1=211 Hz, McPhee, 1966"},pelog15:{frequencies:[261.6255653006,284.9387344858,307.6043148279,344.51683351465,375.60105909492,407.98046074103,427.4081017287,523.2511306012],description:"Balinese saih pitu, suling gambuh, Batuan, 1/1=202 Hz. McPhee, 1966"},pelog2:{frequencies:[261.6255653006,285.30470202322,314.92395982138,345.81573716922,388.6137256405,424.52127512829,466.97226207056,523.2511306012],description:"Bamboo gambang from Batu lulan (South Bali). 1/1=315 Hz"},pelog3:{frequencies:[261.6255653006,285.63448939555,315.83481057014,390.18821123181,421.34544350737,523.2511306012],description:"Gamelan Gong from Padangtegal, distr. Ubud (South Bali). 1/1=555 Hz"},pelog4:{frequencies:[261.6255653006,290.96323214696,317.29765457754,352.87817160549,385.03871768789,434.94616895528,470.49199937597,523.2511306012],description:"Hindu-Jav. demung, excavated in Banjarnegara. 1/1=427 Hz"},pelog5:{frequencies:[261.6255653006,284.64626913494,310.94732162256,358.21775774651,390.8649420513,427.47405410759,468.32288027948,523.2511306012],description:"Gamelan Kyahi Munggang (Paku Alaman, Jogja). 1/1=199.5 Hz"},pelog6:{frequencies:[261.6255653006,282.02769802256,315.83481057014,354.51258839996,386.37547528213,413.39000965417,523.2511306012],description:"Gamelan Semar pegulingan, Ubud (S. Bali). 1/1=263.5 Hz"},pelog7:{frequencies:[261.6255653006,281.2143451833,303.31920717687,353.89879686059,384.81637482457,412.43597848639,448.72664641273,523.2511306012],description:"Gamelan Kantjilbelik (kraton Jogja). Measured by Surjodiningrat, 1972."},pelog8:{frequencies:[261.6255653006,281.2143451833,305.0763174688,362.1707891162,386.59871897734,415.30469757995,456.83405152976,529.33101587613,573.91491069685,623.33318620372,730.64478690489,786.25839925218,840.74610520523,945.88853913022,1075.30214607265],description:"from William Malm: Music Cultures of the Pacific, the Near East and Asia."},pelog9:{frequencies:[261.6255653006,282.57123920205,305.19382000629,356.01745236555,384.52011812375,415.30469757995,448.5538823653,523.2511306012],description:"9-tET Pelog"},pelog9i:{frequencies:[261.6255653006,287.76973397991,309.19384990071,332.21296611011,356.94582815655,383.52002471837,421.84506978464,453.25093845942,486.99493426005,523.2511306012],description:"George Secor's isopelogic scale with ~537.84194 generator and just 13/11"},pelog_24:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,440,479.82340237272,523.2511306012],description:"Subset of 24-tET (Sumatra?)"},pelog_a:{frequencies:[261.6255653006,280.7274598329,305.95868600104,363.84824628932,386.82209166041,411.72190027758,452.10885997356,523.2511306012],description:"Pelog, average class A. Kunst 1949"},pelog_alv:{frequencies:[261.6255653006,299.00064605783,313.95067836072,343.38355445704,392.4383479509,418.60090448096,457.84473927605,523.2511306012],description:"Bill Alves JI Pelog, 1/1 vol. 9 no. 4, 1997. 1/1=293.33"},pelog_av:{frequencies:[261.6255653006,280.40333801024,305.78200836532,357.39105439675,385.26118901859,411.72190027758,452.89298412314,523.2511306012],description:'"Normalised Pelog", Kunst, 1949. Average of 39 Javanese gamelans'},pelog_b:{frequencies:[261.6255653006,280.07959041159,302.79405018898,354.30787302884,382.82105786018,408.64182041696,451.58686491179,523.2511306012],description:"Pelog, average class B. Kunst 1949"},pelog_c:{frequencies:[261.6255653006,279.91785681123,304.37225518229,350.84574289301,384.81637482457,410.29745071461,451.58686491179,523.2511306012],description:"Pelog, average class C. Kunst 1949"},pelog_he:{frequencies:[261.6255653006,283.17034563789,338.50336851425,364.68988616898,389.06292924114,420.13030572059,493.31307433255,523.2511306012],description:"Observed Javanese Pelog scale, Helmholtz/Ellis p. 518, nr.96"},pelog_jc:{frequencies:[261.6255653006,294.32876096318,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"John Chalmers' Pelog, on keys C# E F# A B c#, like Olympos' Enharmonic on 4/3"},pelog_laras:{frequencies:[261.6255653006,283.42769574232,305.22982618403,370.63621750918,392.4383479509,414.24047839262,457.84473927605,523.2511306012],description:'Lou Harrison, gamelan "Si Betty"'},pelog_me1:{frequencies:[261.6255653006,281.13654920971,305.96893643544,353.85975480175,389.33427481332,412.3928606827,454.07565526112,523.2511306012],description:"Gamelan Kyahi Kanyut Mesem pelog (Mangku Nagaran). 1/1=295 Hz"},pelog_me2:{frequencies:[261.6255653006,277.86440299076,299.96729002515,349.58586605592,383.41679241104,405.97081699752,447.47001910635,523.2511306012],description:"Gamelan Kyahi Bermara (kraton Jogja). 1/1=290 Hz"},pelog_me3:{frequencies:[261.6255653006,281.75056896146,306.90688773629,358.59164065877,385.12012728597,411.64865826518,457.38747412584,523.2511306012],description:"Gamelan Kyahi Pangasih (kraton Solo). 1/1=286 Hz"},pelog_pa:{frequencies:[261.6255653006,286.29520819723,313.29104303136,342.83241505062,387.04559340587,423.54155496477,463.47885582013,523.2511306012],description:'"Blown fifth" pelog, von Hornbostel, type a.'},pelog_pa2:{frequencies:[261.6255653006,286.29520819723,313.29104303136,353.69443592699,387.04559340587,423.54155496477,463.47885582013,523.2511306012],description:"New mixed gender Pelog"},pelog_pb:{frequencies:[261.6255653006,277.98432293805,304.19649364034,353.69443592699,387.04559340587,411.24653512154,450.02449304881,523.2511306012],description:'"Primitive" Pelog, step of blown semi-fourths, von Hornbostel, type b.'},pelog_pb2:{frequencies:[261.6255653006,277.50302994288,303.66981774726,353.69443592699,387.04559340587,410.5345162762,449.24533531117,523.2511306012],description:'"Primitive" Pelog, Kunst: Music in Java, p. 28'},pelog_schmidt:{frequencies:[261.6255653006,287.78812183066,313.95067836072,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Modern Pelog designed by Dan Schmidt and used by Berkeley Gamelan"},pelog_selun:{frequencies:[261.6255653006,281.10829462369,350.68958753059,378.52209447746,416.55977244877,523.2511306012,562.21664032682,701.37917506118,757.04418895493,833.11970794305,1046.5022612024,1124.43328065364],description:"Gamelan selunding from Kengetan, South Bali (Pelog), 1/1=141 Hz"},pelog_slen:{frequencies:[261.6255653006,289.4545544734,306.66641795878,334.42210013281,344.22141564971,354.30787302884,386.37547528213,397.69714089209,446.39994737251,459.48046426806,493.88330125613,523.2511306012],description:"W.P. Malm, pelog+slendro, Musical Cultures Of The Pacific, The Near East, And Asia. P: 1,3,5,6,8,10; S: 2,4,7,9"},pelog_str:{frequencies:[261.6255653006,282.73796785026,305.22982618403,329.86096249197,356.10146388137,384.83778957396,415.4517078616,448.97742116962,484.69365917187,523.80699136456],description:"JI Pelog with stretched 2/1 and extra tones between 2-3, 6-7. Wolf, XH 11, '87"},pelogic:{frequencies:[261.6255653006,268.93425429917,294.59920226397,322.71340889889,353.51061198674,363.38617257172,398.06486099125,436.0530078362,477.66644151787,523.2511306012],description:"Pelogic temperament, g=521.1, 5-limit"},pelogic2:{frequencies:[261.6255653006,252.56770712848,285.96465797334,276.06414495892,312.56802260838,301.74646235804,341.64630500046,386.82209166041,373.42974737602,422.80824892286,408.17001145418,462.1422075194,523.2511306012],description:"Pelogic temperament, g=677.0 in cycle of fifths order"},penta1:{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,331.11985608357,372.50983809402,376.74081403286,397.34382730029,423.83341578697,441.49314144476,470.92601754108,496.67978412536,523.2511306012],description:"Pentagonal scale 9/8 3/2 16/15 4/3 5/3"},penta2:{frequencies:[261.6255653006,267.07609791103,286.15296204753,305.22982618403,312.97980223949,333.84512238879,356.10146388137,363.36884069528,400.61414686654,436.04260883433,457.84473927605,476.92160341255,523.2511306012],description:"Pentagonal scale 7/4 4/3 15/8 32/21 6/5"},penta_opt:{frequencies:[261.6255653006,292.5084949701,327.03692214239,391.62201198054,436.95817401562,523.2511306012],description:"Optimally consonant major pentatonic, John deLaubenfels, 2001"},pentadekany:{frequencies:[261.6255653006,283.42769574232,299.7792935736,305.22982618403,327.03195662575,354.2846196779,359.73515228832,381.53728273004,389.71308164569,419.69101100305,425.14154361347,436.04260883433,457.84473927605,479.64686971777,495.99846754905,523.2511306012],description:"2)6 1.3.5.7.11.13 Pentadekany (1.3 tonic)"},pentadekany2:{frequencies:[261.6255653006,269.80136421624,294.32876096318,299.7792935736,305.22982618403,327.03195662575,343.38355445704,359.73515228832,381.53728273004,392.4383479509,419.69101100305,436.04260883433,457.84473927605,479.64686971777,490.54793493862,523.2511306012],description:"2)6 1.3.5.7.9.11 Pentadekany (1.3 tonic)"},pentadekany3:{frequencies:[261.6255653006,277.97716313189,278.79474302345,287.78812183066,291.4672313427,300.86940009569,305.77487944508,319.67373760167,359.73515228832,376.08675011961,405.51962621593,413.69542513157,430.86460285443,444.76346101102,506.89953276991,523.2511306012],description:"2)6 1.5.11.17.23.31 Pentadekany (1.5 tonic)"},pentatetra1:{frequencies:[261.6255653006,275.39533189537,290.69507255622,327.03195662575,348.83408706747,392.4383479509,413.09299784305,436.04260883433,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatetra2:{frequencies:[261.6255653006,275.39533189537,307.79478270659,327.03195662575,348.83408706747,392.4383479509,413.09299784305,461.69217405988,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatetra3:{frequencies:[261.6255653006,290.69507255622,307.79478270659,327.03195662575,348.83408706747,392.4383479509,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatriad:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"4:5:6 Pentatriadic scale"},pentatriad1:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,387.59343007496,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"3:5:9 Pentatriadic scale"},pepper:{frequencies:[261.6255653006,274.70684356563,290.69507255622,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,367.91095120397,392.4383479509,406.97310157871,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"Keenan Pepper's 17-tone jazz tuning, TL 07-06-2000"},pepper2:{frequencies:[261.6255653006,281.81099471089,295.05751399041,308.92668738628,332.76158224462,348.40303271111,375.28368107222,392.9238840789,423.23948674937,443.13385158124,463.96335069158,499.75992392917,523.2511306012],description:`Keenan Pepper's "Noble Fifth" with chromatic/diatonic semitone = Phi (12)`},peprmint:{frequencies:[261.6255653006,270.64528749638,281.81099405977,291.52662269553,295.0575145017,305.22982618403,308.92668738628,319.57714845986,332.76158147578,344.23376699744,348.40303331485,360.41446869983,375.28368085545,388.22184514393,392.92388339801,406.47020562703,423.23948723831,437.83096109824,443.13385158124,458.41119713782,463.9633498876,479.95880678291,499.75992479518,516.98949333115,523.2511306012],description:"Peppermint 24: Wilson/Pepper apotome/limma=Phi, 2 chains spaced for pure 7:6"},"perkis-indian":{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.01393146398,369.99442271164,377.90359432309,388.70083987518,400.13321751856,412.18367363396,425.14154361347,438.99882991118,453.48431318771,469.12170329763,485.27322596079,503.87145909745,523.2511306012],description:"Indian 22 Perkis"},"perrett-tt":{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,515.07533168556,523.2511306012],description:"Perrett Tierce-Tone"},perrett:{frequencies:[261.6255653006,274.70684356563,279.06726965397,348.83408706747,392.4383479509,412.06026534844,418.60090448096,523.2511306012],description:"Perrett / Tartini / Pachymeres Enharmonic"},perrett_14:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,412.06026534844,436.04260883433,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Perrett's 14-tone system (subscale of tierce-tone)"},perrett_chrom:{frequencies:[261.6255653006,274.70684356563,294.32876096318,348.83408706747,392.4383479509,412.06026534844,441.49314144476,523.2511306012],description:"Perrett's Chromatic"},perry:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Robin Perry, Tuning List 22-9-'98"},perry2:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,415.27867508032,436.04260883433,457.84473927605,498.33441009638,523.2511306012],description:"Robin Perry, 7-limit scale, TL 22-10-2006"},perry3:{frequencies:[261.6255653006,277.97716313189,294.32876096318,307.79478270659,327.03195662575,348.83408706747,369.35373924791,370.63621750918,392.4383479509,418.60090448096,444.76346101102,465.11211608996,492.47165233054,523.2511306012],description:"Robin Perry, symmetrical 3,5,17 scale, TL 22-10-2006"},"persian-far":{frequencies:[261.6255653006,275.58617649731,282.84340331238,294.51413096332,310.22971009486,318.39923223688,331.53706992441,349.22823143301,362.58942698662,376.46181130035,391.99543598175,412.91271853531,423.78627283082,441.27260666252,464.81937009253,477.05982293263,496.7443381147,523.2511306012],description:"Hormoz Farhat, average of observed Persian tar and sehtar tunings (1966)"},"persian-vaz":{frequencies:[261.6255653006,277.18263097687,285.30470202322,293.66476791741,311.12698372208,320.24370022528,329.62755691287,349.22823143301,359.46139971304,380.8360868427,391.99543598175,415.30469757995,427.47405410759,440,466.16376151809,479.82340237272,493.88330125613,523.2511306012],description:"Vaziri's Persian tuning, using quartertones"},persian:{frequencies:[261.6255653006,275.62199471997,282.55561052465,294.32876096318,310.07474405997,317.87506184023,331.11985608357,348.83408706747,363.36884069528,376.74081403286,392.4383479509,413.43299207996,423.83341578697,441.49314144476,465.11211608996,476.81259276034,496.67978412536,523.2511306012],description:"Persian Tar Scale, from Dariush Anooshfar, Internet Tuning List 2/10/94"},persian2:{frequencies:[261.6255653006,275.62199471997,288.32205155576,294.32876096318,310.07474405997,321.08592105074,331.11985608357,348.83408706747,367.49599295996,384.42940207435,392.4383479509,413.43299207996,428.11456140098,441.49314144476,465.11211608996,489.99465727995,512.57253609913,523.2511306012],description:"Traditional Persian scale, from Mark Rankin"},phi1_13:{frequencies:[261.6255653006,272.27874348295,293.41755524936,305.36527715608,329.07281683115,342.47239171077,356.41758627629,384.088434771,399.72820043646,416.00480451705,448.3020273708,466.55651779723,502.7784067407,523.2511306012],description:"Pythagorean scale with (Phi + 1) / 2 as fifth"},phi_10:{frequencies:[261.6255653006,277.06593756944,293.41755524936,323.38703872151,342.47239171077,362.68389667063,399.72820043646,423.31898451752,448.3020273708,494.09131284284,523.2511306012],description:"Pythagorean scale with Phi as fifth"},phi_12:{frequencies:[261.6255653006,280.653851324,301.06608340242,314.41721066027,337.28508524374,352.24238645938,377.86132347501,405.34355110824,423.31898451752,454.10739278061,474.24531572837,508.73764640933,531.29821178855],description:"Non-Octave Pythagorean scale with Phi as fourth. Jacky Ligon TL 12-04-2001"},phi_13:{frequencies:[261.6255653006,277.06593756944,293.41755524936,305.36527715608,323.38703872151,342.47239171077,362.68389667063,377.45230514615,399.72820043646,423.31898451752,448.3020273708,466.55651779723,494.09131284284,523.2511306012],description:"Pythagorean scale with Phi as fifth"},phi_13a:{frequencies:[261.6255653006,280.653851324,293.09977429907,314.41721066027,328.36040925687,352.24238645938,377.86132347501,394.61802538749,423.31898451752,442.09155952525,474.24531572837,508.73764640933,531.29821178855,569.94005600595],description:"Non-Octave Pythagorean scale with Phi as fifth, Jacky Ligon TL 12-04-2001"},phi_13b:{frequencies:[261.6255653006,277.56939878091,287.90530191745,305.45065986668,316.82478268872,336.13253486432,356.61692887617,369.89633953852,392.4383479509,407.05164722964,431.8579526603,458.17598957099,475.23717379553,504.19880204444],description:"Non-Octave Pythagorean scale with 12 3/2s, Jacky Ligon, TL 12-04-2001"},phi_17:{frequencies:[261.6255653006,276.86436108535,292.99059544936,310.05629713556,328.11582814217,347.22745468775,367.4522682176,388.8548834608,411.50435256812,435.47307590797,460.83762934409,487.67984759381,516.08523529366,546.14543793146,577.9565447239,611.62018657326,647.24497389216,684.94478342154],description:"Phi + 1 equal division by 17, Brouncker (1653)"},phi_7b:{frequencies:[261.6255653006,277.06593756944,299.7954575021,323.38703872151,342.47239171077,369.42210382256,399.72820043646,423.31898451752],description:"Heinz Bohlen's Pythagorean scale with Phi as fifth (1999)"},phi_7be:{frequencies:[261.6255653006,277.18263097687,299.37379946195,323.3415889232,342.56848033562,369.99442271164,399.61607881612,423.37848741825],description:"36-tET approximation of phi_7b"},phi_8:{frequencies:[261.6255653006,280.010356995,292.01318753119,312.53354015396,325.93049860793,348.83408706747,373.34714284662,389.35091690288,416.71138708025],description:"Non-Octave Pythagorean scale with 4/3s, Jacky Ligon, TL 12-04-2001"},phi_8a:{frequencies:[261.6255653006,275.77662731691,284.90271245142,300.31281179658,310.2506767011,327.03195662575,344.72084112096,356.12824371673,375.39107678967],description:"Non-Octave Pythagorean scale with 5/4s, Jacky Ligon, TL 12-04-2001"},phillips_19:{frequencies:[261.6255653006,274.63272075836,286.12988535196,293.66476791741,305.42895910556,326.59518553839,329.62755691287,342.83241505062,349.22823143301,366.5907009274,384.81637482457,391.99543598175,407.69874723177,428.71043212875,440,457.62637091093,489.33987776603,493.88330125613,513.66823365307,523.2511306012],description:"Pauline Phillips, organ manual scale, TL 7-10-2002"},phillips_19a:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,326.62388782443,329.50688232588,342.79852229325,349.26020182051,366.55580177366,381.34192228364,391.95955371998,407.7704102616,427.96347506501,439.87918162894,457.62301915088,489.33808574423,493.65730140218,509.07699553894,523.2511306012],description:"Adaptation by Gene Ward Smith with more consonant chords, TL 25-10-2002"},phillips_22:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.5744765615,306.59245933664,327.03195662575,331.11985608357,343.38355445704,349.22797321314,367.91095120397,392.4383479509,407.76797091773,408.78994578219,416.96574469783,429.2294430713,441.49314144476,457.84473927605,459.88868900496,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:"All-key 19-limit JI scale (2002), TL 21-10-2002"},phillips_ji:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.5744765615,306.59245933664,327.03195662575,331.11985608357,349.22797321314,367.91095120397,386.30649876417,392.4383479509,407.76797091773,408.78994578219,429.2294430713,441.49314144476,457.84473927605,459.88868900496,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:'Pauline Phillips, JI 0 #/b "C" scale (2002), TL 8-10-2002'},phryg_chromcon2:{frequencies:[261.6255653006,283.42769574232,294.32876096318,305.22982618403,392.4383479509,414.24047839262,436.04260883433,523.2511306012],description:"Harmonic Conjunct Chromatic Phrygian"},phryg_chromconi:{frequencies:[261.6255653006,283.42769574232,348.83408706747,370.63621750918,392.4383479509,479.64686971777,501.44900015948,523.2511306012],description:"Inverted Conjunct Chromatic Phrygian"},phryg_chrominv:{frequencies:[261.6255653006,272.52663052146,283.42769574232,348.83408706747,392.4383479509,414.24047839262,436.04260883433,523.2511306012],description:"Inverted Schlesinger's Chromatic Phrygian"},phryg_chromt:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,324.77656382143,336.37572681506,362.25078272391,392.4383479509,409.50088481833,418.60090448096,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,627.90135672144,649.55312764287,672.75145363011,724.50156544782,784.8766959018,819.00176963666,837.20180896192,856.22912280196,941.85203508216,1046.5022612024],description:"Phrygian Chromatic Tonos"},phryg_diat:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,392.4383479509,448.50096908674,483.00104363188,523.2511306012],description:"Schlesinger's Phrygian Harmonia, a subharmonic series through 13 from 24"},phryg_diatcon:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,448.50096908674,483.00104363188,523.2511306012],description:"A Phrygian Diatonic with its own trite synemmenon replacing paramese"},phryg_diatinv:{frequencies:[261.6255653006,283.42769574232,305.22982618403,370.63621750918,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Inverted Conjunct Phrygian Harmonia with 17, the local Trite Synemmenon"},phryg_diatsinv:{frequencies:[261.6255653006,283.42769574232,305.22982618403,348.83408706747,370.63621750918,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Inverted Schlesinger's Phrygian Harmonia, a harmonic series from 12 from 24"},phryg_enh:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,392.4383479509,405.0976494977,418.60090448096,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the enharmonic genus"},phryg_enhcon:{frequencies:[261.6255653006,283.42769574232,288.87822835275,294.32876096318,392.4383479509,403.33941317176,414.24047839262,523.2511306012],description:"Harmonic Conjunct Enharmonic Phrygian"},phryg_enhinv:{frequencies:[261.6255653006,327.03195662575,337.93302184661,348.83408706747,392.4383479509,501.44900015948,512.35006538034,523.2511306012],description:"Inverted Schlesinger's Enharmonic Phrygian Harmonia"},phryg_enhinv2:{frequencies:[261.6255653006,267.07609791103,272.52663052146,348.83408706747,392.4383479509,403.33941317176,414.24047839262,523.2511306012],description:"Inverted harmonic form of Schlesinger's Enharmonic Phrygian"},phryg_penta:{frequencies:[261.6255653006,270.64713651786,285.40970760065,348.83408706747,392.4383479509,413.09299784305,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the pentachromatic genus"},phryg_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,392.4383479509,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,784.8766959018,856.22912280196,941.85203508216,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Phrygian Tonos"},phryg_tri1:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the chromatic genus"},phryg_tri1inv:{frequencies:[261.6255653006,305.22982618403,327.03195662575,348.83408706747,392.4383479509,479.64686971777,501.44900015948,523.2511306012],description:"Inverted Schlesinger's Chromatic Phrygian Harmonia"},phryg_tri2:{frequencies:[261.6255653006,269.10058145205,285.40970760065,348.83408706747,392.4383479509,409.50088481833,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the second trichromatic genus"},phryg_tri3:{frequencies:[261.6255653006,269.10058145205,277.01530443593,348.83408706747,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the first trichromatic genus"},phrygian:{frequencies:[261.6255653006,290.69507255622,313.95067836072,327.03195662575,348.83408706747,353.19451315581,387.59343007496,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,523.2511306012],description:"Old Phrygian ??"},phrygian_diat:{frequencies:[261.6255653006,277.01530443593,294.32876096318,336.37572681506,348.83408706747,362.25078272391,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012,554.03060887186,588.65752192635,672.75145363011,697.66817413493,724.50156544782,753.48162806573,784.8766959018,856.22912280196,897.00193817349,941.85203508216,991.42319482333,1046.5022612024],description:"Phrygian Diatonic Tonos"},phrygian_enh:{frequencies:[261.6255653006,277.01530443593,294.32876096318,303.82323712328,308.80394592858,313.95067836072,348.83408706747,392.4383479509,400.78810003496,405.0976494977,409.50088481833,459.44001711325,523.2511306012],description:"Phrygian Enharmonic Tonos"},phrygian_harm:{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Phrygian Harmonia-Aliquot 24 (flute tuning)"},piano:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"Enhanced Piano Total Gamut, see 1/1 vol. 8/2 January 1994"},piano7:{frequencies:[261.6255653006,275.93321340298,294.32876096318,305.22982618403,327.03195662575,348.83408706747,367.91095120397,392.4383479509,406.97310157871,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Enhanced piano 7-limit"},pipedum_10:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,372.08969287196,396.89567239676,431.14564594215,459.88868900496,490.54793493862,523.2511306012],description:"2048/2025 and 34171875/33554432 are homophonic intervals"},pipedum_10a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,465.11211608996,490.54793493862,523.2511306012],description:"2048/2025 and 25/24, Manuel Op de Coul, 2001"},pipedum_10b:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,367.91095120397,392.4383479509,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"225/224, 64/63 and 25/24 are homophonic intervals"},pipedum_10c:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 64/63 and 49/48 are homophonic intervals"},pipedum_10d:{frequencies:[261.6255653006,279.06726965397,299.00064605783,318.93402246168,343.38355445704,372.08969287196,392.4383479509,425.24536328225,448.50096908674,488.36772189445,523.2511306012],description:"1029/1024, 2048/2025 and 64/63 are homophonic intervals"},pipedum_10e:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,367.91095120397,406.97310157871,429.2294430713,465.11211608996,490.54793493862,523.2511306012],description:"2048/2025, 64/63 and 49/48 are homophonic intervals"},pipedum_10f:{frequencies:[261.6255653006,280.31310567921,294.32876096318,327.03195662575,348.83408706747,373.75080757229,392.4383479509,420.46965851882,465.11211608996,490.54793493862,523.2511306012],description:"225/224, 64/63 and 28/27 are homophonic intervals"},pipedum_10g:{frequencies:[261.6255653006,280.31310567921,299.00064605783,325.57848126297,348.83408706747,372.08969287196,398.6675280771,425.24536328225,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 1029/1024 and 2048/2025 are homophonic intervals"},pipedum_10h:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,373.75080757229,400.61414686654,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 1029/1024 and 64/63 are homophonic intervals"},pipedum_10i:{frequencies:[261.6255653006,279.06726965397,294.32876096318,321.92208230347,343.38355445704,367.91095120397,392.4383479509,418.60090448096,457.84473927605,488.36772189445,523.2511306012],description:"225/224, 2048/2025 and 49/48 are homophonic intervals"},pipedum_10j:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,457.84473927605,488.36772189445,523.2511306012],description:"25/24, 28/27 and 49/48, Gene Ward Smith, 2002"},pipedum_10k:{frequencies:[261.6255653006,280.31310567921,299.00064605783,320.49131749323,343.38355445704,367.91095120397,394.1903048614,420.46965851882,455.80987376816,488.36772189445,523.2511306012],description:"2048/2025, 225/224 and 2401/2400"},pipedum_11:{frequencies:[261.6255653006,272.52663052146,282.55561052465,313.95067836072,327.03195662575,363.36884069528,376.74081403286,392.4383479509,436.04260883433,454.2110508691,470.92601754108,523.2511306012],description:"16/15 and 15625/15552 are homophonic intervals"},pipedum_11a:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,322.92069774245,366.27579142084,376.74081403286,381.53728273004,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"126/125, 1728/1715 and 10/9, Gene Ward Smith, 2002"},pipedum_12:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"81/80 and 2048/2025 are homophonic intervals"},pipedum_12a:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"81/80 and 2048/2025 are homophonic intervals"},pipedum_12b:{frequencies:[261.6255653006,274.70684356563,299.00064605783,313.95067836072,320.49131749323,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,488.36772189445,523.2511306012],description:"64/63, 50/49 comma and 36/35 chroma"},pipedum_12c:{frequencies:[261.6255653006,280.31310567921,294.32876096318,315.35224388912,327.03195662575,348.83408706747,367.91095120397,392.4383479509,420.46965851882,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 64/63 and 36/35 are homophonic intervals"},pipedum_12d:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"50/49, 128/125 and 225/224 are homophonic intervals"},pipedum_12e:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,373.75080757229,392.4383479509,418.60090448096,439.53094970501,467.18850946536,500.55911728431,523.2511306012],description:"50/49, 225/224 and 3136/3125 are homophonic intervals"},pipedum_12f:{frequencies:[261.6255653006,273.74326726486,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,408.78994578219,437.98922762377,468.83301301868,490.54793493862,523.2511306012],description:"128/125, 3136/3125 and 703125/702464 are homophonic intervals"},pipedum_12g:{frequencies:[261.6255653006,279.06726965397,286.15296204753,306.59245933664,327.03195662575,348.83408706747,366.27579142084,390.69417751556,408.78994578219,437.98922762377,457.84473927605,488.36772189445,523.2511306012],description:"50/49, 225/224 and 28672/28125 are homophonic intervals"},pipedum_12h:{frequencies:[261.6255653006,275.93321340298,291.02331101095,310.42486507835,330.74639366397,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.53496651643,465.11211608996,496.11959049595,523.2511306012],description:"2048/2025 and 67108864/66430125, Gene Ward Smith, 2004"},pipedum_12i:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,378.42269266694,392.4383479509,406.97310157871,441.49314144476,465.11211608996,504.56359022259,523.2511306012],description:"64/63 and 6561/6272, Gene Ward Smith, 2004"},pipedum_12j:{frequencies:[261.6255653006,283.8170195002,285.83021674664,310.07474405997,336.37572681506,348.83408706747,378.42269266694,392.4383479509,413.43299207996,448.50096908674,465.11211608996,504.56359022259,523.2511306012],description:"6561/6272 and 59049/57344"},pipedum_12k:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,448.50096908674,457.84473927605,474.80195184183,523.2511306012],description:"64/63 and 729/686, Gene Ward Smith, 2004"},pipedum_12l:{frequencies:[261.6255653006,276.16031892841,294.32876096318,310.68035879446,331.39238271409,348.83408706747,368.21375857121,392.4383479509,414.24047839262,441.49314144476,465.11211608996,497.08857407114,523.2511306012],description:"81/80, 361/360 and 513/512, Gene Ward Smith"},pipedum_13:{frequencies:[261.6255653006,276.76092858245,287.78812183066,309.14739649778,327.03195662575,345.95116072807,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"33275/32768 and 163840/161051 are homophonic intervals. Op de Coul, 2001"},pipedum_13a:{frequencies:[261.6255653006,266.96486255163,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,512.78610798918,523.2511306012],description:"15/14, 3136/3125, 2401/2400, Gene Ward Smith, 2002"},pipedum_13b:{frequencies:[261.6255653006,267.90457886781,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,510.98743222773,523.2511306012],description:"15/14, 3136/3125, 6144/6125, Gene Ward Smith, 2002"},pipedum_13bp:{frequencies:[261.6255653006,282.55561052465,305.16005936662,336.45263027341,363.36884069528,392.4383479509,436.04260883433,470.92601754108,508.60009894437,545.05326104292,605.61473449213,654.0639132515,706.38902631162,784.8766959018],description:"78732/78125 and 250/243, twelfth based, Manuel Op de Coul, 2003"},pipedum_13bp2:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012,565.1112210493,627.90135672144,678.13346525916,726.73768139056,784.8766959018],description:"250/243 and 648/625, twelfth based, Manuel Op de Coul, 2003"},pipedum_13c:{frequencies:[261.6255653006,267.07609791103,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,512.57253609913,523.2511306012],description:"15/14, 2401/2400, 6144/6125, Gene Ward Smith, 2002"},pipedum_13d:{frequencies:[261.6255653006,281.04308772525,287.78812183066,309.14739649778,327.03195662575,334.88072358477,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"125/121 and 33275/32768, Joe Monzo, 2003"},pipedum_13e:{frequencies:[261.6255653006,276.76092858245,287.78812183066,304.4370214407,327.03195662575,334.88072358477,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"33275/32768 and 163840/161051, Manuel Op de Coul, 2004"},pipedum_14:{frequencies:[261.6255653006,274.70684356563,284.76252005507,305.22982618403,320.49131749323,336.37572681506,348.83408706747,373.90653707544,392.4383479509,406.97310157871,427.14378008261,448.50096908674,480.73697623985,498.33441009638,523.2511306012],description:"81/80, 49/48 and 2401/2400, Paul Erlich, TL 17-1-2001"},pipedum_14a:{frequencies:[261.6255653006,274.70684356563,284.8811711051,305.22982618403,320.35783506196,336.37572681506,348.83408706747,366.27579142084,392.4383479509,406.97310157871,427.32175665765,448.50096908674,480.53675259294,498.33441009638,523.2511306012],description:"81/80, 50/49 and 2401/2400, Paul Erlich, 2001"},pipedum_14b:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,313.95067836072,339.14425131559,353.19451315581,366.27579142084,392.4383479509,406.97310157871,418.60090448096,457.84473927605,470.92601754108,508.71637697339,523.2511306012],description:"245/243, 81/80 comma and 25/24 chroma"},pipedum_14c:{frequencies:[261.6255653006,280.31310567921,282.55561052465,305.22982618403,327.03195662575,336.37572681506,363.36884069528,366.27579142084,392.4383479509,403.65087217807,436.04260883433,467.18850946536,470.92601754108,508.71637697339,523.2511306012],description:"245/243, 50/49 comma and 25/24 chroma"},pipedum_15:{frequencies:[261.6255653006,272.52663052146,290.69507255622,301.39265122629,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,454.2110508691,470.92601754108,502.32108537715,523.2511306012],description:"126/125, 128/125 and 875/864, 5-limit, Paul Erlich, 2001"},pipedum_15a:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,381.53728273004,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,502.32108537715,523.2511306012],description:"Septimal version of pipedum_15, Manuel Op de Coul, 2001"},pipedum_15b:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,311.45900631024,327.03195662575,343.38355445704,357.69120255941,382.72082695402,398.6675280771,418.60090448096,439.53094970501,457.84473927605,478.40103369253,498.33441009638,523.2511306012],description:"126/125, 128/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15c:{frequencies:[261.6255653006,274.70684356563,284.76252005507,299.00064605783,313.95067836072,327.03195662575,341.71502406609,358.80077526939,381.53728273004,400.61414686654,418.60090448096,436.04260883433,457.84473927605,480.73697623985,498.33441009638,523.2511306012],description:"49/48, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15d:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,360.55273217989,379.68336007343,398.6675280771,418.60090448096,436.04260883433,457.84473927605,478.40103369253,498.33441009638,523.2511306012],description:"64/63, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15e:{frequencies:[261.6255653006,273.37201925287,286.15296204753,299.00064605783,313.95067836072,332.22294006425,343.38355445704,358.80077526939,381.53728273004,398.6675280771,412.06026534844,436.04260883433,457.84473927605,478.40103369253,500.76768358318,523.2511306012],description:"64/63, 875/864 and 1029/1024, Paul Erlich, 2001"},pipedum_15f:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,387.59343007496,392.4383479509,418.60090448096,436.04260883433,465.11211608996,488.36772189445,490.54793493862,523.2511306012],description:"126/125, 64/63 comma and 28/27 chroma"},pipedum_15g:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"128/125 and 250/243"},pipedum_16:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,355.95315006884,373.75080757229,384.58958099188,400.61414686654,418.60090448096,439.53094970501,457.84473927605,480.73697623985,498.33441009638,523.2511306012],description:"50/49, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_16a:{frequencies:[261.6255653006,272.52663052146,283.88190679319,301.39265122629,313.95067836072,327.03195662575,340.65828815182,354.85238349148,363.36884069528,385.78259356965,401.85686830172,418.60090448096,436.04260883433,454.2110508691,482.22824196207,502.32108537715,523.2511306012],description:"3125/3072 and 1990656/1953125, OdC 2004"},pipedum_17:{frequencies:[261.6255653006,269.10058145205,286.15296204753,294.32876096318,305.22982618403,318.93402246168,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,429.2294430713,448.50096908674,465.11211608996,478.40103369253,508.71637697339,523.2511306012],description:"245/243, 64/63 and 525/512, Paul Erlich, 2001"},pipedum_17a:{frequencies:[261.6255653006,271.31540105247,286.15296204753,296.75121990114,305.22982618403,318.93402246168,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,429.2294430713,448.50096908674,461.31528248922,478.40103369253,504.56359022259,523.2511306012],description:"245/243, 525/512 and 1728/1715, Paul Erlich, 2001"},pipedum_17b:{frequencies:[261.6255653006,264.89588486686,286.15296204753,294.32876096318,305.22982618403,327.03195662575,339.14425131559,343.38355445704,367.91095120397,381.53728273004,392.4383479509,406.97310157871,436.04260883433,441.49314144476,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:"245/243, 64/63 comma and 25/24 chroma"},pipedum_17c:{frequencies:[261.6255653006,273.6806973752,285.83021674664,299.00064605783,310.07474405997,321.55899383997,336.37572681506,348.83408706747,364.90759650026,378.42269266694,392.4383479509,413.43299207996,428.74532511996,448.50096908674,465.11211608996,486.54346200035,504.56359022259,523.2511306012],description:"1605632/1594323 and 177147/175616, Manuel Op de Coul, 2002"},pipedum_17d:{frequencies:[261.6255653006,274.08392555301,284.23518205497,299.00064605783,308.34441624714,319.76457981184,336.37572681506,348.83408706747,365.44523407068,373.05867644715,392.4383479509,411.12588832951,426.35277308246,448.50096908674,465.11211608996,479.64686971777,504.56359022259,523.2511306012],description:"243/242, 99/98 and 64/63, Manuel Op de Coul, 2002"},pipedum_17e:{frequencies:[261.6255653006,271.31540105247,286.15296204753,296.75121990114,310.07474405997,321.92208230347,336.37572681506,348.83408706747,362.16234259141,378.42269266694,395.66829320152,413.43299207996,429.2294430713,445.12682985172,465.11211608996,482.88312345521,504.56359022259,523.2511306012],description:"245/243, 1728/1715 and 32805/32768, Manuel Op de Coul, 2003"},pipedum_17f:{frequencies:[261.6255653006,269.80136421624,285.40970760065,294.32876096318,310.07474405997,319.76457981184,331.11985608357,348.83408706747,359.73515228832,380.54627680087,392.4383479509,413.43299207996,428.11456140098,441.49314144476,465.11211608996,479.64686971777,507.3950357345,523.2511306012],description:"243/242 and 8192/8019, Manuel Op de Coul"},pipedum_17g:{frequencies:[261.6255653006,274.08392555301,285.40970760065,299.00064605783,305.22982618403,319.76457981184,336.37572681506,348.83408706747,359.73515228832,380.54627680087,392.4383479509,406.97310157871,428.11456140098,448.50096908674,457.84473927605,479.64686971777,499.46698830115,523.2511306012],description:"243/242, 896/891 and 99/98, Manuel Op de Coul"},pipedum_18:{frequencies:[261.6255653006,272.52663052146,280.31310567921,296.75121990114,305.22982618403,317.94773560837,327.03195662575,340.65828815182,350.39138209902,379.84156147346,390.69417751556,406.97310157871,418.60090448096,436.04260883433,448.50096908674,474.80195184183,488.36772189445,508.71637697339,523.2511306012],description:"875/864, 686/675 and 128/125, Paul Erlich, 2001"},pipedum_18a:{frequencies:[261.6255653006,269.10058145205,280.31310567921,293.02063313667,305.22982618403,313.95067836072,327.03195662575,341.85740532612,356.10146388137,366.27579142084,384.42940207435,400.44729382745,418.60090448096,436.04260883433,448.50096908674,467.18850946536,488.36772189445,508.71637697339,523.2511306012],description:"875/864, 686/675 and 50/49, Paul Erlich, 2001"},pipedum_18b:{frequencies:[261.6255653006,272.52663052146,280.31310567921,296.75121990114,305.22982618403,317.94773560837,327.03195662575,346.20975655133,356.10146388137,373.75080757229,384.42940207435,400.44729382745,418.60090448096,436.04260883433,448.50096908674,467.18850946536,488.36772189445,508.71637697339,523.2511306012],description:"1728/1715, 875/864 and 686/675, Paul Erlich, 2001"},pipedum_19:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,301.39265122629,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,401.85686830172,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"81/80 and 15625/15552 are homophonic intervals, inverse of Mandelbaum"},pipedum_19a:{frequencies:[261.6255653006,271.25338610366,282.55561052465,294.32876096318,301.39265122629,313.95067836072,327.03195662575,339.06673262958,353.19451315581,361.67118147155,376.74081403286,392.4383479509,408.78994578219,416.64520105522,434.00541776586,452.08897683944,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"3125/3072 and 15625/15552 are homophonic intervals"},pipedum_19b:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"15625/15552 and 78732/78125, Paul Erlich, TL 19-2-2001"},pipedum_19c:{frequencies:[261.6255653006,269.10058145205,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19d:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19e:{frequencies:[261.6255653006,269.10058145205,280.31310567921,287.04062021552,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,476.92160341255,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19f:{frequencies:[261.6255653006,269.10058145205,279.06726965397,287.04062021552,305.22982618403,315.35224388912,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,434.10464168396,448.50096908674,476.92160341255,490.54793493862,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19g:{frequencies:[261.6255653006,269.10058145205,280.31310567921,288.32205155576,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,360.4025644447,379.84156147346,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,474.80195184183,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19h:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,353.19451315581,366.27579142084,381.53728273004,392.4383479509,412.06026534844,415.27867508032,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"126/125, 81/80 comma and 49/48 chroma"},pipedum_19i:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.22982618403,321.92208230347,327.03195662575,343.38355445704,348.83408706747,367.91095120397,381.53728273004,392.4383479509,406.97310157871,429.2294430713,436.04260883433,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"225/224, 81/80 comma and 49/48 chroma"},pipedum_19j:{frequencies:[261.6255653006,266.96486255163,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,333.70607818954,358.95027559242,366.27579142084,373.75080757229,381.37837507376,410.22888639134,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.78610798918,523.2511306012],description:"21/20, 3136/3125 and 2401/2400, Gene Ward Smith, 2002"},pipedum_19k:{frequencies:[261.6255653006,267.90457886781,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,334.88072358477,357.69120255941,366.27579142084,373.75080757229,382.72082695402,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,510.98743222773,523.2511306012],description:"21/20, 3136/3125 and 6144/6125, Gene Ward Smith, 2002"},pipedum_19l:{frequencies:[261.6255653006,267.07609791103,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,333.84512238879,358.80077526939,366.27579142084,373.75080757229,381.53728273004,410.05802887931,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.57253609913,523.2511306012],description:"21/20, 2401/2400 and 6144/6125, Gene Ward Smith, 2002"},pipedum_19m:{frequencies:[261.6255653006,269.10058145205,293.02063313667,299.00064605783,305.22982618403,313.95067836072,317.94773560837,348.83408706747,358.80077526939,366.27579142084,373.75080757229,406.97310157871,418.60090448096,430.56093032327,436.04260883433,448.50096908674,488.36772189445,502.32108537715,508.71637697339,523.2511306012],description:"126/125, 1728/1715 and 16/15, Gene Ward Smith, 2002"},pipedum_19n:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,305.22982618403,313.95067836072,320.49131749323,327.03195662575,333.70607818954,366.27579142084,373.75080757229,381.53728273004,392.4383479509,427.32175665765,436.04260883433,448.50096908674,457.84473927605,467.18850946536,512.78610798918,523.2511306012],description:"126/125, 2401/2400 and 16/15, Gene Ward Smith, 2002"},pipedum_19o:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,502.32108537715,523.2511306012],description:"225/224, 3136/3125 and 4375/4374, OdC 2000"},pipedum_21:{frequencies:[261.6255653006,267.07609791103,280.31310567921,284.8811711051,299.00064605783,305.22982618403,320.35783506196,327.03195662575,341.85740532612,348.83408706747,366.27579142084,373.75080757229,392.4383479509,400.44729382745,418.60090448096,427.32175665765,448.50096908674,457.84473927605,480.53675259294,488.36772189445,512.57253609913,523.2511306012],description:"36/35, 225/224 and 2401/2400, P. Erlich, 2001. Just PB version of miracle1"},pipedum_21a:{frequencies:[261.6255653006,265.7783520514,286.15296204753,290.69507255622,299.00064605783,305.22982618403,327.03195662575,332.22294006425,343.38355445704,348.83408706747,373.75080757229,381.53728273004,392.4383479509,398.6675280771,429.2294430713,436.04260883433,448.50096908674,457.84473927605,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"1029/1024, 81/80 comma and 25/24 chroma"},pipedum_21b:{frequencies:[261.6255653006,267.07609791103,279.06726965397,284.8811711051,299.00064605783,305.22982618403,318.93402246168,325.57848126297,343.38355445704,348.83408706747,366.27579142084,372.08969287196,392.4383479509,398.6675280771,418.60090448096,427.32175665765,448.50096908674,457.84473927605,478.40103369253,488.36772189445,496.11959049595,523.2511306012],description:"36/35, 225/224 and 1029/1024, Gene Ward Smith, 2002"},pipedum_21c:{frequencies:[261.6255653006,269.46602871384,279.06726965397,287.4304306281,297.67175429757,306.59245933664,317.51653791741,327.03195662575,344.91651675372,348.83408706747,367.91095120397,372.08969287196,392.4383479509,396.89567239676,418.60090448096,431.14564594215,446.50763144636,459.88868900496,476.27480687611,490.54793493862,508.02646066786,523.2511306012],description:"First 128/125 and ampersand comma Fokker block"},pipedum_22:{frequencies:[261.6255653006,267.90457886781,279.06726965397,285.76488412567,299.40669857094,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,365.77905168086,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,457.22381460107,479.0507177135,490.54793493862,510.98743222773,523.2511306012],description:"3125/3072 and 2109375/2097152 are homophonic intervals"},pipedum_22a:{frequencies:[261.6255653006,267.90457886781,279.06726965397,287.4304306281,297.67175429757,306.59245933664,317.51653791741,327.03195662575,334.88072358477,348.83408706747,357.20610515709,372.08969287196,381.01984550089,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,476.27480687611,490.54793493862,508.02646066786,523.2511306012],description:"2048/2025 and 2109375/2097152 are homophonic intervals"},pipedum_22b:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,357.69120255941,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:'2025/2048, 245/243 and 64/63. P. Erlich "7-limit Indian", TL 19-12-2000'},pipedum_22b2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,448.50096908674,465.11211608996,478.40103369253,490.54793493862,504.56359022259,523.2511306012],description:"Version of pipedum_22b with other shape, Paul Erlich"},pipedum_22c:{frequencies:[261.6255653006,267.07609791103,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,512.57253609913,523.2511306012],description:"1728/1715, 64/63 and 50/49, Paul Erlich, 2001"},pipedum_22d:{frequencies:[261.6255653006,269.10058145205,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,333.84512238879,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,410.05802887931,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,508.71637697339,523.2511306012],description:"1728/1715, 875/864 and 64/63, Paul Erlich, 2001"},pipedum_22e:{frequencies:[261.6255653006,269.10058145205,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,384.42940207435,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 50/49, Paul Erlich, 2001"},pipedum_22f:{frequencies:[261.6255653006,269.10058145205,276.78916949353,290.69507255622,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,470.92601754108,494.58536650191,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 875/864, Paul Erlich, 2001"},pipedum_22g:{frequencies:[261.6255653006,267.07609791103,279.06726965397,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,478.40103369253,490.54793493862,512.57253609913,523.2511306012],description:"225/224, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_22h:{frequencies:[261.6255653006,269.10058145205,280.31310567921,287.04062021552,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,476.92160341255,488.36772189445,508.71637697339,523.2511306012],description:"225/224, 1728/1715 and 875/864, Paul Erlich, 2001"},pipedum_22i:{frequencies:[261.6255653006,269.10058145205,279.06726965397,288.32205155576,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,474.80195184183,490.54793493862,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 245/243, Paul Erlich, 2001"},pipedum_22j:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,299.00064605783,305.22982618403,320.35783506196,332.22294006425,336.37572681506,348.83408706747,353.19451315581,373.75080757229,387.59343007496,392.4383479509,406.97310157871,427.14378008261,436.04260883433,448.50096908674,465.11211608996,480.53675259294,498.33441009638,504.56359022259,523.2511306012],description:"50/49, 64/63 and 245/243, Gene Ward Smith, 2002"},pipedum_22k:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,359.73515228832,367.91095120397,380.54627680087,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"121/120, 2048/2025 and 4125/4096, Manuel Op de Coul"},pipedum_22l:{frequencies:[261.6255653006,275.62199471997,284.23518205497,290.69507255622,303.18419419197,310.07474405997,319.76457981184,330.74639366397,341.08221846597,348.83408706747,363.82103303037,372.08969287196,387.59343007496,404.24559225596,413.43299207996,426.35277308246,440.99519155196,454.77629128796,465.11211608996,485.09471070715,496.11959049595,511.62332769895,523.2511306012],description:"121/120, 736/729, 100/99 and 2048/2025"},pipedum_23:{frequencies:[261.6255653006,271.25338610366,276.85245005354,287.04062021552,297.60371503945,302.80736724606,313.95067836072,325.50406332439,332.22294006425,344.44874425862,348.83408706747,363.36884069528,376.74081403286,384.51729174103,398.6675280771,413.33849311034,420.56578784176,436.04260883433,452.08897683944,461.42075008924,478.40103369253,496.00619173241,504.67894541011,523.2511306012],description:"6144/6125, 15625/1552 and 5103/5000, Manuel Op de Coul, 2003"},pipedum_24:{frequencies:[261.6255653006,267.57160087561,275.93321340298,285.40970760065,290.69507255622,299.7792935736,310.07474405997,319.76457981184,327.03195662575,338.26335715633,348.83408706747,356.76213450082,367.91095120397,380.54627680087,392.4383479509,401.35740131342,413.43299207996,426.35277308246,436.04260883433,449.66894036041,465.11211608996,479.64686971777,490.54793493862,507.3950357345,523.2511306012],description:"121/120, 16384/16335 and 32805/32768. Manuel Op de Coul, 2001"},pipedum_24a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,321.92208230347,327.03195662575,343.38355445704,348.83408706747,366.27579142084,367.91095120397,381.53728273004,392.4383479509,412.06026534844,418.60090448096,429.2294430713,436.04260883433,457.84473927605,470.92601754108,488.36772189445,490.54793493862,515.07533168556,523.2511306012],description:"49/48, 81/80 and 128/125, Gene Ward Smith, 2002"},pipedum_24b:{frequencies:[261.6255653006,271.31540105247,275.62199471997,289.72987407313,294.32876096318,305.22982618403,310.07474405997,325.94610833227,331.11985608357,343.38355445704,348.83408706747,361.75386806997,372.50983809402,386.30649876417,392.4383479509,406.97310157871,413.43299207996,434.59481110969,441.49314144476,457.84473927605,465.11211608996,482.33849075995,496.67978412536,515.07533168556,523.2511306012],description:"49/48, 81/80 and 531441/524288"},pipedum_25:{frequencies:[261.6255653006,268.26840191956,274.70684356563,281.29980781121,291.99281841585,299.00064605783,306.17666156322,313.95067836072,327.03195662575,335.33550239945,343.38355445704,351.62475976401,364.99102301981,373.75080757229,382.72082695402,392.4383479509,408.78994578219,418.60090448096,429.2294430713,439.53094970501,447.89271634391,467.18850946536,478.40103369253,490.54793493862,502.32108537715,523.2511306012],description:"65625/65536, 1029/1024 and 3125/3072, Manuel Op de Coul, 2003"},pipedum_26:{frequencies:[261.6255653006,267.07609791103,274.70684356563,286.15296204753,292.89859205665,299.00064605783,305.22982618403,313.95067836072,327.03195662575,333.84512238879,341.71502406609,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,400.61414686654,410.05802887931,418.60090448096,436.04260883433,448.50096908674,457.84473927605,467.3831713443,478.40103369253,498.33441009638,512.57253609913,523.2511306012],description:"1029/1024, 1728/1715 and 50/49, Paul Erlich, 2001"},pipedum_26a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,294.32876096318,305.22982618403,306.59245933664,321.92208230347,325.57848126297,327.03195662575,343.38355445704,348.83408706747,366.27579142084,367.91095120397,381.53728273004,392.4383479509,408.78994578219,412.06026534844,429.2294430713,436.04260883433,457.84473927605,459.88868900496,465.11211608996,488.36772189445,490.54793493862,515.07533168556,523.2511306012],description:"50/49, 81/80 and 525/512, Gene Ward Smith, 2002"},pipedum_26b:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,290.69507255622,301.39265122629,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,392.4383479509,401.85686830172,408.78994578219,418.60090448096,436.04260883433,446.50763144636,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"81/80 and 78125/73728, Gene Ward Smith, 2005"},pipedum_27:{frequencies:[261.6255653006,271.20240005245,278.95104005395,284.76252005507,292.89859205665,299.00064605783,307.54352165948,316.40280006119,325.44288006294,332.22294006425,341.71502406609,351.47831046798,358.80077526939,369.05222599138,379.68336007343,390.53145607553,398.6675280771,410.05802887931,418.60090448096,430.56093032327,442.86267118965,455.62003208812,468.63774729064,478.40103369253,492.06963465517,502.32108537715,516.67311638793,523.2511306012],description:"126/125, 1728/1715 and 4000/3969 are homophonic intervals, Paul Erlich"},pipedum_27a:{frequencies:[261.6255653006,269.10058145205,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,508.71637697339,523.2511306012],description:"126/126, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_27b:{frequencies:[261.6255653006,266.96486255163,272.52663052146,280.31310567921,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,333.70607818954,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,410.22888639134,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,467.18850946536,488.36772189445,502.32108537715,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 128/125, Paul Erlich, 2001"},pipedum_27c:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 686/675, Paul Erlich, 2001"},pipedum_27d:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,355.95315006884,366.27579142084,373.75080757229,384.58958099188,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 64/63, Paul Erlich, 2001"},pipedum_27e:{frequencies:[261.6255653006,269.10058145205,274.70684356563,282.55561052465,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.35783506196,329.64821227876,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,415.27867508032,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.4917875937,498.33441009638,508.71637697339,523.2511306012],description:"2401/2400, 126/125 and 245/243, Paul Erlich, 2001"},pipedum_27f:{frequencies:[261.6255653006,267.07609791103,272.52663052146,280.31310567921,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,333.84512238879,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,410.05802887931,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,467.18850946536,488.36772189445,502.32108537715,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 128/125, Paul Erlich, 2001"},pipedum_27g:{frequencies:[261.6255653006,267.07609791103,274.59243005311,280.31310567921,290.81619550312,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.72988009104,488.36772189445,498.54204943392,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 686/675, Paul Erlich, 2001"},pipedum_27h:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_27i:{frequencies:[261.6255653006,269.10058145205,274.70684356563,282.43792805463,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,329.51091606373,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,415.4517078616,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.69365917187,498.33441009638,508.71637697339,523.2511306012],description:"2401/2400, 1728/1715 and 245/243, Paul Erlich, 2001"},pipedum_27j:{frequencies:[261.6255653006,269.16210421872,276.91574508099,282.55561052465,290.69507255622,299.06900468747,305.16005936662,313.95067836072,322.99452506247,329.57286411595,339.06673262958,348.83408706747,358.88280562497,366.19207123994,376.74081403286,387.59343007496,395.48743693914,406.88007915549,418.60090448096,423.83341578697,436.04260883433,448.60350703121,461.52624180165,470.92601754108,484.4917875937,498.44834114579,508.60009894437,523.2511306012],description:"78732/78125 and 390625000/387420489"},pipedum_27k:{frequencies:[261.6255653006,264.89588486686,275.62199471997,279.38237857051,290.69507255622,294.32876096318,298.00787047521,310.07474405997,313.95067836072,331.11985608357,344.52749339997,348.83408706747,353.19451315581,367.49599295996,372.50983809402,387.59343007496,392.4383479509,397.34382730029,413.43299207996,418.60090448096,441.49314144476,447.01180571282,459.36999119996,465.11211608996,470.92601754108,496.67978412536,516.79124009995,523.2511306012],description:"67108864/66430125 and 25/24"},pipedum_28:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,285.76488412567,299.40669857094,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,457.22381460107,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"393216/390625 and 16875/16384"},pipedum_29:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,288.44218574391,294.32876096318,300.33547037059,310.07474405997,316.40280006119,325.57848126297,332.22294006425,341.85740532612,348.83408706747,355.95315006884,366.27579142084,373.75080757229,384.58958099188,392.4383479509,400.44729382745,412.06026534844,420.46965851882,434.10464168396,442.96392008567,455.80987376816,465.11211608996,474.60420009179,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"5120/5103, 225/224 and 50421/50000, Manuel Op de Coul, 2003"},pipedum_29a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,290.69507255622,294.32876096318,305.22982618403,313.95067836072,317.94773560837,327.03195662575,339.14425131559,343.38355445704,348.83408706747,363.36884069528,366.27579142084,372.60080508745,381.53728273004,392.4383479509,408.78994578219,412.06026534844,429.2294430713,436.04260883433,441.49314144476,457.84473927605,470.92601754108,476.92160341255,490.54793493862,508.71637697339,515.07533168556,523.2511306012],description:"49/48, 55/54, 65/64, 91/90 and 100/99"},pipedum_31:{frequencies:[261.6255653006,271.62175694356,275.93321340298,281.68182201554,289.72987407313,294.32876096318,300.46061014991,310.42486507835,316.89204976748,321.92208230347,331.11985608357,338.01818641865,343.38355445704,356.50355598842,362.16234259141,367.91095120397,380.27045972098,386.30649876417,392.4383479509,407.43263541533,413.89982010446,422.52273302331,434.59481110969,441.49314144476,450.69091522486,465.63729761752,475.33807465122,482.88312345521,496.67978412536,507.02727962797,515.07533168556,523.2511306012],description:"81/80, 225/224 and 1029/1024 are homophonic intervals"},pipedum_31a:{frequencies:[261.6255653006,269.46602871384,275.93321340298,282.55561052465,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,321.48549464138,329.20114651277,336.83253589231,344.91651675372,353.19451315581,359.28803828513,367.91095120397,376.74081403286,385.78259356965,392.4383479509,401.85686830172,411.50143314096,421.04066986538,431.14564594215,441.49314144476,452.08897683944,459.88868900496,470.92601754108,482.22824196207,490.54793493862,502.32108537715,514.3767914262,523.2511306012],description:"393216/390625 and 2109375/2097152 are homophonic intervals"},pipedum_31b:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.54352165948,327.03195662575,333.84512238879,339.14425131559,343.38355445704,348.83408706747,356.10146388137,373.75080757229,381.53728273004,387.59343007496,392.4383479509,400.61414686654,406.97310157871,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"245/243, 1029/1024 comma and 25/24 chroma"},pipedum_31c:{frequencies:[261.6255653006,265.7783520514,274.70684356563,279.06726965397,286.15296204753,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,334.88072358477,343.38355445704,348.83408706747,360.55273217989,366.27579142084,373.75080757229,384.58958099188,392.4383479509,398.6675280771,412.06026534844,418.60090448096,429.2294430713,439.53094970501,448.50096908674,457.84473927605,470.92601754108,480.73697623985,490.54793493862,502.32108537715,515.07533168556,523.2511306012],description:"126/125, 225/224 and 1029/1024, Op de Coul"},pipedum_31d:{frequencies:[261.6255653006,269.10058145205,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,316.53463456122,327.03195662575,336.37572681506,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,403.65087217807,406.97310157871,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,478.40103369253,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"1728/1715, 225/224 and 81/80"},pipedum_31e:{frequencies:[261.6255653006,267.07609791103,272.52663052146,276.85245005354,286.15296204753,290.69507255622,299.00064605783,305.22982618403,311.45900631024,317.94773560837,327.03195662575,332.22294006425,343.38355445704,348.83408706747,357.69120255941,363.36884069528,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,415.27867508032,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,476.92160341255,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:'81/80, 126/125 and 1029/1024, Gene Smith (2005) "Synstargam"'},pipedum_32:{frequencies:[261.6255653006,267.07609791103,270.30192333353,280.31310567921,286.15296204753,292.11448209019,299.00064605783,305.22982618403,311.5887808962,315.35224388912,325.57848126297,333.84512238879,337.87740416691,348.83408706747,356.10146388137,360.4025644447,367.91095120397,379.84156147346,384.42940207435,394.1903048614,406.97310157871,415.4517078616,420.46965851882,429.2294430713,443.14848838571,448.50096908674,457.84473927605,474.80195184183,480.53675259294,490.54793493862,500.76768358318,512.57253609913,523.2511306012],description:"225/224, 2048/2025 and 117649/116640"},pipedum_32a:{frequencies:[261.6255653006,268.26840191956,274.59243005311,280.31310567921,286.15296204753,292.89859205665,299.00064605783,305.22982618403,311.5887808962,320.35783506196,327.03195662575,333.84512238879,341.71502406609,348.83408706747,356.10146388137,364.4960256705,372.08969287196,381.53728273004,390.53145607553,398.6675280771,406.97310157871,416.56688648057,425.24536328225,434.10464168396,438.17172313528,450.50320555588,459.88868900496,469.46970335923,480.53675259294,490.54793493862,500.76768358318,512.57253609913,523.2511306012],description:"589824/588245, 225/224 and 2048/2025"},pipedum_34:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,290.69507255622,294.32876096318,301.39265122629,306.59245933664,313.95067836072,321.48549464138,327.03195662575,334.88072358477,340.65828815182,348.83408706747,354.85238349148,363.36884069528,367.91095120397,376.74081403286,385.78259356965,392.4383479509,401.85686830172,408.78994578219,418.60090448096,425.82286018978,436.04260883433,446.50763144636,454.2110508691,465.11211608996,470.92601754108,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"15625/15552 and 393216/390625 are homophonic intervals"},pipedum_34a:{frequencies:[261.6255653006,264.89588486686,272.52663052146,279.06726965397,282.55561052465,290.69507255622,294.32876096318,301.39265122629,306.59245933664,313.95067836072,317.87506184023,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,423.83341578697,436.04260883433,441.49314144476,452.08897683944,465.11211608996,470.92601754108,484.4917875937,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"15625/15552 and 2048/2025, Manuel Op de Coul, 2001"},pipedum_34b:{frequencies:[261.6255653006,267.57160087561,272.52663052146,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.7792935736,310.07474405997,313.95067836072,319.76457981184,327.03195662575,334.88072358477,342.49164912079,348.83408706747,356.76213450082,359.73515228832,367.91095120397,380.54627680087,383.71749577421,392.4383479509,399.70572476481,408.78994578219,418.60090448096,428.11456140098,436.04260883433,441.49314144476,449.66894036041,465.11211608996,470.92601754108,479.64686971777,490.54793493862,502.32108537715,511.62332769895,523.2511306012],description:"100/99, 243/242 and 5632/5625, Manuel Op de Coul"},pipedum_36:{frequencies:[261.6255653006,267.07609791103,269.10058145205,280.31310567921,286.15296204753,290.69507255622,294.32876096318,300.46061014991,305.22982618403,311.5887808962,320.35783506196,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,356.10146388137,367.91095120397,373.75080757229,381.53728273004,384.42940207435,392.4383479509,400.61414686654,406.97310157871,420.46965851882,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,467.3831713443,480.53675259294,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"1029/1024, 245/243 comma and 50/49 chroma, Gene Ward Smith, 2001"},pipedum_36a:{frequencies:[261.6255653006,264.89588486686,275.62199471997,275.93321340298,279.06726965397,290.69507255622,293.99679436797,294.32876096318,310.07474405997,310.42486507835,313.95067836072,327.03195662575,330.74639366397,331.11985608357,348.83408706747,349.22797321314,353.19451315581,367.91095120397,372.08969287196,372.50983809402,387.59343007496,392.4383479509,397.34382730029,413.43299207996,413.89982010446,418.60090448096,436.04260883433,440.99519155196,441.49314144476,465.11211608996,465.63729761752,470.92601754108,490.54793493862,496.11959049595,496.67978412536,516.79124009995,523.2511306012],description:"1125/1024 and 531441/524288, Op de Coul"},pipedum_37:{frequencies:[261.6255653006,263.718569823,276.85245005354,279.06726965397,280.31310567921,290.69507255622,293.02063313667,299.00064605783,308.98710943476,311.45900631024,313.95067836072,325.57848126297,332.22294006425,333.70607818954,346.06556256693,348.83408706747,351.62475976401,353.19451315581,370.78453132171,373.75080757229,376.74081403286,390.69417751556,392.4383479509,400.44729382745,415.27867508032,418.60090448096,421.94971171681,436.04260883433,444.94143758605,448.50096908674,465.11211608996,467.18850946536,470.92601754108,494.37937509562,498.33441009638,502.32108537715,519.0983438504,523.2511306012],description:"250/243, 3136/3125 and 3125/3087, Gene Ward Smith, 2002"},pipedum_38:{frequencies:[261.6255653006,271.25338610366,272.52663052146,280.3771918945,282.55561052465,290.69507255622,292.95365699196,301.39265122629,302.80736724606,313.95067836072,315.42434088132,325.50406332439,327.03195662575,336.45263027341,339.06673262958,348.83408706747,350.47148986813,361.67118147155,363.36884069528,376.74081403286,378.50920905758,390.60487598927,392.4383479509,403.74315632809,406.88007915549,418.60090448096,420.56578784176,434.00541776586,436.04260883433,452.08897683944,454.2110508691,467.29531982417,470.92601754108,484.4917875937,488.25609498659,502.32108537715,504.67894541011,519.21702202686,523.2511306012],description:"81/80 and 1224440064/1220703125, Manuel Op de Coul, 2001"},pipedum_38a:{frequencies:[261.6255653006,268.26840191956,272.52663052146,274.70684356563,279.06726965397,286.15296204753,293.02063313667,294.32876096318,305.22982618403,306.59245933664,313.95067836072,321.92208230347,327.03195662575,329.64821227876,340.65828815182,343.38355445704,348.83408706747,357.69120255941,366.27579142084,367.91095120397,381.53728273004,383.2405741708,390.69417751556,392.4383479509,408.78994578219,412.06026534844,418.60090448096,429.2294430713,436.04260883433,439.53094970501,457.84473927605,459.88868900496,470.92601754108,476.92160341255,488.36772189445,490.54793493862,510.98743222773,515.07533168556,523.2511306012],description:"50/49, 81/80 and 3125/3072, Gene Ward Smith, 2002"},pipedum_41:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.70684356563,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,303.67253115248,308.34441624714,313.95067836072,320.49131749323,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,354.2846196779,359.73515228832,366.27579142084,373.75080757229,381.53728273004,387.40708707973,392.4383479509,400.61414686654,406.97310157871,412.06026534844,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,495.99846754905,503.62921320365,513.90736041189,523.2511306012],description:"100/99 105/104 196/195 275/273 385/384, Paul Erlich, TL 3-11-2000"},pipedum_41a:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.70684356563,280.31310567921,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,400.61414686654,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,495.99846754905,503.62921320365,513.90736041189,523.2511306012],description:"pipedum_41 improved shape by Manuel Op de Coul, all intervals superparticular"},pipedum_41b:{frequencies:[261.6255653006,265.7783520514,271.31540105247,274.70684356563,279.06726965397,284.8811711051,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,498.33441009638,504.56359022259,515.07533168556,523.2511306012],description:"pipedum_41 more improved shape by M. OdC, all intervals superparticular"},pipedum_41c:{frequencies:[261.6255653006,267.07609791103,271.31540105247,275.93321340298,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,315.35224388912,320.35783506196,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,356.10146388137,360.4025644447,367.91095120397,373.75080757229,381.53728273004,384.42940207435,392.4383479509,398.6675280771,406.97310157871,410.05802887931,420.46965851882,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,474.80195184183,480.53675259294,490.54793493862,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"225/224, 245/243 and 1029/1024, Gene Ward Smith, 2002"},pipedum_41d:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,282.55561052465,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,317.51653791741,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,423.83341578697,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.11959049595,502.32108537715,517.37477513058,523.2511306012],description:"3125/3072 and 32805/32768"},pipedum_43:{frequencies:[261.6255653006,269.10058145205,273.37201925287,274.70684356563,282.55561052465,286.15296204753,287.04062021552,290.69507255622,299.00064605783,305.22982618403,307.54352165948,313.95067836072,322.92069774245,327.03195662575,328.04642310345,332.22294006425,341.71502406609,343.38355445704,348.83408706747,358.80077526939,366.27579142084,369.05222599138,376.74081403286,379.68336007343,381.53728273004,392.4383479509,398.6675280771,410.05802887931,412.06026534844,418.60090448096,423.93031414449,430.56093032327,436.04260883433,448.50096908674,455.62003208812,457.84473927605,470.92601754108,478.40103369253,492.06963465517,494.47231841813,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 126/125 and 12288/12005, Gene Ward Smith, 2002"},pipedum_45:{frequencies:[261.6255653006,265.7783520514,267.07609791103,274.70684356563,279.06726965397,280.31310567921,284.8811711051,293.02063313667,294.32876096318,299.00064605783,303.74668805875,305.22982618403,313.95067836072,320.49131749323,325.57848126297,327.03195662575,336.37572681506,341.85740532612,343.38355445704,348.83408706747,356.10146388137,358.80077526939,366.27579142084,372.08969287196,373.75080757229,384.58958099188,392.4383479509,398.6675280771,400.61414686654,406.97310157871,418.60090448096,420.46965851882,427.32175665765,436.04260883433,439.53094970501,448.50096908674,455.80987376816,457.84473927605,465.11211608996,478.40103369253,480.73697623985,488.36772189445,498.33441009638,512.78610798918,515.07533168556,523.2511306012],description:"81/80, 525/512 and 2401/2400, Gene Ward Smith, 2002"},scala205pipedum_45a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,276.85245005354,282.55561052465,288.32205155576,290.69507255622,296.75121990114,299.00064605783,305.22982618403,311.45900631024,313.95067836072,320.49131749323,322.99452506247,329.64821227876,336.37572681506,339.14425131559,345.98646186692,348.83408706747,356.10146388137,363.28578496026,366.27579142084,373.75080757229,376.82694590621,384.42940207435,392.4383479509,395.66829320152,403.65087217807,406.97310157871,415.27867508032,423.83341578697,427.14378008261,436.04260883433,439.53094970501,448.50096908674,457.84473927605,461.31528248922,470.92601754108,474.80195184183,484.4917875937,494.47231841813,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 2401/2400 and 4375/4374, Gene Ward Smith"},pipedum_46:{frequencies:[261.6255653006,265.7783520514,270.41454913492,274.70684356563,279.06726965397,280.31310567921,286.15296204753,290.69507255622,295.30928005711,300.46061014991,305.22982618403,310.07474405997,313.95067836072,320.49131749323,325.57848126297,327.03195662575,332.22294006425,339.14425131559,343.38355445704,348.83408706747,354.37113606854,360.55273217989,366.27579142084,372.08969287196,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,427.32175665765,429.2294430713,436.04260883433,442.96392008567,450.69091522486,457.84473927605,465.11211608996,470.92601754108,480.73697623985,488.36772189445,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"126/125, 1029/1024 and 5120/5103. Manuel Op de Coul, 2001"},pipedum_46a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,279.06726965397,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.54352165948,313.95067836072,320.35783506196,320.49131749323,327.03195662575,332.22294006425,336.37572681506,343.38355445704,348.83408706747,353.19451315581,358.80077526939,366.12324007081,366.27579142084,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,427.14378008261,427.32175665765,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,470.92601754108,478.40103369253,488.36772189445,490.54793493862,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"126/125, 1029/1024 and 245/243, Gene Ward Smith, 2002"},pipedum_46b:{frequencies:[261.6255653006,264.89588486686,271.25338610366,272.52663052146,279.06726965397,282.55561052465,283.88190679319,290.69507255622,294.32876096318,301.39265122629,302.80736724606,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,334.88072358477,339.06673262958,340.65828815182,348.83408706747,353.19451315581,361.67118147155,363.36884069528,372.08969287196,376.74081403286,381.45007420827,387.59343007496,392.4383479509,401.85686830172,403.74315632809,408.78994578219,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,452.08897683944,454.2110508691,465.11211608996,470.92601754108,482.22824196207,484.4917875937,490.54793493862,502.32108537715,508.60009894437,516.79124009995,523.2511306012],description:"2048/2025 and 78732/78125"},pipedum_46c:{frequencies:[261.6255653006,266.47048317654,271.31540105247,274.08392555301,279.06726965397,282.62020942966,287.78812183066,290.69507255622,297.67175429757,299.7792935736,306.97399661937,310.07474405997,313.95067836072,319.76457981184,325.57848126297,328.90071066361,332.22294006425,339.14425131559,342.60490694126,348.83408706747,355.29397756872,359.73515228832,363.36884069528,372.08969287196,374.72411696701,383.71749577421,387.59343007496,394.68085279633,399.70572476481,406.97310157871,411.12588832951,418.60090448096,426.35277308246,431.68218274599,436.04260883433,446.50763144636,449.66894036041,460.46099492906,465.11211608996,467.18850946536,479.64686971777,484.4917875937,496.11959049595,499.63215595601,511.62332769895,516.79124009995,523.2511306012],description:"126/125, 176/175, 385/384 and 896/891, Paul Erlich"},pipedum_46d:{frequencies:[261.6255653006,267.23182741418,272.79915715198,274.70684356563,278.36648688978,283.42769574232,287.78812183066,291.52562990638,297.59908052943,299.7792935736,303.67253115248,311.77046531655,313.95067836072,320.67819289702,324.7609013714,327.03195662575,334.03978426773,340.11323489078,343.04051394309,345.34574619679,354.2846196779,359.73515228832,366.27579142084,374.12455837986,376.74081403286,381.53728273004,389.71308164569,392.4383479509,402.90337056292,408.13588186894,411.12588832951,419.69101100305,425.14154361347,431.68218274599,439.53094970501,445.38637902364,448.50096908674,457.84473927605,467.65569797482,470.92601754108,479.64686971777,485.87604984397,490.54793493862,503.62921320365,510.16985233617,519.61744219425,523.2511306012],description:"91/90, 121/120, 126/125, 169/168 and 176/175"},pipedum_5:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"16/15 and 27/25"},pipedum_50:{frequencies:[261.6255653006,267.07609791103,269.10058145205,273.37201925287,274.70684356563,276.85245005354,284.76252005507,286.15296204753,290.69507255622,299.00064605783,300.46061014991,305.22982618403,307.54352165948,313.95067836072,316.40280006119,320.49131749323,327.03195662575,332.22294006425,333.84512238879,341.71502406609,343.38355445704,348.83408706747,358.80077526939,360.55273217989,361.60320006994,366.27579142084,373.75080757229,379.68336007343,381.53728273004,392.4383479509,398.6675280771,400.61414686654,410.05802887931,412.06026534844,418.60090448096,423.93031414449,427.14378008261,436.04260883433,445.12682985172,448.50096908674,455.62003208812,457.84473927605,470.92601754108,478.40103369253,480.73697623985,484.4917875937,498.33441009638,500.76768358318,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 126/125 and 16807/16384, Gene Ward Smith, 2002"},pipedum_53:{frequencies:[261.6255653006,264.89588486686,269.16210421872,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,298.00787047521,302.80736724606,306.59245933664,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,403.74315632809,408.78994578219,413.89982010446,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.81259276034,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"15625/15552 and 32805/32768, Manuel Op de Coul, 2001"},pipedum_53a:{frequencies:[261.6255653006,266.96486255163,269.10058145205,272.52663052146,276.85245005354,280.31310567921,282.55561052465,288.32205155576,290.69507255622,294.32876096318,299.00064605783,302.80736724606,305.22982618403,311.45900631024,313.95067836072,320.35783506196,322.99452506247,327.03195662575,332.22294006425,336.37572681506,339.14425131559,346.06556256693,348.83408706747,353.19451315581,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,387.59343007496,392.4383479509,398.6675280771,403.65087217807,406.97310157871,415.27867508032,418.60090448096,423.83341578697,430.56093032327,436.04260883433,441.49314144476,448.50096908674,454.2110508691,457.84473927605,467.18850946536,470.92601754108,480.53675259294,484.4917875937,490.54793493862,498.33441009638,504.56359022259,508.71637697339,519.0983438504,523.2511306012],description:"225/224, 1728/1715 and 4375/4374, Manuel Op de Coul, 2001"},pipedum_53b:{frequencies:[261.6255653006,266.96486255163,269.10058145205,272.52663052146,274.70684356563,280.31310567921,286.03378130532,288.32205155576,290.69507255622,293.02063313667,299.00064605783,301.39265122629,305.22982618403,311.45900631024,313.95067836072,320.35783506196,322.92069774245,327.03195662575,333.70607818954,336.37572681506,341.85740532612,343.24053756638,348.83408706747,351.62475976401,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,389.3237578878,392.4383479509,400.44729382745,403.65087217807,406.97310157871,410.22888639134,418.60090448096,427.14378008261,430.56093032327,436.04260883433,439.53094970501,448.50096908674,457.65405008851,457.84473927605,467.18850946536,470.92601754108,478.60036745656,480.53675259294,488.36772189445,498.33441009638,502.32108537715,512.57253609913,512.78610798918,523.2511306012],description:"225/224, 1728/1715 and 3125/3087, Gene Ward Smith, 2002"},pipedum_55:{frequencies:[261.6255653006,267.07609791103,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,286.15296204753,293.02063313667,294.32876096318,296.75121990114,299.00064605783,305.22982618403,306.59245933664,313.95067836072,317.94773560837,320.49131749323,325.57848126297,327.03195662575,333.84512238879,336.37572681506,340.65828815182,343.38355445704,348.83408706747,356.10146388137,358.80077526939,366.27579142084,367.91095120397,373.75080757229,376.74081403286,381.53728273004,390.69417751556,392.4383479509,400.61414686654,403.65087217807,406.97310157871,408.78994578219,418.60090448096,427.32175665765,429.2294430713,436.04260883433,439.53094970501,445.12682985172,448.50096908674,457.84473927605,459.88868900496,470.92601754108,474.80195184183,476.92160341255,488.36772189445,490.54793493862,502.32108537715,504.56359022259,508.71637697339,520.92557002075,523.2511306012],description:"81/80, 686/675 and 6144/6125, Gene Ward Smith, 2002"},pipedum_58:{frequencies:[261.6255653006,264.29521392612,268.60224704195,271.31540105247,275.62199471997,277.50997462242,280.31310567921,284.8811711051,287.78812183066,292.35618725654,295.30928005711,297.33211566688,302.17752792219,305.22982618403,310.07474405997,313.23877206058,315.35224388912,320.49131749323,323.76163705949,328.90071066361,332.22294006425,337.63694353197,339.94971891247,343.38355445704,348.83408706747,352.39361856816,358.13632938927,361.75386806997,364.23184169193,370.01329949656,373.75080757229,379.84156147346,383.71749577421,389.80824967539,392.4383479509,396.44282088917,402.90337056292,406.97310157871,413.43299207996,417.65169608078,420.46965851882,427.32175665765,431.68218274599,438.53428088482,442.96392008567,445.99817350032,453.26629188329,457.84473927605,465.11211608996,469.85815809087,477.51510585235,480.73697623985,485.64245558924,493.35106599542,498.33441009638,506.45541529795,511.62332769895,515.07533168556,523.2511306012],description:"9801/9800, 2401/2400, 5120/5103 and 896/891"},pipedum_58a:{frequencies:[261.6255653006,265.65057399753,267.66008354786,270.48058443385,272.52663052146,277.4816601673,281.75060878526,285.40970760065,287.78812183066,293.02063313667,295.1673044417,297.30177875068,301.87565226992,305.22982618403,309.92566966379,313.95067836072,316.2506833304,322.00069575458,323.72860352852,327.03195662575,332.97799220076,338.10073054231,342.60490694126,344.24801655217,348.83408706747,352.18826098158,358.59168390851,362.25078272391,366.27579142084,368.95913055213,375.66747838035,379.50081999647,381.53728273004,388.47432423422,392.4383479509,399.57359064092,402.50086969323,406.97310157871,411.12588832951,418.60090448096,422.62591317789,428.25613367658,430.31002069022,436.04260883433,442.75095666255,450.80097405642,455.40098399577,457.84473927605,466.16918908107,469.58434797544,475.68284600109,483.00104363188,488.36772189445,495.88107146206,499.46698830115,503.12608711654,512.27383415502,516.54278277298,523.2511306012],description:"126/125, 144/143, 176/175, 196/195 and 364/363"},pipedum_5a:{frequencies:[261.6255653006,290.69507255622,348.83408706747,392.4383479509,470.92601754108,523.2511306012],description:"27/25 and 81/80"},pipedum_64:{frequencies:[261.6255653006,267.90457886781,266.96486255163,273.37201925287,274.70684356563,273.74326726486,280.31310567921,280.42990280658,284.76252005507,286.15296204753,294.32876096318,300.05312833195,299.00064605783,300.46061014991,307.67166479351,306.59245933664,313.95067836072,312.84944830269,320.35783506196,320.49131749323,328.18310911307,327.03195662575,336.37572681506,336.5158833679,341.71502406609,343.38355445704,351.62475976401,348.83408706747,358.80077526939,358.95027559242,366.12324007081,366.27579142084,375.06641041494,373.75080757229,382.72082695402,384.58958099188,383.2405741708,392.4383479509,392.60186392921,398.6675280771,400.61414686654,412.06026534844,408.78994578219,418.60090448096,428.6473261885,427.14378008261,429.2294430713,439.53094970501,437.98922762377,448.50096908674,448.68784449053,455.62003208812,457.84473927605,468.83301301868,467.18850946536,478.40103369253,480.73697623985,488.16432009441,490.54793493862,502.32108537715,500.55911728431,512.57253609913,512.78610798918,520.70860810071,523.2511306012],description:"225/224 235298/234375 and 67108864/66706983"},pipedum_65:{frequencies:[261.6255653006,264.59711493117,267.38234771992,270.72462706642,273.0589090967,275.93321340298,279.06726965397,282.00481986086,285.20783756792,287.99181818792,291.26283636981,294.32876096318,297.67175429757,300.80514118491,303.39878788522,306.84479880935,310.42486507835,313.95067836072,317.25542234346,320.85881726391,323.62537374423,327.30111872997,331.11985608357,334.60532825287,338.40578383303,341.32363637087,345.20039866051,348.83408706747,352.79615324157,356.9123501364,360.9661694219,364.07854546226,367.91095120397,372.08969287196,376.00642648114,380.70650681216,383.98909091723,388.35044849308,392.4383479509,396.89567239676,401.07352157989,404.53171718029,409.58836364504,413.89982010446,418.60090448096,423.00722979129,427.81175635188,431.50049832564,436.89425455471,441.49314144476,446.50763144636,451.20771177737,455.09818182783,460.26719821402,465.11211608996,470.92601754108,475.8831335152,481.28822589586,485.43806061635,490.95167809495,496.11959049595,501.90799237931,507.60867574954,511.9854545563,517.80059799077,523.2511306012],description:"1216/1215, 32805/32768 and 39858075/39845888. Manuel Op de Coul, 2001"},pipedum_65a:{frequencies:[261.6255653006,264.89588486686,267.90457886781,269.16210421872,272.52663052146,275.93321340298,279.06726965397,282.55561052465,286.08755565621,287.10624449997,290.69507255622,294.32876096318,298.00787047521,301.39265122629,302.80736724606,306.59245933664,310.07474405997,313.95067836072,317.87506184023,319.0069383333,322.99452506247,327.03195662575,331.11985608357,334.88072358477,339.06673262958,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.60944457026,358.88280562497,363.36884069528,367.91095120397,372.08969287196,376.74081403286,381.45007420827,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,403.74315632809,408.78994578219,413.43299207996,418.60090448096,423.83341578697,429.13133348431,430.65936674996,436.04260883433,441.49314144476,446.50763144636,452.08897683944,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.81259276034,478.51040749995,484.4917875937,490.54793493862,496.67978412536,502.32108537715,508.60009894437,510.98743222773,516.79124009995,523.2511306012],description:"78732/78125 and 32805/32768"},pipedum_67:{frequencies:[261.6255653006,262.79353657426,266.96486255163,267.07609791103,272.52663052146,274.70684356563,279.06726965397,280.31310567921,284.8811711051,286.15296204753,293.02063313667,294.32876096318,299.00064605783,299.12522966035,300.33547037059,305.22982618403,306.59245933664,311.45900631024,313.95067836072,320.35783506196,320.49131749323,325.57848126297,327.03195662575,332.22294006425,336.5158833679,339.00300006557,341.85740532612,343.38355445704,348.83408706747,350.39138209902,355.95315006884,360.55273217989,366.27579142084,367.91095120397,373.75080757229,373.90653707544,381.53728273004,384.58958099188,390.69417751556,392.4383479509,398.83363954714,400.44729382745,400.61414686654,406.97310157871,408.78994578219,418.60090448096,420.46965851882,427.32175665765,429.2294430713,436.04260883433,439.53094970501,448.50096908674,448.68784449053,455.80987376816,457.84473927605,459.88868900496,465.11211608996,467.18850946536,474.60420009179,480.73697623985,488.36772189445,490.54793493862,498.33441009638,504.77382505185,512.78610798918,515.07533168556,520.92557002075,523.2511306012],description:"81/80, 1029/1024 and 9604/9375, Gene Ward Smith, 2002"},pipedum_68:{frequencies:[246.94165062806,250.86135936819,252.08626834948,253.99712636029,258.02882677871,259.28873315946,263.4044273366,264.58033995864,268.89201957278,272.13977824317,273.16014686758,276.57464870343,277.80935695657,282.21902928921,286.81815421096,288.0985923994,291.6998248044,292.67158592955,296.32998075367,301.03363124183,302.50352201937,307.30516522603,308.67706328508,311.01688942076,316.08531280392,317.49640795036,322.53603347338,324.11091644933,329.25553417075,333.37122834788,334.48181249092,338.66283514705,340.17472280396,345.71831087928,351.20590311546,352.77378661151,357.18345894416,358.5226927637,362.85303765756,368.76619827124,370.41247594209,376.29203905228,378.12940252422,384.13145653254,387.04324016806,388.93309973919,395.1066410049,396.87050993795,403.33802935916,409.74022030137,411.56941771343,414.86197305514,416.71403543485,423.32854393382,430.22723131644,432.1478885991,439.00737889433,441.15096961159,444.49497113051,451.55044686274,453.56629707195,460.95774783905,468.27453748728,470.36504881535,474.12796920588,476.24461192554,483.80405021008,491.68826436165,493.88330125612],description:"245/243, 2048/2025 and 2401/2400, Gene Ward Smith, 2002"},pipedum_7:{frequencies:[261.6255653006,290.69507255622,317.94773560837,347.75533582165,392.4383479509,429.2294430713,476.92160341255,523.2511306012],description:"81/80, 64/63 and 6144/6125, Manuel Op de Coul"},pipedum_72:{frequencies:[195.99771799087,198.44768946576,200.08100378235,201.59765279061,204.16428957382,205.79760389041,208.41771227328,209.06423252359,211.67753543014,214.37250405251,216.08748408493,217.77524221208,220.49743273973,222.31222642483,223.99739198957,226.79735938944,228.66400432268,231.52230437672,232.29359169288,235.19726158904,238.19167116946,240.09720453882,241.91718334873,244.99714748859,246.9571246685,250.10125472793,251.99706598826,254.07111591409,257.24700486302,258.04499557198,261.33029065449,264.59691928767,266.7746717098,268.79687038748,272.2190527651,274.39680518722,277.89028303104,279.99673998696,282.23671390685,285.83000540335,289.40288047089,290.3669896161,293.99657698631,296.41630189977,300.12150567352,302.39647918591,304.88533909691,308.69640583562,311.1074888744,313.59634878539,317.58889489261,321.55875607877,322.55624446497,326.66286331812,329.27616622466,333.46833963724,335.99608798435,338.76148788545,342.99600648402,347.28345656507,348.44038753932,352.79589238357,357.28750675419,360.14580680822,362.95873702013,365.86240691629,370.43568700274,373.32898664928,376.31561854247,381.10667387114,385.87050729453,387.1559861548,391.99543598174],description:"225/224, 1029/1024 and 4375/4374, Gene Ward Smith, 2002"},pipedum_72a:{frequencies:[195.99771799087,197.5656997348,200.08100378235,201.59765279061,203.21043401293,205.79760389041,207.44398472154,209.99755499022,211.67753543014,213.41973736784,216.04686727389,217.77524221208,219.51744414977,222.31222642483,223.99739198957,226.84921063758,228.66400432268,230.49331635726,233.3306166558,235.19726158904,237.07883968176,240.09720453882,241.91718334873,244.99714748859,246.9571246685,248.93278166584,251.99706598826,254.07111591409,256.1036848414,259.25624072866,261.33029065449,264.65741241051,266.7746717098,268.79687038748,272.2190527651,274.39680518722,276.59197962872,279.99673998696,282.23671390685,285.83000540335,288.11664544658,290.30062001848,293.99657698631,296.3485496022,298.59492344758,302.46561418344,304.88533909691,308.7669811456,311.1074888744,313.59634878539,317.58889489261,320.12960605175,322.55624446497,326.66286331812,329.27616622466,333.46833963724,335.99608798435,338.68405668822,342.99600648402,345.73997453589,348.36074402217,352.79589238357,355.69956227973,360.07811212314,362.95873702013,365.86240691629,370.52037737472,373.32898664928,376.31561854247,381.10667387114,384.15552726211,388.884361093,391.99543598174],description:"4375/4374, 2401/2400 and 15625/15552, Manuel Op de Coul, 2002"},pipedum_72b:{frequencies:[195.99771799087,197.5656997348,200.51849868858,202.12264667808,204.16428957382,205.79760389041,207.94510975112,209.60867062912,211.67753543014,213.41973736784,215.59748978996,218.74745311481,220.49743273973,222.7983318762,224.58071853121,226.79735938944,228.66400432268,230.99731048924,232.89852292125,235.19726158904,238.19167116946,240.62219842629,242.5471760137,244.99714748859,246.9571246685,249.53413170134,251.53040475495,254.07111591409,256.1036848414,259.87197430039,262.49694373777,264.59691928767,267.35799825143,269.49686223745,272.2190527651,274.39680518722,277.19677258709,279.4782275055,283.49669923679,285.83000540335,288.74663811155,291.12315365156,293.99657698631,296.3485496022,299.44095804161,301.83648570594,304.88533909691,309.37139797666,311.91766462667,314.99633248533,317.51630314521,320.82959790172,323.39623468494,326.66286331812,329.27616622466,332.71217560179,336.87107779681,340.19603908415,342.99600648402,346.49596573386,349.34778438187,352.79589238357,355.69956227973,359.32914964993,362.08404605941,367.49572123288,371.24567757199,374.30119755201,377.99559898239,381.10667387114,384.99551748207,388.16420486875,391.99543598174],description:"225/224, 3025/3024, 1375/1372 and 4375/4374"},pipedum_72b2:{frequencies:[195.99771799087,198.44768946576,200.45221158157,202.12264667808,204.16428957382,205.79760389041,207.87636756607,209.06423252359,211.67753543014,213.81569235368,215.59748978996,217.77524221208,220.49743273973,222.72467953508,223.99739198957,226.79735938944,228.66400432268,230.99731048924,233.3306166558,235.19726158904,237.57299150408,239.55276643329,241.97249134675,244.99714748859,246.39713118852,249.45164107929,251.99706598826,254.07111591409,257.24700486302,258.71698774795,261.33029065449,264.59691928767,267.2696154421,269.49686223745,272.2190527651,274.39680518722,277.19677258709,279.99673998696,282.23671390685,285.0875898049,287.46331971994,290.3669896161,293.99657698631,296.96623938011,298.66318931942,302.39647918591,304.88533909691,307.99641398565,311.81455134911,313.59634878539,317.51630314521,320.72353853051,323.39623468494,326.66286331812,329.27616622466,332.60218810572,335.99608798435,338.76148788545,342.99600648402,344.95598366393,348.44038753932,352.79589238357,356.35948725613,359.32914964993,362.95873702013,367.49572123288,369.59569678278,374.17746161893,376.31561854247,380.11678640654,383.28442629326,387.1559861548,391.99543598174],description:"Optimised version of pipedum_72b, Manuel Op de Coul"},pipedum_72c:{frequencies:[195.99771799087,197.5656997348,199.99767141926,201.59765279061,203.25689273127,205.79760389041,207.40499258293,209.99755499022,211.67753543014,213.41973736784,215.9974851328,217.77524221208,219.51744414977,222.31222642483,223.99739198957,226.79735938944,228.66400432268,230.49331635726,233.3306166558,235.19726158904,237.13304151982,239.99720570311,241.91718334873,244.99714748859,246.9571246685,248.88599109952,251.99706598826,254.07111591409,256.1036848414,259.19698215935,261.33029065449,264.59691928767,266.7746717098,268.79687038748,272.2190527651,274.39680518722,276.47678096998,279.99673998696,282.23671390685,285.83000540335,287.99664684373,290.3669896161,293.99657698631,296.41630189977,298.66318931942,302.39647918591,304.88533909691,308.69640583562,311.1074888744,313.59634878539,317.58889489261,320.12960605175,322.55624446497,326.66286331812,329.27616622466,333.32945236543,335.99608798435,338.76148788545,342.99600648402,345.59597621247,348.44038753932,352.79589238357,355.69956227973,359.99580855466,362.95873702013,365.86240691629,370.43568700274,373.32898664928,376.31561854247,381.10667387114,384.15552726211,388.884361093,391.99543598174],description:"441/440, 2401/2400, 4375/4374 and 1375/1372"},pipedum_74:{frequencies:[174.6141157165,175.4667237034,177.38576834692,178.25190979393,182.45393315683,183.34482150233,186.25505676427,187.16450528362,187.6669026756,191.57662981467,192.51206257744,194.01568412944,194.96302633711,195.48635695375,199.55898939029,200.53339851817,202.72659239648,203.71646833592,208.51878075067,209.5369388598,210.56006844408,212.8629220163,213.90229175271,216.62558481901,218.9447197882,220.01378580279,221.73221043365,222.81488724241,228.06741644604,229.18102687791,231.68753416741,232.81882095533,233.95563160453,239.47078726834,240.6400782218,243.27191087578,244.4597620031,249.5526737115,250.2225369008,251.44432663176,253.4082404956,254.6455854199,259.95070178281,260.64847593833,261.92117357475,266.07865252038,267.37786469089,273.68089973525,275.01723225349,278.02504100089,279.3825851464,280.74675792544,285.20305567028,287.36494472201,291.02352619417,291.92629305093,292.44453950566,297.08651632321,299.33848408543,304.08988859472,305.57470250388,310.42509460711,311.94084213937,312.778171126,319.29438302446,320.85343762907,325.94634933747,328.4170796823,333.63004920107,334.22233086361,335.25910217568,339.52744722653,342.10112466906,347.53130125111,349.228231433],description:"81/80, 126/125 and 4194304/4117715, Gene Ward Smith, 2002"},pipedum_81:{frequencies:[116.54094037952,117.10998793997,118.96887663743,119.87068153322,121.77339076391,122.3679873985,122.96548733697,124.86529326377,124.9173204693,126.84728204574,127.4666535401,128.08904930934,130.12220882219,130.47149010419,131.10855792696,133.18964614802,133.83998621711,135.96443044277,136.62831926329,136.99506460939,139.16958944446,139.84912845542,140.53198552796,142.70319230145,142.76265196491,144.96832233798,145.6761754744,146.38748492496,148.71109579678,149.83835191653,152.21673845488,152.95998424812,153.70685917121,155.38792050603,156.14665058662,156.56578812502,159.82757537763,160.60798346053,163.08936263023,163.15731653133,163.95398311595,166.48705768503,167.29998277138,169.12970939431,169.95553805347,170.78539907912,173.96198680558,174.81141056928,175.66498190995,177.58619486403,178.45331495614,182.66008614586,183.55198109774,184.08675852442,184.44823100545,186.46550460723,187.37598070395,190.2709230686,191.19998031015,193.29109645065,194.23490063253,195.18331323328,199.78446922203,200.75997932566,202.95565127318,203.94664566416,204.94247889494,208.7543841667,209.77369268314,210.79797829194,213.10343383684,214.14397794737,217.45248350698,218.5142632116,218.60531082127,221.98274358004,223.06664369518,227.71386543882,228.32510768232,229.43997637218,231.94931574077,233.08188075904],description:"81/80, 126/125 and 17294403/16777216, Gene Ward Smith, 2002"},pipedum_87:{frequencies:[82.40688922822,83.34286871081,83.43697534357,84.3846545697,84.87648045204,85.84050961273,86.81548824043,86.91351598289,87.90068184343,87.99993493267,88.99944036648,90.43280025045,90.53491248218,91.56321025358,92.60318745646,92.70775038175,93.76072729966,93.86659726152,95.37834401414,96.46165360048,96.57057331432,97.66742427048,97.77770548075,98.88826707386,100.01144245297,100.59434720242,101.73690028175,101.85177654245,103.00861153527,104.17858588852,104.29621917947,105.48081821212,105.59992191921,107.30063701591,108.51936030054,108.64189497861,109.87585230429,111.12382494775,111.2493004581,112.5128727596,113.16864060272,114.45401281697,115.75398432057,115.88468797718,117.20090912458,117.3332465769,118.66592048864,120.5770670006,120.7132166429,122.0842803381,122.22213185094,123.61033384233,125.01430306622,125.15546301536,127.17112535219,128.61553813397,128.76076441909,130.22323236064,130.37027397433,131.85102276515,133.3485899373,133.49916054972,135.64920037567,135.80236872326,137.34481538037,138.90478118469,139.06162557262,140.6410909495,140.79989589228,143.06751602122,144.69248040072,144.85585997148,146.50113640572,146.66655822112,148.3324006108,150.01716367946,150.89152080363,152.60535042263,154.33864576076,154.51291730291,156.26787883277,156.4443287692,158.22122731818,160.76942266746,160.95095552387,162.7790404508,162.96284246792,164.81377845644],description:"67108864/66430125 and 15625/15552, Op de Coul"},pipedum_9:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,392.4383479509,420.46965851882,448.50096908674,490.54793493862,523.2511306012],description:"225/224, 49/48 and 36/35 are homophonic intervals"},pipedum_99:{frequencies:[41.20344461411,41.53307217102,41.72802550619,42.06184971024,42.3806858888,42.72949811834,42.92025480636,43.26361684482,43.60972577957,43.95034092172,44.14654780083,44.49972018324,44.86597302425,45.06626754668,45.407877738,45.78160512679,46.1478579678,46.35387519087,46.73538856693,47.08965098755,47.46636819545,47.68917200707,48.07068538313,48.45525086619,48.65129757643,49.0517197787,49.44413353693,49.83968660523,50.07363060743,50.47421965228,50.85682306656,51.275397742,51.50430576764,51.91634021378,52.34363519496,52.55541404861,52.975857361,53.41187264792,53.8391676291,54.07952105602,54.50191086522,54.93792615215,55.37742956136,55.62465022905,56.08246628032,56.50758118507,56.7598471725,57.22700640849,57.68482245975,58.14630103943,58.41923570866,58.86206373444,59.33296024432,59.82129736567,60.08835672891,60.56906358274,61.04214016905,61.31464972338,61.80516692116,62.29960825653,62.81236223395,63.06649685833,63.5710288332,64.0942471775,64.60700115492,64.89542526722,65.40229303827,65.92551138258,66.21982170125,66.7648408099,67.29895953638,67.80909742208,68.12738858153,68.67240769018,69.2217869517,69.77556124732,70.1030828504,70.63447648133,71.19955229318,71.53375801061,72.10602807469,72.68287629929,73.25056820286,73.57757966805,74.1662003054,74.77662170709,75.37483468075,75.67979623,76.30267521131,76.91309661301,77.25645865146,77.87451032067,78.48275164592,79.11061365909,79.4637860415,80.11780897188,80.75875144366,81.37091690649,81.75286629784,82.40688922822],description:"2401/2400, 3136/3125 and 4375/4374, Gene Ward Smith, 2002"},pipedum_9a:{frequencies:[261.6255653006,282.62020942966,305.22982618403,329.72357766794,356.10146388137,384.67750727926,415.4517078616,448.79042515914,484.69365917187,523.2511306012],description:"4375/4374, 2401/2400 and 21/20 are homophonic intervals"},pipedum_9b:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,357.20610515709,383.2405741708,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"128/125 and 2109375/2097152 are homophonic intervals"},pipedum_9c:{frequencies:[261.6255653006,285.40970760065,305.22982618403,332.97799220076,348.83408706747,392.4383479509,411.12588832951,448.50096908674,479.64686971777,523.2511306012],description:"49/48, 21/20, 99/98 and 121/120, Gene Ward Smith, 2002"},pipedum_9d:{frequencies:[261.6255653006,277.4816601673,308.34441624714,327.03195662575,346.85207520913,394.68085279633,418.60090448096,443.97065626768,493.35106599542,523.2511306012],description:"128/125, 36/35, 99/98 and 121/120, Gene Ward Smith, 2002"},pipedum_9e:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"21/20, 27/25 and 128/125"},polansky_ps:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,4447.6346101102,327.03195662575,654.0639132515,981.09586987725,1308.127826503,1635.15978312875,1962.1917397545,2289.22369638025,2616.255653006,2943.28760963175,3270.3195662575,3597.35152288325,3924.383479509,4251.41543613475,4578.4473927605,4905.47934938625,5232.511306012,5559.54326263775,392.4383479509,784.8766959018,1177.3150438527,1569.7533918036,1962.1917397545,2354.6300877054,2747.0684356563,3139.5067836072,3531.9451315581,3924.383479509,4316.8218274599,4709.2601754108,5101.6985233617,5494.1368713126,5886.5752192635,6279.0135672144,6671.4519151653],description:"Three interlocking harmonic series on 1:5:3 by Larry Polansky in Psaltery"},poole:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Poole's double diatonic or dichordal scale"},porcupine:{frequencies:[261.6255653006,268.5059110196,275.56719913678,277.81869773502,285.12489766782,287.45448663717,295.01409284105,302.77250493809,305.24628043356,313.27378316024,315.83336022842,324.13928669805,332.66364612382,335.38164643474,344.20166244741,347.01393314922,356.13986022226,365.50578499276,368.49211923405,378.18288921726,381.27279846892,391.29968045081,401.5902538439,404.87141319969,415.51890206933,418.91386427268,429.93064777916,441.23715556831,444.84224659643,456.54090625717,460.27103529174,472.37544811397,484.79818817936,488.75918813348,501.6127950959,505.71118020326,519.01059820838,523.2511306012],description:"porcupine temperament, g=162.996, 5-limit"},portbag1:{frequencies:[261.6255653006,281.75060878526,311.64221749042,334.88072358477,376.74081403286,413.43299207996,457.84473927605,523.2511306012],description:"Portugese bagpipe tuning"},portbag2:{frequencies:[261.6255653006,274.70684356563,281.75060878526,310.07474405997,317.68818643644,343.38355445704,372.08969287196,392.4383479509,408.78994578219,482.37213602298,523.2511306012],description:"Portugese bagpipe tuning 2"},prelleur:{frequencies:[261.6255653006,276.42153822591,293.20376052703,310.91918875105,328.72923110101,349.43408698743,368.89538496172,391.53834819612,414.55891854195,438.90564190541,466.17878415199,492.19384741628,523.2511306012],description:"Peter Prelleur's well temperament (1731)"},preston:{frequencies:[261.6255653006,276.24946721727,293.45376109391,311.26733605541,328.91048112005,349.30075403587,368.79929095641,391.73834630677,413.67420227347,439.48064068428,466.20100528964,492.6657196346,523.2511306012],description:"Preston's equal beating temperament (1785)"},preston2:{frequencies:[261.6255653006,276.2302000593,293.37610901672,311.58628319174,328.97985807656,349.39999567988,368.9044325484,391.80273191286,413.67420227347,439.35140993827,466.62242981045,492.67053466508,523.2511306012],description:"Preston's theoretically correct well temperament"},prime_10:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,474.19633710734,523.2511306012],description:"First 10 prime numbers reduced by 2/1"},prime_5:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,523.2511306012],description:'What Lou Harrison calls "the Prime Pentatonic", a widely used scale'},primes6:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1308.127826503,1831.3789571042,2877.8812183066,3401.1323489078],description:"First 6 primes"},prinz:{frequencies:[261.6255653006,275.62199471997,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.49599295996,391.22147055517,413.43299207996,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Prinz well-tempermament (1808)"},prinz2:{frequencies:[261.6255653006,275.62199471997,291.81313052759,310.07474405997,327.03195662575,348.83408706747,367.49599295996,390.42584360243,413.43299207996,436.71344361716,465.11211608996,490.54793493862,523.2511306012],description:"Prinz equal beating temperament (1808)"},"prod13-2":{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,359.73515228832,371.99885066179,392.4383479509,400.61414686654,408.78994578219,425.14154361347,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"13-limit binary products [1 3 5 7 11 13]"},prod13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,331.11985608357,343.38355445704,345.42750418595,359.73515228832,367.91095120397,371.99885066179,392.4383479509,400.61414686654,404.70204632437,408.78994578219,425.14154361347,441.49314144476,449.66894036041,457.84473927605,478.28423656516,490.54793493862,494.63583439645,515.07533168556,523.2511306012],description:"13-limit binary products [1 3 5 7 9 11 13]"},prod7d:{frequencies:[261.6255653006,265.7783520514,267.90457886781,273.37201925287,279.06726965397,286.15296204753,294.32876096318,299.00064605783,300.46061014991,306.59245933664,310.07474405997,318.93402246168,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,350.53737850823,357.69120255941,367.91095120397,372.08969287196,382.72082695402,390.53145607553,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,429.2294430713,441.49314144476,446.50763144636,455.62003208812,457.84473927605,465.11211608996,478.40103369253,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Double Cubic Corner 7-limit. Chalmers '96"},prod7s:{frequencies:[261.6255653006,286.15296204753,294.32876096318,300.46061014991,306.59245933664,327.03195662575,343.38355445704,350.53737850823,357.69120255941,367.91095120397,392.4383479509,400.61414686654,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Single Cubic Corner 7-limit"},prodq13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,276.76092858245,279.06726965397,286.15296204753,292.28481123426,294.32876096318,299.00064605783,304.4370214407,314.76825825228,318.85615771011,322.00069575458,327.03195662575,334.88072358477,341.71502406609,343.38355445704,345.42750418595,348.83408706747,359.73515228832,368.0007951481,371.99885066179,380.54627680087,392.4383479509,396.30854862103,400.61414686654,408.78994578219,418.60090448096,425.14154361347,429.33426100611,434.91003062957,449.66894036041,457.84473927605,465.11211608996,468.3646483703,478.40103369253,490.54793493862,494.63583439645,507.3950357345,515.20111320734,523.2511306012],description:"13-limit Binary products and quotients. Chalmers '96"},prog_ennea:{frequencies:[261.6255653006,269.29177952703,285.30470202322,311.12698372208,349.22823143301,391.99543598175,403.48177901006,427.47405410759,466.16376151809,523.2511306012],description:"Progressive Enneatonic, 50+100+150+200 cents in each half (500 cents)"},prog_ennea1:{frequencies:[261.6255653006,269.10058145205,285.40970760065,310.68035879446,348.83408706747,392.4383479509,404.33041910093,428.11456140098,465.11211608996,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+150+200 cents in each half (500 cents)"},prog_ennea2:{frequencies:[261.6255653006,269.55361273395,285.40970760065,321.08592105074,348.83408706747,392.4383479509,404.33041910093,428.11456140098,481.6288815761,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+200+150 cents in each half (500 cents)"},prog_ennea3:{frequencies:[261.6255653006,269.55361273395,285.40970760065,310.07474405997,348.83408706747,392.4383479509,404.33041910093,428.11456140098,465.11211608996,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+150+200 cents in each half (500 cents)"},prooijen1:{frequencies:[261.6255653006,339.14425131559,366.27579142084,436.04260883433,470.92601754108,610.45965236807,726.73768139056,784.8766959018],description:"Kees van Prooijen, major mode of Bohlen-Pierce"},prooijen2:{frequencies:[261.6255653006,311.45900631024,336.37572681506,436.04260883433,470.92601754108,560.62621135843,726.73768139056,784.8766959018],description:"Kees van Prooijen, minor mode of Bohlen-Pierce"},"ps-dorian":{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,490.54793493862,504.56359022259,523.2511306012],description:"Complex 4 of p. 115 based on Archytas's Enharmonic"},"ps-enh":{frequencies:[261.6255653006,266.38239376061,279.06726965397,348.83408706747,392.4383479509,399.57359064092,418.60090448096,523.2511306012],description:"Dorian mode of an Enharmonic genus found in Ptolemy's Harmonics"},"ps-hypod":{frequencies:[261.6255653006,294.32876096318,367.91095120397,378.42269266694,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Complex 7 of p. 115 based on Archytas's Enharmonic"},"ps-hypod2":{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,392.4383479509,490.54793493862,504.56359022259,523.2511306012],description:"Complex 8 of p. 115 based on Archytas's Enharmonic"},"ps-mixol":{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"Complex 3 of p. 115 based on Archytas's Enharmonic"},ptolemy:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Intense Diatonic Syntonon, also Zarlino's scale"},ptolemy_chrom:{frequencies:[261.6255653006,271.31540105247,290.69507255622,348.83408706747,392.4383479509,406.97310157871,436.04260883433,523.2511306012],description:"Ptolemy Soft Chromatic"},ptolemy_ddiat:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Lyra tuning, Dorian mode, comb. of diatonon toniaion & diatonon ditoniaion"},ptolemy_diat:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Ptolemy's Diatonon Ditoniaion & Archytas' Diatonic, also Lyra tuning"},ptolemy_diat2:{frequencies:[261.6255653006,271.31540105247,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Dorian mode of a permutation of Ptolemy's Tonic Diatonic"},ptolemy_diat3:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,441.49314144476,470.92601754108,523.2511306012],description:"Dorian mode of the remaining permutation of Ptolemy's Intense Diatonic"},ptolemy_diat4:{frequencies:[261.6255653006,299.00064605783,310.07474405997,348.83408706747,392.4383479509,448.50096908674,465.11211608996,523.2511306012],description:"permuted Ptolemy's diatonic"},ptolemy_diat5:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Sterea lyra, Dorian, comb. of 2 Tonic Diatonic 4chords, also Archytas' diatonic"},ptolemy_diff:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,392.4383479509,425.14154361347,490.54793493862,523.2511306012],description:"Difference tones of Intense Diatonic reduced by 2/1"},ptolemy_enh:{frequencies:[261.6255653006,267.43946675172,279.06726965397,348.83408706747,392.4383479509,401.15920012759,418.60090448096,523.2511306012],description:"Dorian mode of Ptolemy's Enharmonic"},ptolemy_exp:{frequencies:[261.6255653006,272.52663052146,275.93321340298,287.4304306281,290.69507255622,294.32876096318,306.59245933664,327.03195662575,340.65828815182,344.91651675372,348.83408706747,363.36884069528,367.91095120397,383.2405741708,392.4383479509,408.78994578219,413.89982010446,431.14564594215,436.04260883433,441.49314144476,459.88868900496,490.54793493862,510.98743222773,517.37477513058,523.2511306012],description:"Intense Diatonic expanded: all interval combinations"},ptolemy_hom:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Dorian mode of Ptolemy's Equable Diatonic or Diatonon Homalon"},ptolemy_iast:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Ptolemy's Iastia or Lydia tuning, mixture of Tonic Diatonic & Intense Diatonic"},ptolemy_iastaiol:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,441.49314144476,465.11211608996,523.2511306012],description:"Ptolemy's kithara tuning, mixture of Tonic Diatonic and Ditone Diatonic"},ptolemy_ichrom:{frequencies:[261.6255653006,274.08392555301,299.00064605783,348.83408706747,392.4383479509,411.12588832951,448.50096908674,523.2511306012],description:"Dorian mode of Ptolemy's Intense Chromatic"},ptolemy_idiat:{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Dorian mode of Ptolemy's Intense Diatonic (Diatonon Syntonon)"},ptolemy_imix:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Ptolemy Intense Diatonic mixed with its inverse"},ptolemy_malak:{frequencies:[261.6255653006,274.08392555301,299.00064605783,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Ptolemy's Malaka lyra tuning, a mixture of Intense Chrom. & Tonic Diatonic"},ptolemy_malak2:{frequencies:[261.6255653006,271.31540105247,290.69507255622,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Malaka lyra, mixture of his Soft Chromatic and Tonic Diatonic."},ptolemy_mdiat:{frequencies:[261.6255653006,274.70684356563,305.22982618403,348.83408706747,392.4383479509,412.06026534844,457.84473927605,523.2511306012],description:"Ptolemy soft diatonic"},ptolemy_mdiat2:{frequencies:[261.6255653006,290.69507255622,305.22982618403,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"permuted Ptolemy soft diatonic"},ptolemy_mdiat3:{frequencies:[261.6255653006,299.00064605783,313.95067836072,348.83408706747,392.4383479509,448.50096908674,470.92601754108,523.2511306012],description:"permuted Ptolemy soft diatonic"},ptolemy_meta:{frequencies:[261.6255653006,274.70684356563,305.22982618403,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Metabolika lyra tuning, mixture of Soft Diatonic & Tonic Diatonic"},ptolemy_mix:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,348.83408706747,353.19451315581,367.91095120397,372.08969287196,387.59343007496,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"All modes of Ptolemy Intense Diatonic mixed"},ptolemy_prod:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,331.11985608357,348.83408706747,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,484.4917875937,490.54793493862,523.2511306012],description:"Product of Intense Diatonic with its intervals"},ptolemy_tree:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Intense Diatonic with all their Farey parent fractions"},pygmie:{frequencies:[261.6255653006,299.00064605783,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:"Pygmie scale"},pyle:{frequencies:[261.6255653006,277.19063644077,293.6461094938,311.15753660095,329.66944764997,349.23831768549,369.99228554622,391.93430587921,415.28070933274,439.96441988338,466.23108306565,493.99742571239,523.2511306012],description:"Howard Willet Pyle quasi equal temperament"},pyramid:{frequencies:[261.6255653006,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:'This scale may also be called the "Wedding Cake"'},pyramid_down:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,348.83408706747,392.4383479509,418.60090448096,441.49314144476,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"Upside-Down Wedding Cake (divorce cake)"},pyth_12:{frequencies:[261.6255653006,279.38237857051,294.32876096318,310.07474405997,331.11985608357,348.83408706747,372.50983809402,392.4383479509,419.07356785577,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"12-tone Pythagorean scale"},pyth_12s:{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,326.6631048533,348.83408706747,367.49599295996,392.4383479509,419.07356785577,435.55080647107,471.45776383774,489.99465727995,523.2511306012],description:"Scale with major thirds flat by a schisma"},pyth_17:{frequencies:[261.6255653006,275.62199471997,279.38237857051,294.32876096318,310.07474405997,314.30517589183,331.11985608357,348.83408706747,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,441.49314144476,465.11211608996,471.45776383774,496.67978412536,523.2511306012],description:"17-tone Pythagorean scale"},pyth_17s:{frequencies:[261.6255653006,275.62199471997,279.06726965397,294.32876096318,310.07474405997,313.95067836072,331.11985608357,348.83408706747,367.49599295996,372.08969287196,392.4383479509,413.43299207996,418.60090448096,441.49314144476,465.11211608996,470.92601754108,496.67978412536,523.2511306012],description:"Schismatically altered 17-tone Pythagorean scale"},pyth_22:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,465.11211608996,471.45776383774,489.99465727995,496.67978412536,523.2511306012],description:"Pythagorean shrutis"},pyth_27:{frequencies:[261.6255653006,265.19499215873,275.62199471997,279.38237857051,290.36720431405,294.32876096318,298.34436617857,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,387.15627241873,392.4383479509,397.79248823809,413.43299207996,419.07356785577,435.55080647107,441.49314144476,447.51654926786,465.11211608996,471.45776383774,489.99465727995,496.67978412536,523.2511306012],description:"27-tone Pythagorean scale"},pyth_31:{frequencies:[261.6255653006,265.19499215873,275.62199471997,279.38237857051,283.19406633357,294.32876096318,298.34436617857,310.07474405997,314.30517589183,318.59332496145,326.6631048533,331.11985608357,335.63741195089,348.83408706747,353.59332287831,367.49599295996,372.50983809402,377.59208844475,392.4383479509,397.79248823809,413.43299207996,419.07356785577,424.79110016094,441.49314144476,447.51654926786,465.11211608996,471.45776383774,477.8899872033,489.99465727995,496.67978412536,503.45611792634,523.2511306012],description:"31-tone Pythagorean scale"},pyth_7a:{frequencies:[261.6255653006,277.97716313189,294.32876096318,312.72430852337,331.11985608357,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,469.08646278506,496.67978412536,523.2511306012],description:"Pythagorean 7-tone with whole tones divided arithmetically"},pyth_7h:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,467.46332623563,496.67978412536,523.2511306012],description:"Pythagorean 7-tone with whole tones divided harmonically"},pyth_chrom:{frequencies:[261.6255653006,275.62199471997,294.32876096318,348.83408706747,392.4383479509,413.43299207996,441.49314144476,465.11211608996,523.2511306012],description:"Dorian mode of the so-called Pythagorean chromatic, recorded by Gaudentius"},pyth_sev:{frequencies:[261.6255653006,268.38018042036,275.30918532257,282.41708286353,291.47537246454,299.00064605783,306.7202061947,314.63906894008,322.76237975718,333.11471138804,341.71502406609,350.53737850823,359.58750736009,368.87129039875,380.70252730062,390.53145607553,400.61414686654,410.95715126868,421.56719060242,435.08860262928,446.32166408632,457.84473927605,469.66531573563,481.7910743145,497.2441172906,510.08190181294,523.2511306012],description:"26-tone Pythagorean scale based on 7/4"},pyth_sev_16:{frequencies:[261.6255653006,268.38018042036,275.30918532257,282.41708286353,306.7202061947,314.63906894008,322.76237975718,350.53737850823,359.58750736009,368.87129039875,400.61414686654,410.95715126868,421.56719060242,457.84473927605,469.66531573563,481.7910743145,523.2511306012],description:'16-tone Pythagorean scale based on 7/4, "Armodue"'},pyth_third:{frequencies:[261.6255653006,267.90457886781,274.33428876064,280.9183116909,287.66035117148,290.46272611903,297.43383186155,304.57224382623,311.88197767806,319.36714514233,327.03195662575,334.88072358477,342.9178609508,351.14788961362,359.57543896435,363.07840893547,371.79228894479,380.71530478279,389.85247209758,399.20893142792,408.78994578219,418.60090448096,428.6473261885,438.93486201703,449.46929870544,453.84801015616,464.74036282794,475.89413097849,487.31559012197,499.0111642849,510.98743222773,523.2511306012],description:"Cycle of 5/4 thirds"}};o.prototype._tune=function(i,n=220){const e=new t;if(!e.isValidScale(i))throw new Error('not a valid tune.js scale name: "'+i+'". See http://abbernie.github.io/tune/scales.html');return e.loadScale(i),e.tonicize(n),this._asNumber()._withHap(r=>r.withValue(()=>e.note(r.value)).setContext(a(c({},r.context),{type:"frequency"})))};o.prototype.define("tune",(i,n)=>n.tune(i),{composable:!0,patternified:!0}); diff --git a/tutorial/assets/index.4b84cecb.js b/tutorial/assets/index.4b84cecb.js new file mode 100644 index 000000000..7eedc0c82 --- /dev/null +++ b/tutorial/assets/index.4b84cecb.js @@ -0,0 +1,8 @@ +var _t=Object.defineProperty,dt=Object.defineProperties;var At=Object.getOwnPropertyDescriptors;var L=Object.getOwnPropertySymbols;var Oe=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable;var Pe=(a,f,r)=>f in a?_t(a,f,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[f]=r,X=(a,f)=>{for(var r in f||(f={}))Oe.call(f,r)&&Pe(a,r,f[r]);if(L)for(var r of L(f))qe.call(f,r)&&Pe(a,r,f[r]);return a},H=(a,f)=>dt(a,At(f));var De=(a,f)=>{var r={};for(var $ in a)Oe.call(a,$)&&f.indexOf($)<0&&(r[$]=a[$]);if(a!=null&&L)for(var $ of L(a))f.indexOf($)<0&&qe.call(a,$)&&(r[$]=a[$]);return r};import{C as ke,D as wt,E as yt}from"./index.91bb3680.js";function bt(a,f){function r(){this.constructor=a}r.prototype=f.prototype,a.prototype=new r}function I(a,f,r,$){var u=Error.call(this,a);return Object.setPrototypeOf&&Object.setPrototypeOf(u,I.prototype),u.expected=f,u.found=r,u.location=$,u.name="SyntaxError",u}bt(I,Error);function J(a,f,r){return r=r||" ",a.length>f?a:(f-=a.length,r+=r.repeat(f),a+r.slice(0,f))}I.prototype.format=function(a){var f="Error: "+this.message;if(this.location){var r=null,$;for($=0;$ `+h+` +`+A+` | +`+u.line+" | "+E+` +`+A+" | "+J("",u.column-1," ")+J("",m,"^")}else f+=` + at `+h}return f};I.buildMessage=function(a,f){var r={literal:function(_){return'"'+u(_.text)+'"'},class:function(_){var m=_.parts.map(function(b){return Array.isArray(b)?h(b[0])+"-"+h(b[1]):h(b)});return"["+(_.inverted?"^":"")+m.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(_){return _.description}};function $(_){return _.charCodeAt(0).toString(16).toUpperCase()}function u(_){return _.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(m){return"\\x0"+$(m)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(m){return"\\x"+$(m)})}function h(_){return _.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(m){return"\\x0"+$(m)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(m){return"\\x"+$(m)})}function w(_){return r[_.type](_)}function A(_){var m=_.map(w),b,F;if(m.sort(),m.length>0){for(b=1,F=1;b",Je="@",Ke="!",Qe="(",Ve=")",Ye="/",er="*",rr="%",sr="?",re="struct",se="target",te="euclid",ne="slow",ae="rotL",ie="rotR",fe="fast",oe="scale",ce="//",le="cat",tr="$",ue="setcps",pe="setbpm",ge="hush",nr=/^[1-9]/,ar=/^[eE]/,ir=/^[0-9]/,ve=/^[ \n\r\t]/,fr=/^[0-9a-zA-Z~]/,$e=/^[^\n]/,or=be("number"),he=g(".",!1),cr=j([["1","9"]],!1,!1),lr=j(["e","E"],!1,!1),me=g("-",!1),ur=g("+",!1),pr=g("0",!1),gr=j([["0","9"]],!1,!1),vr=be("whitespace"),_e=j([" ",` +`,"\r"," "],!1,!1),$r=g(",",!1),hr=g("|",!1),mr=g('"',!1),_r=g("'",!1),dr=j([["0","9"],["a","z"],["A","Z"],"~"],!1,!1),Ar=g("#",!1),wr=g("^",!1),yr=g("_",!1),br=g(":",!1),de=g("[",!1),Ae=g("]",!1),Cr=g("<",!1),xr=g(">",!1),Er=g("@",!1),Fr=g("!",!1),jr=g("(",!1),Sr=g(")",!1),Rr=g("/",!1),Pr=g("*",!1),Or=g("%",!1),qr=g("?",!1),Dr=g("struct",!1),Ir=g("target",!1),kr=g("euclid",!1),Nr=g("slow",!1),Br=g("rotL",!1),Tr=g("rotR",!1),zr=g("fast",!1),Lr=g("scale",!1),Mr=g("//",!1),we=j([` +`],!0,!1),Wr=g("cat",!1),Zr=g("$",!1),Gr=g("setcps",!1),Ur=g("setbpm",!1),Xr=g("hush",!1),Hr=function(){return parseFloat(Fs())},Jr=function(e){return e.join("")},Kr=function(e){return e},Qr=function(e){return e.arguments_.alignment="t",e},Vr=function(e){return{weight:e}},Yr=function(e){return{replicate:e}},es=function(e,t,n){return{operator:{type_:"bjorklund",arguments_:{pulse:e,step:t,rotation:n||0}}}},rs=function(e){return{operator:{type_:"stretch",arguments_:{amount:e}}}},ss=function(e){return{operator:{type_:"stretch",arguments_:{amount:"1/"+e}}}},ts=function(e){return{operator:{type_:"fixed-step",arguments_:{amount:e}}}},ns=function(e){return{operator:{type_:"degradeBy",arguments_:{amount:e||.5}}}},as=function(e,t){return new mt(e,t)},is=function(e){return new G(e,"h")},fs=function(e){return{alignment:"v",list:e}},os=function(e){return{alignment:"r",list:e}},cs=function(e,t){return t&&t.list.length>0?new G([e,...t.list],t.alignment):e},ls=function(e){return e},us=function(e){return{name:"struct",args:{sequence:e}}},ps=function(e){return{name:"target",args:{name:e}}},gs=function(e,t,n){return{name:"bjorklund",args:{pulse:parseInt(e),step:parseInt(t)}}},vs=function(e){return{name:"stretch",args:{amount:e}}},$s=function(e){return{name:"shift",args:{amount:"-"+e}}},hs=function(e){return{name:"shift",args:{amount:e}}},ms=function(e){return{name:"stretch",args:{amount:"1/"+e}}},_s=function(e){return{name:"scale",args:{scale:e.join("")}}},ye=function(e,t){return t},ds=function(e,t){return t.unshift(e),new G(t,"t")},As=function(e){return e},ws=function(e,t){return new ht(e.name,e.args,t)},ys=function(e){return e},bs=function(e){return e},Cs=function(e){return new U("setcps",{value:e})},xs=function(e){return new U("setcps",{value:e/120/2})},Es=function(){return new U("hush")},s=0,v=0,N=[{line:1,column:1}],x=0,M=[],o=0,B;if("startRule"in f){if(!(f.startRule in u))throw new Error(`Can't start parsing from rule "`+f.startRule+'".');h=u[f.startRule]}function Fs(){return a.substring(v,s)}function js(){return W(v,s)}function g(e,t){return{type:"literal",text:e,ignoreCase:t}}function j(e,t,n){return{type:"class",parts:e,inverted:t,ignoreCase:n}}function Ss(){return{type:"end"}}function be(e){return{type:"other",description:e}}function Ce(e){var t=N[e],n;if(t)return t;for(n=e-1;!N[n];)n--;for(t=N[n],t={line:t.line,column:t.column};nx&&(x=s,M=[]),M.push(e))}function Rs(e,t,n){return new I(I.buildMessage(e,t),e,t,n)}function xe(){var e;return e=$t(),e}function y(){var e,t;return o++,e=s,Ee(),t=T(),t!==r?(Is(),Ds(),v=e,e=Hr()):(s=e,e=r),o--,e===r&&o===0&&c(or),e}function Ps(){var e;return a.charCodeAt(s)===46?(e=w,s++):(e=r,o===0&&c(he)),e}function Os(){var e;return nr.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(cr)),e}function qs(){var e;return ar.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(lr)),e}function Ds(){var e,t,n,i,l;if(e=s,t=qs(),t!==r){if(n=Ee(),n===r&&(n=ks()),n===r&&(n=null),i=[],l=S(),l!==r)for(;l!==r;)i.push(l),l=S();else i=r;i!==r?(t=[t,n,i],e=t):(s=e,e=r)}else s=e,e=r;return e}function Is(){var e,t,n,i;if(e=s,t=Ps(),t!==r){if(n=[],i=S(),i!==r)for(;i!==r;)n.push(i),i=S();else n=r;n!==r?(t=[t,n],e=t):(s=e,e=r)}else s=e,e=r;return e}function T(){var e,t,n,i;if(e=Ns(),e===r)if(e=s,t=Os(),t!==r){for(n=[],i=S();i!==r;)n.push(i),i=S();t=[t,n],e=t}else s=e,e=r;return e}function Ee(){var e;return a.charCodeAt(s)===45?(e=A,s++):(e=r,o===0&&c(me)),e}function ks(){var e;return a.charCodeAt(s)===43?(e=E,s++):(e=r,o===0&&c(ur)),e}function Ns(){var e;return a.charCodeAt(s)===48?(e=_,s++):(e=r,o===0&&c(pr)),e}function S(){var e;return ir.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(gr)),e}function p(){var e,t;for(o++,e=[],ve.test(a.charAt(s))?(t=a.charAt(s),s++):(t=r,o===0&&c(_e));t!==r;)e.push(t),ve.test(a.charAt(s))?(t=a.charAt(s),s++):(t=r,o===0&&c(_e));return o--,t=r,o===0&&c(vr),e}function R(){var e,t,n,i;return e=s,t=p(),a.charCodeAt(s)===44?(n=m,s++):(n=r,o===0&&c($r)),n!==r?(i=p(),t=[t,n,i],e=t):(s=e,e=r),e}function Fe(){var e,t,n,i;return e=s,t=p(),a.charCodeAt(s)===124?(n=b,s++):(n=r,o===0&&c(hr)),n!==r?(i=p(),t=[t,n,i],e=t):(s=e,e=r),e}function P(){var e;return a.charCodeAt(s)===34?(e=F,s++):(e=r,o===0&&c(mr)),e===r&&(a.charCodeAt(s)===39?(e=Me,s++):(e=r,o===0&&c(_r))),e}function z(){var e;return fr.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,o===0&&c(dr)),e===r&&(a.charCodeAt(s)===45?(e=A,s++):(e=r,o===0&&c(me)),e===r&&(a.charCodeAt(s)===35?(e=We,s++):(e=r,o===0&&c(Ar)),e===r&&(a.charCodeAt(s)===46?(e=w,s++):(e=r,o===0&&c(he)),e===r&&(a.charCodeAt(s)===94?(e=Ze,s++):(e=r,o===0&&c(wr)),e===r&&(a.charCodeAt(s)===95?(e=Ge,s++):(e=r,o===0&&c(yr)),e===r&&(a.charCodeAt(s)===58?(e=Ue,s++):(e=r,o===0&&c(br)))))))),e}function je(){var e,t,n;if(e=s,p(),t=[],n=z(),n!==r)for(;n!==r;)t.push(n),n=z();else t=r;return t!==r?(n=p(),v=e,e=Jr(t)):(s=e,e=r),e}function Bs(){var e,t,n,i;return e=s,p(),a.charCodeAt(s)===91?(t=Y,s++):(t=r,o===0&&c(de)),t!==r?(p(),n=Re(),n!==r?(p(),a.charCodeAt(s)===93?(i=ee,s++):(i=r,o===0&&c(Ae)),i!==r?(p(),v=e,e=Kr(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Ts(){var e,t,n,i;return e=s,p(),a.charCodeAt(s)===60?(t=Xe,s++):(t=r,o===0&&c(Cr)),t!==r?(p(),n=O(),n!==r?(p(),a.charCodeAt(s)===62?(i=He,s++):(i=r,o===0&&c(xr)),i!==r?(p(),v=e,e=Qr(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function zs(){var e;return e=je(),e===r&&(e=Bs(),e===r&&(e=Ts())),e}function Ls(){var e;return e=Ms(),e===r&&(e=Zs(),e===r&&(e=Gs(),e===r&&(e=Us(),e===r&&(e=Xs(),e===r&&(e=Ws(),e===r&&(e=Hs())))))),e}function Ms(){var e,t,n;return e=s,a.charCodeAt(s)===64?(t=Je,s++):(t=r,o===0&&c(Er)),t!==r?(n=y(),n!==r?(v=e,e=Vr(n)):(s=e,e=r)):(s=e,e=r),e}function Ws(){var e,t,n;return e=s,a.charCodeAt(s)===33?(t=Ke,s++):(t=r,o===0&&c(Fr)),t!==r?(n=y(),n!==r?(v=e,e=Yr(n)):(s=e,e=r)):(s=e,e=r),e}function Zs(){var e,t,n,i,l,d,C;return e=s,a.charCodeAt(s)===40?(t=Qe,s++):(t=r,o===0&&c(jr)),t!==r?(p(),n=y(),n!==r?(p(),i=R(),i!==r?(p(),l=y(),l!==r?(p(),R(),p(),d=y(),d===r&&(d=null),p(),a.charCodeAt(s)===41?(C=Ve,s++):(C=r,o===0&&c(Sr)),C!==r?(v=e,e=es(n,l,d)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Gs(){var e,t,n;return e=s,a.charCodeAt(s)===47?(t=Ye,s++):(t=r,o===0&&c(Rr)),t!==r?(n=y(),n!==r?(v=e,e=rs(n)):(s=e,e=r)):(s=e,e=r),e}function Us(){var e,t,n;return e=s,a.charCodeAt(s)===42?(t=er,s++):(t=r,o===0&&c(Pr)),t!==r?(n=y(),n!==r?(v=e,e=ss(n)):(s=e,e=r)):(s=e,e=r),e}function Xs(){var e,t,n;return e=s,a.charCodeAt(s)===37?(t=rr,s++):(t=r,o===0&&c(Or)),t!==r?(n=y(),n!==r?(v=e,e=ts(n)):(s=e,e=r)):(s=e,e=r),e}function Hs(){var e,t,n;return e=s,a.charCodeAt(s)===63?(t=sr,s++):(t=r,o===0&&c(qr)),t!==r?(n=y(),n===r&&(n=null),v=e,e=ns(n)):(s=e,e=r),e}function Se(){var e,t,n;return e=s,t=zs(),t!==r?(n=Ls(),n===r&&(n=null),v=e,e=as(t,n)):(s=e,e=r),e}function O(){var e,t,n;if(e=s,t=[],n=Se(),n!==r)for(;n!==r;)t.push(n),n=Se();else t=r;return t!==r&&(v=e,t=is(t)),e=t,e}function Js(){var e,t,n,i,l;if(e=s,t=[],n=s,i=R(),i!==r?(l=O(),l!==r?n=l:(s=n,n=r)):(s=n,n=r),n!==r)for(;n!==r;)t.push(n),n=s,i=R(),i!==r?(l=O(),l!==r?n=l:(s=n,n=r)):(s=n,n=r);else t=r;return t!==r&&(v=e,t=fs(t)),e=t,e}function Ks(){var e,t,n,i,l;if(e=s,t=[],n=s,i=Fe(),i!==r?(l=O(),l!==r?n=l:(s=n,n=r)):(s=n,n=r),n!==r)for(;n!==r;)t.push(n),n=s,i=Fe(),i!==r?(l=O(),l!==r?n=l:(s=n,n=r)):(s=n,n=r);else t=r;return t!==r&&(v=e,t=os(t)),e=t,e}function Re(){var e,t,n;return e=s,t=O(),t!==r?(n=Js(),n===r&&(n=Ks()),n===r&&(n=null),v=e,e=cs(t,n)):(s=e,e=r),e}function Qs(){var e,t,n,i;return e=s,p(),t=P(),t!==r?(n=Re(),n!==r?(i=P(),i!==r?(v=e,e=ls(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Vs(){var e;return e=it(),e===r&&(e=st(),e===r&&(e=at(),e===r&&(e=et(),e===r&&(e=rt(),e===r&&(e=Ys(),e===r&&(e=nt(),e===r&&(e=tt()))))))),e}function Ys(){var e,t,n;return e=s,a.substr(s,6)===re?(t=re,s+=6):(t=r,o===0&&c(Dr)),t!==r?(p(),n=q(),n!==r?(v=e,e=us(n)):(s=e,e=r)):(s=e,e=r),e}function et(){var e,t,n,i,l;return e=s,a.substr(s,6)===se?(t=se,s+=6):(t=r,o===0&&c(Ir)),t!==r?(p(),n=P(),n!==r?(i=je(),i!==r?(l=P(),l!==r?(v=e,e=ps(i)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function rt(){var e,t,n,i;return e=s,a.substr(s,6)===te?(t=te,s+=6):(t=r,o===0&&c(kr)),t!==r?(p(),n=T(),n!==r?(p(),i=T(),i!==r?(p(),T(),v=e,e=gs(n,i)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function st(){var e,t,n;return e=s,a.substr(s,4)===ne?(t=ne,s+=4):(t=r,o===0&&c(Nr)),t!==r?(p(),n=y(),n!==r?(v=e,e=vs(n)):(s=e,e=r)):(s=e,e=r),e}function tt(){var e,t,n;return e=s,a.substr(s,4)===ae?(t=ae,s+=4):(t=r,o===0&&c(Br)),t!==r?(p(),n=y(),n!==r?(v=e,e=$s(n)):(s=e,e=r)):(s=e,e=r),e}function nt(){var e,t,n;return e=s,a.substr(s,4)===ie?(t=ie,s+=4):(t=r,o===0&&c(Tr)),t!==r?(p(),n=y(),n!==r?(v=e,e=hs(n)):(s=e,e=r)):(s=e,e=r),e}function at(){var e,t,n;return e=s,a.substr(s,4)===fe?(t=fe,s+=4):(t=r,o===0&&c(zr)),t!==r?(p(),n=y(),n!==r?(v=e,e=ms(n)):(s=e,e=r)):(s=e,e=r),e}function it(){var e,t,n,i,l;if(e=s,a.substr(s,5)===oe?(t=oe,s+=5):(t=r,o===0&&c(Lr)),t!==r)if(p(),n=P(),n!==r){if(i=[],l=z(),l!==r)for(;l!==r;)i.push(l),l=z();else i=r;i!==r?(l=P(),l!==r?(v=e,e=_s(i)):(s=e,e=r)):(s=e,e=r)}else s=e,e=r;else s=e,e=r;return e}function Z(){var e,t,n,i;if(e=s,a.substr(s,2)===ce?(t=ce,s+=2):(t=r,o===0&&c(Mr)),t!==r){for(n=[],$e.test(a.charAt(s))?(i=a.charAt(s),s++):(i=r,o===0&&c(we));i!==r;)n.push(i),$e.test(a.charAt(s))?(i=a.charAt(s),s++):(i=r,o===0&&c(we));t=[t,n],e=t}else s=e,e=r;return e}function ft(){var e,t,n,i,l,d,C,D;if(e=s,a.substr(s,3)===le?(t=le,s+=3):(t=r,o===0&&c(Wr)),t!==r)if(p(),a.charCodeAt(s)===91?(n=Y,s++):(n=r,o===0&&c(de)),n!==r)if(p(),i=q(),i!==r){for(l=[],d=s,C=R(),C!==r?(D=q(),D!==r?(v=d,d=ye(i,D)):(s=d,d=r)):(s=d,d=r);d!==r;)l.push(d),d=s,C=R(),C!==r?(D=q(),D!==r?(v=d,d=ye(i,D)):(s=d,d=r)):(s=d,d=r);d=p(),a.charCodeAt(s)===93?(C=ee,s++):(C=r,o===0&&c(Ae)),C!==r?(v=e,e=ds(i,l)):(s=e,e=r)}else s=e,e=r;else s=e,e=r;else s=e,e=r;return e}function ot(){var e;return e=ft(),e===r&&(e=Qs()),e}function q(){var e,t,n,i,l;if(e=s,t=ot(),t!==r){for(p(),n=[],i=Z();i!==r;)n.push(i),i=Z();v=e,e=As(t)}else s=e,e=r;return e===r&&(e=s,t=Vs(),t!==r?(p(),a.charCodeAt(s)===36?(n=tr,s++):(n=r,o===0&&c(Zr)),n!==r?(i=p(),l=q(),l!==r?(v=e,e=ws(t,l)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)),e}function ct(){var e,t;return e=s,t=q(),t!==r&&(v=e,t=ys(t)),e=t,e===r&&(e=Z()),e}function lt(){var e;return e=ct(),e}function ut(){var e,t;return e=s,p(),t=pt(),t===r&&(t=gt(),t===r&&(t=vt())),t!==r?(p(),v=e,e=bs(t)):(s=e,e=r),e}function pt(){var e,t,n;return e=s,a.substr(s,6)===ue?(t=ue,s+=6):(t=r,o===0&&c(Gr)),t!==r?(p(),n=y(),n!==r?(v=e,e=Cs(n)):(s=e,e=r)):(s=e,e=r),e}function gt(){var e,t,n;return e=s,a.substr(s,6)===pe?(t=pe,s+=6):(t=r,o===0&&c(Ur)),t!==r?(p(),n=y(),n!==r?(v=e,e=xs(n)):(s=e,e=r)):(s=e,e=r),e}function vt(){var e,t;return e=s,a.substr(s,4)===ge?(t=ge,s+=4):(t=r,o===0&&c(Xr)),t!==r&&(v=e,t=Es()),e=t,e}function $t(){var e;return e=lt(),e===r&&(e=ut()),e}var G=function(e,t){this.type_="pattern",this.arguments_={alignment:t},this.source_=e},ht=function(e,t,n){this.type_=e,this.arguments_=t,this.source_=n},mt=function(e,t){this.type_="element",this.source_=e,this.options_=t,this.location_=js()},U=function(e,t){this.type_="command",this.name_=e,this.options_=t};if(B=h(),B!==r&&s===a.length)return B;throw B!==r&&s(f,r)=>{const u=a.source_[r].options_,h=u==null?void 0:u.operator;if(h){switch(h.type_){case"stretch":const A=Be(h.arguments_.amount).inverse();return K(f).fast(A);case"bjorklund":return f.euclid(h.arguments_.pulse,h.arguments_.step,h.arguments_.rotation);case"degradeBy":return K(f)._degradeByWith(ke.early(ze*Le()).segment(1),h.arguments_.amount)}console.warn(`operator "${h.type_}" not implemented`)}if(u!=null&&u.weight)return f;const w=Object.keys(u||{}).filter(A=>A!=="operator");return w.length&&console.warn(`option${w.length>1?"s":""} ${w.map(A=>`"${A}"`).join(", ")} not implemented`),f};function Rt(a){a.source_=a.source_.map(f=>{const u=f.options_||{},{replicate:r}=u,$=De(u,["replicate"]);return r?H(X({},f),{options_:H(X({},$),{weight:r}),source_:{type_:"pattern",arguments_:{alignment:"h"},source_:[{type_:"element",source_:f.source_,location_:f.location_,options_:{operator:{type_:"stretch",arguments_:{amount:Be(r).inverse().toString()}}}}]}}):f})}function k(a){switch(a.type_){case"pattern":Rt(a);const f=a.source_.map(k).map(St(a)),r=a.arguments_.alignment;if(r==="v")return xt(...f);if(r==="r")return wt(ke.early(ze*Le()).segment(1),f);const $=a.source_.some(u=>{var h;return!!((h=u.options_)!=null&&h.weight)});if(!$&&r==="t")return Et(...f);if($){const u=Ft(...a.source_.map((h,w)=>{var A;return[((A=h.options_)==null?void 0:A.weight)||1,f[w]]}));if(r==="t"){const h=a.source_.reduce((w,A)=>{var E;return w+(((E=A.options_)==null?void 0:E.weight)||1)},0);return u._slow(h)}return u}return Te(...f);case"element":if(a.source_==="~")return Ie;if(typeof a.source_!="object"){if(!a.location_)return console.warn("no location for",a),a.source_;const{start:u,end:h}=a.location_,w=isNaN(Number(a.source_))?a.source_:Number(a.source_);return Ct(w).withLocation([u.line,u.column,u.offset],[h.line,h.column,h.offset])}return k(a.source_);case"stretch":return k(a.source_).slow(a.arguments_.amount);default:return console.warn(`node type "${a.type_}" not implemented -> returning silence`),Ie}}const V=(...a)=>{const f=a.map(r=>{const $=Ne(`"${r}"`);return k($)});return Te(...f)},Pt=a=>{const f=Ne(a);return k(f)};Q.prototype.define("mini",V,{composable:!0});Q.prototype.define("m",V,{composable:!0});Q.prototype.define("h",Pt,{composable:!0});function Dt(a){return typeof a=="string"?V(a):K(a)}export{I as SyntaxError,Pt as h,V as mini,Dt as minify,Ne as parse,k as patternifyAST}; diff --git a/tutorial/assets/index.572a14d5.js b/tutorial/assets/index.572a14d5.js new file mode 100644 index 000000000..91abcbb50 --- /dev/null +++ b/tutorial/assets/index.572a14d5.js @@ -0,0 +1 @@ +var d=Object.defineProperty;var g=(s,t,e)=>t in s?d(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var i=(s,t,e)=>(g(s,typeof t!="symbol"?t+"":t,e),e);import{G as y,I,K as S,O as T,J as B,L as W,N as j,M as q}from"./index.91bb3680.js";const k=s=>"("+s+")();",w=s=>URL.createObjectURL(new Blob([k(s)],{type:"text/javascript"})),m=s=>new Worker(w(s));class x{constructor(t,e=this.interval){i(this,"worker");i(this,"interval",.1);i(this,"tick",0);this.interval=e,this.worker=m(()=>{let r,o=null;const h=()=>{o&&(clearInterval(o),o=null)},c=()=>{if(h(),!r)throw new Error("no interval set! call worker.postMessage({interval}) before starting.");postMessage("tick"),o=setInterval(()=>postMessage("tick"),r*1e3)};self.onmessage=function(n){n.data=="start"?c():n.data.interval?(r=n.data.interval,o&&c()):n.data=="stop"&&h()}}),this.worker.postMessage({interval:e}),this.worker.onmessage=r=>{r.data==="tick"&&t(this.tick++,this.interval)}}start(){this.worker.postMessage("start")}stop(){this.worker.postMessage("stop"),this.tick=0}setInterval(t){this.worker.postMessage({interval:t})}}class v{constructor({audioContext:t,interval:e=.1,onEvent:r,latency:o=.1}){i(this,"worker");i(this,"pattern");i(this,"phase");i(this,"audioContext");i(this,"cps",1);this.audioContext=t,this.worker=new x((h,c)=>{const n=this.phase,l=this.phase+c*this.cps;this.phase=l,this.pattern.queryArc(n,l).forEach(a=>{var p,u;if(typeof((p=a.value)==null?void 0:p.cps)=="number"&&this.setCps((u=a.value)==null?void 0:u.cps),!!a.part.begin.equals(a.whole.begin)){if(a.context.onTrigger){const f=(a.whole.begin-n)/this.cps+this.audioContext.currentTime+o;a.context.onTrigger(f,a,this.audioContext.currentTime,this.cps)}r&&(r==null||r(a))}})},e)}start(){if(!this.pattern)throw new Error("Scheduler: no pattern set! call .setPattern first.");this.audioContext.resume(),this.phase=0,this.worker.start()}stop(){this.worker.stop()}setPattern(t){this.pattern=t}setCps(t=1){this.cps=t}}export{x as ClockWorker,v as Scheduler,y as getAudioContext,I as getCachedBuffer,S as getLoadedBuffer,T as getLoadedSamples,B as loadBuffer,W as loadGithubSamples,j as resetLoadedSamples,q as samples}; diff --git a/tutorial/assets/index.73765b86.css b/tutorial/assets/index.73765b86.css new file mode 100644 index 000000000..038d06cd1 --- /dev/null +++ b/tutorial/assets/index.73765b86.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}.\!container{width:100%!important}@media (min-width: 640px){.container{max-width:640px}.\!container{max-width:640px!important}}@media (min-width: 768px){.container{max-width:768px}.\!container{max-width:768px!important}}@media (min-width: 1024px){.container{max-width:1024px}.\!container{max-width:1024px!important}}@media (min-width: 1280px){.container{max-width:1280px}.\!container{max-width:1280px!important}}@media (min-width: 1536px){.container{max-width:1536px}.\!container{max-width:1536px!important}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where([class~="lead"]):not(:where([class~="not-prose"] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~="not-prose"] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~="not-prose"] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(ol):not(:where([class~="not-prose"] *)){list-style-type:decimal;padding-left:1.625em}.prose :where(ol[type="A"]):not(:where([class~="not-prose"] *)){list-style-type:upper-alpha}.prose :where(ol[type="a"]):not(:where([class~="not-prose"] *)){list-style-type:lower-alpha}.prose :where(ol[type="A" s]):not(:where([class~="not-prose"] *)){list-style-type:upper-alpha}.prose :where(ol[type="a" s]):not(:where([class~="not-prose"] *)){list-style-type:lower-alpha}.prose :where(ol[type="I"]):not(:where([class~="not-prose"] *)){list-style-type:upper-roman}.prose :where(ol[type="i"]):not(:where([class~="not-prose"] *)){list-style-type:lower-roman}.prose :where(ol[type="I" s]):not(:where([class~="not-prose"] *)){list-style-type:upper-roman}.prose :where(ol[type="i" s]):not(:where([class~="not-prose"] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~="not-prose"] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~="not-prose"] *)){list-style-type:disc;padding-left:1.625em}.prose :where(ol > li):not(:where([class~="not-prose"] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul > li):not(:where([class~="not-prose"] *))::marker{color:var(--tw-prose-bullets)}.prose :where(hr):not(:where([class~="not-prose"] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~="not-prose"] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"] *)):after{content:close-quote}.prose :where(h1):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~="not-prose"] *)){font-weight:900}.prose :where(h2):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~="not-prose"] *)){font-weight:800}.prose :where(h3):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~="not-prose"] *)){font-weight:700}.prose :where(h4):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~="not-prose"] *)){font-weight:700}.prose :where(figure > *):not(:where([class~="not-prose"] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~="not-prose"] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose :where(code):not(:where([class~="not-prose"] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~="not-prose"] *)):before{content:"`"}.prose :where(code):not(:where([class~="not-prose"] *)):after{content:"`"}.prose :where(a code):not(:where([class~="not-prose"] *)){color:var(--tw-prose-links)}.prose :where(pre):not(:where([class~="not-prose"] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~="not-prose"] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~="not-prose"] *)):before{content:none}.prose :where(pre code):not(:where([class~="not-prose"] *)):after{content:none}.prose :where(table):not(:where([class~="not-prose"] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~="not-prose"] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~="not-prose"] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~="not-prose"] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~="not-prose"] *)){vertical-align:baseline;padding:.5714286em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgb(0 0 0 / 50%);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(p):not(:where([class~="not-prose"] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(img):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(h2 code):not(:where([class~="not-prose"] *)){font-size:.875em}.prose :where(h3 code):not(:where([class~="not-prose"] *)){font-size:.9em}.prose :where(li):not(:where([class~="not-prose"] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol > li):not(:where([class~="not-prose"] *)){padding-left:.375em}.prose :where(ul > li):not(:where([class~="not-prose"] *)){padding-left:.375em}.prose>:where(ul > li p):not(:where([class~="not-prose"] *)){margin-top:.75em;margin-bottom:.75em}.prose>:where(ul > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.25em}.prose>:where(ul > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.25em}.prose>:where(ol > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.25em}.prose>:where(ol > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~="not-prose"] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(hr + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose :where(h2 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose :where(h3 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose :where(h4 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.prose :where(tbody td:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.prose :where(tbody td:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.prose>:where(:first-child):not(:where([class~="not-prose"] *)){margin-top:0}.prose>:where(:last-child):not(:where([class~="not-prose"] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~="not-prose"] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where([class~="lead"]):not(:where([class~="not-prose"] *)){font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.prose-lg :where(blockquote):not(:where([class~="not-prose"] *)){margin-top:1.6666667em;margin-bottom:1.6666667em;padding-left:1em}.prose-lg :where(h1):not(:where([class~="not-prose"] *)){font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.prose-lg :where(h2):not(:where([class~="not-prose"] *)){font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.prose-lg :where(h3):not(:where([class~="not-prose"] *)){font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.prose-lg :where(h4):not(:where([class~="not-prose"] *)){margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.prose-lg :where(img):not(:where([class~="not-prose"] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(video):not(:where([class~="not-prose"] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(figure):not(:where([class~="not-prose"] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(figure > *):not(:where([class~="not-prose"] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~="not-prose"] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(code):not(:where([class~="not-prose"] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~="not-prose"] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~="not-prose"] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~="not-prose"] *)){font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding:1em 1.5em}.prose-lg :where(ol):not(:where([class~="not-prose"] *)){padding-left:1.5555556em}.prose-lg :where(ul):not(:where([class~="not-prose"] *)){padding-left:1.5555556em}.prose-lg :where(li):not(:where([class~="not-prose"] *)){margin-top:.6666667em;margin-bottom:.6666667em}.prose-lg :where(ol > li):not(:where([class~="not-prose"] *)){padding-left:.4444444em}.prose-lg :where(ul > li):not(:where([class~="not-prose"] *)){padding-left:.4444444em}.prose-lg>:where(ul > li p):not(:where([class~="not-prose"] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg>:where(ul > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.3333333em}.prose-lg>:where(ul > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.3333333em}.prose-lg>:where(ol > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.3333333em}.prose-lg>:where(ol > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~="not-prose"] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(hr):not(:where([class~="not-prose"] *)){margin-top:3.1111111em;margin-bottom:3.1111111em}.prose-lg :where(hr + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose-lg :where(h2 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose-lg :where(h3 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose-lg :where(h4 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose-lg :where(table):not(:where([class~="not-prose"] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~="not-prose"] *)){padding-right:.75em;padding-bottom:.75em;padding-left:.75em}.prose-lg :where(thead th:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.prose-lg :where(thead th:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.prose-lg :where(tbody td):not(:where([class~="not-prose"] *)){padding:.75em}.prose-lg :where(tbody td:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.prose-lg :where(tbody td:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.prose-lg>:where(:first-child):not(:where([class~="not-prose"] *)){margin-top:0}.prose-lg>:where(:last-child):not(:where([class~="not-prose"] *)){margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.\!visible{visibility:visible!important}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.\!fixed{position:fixed!important}.absolute{position:absolute}.\!absolute{position:absolute!important}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.-inset-1{top:-.25rem;right:-.25rem;bottom:-.25rem;left:-.25rem}.top-0{top:0px}.left-1{left:.25rem}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.z-\[2\]{z-index:2}.float-right{float:right}.float-left{float:left}.float-none{float:none}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.clear-none{clear:none}.mt-2{margin-top:.5rem}.box-border{box-sizing:border-box}.box-content{box-sizing:content-box}.block{display:block}.\!block{display:block!important}.inline-block{display:inline-block}.inline{display:inline}.\!inline{display:inline!important}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.\!table{display:table!important}.inline-table{display:inline-table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row-group{display:table-row-group}.table-row{display:table-row}.flow-root{display:flow-root}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.list-item{display:list-item}.hidden{display:none}.h-16{height:4rem}.h-10{height:2.5rem}.h-1{height:.25rem}.h-\[calc\(100\%-theme\(\'spacing\.1\'\)\)\],.h-\[calc\(100\%-theme\(\"spacing\.1\"\)\)\]{height:calc(100% - .25rem)}.min-h-screen{min-height:100vh}.w-full{width:100%}.w-10{width:2.5rem}.max-w-3xl{max-width:48rem}.flex-none{flex:none}.flex-shrink,.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:separate}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\!transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.transform-cpu{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-none{transform:none}.cursor-pointer{cursor:pointer}.touch-auto{touch-action:auto}.touch-none{touch-action:none}.touch-pan-x{--tw-pan-x:pan-x;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-left{--tw-pan-x:pan-left;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-right{--tw-pan-x:pan-right;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-y{--tw-pan-y:pan-y;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-up{--tw-pan-y:pan-up;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-down{--tw-pan-y:pan-down;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.resize-none{resize:none}.resize-y{resize:vertical}.resize-x{resize:horizontal}.resize{resize:both}.snap-none{-ms-scroll-snap-type:none;scroll-snap-type:none}.snap-x{-ms-scroll-snap-type:x var(--tw-scroll-snap-strictness);scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-y{-ms-scroll-snap-type:y var(--tw-scroll-snap-strictness);scroll-snap-type:y var(--tw-scroll-snap-strictness)}.snap-both{-ms-scroll-snap-type:both var(--tw-scroll-snap-strictness);scroll-snap-type:both var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-proximity{--tw-scroll-snap-strictness:proximity}.snap-start{scroll-snap-align:start}.snap-end{scroll-snap-align:end}.snap-center{scroll-snap-align:center}.snap-align-none{scroll-snap-align:none}.snap-normal{scroll-snap-stop:normal}.snap-always{scroll-snap-stop:always}.list-inside{list-style-position:inside}.list-outside{list-style-position:outside}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.break-before-auto{-moz-column-break-before:auto;break-before:auto}.break-before-avoid{-moz-column-break-before:avoid;break-before:avoid}.break-before-all{-moz-column-break-before:all;break-before:all}.break-before-avoid-page{-moz-column-break-before:avoid;break-before:avoid-page}.break-before-page{-moz-column-break-before:page;break-before:page}.break-before-left{-moz-column-break-before:left;break-before:left}.break-before-right{-moz-column-break-before:right;break-before:right}.break-before-column{-moz-column-break-before:column;break-before:column}.break-inside-auto{-moz-column-break-inside:auto;break-inside:auto}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.break-inside-avoid-page{break-inside:avoid-page}.break-inside-avoid-column{-moz-column-break-inside:avoid;break-inside:avoid-column}.break-after-auto{-moz-column-break-after:auto;break-after:auto}.break-after-avoid{-moz-column-break-after:avoid;break-after:avoid}.break-after-all{-moz-column-break-after:all;break-after:all}.break-after-avoid-page{-moz-column-break-after:avoid;break-after:avoid-page}.break-after-page{-moz-column-break-after:page;break-after:page}.break-after-left{-moz-column-break-after:left;break-after:left}.break-after-right{-moz-column-break-after:right;break-after:right}.break-after-column{-moz-column-break-after:column;break-after:column}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-flow-row-dense{grid-auto-flow:row dense}.grid-flow-col-dense{grid-auto-flow:column dense}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.place-content-center{place-content:center}.place-content-start{place-content:start}.place-content-end{place-content:end}.place-content-between{place-content:space-between}.place-content-around{place-content:space-around}.place-content-evenly{place-content:space-evenly}.place-content-stretch{place-content:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-stretch{place-items:stretch}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse:1}.space-x-reverse>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-y-reverse>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:1}.divide-x-reverse>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:1}.divide-solid>:not([hidden])~:not([hidden]){border-style:solid}.divide-dashed>:not([hidden])~:not([hidden]){border-style:dashed}.divide-dotted>:not([hidden])~:not([hidden]){border-style:dotted}.divide-double>:not([hidden])~:not([hidden]){border-style:double}.divide-none>:not([hidden])~:not([hidden]){border-style:none}.place-self-auto{place-self:auto}.place-self-start{place-self:start}.place-self-end{place-self:end}.place-self-center{place-self:center}.place-self-stretch{place-self:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.justify-self-auto{justify-self:auto}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.justify-self-stretch{justify-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.overflow-y-clip{overflow-y:clip}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.overscroll-auto{-ms-scroll-chaining:chained;overscroll-behavior:auto}.overscroll-contain{-ms-scroll-chaining:none;overscroll-behavior:contain}.overscroll-none{-ms-scroll-chaining:none;overscroll-behavior:none}.overscroll-y-auto{overscroll-behavior-y:auto}.overscroll-y-contain{overscroll-behavior-y:contain}.overscroll-y-none{overscroll-behavior-y:none}.overscroll-x-auto{overscroll-behavior-x:auto}.overscroll-x-contain{overscroll-behavior-x:contain}.overscroll-x-none{overscroll-behavior-x:none}.scroll-auto{scroll-behavior:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-ellipsis,.text-ellipsis{text-overflow:ellipsis}.text-clip{text-overflow:clip}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-width:1px}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-l{border-left-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-hidden{border-style:hidden}.border-none{border-style:none}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-\[rgb\(255\,0\,0\)\]{--tw-bg-opacity:1;background-color:rgb(255 0 0 / var(--tw-bg-opacity))}.bg-\[url\(\'\.\.\.\'\)\]{background-image:url(...)}.bg-\[url\(\"\.\.\.\"\)\]{background-image:url(...)}.bg-\[url\(\'\.\.\.\'\)\,url\(\'\.\.\.\'\)\]{background-image:url(...),url(...)}.bg-\[url\(\"\.\.\.\"\)\,url\(\"\.\.\.\"\)\]{background-image:url(...),url(...)}.decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.box-decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.box-decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.bg-clip-border{background-clip:border-box}.bg-clip-padding{background-clip:padding-box}.bg-clip-content{background-clip:content-box}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-origin-border{background-origin:border-box}.bg-origin-padding{background-origin:padding-box}.bg-origin-content{background-origin:content-box}.fill-\[\#bada55\]{fill:#bada55}.fill-\[\#bada55\]\/50{fill:#bada5580}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.p-4{padding:1rem}.p-1{padding:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-1{padding-left:.25rem;padding-right:.25rem}.pl-6{padding-left:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-top{vertical-align:text-top}.align-text-bottom{vertical-align:text-bottom}.align-sub{vertical-align:sub}.align-super{vertical-align:super}.font-\[\'some_font\'\,sans-serif\],.font-\[\"some_font\"\,sans-serif\]{font-family:some font,sans-serif}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.normal-nums{font-variant-numeric:normal}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.overline{-webkit-text-decoration-line:overline;text-decoration-line:overline}.line-through{-webkit-text-decoration-line:line-through;text-decoration-line:line-through}.no-underline{-webkit-text-decoration-line:none;text-decoration-line:none}.decoration-solid{-webkit-text-decoration-style:solid;text-decoration-style:solid}.decoration-double{-webkit-text-decoration-style:double;text-decoration-style:double}.decoration-dotted{-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.decoration-dashed{-webkit-text-decoration-style:dashed;text-decoration-style:dashed}.decoration-wavy{-webkit-text-decoration-style:wavy;text-decoration-style:wavy}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.bg-blend-normal{background-blend-mode:normal}.bg-blend-multiply{background-blend-mode:multiply}.bg-blend-screen{background-blend-mode:screen}.bg-blend-overlay{background-blend-mode:overlay}.bg-blend-darken{background-blend-mode:darken}.bg-blend-lighten{background-blend-mode:lighten}.bg-blend-color-dodge{background-blend-mode:color-dodge}.bg-blend-color-burn{background-blend-mode:color-burn}.bg-blend-hard-light{background-blend-mode:hard-light}.bg-blend-soft-light{background-blend-mode:soft-light}.bg-blend-difference{background-blend-mode:difference}.bg-blend-exclusion{background-blend-mode:exclusion}.bg-blend-hue{background-blend-mode:hue}.bg-blend-saturation{background-blend-mode:saturation}.bg-blend-color{background-blend-mode:color}.bg-blend-luminosity{background-blend-mode:luminosity}.mix-blend-normal{mix-blend-mode:normal}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-screen{mix-blend-mode:screen}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-darken{mix-blend-mode:darken}.mix-blend-lighten{mix-blend-mode:lighten}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.mix-blend-color-burn{mix-blend-mode:color-burn}.mix-blend-hard-light{mix-blend-mode:hard-light}.mix-blend-soft-light{mix-blend-mode:soft-light}.mix-blend-difference{mix-blend-mode:difference}.mix-blend-exclusion{mix-blend-mode:exclusion}.mix-blend-hue{mix-blend-mode:hue}.mix-blend-saturation{mix-blend-mode:saturation}.mix-blend-color{mix-blend-mode:color}.mix-blend-luminosity{mix-blend-mode:luminosity}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.\!shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.outline-dashed{outline-style:dashed}.outline-dotted{outline-style:dotted}.outline-double{outline-style:double}.outline-hidden{outline-style:hidden}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!invert{--tw-invert:invert(100%) !important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter-none{filter:none}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-invert{--tw-backdrop-invert:invert(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter-none{-webkit-backdrop-filter:none;backdrop-filter:none}.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.content-\[\'hello\'\],.content-\[\"hello\"\]{--tw-content:"hello";content:var(--tw-content)}.content-\[\'this-is-also-valid\]-weirdly-enough\'\]{--tw-content:"this-is-also-valid]-weirdly-enough";content:var(--tw-content)}.\[attr\:value\]{attr:value}.\[content\:\'hello\'\],.\[content\:\"hello\"\]{content:"hello"}.\[vite\:css\]{vite:css}h1:before,h2:before,h3:before,h4:before,h5:before,h6:before{display:block;content:" ";margin-top:-70px;height:70px;visibility:hidden;pointer-events:none;position:relative}h1:hover .icon-link,h2:hover .icon-link,h3:hover .icon-link,h4:hover .icon-link,h5:hover .icon-link,h6:hover .icon-link,.icon.icon-link:hover{visibility:visible}.icon.icon-link{background-image:url(/tutorial/assets/link.55bc37e1.svg);background-repeat:no-repeat;height:16px;display:block;color:gray;fill:#000;position:absolute;visibility:hidden;margin-left:-20px;width:20px;margin-top:8px}#table-of-contents{display:none}#table-of-contents+ul{position:fixed;right:0;top:64px;overflow:auto;height:calc(100vh - 64px);width:33%;margin:2px;padding:12px 0 12px 8px}#table-of-contents+ul ul{padding-left:8px}#table-of-contents+ul li{list-style:none;margin:2px}#table-of-contents+ul li p{margin:0}#table-of-contents+ul li a{text-decoration:none}@media only screen and (max-width: 1120px){#table-of-contents+ul{display:none}}.hover\:font-bold:hover{font-weight:700}.before\:hover\:text-center:hover:before{content:var(--tw-content);text-align:center}.hover\:before\:text-center:hover:before{content:var(--tw-content);text-align:center}.hover\:focus\:text-center:focus:hover{text-align:center}.focus\:hover\:text-center:hover:focus{text-align:center}.prose-headings\:underline :is(:where(h1,h2,h3,h4,th):not(:where([class~="not-prose"] *))){-webkit-text-decoration-line:underline;text-decoration-line:underline}.prose-lead\:italic :is(:where([class~="lead"]):not(:where([class~="not-prose"] *))){font-style:italic}.prose-h1\:text-3xl :is(:where(h1):not(:where([class~="not-prose"] *))){font-size:1.875rem;line-height:2.25rem}.prose-h2\:text-2xl :is(:where(h2):not(:where([class~="not-prose"] *))){font-size:1.5rem;line-height:2rem}.prose-h3\:text-xl :is(:where(h3):not(:where([class~="not-prose"] *))){font-size:1.25rem;line-height:1.75rem}.prose-h4\:text-lg :is(:where(h4):not(:where([class~="not-prose"] *))){font-size:1.125rem;line-height:1.75rem}.prose-p\:text-gray-700 :is(:where(p):not(:where([class~="not-prose"] *))){--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity))}.prose-a\:font-bold :is(:where(a):not(:where([class~="not-prose"] *))){font-weight:700}.prose-blockquote\:italic :is(:where(blockquote):not(:where([class~="not-prose"] *))){font-style:italic}.prose-figure\:mx-auto :is(:where(figure):not(:where([class~="not-prose"] *))){margin-left:auto;margin-right:auto}.prose-figcaption\:opacity-75 :is(:where(figcaption):not(:where([class~="not-prose"] *))){opacity:.75}.prose-strong\:font-medium :is(:where(strong):not(:where([class~="not-prose"] *))){font-weight:500}.prose-em\:italic :is(:where(em):not(:where([class~="not-prose"] *))){font-style:italic}.prose-code\:font-mono :is(:where(code):not(:where([class~="not-prose"] *))){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.prose-pre\:font-mono :is(:where(pre):not(:where([class~="not-prose"] *))){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.prose-ol\:pl-6 :is(:where(ol):not(:where([class~="not-prose"] *))){padding-left:1.5rem}.prose-ul\:pl-8 :is(:where(ul):not(:where([class~="not-prose"] *))){padding-left:2rem}.prose-li\:my-4 :is(:where(li):not(:where([class~="not-prose"] *))){margin-top:1rem;margin-bottom:1rem}.prose-table\:my-8 :is(:where(table):not(:where([class~="not-prose"] *))){margin-top:2rem;margin-bottom:2rem}.prose-thead\:border-red-300 :is(:where(thead):not(:where([class~="not-prose"] *))){--tw-border-opacity:1;border-color:rgb(252 165 165 / var(--tw-border-opacity))}.prose-tr\:border-red-200 :is(:where(tr):not(:where([class~="not-prose"] *))){--tw-border-opacity:1;border-color:rgb(254 202 202 / var(--tw-border-opacity))}.prose-th\:text-left :is(:where(th):not(:where([class~="not-prose"] *))){text-align:left}.prose-img\:rounded-lg :is(:where(img):not(:where([class~="not-prose"] *))){border-radius:.5rem}.prose-video\:my-12 :is(:where(video):not(:where([class~="not-prose"] *))){margin-top:3rem;margin-bottom:3rem}.prose-hr\:border-t-2 :is(:where(hr):not(:where([class~="not-prose"] *))){border-top-width:2px}@media (min-width: 640px){.sm\:container{width:100%}@media (min-width: 640px){.sm\:container{max-width:640px}}@media (min-width: 768px){.sm\:container{max-width:768px}}@media (min-width: 1024px){.sm\:container{max-width:1024px}}@media (min-width: 1280px){.sm\:container{max-width:1280px}}@media (min-width: 1536px){.sm\:container{max-width:1536px}}.sm\:underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}}@media (prefers-color-scheme: dark){@media (min-width: 1024px){.dark\:lg\:hover\:\[paint-order\:markers\]:hover{paint-order:markers}}}.cm-editor{background-color:transparent!important;height:100%;z-index:11;font-size:16px}.cm-theme-light{width:100%}.cm-line>*{background:#00000095}*,:before,:after{--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.sc-h-5{height:1.25rem}.sc-w-5{width:1.25rem}@-webkit-keyframes sc-pulse{50%{opacity:.5}}@keyframes sc-pulse{50%{opacity:.5}}.sc-animate-pulse{-webkit-animation:sc-pulse 2s cubic-bezier(.4,0,.6,1) infinite;animation:sc-pulse 2s cubic-bezier(.4,0,.6,1) infinite}._container_3i85k_1{overflow:hidden;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(34 34 34 / var(--tw-bg-opacity))}._header_3i85k_5{display:flex;justify-content:space-between;border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}._buttons_3i85k_9{display:flex}._button_3i85k_9{display:flex;width:4rem;cursor:pointer;align-items:center;justify-content:center;border-right-width:1px;--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity));padding:.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._button_3i85k_9:hover{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity))}._buttonDisabled_3i85k_17{display:flex;width:4rem;cursor:pointer;cursor:not-allowed;align-items:center;justify-content:center;--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity));padding:.25rem;--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}._error_3i85k_21{padding:.25rem;text-align:right;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity))}._body_3i85k_25{position:relative;overflow:auto} diff --git a/tutorial/assets/index.787effcb.css b/tutorial/assets/index.787effcb.css deleted file mode 100644 index 2124fb65b..000000000 --- a/tutorial/assets/index.787effcb.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.container{width:100%}.\!container{width:100%!important}@media (min-width: 640px){.container{max-width:640px}.\!container{max-width:640px!important}}@media (min-width: 768px){.container{max-width:768px}.\!container{max-width:768px!important}}@media (min-width: 1024px){.container{max-width:1024px}.\!container{max-width:1024px!important}}@media (min-width: 1280px){.container{max-width:1280px}.\!container{max-width:1280px!important}}@media (min-width: 1536px){.container{max-width:1536px}.\!container{max-width:1536px!important}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where([class~="lead"]):not(:where([class~="not-prose"] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~="not-prose"] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~="not-prose"] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(ol):not(:where([class~="not-prose"] *)){list-style-type:decimal;padding-left:1.625em}.prose :where(ol[type="A"]):not(:where([class~="not-prose"] *)){list-style-type:upper-alpha}.prose :where(ol[type="a"]):not(:where([class~="not-prose"] *)){list-style-type:lower-alpha}.prose :where(ol[type="A" s]):not(:where([class~="not-prose"] *)){list-style-type:upper-alpha}.prose :where(ol[type="a" s]):not(:where([class~="not-prose"] *)){list-style-type:lower-alpha}.prose :where(ol[type="I"]):not(:where([class~="not-prose"] *)){list-style-type:upper-roman}.prose :where(ol[type="i"]):not(:where([class~="not-prose"] *)){list-style-type:lower-roman}.prose :where(ol[type="I" s]):not(:where([class~="not-prose"] *)){list-style-type:upper-roman}.prose :where(ol[type="i" s]):not(:where([class~="not-prose"] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~="not-prose"] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~="not-prose"] *)){list-style-type:disc;padding-left:1.625em}.prose :where(ol > li):not(:where([class~="not-prose"] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul > li):not(:where([class~="not-prose"] *))::marker{color:var(--tw-prose-bullets)}.prose :where(hr):not(:where([class~="not-prose"] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~="not-prose"] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"] *)):after{content:close-quote}.prose :where(h1):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~="not-prose"] *)){font-weight:900}.prose :where(h2):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~="not-prose"] *)){font-weight:800}.prose :where(h3):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~="not-prose"] *)){font-weight:700}.prose :where(h4):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~="not-prose"] *)){font-weight:700}.prose :where(figure > *):not(:where([class~="not-prose"] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~="not-prose"] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose :where(code):not(:where([class~="not-prose"] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~="not-prose"] *)):before{content:"`"}.prose :where(code):not(:where([class~="not-prose"] *)):after{content:"`"}.prose :where(a code):not(:where([class~="not-prose"] *)){color:var(--tw-prose-links)}.prose :where(pre):not(:where([class~="not-prose"] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~="not-prose"] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~="not-prose"] *)):before{content:none}.prose :where(pre code):not(:where([class~="not-prose"] *)):after{content:none}.prose :where(table):not(:where([class~="not-prose"] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~="not-prose"] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~="not-prose"] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~="not-prose"] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~="not-prose"] *)){vertical-align:baseline;padding:.5714286em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(p):not(:where([class~="not-prose"] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(img):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure):not(:where([class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(h2 code):not(:where([class~="not-prose"] *)){font-size:.875em}.prose :where(h3 code):not(:where([class~="not-prose"] *)){font-size:.9em}.prose :where(li):not(:where([class~="not-prose"] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol > li):not(:where([class~="not-prose"] *)){padding-left:.375em}.prose :where(ul > li):not(:where([class~="not-prose"] *)){padding-left:.375em}.prose>:where(ul > li p):not(:where([class~="not-prose"] *)){margin-top:.75em;margin-bottom:.75em}.prose>:where(ul > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.25em}.prose>:where(ul > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.25em}.prose>:where(ol > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.25em}.prose>:where(ol > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~="not-prose"] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(hr + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose :where(h2 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose :where(h3 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose :where(h4 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.prose :where(tbody td:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.prose :where(tbody td:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.prose>:where(:first-child):not(:where([class~="not-prose"] *)){margin-top:0}.prose>:where(:last-child):not(:where([class~="not-prose"] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~="not-prose"] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where([class~="lead"]):not(:where([class~="not-prose"] *)){font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.prose-lg :where(blockquote):not(:where([class~="not-prose"] *)){margin-top:1.6666667em;margin-bottom:1.6666667em;padding-left:1em}.prose-lg :where(h1):not(:where([class~="not-prose"] *)){font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.prose-lg :where(h2):not(:where([class~="not-prose"] *)){font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.prose-lg :where(h3):not(:where([class~="not-prose"] *)){font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.prose-lg :where(h4):not(:where([class~="not-prose"] *)){margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.prose-lg :where(img):not(:where([class~="not-prose"] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(video):not(:where([class~="not-prose"] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(figure):not(:where([class~="not-prose"] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(figure > *):not(:where([class~="not-prose"] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~="not-prose"] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(code):not(:where([class~="not-prose"] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~="not-prose"] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~="not-prose"] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~="not-prose"] *)){font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding:1em 1.5em}.prose-lg :where(ol):not(:where([class~="not-prose"] *)){padding-left:1.5555556em}.prose-lg :where(ul):not(:where([class~="not-prose"] *)){padding-left:1.5555556em}.prose-lg :where(li):not(:where([class~="not-prose"] *)){margin-top:.6666667em;margin-bottom:.6666667em}.prose-lg :where(ol > li):not(:where([class~="not-prose"] *)){padding-left:.4444444em}.prose-lg :where(ul > li):not(:where([class~="not-prose"] *)){padding-left:.4444444em}.prose-lg>:where(ul > li p):not(:where([class~="not-prose"] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg>:where(ul > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.3333333em}.prose-lg>:where(ul > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.3333333em}.prose-lg>:where(ol > li > *:first-child):not(:where([class~="not-prose"] *)){margin-top:1.3333333em}.prose-lg>:where(ol > li > *:last-child):not(:where([class~="not-prose"] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~="not-prose"] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(hr):not(:where([class~="not-prose"] *)){margin-top:3.1111111em;margin-bottom:3.1111111em}.prose-lg :where(hr + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose-lg :where(h2 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose-lg :where(h3 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose-lg :where(h4 + *):not(:where([class~="not-prose"] *)){margin-top:0}.prose-lg :where(table):not(:where([class~="not-prose"] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~="not-prose"] *)){padding-right:.75em;padding-bottom:.75em;padding-left:.75em}.prose-lg :where(thead th:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.prose-lg :where(thead th:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.prose-lg :where(tbody td):not(:where([class~="not-prose"] *)){padding:.75em}.prose-lg :where(tbody td:first-child):not(:where([class~="not-prose"] *)){padding-left:0}.prose-lg :where(tbody td:last-child):not(:where([class~="not-prose"] *)){padding-right:0}.prose-lg>:where(:first-child):not(:where([class~="not-prose"] *)){margin-top:0}.prose-lg>:where(:last-child):not(:where([class~="not-prose"] *)){margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.\!visible{visibility:visible!important}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.\!fixed{position:fixed!important}.absolute{position:absolute}.\!absolute{position:absolute!important}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.-inset-1{top:-.25rem;right:-.25rem;bottom:-.25rem;left:-.25rem}.top-0{top:0px}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.z-\[2\]{z-index:2}.float-right{float:right}.float-left{float:left}.float-none{float:none}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.clear-none{clear:none}.mt-2{margin-top:.5rem}.box-border{box-sizing:border-box}.box-content{box-sizing:content-box}.block{display:block}.\!block{display:block!important}.inline-block{display:inline-block}.inline{display:inline}.\!inline{display:inline!important}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.\!table{display:table!important}.inline-table{display:inline-table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row-group{display:table-row-group}.table-row{display:table-row}.flow-root{display:flow-root}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.list-item{display:list-item}.hidden{display:none}.h-16{height:4rem}.h-10{height:2.5rem}.h-1{height:.25rem}.h-\[calc\(100\%-theme\(\'spacing\.1\'\)\)\],.h-\[calc\(100\%-theme\(\"spacing\.1\"\)\)\]{height:calc(100% - .25rem)}.min-h-screen{min-height:100vh}.w-full{width:100%}.w-10{width:2.5rem}.max-w-3xl{max-width:48rem}.flex-none{flex:none}.flex-shrink,.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:separate}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\!transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.transform-cpu{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-none{transform:none}.cursor-pointer{cursor:pointer}.touch-auto{touch-action:auto}.touch-none{touch-action:none}.touch-pan-x{--tw-pan-x: pan-x;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-left{--tw-pan-x: pan-left;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-right{--tw-pan-x: pan-right;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-y{--tw-pan-y: pan-y;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-up{--tw-pan-y: pan-up;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-down{--tw-pan-y: pan-down;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pinch-zoom{--tw-pinch-zoom: pinch-zoom;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.resize-none{resize:none}.resize-y{resize:vertical}.resize-x{resize:horizontal}.resize{resize:both}.snap-none{-ms-scroll-snap-type:none;scroll-snap-type:none}.snap-x{-ms-scroll-snap-type:x var(--tw-scroll-snap-strictness);scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-y{-ms-scroll-snap-type:y var(--tw-scroll-snap-strictness);scroll-snap-type:y var(--tw-scroll-snap-strictness)}.snap-both{-ms-scroll-snap-type:both var(--tw-scroll-snap-strictness);scroll-snap-type:both var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness: mandatory}.snap-proximity{--tw-scroll-snap-strictness: proximity}.snap-start{scroll-snap-align:start}.snap-end{scroll-snap-align:end}.snap-center{scroll-snap-align:center}.snap-align-none{scroll-snap-align:none}.snap-normal{scroll-snap-stop:normal}.snap-always{scroll-snap-stop:always}.list-inside{list-style-position:inside}.list-outside{list-style-position:outside}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.break-before-auto{-moz-column-break-before:auto;break-before:auto}.break-before-avoid{-moz-column-break-before:avoid;break-before:avoid}.break-before-all{-moz-column-break-before:all;break-before:all}.break-before-avoid-page{-moz-column-break-before:avoid;break-before:avoid-page}.break-before-page{-moz-column-break-before:page;break-before:page}.break-before-left{-moz-column-break-before:left;break-before:left}.break-before-right{-moz-column-break-before:right;break-before:right}.break-before-column{-moz-column-break-before:column;break-before:column}.break-inside-auto{-moz-column-break-inside:auto;break-inside:auto}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.break-inside-avoid-page{break-inside:avoid-page}.break-inside-avoid-column{-moz-column-break-inside:avoid;break-inside:avoid-column}.break-after-auto{-moz-column-break-after:auto;break-after:auto}.break-after-avoid{-moz-column-break-after:avoid;break-after:avoid}.break-after-all{-moz-column-break-after:all;break-after:all}.break-after-avoid-page{-moz-column-break-after:avoid;break-after:avoid-page}.break-after-page{-moz-column-break-after:page;break-after:page}.break-after-left{-moz-column-break-after:left;break-after:left}.break-after-right{-moz-column-break-after:right;break-after:right}.break-after-column{-moz-column-break-after:column;break-after:column}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-flow-row-dense{grid-auto-flow:row dense}.grid-flow-col-dense{grid-auto-flow:column dense}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.place-content-center{place-content:center}.place-content-start{place-content:start}.place-content-end{place-content:end}.place-content-between{place-content:space-between}.place-content-around{place-content:space-around}.place-content-evenly{place-content:space-evenly}.place-content-stretch{place-content:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-stretch{place-items:stretch}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 1}.space-x-reverse>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 1}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse: 0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-y-reverse>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 1}.divide-x-reverse>:not([hidden])~:not([hidden]){--tw-divide-x-reverse: 1}.divide-solid>:not([hidden])~:not([hidden]){border-style:solid}.divide-dashed>:not([hidden])~:not([hidden]){border-style:dashed}.divide-dotted>:not([hidden])~:not([hidden]){border-style:dotted}.divide-double>:not([hidden])~:not([hidden]){border-style:double}.divide-none>:not([hidden])~:not([hidden]){border-style:none}.place-self-auto{place-self:auto}.place-self-start{place-self:start}.place-self-end{place-self:end}.place-self-center{place-self:center}.place-self-stretch{place-self:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.justify-self-auto{justify-self:auto}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.justify-self-stretch{justify-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.overflow-y-clip{overflow-y:clip}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.overscroll-auto{-ms-scroll-chaining:chained;overscroll-behavior:auto}.overscroll-contain{-ms-scroll-chaining:none;overscroll-behavior:contain}.overscroll-none{-ms-scroll-chaining:none;overscroll-behavior:none}.overscroll-y-auto{overscroll-behavior-y:auto}.overscroll-y-contain{overscroll-behavior-y:contain}.overscroll-y-none{overscroll-behavior-y:none}.overscroll-x-auto{overscroll-behavior-x:auto}.overscroll-x-contain{overscroll-behavior-x:contain}.overscroll-x-none{overscroll-behavior-x:none}.scroll-auto{scroll-behavior:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-ellipsis,.text-ellipsis{text-overflow:ellipsis}.text-clip{text-overflow:clip}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-width:1px}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-l{border-left-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-hidden{border-style:hidden}.border-none{border-style:none}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-\[rgb\(255\,0\,0\)\]{--tw-bg-opacity: 1;background-color:rgb(255 0 0 / var(--tw-bg-opacity))}.bg-\[url\(\'\.\.\.\'\)\]{background-image:url(...)}.bg-\[url\(\"\.\.\.\"\)\]{background-image:url(...)}.bg-\[url\(\'\.\.\.\'\)\,url\(\'\.\.\.\'\)\]{background-image:url(...),url(...)}.bg-\[url\(\"\.\.\.\"\)\,url\(\"\.\.\.\"\)\]{background-image:url(...),url(...)}.decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.box-decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.box-decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.bg-clip-border{background-clip:border-box}.bg-clip-padding{background-clip:padding-box}.bg-clip-content{background-clip:content-box}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-origin-border{background-origin:border-box}.bg-origin-padding{background-origin:padding-box}.bg-origin-content{background-origin:content-box}.fill-\[\#bada55\]{fill:#bada55}.fill-\[\#bada55\]\/50{fill:#bada5580}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.p-4{padding:1rem}.p-1{padding:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-1{padding-left:.25rem;padding-right:.25rem}.pl-6{padding-left:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-top{vertical-align:text-top}.align-text-bottom{vertical-align:text-bottom}.align-sub{vertical-align:sub}.align-super{vertical-align:super}.font-\[\'some_font\'\,sans-serif\],.font-\[\"some_font\"\,sans-serif\]{font-family:some font,sans-serif}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.normal-nums{font-variant-numeric:normal}.ordinal{--tw-ordinal: ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.slashed-zero{--tw-slashed-zero: slashed-zero;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.lining-nums{--tw-numeric-figure: lining-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.oldstyle-nums{--tw-numeric-figure: oldstyle-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.proportional-nums{--tw-numeric-spacing: proportional-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.diagonal-fractions{--tw-numeric-fraction: diagonal-fractions;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.stacked-fractions{--tw-numeric-fraction: stacked-fractions;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.overline{-webkit-text-decoration-line:overline;text-decoration-line:overline}.line-through{-webkit-text-decoration-line:line-through;text-decoration-line:line-through}.no-underline{-webkit-text-decoration-line:none;text-decoration-line:none}.decoration-solid{-webkit-text-decoration-style:solid;text-decoration-style:solid}.decoration-double{-webkit-text-decoration-style:double;text-decoration-style:double}.decoration-dotted{-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.decoration-dashed{-webkit-text-decoration-style:dashed;text-decoration-style:dashed}.decoration-wavy{-webkit-text-decoration-style:wavy;text-decoration-style:wavy}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.bg-blend-normal{background-blend-mode:normal}.bg-blend-multiply{background-blend-mode:multiply}.bg-blend-screen{background-blend-mode:screen}.bg-blend-overlay{background-blend-mode:overlay}.bg-blend-darken{background-blend-mode:darken}.bg-blend-lighten{background-blend-mode:lighten}.bg-blend-color-dodge{background-blend-mode:color-dodge}.bg-blend-color-burn{background-blend-mode:color-burn}.bg-blend-hard-light{background-blend-mode:hard-light}.bg-blend-soft-light{background-blend-mode:soft-light}.bg-blend-difference{background-blend-mode:difference}.bg-blend-exclusion{background-blend-mode:exclusion}.bg-blend-hue{background-blend-mode:hue}.bg-blend-saturation{background-blend-mode:saturation}.bg-blend-color{background-blend-mode:color}.bg-blend-luminosity{background-blend-mode:luminosity}.mix-blend-normal{mix-blend-mode:normal}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-screen{mix-blend-mode:screen}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-darken{mix-blend-mode:darken}.mix-blend-lighten{mix-blend-mode:lighten}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.mix-blend-color-burn{mix-blend-mode:color-burn}.mix-blend-hard-light{mix-blend-mode:hard-light}.mix-blend-soft-light{mix-blend-mode:soft-light}.mix-blend-difference{mix-blend-mode:difference}.mix-blend-exclusion{mix-blend-mode:exclusion}.mix-blend-hue{mix-blend-mode:hue}.mix-blend-saturation{mix-blend-mode:saturation}.mix-blend-color{mix-blend-mode:color}.mix-blend-luminosity{mix-blend-mode:luminosity}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.\!shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.outline-dashed{outline-style:dashed}.outline-dotted{outline-style:dotted}.outline-double{outline-style:double}.outline-hidden{outline-style:hidden}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!invert{--tw-invert: invert(100%) !important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.sepia{--tw-sepia: sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter-none{filter:none}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-grayscale{--tw-backdrop-grayscale: grayscale(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-invert{--tw-backdrop-invert: invert(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-sepia{--tw-backdrop-sepia: sepia(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter-none{-webkit-backdrop-filter:none;backdrop-filter:none}.transition{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.content-\[\'hello\'\],.content-\[\"hello\"\]{--tw-content: "hello";content:var(--tw-content)}.content-\[\'this-is-also-valid\]-weirdly-enough\'\]{--tw-content: "this-is-also-valid]-weirdly-enough";content:var(--tw-content)}.\[attr\:value\]{attr:value}.\[content\:\'hello\'\],.\[content\:\"hello\"\]{content:"hello"}.\[vite\:css\]{vite:css}h1:before,h2:before,h3:before,h4:before,h5:before,h6:before{display:block;content:" ";margin-top:-70px;height:70px;visibility:hidden;pointer-events:none;position:relative}h1:hover .icon-link,h2:hover .icon-link,h3:hover .icon-link,h4:hover .icon-link,h5:hover .icon-link,h6:hover .icon-link,.icon.icon-link:hover{visibility:visible}.icon.icon-link{background-image:url(/tutorial/assets/link.55bc37e1.svg);background-repeat:no-repeat;height:16px;display:block;color:gray;fill:#000;position:absolute;visibility:hidden;margin-left:-20px;width:20px;margin-top:8px}#table-of-contents{display:none}#table-of-contents+ul{position:fixed;right:0;top:64px;overflow:auto;height:calc(100vh - 64px);width:33%;margin:2px;padding:12px 0 12px 8px}#table-of-contents+ul ul{padding-left:8px}#table-of-contents+ul li{list-style:none;margin:2px}#table-of-contents+ul li p{margin:0}#table-of-contents+ul li a{text-decoration:none}@media only screen and (max-width: 1120px){#table-of-contents+ul{display:none}}.hover\:font-bold:hover{font-weight:700}.before\:hover\:text-center:hover:before{content:var(--tw-content);text-align:center}.hover\:before\:text-center:hover:before{content:var(--tw-content);text-align:center}.hover\:focus\:text-center:focus:hover{text-align:center}.focus\:hover\:text-center:hover:focus{text-align:center}.prose-headings\:underline :is(:where(h1,h2,h3,h4,th):not(:where([class~="not-prose"] *))){-webkit-text-decoration-line:underline;text-decoration-line:underline}.prose-lead\:italic :is(:where([class~="lead"]):not(:where([class~="not-prose"] *))){font-style:italic}.prose-h1\:text-3xl :is(:where(h1):not(:where([class~="not-prose"] *))){font-size:1.875rem;line-height:2.25rem}.prose-h2\:text-2xl :is(:where(h2):not(:where([class~="not-prose"] *))){font-size:1.5rem;line-height:2rem}.prose-h3\:text-xl :is(:where(h3):not(:where([class~="not-prose"] *))){font-size:1.25rem;line-height:1.75rem}.prose-h4\:text-lg :is(:where(h4):not(:where([class~="not-prose"] *))){font-size:1.125rem;line-height:1.75rem}.prose-p\:text-gray-700 :is(:where(p):not(:where([class~="not-prose"] *))){--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.prose-a\:font-bold :is(:where(a):not(:where([class~="not-prose"] *))){font-weight:700}.prose-blockquote\:italic :is(:where(blockquote):not(:where([class~="not-prose"] *))){font-style:italic}.prose-figure\:mx-auto :is(:where(figure):not(:where([class~="not-prose"] *))){margin-left:auto;margin-right:auto}.prose-figcaption\:opacity-75 :is(:where(figcaption):not(:where([class~="not-prose"] *))){opacity:.75}.prose-strong\:font-medium :is(:where(strong):not(:where([class~="not-prose"] *))){font-weight:500}.prose-em\:italic :is(:where(em):not(:where([class~="not-prose"] *))){font-style:italic}.prose-code\:font-mono :is(:where(code):not(:where([class~="not-prose"] *))){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.prose-pre\:font-mono :is(:where(pre):not(:where([class~="not-prose"] *))){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.prose-ol\:pl-6 :is(:where(ol):not(:where([class~="not-prose"] *))){padding-left:1.5rem}.prose-ul\:pl-8 :is(:where(ul):not(:where([class~="not-prose"] *))){padding-left:2rem}.prose-li\:my-4 :is(:where(li):not(:where([class~="not-prose"] *))){margin-top:1rem;margin-bottom:1rem}.prose-table\:my-8 :is(:where(table):not(:where([class~="not-prose"] *))){margin-top:2rem;margin-bottom:2rem}.prose-thead\:border-red-300 :is(:where(thead):not(:where([class~="not-prose"] *))){--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity))}.prose-tr\:border-red-200 :is(:where(tr):not(:where([class~="not-prose"] *))){--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity))}.prose-th\:text-left :is(:where(th):not(:where([class~="not-prose"] *))){text-align:left}.prose-img\:rounded-lg :is(:where(img):not(:where([class~="not-prose"] *))){border-radius:.5rem}.prose-video\:my-12 :is(:where(video):not(:where([class~="not-prose"] *))){margin-top:3rem;margin-bottom:3rem}.prose-hr\:border-t-2 :is(:where(hr):not(:where([class~="not-prose"] *))){border-top-width:2px}@media (min-width: 640px){.sm\:container{width:100%}@media (min-width: 640px){.sm\:container{max-width:640px}}@media (min-width: 768px){.sm\:container{max-width:768px}}@media (min-width: 1024px){.sm\:container{max-width:1024px}}@media (min-width: 1280px){.sm\:container{max-width:1280px}}@media (min-width: 1536px){.sm\:container{max-width:1536px}}.sm\:underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}}@media (prefers-color-scheme: dark){@media (min-width: 1024px){.dark\:lg\:hover\:\[paint-order\:markers\]:hover{paint-order:markers}}}*,:before,:after{--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.sc-h-5{height:1.25rem}.sc-w-5{width:1.25rem}@-webkit-keyframes sc-pulse{50%{opacity:.5}}@keyframes sc-pulse{50%{opacity:.5}}.sc-animate-pulse{-webkit-animation:sc-pulse 2s cubic-bezier(.4,0,.6,1) infinite;animation:sc-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cm-editor{background-color:transparent!important}._container_xpa19_1{overflow:hidden;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(17 17 17 / var(--tw-bg-opacity))}._header_xpa19_5{display:flex;justify-content:space-between;border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}._buttons_xpa19_9{display:flex}._button_xpa19_9{display:flex;width:4rem;cursor:pointer;align-items:center;justify-content:center;border-right-width:1px;--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity));padding:.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}._button_xpa19_9:hover{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity))}._buttonDisabled_xpa19_17{display:flex;width:4rem;cursor:pointer;cursor:not-allowed;align-items:center;justify-content:center;--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity));padding:.25rem;--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}._error_xpa19_21{padding:.25rem;text-align:right;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity))}._body_xpa19_25{position:relative;overflow:auto} diff --git a/tutorial/assets/index.eecad890.js b/tutorial/assets/index.7a89fbc1.js similarity index 99% rename from tutorial/assets/index.eecad890.js rename to tutorial/assets/index.7a89fbc1.js index de5ee8ad1..3cc4094ad 100644 --- a/tutorial/assets/index.eecad890.js +++ b/tutorial/assets/index.7a89fbc1.js @@ -1 +1 @@ -var Bn=Object.defineProperty,Hn=Object.defineProperties;var Ln=Object.getOwnPropertyDescriptors;var kt=Object.getOwnPropertySymbols;var Un=Object.prototype.hasOwnProperty,Xn=Object.prototype.propertyIsEnumerable;var Rt=(t,n,e)=>n in t?Bn(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e,y=(t,n)=>{for(var e in n||(n={}))Un.call(n,e)&&Rt(t,e,n[e]);if(kt)for(var e of kt(n))Xn.call(n,e)&&Rt(t,e,n[e]);return t},g=(t,n)=>Hn(t,Ln(n));import{P as w,w as Kn,x as Qn,y as Y,z as Yn,A as Zn,H as Jn,B as Wn}from"./index.e8a05ade.js";const x=(t,n)=>Array(Math.abs(n)+1).join(t);function v(t,n,e){return function(...o){return console.warn(`${t} is deprecated. Use ${n}.`),e.apply(this,o)}}function q(t){return t!==null&&typeof t=="object"&&typeof t.name=="string"}function G(t){return t!==null&&typeof t=="object"&&typeof t.step=="number"&&typeof t.alt=="number"}const Yt=[0,2,4,-1,1,3,5],Zt=Yt.map(t=>Math.floor(t*7/12));function et(t){const{step:n,alt:e,oct:o,dir:r=1}=t,i=Yt[n]+7*e;if(o===void 0)return[r*i];const a=o-Zt[n]-4*e;return[r*i,r*a]}const te=[3,0,4,1,5,2,6];function ot(t){const[n,e,o]=t,r=te[ne(n)],i=Math.floor((n+1)/7);if(e===void 0)return{step:r,alt:i,dir:o};const a=e+4*i+Zt[r];return{step:r,alt:i,oct:a,dir:o}}function ne(t){const n=(t+1)%7;return n<0?7+n:n}const Jt={empty:!0,name:"",pc:"",acc:""},Ot=new Map,vt=t=>"CDEFGAB".charAt(t),k=t=>t<0?x("b",-t):x("#",t),B=t=>t[0]==="b"?-t.length:t.length;function u(t){const n=Ot.get(t);if(n)return n;const e=typeof t=="string"?re(t):G(t)?u(ie(t)):q(t)?u(t.name):Jt;return Ot.set(t,e),e}const ee=/^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)$/;function rt(t){const n=ee.exec(t);return[n[1].toUpperCase(),n[2].replace(/x/g,"##"),n[3],n[4]]}function z(t){return u(ot(t))}const oe=(t,n)=>(t%n+n)%n,ht=[0,2,4,5,7,9,11];function re(t){const n=rt(t);if(n[0]===""||n[3]!=="")return Jt;const e=n[0],o=n[1],r=n[2],i=(e.charCodeAt(0)+3)%7,a=B(o),s=r.length?+r:void 0,c=et({step:i,alt:a,oct:s}),l=e+o+r,m=e+o,d=(ht[i]+a+120)%12,M=s===void 0?oe(ht[i]+a,12)-12*99:ht[i]+a+12*(s+1),b=M>=0&&M<=127?M:null,p=s===void 0?null:Math.pow(2,(M-69)/12)*440;return{empty:!1,acc:o,alt:a,chroma:d,coord:c,freq:p,height:M,letter:e,midi:b,name:l,oct:s,pc:m,step:i}}function ie(t){const{step:n,alt:e,oct:o}=t,r=vt(n);if(!r)return"";const i=r+k(e);return o||o===0?i+o:i}const yt={empty:!0,name:"",acc:""},ae="([-+]?\\d+)(d{1,4}|m|M|P|A{1,4})",se="(AA|A|P|M|m|d|dd)([-+]?\\d+)",ce=new RegExp("^"+ae+"|"+se+"$");function Nt(t){const n=ce.exec(`${t}`);return n===null?["",""]:n[1]?[n[1],n[2]]:[n[4],n[3]]}const Ft={};function f(t){return typeof t=="string"?Ft[t]||(Ft[t]=me(t)):G(t)?f(le(t)):q(t)?f(t.name):yt}const zt=[0,2,4,5,7,9,11],Wt="PMMPPMM";function me(t){const n=Nt(t);if(n[0]==="")return yt;const e=+n[0],o=n[1],r=(Math.abs(e)-1)%7,i=Wt[r];if(i==="M"&&o==="P")return yt;const a=i==="M"?"majorable":"perfectable",s=""+e+o,c=e<0?-1:1,l=e===8||e===-8?e:c*(r+1),m=ue(a,o),d=Math.floor((Math.abs(e)-1)/7),M=c*(zt[r]+m+12*d),b=(c*(zt[r]+m)%12+12)%12,p=et({step:r,alt:m,oct:d,dir:c});return{empty:!1,name:s,num:e,q:o,step:r,alt:m,dir:c,type:a,simple:l,semitones:M,chroma:b,coord:p,oct:d}}function H(t,n){const[e,o=0]=t,r=e*7+o*12<0,i=n||r?[-e,-o,-1]:[e,o,1];return f(ot(i))}function ue(t,n){return n==="M"&&t==="majorable"||n==="P"&&t==="perfectable"?0:n==="m"&&t==="majorable"?-1:/^A+$/.test(n)?n.length:/^d+$/.test(n)?-1*(t==="perfectable"?n.length:n.length+1):0}function le(t){const{step:n,alt:e,oct:o=0,dir:r}=t;if(!r)return"";const i=n+1+7*o,a=i===0?n+1:i,s=r<0?"-":"",c=Wt[n]==="M"?"majorable":"perfectable";return s+a+de(c,e)}function de(t,n){return n===0?t==="majorable"?"M":"P":n===-1&&t==="majorable"?"m":n>0?x("A",n):x("d",t==="perfectable"?n:n+1)}function P(t,n){const e=u(t),o=f(n);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=r.length===1?[r[0]+i[0]]:[r[0]+i[0],r[1]+i[1]];return z(a).name}function R(t,n){const e=u(t),o=u(n);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=i[0]-r[0],s=r.length===2&&i.length===2?i[1]-r[1]:-Math.floor(a*7/12),c=o.height===e.height&&o.midi!==null&&e.midi!==null&&e.step>o.step;return H([a,s],c).name}var tn=Object.freeze(Object.defineProperty({__proto__:null,accToAlt:B,altToAcc:k,coordToInterval:H,coordToNote:z,decode:ot,deprecate:v,distance:R,encode:et,fillStr:x,interval:f,isNamed:q,isPitch:G,note:u,stepToLetter:vt,tokenizeInterval:Nt,tokenizeNote:rt,transpose:P},Symbol.toStringTag,{value:"Module"}));const qt=(t,n)=>Array(n+1).join(t),Me=/^(_{1,}|=|\^{1,}|)([abcdefgABCDEFG])([,']*)$/;function nn(t){const n=Me.exec(t);return n?[n[1],n[2],n[3]]:["","",""]}function W(t){const[n,e,o]=nn(t);if(e==="")return"";let r=4;for(let a=0;a96?e.toUpperCase()+i+(r+1):e+i+r}function en(t){const n=u(t);if(n.empty||!n.oct&&n.oct!==0)return"";const{letter:e,acc:o,oct:r}=n,i=o[0]==="b"?o.replace(/b/g,"_"):o.replace(/#/g,"^"),a=r>4?e.toLowerCase():e,s=r===5?"":r>4?qt("'",r-5):qt(",",4-r);return i+a+s}function fe(t,n){return en(P(W(t),n))}function Pe(t,n){return R(W(t),W(n))}var pe={abcToScientificNotation:W,scientificToAbcNotation:en,tokenize:nn,transpose:fe,distance:Pe};function he(t,n){const e=[];for(;n--;e[n]=n+t);return e}function ye(t,n){const e=[];for(;n--;e[n]=t-n);return e}function ge(t,n){return tn===0||n)}function on(t){return t.map(e=>u(e)).filter(e=>!e.empty).sort((e,o)=>e.height-o.height).map(e=>e.name)}function ve(t){return on(t).filter((n,e,o)=>e===0||n!==o[e-1])}function Ne(t,n=Math.random){let e,o,r=t.length;for(;r;)e=Math.floor(n()*r--),o=t[r],t[r]=t[e],t[e]=o;return t}function rn(t){return t.length===0?[[]]:rn(t.slice(1)).reduce((n,e)=>n.concat(t.map((o,r)=>{const i=e.slice();return i.splice(r,0,t[0]),i})),[])}var $e=Object.freeze(Object.defineProperty({__proto__:null,compact:Ae,permutations:rn,range:ge,rotate:be,shuffle:Ne,sortedNoteNames:on,sortedUniqNoteNames:ve},Symbol.toStringTag,{value:"Module"}));function Ie(t,n){const e=[];for(;n--;e[n]=n+t);return e}function je(t,n){const e=[];for(;n--;e[n]=t-n);return e}function it(t,n){return tn===0||n)}function Te(t,n=Math.random){let e,o,r=t.length;for(;r;)e=Math.floor(n()*r--),o=t[r],t[r]=t[e],t[e]=o;return t}function an(t){return t.length===0?[[]]:an(t.slice(1)).reduce((n,e)=>n.concat(t.map((o,r)=>{const i=e.slice();return i.splice(r,0,t[0]),i})),[])}var Se={compact:$t,permutations:an,range:it,rotate:L,shuffle:Te};const V={empty:!0,name:"",setNum:0,chroma:"000000000000",normalized:"000000000000",intervals:[]},It=t=>Number(t).toString(2),Gt=t=>parseInt(t,2),_e=/^[01]{12}$/;function sn(t){return _e.test(t)}const Ve=t=>typeof t=="number"&&t>=0&&t<=4095,Ce=t=>t&&sn(t.chroma),Bt={[V.chroma]:V};function h(t){const n=sn(t)?t:Ve(t)?It(t):Array.isArray(t)?Be(t):Ce(t)?t.chroma:V.chroma;return Bt[n]=Bt[n]||Ge(n)}const we=v("Pcset.pcset","Pcset.get",h),xe=t=>h(t).chroma,Ee=t=>h(t).intervals,De=t=>h(t).setNum,ke=["1P","2m","2M","3m","3M","4P","5d","5P","6m","6M","7m","7M"];function Re(t){const n=[];for(let e=0;e<12;e++)t.charAt(e)==="1"&&n.push(ke[e]);return n}function Oe(){return it(2048,4095).map(It)}function jt(t,n=!0){const o=h(t).chroma.split("");return $t(o.map((r,i)=>{const a=L(i,o);return n&&a[0]==="0"?null:a.join("")}))}function Fe(t,n){return h(t).setNum===h(n).setNum}function at(t){const n=h(t).setNum;return e=>{const o=h(e).setNum;return n&&n!==o&&(o&n)===o}}function st(t){const n=h(t).setNum;return e=>{const o=h(e).setNum;return n&&n!==o&&(o|n)===o}}function cn(t){const n=h(t);return e=>{const o=u(e);return n&&!o.empty&&n.chroma.charAt(o.chroma)==="1"}}function ze(t){const n=cn(t);return e=>e.filter(n)}var mn={get:h,chroma:xe,num:De,intervals:Ee,chromas:Oe,isSupersetOf:st,isSubsetOf:at,isNoteIncludedIn:cn,isEqual:Fe,filter:ze,modes:jt,pcset:we};function qe(t){const n=t.split("");return n.map((e,o)=>L(o,n).join(""))}function Ge(t){const n=Gt(t),e=qe(t).map(Gt).filter(i=>i>=2048).sort()[0],o=It(e),r=Re(t);return{empty:!1,name:"",setNum:n,chroma:t,normalized:o,intervals:r}}function Be(t){if(t.length===0)return V.chroma;let n;const e=[0,0,0,0,0,0,0,0,0,0,0,0];for(let o=0;ot.name).filter(t=>t)}function Ke(){return O.map(t=>t.aliases[0]).filter(t=>t)}function Qe(){return Object.keys(S)}function F(){return O.slice()}const Ye=v("ChordType.entries","ChordType.all",F);function Ze(){O=[],S={}}function un(t,n,e){const o=We(t),r=g(y({},h(t)),{name:e||"",quality:o,intervals:t,aliases:n});O.push(r),r.name&&(S[r.name]=r),S[r.setNum]=r,S[r.chroma]=r,r.aliases.forEach(i=>Je(r,i))}function Je(t,n){S[n]=t}function We(t){const n=e=>t.indexOf(e)!==-1;return n("5A")?"Augmented":n("3M")?"Major":n("5d")?"Diminished":n("3m")?"Minor":"Unknown"}He.forEach(([t,n,e])=>un(t.split(" "),e.split(" "),n));O.sort((t,n)=>t.setNum-n.setNum);var ln={names:Xe,symbols:Ke,get:Tt,all:F,add:un,removeAll:Ze,keys:Qe,entries:Ye,chordType:Ue};const to=t=>{const n=t.reduce((e,o)=>{const r=u(o).chroma;return r!==void 0&&(e[r]=e[r]||u(o).name),e},{});return e=>n[e]};function no(t){const n=t.map(o=>u(o).pc).filter(o=>o);return u.length===0?[]:eo(n,1).filter(o=>o.weight).sort((o,r)=>r.weight-o.weight).map(o=>o.name)}function eo(t,n){const e=t[0],o=u(e).chroma,r=to(t),i=jt(t,!1),a=[];return i.forEach((s,c)=>{F().filter(m=>m.chroma===s).forEach(m=>{const d=m.aliases[0],M=r(c);c!==o?a.push({weight:.5*n,name:`${M}${d}/${e}`}):a.push({weight:1*n,name:`${M}${d}`})})}),a}const oo=[["1P 2M 3M 5P 6M","major pentatonic","pentatonic"],["1P 3M 4P 5P 7M","ionian pentatonic"],["1P 3M 4P 5P 7m","mixolydian pentatonic","indian"],["1P 2M 4P 5P 6M","ritusen"],["1P 2M 4P 5P 7m","egyptian"],["1P 3M 4P 5d 7m","neopolitan major pentatonic"],["1P 3m 4P 5P 6m","vietnamese 1"],["1P 2m 3m 5P 6m","pelog"],["1P 2m 4P 5P 6m","kumoijoshi"],["1P 2M 3m 5P 6m","hirajoshi"],["1P 2m 4P 5d 7m","iwato"],["1P 2m 4P 5P 7m","in-sen"],["1P 3M 4A 5P 7M","lydian pentatonic","chinese"],["1P 3m 4P 6m 7m","malkos raga"],["1P 3m 4P 5d 7m","locrian pentatonic","minor seven flat five pentatonic"],["1P 3m 4P 5P 7m","minor pentatonic","vietnamese 2"],["1P 3m 4P 5P 6M","minor six pentatonic"],["1P 2M 3m 5P 6M","flat three pentatonic","kumoi"],["1P 2M 3M 5P 6m","flat six pentatonic"],["1P 2m 3M 5P 6M","scriabin"],["1P 3M 5d 6m 7m","whole tone pentatonic"],["1P 3M 4A 5A 7M","lydian #5P pentatonic"],["1P 3M 4A 5P 7m","lydian dominant pentatonic"],["1P 3m 4P 5P 7M","minor #7M pentatonic"],["1P 3m 4d 5d 7m","super locrian pentatonic"],["1P 2M 3m 4P 5P 7M","minor hexatonic"],["1P 2A 3M 5P 5A 7M","augmented"],["1P 2M 3m 3M 5P 6M","major blues"],["1P 2M 4P 5P 6M 7m","piongio"],["1P 2m 3M 4A 6M 7m","prometheus neopolitan"],["1P 2M 3M 4A 6M 7m","prometheus"],["1P 2m 3M 5d 6m 7m","mystery #1"],["1P 2m 3M 4P 5A 6M","six tone symmetric"],["1P 2M 3M 4A 5A 7m","whole tone","messiaen's mode #1"],["1P 2m 4P 4A 5P 7M","messiaen's mode #5"],["1P 3m 4P 5d 5P 7m","minor blues","blues"],["1P 2M 3M 4P 5d 6m 7m","locrian major","arabian"],["1P 2m 3M 4A 5P 6m 7M","double harmonic lydian"],["1P 2M 3m 4P 5P 6m 7M","harmonic minor"],["1P 2m 2A 3M 4A 6m 7m","altered","super locrian","diminished whole tone","pomeroy"],["1P 2M 3m 4P 5d 6m 7m","locrian #2","half-diminished","aeolian b5"],["1P 2M 3M 4P 5P 6m 7m","mixolydian b6","melodic minor fifth mode","hindu"],["1P 2M 3M 4A 5P 6M 7m","lydian dominant","lydian b7","overtone"],["1P 2M 3M 4A 5P 6M 7M","lydian"],["1P 2M 3M 4A 5A 6M 7M","lydian augmented"],["1P 2m 3m 4P 5P 6M 7m","dorian b2","phrygian #6","melodic minor second mode"],["1P 2M 3m 4P 5P 6M 7M","melodic minor"],["1P 2m 3m 4P 5d 6m 7m","locrian"],["1P 2m 3m 4d 5d 6m 7d","ultralocrian","superlocrian bb7","superlocrian diminished"],["1P 2m 3m 4P 5d 6M 7m","locrian 6","locrian natural 6","locrian sharp 6"],["1P 2A 3M 4P 5P 5A 7M","augmented heptatonic"],["1P 2M 3m 4A 5P 6M 7m","dorian #4","ukrainian dorian","romanian minor","altered dorian"],["1P 2M 3m 4A 5P 6M 7M","lydian diminished"],["1P 2m 3m 4P 5P 6m 7m","phrygian"],["1P 2M 3M 4A 5A 7m 7M","leading whole tone"],["1P 2M 3M 4A 5P 6m 7m","lydian minor"],["1P 2m 3M 4P 5P 6m 7m","phrygian dominant","spanish","phrygian major"],["1P 2m 3m 4P 5P 6m 7M","balinese"],["1P 2m 3m 4P 5P 6M 7M","neopolitan major"],["1P 2M 3m 4P 5P 6m 7m","aeolian","minor"],["1P 2M 3M 4P 5P 6m 7M","harmonic major"],["1P 2m 3M 4P 5P 6m 7M","double harmonic major","gypsy"],["1P 2M 3m 4P 5P 6M 7m","dorian"],["1P 2M 3m 4A 5P 6m 7M","hungarian minor"],["1P 2A 3M 4A 5P 6M 7m","hungarian major"],["1P 2m 3M 4P 5d 6M 7m","oriental"],["1P 2m 3m 3M 4A 5P 7m","flamenco"],["1P 2m 3m 4A 5P 6m 7M","todi raga"],["1P 2M 3M 4P 5P 6M 7m","mixolydian","dominant"],["1P 2m 3M 4P 5d 6m 7M","persian"],["1P 2M 3M 4P 5P 6M 7M","major","ionian"],["1P 2m 3M 5d 6m 7m 7M","enigmatic"],["1P 2M 3M 4P 5A 6M 7M","major augmented","major #5","ionian augmented","ionian #5"],["1P 2A 3M 4A 5P 6M 7M","lydian #9"],["1P 2m 2M 4P 4A 5P 6m 7M","messiaen's mode #4"],["1P 2m 3M 4P 4A 5P 6m 7M","purvi raga"],["1P 2m 3m 3M 4P 5P 6m 7m","spanish heptatonic"],["1P 2M 3M 4P 5P 6M 7m 7M","bebop"],["1P 2M 3m 3M 4P 5P 6M 7m","bebop minor"],["1P 2M 3M 4P 5P 5A 6M 7M","bebop major"],["1P 2m 3m 4P 5d 5P 6m 7m","bebop locrian"],["1P 2M 3m 4P 5P 6m 7m 7M","minor bebop"],["1P 2M 3m 4P 5d 6m 6M 7M","diminished","whole-half diminished"],["1P 2M 3M 4P 5d 5P 6M 7M","ichikosucho"],["1P 2M 3m 4P 5P 6m 6M 7M","minor six diminished"],["1P 2m 3m 3M 4A 5P 6M 7m","half-whole diminished","dominant diminished","messiaen's mode #2"],["1P 3m 3M 4P 5P 6M 7m 7M","kafi raga"],["1P 2M 3M 4P 4A 5A 6A 7M","messiaen's mode #6"],["1P 2M 3m 3M 4P 5d 5P 6M 7m","composite blues"],["1P 2M 3m 3M 4A 5P 6m 7m 7M","messiaen's mode #3"],["1P 2m 2M 3m 4P 4A 5P 6m 6M 7M","messiaen's mode #7"],["1P 2m 2M 3m 3M 4P 5d 5P 6m 6M 7m 7M","chromatic"]],ro=g(y({},V),{intervals:[],aliases:[]});let ct=[],_={};function dn(){return ct.map(t=>t.name)}function mt(t){return _[t]||ro}const io=v("ScaleDictionary.scaleType","ScaleType.get",mt);function U(){return ct.slice()}const ao=v("ScaleDictionary.entries","ScaleType.all",U);function so(){return Object.keys(_)}function co(){ct=[],_={}}function Mn(t,n,e=[]){const o=g(y({},h(t)),{name:n,intervals:t,aliases:e});return ct.push(o),_[o.name]=o,_[o.setNum]=o,_[o.chroma]=o,o.aliases.forEach(r=>mo(o,r)),o}function mo(t,n){_[n]=t}oo.forEach(([t,n,...e])=>Mn(t.split(" "),n,e));var fn={names:dn,get:mt,all:U,add:Mn,removeAll:co,keys:so,entries:ao,scaleType:io};const gt={empty:!0,name:"",symbol:"",root:"",rootDegree:0,type:"",tonic:null,setNum:NaN,quality:"Unknown",chroma:"",normalized:"",aliases:[],notes:[],intervals:[]},uo=/^(6|64|7|9|11|13)$/;function ut(t){const[n,e,o,r]=rt(t);return n===""?["",t]:n==="A"&&r==="ug"?["","aug"]:!r&&(o==="4"||o==="5")?[n+e,o]:uo.test(o)?[n+e,o+r]:[n+e+o,r]}function X(t){if(t==="")return gt;if(Array.isArray(t)&&t.length===2)return Z(t[1],t[0]);{const[n,e]=ut(t),o=Z(e,n);return o.empty?Z(t):o}}function Z(t,n,e){const o=Tt(t),r=u(n||""),i=u(e||"");if(o.empty||n&&r.empty||e&&i.empty)return gt;const a=R(r.pc,i.pc),s=o.intervals.indexOf(a)+1;if(!i.empty&&!s)return gt;const c=Array.from(o.intervals);for(let M=1;MP(r,M));t=o.aliases.indexOf(t)!==-1?t:o.aliases[0];const m=`${r.empty?"":r.pc}${t}${i.empty||s<=1?"":"/"+i.pc}`,d=`${n?r.pc+" ":""}${o.name}${s>1&&e?" over "+i.pc:""}`;return g(y({},o),{name:d,symbol:m,type:o.name,root:i.name,intervals:c,rootDegree:s,tonic:r.name,notes:l})}const lo=v("Chord.chord","Chord.get",X);function Mo(t,n){const[e,o]=ut(t);return e?P(e,n)+o:t}function fo(t){const n=X(t),e=st(n.chroma);return U().filter(o=>e(o.chroma)).map(o=>o.name)}function Po(t){const n=X(t),e=st(n.chroma);return F().filter(o=>e(o.chroma)).map(o=>n.tonic+o.aliases[0])}function po(t){const n=X(t),e=at(n.chroma);return F().filter(o=>e(o.chroma)).map(o=>n.tonic+o.aliases[0])}var ho={getChord:Z,get:X,detect:no,chordScales:fo,extended:Po,reduced:po,tokenize:ut,transpose:Mo,chord:lo};const yo=[[.125,"dl",["large","duplex longa","maxima","octuple","octuple whole"]],[.25,"l",["long","longa"]],[.5,"d",["double whole","double","breve"]],[1,"w",["whole","semibreve"]],[2,"h",["half","minim"]],[4,"q",["quarter","crotchet"]],[8,"e",["eighth","quaver"]],[16,"s",["sixteenth","semiquaver"]],[32,"t",["thirty-second","demisemiquaver"]],[64,"sf",["sixty-fourth","hemidemisemiquaver"]],[128,"h",["hundred twenty-eighth"]],[256,"th",["two hundred fifty-sixth"]]],lt=[];yo.forEach(([t,n,e])=>jo(t,n,e));const go={empty:!0,name:"",value:0,fraction:[0,0],shorthand:"",dots:"",names:[]};function bo(){return lt.reduce((t,n)=>(n.names.forEach(e=>t.push(e)),t),[])}function Ao(){return lt.map(t=>t.shorthand)}const vo=/^([^.]+)(\.*)$/;function St(t){const[n,e,o]=vo.exec(t)||[],r=lt.find(s=>s.shorthand===e||s.names.includes(e));if(!r)return go;const i=To(r.fraction,o.length),a=i[0]/i[1];return g(y({},r),{name:t,dots:o,value:a,fraction:i})}const No=t=>St(t).value,$o=t=>St(t).fraction;var Io={names:bo,shorthands:Ao,get:St,value:No,fraction:$o};function jo(t,n,e){lt.push({empty:!1,dots:"",name:"",value:1/t,fraction:t<1?[1/t,1]:[1,t],shorthand:n,names:e})}function To(t,n){const e=Math.pow(2,n);let o=t[0]*e,r=t[1]*e;const i=o;for(let a=0;af(t).name,Vo=t=>f(t).semitones,Co=t=>f(t).q,wo=t=>f(t).num;function pn(t){const n=f(t);return n.empty?"":n.simple+n.q}function xo(t){const n=f(t);if(n.empty)return"";const e=(7-n.step)%7,o=n.type==="perfectable"?-n.alt:-(n.alt+1);return f({step:e,alt:o,oct:n.oct,dir:n.dir}).name}const Eo=[1,2,2,3,3,4,5,5,6,6,7,7],Do="P m M m M P d P m M m M".split(" ");function ko(t){const n=t<0?-1:1,e=Math.abs(t),o=e%12,r=Math.floor(e/12);return n*(Eo[o]+7*r)+Do[o]}const Ro=R,hn=gn((t,n)=>[t[0]+n[0],t[1]+n[1]]),Oo=t=>n=>hn(t,n),Fo=gn((t,n)=>[t[0]-n[0],t[1]-n[1]]);function yn(t,n){const e=Pn(t);if(e.empty)return"";const[o,r,i]=e.coord;return H([o+n,r,i]).name}var bt={names:So,get:Pn,name:_o,num:wo,semitones:Vo,quality:Co,fromSemitones:ko,distance:Ro,invert:xo,simplify:pn,add:hn,addTo:Oo,substract:Fo,transposeFifths:yn};function gn(t){return(n,e)=>{const o=f(n).coord,r=f(e).coord;if(o&&r){const i=t(o,r);return H(i).name}}}function bn(t){return+t>=0&&+t<=127}function An(t){if(bn(t))return+t;const n=u(t);return n.empty?null:n.midi}function zo(t,n=440){return Math.pow(2,(t-69)/12)*n}const qo=Math.log(2),Go=Math.log(440);function _t(t){const n=12*(Math.log(t)-Go)/qo+69;return Math.round(n*100)/100}const Bo="C C# D D# E F F# G G# A A# B".split(" "),Ho="C Db D Eb E F Gb G Ab A Bb B".split(" ");function T(t,n={}){if(isNaN(t)||t===-1/0||t===1/0)return"";t=Math.round(t);const o=(n.sharps===!0?Bo:Ho)[t%12];if(n.pitchClass)return o;const r=Math.floor(t/12)-1;return o+r}var Lo={isMidi:bn,toMidi:An,midiToFreq:zo,midiToNoteName:T,freqToMidi:_t};const Uo=["C","D","E","F","G","A","B"],vn=t=>t.name,Nn=t=>t.map(u).filter(n=>!n.empty);function Xo(t){return t===void 0?Uo.slice():Array.isArray(t)?Nn(t).map(vn):[]}const A=u,Ko=t=>A(t).name,Qo=t=>A(t).pc,Yo=t=>A(t).acc,Zo=t=>A(t).oct,Jo=t=>A(t).midi,Wo=t=>A(t).freq,tr=t=>A(t).chroma;function $n(t){return T(t)}function nr(t){return T(_t(t))}function er(t){return T(_t(t),{sharps:!0})}function or(t){return T(t,{sharps:!0})}const Vt=P,rr=P,In=t=>n=>Vt(n,t),ir=In,jn=t=>n=>Vt(t,n),ar=jn;function tt(t,n){const e=A(t);if(e.empty)return"";const[o,r]=e.coord;return z(r===void 0?[o+n]:[o+n,r]).name}const sr=tt,Ct=(t,n)=>t.height-n.height,cr=(t,n)=>n.height-t.height;function Tn(t,n){return n=n||Ct,Nn(t).sort(n).map(vn)}function Sn(t){return Tn(t,Ct).filter((n,e,o)=>e===0||n!==o[e-1])}const mr=t=>{const n=A(t);return n.empty?"":T(n.midi||n.chroma,{sharps:n.alt>0,pitchClass:n.midi===null})};function _n(t,n){const e=A(t);if(e.empty)return"";const o=A(n||T(e.midi||e.chroma,{sharps:e.alt<0,pitchClass:!0}));if(o.empty||o.chroma!==e.chroma)return"";if(e.oct===void 0)return o.pc;const r=e.chroma-e.alt,i=o.chroma-o.alt,a=r>11||i<0?-1:r<0||i>11?1:0,s=e.oct+a;return o.pc+s}var E={names:Xo,get:A,name:Ko,pitchClass:Qo,accidentals:Yo,octave:Zo,midi:Jo,ascending:Ct,descending:cr,sortedNames:Tn,sortedUniqNames:Sn,fromMidi:$n,fromMidiSharps:or,freq:Wo,fromFreq:nr,fromFreqSharps:er,chroma:tr,transpose:Vt,tr:rr,transposeBy:In,trBy:ir,transposeFrom:jn,trFrom:ar,transposeFifths:tt,trFifths:sr,simplify:mr,enharmonic:_n};const Vn={empty:!0,name:"",chordType:""},Ht={};function I(t){return typeof t=="string"?Ht[t]||(Ht[t]=pr(t)):typeof t=="number"?I(dt[t]||""):G(t)?dr(t):q(t)?I(t.name):Vn}const ur=v("RomanNumeral.romanNumeral","RomanNumeral.get",I);function lr(t=!0){return(t?dt:Pr).slice()}function dr(t){return I(k(t.alt)+dt[t.step])}const Mr=/^(#{1,}|b{1,}|x{1,}|)(IV|I{1,3}|VI{0,2}|iv|i{1,3}|vi{0,2})([^IViv]*)$/;function fr(t){return Mr.exec(t)||["","","",""]}const Cn="I II III IV V VI VII",dt=Cn.split(" "),Pr=Cn.toLowerCase().split(" ");function pr(t){const[n,e,o,r]=fr(t);if(!o)return Vn;const i=o.toUpperCase(),a=dt.indexOf(i),s=B(e),c=1;return{empty:!1,name:n,roman:o,interval:f({step:a,alt:s,dir:c}).name,acc:e,chordType:r,alt:s,step:a,major:o===i,oct:0,dir:c}}var hr={names:lr,get:I,romanNumeral:ur};const N=Object.freeze([]),wn={type:"major",tonic:"",alteration:0,keySignature:""},J={tonic:"",grades:N,intervals:N,scale:N,chords:N,chordsHarmonicFunction:N,chordScales:N},yr=g(y(y({},wn),J),{type:"major",minorRelative:"",scale:N,secondaryDominants:N,secondaryDominantsMinorRelative:N,substituteDominants:N,substituteDominantsMinorRelative:N}),gr=g(y({},wn),{type:"minor",relativeMajor:"",natural:J,harmonic:J,melodic:J}),Lt=(t,n,e="")=>n.map((o,r)=>`${t[r]}${e}${o}`);function Mt(t,n,e,o){return r=>{const i=t.map(s=>I(s).interval||""),a=i.map(s=>P(r,s));return{tonic:r,grades:t,intervals:i,scale:a,chords:Lt(a,n),chordsHarmonicFunction:e.slice(),chordScales:Lt(a,o," ")}}}const xn=(t,n)=>{const e=u(t),o=u(n);return e.empty||o.empty?0:o.coord[0]-e.coord[0]},br=Mt("I II III IV V VI VII".split(" "),"maj7 m7 m7 maj7 7 m7 m7b5".split(" "),"T SD T SD D T D".split(" "),"major,dorian,phrygian,lydian,mixolydian,minor,locrian".split(",")),Ar=Mt("I II bIII IV V bVI bVII".split(" "),"m7 m7b5 maj7 m7 m7 maj7 7".split(" "),"T SD T SD D SD SD".split(" "),"minor,locrian,major,dorian,phrygian,lydian,mixolydian".split(",")),vr=Mt("I II bIII IV V bVI VII".split(" "),"mMaj7 m7b5 +maj7 m7 7 maj7 o7".split(" "),"T SD T SD D SD D".split(" "),"harmonic minor,locrian 6,major augmented,lydian diminished,phrygian dominant,lydian #9,ultralocrian".split(",")),Nr=Mt("I II bIII IV V VI VII".split(" "),"m6 m7 +maj7 7 7 m7b5 m7b5".split(" "),"T SD T SD D ".split(" "),"melodic minor,dorian b2,lydian augmented,lydian dominant,mixolydian b6,locrian #2,altered".split(","));function $r(t){const n=u(t).pc;if(!n)return yr;const e=br(n),o=xn("C",n),r=i=>{const a=I(i);return a.empty?"":P(t,a.interval)+a.chordType};return g(y({},e),{type:"major",minorRelative:P(n,"-3m"),alteration:o,keySignature:k(o),secondaryDominants:"- VI7 VII7 I7 II7 III7 -".split(" ").map(r),secondaryDominantsMinorRelative:"- IIIm7b5 IV#m7 Vm7 VIm7 VIIm7b5 -".split(" ").map(r),substituteDominants:"- bIII7 IV7 bV7 bVI7 bVII7 -".split(" ").map(r),substituteDominantsMinorRelative:"- IIIm7 Im7 IIbm7 VIm7 IVm7 -".split(" ").map(r)})}function Ir(t){const n=u(t).pc;if(!n)return gr;const e=xn("C",n)-3;return{type:"minor",tonic:n,relativeMajor:P(n,"3m"),alteration:e,keySignature:k(e),natural:Ar(n),harmonic:vr(n),melodic:Nr(n)}}function jr(t){return typeof t=="number"?tt("C",t):typeof t=="string"&&/^b+|#+$/.test(t)?tt("C",B(t)):null}var Tr={majorKey:$r,majorTonicFromKeySignature:jr,minorKey:Ir};const wt=[[0,2773,0,"ionian","","Maj7","major"],[1,2902,2,"dorian","m","m7"],[2,3418,4,"phrygian","m","m7"],[3,2741,-1,"lydian","","Maj7"],[4,2774,1,"mixolydian","","7"],[5,2906,3,"aeolian","m","m7","minor"],[6,3434,5,"locrian","dim","m7b5"]],Ut=g(y({},V),{name:"",alt:0,modeNum:NaN,triad:"",seventh:"",aliases:[]}),xt=wt.map(Cr),At={};xt.forEach(t=>{At[t.name]=t,t.aliases.forEach(n=>{At[n]=t})});function C(t){return typeof t=="string"?At[t.toLowerCase()]||Ut:t&&t.name?C(t.name):Ut}const Sr=v("Mode.mode","Mode.get",C);function En(){return xt.slice()}const _r=v("Mode.mode","Mode.all",En);function Vr(){return xt.map(t=>t.name)}function Cr(t){const[n,e,o,r,i,a,s]=t,c=s?[s]:[],l=Number(e).toString(2),m=mt(r).intervals;return{empty:!1,intervals:m,modeNum:n,chroma:l,normalized:l,name:r,setNum:e,alt:o,triad:i,seventh:a,aliases:c}}function wr(t,n){return C(t).intervals.map(e=>P(n,e))}function Dn(t){return(n,e)=>{const o=C(n);if(o.empty)return[];const r=L(o.modeNum,t),i=o.intervals.map(a=>P(e,a));return r.map((a,s)=>i[s]+a)}}const xr=Dn(wt.map(t=>t[4])),Er=Dn(wt.map(t=>t[5]));function kn(t,n){const e=C(n),o=C(t);return e.empty||o.empty?"":pn(yn("1P",o.alt-e.alt))}function Dr(t,n,e){return P(e,kn(t,n))}var kr={get:C,names:Vr,all:En,distance:kn,relativeTonic:Dr,notes:wr,triads:xr,seventhChords:Er,entries:_r,mode:Sr};function Rr(t,n){return n.map(I).map(o=>P(t,f(o))+o.chordType)}function Or(t,n){return n.map(e=>{const[o,r]=ut(e),i=R(t,o);return I(f(i)).name+r})}var Fr={fromRomanNumerals:Rr,toRomanNumerals:Or};function Rn(t){const n=$t(t.map(An));return!t.length||n.length!==t.length?[]:n.reduce((e,o)=>{const r=e[e.length-1];return e.concat(it(r,o).slice(1))},[n[0]])}function zr(t,n){return Rn(t).map(e=>T(e,n))}var qr={numeric:Rn,chromatic:zr};const Gr={empty:!0,name:"",type:"",tonic:null,setNum:NaN,chroma:"",normalized:"",aliases:[],notes:[],intervals:[]};function On(t){if(typeof t!="string")return["",""];const n=t.indexOf(" "),e=u(t.substring(0,n));if(e.empty){const r=u(t);return r.empty?["",t]:[r.name,""]}const o=t.substring(e.name.length+1);return[e.name,o.length?o:""]}const Br=dn;function j(t){const n=Array.isArray(t)?t:On(t),e=u(n[0]).name,o=mt(n[1]);if(o.empty)return Gr;const r=o.name,i=e?o.intervals.map(s=>P(e,s)):[],a=e?e+" "+r:r;return g(y({},o),{name:a,type:r,tonic:e,notes:i})}const Hr=v("Scale.scale","Scale.get",j);function Lr(t){const n=j(t),e=at(n.chroma);return F().filter(o=>e(o.chroma)).map(o=>o.aliases[0])}function Ur(t){const n=j(t),e=st(n.chroma);return U().filter(o=>e(o.chroma)).map(o=>o.name)}function Xr(t){const n=at(j(t).chroma);return U().filter(e=>n(e.chroma)).map(e=>e.name)}function Fn(t){const n=t.map(r=>u(r).pc).filter(r=>r),e=n[0],o=Sn(n);return L(o.indexOf(e),o)}function Kr(t){const n=j(t);if(n.empty)return[];const e=n.tonic?n.notes:n.intervals;return jt(n.chroma).map((o,r)=>{const i=j(o).name;return i?[e[r],i]:["",""]}).filter(o=>o[0])}function Qr(t){const n=Array.isArray(t)?Fn(t):j(t).notes,e=n.map(o=>u(o).chroma);return o=>{const r=u(typeof o=="number"?$n(o):o),i=r.height;if(i===void 0)return;const a=i%12,s=e.indexOf(a);if(s!==-1)return _n(r.name,n[s])}}function Yr(t){const n=Qr(t);return(e,o)=>{const r=u(e).height,i=u(o).height;return r===void 0||i===void 0?[]:it(r,i).map(n).filter(a=>a)}}var nt={get:j,names:Br,extended:Ur,modeNames:Kr,reduced:Xr,scaleChords:Lr,scaleNotes:Fn,tokenize:On,rangeOf:Yr,scale:Hr};const Zr={empty:!0,name:"",upper:void 0,lower:void 0,type:void 0,additive:[]},Jr=["4/4","3/4","2/4","2/2","12/8","9/8","6/8","3/8"];function Wr(){return Jr.slice()}const ti=/^(\d?\d(?:\+\d)*)\/(\d)$/,Xt=new Map;function ni(t){const n=Xt.get(t);if(n)return n;const e=oi(Et(t));return Xt.set(t,e),e}function Et(t){if(typeof t=="string"){const[i,a,s]=ti.exec(t)||[];return Et([a,s])}const[n,e]=t,o=+e;if(typeof n=="number")return[n,o];const r=n.split("+").map(i=>+i);return r.length===1?[r[0],o]:[r,o]}var ei={names:Wr,parse:Et,get:ni};function oi([t,n]){const e=Array.isArray(t)?t.reduce((s,c)=>s+c,0):t,o=n;if(e===0||o===0)return Zr;const r=Array.isArray(t)?`${t.join("+")}/${n}`:`${t}/${n}`,i=Array.isArray(t)?t:[],a=o===4||o===2?"simple":o===8&&e%3===0?"compound":"irregular";return{empty:!1,name:r,type:a,upper:e,lower:o,additive:i}}const ri=tn,ii=mn,ai=ln,si=fn;var ci=Object.freeze(Object.defineProperty({__proto__:null,Array:$e,Core:tn,ChordDictionary:ai,PcSet:ii,ScaleDictionary:si,Tonal:ri,AbcNotation:pe,Chord:ho,ChordType:ln,Collection:Se,DurationValue:Io,Interval:bt,Key:Tr,Midi:Lo,Mode:kr,Note:E,Pcset:mn,Progression:Fr,Range:qr,RomanNumeral:hr,Scale:nt,ScaleType:fn,TimeSignature:ei,accToAlt:B,altToAcc:k,coordToInterval:H,coordToNote:z,decode:ot,deprecate:v,distance:R,encode:et,fillStr:x,interval:f,isNamed:q,isPitch:G,note:u,stepToLetter:vt,tokenizeInterval:Nt,tokenizeNote:rt,transpose:P},Symbol.toStringTag,{value:"Module"}));function zn(t,n,e){let[o,r]=nt.tokenize(t),{notes:i}=nt.get(`${o} ${r}`);if(i=i.map(b=>E.get(b).pc),n=Number(n),isNaN(n))throw new Error(`scale offset "${n}" not a number`);const{pc:a,oct:s=3}=E.get(e),c=i.indexOf(a);if(c===-1)throw new Error(`note "${e}" is not in scale "${t}"`);let l=c,m=s,d=a;const M=Math.sign(n);for(;Math.abs(l-c)0&&d[0]==="C"&&(m+=M)}return d+m}w.prototype._transpose=function(t){return this._withHap(n=>{const e=isNaN(Number(t))?String(t):bt.fromSemitones(t);if(typeof n.value=="number"){const o=typeof e=="string"?bt.semitones(e)||0:e;return n.withValue(()=>n.value+o)}return n.withValue(()=>E.simplify(E.transpose(n.value,e)))})};w.prototype._scaleTranspose=function(t){return this._withHap(n=>{if(!n.context.scale)throw new Error("can only use scaleTranspose after .scale");if(typeof n.value!="string")throw new Error("can only use scaleTranspose with notes");return n.withValue(()=>zn(n.context.scale,Number(t),n.value))})};w.prototype._scale=function(t){return this._withHap(n=>{let e=n.value;const o=Number(e);if(!isNaN(o)){let[r,i]=nt.tokenize(t);const{pc:a,oct:s=3}=E.get(r);e=zn(a+" "+i,o,a+s)}return n.withValue(()=>e).setContext(g(y({},n.context),{scale:t}))})};w.prototype.define("transpose",(t,n)=>n.transpose(t),{composable:!0,patternified:!0});w.prototype.define("scale",(t,n)=>n.scale(t),{composable:!0,patternified:!0});w.prototype.define("scaleTranspose",(t,n)=>n.scaleTranspose(t),{composable:!0,patternified:!0});var qn={},Dt={},K={};K.__esModule=!0;K.getBestVoicing=void 0;function mi(t){var n=t.chord,e=t.range,o=t.finder,r=t.picker,i=t.lastVoicing,a=o(n,e);return a.length?r(a,i):[]}K.getBestVoicing=mi;var ft={},Gn=Qn(ci),Q={};Q.__esModule=!0;Q.tokenizeChord=void 0;function ui(t){var n=(t||"").match(/^([A-G][b#]*)([^\/]*)[\/]?([A-G][b#]*)?$/);return n?n.slice(1):[]}Q.tokenizeChord=ui;ft.__esModule=!0;ft.voicingsInRange=void 0;var $=Gn,li=Dt,di=Q;function Mi(t,n,e){n===void 0&&(n=li.lefthand),e===void 0&&(e=["D3","A4"]);var o=(0,di.tokenizeChord)(t),r=o[0],i=o[1];if(!n[i])return[];var a=n[i].map(function(c){return c.split(" ")}),s=$.Range.chromatic(e);return a.reduce(function(c,l){var m=l.map(function(p){return $.Interval.substract(p,l[0])}),d=$.Note.transpose(r,l[0]),M=s.filter(function(p){return $.Note.chroma(p)===$.Note.chroma(d)}).filter(function(p){return $.Note.midi($.Note.transpose(p,m[m.length-1]))<=$.Note.midi(e[1])}).map(function(p){return $.Note.enharmonic(p,d)}),b=M.map(function(p){return m.map(function(pt){return $.Note.transpose(p,pt)})});return c.concat(b)},[])}ft.voicingsInRange=Mi;(function(t){var n=Y&&Y.__assign||function(){return n=Object.assign||function(s){for(var c,l=1,m=arguments.length;lPi({chord:t,dictionary:hi,range:e,picker:pi,lastVoicing:n}),D=w;D.prototype.fmapNested=function(t){return new D(n=>this.query(n).map(e=>Zn(t(e)).query(n).map(o=>new Jn(e.whole,e.part,o.value,o.context))).flat())};D.prototype.voicings=function(t){let n;return t!=null&&t.length||(t=["F3","A4"]),this.fmapNested(e=>(n=yi(e.value,n,t),Wn(...n)._withContext(()=>({locations:e.context.locations||[]}))))};D.prototype._rootNotes=function(t=2){return this.fmap(n=>{const[e,o]=n.match(/^([a-gA-G][b#]?).*$/);return o+t})};D.prototype.define("voicings",(t,n)=>n.voicings(t),{composable:!0});D.prototype.define("rootNotes",(t,n)=>n.rootNotes(t),{composable:!0,patternified:!0}); +var Bn=Object.defineProperty,Hn=Object.defineProperties;var Ln=Object.getOwnPropertyDescriptors;var kt=Object.getOwnPropertySymbols;var Un=Object.prototype.hasOwnProperty,Xn=Object.prototype.propertyIsEnumerable;var Rt=(t,n,e)=>n in t?Bn(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e,y=(t,n)=>{for(var e in n||(n={}))Un.call(n,e)&&Rt(t,e,n[e]);if(kt)for(var e of kt(n))Xn.call(n,e)&&Rt(t,e,n[e]);return t},g=(t,n)=>Hn(t,Ln(n));import{P as w,w as Kn,x as Qn,y as Y,z as Yn,A as Zn,H as Jn,B as Wn}from"./index.91bb3680.js";const x=(t,n)=>Array(Math.abs(n)+1).join(t);function v(t,n,e){return function(...o){return console.warn(`${t} is deprecated. Use ${n}.`),e.apply(this,o)}}function q(t){return t!==null&&typeof t=="object"&&typeof t.name=="string"}function G(t){return t!==null&&typeof t=="object"&&typeof t.step=="number"&&typeof t.alt=="number"}const Yt=[0,2,4,-1,1,3,5],Zt=Yt.map(t=>Math.floor(t*7/12));function et(t){const{step:n,alt:e,oct:o,dir:r=1}=t,i=Yt[n]+7*e;if(o===void 0)return[r*i];const a=o-Zt[n]-4*e;return[r*i,r*a]}const te=[3,0,4,1,5,2,6];function ot(t){const[n,e,o]=t,r=te[ne(n)],i=Math.floor((n+1)/7);if(e===void 0)return{step:r,alt:i,dir:o};const a=e+4*i+Zt[r];return{step:r,alt:i,oct:a,dir:o}}function ne(t){const n=(t+1)%7;return n<0?7+n:n}const Jt={empty:!0,name:"",pc:"",acc:""},Ot=new Map,vt=t=>"CDEFGAB".charAt(t),k=t=>t<0?x("b",-t):x("#",t),B=t=>t[0]==="b"?-t.length:t.length;function u(t){const n=Ot.get(t);if(n)return n;const e=typeof t=="string"?re(t):G(t)?u(ie(t)):q(t)?u(t.name):Jt;return Ot.set(t,e),e}const ee=/^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)$/;function rt(t){const n=ee.exec(t);return[n[1].toUpperCase(),n[2].replace(/x/g,"##"),n[3],n[4]]}function z(t){return u(ot(t))}const oe=(t,n)=>(t%n+n)%n,ht=[0,2,4,5,7,9,11];function re(t){const n=rt(t);if(n[0]===""||n[3]!=="")return Jt;const e=n[0],o=n[1],r=n[2],i=(e.charCodeAt(0)+3)%7,a=B(o),s=r.length?+r:void 0,c=et({step:i,alt:a,oct:s}),l=e+o+r,m=e+o,d=(ht[i]+a+120)%12,M=s===void 0?oe(ht[i]+a,12)-12*99:ht[i]+a+12*(s+1),b=M>=0&&M<=127?M:null,p=s===void 0?null:Math.pow(2,(M-69)/12)*440;return{empty:!1,acc:o,alt:a,chroma:d,coord:c,freq:p,height:M,letter:e,midi:b,name:l,oct:s,pc:m,step:i}}function ie(t){const{step:n,alt:e,oct:o}=t,r=vt(n);if(!r)return"";const i=r+k(e);return o||o===0?i+o:i}const yt={empty:!0,name:"",acc:""},ae="([-+]?\\d+)(d{1,4}|m|M|P|A{1,4})",se="(AA|A|P|M|m|d|dd)([-+]?\\d+)",ce=new RegExp("^"+ae+"|"+se+"$");function Nt(t){const n=ce.exec(`${t}`);return n===null?["",""]:n[1]?[n[1],n[2]]:[n[4],n[3]]}const Ft={};function f(t){return typeof t=="string"?Ft[t]||(Ft[t]=me(t)):G(t)?f(le(t)):q(t)?f(t.name):yt}const zt=[0,2,4,5,7,9,11],Wt="PMMPPMM";function me(t){const n=Nt(t);if(n[0]==="")return yt;const e=+n[0],o=n[1],r=(Math.abs(e)-1)%7,i=Wt[r];if(i==="M"&&o==="P")return yt;const a=i==="M"?"majorable":"perfectable",s=""+e+o,c=e<0?-1:1,l=e===8||e===-8?e:c*(r+1),m=ue(a,o),d=Math.floor((Math.abs(e)-1)/7),M=c*(zt[r]+m+12*d),b=(c*(zt[r]+m)%12+12)%12,p=et({step:r,alt:m,oct:d,dir:c});return{empty:!1,name:s,num:e,q:o,step:r,alt:m,dir:c,type:a,simple:l,semitones:M,chroma:b,coord:p,oct:d}}function H(t,n){const[e,o=0]=t,r=e*7+o*12<0,i=n||r?[-e,-o,-1]:[e,o,1];return f(ot(i))}function ue(t,n){return n==="M"&&t==="majorable"||n==="P"&&t==="perfectable"?0:n==="m"&&t==="majorable"?-1:/^A+$/.test(n)?n.length:/^d+$/.test(n)?-1*(t==="perfectable"?n.length:n.length+1):0}function le(t){const{step:n,alt:e,oct:o=0,dir:r}=t;if(!r)return"";const i=n+1+7*o,a=i===0?n+1:i,s=r<0?"-":"",c=Wt[n]==="M"?"majorable":"perfectable";return s+a+de(c,e)}function de(t,n){return n===0?t==="majorable"?"M":"P":n===-1&&t==="majorable"?"m":n>0?x("A",n):x("d",t==="perfectable"?n:n+1)}function P(t,n){const e=u(t),o=f(n);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=r.length===1?[r[0]+i[0]]:[r[0]+i[0],r[1]+i[1]];return z(a).name}function R(t,n){const e=u(t),o=u(n);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=i[0]-r[0],s=r.length===2&&i.length===2?i[1]-r[1]:-Math.floor(a*7/12),c=o.height===e.height&&o.midi!==null&&e.midi!==null&&e.step>o.step;return H([a,s],c).name}var tn=Object.freeze(Object.defineProperty({__proto__:null,accToAlt:B,altToAcc:k,coordToInterval:H,coordToNote:z,decode:ot,deprecate:v,distance:R,encode:et,fillStr:x,interval:f,isNamed:q,isPitch:G,note:u,stepToLetter:vt,tokenizeInterval:Nt,tokenizeNote:rt,transpose:P},Symbol.toStringTag,{value:"Module"}));const qt=(t,n)=>Array(n+1).join(t),Me=/^(_{1,}|=|\^{1,}|)([abcdefgABCDEFG])([,']*)$/;function nn(t){const n=Me.exec(t);return n?[n[1],n[2],n[3]]:["","",""]}function W(t){const[n,e,o]=nn(t);if(e==="")return"";let r=4;for(let a=0;a96?e.toUpperCase()+i+(r+1):e+i+r}function en(t){const n=u(t);if(n.empty||!n.oct&&n.oct!==0)return"";const{letter:e,acc:o,oct:r}=n,i=o[0]==="b"?o.replace(/b/g,"_"):o.replace(/#/g,"^"),a=r>4?e.toLowerCase():e,s=r===5?"":r>4?qt("'",r-5):qt(",",4-r);return i+a+s}function fe(t,n){return en(P(W(t),n))}function Pe(t,n){return R(W(t),W(n))}var pe={abcToScientificNotation:W,scientificToAbcNotation:en,tokenize:nn,transpose:fe,distance:Pe};function he(t,n){const e=[];for(;n--;e[n]=n+t);return e}function ye(t,n){const e=[];for(;n--;e[n]=t-n);return e}function ge(t,n){return tn===0||n)}function on(t){return t.map(e=>u(e)).filter(e=>!e.empty).sort((e,o)=>e.height-o.height).map(e=>e.name)}function ve(t){return on(t).filter((n,e,o)=>e===0||n!==o[e-1])}function Ne(t,n=Math.random){let e,o,r=t.length;for(;r;)e=Math.floor(n()*r--),o=t[r],t[r]=t[e],t[e]=o;return t}function rn(t){return t.length===0?[[]]:rn(t.slice(1)).reduce((n,e)=>n.concat(t.map((o,r)=>{const i=e.slice();return i.splice(r,0,t[0]),i})),[])}var $e=Object.freeze(Object.defineProperty({__proto__:null,compact:Ae,permutations:rn,range:ge,rotate:be,shuffle:Ne,sortedNoteNames:on,sortedUniqNoteNames:ve},Symbol.toStringTag,{value:"Module"}));function Ie(t,n){const e=[];for(;n--;e[n]=n+t);return e}function je(t,n){const e=[];for(;n--;e[n]=t-n);return e}function it(t,n){return tn===0||n)}function Te(t,n=Math.random){let e,o,r=t.length;for(;r;)e=Math.floor(n()*r--),o=t[r],t[r]=t[e],t[e]=o;return t}function an(t){return t.length===0?[[]]:an(t.slice(1)).reduce((n,e)=>n.concat(t.map((o,r)=>{const i=e.slice();return i.splice(r,0,t[0]),i})),[])}var Se={compact:$t,permutations:an,range:it,rotate:L,shuffle:Te};const V={empty:!0,name:"",setNum:0,chroma:"000000000000",normalized:"000000000000",intervals:[]},It=t=>Number(t).toString(2),Gt=t=>parseInt(t,2),_e=/^[01]{12}$/;function sn(t){return _e.test(t)}const Ve=t=>typeof t=="number"&&t>=0&&t<=4095,Ce=t=>t&&sn(t.chroma),Bt={[V.chroma]:V};function h(t){const n=sn(t)?t:Ve(t)?It(t):Array.isArray(t)?Be(t):Ce(t)?t.chroma:V.chroma;return Bt[n]=Bt[n]||Ge(n)}const we=v("Pcset.pcset","Pcset.get",h),xe=t=>h(t).chroma,Ee=t=>h(t).intervals,De=t=>h(t).setNum,ke=["1P","2m","2M","3m","3M","4P","5d","5P","6m","6M","7m","7M"];function Re(t){const n=[];for(let e=0;e<12;e++)t.charAt(e)==="1"&&n.push(ke[e]);return n}function Oe(){return it(2048,4095).map(It)}function jt(t,n=!0){const o=h(t).chroma.split("");return $t(o.map((r,i)=>{const a=L(i,o);return n&&a[0]==="0"?null:a.join("")}))}function Fe(t,n){return h(t).setNum===h(n).setNum}function at(t){const n=h(t).setNum;return e=>{const o=h(e).setNum;return n&&n!==o&&(o&n)===o}}function st(t){const n=h(t).setNum;return e=>{const o=h(e).setNum;return n&&n!==o&&(o|n)===o}}function cn(t){const n=h(t);return e=>{const o=u(e);return n&&!o.empty&&n.chroma.charAt(o.chroma)==="1"}}function ze(t){const n=cn(t);return e=>e.filter(n)}var mn={get:h,chroma:xe,num:De,intervals:Ee,chromas:Oe,isSupersetOf:st,isSubsetOf:at,isNoteIncludedIn:cn,isEqual:Fe,filter:ze,modes:jt,pcset:we};function qe(t){const n=t.split("");return n.map((e,o)=>L(o,n).join(""))}function Ge(t){const n=Gt(t),e=qe(t).map(Gt).filter(i=>i>=2048).sort()[0],o=It(e),r=Re(t);return{empty:!1,name:"",setNum:n,chroma:t,normalized:o,intervals:r}}function Be(t){if(t.length===0)return V.chroma;let n;const e=[0,0,0,0,0,0,0,0,0,0,0,0];for(let o=0;ot.name).filter(t=>t)}function Ke(){return O.map(t=>t.aliases[0]).filter(t=>t)}function Qe(){return Object.keys(S)}function F(){return O.slice()}const Ye=v("ChordType.entries","ChordType.all",F);function Ze(){O=[],S={}}function un(t,n,e){const o=We(t),r=g(y({},h(t)),{name:e||"",quality:o,intervals:t,aliases:n});O.push(r),r.name&&(S[r.name]=r),S[r.setNum]=r,S[r.chroma]=r,r.aliases.forEach(i=>Je(r,i))}function Je(t,n){S[n]=t}function We(t){const n=e=>t.indexOf(e)!==-1;return n("5A")?"Augmented":n("3M")?"Major":n("5d")?"Diminished":n("3m")?"Minor":"Unknown"}He.forEach(([t,n,e])=>un(t.split(" "),e.split(" "),n));O.sort((t,n)=>t.setNum-n.setNum);var ln={names:Xe,symbols:Ke,get:Tt,all:F,add:un,removeAll:Ze,keys:Qe,entries:Ye,chordType:Ue};const to=t=>{const n=t.reduce((e,o)=>{const r=u(o).chroma;return r!==void 0&&(e[r]=e[r]||u(o).name),e},{});return e=>n[e]};function no(t){const n=t.map(o=>u(o).pc).filter(o=>o);return u.length===0?[]:eo(n,1).filter(o=>o.weight).sort((o,r)=>r.weight-o.weight).map(o=>o.name)}function eo(t,n){const e=t[0],o=u(e).chroma,r=to(t),i=jt(t,!1),a=[];return i.forEach((s,c)=>{F().filter(m=>m.chroma===s).forEach(m=>{const d=m.aliases[0],M=r(c);c!==o?a.push({weight:.5*n,name:`${M}${d}/${e}`}):a.push({weight:1*n,name:`${M}${d}`})})}),a}const oo=[["1P 2M 3M 5P 6M","major pentatonic","pentatonic"],["1P 3M 4P 5P 7M","ionian pentatonic"],["1P 3M 4P 5P 7m","mixolydian pentatonic","indian"],["1P 2M 4P 5P 6M","ritusen"],["1P 2M 4P 5P 7m","egyptian"],["1P 3M 4P 5d 7m","neopolitan major pentatonic"],["1P 3m 4P 5P 6m","vietnamese 1"],["1P 2m 3m 5P 6m","pelog"],["1P 2m 4P 5P 6m","kumoijoshi"],["1P 2M 3m 5P 6m","hirajoshi"],["1P 2m 4P 5d 7m","iwato"],["1P 2m 4P 5P 7m","in-sen"],["1P 3M 4A 5P 7M","lydian pentatonic","chinese"],["1P 3m 4P 6m 7m","malkos raga"],["1P 3m 4P 5d 7m","locrian pentatonic","minor seven flat five pentatonic"],["1P 3m 4P 5P 7m","minor pentatonic","vietnamese 2"],["1P 3m 4P 5P 6M","minor six pentatonic"],["1P 2M 3m 5P 6M","flat three pentatonic","kumoi"],["1P 2M 3M 5P 6m","flat six pentatonic"],["1P 2m 3M 5P 6M","scriabin"],["1P 3M 5d 6m 7m","whole tone pentatonic"],["1P 3M 4A 5A 7M","lydian #5P pentatonic"],["1P 3M 4A 5P 7m","lydian dominant pentatonic"],["1P 3m 4P 5P 7M","minor #7M pentatonic"],["1P 3m 4d 5d 7m","super locrian pentatonic"],["1P 2M 3m 4P 5P 7M","minor hexatonic"],["1P 2A 3M 5P 5A 7M","augmented"],["1P 2M 3m 3M 5P 6M","major blues"],["1P 2M 4P 5P 6M 7m","piongio"],["1P 2m 3M 4A 6M 7m","prometheus neopolitan"],["1P 2M 3M 4A 6M 7m","prometheus"],["1P 2m 3M 5d 6m 7m","mystery #1"],["1P 2m 3M 4P 5A 6M","six tone symmetric"],["1P 2M 3M 4A 5A 7m","whole tone","messiaen's mode #1"],["1P 2m 4P 4A 5P 7M","messiaen's mode #5"],["1P 3m 4P 5d 5P 7m","minor blues","blues"],["1P 2M 3M 4P 5d 6m 7m","locrian major","arabian"],["1P 2m 3M 4A 5P 6m 7M","double harmonic lydian"],["1P 2M 3m 4P 5P 6m 7M","harmonic minor"],["1P 2m 2A 3M 4A 6m 7m","altered","super locrian","diminished whole tone","pomeroy"],["1P 2M 3m 4P 5d 6m 7m","locrian #2","half-diminished","aeolian b5"],["1P 2M 3M 4P 5P 6m 7m","mixolydian b6","melodic minor fifth mode","hindu"],["1P 2M 3M 4A 5P 6M 7m","lydian dominant","lydian b7","overtone"],["1P 2M 3M 4A 5P 6M 7M","lydian"],["1P 2M 3M 4A 5A 6M 7M","lydian augmented"],["1P 2m 3m 4P 5P 6M 7m","dorian b2","phrygian #6","melodic minor second mode"],["1P 2M 3m 4P 5P 6M 7M","melodic minor"],["1P 2m 3m 4P 5d 6m 7m","locrian"],["1P 2m 3m 4d 5d 6m 7d","ultralocrian","superlocrian bb7","superlocrian diminished"],["1P 2m 3m 4P 5d 6M 7m","locrian 6","locrian natural 6","locrian sharp 6"],["1P 2A 3M 4P 5P 5A 7M","augmented heptatonic"],["1P 2M 3m 4A 5P 6M 7m","dorian #4","ukrainian dorian","romanian minor","altered dorian"],["1P 2M 3m 4A 5P 6M 7M","lydian diminished"],["1P 2m 3m 4P 5P 6m 7m","phrygian"],["1P 2M 3M 4A 5A 7m 7M","leading whole tone"],["1P 2M 3M 4A 5P 6m 7m","lydian minor"],["1P 2m 3M 4P 5P 6m 7m","phrygian dominant","spanish","phrygian major"],["1P 2m 3m 4P 5P 6m 7M","balinese"],["1P 2m 3m 4P 5P 6M 7M","neopolitan major"],["1P 2M 3m 4P 5P 6m 7m","aeolian","minor"],["1P 2M 3M 4P 5P 6m 7M","harmonic major"],["1P 2m 3M 4P 5P 6m 7M","double harmonic major","gypsy"],["1P 2M 3m 4P 5P 6M 7m","dorian"],["1P 2M 3m 4A 5P 6m 7M","hungarian minor"],["1P 2A 3M 4A 5P 6M 7m","hungarian major"],["1P 2m 3M 4P 5d 6M 7m","oriental"],["1P 2m 3m 3M 4A 5P 7m","flamenco"],["1P 2m 3m 4A 5P 6m 7M","todi raga"],["1P 2M 3M 4P 5P 6M 7m","mixolydian","dominant"],["1P 2m 3M 4P 5d 6m 7M","persian"],["1P 2M 3M 4P 5P 6M 7M","major","ionian"],["1P 2m 3M 5d 6m 7m 7M","enigmatic"],["1P 2M 3M 4P 5A 6M 7M","major augmented","major #5","ionian augmented","ionian #5"],["1P 2A 3M 4A 5P 6M 7M","lydian #9"],["1P 2m 2M 4P 4A 5P 6m 7M","messiaen's mode #4"],["1P 2m 3M 4P 4A 5P 6m 7M","purvi raga"],["1P 2m 3m 3M 4P 5P 6m 7m","spanish heptatonic"],["1P 2M 3M 4P 5P 6M 7m 7M","bebop"],["1P 2M 3m 3M 4P 5P 6M 7m","bebop minor"],["1P 2M 3M 4P 5P 5A 6M 7M","bebop major"],["1P 2m 3m 4P 5d 5P 6m 7m","bebop locrian"],["1P 2M 3m 4P 5P 6m 7m 7M","minor bebop"],["1P 2M 3m 4P 5d 6m 6M 7M","diminished","whole-half diminished"],["1P 2M 3M 4P 5d 5P 6M 7M","ichikosucho"],["1P 2M 3m 4P 5P 6m 6M 7M","minor six diminished"],["1P 2m 3m 3M 4A 5P 6M 7m","half-whole diminished","dominant diminished","messiaen's mode #2"],["1P 3m 3M 4P 5P 6M 7m 7M","kafi raga"],["1P 2M 3M 4P 4A 5A 6A 7M","messiaen's mode #6"],["1P 2M 3m 3M 4P 5d 5P 6M 7m","composite blues"],["1P 2M 3m 3M 4A 5P 6m 7m 7M","messiaen's mode #3"],["1P 2m 2M 3m 4P 4A 5P 6m 6M 7M","messiaen's mode #7"],["1P 2m 2M 3m 3M 4P 5d 5P 6m 6M 7m 7M","chromatic"]],ro=g(y({},V),{intervals:[],aliases:[]});let ct=[],_={};function dn(){return ct.map(t=>t.name)}function mt(t){return _[t]||ro}const io=v("ScaleDictionary.scaleType","ScaleType.get",mt);function U(){return ct.slice()}const ao=v("ScaleDictionary.entries","ScaleType.all",U);function so(){return Object.keys(_)}function co(){ct=[],_={}}function Mn(t,n,e=[]){const o=g(y({},h(t)),{name:n,intervals:t,aliases:e});return ct.push(o),_[o.name]=o,_[o.setNum]=o,_[o.chroma]=o,o.aliases.forEach(r=>mo(o,r)),o}function mo(t,n){_[n]=t}oo.forEach(([t,n,...e])=>Mn(t.split(" "),n,e));var fn={names:dn,get:mt,all:U,add:Mn,removeAll:co,keys:so,entries:ao,scaleType:io};const gt={empty:!0,name:"",symbol:"",root:"",rootDegree:0,type:"",tonic:null,setNum:NaN,quality:"Unknown",chroma:"",normalized:"",aliases:[],notes:[],intervals:[]},uo=/^(6|64|7|9|11|13)$/;function ut(t){const[n,e,o,r]=rt(t);return n===""?["",t]:n==="A"&&r==="ug"?["","aug"]:!r&&(o==="4"||o==="5")?[n+e,o]:uo.test(o)?[n+e,o+r]:[n+e+o,r]}function X(t){if(t==="")return gt;if(Array.isArray(t)&&t.length===2)return Z(t[1],t[0]);{const[n,e]=ut(t),o=Z(e,n);return o.empty?Z(t):o}}function Z(t,n,e){const o=Tt(t),r=u(n||""),i=u(e||"");if(o.empty||n&&r.empty||e&&i.empty)return gt;const a=R(r.pc,i.pc),s=o.intervals.indexOf(a)+1;if(!i.empty&&!s)return gt;const c=Array.from(o.intervals);for(let M=1;MP(r,M));t=o.aliases.indexOf(t)!==-1?t:o.aliases[0];const m=`${r.empty?"":r.pc}${t}${i.empty||s<=1?"":"/"+i.pc}`,d=`${n?r.pc+" ":""}${o.name}${s>1&&e?" over "+i.pc:""}`;return g(y({},o),{name:d,symbol:m,type:o.name,root:i.name,intervals:c,rootDegree:s,tonic:r.name,notes:l})}const lo=v("Chord.chord","Chord.get",X);function Mo(t,n){const[e,o]=ut(t);return e?P(e,n)+o:t}function fo(t){const n=X(t),e=st(n.chroma);return U().filter(o=>e(o.chroma)).map(o=>o.name)}function Po(t){const n=X(t),e=st(n.chroma);return F().filter(o=>e(o.chroma)).map(o=>n.tonic+o.aliases[0])}function po(t){const n=X(t),e=at(n.chroma);return F().filter(o=>e(o.chroma)).map(o=>n.tonic+o.aliases[0])}var ho={getChord:Z,get:X,detect:no,chordScales:fo,extended:Po,reduced:po,tokenize:ut,transpose:Mo,chord:lo};const yo=[[.125,"dl",["large","duplex longa","maxima","octuple","octuple whole"]],[.25,"l",["long","longa"]],[.5,"d",["double whole","double","breve"]],[1,"w",["whole","semibreve"]],[2,"h",["half","minim"]],[4,"q",["quarter","crotchet"]],[8,"e",["eighth","quaver"]],[16,"s",["sixteenth","semiquaver"]],[32,"t",["thirty-second","demisemiquaver"]],[64,"sf",["sixty-fourth","hemidemisemiquaver"]],[128,"h",["hundred twenty-eighth"]],[256,"th",["two hundred fifty-sixth"]]],lt=[];yo.forEach(([t,n,e])=>jo(t,n,e));const go={empty:!0,name:"",value:0,fraction:[0,0],shorthand:"",dots:"",names:[]};function bo(){return lt.reduce((t,n)=>(n.names.forEach(e=>t.push(e)),t),[])}function Ao(){return lt.map(t=>t.shorthand)}const vo=/^([^.]+)(\.*)$/;function St(t){const[n,e,o]=vo.exec(t)||[],r=lt.find(s=>s.shorthand===e||s.names.includes(e));if(!r)return go;const i=To(r.fraction,o.length),a=i[0]/i[1];return g(y({},r),{name:t,dots:o,value:a,fraction:i})}const No=t=>St(t).value,$o=t=>St(t).fraction;var Io={names:bo,shorthands:Ao,get:St,value:No,fraction:$o};function jo(t,n,e){lt.push({empty:!1,dots:"",name:"",value:1/t,fraction:t<1?[1/t,1]:[1,t],shorthand:n,names:e})}function To(t,n){const e=Math.pow(2,n);let o=t[0]*e,r=t[1]*e;const i=o;for(let a=0;af(t).name,Vo=t=>f(t).semitones,Co=t=>f(t).q,wo=t=>f(t).num;function pn(t){const n=f(t);return n.empty?"":n.simple+n.q}function xo(t){const n=f(t);if(n.empty)return"";const e=(7-n.step)%7,o=n.type==="perfectable"?-n.alt:-(n.alt+1);return f({step:e,alt:o,oct:n.oct,dir:n.dir}).name}const Eo=[1,2,2,3,3,4,5,5,6,6,7,7],Do="P m M m M P d P m M m M".split(" ");function ko(t){const n=t<0?-1:1,e=Math.abs(t),o=e%12,r=Math.floor(e/12);return n*(Eo[o]+7*r)+Do[o]}const Ro=R,hn=gn((t,n)=>[t[0]+n[0],t[1]+n[1]]),Oo=t=>n=>hn(t,n),Fo=gn((t,n)=>[t[0]-n[0],t[1]-n[1]]);function yn(t,n){const e=Pn(t);if(e.empty)return"";const[o,r,i]=e.coord;return H([o+n,r,i]).name}var bt={names:So,get:Pn,name:_o,num:wo,semitones:Vo,quality:Co,fromSemitones:ko,distance:Ro,invert:xo,simplify:pn,add:hn,addTo:Oo,substract:Fo,transposeFifths:yn};function gn(t){return(n,e)=>{const o=f(n).coord,r=f(e).coord;if(o&&r){const i=t(o,r);return H(i).name}}}function bn(t){return+t>=0&&+t<=127}function An(t){if(bn(t))return+t;const n=u(t);return n.empty?null:n.midi}function zo(t,n=440){return Math.pow(2,(t-69)/12)*n}const qo=Math.log(2),Go=Math.log(440);function _t(t){const n=12*(Math.log(t)-Go)/qo+69;return Math.round(n*100)/100}const Bo="C C# D D# E F F# G G# A A# B".split(" "),Ho="C Db D Eb E F Gb G Ab A Bb B".split(" ");function T(t,n={}){if(isNaN(t)||t===-1/0||t===1/0)return"";t=Math.round(t);const o=(n.sharps===!0?Bo:Ho)[t%12];if(n.pitchClass)return o;const r=Math.floor(t/12)-1;return o+r}var Lo={isMidi:bn,toMidi:An,midiToFreq:zo,midiToNoteName:T,freqToMidi:_t};const Uo=["C","D","E","F","G","A","B"],vn=t=>t.name,Nn=t=>t.map(u).filter(n=>!n.empty);function Xo(t){return t===void 0?Uo.slice():Array.isArray(t)?Nn(t).map(vn):[]}const A=u,Ko=t=>A(t).name,Qo=t=>A(t).pc,Yo=t=>A(t).acc,Zo=t=>A(t).oct,Jo=t=>A(t).midi,Wo=t=>A(t).freq,tr=t=>A(t).chroma;function $n(t){return T(t)}function nr(t){return T(_t(t))}function er(t){return T(_t(t),{sharps:!0})}function or(t){return T(t,{sharps:!0})}const Vt=P,rr=P,In=t=>n=>Vt(n,t),ir=In,jn=t=>n=>Vt(t,n),ar=jn;function tt(t,n){const e=A(t);if(e.empty)return"";const[o,r]=e.coord;return z(r===void 0?[o+n]:[o+n,r]).name}const sr=tt,Ct=(t,n)=>t.height-n.height,cr=(t,n)=>n.height-t.height;function Tn(t,n){return n=n||Ct,Nn(t).sort(n).map(vn)}function Sn(t){return Tn(t,Ct).filter((n,e,o)=>e===0||n!==o[e-1])}const mr=t=>{const n=A(t);return n.empty?"":T(n.midi||n.chroma,{sharps:n.alt>0,pitchClass:n.midi===null})};function _n(t,n){const e=A(t);if(e.empty)return"";const o=A(n||T(e.midi||e.chroma,{sharps:e.alt<0,pitchClass:!0}));if(o.empty||o.chroma!==e.chroma)return"";if(e.oct===void 0)return o.pc;const r=e.chroma-e.alt,i=o.chroma-o.alt,a=r>11||i<0?-1:r<0||i>11?1:0,s=e.oct+a;return o.pc+s}var E={names:Xo,get:A,name:Ko,pitchClass:Qo,accidentals:Yo,octave:Zo,midi:Jo,ascending:Ct,descending:cr,sortedNames:Tn,sortedUniqNames:Sn,fromMidi:$n,fromMidiSharps:or,freq:Wo,fromFreq:nr,fromFreqSharps:er,chroma:tr,transpose:Vt,tr:rr,transposeBy:In,trBy:ir,transposeFrom:jn,trFrom:ar,transposeFifths:tt,trFifths:sr,simplify:mr,enharmonic:_n};const Vn={empty:!0,name:"",chordType:""},Ht={};function I(t){return typeof t=="string"?Ht[t]||(Ht[t]=pr(t)):typeof t=="number"?I(dt[t]||""):G(t)?dr(t):q(t)?I(t.name):Vn}const ur=v("RomanNumeral.romanNumeral","RomanNumeral.get",I);function lr(t=!0){return(t?dt:Pr).slice()}function dr(t){return I(k(t.alt)+dt[t.step])}const Mr=/^(#{1,}|b{1,}|x{1,}|)(IV|I{1,3}|VI{0,2}|iv|i{1,3}|vi{0,2})([^IViv]*)$/;function fr(t){return Mr.exec(t)||["","","",""]}const Cn="I II III IV V VI VII",dt=Cn.split(" "),Pr=Cn.toLowerCase().split(" ");function pr(t){const[n,e,o,r]=fr(t);if(!o)return Vn;const i=o.toUpperCase(),a=dt.indexOf(i),s=B(e),c=1;return{empty:!1,name:n,roman:o,interval:f({step:a,alt:s,dir:c}).name,acc:e,chordType:r,alt:s,step:a,major:o===i,oct:0,dir:c}}var hr={names:lr,get:I,romanNumeral:ur};const N=Object.freeze([]),wn={type:"major",tonic:"",alteration:0,keySignature:""},J={tonic:"",grades:N,intervals:N,scale:N,chords:N,chordsHarmonicFunction:N,chordScales:N},yr=g(y(y({},wn),J),{type:"major",minorRelative:"",scale:N,secondaryDominants:N,secondaryDominantsMinorRelative:N,substituteDominants:N,substituteDominantsMinorRelative:N}),gr=g(y({},wn),{type:"minor",relativeMajor:"",natural:J,harmonic:J,melodic:J}),Lt=(t,n,e="")=>n.map((o,r)=>`${t[r]}${e}${o}`);function Mt(t,n,e,o){return r=>{const i=t.map(s=>I(s).interval||""),a=i.map(s=>P(r,s));return{tonic:r,grades:t,intervals:i,scale:a,chords:Lt(a,n),chordsHarmonicFunction:e.slice(),chordScales:Lt(a,o," ")}}}const xn=(t,n)=>{const e=u(t),o=u(n);return e.empty||o.empty?0:o.coord[0]-e.coord[0]},br=Mt("I II III IV V VI VII".split(" "),"maj7 m7 m7 maj7 7 m7 m7b5".split(" "),"T SD T SD D T D".split(" "),"major,dorian,phrygian,lydian,mixolydian,minor,locrian".split(",")),Ar=Mt("I II bIII IV V bVI bVII".split(" "),"m7 m7b5 maj7 m7 m7 maj7 7".split(" "),"T SD T SD D SD SD".split(" "),"minor,locrian,major,dorian,phrygian,lydian,mixolydian".split(",")),vr=Mt("I II bIII IV V bVI VII".split(" "),"mMaj7 m7b5 +maj7 m7 7 maj7 o7".split(" "),"T SD T SD D SD D".split(" "),"harmonic minor,locrian 6,major augmented,lydian diminished,phrygian dominant,lydian #9,ultralocrian".split(",")),Nr=Mt("I II bIII IV V VI VII".split(" "),"m6 m7 +maj7 7 7 m7b5 m7b5".split(" "),"T SD T SD D ".split(" "),"melodic minor,dorian b2,lydian augmented,lydian dominant,mixolydian b6,locrian #2,altered".split(","));function $r(t){const n=u(t).pc;if(!n)return yr;const e=br(n),o=xn("C",n),r=i=>{const a=I(i);return a.empty?"":P(t,a.interval)+a.chordType};return g(y({},e),{type:"major",minorRelative:P(n,"-3m"),alteration:o,keySignature:k(o),secondaryDominants:"- VI7 VII7 I7 II7 III7 -".split(" ").map(r),secondaryDominantsMinorRelative:"- IIIm7b5 IV#m7 Vm7 VIm7 VIIm7b5 -".split(" ").map(r),substituteDominants:"- bIII7 IV7 bV7 bVI7 bVII7 -".split(" ").map(r),substituteDominantsMinorRelative:"- IIIm7 Im7 IIbm7 VIm7 IVm7 -".split(" ").map(r)})}function Ir(t){const n=u(t).pc;if(!n)return gr;const e=xn("C",n)-3;return{type:"minor",tonic:n,relativeMajor:P(n,"3m"),alteration:e,keySignature:k(e),natural:Ar(n),harmonic:vr(n),melodic:Nr(n)}}function jr(t){return typeof t=="number"?tt("C",t):typeof t=="string"&&/^b+|#+$/.test(t)?tt("C",B(t)):null}var Tr={majorKey:$r,majorTonicFromKeySignature:jr,minorKey:Ir};const wt=[[0,2773,0,"ionian","","Maj7","major"],[1,2902,2,"dorian","m","m7"],[2,3418,4,"phrygian","m","m7"],[3,2741,-1,"lydian","","Maj7"],[4,2774,1,"mixolydian","","7"],[5,2906,3,"aeolian","m","m7","minor"],[6,3434,5,"locrian","dim","m7b5"]],Ut=g(y({},V),{name:"",alt:0,modeNum:NaN,triad:"",seventh:"",aliases:[]}),xt=wt.map(Cr),At={};xt.forEach(t=>{At[t.name]=t,t.aliases.forEach(n=>{At[n]=t})});function C(t){return typeof t=="string"?At[t.toLowerCase()]||Ut:t&&t.name?C(t.name):Ut}const Sr=v("Mode.mode","Mode.get",C);function En(){return xt.slice()}const _r=v("Mode.mode","Mode.all",En);function Vr(){return xt.map(t=>t.name)}function Cr(t){const[n,e,o,r,i,a,s]=t,c=s?[s]:[],l=Number(e).toString(2),m=mt(r).intervals;return{empty:!1,intervals:m,modeNum:n,chroma:l,normalized:l,name:r,setNum:e,alt:o,triad:i,seventh:a,aliases:c}}function wr(t,n){return C(t).intervals.map(e=>P(n,e))}function Dn(t){return(n,e)=>{const o=C(n);if(o.empty)return[];const r=L(o.modeNum,t),i=o.intervals.map(a=>P(e,a));return r.map((a,s)=>i[s]+a)}}const xr=Dn(wt.map(t=>t[4])),Er=Dn(wt.map(t=>t[5]));function kn(t,n){const e=C(n),o=C(t);return e.empty||o.empty?"":pn(yn("1P",o.alt-e.alt))}function Dr(t,n,e){return P(e,kn(t,n))}var kr={get:C,names:Vr,all:En,distance:kn,relativeTonic:Dr,notes:wr,triads:xr,seventhChords:Er,entries:_r,mode:Sr};function Rr(t,n){return n.map(I).map(o=>P(t,f(o))+o.chordType)}function Or(t,n){return n.map(e=>{const[o,r]=ut(e),i=R(t,o);return I(f(i)).name+r})}var Fr={fromRomanNumerals:Rr,toRomanNumerals:Or};function Rn(t){const n=$t(t.map(An));return!t.length||n.length!==t.length?[]:n.reduce((e,o)=>{const r=e[e.length-1];return e.concat(it(r,o).slice(1))},[n[0]])}function zr(t,n){return Rn(t).map(e=>T(e,n))}var qr={numeric:Rn,chromatic:zr};const Gr={empty:!0,name:"",type:"",tonic:null,setNum:NaN,chroma:"",normalized:"",aliases:[],notes:[],intervals:[]};function On(t){if(typeof t!="string")return["",""];const n=t.indexOf(" "),e=u(t.substring(0,n));if(e.empty){const r=u(t);return r.empty?["",t]:[r.name,""]}const o=t.substring(e.name.length+1);return[e.name,o.length?o:""]}const Br=dn;function j(t){const n=Array.isArray(t)?t:On(t),e=u(n[0]).name,o=mt(n[1]);if(o.empty)return Gr;const r=o.name,i=e?o.intervals.map(s=>P(e,s)):[],a=e?e+" "+r:r;return g(y({},o),{name:a,type:r,tonic:e,notes:i})}const Hr=v("Scale.scale","Scale.get",j);function Lr(t){const n=j(t),e=at(n.chroma);return F().filter(o=>e(o.chroma)).map(o=>o.aliases[0])}function Ur(t){const n=j(t),e=st(n.chroma);return U().filter(o=>e(o.chroma)).map(o=>o.name)}function Xr(t){const n=at(j(t).chroma);return U().filter(e=>n(e.chroma)).map(e=>e.name)}function Fn(t){const n=t.map(r=>u(r).pc).filter(r=>r),e=n[0],o=Sn(n);return L(o.indexOf(e),o)}function Kr(t){const n=j(t);if(n.empty)return[];const e=n.tonic?n.notes:n.intervals;return jt(n.chroma).map((o,r)=>{const i=j(o).name;return i?[e[r],i]:["",""]}).filter(o=>o[0])}function Qr(t){const n=Array.isArray(t)?Fn(t):j(t).notes,e=n.map(o=>u(o).chroma);return o=>{const r=u(typeof o=="number"?$n(o):o),i=r.height;if(i===void 0)return;const a=i%12,s=e.indexOf(a);if(s!==-1)return _n(r.name,n[s])}}function Yr(t){const n=Qr(t);return(e,o)=>{const r=u(e).height,i=u(o).height;return r===void 0||i===void 0?[]:it(r,i).map(n).filter(a=>a)}}var nt={get:j,names:Br,extended:Ur,modeNames:Kr,reduced:Xr,scaleChords:Lr,scaleNotes:Fn,tokenize:On,rangeOf:Yr,scale:Hr};const Zr={empty:!0,name:"",upper:void 0,lower:void 0,type:void 0,additive:[]},Jr=["4/4","3/4","2/4","2/2","12/8","9/8","6/8","3/8"];function Wr(){return Jr.slice()}const ti=/^(\d?\d(?:\+\d)*)\/(\d)$/,Xt=new Map;function ni(t){const n=Xt.get(t);if(n)return n;const e=oi(Et(t));return Xt.set(t,e),e}function Et(t){if(typeof t=="string"){const[i,a,s]=ti.exec(t)||[];return Et([a,s])}const[n,e]=t,o=+e;if(typeof n=="number")return[n,o];const r=n.split("+").map(i=>+i);return r.length===1?[r[0],o]:[r,o]}var ei={names:Wr,parse:Et,get:ni};function oi([t,n]){const e=Array.isArray(t)?t.reduce((s,c)=>s+c,0):t,o=n;if(e===0||o===0)return Zr;const r=Array.isArray(t)?`${t.join("+")}/${n}`:`${t}/${n}`,i=Array.isArray(t)?t:[],a=o===4||o===2?"simple":o===8&&e%3===0?"compound":"irregular";return{empty:!1,name:r,type:a,upper:e,lower:o,additive:i}}const ri=tn,ii=mn,ai=ln,si=fn;var ci=Object.freeze(Object.defineProperty({__proto__:null,Array:$e,Core:tn,ChordDictionary:ai,PcSet:ii,ScaleDictionary:si,Tonal:ri,AbcNotation:pe,Chord:ho,ChordType:ln,Collection:Se,DurationValue:Io,Interval:bt,Key:Tr,Midi:Lo,Mode:kr,Note:E,Pcset:mn,Progression:Fr,Range:qr,RomanNumeral:hr,Scale:nt,ScaleType:fn,TimeSignature:ei,accToAlt:B,altToAcc:k,coordToInterval:H,coordToNote:z,decode:ot,deprecate:v,distance:R,encode:et,fillStr:x,interval:f,isNamed:q,isPitch:G,note:u,stepToLetter:vt,tokenizeInterval:Nt,tokenizeNote:rt,transpose:P},Symbol.toStringTag,{value:"Module"}));function zn(t,n,e){let[o,r]=nt.tokenize(t),{notes:i}=nt.get(`${o} ${r}`);if(i=i.map(b=>E.get(b).pc),n=Number(n),isNaN(n))throw new Error(`scale offset "${n}" not a number`);const{pc:a,oct:s=3}=E.get(e),c=i.indexOf(a);if(c===-1)throw new Error(`note "${e}" is not in scale "${t}"`);let l=c,m=s,d=a;const M=Math.sign(n);for(;Math.abs(l-c)0&&d[0]==="C"&&(m+=M)}return d+m}w.prototype._transpose=function(t){return this._withHap(n=>{const e=isNaN(Number(t))?String(t):bt.fromSemitones(t);if(typeof n.value=="number"){const o=typeof e=="string"?bt.semitones(e)||0:e;return n.withValue(()=>n.value+o)}return n.withValue(()=>E.simplify(E.transpose(n.value,e)))})};w.prototype._scaleTranspose=function(t){return this._withHap(n=>{if(!n.context.scale)throw new Error("can only use scaleTranspose after .scale");if(typeof n.value!="string")throw new Error("can only use scaleTranspose with notes");return n.withValue(()=>zn(n.context.scale,Number(t),n.value))})};w.prototype._scale=function(t){return this._withHap(n=>{let e=n.value;const o=Number(e);if(!isNaN(o)){let[r,i]=nt.tokenize(t);const{pc:a,oct:s=3}=E.get(r);e=zn(a+" "+i,o,a+s)}return n.withValue(()=>e).setContext(g(y({},n.context),{scale:t}))})};w.prototype.define("transpose",(t,n)=>n.transpose(t),{composable:!0,patternified:!0});w.prototype.define("scale",(t,n)=>n.scale(t),{composable:!0,patternified:!0});w.prototype.define("scaleTranspose",(t,n)=>n.scaleTranspose(t),{composable:!0,patternified:!0});var qn={},Dt={},K={};K.__esModule=!0;K.getBestVoicing=void 0;function mi(t){var n=t.chord,e=t.range,o=t.finder,r=t.picker,i=t.lastVoicing,a=o(n,e);return a.length?r(a,i):[]}K.getBestVoicing=mi;var ft={},Gn=Qn(ci),Q={};Q.__esModule=!0;Q.tokenizeChord=void 0;function ui(t){var n=(t||"").match(/^([A-G][b#]*)([^\/]*)[\/]?([A-G][b#]*)?$/);return n?n.slice(1):[]}Q.tokenizeChord=ui;ft.__esModule=!0;ft.voicingsInRange=void 0;var $=Gn,li=Dt,di=Q;function Mi(t,n,e){n===void 0&&(n=li.lefthand),e===void 0&&(e=["D3","A4"]);var o=(0,di.tokenizeChord)(t),r=o[0],i=o[1];if(!n[i])return[];var a=n[i].map(function(c){return c.split(" ")}),s=$.Range.chromatic(e);return a.reduce(function(c,l){var m=l.map(function(p){return $.Interval.substract(p,l[0])}),d=$.Note.transpose(r,l[0]),M=s.filter(function(p){return $.Note.chroma(p)===$.Note.chroma(d)}).filter(function(p){return $.Note.midi($.Note.transpose(p,m[m.length-1]))<=$.Note.midi(e[1])}).map(function(p){return $.Note.enharmonic(p,d)}),b=M.map(function(p){return m.map(function(pt){return $.Note.transpose(p,pt)})});return c.concat(b)},[])}ft.voicingsInRange=Mi;(function(t){var n=Y&&Y.__assign||function(){return n=Object.assign||function(s){for(var c,l=1,m=arguments.length;lPi({chord:t,dictionary:hi,range:e,picker:pi,lastVoicing:n}),D=w;D.prototype.fmapNested=function(t){return new D(n=>this.query(n).map(e=>Zn(t(e)).query(n).map(o=>new Jn(e.whole,e.part,o.value,o.context))).flat())};D.prototype.voicings=function(t){let n;return t!=null&&t.length||(t=["F3","A4"]),this.fmapNested(e=>(n=yi(e.value,n,t),Wn(...n)._withContext(()=>({locations:e.context.locations||[]}))))};D.prototype._rootNotes=function(t=2){return this.fmap(n=>{const[e,o]=n.match(/^([a-gA-G][b#]?).*$/);return o+t})};D.prototype.define("voicings",(t,n)=>n.voicings(t),{composable:!0});D.prototype.define("rootNotes",(t,n)=>n.rootNotes(t),{composable:!0,patternified:!0}); diff --git a/tutorial/assets/index.866dc78c.js b/tutorial/assets/index.866dc78c.js deleted file mode 100644 index 69a2d7297..000000000 --- a/tutorial/assets/index.866dc78c.js +++ /dev/null @@ -1 +0,0 @@ -import{W as a,D as b}from"./index.e8a05ade.js";export{a as WebMidi,b as enableWebMidi}; diff --git a/tutorial/assets/index.e8a05ade.js b/tutorial/assets/index.91bb3680.js similarity index 71% rename from tutorial/assets/index.e8a05ade.js rename to tutorial/assets/index.91bb3680.js index 5e31fe775..25d705c45 100644 --- a/tutorial/assets/index.e8a05ade.js +++ b/tutorial/assets/index.91bb3680.js @@ -1,4 +1,4 @@ -var _r=Object.defineProperty,Or=Object.defineProperties;var Cr=Object.getOwnPropertyDescriptors;var Sn=Object.getOwnPropertySymbols;var hr=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable;var ir=(o,e,s)=>e in o?_r(o,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[e]=s,_t=(o,e)=>{for(var s in e||(e={}))hr.call(e,s)&&ir(o,s,e[s]);if(Sn)for(var s of Sn(e))dr.call(e,s)&&ir(o,s,e[s]);return o},wt=(o,e)=>Or(o,Cr(e));var ln=(o,e)=>{var s={};for(var a in o)hr.call(o,a)&&e.indexOf(a)<0&&(s[a]=o[a]);if(o!=null&&Sn)for(var a of Sn(o))e.indexOf(a)<0&&dr.call(o,a)&&(s[a]=o[a]);return s};var fr=(o,e,s)=>(ir(o,typeof e!="symbol"?e+"":e,s),s);const p$3=function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))a(c);new MutationObserver(c=>{for(const d of c)if(d.type==="childList")for(const _ of d.addedNodes)_.tagName==="LINK"&&_.rel==="modulepreload"&&a(_)}).observe(document,{childList:!0,subtree:!0});function s(c){const d={};return c.integrity&&(d.integrity=c.integrity),c.referrerpolicy&&(d.referrerPolicy=c.referrerpolicy),c.crossorigin==="use-credentials"?d.credentials="include":c.crossorigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function a(c){if(c.ep)return;c.ep=!0;const d=s(c);fetch(c.href,d)}};p$3();var commonjsGlobal=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function getDefaultExportFromCjs(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}function getAugmentedNamespace(o){if(o.__esModule)return o;var e=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(o).forEach(function(s){var a=Object.getOwnPropertyDescriptor(o,s);Object.defineProperty(e,s,a.get?a:{enumerable:!0,get:function(){return o[s]}})}),e}var react={exports:{}},react_production_min={};/* +var Or=Object.defineProperty,Cr=Object.defineProperties;var _r=Object.getOwnPropertyDescriptors;var Sn=Object.getOwnPropertySymbols;var hr=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable;var ir=(o,e,s)=>e in o?Or(o,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[e]=s,_t=(o,e)=>{for(var s in e||(e={}))hr.call(e,s)&&ir(o,s,e[s]);if(Sn)for(var s of Sn(e))dr.call(e,s)&&ir(o,s,e[s]);return o},wt=(o,e)=>Cr(o,_r(e));var ln=(o,e)=>{var s={};for(var a in o)hr.call(o,a)&&e.indexOf(a)<0&&(s[a]=o[a]);if(o!=null&&Sn)for(var a of Sn(o))e.indexOf(a)<0&&dr.call(o,a)&&(s[a]=o[a]);return s};var fr=(o,e,s)=>(ir(o,typeof e!="symbol"?e+"":e,s),s);const p$3=function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))a(c);new MutationObserver(c=>{for(const d of c)if(d.type==="childList")for(const _ of d.addedNodes)_.tagName==="LINK"&&_.rel==="modulepreload"&&a(_)}).observe(document,{childList:!0,subtree:!0});function s(c){const d={};return c.integrity&&(d.integrity=c.integrity),c.referrerpolicy&&(d.referrerPolicy=c.referrerpolicy),c.crossorigin==="use-credentials"?d.credentials="include":c.crossorigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function a(c){if(c.ep)return;c.ep=!0;const d=s(c);fetch(c.href,d)}};p$3();var commonjsGlobal=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function getDefaultExportFromCjs(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}function getAugmentedNamespace(o){if(o.__esModule)return o;var e=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(o).forEach(function(s){var a=Object.getOwnPropertyDescriptor(o,s);Object.defineProperty(e,s,a.get?a:{enumerable:!0,get:function(){return o[s]}})}),e}var react={exports:{}},react_production_min={};/* object-assign (c) Sindre Sorhus @license MIT @@ -16,7 +16,7 @@ object-assign * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(o){var e,s,a,c;if(typeof performance=="object"&&typeof performance.now=="function"){var d=performance;o.unstable_now=function(){return d.now()}}else{var _=Date,b=_.now();o.unstable_now=function(){return _.now()-b}}if(typeof window=="undefined"||typeof MessageChannel!="function"){var k=null,$=null,j=function(){if(k!==null)try{var vt=o.unstable_now();k(!0,vt),k=null}catch(bt){throw setTimeout(j,0),bt}};e=function(vt){k!==null?setTimeout(e,0,vt):(k=vt,setTimeout(j,0))},s=function(vt,bt){$=setTimeout(vt,bt)},a=function(){clearTimeout($)},o.unstable_shouldYield=function(){return!1},c=o.unstable_forceFrameRate=function(){}}else{var _e=window.setTimeout,et=window.clearTimeout;if(typeof console!="undefined"){var tt=window.cancelAnimationFrame;typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof tt!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var nt=!1,it=null,rt=-1,st=5,at=0;o.unstable_shouldYield=function(){return o.unstable_now()>=at},c=function(){},o.unstable_forceFrameRate=function(vt){0>vt||125>>1,Mt=vt[Rt];if(Mt!==void 0&&0pt(Ft,xt))jt!==void 0&&0>pt(jt,Ft)?(vt[Rt]=jt,vt[qt]=xt,Rt=qt):(vt[Rt]=Ft,vt[It]=xt,Rt=It);else if(jt!==void 0&&0>pt(jt,xt))vt[Rt]=jt,vt[qt]=xt,Rt=qt;else break e}}return bt}return null}function pt(vt,bt){var xt=vt.sortIndex-bt.sortIndex;return xt!==0?xt:vt.id-bt.id}var dt=[],gt=[],Et=1,ft=null,yt=3,mt=!1,St=!1,At=!1;function Ot(vt){for(var bt=ut(gt);bt!==null;){if(bt.callback===null)lt(gt);else if(bt.startTime<=vt)lt(gt),bt.sortIndex=bt.expirationTime,ct(dt,bt);else break;bt=ut(gt)}}function Ct(vt){if(At=!1,Ot(vt),!St)if(ut(dt)!==null)St=!0,e(Dt);else{var bt=ut(gt);bt!==null&&s(Ct,bt.startTime-vt)}}function Dt(vt,bt){St=!1,At&&(At=!1,a()),mt=!0;var xt=yt;try{for(Ot(bt),ft=ut(dt);ft!==null&&(!(ft.expirationTime>bt)||vt&&!o.unstable_shouldYield());){var Rt=ft.callback;if(typeof Rt=="function"){ft.callback=null,yt=ft.priorityLevel;var Mt=Rt(ft.expirationTime<=bt);bt=o.unstable_now(),typeof Mt=="function"?ft.callback=Mt:ft===ut(dt)&<(dt),Ot(bt)}else lt(dt);ft=ut(dt)}if(ft!==null)var It=!0;else{var Ft=ut(gt);Ft!==null&&s(Ct,Ft.startTime-bt),It=!1}return It}finally{ft=null,yt=xt,mt=!1}}var Tt=c;o.unstable_IdlePriority=5,o.unstable_ImmediatePriority=1,o.unstable_LowPriority=4,o.unstable_NormalPriority=3,o.unstable_Profiling=null,o.unstable_UserBlockingPriority=2,o.unstable_cancelCallback=function(vt){vt.callback=null},o.unstable_continueExecution=function(){St||mt||(St=!0,e(Dt))},o.unstable_getCurrentPriorityLevel=function(){return yt},o.unstable_getFirstCallbackNode=function(){return ut(dt)},o.unstable_next=function(vt){switch(yt){case 1:case 2:case 3:var bt=3;break;default:bt=yt}var xt=yt;yt=bt;try{return vt()}finally{yt=xt}},o.unstable_pauseExecution=function(){},o.unstable_requestPaint=Tt,o.unstable_runWithPriority=function(vt,bt){switch(vt){case 1:case 2:case 3:case 4:case 5:break;default:vt=3}var xt=yt;yt=vt;try{return bt()}finally{yt=xt}},o.unstable_scheduleCallback=function(vt,bt,xt){var Rt=o.unstable_now();switch(typeof xt=="object"&&xt!==null?(xt=xt.delay,xt=typeof xt=="number"&&0Rt?(vt.sortIndex=xt,ct(gt,vt),ut(dt)===null&&vt===ut(gt)&&(At?a():At=!0,s(Ct,xt-Rt))):(vt.sortIndex=Mt,ct(dt,vt),St||mt||(St=!0,e(Dt))),vt},o.unstable_wrapCallback=function(vt){var bt=yt;return function(){var xt=yt;yt=bt;try{return vt.apply(this,arguments)}finally{yt=xt}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;/** @license React v17.0.2 + */(function(o){var e,s,a,c;if(typeof performance=="object"&&typeof performance.now=="function"){var d=performance;o.unstable_now=function(){return d.now()}}else{var _=Date,b=_.now();o.unstable_now=function(){return _.now()-b}}if(typeof window=="undefined"||typeof MessageChannel!="function"){var k=null,$=null,j=function(){if(k!==null)try{var vt=o.unstable_now();k(!0,vt),k=null}catch(bt){throw setTimeout(j,0),bt}};e=function(vt){k!==null?setTimeout(e,0,vt):(k=vt,setTimeout(j,0))},s=function(vt,bt){$=setTimeout(vt,bt)},a=function(){clearTimeout($)},o.unstable_shouldYield=function(){return!1},c=o.unstable_forceFrameRate=function(){}}else{var _e=window.setTimeout,et=window.clearTimeout;if(typeof console!="undefined"){var tt=window.cancelAnimationFrame;typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof tt!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var nt=!1,st=null,rt=-1,it=5,at=0;o.unstable_shouldYield=function(){return o.unstable_now()>=at},c=function(){},o.unstable_forceFrameRate=function(vt){0>vt||125>>1,Mt=vt[Rt];if(Mt!==void 0&&0pt(Ft,xt))Qt!==void 0&&0>pt(Qt,Ft)?(vt[Rt]=Qt,vt[qt]=xt,Rt=qt):(vt[Rt]=Ft,vt[It]=xt,Rt=It);else if(Qt!==void 0&&0>pt(Qt,xt))vt[Rt]=Qt,vt[qt]=xt,Rt=qt;else break e}}return bt}return null}function pt(vt,bt){var xt=vt.sortIndex-bt.sortIndex;return xt!==0?xt:vt.id-bt.id}var dt=[],gt=[],yt=1,ft=null,Et=3,mt=!1,St=!1,At=!1;function Ot(vt){for(var bt=ut(gt);bt!==null;){if(bt.callback===null)lt(gt);else if(bt.startTime<=vt)lt(gt),bt.sortIndex=bt.expirationTime,ct(dt,bt);else break;bt=ut(gt)}}function Ct(vt){if(At=!1,Ot(vt),!St)if(ut(dt)!==null)St=!0,e(Dt);else{var bt=ut(gt);bt!==null&&s(Ct,bt.startTime-vt)}}function Dt(vt,bt){St=!1,At&&(At=!1,a()),mt=!0;var xt=Et;try{for(Ot(bt),ft=ut(dt);ft!==null&&(!(ft.expirationTime>bt)||vt&&!o.unstable_shouldYield());){var Rt=ft.callback;if(typeof Rt=="function"){ft.callback=null,Et=ft.priorityLevel;var Mt=Rt(ft.expirationTime<=bt);bt=o.unstable_now(),typeof Mt=="function"?ft.callback=Mt:ft===ut(dt)&<(dt),Ot(bt)}else lt(dt);ft=ut(dt)}if(ft!==null)var It=!0;else{var Ft=ut(gt);Ft!==null&&s(Ct,Ft.startTime-bt),It=!1}return It}finally{ft=null,Et=xt,mt=!1}}var Tt=c;o.unstable_IdlePriority=5,o.unstable_ImmediatePriority=1,o.unstable_LowPriority=4,o.unstable_NormalPriority=3,o.unstable_Profiling=null,o.unstable_UserBlockingPriority=2,o.unstable_cancelCallback=function(vt){vt.callback=null},o.unstable_continueExecution=function(){St||mt||(St=!0,e(Dt))},o.unstable_getCurrentPriorityLevel=function(){return Et},o.unstable_getFirstCallbackNode=function(){return ut(dt)},o.unstable_next=function(vt){switch(Et){case 1:case 2:case 3:var bt=3;break;default:bt=Et}var xt=Et;Et=bt;try{return vt()}finally{Et=xt}},o.unstable_pauseExecution=function(){},o.unstable_requestPaint=Tt,o.unstable_runWithPriority=function(vt,bt){switch(vt){case 1:case 2:case 3:case 4:case 5:break;default:vt=3}var xt=Et;Et=vt;try{return bt()}finally{Et=xt}},o.unstable_scheduleCallback=function(vt,bt,xt){var Rt=o.unstable_now();switch(typeof xt=="object"&&xt!==null?(xt=xt.delay,xt=typeof xt=="number"&&0Rt?(vt.sortIndex=xt,ct(gt,vt),ut(dt)===null&&vt===ut(gt)&&(At?a():At=!0,s(Ct,xt-Rt))):(vt.sortIndex=Mt,ct(dt,vt),St||mt||(St=!0,e(Dt))),vt},o.unstable_wrapCallback=function(vt){var bt=Et;return function(){var xt=Et;Et=bt;try{return vt.apply(this,arguments)}finally{Et=xt}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;/** @license React v17.0.2 * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -27,24 +27,24 @@ object-assign `+Ma+o}var Oa=!1;function Pa(o,e){if(!o||Oa)return"";Oa=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(e)if(e=function(){throw Error()},Object.defineProperty(e.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(e,[])}catch(k){var a=k}Reflect.construct(o,[],e)}else{try{e.call()}catch(k){a=k}o.call(e.prototype)}else{try{throw Error()}catch(k){a=k}o()}}catch(k){if(k&&a&&typeof k.stack=="string"){for(var c=k.stack.split(` `),d=a.stack.split(` `),_=c.length-1,b=d.length-1;1<=_&&0<=b&&c[_]!==d[b];)b--;for(;1<=_&&0<=b;_--,b--)if(c[_]!==d[b]){if(_!==1||b!==1)do if(_--,b--,0>b||c[_]!==d[b])return` -`+c[_].replace(" at new "," at ");while(1<=_&&0<=b);break}}}finally{Oa=!1,Error.prepareStackTrace=s}return(o=o?o.displayName||o.name:"")?Na(o):""}function Qa(o){switch(o.tag){case 5:return Na(o.type);case 16:return Na("Lazy");case 13:return Na("Suspense");case 19:return Na("SuspenseList");case 0:case 2:case 15:return o=Pa(o.type,!1),o;case 11:return o=Pa(o.type.render,!1),o;case 22:return o=Pa(o.type._render,!1),o;case 1:return o=Pa(o.type,!0),o;default:return""}}function Ra(o){if(o==null)return null;if(typeof o=="function")return o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case ua:return"Fragment";case ta:return"Portal";case xa:return"Profiler";case wa:return"StrictMode";case Ba:return"Suspense";case Ca:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case za:return(o.displayName||"Context")+".Consumer";case ya:return(o._context.displayName||"Context")+".Provider";case Aa:var e=o.render;return e=e.displayName||e.name||"",o.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case Da:return Ra(o.type);case Fa:return Ra(o._render);case Ea:e=o._payload,o=o._init;try{return Ra(o(e))}catch{}}return null}function Sa(o){switch(typeof o){case"boolean":case"number":case"object":case"string":case"undefined":return o;default:return""}}function Ta(o){var e=o.type;return(o=o.nodeName)&&o.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function Ua(o){var e=Ta(o)?"checked":"value",s=Object.getOwnPropertyDescriptor(o.constructor.prototype,e),a=""+o[e];if(!o.hasOwnProperty(e)&&typeof s!="undefined"&&typeof s.get=="function"&&typeof s.set=="function"){var c=s.get,d=s.set;return Object.defineProperty(o,e,{configurable:!0,get:function(){return c.call(this)},set:function(_){a=""+_,d.call(this,_)}}),Object.defineProperty(o,e,{enumerable:s.enumerable}),{getValue:function(){return a},setValue:function(_){a=""+_},stopTracking:function(){o._valueTracker=null,delete o[e]}}}}function Va(o){o._valueTracker||(o._valueTracker=Ua(o))}function Wa(o){if(!o)return!1;var e=o._valueTracker;if(!e)return!0;var s=e.getValue(),a="";return o&&(a=Ta(o)?o.checked?"true":"false":o.value),o=a,o!==s?(e.setValue(o),!0):!1}function Xa(o){if(o=o||(typeof document!="undefined"?document:void 0),typeof o=="undefined")return null;try{return o.activeElement||o.body}catch{return o.body}}function Ya(o,e){var s=e.checked;return m$1({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:s!=null?s:o._wrapperState.initialChecked})}function Za(o,e){var s=e.defaultValue==null?"":e.defaultValue,a=e.checked!=null?e.checked:e.defaultChecked;s=Sa(e.value!=null?e.value:s),o._wrapperState={initialChecked:a,initialValue:s,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function $a(o,e){e=e.checked,e!=null&&qa(o,"checked",e,!1)}function ab(o,e){$a(o,e);var s=Sa(e.value),a=e.type;if(s!=null)a==="number"?(s===0&&o.value===""||o.value!=s)&&(o.value=""+s):o.value!==""+s&&(o.value=""+s);else if(a==="submit"||a==="reset"){o.removeAttribute("value");return}e.hasOwnProperty("value")?bb(o,e.type,s):e.hasOwnProperty("defaultValue")&&bb(o,e.type,Sa(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(o.defaultChecked=!!e.defaultChecked)}function cb(o,e,s){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var a=e.type;if(!(a!=="submit"&&a!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+o._wrapperState.initialValue,s||e===o.value||(o.value=e),o.defaultValue=e}s=o.name,s!==""&&(o.name=""),o.defaultChecked=!!o._wrapperState.initialChecked,s!==""&&(o.name=s)}function bb(o,e,s){(e!=="number"||Xa(o.ownerDocument)!==o)&&(s==null?o.defaultValue=""+o._wrapperState.initialValue:o.defaultValue!==""+s&&(o.defaultValue=""+s))}function db(o){var e="";return aa.Children.forEach(o,function(s){s!=null&&(e+=s)}),e}function eb(o,e){return o=m$1({children:void 0},e),(e=db(e.children))&&(o.children=e),o}function fb(o,e,s,a){if(o=o.options,e){e={};for(var c=0;c=s.length))throw Error(y(93));s=s[0]}e=s}e==null&&(e=""),s=e}o._wrapperState={initialValue:Sa(s)}}function ib(o,e){var s=Sa(e.value),a=Sa(e.defaultValue);s!=null&&(s=""+s,s!==o.value&&(o.value=s),e.defaultValue==null&&o.defaultValue!==s&&(o.defaultValue=s)),a!=null&&(o.defaultValue=""+a)}function jb(o){var e=o.textContent;e===o._wrapperState.initialValue&&e!==""&&e!==null&&(o.value=e)}var kb={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function lb(o){switch(o){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function mb(o,e){return o==null||o==="http://www.w3.org/1999/xhtml"?lb(e):o==="http://www.w3.org/2000/svg"&&e==="foreignObject"?"http://www.w3.org/1999/xhtml":o}var nb,ob=function(o){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(e,s,a,c){MSApp.execUnsafeLocalFunction(function(){return o(e,s,a,c)})}:o}(function(o,e){if(o.namespaceURI!==kb.svg||"innerHTML"in o)o.innerHTML=e;else{for(nb=nb||document.createElement("div"),nb.innerHTML=""+e.valueOf().toString()+"",e=nb.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;e.firstChild;)o.appendChild(e.firstChild)}});function pb(o,e){if(e){var s=o.firstChild;if(s&&s===o.lastChild&&s.nodeType===3){s.nodeValue=e;return}}o.textContent=e}var qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=["Webkit","ms","Moz","O"];Object.keys(qb).forEach(function(o){rb.forEach(function(e){e=e+o.charAt(0).toUpperCase()+o.substring(1),qb[e]=qb[o]})});function sb(o,e,s){return e==null||typeof e=="boolean"||e===""?"":s||typeof e!="number"||e===0||qb.hasOwnProperty(o)&&qb[o]?(""+e).trim():e+"px"}function tb(o,e){o=o.style;for(var s in e)if(e.hasOwnProperty(s)){var a=s.indexOf("--")===0,c=sb(s,e[s],a);s==="float"&&(s="cssFloat"),a?o.setProperty(s,c):o[s]=c}}var ub=m$1({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vb(o,e){if(e){if(ub[o]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(y(137,o));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(y(60));if(!(typeof e.dangerouslySetInnerHTML=="object"&&"__html"in e.dangerouslySetInnerHTML))throw Error(y(61))}if(e.style!=null&&typeof e.style!="object")throw Error(y(62))}}function wb(o,e){if(o.indexOf("-")===-1)return typeof e.is=="string";switch(o){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function xb(o){return o=o.target||o.srcElement||window,o.correspondingUseElement&&(o=o.correspondingUseElement),o.nodeType===3?o.parentNode:o}var yb=null,zb=null,Ab=null;function Bb(o){if(o=Cb(o)){if(typeof yb!="function")throw Error(y(280));var e=o.stateNode;e&&(e=Db(e),yb(o.stateNode,o.type,e))}}function Eb(o){zb?Ab?Ab.push(o):Ab=[o]:zb=o}function Fb(){if(zb){var o=zb,e=Ab;if(Ab=zb=null,Bb(o),e)for(o=0;oa?0:1<s;s++)e.push(o);return e}function $c(o,e,s){o.pendingLanes|=e;var a=e-1;o.suspendedLanes&=a,o.pingedLanes&=a,o=o.eventTimes,e=31-Vc(e),o[e]=s}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(o){return o===0?32:31-(bd(o)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(o,e,s,a){Kb||Ib();var c=hd,d=Kb;Kb=!0;try{Hb(c,o,e,s,a)}finally{(Kb=d)||Mb()}}function id$2(o,e,s,a){ed(dd,hd.bind(null,o,e,s,a))}function hd(o,e,s,a){if(fd){var c;if((c=(e&4)===0)&&0=be),ee=String.fromCharCode(32),fe=!1;function ge(o,e){switch(o){case"keyup":return $d.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function he(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var ie$2=!1;function je(o,e){switch(o){case"compositionend":return he(e);case"keypress":return e.which!==32?null:(fe=!0,ee);case"textInput":return o=e.data,o===ee&&fe?null:o;default:return null}}function ke(o,e){if(ie$2)return o==="compositionend"||!ae&&ge(o,e)?(o=nd(),md=ld=kd=null,ie$2=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:s,offset:e-o};o=a}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=Ke(s)}}function Me(o,e){return o&&e?o===e?!0:o&&o.nodeType===3?!1:e&&e.nodeType===3?Me(o,e.parentNode):"contains"in o?o.contains(e):o.compareDocumentPosition?!!(o.compareDocumentPosition(e)&16):!1:!1}function Ne(){for(var o=window,e=Xa();e instanceof o.HTMLIFrameElement;){try{var s=typeof e.contentWindow.location.href=="string"}catch{s=!1}if(s)o=e.contentWindow;else break;e=Xa(o.document)}return e}function Oe(o){var e=o&&o.nodeName&&o.nodeName.toLowerCase();return e&&(e==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||e==="textarea"||o.contentEditable==="true")}var Pe=fa&&"documentMode"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;function Ue(o,e,s){var a=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Te||Qe==null||Qe!==Xa(a)||(a=Qe,"selectionStart"in a&&Oe(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Se&&Je(Se,a)||(Se=a,a=oe(Re,"onSelect"),0Af||(o.current=zf[Af],zf[Af]=null,Af--)}function I$1(o,e){Af++,zf[Af]=o.current,o.current=e}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;function Ef(o,e){var s=o.type.contextTypes;if(!s)return Cf;var a=o.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===e)return a.__reactInternalMemoizedMaskedChildContext;var c={},d;for(d in s)c[d]=e[d];return a&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=e,o.__reactInternalMemoizedMaskedChildContext=c),c}function Ff(o){return o=o.childContextTypes,o!=null}function Gf(){H(N),H(M)}function Hf(o,e,s){if(M.current!==Cf)throw Error(y(168));I$1(M,e),I$1(N,s)}function If(o,e,s){var a=o.stateNode;if(o=e.childContextTypes,typeof a.getChildContext!="function")return s;a=a.getChildContext();for(var c in a)if(!(c in o))throw Error(y(108,Ra(e)||"Unknown",c));return m$1({},s,a)}function Jf(o){return o=(o=o.stateNode)&&o.__reactInternalMemoizedMergedChildContext||Cf,Df=M.current,I$1(M,o),I$1(N,N.current),!0}function Kf(o,e,s){var a=o.stateNode;if(!a)throw Error(y(169));s?(o=If(o,e,Df),a.__reactInternalMemoizedMergedChildContext=o,H(N),H(M),I$1(M,o)):H(N),I$1(N,s)}var Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=Rf!==void 0?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1e4>dg?Sf:function(){return Sf()-dg};function eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332))}}function fg(o){switch(o){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332))}}function gg(o,e){return o=fg(o),Nf(o,e)}function hg(o,e,s){return o=fg(o),Of(o,e,s)}function ig(){if(bg!==null){var o=bg;bg=null,Pf(o)}jg()}function jg(){if(!cg&&ag!==null){cg=!0;var o=0;try{var e=ag;gg(99,function(){for(;olt?(pt=ut,ut=null):pt=ut.sibling;var dt=et(rt,ut,at[lt],ot);if(dt===null){ut===null&&(ut=pt);break}o&&ut&&dt.alternate===null&&e(rt,ut),st=d(dt,st,lt),ct===null?ht=dt:ct.sibling=dt,ct=dt,ut=pt}if(lt===at.length)return s(rt,ut),ht;if(ut===null){for(;ltlt?(pt=ut,ut=null):pt=ut.sibling;var gt=et(rt,ut,dt.value,ot);if(gt===null){ut===null&&(ut=pt);break}o&&ut&>.alternate===null&&e(rt,ut),st=d(gt,st,lt),ct===null?ht=gt:ct.sibling=gt,ct=gt,ut=pt}if(dt.done)return s(rt,ut),ht;if(ut===null){for(;!dt.done;lt++,dt=at.next())dt=_e(rt,dt.value,ot),dt!==null&&(st=d(dt,st,lt),ct===null?ht=dt:ct.sibling=dt,ct=dt);return ht}for(ut=a(rt,ut);!dt.done;lt++,dt=at.next())dt=tt(ut,rt,lt,dt.value,ot),dt!==null&&(o&&dt.alternate!==null&&ut.delete(dt.key===null?lt:dt.key),st=d(dt,st,lt),ct===null?ht=dt:ct.sibling=dt,ct=dt);return o&&ut.forEach(function(Et){return e(rt,Et)}),ht}return function(rt,st,at,ot){var ht=typeof at=="object"&&at!==null&&at.type===ua&&at.key===null;ht&&(at=at.props.children);var ct=typeof at=="object"&&at!==null;if(ct)switch(at.$$typeof){case sa:e:{for(ct=at.key,ht=st;ht!==null;){if(ht.key===ct){switch(ht.tag){case 7:if(at.type===ua){s(rt,ht.sibling),st=c(ht,at.props.children),st.return=rt,rt=st;break e}break;default:if(ht.elementType===at.type){s(rt,ht.sibling),st=c(ht,at.props),st.ref=Qg(rt,ht,at),st.return=rt,rt=st;break e}}s(rt,ht);break}else e(rt,ht);ht=ht.sibling}at.type===ua?(st=Xg(at.props.children,rt.mode,ot,at.key),st.return=rt,rt=st):(ot=Vg(at.type,at.key,at.props,null,rt.mode,ot),ot.ref=Qg(rt,st,at),ot.return=rt,rt=ot)}return _(rt);case ta:e:{for(ht=at.key;st!==null;){if(st.key===ht)if(st.tag===4&&st.stateNode.containerInfo===at.containerInfo&&st.stateNode.implementation===at.implementation){s(rt,st.sibling),st=c(st,at.children||[]),st.return=rt,rt=st;break e}else{s(rt,st);break}else e(rt,st);st=st.sibling}st=Wg(at,rt.mode,ot),st.return=rt,rt=st}return _(rt)}if(typeof at=="string"||typeof at=="number")return at=""+at,st!==null&&st.tag===6?(s(rt,st.sibling),st=c(st,at),st.return=rt,rt=st):(s(rt,st),st=Ug(at,rt.mode,ot),st.return=rt,rt=st),_(rt);if(Pg(at))return nt(rt,st,at,ot);if(La(at))return it(rt,st,at,ot);if(ct&&Rg(rt,at),typeof at=="undefined"&&!ht)switch(rt.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(rt.type)||"Component"))}return s(rt,st)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);function dh(o){if(o===$g)throw Error(y(174));return o}function eh(o,e){switch(I$1(ch,e),I$1(bh,o),I$1(ah,$g),o=e.nodeType,o){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:mb(null,"");break;default:o=o===8?e.parentNode:e,e=o.namespaceURI||null,o=o.tagName,e=mb(e,o)}H(ah),I$1(ah,e)}function fh(){H(ah),H(bh),H(ch)}function gh(o){dh(ch.current);var e=dh(ah.current),s=mb(e,o.type);e!==s&&(I$1(bh,o),I$1(ah,s))}function hh(o){bh.current===o&&(H(ah),H(bh))}var P=Bf(0);function ih(o){for(var e=o;e!==null;){if(e.tag===13){var s=e.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||s.data==="$?"||s.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if((e.flags&64)!==0)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===o)break;for(;e.sibling===null;){if(e.return===null||e.return===o)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var jh=null,kh=null,lh=!1;function mh(o,e){var s=nh(5,null,null,0);s.elementType="DELETED",s.type="DELETED",s.stateNode=e,s.return=o,s.flags=8,o.lastEffect!==null?(o.lastEffect.nextEffect=s,o.lastEffect=s):o.firstEffect=o.lastEffect=s}function oh(o,e){switch(o.tag){case 5:var s=o.type;return e=e.nodeType!==1||s.toLowerCase()!==e.nodeName.toLowerCase()?null:e,e!==null?(o.stateNode=e,!0):!1;case 6:return e=o.pendingProps===""||e.nodeType!==3?null:e,e!==null?(o.stateNode=e,!0):!1;case 13:return!1;default:return!1}}function ph(o){if(lh){var e=kh;if(e){var s=e;if(!oh(o,e)){if(e=rf(s.nextSibling),!e||!oh(o,e)){o.flags=o.flags&-1025|2,lh=!1,jh=o;return}mh(jh,s)}jh=o,kh=rf(e.firstChild)}else o.flags=o.flags&-1025|2,lh=!1,jh=o}}function qh(o){for(o=o.return;o!==null&&o.tag!==5&&o.tag!==3&&o.tag!==13;)o=o.return;jh=o}function rh(o){if(o!==jh)return!1;if(!lh)return qh(o),lh=!0,!1;var e=o.type;if(o.tag!==5||e!=="head"&&e!=="body"&&!nf(e,o.memoizedProps))for(e=kh;e;)mh(o,e),e=rf(e.nextSibling);if(qh(o),o.tag===13){if(o=o.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(y(317));e:{for(o=o.nextSibling,e=0;o;){if(o.nodeType===8){var s=o.data;if(s==="/$"){if(e===0){kh=rf(o.nextSibling);break e}e--}else s!=="$"&&s!=="$!"&&s!=="$?"||e++}o=o.nextSibling}kh=null}}else kh=jh?rf(o.stateNode.nextSibling):null;return!0}function sh(){kh=jh=null,lh=!1}var th=[];function uh(){for(var o=0;od))throw Error(y(301));d+=1,T$1=S=null,e.updateQueue=null,vh.current=Fh,o=s(a,c)}while(zh)}if(vh.current=Gh,e=S!==null&&S.next!==null,xh=0,T$1=S=R$1=null,yh=!1,e)throw Error(y(300));return o}function Hh(){var o={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return T$1===null?R$1.memoizedState=T$1=o:T$1=T$1.next=o,T$1}function Ih(){if(S===null){var o=R$1.alternate;o=o!==null?o.memoizedState:null}else o=S.next;var e=T$1===null?R$1.memoizedState:T$1.next;if(e!==null)T$1=e,S=o;else{if(o===null)throw Error(y(310));S=o,o={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null},T$1===null?R$1.memoizedState=T$1=o:T$1=T$1.next=o}return T$1}function Jh(o,e){return typeof e=="function"?e(o):e}function Kh(o){var e=Ih(),s=e.queue;if(s===null)throw Error(y(311));s.lastRenderedReducer=o;var a=S,c=a.baseQueue,d=s.pending;if(d!==null){if(c!==null){var _=c.next;c.next=d.next,d.next=_}a.baseQueue=c=d,s.pending=null}if(c!==null){c=c.next,a=a.baseState;var b=_=d=null,k=c;do{var $=k.lane;if((xh&$)===$)b!==null&&(b=b.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),a=k.eagerReducer===o?k.eagerState:o(a,k.action);else{var j={lane:$,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};b===null?(_=b=j,d=a):b=b.next=j,R$1.lanes|=$,Dg|=$}k=k.next}while(k!==null&&k!==c);b===null?d=a:b.next=_,He(a,e.memoizedState)||(ug=!0),e.memoizedState=a,e.baseState=d,e.baseQueue=b,s.lastRenderedState=a}return[e.memoizedState,s.dispatch]}function Lh(o){var e=Ih(),s=e.queue;if(s===null)throw Error(y(311));s.lastRenderedReducer=o;var a=s.dispatch,c=s.pending,d=e.memoizedState;if(c!==null){s.pending=null;var _=c=c.next;do d=o(d,_.action),_=_.next;while(_!==c);He(d,e.memoizedState)||(ug=!0),e.memoizedState=d,e.baseQueue===null&&(e.baseState=d),s.lastRenderedState=d}return[d,a]}function Mh(o,e,s){var a=e._getVersion;a=a(e._source);var c=e._workInProgressVersionPrimary;if(c!==null?o=c===a:(o=o.mutableReadLanes,(o=(xh&o)===o)&&(e._workInProgressVersionPrimary=a,th.push(e))),o)return s(e._source);throw th.push(e),Error(y(350))}function Nh(o,e,s,a){var c=U;if(c===null)throw Error(y(349));var d=e._getVersion,_=d(e._source),b=vh.current,k=b.useState(function(){return Mh(c,e,s)}),$=k[1],j=k[0];k=T$1;var _e=o.memoizedState,et=_e.refs,tt=et.getSnapshot,nt=_e.source;_e=_e.subscribe;var it=R$1;return o.memoizedState={refs:et,source:e,subscribe:a},b.useEffect(function(){et.getSnapshot=s,et.setSnapshot=$;var rt=d(e._source);if(!He(_,rt)){rt=s(e._source),He(j,rt)||($(rt),rt=Ig(it),c.mutableReadLanes|=rt&c.pendingLanes),rt=c.mutableReadLanes,c.entangledLanes|=rt;for(var st=c.entanglements,at=rt;0s?98:s,function(){o(!0)}),gg(97<\/script>",o=o.removeChild(o.firstChild)):typeof a.is=="string"?o=_.createElement(s,{is:a.is}):(o=_.createElement(s),s==="select"&&(_=o,a.multiple?_.multiple=!0:a.size&&(_.size=a.size))):o=_.createElementNS(o,s),o[wf]=e,o[xf]=a,Bi(o,e,!1,!1),e.stateNode=o,_=wb(s,a),s){case"dialog":G("cancel",o),G("close",o),c=a;break;case"iframe":case"object":case"embed":G("load",o),c=a;break;case"video":case"audio":for(c=0;cJi&&(e.flags|=64,d=!0,Fi(a,!1),e.lanes=33554432)}else{if(!d)if(o=ih(_),o!==null){if(e.flags|=64,d=!0,s=o.updateQueue,s!==null&&(e.updateQueue=s,e.flags|=4),Fi(a,!0),a.tail===null&&a.tailMode==="hidden"&&!_.alternate&&!lh)return e=e.lastEffect=a.lastEffect,e!==null&&(e.nextEffect=null),null}else 2*O()-a.renderingStartTime>Ji&&s!==1073741824&&(e.flags|=64,d=!0,Fi(a,!1),e.lanes=33554432);a.isBackwards?(_.sibling=e.child,e.child=_):(s=a.last,s!==null?s.sibling=_:e.child=_,a.last=_)}return a.tail!==null?(s=a.tail,a.rendering=s,a.tail=s.sibling,a.lastEffect=e.lastEffect,a.renderingStartTime=O(),s.sibling=null,e=P.current,I$1(P,d?e&1|2:e&1),s):null;case 23:case 24:return Ki(),o!==null&&o.memoizedState!==null!=(e.memoizedState!==null)&&a.mode!=="unstable-defer-without-hiding"&&(e.flags|=4),null}throw Error(y(156,e.tag))}function Li(o){switch(o.tag){case 1:Ff(o.type)&&Gf();var e=o.flags;return e&4096?(o.flags=e&-4097|64,o):null;case 3:if(fh(),H(N),H(M),uh(),e=o.flags,(e&64)!==0)throw Error(y(285));return o.flags=e&-4097|64,o;case 5:return hh(o),null;case 13:return H(P),e=o.flags,e&4096?(o.flags=e&-4097|64,o):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(o),null;case 23:case 24:return Ki(),null;default:return null}}function Mi(o,e){try{var s="",a=e;do s+=Qa(a),a=a.return;while(a);var c=s}catch(d){c=` +`+c[_].replace(" at new "," at ");while(1<=_&&0<=b);break}}}finally{Oa=!1,Error.prepareStackTrace=s}return(o=o?o.displayName||o.name:"")?Na(o):""}function Qa(o){switch(o.tag){case 5:return Na(o.type);case 16:return Na("Lazy");case 13:return Na("Suspense");case 19:return Na("SuspenseList");case 0:case 2:case 15:return o=Pa(o.type,!1),o;case 11:return o=Pa(o.type.render,!1),o;case 22:return o=Pa(o.type._render,!1),o;case 1:return o=Pa(o.type,!0),o;default:return""}}function Ra(o){if(o==null)return null;if(typeof o=="function")return o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case ua:return"Fragment";case ta:return"Portal";case xa:return"Profiler";case wa:return"StrictMode";case Ba:return"Suspense";case Ca:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case za:return(o.displayName||"Context")+".Consumer";case ya:return(o._context.displayName||"Context")+".Provider";case Aa:var e=o.render;return e=e.displayName||e.name||"",o.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case Da:return Ra(o.type);case Fa:return Ra(o._render);case Ea:e=o._payload,o=o._init;try{return Ra(o(e))}catch{}}return null}function Sa(o){switch(typeof o){case"boolean":case"number":case"object":case"string":case"undefined":return o;default:return""}}function Ta(o){var e=o.type;return(o=o.nodeName)&&o.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function Ua(o){var e=Ta(o)?"checked":"value",s=Object.getOwnPropertyDescriptor(o.constructor.prototype,e),a=""+o[e];if(!o.hasOwnProperty(e)&&typeof s!="undefined"&&typeof s.get=="function"&&typeof s.set=="function"){var c=s.get,d=s.set;return Object.defineProperty(o,e,{configurable:!0,get:function(){return c.call(this)},set:function(_){a=""+_,d.call(this,_)}}),Object.defineProperty(o,e,{enumerable:s.enumerable}),{getValue:function(){return a},setValue:function(_){a=""+_},stopTracking:function(){o._valueTracker=null,delete o[e]}}}}function Va(o){o._valueTracker||(o._valueTracker=Ua(o))}function Wa(o){if(!o)return!1;var e=o._valueTracker;if(!e)return!0;var s=e.getValue(),a="";return o&&(a=Ta(o)?o.checked?"true":"false":o.value),o=a,o!==s?(e.setValue(o),!0):!1}function Xa(o){if(o=o||(typeof document!="undefined"?document:void 0),typeof o=="undefined")return null;try{return o.activeElement||o.body}catch{return o.body}}function Ya(o,e){var s=e.checked;return m$1({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:s!=null?s:o._wrapperState.initialChecked})}function Za(o,e){var s=e.defaultValue==null?"":e.defaultValue,a=e.checked!=null?e.checked:e.defaultChecked;s=Sa(e.value!=null?e.value:s),o._wrapperState={initialChecked:a,initialValue:s,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function $a(o,e){e=e.checked,e!=null&&qa(o,"checked",e,!1)}function ab(o,e){$a(o,e);var s=Sa(e.value),a=e.type;if(s!=null)a==="number"?(s===0&&o.value===""||o.value!=s)&&(o.value=""+s):o.value!==""+s&&(o.value=""+s);else if(a==="submit"||a==="reset"){o.removeAttribute("value");return}e.hasOwnProperty("value")?bb(o,e.type,s):e.hasOwnProperty("defaultValue")&&bb(o,e.type,Sa(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(o.defaultChecked=!!e.defaultChecked)}function cb(o,e,s){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var a=e.type;if(!(a!=="submit"&&a!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+o._wrapperState.initialValue,s||e===o.value||(o.value=e),o.defaultValue=e}s=o.name,s!==""&&(o.name=""),o.defaultChecked=!!o._wrapperState.initialChecked,s!==""&&(o.name=s)}function bb(o,e,s){(e!=="number"||Xa(o.ownerDocument)!==o)&&(s==null?o.defaultValue=""+o._wrapperState.initialValue:o.defaultValue!==""+s&&(o.defaultValue=""+s))}function db(o){var e="";return aa.Children.forEach(o,function(s){s!=null&&(e+=s)}),e}function eb(o,e){return o=m$1({children:void 0},e),(e=db(e.children))&&(o.children=e),o}function fb(o,e,s,a){if(o=o.options,e){e={};for(var c=0;c=s.length))throw Error(y(93));s=s[0]}e=s}e==null&&(e=""),s=e}o._wrapperState={initialValue:Sa(s)}}function ib(o,e){var s=Sa(e.value),a=Sa(e.defaultValue);s!=null&&(s=""+s,s!==o.value&&(o.value=s),e.defaultValue==null&&o.defaultValue!==s&&(o.defaultValue=s)),a!=null&&(o.defaultValue=""+a)}function jb(o){var e=o.textContent;e===o._wrapperState.initialValue&&e!==""&&e!==null&&(o.value=e)}var kb={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function lb(o){switch(o){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function mb(o,e){return o==null||o==="http://www.w3.org/1999/xhtml"?lb(e):o==="http://www.w3.org/2000/svg"&&e==="foreignObject"?"http://www.w3.org/1999/xhtml":o}var nb,ob=function(o){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(e,s,a,c){MSApp.execUnsafeLocalFunction(function(){return o(e,s,a,c)})}:o}(function(o,e){if(o.namespaceURI!==kb.svg||"innerHTML"in o)o.innerHTML=e;else{for(nb=nb||document.createElement("div"),nb.innerHTML=""+e.valueOf().toString()+"",e=nb.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;e.firstChild;)o.appendChild(e.firstChild)}});function pb(o,e){if(e){var s=o.firstChild;if(s&&s===o.lastChild&&s.nodeType===3){s.nodeValue=e;return}}o.textContent=e}var qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=["Webkit","ms","Moz","O"];Object.keys(qb).forEach(function(o){rb.forEach(function(e){e=e+o.charAt(0).toUpperCase()+o.substring(1),qb[e]=qb[o]})});function sb(o,e,s){return e==null||typeof e=="boolean"||e===""?"":s||typeof e!="number"||e===0||qb.hasOwnProperty(o)&&qb[o]?(""+e).trim():e+"px"}function tb(o,e){o=o.style;for(var s in e)if(e.hasOwnProperty(s)){var a=s.indexOf("--")===0,c=sb(s,e[s],a);s==="float"&&(s="cssFloat"),a?o.setProperty(s,c):o[s]=c}}var ub=m$1({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vb(o,e){if(e){if(ub[o]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(y(137,o));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(y(60));if(!(typeof e.dangerouslySetInnerHTML=="object"&&"__html"in e.dangerouslySetInnerHTML))throw Error(y(61))}if(e.style!=null&&typeof e.style!="object")throw Error(y(62))}}function wb(o,e){if(o.indexOf("-")===-1)return typeof e.is=="string";switch(o){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function xb(o){return o=o.target||o.srcElement||window,o.correspondingUseElement&&(o=o.correspondingUseElement),o.nodeType===3?o.parentNode:o}var yb=null,zb=null,Ab=null;function Bb(o){if(o=Cb(o)){if(typeof yb!="function")throw Error(y(280));var e=o.stateNode;e&&(e=Db(e),yb(o.stateNode,o.type,e))}}function Eb(o){zb?Ab?Ab.push(o):Ab=[o]:zb=o}function Fb(){if(zb){var o=zb,e=Ab;if(Ab=zb=null,Bb(o),e)for(o=0;oa?0:1<s;s++)e.push(o);return e}function $c(o,e,s){o.pendingLanes|=e;var a=e-1;o.suspendedLanes&=a,o.pingedLanes&=a,o=o.eventTimes,e=31-Vc(e),o[e]=s}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(o){return o===0?32:31-(bd(o)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(o,e,s,a){Kb||Ib();var c=hd,d=Kb;Kb=!0;try{Hb(c,o,e,s,a)}finally{(Kb=d)||Mb()}}function id$2(o,e,s,a){ed(dd,hd.bind(null,o,e,s,a))}function hd(o,e,s,a){if(fd){var c;if((c=(e&4)===0)&&0=be),ee=String.fromCharCode(32),fe=!1;function ge(o,e){switch(o){case"keyup":return $d.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function he(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var ie$2=!1;function je(o,e){switch(o){case"compositionend":return he(e);case"keypress":return e.which!==32?null:(fe=!0,ee);case"textInput":return o=e.data,o===ee&&fe?null:o;default:return null}}function ke(o,e){if(ie$2)return o==="compositionend"||!ae&&ge(o,e)?(o=nd(),md=ld=kd=null,ie$2=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:s,offset:e-o};o=a}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=Ke(s)}}function Me(o,e){return o&&e?o===e?!0:o&&o.nodeType===3?!1:e&&e.nodeType===3?Me(o,e.parentNode):"contains"in o?o.contains(e):o.compareDocumentPosition?!!(o.compareDocumentPosition(e)&16):!1:!1}function Ne(){for(var o=window,e=Xa();e instanceof o.HTMLIFrameElement;){try{var s=typeof e.contentWindow.location.href=="string"}catch{s=!1}if(s)o=e.contentWindow;else break;e=Xa(o.document)}return e}function Oe(o){var e=o&&o.nodeName&&o.nodeName.toLowerCase();return e&&(e==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||e==="textarea"||o.contentEditable==="true")}var Pe=fa&&"documentMode"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;function Ue(o,e,s){var a=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Te||Qe==null||Qe!==Xa(a)||(a=Qe,"selectionStart"in a&&Oe(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Se&&Je(Se,a)||(Se=a,a=oe(Re,"onSelect"),0Af||(o.current=zf[Af],zf[Af]=null,Af--)}function I$1(o,e){Af++,zf[Af]=o.current,o.current=e}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;function Ef(o,e){var s=o.type.contextTypes;if(!s)return Cf;var a=o.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===e)return a.__reactInternalMemoizedMaskedChildContext;var c={},d;for(d in s)c[d]=e[d];return a&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=e,o.__reactInternalMemoizedMaskedChildContext=c),c}function Ff(o){return o=o.childContextTypes,o!=null}function Gf(){H(N),H(M)}function Hf(o,e,s){if(M.current!==Cf)throw Error(y(168));I$1(M,e),I$1(N,s)}function If(o,e,s){var a=o.stateNode;if(o=e.childContextTypes,typeof a.getChildContext!="function")return s;a=a.getChildContext();for(var c in a)if(!(c in o))throw Error(y(108,Ra(e)||"Unknown",c));return m$1({},s,a)}function Jf(o){return o=(o=o.stateNode)&&o.__reactInternalMemoizedMergedChildContext||Cf,Df=M.current,I$1(M,o),I$1(N,N.current),!0}function Kf(o,e,s){var a=o.stateNode;if(!a)throw Error(y(169));s?(o=If(o,e,Df),a.__reactInternalMemoizedMergedChildContext=o,H(N),H(M),I$1(M,o)):H(N),I$1(N,s)}var Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=Rf!==void 0?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1e4>dg?Sf:function(){return Sf()-dg};function eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332))}}function fg(o){switch(o){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332))}}function gg(o,e){return o=fg(o),Nf(o,e)}function hg(o,e,s){return o=fg(o),Of(o,e,s)}function ig(){if(bg!==null){var o=bg;bg=null,Pf(o)}jg()}function jg(){if(!cg&&ag!==null){cg=!0;var o=0;try{var e=ag;gg(99,function(){for(;olt?(pt=ut,ut=null):pt=ut.sibling;var dt=et(rt,ut,at[lt],ot);if(dt===null){ut===null&&(ut=pt);break}o&&ut&&dt.alternate===null&&e(rt,ut),it=d(dt,it,lt),ct===null?ht=dt:ct.sibling=dt,ct=dt,ut=pt}if(lt===at.length)return s(rt,ut),ht;if(ut===null){for(;ltlt?(pt=ut,ut=null):pt=ut.sibling;var gt=et(rt,ut,dt.value,ot);if(gt===null){ut===null&&(ut=pt);break}o&&ut&>.alternate===null&&e(rt,ut),it=d(gt,it,lt),ct===null?ht=gt:ct.sibling=gt,ct=gt,ut=pt}if(dt.done)return s(rt,ut),ht;if(ut===null){for(;!dt.done;lt++,dt=at.next())dt=_e(rt,dt.value,ot),dt!==null&&(it=d(dt,it,lt),ct===null?ht=dt:ct.sibling=dt,ct=dt);return ht}for(ut=a(rt,ut);!dt.done;lt++,dt=at.next())dt=tt(ut,rt,lt,dt.value,ot),dt!==null&&(o&&dt.alternate!==null&&ut.delete(dt.key===null?lt:dt.key),it=d(dt,it,lt),ct===null?ht=dt:ct.sibling=dt,ct=dt);return o&&ut.forEach(function(yt){return e(rt,yt)}),ht}return function(rt,it,at,ot){var ht=typeof at=="object"&&at!==null&&at.type===ua&&at.key===null;ht&&(at=at.props.children);var ct=typeof at=="object"&&at!==null;if(ct)switch(at.$$typeof){case sa:e:{for(ct=at.key,ht=it;ht!==null;){if(ht.key===ct){switch(ht.tag){case 7:if(at.type===ua){s(rt,ht.sibling),it=c(ht,at.props.children),it.return=rt,rt=it;break e}break;default:if(ht.elementType===at.type){s(rt,ht.sibling),it=c(ht,at.props),it.ref=Qg(rt,ht,at),it.return=rt,rt=it;break e}}s(rt,ht);break}else e(rt,ht);ht=ht.sibling}at.type===ua?(it=Xg(at.props.children,rt.mode,ot,at.key),it.return=rt,rt=it):(ot=Vg(at.type,at.key,at.props,null,rt.mode,ot),ot.ref=Qg(rt,it,at),ot.return=rt,rt=ot)}return _(rt);case ta:e:{for(ht=at.key;it!==null;){if(it.key===ht)if(it.tag===4&&it.stateNode.containerInfo===at.containerInfo&&it.stateNode.implementation===at.implementation){s(rt,it.sibling),it=c(it,at.children||[]),it.return=rt,rt=it;break e}else{s(rt,it);break}else e(rt,it);it=it.sibling}it=Wg(at,rt.mode,ot),it.return=rt,rt=it}return _(rt)}if(typeof at=="string"||typeof at=="number")return at=""+at,it!==null&&it.tag===6?(s(rt,it.sibling),it=c(it,at),it.return=rt,rt=it):(s(rt,it),it=Ug(at,rt.mode,ot),it.return=rt,rt=it),_(rt);if(Pg(at))return nt(rt,it,at,ot);if(La(at))return st(rt,it,at,ot);if(ct&&Rg(rt,at),typeof at=="undefined"&&!ht)switch(rt.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(rt.type)||"Component"))}return s(rt,it)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);function dh(o){if(o===$g)throw Error(y(174));return o}function eh(o,e){switch(I$1(ch,e),I$1(bh,o),I$1(ah,$g),o=e.nodeType,o){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:mb(null,"");break;default:o=o===8?e.parentNode:e,e=o.namespaceURI||null,o=o.tagName,e=mb(e,o)}H(ah),I$1(ah,e)}function fh(){H(ah),H(bh),H(ch)}function gh(o){dh(ch.current);var e=dh(ah.current),s=mb(e,o.type);e!==s&&(I$1(bh,o),I$1(ah,s))}function hh(o){bh.current===o&&(H(ah),H(bh))}var P=Bf(0);function ih(o){for(var e=o;e!==null;){if(e.tag===13){var s=e.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||s.data==="$?"||s.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if((e.flags&64)!==0)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===o)break;for(;e.sibling===null;){if(e.return===null||e.return===o)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var jh=null,kh=null,lh=!1;function mh(o,e){var s=nh(5,null,null,0);s.elementType="DELETED",s.type="DELETED",s.stateNode=e,s.return=o,s.flags=8,o.lastEffect!==null?(o.lastEffect.nextEffect=s,o.lastEffect=s):o.firstEffect=o.lastEffect=s}function oh(o,e){switch(o.tag){case 5:var s=o.type;return e=e.nodeType!==1||s.toLowerCase()!==e.nodeName.toLowerCase()?null:e,e!==null?(o.stateNode=e,!0):!1;case 6:return e=o.pendingProps===""||e.nodeType!==3?null:e,e!==null?(o.stateNode=e,!0):!1;case 13:return!1;default:return!1}}function ph(o){if(lh){var e=kh;if(e){var s=e;if(!oh(o,e)){if(e=rf(s.nextSibling),!e||!oh(o,e)){o.flags=o.flags&-1025|2,lh=!1,jh=o;return}mh(jh,s)}jh=o,kh=rf(e.firstChild)}else o.flags=o.flags&-1025|2,lh=!1,jh=o}}function qh(o){for(o=o.return;o!==null&&o.tag!==5&&o.tag!==3&&o.tag!==13;)o=o.return;jh=o}function rh(o){if(o!==jh)return!1;if(!lh)return qh(o),lh=!0,!1;var e=o.type;if(o.tag!==5||e!=="head"&&e!=="body"&&!nf(e,o.memoizedProps))for(e=kh;e;)mh(o,e),e=rf(e.nextSibling);if(qh(o),o.tag===13){if(o=o.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(y(317));e:{for(o=o.nextSibling,e=0;o;){if(o.nodeType===8){var s=o.data;if(s==="/$"){if(e===0){kh=rf(o.nextSibling);break e}e--}else s!=="$"&&s!=="$!"&&s!=="$?"||e++}o=o.nextSibling}kh=null}}else kh=jh?rf(o.stateNode.nextSibling):null;return!0}function sh(){kh=jh=null,lh=!1}var th=[];function uh(){for(var o=0;od))throw Error(y(301));d+=1,T$1=S=null,e.updateQueue=null,vh.current=Fh,o=s(a,c)}while(zh)}if(vh.current=Gh,e=S!==null&&S.next!==null,xh=0,T$1=S=R$1=null,yh=!1,e)throw Error(y(300));return o}function Hh(){var o={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return T$1===null?R$1.memoizedState=T$1=o:T$1=T$1.next=o,T$1}function Ih(){if(S===null){var o=R$1.alternate;o=o!==null?o.memoizedState:null}else o=S.next;var e=T$1===null?R$1.memoizedState:T$1.next;if(e!==null)T$1=e,S=o;else{if(o===null)throw Error(y(310));S=o,o={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null},T$1===null?R$1.memoizedState=T$1=o:T$1=T$1.next=o}return T$1}function Jh(o,e){return typeof e=="function"?e(o):e}function Kh(o){var e=Ih(),s=e.queue;if(s===null)throw Error(y(311));s.lastRenderedReducer=o;var a=S,c=a.baseQueue,d=s.pending;if(d!==null){if(c!==null){var _=c.next;c.next=d.next,d.next=_}a.baseQueue=c=d,s.pending=null}if(c!==null){c=c.next,a=a.baseState;var b=_=d=null,k=c;do{var $=k.lane;if((xh&$)===$)b!==null&&(b=b.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),a=k.eagerReducer===o?k.eagerState:o(a,k.action);else{var j={lane:$,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};b===null?(_=b=j,d=a):b=b.next=j,R$1.lanes|=$,Dg|=$}k=k.next}while(k!==null&&k!==c);b===null?d=a:b.next=_,He(a,e.memoizedState)||(ug=!0),e.memoizedState=a,e.baseState=d,e.baseQueue=b,s.lastRenderedState=a}return[e.memoizedState,s.dispatch]}function Lh(o){var e=Ih(),s=e.queue;if(s===null)throw Error(y(311));s.lastRenderedReducer=o;var a=s.dispatch,c=s.pending,d=e.memoizedState;if(c!==null){s.pending=null;var _=c=c.next;do d=o(d,_.action),_=_.next;while(_!==c);He(d,e.memoizedState)||(ug=!0),e.memoizedState=d,e.baseQueue===null&&(e.baseState=d),s.lastRenderedState=d}return[d,a]}function Mh(o,e,s){var a=e._getVersion;a=a(e._source);var c=e._workInProgressVersionPrimary;if(c!==null?o=c===a:(o=o.mutableReadLanes,(o=(xh&o)===o)&&(e._workInProgressVersionPrimary=a,th.push(e))),o)return s(e._source);throw th.push(e),Error(y(350))}function Nh(o,e,s,a){var c=U;if(c===null)throw Error(y(349));var d=e._getVersion,_=d(e._source),b=vh.current,k=b.useState(function(){return Mh(c,e,s)}),$=k[1],j=k[0];k=T$1;var _e=o.memoizedState,et=_e.refs,tt=et.getSnapshot,nt=_e.source;_e=_e.subscribe;var st=R$1;return o.memoizedState={refs:et,source:e,subscribe:a},b.useEffect(function(){et.getSnapshot=s,et.setSnapshot=$;var rt=d(e._source);if(!He(_,rt)){rt=s(e._source),He(j,rt)||($(rt),rt=Ig(st),c.mutableReadLanes|=rt&c.pendingLanes),rt=c.mutableReadLanes,c.entangledLanes|=rt;for(var it=c.entanglements,at=rt;0s?98:s,function(){o(!0)}),gg(97<\/script>",o=o.removeChild(o.firstChild)):typeof a.is=="string"?o=_.createElement(s,{is:a.is}):(o=_.createElement(s),s==="select"&&(_=o,a.multiple?_.multiple=!0:a.size&&(_.size=a.size))):o=_.createElementNS(o,s),o[wf]=e,o[xf]=a,Bi(o,e,!1,!1),e.stateNode=o,_=wb(s,a),s){case"dialog":G("cancel",o),G("close",o),c=a;break;case"iframe":case"object":case"embed":G("load",o),c=a;break;case"video":case"audio":for(c=0;cJi&&(e.flags|=64,d=!0,Fi(a,!1),e.lanes=33554432)}else{if(!d)if(o=ih(_),o!==null){if(e.flags|=64,d=!0,s=o.updateQueue,s!==null&&(e.updateQueue=s,e.flags|=4),Fi(a,!0),a.tail===null&&a.tailMode==="hidden"&&!_.alternate&&!lh)return e=e.lastEffect=a.lastEffect,e!==null&&(e.nextEffect=null),null}else 2*O()-a.renderingStartTime>Ji&&s!==1073741824&&(e.flags|=64,d=!0,Fi(a,!1),e.lanes=33554432);a.isBackwards?(_.sibling=e.child,e.child=_):(s=a.last,s!==null?s.sibling=_:e.child=_,a.last=_)}return a.tail!==null?(s=a.tail,a.rendering=s,a.tail=s.sibling,a.lastEffect=e.lastEffect,a.renderingStartTime=O(),s.sibling=null,e=P.current,I$1(P,d?e&1|2:e&1),s):null;case 23:case 24:return Ki(),o!==null&&o.memoizedState!==null!=(e.memoizedState!==null)&&a.mode!=="unstable-defer-without-hiding"&&(e.flags|=4),null}throw Error(y(156,e.tag))}function Li(o){switch(o.tag){case 1:Ff(o.type)&&Gf();var e=o.flags;return e&4096?(o.flags=e&-4097|64,o):null;case 3:if(fh(),H(N),H(M),uh(),e=o.flags,(e&64)!==0)throw Error(y(285));return o.flags=e&-4097|64,o;case 5:return hh(o),null;case 13:return H(P),e=o.flags,e&4096?(o.flags=e&-4097|64,o):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(o),null;case 23:case 24:return Ki(),null;default:return null}}function Mi(o,e){try{var s="",a=e;do s+=Qa(a),a=a.return;while(a);var c=s}catch(d){c=` Error generating stack: `+d.message+` -`+d.stack}return{value:o,source:e,stack:c}}function Ni(o,e){try{console.error(e.value)}catch(s){setTimeout(function(){throw s})}}var Oi=typeof WeakMap=="function"?WeakMap:Map;function Pi(o,e,s){s=zg(-1,s),s.tag=3,s.payload={element:null};var a=e.value;return s.callback=function(){Qi||(Qi=!0,Ri=a),Ni(o,e)},s}function Si(o,e,s){s=zg(-1,s),s.tag=3;var a=o.type.getDerivedStateFromError;if(typeof a=="function"){var c=e.value;s.payload=function(){return Ni(o,e),a(c)}}var d=o.stateNode;return d!==null&&typeof d.componentDidCatch=="function"&&(s.callback=function(){typeof a!="function"&&(Ti===null?Ti=new Set([this]):Ti.add(this),Ni(o,e));var _=e.stack;this.componentDidCatch(e.value,{componentStack:_!==null?_:""})}),s}var Ui=typeof WeakSet=="function"?WeakSet:Set;function Vi(o){var e=o.ref;if(e!==null)if(typeof e=="function")try{e(null)}catch(s){Wi(o,s)}else e.current=null}function Xi(o,e){switch(e.tag){case 0:case 11:case 15:case 22:return;case 1:if(e.flags&256&&o!==null){var s=o.memoizedProps,a=o.memoizedState;o=e.stateNode,e=o.getSnapshotBeforeUpdate(e.elementType===e.type?s:lg(e.type,s),a),o.__reactInternalSnapshotBeforeUpdate=e}return;case 3:e.flags&256&&qf(e.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163))}function Yi(o,e,s){switch(s.tag){case 0:case 11:case 15:case 22:if(e=s.updateQueue,e=e!==null?e.lastEffect:null,e!==null){o=e=e.next;do{if((o.tag&3)===3){var a=o.create;o.destroy=a()}o=o.next}while(o!==e)}if(e=s.updateQueue,e=e!==null?e.lastEffect:null,e!==null){o=e=e.next;do{var c=o;a=c.next,c=c.tag,(c&4)!==0&&(c&1)!==0&&(Zi(s,o),$i(s,o)),o=a}while(o!==e)}return;case 1:o=s.stateNode,s.flags&4&&(e===null?o.componentDidMount():(a=s.elementType===s.type?e.memoizedProps:lg(s.type,e.memoizedProps),o.componentDidUpdate(a,e.memoizedState,o.__reactInternalSnapshotBeforeUpdate))),e=s.updateQueue,e!==null&&Eg(s,e,o);return;case 3:if(e=s.updateQueue,e!==null){if(o=null,s.child!==null)switch(s.child.tag){case 5:o=s.child.stateNode;break;case 1:o=s.child.stateNode}Eg(s,e,o)}return;case 5:o=s.stateNode,e===null&&s.flags&4&&mf(s.type,s.memoizedProps)&&o.focus();return;case 6:return;case 4:return;case 12:return;case 13:s.memoizedState===null&&(s=s.alternate,s!==null&&(s=s.memoizedState,s!==null&&(s=s.dehydrated,s!==null&&Cc(s))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163))}function aj(o,e){for(var s=o;;){if(s.tag===5){var a=s.stateNode;if(e)a=a.style,typeof a.setProperty=="function"?a.setProperty("display","none","important"):a.display="none";else{a=s.stateNode;var c=s.memoizedProps.style;c=c!=null&&c.hasOwnProperty("display")?c.display:null,a.style.display=sb("display",c)}}else if(s.tag===6)s.stateNode.nodeValue=e?"":s.memoizedProps;else if((s.tag!==23&&s.tag!==24||s.memoizedState===null||s===o)&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===o)break;for(;s.sibling===null;){if(s.return===null||s.return===o)return;s=s.return}s.sibling.return=s.return,s=s.sibling}}function bj(o,e){if(Mf&&typeof Mf.onCommitFiberUnmount=="function")try{Mf.onCommitFiberUnmount(Lf,e)}catch{}switch(e.tag){case 0:case 11:case 14:case 15:case 22:if(o=e.updateQueue,o!==null&&(o=o.lastEffect,o!==null)){var s=o=o.next;do{var a=s,c=a.destroy;if(a=a.tag,c!==void 0)if((a&4)!==0)Zi(e,s);else{a=e;try{c()}catch(d){Wi(a,d)}}s=s.next}while(s!==o)}break;case 1:if(Vi(e),o=e.stateNode,typeof o.componentWillUnmount=="function")try{o.props=e.memoizedProps,o.state=e.memoizedState,o.componentWillUnmount()}catch(d){Wi(e,d)}break;case 5:Vi(e);break;case 4:cj(o,e)}}function dj(o){o.alternate=null,o.child=null,o.dependencies=null,o.firstEffect=null,o.lastEffect=null,o.memoizedProps=null,o.memoizedState=null,o.pendingProps=null,o.return=null,o.updateQueue=null}function ej(o){return o.tag===5||o.tag===3||o.tag===4}function fj(o){e:{for(var e=o.return;e!==null;){if(ej(e))break e;e=e.return}throw Error(y(160))}var s=e;switch(e=s.stateNode,s.tag){case 5:var a=!1;break;case 3:e=e.containerInfo,a=!0;break;case 4:e=e.containerInfo,a=!0;break;default:throw Error(y(161))}s.flags&16&&(pb(e,""),s.flags&=-17);e:t:for(s=o;;){for(;s.sibling===null;){if(s.return===null||ej(s.return)){s=null;break e}s=s.return}for(s.sibling.return=s.return,s=s.sibling;s.tag!==5&&s.tag!==6&&s.tag!==18;){if(s.flags&2||s.child===null||s.tag===4)continue t;s.child.return=s,s=s.child}if(!(s.flags&2)){s=s.stateNode;break e}}a?gj(o,s,e):hj(o,s,e)}function gj(o,e,s){var a=o.tag,c=a===5||a===6;if(c)o=c?o.stateNode:o.stateNode.instance,e?s.nodeType===8?s.parentNode.insertBefore(o,e):s.insertBefore(o,e):(s.nodeType===8?(e=s.parentNode,e.insertBefore(o,s)):(e=s,e.appendChild(o)),s=s._reactRootContainer,s!=null||e.onclick!==null||(e.onclick=jf));else if(a!==4&&(o=o.child,o!==null))for(gj(o,e,s),o=o.sibling;o!==null;)gj(o,e,s),o=o.sibling}function hj(o,e,s){var a=o.tag,c=a===5||a===6;if(c)o=c?o.stateNode:o.stateNode.instance,e?s.insertBefore(o,e):s.appendChild(o);else if(a!==4&&(o=o.child,o!==null))for(hj(o,e,s),o=o.sibling;o!==null;)hj(o,e,s),o=o.sibling}function cj(o,e){for(var s=e,a=!1,c,d;;){if(!a){a=s.return;e:for(;;){if(a===null)throw Error(y(160));switch(c=a.stateNode,a.tag){case 5:d=!1;break e;case 3:c=c.containerInfo,d=!0;break e;case 4:c=c.containerInfo,d=!0;break e}a=a.return}a=!0}if(s.tag===5||s.tag===6){e:for(var _=o,b=s,k=b;;)if(bj(_,k),k.child!==null&&k.tag!==4)k.child.return=k,k=k.child;else{if(k===b)break e;for(;k.sibling===null;){if(k.return===null||k.return===b)break e;k=k.return}k.sibling.return=k.return,k=k.sibling}d?(_=c,b=s.stateNode,_.nodeType===8?_.parentNode.removeChild(b):_.removeChild(b)):c.removeChild(s.stateNode)}else if(s.tag===4){if(s.child!==null){c=s.stateNode.containerInfo,d=!0,s.child.return=s,s=s.child;continue}}else if(bj(o,s),s.child!==null){s.child.return=s,s=s.child;continue}if(s===e)break;for(;s.sibling===null;){if(s.return===null||s.return===e)return;s=s.return,s.tag===4&&(a=!1)}s.sibling.return=s.return,s=s.sibling}}function ij(o,e){switch(e.tag){case 0:case 11:case 14:case 15:case 22:var s=e.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var a=s=s.next;do(a.tag&3)===3&&(o=a.destroy,a.destroy=void 0,o!==void 0&&o()),a=a.next;while(a!==s)}return;case 1:return;case 5:if(s=e.stateNode,s!=null){a=e.memoizedProps;var c=o!==null?o.memoizedProps:a;o=e.type;var d=e.updateQueue;if(e.updateQueue=null,d!==null){for(s[xf]=a,o==="input"&&a.type==="radio"&&a.name!=null&&$a(s,a),wb(o,c),e=wb(o,a),c=0;cc&&(c=_),s&=~d}if(s=c,s=O()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*nj(s/1960))-s,10c&&(c=_),s&=~d}if(s=c,s=O()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*nj(s/1960))-s,10 component higher in the tree to provide a loading indicator or placeholder to display.`)}V!==5&&(V=2),k=Mi(k,b),et=_;do{switch(et.tag){case 3:d=k,et.flags|=4096,e&=-e,et.lanes|=e;var ct=Pi(et,d,e);Bg(et,ct);break e;case 1:d=k;var ut=et.type,lt=et.stateNode;if((et.flags&64)===0&&(typeof ut.getDerivedStateFromError=="function"||lt!==null&&typeof lt.componentDidCatch=="function"&&(Ti===null||!Ti.has(lt)))){et.flags|=4096,e&=-e,et.lanes|=e;var pt=Si(et,d,e);Bg(et,pt);break e}}et=et.return}while(et!==null)}Zj(s)}catch(dt){e=dt,Y===s&&s!==null&&(Y=s=s.return);continue}break}while(1)}function Pj(){var o=oj.current;return oj.current=Gh,o===null?Gh:o}function Tj(o,e){var s=X;X|=16;var a=Pj();U===o&&W===e||Qj(o,e);do try{ak();break}catch(c){Sj(o,c)}while(1);if(qg(),X=s,oj.current=a,Y!==null)throw Error(y(261));return U=null,W=0,V}function ak(){for(;Y!==null;)bk(Y)}function Rj(){for(;Y!==null&&!Qf();)bk(Y)}function bk(o){var e=ck(o.alternate,o,qj);o.memoizedProps=o.pendingProps,e===null?Zj(o):Y=e,pj.current=null}function Zj(o){var e=o;do{var s=e.alternate;if(o=e.return,(e.flags&2048)===0){if(s=Gi(s,e,qj),s!==null){Y=s;return}if(s=e,s.tag!==24&&s.tag!==23||s.memoizedState===null||(qj&1073741824)!==0||(s.mode&4)===0){for(var a=0,c=s.child;c!==null;)a|=c.lanes|c.childLanes,c=c.sibling;s.childLanes=a}o!==null&&(o.flags&2048)===0&&(o.firstEffect===null&&(o.firstEffect=e.firstEffect),e.lastEffect!==null&&(o.lastEffect!==null&&(o.lastEffect.nextEffect=e.firstEffect),o.lastEffect=e.lastEffect),1_&&(b=_,_=ct,ct=b),b=Le(at,ct),d=Le(at,_),b&&d&&(ht.rangeCount!==1||ht.anchorNode!==b.node||ht.anchorOffset!==b.offset||ht.focusNode!==d.node||ht.focusOffset!==d.offset)&&(ot=ot.createRange(),ot.setStart(b.node,b.offset),ht.removeAllRanges(),ct>_?(ht.addRange(ot),ht.extend(d.node,d.offset)):(ot.setEnd(d.node,d.offset),ht.addRange(ot)))))),ot=[],ht=at;ht=ht.parentNode;)ht.nodeType===1&&ot.push({element:ht,left:ht.scrollLeft,top:ht.scrollTop});for(typeof at.focus=="function"&&at.focus(),at=0;atO()-jj?Qj(o,0):uj|=s),Mj(o,e)}function lj(o,e){var s=o.stateNode;s!==null&&s.delete(e),e=0,e===0&&(e=o.mode,(e&2)===0?e=1:(e&4)===0?e=eg()===99?1:2:(Gj===0&&(Gj=tj),e=Yc(62914560&~Gj),e===0&&(e=4194304))),s=Hg(),o=Kj(o,e),o!==null&&($c(o,e,s),Mj(o,s))}var ck;ck=function(o,e,s){var a=e.lanes;if(o!==null)if(o.memoizedProps!==e.pendingProps||N.current)ug=!0;else if((s&a)!==0)ug=(o.flags&16384)!==0;else{switch(ug=!1,e.tag){case 3:ri(e),sh();break;case 5:gh(e);break;case 1:Ff(e.type)&&Jf(e);break;case 4:eh(e,e.stateNode.containerInfo);break;case 10:a=e.memoizedProps.value;var c=e.type._context;I$1(mg,c._currentValue),c._currentValue=a;break;case 13:if(e.memoizedState!==null)return(s&e.child.childLanes)!==0?ti(o,e,s):(I$1(P,P.current&1),e=hi(o,e,s),e!==null?e.sibling:null);I$1(P,P.current&1);break;case 19:if(a=(s&e.childLanes)!==0,(o.flags&64)!==0){if(a)return Ai(o,e,s);e.flags|=64}if(c=e.memoizedState,c!==null&&(c.rendering=null,c.tail=null,c.lastEffect=null),I$1(P,P.current),a)break;return null;case 23:case 24:return e.lanes=0,mi(o,e,s)}return hi(o,e,s)}else ug=!1;switch(e.lanes=0,e.tag){case 2:if(a=e.type,o!==null&&(o.alternate=null,e.alternate=null,e.flags|=2),o=e.pendingProps,c=Ef(e,M.current),tg(e,s),c=Ch(null,e,a,o,c,s),e.flags|=1,typeof c=="object"&&c!==null&&typeof c.render=="function"&&c.$$typeof===void 0){if(e.tag=1,e.memoizedState=null,e.updateQueue=null,Ff(a)){var d=!0;Jf(e)}else d=!1;e.memoizedState=c.state!==null&&c.state!==void 0?c.state:null,xg(e);var _=a.getDerivedStateFromProps;typeof _=="function"&&Gg(e,a,_,o),c.updater=Kg,e.stateNode=c,c._reactInternals=e,Og(e,a,o,s),e=qi(null,e,a,!0,d,s)}else e.tag=0,fi(null,e,c,s),e=e.child;return e;case 16:c=e.elementType;e:{switch(o!==null&&(o.alternate=null,e.alternate=null,e.flags|=2),o=e.pendingProps,d=c._init,c=d(c._payload),e.type=c,d=e.tag=hk(c),o=lg(c,o),d){case 0:e=li(null,e,c,o,s);break e;case 1:e=pi(null,e,c,o,s);break e;case 11:e=gi(null,e,c,o,s);break e;case 14:e=ii(null,e,c,lg(c.type,o),a,s);break e}throw Error(y(306,c,""))}return e;case 0:return a=e.type,c=e.pendingProps,c=e.elementType===a?c:lg(a,c),li(o,e,a,c,s);case 1:return a=e.type,c=e.pendingProps,c=e.elementType===a?c:lg(a,c),pi(o,e,a,c,s);case 3:if(ri(e),a=e.updateQueue,o===null||a===null)throw Error(y(282));if(a=e.pendingProps,c=e.memoizedState,c=c!==null?c.element:null,yg(o,e),Cg(e,a,null,s),a=e.memoizedState.element,a===c)sh(),e=hi(o,e,s);else{if(c=e.stateNode,(d=c.hydrate)&&(kh=rf(e.stateNode.containerInfo.firstChild),jh=e,d=lh=!0),d){if(o=c.mutableSourceEagerHydrationData,o!=null)for(c=0;c=0)&&(s[c]=o[c]);return s}function _objectWithoutProperties(o,e){if(o==null)return{};var s=_objectWithoutPropertiesLoose(o,e),a,c;if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(o);for(c=0;c=0)&&(!Object.prototype.propertyIsEnumerable.call(o,a)||(s[a]=o[a]))}return s}var isFunction$1=function(e){return typeof e=="function"},MDXContext=React.createContext({}),useMDXComponents=function(e){var s=React.useContext(MDXContext),a=s;return e&&(a=isFunction$1(e)?e(s):_objectSpread2(_objectSpread2({},s),e)),a},TYPE_PROP_NAME="mdxType",DEFAULTS={inlineCode:"code",wrapper:function(e){var s=e.children;return React.createElement(React.Fragment,{},s)}},MDXCreateElement=React.forwardRef(function(o,e){var s=o.components,a=o.mdxType,c=o.originalType,d=o.parentName,_=_objectWithoutProperties(o,["components","mdxType","originalType","parentName"]),b=useMDXComponents(s),k=a,$=b["".concat(d,".").concat(k)]||b[k]||DEFAULTS[k]||c;return s?React.createElement($,_objectSpread2(_objectSpread2({ref:e},_),{},{components:s})):React.createElement($,_objectSpread2({ref:e},_))});MDXCreateElement.displayName="MDXCreateElement";function createElement(o,e){var s=arguments,a=e&&e.mdxType;if(typeof o=="string"||a){var c=s.length,d=new Array(c);d[0]=MDXCreateElement;var _={};for(var b in e)hasOwnProperty.call(e,b)&&(_[b]=e[b]);_.originalType=o,_[TYPE_PROP_NAME]=typeof o=="string"?o:a,d[1]=_;for(var k=2;k{if(a=`${base$1}${a}`,a in seen)return;seen[a]=!0;const c=a.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${a}"]${d}`))return;const _=document.createElement("link");if(_.rel=c?"stylesheet":scriptRel,c||(_.as="script",_.crossOrigin=""),_.href=a,document.head.appendChild(_),c)return new Promise((b,k)=>{_.addEventListener("load",b),_.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${a}`)))})})).then(()=>e())};var fraction$1={exports:{}};/** +Add a component higher in the tree to provide a loading indicator or placeholder to display.`)}V!==5&&(V=2),k=Mi(k,b),et=_;do{switch(et.tag){case 3:d=k,et.flags|=4096,e&=-e,et.lanes|=e;var ct=Pi(et,d,e);Bg(et,ct);break e;case 1:d=k;var ut=et.type,lt=et.stateNode;if((et.flags&64)===0&&(typeof ut.getDerivedStateFromError=="function"||lt!==null&&typeof lt.componentDidCatch=="function"&&(Ti===null||!Ti.has(lt)))){et.flags|=4096,e&=-e,et.lanes|=e;var pt=Si(et,d,e);Bg(et,pt);break e}}et=et.return}while(et!==null)}Zj(s)}catch(dt){e=dt,Y===s&&s!==null&&(Y=s=s.return);continue}break}while(1)}function Pj(){var o=oj.current;return oj.current=Gh,o===null?Gh:o}function Tj(o,e){var s=X;X|=16;var a=Pj();U===o&&W===e||Qj(o,e);do try{ak();break}catch(c){Sj(o,c)}while(1);if(qg(),X=s,oj.current=a,Y!==null)throw Error(y(261));return U=null,W=0,V}function ak(){for(;Y!==null;)bk(Y)}function Rj(){for(;Y!==null&&!Qf();)bk(Y)}function bk(o){var e=ck(o.alternate,o,qj);o.memoizedProps=o.pendingProps,e===null?Zj(o):Y=e,pj.current=null}function Zj(o){var e=o;do{var s=e.alternate;if(o=e.return,(e.flags&2048)===0){if(s=Gi(s,e,qj),s!==null){Y=s;return}if(s=e,s.tag!==24&&s.tag!==23||s.memoizedState===null||(qj&1073741824)!==0||(s.mode&4)===0){for(var a=0,c=s.child;c!==null;)a|=c.lanes|c.childLanes,c=c.sibling;s.childLanes=a}o!==null&&(o.flags&2048)===0&&(o.firstEffect===null&&(o.firstEffect=e.firstEffect),e.lastEffect!==null&&(o.lastEffect!==null&&(o.lastEffect.nextEffect=e.firstEffect),o.lastEffect=e.lastEffect),1_&&(b=_,_=ct,ct=b),b=Le(at,ct),d=Le(at,_),b&&d&&(ht.rangeCount!==1||ht.anchorNode!==b.node||ht.anchorOffset!==b.offset||ht.focusNode!==d.node||ht.focusOffset!==d.offset)&&(ot=ot.createRange(),ot.setStart(b.node,b.offset),ht.removeAllRanges(),ct>_?(ht.addRange(ot),ht.extend(d.node,d.offset)):(ot.setEnd(d.node,d.offset),ht.addRange(ot)))))),ot=[],ht=at;ht=ht.parentNode;)ht.nodeType===1&&ot.push({element:ht,left:ht.scrollLeft,top:ht.scrollTop});for(typeof at.focus=="function"&&at.focus(),at=0;atO()-jj?Qj(o,0):uj|=s),Mj(o,e)}function lj(o,e){var s=o.stateNode;s!==null&&s.delete(e),e=0,e===0&&(e=o.mode,(e&2)===0?e=1:(e&4)===0?e=eg()===99?1:2:(Gj===0&&(Gj=tj),e=Yc(62914560&~Gj),e===0&&(e=4194304))),s=Hg(),o=Kj(o,e),o!==null&&($c(o,e,s),Mj(o,s))}var ck;ck=function(o,e,s){var a=e.lanes;if(o!==null)if(o.memoizedProps!==e.pendingProps||N.current)ug=!0;else if((s&a)!==0)ug=(o.flags&16384)!==0;else{switch(ug=!1,e.tag){case 3:ri(e),sh();break;case 5:gh(e);break;case 1:Ff(e.type)&&Jf(e);break;case 4:eh(e,e.stateNode.containerInfo);break;case 10:a=e.memoizedProps.value;var c=e.type._context;I$1(mg,c._currentValue),c._currentValue=a;break;case 13:if(e.memoizedState!==null)return(s&e.child.childLanes)!==0?ti(o,e,s):(I$1(P,P.current&1),e=hi(o,e,s),e!==null?e.sibling:null);I$1(P,P.current&1);break;case 19:if(a=(s&e.childLanes)!==0,(o.flags&64)!==0){if(a)return Ai(o,e,s);e.flags|=64}if(c=e.memoizedState,c!==null&&(c.rendering=null,c.tail=null,c.lastEffect=null),I$1(P,P.current),a)break;return null;case 23:case 24:return e.lanes=0,mi(o,e,s)}return hi(o,e,s)}else ug=!1;switch(e.lanes=0,e.tag){case 2:if(a=e.type,o!==null&&(o.alternate=null,e.alternate=null,e.flags|=2),o=e.pendingProps,c=Ef(e,M.current),tg(e,s),c=Ch(null,e,a,o,c,s),e.flags|=1,typeof c=="object"&&c!==null&&typeof c.render=="function"&&c.$$typeof===void 0){if(e.tag=1,e.memoizedState=null,e.updateQueue=null,Ff(a)){var d=!0;Jf(e)}else d=!1;e.memoizedState=c.state!==null&&c.state!==void 0?c.state:null,xg(e);var _=a.getDerivedStateFromProps;typeof _=="function"&&Gg(e,a,_,o),c.updater=Kg,e.stateNode=c,c._reactInternals=e,Og(e,a,o,s),e=qi(null,e,a,!0,d,s)}else e.tag=0,fi(null,e,c,s),e=e.child;return e;case 16:c=e.elementType;e:{switch(o!==null&&(o.alternate=null,e.alternate=null,e.flags|=2),o=e.pendingProps,d=c._init,c=d(c._payload),e.type=c,d=e.tag=hk(c),o=lg(c,o),d){case 0:e=li(null,e,c,o,s);break e;case 1:e=pi(null,e,c,o,s);break e;case 11:e=gi(null,e,c,o,s);break e;case 14:e=ii(null,e,c,lg(c.type,o),a,s);break e}throw Error(y(306,c,""))}return e;case 0:return a=e.type,c=e.pendingProps,c=e.elementType===a?c:lg(a,c),li(o,e,a,c,s);case 1:return a=e.type,c=e.pendingProps,c=e.elementType===a?c:lg(a,c),pi(o,e,a,c,s);case 3:if(ri(e),a=e.updateQueue,o===null||a===null)throw Error(y(282));if(a=e.pendingProps,c=e.memoizedState,c=c!==null?c.element:null,yg(o,e),Cg(e,a,null,s),a=e.memoizedState.element,a===c)sh(),e=hi(o,e,s);else{if(c=e.stateNode,(d=c.hydrate)&&(kh=rf(e.stateNode.containerInfo.firstChild),jh=e,d=lh=!0),d){if(o=c.mutableSourceEagerHydrationData,o!=null)for(c=0;c=0)&&(s[c]=o[c]);return s}function _objectWithoutProperties(o,e){if(o==null)return{};var s=_objectWithoutPropertiesLoose$1(o,e),a,c;if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(o);for(c=0;c=0)&&(!Object.prototype.propertyIsEnumerable.call(o,a)||(s[a]=o[a]))}return s}var isFunction$1=function(e){return typeof e=="function"},MDXContext=React.createContext({}),useMDXComponents=function(e){var s=React.useContext(MDXContext),a=s;return e&&(a=isFunction$1(e)?e(s):_objectSpread2(_objectSpread2({},s),e)),a},TYPE_PROP_NAME="mdxType",DEFAULTS={inlineCode:"code",wrapper:function(e){var s=e.children;return React.createElement(React.Fragment,{},s)}},MDXCreateElement=React.forwardRef(function(o,e){var s=o.components,a=o.mdxType,c=o.originalType,d=o.parentName,_=_objectWithoutProperties(o,["components","mdxType","originalType","parentName"]),b=useMDXComponents(s),k=a,$=b["".concat(d,".").concat(k)]||b[k]||DEFAULTS[k]||c;return s?React.createElement($,_objectSpread2(_objectSpread2({ref:e},_),{},{components:s})):React.createElement($,_objectSpread2({ref:e},_))});MDXCreateElement.displayName="MDXCreateElement";function createElement(o,e){var s=arguments,a=e&&e.mdxType;if(typeof o=="string"||a){var c=s.length,d=new Array(c);d[0]=MDXCreateElement;var _={};for(var b in e)hasOwnProperty.call(e,b)&&(_[b]=e[b]);_.originalType=o,_[TYPE_PROP_NAME]=typeof o=="string"?o:a,d[1]=_;for(var k=2;k{if(a=`${base$1}${a}`,a in seen)return;seen[a]=!0;const c=a.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${a}"]${d}`))return;const _=document.createElement("link");if(_.rel=c?"stylesheet":scriptRel,c||(_.as="script",_.crossOrigin=""),_.href=a,document.head.appendChild(_),c)return new Promise((b,k)=>{_.addEventListener("load",b),_.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${a}`)))})})).then(()=>e())};var fraction$1={exports:{}};/** * @license Fraction.js v4.2.0 05/03/2022 * https://www.xarg.org/2014/03/rational-numbers-in-javascript/ * * Copyright (c) 2021, Robert Eisele (robert@xarg.org) * Dual licensed under the MIT or GPL Version 2 licenses. - **/(function(o,e){(function(s){var a=2e3,c={s:1,n:0,d:1};function d(nt,it){if(isNaN(nt=parseInt(nt,10)))throw tt.InvalidParameter;return nt*it}function _(nt,it){if(it===0)throw tt.DivisionByZero;var rt=Object.create(tt.prototype);rt.s=nt<0?-1:1,nt=nt<0?-nt:nt;var st=et(nt,it);return rt.n=nt/st,rt.d=it/st,rt}function b(nt){for(var it={},rt=nt,st=2,at=4;at<=rt;){for(;rt%st===0;)rt/=st,it[st]=(it[st]||0)+1;at+=1+2*st++}return rt!==nt?rt>1&&(it[rt]=(it[rt]||0)+1):it[nt]=(it[nt]||0)+1,it}var k=function(nt,it){var rt=0,st=1,at=1,ot=0,ht=0,ct=0,ut=1,lt=1,pt=0,dt=1,gt=1,Et=1,ft=1e7,yt;if(nt!=null)if(it!==void 0){if(rt=nt,st=it,at=rt*st,rt%1!==0||st%1!==0)throw tt.NonIntegerParameter}else switch(typeof nt){case"object":{if("d"in nt&&"n"in nt)rt=nt.n,st=nt.d,"s"in nt&&(rt*=nt.s);else if(0 in nt)rt=nt[0],1 in nt&&(st=nt[1]);else throw tt.InvalidParameter;at=rt*st;break}case"number":{if(nt<0&&(at=nt,nt=-nt),nt%1===0)rt=nt;else if(nt>0){for(nt>=1&&(lt=Math.pow(10,Math.floor(1+Math.log(nt)/Math.LN10)),nt/=lt);dt<=ft&&Et<=ft;)if(yt=(pt+gt)/(dt+Et),nt===yt){dt+Et<=ft?(rt=pt+gt,st=dt+Et):Et>dt?(rt=gt,st=Et):(rt=pt,st=dt);break}else nt>yt?(pt+=gt,dt+=Et):(gt+=pt,Et+=dt),dt>ft?(rt=gt,st=Et):(rt=pt,st=dt);rt*=lt}else(isNaN(nt)||isNaN(it))&&(st=rt=NaN);break}case"string":{if(dt=nt.match(/\d+|./g),dt===null)throw tt.InvalidParameter;if(dt[pt]==="-"?(at=-1,pt++):dt[pt]==="+"&&pt++,dt.length===pt+1?ht=d(dt[pt++],at):dt[pt+1]==="."||dt[pt]==="."?(dt[pt]!=="."&&(ot=d(dt[pt++],at)),pt++,(pt+1===dt.length||dt[pt+1]==="("&&dt[pt+3]===")"||dt[pt+1]==="'"&&dt[pt+3]==="'")&&(ht=d(dt[pt],at),ut=Math.pow(10,dt[pt].length),pt++),(dt[pt]==="("&&dt[pt+2]===")"||dt[pt]==="'"&&dt[pt+2]==="'")&&(ct=d(dt[pt+1],at),lt=Math.pow(10,dt[pt+1].length)-1,pt+=3)):dt[pt+1]==="/"||dt[pt+1]===":"?(ht=d(dt[pt],at),ut=d(dt[pt+2],1),pt+=3):dt[pt+3]==="/"&&dt[pt+1]===" "&&(ot=d(dt[pt],at),ht=d(dt[pt+2],at),ut=d(dt[pt+4],1),pt+=5),dt.length<=pt){st=ut*lt,at=rt=ct+st*ot+lt*ht;break}}default:throw tt.InvalidParameter}if(st===0)throw tt.DivisionByZero;c.s=at<0?-1:1,c.n=Math.abs(rt),c.d=Math.abs(st)};function $(nt,it,rt){for(var st=1;it>0;nt=nt*nt%rt,it>>=1)it&1&&(st=st*nt%rt);return st}function j(nt,it){for(;it%2===0;it/=2);for(;it%5===0;it/=5);if(it===1)return 0;for(var rt=10%it,st=1;rt!==1;st++)if(rt=rt*10%it,st>a)return 0;return st}function _e(nt,it,rt){for(var st=1,at=$(10,rt,it),ot=0;ot<300;ot++){if(st===at)return ot;st=st*10%it,at=at*10%it}return 0}function et(nt,it){if(!nt)return it;if(!it)return nt;for(;;){if(nt%=it,!nt)return it;if(it%=nt,!it)return nt}}function tt(nt,it){if(k(nt,it),this instanceof tt)nt=et(c.d,c.n),this.s=c.s,this.n=c.n/nt,this.d=c.d/nt;else return _(c.s*c.n,c.d)}tt.DivisionByZero=new Error("Division by Zero"),tt.InvalidParameter=new Error("Invalid argument"),tt.NonIntegerParameter=new Error("Parameters must be integer"),tt.prototype={s:1,n:0,d:1,abs:function(){return _(this.n,this.d)},neg:function(){return _(-this.s*this.n,this.d)},add:function(nt,it){return k(nt,it),_(this.s*this.n*c.d+c.s*this.d*c.n,this.d*c.d)},sub:function(nt,it){return k(nt,it),_(this.s*this.n*c.d-c.s*this.d*c.n,this.d*c.d)},mul:function(nt,it){return k(nt,it),_(this.s*c.s*this.n*c.n,this.d*c.d)},div:function(nt,it){return k(nt,it),_(this.s*c.s*this.n*c.d,this.d*c.n)},clone:function(){return _(this.s*this.n,this.d)},mod:function(nt,it){if(isNaN(this.n)||isNaN(this.d))return new tt(NaN);if(nt===void 0)return _(this.s*this.n%this.d,1);if(k(nt,it),c.n===0&&this.d===0)throw tt.DivisionByZero;return _(this.s*(c.d*this.n)%(c.n*this.d),c.d*this.d)},gcd:function(nt,it){return k(nt,it),_(et(c.n,this.n)*et(c.d,this.d),c.d*this.d)},lcm:function(nt,it){return k(nt,it),c.n===0&&this.n===0?_(0,1):_(c.n*this.n,et(c.n,this.n)*et(c.d,this.d))},ceil:function(nt){return nt=Math.pow(10,nt||0),isNaN(this.n)||isNaN(this.d)?new tt(NaN):_(Math.ceil(nt*this.s*this.n/this.d),nt)},floor:function(nt){return nt=Math.pow(10,nt||0),isNaN(this.n)||isNaN(this.d)?new tt(NaN):_(Math.floor(nt*this.s*this.n/this.d),nt)},round:function(nt){return nt=Math.pow(10,nt||0),isNaN(this.n)||isNaN(this.d)?new tt(NaN):_(Math.round(nt*this.s*this.n/this.d),nt)},inverse:function(){return _(this.s*this.d,this.n)},pow:function(nt,it){if(k(nt,it),c.d===1)return c.s<0?_(Math.pow(this.s*this.d,c.n),Math.pow(this.n,c.n)):_(Math.pow(this.s*this.n,c.n),Math.pow(this.d,c.n));if(this.s<0)return null;var rt=b(this.n),st=b(this.d),at=1,ot=1;for(var ht in rt)if(ht!=="1"){if(ht==="0"){at=0;break}if(rt[ht]*=c.n,rt[ht]%c.d===0)rt[ht]/=c.d;else return null;at*=Math.pow(ht,rt[ht])}for(var ht in st)if(ht!=="1"){if(st[ht]*=c.n,st[ht]%c.d===0)st[ht]/=c.d;else return null;ot*=Math.pow(ht,st[ht])}return c.s<0?_(ot,at):_(at,ot)},equals:function(nt,it){return k(nt,it),this.s*this.n*c.d===c.s*c.n*this.d},compare:function(nt,it){k(nt,it);var rt=this.s*this.n*c.d-c.s*c.n*this.d;return(0=0;ot--)at=at.inverse().add(rt[ot]);if(at.sub(it).abs().valueOf()0&&(rt+=it,rt+=" ",st%=at),rt+=st,rt+="/",rt+=at),rt},toLatex:function(nt){var it,rt="",st=this.n,at=this.d;return this.s<0&&(rt+="-"),at===1?rt+=st:(nt&&(it=Math.floor(st/at))>0&&(rt+=it,st%=at),rt+="\\frac{",rt+=st,rt+="}{",rt+=at,rt+="}"),rt},toContinued:function(){var nt,it=this.n,rt=this.d,st=[];if(isNaN(it)||isNaN(rt))return st;do st.push(Math.floor(it/rt)),nt=it%rt,it=rt,rt=nt;while(it!==1);return st},toString:function(nt){var it=this.n,rt=this.d;if(isNaN(it)||isNaN(rt))return"NaN";nt=nt||15;var st=j(it,rt),at=_e(it,rt,st),ot=this.s<0?"-":"";if(ot+=it/rt|0,it%=rt,it*=10,it&&(ot+="."),st){for(var ht=at;ht--;)ot+=it/rt|0,it%=rt,it*=10;ot+="(";for(var ht=st;ht--;)ot+=it/rt|0,it%=rt,it*=10;ot+=")"}else for(var ht=nt;it&&ht--;)ot+=it/rt|0,it%=rt,it*=10;return ot}},Object.defineProperty(tt,"__esModule",{value:!0}),tt.default=tt,tt.Fraction=tt,o.exports=tt})()})(fraction$1);var Fraction=getDefaultExportFromCjs(fraction$1.exports);Fraction.prototype.sam=function(){return this.floor()};Fraction.prototype.nextSam=function(){return this.sam().add(1)};Fraction.prototype.wholeCycle=function(){return new TimeSpan$1(this.sam(),this.nextSam())};Fraction.prototype.cyclePos=function(){return this.sub(this.sam())};Fraction.prototype.lt=function(o){return this.compare(o)<0};Fraction.prototype.gt=function(o){return this.compare(o)>0};Fraction.prototype.lte=function(o){return this.compare(o)<=0};Fraction.prototype.gte=function(o){return this.compare(o)>=0};Fraction.prototype.eq=function(o){return this.compare(o)==0};Fraction.prototype.max=function(o){return this.gt(o)?this:o};Fraction.prototype.min=function(o){return this.lt(o)?this:o};Fraction.prototype.show=function(){return this.s*this.n+"/"+this.d};Fraction.prototype.or=function(o){return this.eq(0)?o:this};const fraction=o=>(typeof o=="number"&&(o=String(o)),Fraction(o)),gcd=(...o)=>o.reduce((e,s)=>e.gcd(s),fraction(1));fraction._original=Fraction;class TimeSpan$1{constructor(e,s){this.begin=fraction(e),this.end=fraction(s)}get spanCycles(){const e=[];var s=this.begin;const a=this.end,c=a.sam();for(;a.gt(s);){if(s.sam().equals(c)){e.push(new TimeSpan$1(s,this.end));break}const d=s.nextSam();e.push(new TimeSpan$1(s,d)),s=d}return e}get duration(){return this.end.sub(this.begin)}cycleArc(){const e=this.begin.cyclePos(),s=e.add(this.duration);return new TimeSpan$1(e,s)}withTime(e){return new TimeSpan$1(e(this.begin),e(this.end))}withEnd(e){return new TimeSpan$1(this.begin,e(this.end))}withCycle(e){const s=this.begin.sam(),a=s.add(e(this.begin.sub(s))),c=s.add(e(this.end.sub(s)));return new TimeSpan$1(a,c)}intersection(e){const s=this.begin.max(e.begin),a=this.end.min(e.end);if(!s.gt(a)&&!(s.equals(a)&&(s.equals(this.end)&&this.begin.lt(this.end)||s.equals(e.end)&&e.begin.lt(e.end))))return new TimeSpan$1(s,a)}intersection_e(e){const s=this.intersection(e);if(s==null)throw"TimeSpans do not intersect";return s}midpoint(){return this.begin.add(this.duration.div(fraction(2)))}equals(e){return this.begin.equals(e.begin)&&this.end.equals(e.end)}show(){return this.begin.show()+" -> "+this.end.show()}}class Hap{constructor(e,s,a,c={},d=!1){this.whole=e,this.part=s,this.value=a,this.context=c,this.stateful=d,d&&console.assert(typeof this.value=="function","Stateful values must be functions")}get duration(){return this.whole.end.sub(this.whole.begin)}wholeOrPart(){return this.whole?this.whole:this.part}withSpan(e){const s=this.whole?e(this.whole):void 0;return new Hap(s,e(this.part),this.value,this.context)}withValue(e){return new Hap(this.whole,this.part,e(this.value),this.context)}hasOnset(){return this.whole!=null&&this.whole.begin.equals(this.part.begin)}resolveState(e){if(this.stateful&&this.hasOnset()){console.log("stateful");const s=this.value,[a,c]=s(e);return[a,new Hap(this.whole,this.part,c,this.context,!1)]}return[e,this]}spanEquals(e){return this.whole==null&&e.whole==null||this.whole.equals(e.whole)}equals(e){return this.spanEquals(e)&&this.part.equals(e.part)&&this.value===e.value}show(){return"("+(this.whole==null?"~":this.whole.show())+", "+this.part.show()+", "+this.value+")"}showWhole(){return`${this.whole==null?"~":this.whole.show()}: ${typeof this.value=="object"?JSON.stringify(this.value):this.value}`}combineContext(e){const s=this;return wt(_t(_t({},s.context),e.context),{locations:(s.context.locations||[]).concat(e.context.locations||[])})}setContext(e){return new Hap(this.whole,this.part,this.value,e)}}class State$1{constructor(e,s={}){this.span=e,this.controls=s}setSpan(e){return new State$1(e,this.controls)}withSpan(e){return this.setSpan(e(this.span))}setControls(e){return new State$1(this.span,e)}}const isNote$3=o=>/^[a-gA-G][#b]*[0-9]$/.test(o),tokenizeNote=o=>{var c;if(typeof o!="string")return[];const[e,s="",a]=((c=o.match(/^([a-gA-G])([#bs]*)([0-9])?$/))==null?void 0:c.slice(1))||[];return e?[e,s,a?Number(a):void 0]:[]},toMidi$1=o=>{const[e,s,a]=tokenizeNote(o);if(!e)throw new Error('not a note: "'+o+'"');const c={c:0,d:2,e:4,f:5,g:7,a:9,b:11}[e.toLowerCase()],d=(s==null?void 0:s.split("").reduce((_,b)=>_+{"#":1,b:-1,s:1}[b],0))||0;return(Number(a)+1)*12+c+d},fromMidi=o=>Math.pow(2,(o-69)/12)*440,getFreq=o=>fromMidi(typeof o=="number"?o:toMidi$1(o)),midi2note=o=>{const e=Math.floor(o/12)-1;return["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"][o%12]+e},mod=(o,e)=>(o%e+e)%e,getPlayableNoteValue=o=>{let{value:e,context:s}=o;if(typeof e=="number"&&s.type!=="frequency")e=fromMidi(o.value);else if(typeof e=="string"&&!isNote$3(e))throw new Error("not a note: "+e);return e},getFrequency=o=>{let{value:e,context:s}=o;if(typeof e=="object"&&e.freq)return e.freq;if(typeof e=="number"&&s.type!=="frequency")e=fromMidi(o.value);else if(typeof e=="string"&&isNote$3(e))e=fromMidi(toMidi$1(o.value));else if(typeof e!="number")throw new Error("not a note or frequency:"+e);return e},rotate=(o,e)=>o.slice(e).concat(o.slice(0,e)),pipe=(...o)=>o.reduce((e,s)=>(...a)=>e(s(...a)),e=>e),compose=(...o)=>pipe(...o.reverse()),removeUndefineds=o=>o.filter(e=>e!=null),flatten$1=o=>[].concat(...o),id$1=o=>o,constant=(o,e)=>o,listRange=(o,e)=>Array.from({length:e-o+1},(s,a)=>a+o);function curry(o,e){const s=function a(...c){if(c.length>=o.length)return o.apply(this,c);{const d=function(..._){return a.apply(this,c.concat(_))};return e&&e(d,c),d}};return e&&e(s,[]),s}function unionWithObj(o,e,s){const a=Object.keys(o).filter(c=>Object.keys(e).includes(c));return Object.assign({},o,e,Object.fromEntries(a.map(c=>[c,s(o[c],e[c])])))}curry((o,e)=>o*e);curry((o,e)=>e.map(o));function drawLine(o,e=60){let s=0,a=fraction(0),c=[""],d="";for(;c[0].lengthj.hasOnset()).map(j=>j.duration),k=gcd(...b),$=k.inverse();c=c.map(j=>j+"|"),d+="|";for(let j=0;j<$;j++){const[_e,et]=[a,a.add(k)],tt=_.filter(it=>it.whole.begin.lte(_e)&&it.whole.end.gte(et)),nt=tt.length-c.length;nt>0&&(c=c.concat(Array(nt).fill(d))),c=c.map((it,rt)=>{const st=tt[rt];if(st){const ot=st.whole.begin.eq(_e)?""+st.value:"-";return it+ot}return it+"."}),d+=".",a=a.add(k)}s++}return c.join(` -`)}class Pattern$5{constructor(e){fr(this,"_Pattern",!0);this.query=e}queryArc(e,s){return this.query(new State$1(new TimeSpan$1(e,s)))}_splitQueries(){const e=this,s=a=>flatten$1(a.span.spanCycles.map(c=>e.query(a.setSpan(c))));return new Pattern$5(s)}withQuerySpan(e){return new Pattern$5(s=>this.query(s.withSpan(e)))}withQueryTime(e){return new Pattern$5(s=>this.query(s.withSpan(a=>a.withTime(e))))}withHapSpan(e){return new Pattern$5(s=>this.query(s).map(a=>a.withSpan(e)))}withHapTime(e){return this.withHapSpan(s=>s.withTime(e))}_withHaps(e){return new Pattern$5(s=>e(this.query(s)))}_withHap(e){return this._withHaps(s=>s.map(e))}_setContext(e){return this._withHap(s=>s.setContext(e))}_withContext(e){return this._withHap(s=>s.setContext(e(s.context)))}_stripContext(){return this._withHap(e=>e.setContext({}))}withLocation(e,s){const a={start:{line:e[0],column:e[1],offset:e[2]},end:{line:s[0],column:s[1],offset:s[2]}};return this._withContext(c=>{const d=(c.locations||[]).concat([a]);return wt(_t({},c),{locations:d})})}withMiniLocation(e,s){const a={start:{line:e[0],column:e[1],offset:e[2]},end:{line:s[0],column:s[1],offset:s[2]}};return this._withContext(c=>{let d=c.locations||[];return d=d.map(({start:_,end:b})=>{const k=_.line===1?a.start.column:0;return{start:wt(_t({},_),{line:_.line-1+(a.start.line-1)+1,column:_.column-1+k}),end:wt(_t({},b),{line:b.line-1+(a.start.line-1)+1,column:b.column-1+k})}}),wt(_t({},c),{locations:d})})}withValue(e){return new Pattern$5(s=>this.query(s).map(a=>a.withValue(e)))}fmap(e){return this.withValue(e)}_filterHaps(e){return new Pattern$5(s=>this.query(s).filter(e))}_filterValues(e){return new Pattern$5(s=>this.query(s).filter(a=>e(a.value)))}_removeUndefineds(){return this._filterValues(e=>e!=null)}onsetsOnly(){return this._filterHaps(e=>e.hasOnset())}discreteOnly(){return this._filterHaps(e=>e.whole)}_appWhole(e,s){const a=this,c=function(d){const _=a.query(d),b=s.query(d),k=function($,j){const _e=$.part.intersection(j.part);if(_e!=null)return new Hap(e($.whole,j.whole),_e,$.value(j.value),j.combineContext($))};return flatten$1(_.map($=>removeUndefineds(b.map(j=>k($,j)))))};return new Pattern$5(c)}appBoth(e){const s=function(a,c){if(!(a==null||c==null))return a.intersection_e(c)};return this._appWhole(s,e)}appLeft(e){const s=this,a=function(c){const d=[];for(const _ of s.query(c)){const b=e.query(c.setSpan(_.wholeOrPart()));for(const k of b){const $=_.whole,j=_.part.intersection(k.part);if(j){const _e=_.value(k.value),et=k.combineContext(_),tt=new Hap($,j,_e,et);d.push(tt)}}}return d};return new Pattern$5(a)}appRight(e){const s=this,a=function(c){const d=[];for(const _ of e.query(c)){const b=s.query(c.setSpan(_.wholeOrPart()));for(const k of b){const $=_.whole,j=k.part.intersection(_.part);if(j){const _e=k.value(_.value),et=_.combineContext(k),tt=new Hap($,j,_e,et);d.push(tt)}}}return d};return new Pattern$5(a)}firstCycle(e=!1){var s=this;return e||(s=s._stripContext()),s.query(new State$1(new TimeSpan$1(fraction(0),fraction(1))))}get _firstCycleValues(){return this.firstCycle().map(e=>e.value)}get _showFirstCycle(){return this.firstCycle().map(e=>`${e.value}: ${e.whole.begin.toFraction()} - ${e.whole.end.toFraction()}`)}_sortHapsByPart(){return this._withHaps(e=>e.sort((s,a)=>s.part.begin.sub(a.part.begin).or(s.part.end.sub(a.part.end)).or(s.whole.begin.sub(a.whole.begin).or(s.whole.end.sub(a.whole.end)))))}_opIn(e,s){return this.fmap(s).appLeft(reify$1(e))}_opOut(e,s){return this.fmap(s).appRight(reify$1(e))}_opMix(e,s){return this.fmap(s).appBoth(reify$1(e))}_opSqueeze(e,s){const a=reify$1(e);return this.fmap(c=>a.fmap(d=>s(c)(d)))._squeezeJoin()}_opSqueezeOut(e,s){const a=this;return reify$1(e).fmap(d=>a.fmap(_=>s(_)(d)))._squeezeJoin()}_opTrig(e,s){return reify$1(e).fmap(c=>this.fmap(d=>s(d)(c)))._trigJoin()}_opTrigzero(e,s){return reify$1(e).fmap(c=>this.fmap(d=>s(d)(c)))._TrigzeroJoin()}_asNumber(e=!1,s=!1){return this._withHap(a=>{const c=Number(a.value);if(!isNaN(c))return a.withValue(()=>c);const d={e:Math.E,pi:Math.PI}[a.value];if(typeof d!="undefined")return a.withValue(()=>d);if(isNote$3(a.value))return new Hap(a.whole,a.part,toMidi$1(a.value),wt(_t({},a.context),{type:"midi"}));if(!e){if(s)return a;throw new Error('cannot parse as number: "'+a.value+'"')}})}round(){return this._asNumber().fmap(e=>Math.round(e))}floor(){return this._asNumber().fmap(e=>Math.floor(e))}ceil(){return this._asNumber().fmap(e=>Math.ceil(e))}_toBipolar(){return this.fmap(e=>e*2-1)}_fromBipolar(){return this.fmap(e=>(e+1)/2)}range(e,s){return this.mul(s-e).add(e)}rangex(e,s){return this.range(Math.log(e),Math.log(s)).fmap(Math.exp)}range2(e,s){return this._fromBipolar().range(e,s)}_bindWhole(e,s){const a=this,c=function(d){const _=function(k,$){return new Hap(e(k.whole,$.whole),$.part,$.value,Object.assign({},k.context,$.context,{locations:(k.context.locations||[]).concat($.context.locations||[])}))},b=function(k){return s(k.value).query(d.setSpan(k.part)).map($=>_(k,$))};return flatten$1(a.query(d).map(k=>b(k)))};return new Pattern$5(c)}bind(e){const s=function(a,c){if(!(a==null||c==null))return a.intersection_e(c)};return this._bindWhole(s,e)}join(){return this.bind(id$1)}outerBind(e){return this._bindWhole((s,a)=>s,e)}outerJoin(){return this.outerBind(id$1)}innerBind(e){return this._bindWhole((s,a)=>a,e)}innerJoin(){return this.innerBind(id$1)}_trigJoin(e=!1){const s=this;return new Pattern$5(a=>s.discreteOnly().query(a).map(c=>c.value.late(e?c.whole.begin:c.whole.begin.cyclePos()).query(a).map(d=>new Hap(d.whole?d.whole.intersection(c.whole):void 0,d.part.intersection(c.part),d.value).setContext(c.combineContext(d))).filter(d=>d.part)).flat())}_TrigzeroJoin(){return this._trigJoin(!0)}_squeezeJoin(){const e=this;function s(a){const c=e.discreteOnly().query(a);function d(b){const $=b.value._compressSpan(b.wholeOrPart().cycleArc()).query(a.setSpan(b.part));function j(_e,et){let tt;if(et.whole&&_e.whole&&(tt=et.whole.intersection(_e.whole),!tt))return;const nt=et.part.intersection(_e.part);if(!nt)return;const it=et.combineContext(_e);return new Hap(tt,nt,et.value,it)}return $.map(_e=>j(b,_e))}return flatten$1(c.map(d)).filter(b=>b)}return new Pattern$5(s)}_squeezeBind(e){return this.fmap(e)._squeezeJoin()}_apply(e){return e(this)}layer(...e){return stack(...e.map(s=>s(this)))}_patternify(e){const s=this;return function(...c){return c=c.map(_=>isPattern$1(_)?_.fmap(b=>b.value||b):_),sequence(...c).fmap(_=>e.call(s,_)).innerJoin()}}_fastGap(e){const s=function(c){const d=c.begin.sam(),_=d.add(c.begin.sub(d).mul(e).min(1)),b=d.add(c.end.sub(d).mul(e).min(1));return new TimeSpan$1(_,b)},a=function(c){const d=c.begin.sam(),_=d.add(c.begin.sub(d).div(e).min(1)),b=d.add(c.end.sub(d).div(e).min(1));return new TimeSpan$1(_,b)};return this.withQuerySpan(s).withHapSpan(a)._splitQueries()}_compress(e,s){return e.gt(s)||e.gt(1)||s.gt(1)||e.lt(0)||s.lt(0)?silence:this._fastGap(fraction(1).div(s.sub(e)))._late(e)}_compressSpan(e){return this._compress(e.begin,e.end)}_fast(e){return this.withQueryTime(a=>a.mul(e)).withHapTime(a=>a.div(e))}_slow(e){return this._fast(fraction(1).div(e))}_inside(e,s){return s(this._slow(e))._fast(e)}_outside(e,s){return s(this._fast(e))._slow(e)}_ply(e){return this.fmap(s=>pure(s)._fast(e))._squeezeJoin()}_chop(e){const a=Array.from({length:e},(d,_)=>_).map(d=>({begin:d/e,end:(d+1)/e})),c=function(d){return sequence(a.map(_=>Object.assign({},d,_)))};return this._squeezeBind(c)}_striate(e){const a=Array.from({length:e},(d,_)=>_).map(d=>({begin:d/e,end:(d+1)/e})),c=slowcat(...a);return this.set(c)._fast(e)}_cpm(e){return this._fast(e/60)}_early(e){return e=fraction(e),this.withQueryTime(s=>s.add(e)).withHapTime(s=>s.sub(e))}_late(e){return e=fraction(e),this._early(fraction(0).sub(e))}_zoom(e,s){s=fraction(s),e=fraction(e);const a=s.sub(e);return this.withQuerySpan(c=>c.withCycle(d=>d.mul(a).add(e))).withHapSpan(c=>c.withCycle(d=>d.sub(e).div(a)))._splitQueries()}_zoomArc(e){return this.zoom(e.begin,e.end)}_linger(e){return e==0?silence:e<0?this._zoom(e.add(1),1)._slow(e):this._zoom(0,e)._slow(e)}_color(e){return this._withContext(s=>wt(_t({},s),{color:e}))}log(){return this._withHap(e=>{var s;return e.setContext(wt(_t({},e.context),{logs:(((s=e.context)==null?void 0:s.logs)||[]).concat([e.show()])}))})}drawLine(){return console.log(drawLine(this)),this}_segment(e){return this.struct(pure(!0)._fast(e))}invert(){return this.fmap(e=>!e)}inv(){return this.invert()}when(e,s){const a=e._filterValues(id$1),c=e._filterValues(b=>!b),d=a.fmap(b=>k=>k).appRight(s(this)),_=c.fmap(b=>k=>k).appRight(this);return stack(d,_)}off(e,s){return stack(this,s(this.late(e)))}every(e,s){const a=this,c=Array(e-1).fill(a);return c.unshift(s(a)),slowcatPrime(...c)}brak(){return this.when(slowcat(!1,!0),e=>fastcat(e,silence)._late(.25))}rev(){const e=this,s=function(a){const c=a.span,d=c.begin.sam(),_=c.begin.nextSam(),b=function($){const j=$.withTime(et=>d.add(_.sub(et))),_e=j.begin;return j.begin=j.end,j.end=_e,j};return e.query(a.setSpan(b(c))).map($=>$.withSpan(b))};return new Pattern$5(s)._splitQueries()}palindrome(){return this.every(2,rev)}juxBy(e,s){e/=2;const a=function(_,b,k){return b in _?_[b]:k},c=this.withValue(_=>Object.assign({},_,{pan:a(_,"pan",.5)-e})),d=this.withValue(_=>Object.assign({},_,{pan:a(_,"pan",.5)+e}));return stack(c,s(d))}_jux(e){return this.juxBy(1,e)}stack(...e){return stack(this,...e)}sequence(...e){return sequence(this,...e)}seq(...e){return sequence(this,...e)}cat(...e){return cat(this,...e)}fastcat(...e){return fastcat(this,...e)}slowcat(...e){return slowcat(this,...e)}superimpose(...e){return this.stack(...e.map(s=>s(this)))}stutWith(e,s,a){return stack(...listRange(0,e-1).map(c=>a(this.late(fraction(s).mul(c)),c)))}stut(e,s,a){return this.stutWith(e,a,(c,d)=>c.velocity(Math.pow(s,d)))}_echoWith(e,s,a){return stack(...listRange(0,e-1).map(c=>a(this.late(fraction(s).mul(c)),c)))}_echo(e,s,a){return this._echoWith(e,s,(c,d)=>c.velocity(Math.pow(a,d)))}iter(e,s=!1){return slowcat(...listRange(0,e-1).map(a=>s?this.late(a/e):this.early(a/e)))}iterBack(e){return this.iter(e,!0)}_chunk(e,s,a=!1){const c=Array(e-1).fill(!1);c.unshift(!0);const d=sequence(...c).iter(e,a);return this.when(d,s)}_chunkBack(e,s){return this._chunk(e,s,!0)}_bypass(e){return e=Boolean(parseInt(e)),e?silence:this}hush(){return silence}_duration(e){return this.withHapSpan(s=>new TimeSpan$1(s.begin,s.begin.add(e)))}_legato(e){return this.withHapSpan(s=>new TimeSpan$1(s.begin,s.begin.add(s.end.sub(s.begin).mul(e))))}_velocity(e){return this._withContext(s=>wt(_t({},s),{velocity:(s.velocity||1)*e}))}_loopAt(e,s=1){return this.speed(1/e*s).unit("c").slow(e)}onTrigger(e){return this._withHap(s=>s.setContext(wt(_t({},s.context),{onTrigger:e})))}log(e=id$1){return this._withHap(s=>s.setContext(wt(_t({},s.context),{onTrigger:(...a)=>{s.context.onTrigger&&s.context.onTrigger(...a),console.log(e(...a))}})))}logValues(e=id$1){return this.log((s,a)=>e(a.value))}}function _composeOp(o,e,s){function a(c){return c instanceof Object&&!(c instanceof Function)}return a(o)||a(e)?(a(o)||(o={value:o}),a(e)||(e={value:e}),unionWithObj(o,e,s)):s(o,e)}(function(){const o=a=>a._asNumber(),s={set:[(a,c)=>c],keep:[(a,c)=>a],keepif:[(a,c)=>c?a:void 0],add:[(a,c)=>a+c,a=>a._asNumber(!1,!0)],sub:[(a,c)=>a-c,o],mul:[(a,c)=>a*c,o],div:[(a,c)=>a/c,o],mod:[mod,o],pow:[Math.pow,o],_and:[(a,c)=>a&c,o],_or:[(a,c)=>a|c,o],_xor:[(a,c)=>a^c,o],_lshift:[(a,c)=>a<a>>c,o],lt:[(a,c)=>aa>c],lte:[(a,c)=>a<=c],gte:[(a,c)=>a>=c],eq:[(a,c)=>a==c],eqt:[(a,c)=>a===c],ne:[(a,c)=>a!=c],net:[(a,c)=>a!==c],and:[(a,c)=>a&&c],or:[(a,c)=>a||c],func:[(a,c)=>c(a)]};for(const[a,[c,d]]of Object.entries(s))for(const _ of["In","Out","Mix","Squeeze","SqueezeOut","Trig","Trigzero"])Pattern$5.prototype[a+_]=function(...b){var k=this;b=sequence(b),d&&(k=d(k),b=d(b));var $=k["_op"+_](b,j=>_e=>_composeOp(j,_e,c));return a==="keepif"&&($=$._removeUndefineds()),$},_==="Squeeze"&&(Pattern$5.prototype[a+"SqueezeIn"]=Pattern$5.prototype[a+_]),_==="In"?Pattern$5.prototype[a]=Pattern$5.prototype[a+_]:a==="set"&&(Pattern$5.prototype[_.toLowerCase()]=Pattern$5.prototype[a+_]);Pattern$5.prototype.struct=Pattern$5.prototype.keepifOut,Pattern$5.prototype.structAll=Pattern$5.prototype.keepOut,Pattern$5.prototype.mask=Pattern$5.prototype.keepifIn,Pattern$5.prototype.maskAll=Pattern$5.prototype.keepIn,Pattern$5.prototype.reset=Pattern$5.prototype.keepifTrig,Pattern$5.prototype.resetAll=Pattern$5.prototype.keepTrig,Pattern$5.prototype.restart=Pattern$5.prototype.keepifTrigzero,Pattern$5.prototype.restartAll=Pattern$5.prototype.keepTrigzero})();Pattern$5.prototype.patternified=["apply","chop","color","cpm","duration","early","fast","jux","late","legato","linger","ply","segment","striate","slow","velocity"];Pattern$5.prototype.factories={pure,stack,slowcat,fastcat,cat,timeCat,sequence,seq:seq$2,polymeter,pm,polyrhythm,pr};const silence=new Pattern$5(o=>[]);function pure(o){function e(s){return s.span.spanCycles.map(a=>new Hap(fraction(a.begin).wholeCycle(),a,o))}return new Pattern$5(e)}function isPattern$1(o){const e=o instanceof Pattern$5||o._Pattern;return!o instanceof Pattern$5&&console.warn(`Found Pattern that fails "instanceof Pattern" check. + **/(function(o,e){(function(s){var a=2e3,c={s:1,n:0,d:1};function d(nt,st){if(isNaN(nt=parseInt(nt,10)))throw tt.InvalidParameter;return nt*st}function _(nt,st){if(st===0)throw tt.DivisionByZero;var rt=Object.create(tt.prototype);rt.s=nt<0?-1:1,nt=nt<0?-nt:nt;var it=et(nt,st);return rt.n=nt/it,rt.d=st/it,rt}function b(nt){for(var st={},rt=nt,it=2,at=4;at<=rt;){for(;rt%it===0;)rt/=it,st[it]=(st[it]||0)+1;at+=1+2*it++}return rt!==nt?rt>1&&(st[rt]=(st[rt]||0)+1):st[nt]=(st[nt]||0)+1,st}var k=function(nt,st){var rt=0,it=1,at=1,ot=0,ht=0,ct=0,ut=1,lt=1,pt=0,dt=1,gt=1,yt=1,ft=1e7,Et;if(nt!=null)if(st!==void 0){if(rt=nt,it=st,at=rt*it,rt%1!==0||it%1!==0)throw tt.NonIntegerParameter}else switch(typeof nt){case"object":{if("d"in nt&&"n"in nt)rt=nt.n,it=nt.d,"s"in nt&&(rt*=nt.s);else if(0 in nt)rt=nt[0],1 in nt&&(it=nt[1]);else throw tt.InvalidParameter;at=rt*it;break}case"number":{if(nt<0&&(at=nt,nt=-nt),nt%1===0)rt=nt;else if(nt>0){for(nt>=1&&(lt=Math.pow(10,Math.floor(1+Math.log(nt)/Math.LN10)),nt/=lt);dt<=ft&&yt<=ft;)if(Et=(pt+gt)/(dt+yt),nt===Et){dt+yt<=ft?(rt=pt+gt,it=dt+yt):yt>dt?(rt=gt,it=yt):(rt=pt,it=dt);break}else nt>Et?(pt+=gt,dt+=yt):(gt+=pt,yt+=dt),dt>ft?(rt=gt,it=yt):(rt=pt,it=dt);rt*=lt}else(isNaN(nt)||isNaN(st))&&(it=rt=NaN);break}case"string":{if(dt=nt.match(/\d+|./g),dt===null)throw tt.InvalidParameter;if(dt[pt]==="-"?(at=-1,pt++):dt[pt]==="+"&&pt++,dt.length===pt+1?ht=d(dt[pt++],at):dt[pt+1]==="."||dt[pt]==="."?(dt[pt]!=="."&&(ot=d(dt[pt++],at)),pt++,(pt+1===dt.length||dt[pt+1]==="("&&dt[pt+3]===")"||dt[pt+1]==="'"&&dt[pt+3]==="'")&&(ht=d(dt[pt],at),ut=Math.pow(10,dt[pt].length),pt++),(dt[pt]==="("&&dt[pt+2]===")"||dt[pt]==="'"&&dt[pt+2]==="'")&&(ct=d(dt[pt+1],at),lt=Math.pow(10,dt[pt+1].length)-1,pt+=3)):dt[pt+1]==="/"||dt[pt+1]===":"?(ht=d(dt[pt],at),ut=d(dt[pt+2],1),pt+=3):dt[pt+3]==="/"&&dt[pt+1]===" "&&(ot=d(dt[pt],at),ht=d(dt[pt+2],at),ut=d(dt[pt+4],1),pt+=5),dt.length<=pt){it=ut*lt,at=rt=ct+it*ot+lt*ht;break}}default:throw tt.InvalidParameter}if(it===0)throw tt.DivisionByZero;c.s=at<0?-1:1,c.n=Math.abs(rt),c.d=Math.abs(it)};function $(nt,st,rt){for(var it=1;st>0;nt=nt*nt%rt,st>>=1)st&1&&(it=it*nt%rt);return it}function j(nt,st){for(;st%2===0;st/=2);for(;st%5===0;st/=5);if(st===1)return 0;for(var rt=10%st,it=1;rt!==1;it++)if(rt=rt*10%st,it>a)return 0;return it}function _e(nt,st,rt){for(var it=1,at=$(10,rt,st),ot=0;ot<300;ot++){if(it===at)return ot;it=it*10%st,at=at*10%st}return 0}function et(nt,st){if(!nt)return st;if(!st)return nt;for(;;){if(nt%=st,!nt)return st;if(st%=nt,!st)return nt}}function tt(nt,st){if(k(nt,st),this instanceof tt)nt=et(c.d,c.n),this.s=c.s,this.n=c.n/nt,this.d=c.d/nt;else return _(c.s*c.n,c.d)}tt.DivisionByZero=new Error("Division by Zero"),tt.InvalidParameter=new Error("Invalid argument"),tt.NonIntegerParameter=new Error("Parameters must be integer"),tt.prototype={s:1,n:0,d:1,abs:function(){return _(this.n,this.d)},neg:function(){return _(-this.s*this.n,this.d)},add:function(nt,st){return k(nt,st),_(this.s*this.n*c.d+c.s*this.d*c.n,this.d*c.d)},sub:function(nt,st){return k(nt,st),_(this.s*this.n*c.d-c.s*this.d*c.n,this.d*c.d)},mul:function(nt,st){return k(nt,st),_(this.s*c.s*this.n*c.n,this.d*c.d)},div:function(nt,st){return k(nt,st),_(this.s*c.s*this.n*c.d,this.d*c.n)},clone:function(){return _(this.s*this.n,this.d)},mod:function(nt,st){if(isNaN(this.n)||isNaN(this.d))return new tt(NaN);if(nt===void 0)return _(this.s*this.n%this.d,1);if(k(nt,st),c.n===0&&this.d===0)throw tt.DivisionByZero;return _(this.s*(c.d*this.n)%(c.n*this.d),c.d*this.d)},gcd:function(nt,st){return k(nt,st),_(et(c.n,this.n)*et(c.d,this.d),c.d*this.d)},lcm:function(nt,st){return k(nt,st),c.n===0&&this.n===0?_(0,1):_(c.n*this.n,et(c.n,this.n)*et(c.d,this.d))},ceil:function(nt){return nt=Math.pow(10,nt||0),isNaN(this.n)||isNaN(this.d)?new tt(NaN):_(Math.ceil(nt*this.s*this.n/this.d),nt)},floor:function(nt){return nt=Math.pow(10,nt||0),isNaN(this.n)||isNaN(this.d)?new tt(NaN):_(Math.floor(nt*this.s*this.n/this.d),nt)},round:function(nt){return nt=Math.pow(10,nt||0),isNaN(this.n)||isNaN(this.d)?new tt(NaN):_(Math.round(nt*this.s*this.n/this.d),nt)},inverse:function(){return _(this.s*this.d,this.n)},pow:function(nt,st){if(k(nt,st),c.d===1)return c.s<0?_(Math.pow(this.s*this.d,c.n),Math.pow(this.n,c.n)):_(Math.pow(this.s*this.n,c.n),Math.pow(this.d,c.n));if(this.s<0)return null;var rt=b(this.n),it=b(this.d),at=1,ot=1;for(var ht in rt)if(ht!=="1"){if(ht==="0"){at=0;break}if(rt[ht]*=c.n,rt[ht]%c.d===0)rt[ht]/=c.d;else return null;at*=Math.pow(ht,rt[ht])}for(var ht in it)if(ht!=="1"){if(it[ht]*=c.n,it[ht]%c.d===0)it[ht]/=c.d;else return null;ot*=Math.pow(ht,it[ht])}return c.s<0?_(ot,at):_(at,ot)},equals:function(nt,st){return k(nt,st),this.s*this.n*c.d===c.s*c.n*this.d},compare:function(nt,st){k(nt,st);var rt=this.s*this.n*c.d-c.s*c.n*this.d;return(0=0;ot--)at=at.inverse().add(rt[ot]);if(at.sub(st).abs().valueOf()0&&(rt+=st,rt+=" ",it%=at),rt+=it,rt+="/",rt+=at),rt},toLatex:function(nt){var st,rt="",it=this.n,at=this.d;return this.s<0&&(rt+="-"),at===1?rt+=it:(nt&&(st=Math.floor(it/at))>0&&(rt+=st,it%=at),rt+="\\frac{",rt+=it,rt+="}{",rt+=at,rt+="}"),rt},toContinued:function(){var nt,st=this.n,rt=this.d,it=[];if(isNaN(st)||isNaN(rt))return it;do it.push(Math.floor(st/rt)),nt=st%rt,st=rt,rt=nt;while(st!==1);return it},toString:function(nt){var st=this.n,rt=this.d;if(isNaN(st)||isNaN(rt))return"NaN";nt=nt||15;var it=j(st,rt),at=_e(st,rt,it),ot=this.s<0?"-":"";if(ot+=st/rt|0,st%=rt,st*=10,st&&(ot+="."),it){for(var ht=at;ht--;)ot+=st/rt|0,st%=rt,st*=10;ot+="(";for(var ht=it;ht--;)ot+=st/rt|0,st%=rt,st*=10;ot+=")"}else for(var ht=nt;st&&ht--;)ot+=st/rt|0,st%=rt,st*=10;return ot}},Object.defineProperty(tt,"__esModule",{value:!0}),tt.default=tt,tt.Fraction=tt,o.exports=tt})()})(fraction$1);var Fraction=getDefaultExportFromCjs(fraction$1.exports);Fraction.prototype.sam=function(){return this.floor()};Fraction.prototype.nextSam=function(){return this.sam().add(1)};Fraction.prototype.wholeCycle=function(){return new TimeSpan$1(this.sam(),this.nextSam())};Fraction.prototype.cyclePos=function(){return this.sub(this.sam())};Fraction.prototype.lt=function(o){return this.compare(o)<0};Fraction.prototype.gt=function(o){return this.compare(o)>0};Fraction.prototype.lte=function(o){return this.compare(o)<=0};Fraction.prototype.gte=function(o){return this.compare(o)>=0};Fraction.prototype.eq=function(o){return this.compare(o)==0};Fraction.prototype.max=function(o){return this.gt(o)?this:o};Fraction.prototype.min=function(o){return this.lt(o)?this:o};Fraction.prototype.show=function(){return this.s*this.n+"/"+this.d};Fraction.prototype.or=function(o){return this.eq(0)?o:this};const fraction=o=>(typeof o=="number"&&(o=String(o)),Fraction(o)),gcd=(...o)=>o.reduce((e,s)=>e.gcd(s),fraction(1));fraction._original=Fraction;class TimeSpan$1{constructor(e,s){this.begin=fraction(e),this.end=fraction(s)}get spanCycles(){const e=[];var s=this.begin;const a=this.end,c=a.sam();for(;a.gt(s);){if(s.sam().equals(c)){e.push(new TimeSpan$1(s,this.end));break}const d=s.nextSam();e.push(new TimeSpan$1(s,d)),s=d}return e}get duration(){return this.end.sub(this.begin)}cycleArc(){const e=this.begin.cyclePos(),s=e.add(this.duration);return new TimeSpan$1(e,s)}withTime(e){return new TimeSpan$1(e(this.begin),e(this.end))}withEnd(e){return new TimeSpan$1(this.begin,e(this.end))}withCycle(e){const s=this.begin.sam(),a=s.add(e(this.begin.sub(s))),c=s.add(e(this.end.sub(s)));return new TimeSpan$1(a,c)}intersection(e){const s=this.begin.max(e.begin),a=this.end.min(e.end);if(!s.gt(a)&&!(s.equals(a)&&(s.equals(this.end)&&this.begin.lt(this.end)||s.equals(e.end)&&e.begin.lt(e.end))))return new TimeSpan$1(s,a)}intersection_e(e){const s=this.intersection(e);if(s==null)throw"TimeSpans do not intersect";return s}midpoint(){return this.begin.add(this.duration.div(fraction(2)))}equals(e){return this.begin.equals(e.begin)&&this.end.equals(e.end)}show(){return this.begin.show()+" -> "+this.end.show()}}class Hap{constructor(e,s,a,c={},d=!1){this.whole=e,this.part=s,this.value=a,this.context=c,this.stateful=d,d&&console.assert(typeof this.value=="function","Stateful values must be functions")}get duration(){return this.whole.end.sub(this.whole.begin)}wholeOrPart(){return this.whole?this.whole:this.part}withSpan(e){const s=this.whole?e(this.whole):void 0;return new Hap(s,e(this.part),this.value,this.context)}withValue(e){return new Hap(this.whole,this.part,e(this.value),this.context)}hasOnset(){return this.whole!=null&&this.whole.begin.equals(this.part.begin)}resolveState(e){if(this.stateful&&this.hasOnset()){console.log("stateful");const s=this.value,[a,c]=s(e);return[a,new Hap(this.whole,this.part,c,this.context,!1)]}return[e,this]}spanEquals(e){return this.whole==null&&e.whole==null||this.whole.equals(e.whole)}equals(e){return this.spanEquals(e)&&this.part.equals(e.part)&&this.value===e.value}show(){return"("+(this.whole==null?"~":this.whole.show())+", "+this.part.show()+", "+this.value+")"}showWhole(){return`${this.whole==null?"~":this.whole.show()}: ${typeof this.value=="object"?JSON.stringify(this.value):this.value}`}combineContext(e){const s=this;return wt(_t(_t({},s.context),e.context),{locations:(s.context.locations||[]).concat(e.context.locations||[])})}setContext(e){return new Hap(this.whole,this.part,this.value,e)}}class State$1{constructor(e,s={}){this.span=e,this.controls=s}setSpan(e){return new State$1(e,this.controls)}withSpan(e){return this.setSpan(e(this.span))}setControls(e){return new State$1(this.span,e)}}const isNote$3=o=>/^[a-gA-G][#b]*[0-9]$/.test(o),tokenizeNote=o=>{var c;if(typeof o!="string")return[];const[e,s="",a]=((c=o.match(/^([a-gA-G])([#bs]*)([0-9])?$/))==null?void 0:c.slice(1))||[];return e?[e,s,a?Number(a):void 0]:[]},toMidi$1=o=>{const[e,s,a]=tokenizeNote(o);if(!e)throw new Error('not a note: "'+o+'"');const c={c:0,d:2,e:4,f:5,g:7,a:9,b:11}[e.toLowerCase()],d=(s==null?void 0:s.split("").reduce((_,b)=>_+{"#":1,b:-1,s:1}[b],0))||0;return(Number(a)+1)*12+c+d},fromMidi=o=>Math.pow(2,(o-69)/12)*440,getFreq=o=>fromMidi(typeof o=="number"?o:toMidi$1(o)),midi2note=o=>{const e=Math.floor(o/12)-1;return["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"][o%12]+e},mod=(o,e)=>(o%e+e)%e,getPlayableNoteValue=o=>{let{value:e,context:s}=o;if(typeof e=="object"&&!Array.isArray(e)&&(e=e.note||e.n||e.value),typeof e=="number"&&s.type!=="frequency")e=fromMidi(o.value);else if(typeof e=="number"&&s.type==="frequency")e=o.value;else if(typeof e!="string"||!isNote$3(e))throw new Error("not a note: "+JSON.stringify(e));return e},getFrequency=o=>{let{value:e,context:s}=o;if(typeof e=="object"&&e.freq)return e.freq;if(typeof e=="number"&&s.type!=="frequency")e=fromMidi(o.value);else if(typeof e=="string"&&isNote$3(e))e=fromMidi(toMidi$1(o.value));else if(typeof e!="number")throw new Error("not a note or frequency:"+e);return e},rotate=(o,e)=>o.slice(e).concat(o.slice(0,e)),pipe=(...o)=>o.reduce((e,s)=>(...a)=>e(s(...a)),e=>e),compose=(...o)=>pipe(...o.reverse()),removeUndefineds=o=>o.filter(e=>e!=null),flatten$1=o=>[].concat(...o),id$1=o=>o,constant=(o,e)=>o,listRange=(o,e)=>Array.from({length:e-o+1},(s,a)=>a+o);function curry(o,e){const s=function a(...c){if(c.length>=o.length)return o.apply(this,c);{const d=function(..._){return a.apply(this,c.concat(_))};return e&&e(d,c),d}};return e&&e(s,[]),s}function unionWithObj(o,e,s){const a=Object.keys(o).filter(c=>Object.keys(e).includes(c));return Object.assign({},o,e,Object.fromEntries(a.map(c=>[c,s(o[c],e[c])])))}curry((o,e)=>o*e);curry((o,e)=>e.map(o));function drawLine(o,e=60){let s=0,a=fraction(0),c=[""],d="";for(;c[0].lengthj.hasOnset()).map(j=>j.duration),k=gcd(...b),$=k.inverse();c=c.map(j=>j+"|"),d+="|";for(let j=0;j<$;j++){const[_e,et]=[a,a.add(k)],tt=_.filter(st=>st.whole.begin.lte(_e)&&st.whole.end.gte(et)),nt=tt.length-c.length;nt>0&&(c=c.concat(Array(nt).fill(d))),c=c.map((st,rt)=>{const it=tt[rt];if(it){const ot=it.whole.begin.eq(_e)?""+it.value:"-";return st+ot}return st+"."}),d+=".",a=a.add(k)}s++}return c.join(` +`)}class Pattern$5{constructor(e){fr(this,"_Pattern",!0);this.query=e}queryArc(e,s){return this.query(new State$1(new TimeSpan$1(e,s)))}_splitQueries(){const e=this,s=a=>flatten$1(a.span.spanCycles.map(c=>e.query(a.setSpan(c))));return new Pattern$5(s)}withQuerySpan(e){return new Pattern$5(s=>this.query(s.withSpan(e)))}withQueryTime(e){return new Pattern$5(s=>this.query(s.withSpan(a=>a.withTime(e))))}withHapSpan(e){return new Pattern$5(s=>this.query(s).map(a=>a.withSpan(e)))}withHapTime(e){return this.withHapSpan(s=>s.withTime(e))}_withHaps(e){return new Pattern$5(s=>e(this.query(s)))}_withHap(e){return this._withHaps(s=>s.map(e))}_setContext(e){return this._withHap(s=>s.setContext(e))}_withContext(e){return this._withHap(s=>s.setContext(e(s.context)))}_stripContext(){return this._withHap(e=>e.setContext({}))}withLocation(e,s){const a={start:{line:e[0],column:e[1],offset:e[2]},end:{line:s[0],column:s[1],offset:s[2]}};return this._withContext(c=>{const d=(c.locations||[]).concat([a]);return wt(_t({},c),{locations:d})})}withMiniLocation(e,s){const a={start:{line:e[0],column:e[1],offset:e[2]},end:{line:s[0],column:s[1],offset:s[2]}};return this._withContext(c=>{let d=c.locations||[];return d=d.map(({start:_,end:b})=>{const k=_.line===1?a.start.column:0;return{start:wt(_t({},_),{line:_.line-1+(a.start.line-1)+1,column:_.column-1+k}),end:wt(_t({},b),{line:b.line-1+(a.start.line-1)+1,column:b.column-1+k})}}),wt(_t({},c),{locations:d})})}withValue(e){return new Pattern$5(s=>this.query(s).map(a=>a.withValue(e)))}fmap(e){return this.withValue(e)}_filterHaps(e){return new Pattern$5(s=>this.query(s).filter(e))}_filterValues(e){return new Pattern$5(s=>this.query(s).filter(a=>e(a.value)))}_removeUndefineds(){return this._filterValues(e=>e!=null)}onsetsOnly(){return this._filterHaps(e=>e.hasOnset())}discreteOnly(){return this._filterHaps(e=>e.whole)}_appWhole(e,s){const a=this,c=function(d){const _=a.query(d),b=s.query(d),k=function($,j){const _e=$.part.intersection(j.part);if(_e!=null)return new Hap(e($.whole,j.whole),_e,$.value(j.value),j.combineContext($))};return flatten$1(_.map($=>removeUndefineds(b.map(j=>k($,j)))))};return new Pattern$5(c)}appBoth(e){const s=function(a,c){if(!(a==null||c==null))return a.intersection_e(c)};return this._appWhole(s,e)}appLeft(e){const s=this,a=function(c){const d=[];for(const _ of s.query(c)){const b=e.query(c.setSpan(_.wholeOrPart()));for(const k of b){const $=_.whole,j=_.part.intersection(k.part);if(j){const _e=_.value(k.value),et=k.combineContext(_),tt=new Hap($,j,_e,et);d.push(tt)}}}return d};return new Pattern$5(a)}appRight(e){const s=this,a=function(c){const d=[];for(const _ of e.query(c)){const b=s.query(c.setSpan(_.wholeOrPart()));for(const k of b){const $=_.whole,j=k.part.intersection(_.part);if(j){const _e=k.value(_.value),et=_.combineContext(k),tt=new Hap($,j,_e,et);d.push(tt)}}}return d};return new Pattern$5(a)}firstCycle(e=!1){var s=this;return e||(s=s._stripContext()),s.query(new State$1(new TimeSpan$1(fraction(0),fraction(1))))}get _firstCycleValues(){return this.firstCycle().map(e=>e.value)}get _showFirstCycle(){return this.firstCycle().map(e=>`${e.value}: ${e.whole.begin.toFraction()} - ${e.whole.end.toFraction()}`)}_sortHapsByPart(){return this._withHaps(e=>e.sort((s,a)=>s.part.begin.sub(a.part.begin).or(s.part.end.sub(a.part.end)).or(s.whole.begin.sub(a.whole.begin).or(s.whole.end.sub(a.whole.end)))))}_opIn(e,s){return this.fmap(s).appLeft(reify$1(e))}_opOut(e,s){return this.fmap(s).appRight(reify$1(e))}_opMix(e,s){return this.fmap(s).appBoth(reify$1(e))}_opSqueeze(e,s){const a=reify$1(e);return this.fmap(c=>a.fmap(d=>s(c)(d)))._squeezeJoin()}_opSqueezeOut(e,s){const a=this;return reify$1(e).fmap(d=>a.fmap(_=>s(_)(d)))._squeezeJoin()}_opTrig(e,s){return reify$1(e).fmap(c=>this.fmap(d=>s(d)(c)))._trigJoin()}_opTrigzero(e,s){return reify$1(e).fmap(c=>this.fmap(d=>s(d)(c)))._TrigzeroJoin()}_asNumber(e=!1,s=!1){return this._withHap(a=>{const c=Number(a.value);if(!isNaN(c))return a.withValue(()=>c);const d={e:Math.E,pi:Math.PI}[a.value];if(typeof d!="undefined")return a.withValue(()=>d);if(isNote$3(a.value))return new Hap(a.whole,a.part,toMidi$1(a.value),wt(_t({},a.context),{type:"midi"}));if(!e){if(s)return a;throw new Error('cannot parse as number: "'+a.value+'"')}})}round(){return this._asNumber().fmap(e=>Math.round(e))}floor(){return this._asNumber().fmap(e=>Math.floor(e))}ceil(){return this._asNumber().fmap(e=>Math.ceil(e))}_toBipolar(){return this.fmap(e=>e*2-1)}_fromBipolar(){return this.fmap(e=>(e+1)/2)}range(e,s){return this.mul(s-e).add(e)}rangex(e,s){return this.range(Math.log(e),Math.log(s)).fmap(Math.exp)}range2(e,s){return this._fromBipolar().range(e,s)}_bindWhole(e,s){const a=this,c=function(d){const _=function(k,$){return new Hap(e(k.whole,$.whole),$.part,$.value,Object.assign({},k.context,$.context,{locations:(k.context.locations||[]).concat($.context.locations||[])}))},b=function(k){return s(k.value).query(d.setSpan(k.part)).map($=>_(k,$))};return flatten$1(a.query(d).map(k=>b(k)))};return new Pattern$5(c)}bind(e){const s=function(a,c){if(!(a==null||c==null))return a.intersection_e(c)};return this._bindWhole(s,e)}join(){return this.bind(id$1)}outerBind(e){return this._bindWhole((s,a)=>s,e)}outerJoin(){return this.outerBind(id$1)}innerBind(e){return this._bindWhole((s,a)=>a,e)}innerJoin(){return this.innerBind(id$1)}_trigJoin(e=!1){const s=this;return new Pattern$5(a=>s.discreteOnly().query(a).map(c=>c.value.late(e?c.whole.begin:c.whole.begin.cyclePos()).query(a).map(d=>new Hap(d.whole?d.whole.intersection(c.whole):void 0,d.part.intersection(c.part),d.value).setContext(c.combineContext(d))).filter(d=>d.part)).flat())}_TrigzeroJoin(){return this._trigJoin(!0)}_squeezeJoin(){const e=this;function s(a){const c=e.discreteOnly().query(a);function d(b){const $=b.value._compressSpan(b.wholeOrPart().cycleArc()).query(a.setSpan(b.part));function j(_e,et){let tt;if(et.whole&&_e.whole&&(tt=et.whole.intersection(_e.whole),!tt))return;const nt=et.part.intersection(_e.part);if(!nt)return;const st=et.combineContext(_e);return new Hap(tt,nt,et.value,st)}return $.map(_e=>j(b,_e))}return flatten$1(c.map(d)).filter(b=>b)}return new Pattern$5(s)}_squeezeBind(e){return this.fmap(e)._squeezeJoin()}_apply(e){return e(this)}layer(...e){return stack(...e.map(s=>s(this)))}_patternify(e){const s=this;return function(...c){return c=c.map(_=>isPattern$1(_)?_.fmap(b=>b.value||b):_),sequence(...c).fmap(_=>e.call(s,_)).innerJoin()}}_fastGap(e){const s=function(c){const d=c.begin.sam(),_=d.add(c.begin.sub(d).mul(e).min(1)),b=d.add(c.end.sub(d).mul(e).min(1));return new TimeSpan$1(_,b)},a=function(c){const d=c.begin.sam(),_=d.add(c.begin.sub(d).div(e).min(1)),b=d.add(c.end.sub(d).div(e).min(1));return new TimeSpan$1(_,b)};return this.withQuerySpan(s).withHapSpan(a)._splitQueries()}_compress(e,s){return e.gt(s)||e.gt(1)||s.gt(1)||e.lt(0)||s.lt(0)?silence:this._fastGap(fraction(1).div(s.sub(e)))._late(e)}_compressSpan(e){return this._compress(e.begin,e.end)}_fast(e){return this.withQueryTime(a=>a.mul(e)).withHapTime(a=>a.div(e))}_slow(e){return this._fast(fraction(1).div(e))}_inside(e,s){return s(this._slow(e))._fast(e)}_outside(e,s){return s(this._fast(e))._slow(e)}_ply(e){return this.fmap(s=>pure(s)._fast(e))._squeezeJoin()}_chop(e){const a=Array.from({length:e},(d,_)=>_).map(d=>({begin:d/e,end:(d+1)/e})),c=function(d){return sequence(a.map(_=>Object.assign({},d,_)))};return this._squeezeBind(c)}_striate(e){const a=Array.from({length:e},(d,_)=>_).map(d=>({begin:d/e,end:(d+1)/e})),c=slowcat(...a);return this.set(c)._fast(e)}_cpm(e){return this._fast(e/60)}_early(e){return e=fraction(e),this.withQueryTime(s=>s.add(e)).withHapTime(s=>s.sub(e))}_late(e){return e=fraction(e),this._early(fraction(0).sub(e))}_zoom(e,s){s=fraction(s),e=fraction(e);const a=s.sub(e);return this.withQuerySpan(c=>c.withCycle(d=>d.mul(a).add(e))).withHapSpan(c=>c.withCycle(d=>d.sub(e).div(a)))._splitQueries()}_zoomArc(e){return this.zoom(e.begin,e.end)}_linger(e){return e==0?silence:e<0?this._zoom(e.add(1),1)._slow(e):this._zoom(0,e)._slow(e)}_color(e){return this._withContext(s=>wt(_t({},s),{color:e}))}log(){return this._withHap(e=>{var s;return e.setContext(wt(_t({},e.context),{logs:(((s=e.context)==null?void 0:s.logs)||[]).concat([e.show()])}))})}drawLine(){return console.log(drawLine(this)),this}_segment(e){return this.struct(pure(!0)._fast(e))}invert(){return this.fmap(e=>!e)}inv(){return this.invert()}when(e,s){const a=e._filterValues(id$1),c=e._filterValues(b=>!b),d=a.fmap(b=>k=>k).appRight(s(this)),_=c.fmap(b=>k=>k).appRight(this);return stack(d,_)}off(e,s){return stack(this,s(this.late(e)))}every(e,s){const a=this,c=Array(e-1).fill(a);return c.unshift(s(a)),slowcatPrime(...c)}brak(){return this.when(slowcat(!1,!0),e=>fastcat(e,silence)._late(.25))}rev(){const e=this,s=function(a){const c=a.span,d=c.begin.sam(),_=c.begin.nextSam(),b=function($){const j=$.withTime(et=>d.add(_.sub(et))),_e=j.begin;return j.begin=j.end,j.end=_e,j};return e.query(a.setSpan(b(c))).map($=>$.withSpan(b))};return new Pattern$5(s)._splitQueries()}palindrome(){return this.every(2,rev)}juxBy(e,s){e/=2;const a=function(_,b,k){return b in _?_[b]:k},c=this.withValue(_=>Object.assign({},_,{pan:a(_,"pan",.5)-e})),d=this.withValue(_=>Object.assign({},_,{pan:a(_,"pan",.5)+e}));return stack(c,s(d))}_jux(e){return this.juxBy(1,e)}stack(...e){return stack(this,...e)}sequence(...e){return sequence(this,...e)}seq(...e){return sequence(this,...e)}cat(...e){return cat(this,...e)}fastcat(...e){return fastcat(this,...e)}slowcat(...e){return slowcat(this,...e)}superimpose(...e){return this.stack(...e.map(s=>s(this)))}stutWith(e,s,a){return stack(...listRange(0,e-1).map(c=>a(this.late(fraction(s).mul(c)),c)))}stut(e,s,a){return this.stutWith(e,a,(c,d)=>c.velocity(Math.pow(s,d)))}_echoWith(e,s,a){return stack(...listRange(0,e-1).map(c=>a(this.late(fraction(s).mul(c)),c)))}_echo(e,s,a){return this._echoWith(e,s,(c,d)=>c.velocity(Math.pow(a,d)))}iter(e,s=!1){return slowcat(...listRange(0,e-1).map(a=>s?this.late(a/e):this.early(a/e)))}iterBack(e){return this.iter(e,!0)}_chunk(e,s,a=!1){const c=Array(e-1).fill(!1);c.unshift(!0);const d=sequence(...c).iter(e,a);return this.when(d,s)}_chunkBack(e,s){return this._chunk(e,s,!0)}_bypass(e){return e=Boolean(parseInt(e)),e?silence:this}hush(){return silence}_duration(e){return this.withHapSpan(s=>new TimeSpan$1(s.begin,s.begin.add(e)))}_legato(e){return this.withHapSpan(s=>new TimeSpan$1(s.begin,s.begin.add(s.end.sub(s.begin).mul(e))))}_velocity(e){return this._withContext(s=>wt(_t({},s),{velocity:(s.velocity||1)*e}))}_loopAt(e,s=1){return this.speed(1/e*s).unit("c").slow(e)}onTrigger(e){return this._withHap(s=>s.setContext(wt(_t({},s.context),{onTrigger:e})))}log(e=id$1){return this._withHap(s=>s.setContext(wt(_t({},s.context),{onTrigger:(...a)=>{s.context.onTrigger&&s.context.onTrigger(...a),console.log(e(...a))}})))}logValues(e=id$1){return this.log((s,a)=>e(a.value))}}function _composeOp(o,e,s){function a(c){return c instanceof Object&&!(c instanceof Function)}return a(o)||a(e)?(a(o)||(o={value:o}),a(e)||(e={value:e}),unionWithObj(o,e,s)):s(o,e)}(function(){const o=a=>a._asNumber(),s={set:[(a,c)=>c],keep:[(a,c)=>a],keepif:[(a,c)=>c?a:void 0],add:[(a,c)=>a+c,a=>a._asNumber(!1,!0)],sub:[(a,c)=>a-c,o],mul:[(a,c)=>a*c,o],div:[(a,c)=>a/c,o],mod:[mod,o],pow:[Math.pow,o],_and:[(a,c)=>a&c,o],_or:[(a,c)=>a|c,o],_xor:[(a,c)=>a^c,o],_lshift:[(a,c)=>a<a>>c,o],lt:[(a,c)=>aa>c],lte:[(a,c)=>a<=c],gte:[(a,c)=>a>=c],eq:[(a,c)=>a==c],eqt:[(a,c)=>a===c],ne:[(a,c)=>a!=c],net:[(a,c)=>a!==c],and:[(a,c)=>a&&c],or:[(a,c)=>a||c],func:[(a,c)=>c(a)]};for(const[a,[c,d]]of Object.entries(s))for(const _ of["In","Out","Mix","Squeeze","SqueezeOut","Trig","Trigzero"])Pattern$5.prototype[a+_]=function(...b){var k=this;b=sequence(b),d&&(k=d(k),b=d(b));var $=k["_op"+_](b,j=>_e=>_composeOp(j,_e,c));return a==="keepif"&&($=$._removeUndefineds()),$},_==="Squeeze"&&(Pattern$5.prototype[a+"SqueezeIn"]=Pattern$5.prototype[a+_]),_==="In"?Pattern$5.prototype[a]=Pattern$5.prototype[a+_]:a==="set"&&(Pattern$5.prototype[_.toLowerCase()]=Pattern$5.prototype[a+_]);Pattern$5.prototype.struct=Pattern$5.prototype.keepifOut,Pattern$5.prototype.structAll=Pattern$5.prototype.keepOut,Pattern$5.prototype.mask=Pattern$5.prototype.keepifIn,Pattern$5.prototype.maskAll=Pattern$5.prototype.keepIn,Pattern$5.prototype.reset=Pattern$5.prototype.keepifTrig,Pattern$5.prototype.resetAll=Pattern$5.prototype.keepTrig,Pattern$5.prototype.restart=Pattern$5.prototype.keepifTrigzero,Pattern$5.prototype.restartAll=Pattern$5.prototype.keepTrigzero})();Pattern$5.prototype.patternified=["apply","chop","color","cpm","duration","early","fast","jux","late","legato","linger","ply","segment","striate","slow","velocity"];Pattern$5.prototype.factories={pure,stack,slowcat,fastcat,cat,timeCat,sequence,seq:seq$2,polymeter,pm,polyrhythm,pr};const silence=new Pattern$5(o=>[]);function pure(o){function e(s){return s.span.spanCycles.map(a=>new Hap(fraction(a.begin).wholeCycle(),a,o))}return new Pattern$5(e)}function isPattern$1(o){const e=o instanceof Pattern$5||o._Pattern;return!o instanceof Pattern$5&&console.warn(`Found Pattern that fails "instanceof Pattern" check. This may happen if you are using multiple versions of @strudel.cycles/core. - Please check by running "npm ls @strudel.cycles/core".`),e}function reify$1(o){return isPattern$1(o)?o:pure(o)}function stack(...o){o=o.map(s=>Array.isArray(s)?sequence(...s):reify$1(s));const e=s=>flatten$1(o.map(a=>a.query(s)));return new Pattern$5(e)}function slowcat(...o){o=o.map(s=>Array.isArray(s)?sequence(...s):reify$1(s));const e=function(s){const a=s.span,c=mod(a.begin.sam(),o.length),d=o[c];if(!d)return[];const _=a.begin.floor().sub(a.begin.div(o.length).floor());return d.withHapTime(b=>b.add(_)).query(s.setSpan(a.withTime(b=>b.sub(_))))};return new Pattern$5(e)._splitQueries()}function slowcatPrime(...o){o=o.map(reify$1);const e=function(s){const a=Math.floor(s.span.begin)%o.length;return o[a].query(s)};return new Pattern$5(e)._splitQueries()}function fastcat(...o){return slowcat(...o)._fast(o.length)}function cat(...o){return slowcat(...o)}function timeCat(...o){const e=o.map(c=>c[0]).reduce((c,d)=>c.add(d),fraction(0));let s=fraction(0);const a=[];for(const[c,d]of o){const _=s.add(c);a.push(reify$1(d)._compress(s.div(e),_.div(e))),s=_}return stack(...a)}function sequence(...o){return fastcat(...o)}function seq$2(...o){return fastcat(...o)}function _sequenceCount(o){return Array.isArray(o)?o.length==0?[silence,0]:o.length==1?_sequenceCount(o[0]):[fastcat(...o.map(e=>_sequenceCount(e)[0])),o.length]:[reify$1(o),1]}function polymeterSteps(o,...e){const s=e.map(c=>_sequenceCount(c));if(s.length==0)return silence;o==0&&(o=s[0][1]);const a=[];for(const c of s)c[1]==0&&next,o==c[1]?a.push(c[0]):a.push(c[0]._fast(fraction(o).div(fraction(c[1]))));return stack(...a)}function polymeter(...o){return polymeterSteps(0,...o)}function pm(...o){polymeter(...o)}function polyrhythm(...o){const e=o.map(s=>sequence(s));return e.length==0?silence:stack(...e)}function pr(o){polyrhythm(o)}const add$1=curry((o,e)=>e.add(o)),chop=curry((o,e)=>e.chop(o)),chunk=curry((o,e)=>e.chunk(o)),chunkBack=curry((o,e)=>e.chunkBack(o)),div=curry((o,e)=>e.div(o)),early=curry((o,e)=>e.early(o)),echo=curry((o,e,s,a)=>a.echo(o,e,s)),every=curry((o,e,s)=>s.every(o,e)),fast=curry((o,e)=>e.fast(o)),inv=o=>o.inv(),invert=o=>o.invert(),iter=curry((o,e)=>e.iter(o)),iterBack=curry((o,e)=>e.iter(o)),jux=curry((o,e)=>e.jux(o)),juxBy=curry((o,e,s)=>s.juxBy(o,e)),late=curry((o,e)=>e.late(o)),linger=curry((o,e)=>e.linger(o)),mask=curry((o,e)=>e.mask(o)),mul=curry((o,e)=>e.mul(o)),off=curry((o,e,s)=>s.off(o,e)),ply=curry((o,e)=>e.ply(o)),range$1=curry((o,e,s)=>s.range(o,e)),range2=curry((o,e,s)=>s.range2(o,e)),rev=o=>o.rev(),slow=curry((o,e)=>e.slow(o)),struct=curry((o,e)=>e.struct(o)),sub=curry((o,e)=>e.sub(o)),superimpose=curry((o,e)=>e.superimpose(...o)),set=curry((o,e)=>e.set(o)),when=curry((o,e,s)=>s.when(o,e));Pattern$5.prototype.composable={fast,slow,early,late,superimpose};function makeComposable(o){return Object.entries(Pattern$5.prototype.composable).forEach(([e,s])=>{o[e]=(...a)=>{const c=compose(o,s(...a));return makeComposable(c)}}),o}const patternify2=o=>(e,s,a)=>e.fmap(c=>d=>o.call(a,c,d)).appLeft(s).innerJoin(),patternify3=o=>(e,s,a,c)=>e.fmap(d=>_=>b=>o.call(c,d,_,b)).appLeft(s).appLeft(a).innerJoin(),patternify4=o=>(e,s,a,c,d)=>e.fmap(_=>b=>k=>$=>o.call(d,_,b,k,$)).appLeft(s).appLeft(a).appLeft(c).innerJoin();Pattern$5.prototype.echo=function(...o){return o=o.map(reify$1),patternify3(Pattern$5.prototype._echo)(...o,this)};Pattern$5.prototype.echoWith=function(...o){return o=o.map(reify$1),patternify3(Pattern$5.prototype._echoWith)(...o,this)};Pattern$5.prototype.chunk=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._chunk)(...o,this)};Pattern$5.prototype.chunkBack=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._chunkBack)(...o,this)};Pattern$5.prototype.loopAt=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._loopAt)(...o,this)};Pattern$5.prototype.zoom=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._zoom)(...o,this)};Pattern$5.prototype.compress=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._compress)(...o,this)};Pattern$5.prototype.outside=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._outside)(...o,this)};Pattern$5.prototype.inside=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._inside)(...o,this)};Pattern$5.prototype.bootstrap=function(){const o=Object.fromEntries(Object.entries(Pattern$5.prototype.composable).map(([e,s])=>(Pattern$5.prototype[e]&&(Pattern$5.prototype[e]=makeComposable(Pattern$5.prototype[e])),[e,curry(s,makeComposable)])));return this.patternified.forEach(e=>{Pattern$5.prototype[e]=function(...s){return this._patternify(Pattern$5.prototype["_"+e])(...s)}}),o};Pattern$5.prototype.define=(o,e,s={})=>{s.composable&&(Pattern$5.prototype.composable[o]=e),s.patternified&&(Pattern$5.prototype.patternified=Pattern$5.prototype.patternified.concat([o])),Pattern$5.prototype.bootstrap()};Pattern$5.prototype.define("hush",o=>o.hush(),{patternified:!1,composable:!0});Pattern$5.prototype.define("bypass",o=>o.bypass(on),{patternified:!0,composable:!0});const controls={},generic_params=[["s","s","sound"],["f","n","The note or sample number to choose for a synth or sampleset"],["f","note","The note or pitch to play a sound or synth with"],["f","accelerate","a pattern of numbers that speed up (or slow down) samples while they play."],["f","gain","a pattern of numbers that specify volume. Values less than 1 make the sound quieter. Values greater than 1 make the sound louder. For the linear equivalent, see @amp@."],["f","amp","like @gain@, but linear."],["f","attack","a pattern of numbers to specify the attack time (in seconds) of an envelope applied to each sample."],["f","decay",""],["f","sustain",""],["f","release","a pattern of numbers to specify the release time (in seconds) of an envelope applied to each sample."],["f","hold","a pattern of numbers to specify the hold time (in seconds) of an envelope applied to each sample. Only takes effect if `attack` and `release` are also specified."],["f","bandf","A pattern of numbers from 0 to 1. Sets the center frequency of the band-pass filter."],["f","bandq","a pattern of anumbers from 0 to 1. Sets the q-factor of the band-pass filter."],["f","begin","a pattern of numbers from 0 to 1. Skips the beginning of each sample, e.g. `0.25` to cut off the first quarter from each sample."],["f","end","the same as `begin`, but cuts the end off samples, shortening them; e.g. `0.75` to cut off the last quarter of each sample."],["f","loop","loops the sample (from `begin` to `end`) the specified number of times."],["f","legato","controls the amount of overlap between two adjacent sounds"],["f","crush","bit crushing, a pattern of numbers from 1 (for drastic reduction in bit-depth) to 16 (for barely no reduction)."],["f","coarse","fake-resampling, a pattern of numbers for lowering the sample rate, i.e. 1 for original 2 for half, 3 for a third and so on."],["i","channel","choose the channel the pattern is sent to in superdirt"],["i","cut","In the style of classic drum-machines, `cut` will stop a playing sample as soon as another samples with in same cutgroup is to be played. An example would be an open hi-hat followed by a closed one, essentially muting the open."],["f","cutoff","a pattern of numbers from 0 to 1. Applies the cutoff frequency of the low-pass filter."],["f","hcutoff","a pattern of numbers from 0 to 1. Applies the cutoff frequency of the high-pass filter. Also has alias @hpf@"],["f","hresonance","a pattern of numbers from 0 to 1. Applies the resonance of the high-pass filter. Has alias @hpq@"],["f","resonance","a pattern of numbers from 0 to 1. Specifies the resonance of the low-pass filter."],["f","djf","DJ filter, below 0.5 is low pass filter, above is high pass filter."],["f","delay","a pattern of numbers from 0 to 1. Sets the level of the delay signal."],["f","delayfeedback","a pattern of numbers from 0 to 1. Sets the amount of delay feedback."],["f","delaytime","a pattern of numbers from 0 to 1. Sets the length of the delay."],["f","lock","A pattern of numbers. Specifies whether delaytime is calculated relative to cps. When set to 1, delaytime is a direct multiple of a cycle."],["f","detune",""],["f","dry","when set to `1` will disable all reverb for this pattern. See `room` and `size` for more information about reverb."],["f","fadeTime","Used when using begin/end or chop/striate and friends, to change the fade out time of the 'grain' envelope."],["f","fadeInTime","As with fadeTime, but controls the fade in time of the grain envelope. Not used if the grain begins at position 0 in the sample."],["f","freq",""],["f","gate",""],["f","leslie",""],["f","lrate",""],["f","lsize",""],["f","degree",""],["f","mtranspose",""],["f","ctranspose",""],["f","harmonic",""],["f","stepsPerOctave",""],["f","octaveR",""],["f","nudge","Nudges events into the future by the specified number of seconds. Negative numbers work up to a point as well (due to internal latency)"],["i","octave",""],["f","offset",""],["i","orbit","a pattern of numbers. An `orbit` is a global parameter context for patterns. Patterns with the same orbit will share hardware output bus offset and global effects, e.g. reverb and delay. The maximum number of orbits is specified in the superdirt startup, numbers higher than maximum will wrap around."],["f","overgain",""],["f","overshape",""],["f","pan","a pattern of numbers between 0 and 1, from left to right (assuming stereo), once round a circle (assuming multichannel)"],["f","panspan","a pattern of numbers between -inf and inf, which controls how much multichannel output is fanned out (negative is backwards ordering)"],["f","pansplay","a pattern of numbers between 0.0 and 1.0, which controls the multichannel spread range (multichannel only)"],["f","panwidth","a pattern of numbers between 0.0 and inf, which controls how much each channel is distributed over neighbours (multichannel only)"],["f","panorient","a pattern of numbers between -1.0 and 1.0, which controls the relative position of the centre pan in a pair of adjacent speakers (multichannel only)"],["f","rate","used in SuperDirt softsynths as a control rate or 'speed'"],["f","slide",""],["f","semitone",""],["f","velocity",""],["f","voice",""],["f","room","a pattern of numbers from 0 to 1. Sets the level of reverb."],["f","size","a pattern of numbers from 0 to 1. Sets the perceptual size (reverb time) of the `room` to be used in reverb."],["f","shape","wave shaping distortion, a pattern of numbers from 0 for no distortion up to 1 for loads of distortion."],["f","speed","a pattern of numbers which changes the speed of sample playback, i.e. a cheap way of changing pitch. Negative values will play the sample backwards!"],["s","unit",'used in conjunction with `speed`, accepts values of "r" (rate, default behavior), "c" (cycles), or "s" (seconds). Using `unit "c"` means `speed` will be interpreted in units of cycles, e.g. `speed "1"` means samples will be stretched to fill a cycle. Using `unit "s"` means the playback speed will be adjusted so that the duration is the number of seconds specified by `speed`.'],["f","squiz",""],["f","stutterdepth",""],["f","stuttertime",""],["f","timescale",""],["f","timescalewin",""],["s","vowel","formant filter to make things sound like vowels, a pattern of either `a`, `e`, `i`, `o` or `u`. Use a rest (`~`) for no effect."],["f","waveloss",""],["f","dur",""],["f","expression",""],["f","sustainpedal",""],["f","tremolodepth","Tremolo Audio DSP effect | params are 'tremolorate' and 'tremolodepth'"],["f","tremolorate","Tremolo Audio DSP effect | params are 'tremolorate' and 'tremolodepth'"],["f","phaserdepth","Phaser Audio DSP effect | params are 'phaserrate' and 'phaserdepth'"],["f","phaserrate","Phaser Audio DSP effect | params are 'phaserrate' and 'phaserdepth'"],["f","fshift","frequency shifter"],["f","fshiftnote","frequency shifter"],["f","fshiftphase","frequency shifter"],["f","triode","tube distortion"],["f","krush","shape/bass enhancer"],["f","kcutoff",""],["f","octer","octaver effect"],["f","octersub","octaver effect"],["f","octersubsub","octaver effect"],["f","ring","ring modulation"],["f","ringf","ring modulation"],["f","ringdf","ring modulation"],["f","distort","noisy fuzzy distortion"],["f","freeze","Spectral freeze"],["f","xsdelay",""],["f","tsdelay",""],["f","real","Spectral conform"],["f","imag",""],["f","enhance","Spectral enhance"],["f","partials",""],["f","comb","Spectral comb"],["f","smear","Spectral smear"],["f","scram","Spectral scramble"],["f","binshift","Spectral binshift"],["f","hbrick","High pass sort of spectral filter"],["f","lbrick","Low pass sort of spectral filter"],["f","midichan",""],["f","control",""],["f","ccn",""],["f","ccv",""],["f","polyTouch",""],["f","midibend",""],["f","miditouch",""],["f","ctlNum",""],["f","frameRate",""],["f","frames",""],["f","hours",""],["s","midicmd",""],["f","minutes",""],["f","progNum",""],["f","seconds",""],["f","songPtr",""],["f","uid",""],["f","val",""],["f","cps",""],["f","clip",""]],_name=(o,...e)=>sequence(...e).withValue(s=>({[o]:s})),_setter=(o,e)=>function(...s){return s.length?this.set(o(...s)):this.fmap(a=>({[e]:a}))};generic_params.forEach(([o,e,s])=>{controls[e]=(...a)=>_name(e,...a),Pattern$5.prototype[e]=_setter(controls[e],e)});controls.createParam=o=>{const e=(...s)=>_name(o,...s);return Pattern$5.prototype[o]=_setter(e,o),(...s)=>_name(o,...s)};controls.createParams=(...o)=>o.reduce((e,s)=>Object.assign(e,{[s]:createParam(s)}),{});function bjorklund(o,e){for(var s=[],a=[],c=[e],d=o-e,_=0,b=function(k){if(k==-1)s.push(0);else if(k==-2)s.push(1);else{for(var $=0;$1;)a.push(Math.floor(d/c[_])),c.push(d%c[_]),d=c[_],_++;return a.push(d),b(_),s.reverse()}var bjork=function(o,e){return o>e?bjorklund(o,e):bjorklund(e,o)};const euclid=(o,e,s=0)=>{const a=bjork(e,o);return s?rotate(a,-s):a};Pattern$5.prototype.euclid=function(o,e,s=0){return this.struct(euclid(o,e,s))};Pattern$5.prototype.euclidLegato=function(o,e,s=0){const a=euclid(o,e,s),c=a.indexOf(1),d=rotate(a,c).join("").split("1").slice(1).map(_=>[_.length+1,!0]);return this.struct(timeCat(...d)).late(fraction(c).div(e))};function steady(o){return new Pattern$5(e=>[new Hap(void 0,e.span,o)])}const signal=o=>{const e=s=>[new Hap(void 0,s.span,o(s.span.midpoint()))];return new Pattern$5(e)},isaw=signal(o=>1-o%1),isaw2=isaw._toBipolar(),saw=signal(o=>o%1),saw2=saw._toBipolar(),sine2=signal(o=>Math.sin(Math.PI*2*o)),sine=sine2._fromBipolar(),cosine=sine._early(fraction(1).div(4)),cosine2=sine2._early(fraction(1).div(4)),square=signal(o=>Math.floor(o*2%2)),square2=square._toBipolar(),tri=fastcat(isaw,saw),tri2=fastcat(isaw2,saw2),time=signal(id$1),xorwise=o=>{const e=o<<13^o,s=e>>17^e;return s<<5^s},_frac=o=>o-Math.trunc(o),timeToIntSeed=o=>xorwise(Math.trunc(_frac(o/300)*536870912)),intSeedToRand=o=>o%536870912/536870912,timeToRand=o=>Math.abs(intSeedToRand(timeToIntSeed(o))),rand=signal(timeToRand),rand2=rand._toBipolar(),_brandBy=o=>rand.fmap(e=>ereify$1(o).fmap(_brandBy).innerJoin(),brand=_brandBy(.5),_irand=o=>rand.fmap(e=>Math.trunc(e*o)),irand=o=>reify$1(o).fmap(_irand).innerJoin(),__chooseWith=(o,e)=>(e=e.map(reify$1),e.length==0?silence:o.range(0,e.length).fmap(s=>e[Math.floor(s)])),chooseWith=(o,e)=>__chooseWith(o,e).outerJoin(),chooseInWith=(o,e)=>__chooseWith(o,e).innerJoin(),choose=(...o)=>chooseWith(rand,o);Pattern$5.prototype.choose=function(...o){return chooseWith(this,o)};Pattern$5.prototype.choose2=function(...o){return chooseWith(this._fromBipolar(),o)};const chooseCycles=(...o)=>chooseInWith(rand.segment(1),o),randcat=chooseCycles,_wchooseWith=function(o,...e){const s=e.map(b=>reify$1(b[0])),a=[];let c=0;for(const b of e)c+=b[1],a.push(c);const d=c,_=function(b){const k=b*d;return s[a.findIndex($=>$>k,a)]};return o.fmap(_)},wchooseWith=(...o)=>_wchooseWith(...o).outerJoin(),wchoose=(...o)=>wchooseWith(rand,...o),wchooseCycles=(...o)=>_wchooseWith(rand,...o).innerJoin(),perlinWith=o=>{const e=o.fmap(Math.floor),s=o.fmap(d=>Math.floor(d)+1),a=d=>6*d**5-15*d**4+10*d**3,c=d=>_=>b=>_+a(d)*(b-_);return o.sub(e).fmap(c).appBoth(e.fmap(timeToRand)).appBoth(s.fmap(timeToRand))},perlin=perlinWith(time);Pattern$5.prototype._degradeByWith=function(o,e){return this.fmap(s=>a=>s).appLeft(o._filterValues(s=>s>e))};Pattern$5.prototype._degradeBy=function(o){return this._degradeByWith(rand,o)};Pattern$5.prototype.degrade=function(){return this._degradeBy(.5)};Pattern$5.prototype._undegradeBy=function(o){return this._degradeByWith(rand.fmap(e=>1-e),o)};Pattern$5.prototype.undegrade=function(){return this._undegradeBy(.5)};Pattern$5.prototype._sometimesBy=function(o,e){return stack(this._degradeBy(o),e(this._undegradeBy(1-o)))};Pattern$5.prototype.sometimesBy=function(o,e){const s=this;return reify$1(o).fmap(a=>s._sometimesBy(a,e)).innerJoin()};Pattern$5.prototype._sometimesByPre=function(o,e){return stack(this._degradeBy(o),e(this).undegradeBy(1-o))};Pattern$5.prototype.sometimesByPre=function(o,e){const s=this;return reify$1(o).fmap(a=>s._sometimesByPre(a,e)).innerJoin()};Pattern$5.prototype.sometimes=function(o){return this._sometimesBy(.5,o)};Pattern$5.prototype.sometimesPre=function(o){return this._sometimesByPre(.5,o)};Pattern$5.prototype._someCyclesBy=function(o,e){return stack(this._degradeByWith(rand._segment(1),o),e(this._degradeByWith(rand.fmap(s=>1-s)._segment(1),1-o)))};Pattern$5.prototype.someCyclesBy=function(o,e){const s=this;return reify$1(o).fmap(a=>s._someCyclesBy(a,e)).innerJoin()};Pattern$5.prototype.someCycles=function(o){return this._someCyclesBy(.5,o)};Pattern$5.prototype.often=function(o){return this.sometimesBy(.75,o)};Pattern$5.prototype.rarely=function(o){return this.sometimesBy(.25,o)};Pattern$5.prototype.almostNever=function(o){return this.sometimesBy(.1,o)};Pattern$5.prototype.almostAlways=function(o){return this.sometimesBy(.9,o)};Pattern$5.prototype.never=function(o){return this};Pattern$5.prototype.always=function(o){return o(this)};Pattern$5.prototype.patternified.push("degradeBy","undegradeBy");let synth$1;try{synth$1=window==null?void 0:window.speechSynthesis}catch{console.warn("cannot use window: not in browser?")}let allVoices=synth$1==null?void 0:synth$1.getVoices();function speak(o,e,s){synth$1.cancel();const a=new SpeechSynthesisUtterance(o);a.lang=e,allVoices=synth$1.getVoices();const c=allVoices.filter(d=>d.lang.includes(e));typeof s=="number"?a.voice=c[s%c.length]:typeof s=="string"&&(a.voice=c.find(d=>d.name===d)),speechSynthesis.speak(a)}Pattern$5.prototype._speak=function(o,e){return this._withHap(s=>{const a=(c,d)=>{speak(d.value,o,e)};return s.setContext(wt(_t({},s.context),{onTrigger:a}))})};Pattern$5.prototype.speak=function(o,e){return patternify2(Pattern$5.prototype._speak)(reify(o),reify(e),this)};var gist=(route,cache=!0)=>fetch(`https://gist.githubusercontent.com/${route}?cachebust=${cache?"":Date.now()}`).then(o=>o.text()).then(code=>eval(code));console.log("%c // \u{1F300} @strudel.cycles/core loaded \u{1F300}","background-color: black;color:white;padding:4px;border-radius:15px");globalThis._strudelLoaded&&console.warn(`@strudel.cycles/core was loaded more than once... + Please check by running "npm ls @strudel.cycles/core".`),e}function reify$1(o){return isPattern$1(o)?o:pure(o)}function stack(...o){o=o.map(s=>Array.isArray(s)?sequence(...s):reify$1(s));const e=s=>flatten$1(o.map(a=>a.query(s)));return new Pattern$5(e)}function slowcat(...o){o=o.map(s=>Array.isArray(s)?sequence(...s):reify$1(s));const e=function(s){const a=s.span,c=mod(a.begin.sam(),o.length),d=o[c];if(!d)return[];const _=a.begin.floor().sub(a.begin.div(o.length).floor());return d.withHapTime(b=>b.add(_)).query(s.setSpan(a.withTime(b=>b.sub(_))))};return new Pattern$5(e)._splitQueries()}function slowcatPrime(...o){o=o.map(reify$1);const e=function(s){const a=Math.floor(s.span.begin)%o.length,c=o[a];return(c==null?void 0:c.query(s))||[]};return new Pattern$5(e)._splitQueries()}function fastcat(...o){return slowcat(...o)._fast(o.length)}function cat(...o){return slowcat(...o)}function timeCat(...o){const e=o.map(c=>c[0]).reduce((c,d)=>c.add(d),fraction(0));let s=fraction(0);const a=[];for(const[c,d]of o){const _=s.add(c);a.push(reify$1(d)._compress(s.div(e),_.div(e))),s=_}return stack(...a)}function sequence(...o){return fastcat(...o)}function seq$2(...o){return fastcat(...o)}function _sequenceCount(o){return Array.isArray(o)?o.length==0?[silence,0]:o.length==1?_sequenceCount(o[0]):[fastcat(...o.map(e=>_sequenceCount(e)[0])),o.length]:[reify$1(o),1]}function polymeterSteps(o,...e){const s=e.map(c=>_sequenceCount(c));if(s.length==0)return silence;o==0&&(o=s[0][1]);const a=[];for(const c of s)c[1]==0&&next,o==c[1]?a.push(c[0]):a.push(c[0]._fast(fraction(o).div(fraction(c[1]))));return stack(...a)}function polymeter(...o){return polymeterSteps(0,...o)}function pm(...o){polymeter(...o)}function polyrhythm(...o){const e=o.map(s=>sequence(s));return e.length==0?silence:stack(...e)}function pr(o){polyrhythm(o)}const add$1=curry((o,e)=>e.add(o)),chop=curry((o,e)=>e.chop(o)),chunk=curry((o,e)=>e.chunk(o)),chunkBack=curry((o,e)=>e.chunkBack(o)),div=curry((o,e)=>e.div(o)),early=curry((o,e)=>e.early(o)),echo=curry((o,e,s,a)=>a.echo(o,e,s)),every=curry((o,e,s)=>s.every(o,e)),fast=curry((o,e)=>e.fast(o)),inv=o=>o.inv(),invert=o=>o.invert(),iter=curry((o,e)=>e.iter(o)),iterBack=curry((o,e)=>e.iter(o)),jux=curry((o,e)=>e.jux(o)),juxBy=curry((o,e,s)=>s.juxBy(o,e)),late=curry((o,e)=>e.late(o)),linger=curry((o,e)=>e.linger(o)),mask=curry((o,e)=>e.mask(o)),mul=curry((o,e)=>e.mul(o)),off=curry((o,e,s)=>s.off(o,e)),ply=curry((o,e)=>e.ply(o)),range$1=curry((o,e,s)=>s.range(o,e)),range2=curry((o,e,s)=>s.range2(o,e)),rev=o=>o.rev(),slow=curry((o,e)=>e.slow(o)),struct=curry((o,e)=>e.struct(o)),sub=curry((o,e)=>e.sub(o)),superimpose=curry((o,e)=>e.superimpose(...o)),set=curry((o,e)=>e.set(o)),when=curry((o,e,s)=>s.when(o,e));Pattern$5.prototype.composable={fast,slow,early,late,superimpose};function makeComposable(o){return Object.entries(Pattern$5.prototype.composable).forEach(([e,s])=>{o[e]=(...a)=>{const c=compose(o,s(...a));return makeComposable(c)}}),o}const patternify2=o=>(e,s,a)=>e.fmap(c=>d=>o.call(a,c,d)).appLeft(s).innerJoin(),patternify3=o=>(e,s,a,c)=>e.fmap(d=>_=>b=>o.call(c,d,_,b)).appLeft(s).appLeft(a).innerJoin(),patternify4=o=>(e,s,a,c,d)=>e.fmap(_=>b=>k=>$=>o.call(d,_,b,k,$)).appLeft(s).appLeft(a).appLeft(c).innerJoin();Pattern$5.prototype.echo=function(...o){return o=o.map(reify$1),patternify3(Pattern$5.prototype._echo)(...o,this)};Pattern$5.prototype.echoWith=function(...o){return o=o.map(reify$1),patternify3(Pattern$5.prototype._echoWith)(...o,this)};Pattern$5.prototype.chunk=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._chunk)(...o,this)};Pattern$5.prototype.chunkBack=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._chunkBack)(...o,this)};Pattern$5.prototype.loopAt=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._loopAt)(...o,this)};Pattern$5.prototype.zoom=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._zoom)(...o,this)};Pattern$5.prototype.compress=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._compress)(...o,this)};Pattern$5.prototype.outside=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._outside)(...o,this)};Pattern$5.prototype.inside=function(...o){return o=o.map(reify$1),patternify2(Pattern$5.prototype._inside)(...o,this)};Pattern$5.prototype.bootstrap=function(){const o=Object.fromEntries(Object.entries(Pattern$5.prototype.composable).map(([e,s])=>(Pattern$5.prototype[e]&&(Pattern$5.prototype[e]=makeComposable(Pattern$5.prototype[e])),[e,curry(s,makeComposable)])));return this.patternified.forEach(e=>{Pattern$5.prototype[e]=function(...s){return this._patternify(Pattern$5.prototype["_"+e])(...s)}}),o};Pattern$5.prototype.define=(o,e,s={})=>{s.composable&&(Pattern$5.prototype.composable[o]=e),s.patternified&&(Pattern$5.prototype.patternified=Pattern$5.prototype.patternified.concat([o])),Pattern$5.prototype.bootstrap()};Pattern$5.prototype.define("hush",o=>o.hush(),{patternified:!1,composable:!0});Pattern$5.prototype.define("bypass",o=>o.bypass(on),{patternified:!0,composable:!0});const controls={},generic_params=[["s","s","sound"],["f","n","The note or sample number to choose for a synth or sampleset"],["f","note","The note or pitch to play a sound or synth with"],["f","accelerate","a pattern of numbers that speed up (or slow down) samples while they play."],["f","gain","a pattern of numbers that specify volume. Values less than 1 make the sound quieter. Values greater than 1 make the sound louder. For the linear equivalent, see @amp@."],["f","amp","like @gain@, but linear."],["f","attack","a pattern of numbers to specify the attack time (in seconds) of an envelope applied to each sample."],["f","decay",""],["f","sustain",""],["f","release","a pattern of numbers to specify the release time (in seconds) of an envelope applied to each sample."],["f","hold","a pattern of numbers to specify the hold time (in seconds) of an envelope applied to each sample. Only takes effect if `attack` and `release` are also specified."],["f","bandf","A pattern of numbers from 0 to 1. Sets the center frequency of the band-pass filter."],["f","bandq","a pattern of anumbers from 0 to 1. Sets the q-factor of the band-pass filter."],["f","begin","a pattern of numbers from 0 to 1. Skips the beginning of each sample, e.g. `0.25` to cut off the first quarter from each sample."],["f","end","the same as `begin`, but cuts the end off samples, shortening them; e.g. `0.75` to cut off the last quarter of each sample."],["f","loop","loops the sample (from `begin` to `end`) the specified number of times."],["f","legato","controls the amount of overlap between two adjacent sounds"],["f","crush","bit crushing, a pattern of numbers from 1 (for drastic reduction in bit-depth) to 16 (for barely no reduction)."],["f","coarse","fake-resampling, a pattern of numbers for lowering the sample rate, i.e. 1 for original 2 for half, 3 for a third and so on."],["i","channel","choose the channel the pattern is sent to in superdirt"],["i","cut","In the style of classic drum-machines, `cut` will stop a playing sample as soon as another samples with in same cutgroup is to be played. An example would be an open hi-hat followed by a closed one, essentially muting the open."],["f","cutoff","a pattern of numbers from 0 to 1. Applies the cutoff frequency of the low-pass filter."],["f","hcutoff","a pattern of numbers from 0 to 1. Applies the cutoff frequency of the high-pass filter. Also has alias @hpf@"],["f","hresonance","a pattern of numbers from 0 to 1. Applies the resonance of the high-pass filter. Has alias @hpq@"],["f","resonance","a pattern of numbers from 0 to 1. Specifies the resonance of the low-pass filter."],["f","djf","DJ filter, below 0.5 is low pass filter, above is high pass filter."],["f","delay","a pattern of numbers from 0 to 1. Sets the level of the delay signal."],["f","delayfeedback","a pattern of numbers from 0 to 1. Sets the amount of delay feedback."],["f","delaytime","a pattern of numbers from 0 to 1. Sets the length of the delay."],["f","lock","A pattern of numbers. Specifies whether delaytime is calculated relative to cps. When set to 1, delaytime is a direct multiple of a cycle."],["f","detune",""],["f","dry","when set to `1` will disable all reverb for this pattern. See `room` and `size` for more information about reverb."],["f","fadeTime","Used when using begin/end or chop/striate and friends, to change the fade out time of the 'grain' envelope."],["f","fadeInTime","As with fadeTime, but controls the fade in time of the grain envelope. Not used if the grain begins at position 0 in the sample."],["f","freq",""],["f","gate",""],["f","leslie",""],["f","lrate",""],["f","lsize",""],["f","degree",""],["f","mtranspose",""],["f","ctranspose",""],["f","harmonic",""],["f","stepsPerOctave",""],["f","octaveR",""],["f","nudge","Nudges events into the future by the specified number of seconds. Negative numbers work up to a point as well (due to internal latency)"],["i","octave",""],["f","offset",""],["i","orbit","a pattern of numbers. An `orbit` is a global parameter context for patterns. Patterns with the same orbit will share hardware output bus offset and global effects, e.g. reverb and delay. The maximum number of orbits is specified in the superdirt startup, numbers higher than maximum will wrap around."],["f","overgain",""],["f","overshape",""],["f","pan","a pattern of numbers between 0 and 1, from left to right (assuming stereo), once round a circle (assuming multichannel)"],["f","panspan","a pattern of numbers between -inf and inf, which controls how much multichannel output is fanned out (negative is backwards ordering)"],["f","pansplay","a pattern of numbers between 0.0 and 1.0, which controls the multichannel spread range (multichannel only)"],["f","panwidth","a pattern of numbers between 0.0 and inf, which controls how much each channel is distributed over neighbours (multichannel only)"],["f","panorient","a pattern of numbers between -1.0 and 1.0, which controls the relative position of the centre pan in a pair of adjacent speakers (multichannel only)"],["f","rate","used in SuperDirt softsynths as a control rate or 'speed'"],["f","slide",""],["f","semitone",""],["f","velocity",""],["f","voice",""],["f","room","a pattern of numbers from 0 to 1. Sets the level of reverb."],["f","size","a pattern of numbers from 0 to 1. Sets the perceptual size (reverb time) of the `room` to be used in reverb."],["f","shape","wave shaping distortion, a pattern of numbers from 0 for no distortion up to 1 for loads of distortion."],["f","speed","a pattern of numbers which changes the speed of sample playback, i.e. a cheap way of changing pitch. Negative values will play the sample backwards!"],["s","unit",'used in conjunction with `speed`, accepts values of "r" (rate, default behavior), "c" (cycles), or "s" (seconds). Using `unit "c"` means `speed` will be interpreted in units of cycles, e.g. `speed "1"` means samples will be stretched to fill a cycle. Using `unit "s"` means the playback speed will be adjusted so that the duration is the number of seconds specified by `speed`.'],["f","squiz",""],["f","stutterdepth",""],["f","stuttertime",""],["f","timescale",""],["f","timescalewin",""],["s","vowel","formant filter to make things sound like vowels, a pattern of either `a`, `e`, `i`, `o` or `u`. Use a rest (`~`) for no effect."],["f","waveloss",""],["f","dur",""],["f","expression",""],["f","sustainpedal",""],["f","tremolodepth","Tremolo Audio DSP effect | params are 'tremolorate' and 'tremolodepth'"],["f","tremolorate","Tremolo Audio DSP effect | params are 'tremolorate' and 'tremolodepth'"],["f","phaserdepth","Phaser Audio DSP effect | params are 'phaserrate' and 'phaserdepth'"],["f","phaserrate","Phaser Audio DSP effect | params are 'phaserrate' and 'phaserdepth'"],["f","fshift","frequency shifter"],["f","fshiftnote","frequency shifter"],["f","fshiftphase","frequency shifter"],["f","triode","tube distortion"],["f","krush","shape/bass enhancer"],["f","kcutoff",""],["f","octer","octaver effect"],["f","octersub","octaver effect"],["f","octersubsub","octaver effect"],["f","ring","ring modulation"],["f","ringf","ring modulation"],["f","ringdf","ring modulation"],["f","distort","noisy fuzzy distortion"],["f","freeze","Spectral freeze"],["f","xsdelay",""],["f","tsdelay",""],["f","real","Spectral conform"],["f","imag",""],["f","enhance","Spectral enhance"],["f","partials",""],["f","comb","Spectral comb"],["f","smear","Spectral smear"],["f","scram","Spectral scramble"],["f","binshift","Spectral binshift"],["f","hbrick","High pass sort of spectral filter"],["f","lbrick","Low pass sort of spectral filter"],["f","midichan",""],["f","control",""],["f","ccn",""],["f","ccv",""],["f","polyTouch",""],["f","midibend",""],["f","miditouch",""],["f","ctlNum",""],["f","frameRate",""],["f","frames",""],["f","hours",""],["s","midicmd",""],["f","minutes",""],["f","progNum",""],["f","seconds",""],["f","songPtr",""],["f","uid",""],["f","val",""],["f","cps",""],["f","clip",""]],_name=(o,...e)=>sequence(...e).withValue(s=>({[o]:s})),_setter=(o,e)=>function(...s){return s.length?this.set(o(...s)):this.fmap(a=>({[e]:a}))};generic_params.forEach(([o,e,s])=>{controls[e]=(...a)=>_name(e,...a),Pattern$5.prototype[e]=_setter(controls[e],e)});controls.createParam=o=>{const e=(...s)=>_name(o,...s);return Pattern$5.prototype[o]=_setter(e,o),(...s)=>_name(o,...s)};controls.createParams=(...o)=>o.reduce((e,s)=>Object.assign(e,{[s]:createParam(s)}),{});function bjorklund(o,e){for(var s=[],a=[],c=[e],d=o-e,_=0,b=function(k){if(k==-1)s.push(0);else if(k==-2)s.push(1);else{for(var $=0;$1;)a.push(Math.floor(d/c[_])),c.push(d%c[_]),d=c[_],_++;return a.push(d),b(_),s.reverse()}var bjork=function(o,e){return o>e?bjorklund(o,e):bjorklund(e,o)};const euclid=(o,e,s=0)=>{const a=bjork(e,o);return s?rotate(a,-s):a};Pattern$5.prototype.euclid=function(o,e,s=0){return this.struct(euclid(o,e,s))};Pattern$5.prototype.euclidLegato=function(o,e,s=0){const a=euclid(o,e,s),c=a.indexOf(1),d=rotate(a,c).join("").split("1").slice(1).map(_=>[_.length+1,!0]);return this.struct(timeCat(...d)).late(fraction(c).div(e))};function steady(o){return new Pattern$5(e=>[new Hap(void 0,e.span,o)])}const signal=o=>{const e=s=>[new Hap(void 0,s.span,o(s.span.midpoint()))];return new Pattern$5(e)},isaw=signal(o=>1-o%1),isaw2=isaw._toBipolar(),saw=signal(o=>o%1),saw2=saw._toBipolar(),sine2=signal(o=>Math.sin(Math.PI*2*o)),sine=sine2._fromBipolar(),cosine=sine._early(fraction(1).div(4)),cosine2=sine2._early(fraction(1).div(4)),square=signal(o=>Math.floor(o*2%2)),square2=square._toBipolar(),tri=fastcat(isaw,saw),tri2=fastcat(isaw2,saw2),time=signal(id$1),xorwise=o=>{const e=o<<13^o,s=e>>17^e;return s<<5^s},_frac=o=>o-Math.trunc(o),timeToIntSeed=o=>xorwise(Math.trunc(_frac(o/300)*536870912)),intSeedToRand=o=>o%536870912/536870912,timeToRand=o=>Math.abs(intSeedToRand(timeToIntSeed(o))),rand=signal(timeToRand),rand2=rand._toBipolar(),_brandBy=o=>rand.fmap(e=>ereify$1(o).fmap(_brandBy).innerJoin(),brand=_brandBy(.5),_irand=o=>rand.fmap(e=>Math.trunc(e*o)),irand=o=>reify$1(o).fmap(_irand).innerJoin(),__chooseWith=(o,e)=>(e=e.map(reify$1),e.length==0?silence:o.range(0,e.length).fmap(s=>e[Math.floor(s)])),chooseWith=(o,e)=>__chooseWith(o,e).outerJoin(),chooseInWith=(o,e)=>__chooseWith(o,e).innerJoin(),choose=(...o)=>chooseWith(rand,o);Pattern$5.prototype.choose=function(...o){return chooseWith(this,o)};Pattern$5.prototype.choose2=function(...o){return chooseWith(this._fromBipolar(),o)};const chooseCycles=(...o)=>chooseInWith(rand.segment(1),o),randcat=chooseCycles,_wchooseWith=function(o,...e){const s=e.map(b=>reify$1(b[0])),a=[];let c=0;for(const b of e)c+=b[1],a.push(c);const d=c,_=function(b){const k=b*d;return s[a.findIndex($=>$>k,a)]};return o.fmap(_)},wchooseWith=(...o)=>_wchooseWith(...o).outerJoin(),wchoose=(...o)=>wchooseWith(rand,...o),wchooseCycles=(...o)=>_wchooseWith(rand,...o).innerJoin(),perlinWith=o=>{const e=o.fmap(Math.floor),s=o.fmap(d=>Math.floor(d)+1),a=d=>6*d**5-15*d**4+10*d**3,c=d=>_=>b=>_+a(d)*(b-_);return o.sub(e).fmap(c).appBoth(e.fmap(timeToRand)).appBoth(s.fmap(timeToRand))},perlin=perlinWith(time);Pattern$5.prototype._degradeByWith=function(o,e){return this.fmap(s=>a=>s).appLeft(o._filterValues(s=>s>e))};Pattern$5.prototype._degradeBy=function(o){return this._degradeByWith(rand,o)};Pattern$5.prototype.degrade=function(){return this._degradeBy(.5)};Pattern$5.prototype._undegradeBy=function(o){return this._degradeByWith(rand.fmap(e=>1-e),o)};Pattern$5.prototype.undegrade=function(){return this._undegradeBy(.5)};Pattern$5.prototype._sometimesBy=function(o,e){return stack(this._degradeBy(o),e(this._undegradeBy(1-o)))};Pattern$5.prototype.sometimesBy=function(o,e){const s=this;return reify$1(o).fmap(a=>s._sometimesBy(a,e)).innerJoin()};Pattern$5.prototype._sometimesByPre=function(o,e){return stack(this._degradeBy(o),e(this).undegradeBy(1-o))};Pattern$5.prototype.sometimesByPre=function(o,e){const s=this;return reify$1(o).fmap(a=>s._sometimesByPre(a,e)).innerJoin()};Pattern$5.prototype.sometimes=function(o){return this._sometimesBy(.5,o)};Pattern$5.prototype.sometimesPre=function(o){return this._sometimesByPre(.5,o)};Pattern$5.prototype._someCyclesBy=function(o,e){return stack(this._degradeByWith(rand._segment(1),o),e(this._degradeByWith(rand.fmap(s=>1-s)._segment(1),1-o)))};Pattern$5.prototype.someCyclesBy=function(o,e){const s=this;return reify$1(o).fmap(a=>s._someCyclesBy(a,e)).innerJoin()};Pattern$5.prototype.someCycles=function(o){return this._someCyclesBy(.5,o)};Pattern$5.prototype.often=function(o){return this.sometimesBy(.75,o)};Pattern$5.prototype.rarely=function(o){return this.sometimesBy(.25,o)};Pattern$5.prototype.almostNever=function(o){return this.sometimesBy(.1,o)};Pattern$5.prototype.almostAlways=function(o){return this.sometimesBy(.9,o)};Pattern$5.prototype.never=function(o){return this};Pattern$5.prototype.always=function(o){return o(this)};Pattern$5.prototype.patternified.push("degradeBy","undegradeBy");let synth$1;try{synth$1=window==null?void 0:window.speechSynthesis}catch{console.warn("cannot use window: not in browser?")}let allVoices=synth$1==null?void 0:synth$1.getVoices();function speak(o,e,s){synth$1.cancel();const a=new SpeechSynthesisUtterance(o);a.lang=e,allVoices=synth$1.getVoices();const c=allVoices.filter(d=>d.lang.includes(e));typeof s=="number"?a.voice=c[s%c.length]:typeof s=="string"&&(a.voice=c.find(d=>d.name===d)),speechSynthesis.speak(a)}Pattern$5.prototype._speak=function(o,e){return this._withHap(s=>{const a=(c,d)=>{speak(d.value,o,e)};return s.setContext(wt(_t({},s.context),{onTrigger:a}))})};Pattern$5.prototype.speak=function(o,e){return patternify2(Pattern$5.prototype._speak)(reify(o),reify(e),this)};var gist=(route,cache=!0)=>fetch(`https://gist.githubusercontent.com/${route}?cachebust=${cache?"":Date.now()}`).then(o=>o.text()).then(code=>eval(code));console.log("%c // \u{1F300} @strudel.cycles/core loaded \u{1F300}","background-color: black;color:white;padding:4px;border-radius:15px");globalThis._strudelLoaded&&console.warn(`@strudel.cycles/core was loaded more than once... This might happen when you have multiple versions of strudel installed. -Please check with "npm ls @strudel.cycles/core".`);globalThis._strudelLoaded=!0;var strudel=Object.freeze(Object.defineProperty({__proto__:null,Fraction:fraction,gist,Hap,Pattern:Pattern$5,silence,pure,isPattern:isPattern$1,reify:reify$1,stack,slowcat,slowcatPrime,fastcat,cat,timeCat,sequence,seq:seq$2,polymeterSteps,polymeter,pm,polyrhythm,pr,add:add$1,chop,chunk,chunkBack,div,early,echo,every,fast,inv,invert,iter,iterBack,jux,juxBy,late,linger,mask,mul,off,ply,range:range$1,range2,rev,slow,struct,sub,superimpose,set,when,makeComposable,patternify2,patternify3,patternify4,steady,signal,isaw,isaw2,saw,saw2,sine2,sine,cosine,cosine2,square,square2,tri,tri2,time,rand,rand2,_brandBy,brandBy,brand,_irand,irand,__chooseWith,chooseWith,chooseInWith,choose,chooseCycles,randcat,wchoose,wchooseCycles,perlinWith,perlin,State:State$1,TimeSpan:TimeSpan$1,isNote:isNote$3,tokenizeNote,toMidi:toMidi$1,fromMidi,getFreq,midi2note,mod,getPlayableNoteValue,getFrequency,rotate,pipe,compose,removeUndefineds,flatten:flatten$1,id:id$1,constant,listRange,curry},Symbol.toStringTag,{value:"Module"}));const scale=(o,e,s)=>o*(s-e)+e,getValue=o=>{var s;let e=typeof o.value=="object"?(s=o.value.note)!=null?s:o.value.n:o.value;return typeof e=="string"&&(e=toMidi(e)),e};Pattern$5.prototype.pianoroll=function({cycles:o=4,playhead:e=.5,overscan:s=1,flipTime:a=0,flipValues:c=0,hideNegative:d=!1,inactive:_="#7491D2",active:b="#FFCA28",background:k="transparent",smear:$=0,playheadColor:j="white",minMidi:_e=10,maxMidi:et=90,autorange:tt=0,timeframe:nt,fold:it=0,vertical:rt=0}={}){const st=getDrawContext(),at=st.canvas.width,ot=st.canvas.height;let ht=-o*e,ct=o*(1-e);nt&&(console.warn("timeframe is deprecated! use from/to instead"),ht=0,ct=nt),!tt&&it&&console.warn("disabling autorange has no effect when fold is enabled");const ut=rt?ot:at,lt=rt?at:ot;let pt=rt?[ut,0]:[0,ut];const dt=ct-ht,gt=rt?[0,lt]:[lt,0];let Et=et-_e+1,ft=lt/Et,yt=[];return a&&pt.reverse(),c&>.reverse(),this.draw((mt,St,At)=>{mt.fillStyle=k,mt.globalAlpha=1,$||(mt.clearRect(0,0,at,ot),mt.fillRect(0,0,at,ot));const Ot=Dt=>(!d||Dt.whole.begin>=0)&&Dt.whole.begin<=At+ct&&Dt.whole.end>=At+ht;St.filter(Ot).forEach(Dt=>{var qt,jt,Nt;const Tt=Dt.whole.begin<=At&&Dt.whole.end>At;mt.fillStyle=((qt=Dt.context)==null?void 0:qt.color)||_,mt.strokeStyle=((jt=Dt.context)==null?void 0:jt.color)||b,mt.globalAlpha=(Nt=Dt.context.velocity)!=null?Nt:1;const vt=scale((Dt.whole.begin-(a?ct:ht))/dt,...pt);let bt=scale(Dt.duration/dt,0,ut);const xt=getValue(Dt),Rt=scale(it?yt.indexOf(xt)/yt.length:(Number(xt)-_e)/Et,...gt);let Mt=0;const It=scale(At/dt,...pt);let Ft;rt?Ft=[Rt+1-(c?ft:0),ut-It+vt+Mt+1-(a?0:bt),ft-2,bt-2]:Ft=[vt-It+Mt+1-(a?bt:0),Rt+1-(c?0:ft),bt-2,ft-2],Tt?mt.strokeRect(...Ft):mt.fillRect(...Ft)}),mt.globalAlpha=1;const Ct=scale(-ht/dt,...pt);mt.strokeStyle=j,mt.beginPath(),rt?(mt.moveTo(0,Ct),mt.lineTo(lt,Ct)):(mt.moveTo(Ct,0),mt.lineTo(Ct,lt)),mt.stroke()},{from:ht-s,to:ct+s,onQuery:mt=>{const{min:St,max:At,values:Ot}=mt.reduce(({min:Ct,max:Dt,values:Tt},vt)=>{const bt=getValue(vt);return{min:btDt?bt:Dt,values:Tt.includes(bt)?Tt:[...Tt,bt]}},{min:1/0,max:-1/0,values:[]});tt&&(_e=St,et=At,Et=et-_e+1),yt=Ot.sort((Ct,Dt)=>Ct-Dt),ft=it?lt/yt.length:lt/Et}}),this};const version="14.7.77",createExtendedExponentialRampToValueAutomationEvent=(o,e,s)=>({endTime:e,insertTime:s,type:"exponentialRampToValue",value:o}),createExtendedLinearRampToValueAutomationEvent=(o,e,s)=>({endTime:e,insertTime:s,type:"linearRampToValue",value:o}),createSetValueAutomationEvent=(o,e)=>({startTime:e,type:"setValue",value:o}),createSetValueCurveAutomationEvent=(o,e,s)=>({duration:s,startTime:e,type:"setValueCurve",values:o}),getTargetValueAtTime=(o,e,{startTime:s,target:a,timeConstant:c})=>a+(e-a)*Math.exp((s-o)/c),isExponentialRampToValueAutomationEvent=o=>o.type==="exponentialRampToValue",isLinearRampToValueAutomationEvent=o=>o.type==="linearRampToValue",isAnyRampToValueAutomationEvent=o=>isExponentialRampToValueAutomationEvent(o)||isLinearRampToValueAutomationEvent(o),isSetValueAutomationEvent=o=>o.type==="setValue",isSetValueCurveAutomationEvent=o=>o.type==="setValueCurve",getValueOfAutomationEventAtIndexAtTime=(o,e,s,a)=>{const c=o[e];return c===void 0?a:isAnyRampToValueAutomationEvent(c)||isSetValueAutomationEvent(c)?c.value:isSetValueCurveAutomationEvent(c)?c.values[c.values.length-1]:getTargetValueAtTime(s,getValueOfAutomationEventAtIndexAtTime(o,e-1,c.startTime,a),c)},getEndTimeAndValueOfPreviousAutomationEvent=(o,e,s,a,c)=>s===void 0?[a.insertTime,c]:isAnyRampToValueAutomationEvent(s)?[s.endTime,s.value]:isSetValueAutomationEvent(s)?[s.startTime,s.value]:isSetValueCurveAutomationEvent(s)?[s.startTime+s.duration,s.values[s.values.length-1]]:[s.startTime,getValueOfAutomationEventAtIndexAtTime(o,e-1,s.startTime,c)],isCancelAndHoldAutomationEvent=o=>o.type==="cancelAndHold",isCancelScheduledValuesAutomationEvent=o=>o.type==="cancelScheduledValues",getEventTime=o=>isCancelAndHoldAutomationEvent(o)||isCancelScheduledValuesAutomationEvent(o)?o.cancelTime:isExponentialRampToValueAutomationEvent(o)||isLinearRampToValueAutomationEvent(o)?o.endTime:o.startTime,getExponentialRampValueAtTime=(o,e,s,{endTime:a,value:c})=>s===c?c:0s+(o-e)/(a-e)*(c-s),interpolateValue=(o,e)=>{const s=Math.floor(e),a=Math.ceil(e);return s===a?o[s]:(1-(e-s))*o[s]+(1-(a-e))*o[a]},getValueCurveValueAtTime=(o,{duration:e,startTime:s,values:a})=>{const c=(o-s)/e*(a.length-1);return interpolateValue(a,c)},isSetTargetAutomationEvent=o=>o.type==="setTarget";class AutomationEventList{constructor(e){this._automationEvents=[],this._currenTime=0,this._defaultValue=e}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(e){const s=getEventTime(e);if(isCancelAndHoldAutomationEvent(e)||isCancelScheduledValuesAutomationEvent(e)){const a=this._automationEvents.findIndex(d=>isCancelScheduledValuesAutomationEvent(e)&&isSetValueCurveAutomationEvent(d)?d.startTime+d.duration>=s:getEventTime(d)>=s),c=this._automationEvents[a];if(a!==-1&&(this._automationEvents=this._automationEvents.slice(0,a)),isCancelAndHoldAutomationEvent(e)){const d=this._automationEvents[this._automationEvents.length-1];if(c!==void 0&&isAnyRampToValueAutomationEvent(c)){if(isSetTargetAutomationEvent(d))throw new Error("The internal list is malformed.");const _=isSetValueCurveAutomationEvent(d)?d.startTime+d.duration:getEventTime(d),b=isSetValueCurveAutomationEvent(d)?d.values[d.values.length-1]:d.value,k=isExponentialRampToValueAutomationEvent(c)?getExponentialRampValueAtTime(s,_,b,c):getLinearRampValueAtTime(s,_,b,c),$=isExponentialRampToValueAutomationEvent(c)?createExtendedExponentialRampToValueAutomationEvent(k,s,this._currenTime):createExtendedLinearRampToValueAutomationEvent(k,s,this._currenTime);this._automationEvents.push($)}d!==void 0&&isSetTargetAutomationEvent(d)&&this._automationEvents.push(createSetValueAutomationEvent(this.getValue(s),s)),d!==void 0&&isSetValueCurveAutomationEvent(d)&&d.startTime+d.duration>s&&(this._automationEvents[this._automationEvents.length-1]=createSetValueCurveAutomationEvent(new Float32Array([6,7]),d.startTime,s-d.startTime))}}else{const a=this._automationEvents.findIndex(_=>getEventTime(_)>s),c=a===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[a-1];if(c!==void 0&&isSetValueCurveAutomationEvent(c)&&getEventTime(c)+c.duration>s)return!1;const d=isExponentialRampToValueAutomationEvent(e)?createExtendedExponentialRampToValueAutomationEvent(e.value,e.endTime,this._currenTime):isLinearRampToValueAutomationEvent(e)?createExtendedLinearRampToValueAutomationEvent(e.value,s,this._currenTime):e;if(a===-1)this._automationEvents.push(d);else{if(isSetValueCurveAutomationEvent(e)&&s+e.duration>getEventTime(this._automationEvents[a]))return!1;this._automationEvents.splice(a,0,d)}}return!0}flush(e){const s=this._automationEvents.findIndex(a=>getEventTime(a)>e);if(s>1){const a=this._automationEvents.slice(s-1),c=a[0];isSetTargetAutomationEvent(c)&&a.unshift(createSetValueAutomationEvent(getValueOfAutomationEventAtIndexAtTime(this._automationEvents,s-2,c.startTime,this._defaultValue),c.startTime)),this._automationEvents=a}}getValue(e){if(this._automationEvents.length===0)return this._defaultValue;const s=this._automationEvents.findIndex(_=>getEventTime(_)>e),a=this._automationEvents[s],c=(s===-1?this._automationEvents.length:s)-1,d=this._automationEvents[c];if(d!==void 0&&isSetTargetAutomationEvent(d)&&(a===void 0||!isAnyRampToValueAutomationEvent(a)||a.insertTime>e))return getTargetValueAtTime(e,getValueOfAutomationEventAtIndexAtTime(this._automationEvents,c-1,d.startTime,this._defaultValue),d);if(d!==void 0&&isSetValueAutomationEvent(d)&&(a===void 0||!isAnyRampToValueAutomationEvent(a)))return d.value;if(d!==void 0&&isSetValueCurveAutomationEvent(d)&&(a===void 0||!isAnyRampToValueAutomationEvent(a)||d.startTime+d.duration>e))return e({cancelTime:o,type:"cancelAndHold"}),createCancelScheduledValuesAutomationEvent=o=>({cancelTime:o,type:"cancelScheduledValues"}),createExponentialRampToValueAutomationEvent=(o,e)=>({endTime:e,type:"exponentialRampToValue",value:o}),createLinearRampToValueAutomationEvent=(o,e)=>({endTime:e,type:"linearRampToValue",value:o}),createSetTargetAutomationEvent=(o,e,s)=>({startTime:e,target:o,timeConstant:s,type:"setTarget"}),createAbortError=()=>new DOMException("","AbortError"),createAddActiveInputConnectionToAudioNode=o=>(e,s,[a,c,d],_)=>{o(e[c],[s,a,d],b=>b[0]===s&&b[1]===a,_)},createAddAudioNodeConnections=o=>(e,s,a)=>{const c=[];for(let d=0;d(e,s)=>{o.set(e,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:s})},ACTIVE_AUDIO_NODE_STORE=new WeakSet,AUDIO_NODE_CONNECTIONS_STORE=new WeakMap,AUDIO_NODE_STORE=new WeakMap,AUDIO_PARAM_CONNECTIONS_STORE=new WeakMap,AUDIO_PARAM_STORE=new WeakMap,CONTEXT_STORE=new WeakMap,EVENT_LISTENERS=new WeakMap,CYCLE_COUNTERS=new WeakMap,NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS=new WeakMap,NODE_TO_PROCESSOR_MAPS=new WeakMap,handler={construct(){return handler}},isConstructible=o=>{try{const e=new Proxy(o,handler);new e}catch{return!1}return!0},IMPORT_STATEMENT_REGEX=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,splitImportStatements=(o,e)=>{const s=[];let a=o.replace(/^[\s]+/,""),c=a.match(IMPORT_STATEMENT_REGEX);for(;c!==null;){const d=c[1].slice(1,-1),_=c[0].replace(/([\s]+)?;?$/,"").replace(d,new URL(d,e).toString());s.push(_),a=a.slice(c[0].length).replace(/^[\s]+/,""),c=a.match(IMPORT_STATEMENT_REGEX)}return[s.join(";"),a]},verifyParameterDescriptors=o=>{if(o!==void 0&&!Array.isArray(o))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},verifyProcessorCtor=o=>{if(!isConstructible(o))throw new TypeError("The given value for processorCtor should be a constructor.");if(o.prototype===null||typeof o.prototype!="object")throw new TypeError("The given value for processorCtor should have a prototype.")},createAddAudioWorkletModule=(o,e,s,a,c,d,_,b,k,$,j,_e,et)=>{let tt=0;return(nt,it,rt={credentials:"omit"})=>{const st=j.get(nt);if(st!==void 0&&st.has(it))return Promise.resolve();const at=$.get(nt);if(at!==void 0){const ct=at.get(it);if(ct!==void 0)return ct}const ot=d(nt),ht=ot.audioWorklet===void 0?c(it).then(([ct,ut])=>{const[lt,pt]=splitImportStatements(ct,ut),dt=`${lt};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${pt} -})})(window,'_AWGS')`;return s(dt)}).then(()=>{const ct=et._AWGS.pop();if(ct===void 0)throw new SyntaxError;a(ot.currentTime,ot.sampleRate,()=>ct(class{},void 0,(ut,lt)=>{if(ut.trim()==="")throw e();const pt=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(ot);if(pt!==void 0){if(pt.has(ut))throw e();verifyProcessorCtor(lt),verifyParameterDescriptors(lt.parameterDescriptors),pt.set(ut,lt)}else verifyProcessorCtor(lt),verifyParameterDescriptors(lt.parameterDescriptors),NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.set(ot,new Map([[ut,lt]]))},ot.sampleRate,void 0,void 0))}):Promise.all([c(it),Promise.resolve(o(_e,_e))]).then(([[ct,ut],lt])=>{const pt=tt+1;tt=pt;const[dt,gt]=splitImportStatements(ct,ut),mt=`${dt};((AudioWorkletProcessor,registerProcessor)=>{${gt} -})(${lt?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${lt?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${lt?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${pt}',class extends AudioWorkletProcessor{process(){return !1}})`,St=new Blob([mt],{type:"application/javascript; charset=utf-8"}),At=URL.createObjectURL(St);return ot.audioWorklet.addModule(At,rt).then(()=>{if(b(ot))return ot;const Ot=_(ot);return Ot.audioWorklet.addModule(At,rt).then(()=>Ot)}).then(Ot=>{if(k===null)throw new SyntaxError;try{new k(Ot,`__sac${pt}`)}catch{throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(At))});return at===void 0?$.set(nt,new Map([[it,ht]])):at.set(it,ht),ht.then(()=>{const ct=j.get(nt);ct===void 0?j.set(nt,new Set([it])):ct.add(it)}).finally(()=>{const ct=$.get(nt);ct!==void 0&&ct.delete(it)}),ht}},getValueForKey=(o,e)=>{const s=o.get(e);if(s===void 0)throw new Error("A value with the given key could not be found.");return s},pickElementFromSet=(o,e)=>{const s=Array.from(o).filter(e);if(s.length>1)throw Error("More than one element was found.");if(s.length===0)throw Error("No element was found.");const[a]=s;return o.delete(a),a},deletePassiveInputConnectionToAudioNode=(o,e,s,a)=>{const c=getValueForKey(o,e),d=pickElementFromSet(c,_=>_[0]===s&&_[1]===a);return c.size===0&&o.delete(e),d},getEventListenersOfAudioNode=o=>getValueForKey(EVENT_LISTENERS,o),setInternalStateToActive=o=>{if(ACTIVE_AUDIO_NODE_STORE.has(o))throw new Error("The AudioNode is already stored.");ACTIVE_AUDIO_NODE_STORE.add(o),getEventListenersOfAudioNode(o).forEach(e=>e(!0))},isAudioWorkletNode=o=>"port"in o,setInternalStateToPassive=o=>{if(!ACTIVE_AUDIO_NODE_STORE.has(o))throw new Error("The AudioNode is not stored.");ACTIVE_AUDIO_NODE_STORE.delete(o),getEventListenersOfAudioNode(o).forEach(e=>e(!1))},setInternalStateToPassiveWhenNecessary=(o,e)=>{!isAudioWorkletNode(o)&&e.every(s=>s.size===0)&&setInternalStateToPassive(o)},createAddConnectionToAudioNode=(o,e,s,a,c,d,_,b,k,$,j,_e,et)=>{const tt=new WeakMap;return(nt,it,rt,st,at)=>{const{activeInputs:ot,passiveInputs:ht}=d(it),{outputs:ct}=d(nt),ut=b(nt),lt=pt=>{const dt=k(it),gt=k(nt);if(pt){const Et=deletePassiveInputConnectionToAudioNode(ht,nt,rt,st);o(ot,nt,Et,!1),!at&&!_e(nt)&&s(gt,dt,rt,st),et(it)&&setInternalStateToActive(it)}else{const Et=a(ot,nt,rt,st);e(ht,st,Et,!1),!at&&!_e(nt)&&c(gt,dt,rt,st);const ft=_(it);if(ft===0)j(it)&&setInternalStateToPassiveWhenNecessary(it,ot);else{const yt=tt.get(it);yt!==void 0&&clearTimeout(yt),tt.set(it,setTimeout(()=>{j(it)&&setInternalStateToPassiveWhenNecessary(it,ot)},ft*1e3))}}};return $(ct,[it,rt,st],pt=>pt[0]===it&&pt[1]===rt&&pt[2]===st,!0)?(ut.add(lt),j(nt)?o(ot,nt,[rt,st,lt],!0):e(ht,st,[nt,rt,lt],!0),!0):!1}},createAddPassiveInputConnectionToAudioNode=o=>(e,s,[a,c,d],_)=>{const b=e.get(a);b===void 0?e.set(a,new Set([[c,s,d]])):o(b,[c,s,d],k=>k[0]===c&&k[1]===s,_)},createAddSilentConnection=o=>(e,s)=>{const a=o(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});s.connect(a).connect(e.destination);const c=()=>{s.removeEventListener("ended",c),s.disconnect(a),a.disconnect()};s.addEventListener("ended",c)},createAddUnrenderedAudioWorkletNode=o=>(e,s)=>{o(e).add(s)},DEFAULT_OPTIONS$j={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},createAnalyserNodeConstructor=(o,e,s,a,c,d)=>class extends o{constructor(b,k){const $=c(b),j=_t(_t({},DEFAULT_OPTIONS$j),k),_e=a($,j),et=d($)?e():null;super(b,!1,_e,et),this._nativeAnalyserNode=_e}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(b){this._nativeAnalyserNode.fftSize=b}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(b){const k=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=b,!(b>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=k,s()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(b){const k=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=b,!(this._nativeAnalyserNode.maxDecibels>b))throw this._nativeAnalyserNode.minDecibels=k,s()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(b){this._nativeAnalyserNode.smoothingTimeConstant=b}getByteFrequencyData(b){this._nativeAnalyserNode.getByteFrequencyData(b)}getByteTimeDomainData(b){this._nativeAnalyserNode.getByteTimeDomainData(b)}getFloatFrequencyData(b){this._nativeAnalyserNode.getFloatFrequencyData(b)}getFloatTimeDomainData(b){this._nativeAnalyserNode.getFloatTimeDomainData(b)}},isOwnedByContext=(o,e)=>o.context===e,createAnalyserNodeRendererFactory=(o,e,s)=>()=>{const a=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,fftSize:b.fftSize,maxDecibels:b.maxDecibels,minDecibels:b.minDecibels,smoothingTimeConstant:b.smoothingTimeConstant};b=o(_,$)}return a.set(_,b),await s(d,_,b),b};return{render(d,_){const b=a.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},testAudioBufferCopyChannelMethodsOutOfBoundsSupport=o=>{try{o.copyToChannel(new Float32Array(1),0,-1)}catch{return!1}return!0},createIndexSizeError=()=>new DOMException("","IndexSizeError"),wrapAudioBufferGetChannelDataMethod=o=>{o.getChannelData=(e=>s=>{try{return e.call(o,s)}catch(a){throw a.code===12?createIndexSizeError():a}})(o.getChannelData)},DEFAULT_OPTIONS$i={numberOfChannels:1},createAudioBufferConstructor=(o,e,s,a,c,d,_,b)=>{let k=null;return class mr{constructor(j){if(c===null)throw new Error("Missing the native OfflineAudioContext constructor.");const{length:_e,numberOfChannels:et,sampleRate:tt}=_t(_t({},DEFAULT_OPTIONS$i),j);k===null&&(k=new c(1,1,44100));const nt=a!==null&&e(d,d)?new a({length:_e,numberOfChannels:et,sampleRate:tt}):k.createBuffer(et,_e,tt);if(nt.numberOfChannels===0)throw s();return typeof nt.copyFromChannel!="function"?(_(nt),wrapAudioBufferGetChannelDataMethod(nt)):e(testAudioBufferCopyChannelMethodsOutOfBoundsSupport,()=>testAudioBufferCopyChannelMethodsOutOfBoundsSupport(nt))||b(nt),o.add(nt),nt}static[Symbol.hasInstance](j){return j!==null&&typeof j=="object"&&Object.getPrototypeOf(j)===mr.prototype||o.has(j)}}},MOST_NEGATIVE_SINGLE_FLOAT=-34028234663852886e22,MOST_POSITIVE_SINGLE_FLOAT=-MOST_NEGATIVE_SINGLE_FLOAT,isActiveAudioNode=o=>ACTIVE_AUDIO_NODE_STORE.has(o),DEFAULT_OPTIONS$h={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},createAudioBufferSourceNodeConstructor=(o,e,s,a,c,d,_,b)=>class extends o{constructor($,j){const _e=d($),et=_t(_t({},DEFAULT_OPTIONS$h),j),tt=c(_e,et),nt=_(_e),it=nt?e():null;super($,!1,tt,it),this._audioBufferSourceNodeRenderer=it,this._isBufferNullified=!1,this._isBufferSet=et.buffer!==null,this._nativeAudioBufferSourceNode=tt,this._onended=null,this._playbackRate=s(this,nt,tt.playbackRate,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer($){if(this._nativeAudioBufferSourceNode.buffer=$,$!==null){if(this._isBufferSet)throw a();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop($){this._nativeAudioBufferSourceNode.loop=$}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd($){this._nativeAudioBufferSourceNode.loopEnd=$}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart($){this._nativeAudioBufferSourceNode.loopStart=$}get onended(){return this._onended}set onended($){const j=typeof $=="function"?b(this,$):null;this._nativeAudioBufferSourceNode.onended=j;const _e=this._nativeAudioBufferSourceNode.onended;this._onended=_e!==null&&_e===j?$:_e}get playbackRate(){return this._playbackRate}start($=0,j=0,_e){if(this._nativeAudioBufferSourceNode.start($,j,_e),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=_e===void 0?[$,j]:[$,j,_e]),this.context.state!=="closed"){setInternalStateToActive(this);const et=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",et),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",et)}}stop($=0){this._nativeAudioBufferSourceNode.stop($),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=$)}},createAudioBufferSourceNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap;let _=null,b=null;const k=async($,j)=>{let _e=s($);const et=isOwnedByContext(_e,j);if(!et){const tt={buffer:_e.buffer,channelCount:_e.channelCount,channelCountMode:_e.channelCountMode,channelInterpretation:_e.channelInterpretation,loop:_e.loop,loopEnd:_e.loopEnd,loopStart:_e.loopStart,playbackRate:_e.playbackRate.value};_e=e(j,tt),_!==null&&_e.start(..._),b!==null&&_e.stop(b)}return d.set(j,_e),et?await o(j,$.playbackRate,_e.playbackRate):await a(j,$.playbackRate,_e.playbackRate),await c($,j,_e),_e};return{set start($){_=$},set stop($){b=$},render($,j){const _e=d.get(j);return _e!==void 0?Promise.resolve(_e):k($,j)}}},isAudioBufferSourceNode=o=>"playbackRate"in o,isBiquadFilterNode=o=>"frequency"in o&&"gain"in o,isConstantSourceNode=o=>"offset"in o,isGainNode=o=>!("frequency"in o)&&"gain"in o,isOscillatorNode=o=>"detune"in o&&"frequency"in o,isStereoPannerNode=o=>"pan"in o,getAudioNodeConnections=o=>getValueForKey(AUDIO_NODE_CONNECTIONS_STORE,o),getAudioParamConnections=o=>getValueForKey(AUDIO_PARAM_CONNECTIONS_STORE,o),deactivateActiveAudioNodeInputConnections=(o,e)=>{const{activeInputs:s}=getAudioNodeConnections(o);s.forEach(c=>c.forEach(([d])=>{e.includes(o)||deactivateActiveAudioNodeInputConnections(d,[...e,o])}));const a=isAudioBufferSourceNode(o)?[o.playbackRate]:isAudioWorkletNode(o)?Array.from(o.parameters.values()):isBiquadFilterNode(o)?[o.Q,o.detune,o.frequency,o.gain]:isConstantSourceNode(o)?[o.offset]:isGainNode(o)?[o.gain]:isOscillatorNode(o)?[o.detune,o.frequency]:isStereoPannerNode(o)?[o.pan]:[];for(const c of a){const d=getAudioParamConnections(c);d!==void 0&&d.activeInputs.forEach(([_])=>deactivateActiveAudioNodeInputConnections(_,e))}isActiveAudioNode(o)&&setInternalStateToPassive(o)},deactivateAudioGraph=o=>{deactivateActiveAudioNodeInputConnections(o.destination,[])},isValidLatencyHint=o=>o===void 0||typeof o=="number"||typeof o=="string"&&(o==="balanced"||o==="interactive"||o==="playback"),createAudioContextConstructor=(o,e,s,a,c,d,_,b,k)=>class extends o{constructor(j={}){if(k===null)throw new Error("Missing the native AudioContext constructor.");let _e;try{_e=new k(j)}catch(nt){throw nt.code===12&&nt.message==="sampleRate is not in range"?s():nt}if(_e===null)throw a();if(!isValidLatencyHint(j.latencyHint))throw new TypeError(`The provided value '${j.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(j.sampleRate!==void 0&&_e.sampleRate!==j.sampleRate)throw s();super(_e,2);const{latencyHint:et}=j,{sampleRate:tt}=_e;if(this._baseLatency=typeof _e.baseLatency=="number"?_e.baseLatency:et==="balanced"?512/tt:et==="interactive"||et===void 0?256/tt:et==="playback"?1024/tt:Math.max(2,Math.min(128,Math.round(et*tt/128)))*128/tt,this._nativeAudioContext=_e,k.name==="webkitAudioContext"?(this._nativeGainNode=_e.createGain(),this._nativeOscillatorNode=_e.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(_e.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,_e.state==="running"){this._state="suspended";const nt=()=>{this._state==="suspended"&&(this._state=null),_e.removeEventListener("statechange",nt)};_e.addEventListener("statechange",nt)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw e()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),deactivateAudioGraph(this)}))}createMediaElementSource(j){return new c(this,{mediaElement:j})}createMediaStreamDestination(){return new d(this)}createMediaStreamSource(j){return new _(this,{mediaStream:j})}createMediaStreamTrackSource(j){return new b(this,{mediaStreamTrack:j})}resume(){return this._state==="suspended"?new Promise((j,_e)=>{const et=()=>{this._nativeAudioContext.removeEventListener("statechange",et),this._nativeAudioContext.state==="running"?j():this.resume().then(j,_e)};this._nativeAudioContext.addEventListener("statechange",et)}):this._nativeAudioContext.resume().catch(j=>{throw j===void 0||j.code===15?e():j})}suspend(){return this._nativeAudioContext.suspend().catch(j=>{throw j===void 0?e():j})}},createAudioDestinationNodeConstructor=(o,e,s,a,c,d,_,b)=>class extends o{constructor($,j){const _e=d($),et=_(_e),tt=c(_e,j,et),nt=et?e(b):null;super($,!1,tt,nt),this._isNodeOfNativeOfflineAudioContext=et,this._nativeAudioDestinationNode=tt}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount($){if(this._isNodeOfNativeOfflineAudioContext)throw a();if($>this._nativeAudioDestinationNode.maxChannelCount)throw s();this._nativeAudioDestinationNode.channelCount=$}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode($){if(this._isNodeOfNativeOfflineAudioContext)throw a();this._nativeAudioDestinationNode.channelCountMode=$}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}},createAudioDestinationNodeRenderer=o=>{const e=new WeakMap,s=async(a,c)=>{const d=c.destination;return e.set(c,d),await o(a,c,d),d};return{render(a,c){const d=e.get(c);return d!==void 0?Promise.resolve(d):s(a,c)}}},createAudioListenerFactory=(o,e,s,a,c,d,_,b)=>(k,$)=>{const j=$.listener,_e=()=>{const ct=new Float32Array(1),ut=e($,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),lt=_($);let pt=!1,dt=[0,0,-1,0,1,0],gt=[0,0,0];const Et=()=>{if(pt)return;pt=!0;const St=a($,256,9,0);St.onaudioprocess=({inputBuffer:At})=>{const Ot=[d(At,ct,0),d(At,ct,1),d(At,ct,2),d(At,ct,3),d(At,ct,4),d(At,ct,5)];Ot.some((Dt,Tt)=>Dt!==dt[Tt])&&(j.setOrientation(...Ot),dt=Ot);const Ct=[d(At,ct,6),d(At,ct,7),d(At,ct,8)];Ct.some((Dt,Tt)=>Dt!==gt[Tt])&&(j.setPosition(...Ct),gt=Ct)},ut.connect(St)},ft=St=>At=>{At!==dt[St]&&(dt[St]=At,j.setOrientation(...dt))},yt=St=>At=>{At!==gt[St]&&(gt[St]=At,j.setPosition(...gt))},mt=(St,At,Ot)=>{const Ct=s($,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:At});Ct.connect(ut,0,St),Ct.start(),Object.defineProperty(Ct.offset,"defaultValue",{get(){return At}});const Dt=o({context:k},lt,Ct.offset,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT);return b(Dt,"value",Tt=>()=>Tt.call(Dt),Tt=>vt=>{try{Tt.call(Dt,vt)}catch(bt){if(bt.code!==9)throw bt}Et(),lt&&Ot(vt)}),Dt.cancelAndHoldAtTime=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return Et(),bt})(Dt.cancelAndHoldAtTime),Dt.cancelScheduledValues=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return Et(),bt})(Dt.cancelScheduledValues),Dt.exponentialRampToValueAtTime=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return Et(),bt})(Dt.exponentialRampToValueAtTime),Dt.linearRampToValueAtTime=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return Et(),bt})(Dt.linearRampToValueAtTime),Dt.setTargetAtTime=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return Et(),bt})(Dt.setTargetAtTime),Dt.setValueAtTime=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return Et(),bt})(Dt.setValueAtTime),Dt.setValueCurveAtTime=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return Et(),bt})(Dt.setValueCurveAtTime),Dt};return{forwardX:mt(0,0,ft(0)),forwardY:mt(1,0,ft(1)),forwardZ:mt(2,-1,ft(2)),positionX:mt(6,0,yt(0)),positionY:mt(7,0,yt(1)),positionZ:mt(8,0,yt(2)),upX:mt(3,0,ft(3)),upY:mt(4,1,ft(4)),upZ:mt(5,0,ft(5))}},{forwardX:et,forwardY:tt,forwardZ:nt,positionX:it,positionY:rt,positionZ:st,upX:at,upY:ot,upZ:ht}=j.forwardX===void 0?_e():j;return{get forwardX(){return et},get forwardY(){return tt},get forwardZ(){return nt},get positionX(){return it},get positionY(){return rt},get positionZ(){return st},get upX(){return at},get upY(){return ot},get upZ(){return ht}}},isAudioNode$1=o=>"context"in o,isAudioNodeOutputConnection=o=>isAudioNode$1(o[0]),insertElementInSet=(o,e,s,a)=>{for(const c of o)if(s(c)){if(a)return!1;throw Error("The set contains at least one similar element.")}return o.add(e),!0},addActiveInputConnectionToAudioParam=(o,e,[s,a],c)=>{insertElementInSet(o,[e,s,a],d=>d[0]===e&&d[1]===s,c)},addPassiveInputConnectionToAudioParam=(o,[e,s,a],c)=>{const d=o.get(e);d===void 0?o.set(e,new Set([[s,a]])):insertElementInSet(d,[s,a],_=>_[0]===s,c)},isNativeAudioNodeFaker=o=>"inputs"in o,connectNativeAudioNodeToNativeAudioNode=(o,e,s,a)=>{if(isNativeAudioNodeFaker(e)){const c=e.inputs[a];return o.connect(c,s,0),[c,s,0]}return o.connect(e,s,a),[e,s,a]},deleteActiveInputConnection=(o,e,s)=>{for(const a of o)if(a[0]===e&&a[1]===s)return o.delete(a),a;return null},deleteActiveInputConnectionToAudioParam=(o,e,s)=>pickElementFromSet(o,a=>a[0]===e&&a[1]===s),deleteEventListenerOfAudioNode=(o,e)=>{if(!getEventListenersOfAudioNode(o).delete(e))throw new Error("Missing the expected event listener.")},deletePassiveInputConnectionToAudioParam=(o,e,s)=>{const a=getValueForKey(o,e),c=pickElementFromSet(a,d=>d[0]===s);return a.size===0&&o.delete(e),c},disconnectNativeAudioNodeFromNativeAudioNode=(o,e,s,a)=>{isNativeAudioNodeFaker(e)?o.disconnect(e.inputs[a],s,0):o.disconnect(e,s,a)},getNativeAudioNode=o=>getValueForKey(AUDIO_NODE_STORE,o),getNativeAudioParam=o=>getValueForKey(AUDIO_PARAM_STORE,o),isPartOfACycle=o=>CYCLE_COUNTERS.has(o),isPassiveAudioNode=o=>!ACTIVE_AUDIO_NODE_STORE.has(o),testAudioNodeDisconnectMethodSupport=(o,e)=>new Promise(s=>{if(e!==null)s(!0);else{const a=o.createScriptProcessor(256,1,1),c=o.createGain(),d=o.createBuffer(1,2,44100),_=d.getChannelData(0);_[0]=1,_[1]=1;const b=o.createBufferSource();b.buffer=d,b.loop=!0,b.connect(a).connect(o.destination),b.connect(c),b.disconnect(c),a.onaudioprocess=k=>{const $=k.inputBuffer.getChannelData(0);Array.prototype.some.call($,j=>j===1)?s(!0):s(!1),b.stop(),a.onaudioprocess=null,b.disconnect(a),a.disconnect(o.destination)},b.start()}}),visitEachAudioNodeOnce=(o,e)=>{const s=new Map;for(const a of o)for(const c of a){const d=s.get(c);s.set(c,d===void 0?1:d+1)}s.forEach((a,c)=>e(c,a))},isNativeAudioNode$1=o=>"context"in o,wrapAudioNodeDisconnectMethod=o=>{const e=new Map;o.connect=(s=>(a,c=0,d=0)=>{const _=isNativeAudioNode$1(a)?s(a,c,d):s(a,c),b=e.get(a);return b===void 0?e.set(a,[{input:d,output:c}]):b.every(k=>k.input!==d||k.output!==c)&&b.push({input:d,output:c}),_})(o.connect.bind(o)),o.disconnect=(s=>(a,c,d)=>{if(s.apply(o),a===void 0)e.clear();else if(typeof a=="number")for(const[_,b]of e){const k=b.filter($=>$.output!==a);k.length===0?e.delete(_):e.set(_,k)}else if(e.has(a))if(c===void 0)e.delete(a);else{const _=e.get(a);if(_!==void 0){const b=_.filter(k=>k.output!==c&&(k.input!==d||d===void 0));b.length===0?e.delete(a):e.set(a,b)}}for(const[_,b]of e)b.forEach(k=>{isNativeAudioNode$1(_)?o.connect(_,k.output,k.input):o.connect(_,k.output)})})(o.disconnect)},addConnectionToAudioParamOfAudioContext=(o,e,s,a)=>{const{activeInputs:c,passiveInputs:d}=getAudioParamConnections(e),{outputs:_}=getAudioNodeConnections(o),b=getEventListenersOfAudioNode(o),k=$=>{const j=getNativeAudioNode(o),_e=getNativeAudioParam(e);if($){const et=deletePassiveInputConnectionToAudioParam(d,o,s);addActiveInputConnectionToAudioParam(c,o,et,!1),!a&&!isPartOfACycle(o)&&j.connect(_e,s)}else{const et=deleteActiveInputConnectionToAudioParam(c,o,s);addPassiveInputConnectionToAudioParam(d,et,!1),!a&&!isPartOfACycle(o)&&j.disconnect(_e,s)}};return insertElementInSet(_,[e,s],$=>$[0]===e&&$[1]===s,!0)?(b.add(k),isActiveAudioNode(o)?addActiveInputConnectionToAudioParam(c,o,[s,k],!0):addPassiveInputConnectionToAudioParam(d,[o,s,k],!0),!0):!1},deleteInputConnectionOfAudioNode=(o,e,s,a)=>{const{activeInputs:c,passiveInputs:d}=getAudioNodeConnections(e),_=deleteActiveInputConnection(c[a],o,s);return _===null?[deletePassiveInputConnectionToAudioNode(d,o,s,a)[2],!1]:[_[2],!0]},deleteInputConnectionOfAudioParam=(o,e,s)=>{const{activeInputs:a,passiveInputs:c}=getAudioParamConnections(e),d=deleteActiveInputConnection(a,o,s);return d===null?[deletePassiveInputConnectionToAudioParam(c,o,s)[1],!1]:[d[2],!0]},deleteInputsOfAudioNode=(o,e,s,a,c)=>{const[d,_]=deleteInputConnectionOfAudioNode(o,s,a,c);if(d!==null&&(deleteEventListenerOfAudioNode(o,d),_&&!e&&!isPartOfACycle(o)&&disconnectNativeAudioNodeFromNativeAudioNode(getNativeAudioNode(o),getNativeAudioNode(s),a,c)),isActiveAudioNode(s)){const{activeInputs:b}=getAudioNodeConnections(s);setInternalStateToPassiveWhenNecessary(s,b)}},deleteInputsOfAudioParam=(o,e,s,a)=>{const[c,d]=deleteInputConnectionOfAudioParam(o,s,a);c!==null&&(deleteEventListenerOfAudioNode(o,c),d&&!e&&!isPartOfACycle(o)&&getNativeAudioNode(o).disconnect(getNativeAudioParam(s),a))},deleteAnyConnection=(o,e)=>{const s=getAudioNodeConnections(o),a=[];for(const c of s.outputs)isAudioNodeOutputConnection(c)?deleteInputsOfAudioNode(o,e,...c):deleteInputsOfAudioParam(o,e,...c),a.push(c[0]);return s.outputs.clear(),a},deleteConnectionAtOutput=(o,e,s)=>{const a=getAudioNodeConnections(o),c=[];for(const d of a.outputs)d[1]===s&&(isAudioNodeOutputConnection(d)?deleteInputsOfAudioNode(o,e,...d):deleteInputsOfAudioParam(o,e,...d),c.push(d[0]),a.outputs.delete(d));return c},deleteConnectionToDestination=(o,e,s,a,c)=>{const d=getAudioNodeConnections(o);return Array.from(d.outputs).filter(_=>_[0]===s&&(a===void 0||_[1]===a)&&(c===void 0||_[2]===c)).map(_=>(isAudioNodeOutputConnection(_)?deleteInputsOfAudioNode(o,e,..._):deleteInputsOfAudioParam(o,e,..._),d.outputs.delete(_),_[0]))},createAudioNodeConstructor=(o,e,s,a,c,d,_,b,k,$,j,_e,et,tt,nt,it)=>class extends ${constructor(st,at,ot,ht){super(ot),this._context=st,this._nativeAudioNode=ot;const ct=j(st);_e(ct)&&s(testAudioNodeDisconnectMethodSupport,()=>testAudioNodeDisconnectMethodSupport(ct,it))!==!0&&wrapAudioNodeDisconnectMethod(ot),AUDIO_NODE_STORE.set(this,ot),EVENT_LISTENERS.set(this,new Set),st.state!=="closed"&&at&&setInternalStateToActive(this),o(this,ht,ot)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(st){this._nativeAudioNode.channelCount=st}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(st){this._nativeAudioNode.channelCountMode=st}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(st){this._nativeAudioNode.channelInterpretation=st}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(st,at=0,ot=0){if(at<0||at>=this._nativeAudioNode.numberOfOutputs)throw c();const ht=j(this._context),ct=nt(ht);if(et(st)||tt(st))throw d();if(isAudioNode$1(st)){const pt=getNativeAudioNode(st);try{const gt=connectNativeAudioNodeToNativeAudioNode(this._nativeAudioNode,pt,at,ot),Et=isPassiveAudioNode(this);(ct||Et)&&this._nativeAudioNode.disconnect(...gt),this.context.state!=="closed"&&!Et&&isPassiveAudioNode(st)&&setInternalStateToActive(st)}catch(gt){throw gt.code===12?d():gt}if(e(this,st,at,ot,ct)){const gt=k([this],st);visitEachAudioNodeOnce(gt,a(ct))}return st}const ut=getNativeAudioParam(st);if(ut.name==="playbackRate"&&ut.maxValue===1024)throw _();try{this._nativeAudioNode.connect(ut,at),(ct||isPassiveAudioNode(this))&&this._nativeAudioNode.disconnect(ut,at)}catch(pt){throw pt.code===12?d():pt}if(addConnectionToAudioParamOfAudioContext(this,st,at,ct)){const pt=k([this],st);visitEachAudioNodeOnce(pt,a(ct))}}disconnect(st,at,ot){let ht;const ct=j(this._context),ut=nt(ct);if(st===void 0)ht=deleteAnyConnection(this,ut);else if(typeof st=="number"){if(st<0||st>=this.numberOfOutputs)throw c();ht=deleteConnectionAtOutput(this,ut,st)}else{if(at!==void 0&&(at<0||at>=this.numberOfOutputs)||isAudioNode$1(st)&&ot!==void 0&&(ot<0||ot>=st.numberOfInputs))throw c();if(ht=deleteConnectionToDestination(this,ut,st,at,ot),ht.length===0)throw d()}for(const lt of ht){const pt=k([this],lt);visitEachAudioNodeOnce(pt,b)}}},createAudioParamFactory=(o,e,s,a,c,d,_,b,k,$,j,_e,et)=>(tt,nt,it,rt=null,st=null)=>{const at=new AutomationEventList(it.defaultValue),ot=nt?a(at):null,ht={get defaultValue(){return it.defaultValue},get maxValue(){return rt===null?it.maxValue:rt},get minValue(){return st===null?it.minValue:st},get value(){return it.value},set value(ct){it.value=ct,ht.setValueAtTime(ct,tt.context.currentTime)},cancelAndHoldAtTime(ct){if(typeof it.cancelAndHoldAtTime=="function")ot===null&&at.flush(tt.context.currentTime),at.add(c(ct)),it.cancelAndHoldAtTime(ct);else{const ut=Array.from(at).pop();ot===null&&at.flush(tt.context.currentTime),at.add(c(ct));const lt=Array.from(at).pop();it.cancelScheduledValues(ct),ut!==lt&<!==void 0&&(lt.type==="exponentialRampToValue"?it.exponentialRampToValueAtTime(lt.value,lt.endTime):lt.type==="linearRampToValue"?it.linearRampToValueAtTime(lt.value,lt.endTime):lt.type==="setValue"?it.setValueAtTime(lt.value,lt.startTime):lt.type==="setValueCurve"&&it.setValueCurveAtTime(lt.values,lt.startTime,lt.duration))}return ht},cancelScheduledValues(ct){return ot===null&&at.flush(tt.context.currentTime),at.add(d(ct)),it.cancelScheduledValues(ct),ht},exponentialRampToValueAtTime(ct,ut){if(ct===0)throw new RangeError;if(!Number.isFinite(ut)||ut<0)throw new RangeError;return ot===null&&at.flush(tt.context.currentTime),at.add(_(ct,ut)),it.exponentialRampToValueAtTime(ct,ut),ht},linearRampToValueAtTime(ct,ut){return ot===null&&at.flush(tt.context.currentTime),at.add(b(ct,ut)),it.linearRampToValueAtTime(ct,ut),ht},setTargetAtTime(ct,ut,lt){return ot===null&&at.flush(tt.context.currentTime),at.add(k(ct,ut,lt)),it.setTargetAtTime(ct,ut,lt),ht},setValueAtTime(ct,ut){return ot===null&&at.flush(tt.context.currentTime),at.add($(ct,ut)),it.setValueAtTime(ct,ut),ht},setValueCurveAtTime(ct,ut,lt){const pt=ct instanceof Float32Array?ct:new Float32Array(ct);if(_e!==null&&_e.name==="webkitAudioContext"){const dt=ut+lt,gt=tt.context.sampleRate,Et=Math.ceil(ut*gt),ft=Math.floor(dt*gt),yt=ft-Et,mt=new Float32Array(yt);for(let At=0;At({replay(e){for(const s of o)if(s.type==="exponentialRampToValue"){const{endTime:a,value:c}=s;e.exponentialRampToValueAtTime(c,a)}else if(s.type==="linearRampToValue"){const{endTime:a,value:c}=s;e.linearRampToValueAtTime(c,a)}else if(s.type==="setTarget"){const{startTime:a,target:c,timeConstant:d}=s;e.setTargetAtTime(c,a,d)}else if(s.type==="setValue"){const{startTime:a,value:c}=s;e.setValueAtTime(c,a)}else if(s.type==="setValueCurve"){const{duration:a,startTime:c,values:d}=s;e.setValueCurveAtTime(d,c,a)}else throw new Error("Can't apply an unknown automation.")}});class ReadOnlyMap{constructor(e){this._map=new Map(e)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(e,s=null){return this._map.forEach((a,c)=>e.call(s,a,c,this))}get(e){return this._map.get(e)}has(e){return this._map.has(e)}keys(){return this._map.keys()}values(){return this._map.values()}}const DEFAULT_OPTIONS$g={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},createAudioWorkletNodeConstructor=(o,e,s,a,c,d,_,b,k,$,j,_e,et,tt)=>class extends e{constructor(it,rt,st){var at;const ot=b(it),ht=k(ot),ct=j(_t(_t({},DEFAULT_OPTIONS$g),st));et(ct);const ut=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(ot),lt=ut==null?void 0:ut.get(rt),pt=ht||ot.state!=="closed"?ot:(at=_(ot))!==null&&at!==void 0?at:ot,dt=c(pt,ht?null:it.baseLatency,$,rt,lt,ct),gt=ht?a(rt,ct,lt):null;super(it,!0,dt,gt);const Et=[];dt.parameters.forEach((yt,mt)=>{const St=s(this,ht,yt);Et.push([mt,St])}),this._nativeAudioWorkletNode=dt,this._onprocessorerror=null,this._parameters=new ReadOnlyMap(Et),ht&&o(ot,this);const{activeInputs:ft}=d(this);_e(dt,ft)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(it){const rt=typeof it=="function"?tt(this,it):null;this._nativeAudioWorkletNode.onprocessorerror=rt;const st=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=st!==null&&st===rt?it:st}get parameters(){return this._parameters===null?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}};function copyFromChannel(o,e,s,a,c){if(typeof o.copyFromChannel=="function")e[s].byteLength===0&&(e[s]=new Float32Array(128)),o.copyFromChannel(e[s],a,c);else{const d=o.getChannelData(a);if(e[s].byteLength===0)e[s]=d.slice(c,c+128);else{const _=new Float32Array(d.buffer,c*Float32Array.BYTES_PER_ELEMENT,128);e[s].set(_)}}}const copyToChannel=(o,e,s,a,c)=>{typeof o.copyToChannel=="function"?e[s].byteLength!==0&&o.copyToChannel(e[s],a,c):e[s].byteLength!==0&&o.getChannelData(a).set(e[s],c)},createNestedArrays=(o,e)=>{const s=[];for(let a=0;a{const s=getValueForKey(NODE_TO_PROCESSOR_MAPS,o),a=getNativeAudioNode(e);return getValueForKey(s,a)},processBuffer=async(o,e,s,a,c,d,_)=>{const b=e===null?Math.ceil(o.context.length/128)*128:e.length,k=a.channelCount*a.numberOfInputs,$=c.reduce((rt,st)=>rt+st,0),j=$===0?null:s.createBuffer($,b,s.sampleRate);if(d===void 0)throw new Error("Missing the processor constructor.");const _e=getAudioNodeConnections(o),et=await getAudioWorkletProcessor(s,o),tt=createNestedArrays(a.numberOfInputs,a.channelCount),nt=createNestedArrays(a.numberOfOutputs,c),it=Array.from(o.parameters.keys()).reduce((rt,st)=>wt(_t({},rt),{[st]:new Float32Array(128)}),{});for(let rt=0;rt0&&e!==null)for(let st=0;st{copyFromChannel(e,it,st,k+at,rt)});for(let st=0;st_e.activeInputs[ht].size===0?[]:ot),at=_(rt/s.sampleRate,s.sampleRate,()=>et.process(st,nt,it));if(j!==null)for(let ot=0,ht=0;ot(rt,st,at)=>{const ot=new WeakMap;let ht=null;const ct=async(ut,lt)=>{let pt=j(ut),dt=null;const gt=isOwnedByContext(pt,lt),Et=Array.isArray(st.outputChannelCount)?st.outputChannelCount:Array.from(st.outputChannelCount);if(_e===null){const ft=Et.reduce((At,Ot)=>At+Ot,0),yt=c(lt,{channelCount:Math.max(1,ft),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,ft)}),mt=[];for(let At=0;At{const vt=new et(Dt,Math.ceil(ut.context.length/128)*128,lt.sampleRate),bt=[],xt=[];for(let It=0;It{const Ft=d(vt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:It.value});return await tt(vt,It,Ft.offset),Ft})),Mt=a(vt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,Ot+Ct)});for(let It=0;Itnt(ut,vt,It))),it(vt)})(),lt,st,Et,at,$)}const ft=await ht,yt=s(lt,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[mt,St,At]=dt;ft!==null&&(yt.buffer=ft,yt.start(0)),yt.connect(mt);for(let Ot=0,Ct=0;Otclass extends nt{constructor(ct,ut){super(ct,ut),this._nativeContext=ct,this._audioWorklet=o===void 0?void 0:{addModule:(lt,pt)=>o(this,lt,pt)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new e(this)}createBiquadFilter(){return new c(this)}createBuffer(ct,ut,lt){return new s({length:ut,numberOfChannels:ct,sampleRate:lt})}createBufferSource(){return new a(this)}createChannelMerger(ct=6){return new d(this,{numberOfInputs:ct})}createChannelSplitter(ct=6){return new _(this,{numberOfOutputs:ct})}createConstantSource(){return new b(this)}createConvolver(){return new k(this)}createDelay(ct=1){return new j(this,{maxDelayTime:ct})}createDynamicsCompressor(){return new _e(this)}createGain(){return new et(this)}createIIRFilter(ct,ut){return new tt(this,{feedback:ut,feedforward:ct})}createOscillator(){return new it(this)}createPanner(){return new rt(this)}createPeriodicWave(ct,ut,lt={disableNormalization:!1}){return new st(this,wt(_t({},lt),{imag:ut,real:ct}))}createStereoPanner(){return new at(this)}createWaveShaper(){return new ot(this)}decodeAudioData(ct,ut,lt){return $(this._nativeContext,ct).then(pt=>(typeof ut=="function"&&ut(pt),pt),pt=>{throw typeof lt=="function"&<(pt),pt})}},DEFAULT_OPTIONS$f={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},createBiquadFilterNodeConstructor=(o,e,s,a,c,d,_,b)=>class extends o{constructor($,j){const _e=d($),et=_t(_t({},DEFAULT_OPTIONS$f),j),tt=c(_e,et),nt=_(_e),it=nt?s():null;super($,!1,tt,it),this._Q=e(this,nt,tt.Q,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._detune=e(this,nt,tt.detune,1200*Math.log2(MOST_POSITIVE_SINGLE_FLOAT),-1200*Math.log2(MOST_POSITIVE_SINGLE_FLOAT)),this._frequency=e(this,nt,tt.frequency,$.sampleRate/2,0),this._gain=e(this,nt,tt.gain,40*Math.log10(MOST_POSITIVE_SINGLE_FLOAT),MOST_NEGATIVE_SINGLE_FLOAT),this._nativeBiquadFilterNode=tt,b(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type($){this._nativeBiquadFilterNode.type=$}getFrequencyResponse($,j,_e){try{this._nativeBiquadFilterNode.getFrequencyResponse($,j,_e)}catch(et){throw et.code===11?a():et}if($.length!==j.length||j.length!==_e.length)throw a()}},createBiquadFilterNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={Q:$.Q.value,channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,detune:$.detune.value,frequency:$.frequency.value,gain:$.gain.value,type:$.type};$=e(k,_e)}return d.set(k,$),j?(await o(k,b.Q,$.Q),await o(k,b.detune,$.detune),await o(k,b.frequency,$.frequency),await o(k,b.gain,$.gain)):(await a(k,b.Q,$.Q),await a(k,b.detune,$.detune),await a(k,b.frequency,$.frequency),await a(k,b.gain,$.gain)),await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createCacheTestResult=(o,e)=>(s,a)=>{const c=e.get(s);if(c!==void 0)return c;const d=o.get(s);if(d!==void 0)return d;try{const _=a();return _ instanceof Promise?(o.set(s,_),_.catch(()=>!1).then(b=>(o.delete(s),e.set(s,b),b))):(e.set(s,_),_)}catch{return e.set(s,!1),!1}},DEFAULT_OPTIONS$e={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},createChannelMergerNodeConstructor=(o,e,s,a,c)=>class extends o{constructor(_,b){const k=a(_),$=_t(_t({},DEFAULT_OPTIONS$e),b),j=s(k,$),_e=c(k)?e():null;super(_,!1,j,_e)}},createChannelMergerNodeRendererFactory=(o,e,s)=>()=>{const a=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,numberOfInputs:b.numberOfInputs};b=o(_,$)}return a.set(_,b),await s(d,_,b),b};return{render(d,_){const b=a.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},DEFAULT_OPTIONS$d={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},createChannelSplitterNodeConstructor=(o,e,s,a,c,d)=>class extends o{constructor(b,k){const $=a(b),j=d(_t(_t({},DEFAULT_OPTIONS$d),k)),_e=s($,j),et=c($)?e():null;super(b,!1,_e,et)}},createChannelSplitterNodeRendererFactory=(o,e,s)=>()=>{const a=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,numberOfOutputs:b.numberOfOutputs};b=o(_,$)}return a.set(_,b),await s(d,_,b),b};return{render(d,_){const b=a.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},createConnectAudioParam=o=>(e,s,a)=>o(s,e,a),createConnectMultipleOutputs=o=>(e,s,a=0,c=0)=>{const d=e[a];if(d===void 0)throw o();return isNativeAudioNode$1(s)?d.connect(s,0,c):d.connect(s,0)},createConnectedNativeAudioBufferSourceNodeFactory=o=>(e,s)=>{const a=o(e,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),c=e.createBuffer(1,2,44100);return a.buffer=c,a.loop=!0,a.connect(s),a.start(),()=>{a.stop(),a.disconnect(s)}},DEFAULT_OPTIONS$c={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},createConstantSourceNodeConstructor=(o,e,s,a,c,d,_)=>class extends o{constructor(k,$){const j=c(k),_e=_t(_t({},DEFAULT_OPTIONS$c),$),et=a(j,_e),tt=d(j),nt=tt?s():null;super(k,!1,et,nt),this._constantSourceNodeRenderer=nt,this._nativeConstantSourceNode=et,this._offset=e(this,tt,et.offset,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(k){const $=typeof k=="function"?_(this,k):null;this._nativeConstantSourceNode.onended=$;const j=this._nativeConstantSourceNode.onended;this._onended=j!==null&&j===$?k:j}start(k=0){if(this._nativeConstantSourceNode.start(k),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=k),this.context.state!=="closed"){setInternalStateToActive(this);const $=()=>{this._nativeConstantSourceNode.removeEventListener("ended",$),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeConstantSourceNode.addEventListener("ended",$)}}stop(k=0){this._nativeConstantSourceNode.stop(k),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=k)}},createConstantSourceNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap;let _=null,b=null;const k=async($,j)=>{let _e=s($);const et=isOwnedByContext(_e,j);if(!et){const tt={channelCount:_e.channelCount,channelCountMode:_e.channelCountMode,channelInterpretation:_e.channelInterpretation,offset:_e.offset.value};_e=e(j,tt),_!==null&&_e.start(_),b!==null&&_e.stop(b)}return d.set(j,_e),et?await o(j,$.offset,_e.offset):await a(j,$.offset,_e.offset),await c($,j,_e),_e};return{set start($){_=$},set stop($){b=$},render($,j){const _e=d.get(j);return _e!==void 0?Promise.resolve(_e):k($,j)}}},createConvertNumberToUnsignedLong=o=>e=>(o[0]=e,o[0]),DEFAULT_OPTIONS$b={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},createConvolverNodeConstructor=(o,e,s,a,c,d)=>class extends o{constructor(b,k){const $=a(b),j=_t(_t({},DEFAULT_OPTIONS$b),k),_e=s($,j),tt=c($)?e():null;super(b,!1,_e,tt),this._isBufferNullified=!1,this._nativeConvolverNode=_e,j.buffer!==null&&d(this,j.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(b){if(this._nativeConvolverNode.buffer=b,b===null&&this._nativeConvolverNode.buffer!==null){const k=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=k.createBuffer(1,1,44100),this._isBufferNullified=!0,d(this,0)}else this._isBufferNullified=!1,d(this,this._nativeConvolverNode.buffer===null?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(b){this._nativeConvolverNode.normalize=b}},createConvolverNodeRendererFactory=(o,e,s)=>()=>{const a=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={buffer:b.buffer,channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,disableNormalization:!b.normalize};b=o(_,$)}return a.set(_,b),isNativeAudioNodeFaker(b)?await s(d,_,b.inputs[0]):await s(d,_,b),b};return{render(d,_){const b=a.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},createCreateNativeOfflineAudioContext=(o,e)=>(s,a,c)=>{if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new e(s,a,c)}catch(d){throw d.name==="SyntaxError"?o():d}},createDataCloneError=()=>new DOMException("","DataCloneError"),detachArrayBuffer=o=>{const{port1:e,port2:s}=new MessageChannel;return new Promise(a=>{const c=()=>{s.onmessage=null,e.close(),s.close(),a()};s.onmessage=()=>c();try{e.postMessage(o,[o])}finally{c()}})},createDecodeAudioData=(o,e,s,a,c,d,_,b,k,$,j)=>(_e,et)=>{const tt=_(_e)?_e:d(_e);if(c.has(et)){const nt=s();return Promise.reject(nt)}try{c.add(et)}catch{}return e(k,()=>k(tt))?tt.decodeAudioData(et).then(nt=>(detachArrayBuffer(et).catch(()=>{}),e(b,()=>b(nt))||j(nt),o.add(nt),nt)):new Promise((nt,it)=>{const rt=async()=>{try{await detachArrayBuffer(et)}catch{}},st=at=>{it(at),rt()};try{tt.decodeAudioData(et,at=>{typeof at.copyFromChannel!="function"&&($(at),wrapAudioBufferGetChannelDataMethod(at)),o.add(at),rt().then(()=>nt(at))},at=>{st(at===null?a():at)})}catch(at){st(at)}})},createDecrementCycleCounter=(o,e,s,a,c,d,_,b)=>(k,$)=>{const j=e.get(k);if(j===void 0)throw new Error("Missing the expected cycle count.");const _e=d(k.context),et=b(_e);if(j===$){if(e.delete(k),!et&&_(k)){const tt=a(k),{outputs:nt}=s(k);for(const it of nt)if(isAudioNodeOutputConnection(it)){const rt=a(it[0]);o(tt,rt,it[1],it[2])}else{const rt=c(it[0]);tt.connect(rt,it[1])}}}else e.set(k,j-$)},DEFAULT_OPTIONS$a={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},createDelayNodeConstructor=(o,e,s,a,c,d,_)=>class extends o{constructor(k,$){const j=c(k),_e=_t(_t({},DEFAULT_OPTIONS$a),$),et=a(j,_e),tt=d(j),nt=tt?s(_e.maxDelayTime):null;super(k,!1,et,nt),this._delayTime=e(this,tt,et.delayTime),_(this,_e.maxDelayTime)}get delayTime(){return this._delayTime}},createDelayNodeRendererFactory=(o,e,s,a,c)=>d=>{const _=new WeakMap,b=async(k,$)=>{let j=s(k);const _e=isOwnedByContext(j,$);if(!_e){const et={channelCount:j.channelCount,channelCountMode:j.channelCountMode,channelInterpretation:j.channelInterpretation,delayTime:j.delayTime.value,maxDelayTime:d};j=e($,et)}return _.set($,j),_e?await o($,k.delayTime,j.delayTime):await a($,k.delayTime,j.delayTime),await c(k,$,j),j};return{render(k,$){const j=_.get($);return j!==void 0?Promise.resolve(j):b(k,$)}}},createDeleteActiveInputConnectionToAudioNode=o=>(e,s,a,c)=>o(e[c],d=>d[0]===s&&d[1]===a),createDeleteUnrenderedAudioWorkletNode=o=>(e,s)=>{o(e).delete(s)},isDelayNode=o=>"delayTime"in o,createDetectCycles=(o,e,s)=>function a(c,d){const _=isAudioNode$1(d)?d:s(o,d);if(isDelayNode(_))return[];if(c[0]===_)return[c];if(c.includes(_))return[];const{outputs:b}=e(_);return Array.from(b).map(k=>a([...c,_],k[0])).reduce((k,$)=>k.concat($),[])},getOutputAudioNodeAtIndex=(o,e,s)=>{const a=e[s];if(a===void 0)throw o();return a},createDisconnectMultipleOutputs=o=>(e,s=void 0,a=void 0,c=0)=>s===void 0?e.forEach(d=>d.disconnect()):typeof s=="number"?getOutputAudioNodeAtIndex(o,e,s).disconnect():isNativeAudioNode$1(s)?a===void 0?e.forEach(d=>d.disconnect(s)):c===void 0?getOutputAudioNodeAtIndex(o,e,a).disconnect(s,0):getOutputAudioNodeAtIndex(o,e,a).disconnect(s,0,c):a===void 0?e.forEach(d=>d.disconnect(s)):getOutputAudioNodeAtIndex(o,e,a).disconnect(s,0),DEFAULT_OPTIONS$9={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},createDynamicsCompressorNodeConstructor=(o,e,s,a,c,d,_,b)=>class extends o{constructor($,j){const _e=d($),et=_t(_t({},DEFAULT_OPTIONS$9),j),tt=a(_e,et),nt=_(_e),it=nt?s():null;super($,!1,tt,it),this._attack=e(this,nt,tt.attack),this._knee=e(this,nt,tt.knee),this._nativeDynamicsCompressorNode=tt,this._ratio=e(this,nt,tt.ratio),this._release=e(this,nt,tt.release),this._threshold=e(this,nt,tt.threshold),b(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount($){const j=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=$,$>2)throw this._nativeDynamicsCompressorNode.channelCount=j,c()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode($){const j=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=$,$==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=j,c()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return typeof this._nativeDynamicsCompressorNode.reduction.value=="number"?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}},createDynamicsCompressorNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={attack:$.attack.value,channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,knee:$.knee.value,ratio:$.ratio.value,release:$.release.value,threshold:$.threshold.value};$=e(k,_e)}return d.set(k,$),j?(await o(k,b.attack,$.attack),await o(k,b.knee,$.knee),await o(k,b.ratio,$.ratio),await o(k,b.release,$.release),await o(k,b.threshold,$.threshold)):(await a(k,b.attack,$.attack),await a(k,b.knee,$.knee),await a(k,b.ratio,$.ratio),await a(k,b.release,$.release),await a(k,b.threshold,$.threshold)),await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createEncodingError=()=>new DOMException("","EncodingError"),createEvaluateSource=o=>e=>new Promise((s,a)=>{if(o===null){a(new SyntaxError);return}const c=o.document.head;if(c===null)a(new SyntaxError);else{const d=o.document.createElement("script"),_=new Blob([e],{type:"application/javascript"}),b=URL.createObjectURL(_),k=o.onerror,$=()=>{o.onerror=k,URL.revokeObjectURL(b)};o.onerror=(j,_e,et,tt,nt)=>{if(_e===b||_e===o.location.href&&et===1&&tt===1)return $(),a(nt),!1;if(k!==null)return k(j,_e,et,tt,nt)},d.onerror=()=>{$(),a(new SyntaxError)},d.onload=()=>{$(),s()},d.src=b,d.type="module",c.appendChild(d)}}),createEventTargetConstructor=o=>class{constructor(s){this._nativeEventTarget=s,this._listeners=new WeakMap}addEventListener(s,a,c){if(a!==null){let d=this._listeners.get(a);d===void 0&&(d=o(this,a),typeof a=="function"&&this._listeners.set(a,d)),this._nativeEventTarget.addEventListener(s,d,c)}}dispatchEvent(s){return this._nativeEventTarget.dispatchEvent(s)}removeEventListener(s,a,c){const d=a===null?void 0:this._listeners.get(a);this._nativeEventTarget.removeEventListener(s,d===void 0?null:d,c)}},createExposeCurrentFrameAndCurrentTime=o=>(e,s,a)=>{Object.defineProperties(o,{currentFrame:{configurable:!0,get(){return Math.round(e*s)}},currentTime:{configurable:!0,get(){return e}}});try{return a()}finally{o!==null&&(delete o.currentFrame,delete o.currentTime)}},createFetchSource=o=>async e=>{try{const s=await fetch(e);if(s.ok)return[await s.text(),s.url]}catch{}throw o()},DEFAULT_OPTIONS$8={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},createGainNodeConstructor=(o,e,s,a,c,d)=>class extends o{constructor(b,k){const $=c(b),j=_t(_t({},DEFAULT_OPTIONS$8),k),_e=a($,j),et=d($),tt=et?s():null;super(b,!1,_e,tt),this._gain=e(this,et,_e.gain,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT)}get gain(){return this._gain}},createGainNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,gain:$.gain.value};$=e(k,_e)}return d.set(k,$),j?await o(k,b.gain,$.gain):await a(k,b.gain,$.gain),await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createGetActiveAudioWorkletNodeInputs=(o,e)=>s=>e(o,s),createGetAudioNodeRenderer=o=>e=>{const s=o(e);if(s.renderer===null)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return s.renderer},createGetAudioNodeTailTime=o=>e=>{var s;return(s=o.get(e))!==null&&s!==void 0?s:0},createGetAudioParamRenderer=o=>e=>{const s=o(e);if(s.renderer===null)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return s.renderer},createGetBackupOfflineAudioContext=o=>e=>o.get(e),createInvalidStateError=()=>new DOMException("","InvalidStateError"),createGetNativeContext=o=>e=>{const s=o.get(e);if(s===void 0)throw createInvalidStateError();return s},createGetOrCreateBackupOfflineAudioContext=(o,e)=>s=>{let a=o.get(s);if(a!==void 0)return a;if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");return a=new e(1,1,44100),o.set(s,a),a},createGetUnrenderedAudioWorkletNodes=o=>e=>{const s=o.get(e);if(s===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return s},createInvalidAccessError=()=>new DOMException("","InvalidAccessError"),wrapIIRFilterNodeGetFrequencyResponseMethod=o=>{o.getFrequencyResponse=(e=>(s,a,c)=>{if(s.length!==a.length||a.length!==c.length)throw createInvalidAccessError();return e.call(o,s,a,c)})(o.getFrequencyResponse)},DEFAULT_OPTIONS$7={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},createIIRFilterNodeConstructor=(o,e,s,a,c,d)=>class extends o{constructor(b,k){const $=a(b),j=c($),_e=_t(_t({},DEFAULT_OPTIONS$7),k),et=e($,j?null:b.baseLatency,_e),tt=j?s(_e.feedback,_e.feedforward):null;super(b,!1,et,tt),wrapIIRFilterNodeGetFrequencyResponseMethod(et),this._nativeIIRFilterNode=et,d(this,1)}getFrequencyResponse(b,k,$){return this._nativeIIRFilterNode.getFrequencyResponse(b,k,$)}},filterBuffer=(o,e,s,a,c,d,_,b,k,$,j)=>{const _e=$.length;let et=b;for(let tt=0;tt<_e;tt+=1){let nt=s[0]*$[tt];for(let it=1;it{const c=s instanceof Float64Array?s:new Float64Array(s),d=a instanceof Float64Array?a:new Float64Array(a),_=c.length,b=d.length,k=Math.min(_,b);if(c[0]!==1){for(let nt=0;nt<_;nt+=1)d[nt]/=c[0];for(let nt=1;nt(d,_)=>{const b=new WeakMap;let k=null;const $=async(j,_e)=>{let et=null,tt=e(j);const nt=isOwnedByContext(tt,_e);if(_e.createIIRFilter===void 0?et=o(_e,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):nt||(tt=_e.createIIRFilter(_,d)),b.set(_e,et===null?tt:et),et!==null){if(k===null){if(s===null)throw new Error("Missing the native OfflineAudioContext constructor.");const rt=new s(j.context.destination.channelCount,j.context.length,_e.sampleRate);k=(async()=>{await a(j,rt,rt.destination);const st=await c(rt);return filterFullBuffer(st,_e,d,_)})()}const it=await k;return et.buffer=it,et.start(0),et}return await a(j,_e,tt),tt};return{render(j,_e){const et=b.get(_e);return et!==void 0?Promise.resolve(et):$(j,_e)}}},createIncrementCycleCounterFactory=(o,e,s,a,c,d)=>_=>(b,k)=>{const $=o.get(b);if($===void 0){if(!_&&d(b)){const j=a(b),{outputs:_e}=s(b);for(const et of _e)if(isAudioNodeOutputConnection(et)){const tt=a(et[0]);e(j,tt,et[1],et[2])}else{const tt=c(et[0]);j.disconnect(tt,et[1])}}o.set(b,k)}else o.set(b,$+k)},createIsAnyAudioContext=(o,e)=>s=>{const a=o.get(s);return e(a)||e(s)},createIsAnyAudioNode=(o,e)=>s=>o.has(s)||e(s),createIsAnyAudioParam=(o,e)=>s=>o.has(s)||e(s),createIsAnyOfflineAudioContext=(o,e)=>s=>{const a=o.get(s);return e(a)||e(s)},createIsNativeAudioContext=o=>e=>o!==null&&e instanceof o,createIsNativeAudioNode=o=>e=>o!==null&&typeof o.AudioNode=="function"&&e instanceof o.AudioNode,createIsNativeAudioParam=o=>e=>o!==null&&typeof o.AudioParam=="function"&&e instanceof o.AudioParam,createIsNativeContext=(o,e)=>s=>o(s)||e(s),createIsNativeOfflineAudioContext=o=>e=>o!==null&&e instanceof o,createIsSecureContext=o=>o!==null&&o.isSecureContext,createIsSupportedPromise=async(o,e,s,a,c,d,_,b,k,$,j,_e,et,tt,nt,it)=>o(e,e)&&o(s,s)&&o(c,c)&&o(d,d)&&o(b,b)&&o(k,k)&&o($,$)&&o(j,j)&&o(_e,_e)&&o(et,et)&&o(tt,tt)?(await Promise.all([o(a,a),o(_,_),o(nt,nt),o(it,it)])).every(st=>st):!1,createMediaElementAudioSourceNodeConstructor=(o,e,s,a)=>class extends o{constructor(d,_){const b=s(d),k=e(b,_);if(a(b))throw TypeError();super(d,!0,k,null),this._nativeMediaElementAudioSourceNode=k}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}},DEFAULT_OPTIONS$6={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},createMediaStreamAudioDestinationNodeConstructor=(o,e,s,a)=>class extends o{constructor(d,_){const b=s(d);if(a(b))throw new TypeError;const k=_t(_t({},DEFAULT_OPTIONS$6),_),$=e(b,k);super(d,!1,$,null),this._nativeMediaStreamAudioDestinationNode=$}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}},createMediaStreamAudioSourceNodeConstructor=(o,e,s,a)=>class extends o{constructor(d,_){const b=s(d),k=e(b,_);if(a(b))throw new TypeError;super(d,!0,k,null),this._nativeMediaStreamAudioSourceNode=k}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}},createMediaStreamTrackAudioSourceNodeConstructor=(o,e,s)=>class extends o{constructor(c,d){const _=s(c),b=e(_,d);super(c,!0,b,null)}},createMinimalBaseAudioContextConstructor=(o,e,s,a,c,d)=>class extends s{constructor(b,k){super(b),this._nativeContext=b,CONTEXT_STORE.set(this,b),a(b)&&c.set(b,new Set),this._destination=new o(this,k),this._listener=e(this,b),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(b){const k=typeof b=="function"?d(this,b):null;this._nativeContext.onstatechange=k;const $=this._nativeContext.onstatechange;this._onstatechange=$!==null&&$===k?b:$}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}},testPromiseSupport=o=>{const e=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{const s=o.decodeAudioData(e.buffer,()=>{});return s===void 0?!1:(s.catch(()=>{}),!0)}catch{}return!1},createMonitorConnections=(o,e)=>(s,a,c)=>{const d=new Set;return s.connect=(_=>(b,k=0,$=0)=>{const j=d.size===0;if(e(b))return _.call(s,b,k,$),o(d,[b,k,$],_e=>_e[0]===b&&_e[1]===k&&_e[2]===$,!0),j&&a(),b;_.call(s,b,k),o(d,[b,k],_e=>_e[0]===b&&_e[1]===k,!0),j&&a()})(s.connect),s.disconnect=(_=>(b,k,$)=>{const j=d.size>0;if(b===void 0)_.apply(s),d.clear();else if(typeof b=="number"){_.call(s,b);for(const et of d)et[1]===b&&d.delete(et)}else{e(b)?_.call(s,b,k,$):_.call(s,b,k);for(const et of d)et[0]===b&&(k===void 0||et[1]===k)&&($===void 0||et[2]===$)&&d.delete(et)}const _e=d.size===0;j&&_e&&c()})(s.disconnect),s},assignNativeAudioNodeOption=(o,e,s)=>{const a=e[s];a!==void 0&&a!==o[s]&&(o[s]=a)},assignNativeAudioNodeOptions=(o,e)=>{assignNativeAudioNodeOption(o,e,"channelCount"),assignNativeAudioNodeOption(o,e,"channelCountMode"),assignNativeAudioNodeOption(o,e,"channelInterpretation")},testAnalyserNodeGetFloatTimeDomainDataMethodSupport=o=>typeof o.getFloatTimeDomainData=="function",wrapAnalyserNodeGetFloatTimeDomainDataMethod=o=>{o.getFloatTimeDomainData=e=>{const s=new Uint8Array(e.length);o.getByteTimeDomainData(s);const a=Math.max(s.length,o.fftSize);for(let c=0;c(s,a)=>{const c=s.createAnalyser();if(assignNativeAudioNodeOptions(c,a),!(a.maxDecibels>a.minDecibels))throw e();return assignNativeAudioNodeOption(c,a,"fftSize"),assignNativeAudioNodeOption(c,a,"maxDecibels"),assignNativeAudioNodeOption(c,a,"minDecibels"),assignNativeAudioNodeOption(c,a,"smoothingTimeConstant"),o(testAnalyserNodeGetFloatTimeDomainDataMethodSupport,()=>testAnalyserNodeGetFloatTimeDomainDataMethodSupport(c))||wrapAnalyserNodeGetFloatTimeDomainDataMethod(c),c},createNativeAudioBufferConstructor=o=>o===null?null:o.hasOwnProperty("AudioBuffer")?o.AudioBuffer:null,assignNativeAudioNodeAudioParamValue=(o,e,s)=>{const a=e[s];a!==void 0&&a!==o[s].value&&(o[s].value=a)},wrapAudioBufferSourceNodeStartMethodConsecutiveCalls=o=>{o.start=(e=>{let s=!1;return(a=0,c=0,d)=>{if(s)throw createInvalidStateError();e.call(o,a,c,d),s=!0}})(o.start)},wrapAudioScheduledSourceNodeStartMethodNegativeParameters=o=>{o.start=(e=>(s=0,a=0,c)=>{if(typeof c=="number"&&c<0||a<0||s<0)throw new RangeError("The parameters can't be negative.");e.call(o,s,a,c)})(o.start)},wrapAudioScheduledSourceNodeStopMethodNegativeParameters=o=>{o.stop=(e=>(s=0)=>{if(s<0)throw new RangeError("The parameter can't be negative.");e.call(o,s)})(o.stop)},createNativeAudioBufferSourceNodeFactory=(o,e,s,a,c,d,_,b,k,$,j)=>(_e,et)=>{const tt=_e.createBufferSource();return assignNativeAudioNodeOptions(tt,et),assignNativeAudioNodeAudioParamValue(tt,et,"playbackRate"),assignNativeAudioNodeOption(tt,et,"buffer"),assignNativeAudioNodeOption(tt,et,"loop"),assignNativeAudioNodeOption(tt,et,"loopEnd"),assignNativeAudioNodeOption(tt,et,"loopStart"),e(s,()=>s(_e))||wrapAudioBufferSourceNodeStartMethodConsecutiveCalls(tt),e(a,()=>a(_e))||k(tt),e(c,()=>c(_e))||$(tt,_e),e(d,()=>d(_e))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(tt),e(_,()=>_(_e))||j(tt,_e),e(b,()=>b(_e))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(tt),o(_e,tt),tt},createNativeAudioContextConstructor=o=>o===null?null:o.hasOwnProperty("AudioContext")?o.AudioContext:o.hasOwnProperty("webkitAudioContext")?o.webkitAudioContext:null,createNativeAudioDestinationNodeFactory=(o,e)=>(s,a,c)=>{const d=s.destination;if(d.channelCount!==a)try{d.channelCount=a}catch{}c&&d.channelCountMode!=="explicit"&&(d.channelCountMode="explicit"),d.maxChannelCount===0&&Object.defineProperty(d,"maxChannelCount",{value:a});const _=o(s,{channelCount:a,channelCountMode:d.channelCountMode,channelInterpretation:d.channelInterpretation,gain:1});return e(_,"channelCount",b=>()=>b.call(_),b=>k=>{b.call(_,k);try{d.channelCount=k}catch($){if(k>d.maxChannelCount)throw $}}),e(_,"channelCountMode",b=>()=>b.call(_),b=>k=>{b.call(_,k),d.channelCountMode=k}),e(_,"channelInterpretation",b=>()=>b.call(_),b=>k=>{b.call(_,k),d.channelInterpretation=k}),Object.defineProperty(_,"maxChannelCount",{get:()=>d.maxChannelCount}),_.connect(d),_},createNativeAudioWorkletNodeConstructor=o=>o===null?null:o.hasOwnProperty("AudioWorkletNode")?o.AudioWorkletNode:null,testClonabilityOfAudioWorkletNodeOptions=o=>{const{port1:e}=new MessageChannel;try{e.postMessage(o)}finally{e.close()}},createNativeAudioWorkletNodeFactory=(o,e,s,a,c)=>(d,_,b,k,$,j)=>{if(b!==null)try{const _e=new b(d,k,j),et=new Map;let tt=null;if(Object.defineProperties(_e,{channelCount:{get:()=>j.channelCount,set:()=>{throw o()}},channelCountMode:{get:()=>"explicit",set:()=>{throw o()}},onprocessorerror:{get:()=>tt,set:nt=>{typeof tt=="function"&&_e.removeEventListener("processorerror",tt),tt=typeof nt=="function"?nt:null,typeof tt=="function"&&_e.addEventListener("processorerror",tt)}}}),_e.addEventListener=(nt=>(...it)=>{if(it[0]==="processorerror"){const rt=typeof it[1]=="function"?it[1]:typeof it[1]=="object"&&it[1]!==null&&typeof it[1].handleEvent=="function"?it[1].handleEvent:null;if(rt!==null){const st=et.get(it[1]);st!==void 0?it[1]=st:(it[1]=at=>{at.type==="error"?(Object.defineProperties(at,{type:{value:"processorerror"}}),rt(at)):rt(new ErrorEvent(it[0],_t({},at)))},et.set(rt,it[1]))}}return nt.call(_e,"error",it[1],it[2]),nt.call(_e,...it)})(_e.addEventListener),_e.removeEventListener=(nt=>(...it)=>{if(it[0]==="processorerror"){const rt=et.get(it[1]);rt!==void 0&&(et.delete(it[1]),it[1]=rt)}return nt.call(_e,"error",it[1],it[2]),nt.call(_e,it[0],it[1],it[2])})(_e.removeEventListener),j.numberOfOutputs!==0){const nt=s(d,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return _e.connect(nt).connect(d.destination),c(_e,()=>nt.disconnect(),()=>nt.connect(d.destination))}return _e}catch(_e){throw _e.code===11?a():_e}if($===void 0)throw a();return testClonabilityOfAudioWorkletNodeOptions(j),e(d,_,$,j)},computeBufferSize=(o,e)=>o===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(o*e))))),cloneAudioWorkletNodeOptions=o=>new Promise((e,s)=>{const{port1:a,port2:c}=new MessageChannel;a.onmessage=({data:d})=>{a.close(),c.close(),e(d)},a.onmessageerror=({data:d})=>{a.close(),c.close(),s(d)},c.postMessage(o)}),createAudioWorkletProcessorPromise=async(o,e)=>{const s=await cloneAudioWorkletNodeOptions(e);return new o(s)},createAudioWorkletProcessor=(o,e,s,a)=>{let c=NODE_TO_PROCESSOR_MAPS.get(o);c===void 0&&(c=new WeakMap,NODE_TO_PROCESSOR_MAPS.set(o,c));const d=createAudioWorkletProcessorPromise(s,a);return c.set(e,d),d},createNativeAudioWorkletNodeFakerFactory=(o,e,s,a,c,d,_,b,k,$,j,_e,et)=>(tt,nt,it,rt)=>{if(rt.numberOfInputs===0&&rt.numberOfOutputs===0)throw k();const st=Array.isArray(rt.outputChannelCount)?rt.outputChannelCount:Array.from(rt.outputChannelCount);if(st.some(kt=>kt<1))throw k();if(st.length!==rt.numberOfOutputs)throw e();if(rt.channelCountMode!=="explicit")throw k();const at=rt.channelCount*rt.numberOfInputs,ot=st.reduce((kt,Bt)=>kt+Bt,0),ht=it.parameterDescriptors===void 0?0:it.parameterDescriptors.length;if(at+ht>6||ot>6)throw k();const ct=new MessageChannel,ut=[],lt=[];for(let kt=0;ktkt===void 0?0:kt},maxValue:{get:()=>Bt===void 0?MOST_POSITIVE_SINGLE_FLOAT:Bt},minValue:{get:()=>Qt===void 0?MOST_NEGATIVE_SINGLE_FLOAT:Qt}}),pt.push($t)}const dt=a(tt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,at+ht)}),gt=computeBufferSize(nt,tt.sampleRate),Et=b(tt,gt,at+ht,Math.max(1,ot)),ft=c(tt,{channelCount:Math.max(1,ot),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,ot)}),yt=[];for(let kt=0;kt{const Qt=pt[Bt];return Qt.connect(dt,0,at+Bt),Qt.start(0),[kt,Qt.offset]}));dt.connect(Et);let St=rt.channelInterpretation,At=null;const Ot=rt.numberOfOutputs===0?[Et]:yt,Ct={get bufferSize(){return gt},get channelCount(){return rt.channelCount},set channelCount(kt){throw s()},get channelCountMode(){return rt.channelCountMode},set channelCountMode(kt){throw s()},get channelInterpretation(){return St},set channelInterpretation(kt){for(const Bt of ut)Bt.channelInterpretation=kt;St=kt},get context(){return Et.context},get inputs(){return ut},get numberOfInputs(){return rt.numberOfInputs},get numberOfOutputs(){return rt.numberOfOutputs},get onprocessorerror(){return At},set onprocessorerror(kt){typeof At=="function"&&Ct.removeEventListener("processorerror",At),At=typeof kt=="function"?kt:null,typeof At=="function"&&Ct.addEventListener("processorerror",At)},get parameters(){return mt},get port(){return ct.port2},addEventListener(...kt){return Et.addEventListener(kt[0],kt[1],kt[2])},connect:o.bind(null,Ot),disconnect:$.bind(null,Ot),dispatchEvent(...kt){return Et.dispatchEvent(kt[0])},removeEventListener(...kt){return Et.removeEventListener(kt[0],kt[1],kt[2])}},Dt=new Map;ct.port1.addEventListener=(kt=>(...Bt)=>{if(Bt[0]==="message"){const Qt=typeof Bt[1]=="function"?Bt[1]:typeof Bt[1]=="object"&&Bt[1]!==null&&typeof Bt[1].handleEvent=="function"?Bt[1].handleEvent:null;if(Qt!==null){const Lt=Dt.get(Bt[1]);Lt!==void 0?Bt[1]=Lt:(Bt[1]=$t=>{j(tt.currentTime,tt.sampleRate,()=>Qt($t))},Dt.set(Qt,Bt[1]))}}return kt.call(ct.port1,Bt[0],Bt[1],Bt[2])})(ct.port1.addEventListener),ct.port1.removeEventListener=(kt=>(...Bt)=>{if(Bt[0]==="message"){const Qt=Dt.get(Bt[1]);Qt!==void 0&&(Dt.delete(Bt[1]),Bt[1]=Qt)}return kt.call(ct.port1,Bt[0],Bt[1],Bt[2])})(ct.port1.removeEventListener);let Tt=null;Object.defineProperty(ct.port1,"onmessage",{get:()=>Tt,set:kt=>{typeof Tt=="function"&&ct.port1.removeEventListener("message",Tt),Tt=typeof kt=="function"?kt:null,typeof Tt=="function"&&(ct.port1.addEventListener("message",Tt),ct.port1.start())}}),it.prototype.port=ct.port1;let vt=null;createAudioWorkletProcessor(tt,Ct,it,rt).then(kt=>vt=kt);const xt=createNestedArrays(rt.numberOfInputs,rt.channelCount),Rt=createNestedArrays(rt.numberOfOutputs,st),Mt=it.parameterDescriptors===void 0?[]:it.parameterDescriptors.reduce((kt,{name:Bt})=>wt(_t({},kt),{[Bt]:new Float32Array(128)}),{});let It=!0;const Ft=()=>{rt.numberOfOutputs>0&&Et.disconnect(ft);for(let kt=0,Bt=0;kt{if(vt!==null){const Qt=_e(Ct);for(let Lt=0;Lt{copyFromChannel(kt,Mt,$t,at+Wt,Lt)});for(let $t=0;$t{if(Qt[zt].size>0)return qt.set(zt,gt/128),Gt;const Xt=qt.get(zt);return Xt===void 0?[]:(Gt.every(Zt=>Zt.every(sn=>sn===0))&&(Xt===1?qt.delete(zt):qt.set(zt,Xt-1)),Gt)});It=j(tt.currentTime+Lt/tt.sampleRate,tt.sampleRate,()=>vt.process($t,Rt,Mt));for(let Gt=0,zt=0;GtEt.connect(Nt).connect(tt.destination),Jt=()=>{Et.disconnect(Nt),Nt.disconnect()},en=()=>{if(It){Jt(),rt.numberOfOutputs>0&&Et.connect(ft);for(let kt=0,Bt=0;kt{It&&(Kt(),Ft()),jt=!1};return Kt(),et(Ct,en,tn)},createNativeBiquadFilterNode=(o,e)=>{const s=o.createBiquadFilter();return assignNativeAudioNodeOptions(s,e),assignNativeAudioNodeAudioParamValue(s,e,"Q"),assignNativeAudioNodeAudioParamValue(s,e,"detune"),assignNativeAudioNodeAudioParamValue(s,e,"frequency"),assignNativeAudioNodeAudioParamValue(s,e,"gain"),assignNativeAudioNodeOption(s,e,"type"),s},createNativeChannelMergerNodeFactory=(o,e)=>(s,a)=>{const c=s.createChannelMerger(a.numberOfInputs);return o!==null&&o.name==="webkitAudioContext"&&e(s,c),assignNativeAudioNodeOptions(c,a),c},wrapChannelSplitterNode=o=>{const e=o.numberOfOutputs;Object.defineProperty(o,"channelCount",{get:()=>e,set:s=>{if(s!==e)throw createInvalidStateError()}}),Object.defineProperty(o,"channelCountMode",{get:()=>"explicit",set:s=>{if(s!=="explicit")throw createInvalidStateError()}}),Object.defineProperty(o,"channelInterpretation",{get:()=>"discrete",set:s=>{if(s!=="discrete")throw createInvalidStateError()}})},createNativeChannelSplitterNode=(o,e)=>{const s=o.createChannelSplitter(e.numberOfOutputs);return assignNativeAudioNodeOptions(s,e),wrapChannelSplitterNode(s),s},createNativeConstantSourceNodeFactory=(o,e,s,a,c)=>(d,_)=>{if(d.createConstantSource===void 0)return s(d,_);const b=d.createConstantSource();return assignNativeAudioNodeOptions(b,_),assignNativeAudioNodeAudioParamValue(b,_,"offset"),e(a,()=>a(d))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(b),e(c,()=>c(d))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(b),o(d,b),b},interceptConnections=(o,e)=>(o.connect=e.connect.bind(e),o.disconnect=e.disconnect.bind(e),o),createNativeConstantSourceNodeFakerFactory=(o,e,s,a)=>(c,b)=>{var k=b,{offset:d}=k,_=ln(k,["offset"]);const $=c.createBuffer(1,2,44100),j=e(c,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),_e=s(c,wt(_t({},_),{gain:d})),et=$.getChannelData(0);et[0]=1,et[1]=1,j.buffer=$,j.loop=!0;const tt={get bufferSize(){},get channelCount(){return _e.channelCount},set channelCount(rt){_e.channelCount=rt},get channelCountMode(){return _e.channelCountMode},set channelCountMode(rt){_e.channelCountMode=rt},get channelInterpretation(){return _e.channelInterpretation},set channelInterpretation(rt){_e.channelInterpretation=rt},get context(){return _e.context},get inputs(){return[]},get numberOfInputs(){return j.numberOfInputs},get numberOfOutputs(){return _e.numberOfOutputs},get offset(){return _e.gain},get onended(){return j.onended},set onended(rt){j.onended=rt},addEventListener(...rt){return j.addEventListener(rt[0],rt[1],rt[2])},dispatchEvent(...rt){return j.dispatchEvent(rt[0])},removeEventListener(...rt){return j.removeEventListener(rt[0],rt[1],rt[2])},start(rt=0){j.start.call(j,rt)},stop(rt=0){j.stop.call(j,rt)}},nt=()=>j.connect(_e),it=()=>j.disconnect(_e);return o(c,j),a(interceptConnections(tt,_e),nt,it)},createNativeConvolverNodeFactory=(o,e)=>(s,a)=>{const c=s.createConvolver();if(assignNativeAudioNodeOptions(c,a),a.disableNormalization===c.normalize&&(c.normalize=!a.disableNormalization),assignNativeAudioNodeOption(c,a,"buffer"),a.channelCount>2||(e(c,"channelCount",d=>()=>d.call(c),d=>_=>{if(_>2)throw o();return d.call(c,_)}),a.channelCountMode==="max"))throw o();return e(c,"channelCountMode",d=>()=>d.call(c),d=>_=>{if(_==="max")throw o();return d.call(c,_)}),c},createNativeDelayNode=(o,e)=>{const s=o.createDelay(e.maxDelayTime);return assignNativeAudioNodeOptions(s,e),assignNativeAudioNodeAudioParamValue(s,e,"delayTime"),s},createNativeDynamicsCompressorNodeFactory=o=>(e,s)=>{const a=e.createDynamicsCompressor();if(assignNativeAudioNodeOptions(a,s),s.channelCount>2||s.channelCountMode==="max")throw o();return assignNativeAudioNodeAudioParamValue(a,s,"attack"),assignNativeAudioNodeAudioParamValue(a,s,"knee"),assignNativeAudioNodeAudioParamValue(a,s,"ratio"),assignNativeAudioNodeAudioParamValue(a,s,"release"),assignNativeAudioNodeAudioParamValue(a,s,"threshold"),a},createNativeGainNode=(o,e)=>{const s=o.createGain();return assignNativeAudioNodeOptions(s,e),assignNativeAudioNodeAudioParamValue(s,e,"gain"),s},createNativeIIRFilterNodeFactory=o=>(e,s,a)=>{if(e.createIIRFilter===void 0)return o(e,s,a);const c=e.createIIRFilter(a.feedforward,a.feedback);return assignNativeAudioNodeOptions(c,a),c};function divide(o,e){const s=e[0]*e[0]+e[1]*e[1];return[(o[0]*e[0]+o[1]*e[1])/s,(o[1]*e[0]-o[0]*e[1])/s]}function multiply(o,e){return[o[0]*e[0]-o[1]*e[1],o[0]*e[1]+o[1]*e[0]]}function evaluatePolynomial(o,e){let s=[0,0];for(let a=o.length-1;a>=0;a-=1)s=multiply(s,e),s[0]+=o[a];return s}const createNativeIIRFilterNodeFakerFactory=(o,e,s,a)=>(c,d,{channelCount:_,channelCountMode:b,channelInterpretation:k,feedback:$,feedforward:j})=>{const _e=computeBufferSize(d,c.sampleRate),et=$ instanceof Float64Array?$:new Float64Array($),tt=j instanceof Float64Array?j:new Float64Array(j),nt=et.length,it=tt.length,rt=Math.min(nt,it);if(nt===0||nt>20)throw a();if(et[0]===0)throw e();if(it===0||it>20)throw a();if(tt[0]===0)throw e();if(et[0]!==1){for(let pt=0;pt{const dt=pt.inputBuffer,gt=pt.outputBuffer,Et=dt.numberOfChannels;for(let ft=0;fto.createMediaElementSource(e.mediaElement),createNativeMediaStreamAudioDestinationNode=(o,e)=>{const s=o.createMediaStreamDestination();return assignNativeAudioNodeOptions(s,e),s.numberOfOutputs===1&&Object.defineProperty(s,"numberOfOutputs",{get:()=>0}),s},createNativeMediaStreamAudioSourceNode=(o,{mediaStream:e})=>{const s=e.getAudioTracks();s.sort((d,_)=>d.id<_.id?-1:d.id>_.id?1:0);const a=s.slice(0,1),c=o.createMediaStreamSource(new MediaStream(a));return Object.defineProperty(c,"mediaStream",{value:e}),c},createNativeMediaStreamTrackAudioSourceNodeFactory=(o,e)=>(s,{mediaStreamTrack:a})=>{if(typeof s.createMediaStreamTrackSource=="function")return s.createMediaStreamTrackSource(a);const c=new MediaStream([a]),d=s.createMediaStreamSource(c);if(a.kind!=="audio")throw o();if(e(s))throw new TypeError;return d},createNativeOfflineAudioContextConstructor=o=>o===null?null:o.hasOwnProperty("OfflineAudioContext")?o.OfflineAudioContext:o.hasOwnProperty("webkitOfflineAudioContext")?o.webkitOfflineAudioContext:null,createNativeOscillatorNodeFactory=(o,e,s,a,c,d)=>(_,b)=>{const k=_.createOscillator();return assignNativeAudioNodeOptions(k,b),assignNativeAudioNodeAudioParamValue(k,b,"detune"),assignNativeAudioNodeAudioParamValue(k,b,"frequency"),b.periodicWave!==void 0?k.setPeriodicWave(b.periodicWave):assignNativeAudioNodeOption(k,b,"type"),e(s,()=>s(_))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(k),e(a,()=>a(_))||d(k,_),e(c,()=>c(_))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(k),o(_,k),k},createNativePannerNodeFactory=o=>(e,s)=>{const a=e.createPanner();return a.orientationX===void 0?o(e,s):(assignNativeAudioNodeOptions(a,s),assignNativeAudioNodeAudioParamValue(a,s,"orientationX"),assignNativeAudioNodeAudioParamValue(a,s,"orientationY"),assignNativeAudioNodeAudioParamValue(a,s,"orientationZ"),assignNativeAudioNodeAudioParamValue(a,s,"positionX"),assignNativeAudioNodeAudioParamValue(a,s,"positionY"),assignNativeAudioNodeAudioParamValue(a,s,"positionZ"),assignNativeAudioNodeOption(a,s,"coneInnerAngle"),assignNativeAudioNodeOption(a,s,"coneOuterAngle"),assignNativeAudioNodeOption(a,s,"coneOuterGain"),assignNativeAudioNodeOption(a,s,"distanceModel"),assignNativeAudioNodeOption(a,s,"maxDistance"),assignNativeAudioNodeOption(a,s,"panningModel"),assignNativeAudioNodeOption(a,s,"refDistance"),assignNativeAudioNodeOption(a,s,"rolloffFactor"),a)},createNativePannerNodeFakerFactory=(o,e,s,a,c,d,_,b,k,$)=>(j,gt)=>{var Et=gt,{coneInnerAngle:_e,coneOuterAngle:et,coneOuterGain:tt,distanceModel:nt,maxDistance:it,orientationX:rt,orientationY:st,orientationZ:at,panningModel:ot,positionX:ht,positionY:ct,positionZ:ut,refDistance:lt,rolloffFactor:pt}=Et,dt=ln(Et,["coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","orientationX","orientationY","orientationZ","panningModel","positionX","positionY","positionZ","refDistance","rolloffFactor"]);const ft=j.createPanner();if(dt.channelCount>2||dt.channelCountMode==="max")throw _();assignNativeAudioNodeOptions(ft,dt);const yt={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},mt=s(j,wt(_t({},yt),{channelInterpretation:"speakers",numberOfInputs:6})),St=a(j,wt(_t({},dt),{gain:1})),At=a(j,wt(_t({},yt),{gain:1})),Ot=a(j,wt(_t({},yt),{gain:0})),Ct=a(j,wt(_t({},yt),{gain:0})),Dt=a(j,wt(_t({},yt),{gain:0})),Tt=a(j,wt(_t({},yt),{gain:0})),vt=a(j,wt(_t({},yt),{gain:0})),bt=c(j,256,6,1),xt=d(j,wt(_t({},yt),{curve:new Float32Array([1,1]),oversample:"none"}));let Rt=[rt,st,at],Mt=[ht,ct,ut];const It=new Float32Array(1);bt.onaudioprocess=({inputBuffer:Nt})=>{const Kt=[k(Nt,It,0),k(Nt,It,1),k(Nt,It,2)];Kt.some((en,tn)=>en!==Rt[tn])&&(ft.setOrientation(...Kt),Rt=Kt);const Jt=[k(Nt,It,3),k(Nt,It,4),k(Nt,It,5)];Jt.some((en,tn)=>en!==Mt[tn])&&(ft.setPosition(...Jt),Mt=Jt)},Object.defineProperty(Ot.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Ct.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Dt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Tt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(vt.gain,"defaultValue",{get:()=>0});const Ft={get bufferSize(){},get channelCount(){return ft.channelCount},set channelCount(Nt){if(Nt>2)throw _();St.channelCount=Nt,ft.channelCount=Nt},get channelCountMode(){return ft.channelCountMode},set channelCountMode(Nt){if(Nt==="max")throw _();St.channelCountMode=Nt,ft.channelCountMode=Nt},get channelInterpretation(){return ft.channelInterpretation},set channelInterpretation(Nt){St.channelInterpretation=Nt,ft.channelInterpretation=Nt},get coneInnerAngle(){return ft.coneInnerAngle},set coneInnerAngle(Nt){ft.coneInnerAngle=Nt},get coneOuterAngle(){return ft.coneOuterAngle},set coneOuterAngle(Nt){ft.coneOuterAngle=Nt},get coneOuterGain(){return ft.coneOuterGain},set coneOuterGain(Nt){if(Nt<0||Nt>1)throw e();ft.coneOuterGain=Nt},get context(){return ft.context},get distanceModel(){return ft.distanceModel},set distanceModel(Nt){ft.distanceModel=Nt},get inputs(){return[St]},get maxDistance(){return ft.maxDistance},set maxDistance(Nt){if(Nt<0)throw new RangeError;ft.maxDistance=Nt},get numberOfInputs(){return ft.numberOfInputs},get numberOfOutputs(){return ft.numberOfOutputs},get orientationX(){return At.gain},get orientationY(){return Ot.gain},get orientationZ(){return Ct.gain},get panningModel(){return ft.panningModel},set panningModel(Nt){ft.panningModel=Nt},get positionX(){return Dt.gain},get positionY(){return Tt.gain},get positionZ(){return vt.gain},get refDistance(){return ft.refDistance},set refDistance(Nt){if(Nt<0)throw new RangeError;ft.refDistance=Nt},get rolloffFactor(){return ft.rolloffFactor},set rolloffFactor(Nt){if(Nt<0)throw new RangeError;ft.rolloffFactor=Nt},addEventListener(...Nt){return St.addEventListener(Nt[0],Nt[1],Nt[2])},dispatchEvent(...Nt){return St.dispatchEvent(Nt[0])},removeEventListener(...Nt){return St.removeEventListener(Nt[0],Nt[1],Nt[2])}};_e!==Ft.coneInnerAngle&&(Ft.coneInnerAngle=_e),et!==Ft.coneOuterAngle&&(Ft.coneOuterAngle=et),tt!==Ft.coneOuterGain&&(Ft.coneOuterGain=tt),nt!==Ft.distanceModel&&(Ft.distanceModel=nt),it!==Ft.maxDistance&&(Ft.maxDistance=it),rt!==Ft.orientationX.value&&(Ft.orientationX.value=rt),st!==Ft.orientationY.value&&(Ft.orientationY.value=st),at!==Ft.orientationZ.value&&(Ft.orientationZ.value=at),ot!==Ft.panningModel&&(Ft.panningModel=ot),ht!==Ft.positionX.value&&(Ft.positionX.value=ht),ct!==Ft.positionY.value&&(Ft.positionY.value=ct),ut!==Ft.positionZ.value&&(Ft.positionZ.value=ut),lt!==Ft.refDistance&&(Ft.refDistance=lt),pt!==Ft.rolloffFactor&&(Ft.rolloffFactor=pt),(Rt[0]!==1||Rt[1]!==0||Rt[2]!==0)&&ft.setOrientation(...Rt),(Mt[0]!==0||Mt[1]!==0||Mt[2]!==0)&&ft.setPosition(...Mt);const qt=()=>{St.connect(ft),o(St,xt,0,0),xt.connect(At).connect(mt,0,0),xt.connect(Ot).connect(mt,0,1),xt.connect(Ct).connect(mt,0,2),xt.connect(Dt).connect(mt,0,3),xt.connect(Tt).connect(mt,0,4),xt.connect(vt).connect(mt,0,5),mt.connect(bt).connect(j.destination)},jt=()=>{St.disconnect(ft),b(St,xt,0,0),xt.disconnect(At),At.disconnect(mt),xt.disconnect(Ot),Ot.disconnect(mt),xt.disconnect(Ct),Ct.disconnect(mt),xt.disconnect(Dt),Dt.disconnect(mt),xt.disconnect(Tt),Tt.disconnect(mt),xt.disconnect(vt),vt.disconnect(mt),mt.disconnect(bt),bt.disconnect(j.destination)};return $(interceptConnections(Ft,ft),qt,jt)},createNativePeriodicWaveFactory=o=>(e,{disableNormalization:s,imag:a,real:c})=>{const d=a instanceof Float32Array?a:new Float32Array(a),_=c instanceof Float32Array?c:new Float32Array(c),b=e.createPeriodicWave(_,d,{disableNormalization:s});if(Array.from(a).length<2)throw o();return b},createNativeScriptProcessorNode=(o,e,s,a)=>o.createScriptProcessor(e,s,a),createNativeStereoPannerNodeFactory=(o,e)=>(s,a)=>{const c=a.channelCountMode;if(c==="clamped-max")throw e();if(s.createStereoPanner===void 0)return o(s,a);const d=s.createStereoPanner();return assignNativeAudioNodeOptions(d,a),assignNativeAudioNodeAudioParamValue(d,a,"pan"),Object.defineProperty(d,"channelCountMode",{get:()=>c,set:_=>{if(_!==c)throw e()}}),d},createNativeStereoPannerNodeFakerFactory=(o,e,s,a,c,d)=>{const b=new Float32Array([1,1]),k=Math.PI/2,$={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},j=wt(_t({},$),{oversample:"none"}),_e=(nt,it,rt,st)=>{const at=new Float32Array(16385),ot=new Float32Array(16385);for(let dt=0;dt<16385;dt+=1){const gt=dt/16384*k;at[dt]=Math.cos(gt),ot[dt]=Math.sin(gt)}const ht=s(nt,wt(_t({},$),{gain:0})),ct=a(nt,wt(_t({},j),{curve:at})),ut=a(nt,wt(_t({},j),{curve:b})),lt=s(nt,wt(_t({},$),{gain:0})),pt=a(nt,wt(_t({},j),{curve:ot}));return{connectGraph(){it.connect(ht),it.connect(ut.inputs===void 0?ut:ut.inputs[0]),it.connect(lt),ut.connect(rt),rt.connect(ct.inputs===void 0?ct:ct.inputs[0]),rt.connect(pt.inputs===void 0?pt:pt.inputs[0]),ct.connect(ht.gain),pt.connect(lt.gain),ht.connect(st,0,0),lt.connect(st,0,1)},disconnectGraph(){it.disconnect(ht),it.disconnect(ut.inputs===void 0?ut:ut.inputs[0]),it.disconnect(lt),ut.disconnect(rt),rt.disconnect(ct.inputs===void 0?ct:ct.inputs[0]),rt.disconnect(pt.inputs===void 0?pt:pt.inputs[0]),ct.disconnect(ht.gain),pt.disconnect(lt.gain),ht.disconnect(st,0,0),lt.disconnect(st,0,1)}}},et=(nt,it,rt,st)=>{const at=new Float32Array(16385),ot=new Float32Array(16385),ht=new Float32Array(16385),ct=new Float32Array(16385),ut=Math.floor(16385/2);for(let Ot=0;Ot<16385;Ot+=1)if(Ot>ut){const Ct=(Ot-ut)/(16384-ut)*k;at[Ot]=Math.cos(Ct),ot[Ot]=Math.sin(Ct),ht[Ot]=0,ct[Ot]=1}else{const Ct=Ot/(16384-ut)*k;at[Ot]=1,ot[Ot]=0,ht[Ot]=Math.cos(Ct),ct[Ot]=Math.sin(Ct)}const lt=e(nt,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),pt=s(nt,wt(_t({},$),{gain:0})),dt=a(nt,wt(_t({},j),{curve:at})),gt=s(nt,wt(_t({},$),{gain:0})),Et=a(nt,wt(_t({},j),{curve:ot})),ft=a(nt,wt(_t({},j),{curve:b})),yt=s(nt,wt(_t({},$),{gain:0})),mt=a(nt,wt(_t({},j),{curve:ht})),St=s(nt,wt(_t({},$),{gain:0})),At=a(nt,wt(_t({},j),{curve:ct}));return{connectGraph(){it.connect(lt),it.connect(ft.inputs===void 0?ft:ft.inputs[0]),lt.connect(pt,0),lt.connect(gt,0),lt.connect(yt,1),lt.connect(St,1),ft.connect(rt),rt.connect(dt.inputs===void 0?dt:dt.inputs[0]),rt.connect(Et.inputs===void 0?Et:Et.inputs[0]),rt.connect(mt.inputs===void 0?mt:mt.inputs[0]),rt.connect(At.inputs===void 0?At:At.inputs[0]),dt.connect(pt.gain),Et.connect(gt.gain),mt.connect(yt.gain),At.connect(St.gain),pt.connect(st,0,0),yt.connect(st,0,0),gt.connect(st,0,1),St.connect(st,0,1)},disconnectGraph(){it.disconnect(lt),it.disconnect(ft.inputs===void 0?ft:ft.inputs[0]),lt.disconnect(pt,0),lt.disconnect(gt,0),lt.disconnect(yt,1),lt.disconnect(St,1),ft.disconnect(rt),rt.disconnect(dt.inputs===void 0?dt:dt.inputs[0]),rt.disconnect(Et.inputs===void 0?Et:Et.inputs[0]),rt.disconnect(mt.inputs===void 0?mt:mt.inputs[0]),rt.disconnect(At.inputs===void 0?At:At.inputs[0]),dt.disconnect(pt.gain),Et.disconnect(gt.gain),mt.disconnect(yt.gain),At.disconnect(St.gain),pt.disconnect(st,0,0),yt.disconnect(st,0,0),gt.disconnect(st,0,1),St.disconnect(st,0,1)}}},tt=(nt,it,rt,st,at)=>{if(it===1)return _e(nt,rt,st,at);if(it===2)return et(nt,rt,st,at);throw c()};return(nt,ot)=>{var ht=ot,{channelCount:it,channelCountMode:rt,pan:st}=ht,at=ln(ht,["channelCount","channelCountMode","pan"]);if(rt==="max")throw c();const ct=o(nt,wt(_t({},at),{channelCount:1,channelCountMode:rt,numberOfInputs:2})),ut=s(nt,wt(_t({},at),{channelCount:it,channelCountMode:rt,gain:1})),lt=s(nt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:st});let{connectGraph:pt,disconnectGraph:dt}=tt(nt,it,ut,lt,ct);Object.defineProperty(lt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(lt.gain,"maxValue",{get:()=>1}),Object.defineProperty(lt.gain,"minValue",{get:()=>-1});const gt={get bufferSize(){},get channelCount(){return ut.channelCount},set channelCount(mt){ut.channelCount!==mt&&(Et&&dt(),{connectGraph:pt,disconnectGraph:dt}=tt(nt,mt,ut,lt,ct),Et&&pt()),ut.channelCount=mt},get channelCountMode(){return ut.channelCountMode},set channelCountMode(mt){if(mt==="clamped-max"||mt==="max")throw c();ut.channelCountMode=mt},get channelInterpretation(){return ut.channelInterpretation},set channelInterpretation(mt){ut.channelInterpretation=mt},get context(){return ut.context},get inputs(){return[ut]},get numberOfInputs(){return ut.numberOfInputs},get numberOfOutputs(){return ut.numberOfOutputs},get pan(){return lt.gain},addEventListener(...mt){return ut.addEventListener(mt[0],mt[1],mt[2])},dispatchEvent(...mt){return ut.dispatchEvent(mt[0])},removeEventListener(...mt){return ut.removeEventListener(mt[0],mt[1],mt[2])}};let Et=!1;const ft=()=>{pt(),Et=!0},yt=()=>{dt(),Et=!1};return d(interceptConnections(gt,ct),ft,yt)}},createNativeWaveShaperNodeFactory=(o,e,s,a,c,d,_)=>(b,k)=>{const $=b.createWaveShaper();if(d!==null&&d.name==="webkitAudioContext"&&b.createGain().gain.automationRate===void 0)return s(b,k);assignNativeAudioNodeOptions($,k);const j=k.curve===null||k.curve instanceof Float32Array?k.curve:new Float32Array(k.curve);if(j!==null&&j.length<2)throw e();assignNativeAudioNodeOption($,{curve:j},"curve"),assignNativeAudioNodeOption($,k,"oversample");let _e=null,et=!1;return _($,"curve",it=>()=>it.call($),it=>rt=>(it.call($,rt),et&&(a(rt)&&_e===null?_e=o(b,$):!a(rt)&&_e!==null&&(_e(),_e=null)),rt)),c($,()=>{et=!0,a($.curve)&&(_e=o(b,$))},()=>{et=!1,_e!==null&&(_e(),_e=null)})},createNativeWaveShaperNodeFakerFactory=(o,e,s,a,c)=>(d,$)=>{var j=$,{curve:_,oversample:b}=j,k=ln(j,["curve","oversample"]);const _e=d.createWaveShaper(),et=d.createWaveShaper();assignNativeAudioNodeOptions(_e,k),assignNativeAudioNodeOptions(et,k);const tt=s(d,wt(_t({},k),{gain:1})),nt=s(d,wt(_t({},k),{gain:-1})),it=s(d,wt(_t({},k),{gain:1})),rt=s(d,wt(_t({},k),{gain:-1}));let st=null,at=!1,ot=null;const ht={get bufferSize(){},get channelCount(){return _e.channelCount},set channelCount(lt){tt.channelCount=lt,nt.channelCount=lt,_e.channelCount=lt,it.channelCount=lt,et.channelCount=lt,rt.channelCount=lt},get channelCountMode(){return _e.channelCountMode},set channelCountMode(lt){tt.channelCountMode=lt,nt.channelCountMode=lt,_e.channelCountMode=lt,it.channelCountMode=lt,et.channelCountMode=lt,rt.channelCountMode=lt},get channelInterpretation(){return _e.channelInterpretation},set channelInterpretation(lt){tt.channelInterpretation=lt,nt.channelInterpretation=lt,_e.channelInterpretation=lt,it.channelInterpretation=lt,et.channelInterpretation=lt,rt.channelInterpretation=lt},get context(){return _e.context},get curve(){return ot},set curve(lt){if(lt!==null&<.length<2)throw e();if(lt===null)_e.curve=lt,et.curve=lt;else{const pt=lt.length,dt=new Float32Array(pt+2-pt%2),gt=new Float32Array(pt+2-pt%2);dt[0]=lt[0],gt[0]=-lt[pt-1];const Et=Math.ceil((pt+1)/2),ft=(pt+1)/2-1;for(let yt=1;yt{tt.connect(_e).connect(it),tt.connect(nt).connect(et).connect(rt).connect(it),at=!0,a(ot)&&(st=o(d,tt))},ut=()=>{tt.disconnect(_e),_e.disconnect(it),tt.disconnect(nt),nt.disconnect(et),et.disconnect(rt),rt.disconnect(it),at=!1,st!==null&&(st(),st=null)};return c(interceptConnections(ht,it),ct,ut)},createNotSupportedError=()=>new DOMException("","NotSupportedError"),DEFAULT_OPTIONS$5={numberOfChannels:1},createOfflineAudioContextConstructor=(o,e,s,a,c)=>class extends o{constructor(_,b,k){let $;if(typeof _=="number"&&b!==void 0&&k!==void 0)$={length:b,numberOfChannels:_,sampleRate:k};else if(typeof _=="object")$=_;else throw new Error("The given parameters are not valid.");const{length:j,numberOfChannels:_e,sampleRate:et}=_t(_t({},DEFAULT_OPTIONS$5),$),tt=a(_e,j,et);e(testPromiseSupport,()=>testPromiseSupport(tt))||tt.addEventListener("statechange",(()=>{let nt=0;const it=rt=>{this._state==="running"&&(nt>0?(tt.removeEventListener("statechange",it),rt.stopImmediatePropagation(),this._waitForThePromiseToSettle(rt)):nt+=1)};return it})()),super(tt,_e),this._length=j,this._nativeOfflineAudioContext=tt,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(s()):(this._state="running",c(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,deactivateAudioGraph(this)}))}_waitForThePromiseToSettle(_){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(_):setTimeout(()=>this._waitForThePromiseToSettle(_))}},DEFAULT_OPTIONS$4={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},createOscillatorNodeConstructor=(o,e,s,a,c,d,_)=>class extends o{constructor(k,$){const j=c(k),_e=_t(_t({},DEFAULT_OPTIONS$4),$),et=s(j,_e),tt=d(j),nt=tt?a():null,it=k.sampleRate/2;super(k,!1,et,nt),this._detune=e(this,tt,et.detune,153600,-153600),this._frequency=e(this,tt,et.frequency,it,-it),this._nativeOscillatorNode=et,this._onended=null,this._oscillatorNodeRenderer=nt,this._oscillatorNodeRenderer!==null&&_e.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=_e.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(k){const $=typeof k=="function"?_(this,k):null;this._nativeOscillatorNode.onended=$;const j=this._nativeOscillatorNode.onended;this._onended=j!==null&&j===$?k:j}get type(){return this._nativeOscillatorNode.type}set type(k){this._nativeOscillatorNode.type=k,this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(k){this._nativeOscillatorNode.setPeriodicWave(k),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=k)}start(k=0){if(this._nativeOscillatorNode.start(k),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.start=k),this.context.state!=="closed"){setInternalStateToActive(this);const $=()=>{this._nativeOscillatorNode.removeEventListener("ended",$),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeOscillatorNode.addEventListener("ended",$)}}stop(k=0){this._nativeOscillatorNode.stop(k),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=k)}},createOscillatorNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap;let _=null,b=null,k=null;const $=async(j,_e)=>{let et=s(j);const tt=isOwnedByContext(et,_e);if(!tt){const nt={channelCount:et.channelCount,channelCountMode:et.channelCountMode,channelInterpretation:et.channelInterpretation,detune:et.detune.value,frequency:et.frequency.value,periodicWave:_===null?void 0:_,type:et.type};et=e(_e,nt),b!==null&&et.start(b),k!==null&&et.stop(k)}return d.set(_e,et),tt?(await o(_e,j.detune,et.detune),await o(_e,j.frequency,et.frequency)):(await a(_e,j.detune,et.detune),await a(_e,j.frequency,et.frequency)),await c(j,_e,et),et};return{set periodicWave(j){_=j},set start(j){b=j},set stop(j){k=j},render(j,_e){const et=d.get(_e);return et!==void 0?Promise.resolve(et):$(j,_e)}}},DEFAULT_OPTIONS$3={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},createPannerNodeConstructor=(o,e,s,a,c,d,_)=>class extends o{constructor(k,$){const j=c(k),_e=_t(_t({},DEFAULT_OPTIONS$3),$),et=s(j,_e),tt=d(j),nt=tt?a():null;super(k,!1,et,nt),this._nativePannerNode=et,this._orientationX=e(this,tt,et.orientationX,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._orientationY=e(this,tt,et.orientationY,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._orientationZ=e(this,tt,et.orientationZ,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionX=e(this,tt,et.positionX,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionY=e(this,tt,et.positionY,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionZ=e(this,tt,et.positionZ,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),_(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(k){this._nativePannerNode.coneInnerAngle=k}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(k){this._nativePannerNode.coneOuterAngle=k}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(k){this._nativePannerNode.coneOuterGain=k}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(k){this._nativePannerNode.distanceModel=k}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(k){this._nativePannerNode.maxDistance=k}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(k){this._nativePannerNode.panningModel=k}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(k){this._nativePannerNode.refDistance=k}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(k){this._nativePannerNode.rolloffFactor=k}},createPannerNodeRendererFactory=(o,e,s,a,c,d,_,b,k,$)=>()=>{const j=new WeakMap;let _e=null;const et=async(tt,nt)=>{let it=null,rt=d(tt);const st={channelCount:rt.channelCount,channelCountMode:rt.channelCountMode,channelInterpretation:rt.channelInterpretation},at=wt(_t({},st),{coneInnerAngle:rt.coneInnerAngle,coneOuterAngle:rt.coneOuterAngle,coneOuterGain:rt.coneOuterGain,distanceModel:rt.distanceModel,maxDistance:rt.maxDistance,panningModel:rt.panningModel,refDistance:rt.refDistance,rolloffFactor:rt.rolloffFactor}),ot=isOwnedByContext(rt,nt);if("bufferSize"in rt)it=a(nt,wt(_t({},st),{gain:1}));else if(!ot){const ht=wt(_t({},at),{orientationX:rt.orientationX.value,orientationY:rt.orientationY.value,orientationZ:rt.orientationZ.value,positionX:rt.positionX.value,positionY:rt.positionY.value,positionZ:rt.positionZ.value});rt=c(nt,ht)}if(j.set(nt,it===null?rt:it),it!==null){if(_e===null){if(_===null)throw new Error("Missing the native OfflineAudioContext constructor.");const Et=new _(6,tt.context.length,nt.sampleRate),ft=e(Et,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});ft.connect(Et.destination),_e=(async()=>{const yt=await Promise.all([tt.orientationX,tt.orientationY,tt.orientationZ,tt.positionX,tt.positionY,tt.positionZ].map(async(mt,St)=>{const At=s(Et,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:St===0?1:0});return await b(Et,mt,At.offset),At}));for(let mt=0;mt<6;mt+=1)yt[mt].connect(ft,0,mt),yt[mt].start(0);return $(Et)})()}const ht=await _e,ct=a(nt,wt(_t({},st),{gain:1}));await k(tt,nt,ct);const ut=[];for(let Et=0;Etmt!==lt[St])||yt.some((mt,St)=>mt!==pt[St])){lt=ft,pt=yt;const mt=Et/nt.sampleRate;dt.gain.setValueAtTime(0,mt),dt=a(nt,wt(_t({},st),{gain:0})),gt=c(nt,wt(_t({},at),{orientationX:lt[0],orientationY:lt[1],orientationZ:lt[2],positionX:pt[0],positionY:pt[1],positionZ:pt[2]})),dt.gain.setValueAtTime(1,mt),ct.connect(dt).connect(gt.inputs[0]),gt.connect(it)}}return it}return ot?(await o(nt,tt.orientationX,rt.orientationX),await o(nt,tt.orientationY,rt.orientationY),await o(nt,tt.orientationZ,rt.orientationZ),await o(nt,tt.positionX,rt.positionX),await o(nt,tt.positionY,rt.positionY),await o(nt,tt.positionZ,rt.positionZ)):(await b(nt,tt.orientationX,rt.orientationX),await b(nt,tt.orientationY,rt.orientationY),await b(nt,tt.orientationZ,rt.orientationZ),await b(nt,tt.positionX,rt.positionX),await b(nt,tt.positionY,rt.positionY),await b(nt,tt.positionZ,rt.positionZ)),isNativeAudioNodeFaker(rt)?await k(tt,nt,rt.inputs[0]):await k(tt,nt,rt),rt};return{render(tt,nt){const it=j.get(nt);return it!==void 0?Promise.resolve(it):et(tt,nt)}}},DEFAULT_OPTIONS$2={disableNormalization:!1},createPeriodicWaveConstructor=(o,e,s,a)=>class gr{constructor(d,_){const b=e(d),k=a(_t(_t({},DEFAULT_OPTIONS$2),_)),$=o(b,k);return s.add($),$}static[Symbol.hasInstance](d){return d!==null&&typeof d=="object"&&Object.getPrototypeOf(d)===gr.prototype||s.has(d)}},createRenderAutomation=(o,e)=>(s,a,c)=>(o(a).replay(c),e(a,s,c)),createRenderInputsOfAudioNode=(o,e,s)=>async(a,c,d)=>{const _=o(a);await Promise.all(_.activeInputs.map((b,k)=>Array.from(b).map(async([$,j])=>{const et=await e($).render($,c),tt=a.context.destination;!s($)&&(a!==tt||!s(a))&&et.connect(d,j,k)})).reduce((b,k)=>[...b,...k],[]))},createRenderInputsOfAudioParam=(o,e,s)=>async(a,c,d)=>{const _=e(a);await Promise.all(Array.from(_.activeInputs).map(async([b,k])=>{const j=await o(b).render(b,c);s(b)||j.connect(d,k)}))},createRenderNativeOfflineAudioContext=(o,e,s,a)=>c=>o(testPromiseSupport,()=>testPromiseSupport(c))?Promise.resolve(o(a,a)).then(d=>{if(!d){const _=s(c,512,0,1);c.oncomplete=()=>{_.onaudioprocess=null,_.disconnect()},_.onaudioprocess=()=>c.currentTime,_.connect(c.destination)}return c.startRendering()}):new Promise(d=>{const _=e(c,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});c.oncomplete=b=>{_.disconnect(),d(b.renderedBuffer)},_.connect(c.destination),c.startRendering()}),createSetActiveAudioWorkletNodeInputs=o=>(e,s)=>{o.set(e,s)},createSetAudioNodeTailTime=o=>(e,s)=>o.set(e,s),createStartRendering=(o,e,s,a,c,d,_,b)=>(k,$)=>s(k).render(k,$).then(()=>Promise.all(Array.from(a($)).map(j=>s(j).render(j,$)))).then(()=>c($)).then(j=>(typeof j.copyFromChannel!="function"?(_(j),wrapAudioBufferGetChannelDataMethod(j)):e(d,()=>d(j))||b(j),o.add(j),j)),DEFAULT_OPTIONS$1={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},createStereoPannerNodeConstructor=(o,e,s,a,c,d)=>class extends o{constructor(b,k){const $=c(b),j=_t(_t({},DEFAULT_OPTIONS$1),k),_e=s($,j),et=d($),tt=et?a():null;super(b,!1,_e,tt),this._pan=e(this,et,_e.pan)}get pan(){return this._pan}},createStereoPannerNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,pan:$.pan.value};$=e(k,_e)}return d.set(k,$),j?await o(k,b.pan,$.pan):await a(k,b.pan,$.pan),isNativeAudioNodeFaker($)?await c(b,k,$.inputs[0]):await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createTestAudioBufferConstructorSupport=o=>()=>{if(o===null)return!1;try{new o({length:1,sampleRate:44100})}catch{return!1}return!0},createTestAudioBufferCopyChannelMethodsSubarraySupport=o=>()=>{if(o===null)return!1;const s=new o(1,1,44100).createBuffer(1,1,44100);if(s.copyToChannel===void 0)return!0;const a=new Float32Array(2);try{s.copyFromChannel(a,0,0)}catch{return!1}return!0},createTestAudioContextCloseMethodSupport=o=>()=>{if(o===null)return!1;if(o.prototype!==void 0&&o.prototype.close!==void 0)return!0;const e=new o,s=e.close!==void 0;try{e.close()}catch{}return s},createTestAudioContextDecodeAudioDataMethodTypeErrorSupport=o=>()=>{if(o===null)return Promise.resolve(!1);const e=new o(1,1,44100);return new Promise(s=>{let a=!0;const c=_=>{a&&(a=!1,e.startRendering(),s(_ instanceof TypeError))};let d;try{d=e.decodeAudioData(null,()=>{},c)}catch(_){c(_)}d!==void 0&&d.catch(c)})},createTestAudioContextOptionsSupport=o=>()=>{if(o===null)return!1;let e;try{e=new o({latencyHint:"balanced"})}catch{return!1}return e.close(),!0},createTestAudioNodeConnectMethodSupport=o=>()=>{if(o===null)return!1;const s=new o(1,1,44100).createGain(),a=s.connect(s)===s;return s.disconnect(s),a},createTestAudioWorkletProcessorNoOutputsSupport=(o,e)=>async()=>{if(o===null)return!0;if(e===null)return!1;const s=new Blob(['let c,p;class A extends AudioWorkletProcessor{constructor(){super();this.port.onmessage=(e)=>{p=e.data;p.onmessage=()=>{p.postMessage(c);p.close()};this.port.postMessage(0)}}process(){c=1}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),a=new MessageChannel,c=new e(1,128,44100),d=URL.createObjectURL(s);let _=!1;try{await c.audioWorklet.addModule(d);const b=new o(c,"a",{numberOfOutputs:0}),k=c.createOscillator();await new Promise($=>{b.port.onmessage=()=>$(),b.port.postMessage(a.port2,[a.port2])}),b.port.onmessage=()=>_=!0,k.connect(b),k.start(0),await c.startRendering(),_=await new Promise($=>{a.port1.onmessage=({data:j})=>$(j===1),a.port1.postMessage(0)})}catch{}finally{a.port1.close(),URL.revokeObjectURL(d)}return _},createTestAudioWorkletProcessorPostMessageSupport=(o,e)=>async()=>{if(o===null)return!0;if(e===null)return!1;const s=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),a=new e(1,128,44100),c=URL.createObjectURL(s);let d=!1,_=!1;try{await a.audioWorklet.addModule(c);const b=new o(a,"a",{numberOfOutputs:0}),k=a.createOscillator();b.port.onmessage=()=>d=!0,b.onprocessorerror=()=>_=!0,k.connect(b),k.start(0),await a.startRendering()}catch{}finally{URL.revokeObjectURL(c)}return d&&!_},createTestChannelMergerNodeChannelCountSupport=o=>()=>{if(o===null)return!1;const s=new o(1,1,44100).createChannelMerger();if(s.channelCountMode==="max")return!0;try{s.channelCount=2}catch{return!0}return!1},createTestConstantSourceNodeAccurateSchedulingSupport=o=>()=>{if(o===null)return!1;const e=new o(1,1,44100);return e.createConstantSource===void 0?!0:e.createConstantSource().offset.maxValue!==Number.POSITIVE_INFINITY},createTestConvolverNodeBufferReassignabilitySupport=o=>()=>{if(o===null)return!1;const e=new o(1,1,44100),s=e.createConvolver();s.buffer=e.createBuffer(1,1,e.sampleRate);try{s.buffer=e.createBuffer(1,1,e.sampleRate)}catch{return!1}return!0},createTestConvolverNodeChannelCountSupport=o=>()=>{if(o===null)return!1;const s=new o(1,1,44100).createConvolver();try{s.channelCount=1}catch{return!1}return!0},createTestIsSecureContextSupport=o=>()=>o!==null&&o.hasOwnProperty("isSecureContext"),createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport=o=>()=>{if(o===null)return!1;const e=new o;try{return e.createMediaStreamSource(new MediaStream),!1}catch{return!0}finally{e.close()}},createTestOfflineAudioContextCurrentTimeSupport=(o,e)=>()=>{if(e===null)return Promise.resolve(!1);const s=new e(1,1,44100),a=o(s,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise(c=>{s.oncomplete=()=>{a.disconnect(),c(s.currentTime!==0)},s.startRendering()})},createTestStereoPannerNodeDefaultValueSupport=o=>()=>{if(o===null)return Promise.resolve(!1);const e=new o(1,1,44100);if(e.createStereoPanner===void 0||e.createConstantSource===void 0)return Promise.resolve(!0);const s=e.createConstantSource(),a=e.createStereoPanner();return s.channelCount=1,s.offset.value=1,a.channelCount=1,s.start(),s.connect(a).connect(e.destination),e.startRendering().then(c=>c.getChannelData(0)[0]!==1)},createUnknownError=()=>new DOMException("","UnknownError"),DEFAULT_OPTIONS={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},createWaveShaperNodeConstructor=(o,e,s,a,c,d,_)=>class extends o{constructor(k,$){const j=c(k),_e=_t(_t({},DEFAULT_OPTIONS),$),et=s(j,_e),nt=d(j)?a():null;super(k,!0,et,nt),this._isCurveNullified=!1,this._nativeWaveShaperNode=et,_(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(k){if(k===null)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(k.length<2)throw e();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=k}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(k){this._nativeWaveShaperNode.oversample=k}},createWaveShaperNodeRendererFactory=(o,e,s)=>()=>{const a=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,curve:b.curve,oversample:b.oversample};b=o(_,$)}return a.set(_,b),isNativeAudioNodeFaker(b)?await s(d,_,b.inputs[0]):await s(d,_,b),b};return{render(d,_){const b=a.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},createWindow=()=>typeof window=="undefined"?null:window,createWrapAudioBufferCopyChannelMethods=(o,e)=>s=>{s.copyFromChannel=(a,c,d=0)=>{const _=o(d),b=o(c);if(b>=s.numberOfChannels)throw e();const k=s.length,$=s.getChannelData(b),j=a.length;for(let _e=_<0?-_:0;_e+_{const _=o(d),b=o(c);if(b>=s.numberOfChannels)throw e();const k=s.length,$=s.getChannelData(b),j=a.length;for(let _e=_<0?-_:0;_e+_e=>{e.copyFromChannel=(s=>(a,c,d=0)=>{const _=o(d),b=o(c);if(_(a,c,d=0)=>{const _=o(d),b=o(c);if(_(e,s)=>{const a=s.createBuffer(1,1,44100);e.buffer===null&&(e.buffer=a),o(e,"buffer",c=>()=>{const d=c.call(e);return d===a?null:d},c=>d=>c.call(e,d===null?a:d))},createWrapChannelMergerNode=(o,e)=>(s,a)=>{a.channelCount=1,a.channelCountMode="explicit",Object.defineProperty(a,"channelCount",{get:()=>1,set:()=>{throw o()}}),Object.defineProperty(a,"channelCountMode",{get:()=>"explicit",set:()=>{throw o()}});const c=s.createBufferSource();e(a,()=>{const b=a.numberOfInputs;for(let k=0;kc.disconnect(a))},getFirstSample=(o,e,s)=>o.copyFromChannel===void 0?o.getChannelData(s)[0]:(o.copyFromChannel(e,s),e[0]),isDCCurve=o=>{if(o===null)return!1;const e=o.length;return e%2!==0?o[Math.floor(e/2)]!==0:o[e/2-1]+o[e/2]!==0},overwriteAccessors=(o,e,s,a)=>{let c=o;for(;!c.hasOwnProperty(e);)c=Object.getPrototypeOf(c);const{get:d,set:_}=Object.getOwnPropertyDescriptor(c,e);Object.defineProperty(o,e,{get:s(d),set:a(_)})},sanitizeAudioWorkletNodeOptions=o=>wt(_t({},o),{outputChannelCount:o.outputChannelCount!==void 0?o.outputChannelCount:o.numberOfInputs===1&&o.numberOfOutputs===1?[o.channelCount]:Array.from({length:o.numberOfOutputs},()=>1)}),sanitizeChannelSplitterOptions=o=>wt(_t({},o),{channelCount:o.numberOfOutputs}),sanitizePeriodicWaveOptions=o=>{const{imag:e,real:s}=o;return e===void 0?s===void 0?wt(_t({},o),{imag:[0,0],real:[0,0]}):wt(_t({},o),{imag:Array.from(s,()=>0),real:s}):s===void 0?wt(_t({},o),{imag:e,real:Array.from(e,()=>0)}):wt(_t({},o),{imag:e,real:s})},setValueAtTimeUntilPossible=(o,e,s)=>{try{o.setValueAtTime(e,s)}catch(a){if(a.code!==9)throw a;setValueAtTimeUntilPossible(o,e,s+1e-7)}},testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport=o=>{const e=o.createBufferSource();e.start();try{e.start()}catch{return!0}return!1},testAudioBufferSourceNodeStartMethodOffsetClampingSupport=o=>{const e=o.createBufferSource(),s=o.createBuffer(1,1,44100);e.buffer=s;try{e.start(0,1)}catch{return!1}return!0},testAudioBufferSourceNodeStopMethodNullifiedBufferSupport=o=>{const e=o.createBufferSource();e.start();try{e.stop()}catch{return!1}return!0},testAudioScheduledSourceNodeStartMethodNegativeParametersSupport=o=>{const e=o.createOscillator();try{e.start(-1)}catch(s){return s instanceof RangeError}return!1},testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport=o=>{const e=o.createBuffer(1,1,44100),s=o.createBufferSource();s.buffer=e,s.start(),s.stop();try{return s.stop(),!0}catch{return!1}},testAudioScheduledSourceNodeStopMethodNegativeParametersSupport=o=>{const e=o.createOscillator();try{e.stop(-1)}catch(s){return s instanceof RangeError}return!1},testAudioWorkletNodeOptionsClonability=o=>{const{port1:e,port2:s}=new MessageChannel;try{e.postMessage(o)}finally{e.close(),s.close()}},testDomExceptionConstructorSupport=()=>{try{new DOMException}catch{return!1}return!0},testTransferablesSupport=()=>new Promise(o=>{const e=new ArrayBuffer(0),{port1:s,port2:a}=new MessageChannel;s.onmessage=({data:c})=>o(c!==null),a.postMessage(e,[e])}),wrapAudioBufferSourceNodeStartMethodOffsetClamping=o=>{o.start=(e=>(s=0,a=0,c)=>{const d=o.buffer,_=d===null?a:Math.min(d.duration,a);d!==null&&_>d.duration-.5/o.context.sampleRate?e.call(o,s,0,0):e.call(o,s,_,c)})(o.start)},wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls=(o,e)=>{const s=e.createGain();o.connect(s);const a=(c=>()=>{c.call(o,s),o.removeEventListener("ended",a)})(o.disconnect);o.addEventListener("ended",a),interceptConnections(o,s),o.stop=(c=>{let d=!1;return(_=0)=>{if(d)try{c.call(o,_)}catch{s.gain.setValueAtTime(0,_)}else c.call(o,_),d=!0}})(o.stop)},wrapEventListener=(o,e)=>s=>{const a={value:o};return Object.defineProperties(s,{currentTarget:a,target:a}),typeof e=="function"?e.call(o,s):e.handleEvent.call(o,s)},addActiveInputConnectionToAudioNode=createAddActiveInputConnectionToAudioNode(insertElementInSet),addPassiveInputConnectionToAudioNode=createAddPassiveInputConnectionToAudioNode(insertElementInSet),deleteActiveInputConnectionToAudioNode=createDeleteActiveInputConnectionToAudioNode(pickElementFromSet),audioNodeTailTimeStore=new WeakMap,getAudioNodeTailTime=createGetAudioNodeTailTime(audioNodeTailTimeStore),cacheTestResult=createCacheTestResult(new Map,new WeakMap),window$1=createWindow(),createNativeAnalyserNode=createNativeAnalyserNodeFactory(cacheTestResult,createIndexSizeError),getAudioNodeRenderer=createGetAudioNodeRenderer(getAudioNodeConnections),renderInputsOfAudioNode=createRenderInputsOfAudioNode(getAudioNodeConnections,getAudioNodeRenderer,isPartOfACycle),createAnalyserNodeRenderer=createAnalyserNodeRendererFactory(createNativeAnalyserNode,getNativeAudioNode,renderInputsOfAudioNode),getNativeContext=createGetNativeContext(CONTEXT_STORE),nativeOfflineAudioContextConstructor=createNativeOfflineAudioContextConstructor(window$1),isNativeOfflineAudioContext=createIsNativeOfflineAudioContext(nativeOfflineAudioContextConstructor),audioParamAudioNodeStore=new WeakMap,eventTargetConstructor=createEventTargetConstructor(wrapEventListener),nativeAudioContextConstructor=createNativeAudioContextConstructor(window$1),isNativeAudioContext=createIsNativeAudioContext(nativeAudioContextConstructor),isNativeAudioNode=createIsNativeAudioNode(window$1),isNativeAudioParam=createIsNativeAudioParam(window$1),nativeAudioWorkletNodeConstructor=createNativeAudioWorkletNodeConstructor(window$1),audioNodeConstructor=createAudioNodeConstructor(createAddAudioNodeConnections(AUDIO_NODE_CONNECTIONS_STORE),createAddConnectionToAudioNode(addActiveInputConnectionToAudioNode,addPassiveInputConnectionToAudioNode,connectNativeAudioNodeToNativeAudioNode,deleteActiveInputConnectionToAudioNode,disconnectNativeAudioNodeFromNativeAudioNode,getAudioNodeConnections,getAudioNodeTailTime,getEventListenersOfAudioNode,getNativeAudioNode,insertElementInSet,isActiveAudioNode,isPartOfACycle,isPassiveAudioNode),cacheTestResult,createIncrementCycleCounterFactory(CYCLE_COUNTERS,disconnectNativeAudioNodeFromNativeAudioNode,getAudioNodeConnections,getNativeAudioNode,getNativeAudioParam,isActiveAudioNode),createIndexSizeError,createInvalidAccessError,createNotSupportedError,createDecrementCycleCounter(connectNativeAudioNodeToNativeAudioNode,CYCLE_COUNTERS,getAudioNodeConnections,getNativeAudioNode,getNativeAudioParam,getNativeContext,isActiveAudioNode,isNativeOfflineAudioContext),createDetectCycles(audioParamAudioNodeStore,getAudioNodeConnections,getValueForKey),eventTargetConstructor,getNativeContext,isNativeAudioContext,isNativeAudioNode,isNativeAudioParam,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor),analyserNodeConstructor=createAnalyserNodeConstructor(audioNodeConstructor,createAnalyserNodeRenderer,createIndexSizeError,createNativeAnalyserNode,getNativeContext,isNativeOfflineAudioContext),audioBufferStore=new WeakSet,nativeAudioBufferConstructor=createNativeAudioBufferConstructor(window$1),convertNumberToUnsignedLong=createConvertNumberToUnsignedLong(new Uint32Array(1)),wrapAudioBufferCopyChannelMethods=createWrapAudioBufferCopyChannelMethods(convertNumberToUnsignedLong,createIndexSizeError),wrapAudioBufferCopyChannelMethodsOutOfBounds=createWrapAudioBufferCopyChannelMethodsOutOfBounds(convertNumberToUnsignedLong),audioBufferConstructor=createAudioBufferConstructor(audioBufferStore,cacheTestResult,createNotSupportedError,nativeAudioBufferConstructor,nativeOfflineAudioContextConstructor,createTestAudioBufferConstructorSupport(nativeAudioBufferConstructor),wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),addSilentConnection=createAddSilentConnection(createNativeGainNode),renderInputsOfAudioParam=createRenderInputsOfAudioParam(getAudioNodeRenderer,getAudioParamConnections,isPartOfACycle),connectAudioParam=createConnectAudioParam(renderInputsOfAudioParam),createNativeAudioBufferSourceNode=createNativeAudioBufferSourceNodeFactory(addSilentConnection,cacheTestResult,testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport,testAudioBufferSourceNodeStartMethodOffsetClampingSupport,testAudioBufferSourceNodeStopMethodNullifiedBufferSupport,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,wrapAudioBufferSourceNodeStartMethodOffsetClamping,createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer(overwriteAccessors),wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls),renderAutomation=createRenderAutomation(createGetAudioParamRenderer(getAudioParamConnections),renderInputsOfAudioParam),createAudioBufferSourceNodeRenderer=createAudioBufferSourceNodeRendererFactory(connectAudioParam,createNativeAudioBufferSourceNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),createAudioParam=createAudioParamFactory(createAddAudioParamConnections(AUDIO_PARAM_CONNECTIONS_STORE),audioParamAudioNodeStore,AUDIO_PARAM_STORE,createAudioParamRenderer,createCancelAndHoldAutomationEvent,createCancelScheduledValuesAutomationEvent,createExponentialRampToValueAutomationEvent,createLinearRampToValueAutomationEvent,createSetTargetAutomationEvent,createSetValueAutomationEvent,createSetValueCurveAutomationEvent,nativeAudioContextConstructor,setValueAtTimeUntilPossible),audioBufferSourceNodeConstructor=createAudioBufferSourceNodeConstructor(audioNodeConstructor,createAudioBufferSourceNodeRenderer,createAudioParam,createInvalidStateError,createNativeAudioBufferSourceNode,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),audioDestinationNodeConstructor=createAudioDestinationNodeConstructor(audioNodeConstructor,createAudioDestinationNodeRenderer,createIndexSizeError,createInvalidStateError,createNativeAudioDestinationNodeFactory(createNativeGainNode,overwriteAccessors),getNativeContext,isNativeOfflineAudioContext,renderInputsOfAudioNode),createBiquadFilterNodeRenderer=createBiquadFilterNodeRendererFactory(connectAudioParam,createNativeBiquadFilterNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),setAudioNodeTailTime=createSetAudioNodeTailTime(audioNodeTailTimeStore),biquadFilterNodeConstructor=createBiquadFilterNodeConstructor(audioNodeConstructor,createAudioParam,createBiquadFilterNodeRenderer,createInvalidAccessError,createNativeBiquadFilterNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),monitorConnections=createMonitorConnections(insertElementInSet,isNativeAudioNode),wrapChannelMergerNode=createWrapChannelMergerNode(createInvalidStateError,monitorConnections),createNativeChannelMergerNode=createNativeChannelMergerNodeFactory(nativeAudioContextConstructor,wrapChannelMergerNode),createChannelMergerNodeRenderer=createChannelMergerNodeRendererFactory(createNativeChannelMergerNode,getNativeAudioNode,renderInputsOfAudioNode),channelMergerNodeConstructor=createChannelMergerNodeConstructor(audioNodeConstructor,createChannelMergerNodeRenderer,createNativeChannelMergerNode,getNativeContext,isNativeOfflineAudioContext),createChannelSplitterNodeRenderer=createChannelSplitterNodeRendererFactory(createNativeChannelSplitterNode,getNativeAudioNode,renderInputsOfAudioNode),channelSplitterNodeConstructor=createChannelSplitterNodeConstructor(audioNodeConstructor,createChannelSplitterNodeRenderer,createNativeChannelSplitterNode,getNativeContext,isNativeOfflineAudioContext,sanitizeChannelSplitterOptions),createNativeConstantSourceNodeFaker=createNativeConstantSourceNodeFakerFactory(addSilentConnection,createNativeAudioBufferSourceNode,createNativeGainNode,monitorConnections),createNativeConstantSourceNode=createNativeConstantSourceNodeFactory(addSilentConnection,cacheTestResult,createNativeConstantSourceNodeFaker,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport),createConstantSourceNodeRenderer=createConstantSourceNodeRendererFactory(connectAudioParam,createNativeConstantSourceNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),constantSourceNodeConstructor=createConstantSourceNodeConstructor(audioNodeConstructor,createAudioParam,createConstantSourceNodeRenderer,createNativeConstantSourceNode,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),createNativeConvolverNode=createNativeConvolverNodeFactory(createNotSupportedError,overwriteAccessors),createConvolverNodeRenderer=createConvolverNodeRendererFactory(createNativeConvolverNode,getNativeAudioNode,renderInputsOfAudioNode),convolverNodeConstructor=createConvolverNodeConstructor(audioNodeConstructor,createConvolverNodeRenderer,createNativeConvolverNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createDelayNodeRenderer=createDelayNodeRendererFactory(connectAudioParam,createNativeDelayNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),delayNodeConstructor=createDelayNodeConstructor(audioNodeConstructor,createAudioParam,createDelayNodeRenderer,createNativeDelayNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createNativeDynamicsCompressorNode=createNativeDynamicsCompressorNodeFactory(createNotSupportedError),createDynamicsCompressorNodeRenderer=createDynamicsCompressorNodeRendererFactory(connectAudioParam,createNativeDynamicsCompressorNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),dynamicsCompressorNodeConstructor=createDynamicsCompressorNodeConstructor(audioNodeConstructor,createAudioParam,createDynamicsCompressorNodeRenderer,createNativeDynamicsCompressorNode,createNotSupportedError,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createGainNodeRenderer=createGainNodeRendererFactory(connectAudioParam,createNativeGainNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),gainNodeConstructor=createGainNodeConstructor(audioNodeConstructor,createAudioParam,createGainNodeRenderer,createNativeGainNode,getNativeContext,isNativeOfflineAudioContext),createNativeIIRFilterNodeFaker=createNativeIIRFilterNodeFakerFactory(createInvalidAccessError,createInvalidStateError,createNativeScriptProcessorNode,createNotSupportedError),renderNativeOfflineAudioContext=createRenderNativeOfflineAudioContext(cacheTestResult,createNativeGainNode,createNativeScriptProcessorNode,createTestOfflineAudioContextCurrentTimeSupport(createNativeGainNode,nativeOfflineAudioContextConstructor)),createIIRFilterNodeRenderer=createIIRFilterNodeRendererFactory(createNativeAudioBufferSourceNode,getNativeAudioNode,nativeOfflineAudioContextConstructor,renderInputsOfAudioNode,renderNativeOfflineAudioContext),createNativeIIRFilterNode=createNativeIIRFilterNodeFactory(createNativeIIRFilterNodeFaker),iIRFilterNodeConstructor=createIIRFilterNodeConstructor(audioNodeConstructor,createNativeIIRFilterNode,createIIRFilterNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createAudioListener=createAudioListenerFactory(createAudioParam,createNativeChannelMergerNode,createNativeConstantSourceNode,createNativeScriptProcessorNode,createNotSupportedError,getFirstSample,isNativeOfflineAudioContext,overwriteAccessors),unrenderedAudioWorkletNodeStore=new WeakMap,minimalBaseAudioContextConstructor=createMinimalBaseAudioContextConstructor(audioDestinationNodeConstructor,createAudioListener,eventTargetConstructor,isNativeOfflineAudioContext,unrenderedAudioWorkletNodeStore,wrapEventListener),createNativeOscillatorNode=createNativeOscillatorNodeFactory(addSilentConnection,cacheTestResult,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls),createOscillatorNodeRenderer=createOscillatorNodeRendererFactory(connectAudioParam,createNativeOscillatorNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),oscillatorNodeConstructor=createOscillatorNodeConstructor(audioNodeConstructor,createAudioParam,createNativeOscillatorNode,createOscillatorNodeRenderer,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),createConnectedNativeAudioBufferSourceNode=createConnectedNativeAudioBufferSourceNodeFactory(createNativeAudioBufferSourceNode),createNativeWaveShaperNodeFaker=createNativeWaveShaperNodeFakerFactory(createConnectedNativeAudioBufferSourceNode,createInvalidStateError,createNativeGainNode,isDCCurve,monitorConnections),createNativeWaveShaperNode=createNativeWaveShaperNodeFactory(createConnectedNativeAudioBufferSourceNode,createInvalidStateError,createNativeWaveShaperNodeFaker,isDCCurve,monitorConnections,nativeAudioContextConstructor,overwriteAccessors),createNativePannerNodeFaker=createNativePannerNodeFakerFactory(connectNativeAudioNodeToNativeAudioNode,createInvalidStateError,createNativeChannelMergerNode,createNativeGainNode,createNativeScriptProcessorNode,createNativeWaveShaperNode,createNotSupportedError,disconnectNativeAudioNodeFromNativeAudioNode,getFirstSample,monitorConnections),createNativePannerNode=createNativePannerNodeFactory(createNativePannerNodeFaker),createPannerNodeRenderer=createPannerNodeRendererFactory(connectAudioParam,createNativeChannelMergerNode,createNativeConstantSourceNode,createNativeGainNode,createNativePannerNode,getNativeAudioNode,nativeOfflineAudioContextConstructor,renderAutomation,renderInputsOfAudioNode,renderNativeOfflineAudioContext),pannerNodeConstructor=createPannerNodeConstructor(audioNodeConstructor,createAudioParam,createNativePannerNode,createPannerNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createNativePeriodicWave=createNativePeriodicWaveFactory(createIndexSizeError),periodicWaveConstructor=createPeriodicWaveConstructor(createNativePeriodicWave,getNativeContext,new WeakSet,sanitizePeriodicWaveOptions),nativeStereoPannerNodeFakerFactory=createNativeStereoPannerNodeFakerFactory(createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeGainNode,createNativeWaveShaperNode,createNotSupportedError,monitorConnections),createNativeStereoPannerNode=createNativeStereoPannerNodeFactory(nativeStereoPannerNodeFakerFactory,createNotSupportedError),createStereoPannerNodeRenderer=createStereoPannerNodeRendererFactory(connectAudioParam,createNativeStereoPannerNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),stereoPannerNodeConstructor=createStereoPannerNodeConstructor(audioNodeConstructor,createAudioParam,createNativeStereoPannerNode,createStereoPannerNodeRenderer,getNativeContext,isNativeOfflineAudioContext),createWaveShaperNodeRenderer=createWaveShaperNodeRendererFactory(createNativeWaveShaperNode,getNativeAudioNode,renderInputsOfAudioNode),waveShaperNodeConstructor=createWaveShaperNodeConstructor(audioNodeConstructor,createInvalidStateError,createNativeWaveShaperNode,createWaveShaperNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),isSecureContext=createIsSecureContext(window$1),exposeCurrentFrameAndCurrentTime=createExposeCurrentFrameAndCurrentTime(window$1),backupOfflineAudioContextStore=new WeakMap,getOrCreateBackupOfflineAudioContext=createGetOrCreateBackupOfflineAudioContext(backupOfflineAudioContextStore,nativeOfflineAudioContextConstructor),addAudioWorkletModule=isSecureContext?createAddAudioWorkletModule(cacheTestResult,createNotSupportedError,createEvaluateSource(window$1),exposeCurrentFrameAndCurrentTime,createFetchSource(createAbortError),getNativeContext,getOrCreateBackupOfflineAudioContext,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor,new WeakMap,new WeakMap,createTestAudioWorkletProcessorPostMessageSupport(nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor),window$1):void 0,isNativeContext=createIsNativeContext(isNativeAudioContext,isNativeOfflineAudioContext),decodeAudioData=createDecodeAudioData(audioBufferStore,cacheTestResult,createDataCloneError,createEncodingError,new WeakSet,getNativeContext,isNativeContext,testAudioBufferCopyChannelMethodsOutOfBoundsSupport,testPromiseSupport,wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),baseAudioContextConstructor=createBaseAudioContextConstructor(addAudioWorkletModule,analyserNodeConstructor,audioBufferConstructor,audioBufferSourceNodeConstructor,biquadFilterNodeConstructor,channelMergerNodeConstructor,channelSplitterNodeConstructor,constantSourceNodeConstructor,convolverNodeConstructor,decodeAudioData,delayNodeConstructor,dynamicsCompressorNodeConstructor,gainNodeConstructor,iIRFilterNodeConstructor,minimalBaseAudioContextConstructor,oscillatorNodeConstructor,pannerNodeConstructor,periodicWaveConstructor,stereoPannerNodeConstructor,waveShaperNodeConstructor),mediaElementAudioSourceNodeConstructor=createMediaElementAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaElementAudioSourceNode,getNativeContext,isNativeOfflineAudioContext),mediaStreamAudioDestinationNodeConstructor=createMediaStreamAudioDestinationNodeConstructor(audioNodeConstructor,createNativeMediaStreamAudioDestinationNode,getNativeContext,isNativeOfflineAudioContext),mediaStreamAudioSourceNodeConstructor=createMediaStreamAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaStreamAudioSourceNode,getNativeContext,isNativeOfflineAudioContext),createNativeMediaStreamTrackAudioSourceNode=createNativeMediaStreamTrackAudioSourceNodeFactory(createInvalidStateError,isNativeOfflineAudioContext),mediaStreamTrackAudioSourceNodeConstructor=createMediaStreamTrackAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaStreamTrackAudioSourceNode,getNativeContext),audioContextConstructor=createAudioContextConstructor(baseAudioContextConstructor,createInvalidStateError,createNotSupportedError,createUnknownError,mediaElementAudioSourceNodeConstructor,mediaStreamAudioDestinationNodeConstructor,mediaStreamAudioSourceNodeConstructor,mediaStreamTrackAudioSourceNodeConstructor,nativeAudioContextConstructor),getUnrenderedAudioWorkletNodes=createGetUnrenderedAudioWorkletNodes(unrenderedAudioWorkletNodeStore),addUnrenderedAudioWorkletNode=createAddUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes),connectMultipleOutputs=createConnectMultipleOutputs(createIndexSizeError),deleteUnrenderedAudioWorkletNode=createDeleteUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes),disconnectMultipleOutputs=createDisconnectMultipleOutputs(createIndexSizeError),activeAudioWorkletNodeInputsStore=new WeakMap,getActiveAudioWorkletNodeInputs=createGetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore,getValueForKey),createNativeAudioWorkletNodeFaker=createNativeAudioWorkletNodeFakerFactory(connectMultipleOutputs,createIndexSizeError,createInvalidStateError,createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeConstantSourceNode,createNativeGainNode,createNativeScriptProcessorNode,createNotSupportedError,disconnectMultipleOutputs,exposeCurrentFrameAndCurrentTime,getActiveAudioWorkletNodeInputs,monitorConnections),createNativeAudioWorkletNode=createNativeAudioWorkletNodeFactory(createInvalidStateError,createNativeAudioWorkletNodeFaker,createNativeGainNode,createNotSupportedError,monitorConnections),createAudioWorkletNodeRenderer=createAudioWorkletNodeRendererFactory(connectAudioParam,connectMultipleOutputs,createNativeAudioBufferSourceNode,createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeConstantSourceNode,createNativeGainNode,deleteUnrenderedAudioWorkletNode,disconnectMultipleOutputs,exposeCurrentFrameAndCurrentTime,getNativeAudioNode,nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor,renderAutomation,renderInputsOfAudioNode,renderNativeOfflineAudioContext),getBackupOfflineAudioContext=createGetBackupOfflineAudioContext(backupOfflineAudioContextStore),setActiveAudioWorkletNodeInputs=createSetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore),audioWorkletNodeConstructor=isSecureContext?createAudioWorkletNodeConstructor(addUnrenderedAudioWorkletNode,audioNodeConstructor,createAudioParam,createAudioWorkletNodeRenderer,createNativeAudioWorkletNode,getAudioNodeConnections,getBackupOfflineAudioContext,getNativeContext,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor,sanitizeAudioWorkletNodeOptions,setActiveAudioWorkletNodeInputs,testAudioWorkletNodeOptionsClonability,wrapEventListener):void 0,createNativeOfflineAudioContext=createCreateNativeOfflineAudioContext(createNotSupportedError,nativeOfflineAudioContextConstructor),startRendering=createStartRendering(audioBufferStore,cacheTestResult,getAudioNodeRenderer,getUnrenderedAudioWorkletNodes,renderNativeOfflineAudioContext,testAudioBufferCopyChannelMethodsOutOfBoundsSupport,wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),offlineAudioContextConstructor=createOfflineAudioContextConstructor(baseAudioContextConstructor,cacheTestResult,createInvalidStateError,createNativeOfflineAudioContext,startRendering),isAnyAudioContext=createIsAnyAudioContext(CONTEXT_STORE,isNativeAudioContext),isAnyAudioNode=createIsAnyAudioNode(AUDIO_NODE_STORE,isNativeAudioNode),isAnyAudioParam=createIsAnyAudioParam(AUDIO_PARAM_STORE,isNativeAudioParam),isAnyOfflineAudioContext=createIsAnyOfflineAudioContext(CONTEXT_STORE,isNativeOfflineAudioContext),isSupported=()=>createIsSupportedPromise(cacheTestResult,createTestAudioBufferCopyChannelMethodsSubarraySupport(nativeOfflineAudioContextConstructor),createTestAudioContextCloseMethodSupport(nativeAudioContextConstructor),createTestAudioContextDecodeAudioDataMethodTypeErrorSupport(nativeOfflineAudioContextConstructor),createTestAudioContextOptionsSupport(nativeAudioContextConstructor),createTestAudioNodeConnectMethodSupport(nativeOfflineAudioContextConstructor),createTestAudioWorkletProcessorNoOutputsSupport(nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor),createTestChannelMergerNodeChannelCountSupport(nativeOfflineAudioContextConstructor),createTestConstantSourceNodeAccurateSchedulingSupport(nativeOfflineAudioContextConstructor),createTestConvolverNodeBufferReassignabilitySupport(nativeOfflineAudioContextConstructor),createTestConvolverNodeChannelCountSupport(nativeOfflineAudioContextConstructor),testDomExceptionConstructorSupport,createTestIsSecureContextSupport(window$1),createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport(nativeAudioContextConstructor),createTestStereoPannerNodeDefaultValueSupport(nativeOfflineAudioContextConstructor),testTransferablesSupport);function assert(o,e){if(!o)throw new Error(e)}function assertRange(o,e,s=1/0){if(!(e<=o&&o<=s))throw new RangeError(`Value must be within [${e}, ${s}], got: ${o}`)}function assertContextRunning(o){!o.isOffline&&o.state!=="running"&&warn('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}let defaultLogger=console;function setLogger(o){defaultLogger=o}function log(...o){defaultLogger.log(...o)}function warn(...o){defaultLogger.warn(...o)}var Debug=Object.freeze(Object.defineProperty({__proto__:null,assert,assertRange,assertContextRunning,setLogger,log,warn},Symbol.toStringTag,{value:"Module"}));function isUndef(o){return typeof o=="undefined"}function isDefined(o){return!isUndef(o)}function isFunction(o){return typeof o=="function"}function isNumber(o){return typeof o=="number"}function isObject(o){return Object.prototype.toString.call(o)==="[object Object]"&&o.constructor===Object}function isBoolean(o){return typeof o=="boolean"}function isArray(o){return Array.isArray(o)}function isString(o){return typeof o=="string"}function isNote$2(o){return isString(o)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(o)}function createAudioContext(o){return new audioContextConstructor(o)}function createOfflineAudioContext(o,e,s){return new offlineAudioContextConstructor(o,e,s)}const theWindow=typeof self=="object"?self:null,hasAudioContext=theWindow&&(theWindow.hasOwnProperty("AudioContext")||theWindow.hasOwnProperty("webkitAudioContext"));function createAudioWorkletNode(o,e,s){return assert(isDefined(audioWorkletNodeConstructor),"This node only works in a secure context (https or localhost)"),new audioWorkletNodeConstructor(o,e,s)}/*! ***************************************************************************** +Please check with "npm ls @strudel.cycles/core".`);globalThis._strudelLoaded=!0;var strudel=Object.freeze(Object.defineProperty({__proto__:null,Fraction:fraction,gist,Hap,Pattern:Pattern$5,silence,pure,isPattern:isPattern$1,reify:reify$1,stack,slowcat,slowcatPrime,fastcat,cat,timeCat,sequence,seq:seq$2,polymeterSteps,polymeter,pm,polyrhythm,pr,add:add$1,chop,chunk,chunkBack,div,early,echo,every,fast,inv,invert,iter,iterBack,jux,juxBy,late,linger,mask,mul,off,ply,range:range$1,range2,rev,slow,struct,sub,superimpose,set,when,makeComposable,patternify2,patternify3,patternify4,steady,signal,isaw,isaw2,saw,saw2,sine2,sine,cosine,cosine2,square,square2,tri,tri2,time,rand,rand2,_brandBy,brandBy,brand,_irand,irand,__chooseWith,chooseWith,chooseInWith,choose,chooseCycles,randcat,wchoose,wchooseCycles,perlinWith,perlin,State:State$1,TimeSpan:TimeSpan$1,isNote:isNote$3,tokenizeNote,toMidi:toMidi$1,fromMidi,getFreq,midi2note,mod,getPlayableNoteValue,getFrequency,rotate,pipe,compose,removeUndefineds,flatten:flatten$1,id:id$1,constant,listRange,curry},Symbol.toStringTag,{value:"Module"}));const scale=(o,e,s)=>o*(s-e)+e,getValue=o=>{var s;let e=typeof o.value=="object"?(s=o.value.note)!=null?s:o.value.n:o.value;return typeof e=="string"&&(e=toMidi(e)),e};Pattern$5.prototype.pianoroll=function({cycles:o=4,playhead:e=.5,overscan:s=1,flipTime:a=0,flipValues:c=0,hideNegative:d=!1,inactive:_="#7491D2",active:b="#FFCA28",background:k="transparent",smear:$=0,playheadColor:j="white",minMidi:_e=10,maxMidi:et=90,autorange:tt=0,timeframe:nt,fold:st=0,vertical:rt=0}={}){const it=getDrawContext(),at=it.canvas.width,ot=it.canvas.height;let ht=-o*e,ct=o*(1-e);nt&&(console.warn("timeframe is deprecated! use from/to instead"),ht=0,ct=nt),!tt&&st&&console.warn("disabling autorange has no effect when fold is enabled");const ut=rt?ot:at,lt=rt?at:ot;let pt=rt?[ut,0]:[0,ut];const dt=ct-ht,gt=rt?[0,lt]:[lt,0];let yt=et-_e+1,ft=lt/yt,Et=[];return a&&pt.reverse(),c&>.reverse(),this.draw((mt,St,At)=>{mt.fillStyle=k,mt.globalAlpha=1,$||(mt.clearRect(0,0,at,ot),mt.fillRect(0,0,at,ot));const Ot=Dt=>(!d||Dt.whole.begin>=0)&&Dt.whole.begin<=At+ct&&Dt.whole.end>=At+ht;St.filter(Ot).forEach(Dt=>{var qt,Qt,Nt;const Tt=Dt.whole.begin<=At&&Dt.whole.end>At;mt.fillStyle=((qt=Dt.context)==null?void 0:qt.color)||_,mt.strokeStyle=((Qt=Dt.context)==null?void 0:Qt.color)||b,mt.globalAlpha=(Nt=Dt.context.velocity)!=null?Nt:1;const vt=scale((Dt.whole.begin-(a?ct:ht))/dt,...pt);let bt=scale(Dt.duration/dt,0,ut);const xt=getValue(Dt),Rt=scale(st?Et.indexOf(xt)/Et.length:(Number(xt)-_e)/yt,...gt);let Mt=0;const It=scale(At/dt,...pt);let Ft;rt?Ft=[Rt+1-(c?ft:0),ut-It+vt+Mt+1-(a?0:bt),ft-2,bt-2]:Ft=[vt-It+Mt+1-(a?bt:0),Rt+1-(c?0:ft),bt-2,ft-2],Tt?mt.strokeRect(...Ft):mt.fillRect(...Ft)}),mt.globalAlpha=1;const Ct=scale(-ht/dt,...pt);mt.strokeStyle=j,mt.beginPath(),rt?(mt.moveTo(0,Ct),mt.lineTo(lt,Ct)):(mt.moveTo(Ct,0),mt.lineTo(Ct,lt)),mt.stroke()},{from:ht-s,to:ct+s,onQuery:mt=>{const{min:St,max:At,values:Ot}=mt.reduce(({min:Ct,max:Dt,values:Tt},vt)=>{const bt=getValue(vt);return{min:btDt?bt:Dt,values:Tt.includes(bt)?Tt:[...Tt,bt]}},{min:1/0,max:-1/0,values:[]});tt&&(_e=St,et=At,yt=et-_e+1),Et=Ot.sort((Ct,Dt)=>Ct-Dt),ft=st?lt/Et.length:lt/yt}}),this};const version="14.7.77",createExtendedExponentialRampToValueAutomationEvent=(o,e,s)=>({endTime:e,insertTime:s,type:"exponentialRampToValue",value:o}),createExtendedLinearRampToValueAutomationEvent=(o,e,s)=>({endTime:e,insertTime:s,type:"linearRampToValue",value:o}),createSetValueAutomationEvent=(o,e)=>({startTime:e,type:"setValue",value:o}),createSetValueCurveAutomationEvent=(o,e,s)=>({duration:s,startTime:e,type:"setValueCurve",values:o}),getTargetValueAtTime=(o,e,{startTime:s,target:a,timeConstant:c})=>a+(e-a)*Math.exp((s-o)/c),isExponentialRampToValueAutomationEvent=o=>o.type==="exponentialRampToValue",isLinearRampToValueAutomationEvent=o=>o.type==="linearRampToValue",isAnyRampToValueAutomationEvent=o=>isExponentialRampToValueAutomationEvent(o)||isLinearRampToValueAutomationEvent(o),isSetValueAutomationEvent=o=>o.type==="setValue",isSetValueCurveAutomationEvent=o=>o.type==="setValueCurve",getValueOfAutomationEventAtIndexAtTime=(o,e,s,a)=>{const c=o[e];return c===void 0?a:isAnyRampToValueAutomationEvent(c)||isSetValueAutomationEvent(c)?c.value:isSetValueCurveAutomationEvent(c)?c.values[c.values.length-1]:getTargetValueAtTime(s,getValueOfAutomationEventAtIndexAtTime(o,e-1,c.startTime,a),c)},getEndTimeAndValueOfPreviousAutomationEvent=(o,e,s,a,c)=>s===void 0?[a.insertTime,c]:isAnyRampToValueAutomationEvent(s)?[s.endTime,s.value]:isSetValueAutomationEvent(s)?[s.startTime,s.value]:isSetValueCurveAutomationEvent(s)?[s.startTime+s.duration,s.values[s.values.length-1]]:[s.startTime,getValueOfAutomationEventAtIndexAtTime(o,e-1,s.startTime,c)],isCancelAndHoldAutomationEvent=o=>o.type==="cancelAndHold",isCancelScheduledValuesAutomationEvent=o=>o.type==="cancelScheduledValues",getEventTime=o=>isCancelAndHoldAutomationEvent(o)||isCancelScheduledValuesAutomationEvent(o)?o.cancelTime:isExponentialRampToValueAutomationEvent(o)||isLinearRampToValueAutomationEvent(o)?o.endTime:o.startTime,getExponentialRampValueAtTime=(o,e,s,{endTime:a,value:c})=>s===c?c:0s+(o-e)/(a-e)*(c-s),interpolateValue=(o,e)=>{const s=Math.floor(e),a=Math.ceil(e);return s===a?o[s]:(1-(e-s))*o[s]+(1-(a-e))*o[a]},getValueCurveValueAtTime=(o,{duration:e,startTime:s,values:a})=>{const c=(o-s)/e*(a.length-1);return interpolateValue(a,c)},isSetTargetAutomationEvent=o=>o.type==="setTarget";class AutomationEventList{constructor(e){this._automationEvents=[],this._currenTime=0,this._defaultValue=e}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(e){const s=getEventTime(e);if(isCancelAndHoldAutomationEvent(e)||isCancelScheduledValuesAutomationEvent(e)){const a=this._automationEvents.findIndex(d=>isCancelScheduledValuesAutomationEvent(e)&&isSetValueCurveAutomationEvent(d)?d.startTime+d.duration>=s:getEventTime(d)>=s),c=this._automationEvents[a];if(a!==-1&&(this._automationEvents=this._automationEvents.slice(0,a)),isCancelAndHoldAutomationEvent(e)){const d=this._automationEvents[this._automationEvents.length-1];if(c!==void 0&&isAnyRampToValueAutomationEvent(c)){if(isSetTargetAutomationEvent(d))throw new Error("The internal list is malformed.");const _=isSetValueCurveAutomationEvent(d)?d.startTime+d.duration:getEventTime(d),b=isSetValueCurveAutomationEvent(d)?d.values[d.values.length-1]:d.value,k=isExponentialRampToValueAutomationEvent(c)?getExponentialRampValueAtTime(s,_,b,c):getLinearRampValueAtTime(s,_,b,c),$=isExponentialRampToValueAutomationEvent(c)?createExtendedExponentialRampToValueAutomationEvent(k,s,this._currenTime):createExtendedLinearRampToValueAutomationEvent(k,s,this._currenTime);this._automationEvents.push($)}d!==void 0&&isSetTargetAutomationEvent(d)&&this._automationEvents.push(createSetValueAutomationEvent(this.getValue(s),s)),d!==void 0&&isSetValueCurveAutomationEvent(d)&&d.startTime+d.duration>s&&(this._automationEvents[this._automationEvents.length-1]=createSetValueCurveAutomationEvent(new Float32Array([6,7]),d.startTime,s-d.startTime))}}else{const a=this._automationEvents.findIndex(_=>getEventTime(_)>s),c=a===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[a-1];if(c!==void 0&&isSetValueCurveAutomationEvent(c)&&getEventTime(c)+c.duration>s)return!1;const d=isExponentialRampToValueAutomationEvent(e)?createExtendedExponentialRampToValueAutomationEvent(e.value,e.endTime,this._currenTime):isLinearRampToValueAutomationEvent(e)?createExtendedLinearRampToValueAutomationEvent(e.value,s,this._currenTime):e;if(a===-1)this._automationEvents.push(d);else{if(isSetValueCurveAutomationEvent(e)&&s+e.duration>getEventTime(this._automationEvents[a]))return!1;this._automationEvents.splice(a,0,d)}}return!0}flush(e){const s=this._automationEvents.findIndex(a=>getEventTime(a)>e);if(s>1){const a=this._automationEvents.slice(s-1),c=a[0];isSetTargetAutomationEvent(c)&&a.unshift(createSetValueAutomationEvent(getValueOfAutomationEventAtIndexAtTime(this._automationEvents,s-2,c.startTime,this._defaultValue),c.startTime)),this._automationEvents=a}}getValue(e){if(this._automationEvents.length===0)return this._defaultValue;const s=this._automationEvents.findIndex(_=>getEventTime(_)>e),a=this._automationEvents[s],c=(s===-1?this._automationEvents.length:s)-1,d=this._automationEvents[c];if(d!==void 0&&isSetTargetAutomationEvent(d)&&(a===void 0||!isAnyRampToValueAutomationEvent(a)||a.insertTime>e))return getTargetValueAtTime(e,getValueOfAutomationEventAtIndexAtTime(this._automationEvents,c-1,d.startTime,this._defaultValue),d);if(d!==void 0&&isSetValueAutomationEvent(d)&&(a===void 0||!isAnyRampToValueAutomationEvent(a)))return d.value;if(d!==void 0&&isSetValueCurveAutomationEvent(d)&&(a===void 0||!isAnyRampToValueAutomationEvent(a)||d.startTime+d.duration>e))return e({cancelTime:o,type:"cancelAndHold"}),createCancelScheduledValuesAutomationEvent=o=>({cancelTime:o,type:"cancelScheduledValues"}),createExponentialRampToValueAutomationEvent=(o,e)=>({endTime:e,type:"exponentialRampToValue",value:o}),createLinearRampToValueAutomationEvent=(o,e)=>({endTime:e,type:"linearRampToValue",value:o}),createSetTargetAutomationEvent=(o,e,s)=>({startTime:e,target:o,timeConstant:s,type:"setTarget"}),createAbortError=()=>new DOMException("","AbortError"),createAddActiveInputConnectionToAudioNode=o=>(e,s,[a,c,d],_)=>{o(e[c],[s,a,d],b=>b[0]===s&&b[1]===a,_)},createAddAudioNodeConnections=o=>(e,s,a)=>{const c=[];for(let d=0;d(e,s)=>{o.set(e,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:s})},ACTIVE_AUDIO_NODE_STORE=new WeakSet,AUDIO_NODE_CONNECTIONS_STORE=new WeakMap,AUDIO_NODE_STORE=new WeakMap,AUDIO_PARAM_CONNECTIONS_STORE=new WeakMap,AUDIO_PARAM_STORE=new WeakMap,CONTEXT_STORE=new WeakMap,EVENT_LISTENERS=new WeakMap,CYCLE_COUNTERS=new WeakMap,NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS=new WeakMap,NODE_TO_PROCESSOR_MAPS=new WeakMap,handler={construct(){return handler}},isConstructible=o=>{try{const e=new Proxy(o,handler);new e}catch{return!1}return!0},IMPORT_STATEMENT_REGEX=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,splitImportStatements=(o,e)=>{const s=[];let a=o.replace(/^[\s]+/,""),c=a.match(IMPORT_STATEMENT_REGEX);for(;c!==null;){const d=c[1].slice(1,-1),_=c[0].replace(/([\s]+)?;?$/,"").replace(d,new URL(d,e).toString());s.push(_),a=a.slice(c[0].length).replace(/^[\s]+/,""),c=a.match(IMPORT_STATEMENT_REGEX)}return[s.join(";"),a]},verifyParameterDescriptors=o=>{if(o!==void 0&&!Array.isArray(o))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},verifyProcessorCtor=o=>{if(!isConstructible(o))throw new TypeError("The given value for processorCtor should be a constructor.");if(o.prototype===null||typeof o.prototype!="object")throw new TypeError("The given value for processorCtor should have a prototype.")},createAddAudioWorkletModule=(o,e,s,a,c,d,_,b,k,$,j,_e,et)=>{let tt=0;return(nt,st,rt={credentials:"omit"})=>{const it=j.get(nt);if(it!==void 0&&it.has(st))return Promise.resolve();const at=$.get(nt);if(at!==void 0){const ct=at.get(st);if(ct!==void 0)return ct}const ot=d(nt),ht=ot.audioWorklet===void 0?c(st).then(([ct,ut])=>{const[lt,pt]=splitImportStatements(ct,ut),dt=`${lt};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${pt} +})})(window,'_AWGS')`;return s(dt)}).then(()=>{const ct=et._AWGS.pop();if(ct===void 0)throw new SyntaxError;a(ot.currentTime,ot.sampleRate,()=>ct(class{},void 0,(ut,lt)=>{if(ut.trim()==="")throw e();const pt=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(ot);if(pt!==void 0){if(pt.has(ut))throw e();verifyProcessorCtor(lt),verifyParameterDescriptors(lt.parameterDescriptors),pt.set(ut,lt)}else verifyProcessorCtor(lt),verifyParameterDescriptors(lt.parameterDescriptors),NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.set(ot,new Map([[ut,lt]]))},ot.sampleRate,void 0,void 0))}):Promise.all([c(st),Promise.resolve(o(_e,_e))]).then(([[ct,ut],lt])=>{const pt=tt+1;tt=pt;const[dt,gt]=splitImportStatements(ct,ut),mt=`${dt};((AudioWorkletProcessor,registerProcessor)=>{${gt} +})(${lt?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${lt?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${lt?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${pt}',class extends AudioWorkletProcessor{process(){return !1}})`,St=new Blob([mt],{type:"application/javascript; charset=utf-8"}),At=URL.createObjectURL(St);return ot.audioWorklet.addModule(At,rt).then(()=>{if(b(ot))return ot;const Ot=_(ot);return Ot.audioWorklet.addModule(At,rt).then(()=>Ot)}).then(Ot=>{if(k===null)throw new SyntaxError;try{new k(Ot,`__sac${pt}`)}catch{throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(At))});return at===void 0?$.set(nt,new Map([[st,ht]])):at.set(st,ht),ht.then(()=>{const ct=j.get(nt);ct===void 0?j.set(nt,new Set([st])):ct.add(st)}).finally(()=>{const ct=$.get(nt);ct!==void 0&&ct.delete(st)}),ht}},getValueForKey=(o,e)=>{const s=o.get(e);if(s===void 0)throw new Error("A value with the given key could not be found.");return s},pickElementFromSet=(o,e)=>{const s=Array.from(o).filter(e);if(s.length>1)throw Error("More than one element was found.");if(s.length===0)throw Error("No element was found.");const[a]=s;return o.delete(a),a},deletePassiveInputConnectionToAudioNode=(o,e,s,a)=>{const c=getValueForKey(o,e),d=pickElementFromSet(c,_=>_[0]===s&&_[1]===a);return c.size===0&&o.delete(e),d},getEventListenersOfAudioNode=o=>getValueForKey(EVENT_LISTENERS,o),setInternalStateToActive=o=>{if(ACTIVE_AUDIO_NODE_STORE.has(o))throw new Error("The AudioNode is already stored.");ACTIVE_AUDIO_NODE_STORE.add(o),getEventListenersOfAudioNode(o).forEach(e=>e(!0))},isAudioWorkletNode=o=>"port"in o,setInternalStateToPassive=o=>{if(!ACTIVE_AUDIO_NODE_STORE.has(o))throw new Error("The AudioNode is not stored.");ACTIVE_AUDIO_NODE_STORE.delete(o),getEventListenersOfAudioNode(o).forEach(e=>e(!1))},setInternalStateToPassiveWhenNecessary=(o,e)=>{!isAudioWorkletNode(o)&&e.every(s=>s.size===0)&&setInternalStateToPassive(o)},createAddConnectionToAudioNode=(o,e,s,a,c,d,_,b,k,$,j,_e,et)=>{const tt=new WeakMap;return(nt,st,rt,it,at)=>{const{activeInputs:ot,passiveInputs:ht}=d(st),{outputs:ct}=d(nt),ut=b(nt),lt=pt=>{const dt=k(st),gt=k(nt);if(pt){const yt=deletePassiveInputConnectionToAudioNode(ht,nt,rt,it);o(ot,nt,yt,!1),!at&&!_e(nt)&&s(gt,dt,rt,it),et(st)&&setInternalStateToActive(st)}else{const yt=a(ot,nt,rt,it);e(ht,it,yt,!1),!at&&!_e(nt)&&c(gt,dt,rt,it);const ft=_(st);if(ft===0)j(st)&&setInternalStateToPassiveWhenNecessary(st,ot);else{const Et=tt.get(st);Et!==void 0&&clearTimeout(Et),tt.set(st,setTimeout(()=>{j(st)&&setInternalStateToPassiveWhenNecessary(st,ot)},ft*1e3))}}};return $(ct,[st,rt,it],pt=>pt[0]===st&&pt[1]===rt&&pt[2]===it,!0)?(ut.add(lt),j(nt)?o(ot,nt,[rt,it,lt],!0):e(ht,it,[nt,rt,lt],!0),!0):!1}},createAddPassiveInputConnectionToAudioNode=o=>(e,s,[a,c,d],_)=>{const b=e.get(a);b===void 0?e.set(a,new Set([[c,s,d]])):o(b,[c,s,d],k=>k[0]===c&&k[1]===s,_)},createAddSilentConnection=o=>(e,s)=>{const a=o(e,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});s.connect(a).connect(e.destination);const c=()=>{s.removeEventListener("ended",c),s.disconnect(a),a.disconnect()};s.addEventListener("ended",c)},createAddUnrenderedAudioWorkletNode=o=>(e,s)=>{o(e).add(s)},DEFAULT_OPTIONS$j={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},createAnalyserNodeConstructor=(o,e,s,a,c,d)=>class extends o{constructor(b,k){const $=c(b),j=_t(_t({},DEFAULT_OPTIONS$j),k),_e=a($,j),et=d($)?e():null;super(b,!1,_e,et),this._nativeAnalyserNode=_e}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(b){this._nativeAnalyserNode.fftSize=b}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(b){const k=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=b,!(b>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=k,s()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(b){const k=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=b,!(this._nativeAnalyserNode.maxDecibels>b))throw this._nativeAnalyserNode.minDecibels=k,s()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(b){this._nativeAnalyserNode.smoothingTimeConstant=b}getByteFrequencyData(b){this._nativeAnalyserNode.getByteFrequencyData(b)}getByteTimeDomainData(b){this._nativeAnalyserNode.getByteTimeDomainData(b)}getFloatFrequencyData(b){this._nativeAnalyserNode.getFloatFrequencyData(b)}getFloatTimeDomainData(b){this._nativeAnalyserNode.getFloatTimeDomainData(b)}},isOwnedByContext=(o,e)=>o.context===e,createAnalyserNodeRendererFactory=(o,e,s)=>()=>{const a=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,fftSize:b.fftSize,maxDecibels:b.maxDecibels,minDecibels:b.minDecibels,smoothingTimeConstant:b.smoothingTimeConstant};b=o(_,$)}return a.set(_,b),await s(d,_,b),b};return{render(d,_){const b=a.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},testAudioBufferCopyChannelMethodsOutOfBoundsSupport=o=>{try{o.copyToChannel(new Float32Array(1),0,-1)}catch{return!1}return!0},createIndexSizeError=()=>new DOMException("","IndexSizeError"),wrapAudioBufferGetChannelDataMethod=o=>{o.getChannelData=(e=>s=>{try{return e.call(o,s)}catch(a){throw a.code===12?createIndexSizeError():a}})(o.getChannelData)},DEFAULT_OPTIONS$i={numberOfChannels:1},createAudioBufferConstructor=(o,e,s,a,c,d,_,b)=>{let k=null;return class mr{constructor(j){if(c===null)throw new Error("Missing the native OfflineAudioContext constructor.");const{length:_e,numberOfChannels:et,sampleRate:tt}=_t(_t({},DEFAULT_OPTIONS$i),j);k===null&&(k=new c(1,1,44100));const nt=a!==null&&e(d,d)?new a({length:_e,numberOfChannels:et,sampleRate:tt}):k.createBuffer(et,_e,tt);if(nt.numberOfChannels===0)throw s();return typeof nt.copyFromChannel!="function"?(_(nt),wrapAudioBufferGetChannelDataMethod(nt)):e(testAudioBufferCopyChannelMethodsOutOfBoundsSupport,()=>testAudioBufferCopyChannelMethodsOutOfBoundsSupport(nt))||b(nt),o.add(nt),nt}static[Symbol.hasInstance](j){return j!==null&&typeof j=="object"&&Object.getPrototypeOf(j)===mr.prototype||o.has(j)}}},MOST_NEGATIVE_SINGLE_FLOAT=-34028234663852886e22,MOST_POSITIVE_SINGLE_FLOAT=-MOST_NEGATIVE_SINGLE_FLOAT,isActiveAudioNode=o=>ACTIVE_AUDIO_NODE_STORE.has(o),DEFAULT_OPTIONS$h={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},createAudioBufferSourceNodeConstructor=(o,e,s,a,c,d,_,b)=>class extends o{constructor($,j){const _e=d($),et=_t(_t({},DEFAULT_OPTIONS$h),j),tt=c(_e,et),nt=_(_e),st=nt?e():null;super($,!1,tt,st),this._audioBufferSourceNodeRenderer=st,this._isBufferNullified=!1,this._isBufferSet=et.buffer!==null,this._nativeAudioBufferSourceNode=tt,this._onended=null,this._playbackRate=s(this,nt,tt.playbackRate,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer($){if(this._nativeAudioBufferSourceNode.buffer=$,$!==null){if(this._isBufferSet)throw a();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop($){this._nativeAudioBufferSourceNode.loop=$}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd($){this._nativeAudioBufferSourceNode.loopEnd=$}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart($){this._nativeAudioBufferSourceNode.loopStart=$}get onended(){return this._onended}set onended($){const j=typeof $=="function"?b(this,$):null;this._nativeAudioBufferSourceNode.onended=j;const _e=this._nativeAudioBufferSourceNode.onended;this._onended=_e!==null&&_e===j?$:_e}get playbackRate(){return this._playbackRate}start($=0,j=0,_e){if(this._nativeAudioBufferSourceNode.start($,j,_e),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=_e===void 0?[$,j]:[$,j,_e]),this.context.state!=="closed"){setInternalStateToActive(this);const et=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",et),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",et)}}stop($=0){this._nativeAudioBufferSourceNode.stop($),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=$)}},createAudioBufferSourceNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap;let _=null,b=null;const k=async($,j)=>{let _e=s($);const et=isOwnedByContext(_e,j);if(!et){const tt={buffer:_e.buffer,channelCount:_e.channelCount,channelCountMode:_e.channelCountMode,channelInterpretation:_e.channelInterpretation,loop:_e.loop,loopEnd:_e.loopEnd,loopStart:_e.loopStart,playbackRate:_e.playbackRate.value};_e=e(j,tt),_!==null&&_e.start(..._),b!==null&&_e.stop(b)}return d.set(j,_e),et?await o(j,$.playbackRate,_e.playbackRate):await a(j,$.playbackRate,_e.playbackRate),await c($,j,_e),_e};return{set start($){_=$},set stop($){b=$},render($,j){const _e=d.get(j);return _e!==void 0?Promise.resolve(_e):k($,j)}}},isAudioBufferSourceNode=o=>"playbackRate"in o,isBiquadFilterNode=o=>"frequency"in o&&"gain"in o,isConstantSourceNode=o=>"offset"in o,isGainNode=o=>!("frequency"in o)&&"gain"in o,isOscillatorNode=o=>"detune"in o&&"frequency"in o,isStereoPannerNode=o=>"pan"in o,getAudioNodeConnections=o=>getValueForKey(AUDIO_NODE_CONNECTIONS_STORE,o),getAudioParamConnections=o=>getValueForKey(AUDIO_PARAM_CONNECTIONS_STORE,o),deactivateActiveAudioNodeInputConnections=(o,e)=>{const{activeInputs:s}=getAudioNodeConnections(o);s.forEach(c=>c.forEach(([d])=>{e.includes(o)||deactivateActiveAudioNodeInputConnections(d,[...e,o])}));const a=isAudioBufferSourceNode(o)?[o.playbackRate]:isAudioWorkletNode(o)?Array.from(o.parameters.values()):isBiquadFilterNode(o)?[o.Q,o.detune,o.frequency,o.gain]:isConstantSourceNode(o)?[o.offset]:isGainNode(o)?[o.gain]:isOscillatorNode(o)?[o.detune,o.frequency]:isStereoPannerNode(o)?[o.pan]:[];for(const c of a){const d=getAudioParamConnections(c);d!==void 0&&d.activeInputs.forEach(([_])=>deactivateActiveAudioNodeInputConnections(_,e))}isActiveAudioNode(o)&&setInternalStateToPassive(o)},deactivateAudioGraph=o=>{deactivateActiveAudioNodeInputConnections(o.destination,[])},isValidLatencyHint=o=>o===void 0||typeof o=="number"||typeof o=="string"&&(o==="balanced"||o==="interactive"||o==="playback"),createAudioContextConstructor=(o,e,s,a,c,d,_,b,k)=>class extends o{constructor(j={}){if(k===null)throw new Error("Missing the native AudioContext constructor.");let _e;try{_e=new k(j)}catch(nt){throw nt.code===12&&nt.message==="sampleRate is not in range"?s():nt}if(_e===null)throw a();if(!isValidLatencyHint(j.latencyHint))throw new TypeError(`The provided value '${j.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(j.sampleRate!==void 0&&_e.sampleRate!==j.sampleRate)throw s();super(_e,2);const{latencyHint:et}=j,{sampleRate:tt}=_e;if(this._baseLatency=typeof _e.baseLatency=="number"?_e.baseLatency:et==="balanced"?512/tt:et==="interactive"||et===void 0?256/tt:et==="playback"?1024/tt:Math.max(2,Math.min(128,Math.round(et*tt/128)))*128/tt,this._nativeAudioContext=_e,k.name==="webkitAudioContext"?(this._nativeGainNode=_e.createGain(),this._nativeOscillatorNode=_e.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(_e.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,_e.state==="running"){this._state="suspended";const nt=()=>{this._state==="suspended"&&(this._state=null),_e.removeEventListener("statechange",nt)};_e.addEventListener("statechange",nt)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw e()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),deactivateAudioGraph(this)}))}createMediaElementSource(j){return new c(this,{mediaElement:j})}createMediaStreamDestination(){return new d(this)}createMediaStreamSource(j){return new _(this,{mediaStream:j})}createMediaStreamTrackSource(j){return new b(this,{mediaStreamTrack:j})}resume(){return this._state==="suspended"?new Promise((j,_e)=>{const et=()=>{this._nativeAudioContext.removeEventListener("statechange",et),this._nativeAudioContext.state==="running"?j():this.resume().then(j,_e)};this._nativeAudioContext.addEventListener("statechange",et)}):this._nativeAudioContext.resume().catch(j=>{throw j===void 0||j.code===15?e():j})}suspend(){return this._nativeAudioContext.suspend().catch(j=>{throw j===void 0?e():j})}},createAudioDestinationNodeConstructor=(o,e,s,a,c,d,_,b)=>class extends o{constructor($,j){const _e=d($),et=_(_e),tt=c(_e,j,et),nt=et?e(b):null;super($,!1,tt,nt),this._isNodeOfNativeOfflineAudioContext=et,this._nativeAudioDestinationNode=tt}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount($){if(this._isNodeOfNativeOfflineAudioContext)throw a();if($>this._nativeAudioDestinationNode.maxChannelCount)throw s();this._nativeAudioDestinationNode.channelCount=$}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode($){if(this._isNodeOfNativeOfflineAudioContext)throw a();this._nativeAudioDestinationNode.channelCountMode=$}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}},createAudioDestinationNodeRenderer=o=>{const e=new WeakMap,s=async(a,c)=>{const d=c.destination;return e.set(c,d),await o(a,c,d),d};return{render(a,c){const d=e.get(c);return d!==void 0?Promise.resolve(d):s(a,c)}}},createAudioListenerFactory=(o,e,s,a,c,d,_,b)=>(k,$)=>{const j=$.listener,_e=()=>{const ct=new Float32Array(1),ut=e($,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),lt=_($);let pt=!1,dt=[0,0,-1,0,1,0],gt=[0,0,0];const yt=()=>{if(pt)return;pt=!0;const St=a($,256,9,0);St.onaudioprocess=({inputBuffer:At})=>{const Ot=[d(At,ct,0),d(At,ct,1),d(At,ct,2),d(At,ct,3),d(At,ct,4),d(At,ct,5)];Ot.some((Dt,Tt)=>Dt!==dt[Tt])&&(j.setOrientation(...Ot),dt=Ot);const Ct=[d(At,ct,6),d(At,ct,7),d(At,ct,8)];Ct.some((Dt,Tt)=>Dt!==gt[Tt])&&(j.setPosition(...Ct),gt=Ct)},ut.connect(St)},ft=St=>At=>{At!==dt[St]&&(dt[St]=At,j.setOrientation(...dt))},Et=St=>At=>{At!==gt[St]&&(gt[St]=At,j.setPosition(...gt))},mt=(St,At,Ot)=>{const Ct=s($,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:At});Ct.connect(ut,0,St),Ct.start(),Object.defineProperty(Ct.offset,"defaultValue",{get(){return At}});const Dt=o({context:k},lt,Ct.offset,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT);return b(Dt,"value",Tt=>()=>Tt.call(Dt),Tt=>vt=>{try{Tt.call(Dt,vt)}catch(bt){if(bt.code!==9)throw bt}yt(),lt&&Ot(vt)}),Dt.cancelAndHoldAtTime=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return yt(),bt})(Dt.cancelAndHoldAtTime),Dt.cancelScheduledValues=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return yt(),bt})(Dt.cancelScheduledValues),Dt.exponentialRampToValueAtTime=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return yt(),bt})(Dt.exponentialRampToValueAtTime),Dt.linearRampToValueAtTime=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return yt(),bt})(Dt.linearRampToValueAtTime),Dt.setTargetAtTime=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return yt(),bt})(Dt.setTargetAtTime),Dt.setValueAtTime=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return yt(),bt})(Dt.setValueAtTime),Dt.setValueCurveAtTime=(Tt=>lt?()=>{throw c()}:(...vt)=>{const bt=Tt.apply(Dt,vt);return yt(),bt})(Dt.setValueCurveAtTime),Dt};return{forwardX:mt(0,0,ft(0)),forwardY:mt(1,0,ft(1)),forwardZ:mt(2,-1,ft(2)),positionX:mt(6,0,Et(0)),positionY:mt(7,0,Et(1)),positionZ:mt(8,0,Et(2)),upX:mt(3,0,ft(3)),upY:mt(4,1,ft(4)),upZ:mt(5,0,ft(5))}},{forwardX:et,forwardY:tt,forwardZ:nt,positionX:st,positionY:rt,positionZ:it,upX:at,upY:ot,upZ:ht}=j.forwardX===void 0?_e():j;return{get forwardX(){return et},get forwardY(){return tt},get forwardZ(){return nt},get positionX(){return st},get positionY(){return rt},get positionZ(){return it},get upX(){return at},get upY(){return ot},get upZ(){return ht}}},isAudioNode$1=o=>"context"in o,isAudioNodeOutputConnection=o=>isAudioNode$1(o[0]),insertElementInSet=(o,e,s,a)=>{for(const c of o)if(s(c)){if(a)return!1;throw Error("The set contains at least one similar element.")}return o.add(e),!0},addActiveInputConnectionToAudioParam=(o,e,[s,a],c)=>{insertElementInSet(o,[e,s,a],d=>d[0]===e&&d[1]===s,c)},addPassiveInputConnectionToAudioParam=(o,[e,s,a],c)=>{const d=o.get(e);d===void 0?o.set(e,new Set([[s,a]])):insertElementInSet(d,[s,a],_=>_[0]===s,c)},isNativeAudioNodeFaker=o=>"inputs"in o,connectNativeAudioNodeToNativeAudioNode=(o,e,s,a)=>{if(isNativeAudioNodeFaker(e)){const c=e.inputs[a];return o.connect(c,s,0),[c,s,0]}return o.connect(e,s,a),[e,s,a]},deleteActiveInputConnection=(o,e,s)=>{for(const a of o)if(a[0]===e&&a[1]===s)return o.delete(a),a;return null},deleteActiveInputConnectionToAudioParam=(o,e,s)=>pickElementFromSet(o,a=>a[0]===e&&a[1]===s),deleteEventListenerOfAudioNode=(o,e)=>{if(!getEventListenersOfAudioNode(o).delete(e))throw new Error("Missing the expected event listener.")},deletePassiveInputConnectionToAudioParam=(o,e,s)=>{const a=getValueForKey(o,e),c=pickElementFromSet(a,d=>d[0]===s);return a.size===0&&o.delete(e),c},disconnectNativeAudioNodeFromNativeAudioNode=(o,e,s,a)=>{isNativeAudioNodeFaker(e)?o.disconnect(e.inputs[a],s,0):o.disconnect(e,s,a)},getNativeAudioNode=o=>getValueForKey(AUDIO_NODE_STORE,o),getNativeAudioParam=o=>getValueForKey(AUDIO_PARAM_STORE,o),isPartOfACycle=o=>CYCLE_COUNTERS.has(o),isPassiveAudioNode=o=>!ACTIVE_AUDIO_NODE_STORE.has(o),testAudioNodeDisconnectMethodSupport=(o,e)=>new Promise(s=>{if(e!==null)s(!0);else{const a=o.createScriptProcessor(256,1,1),c=o.createGain(),d=o.createBuffer(1,2,44100),_=d.getChannelData(0);_[0]=1,_[1]=1;const b=o.createBufferSource();b.buffer=d,b.loop=!0,b.connect(a).connect(o.destination),b.connect(c),b.disconnect(c),a.onaudioprocess=k=>{const $=k.inputBuffer.getChannelData(0);Array.prototype.some.call($,j=>j===1)?s(!0):s(!1),b.stop(),a.onaudioprocess=null,b.disconnect(a),a.disconnect(o.destination)},b.start()}}),visitEachAudioNodeOnce=(o,e)=>{const s=new Map;for(const a of o)for(const c of a){const d=s.get(c);s.set(c,d===void 0?1:d+1)}s.forEach((a,c)=>e(c,a))},isNativeAudioNode$1=o=>"context"in o,wrapAudioNodeDisconnectMethod=o=>{const e=new Map;o.connect=(s=>(a,c=0,d=0)=>{const _=isNativeAudioNode$1(a)?s(a,c,d):s(a,c),b=e.get(a);return b===void 0?e.set(a,[{input:d,output:c}]):b.every(k=>k.input!==d||k.output!==c)&&b.push({input:d,output:c}),_})(o.connect.bind(o)),o.disconnect=(s=>(a,c,d)=>{if(s.apply(o),a===void 0)e.clear();else if(typeof a=="number")for(const[_,b]of e){const k=b.filter($=>$.output!==a);k.length===0?e.delete(_):e.set(_,k)}else if(e.has(a))if(c===void 0)e.delete(a);else{const _=e.get(a);if(_!==void 0){const b=_.filter(k=>k.output!==c&&(k.input!==d||d===void 0));b.length===0?e.delete(a):e.set(a,b)}}for(const[_,b]of e)b.forEach(k=>{isNativeAudioNode$1(_)?o.connect(_,k.output,k.input):o.connect(_,k.output)})})(o.disconnect)},addConnectionToAudioParamOfAudioContext=(o,e,s,a)=>{const{activeInputs:c,passiveInputs:d}=getAudioParamConnections(e),{outputs:_}=getAudioNodeConnections(o),b=getEventListenersOfAudioNode(o),k=$=>{const j=getNativeAudioNode(o),_e=getNativeAudioParam(e);if($){const et=deletePassiveInputConnectionToAudioParam(d,o,s);addActiveInputConnectionToAudioParam(c,o,et,!1),!a&&!isPartOfACycle(o)&&j.connect(_e,s)}else{const et=deleteActiveInputConnectionToAudioParam(c,o,s);addPassiveInputConnectionToAudioParam(d,et,!1),!a&&!isPartOfACycle(o)&&j.disconnect(_e,s)}};return insertElementInSet(_,[e,s],$=>$[0]===e&&$[1]===s,!0)?(b.add(k),isActiveAudioNode(o)?addActiveInputConnectionToAudioParam(c,o,[s,k],!0):addPassiveInputConnectionToAudioParam(d,[o,s,k],!0),!0):!1},deleteInputConnectionOfAudioNode=(o,e,s,a)=>{const{activeInputs:c,passiveInputs:d}=getAudioNodeConnections(e),_=deleteActiveInputConnection(c[a],o,s);return _===null?[deletePassiveInputConnectionToAudioNode(d,o,s,a)[2],!1]:[_[2],!0]},deleteInputConnectionOfAudioParam=(o,e,s)=>{const{activeInputs:a,passiveInputs:c}=getAudioParamConnections(e),d=deleteActiveInputConnection(a,o,s);return d===null?[deletePassiveInputConnectionToAudioParam(c,o,s)[1],!1]:[d[2],!0]},deleteInputsOfAudioNode=(o,e,s,a,c)=>{const[d,_]=deleteInputConnectionOfAudioNode(o,s,a,c);if(d!==null&&(deleteEventListenerOfAudioNode(o,d),_&&!e&&!isPartOfACycle(o)&&disconnectNativeAudioNodeFromNativeAudioNode(getNativeAudioNode(o),getNativeAudioNode(s),a,c)),isActiveAudioNode(s)){const{activeInputs:b}=getAudioNodeConnections(s);setInternalStateToPassiveWhenNecessary(s,b)}},deleteInputsOfAudioParam=(o,e,s,a)=>{const[c,d]=deleteInputConnectionOfAudioParam(o,s,a);c!==null&&(deleteEventListenerOfAudioNode(o,c),d&&!e&&!isPartOfACycle(o)&&getNativeAudioNode(o).disconnect(getNativeAudioParam(s),a))},deleteAnyConnection=(o,e)=>{const s=getAudioNodeConnections(o),a=[];for(const c of s.outputs)isAudioNodeOutputConnection(c)?deleteInputsOfAudioNode(o,e,...c):deleteInputsOfAudioParam(o,e,...c),a.push(c[0]);return s.outputs.clear(),a},deleteConnectionAtOutput=(o,e,s)=>{const a=getAudioNodeConnections(o),c=[];for(const d of a.outputs)d[1]===s&&(isAudioNodeOutputConnection(d)?deleteInputsOfAudioNode(o,e,...d):deleteInputsOfAudioParam(o,e,...d),c.push(d[0]),a.outputs.delete(d));return c},deleteConnectionToDestination=(o,e,s,a,c)=>{const d=getAudioNodeConnections(o);return Array.from(d.outputs).filter(_=>_[0]===s&&(a===void 0||_[1]===a)&&(c===void 0||_[2]===c)).map(_=>(isAudioNodeOutputConnection(_)?deleteInputsOfAudioNode(o,e,..._):deleteInputsOfAudioParam(o,e,..._),d.outputs.delete(_),_[0]))},createAudioNodeConstructor=(o,e,s,a,c,d,_,b,k,$,j,_e,et,tt,nt,st)=>class extends ${constructor(it,at,ot,ht){super(ot),this._context=it,this._nativeAudioNode=ot;const ct=j(it);_e(ct)&&s(testAudioNodeDisconnectMethodSupport,()=>testAudioNodeDisconnectMethodSupport(ct,st))!==!0&&wrapAudioNodeDisconnectMethod(ot),AUDIO_NODE_STORE.set(this,ot),EVENT_LISTENERS.set(this,new Set),it.state!=="closed"&&at&&setInternalStateToActive(this),o(this,ht,ot)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(it){this._nativeAudioNode.channelCount=it}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(it){this._nativeAudioNode.channelCountMode=it}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(it){this._nativeAudioNode.channelInterpretation=it}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(it,at=0,ot=0){if(at<0||at>=this._nativeAudioNode.numberOfOutputs)throw c();const ht=j(this._context),ct=nt(ht);if(et(it)||tt(it))throw d();if(isAudioNode$1(it)){const pt=getNativeAudioNode(it);try{const gt=connectNativeAudioNodeToNativeAudioNode(this._nativeAudioNode,pt,at,ot),yt=isPassiveAudioNode(this);(ct||yt)&&this._nativeAudioNode.disconnect(...gt),this.context.state!=="closed"&&!yt&&isPassiveAudioNode(it)&&setInternalStateToActive(it)}catch(gt){throw gt.code===12?d():gt}if(e(this,it,at,ot,ct)){const gt=k([this],it);visitEachAudioNodeOnce(gt,a(ct))}return it}const ut=getNativeAudioParam(it);if(ut.name==="playbackRate"&&ut.maxValue===1024)throw _();try{this._nativeAudioNode.connect(ut,at),(ct||isPassiveAudioNode(this))&&this._nativeAudioNode.disconnect(ut,at)}catch(pt){throw pt.code===12?d():pt}if(addConnectionToAudioParamOfAudioContext(this,it,at,ct)){const pt=k([this],it);visitEachAudioNodeOnce(pt,a(ct))}}disconnect(it,at,ot){let ht;const ct=j(this._context),ut=nt(ct);if(it===void 0)ht=deleteAnyConnection(this,ut);else if(typeof it=="number"){if(it<0||it>=this.numberOfOutputs)throw c();ht=deleteConnectionAtOutput(this,ut,it)}else{if(at!==void 0&&(at<0||at>=this.numberOfOutputs)||isAudioNode$1(it)&&ot!==void 0&&(ot<0||ot>=it.numberOfInputs))throw c();if(ht=deleteConnectionToDestination(this,ut,it,at,ot),ht.length===0)throw d()}for(const lt of ht){const pt=k([this],lt);visitEachAudioNodeOnce(pt,b)}}},createAudioParamFactory=(o,e,s,a,c,d,_,b,k,$,j,_e,et)=>(tt,nt,st,rt=null,it=null)=>{const at=new AutomationEventList(st.defaultValue),ot=nt?a(at):null,ht={get defaultValue(){return st.defaultValue},get maxValue(){return rt===null?st.maxValue:rt},get minValue(){return it===null?st.minValue:it},get value(){return st.value},set value(ct){st.value=ct,ht.setValueAtTime(ct,tt.context.currentTime)},cancelAndHoldAtTime(ct){if(typeof st.cancelAndHoldAtTime=="function")ot===null&&at.flush(tt.context.currentTime),at.add(c(ct)),st.cancelAndHoldAtTime(ct);else{const ut=Array.from(at).pop();ot===null&&at.flush(tt.context.currentTime),at.add(c(ct));const lt=Array.from(at).pop();st.cancelScheduledValues(ct),ut!==lt&<!==void 0&&(lt.type==="exponentialRampToValue"?st.exponentialRampToValueAtTime(lt.value,lt.endTime):lt.type==="linearRampToValue"?st.linearRampToValueAtTime(lt.value,lt.endTime):lt.type==="setValue"?st.setValueAtTime(lt.value,lt.startTime):lt.type==="setValueCurve"&&st.setValueCurveAtTime(lt.values,lt.startTime,lt.duration))}return ht},cancelScheduledValues(ct){return ot===null&&at.flush(tt.context.currentTime),at.add(d(ct)),st.cancelScheduledValues(ct),ht},exponentialRampToValueAtTime(ct,ut){if(ct===0)throw new RangeError;if(!Number.isFinite(ut)||ut<0)throw new RangeError;return ot===null&&at.flush(tt.context.currentTime),at.add(_(ct,ut)),st.exponentialRampToValueAtTime(ct,ut),ht},linearRampToValueAtTime(ct,ut){return ot===null&&at.flush(tt.context.currentTime),at.add(b(ct,ut)),st.linearRampToValueAtTime(ct,ut),ht},setTargetAtTime(ct,ut,lt){return ot===null&&at.flush(tt.context.currentTime),at.add(k(ct,ut,lt)),st.setTargetAtTime(ct,ut,lt),ht},setValueAtTime(ct,ut){return ot===null&&at.flush(tt.context.currentTime),at.add($(ct,ut)),st.setValueAtTime(ct,ut),ht},setValueCurveAtTime(ct,ut,lt){const pt=ct instanceof Float32Array?ct:new Float32Array(ct);if(_e!==null&&_e.name==="webkitAudioContext"){const dt=ut+lt,gt=tt.context.sampleRate,yt=Math.ceil(ut*gt),ft=Math.floor(dt*gt),Et=ft-yt,mt=new Float32Array(Et);for(let At=0;At({replay(e){for(const s of o)if(s.type==="exponentialRampToValue"){const{endTime:a,value:c}=s;e.exponentialRampToValueAtTime(c,a)}else if(s.type==="linearRampToValue"){const{endTime:a,value:c}=s;e.linearRampToValueAtTime(c,a)}else if(s.type==="setTarget"){const{startTime:a,target:c,timeConstant:d}=s;e.setTargetAtTime(c,a,d)}else if(s.type==="setValue"){const{startTime:a,value:c}=s;e.setValueAtTime(c,a)}else if(s.type==="setValueCurve"){const{duration:a,startTime:c,values:d}=s;e.setValueCurveAtTime(d,c,a)}else throw new Error("Can't apply an unknown automation.")}});class ReadOnlyMap{constructor(e){this._map=new Map(e)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(e,s=null){return this._map.forEach((a,c)=>e.call(s,a,c,this))}get(e){return this._map.get(e)}has(e){return this._map.has(e)}keys(){return this._map.keys()}values(){return this._map.values()}}const DEFAULT_OPTIONS$g={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},createAudioWorkletNodeConstructor=(o,e,s,a,c,d,_,b,k,$,j,_e,et,tt)=>class extends e{constructor(st,rt,it){var at;const ot=b(st),ht=k(ot),ct=j(_t(_t({},DEFAULT_OPTIONS$g),it));et(ct);const ut=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(ot),lt=ut==null?void 0:ut.get(rt),pt=ht||ot.state!=="closed"?ot:(at=_(ot))!==null&&at!==void 0?at:ot,dt=c(pt,ht?null:st.baseLatency,$,rt,lt,ct),gt=ht?a(rt,ct,lt):null;super(st,!0,dt,gt);const yt=[];dt.parameters.forEach((Et,mt)=>{const St=s(this,ht,Et);yt.push([mt,St])}),this._nativeAudioWorkletNode=dt,this._onprocessorerror=null,this._parameters=new ReadOnlyMap(yt),ht&&o(ot,this);const{activeInputs:ft}=d(this);_e(dt,ft)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(st){const rt=typeof st=="function"?tt(this,st):null;this._nativeAudioWorkletNode.onprocessorerror=rt;const it=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=it!==null&&it===rt?st:it}get parameters(){return this._parameters===null?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}};function copyFromChannel(o,e,s,a,c){if(typeof o.copyFromChannel=="function")e[s].byteLength===0&&(e[s]=new Float32Array(128)),o.copyFromChannel(e[s],a,c);else{const d=o.getChannelData(a);if(e[s].byteLength===0)e[s]=d.slice(c,c+128);else{const _=new Float32Array(d.buffer,c*Float32Array.BYTES_PER_ELEMENT,128);e[s].set(_)}}}const copyToChannel=(o,e,s,a,c)=>{typeof o.copyToChannel=="function"?e[s].byteLength!==0&&o.copyToChannel(e[s],a,c):e[s].byteLength!==0&&o.getChannelData(a).set(e[s],c)},createNestedArrays=(o,e)=>{const s=[];for(let a=0;a{const s=getValueForKey(NODE_TO_PROCESSOR_MAPS,o),a=getNativeAudioNode(e);return getValueForKey(s,a)},processBuffer=async(o,e,s,a,c,d,_)=>{const b=e===null?Math.ceil(o.context.length/128)*128:e.length,k=a.channelCount*a.numberOfInputs,$=c.reduce((rt,it)=>rt+it,0),j=$===0?null:s.createBuffer($,b,s.sampleRate);if(d===void 0)throw new Error("Missing the processor constructor.");const _e=getAudioNodeConnections(o),et=await getAudioWorkletProcessor(s,o),tt=createNestedArrays(a.numberOfInputs,a.channelCount),nt=createNestedArrays(a.numberOfOutputs,c),st=Array.from(o.parameters.keys()).reduce((rt,it)=>wt(_t({},rt),{[it]:new Float32Array(128)}),{});for(let rt=0;rt0&&e!==null)for(let it=0;it{copyFromChannel(e,st,it,k+at,rt)});for(let it=0;it_e.activeInputs[ht].size===0?[]:ot),at=_(rt/s.sampleRate,s.sampleRate,()=>et.process(it,nt,st));if(j!==null)for(let ot=0,ht=0;ot(rt,it,at)=>{const ot=new WeakMap;let ht=null;const ct=async(ut,lt)=>{let pt=j(ut),dt=null;const gt=isOwnedByContext(pt,lt),yt=Array.isArray(it.outputChannelCount)?it.outputChannelCount:Array.from(it.outputChannelCount);if(_e===null){const ft=yt.reduce((At,Ot)=>At+Ot,0),Et=c(lt,{channelCount:Math.max(1,ft),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,ft)}),mt=[];for(let At=0;At{const vt=new et(Dt,Math.ceil(ut.context.length/128)*128,lt.sampleRate),bt=[],xt=[];for(let It=0;It{const Ft=d(vt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:It.value});return await tt(vt,It,Ft.offset),Ft})),Mt=a(vt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,Ot+Ct)});for(let It=0;Itnt(ut,vt,It))),st(vt)})(),lt,it,yt,at,$)}const ft=await ht,Et=s(lt,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[mt,St,At]=dt;ft!==null&&(Et.buffer=ft,Et.start(0)),Et.connect(mt);for(let Ot=0,Ct=0;Otclass extends nt{constructor(ct,ut){super(ct,ut),this._nativeContext=ct,this._audioWorklet=o===void 0?void 0:{addModule:(lt,pt)=>o(this,lt,pt)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new e(this)}createBiquadFilter(){return new c(this)}createBuffer(ct,ut,lt){return new s({length:ut,numberOfChannels:ct,sampleRate:lt})}createBufferSource(){return new a(this)}createChannelMerger(ct=6){return new d(this,{numberOfInputs:ct})}createChannelSplitter(ct=6){return new _(this,{numberOfOutputs:ct})}createConstantSource(){return new b(this)}createConvolver(){return new k(this)}createDelay(ct=1){return new j(this,{maxDelayTime:ct})}createDynamicsCompressor(){return new _e(this)}createGain(){return new et(this)}createIIRFilter(ct,ut){return new tt(this,{feedback:ut,feedforward:ct})}createOscillator(){return new st(this)}createPanner(){return new rt(this)}createPeriodicWave(ct,ut,lt={disableNormalization:!1}){return new it(this,wt(_t({},lt),{imag:ut,real:ct}))}createStereoPanner(){return new at(this)}createWaveShaper(){return new ot(this)}decodeAudioData(ct,ut,lt){return $(this._nativeContext,ct).then(pt=>(typeof ut=="function"&&ut(pt),pt),pt=>{throw typeof lt=="function"&<(pt),pt})}},DEFAULT_OPTIONS$f={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},createBiquadFilterNodeConstructor=(o,e,s,a,c,d,_,b)=>class extends o{constructor($,j){const _e=d($),et=_t(_t({},DEFAULT_OPTIONS$f),j),tt=c(_e,et),nt=_(_e),st=nt?s():null;super($,!1,tt,st),this._Q=e(this,nt,tt.Q,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._detune=e(this,nt,tt.detune,1200*Math.log2(MOST_POSITIVE_SINGLE_FLOAT),-1200*Math.log2(MOST_POSITIVE_SINGLE_FLOAT)),this._frequency=e(this,nt,tt.frequency,$.sampleRate/2,0),this._gain=e(this,nt,tt.gain,40*Math.log10(MOST_POSITIVE_SINGLE_FLOAT),MOST_NEGATIVE_SINGLE_FLOAT),this._nativeBiquadFilterNode=tt,b(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type($){this._nativeBiquadFilterNode.type=$}getFrequencyResponse($,j,_e){try{this._nativeBiquadFilterNode.getFrequencyResponse($,j,_e)}catch(et){throw et.code===11?a():et}if($.length!==j.length||j.length!==_e.length)throw a()}},createBiquadFilterNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={Q:$.Q.value,channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,detune:$.detune.value,frequency:$.frequency.value,gain:$.gain.value,type:$.type};$=e(k,_e)}return d.set(k,$),j?(await o(k,b.Q,$.Q),await o(k,b.detune,$.detune),await o(k,b.frequency,$.frequency),await o(k,b.gain,$.gain)):(await a(k,b.Q,$.Q),await a(k,b.detune,$.detune),await a(k,b.frequency,$.frequency),await a(k,b.gain,$.gain)),await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createCacheTestResult=(o,e)=>(s,a)=>{const c=e.get(s);if(c!==void 0)return c;const d=o.get(s);if(d!==void 0)return d;try{const _=a();return _ instanceof Promise?(o.set(s,_),_.catch(()=>!1).then(b=>(o.delete(s),e.set(s,b),b))):(e.set(s,_),_)}catch{return e.set(s,!1),!1}},DEFAULT_OPTIONS$e={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},createChannelMergerNodeConstructor=(o,e,s,a,c)=>class extends o{constructor(_,b){const k=a(_),$=_t(_t({},DEFAULT_OPTIONS$e),b),j=s(k,$),_e=c(k)?e():null;super(_,!1,j,_e)}},createChannelMergerNodeRendererFactory=(o,e,s)=>()=>{const a=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,numberOfInputs:b.numberOfInputs};b=o(_,$)}return a.set(_,b),await s(d,_,b),b};return{render(d,_){const b=a.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},DEFAULT_OPTIONS$d={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},createChannelSplitterNodeConstructor=(o,e,s,a,c,d)=>class extends o{constructor(b,k){const $=a(b),j=d(_t(_t({},DEFAULT_OPTIONS$d),k)),_e=s($,j),et=c($)?e():null;super(b,!1,_e,et)}},createChannelSplitterNodeRendererFactory=(o,e,s)=>()=>{const a=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,numberOfOutputs:b.numberOfOutputs};b=o(_,$)}return a.set(_,b),await s(d,_,b),b};return{render(d,_){const b=a.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},createConnectAudioParam=o=>(e,s,a)=>o(s,e,a),createConnectMultipleOutputs=o=>(e,s,a=0,c=0)=>{const d=e[a];if(d===void 0)throw o();return isNativeAudioNode$1(s)?d.connect(s,0,c):d.connect(s,0)},createConnectedNativeAudioBufferSourceNodeFactory=o=>(e,s)=>{const a=o(e,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),c=e.createBuffer(1,2,44100);return a.buffer=c,a.loop=!0,a.connect(s),a.start(),()=>{a.stop(),a.disconnect(s)}},DEFAULT_OPTIONS$c={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},createConstantSourceNodeConstructor=(o,e,s,a,c,d,_)=>class extends o{constructor(k,$){const j=c(k),_e=_t(_t({},DEFAULT_OPTIONS$c),$),et=a(j,_e),tt=d(j),nt=tt?s():null;super(k,!1,et,nt),this._constantSourceNodeRenderer=nt,this._nativeConstantSourceNode=et,this._offset=e(this,tt,et.offset,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(k){const $=typeof k=="function"?_(this,k):null;this._nativeConstantSourceNode.onended=$;const j=this._nativeConstantSourceNode.onended;this._onended=j!==null&&j===$?k:j}start(k=0){if(this._nativeConstantSourceNode.start(k),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=k),this.context.state!=="closed"){setInternalStateToActive(this);const $=()=>{this._nativeConstantSourceNode.removeEventListener("ended",$),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeConstantSourceNode.addEventListener("ended",$)}}stop(k=0){this._nativeConstantSourceNode.stop(k),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=k)}},createConstantSourceNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap;let _=null,b=null;const k=async($,j)=>{let _e=s($);const et=isOwnedByContext(_e,j);if(!et){const tt={channelCount:_e.channelCount,channelCountMode:_e.channelCountMode,channelInterpretation:_e.channelInterpretation,offset:_e.offset.value};_e=e(j,tt),_!==null&&_e.start(_),b!==null&&_e.stop(b)}return d.set(j,_e),et?await o(j,$.offset,_e.offset):await a(j,$.offset,_e.offset),await c($,j,_e),_e};return{set start($){_=$},set stop($){b=$},render($,j){const _e=d.get(j);return _e!==void 0?Promise.resolve(_e):k($,j)}}},createConvertNumberToUnsignedLong=o=>e=>(o[0]=e,o[0]),DEFAULT_OPTIONS$b={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},createConvolverNodeConstructor=(o,e,s,a,c,d)=>class extends o{constructor(b,k){const $=a(b),j=_t(_t({},DEFAULT_OPTIONS$b),k),_e=s($,j),tt=c($)?e():null;super(b,!1,_e,tt),this._isBufferNullified=!1,this._nativeConvolverNode=_e,j.buffer!==null&&d(this,j.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(b){if(this._nativeConvolverNode.buffer=b,b===null&&this._nativeConvolverNode.buffer!==null){const k=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=k.createBuffer(1,1,44100),this._isBufferNullified=!0,d(this,0)}else this._isBufferNullified=!1,d(this,this._nativeConvolverNode.buffer===null?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(b){this._nativeConvolverNode.normalize=b}},createConvolverNodeRendererFactory=(o,e,s)=>()=>{const a=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={buffer:b.buffer,channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,disableNormalization:!b.normalize};b=o(_,$)}return a.set(_,b),isNativeAudioNodeFaker(b)?await s(d,_,b.inputs[0]):await s(d,_,b),b};return{render(d,_){const b=a.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},createCreateNativeOfflineAudioContext=(o,e)=>(s,a,c)=>{if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new e(s,a,c)}catch(d){throw d.name==="SyntaxError"?o():d}},createDataCloneError=()=>new DOMException("","DataCloneError"),detachArrayBuffer=o=>{const{port1:e,port2:s}=new MessageChannel;return new Promise(a=>{const c=()=>{s.onmessage=null,e.close(),s.close(),a()};s.onmessage=()=>c();try{e.postMessage(o,[o])}finally{c()}})},createDecodeAudioData=(o,e,s,a,c,d,_,b,k,$,j)=>(_e,et)=>{const tt=_(_e)?_e:d(_e);if(c.has(et)){const nt=s();return Promise.reject(nt)}try{c.add(et)}catch{}return e(k,()=>k(tt))?tt.decodeAudioData(et).then(nt=>(detachArrayBuffer(et).catch(()=>{}),e(b,()=>b(nt))||j(nt),o.add(nt),nt)):new Promise((nt,st)=>{const rt=async()=>{try{await detachArrayBuffer(et)}catch{}},it=at=>{st(at),rt()};try{tt.decodeAudioData(et,at=>{typeof at.copyFromChannel!="function"&&($(at),wrapAudioBufferGetChannelDataMethod(at)),o.add(at),rt().then(()=>nt(at))},at=>{it(at===null?a():at)})}catch(at){it(at)}})},createDecrementCycleCounter=(o,e,s,a,c,d,_,b)=>(k,$)=>{const j=e.get(k);if(j===void 0)throw new Error("Missing the expected cycle count.");const _e=d(k.context),et=b(_e);if(j===$){if(e.delete(k),!et&&_(k)){const tt=a(k),{outputs:nt}=s(k);for(const st of nt)if(isAudioNodeOutputConnection(st)){const rt=a(st[0]);o(tt,rt,st[1],st[2])}else{const rt=c(st[0]);tt.connect(rt,st[1])}}}else e.set(k,j-$)},DEFAULT_OPTIONS$a={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},createDelayNodeConstructor=(o,e,s,a,c,d,_)=>class extends o{constructor(k,$){const j=c(k),_e=_t(_t({},DEFAULT_OPTIONS$a),$),et=a(j,_e),tt=d(j),nt=tt?s(_e.maxDelayTime):null;super(k,!1,et,nt),this._delayTime=e(this,tt,et.delayTime),_(this,_e.maxDelayTime)}get delayTime(){return this._delayTime}},createDelayNodeRendererFactory=(o,e,s,a,c)=>d=>{const _=new WeakMap,b=async(k,$)=>{let j=s(k);const _e=isOwnedByContext(j,$);if(!_e){const et={channelCount:j.channelCount,channelCountMode:j.channelCountMode,channelInterpretation:j.channelInterpretation,delayTime:j.delayTime.value,maxDelayTime:d};j=e($,et)}return _.set($,j),_e?await o($,k.delayTime,j.delayTime):await a($,k.delayTime,j.delayTime),await c(k,$,j),j};return{render(k,$){const j=_.get($);return j!==void 0?Promise.resolve(j):b(k,$)}}},createDeleteActiveInputConnectionToAudioNode=o=>(e,s,a,c)=>o(e[c],d=>d[0]===s&&d[1]===a),createDeleteUnrenderedAudioWorkletNode=o=>(e,s)=>{o(e).delete(s)},isDelayNode=o=>"delayTime"in o,createDetectCycles=(o,e,s)=>function a(c,d){const _=isAudioNode$1(d)?d:s(o,d);if(isDelayNode(_))return[];if(c[0]===_)return[c];if(c.includes(_))return[];const{outputs:b}=e(_);return Array.from(b).map(k=>a([...c,_],k[0])).reduce((k,$)=>k.concat($),[])},getOutputAudioNodeAtIndex=(o,e,s)=>{const a=e[s];if(a===void 0)throw o();return a},createDisconnectMultipleOutputs=o=>(e,s=void 0,a=void 0,c=0)=>s===void 0?e.forEach(d=>d.disconnect()):typeof s=="number"?getOutputAudioNodeAtIndex(o,e,s).disconnect():isNativeAudioNode$1(s)?a===void 0?e.forEach(d=>d.disconnect(s)):c===void 0?getOutputAudioNodeAtIndex(o,e,a).disconnect(s,0):getOutputAudioNodeAtIndex(o,e,a).disconnect(s,0,c):a===void 0?e.forEach(d=>d.disconnect(s)):getOutputAudioNodeAtIndex(o,e,a).disconnect(s,0),DEFAULT_OPTIONS$9={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},createDynamicsCompressorNodeConstructor=(o,e,s,a,c,d,_,b)=>class extends o{constructor($,j){const _e=d($),et=_t(_t({},DEFAULT_OPTIONS$9),j),tt=a(_e,et),nt=_(_e),st=nt?s():null;super($,!1,tt,st),this._attack=e(this,nt,tt.attack),this._knee=e(this,nt,tt.knee),this._nativeDynamicsCompressorNode=tt,this._ratio=e(this,nt,tt.ratio),this._release=e(this,nt,tt.release),this._threshold=e(this,nt,tt.threshold),b(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount($){const j=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=$,$>2)throw this._nativeDynamicsCompressorNode.channelCount=j,c()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode($){const j=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=$,$==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=j,c()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return typeof this._nativeDynamicsCompressorNode.reduction.value=="number"?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}},createDynamicsCompressorNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={attack:$.attack.value,channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,knee:$.knee.value,ratio:$.ratio.value,release:$.release.value,threshold:$.threshold.value};$=e(k,_e)}return d.set(k,$),j?(await o(k,b.attack,$.attack),await o(k,b.knee,$.knee),await o(k,b.ratio,$.ratio),await o(k,b.release,$.release),await o(k,b.threshold,$.threshold)):(await a(k,b.attack,$.attack),await a(k,b.knee,$.knee),await a(k,b.ratio,$.ratio),await a(k,b.release,$.release),await a(k,b.threshold,$.threshold)),await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createEncodingError=()=>new DOMException("","EncodingError"),createEvaluateSource=o=>e=>new Promise((s,a)=>{if(o===null){a(new SyntaxError);return}const c=o.document.head;if(c===null)a(new SyntaxError);else{const d=o.document.createElement("script"),_=new Blob([e],{type:"application/javascript"}),b=URL.createObjectURL(_),k=o.onerror,$=()=>{o.onerror=k,URL.revokeObjectURL(b)};o.onerror=(j,_e,et,tt,nt)=>{if(_e===b||_e===o.location.href&&et===1&&tt===1)return $(),a(nt),!1;if(k!==null)return k(j,_e,et,tt,nt)},d.onerror=()=>{$(),a(new SyntaxError)},d.onload=()=>{$(),s()},d.src=b,d.type="module",c.appendChild(d)}}),createEventTargetConstructor=o=>class{constructor(s){this._nativeEventTarget=s,this._listeners=new WeakMap}addEventListener(s,a,c){if(a!==null){let d=this._listeners.get(a);d===void 0&&(d=o(this,a),typeof a=="function"&&this._listeners.set(a,d)),this._nativeEventTarget.addEventListener(s,d,c)}}dispatchEvent(s){return this._nativeEventTarget.dispatchEvent(s)}removeEventListener(s,a,c){const d=a===null?void 0:this._listeners.get(a);this._nativeEventTarget.removeEventListener(s,d===void 0?null:d,c)}},createExposeCurrentFrameAndCurrentTime=o=>(e,s,a)=>{Object.defineProperties(o,{currentFrame:{configurable:!0,get(){return Math.round(e*s)}},currentTime:{configurable:!0,get(){return e}}});try{return a()}finally{o!==null&&(delete o.currentFrame,delete o.currentTime)}},createFetchSource=o=>async e=>{try{const s=await fetch(e);if(s.ok)return[await s.text(),s.url]}catch{}throw o()},DEFAULT_OPTIONS$8={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},createGainNodeConstructor=(o,e,s,a,c,d)=>class extends o{constructor(b,k){const $=c(b),j=_t(_t({},DEFAULT_OPTIONS$8),k),_e=a($,j),et=d($),tt=et?s():null;super(b,!1,_e,tt),this._gain=e(this,et,_e.gain,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT)}get gain(){return this._gain}},createGainNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,gain:$.gain.value};$=e(k,_e)}return d.set(k,$),j?await o(k,b.gain,$.gain):await a(k,b.gain,$.gain),await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createGetActiveAudioWorkletNodeInputs=(o,e)=>s=>e(o,s),createGetAudioNodeRenderer=o=>e=>{const s=o(e);if(s.renderer===null)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return s.renderer},createGetAudioNodeTailTime=o=>e=>{var s;return(s=o.get(e))!==null&&s!==void 0?s:0},createGetAudioParamRenderer=o=>e=>{const s=o(e);if(s.renderer===null)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return s.renderer},createGetBackupOfflineAudioContext=o=>e=>o.get(e),createInvalidStateError=()=>new DOMException("","InvalidStateError"),createGetNativeContext=o=>e=>{const s=o.get(e);if(s===void 0)throw createInvalidStateError();return s},createGetOrCreateBackupOfflineAudioContext=(o,e)=>s=>{let a=o.get(s);if(a!==void 0)return a;if(e===null)throw new Error("Missing the native OfflineAudioContext constructor.");return a=new e(1,1,44100),o.set(s,a),a},createGetUnrenderedAudioWorkletNodes=o=>e=>{const s=o.get(e);if(s===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return s},createInvalidAccessError=()=>new DOMException("","InvalidAccessError"),wrapIIRFilterNodeGetFrequencyResponseMethod=o=>{o.getFrequencyResponse=(e=>(s,a,c)=>{if(s.length!==a.length||a.length!==c.length)throw createInvalidAccessError();return e.call(o,s,a,c)})(o.getFrequencyResponse)},DEFAULT_OPTIONS$7={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},createIIRFilterNodeConstructor=(o,e,s,a,c,d)=>class extends o{constructor(b,k){const $=a(b),j=c($),_e=_t(_t({},DEFAULT_OPTIONS$7),k),et=e($,j?null:b.baseLatency,_e),tt=j?s(_e.feedback,_e.feedforward):null;super(b,!1,et,tt),wrapIIRFilterNodeGetFrequencyResponseMethod(et),this._nativeIIRFilterNode=et,d(this,1)}getFrequencyResponse(b,k,$){return this._nativeIIRFilterNode.getFrequencyResponse(b,k,$)}},filterBuffer=(o,e,s,a,c,d,_,b,k,$,j)=>{const _e=$.length;let et=b;for(let tt=0;tt<_e;tt+=1){let nt=s[0]*$[tt];for(let st=1;st{const c=s instanceof Float64Array?s:new Float64Array(s),d=a instanceof Float64Array?a:new Float64Array(a),_=c.length,b=d.length,k=Math.min(_,b);if(c[0]!==1){for(let nt=0;nt<_;nt+=1)d[nt]/=c[0];for(let nt=1;nt(d,_)=>{const b=new WeakMap;let k=null;const $=async(j,_e)=>{let et=null,tt=e(j);const nt=isOwnedByContext(tt,_e);if(_e.createIIRFilter===void 0?et=o(_e,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):nt||(tt=_e.createIIRFilter(_,d)),b.set(_e,et===null?tt:et),et!==null){if(k===null){if(s===null)throw new Error("Missing the native OfflineAudioContext constructor.");const rt=new s(j.context.destination.channelCount,j.context.length,_e.sampleRate);k=(async()=>{await a(j,rt,rt.destination);const it=await c(rt);return filterFullBuffer(it,_e,d,_)})()}const st=await k;return et.buffer=st,et.start(0),et}return await a(j,_e,tt),tt};return{render(j,_e){const et=b.get(_e);return et!==void 0?Promise.resolve(et):$(j,_e)}}},createIncrementCycleCounterFactory=(o,e,s,a,c,d)=>_=>(b,k)=>{const $=o.get(b);if($===void 0){if(!_&&d(b)){const j=a(b),{outputs:_e}=s(b);for(const et of _e)if(isAudioNodeOutputConnection(et)){const tt=a(et[0]);e(j,tt,et[1],et[2])}else{const tt=c(et[0]);j.disconnect(tt,et[1])}}o.set(b,k)}else o.set(b,$+k)},createIsAnyAudioContext=(o,e)=>s=>{const a=o.get(s);return e(a)||e(s)},createIsAnyAudioNode=(o,e)=>s=>o.has(s)||e(s),createIsAnyAudioParam=(o,e)=>s=>o.has(s)||e(s),createIsAnyOfflineAudioContext=(o,e)=>s=>{const a=o.get(s);return e(a)||e(s)},createIsNativeAudioContext=o=>e=>o!==null&&e instanceof o,createIsNativeAudioNode=o=>e=>o!==null&&typeof o.AudioNode=="function"&&e instanceof o.AudioNode,createIsNativeAudioParam=o=>e=>o!==null&&typeof o.AudioParam=="function"&&e instanceof o.AudioParam,createIsNativeContext=(o,e)=>s=>o(s)||e(s),createIsNativeOfflineAudioContext=o=>e=>o!==null&&e instanceof o,createIsSecureContext=o=>o!==null&&o.isSecureContext,createIsSupportedPromise=async(o,e,s,a,c,d,_,b,k,$,j,_e,et,tt,nt,st)=>o(e,e)&&o(s,s)&&o(c,c)&&o(d,d)&&o(b,b)&&o(k,k)&&o($,$)&&o(j,j)&&o(_e,_e)&&o(et,et)&&o(tt,tt)?(await Promise.all([o(a,a),o(_,_),o(nt,nt),o(st,st)])).every(it=>it):!1,createMediaElementAudioSourceNodeConstructor=(o,e,s,a)=>class extends o{constructor(d,_){const b=s(d),k=e(b,_);if(a(b))throw TypeError();super(d,!0,k,null),this._nativeMediaElementAudioSourceNode=k}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}},DEFAULT_OPTIONS$6={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},createMediaStreamAudioDestinationNodeConstructor=(o,e,s,a)=>class extends o{constructor(d,_){const b=s(d);if(a(b))throw new TypeError;const k=_t(_t({},DEFAULT_OPTIONS$6),_),$=e(b,k);super(d,!1,$,null),this._nativeMediaStreamAudioDestinationNode=$}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}},createMediaStreamAudioSourceNodeConstructor=(o,e,s,a)=>class extends o{constructor(d,_){const b=s(d),k=e(b,_);if(a(b))throw new TypeError;super(d,!0,k,null),this._nativeMediaStreamAudioSourceNode=k}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}},createMediaStreamTrackAudioSourceNodeConstructor=(o,e,s)=>class extends o{constructor(c,d){const _=s(c),b=e(_,d);super(c,!0,b,null)}},createMinimalBaseAudioContextConstructor=(o,e,s,a,c,d)=>class extends s{constructor(b,k){super(b),this._nativeContext=b,CONTEXT_STORE.set(this,b),a(b)&&c.set(b,new Set),this._destination=new o(this,k),this._listener=e(this,b),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(b){const k=typeof b=="function"?d(this,b):null;this._nativeContext.onstatechange=k;const $=this._nativeContext.onstatechange;this._onstatechange=$!==null&&$===k?b:$}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}},testPromiseSupport=o=>{const e=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{const s=o.decodeAudioData(e.buffer,()=>{});return s===void 0?!1:(s.catch(()=>{}),!0)}catch{}return!1},createMonitorConnections=(o,e)=>(s,a,c)=>{const d=new Set;return s.connect=(_=>(b,k=0,$=0)=>{const j=d.size===0;if(e(b))return _.call(s,b,k,$),o(d,[b,k,$],_e=>_e[0]===b&&_e[1]===k&&_e[2]===$,!0),j&&a(),b;_.call(s,b,k),o(d,[b,k],_e=>_e[0]===b&&_e[1]===k,!0),j&&a()})(s.connect),s.disconnect=(_=>(b,k,$)=>{const j=d.size>0;if(b===void 0)_.apply(s),d.clear();else if(typeof b=="number"){_.call(s,b);for(const et of d)et[1]===b&&d.delete(et)}else{e(b)?_.call(s,b,k,$):_.call(s,b,k);for(const et of d)et[0]===b&&(k===void 0||et[1]===k)&&($===void 0||et[2]===$)&&d.delete(et)}const _e=d.size===0;j&&_e&&c()})(s.disconnect),s},assignNativeAudioNodeOption=(o,e,s)=>{const a=e[s];a!==void 0&&a!==o[s]&&(o[s]=a)},assignNativeAudioNodeOptions=(o,e)=>{assignNativeAudioNodeOption(o,e,"channelCount"),assignNativeAudioNodeOption(o,e,"channelCountMode"),assignNativeAudioNodeOption(o,e,"channelInterpretation")},testAnalyserNodeGetFloatTimeDomainDataMethodSupport=o=>typeof o.getFloatTimeDomainData=="function",wrapAnalyserNodeGetFloatTimeDomainDataMethod=o=>{o.getFloatTimeDomainData=e=>{const s=new Uint8Array(e.length);o.getByteTimeDomainData(s);const a=Math.max(s.length,o.fftSize);for(let c=0;c(s,a)=>{const c=s.createAnalyser();if(assignNativeAudioNodeOptions(c,a),!(a.maxDecibels>a.minDecibels))throw e();return assignNativeAudioNodeOption(c,a,"fftSize"),assignNativeAudioNodeOption(c,a,"maxDecibels"),assignNativeAudioNodeOption(c,a,"minDecibels"),assignNativeAudioNodeOption(c,a,"smoothingTimeConstant"),o(testAnalyserNodeGetFloatTimeDomainDataMethodSupport,()=>testAnalyserNodeGetFloatTimeDomainDataMethodSupport(c))||wrapAnalyserNodeGetFloatTimeDomainDataMethod(c),c},createNativeAudioBufferConstructor=o=>o===null?null:o.hasOwnProperty("AudioBuffer")?o.AudioBuffer:null,assignNativeAudioNodeAudioParamValue=(o,e,s)=>{const a=e[s];a!==void 0&&a!==o[s].value&&(o[s].value=a)},wrapAudioBufferSourceNodeStartMethodConsecutiveCalls=o=>{o.start=(e=>{let s=!1;return(a=0,c=0,d)=>{if(s)throw createInvalidStateError();e.call(o,a,c,d),s=!0}})(o.start)},wrapAudioScheduledSourceNodeStartMethodNegativeParameters=o=>{o.start=(e=>(s=0,a=0,c)=>{if(typeof c=="number"&&c<0||a<0||s<0)throw new RangeError("The parameters can't be negative.");e.call(o,s,a,c)})(o.start)},wrapAudioScheduledSourceNodeStopMethodNegativeParameters=o=>{o.stop=(e=>(s=0)=>{if(s<0)throw new RangeError("The parameter can't be negative.");e.call(o,s)})(o.stop)},createNativeAudioBufferSourceNodeFactory=(o,e,s,a,c,d,_,b,k,$,j)=>(_e,et)=>{const tt=_e.createBufferSource();return assignNativeAudioNodeOptions(tt,et),assignNativeAudioNodeAudioParamValue(tt,et,"playbackRate"),assignNativeAudioNodeOption(tt,et,"buffer"),assignNativeAudioNodeOption(tt,et,"loop"),assignNativeAudioNodeOption(tt,et,"loopEnd"),assignNativeAudioNodeOption(tt,et,"loopStart"),e(s,()=>s(_e))||wrapAudioBufferSourceNodeStartMethodConsecutiveCalls(tt),e(a,()=>a(_e))||k(tt),e(c,()=>c(_e))||$(tt,_e),e(d,()=>d(_e))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(tt),e(_,()=>_(_e))||j(tt,_e),e(b,()=>b(_e))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(tt),o(_e,tt),tt},createNativeAudioContextConstructor=o=>o===null?null:o.hasOwnProperty("AudioContext")?o.AudioContext:o.hasOwnProperty("webkitAudioContext")?o.webkitAudioContext:null,createNativeAudioDestinationNodeFactory=(o,e)=>(s,a,c)=>{const d=s.destination;if(d.channelCount!==a)try{d.channelCount=a}catch{}c&&d.channelCountMode!=="explicit"&&(d.channelCountMode="explicit"),d.maxChannelCount===0&&Object.defineProperty(d,"maxChannelCount",{value:a});const _=o(s,{channelCount:a,channelCountMode:d.channelCountMode,channelInterpretation:d.channelInterpretation,gain:1});return e(_,"channelCount",b=>()=>b.call(_),b=>k=>{b.call(_,k);try{d.channelCount=k}catch($){if(k>d.maxChannelCount)throw $}}),e(_,"channelCountMode",b=>()=>b.call(_),b=>k=>{b.call(_,k),d.channelCountMode=k}),e(_,"channelInterpretation",b=>()=>b.call(_),b=>k=>{b.call(_,k),d.channelInterpretation=k}),Object.defineProperty(_,"maxChannelCount",{get:()=>d.maxChannelCount}),_.connect(d),_},createNativeAudioWorkletNodeConstructor=o=>o===null?null:o.hasOwnProperty("AudioWorkletNode")?o.AudioWorkletNode:null,testClonabilityOfAudioWorkletNodeOptions=o=>{const{port1:e}=new MessageChannel;try{e.postMessage(o)}finally{e.close()}},createNativeAudioWorkletNodeFactory=(o,e,s,a,c)=>(d,_,b,k,$,j)=>{if(b!==null)try{const _e=new b(d,k,j),et=new Map;let tt=null;if(Object.defineProperties(_e,{channelCount:{get:()=>j.channelCount,set:()=>{throw o()}},channelCountMode:{get:()=>"explicit",set:()=>{throw o()}},onprocessorerror:{get:()=>tt,set:nt=>{typeof tt=="function"&&_e.removeEventListener("processorerror",tt),tt=typeof nt=="function"?nt:null,typeof tt=="function"&&_e.addEventListener("processorerror",tt)}}}),_e.addEventListener=(nt=>(...st)=>{if(st[0]==="processorerror"){const rt=typeof st[1]=="function"?st[1]:typeof st[1]=="object"&&st[1]!==null&&typeof st[1].handleEvent=="function"?st[1].handleEvent:null;if(rt!==null){const it=et.get(st[1]);it!==void 0?st[1]=it:(st[1]=at=>{at.type==="error"?(Object.defineProperties(at,{type:{value:"processorerror"}}),rt(at)):rt(new ErrorEvent(st[0],_t({},at)))},et.set(rt,st[1]))}}return nt.call(_e,"error",st[1],st[2]),nt.call(_e,...st)})(_e.addEventListener),_e.removeEventListener=(nt=>(...st)=>{if(st[0]==="processorerror"){const rt=et.get(st[1]);rt!==void 0&&(et.delete(st[1]),st[1]=rt)}return nt.call(_e,"error",st[1],st[2]),nt.call(_e,st[0],st[1],st[2])})(_e.removeEventListener),j.numberOfOutputs!==0){const nt=s(d,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return _e.connect(nt).connect(d.destination),c(_e,()=>nt.disconnect(),()=>nt.connect(d.destination))}return _e}catch(_e){throw _e.code===11?a():_e}if($===void 0)throw a();return testClonabilityOfAudioWorkletNodeOptions(j),e(d,_,$,j)},computeBufferSize=(o,e)=>o===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(o*e))))),cloneAudioWorkletNodeOptions=o=>new Promise((e,s)=>{const{port1:a,port2:c}=new MessageChannel;a.onmessage=({data:d})=>{a.close(),c.close(),e(d)},a.onmessageerror=({data:d})=>{a.close(),c.close(),s(d)},c.postMessage(o)}),createAudioWorkletProcessorPromise=async(o,e)=>{const s=await cloneAudioWorkletNodeOptions(e);return new o(s)},createAudioWorkletProcessor=(o,e,s,a)=>{let c=NODE_TO_PROCESSOR_MAPS.get(o);c===void 0&&(c=new WeakMap,NODE_TO_PROCESSOR_MAPS.set(o,c));const d=createAudioWorkletProcessorPromise(s,a);return c.set(e,d),d},createNativeAudioWorkletNodeFakerFactory=(o,e,s,a,c,d,_,b,k,$,j,_e,et)=>(tt,nt,st,rt)=>{if(rt.numberOfInputs===0&&rt.numberOfOutputs===0)throw k();const it=Array.isArray(rt.outputChannelCount)?rt.outputChannelCount:Array.from(rt.outputChannelCount);if(it.some(kt=>kt<1))throw k();if(it.length!==rt.numberOfOutputs)throw e();if(rt.channelCountMode!=="explicit")throw k();const at=rt.channelCount*rt.numberOfInputs,ot=it.reduce((kt,Bt)=>kt+Bt,0),ht=st.parameterDescriptors===void 0?0:st.parameterDescriptors.length;if(at+ht>6||ot>6)throw k();const ct=new MessageChannel,ut=[],lt=[];for(let kt=0;ktkt===void 0?0:kt},maxValue:{get:()=>Bt===void 0?MOST_POSITIVE_SINGLE_FLOAT:Bt},minValue:{get:()=>jt===void 0?MOST_NEGATIVE_SINGLE_FLOAT:jt}}),pt.push($t)}const dt=a(tt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,at+ht)}),gt=computeBufferSize(nt,tt.sampleRate),yt=b(tt,gt,at+ht,Math.max(1,ot)),ft=c(tt,{channelCount:Math.max(1,ot),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,ot)}),Et=[];for(let kt=0;kt{const jt=pt[Bt];return jt.connect(dt,0,at+Bt),jt.start(0),[kt,jt.offset]}));dt.connect(yt);let St=rt.channelInterpretation,At=null;const Ot=rt.numberOfOutputs===0?[yt]:Et,Ct={get bufferSize(){return gt},get channelCount(){return rt.channelCount},set channelCount(kt){throw s()},get channelCountMode(){return rt.channelCountMode},set channelCountMode(kt){throw s()},get channelInterpretation(){return St},set channelInterpretation(kt){for(const Bt of ut)Bt.channelInterpretation=kt;St=kt},get context(){return yt.context},get inputs(){return ut},get numberOfInputs(){return rt.numberOfInputs},get numberOfOutputs(){return rt.numberOfOutputs},get onprocessorerror(){return At},set onprocessorerror(kt){typeof At=="function"&&Ct.removeEventListener("processorerror",At),At=typeof kt=="function"?kt:null,typeof At=="function"&&Ct.addEventListener("processorerror",At)},get parameters(){return mt},get port(){return ct.port2},addEventListener(...kt){return yt.addEventListener(kt[0],kt[1],kt[2])},connect:o.bind(null,Ot),disconnect:$.bind(null,Ot),dispatchEvent(...kt){return yt.dispatchEvent(kt[0])},removeEventListener(...kt){return yt.removeEventListener(kt[0],kt[1],kt[2])}},Dt=new Map;ct.port1.addEventListener=(kt=>(...Bt)=>{if(Bt[0]==="message"){const jt=typeof Bt[1]=="function"?Bt[1]:typeof Bt[1]=="object"&&Bt[1]!==null&&typeof Bt[1].handleEvent=="function"?Bt[1].handleEvent:null;if(jt!==null){const Lt=Dt.get(Bt[1]);Lt!==void 0?Bt[1]=Lt:(Bt[1]=$t=>{j(tt.currentTime,tt.sampleRate,()=>jt($t))},Dt.set(jt,Bt[1]))}}return kt.call(ct.port1,Bt[0],Bt[1],Bt[2])})(ct.port1.addEventListener),ct.port1.removeEventListener=(kt=>(...Bt)=>{if(Bt[0]==="message"){const jt=Dt.get(Bt[1]);jt!==void 0&&(Dt.delete(Bt[1]),Bt[1]=jt)}return kt.call(ct.port1,Bt[0],Bt[1],Bt[2])})(ct.port1.removeEventListener);let Tt=null;Object.defineProperty(ct.port1,"onmessage",{get:()=>Tt,set:kt=>{typeof Tt=="function"&&ct.port1.removeEventListener("message",Tt),Tt=typeof kt=="function"?kt:null,typeof Tt=="function"&&(ct.port1.addEventListener("message",Tt),ct.port1.start())}}),st.prototype.port=ct.port1;let vt=null;createAudioWorkletProcessor(tt,Ct,st,rt).then(kt=>vt=kt);const xt=createNestedArrays(rt.numberOfInputs,rt.channelCount),Rt=createNestedArrays(rt.numberOfOutputs,it),Mt=st.parameterDescriptors===void 0?[]:st.parameterDescriptors.reduce((kt,{name:Bt})=>wt(_t({},kt),{[Bt]:new Float32Array(128)}),{});let It=!0;const Ft=()=>{rt.numberOfOutputs>0&&yt.disconnect(ft);for(let kt=0,Bt=0;kt{if(vt!==null){const jt=_e(Ct);for(let Lt=0;Lt{copyFromChannel(kt,Mt,$t,at+Wt,Lt)});for(let $t=0;$t{if(jt[Ut].size>0)return qt.set(Ut,gt/128),Gt;const Zt=qt.get(Ut);return Zt===void 0?[]:(Gt.every(Yt=>Yt.every(sn=>sn===0))&&(Zt===1?qt.delete(Ut):qt.set(Ut,Zt-1)),Gt)});It=j(tt.currentTime+Lt/tt.sampleRate,tt.sampleRate,()=>vt.process($t,Rt,Mt));for(let Gt=0,Ut=0;Gtyt.connect(Nt).connect(tt.destination),Jt=()=>{yt.disconnect(Nt),Nt.disconnect()},en=()=>{if(It){Jt(),rt.numberOfOutputs>0&&yt.connect(ft);for(let kt=0,Bt=0;kt{It&&(Kt(),Ft()),Qt=!1};return Kt(),et(Ct,en,tn)},createNativeBiquadFilterNode=(o,e)=>{const s=o.createBiquadFilter();return assignNativeAudioNodeOptions(s,e),assignNativeAudioNodeAudioParamValue(s,e,"Q"),assignNativeAudioNodeAudioParamValue(s,e,"detune"),assignNativeAudioNodeAudioParamValue(s,e,"frequency"),assignNativeAudioNodeAudioParamValue(s,e,"gain"),assignNativeAudioNodeOption(s,e,"type"),s},createNativeChannelMergerNodeFactory=(o,e)=>(s,a)=>{const c=s.createChannelMerger(a.numberOfInputs);return o!==null&&o.name==="webkitAudioContext"&&e(s,c),assignNativeAudioNodeOptions(c,a),c},wrapChannelSplitterNode=o=>{const e=o.numberOfOutputs;Object.defineProperty(o,"channelCount",{get:()=>e,set:s=>{if(s!==e)throw createInvalidStateError()}}),Object.defineProperty(o,"channelCountMode",{get:()=>"explicit",set:s=>{if(s!=="explicit")throw createInvalidStateError()}}),Object.defineProperty(o,"channelInterpretation",{get:()=>"discrete",set:s=>{if(s!=="discrete")throw createInvalidStateError()}})},createNativeChannelSplitterNode=(o,e)=>{const s=o.createChannelSplitter(e.numberOfOutputs);return assignNativeAudioNodeOptions(s,e),wrapChannelSplitterNode(s),s},createNativeConstantSourceNodeFactory=(o,e,s,a,c)=>(d,_)=>{if(d.createConstantSource===void 0)return s(d,_);const b=d.createConstantSource();return assignNativeAudioNodeOptions(b,_),assignNativeAudioNodeAudioParamValue(b,_,"offset"),e(a,()=>a(d))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(b),e(c,()=>c(d))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(b),o(d,b),b},interceptConnections=(o,e)=>(o.connect=e.connect.bind(e),o.disconnect=e.disconnect.bind(e),o),createNativeConstantSourceNodeFakerFactory=(o,e,s,a)=>(c,b)=>{var k=b,{offset:d}=k,_=ln(k,["offset"]);const $=c.createBuffer(1,2,44100),j=e(c,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),_e=s(c,wt(_t({},_),{gain:d})),et=$.getChannelData(0);et[0]=1,et[1]=1,j.buffer=$,j.loop=!0;const tt={get bufferSize(){},get channelCount(){return _e.channelCount},set channelCount(rt){_e.channelCount=rt},get channelCountMode(){return _e.channelCountMode},set channelCountMode(rt){_e.channelCountMode=rt},get channelInterpretation(){return _e.channelInterpretation},set channelInterpretation(rt){_e.channelInterpretation=rt},get context(){return _e.context},get inputs(){return[]},get numberOfInputs(){return j.numberOfInputs},get numberOfOutputs(){return _e.numberOfOutputs},get offset(){return _e.gain},get onended(){return j.onended},set onended(rt){j.onended=rt},addEventListener(...rt){return j.addEventListener(rt[0],rt[1],rt[2])},dispatchEvent(...rt){return j.dispatchEvent(rt[0])},removeEventListener(...rt){return j.removeEventListener(rt[0],rt[1],rt[2])},start(rt=0){j.start.call(j,rt)},stop(rt=0){j.stop.call(j,rt)}},nt=()=>j.connect(_e),st=()=>j.disconnect(_e);return o(c,j),a(interceptConnections(tt,_e),nt,st)},createNativeConvolverNodeFactory=(o,e)=>(s,a)=>{const c=s.createConvolver();if(assignNativeAudioNodeOptions(c,a),a.disableNormalization===c.normalize&&(c.normalize=!a.disableNormalization),assignNativeAudioNodeOption(c,a,"buffer"),a.channelCount>2||(e(c,"channelCount",d=>()=>d.call(c),d=>_=>{if(_>2)throw o();return d.call(c,_)}),a.channelCountMode==="max"))throw o();return e(c,"channelCountMode",d=>()=>d.call(c),d=>_=>{if(_==="max")throw o();return d.call(c,_)}),c},createNativeDelayNode=(o,e)=>{const s=o.createDelay(e.maxDelayTime);return assignNativeAudioNodeOptions(s,e),assignNativeAudioNodeAudioParamValue(s,e,"delayTime"),s},createNativeDynamicsCompressorNodeFactory=o=>(e,s)=>{const a=e.createDynamicsCompressor();if(assignNativeAudioNodeOptions(a,s),s.channelCount>2||s.channelCountMode==="max")throw o();return assignNativeAudioNodeAudioParamValue(a,s,"attack"),assignNativeAudioNodeAudioParamValue(a,s,"knee"),assignNativeAudioNodeAudioParamValue(a,s,"ratio"),assignNativeAudioNodeAudioParamValue(a,s,"release"),assignNativeAudioNodeAudioParamValue(a,s,"threshold"),a},createNativeGainNode=(o,e)=>{const s=o.createGain();return assignNativeAudioNodeOptions(s,e),assignNativeAudioNodeAudioParamValue(s,e,"gain"),s},createNativeIIRFilterNodeFactory=o=>(e,s,a)=>{if(e.createIIRFilter===void 0)return o(e,s,a);const c=e.createIIRFilter(a.feedforward,a.feedback);return assignNativeAudioNodeOptions(c,a),c};function divide(o,e){const s=e[0]*e[0]+e[1]*e[1];return[(o[0]*e[0]+o[1]*e[1])/s,(o[1]*e[0]-o[0]*e[1])/s]}function multiply(o,e){return[o[0]*e[0]-o[1]*e[1],o[0]*e[1]+o[1]*e[0]]}function evaluatePolynomial(o,e){let s=[0,0];for(let a=o.length-1;a>=0;a-=1)s=multiply(s,e),s[0]+=o[a];return s}const createNativeIIRFilterNodeFakerFactory=(o,e,s,a)=>(c,d,{channelCount:_,channelCountMode:b,channelInterpretation:k,feedback:$,feedforward:j})=>{const _e=computeBufferSize(d,c.sampleRate),et=$ instanceof Float64Array?$:new Float64Array($),tt=j instanceof Float64Array?j:new Float64Array(j),nt=et.length,st=tt.length,rt=Math.min(nt,st);if(nt===0||nt>20)throw a();if(et[0]===0)throw e();if(st===0||st>20)throw a();if(tt[0]===0)throw e();if(et[0]!==1){for(let pt=0;pt{const dt=pt.inputBuffer,gt=pt.outputBuffer,yt=dt.numberOfChannels;for(let ft=0;fto.createMediaElementSource(e.mediaElement),createNativeMediaStreamAudioDestinationNode=(o,e)=>{const s=o.createMediaStreamDestination();return assignNativeAudioNodeOptions(s,e),s.numberOfOutputs===1&&Object.defineProperty(s,"numberOfOutputs",{get:()=>0}),s},createNativeMediaStreamAudioSourceNode=(o,{mediaStream:e})=>{const s=e.getAudioTracks();s.sort((d,_)=>d.id<_.id?-1:d.id>_.id?1:0);const a=s.slice(0,1),c=o.createMediaStreamSource(new MediaStream(a));return Object.defineProperty(c,"mediaStream",{value:e}),c},createNativeMediaStreamTrackAudioSourceNodeFactory=(o,e)=>(s,{mediaStreamTrack:a})=>{if(typeof s.createMediaStreamTrackSource=="function")return s.createMediaStreamTrackSource(a);const c=new MediaStream([a]),d=s.createMediaStreamSource(c);if(a.kind!=="audio")throw o();if(e(s))throw new TypeError;return d},createNativeOfflineAudioContextConstructor=o=>o===null?null:o.hasOwnProperty("OfflineAudioContext")?o.OfflineAudioContext:o.hasOwnProperty("webkitOfflineAudioContext")?o.webkitOfflineAudioContext:null,createNativeOscillatorNodeFactory=(o,e,s,a,c,d)=>(_,b)=>{const k=_.createOscillator();return assignNativeAudioNodeOptions(k,b),assignNativeAudioNodeAudioParamValue(k,b,"detune"),assignNativeAudioNodeAudioParamValue(k,b,"frequency"),b.periodicWave!==void 0?k.setPeriodicWave(b.periodicWave):assignNativeAudioNodeOption(k,b,"type"),e(s,()=>s(_))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(k),e(a,()=>a(_))||d(k,_),e(c,()=>c(_))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(k),o(_,k),k},createNativePannerNodeFactory=o=>(e,s)=>{const a=e.createPanner();return a.orientationX===void 0?o(e,s):(assignNativeAudioNodeOptions(a,s),assignNativeAudioNodeAudioParamValue(a,s,"orientationX"),assignNativeAudioNodeAudioParamValue(a,s,"orientationY"),assignNativeAudioNodeAudioParamValue(a,s,"orientationZ"),assignNativeAudioNodeAudioParamValue(a,s,"positionX"),assignNativeAudioNodeAudioParamValue(a,s,"positionY"),assignNativeAudioNodeAudioParamValue(a,s,"positionZ"),assignNativeAudioNodeOption(a,s,"coneInnerAngle"),assignNativeAudioNodeOption(a,s,"coneOuterAngle"),assignNativeAudioNodeOption(a,s,"coneOuterGain"),assignNativeAudioNodeOption(a,s,"distanceModel"),assignNativeAudioNodeOption(a,s,"maxDistance"),assignNativeAudioNodeOption(a,s,"panningModel"),assignNativeAudioNodeOption(a,s,"refDistance"),assignNativeAudioNodeOption(a,s,"rolloffFactor"),a)},createNativePannerNodeFakerFactory=(o,e,s,a,c,d,_,b,k,$)=>(j,gt)=>{var yt=gt,{coneInnerAngle:_e,coneOuterAngle:et,coneOuterGain:tt,distanceModel:nt,maxDistance:st,orientationX:rt,orientationY:it,orientationZ:at,panningModel:ot,positionX:ht,positionY:ct,positionZ:ut,refDistance:lt,rolloffFactor:pt}=yt,dt=ln(yt,["coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","orientationX","orientationY","orientationZ","panningModel","positionX","positionY","positionZ","refDistance","rolloffFactor"]);const ft=j.createPanner();if(dt.channelCount>2||dt.channelCountMode==="max")throw _();assignNativeAudioNodeOptions(ft,dt);const Et={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},mt=s(j,wt(_t({},Et),{channelInterpretation:"speakers",numberOfInputs:6})),St=a(j,wt(_t({},dt),{gain:1})),At=a(j,wt(_t({},Et),{gain:1})),Ot=a(j,wt(_t({},Et),{gain:0})),Ct=a(j,wt(_t({},Et),{gain:0})),Dt=a(j,wt(_t({},Et),{gain:0})),Tt=a(j,wt(_t({},Et),{gain:0})),vt=a(j,wt(_t({},Et),{gain:0})),bt=c(j,256,6,1),xt=d(j,wt(_t({},Et),{curve:new Float32Array([1,1]),oversample:"none"}));let Rt=[rt,it,at],Mt=[ht,ct,ut];const It=new Float32Array(1);bt.onaudioprocess=({inputBuffer:Nt})=>{const Kt=[k(Nt,It,0),k(Nt,It,1),k(Nt,It,2)];Kt.some((en,tn)=>en!==Rt[tn])&&(ft.setOrientation(...Kt),Rt=Kt);const Jt=[k(Nt,It,3),k(Nt,It,4),k(Nt,It,5)];Jt.some((en,tn)=>en!==Mt[tn])&&(ft.setPosition(...Jt),Mt=Jt)},Object.defineProperty(Ot.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Ct.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Dt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Tt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(vt.gain,"defaultValue",{get:()=>0});const Ft={get bufferSize(){},get channelCount(){return ft.channelCount},set channelCount(Nt){if(Nt>2)throw _();St.channelCount=Nt,ft.channelCount=Nt},get channelCountMode(){return ft.channelCountMode},set channelCountMode(Nt){if(Nt==="max")throw _();St.channelCountMode=Nt,ft.channelCountMode=Nt},get channelInterpretation(){return ft.channelInterpretation},set channelInterpretation(Nt){St.channelInterpretation=Nt,ft.channelInterpretation=Nt},get coneInnerAngle(){return ft.coneInnerAngle},set coneInnerAngle(Nt){ft.coneInnerAngle=Nt},get coneOuterAngle(){return ft.coneOuterAngle},set coneOuterAngle(Nt){ft.coneOuterAngle=Nt},get coneOuterGain(){return ft.coneOuterGain},set coneOuterGain(Nt){if(Nt<0||Nt>1)throw e();ft.coneOuterGain=Nt},get context(){return ft.context},get distanceModel(){return ft.distanceModel},set distanceModel(Nt){ft.distanceModel=Nt},get inputs(){return[St]},get maxDistance(){return ft.maxDistance},set maxDistance(Nt){if(Nt<0)throw new RangeError;ft.maxDistance=Nt},get numberOfInputs(){return ft.numberOfInputs},get numberOfOutputs(){return ft.numberOfOutputs},get orientationX(){return At.gain},get orientationY(){return Ot.gain},get orientationZ(){return Ct.gain},get panningModel(){return ft.panningModel},set panningModel(Nt){ft.panningModel=Nt},get positionX(){return Dt.gain},get positionY(){return Tt.gain},get positionZ(){return vt.gain},get refDistance(){return ft.refDistance},set refDistance(Nt){if(Nt<0)throw new RangeError;ft.refDistance=Nt},get rolloffFactor(){return ft.rolloffFactor},set rolloffFactor(Nt){if(Nt<0)throw new RangeError;ft.rolloffFactor=Nt},addEventListener(...Nt){return St.addEventListener(Nt[0],Nt[1],Nt[2])},dispatchEvent(...Nt){return St.dispatchEvent(Nt[0])},removeEventListener(...Nt){return St.removeEventListener(Nt[0],Nt[1],Nt[2])}};_e!==Ft.coneInnerAngle&&(Ft.coneInnerAngle=_e),et!==Ft.coneOuterAngle&&(Ft.coneOuterAngle=et),tt!==Ft.coneOuterGain&&(Ft.coneOuterGain=tt),nt!==Ft.distanceModel&&(Ft.distanceModel=nt),st!==Ft.maxDistance&&(Ft.maxDistance=st),rt!==Ft.orientationX.value&&(Ft.orientationX.value=rt),it!==Ft.orientationY.value&&(Ft.orientationY.value=it),at!==Ft.orientationZ.value&&(Ft.orientationZ.value=at),ot!==Ft.panningModel&&(Ft.panningModel=ot),ht!==Ft.positionX.value&&(Ft.positionX.value=ht),ct!==Ft.positionY.value&&(Ft.positionY.value=ct),ut!==Ft.positionZ.value&&(Ft.positionZ.value=ut),lt!==Ft.refDistance&&(Ft.refDistance=lt),pt!==Ft.rolloffFactor&&(Ft.rolloffFactor=pt),(Rt[0]!==1||Rt[1]!==0||Rt[2]!==0)&&ft.setOrientation(...Rt),(Mt[0]!==0||Mt[1]!==0||Mt[2]!==0)&&ft.setPosition(...Mt);const qt=()=>{St.connect(ft),o(St,xt,0,0),xt.connect(At).connect(mt,0,0),xt.connect(Ot).connect(mt,0,1),xt.connect(Ct).connect(mt,0,2),xt.connect(Dt).connect(mt,0,3),xt.connect(Tt).connect(mt,0,4),xt.connect(vt).connect(mt,0,5),mt.connect(bt).connect(j.destination)},Qt=()=>{St.disconnect(ft),b(St,xt,0,0),xt.disconnect(At),At.disconnect(mt),xt.disconnect(Ot),Ot.disconnect(mt),xt.disconnect(Ct),Ct.disconnect(mt),xt.disconnect(Dt),Dt.disconnect(mt),xt.disconnect(Tt),Tt.disconnect(mt),xt.disconnect(vt),vt.disconnect(mt),mt.disconnect(bt),bt.disconnect(j.destination)};return $(interceptConnections(Ft,ft),qt,Qt)},createNativePeriodicWaveFactory=o=>(e,{disableNormalization:s,imag:a,real:c})=>{const d=a instanceof Float32Array?a:new Float32Array(a),_=c instanceof Float32Array?c:new Float32Array(c),b=e.createPeriodicWave(_,d,{disableNormalization:s});if(Array.from(a).length<2)throw o();return b},createNativeScriptProcessorNode=(o,e,s,a)=>o.createScriptProcessor(e,s,a),createNativeStereoPannerNodeFactory=(o,e)=>(s,a)=>{const c=a.channelCountMode;if(c==="clamped-max")throw e();if(s.createStereoPanner===void 0)return o(s,a);const d=s.createStereoPanner();return assignNativeAudioNodeOptions(d,a),assignNativeAudioNodeAudioParamValue(d,a,"pan"),Object.defineProperty(d,"channelCountMode",{get:()=>c,set:_=>{if(_!==c)throw e()}}),d},createNativeStereoPannerNodeFakerFactory=(o,e,s,a,c,d)=>{const b=new Float32Array([1,1]),k=Math.PI/2,$={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},j=wt(_t({},$),{oversample:"none"}),_e=(nt,st,rt,it)=>{const at=new Float32Array(16385),ot=new Float32Array(16385);for(let dt=0;dt<16385;dt+=1){const gt=dt/16384*k;at[dt]=Math.cos(gt),ot[dt]=Math.sin(gt)}const ht=s(nt,wt(_t({},$),{gain:0})),ct=a(nt,wt(_t({},j),{curve:at})),ut=a(nt,wt(_t({},j),{curve:b})),lt=s(nt,wt(_t({},$),{gain:0})),pt=a(nt,wt(_t({},j),{curve:ot}));return{connectGraph(){st.connect(ht),st.connect(ut.inputs===void 0?ut:ut.inputs[0]),st.connect(lt),ut.connect(rt),rt.connect(ct.inputs===void 0?ct:ct.inputs[0]),rt.connect(pt.inputs===void 0?pt:pt.inputs[0]),ct.connect(ht.gain),pt.connect(lt.gain),ht.connect(it,0,0),lt.connect(it,0,1)},disconnectGraph(){st.disconnect(ht),st.disconnect(ut.inputs===void 0?ut:ut.inputs[0]),st.disconnect(lt),ut.disconnect(rt),rt.disconnect(ct.inputs===void 0?ct:ct.inputs[0]),rt.disconnect(pt.inputs===void 0?pt:pt.inputs[0]),ct.disconnect(ht.gain),pt.disconnect(lt.gain),ht.disconnect(it,0,0),lt.disconnect(it,0,1)}}},et=(nt,st,rt,it)=>{const at=new Float32Array(16385),ot=new Float32Array(16385),ht=new Float32Array(16385),ct=new Float32Array(16385),ut=Math.floor(16385/2);for(let Ot=0;Ot<16385;Ot+=1)if(Ot>ut){const Ct=(Ot-ut)/(16384-ut)*k;at[Ot]=Math.cos(Ct),ot[Ot]=Math.sin(Ct),ht[Ot]=0,ct[Ot]=1}else{const Ct=Ot/(16384-ut)*k;at[Ot]=1,ot[Ot]=0,ht[Ot]=Math.cos(Ct),ct[Ot]=Math.sin(Ct)}const lt=e(nt,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),pt=s(nt,wt(_t({},$),{gain:0})),dt=a(nt,wt(_t({},j),{curve:at})),gt=s(nt,wt(_t({},$),{gain:0})),yt=a(nt,wt(_t({},j),{curve:ot})),ft=a(nt,wt(_t({},j),{curve:b})),Et=s(nt,wt(_t({},$),{gain:0})),mt=a(nt,wt(_t({},j),{curve:ht})),St=s(nt,wt(_t({},$),{gain:0})),At=a(nt,wt(_t({},j),{curve:ct}));return{connectGraph(){st.connect(lt),st.connect(ft.inputs===void 0?ft:ft.inputs[0]),lt.connect(pt,0),lt.connect(gt,0),lt.connect(Et,1),lt.connect(St,1),ft.connect(rt),rt.connect(dt.inputs===void 0?dt:dt.inputs[0]),rt.connect(yt.inputs===void 0?yt:yt.inputs[0]),rt.connect(mt.inputs===void 0?mt:mt.inputs[0]),rt.connect(At.inputs===void 0?At:At.inputs[0]),dt.connect(pt.gain),yt.connect(gt.gain),mt.connect(Et.gain),At.connect(St.gain),pt.connect(it,0,0),Et.connect(it,0,0),gt.connect(it,0,1),St.connect(it,0,1)},disconnectGraph(){st.disconnect(lt),st.disconnect(ft.inputs===void 0?ft:ft.inputs[0]),lt.disconnect(pt,0),lt.disconnect(gt,0),lt.disconnect(Et,1),lt.disconnect(St,1),ft.disconnect(rt),rt.disconnect(dt.inputs===void 0?dt:dt.inputs[0]),rt.disconnect(yt.inputs===void 0?yt:yt.inputs[0]),rt.disconnect(mt.inputs===void 0?mt:mt.inputs[0]),rt.disconnect(At.inputs===void 0?At:At.inputs[0]),dt.disconnect(pt.gain),yt.disconnect(gt.gain),mt.disconnect(Et.gain),At.disconnect(St.gain),pt.disconnect(it,0,0),Et.disconnect(it,0,0),gt.disconnect(it,0,1),St.disconnect(it,0,1)}}},tt=(nt,st,rt,it,at)=>{if(st===1)return _e(nt,rt,it,at);if(st===2)return et(nt,rt,it,at);throw c()};return(nt,ot)=>{var ht=ot,{channelCount:st,channelCountMode:rt,pan:it}=ht,at=ln(ht,["channelCount","channelCountMode","pan"]);if(rt==="max")throw c();const ct=o(nt,wt(_t({},at),{channelCount:1,channelCountMode:rt,numberOfInputs:2})),ut=s(nt,wt(_t({},at),{channelCount:st,channelCountMode:rt,gain:1})),lt=s(nt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:it});let{connectGraph:pt,disconnectGraph:dt}=tt(nt,st,ut,lt,ct);Object.defineProperty(lt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(lt.gain,"maxValue",{get:()=>1}),Object.defineProperty(lt.gain,"minValue",{get:()=>-1});const gt={get bufferSize(){},get channelCount(){return ut.channelCount},set channelCount(mt){ut.channelCount!==mt&&(yt&&dt(),{connectGraph:pt,disconnectGraph:dt}=tt(nt,mt,ut,lt,ct),yt&&pt()),ut.channelCount=mt},get channelCountMode(){return ut.channelCountMode},set channelCountMode(mt){if(mt==="clamped-max"||mt==="max")throw c();ut.channelCountMode=mt},get channelInterpretation(){return ut.channelInterpretation},set channelInterpretation(mt){ut.channelInterpretation=mt},get context(){return ut.context},get inputs(){return[ut]},get numberOfInputs(){return ut.numberOfInputs},get numberOfOutputs(){return ut.numberOfOutputs},get pan(){return lt.gain},addEventListener(...mt){return ut.addEventListener(mt[0],mt[1],mt[2])},dispatchEvent(...mt){return ut.dispatchEvent(mt[0])},removeEventListener(...mt){return ut.removeEventListener(mt[0],mt[1],mt[2])}};let yt=!1;const ft=()=>{pt(),yt=!0},Et=()=>{dt(),yt=!1};return d(interceptConnections(gt,ct),ft,Et)}},createNativeWaveShaperNodeFactory=(o,e,s,a,c,d,_)=>(b,k)=>{const $=b.createWaveShaper();if(d!==null&&d.name==="webkitAudioContext"&&b.createGain().gain.automationRate===void 0)return s(b,k);assignNativeAudioNodeOptions($,k);const j=k.curve===null||k.curve instanceof Float32Array?k.curve:new Float32Array(k.curve);if(j!==null&&j.length<2)throw e();assignNativeAudioNodeOption($,{curve:j},"curve"),assignNativeAudioNodeOption($,k,"oversample");let _e=null,et=!1;return _($,"curve",st=>()=>st.call($),st=>rt=>(st.call($,rt),et&&(a(rt)&&_e===null?_e=o(b,$):!a(rt)&&_e!==null&&(_e(),_e=null)),rt)),c($,()=>{et=!0,a($.curve)&&(_e=o(b,$))},()=>{et=!1,_e!==null&&(_e(),_e=null)})},createNativeWaveShaperNodeFakerFactory=(o,e,s,a,c)=>(d,$)=>{var j=$,{curve:_,oversample:b}=j,k=ln(j,["curve","oversample"]);const _e=d.createWaveShaper(),et=d.createWaveShaper();assignNativeAudioNodeOptions(_e,k),assignNativeAudioNodeOptions(et,k);const tt=s(d,wt(_t({},k),{gain:1})),nt=s(d,wt(_t({},k),{gain:-1})),st=s(d,wt(_t({},k),{gain:1})),rt=s(d,wt(_t({},k),{gain:-1}));let it=null,at=!1,ot=null;const ht={get bufferSize(){},get channelCount(){return _e.channelCount},set channelCount(lt){tt.channelCount=lt,nt.channelCount=lt,_e.channelCount=lt,st.channelCount=lt,et.channelCount=lt,rt.channelCount=lt},get channelCountMode(){return _e.channelCountMode},set channelCountMode(lt){tt.channelCountMode=lt,nt.channelCountMode=lt,_e.channelCountMode=lt,st.channelCountMode=lt,et.channelCountMode=lt,rt.channelCountMode=lt},get channelInterpretation(){return _e.channelInterpretation},set channelInterpretation(lt){tt.channelInterpretation=lt,nt.channelInterpretation=lt,_e.channelInterpretation=lt,st.channelInterpretation=lt,et.channelInterpretation=lt,rt.channelInterpretation=lt},get context(){return _e.context},get curve(){return ot},set curve(lt){if(lt!==null&<.length<2)throw e();if(lt===null)_e.curve=lt,et.curve=lt;else{const pt=lt.length,dt=new Float32Array(pt+2-pt%2),gt=new Float32Array(pt+2-pt%2);dt[0]=lt[0],gt[0]=-lt[pt-1];const yt=Math.ceil((pt+1)/2),ft=(pt+1)/2-1;for(let Et=1;Et{tt.connect(_e).connect(st),tt.connect(nt).connect(et).connect(rt).connect(st),at=!0,a(ot)&&(it=o(d,tt))},ut=()=>{tt.disconnect(_e),_e.disconnect(st),tt.disconnect(nt),nt.disconnect(et),et.disconnect(rt),rt.disconnect(st),at=!1,it!==null&&(it(),it=null)};return c(interceptConnections(ht,st),ct,ut)},createNotSupportedError=()=>new DOMException("","NotSupportedError"),DEFAULT_OPTIONS$5={numberOfChannels:1},createOfflineAudioContextConstructor=(o,e,s,a,c)=>class extends o{constructor(_,b,k){let $;if(typeof _=="number"&&b!==void 0&&k!==void 0)$={length:b,numberOfChannels:_,sampleRate:k};else if(typeof _=="object")$=_;else throw new Error("The given parameters are not valid.");const{length:j,numberOfChannels:_e,sampleRate:et}=_t(_t({},DEFAULT_OPTIONS$5),$),tt=a(_e,j,et);e(testPromiseSupport,()=>testPromiseSupport(tt))||tt.addEventListener("statechange",(()=>{let nt=0;const st=rt=>{this._state==="running"&&(nt>0?(tt.removeEventListener("statechange",st),rt.stopImmediatePropagation(),this._waitForThePromiseToSettle(rt)):nt+=1)};return st})()),super(tt,_e),this._length=j,this._nativeOfflineAudioContext=tt,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(s()):(this._state="running",c(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,deactivateAudioGraph(this)}))}_waitForThePromiseToSettle(_){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(_):setTimeout(()=>this._waitForThePromiseToSettle(_))}},DEFAULT_OPTIONS$4={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},createOscillatorNodeConstructor=(o,e,s,a,c,d,_)=>class extends o{constructor(k,$){const j=c(k),_e=_t(_t({},DEFAULT_OPTIONS$4),$),et=s(j,_e),tt=d(j),nt=tt?a():null,st=k.sampleRate/2;super(k,!1,et,nt),this._detune=e(this,tt,et.detune,153600,-153600),this._frequency=e(this,tt,et.frequency,st,-st),this._nativeOscillatorNode=et,this._onended=null,this._oscillatorNodeRenderer=nt,this._oscillatorNodeRenderer!==null&&_e.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=_e.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(k){const $=typeof k=="function"?_(this,k):null;this._nativeOscillatorNode.onended=$;const j=this._nativeOscillatorNode.onended;this._onended=j!==null&&j===$?k:j}get type(){return this._nativeOscillatorNode.type}set type(k){this._nativeOscillatorNode.type=k,this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(k){this._nativeOscillatorNode.setPeriodicWave(k),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=k)}start(k=0){if(this._nativeOscillatorNode.start(k),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.start=k),this.context.state!=="closed"){setInternalStateToActive(this);const $=()=>{this._nativeOscillatorNode.removeEventListener("ended",$),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeOscillatorNode.addEventListener("ended",$)}}stop(k=0){this._nativeOscillatorNode.stop(k),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=k)}},createOscillatorNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap;let _=null,b=null,k=null;const $=async(j,_e)=>{let et=s(j);const tt=isOwnedByContext(et,_e);if(!tt){const nt={channelCount:et.channelCount,channelCountMode:et.channelCountMode,channelInterpretation:et.channelInterpretation,detune:et.detune.value,frequency:et.frequency.value,periodicWave:_===null?void 0:_,type:et.type};et=e(_e,nt),b!==null&&et.start(b),k!==null&&et.stop(k)}return d.set(_e,et),tt?(await o(_e,j.detune,et.detune),await o(_e,j.frequency,et.frequency)):(await a(_e,j.detune,et.detune),await a(_e,j.frequency,et.frequency)),await c(j,_e,et),et};return{set periodicWave(j){_=j},set start(j){b=j},set stop(j){k=j},render(j,_e){const et=d.get(_e);return et!==void 0?Promise.resolve(et):$(j,_e)}}},DEFAULT_OPTIONS$3={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},createPannerNodeConstructor=(o,e,s,a,c,d,_)=>class extends o{constructor(k,$){const j=c(k),_e=_t(_t({},DEFAULT_OPTIONS$3),$),et=s(j,_e),tt=d(j),nt=tt?a():null;super(k,!1,et,nt),this._nativePannerNode=et,this._orientationX=e(this,tt,et.orientationX,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._orientationY=e(this,tt,et.orientationY,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._orientationZ=e(this,tt,et.orientationZ,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionX=e(this,tt,et.positionX,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionY=e(this,tt,et.positionY,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionZ=e(this,tt,et.positionZ,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),_(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(k){this._nativePannerNode.coneInnerAngle=k}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(k){this._nativePannerNode.coneOuterAngle=k}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(k){this._nativePannerNode.coneOuterGain=k}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(k){this._nativePannerNode.distanceModel=k}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(k){this._nativePannerNode.maxDistance=k}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(k){this._nativePannerNode.panningModel=k}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(k){this._nativePannerNode.refDistance=k}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(k){this._nativePannerNode.rolloffFactor=k}},createPannerNodeRendererFactory=(o,e,s,a,c,d,_,b,k,$)=>()=>{const j=new WeakMap;let _e=null;const et=async(tt,nt)=>{let st=null,rt=d(tt);const it={channelCount:rt.channelCount,channelCountMode:rt.channelCountMode,channelInterpretation:rt.channelInterpretation},at=wt(_t({},it),{coneInnerAngle:rt.coneInnerAngle,coneOuterAngle:rt.coneOuterAngle,coneOuterGain:rt.coneOuterGain,distanceModel:rt.distanceModel,maxDistance:rt.maxDistance,panningModel:rt.panningModel,refDistance:rt.refDistance,rolloffFactor:rt.rolloffFactor}),ot=isOwnedByContext(rt,nt);if("bufferSize"in rt)st=a(nt,wt(_t({},it),{gain:1}));else if(!ot){const ht=wt(_t({},at),{orientationX:rt.orientationX.value,orientationY:rt.orientationY.value,orientationZ:rt.orientationZ.value,positionX:rt.positionX.value,positionY:rt.positionY.value,positionZ:rt.positionZ.value});rt=c(nt,ht)}if(j.set(nt,st===null?rt:st),st!==null){if(_e===null){if(_===null)throw new Error("Missing the native OfflineAudioContext constructor.");const yt=new _(6,tt.context.length,nt.sampleRate),ft=e(yt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});ft.connect(yt.destination),_e=(async()=>{const Et=await Promise.all([tt.orientationX,tt.orientationY,tt.orientationZ,tt.positionX,tt.positionY,tt.positionZ].map(async(mt,St)=>{const At=s(yt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:St===0?1:0});return await b(yt,mt,At.offset),At}));for(let mt=0;mt<6;mt+=1)Et[mt].connect(ft,0,mt),Et[mt].start(0);return $(yt)})()}const ht=await _e,ct=a(nt,wt(_t({},it),{gain:1}));await k(tt,nt,ct);const ut=[];for(let yt=0;ytmt!==lt[St])||Et.some((mt,St)=>mt!==pt[St])){lt=ft,pt=Et;const mt=yt/nt.sampleRate;dt.gain.setValueAtTime(0,mt),dt=a(nt,wt(_t({},it),{gain:0})),gt=c(nt,wt(_t({},at),{orientationX:lt[0],orientationY:lt[1],orientationZ:lt[2],positionX:pt[0],positionY:pt[1],positionZ:pt[2]})),dt.gain.setValueAtTime(1,mt),ct.connect(dt).connect(gt.inputs[0]),gt.connect(st)}}return st}return ot?(await o(nt,tt.orientationX,rt.orientationX),await o(nt,tt.orientationY,rt.orientationY),await o(nt,tt.orientationZ,rt.orientationZ),await o(nt,tt.positionX,rt.positionX),await o(nt,tt.positionY,rt.positionY),await o(nt,tt.positionZ,rt.positionZ)):(await b(nt,tt.orientationX,rt.orientationX),await b(nt,tt.orientationY,rt.orientationY),await b(nt,tt.orientationZ,rt.orientationZ),await b(nt,tt.positionX,rt.positionX),await b(nt,tt.positionY,rt.positionY),await b(nt,tt.positionZ,rt.positionZ)),isNativeAudioNodeFaker(rt)?await k(tt,nt,rt.inputs[0]):await k(tt,nt,rt),rt};return{render(tt,nt){const st=j.get(nt);return st!==void 0?Promise.resolve(st):et(tt,nt)}}},DEFAULT_OPTIONS$2={disableNormalization:!1},createPeriodicWaveConstructor=(o,e,s,a)=>class gr{constructor(d,_){const b=e(d),k=a(_t(_t({},DEFAULT_OPTIONS$2),_)),$=o(b,k);return s.add($),$}static[Symbol.hasInstance](d){return d!==null&&typeof d=="object"&&Object.getPrototypeOf(d)===gr.prototype||s.has(d)}},createRenderAutomation=(o,e)=>(s,a,c)=>(o(a).replay(c),e(a,s,c)),createRenderInputsOfAudioNode=(o,e,s)=>async(a,c,d)=>{const _=o(a);await Promise.all(_.activeInputs.map((b,k)=>Array.from(b).map(async([$,j])=>{const et=await e($).render($,c),tt=a.context.destination;!s($)&&(a!==tt||!s(a))&&et.connect(d,j,k)})).reduce((b,k)=>[...b,...k],[]))},createRenderInputsOfAudioParam=(o,e,s)=>async(a,c,d)=>{const _=e(a);await Promise.all(Array.from(_.activeInputs).map(async([b,k])=>{const j=await o(b).render(b,c);s(b)||j.connect(d,k)}))},createRenderNativeOfflineAudioContext=(o,e,s,a)=>c=>o(testPromiseSupport,()=>testPromiseSupport(c))?Promise.resolve(o(a,a)).then(d=>{if(!d){const _=s(c,512,0,1);c.oncomplete=()=>{_.onaudioprocess=null,_.disconnect()},_.onaudioprocess=()=>c.currentTime,_.connect(c.destination)}return c.startRendering()}):new Promise(d=>{const _=e(c,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});c.oncomplete=b=>{_.disconnect(),d(b.renderedBuffer)},_.connect(c.destination),c.startRendering()}),createSetActiveAudioWorkletNodeInputs=o=>(e,s)=>{o.set(e,s)},createSetAudioNodeTailTime=o=>(e,s)=>o.set(e,s),createStartRendering=(o,e,s,a,c,d,_,b)=>(k,$)=>s(k).render(k,$).then(()=>Promise.all(Array.from(a($)).map(j=>s(j).render(j,$)))).then(()=>c($)).then(j=>(typeof j.copyFromChannel!="function"?(_(j),wrapAudioBufferGetChannelDataMethod(j)):e(d,()=>d(j))||b(j),o.add(j),j)),DEFAULT_OPTIONS$1={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},createStereoPannerNodeConstructor=(o,e,s,a,c,d)=>class extends o{constructor(b,k){const $=c(b),j=_t(_t({},DEFAULT_OPTIONS$1),k),_e=s($,j),et=d($),tt=et?a():null;super(b,!1,_e,tt),this._pan=e(this,et,_e.pan)}get pan(){return this._pan}},createStereoPannerNodeRendererFactory=(o,e,s,a,c)=>()=>{const d=new WeakMap,_=async(b,k)=>{let $=s(b);const j=isOwnedByContext($,k);if(!j){const _e={channelCount:$.channelCount,channelCountMode:$.channelCountMode,channelInterpretation:$.channelInterpretation,pan:$.pan.value};$=e(k,_e)}return d.set(k,$),j?await o(k,b.pan,$.pan):await a(k,b.pan,$.pan),isNativeAudioNodeFaker($)?await c(b,k,$.inputs[0]):await c(b,k,$),$};return{render(b,k){const $=d.get(k);return $!==void 0?Promise.resolve($):_(b,k)}}},createTestAudioBufferConstructorSupport=o=>()=>{if(o===null)return!1;try{new o({length:1,sampleRate:44100})}catch{return!1}return!0},createTestAudioBufferCopyChannelMethodsSubarraySupport=o=>()=>{if(o===null)return!1;const s=new o(1,1,44100).createBuffer(1,1,44100);if(s.copyToChannel===void 0)return!0;const a=new Float32Array(2);try{s.copyFromChannel(a,0,0)}catch{return!1}return!0},createTestAudioContextCloseMethodSupport=o=>()=>{if(o===null)return!1;if(o.prototype!==void 0&&o.prototype.close!==void 0)return!0;const e=new o,s=e.close!==void 0;try{e.close()}catch{}return s},createTestAudioContextDecodeAudioDataMethodTypeErrorSupport=o=>()=>{if(o===null)return Promise.resolve(!1);const e=new o(1,1,44100);return new Promise(s=>{let a=!0;const c=_=>{a&&(a=!1,e.startRendering(),s(_ instanceof TypeError))};let d;try{d=e.decodeAudioData(null,()=>{},c)}catch(_){c(_)}d!==void 0&&d.catch(c)})},createTestAudioContextOptionsSupport=o=>()=>{if(o===null)return!1;let e;try{e=new o({latencyHint:"balanced"})}catch{return!1}return e.close(),!0},createTestAudioNodeConnectMethodSupport=o=>()=>{if(o===null)return!1;const s=new o(1,1,44100).createGain(),a=s.connect(s)===s;return s.disconnect(s),a},createTestAudioWorkletProcessorNoOutputsSupport=(o,e)=>async()=>{if(o===null)return!0;if(e===null)return!1;const s=new Blob(['let c,p;class A extends AudioWorkletProcessor{constructor(){super();this.port.onmessage=(e)=>{p=e.data;p.onmessage=()=>{p.postMessage(c);p.close()};this.port.postMessage(0)}}process(){c=1}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),a=new MessageChannel,c=new e(1,128,44100),d=URL.createObjectURL(s);let _=!1;try{await c.audioWorklet.addModule(d);const b=new o(c,"a",{numberOfOutputs:0}),k=c.createOscillator();await new Promise($=>{b.port.onmessage=()=>$(),b.port.postMessage(a.port2,[a.port2])}),b.port.onmessage=()=>_=!0,k.connect(b),k.start(0),await c.startRendering(),_=await new Promise($=>{a.port1.onmessage=({data:j})=>$(j===1),a.port1.postMessage(0)})}catch{}finally{a.port1.close(),URL.revokeObjectURL(d)}return _},createTestAudioWorkletProcessorPostMessageSupport=(o,e)=>async()=>{if(o===null)return!0;if(e===null)return!1;const s=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),a=new e(1,128,44100),c=URL.createObjectURL(s);let d=!1,_=!1;try{await a.audioWorklet.addModule(c);const b=new o(a,"a",{numberOfOutputs:0}),k=a.createOscillator();b.port.onmessage=()=>d=!0,b.onprocessorerror=()=>_=!0,k.connect(b),k.start(0),await a.startRendering()}catch{}finally{URL.revokeObjectURL(c)}return d&&!_},createTestChannelMergerNodeChannelCountSupport=o=>()=>{if(o===null)return!1;const s=new o(1,1,44100).createChannelMerger();if(s.channelCountMode==="max")return!0;try{s.channelCount=2}catch{return!0}return!1},createTestConstantSourceNodeAccurateSchedulingSupport=o=>()=>{if(o===null)return!1;const e=new o(1,1,44100);return e.createConstantSource===void 0?!0:e.createConstantSource().offset.maxValue!==Number.POSITIVE_INFINITY},createTestConvolverNodeBufferReassignabilitySupport=o=>()=>{if(o===null)return!1;const e=new o(1,1,44100),s=e.createConvolver();s.buffer=e.createBuffer(1,1,e.sampleRate);try{s.buffer=e.createBuffer(1,1,e.sampleRate)}catch{return!1}return!0},createTestConvolverNodeChannelCountSupport=o=>()=>{if(o===null)return!1;const s=new o(1,1,44100).createConvolver();try{s.channelCount=1}catch{return!1}return!0},createTestIsSecureContextSupport=o=>()=>o!==null&&o.hasOwnProperty("isSecureContext"),createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport=o=>()=>{if(o===null)return!1;const e=new o;try{return e.createMediaStreamSource(new MediaStream),!1}catch{return!0}finally{e.close()}},createTestOfflineAudioContextCurrentTimeSupport=(o,e)=>()=>{if(e===null)return Promise.resolve(!1);const s=new e(1,1,44100),a=o(s,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise(c=>{s.oncomplete=()=>{a.disconnect(),c(s.currentTime!==0)},s.startRendering()})},createTestStereoPannerNodeDefaultValueSupport=o=>()=>{if(o===null)return Promise.resolve(!1);const e=new o(1,1,44100);if(e.createStereoPanner===void 0||e.createConstantSource===void 0)return Promise.resolve(!0);const s=e.createConstantSource(),a=e.createStereoPanner();return s.channelCount=1,s.offset.value=1,a.channelCount=1,s.start(),s.connect(a).connect(e.destination),e.startRendering().then(c=>c.getChannelData(0)[0]!==1)},createUnknownError=()=>new DOMException("","UnknownError"),DEFAULT_OPTIONS={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},createWaveShaperNodeConstructor=(o,e,s,a,c,d,_)=>class extends o{constructor(k,$){const j=c(k),_e=_t(_t({},DEFAULT_OPTIONS),$),et=s(j,_e),nt=d(j)?a():null;super(k,!0,et,nt),this._isCurveNullified=!1,this._nativeWaveShaperNode=et,_(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(k){if(k===null)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(k.length<2)throw e();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=k}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(k){this._nativeWaveShaperNode.oversample=k}},createWaveShaperNodeRendererFactory=(o,e,s)=>()=>{const a=new WeakMap,c=async(d,_)=>{let b=e(d);if(!isOwnedByContext(b,_)){const $={channelCount:b.channelCount,channelCountMode:b.channelCountMode,channelInterpretation:b.channelInterpretation,curve:b.curve,oversample:b.oversample};b=o(_,$)}return a.set(_,b),isNativeAudioNodeFaker(b)?await s(d,_,b.inputs[0]):await s(d,_,b),b};return{render(d,_){const b=a.get(_);return b!==void 0?Promise.resolve(b):c(d,_)}}},createWindow=()=>typeof window=="undefined"?null:window,createWrapAudioBufferCopyChannelMethods=(o,e)=>s=>{s.copyFromChannel=(a,c,d=0)=>{const _=o(d),b=o(c);if(b>=s.numberOfChannels)throw e();const k=s.length,$=s.getChannelData(b),j=a.length;for(let _e=_<0?-_:0;_e+_{const _=o(d),b=o(c);if(b>=s.numberOfChannels)throw e();const k=s.length,$=s.getChannelData(b),j=a.length;for(let _e=_<0?-_:0;_e+_e=>{e.copyFromChannel=(s=>(a,c,d=0)=>{const _=o(d),b=o(c);if(_(a,c,d=0)=>{const _=o(d),b=o(c);if(_(e,s)=>{const a=s.createBuffer(1,1,44100);e.buffer===null&&(e.buffer=a),o(e,"buffer",c=>()=>{const d=c.call(e);return d===a?null:d},c=>d=>c.call(e,d===null?a:d))},createWrapChannelMergerNode=(o,e)=>(s,a)=>{a.channelCount=1,a.channelCountMode="explicit",Object.defineProperty(a,"channelCount",{get:()=>1,set:()=>{throw o()}}),Object.defineProperty(a,"channelCountMode",{get:()=>"explicit",set:()=>{throw o()}});const c=s.createBufferSource();e(a,()=>{const b=a.numberOfInputs;for(let k=0;kc.disconnect(a))},getFirstSample=(o,e,s)=>o.copyFromChannel===void 0?o.getChannelData(s)[0]:(o.copyFromChannel(e,s),e[0]),isDCCurve=o=>{if(o===null)return!1;const e=o.length;return e%2!==0?o[Math.floor(e/2)]!==0:o[e/2-1]+o[e/2]!==0},overwriteAccessors=(o,e,s,a)=>{let c=o;for(;!c.hasOwnProperty(e);)c=Object.getPrototypeOf(c);const{get:d,set:_}=Object.getOwnPropertyDescriptor(c,e);Object.defineProperty(o,e,{get:s(d),set:a(_)})},sanitizeAudioWorkletNodeOptions=o=>wt(_t({},o),{outputChannelCount:o.outputChannelCount!==void 0?o.outputChannelCount:o.numberOfInputs===1&&o.numberOfOutputs===1?[o.channelCount]:Array.from({length:o.numberOfOutputs},()=>1)}),sanitizeChannelSplitterOptions=o=>wt(_t({},o),{channelCount:o.numberOfOutputs}),sanitizePeriodicWaveOptions=o=>{const{imag:e,real:s}=o;return e===void 0?s===void 0?wt(_t({},o),{imag:[0,0],real:[0,0]}):wt(_t({},o),{imag:Array.from(s,()=>0),real:s}):s===void 0?wt(_t({},o),{imag:e,real:Array.from(e,()=>0)}):wt(_t({},o),{imag:e,real:s})},setValueAtTimeUntilPossible=(o,e,s)=>{try{o.setValueAtTime(e,s)}catch(a){if(a.code!==9)throw a;setValueAtTimeUntilPossible(o,e,s+1e-7)}},testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport=o=>{const e=o.createBufferSource();e.start();try{e.start()}catch{return!0}return!1},testAudioBufferSourceNodeStartMethodOffsetClampingSupport=o=>{const e=o.createBufferSource(),s=o.createBuffer(1,1,44100);e.buffer=s;try{e.start(0,1)}catch{return!1}return!0},testAudioBufferSourceNodeStopMethodNullifiedBufferSupport=o=>{const e=o.createBufferSource();e.start();try{e.stop()}catch{return!1}return!0},testAudioScheduledSourceNodeStartMethodNegativeParametersSupport=o=>{const e=o.createOscillator();try{e.start(-1)}catch(s){return s instanceof RangeError}return!1},testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport=o=>{const e=o.createBuffer(1,1,44100),s=o.createBufferSource();s.buffer=e,s.start(),s.stop();try{return s.stop(),!0}catch{return!1}},testAudioScheduledSourceNodeStopMethodNegativeParametersSupport=o=>{const e=o.createOscillator();try{e.stop(-1)}catch(s){return s instanceof RangeError}return!1},testAudioWorkletNodeOptionsClonability=o=>{const{port1:e,port2:s}=new MessageChannel;try{e.postMessage(o)}finally{e.close(),s.close()}},testDomExceptionConstructorSupport=()=>{try{new DOMException}catch{return!1}return!0},testTransferablesSupport=()=>new Promise(o=>{const e=new ArrayBuffer(0),{port1:s,port2:a}=new MessageChannel;s.onmessage=({data:c})=>o(c!==null),a.postMessage(e,[e])}),wrapAudioBufferSourceNodeStartMethodOffsetClamping=o=>{o.start=(e=>(s=0,a=0,c)=>{const d=o.buffer,_=d===null?a:Math.min(d.duration,a);d!==null&&_>d.duration-.5/o.context.sampleRate?e.call(o,s,0,0):e.call(o,s,_,c)})(o.start)},wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls=(o,e)=>{const s=e.createGain();o.connect(s);const a=(c=>()=>{c.call(o,s),o.removeEventListener("ended",a)})(o.disconnect);o.addEventListener("ended",a),interceptConnections(o,s),o.stop=(c=>{let d=!1;return(_=0)=>{if(d)try{c.call(o,_)}catch{s.gain.setValueAtTime(0,_)}else c.call(o,_),d=!0}})(o.stop)},wrapEventListener=(o,e)=>s=>{const a={value:o};return Object.defineProperties(s,{currentTarget:a,target:a}),typeof e=="function"?e.call(o,s):e.handleEvent.call(o,s)},addActiveInputConnectionToAudioNode=createAddActiveInputConnectionToAudioNode(insertElementInSet),addPassiveInputConnectionToAudioNode=createAddPassiveInputConnectionToAudioNode(insertElementInSet),deleteActiveInputConnectionToAudioNode=createDeleteActiveInputConnectionToAudioNode(pickElementFromSet),audioNodeTailTimeStore=new WeakMap,getAudioNodeTailTime=createGetAudioNodeTailTime(audioNodeTailTimeStore),cacheTestResult=createCacheTestResult(new Map,new WeakMap),window$1=createWindow(),createNativeAnalyserNode=createNativeAnalyserNodeFactory(cacheTestResult,createIndexSizeError),getAudioNodeRenderer=createGetAudioNodeRenderer(getAudioNodeConnections),renderInputsOfAudioNode=createRenderInputsOfAudioNode(getAudioNodeConnections,getAudioNodeRenderer,isPartOfACycle),createAnalyserNodeRenderer=createAnalyserNodeRendererFactory(createNativeAnalyserNode,getNativeAudioNode,renderInputsOfAudioNode),getNativeContext=createGetNativeContext(CONTEXT_STORE),nativeOfflineAudioContextConstructor=createNativeOfflineAudioContextConstructor(window$1),isNativeOfflineAudioContext=createIsNativeOfflineAudioContext(nativeOfflineAudioContextConstructor),audioParamAudioNodeStore=new WeakMap,eventTargetConstructor=createEventTargetConstructor(wrapEventListener),nativeAudioContextConstructor=createNativeAudioContextConstructor(window$1),isNativeAudioContext=createIsNativeAudioContext(nativeAudioContextConstructor),isNativeAudioNode=createIsNativeAudioNode(window$1),isNativeAudioParam=createIsNativeAudioParam(window$1),nativeAudioWorkletNodeConstructor=createNativeAudioWorkletNodeConstructor(window$1),audioNodeConstructor=createAudioNodeConstructor(createAddAudioNodeConnections(AUDIO_NODE_CONNECTIONS_STORE),createAddConnectionToAudioNode(addActiveInputConnectionToAudioNode,addPassiveInputConnectionToAudioNode,connectNativeAudioNodeToNativeAudioNode,deleteActiveInputConnectionToAudioNode,disconnectNativeAudioNodeFromNativeAudioNode,getAudioNodeConnections,getAudioNodeTailTime,getEventListenersOfAudioNode,getNativeAudioNode,insertElementInSet,isActiveAudioNode,isPartOfACycle,isPassiveAudioNode),cacheTestResult,createIncrementCycleCounterFactory(CYCLE_COUNTERS,disconnectNativeAudioNodeFromNativeAudioNode,getAudioNodeConnections,getNativeAudioNode,getNativeAudioParam,isActiveAudioNode),createIndexSizeError,createInvalidAccessError,createNotSupportedError,createDecrementCycleCounter(connectNativeAudioNodeToNativeAudioNode,CYCLE_COUNTERS,getAudioNodeConnections,getNativeAudioNode,getNativeAudioParam,getNativeContext,isActiveAudioNode,isNativeOfflineAudioContext),createDetectCycles(audioParamAudioNodeStore,getAudioNodeConnections,getValueForKey),eventTargetConstructor,getNativeContext,isNativeAudioContext,isNativeAudioNode,isNativeAudioParam,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor),analyserNodeConstructor=createAnalyserNodeConstructor(audioNodeConstructor,createAnalyserNodeRenderer,createIndexSizeError,createNativeAnalyserNode,getNativeContext,isNativeOfflineAudioContext),audioBufferStore=new WeakSet,nativeAudioBufferConstructor=createNativeAudioBufferConstructor(window$1),convertNumberToUnsignedLong=createConvertNumberToUnsignedLong(new Uint32Array(1)),wrapAudioBufferCopyChannelMethods=createWrapAudioBufferCopyChannelMethods(convertNumberToUnsignedLong,createIndexSizeError),wrapAudioBufferCopyChannelMethodsOutOfBounds=createWrapAudioBufferCopyChannelMethodsOutOfBounds(convertNumberToUnsignedLong),audioBufferConstructor=createAudioBufferConstructor(audioBufferStore,cacheTestResult,createNotSupportedError,nativeAudioBufferConstructor,nativeOfflineAudioContextConstructor,createTestAudioBufferConstructorSupport(nativeAudioBufferConstructor),wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),addSilentConnection=createAddSilentConnection(createNativeGainNode),renderInputsOfAudioParam=createRenderInputsOfAudioParam(getAudioNodeRenderer,getAudioParamConnections,isPartOfACycle),connectAudioParam=createConnectAudioParam(renderInputsOfAudioParam),createNativeAudioBufferSourceNode=createNativeAudioBufferSourceNodeFactory(addSilentConnection,cacheTestResult,testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport,testAudioBufferSourceNodeStartMethodOffsetClampingSupport,testAudioBufferSourceNodeStopMethodNullifiedBufferSupport,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,wrapAudioBufferSourceNodeStartMethodOffsetClamping,createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer(overwriteAccessors),wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls),renderAutomation=createRenderAutomation(createGetAudioParamRenderer(getAudioParamConnections),renderInputsOfAudioParam),createAudioBufferSourceNodeRenderer=createAudioBufferSourceNodeRendererFactory(connectAudioParam,createNativeAudioBufferSourceNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),createAudioParam=createAudioParamFactory(createAddAudioParamConnections(AUDIO_PARAM_CONNECTIONS_STORE),audioParamAudioNodeStore,AUDIO_PARAM_STORE,createAudioParamRenderer,createCancelAndHoldAutomationEvent,createCancelScheduledValuesAutomationEvent,createExponentialRampToValueAutomationEvent,createLinearRampToValueAutomationEvent,createSetTargetAutomationEvent,createSetValueAutomationEvent,createSetValueCurveAutomationEvent,nativeAudioContextConstructor,setValueAtTimeUntilPossible),audioBufferSourceNodeConstructor=createAudioBufferSourceNodeConstructor(audioNodeConstructor,createAudioBufferSourceNodeRenderer,createAudioParam,createInvalidStateError,createNativeAudioBufferSourceNode,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),audioDestinationNodeConstructor=createAudioDestinationNodeConstructor(audioNodeConstructor,createAudioDestinationNodeRenderer,createIndexSizeError,createInvalidStateError,createNativeAudioDestinationNodeFactory(createNativeGainNode,overwriteAccessors),getNativeContext,isNativeOfflineAudioContext,renderInputsOfAudioNode),createBiquadFilterNodeRenderer=createBiquadFilterNodeRendererFactory(connectAudioParam,createNativeBiquadFilterNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),setAudioNodeTailTime=createSetAudioNodeTailTime(audioNodeTailTimeStore),biquadFilterNodeConstructor=createBiquadFilterNodeConstructor(audioNodeConstructor,createAudioParam,createBiquadFilterNodeRenderer,createInvalidAccessError,createNativeBiquadFilterNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),monitorConnections=createMonitorConnections(insertElementInSet,isNativeAudioNode),wrapChannelMergerNode=createWrapChannelMergerNode(createInvalidStateError,monitorConnections),createNativeChannelMergerNode=createNativeChannelMergerNodeFactory(nativeAudioContextConstructor,wrapChannelMergerNode),createChannelMergerNodeRenderer=createChannelMergerNodeRendererFactory(createNativeChannelMergerNode,getNativeAudioNode,renderInputsOfAudioNode),channelMergerNodeConstructor=createChannelMergerNodeConstructor(audioNodeConstructor,createChannelMergerNodeRenderer,createNativeChannelMergerNode,getNativeContext,isNativeOfflineAudioContext),createChannelSplitterNodeRenderer=createChannelSplitterNodeRendererFactory(createNativeChannelSplitterNode,getNativeAudioNode,renderInputsOfAudioNode),channelSplitterNodeConstructor=createChannelSplitterNodeConstructor(audioNodeConstructor,createChannelSplitterNodeRenderer,createNativeChannelSplitterNode,getNativeContext,isNativeOfflineAudioContext,sanitizeChannelSplitterOptions),createNativeConstantSourceNodeFaker=createNativeConstantSourceNodeFakerFactory(addSilentConnection,createNativeAudioBufferSourceNode,createNativeGainNode,monitorConnections),createNativeConstantSourceNode=createNativeConstantSourceNodeFactory(addSilentConnection,cacheTestResult,createNativeConstantSourceNodeFaker,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport),createConstantSourceNodeRenderer=createConstantSourceNodeRendererFactory(connectAudioParam,createNativeConstantSourceNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),constantSourceNodeConstructor=createConstantSourceNodeConstructor(audioNodeConstructor,createAudioParam,createConstantSourceNodeRenderer,createNativeConstantSourceNode,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),createNativeConvolverNode=createNativeConvolverNodeFactory(createNotSupportedError,overwriteAccessors),createConvolverNodeRenderer=createConvolverNodeRendererFactory(createNativeConvolverNode,getNativeAudioNode,renderInputsOfAudioNode),convolverNodeConstructor=createConvolverNodeConstructor(audioNodeConstructor,createConvolverNodeRenderer,createNativeConvolverNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createDelayNodeRenderer=createDelayNodeRendererFactory(connectAudioParam,createNativeDelayNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),delayNodeConstructor=createDelayNodeConstructor(audioNodeConstructor,createAudioParam,createDelayNodeRenderer,createNativeDelayNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createNativeDynamicsCompressorNode=createNativeDynamicsCompressorNodeFactory(createNotSupportedError),createDynamicsCompressorNodeRenderer=createDynamicsCompressorNodeRendererFactory(connectAudioParam,createNativeDynamicsCompressorNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),dynamicsCompressorNodeConstructor=createDynamicsCompressorNodeConstructor(audioNodeConstructor,createAudioParam,createDynamicsCompressorNodeRenderer,createNativeDynamicsCompressorNode,createNotSupportedError,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createGainNodeRenderer=createGainNodeRendererFactory(connectAudioParam,createNativeGainNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),gainNodeConstructor=createGainNodeConstructor(audioNodeConstructor,createAudioParam,createGainNodeRenderer,createNativeGainNode,getNativeContext,isNativeOfflineAudioContext),createNativeIIRFilterNodeFaker=createNativeIIRFilterNodeFakerFactory(createInvalidAccessError,createInvalidStateError,createNativeScriptProcessorNode,createNotSupportedError),renderNativeOfflineAudioContext=createRenderNativeOfflineAudioContext(cacheTestResult,createNativeGainNode,createNativeScriptProcessorNode,createTestOfflineAudioContextCurrentTimeSupport(createNativeGainNode,nativeOfflineAudioContextConstructor)),createIIRFilterNodeRenderer=createIIRFilterNodeRendererFactory(createNativeAudioBufferSourceNode,getNativeAudioNode,nativeOfflineAudioContextConstructor,renderInputsOfAudioNode,renderNativeOfflineAudioContext),createNativeIIRFilterNode=createNativeIIRFilterNodeFactory(createNativeIIRFilterNodeFaker),iIRFilterNodeConstructor=createIIRFilterNodeConstructor(audioNodeConstructor,createNativeIIRFilterNode,createIIRFilterNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createAudioListener=createAudioListenerFactory(createAudioParam,createNativeChannelMergerNode,createNativeConstantSourceNode,createNativeScriptProcessorNode,createNotSupportedError,getFirstSample,isNativeOfflineAudioContext,overwriteAccessors),unrenderedAudioWorkletNodeStore=new WeakMap,minimalBaseAudioContextConstructor=createMinimalBaseAudioContextConstructor(audioDestinationNodeConstructor,createAudioListener,eventTargetConstructor,isNativeOfflineAudioContext,unrenderedAudioWorkletNodeStore,wrapEventListener),createNativeOscillatorNode=createNativeOscillatorNodeFactory(addSilentConnection,cacheTestResult,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls),createOscillatorNodeRenderer=createOscillatorNodeRendererFactory(connectAudioParam,createNativeOscillatorNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),oscillatorNodeConstructor=createOscillatorNodeConstructor(audioNodeConstructor,createAudioParam,createNativeOscillatorNode,createOscillatorNodeRenderer,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),createConnectedNativeAudioBufferSourceNode=createConnectedNativeAudioBufferSourceNodeFactory(createNativeAudioBufferSourceNode),createNativeWaveShaperNodeFaker=createNativeWaveShaperNodeFakerFactory(createConnectedNativeAudioBufferSourceNode,createInvalidStateError,createNativeGainNode,isDCCurve,monitorConnections),createNativeWaveShaperNode=createNativeWaveShaperNodeFactory(createConnectedNativeAudioBufferSourceNode,createInvalidStateError,createNativeWaveShaperNodeFaker,isDCCurve,monitorConnections,nativeAudioContextConstructor,overwriteAccessors),createNativePannerNodeFaker=createNativePannerNodeFakerFactory(connectNativeAudioNodeToNativeAudioNode,createInvalidStateError,createNativeChannelMergerNode,createNativeGainNode,createNativeScriptProcessorNode,createNativeWaveShaperNode,createNotSupportedError,disconnectNativeAudioNodeFromNativeAudioNode,getFirstSample,monitorConnections),createNativePannerNode=createNativePannerNodeFactory(createNativePannerNodeFaker),createPannerNodeRenderer=createPannerNodeRendererFactory(connectAudioParam,createNativeChannelMergerNode,createNativeConstantSourceNode,createNativeGainNode,createNativePannerNode,getNativeAudioNode,nativeOfflineAudioContextConstructor,renderAutomation,renderInputsOfAudioNode,renderNativeOfflineAudioContext),pannerNodeConstructor=createPannerNodeConstructor(audioNodeConstructor,createAudioParam,createNativePannerNode,createPannerNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createNativePeriodicWave=createNativePeriodicWaveFactory(createIndexSizeError),periodicWaveConstructor=createPeriodicWaveConstructor(createNativePeriodicWave,getNativeContext,new WeakSet,sanitizePeriodicWaveOptions),nativeStereoPannerNodeFakerFactory=createNativeStereoPannerNodeFakerFactory(createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeGainNode,createNativeWaveShaperNode,createNotSupportedError,monitorConnections),createNativeStereoPannerNode=createNativeStereoPannerNodeFactory(nativeStereoPannerNodeFakerFactory,createNotSupportedError),createStereoPannerNodeRenderer=createStereoPannerNodeRendererFactory(connectAudioParam,createNativeStereoPannerNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),stereoPannerNodeConstructor=createStereoPannerNodeConstructor(audioNodeConstructor,createAudioParam,createNativeStereoPannerNode,createStereoPannerNodeRenderer,getNativeContext,isNativeOfflineAudioContext),createWaveShaperNodeRenderer=createWaveShaperNodeRendererFactory(createNativeWaveShaperNode,getNativeAudioNode,renderInputsOfAudioNode),waveShaperNodeConstructor=createWaveShaperNodeConstructor(audioNodeConstructor,createInvalidStateError,createNativeWaveShaperNode,createWaveShaperNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),isSecureContext=createIsSecureContext(window$1),exposeCurrentFrameAndCurrentTime=createExposeCurrentFrameAndCurrentTime(window$1),backupOfflineAudioContextStore=new WeakMap,getOrCreateBackupOfflineAudioContext=createGetOrCreateBackupOfflineAudioContext(backupOfflineAudioContextStore,nativeOfflineAudioContextConstructor),addAudioWorkletModule=isSecureContext?createAddAudioWorkletModule(cacheTestResult,createNotSupportedError,createEvaluateSource(window$1),exposeCurrentFrameAndCurrentTime,createFetchSource(createAbortError),getNativeContext,getOrCreateBackupOfflineAudioContext,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor,new WeakMap,new WeakMap,createTestAudioWorkletProcessorPostMessageSupport(nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor),window$1):void 0,isNativeContext=createIsNativeContext(isNativeAudioContext,isNativeOfflineAudioContext),decodeAudioData=createDecodeAudioData(audioBufferStore,cacheTestResult,createDataCloneError,createEncodingError,new WeakSet,getNativeContext,isNativeContext,testAudioBufferCopyChannelMethodsOutOfBoundsSupport,testPromiseSupport,wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),baseAudioContextConstructor=createBaseAudioContextConstructor(addAudioWorkletModule,analyserNodeConstructor,audioBufferConstructor,audioBufferSourceNodeConstructor,biquadFilterNodeConstructor,channelMergerNodeConstructor,channelSplitterNodeConstructor,constantSourceNodeConstructor,convolverNodeConstructor,decodeAudioData,delayNodeConstructor,dynamicsCompressorNodeConstructor,gainNodeConstructor,iIRFilterNodeConstructor,minimalBaseAudioContextConstructor,oscillatorNodeConstructor,pannerNodeConstructor,periodicWaveConstructor,stereoPannerNodeConstructor,waveShaperNodeConstructor),mediaElementAudioSourceNodeConstructor=createMediaElementAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaElementAudioSourceNode,getNativeContext,isNativeOfflineAudioContext),mediaStreamAudioDestinationNodeConstructor=createMediaStreamAudioDestinationNodeConstructor(audioNodeConstructor,createNativeMediaStreamAudioDestinationNode,getNativeContext,isNativeOfflineAudioContext),mediaStreamAudioSourceNodeConstructor=createMediaStreamAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaStreamAudioSourceNode,getNativeContext,isNativeOfflineAudioContext),createNativeMediaStreamTrackAudioSourceNode=createNativeMediaStreamTrackAudioSourceNodeFactory(createInvalidStateError,isNativeOfflineAudioContext),mediaStreamTrackAudioSourceNodeConstructor=createMediaStreamTrackAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaStreamTrackAudioSourceNode,getNativeContext),audioContextConstructor=createAudioContextConstructor(baseAudioContextConstructor,createInvalidStateError,createNotSupportedError,createUnknownError,mediaElementAudioSourceNodeConstructor,mediaStreamAudioDestinationNodeConstructor,mediaStreamAudioSourceNodeConstructor,mediaStreamTrackAudioSourceNodeConstructor,nativeAudioContextConstructor),getUnrenderedAudioWorkletNodes=createGetUnrenderedAudioWorkletNodes(unrenderedAudioWorkletNodeStore),addUnrenderedAudioWorkletNode=createAddUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes),connectMultipleOutputs=createConnectMultipleOutputs(createIndexSizeError),deleteUnrenderedAudioWorkletNode=createDeleteUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes),disconnectMultipleOutputs=createDisconnectMultipleOutputs(createIndexSizeError),activeAudioWorkletNodeInputsStore=new WeakMap,getActiveAudioWorkletNodeInputs=createGetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore,getValueForKey),createNativeAudioWorkletNodeFaker=createNativeAudioWorkletNodeFakerFactory(connectMultipleOutputs,createIndexSizeError,createInvalidStateError,createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeConstantSourceNode,createNativeGainNode,createNativeScriptProcessorNode,createNotSupportedError,disconnectMultipleOutputs,exposeCurrentFrameAndCurrentTime,getActiveAudioWorkletNodeInputs,monitorConnections),createNativeAudioWorkletNode=createNativeAudioWorkletNodeFactory(createInvalidStateError,createNativeAudioWorkletNodeFaker,createNativeGainNode,createNotSupportedError,monitorConnections),createAudioWorkletNodeRenderer=createAudioWorkletNodeRendererFactory(connectAudioParam,connectMultipleOutputs,createNativeAudioBufferSourceNode,createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeConstantSourceNode,createNativeGainNode,deleteUnrenderedAudioWorkletNode,disconnectMultipleOutputs,exposeCurrentFrameAndCurrentTime,getNativeAudioNode,nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor,renderAutomation,renderInputsOfAudioNode,renderNativeOfflineAudioContext),getBackupOfflineAudioContext=createGetBackupOfflineAudioContext(backupOfflineAudioContextStore),setActiveAudioWorkletNodeInputs=createSetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore),audioWorkletNodeConstructor=isSecureContext?createAudioWorkletNodeConstructor(addUnrenderedAudioWorkletNode,audioNodeConstructor,createAudioParam,createAudioWorkletNodeRenderer,createNativeAudioWorkletNode,getAudioNodeConnections,getBackupOfflineAudioContext,getNativeContext,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor,sanitizeAudioWorkletNodeOptions,setActiveAudioWorkletNodeInputs,testAudioWorkletNodeOptionsClonability,wrapEventListener):void 0,createNativeOfflineAudioContext=createCreateNativeOfflineAudioContext(createNotSupportedError,nativeOfflineAudioContextConstructor),startRendering=createStartRendering(audioBufferStore,cacheTestResult,getAudioNodeRenderer,getUnrenderedAudioWorkletNodes,renderNativeOfflineAudioContext,testAudioBufferCopyChannelMethodsOutOfBoundsSupport,wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),offlineAudioContextConstructor=createOfflineAudioContextConstructor(baseAudioContextConstructor,cacheTestResult,createInvalidStateError,createNativeOfflineAudioContext,startRendering),isAnyAudioContext=createIsAnyAudioContext(CONTEXT_STORE,isNativeAudioContext),isAnyAudioNode=createIsAnyAudioNode(AUDIO_NODE_STORE,isNativeAudioNode),isAnyAudioParam=createIsAnyAudioParam(AUDIO_PARAM_STORE,isNativeAudioParam),isAnyOfflineAudioContext=createIsAnyOfflineAudioContext(CONTEXT_STORE,isNativeOfflineAudioContext),isSupported=()=>createIsSupportedPromise(cacheTestResult,createTestAudioBufferCopyChannelMethodsSubarraySupport(nativeOfflineAudioContextConstructor),createTestAudioContextCloseMethodSupport(nativeAudioContextConstructor),createTestAudioContextDecodeAudioDataMethodTypeErrorSupport(nativeOfflineAudioContextConstructor),createTestAudioContextOptionsSupport(nativeAudioContextConstructor),createTestAudioNodeConnectMethodSupport(nativeOfflineAudioContextConstructor),createTestAudioWorkletProcessorNoOutputsSupport(nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor),createTestChannelMergerNodeChannelCountSupport(nativeOfflineAudioContextConstructor),createTestConstantSourceNodeAccurateSchedulingSupport(nativeOfflineAudioContextConstructor),createTestConvolverNodeBufferReassignabilitySupport(nativeOfflineAudioContextConstructor),createTestConvolverNodeChannelCountSupport(nativeOfflineAudioContextConstructor),testDomExceptionConstructorSupport,createTestIsSecureContextSupport(window$1),createTestMediaStreamAudioSourceNodeMediaStreamWithoutAudioTrackSupport(nativeAudioContextConstructor),createTestStereoPannerNodeDefaultValueSupport(nativeOfflineAudioContextConstructor),testTransferablesSupport);function assert(o,e){if(!o)throw new Error(e)}function assertRange(o,e,s=1/0){if(!(e<=o&&o<=s))throw new RangeError(`Value must be within [${e}, ${s}], got: ${o}`)}function assertContextRunning(o){!o.isOffline&&o.state!=="running"&&warn('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}let defaultLogger=console;function setLogger(o){defaultLogger=o}function log(...o){defaultLogger.log(...o)}function warn(...o){defaultLogger.warn(...o)}var Debug=Object.freeze(Object.defineProperty({__proto__:null,assert,assertRange,assertContextRunning,setLogger,log,warn},Symbol.toStringTag,{value:"Module"}));function isUndef(o){return typeof o=="undefined"}function isDefined(o){return!isUndef(o)}function isFunction(o){return typeof o=="function"}function isNumber(o){return typeof o=="number"}function isObject(o){return Object.prototype.toString.call(o)==="[object Object]"&&o.constructor===Object}function isBoolean(o){return typeof o=="boolean"}function isArray(o){return Array.isArray(o)}function isString(o){return typeof o=="string"}function isNote$2(o){return isString(o)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(o)}function createAudioContext(o){return new audioContextConstructor(o)}function createOfflineAudioContext(o,e,s){return new offlineAudioContextConstructor(o,e,s)}const theWindow=typeof self=="object"?self:null,hasAudioContext=theWindow&&(theWindow.hasOwnProperty("AudioContext")||theWindow.hasOwnProperty("webkitAudioContext"));function createAudioWorkletNode(o,e,s){return assert(isDefined(audioWorkletNodeConstructor),"This node only works in a secure context (https or localhost)"),new audioWorkletNodeConstructor(o,e,s)}/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any @@ -268,47 +268,51 @@ PERFORMANCE OF THIS SOFTWARE. return val; } } -`;registerProcessor(workletName,bitCrusherWorklet);class BitCrusher extends Effect{constructor(){super(optionsFromArguments(BitCrusher.getDefaults(),arguments,["bits"])),this.name="BitCrusher";const e=optionsFromArguments(BitCrusher.getDefaults(),arguments,["bits"]);this._bitCrusherWorklet=new BitCrusherWorklet({context:this.context,bits:e.bits}),this.connectEffect(this._bitCrusherWorklet),this.bits=this._bitCrusherWorklet.bits}static getDefaults(){return Object.assign(Effect.getDefaults(),{bits:4})}dispose(){return super.dispose(),this._bitCrusherWorklet.dispose(),this}}class BitCrusherWorklet extends ToneAudioWorklet{constructor(){super(optionsFromArguments(BitCrusherWorklet.getDefaults(),arguments)),this.name="BitCrusherWorklet";const e=optionsFromArguments(BitCrusherWorklet.getDefaults(),arguments);this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this.bits=new Param({context:this.context,value:e.bits,units:"positive",minValue:1,maxValue:16,param:this._dummyParam,swappable:!0})}static getDefaults(){return Object.assign(ToneAudioWorklet.getDefaults(),{bits:12})}_audioWorkletName(){return workletName}onReady(e){connectSeries(this.input,e,this.output);const s=e.parameters.get("bits");this.bits.setParam(s)}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.bits.dispose(),this}}class Chebyshev extends Effect{constructor(){super(optionsFromArguments(Chebyshev.getDefaults(),arguments,["order"])),this.name="Chebyshev";const e=optionsFromArguments(Chebyshev.getDefaults(),arguments,["order"]);this._shaper=new WaveShaper({context:this.context,length:4096}),this._order=e.order,this.connectEffect(this._shaper),this.order=e.order,this.oversample=e.oversample}static getDefaults(){return Object.assign(Effect.getDefaults(),{order:1,oversample:"none"})}_getCoefficient(e,s,a){return a.has(s)||(s===0?a.set(s,0):s===1?a.set(s,e):a.set(s,2*e*this._getCoefficient(e,s-1,a)-this._getCoefficient(e,s-2,a))),a.get(s)}get order(){return this._order}set order(e){this._order=e,this._shaper.setMap(s=>this._getCoefficient(s,e,new Map))}get oversample(){return this._shaper.oversample}set oversample(e){this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.dispose(),this}}class Split extends ToneAudioNode{constructor(){super(optionsFromArguments(Split.getDefaults(),arguments,["channels"])),this.name="Split";const e=optionsFromArguments(Split.getDefaults(),arguments,["channels"]);this._splitter=this.input=this.output=this.context.createChannelSplitter(e.channels),this._internalChannels=[this._splitter]}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._splitter.disconnect(),this}}class Merge extends ToneAudioNode{constructor(){super(optionsFromArguments(Merge.getDefaults(),arguments,["channels"])),this.name="Merge";const e=optionsFromArguments(Merge.getDefaults(),arguments,["channels"]);this._merger=this.output=this.input=this.context.createChannelMerger(e.channels)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}}class StereoEffect extends ToneAudioNode{constructor(e){super(e),this.name="StereoEffect",this.input=new Gain$1({context:this.context}),this.input.channelCount=2,this.input.channelCountMode="explicit",this._dryWet=this.output=new CrossFade({context:this.context,fade:e.wet}),this.wet=this._dryWet.fade,this._split=new Split({context:this.context,channels:2}),this._merge=new Merge({context:this.context,channels:2}),this.input.connect(this._split),this.input.connect(this._dryWet.a),this._merge.connect(this._dryWet.b),readOnly$1(this,["wet"])}connectEffectLeft(...e){this._split.connect(e[0],0,0),connectSeries(...e),connect(e[e.length-1],this._merge,0,0)}connectEffectRight(...e){this._split.connect(e[0],1,0),connectSeries(...e),connect(e[e.length-1],this._merge,0,1)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{wet:1})}dispose(){return super.dispose(),this._dryWet.dispose(),this._split.dispose(),this._merge.dispose(),this}}class StereoFeedbackEffect extends StereoEffect{constructor(e){super(e),this.feedback=new Signal({context:this.context,value:e.feedback,units:"normalRange"}),this._feedbackL=new Gain$1({context:this.context}),this._feedbackR=new Gain$1({context:this.context}),this._feedbackSplit=new Split({context:this.context,channels:2}),this._feedbackMerge=new Merge({context:this.context,channels:2}),this._merge.connect(this._feedbackSplit),this._feedbackMerge.connect(this._split),this._feedbackSplit.connect(this._feedbackL,0,0),this._feedbackL.connect(this._feedbackMerge,0,0),this._feedbackSplit.connect(this._feedbackR,1,0),this._feedbackR.connect(this._feedbackMerge,0,1),this.feedback.fan(this._feedbackL.gain,this._feedbackR.gain),readOnly$1(this,["feedback"])}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{feedback:.5})}dispose(){return super.dispose(),this.feedback.dispose(),this._feedbackL.dispose(),this._feedbackR.dispose(),this._feedbackSplit.dispose(),this._feedbackMerge.dispose(),this}}class Chorus extends StereoFeedbackEffect{constructor(){super(optionsFromArguments(Chorus.getDefaults(),arguments,["frequency","delayTime","depth"])),this.name="Chorus";const e=optionsFromArguments(Chorus.getDefaults(),arguments,["frequency","delayTime","depth"]);this._depth=e.depth,this._delayTime=e.delayTime/1e3,this._lfoL=new LFO({context:this.context,frequency:e.frequency,min:0,max:1}),this._lfoR=new LFO({context:this.context,frequency:e.frequency,min:0,max:1,phase:180}),this._delayNodeL=new Delay({context:this.context}),this._delayNodeR=new Delay({context:this.context}),this.frequency=this._lfoL.frequency,readOnly$1(this,["frequency"]),this._lfoL.frequency.connect(this._lfoR.frequency),this.connectEffectLeft(this._delayNodeL),this.connectEffectRight(this._delayNodeR),this._lfoL.connect(this._delayNodeL.delayTime),this._lfoR.connect(this._delayNodeR.delayTime),this.depth=this._depth,this.type=e.type,this.spread=e.spread}static getDefaults(){return Object.assign(StereoFeedbackEffect.getDefaults(),{frequency:1.5,delayTime:3.5,depth:.7,type:"sine",spread:180,feedback:0,wet:.5})}get depth(){return this._depth}set depth(e){this._depth=e;const s=this._delayTime*e;this._lfoL.min=Math.max(this._delayTime-s,0),this._lfoL.max=this._delayTime+s,this._lfoR.min=Math.max(this._delayTime-s,0),this._lfoR.max=this._delayTime+s}get delayTime(){return this._delayTime*1e3}set delayTime(e){this._delayTime=e/1e3,this.depth=this._depth}get type(){return this._lfoL.type}set type(e){this._lfoL.type=e,this._lfoR.type=e}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(e){this._lfoL.phase=90-e/2,this._lfoR.phase=e/2+90}start(e){return this._lfoL.start(e),this._lfoR.start(e),this}stop(e){return this._lfoL.stop(e),this._lfoR.stop(e),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._delayNodeL.dispose(),this._delayNodeR.dispose(),this.frequency.dispose(),this}}class Distortion extends Effect{constructor(){super(optionsFromArguments(Distortion.getDefaults(),arguments,["distortion"])),this.name="Distortion";const e=optionsFromArguments(Distortion.getDefaults(),arguments,["distortion"]);this._shaper=new WaveShaper({context:this.context,length:4096}),this._distortion=e.distortion,this.connectEffect(this._shaper),this.distortion=e.distortion,this.oversample=e.oversample}static getDefaults(){return Object.assign(Effect.getDefaults(),{distortion:.4,oversample:"none"})}get distortion(){return this._distortion}set distortion(e){this._distortion=e;const s=e*100,a=Math.PI/180;this._shaper.setMap(c=>Math.abs(c)<.001?0:(3+s)*c*20*a/(Math.PI+s*Math.abs(c)))}get oversample(){return this._shaper.oversample}set oversample(e){this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.dispose(),this}}class FeedbackEffect extends Effect{constructor(e){super(e),this.name="FeedbackEffect",this._feedbackGain=new Gain$1({context:this.context,gain:e.feedback,units:"normalRange"}),this.feedback=this._feedbackGain.gain,readOnly$1(this,"feedback"),this.effectReturn.chain(this._feedbackGain,this.effectSend)}static getDefaults(){return Object.assign(Effect.getDefaults(),{feedback:.125})}dispose(){return super.dispose(),this._feedbackGain.dispose(),this.feedback.dispose(),this}}class FeedbackDelay extends FeedbackEffect{constructor(){super(optionsFromArguments(FeedbackDelay.getDefaults(),arguments,["delayTime","feedback"])),this.name="FeedbackDelay";const e=optionsFromArguments(FeedbackDelay.getDefaults(),arguments,["delayTime","feedback"]);this._delayNode=new Delay({context:this.context,delayTime:e.delayTime,maxDelay:e.maxDelay}),this.delayTime=this._delayNode.delayTime,this.connectEffect(this._delayNode),readOnly$1(this,"delayTime")}static getDefaults(){return Object.assign(FeedbackEffect.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._delayNode.dispose(),this.delayTime.dispose(),this}}class PhaseShiftAllpass extends ToneAudioNode{constructor(e){super(e),this.name="PhaseShiftAllpass",this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this.offset90=new Gain$1({context:this.context});const s=[.6923878,.9360654322959,.988229522686,.9987488452737],a=[.4021921162426,.856171088242,.9722909545651,.9952884791278];this._bank0=this._createAllPassFilterBank(s),this._bank1=this._createAllPassFilterBank(a),this._oneSampleDelay=this.context.createIIRFilter([0,1],[1,0]),connectSeries(this.input,...this._bank0,this._oneSampleDelay,this.output),connectSeries(this.input,...this._bank1,this.offset90)}_createAllPassFilterBank(e){return e.map(a=>{const c=[[a*a,0,-1],[1,0,-(a*a)]];return this.context.createIIRFilter(c[0],c[1])})}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.offset90.dispose(),this._bank0.forEach(e=>e.disconnect()),this._bank1.forEach(e=>e.disconnect()),this._oneSampleDelay.disconnect(),this}}class FrequencyShifter extends Effect{constructor(){super(optionsFromArguments(FrequencyShifter.getDefaults(),arguments,["frequency"])),this.name="FrequencyShifter";const e=optionsFromArguments(FrequencyShifter.getDefaults(),arguments,["frequency"]);this.frequency=new Signal({context:this.context,units:"frequency",value:e.frequency,minValue:-this.context.sampleRate/2,maxValue:this.context.sampleRate/2}),this._sine=new ToneOscillatorNode({context:this.context,type:"sine"}),this._cosine=new Oscillator({context:this.context,phase:-90,type:"sine"}),this._sineMultiply=new Multiply({context:this.context}),this._cosineMultiply=new Multiply({context:this.context}),this._negate=new Negate({context:this.context}),this._add=new Add({context:this.context}),this._phaseShifter=new PhaseShiftAllpass({context:this.context}),this.effectSend.connect(this._phaseShifter),this.frequency.fan(this._sine.frequency,this._cosine.frequency),this._phaseShifter.offset90.connect(this._cosineMultiply),this._cosine.connect(this._cosineMultiply.factor),this._phaseShifter.connect(this._sineMultiply),this._sine.connect(this._sineMultiply.factor),this._sineMultiply.connect(this._negate),this._cosineMultiply.connect(this._add),this._negate.connect(this._add.addend),this._add.connect(this.effectReturn);const s=this.immediate();this._sine.start(s),this._cosine.start(s)}static getDefaults(){return Object.assign(Effect.getDefaults(),{frequency:0})}dispose(){return super.dispose(),this.frequency.dispose(),this._add.dispose(),this._cosine.dispose(),this._cosineMultiply.dispose(),this._negate.dispose(),this._phaseShifter.dispose(),this._sine.dispose(),this._sineMultiply.dispose(),this}}const combFilterTunings=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100],allpassFilterFrequencies=[225,556,441,341];class Freeverb extends StereoEffect{constructor(){super(optionsFromArguments(Freeverb.getDefaults(),arguments,["roomSize","dampening"])),this.name="Freeverb",this._combFilters=[],this._allpassFiltersL=[],this._allpassFiltersR=[];const e=optionsFromArguments(Freeverb.getDefaults(),arguments,["roomSize","dampening"]);this.roomSize=new Signal({context:this.context,value:e.roomSize,units:"normalRange"}),this._allpassFiltersL=allpassFilterFrequencies.map(s=>{const a=this.context.createBiquadFilter();return a.type="allpass",a.frequency.value=s,a}),this._allpassFiltersR=allpassFilterFrequencies.map(s=>{const a=this.context.createBiquadFilter();return a.type="allpass",a.frequency.value=s,a}),this._combFilters=combFilterTunings.map((s,a)=>{const c=new LowpassCombFilter({context:this.context,dampening:e.dampening,delayTime:s});return as.dampening=e)}dispose(){return super.dispose(),this._allpassFiltersL.forEach(e=>e.disconnect()),this._allpassFiltersR.forEach(e=>e.disconnect()),this._combFilters.forEach(e=>e.dispose()),this.roomSize.dispose(),this}}const combFilterDelayTimes=[1687/25e3,1601/25e3,2053/25e3,2251/25e3],combFilterResonances=[.773,.802,.753,.733],allpassFilterFreqs=[347,113,37];class JCReverb extends StereoEffect{constructor(){super(optionsFromArguments(JCReverb.getDefaults(),arguments,["roomSize"])),this.name="JCReverb",this._allpassFilters=[],this._feedbackCombFilters=[];const e=optionsFromArguments(JCReverb.getDefaults(),arguments,["roomSize"]);this.roomSize=new Signal({context:this.context,value:e.roomSize,units:"normalRange"}),this._scaleRoomSize=new Scale({context:this.context,min:-.733,max:.197}),this._allpassFilters=allpassFilterFreqs.map(s=>{const a=this.context.createBiquadFilter();return a.type="allpass",a.frequency.value=s,a}),this._feedbackCombFilters=combFilterDelayTimes.map((s,a)=>{const c=new FeedbackCombFilter({context:this.context,delayTime:s});return this._scaleRoomSize.connect(c.resonance),c.resonance.value=combFilterResonances[a],ae.disconnect()),this._feedbackCombFilters.forEach(e=>e.dispose()),this.roomSize.dispose(),this._scaleRoomSize.dispose(),this}}class StereoXFeedbackEffect extends StereoFeedbackEffect{constructor(e){super(e),this._feedbackL.disconnect(),this._feedbackL.connect(this._feedbackMerge,0,1),this._feedbackR.disconnect(),this._feedbackR.connect(this._feedbackMerge,0,0),readOnly$1(this,["feedback"])}}class PingPongDelay extends StereoXFeedbackEffect{constructor(){super(optionsFromArguments(PingPongDelay.getDefaults(),arguments,["delayTime","feedback"])),this.name="PingPongDelay";const e=optionsFromArguments(PingPongDelay.getDefaults(),arguments,["delayTime","feedback"]);this._leftDelay=new Delay({context:this.context,maxDelay:e.maxDelay}),this._rightDelay=new Delay({context:this.context,maxDelay:e.maxDelay}),this._rightPreDelay=new Delay({context:this.context,maxDelay:e.maxDelay}),this.delayTime=new Signal({context:this.context,units:"time",value:e.delayTime}),this.connectEffectLeft(this._leftDelay),this.connectEffectRight(this._rightPreDelay,this._rightDelay),this.delayTime.fan(this._leftDelay.delayTime,this._rightDelay.delayTime,this._rightPreDelay.delayTime),this._feedbackL.disconnect(),this._feedbackL.connect(this._rightDelay),readOnly$1(this,["delayTime"])}static getDefaults(){return Object.assign(StereoXFeedbackEffect.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._leftDelay.dispose(),this._rightDelay.dispose(),this._rightPreDelay.dispose(),this.delayTime.dispose(),this}}class PitchShift extends FeedbackEffect{constructor(){super(optionsFromArguments(PitchShift.getDefaults(),arguments,["pitch"])),this.name="PitchShift";const e=optionsFromArguments(PitchShift.getDefaults(),arguments,["pitch"]);this._frequency=new Signal({context:this.context}),this._delayA=new Delay({maxDelay:1,context:this.context}),this._lfoA=new LFO({context:this.context,min:0,max:.1,type:"sawtooth"}).connect(this._delayA.delayTime),this._delayB=new Delay({maxDelay:1,context:this.context}),this._lfoB=new LFO({context:this.context,min:0,max:.1,type:"sawtooth",phase:180}).connect(this._delayB.delayTime),this._crossFade=new CrossFade({context:this.context}),this._crossFadeLFO=new LFO({context:this.context,min:0,max:1,type:"triangle",phase:90}).connect(this._crossFade.fade),this._feedbackDelay=new Delay({delayTime:e.delayTime,context:this.context}),this.delayTime=this._feedbackDelay.delayTime,readOnly$1(this,"delayTime"),this._pitch=e.pitch,this._windowSize=e.windowSize,this._delayA.connect(this._crossFade.a),this._delayB.connect(this._crossFade.b),this._frequency.fan(this._lfoA.frequency,this._lfoB.frequency,this._crossFadeLFO.frequency),this.effectSend.fan(this._delayA,this._delayB),this._crossFade.chain(this._feedbackDelay,this.effectReturn);const s=this.now();this._lfoA.start(s),this._lfoB.start(s),this._crossFadeLFO.start(s),this.windowSize=this._windowSize}static getDefaults(){return Object.assign(FeedbackEffect.getDefaults(),{pitch:0,windowSize:.1,delayTime:0,feedback:0})}get pitch(){return this._pitch}set pitch(e){this._pitch=e;let s=0;e<0?(this._lfoA.min=0,this._lfoA.max=this._windowSize,this._lfoB.min=0,this._lfoB.max=this._windowSize,s=intervalToFrequencyRatio(e-1)+1):(this._lfoA.min=this._windowSize,this._lfoA.max=0,this._lfoB.min=this._windowSize,this._lfoB.max=0,s=intervalToFrequencyRatio(e)-1),this._frequency.value=s*(1.2/this._windowSize)}get windowSize(){return this._windowSize}set windowSize(e){this._windowSize=this.toSeconds(e),this.pitch=this._pitch}dispose(){return super.dispose(),this._frequency.dispose(),this._delayA.dispose(),this._delayB.dispose(),this._lfoA.dispose(),this._lfoB.dispose(),this._crossFade.dispose(),this._crossFadeLFO.dispose(),this._feedbackDelay.dispose(),this}}class Phaser extends StereoEffect{constructor(){super(optionsFromArguments(Phaser.getDefaults(),arguments,["frequency","octaves","baseFrequency"])),this.name="Phaser";const e=optionsFromArguments(Phaser.getDefaults(),arguments,["frequency","octaves","baseFrequency"]);this._lfoL=new LFO({context:this.context,frequency:e.frequency,min:0,max:1}),this._lfoR=new LFO({context:this.context,frequency:e.frequency,min:0,max:1,phase:180}),this._baseFrequency=this.toFrequency(e.baseFrequency),this._octaves=e.octaves,this.Q=new Signal({context:this.context,value:e.Q,units:"positive"}),this._filtersL=this._makeFilters(e.stages,this._lfoL),this._filtersR=this._makeFilters(e.stages,this._lfoR),this.frequency=this._lfoL.frequency,this.frequency.value=e.frequency,this.connectEffectLeft(...this._filtersL),this.connectEffectRight(...this._filtersR),this._lfoL.frequency.connect(this._lfoR.frequency),this.baseFrequency=e.baseFrequency,this.octaves=e.octaves,this._lfoL.start(),this._lfoR.start(),readOnly$1(this,["frequency","Q"])}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{frequency:.5,octaves:3,stages:10,Q:10,baseFrequency:350})}_makeFilters(e,s){const a=[];for(let c=0;ce.disconnect()),this._filtersR.forEach(e=>e.disconnect()),this.frequency.dispose(),this}}class Reverb extends Effect{constructor(){super(optionsFromArguments(Reverb.getDefaults(),arguments,["decay"])),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();const e=optionsFromArguments(Reverb.getDefaults(),arguments,["decay"]);this._decay=e.decay,this._preDelay=e.preDelay,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(Effect.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(e){e=this.toSeconds(e),assertRange(e,.001),this._decay=e,this.generate()}get preDelay(){return this._preDelay}set preDelay(e){e=this.toSeconds(e),assertRange(e,0),this._preDelay=e,this.generate()}generate(){return __awaiter$4(this,void 0,void 0,function*(){const e=this.ready,s=new OfflineContext(2,this._decay+this._preDelay,this.context.sampleRate),a=new Noise({context:s}),c=new Noise({context:s}),d=new Merge({context:s});a.connect(d,0,0),c.connect(d,0,1);const _=new Gain$1({context:s}).toDestination();d.connect(_),a.start(0),c.start(0),_.gain.setValueAtTime(0,0),_.gain.setValueAtTime(1,this._preDelay),_.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);const b=s.render();return this.ready=b.then(noOp),yield e,this._convolver.buffer=(yield b).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}}class MidSideSplit extends ToneAudioNode{constructor(){super(optionsFromArguments(MidSideSplit.getDefaults(),arguments)),this.name="MidSideSplit",this._split=this.input=new Split({channels:2,context:this.context}),this._midAdd=new Add({context:this.context}),this.mid=new Multiply({context:this.context,value:Math.SQRT1_2}),this._sideSubtract=new Subtract({context:this.context}),this.side=new Multiply({context:this.context,value:Math.SQRT1_2}),this._split.connect(this._midAdd,0),this._split.connect(this._midAdd.addend,1),this._split.connect(this._sideSubtract,0),this._split.connect(this._sideSubtract.subtrahend,1),this._midAdd.connect(this.mid),this._sideSubtract.connect(this.side)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midAdd.dispose(),this._sideSubtract.dispose(),this._split.dispose(),this}}class MidSideMerge extends ToneAudioNode{constructor(){super(optionsFromArguments(MidSideMerge.getDefaults(),arguments)),this.name="MidSideMerge",this.mid=new Gain$1({context:this.context}),this.side=new Gain$1({context:this.context}),this._left=new Add({context:this.context}),this._leftMult=new Multiply({context:this.context,value:Math.SQRT1_2}),this._right=new Subtract({context:this.context}),this._rightMult=new Multiply({context:this.context,value:Math.SQRT1_2}),this._merge=this.output=new Merge({context:this.context}),this.mid.fan(this._left),this.side.connect(this._left.addend),this.mid.connect(this._right),this.side.connect(this._right.subtrahend),this._left.connect(this._leftMult),this._right.connect(this._rightMult),this._leftMult.connect(this._merge,0,0),this._rightMult.connect(this._merge,0,1)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._leftMult.dispose(),this._rightMult.dispose(),this._left.dispose(),this._right.dispose(),this}}class MidSideEffect extends Effect{constructor(e){super(e),this.name="MidSideEffect",this._midSideMerge=new MidSideMerge({context:this.context}),this._midSideSplit=new MidSideSplit({context:this.context}),this._midSend=this._midSideSplit.mid,this._sideSend=this._midSideSplit.side,this._midReturn=this._midSideMerge.mid,this._sideReturn=this._midSideMerge.side,this.effectSend.connect(this._midSideSplit),this._midSideMerge.connect(this.effectReturn)}connectEffectMid(...e){this._midSend.chain(...e,this._midReturn)}connectEffectSide(...e){this._sideSend.chain(...e,this._sideReturn)}dispose(){return super.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this._midSend.dispose(),this._sideSend.dispose(),this._midReturn.dispose(),this._sideReturn.dispose(),this}}class StereoWidener extends MidSideEffect{constructor(){super(optionsFromArguments(StereoWidener.getDefaults(),arguments,["width"])),this.name="StereoWidener";const e=optionsFromArguments(StereoWidener.getDefaults(),arguments,["width"]);this.width=new Signal({context:this.context,value:e.width,units:"normalRange"}),readOnly$1(this,["width"]),this._twoTimesWidthMid=new Multiply({context:this.context,value:2}),this._twoTimesWidthSide=new Multiply({context:this.context,value:2}),this._midMult=new Multiply({context:this.context}),this._twoTimesWidthMid.connect(this._midMult.factor),this.connectEffectMid(this._midMult),this._oneMinusWidth=new Subtract({context:this.context}),this._oneMinusWidth.connect(this._twoTimesWidthMid),connect(this.context.getConstant(1),this._oneMinusWidth),this.width.connect(this._oneMinusWidth.subtrahend),this._sideMult=new Multiply({context:this.context}),this.width.connect(this._twoTimesWidthSide),this._twoTimesWidthSide.connect(this._sideMult.factor),this.connectEffectSide(this._sideMult)}static getDefaults(){return Object.assign(MidSideEffect.getDefaults(),{width:.5})}dispose(){return super.dispose(),this.width.dispose(),this._midMult.dispose(),this._sideMult.dispose(),this._twoTimesWidthMid.dispose(),this._twoTimesWidthSide.dispose(),this._oneMinusWidth.dispose(),this}}class Tremolo extends StereoEffect{constructor(){super(optionsFromArguments(Tremolo.getDefaults(),arguments,["frequency","depth"])),this.name="Tremolo";const e=optionsFromArguments(Tremolo.getDefaults(),arguments,["frequency","depth"]);this._lfoL=new LFO({context:this.context,type:e.type,min:1,max:0}),this._lfoR=new LFO({context:this.context,type:e.type,min:1,max:0}),this._amplitudeL=new Gain$1({context:this.context}),this._amplitudeR=new Gain$1({context:this.context}),this.frequency=new Signal({context:this.context,value:e.frequency,units:"frequency"}),this.depth=new Signal({context:this.context,value:e.depth,units:"normalRange"}),readOnly$1(this,["frequency","depth"]),this.connectEffectLeft(this._amplitudeL),this.connectEffectRight(this._amplitudeR),this._lfoL.connect(this._amplitudeL.gain),this._lfoR.connect(this._amplitudeR.gain),this.frequency.fan(this._lfoL.frequency,this._lfoR.frequency),this.depth.fan(this._lfoR.amplitude,this._lfoL.amplitude),this.spread=e.spread}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{frequency:10,type:"sine",depth:.5,spread:180})}start(e){return this._lfoL.start(e),this._lfoR.start(e),this}stop(e){return this._lfoL.stop(e),this._lfoR.stop(e),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this.context.transport.syncSignal(this.frequency),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this.context.transport.unsyncSignal(this.frequency),this}get type(){return this._lfoL.type}set type(e){this._lfoL.type=e,this._lfoR.type=e}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(e){this._lfoL.phase=90-e/2,this._lfoR.phase=e/2+90}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._amplitudeL.dispose(),this._amplitudeR.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class Vibrato extends Effect{constructor(){super(optionsFromArguments(Vibrato.getDefaults(),arguments,["frequency","depth"])),this.name="Vibrato";const e=optionsFromArguments(Vibrato.getDefaults(),arguments,["frequency","depth"]);this._delayNode=new Delay({context:this.context,delayTime:0,maxDelay:e.maxDelay}),this._lfo=new LFO({context:this.context,type:e.type,min:0,max:e.maxDelay,frequency:e.frequency,phase:-90}).start().connect(this._delayNode.delayTime),this.frequency=this._lfo.frequency,this.depth=this._lfo.amplitude,this.depth.value=e.depth,readOnly$1(this,["frequency","depth"]),this.effectSend.chain(this._delayNode,this.effectReturn)}static getDefaults(){return Object.assign(Effect.getDefaults(),{maxDelay:.005,frequency:5,depth:.1,type:"sine"})}get type(){return this._lfo.type}set type(e){this._lfo.type=e}dispose(){return super.dispose(),this._delayNode.dispose(),this._lfo.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class Analyser extends ToneAudioNode{constructor(){super(optionsFromArguments(Analyser.getDefaults(),arguments,["type","size"])),this.name="Analyser",this._analysers=[],this._buffers=[];const e=optionsFromArguments(Analyser.getDefaults(),arguments,["type","size"]);this.input=this.output=this._gain=new Gain$1({context:this.context}),this._split=new Split({context:this.context,channels:e.channels}),this.input.connect(this._split),assertRange(e.channels,1);for(let s=0;s{const a=this._buffers[s];this._type==="fft"?e.getFloatFrequencyData(a):this._type==="waveform"&&e.getFloatTimeDomainData(a)}),this.channels===1?this._buffers[0]:this._buffers}get size(){return this._analysers[0].frequencyBinCount}set size(e){this._analysers.forEach((s,a)=>{s.fftSize=e*2,this._buffers[a]=new Float32Array(e)})}get channels(){return this._analysers.length}get type(){return this._type}set type(e){assert(e==="waveform"||e==="fft",`Analyser: invalid type: ${e}`),this._type=e}get smoothing(){return this._analysers[0].smoothingTimeConstant}set smoothing(e){this._analysers.forEach(s=>s.smoothingTimeConstant=e)}dispose(){return super.dispose(),this._analysers.forEach(e=>e.disconnect()),this._split.dispose(),this._gain.dispose(),this}}class MeterBase extends ToneAudioNode{constructor(){super(optionsFromArguments(MeterBase.getDefaults(),arguments)),this.name="MeterBase",this.input=this.output=this._analyser=new Analyser({context:this.context,size:256,type:"waveform"})}dispose(){return super.dispose(),this._analyser.dispose(),this}}class Meter extends MeterBase{constructor(){super(optionsFromArguments(Meter.getDefaults(),arguments,["smoothing"])),this.name="Meter",this._rms=0;const e=optionsFromArguments(Meter.getDefaults(),arguments,["smoothing"]);this.input=this.output=this._analyser=new Analyser({context:this.context,size:256,type:"waveform",channels:e.channels}),this.smoothing=e.smoothing,this.normalRange=e.normalRange}static getDefaults(){return Object.assign(MeterBase.getDefaults(),{smoothing:.8,normalRange:!1,channels:1})}getLevel(){return warn("'getLevel' has been changed to 'getValue'"),this.getValue()}getValue(){const e=this._analyser.getValue(),a=(this.channels===1?[e]:e).map(c=>{const d=c.reduce((b,k)=>b+k*k,0),_=Math.sqrt(d/c.length);return this._rms=Math.max(_,this._rms*this.smoothing),this.normalRange?this._rms:gainToDb(this._rms)});return this.channels===1?a[0]:a}get channels(){return this._analyser.channels}dispose(){return super.dispose(),this._analyser.dispose(),this}}class FFT extends MeterBase{constructor(){super(optionsFromArguments(FFT.getDefaults(),arguments,["size"])),this.name="FFT";const e=optionsFromArguments(FFT.getDefaults(),arguments,["size"]);this.normalRange=e.normalRange,this._analyser.type="fft",this.size=e.size}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{normalRange:!1,size:1024,smoothing:.8})}getValue(){return this._analyser.getValue().map(s=>this.normalRange?dbToGain(s):s)}get size(){return this._analyser.size}set size(e){this._analyser.size=e}get smoothing(){return this._analyser.smoothing}set smoothing(e){this._analyser.smoothing=e}getFrequencyOfIndex(e){return assert(0<=e&&es._updateSolo())}get muted(){return this.input.gain.value===0}_addSolo(){Solo._soloed.has(this.context)||Solo._soloed.set(this.context,new Set),Solo._soloed.get(this.context).add(this)}_removeSolo(){Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).delete(this)}_isSoloed(){return Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).has(this)}_noSolos(){return!Solo._soloed.has(this.context)||Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).size===0}_updateSolo(){this._isSoloed()?this.input.gain.value=1:this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),Solo._allSolos.get(this.context).delete(this),this._removeSolo(),this}}Solo._allSolos=new Map;Solo._soloed=new Map;class PanVol extends ToneAudioNode{constructor(){super(optionsFromArguments(PanVol.getDefaults(),arguments,["pan","volume"])),this.name="PanVol";const e=optionsFromArguments(PanVol.getDefaults(),arguments,["pan","volume"]);this._panner=this.input=new Panner({context:this.context,pan:e.pan,channelCount:e.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Volume({context:this.context,volume:e.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=e.mute,readOnly$1(this,["pan","volume"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}}class Channel extends ToneAudioNode{constructor(){super(optionsFromArguments(Channel.getDefaults(),arguments,["volume","pan"])),this.name="Channel";const e=optionsFromArguments(Channel.getDefaults(),arguments,["volume","pan"]);this._solo=this.input=new Solo({solo:e.solo,context:this.context}),this._panVol=this.output=new PanVol({context:this.context,pan:e.pan,volume:e.volume,mute:e.mute,channelCount:e.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),readOnly$1(this,["pan","volume"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(e){this._solo.solo=e}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(e){this._panVol.mute=e}_getBus(e){return Channel.buses.has(e)||Channel.buses.set(e,new Gain$1({context:this.context})),Channel.buses.get(e)}send(e,s=0){const a=this._getBus(e),c=new Gain$1({context:this.context,units:"decibels",gain:s});return this.connect(c),c.connect(a),c}receive(e){return this._getBus(e).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}}Channel.buses=new Map;class Mono extends ToneAudioNode{constructor(){super(optionsFromArguments(Mono.getDefaults(),arguments)),this.name="Mono",this.input=new Gain$1({context:this.context}),this._merge=this.output=new Merge({channels:2,context:this.context}),this.input.connect(this._merge,0,0),this.input.connect(this._merge,0,1)}dispose(){return super.dispose(),this._merge.dispose(),this.input.dispose(),this}}class MultibandSplit extends ToneAudioNode{constructor(){super(optionsFromArguments(MultibandSplit.getDefaults(),arguments,["lowFrequency","highFrequency"])),this.name="MultibandSplit",this.input=new Gain$1({context:this.context}),this.output=void 0,this.low=new Filter$1({context:this.context,frequency:0,type:"lowpass"}),this._lowMidFilter=new Filter$1({context:this.context,frequency:0,type:"highpass"}),this.mid=new Filter$1({context:this.context,frequency:0,type:"lowpass"}),this.high=new Filter$1({context:this.context,frequency:0,type:"highpass"}),this._internalChannels=[this.low,this.mid,this.high];const e=optionsFromArguments(MultibandSplit.getDefaults(),arguments,["lowFrequency","highFrequency"]);this.lowFrequency=new Signal({context:this.context,units:"frequency",value:e.lowFrequency}),this.highFrequency=new Signal({context:this.context,units:"frequency",value:e.highFrequency}),this.Q=new Signal({context:this.context,units:"positive",value:e.Q}),this.input.fan(this.low,this.high),this.input.chain(this._lowMidFilter,this.mid),this.lowFrequency.fan(this.low.frequency,this._lowMidFilter.frequency),this.highFrequency.fan(this.mid.frequency,this.high.frequency),this.Q.connect(this.low.Q),this.Q.connect(this._lowMidFilter.Q),this.Q.connect(this.mid.Q),this.Q.connect(this.high.Q),readOnly$1(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{Q:1,highFrequency:2500,lowFrequency:400})}dispose(){return super.dispose(),writable(this,["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this._lowMidFilter.dispose(),this.mid.dispose(),this.high.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this.Q.dispose(),this}}class Listener$1 extends ToneAudioNode{constructor(){super(...arguments),this.name="Listener",this.positionX=new Param({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new Param({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new Param({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new Param({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new Param({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new Param({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new Param({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new Param({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new Param({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}}onContextInit(o=>{o.listener=new Listener$1({context:o})});onContextClose(o=>{o.listener.dispose()});class Panner3D extends ToneAudioNode{constructor(){super(optionsFromArguments(Panner3D.getDefaults(),arguments,["positionX","positionY","positionZ"])),this.name="Panner3D";const e=optionsFromArguments(Panner3D.getDefaults(),arguments,["positionX","positionY","positionZ"]);this._panner=this.input=this.output=this.context.createPanner(),this.panningModel=e.panningModel,this.maxDistance=e.maxDistance,this.distanceModel=e.distanceModel,this.coneOuterGain=e.coneOuterGain,this.coneOuterAngle=e.coneOuterAngle,this.coneInnerAngle=e.coneInnerAngle,this.refDistance=e.refDistance,this.rolloffFactor=e.rolloffFactor,this.positionX=new Param({context:this.context,param:this._panner.positionX,value:e.positionX}),this.positionY=new Param({context:this.context,param:this._panner.positionY,value:e.positionY}),this.positionZ=new Param({context:this.context,param:this._panner.positionZ,value:e.positionZ}),this.orientationX=new Param({context:this.context,param:this._panner.orientationX,value:e.orientationX}),this.orientationY=new Param({context:this.context,param:this._panner.orientationY,value:e.orientationY}),this.orientationZ=new Param({context:this.context,param:this._panner.orientationZ,value:e.orientationZ})}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:0,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1})}setPosition(e,s,a){return this.positionX.value=e,this.positionY.value=s,this.positionZ.value=a,this}setOrientation(e,s,a){return this.orientationX.value=e,this.orientationY.value=s,this.orientationZ.value=a,this}get panningModel(){return this._panner.panningModel}set panningModel(e){this._panner.panningModel=e}get refDistance(){return this._panner.refDistance}set refDistance(e){this._panner.refDistance=e}get rolloffFactor(){return this._panner.rolloffFactor}set rolloffFactor(e){this._panner.rolloffFactor=e}get distanceModel(){return this._panner.distanceModel}set distanceModel(e){this._panner.distanceModel=e}get coneInnerAngle(){return this._panner.coneInnerAngle}set coneInnerAngle(e){this._panner.coneInnerAngle=e}get coneOuterAngle(){return this._panner.coneOuterAngle}set coneOuterAngle(e){this._panner.coneOuterAngle=e}get coneOuterGain(){return this._panner.coneOuterGain}set coneOuterGain(e){this._panner.coneOuterGain=e}get maxDistance(){return this._panner.maxDistance}set maxDistance(e){this._panner.maxDistance=e}dispose(){return super.dispose(),this._panner.disconnect(),this.orientationX.dispose(),this.orientationY.dispose(),this.orientationZ.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this}}class Recorder extends ToneAudioNode{constructor(){super(optionsFromArguments(Recorder.getDefaults(),arguments)),this.name="Recorder";const e=optionsFromArguments(Recorder.getDefaults(),arguments);this.input=new Gain$1({context:this.context}),assert(Recorder.supported,"Media Recorder API is not available"),this._stream=this.context.createMediaStreamDestination(),this.input.connect(this._stream),this._recorder=new MediaRecorder(this._stream.stream,{mimeType:e.mimeType})}static getDefaults(){return ToneAudioNode.getDefaults()}get mimeType(){return this._recorder.mimeType}static get supported(){return theWindow!==null&&Reflect.has(theWindow,"MediaRecorder")}get state(){return this._recorder.state==="inactive"?"stopped":this._recorder.state==="paused"?"paused":"started"}start(){return __awaiter$4(this,void 0,void 0,function*(){assert(this.state!=="started","Recorder is already started");const e=new Promise(s=>{const a=()=>{this._recorder.removeEventListener("start",a,!1),s()};this._recorder.addEventListener("start",a,!1)});return this._recorder.start(),yield e})}stop(){return __awaiter$4(this,void 0,void 0,function*(){assert(this.state!=="stopped","Recorder is not started");const e=new Promise(s=>{const a=c=>{this._recorder.removeEventListener("dataavailable",a,!1),s(c.data)};this._recorder.addEventListener("dataavailable",a,!1)});return this._recorder.stop(),yield e})}pause(){return assert(this.state==="started","Recorder must be started"),this._recorder.pause(),this}dispose(){return super.dispose(),this.input.dispose(),this._stream.disconnect(),this}}class Compressor extends ToneAudioNode{constructor(){super(optionsFromArguments(Compressor.getDefaults(),arguments,["threshold","ratio"])),this.name="Compressor",this._compressor=this.context.createDynamicsCompressor(),this.input=this._compressor,this.output=this._compressor;const e=optionsFromArguments(Compressor.getDefaults(),arguments,["threshold","ratio"]);this.threshold=new Param({minValue:this._compressor.threshold.minValue,maxValue:this._compressor.threshold.maxValue,context:this.context,convert:!1,param:this._compressor.threshold,units:"decibels",value:e.threshold}),this.attack=new Param({minValue:this._compressor.attack.minValue,maxValue:this._compressor.attack.maxValue,context:this.context,param:this._compressor.attack,units:"time",value:e.attack}),this.release=new Param({minValue:this._compressor.release.minValue,maxValue:this._compressor.release.maxValue,context:this.context,param:this._compressor.release,units:"time",value:e.release}),this.knee=new Param({minValue:this._compressor.knee.minValue,maxValue:this._compressor.knee.maxValue,context:this.context,convert:!1,param:this._compressor.knee,units:"decibels",value:e.knee}),this.ratio=new Param({minValue:this._compressor.ratio.minValue,maxValue:this._compressor.ratio.maxValue,context:this.context,convert:!1,param:this._compressor.ratio,units:"positive",value:e.ratio}),readOnly$1(this,["knee","release","attack","ratio","threshold"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{attack:.003,knee:30,ratio:12,release:.25,threshold:-24})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.disconnect(),this.attack.dispose(),this.release.dispose(),this.threshold.dispose(),this.ratio.dispose(),this.knee.dispose(),this}}class Gate extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(Gate.getDefaults(),arguments,["threshold","smoothing"]))),this.name="Gate";const e=optionsFromArguments(Gate.getDefaults(),arguments,["threshold","smoothing"]);this._follower=new Follower({context:this.context,smoothing:e.smoothing}),this._gt=new GreaterThan({context:this.context,value:dbToGain(e.threshold)}),this.input=new Gain$1({context:this.context}),this._gate=this.output=new Gain$1({context:this.context}),this.input.connect(this._gate),this.input.chain(this._follower,this._gt,this._gate.gain)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{smoothing:.1,threshold:-40})}get threshold(){return gainToDb(this._gt.value)}set threshold(e){this._gt.value=dbToGain(e)}get smoothing(){return this._follower.smoothing}set smoothing(e){this._follower.smoothing=e}dispose(){return super.dispose(),this.input.dispose(),this._follower.dispose(),this._gt.dispose(),this._gate.dispose(),this}}class Limiter extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(Limiter.getDefaults(),arguments,["threshold"]))),this.name="Limiter";const e=optionsFromArguments(Limiter.getDefaults(),arguments,["threshold"]);this._compressor=this.input=this.output=new Compressor({context:this.context,ratio:20,attack:.003,release:.01,threshold:e.threshold}),this.threshold=this._compressor.threshold,readOnly$1(this,"threshold")}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{threshold:-12})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.dispose(),this.threshold.dispose(),this}}class MidSideCompressor extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(MidSideCompressor.getDefaults(),arguments))),this.name="MidSideCompressor";const e=optionsFromArguments(MidSideCompressor.getDefaults(),arguments);this._midSideSplit=this.input=new MidSideSplit({context:this.context}),this._midSideMerge=this.output=new MidSideMerge({context:this.context}),this.mid=new Compressor(Object.assign(e.mid,{context:this.context})),this.side=new Compressor(Object.assign(e.side,{context:this.context})),this._midSideSplit.mid.chain(this.mid,this._midSideMerge.mid),this._midSideSplit.side.chain(this.side,this._midSideMerge.side),readOnly$1(this,["mid","side"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},side:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10}})}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this}}class MultibandCompressor extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(MultibandCompressor.getDefaults(),arguments))),this.name="MultibandCompressor";const e=optionsFromArguments(MultibandCompressor.getDefaults(),arguments);this._splitter=this.input=new MultibandSplit({context:this.context,lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this.lowFrequency=this._splitter.lowFrequency,this.highFrequency=this._splitter.highFrequency,this.output=new Gain$1({context:this.context}),this.low=new Compressor(Object.assign(e.low,{context:this.context})),this.mid=new Compressor(Object.assign(e.mid,{context:this.context})),this.high=new Compressor(Object.assign(e.high,{context:this.context})),this._splitter.low.chain(this.low,this.output),this._splitter.mid.chain(this.mid,this.output),this._splitter.high.chain(this.high,this.output),readOnly$1(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{lowFrequency:250,highFrequency:2e3,low:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10},mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},high:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16}})}dispose(){return super.dispose(),this._splitter.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.output.dispose(),this}}class EQ3 extends ToneAudioNode{constructor(){super(optionsFromArguments(EQ3.getDefaults(),arguments,["low","mid","high"])),this.name="EQ3",this.output=new Gain$1({context:this.context}),this._internalChannels=[];const e=optionsFromArguments(EQ3.getDefaults(),arguments,["low","mid","high"]);this.input=this._multibandSplit=new MultibandSplit({context:this.context,highFrequency:e.highFrequency,lowFrequency:e.lowFrequency}),this._lowGain=new Gain$1({context:this.context,gain:e.low,units:"decibels"}),this._midGain=new Gain$1({context:this.context,gain:e.mid,units:"decibels"}),this._highGain=new Gain$1({context:this.context,gain:e.high,units:"decibels"}),this.low=this._lowGain.gain,this.mid=this._midGain.gain,this.high=this._highGain.gain,this.Q=this._multibandSplit.Q,this.lowFrequency=this._multibandSplit.lowFrequency,this.highFrequency=this._multibandSplit.highFrequency,this._multibandSplit.low.chain(this._lowGain,this.output),this._multibandSplit.mid.chain(this._midGain,this.output),this._multibandSplit.high.chain(this._highGain,this.output),readOnly$1(this,["low","mid","high","lowFrequency","highFrequency"]),this._internalChannels=[this._multibandSplit]}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{high:0,highFrequency:2500,low:0,lowFrequency:400,mid:0})}dispose(){return super.dispose(),writable(this,["low","mid","high","lowFrequency","highFrequency"]),this._multibandSplit.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this._lowGain.dispose(),this._midGain.dispose(),this._highGain.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.Q.dispose(),this}}class Convolver extends ToneAudioNode{constructor(){super(optionsFromArguments(Convolver.getDefaults(),arguments,["url","onload"])),this.name="Convolver",this._convolver=this.context.createConvolver();const e=optionsFromArguments(Convolver.getDefaults(),arguments,["url","onload"]);this._buffer=new ToneAudioBuffer(e.url,s=>{this.buffer=s,e.onload()}),this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this._buffer.loaded&&(this.buffer=this._buffer),this.normalize=e.normalize,this.input.chain(this._convolver,this.output)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{normalize:!0,onload:noOp})}load(e){return __awaiter$4(this,void 0,void 0,function*(){this.buffer=yield this._buffer.load(e)})}get buffer(){return this._buffer.length?this._buffer:null}set buffer(e){e&&this._buffer.set(e),this._convolver.buffer&&(this.input.disconnect(),this._convolver.disconnect(),this._convolver=this.context.createConvolver(),this.input.chain(this._convolver,this.output));const s=this._buffer.get();this._convolver.buffer=s||null}get normalize(){return this._convolver.normalize}set normalize(e){this._convolver.normalize=e}dispose(){return super.dispose(),this._buffer.dispose(),this._convolver.disconnect(),this}}function now(){return getContext().now()}function immediate(){return getContext().immediate()}const Transport=getContext().transport;function getTransport(){return getContext().transport}const Destination$1=getContext().destination,Master=getContext().destination;function getDestination$1(){return getContext().destination}const Listener=getContext().listener;function getListener(){return getContext().listener}const Draw=getContext().draw;function getDraw(){return getContext().draw}const context=getContext();function loaded(){return ToneAudioBuffer.loaded()}const Buffer=ToneAudioBuffer,Buffers=ToneAudioBuffers,BufferSource=ToneBufferSource;var _Tone=Object.freeze(Object.defineProperty({__proto__:null,now,immediate,Transport,getTransport,Destination:Destination$1,Master,getDestination:getDestination$1,Listener,getListener,Draw,getDraw,context,loaded,Buffer,Buffers,BufferSource,getContext,setContext,start,supported:isSupported,dbToGain,gainToDb,intervalToFrequencyRatio,ftom,mtof,optionsFromArguments,defaultArg,Clock,Context,BaseContext,Delay,Gain:Gain$1,Offline,OfflineContext,Param,ToneAudioBuffer,ToneAudioBuffers,ToneAudioNode,connectSeries,connect,disconnect,FrequencyClass,Frequency,MidiClass,Midi,TimeClass,Time,TicksClass,Ticks,TransportTimeClass,TransportTime,Emitter,IntervalTimeline,StateTimeline,Timeline,isUndef,isDefined,isFunction,isNumber,isObject,isBoolean,isArray,isString,isNote:isNote$2,Unit:Units,debug:Debug,Noise,UserMedia,Oscillator,AMOscillator,FMOscillator,PulseOscillator,FatOscillator,PWMOscillator,OmniOscillator,ToneOscillatorNode,LFO,ToneBufferSource,Player,Players:Players$1,GrainPlayer,Add,Abs,AudioToGain,GainToAudio,GreaterThan,GreaterThanZero,Multiply,Negate,Pow,Signal,connectSignal,Scale,ScaleExp,Subtract,SyncedSignal,WaveShaper,Zero,AMSynth:AMSynth$1,DuoSynth:DuoSynth$1,FMSynth:FMSynth$1,MetalSynth:MetalSynth$1,MembraneSynth:MembraneSynth$1,MonoSynth:MonoSynth$1,NoiseSynth:NoiseSynth$1,PluckSynth:PluckSynth$1,PolySynth:PolySynth$1,Sampler:Sampler$1,Synth:Synth$1,Loop,Part,Pattern:Pattern$4,Sequence,ToneEvent,AutoFilter:AutoFilter$1,AutoPanner,AutoWah,BitCrusher,Chebyshev,Chorus,Distortion,FeedbackDelay,FrequencyShifter,Freeverb,JCReverb,PingPongDelay,PitchShift,Phaser,Reverb,StereoWidener,Tremolo,Vibrato,Analyser,Meter,FFT,DCMeter,Waveform,Follower,Channel,CrossFade,Merge,MidSideMerge,MidSideSplit,Mono,MultibandSplit,Panner,Panner3D,PanVol,Recorder,Solo,Split,Volume,Compressor,Gate,Limiter,MidSideCompressor,MultibandCompressor,AmplitudeEnvelope,Envelope,FrequencyEnvelope,EQ3,Filter:Filter$1,OnePoleFilter,FeedbackCombFilter,LowpassCombFilter,Convolver,BiquadFilter,version},Symbol.toStringTag,{value:"Module"})),__awaiter$3=globalThis&&globalThis.__awaiter||function(o,e,s,a){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(a.next(j))}catch(_e){_(_e)}}function k(j){try{$(a.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((a=a.apply(o,e||[])).next())})};class PianoComponent extends ToneAudioNode{constructor(e){super(e),this.name="PianoComponent",this.input=void 0,this.output=new Volume({context:this.context}),this._enabled=!1,this.volume=this.output.volume,this._loaded=!1,this.volume.value=e.volume,this._enabled=e.enabled,this.samples=e.samples}get loaded(){return this._loaded}load(){return __awaiter$3(this,void 0,void 0,function*(){if(this._enabled)yield this._internalLoad(),this._loaded=!0;else return Promise.resolve()})}}function midiToNote(o){return Frequency(o,"midi").toNote()}function randomBetween(o,e){return Math.random()*(e-o)+o}function getReleasesUrl(o){return`rel${o-20}.[mp3|ogg]`}function getHarmonicsUrl(o){return`harmS${midiToNote(o).replace("#","s")}.[mp3|ogg]`}function getNotesUrl(o,e){return`${midiToNote(o).replace("#","s")}v${e}.[mp3|ogg]`}const velocitiesMap={1:[8],2:[6,12],3:[1,7,15],4:[1,5,10,15],5:[1,4,8,12,16],6:[1,3,7,10,13,16],7:[1,3,6,9,11,13,16],8:[1,3,5,7,9,11,13,16],9:[1,3,5,7,9,11,13,15,16],10:[1,2,3,5,7,9,11,13,15,16],11:[1,2,3,5,7,9,11,13,14,15,16],12:[1,2,3,4,5,7,9,11,13,14,15,16],13:[1,2,3,4,5,7,9,11,12,13,14,15,16],14:[1,2,3,4,5,6,7,9,11,12,13,14,15,16],15:[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16],16:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]},allNotes=[21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108];function getNotesInRange(o,e){return allNotes.filter(s=>o<=s&&s<=e)}const harmonics=[21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87];function getHarmonicsInRange(o,e){return harmonics.filter(s=>o<=s&&s<=e)}function inHarmonicsRange(o){return harmonics[0]<=o&&o<=harmonics[harmonics.length-1]}class Harmonics extends PianoComponent{constructor(e){super(e),this._urls={};const s=getHarmonicsInRange(e.minNote,e.maxNote);for(const a of s)this._urls[a]=getHarmonicsUrl(a)}triggerAttack(e,s,a){this._enabled&&inHarmonicsRange(e)&&this._sampler.triggerAttack(Midi(e).toNote(),s,a*randomBetween(.5,1))}_internalLoad(){return new Promise(e=>{this._sampler=new Sampler$1({baseUrl:this.samples,onload:e,urls:this._urls}).connect(this.output)})}}class Keybed extends PianoComponent{constructor(e){super(e),this._urls={};for(let s=e.minNote;s<=e.maxNote;s++)this._urls[s]=getReleasesUrl(s)}_internalLoad(){return new Promise(e=>{this._buffers=new ToneAudioBuffers(this._urls,e,this.samples)})}start(e,s,a){this._enabled&&this._buffers.has(e)&&new ToneBufferSource({url:this._buffers.get(e),context:this.context}).connect(this.output).start(s,0,void 0,.015*a*randomBetween(.5,1))}}class Pedal extends PianoComponent{constructor(e){super(e),this._downTime=1/0,this._currentSound=null,this._downTime=1/0}_internalLoad(){return new Promise(e=>{this._buffers=new ToneAudioBuffers({down1:"pedalD1.mp3",down2:"pedalD2.mp3",up1:"pedalU1.mp3",up2:"pedalU2.mp3"},e,this.samples)})}_squash(e){this._currentSound&&this._currentSound.state!=="stopped"&&this._currentSound.stop(e),this._currentSound=null}_playSample(e,s){this._enabled&&(this._currentSound=new ToneBufferSource({url:this._buffers.get(`${s}${Math.random()>.5?1:2}`),context:this.context,curve:"exponential",fadeIn:.05,fadeOut:.1}).connect(this.output),this._currentSound.start(e,randomBetween(0,.01),void 0,.1*randomBetween(.5,1)))}down(e){this._squash(e),this._downTime=e,this._playSample(e,"down")}up(e){this._squash(e),this._downTime=1/0,this._playSample(e,"up")}isDown(e){return e>this._downTime}}class PianoString extends ToneAudioNode{constructor(e){super(e),this.name="PianoString",this._urls={},e.notes.forEach(s=>this._urls[s]=getNotesUrl(s,e.velocity)),this.samples=e.samples}load(){return new Promise(e=>{this._sampler=this.output=new Sampler$1({attack:0,baseUrl:this.samples,curve:"exponential",onload:e,release:.4,urls:this._urls,volume:3})})}triggerAttack(e,s,a){this._sampler.triggerAttack(e,s,a)}triggerRelease(e,s){this._sampler.triggerRelease(e,s)}}var __awaiter$2=globalThis&&globalThis.__awaiter||function(o,e,s,a){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(a.next(j))}catch(_e){_(_e)}}function k(j){try{$(a.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((a=a.apply(o,e||[])).next())})};class PianoStrings extends PianoComponent{constructor(e){super(e);const s=getNotesInRange(e.minNote,e.maxNote),a=velocitiesMap[e.velocities].slice();this._strings=a.map(c=>new PianoString(Object.assign(e,{notes:s,velocity:c}))),this._activeNotes=new Map}scale(e,s,a,c,d){return(e-s)/(a-s)*(d-c)+c}triggerAttack(e,s,a){const c=this.scale(a,0,1,-.5,this._strings.length-.51),d=Math.max(Math.round(c),0);let _=1+c-d;this._strings.length===1&&(_=a);const b=this._strings[d];this._activeNotes.has(e)&&this.triggerRelease(e,s),this._activeNotes.set(e,b),b.triggerAttack(Midi(e).toNote(),s,_)}triggerRelease(e,s){this._activeNotes.has(e)&&(this._activeNotes.get(e).triggerRelease(Midi(e).toNote(),s),this._activeNotes.delete(e))}_internalLoad(){return __awaiter$2(this,void 0,void 0,function*(){yield Promise.all(this._strings.map(e=>__awaiter$2(this,void 0,void 0,function*(){yield e.load(),e.connect(this.output)})))})}}var __awaiter$1=globalThis&&globalThis.__awaiter||function(o,e,s,a){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(a.next(j))}catch(_e){_(_e)}}function k(j){try{$(a.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((a=a.apply(o,e||[])).next())})};class Piano$1 extends ToneAudioNode{constructor(){super(optionsFromArguments(Piano$1.getDefaults(),arguments)),this.name="Piano",this.input=void 0,this.output=new Gain$1({context:this.context}),this._heldNotes=new Map,this._loaded=!1;const e=optionsFromArguments(Piano$1.getDefaults(),arguments);e.url.endsWith("/")||(e.url+="/"),this.maxPolyphony=e.maxPolyphony,this._heldNotes=new Map,this._sustainedNotes=new Map,this._strings=new PianoStrings(Object.assign({},e,{enabled:!0,samples:e.url,volume:e.volume.strings})).connect(this.output),this.strings=this._strings.volume,this._pedal=new Pedal(Object.assign({},e,{enabled:e.pedal,samples:e.url,volume:e.volume.pedal})).connect(this.output),this.pedal=this._pedal.volume,this._keybed=new Keybed(Object.assign({},e,{enabled:e.release,samples:e.url,volume:e.volume.keybed})).connect(this.output),this.keybed=this._keybed.volume,this._harmonics=new Harmonics(Object.assign({},e,{enabled:e.release,samples:e.url,volume:e.volume.harmonics})).connect(this.output),this.harmonics=this._harmonics.volume}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{maxNote:108,minNote:21,pedal:!0,release:!1,url:"https://tambien.github.io/Piano/audio/",velocities:1,maxPolyphony:32,volume:{harmonics:0,keybed:0,pedal:0,strings:0}})}load(){return __awaiter$1(this,void 0,void 0,function*(){yield Promise.all([this._strings.load(),this._pedal.load(),this._keybed.load(),this._harmonics.load()]),this._loaded=!0})}get loaded(){return this._loaded}pedalDown({time:e=this.immediate()}={}){return this.loaded&&(e=this.toSeconds(e),this._pedal.isDown(e)||this._pedal.down(e)),this}pedalUp({time:e=this.immediate()}={}){if(this.loaded){const s=this.toSeconds(e);this._pedal.isDown(s)&&(this._pedal.up(s),this._sustainedNotes.forEach((a,c)=>{this._heldNotes.has(c)||this._strings.triggerRelease(c,s)}),this._sustainedNotes.clear())}return this}keyDown({note:e,midi:s,time:a=this.immediate(),velocity:c=.8}){return this.loaded&&this.maxPolyphony>this._heldNotes.size+this._sustainedNotes.size?(a=this.toSeconds(a),isString(e)&&(s=Math.round(Midi(e).toMidi())),this._heldNotes.has(s)||(this._heldNotes.set(s,{time:a,velocity:c}),this._strings.triggerAttack(s,a,c))):console.warn("samples not loaded"),this}keyUp({note:e,midi:s,time:a=this.immediate(),velocity:c=.8}){if(this.loaded&&(a=this.toSeconds(a),isString(e)&&(s=Math.round(Midi(e).toMidi())),this._heldNotes.has(s))){const d=this._heldNotes.get(s);this._heldNotes.delete(s);const _=Math.pow(Math.max(a-d.time,.1),.7),b=d.velocity;let k=3/_*b*c;k=Math.max(k,.4),k=Math.min(k,4),this._pedal.isDown(a)?this._sustainedNotes.has(s)||this._sustainedNotes.set(s,a):(this._strings.triggerRelease(s,a),this._harmonics.triggerAttack(s,a,k)),this._keybed.start(s,a,c)}return this}stopAll(){return this.pedalUp(),this._heldNotes.forEach((e,s)=>{this.keyUp({midi:s})}),this}}var events={exports:{}},R=typeof Reflect=="object"?Reflect:null,ReflectApply=R&&typeof R.apply=="function"?R.apply:function o(e,s,a){return Function.prototype.apply.call(e,s,a)},ReflectOwnKeys;R&&typeof R.ownKeys=="function"?ReflectOwnKeys=R.ownKeys:Object.getOwnPropertySymbols?ReflectOwnKeys=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:ReflectOwnKeys=function(e){return Object.getOwnPropertyNames(e)};function ProcessEmitWarning(o){console&&console.warn&&console.warn(o)}var NumberIsNaN=Number.isNaN||function o(e){return e!==e};function EventEmitter(){EventEmitter.init.call(this)}events.exports=EventEmitter;events.exports.once=once;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=void 0;EventEmitter.prototype._eventsCount=0;EventEmitter.prototype._maxListeners=void 0;var defaultMaxListeners=10;function checkListener(o){if(typeof o!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof o)}Object.defineProperty(EventEmitter,"defaultMaxListeners",{enumerable:!0,get:function(){return defaultMaxListeners},set:function(o){if(typeof o!="number"||o<0||NumberIsNaN(o))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+o+".");defaultMaxListeners=o}});EventEmitter.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};EventEmitter.prototype.setMaxListeners=function o(e){if(typeof e!="number"||e<0||NumberIsNaN(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function _getMaxListeners(o){return o._maxListeners===void 0?EventEmitter.defaultMaxListeners:o._maxListeners}EventEmitter.prototype.getMaxListeners=function o(){return _getMaxListeners(this)};EventEmitter.prototype.emit=function o(e){for(var s=[],a=1;a0&&(_=s[0]),_ instanceof Error)throw _;var b=new Error("Unhandled error."+(_?" ("+_.message+")":""));throw b.context=_,b}var k=d[e];if(k===void 0)return!1;if(typeof k=="function")ReflectApply(k,this,s);else for(var $=k.length,j=arrayClone(k,$),a=0;a<$;++a)ReflectApply(j[a],this,s);return!0};function _addListener(o,e,s,a){var c,d,_;if(checkListener(s),d=o._events,d===void 0?(d=o._events=Object.create(null),o._eventsCount=0):(d.newListener!==void 0&&(o.emit("newListener",e,s.listener?s.listener:s),d=o._events),_=d[e]),_===void 0)_=d[e]=s,++o._eventsCount;else if(typeof _=="function"?_=d[e]=a?[s,_]:[_,s]:a?_.unshift(s):_.push(s),c=_getMaxListeners(o),c>0&&_.length>c&&!_.warned){_.warned=!0;var b=new Error("Possible EventEmitter memory leak detected. "+_.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");b.name="MaxListenersExceededWarning",b.emitter=o,b.type=e,b.count=_.length,ProcessEmitWarning(b)}return o}EventEmitter.prototype.addListener=function o(e,s){return _addListener(this,e,s,!1)};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function o(e,s){return _addListener(this,e,s,!0)};function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(o,e,s){var a={fired:!1,wrapFn:void 0,target:o,type:e,listener:s},c=onceWrapper.bind(a);return c.listener=s,a.wrapFn=c,c}EventEmitter.prototype.once=function o(e,s){return checkListener(s),this.on(e,_onceWrap(this,e,s)),this};EventEmitter.prototype.prependOnceListener=function o(e,s){return checkListener(s),this.prependListener(e,_onceWrap(this,e,s)),this};EventEmitter.prototype.removeListener=function o(e,s){var a,c,d,_,b;if(checkListener(s),c=this._events,c===void 0)return this;if(a=c[e],a===void 0)return this;if(a===s||a.listener===s)--this._eventsCount===0?this._events=Object.create(null):(delete c[e],c.removeListener&&this.emit("removeListener",e,a.listener||s));else if(typeof a!="function"){for(d=-1,_=a.length-1;_>=0;_--)if(a[_]===s||a[_].listener===s){b=a[_].listener,d=_;break}if(d<0)return this;d===0?a.shift():spliceOne(a,d),a.length===1&&(c[e]=a[0]),c.removeListener!==void 0&&this.emit("removeListener",e,b||s)}return this};EventEmitter.prototype.off=EventEmitter.prototype.removeListener;EventEmitter.prototype.removeAllListeners=function o(e){var s,a,c;if(a=this._events,a===void 0)return this;if(a.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):a[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete a[e]),this;if(arguments.length===0){var d=Object.keys(a),_;for(c=0;c=0;c--)this.removeListener(e,s[c]);return this};function _listeners(o,e,s){var a=o._events;if(a===void 0)return[];var c=a[e];return c===void 0?[]:typeof c=="function"?s?[c.listener||c]:[c]:s?unwrapListeners(c):arrayClone(c,c.length)}EventEmitter.prototype.listeners=function o(e){return _listeners(this,e,!0)};EventEmitter.prototype.rawListeners=function o(e){return _listeners(this,e,!1)};EventEmitter.listenerCount=function(o,e){return typeof o.listenerCount=="function"?o.listenerCount(e):listenerCount.call(o,e)};EventEmitter.prototype.listenerCount=listenerCount;function listenerCount(o){var e=this._events;if(e!==void 0){var s=e[o];if(typeof s=="function")return 1;if(s!==void 0)return s.length}return 0}EventEmitter.prototype.eventNames=function o(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};function arrayClone(o,e){for(var s=new Array(e),a=0;a>4,j=15&_.data[0],_e=1+j;if(1<_.data.length&&(b=_.data[1],k=2<_.data.length?_.data[2]:void 0),a.nrpnEventsEnabled&&$===a.MIDI_CHANNEL_MESSAGES.controlchange&&(b>=a.MIDI_NRPN_MESSAGES.increment&&b<=a.MIDI_NRPN_MESSAGES.parammsb||b===a.MIDI_NRPN_MESSAGES.entrymsb||b===a.MIDI_NRPN_MESSAGES.entrylsb)){var et={target:this,type:"controlchange",data:_.data,timestamp:_.timeStamp,channel:_e,controller:{number:b,name:this.getCcNameByNumber(b)},value:k};if(et.controller.number===a.MIDI_NRPN_MESSAGES.parammsb&&et.value!=a.MIDI_NRPN_MESSAGES.nullactiveparameter)a._nrpnBuffer[j]=[],a._nrpnBuffer[j][0]=et;else if(a._nrpnBuffer[j].length===1&&et.controller.number===a.MIDI_NRPN_MESSAGES.paramlsb)a._nrpnBuffer[j].push(et);else if(a._nrpnBuffer[j].length!==2||et.controller.number!==a.MIDI_NRPN_MESSAGES.increment&&et.controller.number!==a.MIDI_NRPN_MESSAGES.decrement&&et.controller.number!==a.MIDI_NRPN_MESSAGES.entrymsb)if(a._nrpnBuffer[j].length===3&&a._nrpnBuffer[j][2].number===a.MIDI_NRPN_MESSAGES.entrymsb&&et.controller.number===a.MIDI_NRPN_MESSAGES.entrylsb)a._nrpnBuffer[j].push(et);else if(3<=a._nrpnBuffer[j].length&&a._nrpnBuffer[j].length<=4&&et.controller.number===a.MIDI_NRPN_MESSAGES.parammsb&&et.value===a.MIDI_NRPN_MESSAGES.nullactiveparameter)a._nrpnBuffer[j].push(et);else if(4<=a._nrpnBuffer[j].length&&a._nrpnBuffer[j].length<=5&&et.controller.number===a.MIDI_NRPN_MESSAGES.paramlsb&&et.value===a.MIDI_NRPN_MESSAGES.nullactiveparameter){a._nrpnBuffer[j].push(et);var tt=[];a._nrpnBuffer[j].forEach(function(at){tt.push(at.data)});var nt=a._nrpnBuffer[j][0].value<<7|a._nrpnBuffer[j][1].value,it=a._nrpnBuffer[j][2].value;a._nrpnBuffer[j].length===6&&(it=a._nrpnBuffer[j][2].value<<7|a._nrpnBuffer[j][3].value);var rt="";switch(a._nrpnBuffer[j][2].controller.number){case a.MIDI_NRPN_MESSAGES.entrymsb:rt=a._nrpnTypes[0];break;case a.MIDI_NRPN_MESSAGES.increment:rt=a._nrpnTypes[1];break;case a.MIDI_NRPN_MESSAGES.decrement:rt=a._nrpnTypes[2];break;default:throw new Error("The NPRN type was unidentifiable.")}var st={timestamp:et.timestamp,channel:et.channel,type:"nrpn",data:tt,controller:{number:nt,type:rt,name:"Non-Registered Parameter "+nt},value:it};a._nrpnBuffer[j]=[],this._userHandlers.channel[st.type]&&this._userHandlers.channel[st.type][st.channel]&&this._userHandlers.channel[st.type][st.channel].forEach(function(at){at(st)})}else a._nrpnBuffer[j]=[];else a._nrpnBuffer[j].push(et)}},c.prototype._parseChannelEvent=function(_){var b,k,$=_.data[0]>>4,j=1+(15&_.data[0]);1<_.data.length&&(b=_.data[1],k=2<_.data.length?_.data[2]:void 0);var _e={target:this,data:_.data,timestamp:_.timeStamp,channel:j};$===a.MIDI_CHANNEL_MESSAGES.noteoff||$===a.MIDI_CHANNEL_MESSAGES.noteon&&k===0?(_e.type="noteoff",_e.note={number:b,name:a._notes[b%12],octave:a.getOctave(b)},_e.velocity=k/127,_e.rawVelocity=k):$===a.MIDI_CHANNEL_MESSAGES.noteon?(_e.type="noteon",_e.note={number:b,name:a._notes[b%12],octave:a.getOctave(b)},_e.velocity=k/127,_e.rawVelocity=k):$===a.MIDI_CHANNEL_MESSAGES.keyaftertouch?(_e.type="keyaftertouch",_e.note={number:b,name:a._notes[b%12],octave:a.getOctave(b)},_e.value=k/127):$===a.MIDI_CHANNEL_MESSAGES.controlchange&&0<=b&&b<=119?(_e.type="controlchange",_e.controller={number:b,name:this.getCcNameByNumber(b)},_e.value=k):$===a.MIDI_CHANNEL_MESSAGES.channelmode&&120<=b&&b<=127?(_e.type="channelmode",_e.controller={number:b,name:this.getChannelModeByNumber(b)},_e.value=k):$===a.MIDI_CHANNEL_MESSAGES.programchange?(_e.type="programchange",_e.value=b):$===a.MIDI_CHANNEL_MESSAGES.channelaftertouch?(_e.type="channelaftertouch",_e.value=b/127):$===a.MIDI_CHANNEL_MESSAGES.pitchbend?(_e.type="pitchbend",_e.value=((k<<7)+b-8192)/8192):_e.type="unknownchannelmessage",this._userHandlers.channel[_e.type]&&this._userHandlers.channel[_e.type][j]&&this._userHandlers.channel[_e.type][j].forEach(function(et){et(_e)})},c.prototype.getCcNameByNumber=function(_){if(!(0<=(_=Math.floor(_))&&_<=119))throw new RangeError("The control change number must be between 0 and 119.");for(var b in a.MIDI_CONTROL_CHANGE_MESSAGES)if(Object.prototype.hasOwnProperty.call(a.MIDI_CONTROL_CHANGE_MESSAGES,b)&&_===a.MIDI_CONTROL_CHANGE_MESSAGES[b])return b},c.prototype.getChannelModeByNumber=function(_){if(!(120<=(_=Math.floor(_))&&status<=127))throw new RangeError("The control change number must be between 120 and 127.");for(var b in a.MIDI_CHANNEL_MODE_MESSAGES)if(Object.prototype.hasOwnProperty.call(a.MIDI_CHANNEL_MODE_MESSAGES,b)&&_===a.MIDI_CHANNEL_MODE_MESSAGES[b])return b},c.prototype._parseSystemEvent=function(_){var b=_.data[0],k={target:this,data:_.data,timestamp:_.timeStamp};b===a.MIDI_SYSTEM_MESSAGES.sysex?k.type="sysex":b===a.MIDI_SYSTEM_MESSAGES.timecode?k.type="timecode":b===a.MIDI_SYSTEM_MESSAGES.songposition?k.type="songposition":b===a.MIDI_SYSTEM_MESSAGES.songselect?(k.type="songselect",k.song=_.data[1]):b===a.MIDI_SYSTEM_MESSAGES.tuningrequest?k.type="tuningrequest":b===a.MIDI_SYSTEM_MESSAGES.clock?k.type="clock":b===a.MIDI_SYSTEM_MESSAGES.start?k.type="start":b===a.MIDI_SYSTEM_MESSAGES.continue?k.type="continue":b===a.MIDI_SYSTEM_MESSAGES.stop?k.type="stop":b===a.MIDI_SYSTEM_MESSAGES.activesensing?k.type="activesensing":b===a.MIDI_SYSTEM_MESSAGES.reset?k.type="reset":k.type="unknownsystemmessage",this._userHandlers.system[k.type]&&this._userHandlers.system[k.type].forEach(function($){$(k)})},d.prototype.send=function(_,b,k){if(!(128<=_&&_<=255))throw new RangeError("The status byte must be an integer between 128 (0x80) and 255 (0xFF).");b===void 0&&(b=[]),Array.isArray(b)||(b=[b]);var $=[];return b.forEach(function(j){var _e=Math.floor(j);if(!(0<=_e&&_e<=255))throw new RangeError("Data bytes must be integers between 0 (0x00) and 255 (0xFF).");$.push(_e)}),this._midiOutput.send([_].concat($),parseFloat(k)||0),this},d.prototype.sendSysex=function(_,b,k){if(!a.sysexEnabled)throw new Error("Sysex message support must first be activated.");return k=k||{},_=[].concat(_),b.forEach(function($){if($<0||127<$)throw new RangeError("The data bytes of a sysex message must be integers between 0 (0x00) and 127 (0x7F).")}),b=_.concat(b,a.MIDI_SYSTEM_MESSAGES.sysexend),this.send(a.MIDI_SYSTEM_MESSAGES.sysex,b,this._parseTimeParameter(k.time)),this},d.prototype.sendTimecodeQuarterFrame=function(_,b){return b=b||{},this.send(a.MIDI_SYSTEM_MESSAGES.timecode,_,this._parseTimeParameter(b.time)),this},d.prototype.sendSongPosition=function(_,b){b=b||{};var k=(_=Math.floor(_)||0)>>7&127,$=127&_;return this.send(a.MIDI_SYSTEM_MESSAGES.songposition,[k,$],this._parseTimeParameter(b.time)),this},d.prototype.sendSongSelect=function(_,b){if(b=b||{},!(0<=(_=Math.floor(_))&&_<=127))throw new RangeError("The song number must be between 0 and 127.");return this.send(a.MIDI_SYSTEM_MESSAGES.songselect,[_],this._parseTimeParameter(b.time)),this},d.prototype.sendTuningRequest=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.tuningrequest,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendClock=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.clock,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendStart=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.start,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendContinue=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.continue,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendStop=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.stop,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendActiveSensing=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.activesensing,[],this._parseTimeParameter(_.time)),this},d.prototype.sendReset=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.reset,void 0,this._parseTimeParameter(_.time)),this},d.prototype.stopNote=function(_,b,k){if(_==="all")return this.sendChannelMode("allnotesoff",0,b,k);var $=64;return(k=k||{}).rawVelocity?!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=127&&($=k.velocity):!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=1&&($=127*k.velocity),this._convertNoteToArray(_).forEach(function(j){a.toMIDIChannels(b).forEach(function(_e){this.send((a.MIDI_CHANNEL_MESSAGES.noteoff<<4)+(_e-1),[j,Math.round($)],this._parseTimeParameter(k.time))}.bind(this))}.bind(this)),this},d.prototype.playNote=function(_,b,k){var $,j=64;if((k=k||{}).rawVelocity?!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=127&&(j=k.velocity):!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=1&&(j=127*k.velocity),$=this._parseTimeParameter(k.time),this._convertNoteToArray(_).forEach(function(et){a.toMIDIChannels(b).forEach(function(tt){this.send((a.MIDI_CHANNEL_MESSAGES.noteon<<4)+(tt-1),[et,Math.round(j)],$)}.bind(this))}.bind(this)),!isNaN(k.duration)){k.duration<=0&&(k.duration=0);var _e=64;k.rawVelocity?!isNaN(k.release)&&0<=k.release&&k.release<=127&&(_e=k.release):!isNaN(k.release)&&0<=k.release&&k.release<=1&&(_e=127*k.release),this._convertNoteToArray(_).forEach(function(et){a.toMIDIChannels(b).forEach(function(tt){this.send((a.MIDI_CHANNEL_MESSAGES.noteoff<<4)+(tt-1),[et,Math.round(_e)],($||a.time)+k.duration)}.bind(this))}.bind(this))}return this},d.prototype.sendKeyAftertouch=function(_,b,k,$){var j=this;if($=$||{},b<1||16>7&127,tt=127&_e;return a.toMIDIChannels(b).forEach(function(){$.setRegisteredParameter("channelcoarsetuning",j,b,{time:k.time}),$.setRegisteredParameter("channelfinetuning",[et,tt],b,{time:k.time})}),this},d.prototype.setTuningProgram=function(_,b,k){var $=this;if(k=k||{},!(0<=(_=Math.floor(_))&&_<=127))throw new RangeError("The program value must be between 0 and 127");return a.toMIDIChannels(b).forEach(function(){$.setRegisteredParameter("tuningprogram",_,b,{time:k.time})}),this},d.prototype.setTuningBank=function(_,b,k){var $=this;if(k=k||{},!(0<=(_=Math.floor(_)||0)&&_<=127))throw new RangeError("The bank value must be between 0 and 127");return a.toMIDIChannels(b).forEach(function(){$.setRegisteredParameter("tuningbank",_,b,{time:k.time})}),this},d.prototype.sendChannelMode=function(_,b,k,$){if($=$||{},typeof _=="string"){if(!(_=a.MIDI_CHANNEL_MODE_MESSAGES[_]))throw new TypeError("Invalid channel mode message name.")}else if(!(120<=(_=Math.floor(_))&&_<=127))throw new RangeError("Channel mode numerical identifiers must be between 120 and 127.");if((b=Math.floor(b)||0)<0||127>7&127,et=127&j;return a.toMIDIChannels(b).forEach(function(tt){$.send((a.MIDI_CHANNEL_MESSAGES.pitchbend<<4)+(tt-1),[et,_e],$._parseTimeParameter(k.time))}),this},d.prototype._parseTimeParameter=function(_){var b,k=parseFloat(_);return typeof _=="string"&&_.substring(0,1)==="+"?k&&0a.time&&(b=k),b},d.prototype._convertNoteToArray=function(_){var b=[];return Array.isArray(_)||(_=[_]),_.forEach(function(k){b.push(a.guessNoteNumber(k))}),b},o.exports?o.exports=a:e.WebMidi||(e.WebMidi=a)})(commonjsGlobal)})(webmidi_min);var _WebMidi=webmidi_min.exports,__awaiter=globalThis&&globalThis.__awaiter||function(o,e,s,a){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(a.next(j))}catch(_e){_(_e)}}function k(j){try{$(a.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((a=a.apply(o,e||[])).next())})};class MidiInput extends events.exports.EventEmitter{constructor(e="all"){super(),this.deviceId=e,MidiInput.enabled().then(()=>{_WebMidi.addListener("connected",s=>{s.port.type==="input"&&this._addListeners(s.port)}),_WebMidi.addListener("disconnected",s=>{this._removeListeners(s.port)}),_WebMidi.inputs.forEach(s=>this._addListeners(s))})}_addListeners(e){MidiInput.connectedDevices.has(e.id)||(MidiInput.connectedDevices.set(e.id,e),this.emit("connect",this._inputToDevice(e)),e.addListener("noteon","all",s=>{(this.deviceId==="all"||this.deviceId===e.id)&&this.emit("keyDown",{note:`${s.note.name}${s.note.octave}`,midi:s.note.number,velocity:s.velocity,device:this._inputToDevice(e)})}),e.addListener("noteoff","all",s=>{(this.deviceId==="all"||this.deviceId===e.id)&&this.emit("keyUp",{note:`${s.note.name}${s.note.octave}`,midi:s.note.number,velocity:s.velocity,device:this._inputToDevice(e)})}),e.addListener("controlchange","all",s=>{(this.deviceId==="all"||this.deviceId===e.id)&&s.controller.name==="holdpedal"&&this.emit(s.value?"pedalDown":"pedalUp",{device:this._inputToDevice(e)})}))}_inputToDevice(e){return{name:e.name,id:e.id,manufacturer:e.manufacturer}}_removeListeners(e){if(MidiInput.connectedDevices.has(e.id)){const s=MidiInput.connectedDevices.get(e.id);this.emit("disconnect",this._inputToDevice(s)),MidiInput.connectedDevices.delete(e.id),s.removeListener("noteon"),s.removeListener("noteoff"),s.removeListener("controlchange")}}emit(e,s){return super.emit(e,s)}on(e,s){return super.on(e,s),this}once(e,s){return super.once(e,s),this}off(e,s){return super.off(e,s),this}static enabled(){return __awaiter(this,void 0,void 0,function*(){MidiInput._isEnabled||(yield new Promise((e,s)=>{_WebMidi.enable(a=>{a?s(a):(MidiInput._isEnabled=!0,e())})}))})}static getDevices(){return __awaiter(this,void 0,void 0,function*(){return yield MidiInput.enabled(),_WebMidi.inputs})}}MidiInput.connectedDevices=new Map;MidiInput._isEnabled=!1;var tonePiano=Object.freeze(Object.defineProperty({__proto__:null,Piano:Piano$1,MidiInput},Symbol.toStringTag,{value:"Module"}));const Tone=_Tone,{AutoFilter,Destination,Filter,Gain,isNote:isNote$1,Synth,PolySynth,MembraneSynth,MetalSynth,MonoSynth,AMSynth,DuoSynth,FMSynth,NoiseSynth,PluckSynth,Sampler,getDestination,Players}=Tone,{Piano}=tonePiano,getDefaultSynth=()=>{const o=new PolySynth().chain(new Gain(.5),getDestination());return o.set({oscillator:{type:"triangle"},envelope:{release:.01}}),o};Pattern$5.prototype.tone=function(o){return this._withHap(e=>{const s=(a,c)=>{var b,k;let d,_=(k=(b=c.context)==null?void 0:b.velocity)!=null?k:.75;if(o instanceof PluckSynth)d=getPlayableNoteValue(c),o.triggerAttack(d,a);else if(o instanceof NoiseSynth)o.triggerAttackRelease(c.duration.valueOf(),a);else if(o instanceof Piano)d=getPlayableNoteValue(c),o.keyDown({note:d,time:a,velocity:_}),o.keyUp({note:d,time:a+c.duration.valueOf(),velocity:_});else if(o instanceof Sampler)d=getPlayableNoteValue(c),o.triggerAttackRelease(d,c.duration.valueOf(),a,_);else if(o instanceof Players){if(!o.has(c.value))throw new Error(`name "${c.value}" not defined for players`);const $=o.player(c.value);$.start(a),$.stop(a+c.duration.valueOf())}else d=getPlayableNoteValue(c),o.triggerAttackRelease(d,c.duration.valueOf(),a,_)};return e.setContext(wt(_t({},e.context),{instrument:o,onTrigger:s}))})};Pattern$5.prototype.define("tone",(o,e)=>e.tone(o),{composable:!0,patternified:!1});const amsynth=o=>new AMSynth(o),duosynth=o=>new DuoSynth(o),fmsynth=o=>new FMSynth(o),membrane=o=>new MembraneSynth(o),metal=o=>new MetalSynth(o),monosynth=o=>new MonoSynth(o),noise=o=>new NoiseSynth(o),pluck=o=>new PluckSynth(o),polysynth=o=>new PolySynth(o),sampler=(o,e)=>new Promise(s=>{const a=new Sampler(o,()=>s(a),e)}),players=(o,e="")=>(o=e?Object.fromEntries(Object.entries(o).map(([s,a])=>[s,e+a])):o,new Promise(s=>{const a=new Players(o,()=>s(a))})),synth=o=>new Synth(o),piano=async(o={velocities:1})=>{const e=new Piano(o);return await e.load(),e},vol=o=>new Gain(o),lowpass=o=>new Filter(o,"lowpass"),highpass=o=>new Filter(o,"highpass"),adsr=(o,e=.1,s=.4,a=.01)=>({envelope:{attack:o,decay:e,sustain:s,release:a}}),osc=o=>({oscillator:{type:o}}),out=()=>getDestination(),getDrawContext$1=(o="test-canvas")=>{let e=document.querySelector("#"+o);return e||(e=document.createElement("canvas"),e.id=o,e.width=window.innerWidth,e.height=window.innerHeight,e.style="pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0;z-index:5",document.body.prepend(e)),e.getContext("2d")};Pattern$5.prototype.draw=function(o,{from:e,to:s,onQuery:a}){window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation);const c=getDrawContext$1();let d,_=[];const b=k=>{const $=Tone.getTransport().seconds;if(e!==void 0&&s!==void 0){const j=Math.floor($);if(d!==j){d=j;const _e=j+e,et=j+s;setTimeout(()=>{_=this.query(new State(new TimeSpan(_e,et))).filter(Boolean).filter(tt=>tt.part.begin.equals(tt.whole.begin)),a==null||a(_)},0)}}o(c,_,$,k),window.strudelAnimation=requestAnimationFrame(b)};return requestAnimationFrame(b),this};const cleanupDraw=()=>{getDrawContext$1().clearRect(0,0,window.innerWidth,window.innerHeight),window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation),window.strudelScheduler&&clearInterval(window.strudelScheduler)};var dist$7={},tokenizer={},utils$1={},unicode$2={};Object.defineProperty(unicode$2,"__esModule",{value:!0});unicode$2.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];unicode$2.whitespaceBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!0,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1];unicode$2.idStartLargeRegex=/^[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]$/;unicode$2.idStartBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];unicode$2.idContinueLargeRegex=/^[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]$/;unicode$2.idContinueBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];Object.defineProperty(utils$1,"__esModule",{value:!0});utils$1.isStrictModeReservedWord=isStrictModeReservedWord;utils$1.isWhiteSpace=isWhiteSpace;utils$1.isLineTerminator=isLineTerminator;utils$1.isIdentifierStart=isIdentifierStart$1;utils$1.isIdentifierPart=isIdentifierPart$1;utils$1.isDecimalDigit=isDecimalDigit;utils$1.getHexValue=getHexValue;var _unicode$2=unicode$2,strictReservedWords=["null","true","false","implements","interface","package","private","protected","public","static","let","if","in","do","var","for","new","try","this","else","case","void","with","enum","while","break","catch","throw","const","yield","class","super","return","typeof","delete","switch","export","import","default","finally","extends","function","continue","debugger","instanceof"];function isStrictModeReservedWord(o){return strictReservedWords.indexOf(o)!==-1}function isWhiteSpace(o){return o<128?_unicode$2.whitespaceBool[o]:o===160||o>5759&&_unicode$2.whitespaceArray.indexOf(o)!==-1}function isLineTerminator(o){return o===10||o===13||o===8232||o===8233}function isIdentifierStart$1(o){return o<128?_unicode$2.idStartBool[o]:_unicode$2.idStartLargeRegex.test(String.fromCodePoint(o))}function isIdentifierPart$1(o){return o<128?_unicode$2.idContinueBool[o]:_unicode$2.idContinueLargeRegex.test(String.fromCodePoint(o))}function isDecimalDigit(o){return o>=48&&o<=57}function getHexValue(o){return o>="0"&&o<="9"?o.charCodeAt(0)-48:o>="a"&&o<="f"?o.charCodeAt(0)-87:o>="A"&&o<="F"?o.charCodeAt(0)-55:-1}var errors={};Object.defineProperty(errors,"__esModule",{value:!0});errors.ErrorMessages={UNEXPECTED_TOKEN:function o(e){return"Unexpected token "+JSON.stringify(e)},UNEXPECTED_ILLEGAL_TOKEN:function o(e){return"Unexpected "+JSON.stringify(e)},UNEXPECTED_ESCAPED_KEYWORD:"Unexpected escaped keyword",UNEXPECTED_NUMBER:"Unexpected number",UNEXPECTED_STRING:"Unexpected string",UNEXPECTED_IDENTIFIER:"Unexpected identifier",UNEXPECTED_RESERVED_WORD:"Unexpected reserved word",UNEXPECTED_TEMPLATE:"Unexpected template",UNEXPECTED_EOS:"Unexpected end of input",UNEXPECTED_LINE_TERMINATOR:"Unexpected line terminator",UNEXPECTED_COMMA_AFTER_REST:"Unexpected comma after rest",UNEXPECTED_REST_PARAMETERS_INITIALIZATION:"Rest parameter may not have a default initializer",NEWLINE_AFTER_THROW:"Illegal newline after throw",UNTERMINATED_REGEXP:"Invalid regular expression: missing /",INVALID_LAST_REST_PARAMETER:"Rest parameter must be last formal parameter",INVALID_REST_PARAMETERS_INITIALIZATION:"Rest parameter may not have a default initializer",INVALID_REGEXP_FLAGS:"Invalid regular expression flags",INVALID_REGEX:"Invalid regular expression",INVALID_LHS_IN_ASSIGNMENT:"Invalid left-hand side in assignment",INVALID_LHS_IN_BINDING:"Invalid left-hand side in binding",INVALID_LHS_IN_FOR_IN:"Invalid left-hand side in for-in",INVALID_LHS_IN_FOR_OF:"Invalid left-hand side in for-of",INVALID_LHS_IN_FOR_AWAIT:"Invalid left-hand side in for-await",INVALID_UPDATE_OPERAND:"Increment/decrement target must be an identifier or member expression",INVALID_EXPONENTIATION_LHS:"Unary expressions as the left operand of an exponentation expression must be disambiguated with parentheses",MULTIPLE_DEFAULTS_IN_SWITCH:"More than one default clause in switch statement",NO_CATCH_OR_FINALLY:"Missing catch or finally after try",ILLEGAL_RETURN:"Illegal return statement",ILLEGAL_ARROW_FUNCTION_PARAMS:"Illegal arrow function parameter list",INVALID_ASYNC_PARAMS:"Async function parameters must not contain await expressions",INVALID_VAR_INIT_FOR_IN:"Invalid variable declaration in for-in statement",INVALID_VAR_INIT_FOR_OF:"Invalid variable declaration in for-of statement",INVALID_VAR_INIT_FOR_AWAIT:"Invalid variable declaration in for-await statement",UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT:"Binding pattern appears without initializer in for statement init",ILLEGAL_PROPERTY:"Illegal property initializer",INVALID_ID_BINDING_STRICT_MODE:function o(e){return"The identifier "+JSON.stringify(e)+" must not be in binding position in strict mode"},INVALID_ID_IN_LABEL_STRICT_MODE:function o(e){return"The identifier "+JSON.stringify(e)+" must not be in label position in strict mode"},INVALID_ID_IN_EXPRESSION_STRICT_MODE:function o(e){return"The identifier "+JSON.stringify(e)+" must not be in expression position in strict mode"},INVALID_CALL_TO_SUPER:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',INVALID_DELETE_STRICT_MODE:"Identifier expressions must not be deleted in strict mode",DUPLICATE_BINDING:function o(e){return"Duplicate binding "+JSON.stringify(e)},ILLEGAL_ID_IN_LEXICAL_DECLARATION:function o(e){return"Lexical declarations must not have a binding named "+JSON.stringify(e)},UNITIALIZED_CONST:"Constant lexical declarations must have an initialiser",ILLEGAL_LABEL_IN_BODY:function o(e){return"The body of a "+e+" statement must not be a labeled function declaration"},ILLEGEAL_LABEL_IN_IF:"The consequent of an if statement must not be a labeled function declaration",ILLEGAL_LABEL_IN_ELSE:"The alternate of an if statement must not be a labeled function declaration",ILLEGAL_CONTINUE_WITHOUT_ITERATION_WITH_ID:function o(e){return"Continue statement must be nested within an iteration statement with label "+JSON.stringify(e)},ILLEGAL_CONTINUE_WITHOUT_ITERATION:"Continue statement must be nested within an iteration statement",ILLEGAL_BREAK_WITHOUT_ITERATION_OR_SWITCH:"Break statement must be nested within an iteration statement or a switch statement",ILLEGAL_WITH_STRICT_MODE:"Strict mode code must not include a with statement",ILLEGAL_ACCESS_SUPER_MEMBER:"Member access on super must be in a method",ILLEGAL_SUPER_CALL:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',DUPLICATE_LABEL_DECLARATION:function o(e){return"Label "+JSON.stringify(e)+" has already been declared"},ILLEGAL_BREAK_WITHIN_LABEL:function o(e){return"Break statement must be nested within a statement with label "+JSON.stringify(e)},ILLEGAL_YIELD_EXPRESSIONS:function o(e){return e+" parameters must not contain yield expressions"},ILLEGAL_YIELD_IDENTIFIER:'"yield" may not be used as an identifier in this context',ILLEGAL_AWAIT_IDENTIFIER:'"await" may not be used as an identifier in this context',DUPLICATE_CONSTRUCTOR:"Duplicate constructor method in class",ILLEGAL_CONSTRUCTORS:"Constructors cannot be async, generators, getters or setters",ILLEGAL_STATIC_CLASS_NAME:'Static class methods cannot be named "prototype"',NEW_TARGET_ERROR:"new.target must be within function (but not arrow expression) code",DUPLICATE_EXPORT:function o(e){return"Duplicate export "+JSON.stringify(e)},UNDECLARED_BINDING:function o(e){return"Exported binding "+JSON.stringify(e)+" is not declared"},DUPLICATE_PROPTO_PROP:"Duplicate __proto__ property in object literal not allowed",ILLEGAL_LABEL_FUNC_DECLARATION:"Labeled FunctionDeclarations are disallowed in strict mode",ILLEGAL_FUNC_DECL_IF:"FunctionDeclarations in IfStatements are disallowed in strict mode",ILLEGAL_USE_STRICT:'Functions with non-simple parameter lists may not contain a "use strict" directive',ILLEGAL_EXPORTED_NAME:"Names of variables used in an export specifier from the current module must be identifiers",NO_OCTALS_IN_TEMPLATES:"Template literals may not contain octal escape sequences",NO_AWAIT_IN_ASYNC_PARAMS:'Async arrow parameters may not contain "await"'};Object.defineProperty(tokenizer,"__esModule",{value:!0});tokenizer.JsError=tokenizer.TokenType=tokenizer.TokenClass=void 0;var _slicedToArray=function(){function o(e,s){var a=[],c=!0,d=!1,_=void 0;try{for(var b=e[Symbol.iterator](),k;!(c=(k=b.next()).done)&&(a.push(k.value),!(s&&a.length===s));c=!0);}catch($){d=!0,_=$}finally{try{!c&&b.return&&b.return()}finally{if(d)throw _}}return a}return function(e,s){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return o(e,s);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass$e=function(){function o(e,s){for(var a=0;a"},Ident:{name:"Identifier",isIdentifierName:!0},Keyword:{name:"Keyword",isIdentifierName:!0},NumericLiteral:{name:"Numeric"},TemplateElement:{name:"Template"},Punctuator:{name:"Punctuator"},StringLiteral:{name:"String"},RegularExpression:{name:"RegularExpression"},Illegal:{name:"Illegal"}},TokenType=tokenizer.TokenType={EOS:{klass:TokenClass.Eof,name:"EOS"},LPAREN:{klass:TokenClass.Punctuator,name:"("},RPAREN:{klass:TokenClass.Punctuator,name:")"},LBRACK:{klass:TokenClass.Punctuator,name:"["},RBRACK:{klass:TokenClass.Punctuator,name:"]"},LBRACE:{klass:TokenClass.Punctuator,name:"{"},RBRACE:{klass:TokenClass.Punctuator,name:"}"},COLON:{klass:TokenClass.Punctuator,name:":"},SEMICOLON:{klass:TokenClass.Punctuator,name:";"},PERIOD:{klass:TokenClass.Punctuator,name:"."},ELLIPSIS:{klass:TokenClass.Punctuator,name:"..."},ARROW:{klass:TokenClass.Punctuator,name:"=>"},CONDITIONAL:{klass:TokenClass.Punctuator,name:"?"},INC:{klass:TokenClass.Punctuator,name:"++"},DEC:{klass:TokenClass.Punctuator,name:"--"},ASSIGN:{klass:TokenClass.Punctuator,name:"="},ASSIGN_BIT_OR:{klass:TokenClass.Punctuator,name:"|="},ASSIGN_BIT_XOR:{klass:TokenClass.Punctuator,name:"^="},ASSIGN_BIT_AND:{klass:TokenClass.Punctuator,name:"&="},ASSIGN_SHL:{klass:TokenClass.Punctuator,name:"<<="},ASSIGN_SHR:{klass:TokenClass.Punctuator,name:">>="},ASSIGN_SHR_UNSIGNED:{klass:TokenClass.Punctuator,name:">>>="},ASSIGN_ADD:{klass:TokenClass.Punctuator,name:"+="},ASSIGN_SUB:{klass:TokenClass.Punctuator,name:"-="},ASSIGN_MUL:{klass:TokenClass.Punctuator,name:"*="},ASSIGN_DIV:{klass:TokenClass.Punctuator,name:"/="},ASSIGN_MOD:{klass:TokenClass.Punctuator,name:"%="},ASSIGN_EXP:{klass:TokenClass.Punctuator,name:"**="},COMMA:{klass:TokenClass.Punctuator,name:","},OR:{klass:TokenClass.Punctuator,name:"||"},AND:{klass:TokenClass.Punctuator,name:"&&"},BIT_OR:{klass:TokenClass.Punctuator,name:"|"},BIT_XOR:{klass:TokenClass.Punctuator,name:"^"},BIT_AND:{klass:TokenClass.Punctuator,name:"&"},SHL:{klass:TokenClass.Punctuator,name:"<<"},SHR:{klass:TokenClass.Punctuator,name:">>"},SHR_UNSIGNED:{klass:TokenClass.Punctuator,name:">>>"},ADD:{klass:TokenClass.Punctuator,name:"+"},SUB:{klass:TokenClass.Punctuator,name:"-"},MUL:{klass:TokenClass.Punctuator,name:"*"},DIV:{klass:TokenClass.Punctuator,name:"/"},MOD:{klass:TokenClass.Punctuator,name:"%"},EXP:{klass:TokenClass.Punctuator,name:"**"},EQ:{klass:TokenClass.Punctuator,name:"=="},NE:{klass:TokenClass.Punctuator,name:"!="},EQ_STRICT:{klass:TokenClass.Punctuator,name:"==="},NE_STRICT:{klass:TokenClass.Punctuator,name:"!=="},LT:{klass:TokenClass.Punctuator,name:"<"},GT:{klass:TokenClass.Punctuator,name:">"},LTE:{klass:TokenClass.Punctuator,name:"<="},GTE:{klass:TokenClass.Punctuator,name:">="},INSTANCEOF:{klass:TokenClass.Keyword,name:"instanceof"},IN:{klass:TokenClass.Keyword,name:"in"},NOT:{klass:TokenClass.Punctuator,name:"!"},BIT_NOT:{klass:TokenClass.Punctuator,name:"~"},ASYNC:{klass:TokenClass.Keyword,name:"async"},AWAIT:{klass:TokenClass.Keyword,name:"await"},ENUM:{klass:TokenClass.Keyword,name:"enum"},DELETE:{klass:TokenClass.Keyword,name:"delete"},TYPEOF:{klass:TokenClass.Keyword,name:"typeof"},VOID:{klass:TokenClass.Keyword,name:"void"},BREAK:{klass:TokenClass.Keyword,name:"break"},CASE:{klass:TokenClass.Keyword,name:"case"},CATCH:{klass:TokenClass.Keyword,name:"catch"},CLASS:{klass:TokenClass.Keyword,name:"class"},CONTINUE:{klass:TokenClass.Keyword,name:"continue"},DEBUGGER:{klass:TokenClass.Keyword,name:"debugger"},DEFAULT:{klass:TokenClass.Keyword,name:"default"},DO:{klass:TokenClass.Keyword,name:"do"},ELSE:{klass:TokenClass.Keyword,name:"else"},EXPORT:{klass:TokenClass.Keyword,name:"export"},EXTENDS:{klass:TokenClass.Keyword,name:"extends"},FINALLY:{klass:TokenClass.Keyword,name:"finally"},FOR:{klass:TokenClass.Keyword,name:"for"},FUNCTION:{klass:TokenClass.Keyword,name:"function"},IF:{klass:TokenClass.Keyword,name:"if"},IMPORT:{klass:TokenClass.Keyword,name:"import"},LET:{klass:TokenClass.Keyword,name:"let"},NEW:{klass:TokenClass.Keyword,name:"new"},RETURN:{klass:TokenClass.Keyword,name:"return"},SUPER:{klass:TokenClass.Keyword,name:"super"},SWITCH:{klass:TokenClass.Keyword,name:"switch"},THIS:{klass:TokenClass.Keyword,name:"this"},THROW:{klass:TokenClass.Keyword,name:"throw"},TRY:{klass:TokenClass.Keyword,name:"try"},VAR:{klass:TokenClass.Keyword,name:"var"},WHILE:{klass:TokenClass.Keyword,name:"while"},WITH:{klass:TokenClass.Keyword,name:"with"},NULL:{klass:TokenClass.Keyword,name:"null"},TRUE:{klass:TokenClass.Keyword,name:"true"},FALSE:{klass:TokenClass.Keyword,name:"false"},YIELD:{klass:TokenClass.Keyword,name:"yield"},NUMBER:{klass:TokenClass.NumericLiteral,name:""},STRING:{klass:TokenClass.StringLiteral,name:""},REGEXP:{klass:TokenClass.RegularExpression,name:""},IDENTIFIER:{klass:TokenClass.Ident,name:""},CONST:{klass:TokenClass.Keyword,name:"const"},TEMPLATE:{klass:TokenClass.TemplateElement,name:""},ESCAPED_KEYWORD:{klass:TokenClass.Keyword,name:""},ILLEGAL:{klass:TokenClass.Illegal,name:""}},TT=TokenType,I=TT.ILLEGAL,F=!1,T=!0,ONE_CHAR_PUNCTUATOR=[I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.NOT,I,I,I,TT.MOD,TT.BIT_AND,I,TT.LPAREN,TT.RPAREN,TT.MUL,TT.ADD,TT.COMMA,TT.SUB,TT.PERIOD,TT.DIV,I,I,I,I,I,I,I,I,I,I,TT.COLON,TT.SEMICOLON,TT.LT,TT.ASSIGN,TT.GT,TT.CONDITIONAL,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.LBRACK,I,TT.RBRACK,TT.BIT_XOR,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.LBRACE,TT.BIT_OR,TT.RBRACE,TT.BIT_NOT],PUNCTUATOR_START=[F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,F,F,F,T,T,F,T,T,T,T,T,T,F,T,F,F,F,F,F,F,F,F,F,F,T,T,T,T,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,F,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,T,T,T,F],JsError=tokenizer.JsError=function(o){_inherits$8(e,o);function e(s,a,c,d){_classCallCheck$i(this,e);var _=_possibleConstructorReturn$8(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,d));_.index=s;try{_.line=a,_.column=c}catch{}return _.parseErrorLine=a,_.parseErrorColumn=c,_.description=d,_.message="["+a+":"+c+"]: "+d,_}return e}(Error);function fromCodePoint$1(o){if(o<=65535)return String.fromCharCode(o);var e=String.fromCharCode(Math.floor((o-65536)/1024)+55296),s=String.fromCharCode((o-65536)%1024+56320);return e+s}function decodeUtf16(o,e){return(o-55296)*1024+(e-56320)+65536}var Tokenizer=function(){function o(e){_classCallCheck$i(this,o),this.source=e,this.index=0,this.line=0,this.lineStart=0,this.startIndex=0,this.startLine=0,this.startLineStart=0,this.lastIndex=0,this.lastLine=0,this.lastLineStart=0,this.hasLineTerminatorBeforeNext=!1,this.tokenIndex=0}return _createClass$e(o,[{key:"saveLexerState",value:function(){return{source:this.source,index:this.index,line:this.line,lineStart:this.lineStart,startIndex:this.startIndex,startLine:this.startLine,startLineStart:this.startLineStart,lastIndex:this.lastIndex,lastLine:this.lastLine,lastLineStart:this.lastLineStart,lookahead:this.lookahead,hasLineTerminatorBeforeNext:this.hasLineTerminatorBeforeNext,tokenIndex:this.tokenIndex}}},{key:"restoreLexerState",value:function(s){this.source=s.source,this.index=s.index,this.line=s.line,this.lineStart=s.lineStart,this.startIndex=s.startIndex,this.startLine=s.startLine,this.startLineStart=s.startLineStart,this.lastIndex=s.lastIndex,this.lastLine=s.lastLine,this.lastLineStart=s.lastLineStart,this.lookahead=s.lookahead,this.hasLineTerminatorBeforeNext=s.hasLineTerminatorBeforeNext,this.tokenIndex=s.tokenIndex}},{key:"createILLEGAL",value:function(){return this.startIndex=this.index,this.startLine=this.line,this.startLineStart=this.lineStart,this.index1?c-1:0),_=1;_10)return TokenType.IDENTIFIER;switch(s.length){case 2:switch(s.charAt(0)){case"i":switch(s.charAt(1)){case"f":return TokenType.IF;case"n":return TokenType.IN}break;case"d":if(s.charAt(1)==="o")return TokenType.DO;break}break;case 3:switch(s.charAt(0)){case"v":if(o.cse2(s,"a","r"))return TokenType.VAR;break;case"f":if(o.cse2(s,"o","r"))return TokenType.FOR;break;case"n":if(o.cse2(s,"e","w"))return TokenType.NEW;break;case"t":if(o.cse2(s,"r","y"))return TokenType.TRY;break;case"l":if(o.cse2(s,"e","t"))return TokenType.LET;break}break;case 4:switch(s.charAt(0)){case"t":if(o.cse3(s,"h","i","s"))return TokenType.THIS;if(o.cse3(s,"r","u","e"))return TokenType.TRUE;break;case"n":if(o.cse3(s,"u","l","l"))return TokenType.NULL;break;case"e":if(o.cse3(s,"l","s","e"))return TokenType.ELSE;if(o.cse3(s,"n","u","m"))return TokenType.ENUM;break;case"c":if(o.cse3(s,"a","s","e"))return TokenType.CASE;break;case"v":if(o.cse3(s,"o","i","d"))return TokenType.VOID;break;case"w":if(o.cse3(s,"i","t","h"))return TokenType.WITH;break}break;case 5:switch(s.charAt(0)){case"a":if(o.cse4(s,"s","y","n","c"))return TokenType.ASYNC;if(o.cse4(s,"w","a","i","t"))return TokenType.AWAIT;break;case"w":if(o.cse4(s,"h","i","l","e"))return TokenType.WHILE;break;case"b":if(o.cse4(s,"r","e","a","k"))return TokenType.BREAK;break;case"f":if(o.cse4(s,"a","l","s","e"))return TokenType.FALSE;break;case"c":if(o.cse4(s,"a","t","c","h"))return TokenType.CATCH;if(o.cse4(s,"o","n","s","t"))return TokenType.CONST;if(o.cse4(s,"l","a","s","s"))return TokenType.CLASS;break;case"t":if(o.cse4(s,"h","r","o","w"))return TokenType.THROW;break;case"y":if(o.cse4(s,"i","e","l","d"))return TokenType.YIELD;break;case"s":if(o.cse4(s,"u","p","e","r"))return TokenType.SUPER;break}break;case 6:switch(s.charAt(0)){case"r":if(o.cse5(s,"e","t","u","r","n"))return TokenType.RETURN;break;case"t":if(o.cse5(s,"y","p","e","o","f"))return TokenType.TYPEOF;break;case"d":if(o.cse5(s,"e","l","e","t","e"))return TokenType.DELETE;break;case"s":if(o.cse5(s,"w","i","t","c","h"))return TokenType.SWITCH;break;case"e":if(o.cse5(s,"x","p","o","r","t"))return TokenType.EXPORT;break;case"i":if(o.cse5(s,"m","p","o","r","t"))return TokenType.IMPORT;break}break;case 7:switch(s.charAt(0)){case"d":if(o.cse6(s,"e","f","a","u","l","t"))return TokenType.DEFAULT;break;case"f":if(o.cse6(s,"i","n","a","l","l","y"))return TokenType.FINALLY;break;case"e":if(o.cse6(s,"x","t","e","n","d","s"))return TokenType.EXTENDS;break}break;case 8:switch(s.charAt(0)){case"f":if(o.cse7(s,"u","n","c","t","i","o","n"))return TokenType.FUNCTION;break;case"c":if(o.cse7(s,"o","n","t","i","n","u","e"))return TokenType.CONTINUE;break;case"d":if(o.cse7(s,"e","b","u","g","g","e","r"))return TokenType.DEBUGGER;break}break;case 10:if(s==="instanceof")return TokenType.INSTANCEOF;break}return TokenType.IDENTIFIER}},{key:"skipSingleLineComment",value:function(s){for(this.index+=s;this.indexthis._getCoefficient(s,e,new Map))}get oversample(){return this._shaper.oversample}set oversample(e){this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.dispose(),this}}class Split extends ToneAudioNode{constructor(){super(optionsFromArguments(Split.getDefaults(),arguments,["channels"])),this.name="Split";const e=optionsFromArguments(Split.getDefaults(),arguments,["channels"]);this._splitter=this.input=this.output=this.context.createChannelSplitter(e.channels),this._internalChannels=[this._splitter]}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._splitter.disconnect(),this}}class Merge extends ToneAudioNode{constructor(){super(optionsFromArguments(Merge.getDefaults(),arguments,["channels"])),this.name="Merge";const e=optionsFromArguments(Merge.getDefaults(),arguments,["channels"]);this._merger=this.output=this.input=this.context.createChannelMerger(e.channels)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}}class StereoEffect extends ToneAudioNode{constructor(e){super(e),this.name="StereoEffect",this.input=new Gain$1({context:this.context}),this.input.channelCount=2,this.input.channelCountMode="explicit",this._dryWet=this.output=new CrossFade({context:this.context,fade:e.wet}),this.wet=this._dryWet.fade,this._split=new Split({context:this.context,channels:2}),this._merge=new Merge({context:this.context,channels:2}),this.input.connect(this._split),this.input.connect(this._dryWet.a),this._merge.connect(this._dryWet.b),readOnly$1(this,["wet"])}connectEffectLeft(...e){this._split.connect(e[0],0,0),connectSeries(...e),connect(e[e.length-1],this._merge,0,0)}connectEffectRight(...e){this._split.connect(e[0],1,0),connectSeries(...e),connect(e[e.length-1],this._merge,0,1)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{wet:1})}dispose(){return super.dispose(),this._dryWet.dispose(),this._split.dispose(),this._merge.dispose(),this}}class StereoFeedbackEffect extends StereoEffect{constructor(e){super(e),this.feedback=new Signal({context:this.context,value:e.feedback,units:"normalRange"}),this._feedbackL=new Gain$1({context:this.context}),this._feedbackR=new Gain$1({context:this.context}),this._feedbackSplit=new Split({context:this.context,channels:2}),this._feedbackMerge=new Merge({context:this.context,channels:2}),this._merge.connect(this._feedbackSplit),this._feedbackMerge.connect(this._split),this._feedbackSplit.connect(this._feedbackL,0,0),this._feedbackL.connect(this._feedbackMerge,0,0),this._feedbackSplit.connect(this._feedbackR,1,0),this._feedbackR.connect(this._feedbackMerge,0,1),this.feedback.fan(this._feedbackL.gain,this._feedbackR.gain),readOnly$1(this,["feedback"])}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{feedback:.5})}dispose(){return super.dispose(),this.feedback.dispose(),this._feedbackL.dispose(),this._feedbackR.dispose(),this._feedbackSplit.dispose(),this._feedbackMerge.dispose(),this}}class Chorus extends StereoFeedbackEffect{constructor(){super(optionsFromArguments(Chorus.getDefaults(),arguments,["frequency","delayTime","depth"])),this.name="Chorus";const e=optionsFromArguments(Chorus.getDefaults(),arguments,["frequency","delayTime","depth"]);this._depth=e.depth,this._delayTime=e.delayTime/1e3,this._lfoL=new LFO({context:this.context,frequency:e.frequency,min:0,max:1}),this._lfoR=new LFO({context:this.context,frequency:e.frequency,min:0,max:1,phase:180}),this._delayNodeL=new Delay({context:this.context}),this._delayNodeR=new Delay({context:this.context}),this.frequency=this._lfoL.frequency,readOnly$1(this,["frequency"]),this._lfoL.frequency.connect(this._lfoR.frequency),this.connectEffectLeft(this._delayNodeL),this.connectEffectRight(this._delayNodeR),this._lfoL.connect(this._delayNodeL.delayTime),this._lfoR.connect(this._delayNodeR.delayTime),this.depth=this._depth,this.type=e.type,this.spread=e.spread}static getDefaults(){return Object.assign(StereoFeedbackEffect.getDefaults(),{frequency:1.5,delayTime:3.5,depth:.7,type:"sine",spread:180,feedback:0,wet:.5})}get depth(){return this._depth}set depth(e){this._depth=e;const s=this._delayTime*e;this._lfoL.min=Math.max(this._delayTime-s,0),this._lfoL.max=this._delayTime+s,this._lfoR.min=Math.max(this._delayTime-s,0),this._lfoR.max=this._delayTime+s}get delayTime(){return this._delayTime*1e3}set delayTime(e){this._delayTime=e/1e3,this.depth=this._depth}get type(){return this._lfoL.type}set type(e){this._lfoL.type=e,this._lfoR.type=e}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(e){this._lfoL.phase=90-e/2,this._lfoR.phase=e/2+90}start(e){return this._lfoL.start(e),this._lfoR.start(e),this}stop(e){return this._lfoL.stop(e),this._lfoR.stop(e),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._delayNodeL.dispose(),this._delayNodeR.dispose(),this.frequency.dispose(),this}}class Distortion extends Effect{constructor(){super(optionsFromArguments(Distortion.getDefaults(),arguments,["distortion"])),this.name="Distortion";const e=optionsFromArguments(Distortion.getDefaults(),arguments,["distortion"]);this._shaper=new WaveShaper({context:this.context,length:4096}),this._distortion=e.distortion,this.connectEffect(this._shaper),this.distortion=e.distortion,this.oversample=e.oversample}static getDefaults(){return Object.assign(Effect.getDefaults(),{distortion:.4,oversample:"none"})}get distortion(){return this._distortion}set distortion(e){this._distortion=e;const s=e*100,a=Math.PI/180;this._shaper.setMap(c=>Math.abs(c)<.001?0:(3+s)*c*20*a/(Math.PI+s*Math.abs(c)))}get oversample(){return this._shaper.oversample}set oversample(e){this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.dispose(),this}}class FeedbackEffect extends Effect{constructor(e){super(e),this.name="FeedbackEffect",this._feedbackGain=new Gain$1({context:this.context,gain:e.feedback,units:"normalRange"}),this.feedback=this._feedbackGain.gain,readOnly$1(this,"feedback"),this.effectReturn.chain(this._feedbackGain,this.effectSend)}static getDefaults(){return Object.assign(Effect.getDefaults(),{feedback:.125})}dispose(){return super.dispose(),this._feedbackGain.dispose(),this.feedback.dispose(),this}}class FeedbackDelay extends FeedbackEffect{constructor(){super(optionsFromArguments(FeedbackDelay.getDefaults(),arguments,["delayTime","feedback"])),this.name="FeedbackDelay";const e=optionsFromArguments(FeedbackDelay.getDefaults(),arguments,["delayTime","feedback"]);this._delayNode=new Delay({context:this.context,delayTime:e.delayTime,maxDelay:e.maxDelay}),this.delayTime=this._delayNode.delayTime,this.connectEffect(this._delayNode),readOnly$1(this,"delayTime")}static getDefaults(){return Object.assign(FeedbackEffect.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._delayNode.dispose(),this.delayTime.dispose(),this}}class PhaseShiftAllpass extends ToneAudioNode{constructor(e){super(e),this.name="PhaseShiftAllpass",this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this.offset90=new Gain$1({context:this.context});const s=[.6923878,.9360654322959,.988229522686,.9987488452737],a=[.4021921162426,.856171088242,.9722909545651,.9952884791278];this._bank0=this._createAllPassFilterBank(s),this._bank1=this._createAllPassFilterBank(a),this._oneSampleDelay=this.context.createIIRFilter([0,1],[1,0]),connectSeries(this.input,...this._bank0,this._oneSampleDelay,this.output),connectSeries(this.input,...this._bank1,this.offset90)}_createAllPassFilterBank(e){return e.map(a=>{const c=[[a*a,0,-1],[1,0,-(a*a)]];return this.context.createIIRFilter(c[0],c[1])})}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.offset90.dispose(),this._bank0.forEach(e=>e.disconnect()),this._bank1.forEach(e=>e.disconnect()),this._oneSampleDelay.disconnect(),this}}class FrequencyShifter extends Effect{constructor(){super(optionsFromArguments(FrequencyShifter.getDefaults(),arguments,["frequency"])),this.name="FrequencyShifter";const e=optionsFromArguments(FrequencyShifter.getDefaults(),arguments,["frequency"]);this.frequency=new Signal({context:this.context,units:"frequency",value:e.frequency,minValue:-this.context.sampleRate/2,maxValue:this.context.sampleRate/2}),this._sine=new ToneOscillatorNode({context:this.context,type:"sine"}),this._cosine=new Oscillator({context:this.context,phase:-90,type:"sine"}),this._sineMultiply=new Multiply({context:this.context}),this._cosineMultiply=new Multiply({context:this.context}),this._negate=new Negate({context:this.context}),this._add=new Add({context:this.context}),this._phaseShifter=new PhaseShiftAllpass({context:this.context}),this.effectSend.connect(this._phaseShifter),this.frequency.fan(this._sine.frequency,this._cosine.frequency),this._phaseShifter.offset90.connect(this._cosineMultiply),this._cosine.connect(this._cosineMultiply.factor),this._phaseShifter.connect(this._sineMultiply),this._sine.connect(this._sineMultiply.factor),this._sineMultiply.connect(this._negate),this._cosineMultiply.connect(this._add),this._negate.connect(this._add.addend),this._add.connect(this.effectReturn);const s=this.immediate();this._sine.start(s),this._cosine.start(s)}static getDefaults(){return Object.assign(Effect.getDefaults(),{frequency:0})}dispose(){return super.dispose(),this.frequency.dispose(),this._add.dispose(),this._cosine.dispose(),this._cosineMultiply.dispose(),this._negate.dispose(),this._phaseShifter.dispose(),this._sine.dispose(),this._sineMultiply.dispose(),this}}const combFilterTunings=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100],allpassFilterFrequencies=[225,556,441,341];class Freeverb extends StereoEffect{constructor(){super(optionsFromArguments(Freeverb.getDefaults(),arguments,["roomSize","dampening"])),this.name="Freeverb",this._combFilters=[],this._allpassFiltersL=[],this._allpassFiltersR=[];const e=optionsFromArguments(Freeverb.getDefaults(),arguments,["roomSize","dampening"]);this.roomSize=new Signal({context:this.context,value:e.roomSize,units:"normalRange"}),this._allpassFiltersL=allpassFilterFrequencies.map(s=>{const a=this.context.createBiquadFilter();return a.type="allpass",a.frequency.value=s,a}),this._allpassFiltersR=allpassFilterFrequencies.map(s=>{const a=this.context.createBiquadFilter();return a.type="allpass",a.frequency.value=s,a}),this._combFilters=combFilterTunings.map((s,a)=>{const c=new LowpassCombFilter({context:this.context,dampening:e.dampening,delayTime:s});return as.dampening=e)}dispose(){return super.dispose(),this._allpassFiltersL.forEach(e=>e.disconnect()),this._allpassFiltersR.forEach(e=>e.disconnect()),this._combFilters.forEach(e=>e.dispose()),this.roomSize.dispose(),this}}const combFilterDelayTimes=[1687/25e3,1601/25e3,2053/25e3,2251/25e3],combFilterResonances=[.773,.802,.753,.733],allpassFilterFreqs=[347,113,37];class JCReverb extends StereoEffect{constructor(){super(optionsFromArguments(JCReverb.getDefaults(),arguments,["roomSize"])),this.name="JCReverb",this._allpassFilters=[],this._feedbackCombFilters=[];const e=optionsFromArguments(JCReverb.getDefaults(),arguments,["roomSize"]);this.roomSize=new Signal({context:this.context,value:e.roomSize,units:"normalRange"}),this._scaleRoomSize=new Scale({context:this.context,min:-.733,max:.197}),this._allpassFilters=allpassFilterFreqs.map(s=>{const a=this.context.createBiquadFilter();return a.type="allpass",a.frequency.value=s,a}),this._feedbackCombFilters=combFilterDelayTimes.map((s,a)=>{const c=new FeedbackCombFilter({context:this.context,delayTime:s});return this._scaleRoomSize.connect(c.resonance),c.resonance.value=combFilterResonances[a],ae.disconnect()),this._feedbackCombFilters.forEach(e=>e.dispose()),this.roomSize.dispose(),this._scaleRoomSize.dispose(),this}}class StereoXFeedbackEffect extends StereoFeedbackEffect{constructor(e){super(e),this._feedbackL.disconnect(),this._feedbackL.connect(this._feedbackMerge,0,1),this._feedbackR.disconnect(),this._feedbackR.connect(this._feedbackMerge,0,0),readOnly$1(this,["feedback"])}}class PingPongDelay extends StereoXFeedbackEffect{constructor(){super(optionsFromArguments(PingPongDelay.getDefaults(),arguments,["delayTime","feedback"])),this.name="PingPongDelay";const e=optionsFromArguments(PingPongDelay.getDefaults(),arguments,["delayTime","feedback"]);this._leftDelay=new Delay({context:this.context,maxDelay:e.maxDelay}),this._rightDelay=new Delay({context:this.context,maxDelay:e.maxDelay}),this._rightPreDelay=new Delay({context:this.context,maxDelay:e.maxDelay}),this.delayTime=new Signal({context:this.context,units:"time",value:e.delayTime}),this.connectEffectLeft(this._leftDelay),this.connectEffectRight(this._rightPreDelay,this._rightDelay),this.delayTime.fan(this._leftDelay.delayTime,this._rightDelay.delayTime,this._rightPreDelay.delayTime),this._feedbackL.disconnect(),this._feedbackL.connect(this._rightDelay),readOnly$1(this,["delayTime"])}static getDefaults(){return Object.assign(StereoXFeedbackEffect.getDefaults(),{delayTime:.25,maxDelay:1})}dispose(){return super.dispose(),this._leftDelay.dispose(),this._rightDelay.dispose(),this._rightPreDelay.dispose(),this.delayTime.dispose(),this}}class PitchShift extends FeedbackEffect{constructor(){super(optionsFromArguments(PitchShift.getDefaults(),arguments,["pitch"])),this.name="PitchShift";const e=optionsFromArguments(PitchShift.getDefaults(),arguments,["pitch"]);this._frequency=new Signal({context:this.context}),this._delayA=new Delay({maxDelay:1,context:this.context}),this._lfoA=new LFO({context:this.context,min:0,max:.1,type:"sawtooth"}).connect(this._delayA.delayTime),this._delayB=new Delay({maxDelay:1,context:this.context}),this._lfoB=new LFO({context:this.context,min:0,max:.1,type:"sawtooth",phase:180}).connect(this._delayB.delayTime),this._crossFade=new CrossFade({context:this.context}),this._crossFadeLFO=new LFO({context:this.context,min:0,max:1,type:"triangle",phase:90}).connect(this._crossFade.fade),this._feedbackDelay=new Delay({delayTime:e.delayTime,context:this.context}),this.delayTime=this._feedbackDelay.delayTime,readOnly$1(this,"delayTime"),this._pitch=e.pitch,this._windowSize=e.windowSize,this._delayA.connect(this._crossFade.a),this._delayB.connect(this._crossFade.b),this._frequency.fan(this._lfoA.frequency,this._lfoB.frequency,this._crossFadeLFO.frequency),this.effectSend.fan(this._delayA,this._delayB),this._crossFade.chain(this._feedbackDelay,this.effectReturn);const s=this.now();this._lfoA.start(s),this._lfoB.start(s),this._crossFadeLFO.start(s),this.windowSize=this._windowSize}static getDefaults(){return Object.assign(FeedbackEffect.getDefaults(),{pitch:0,windowSize:.1,delayTime:0,feedback:0})}get pitch(){return this._pitch}set pitch(e){this._pitch=e;let s=0;e<0?(this._lfoA.min=0,this._lfoA.max=this._windowSize,this._lfoB.min=0,this._lfoB.max=this._windowSize,s=intervalToFrequencyRatio(e-1)+1):(this._lfoA.min=this._windowSize,this._lfoA.max=0,this._lfoB.min=this._windowSize,this._lfoB.max=0,s=intervalToFrequencyRatio(e)-1),this._frequency.value=s*(1.2/this._windowSize)}get windowSize(){return this._windowSize}set windowSize(e){this._windowSize=this.toSeconds(e),this.pitch=this._pitch}dispose(){return super.dispose(),this._frequency.dispose(),this._delayA.dispose(),this._delayB.dispose(),this._lfoA.dispose(),this._lfoB.dispose(),this._crossFade.dispose(),this._crossFadeLFO.dispose(),this._feedbackDelay.dispose(),this}}class Phaser extends StereoEffect{constructor(){super(optionsFromArguments(Phaser.getDefaults(),arguments,["frequency","octaves","baseFrequency"])),this.name="Phaser";const e=optionsFromArguments(Phaser.getDefaults(),arguments,["frequency","octaves","baseFrequency"]);this._lfoL=new LFO({context:this.context,frequency:e.frequency,min:0,max:1}),this._lfoR=new LFO({context:this.context,frequency:e.frequency,min:0,max:1,phase:180}),this._baseFrequency=this.toFrequency(e.baseFrequency),this._octaves=e.octaves,this.Q=new Signal({context:this.context,value:e.Q,units:"positive"}),this._filtersL=this._makeFilters(e.stages,this._lfoL),this._filtersR=this._makeFilters(e.stages,this._lfoR),this.frequency=this._lfoL.frequency,this.frequency.value=e.frequency,this.connectEffectLeft(...this._filtersL),this.connectEffectRight(...this._filtersR),this._lfoL.frequency.connect(this._lfoR.frequency),this.baseFrequency=e.baseFrequency,this.octaves=e.octaves,this._lfoL.start(),this._lfoR.start(),readOnly$1(this,["frequency","Q"])}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{frequency:.5,octaves:3,stages:10,Q:10,baseFrequency:350})}_makeFilters(e,s){const a=[];for(let c=0;ce.disconnect()),this._filtersR.forEach(e=>e.disconnect()),this.frequency.dispose(),this}}class Reverb extends Effect{constructor(){super(optionsFromArguments(Reverb.getDefaults(),arguments,["decay"])),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();const e=optionsFromArguments(Reverb.getDefaults(),arguments,["decay"]);this._decay=e.decay,this._preDelay=e.preDelay,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(Effect.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(e){e=this.toSeconds(e),assertRange(e,.001),this._decay=e,this.generate()}get preDelay(){return this._preDelay}set preDelay(e){e=this.toSeconds(e),assertRange(e,0),this._preDelay=e,this.generate()}generate(){return __awaiter$4(this,void 0,void 0,function*(){const e=this.ready,s=new OfflineContext(2,this._decay+this._preDelay,this.context.sampleRate),a=new Noise({context:s}),c=new Noise({context:s}),d=new Merge({context:s});a.connect(d,0,0),c.connect(d,0,1);const _=new Gain$1({context:s}).toDestination();d.connect(_),a.start(0),c.start(0),_.gain.setValueAtTime(0,0),_.gain.setValueAtTime(1,this._preDelay),_.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);const b=s.render();return this.ready=b.then(noOp),yield e,this._convolver.buffer=(yield b).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}}class MidSideSplit extends ToneAudioNode{constructor(){super(optionsFromArguments(MidSideSplit.getDefaults(),arguments)),this.name="MidSideSplit",this._split=this.input=new Split({channels:2,context:this.context}),this._midAdd=new Add({context:this.context}),this.mid=new Multiply({context:this.context,value:Math.SQRT1_2}),this._sideSubtract=new Subtract({context:this.context}),this.side=new Multiply({context:this.context,value:Math.SQRT1_2}),this._split.connect(this._midAdd,0),this._split.connect(this._midAdd.addend,1),this._split.connect(this._sideSubtract,0),this._split.connect(this._sideSubtract.subtrahend,1),this._midAdd.connect(this.mid),this._sideSubtract.connect(this.side)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midAdd.dispose(),this._sideSubtract.dispose(),this._split.dispose(),this}}class MidSideMerge extends ToneAudioNode{constructor(){super(optionsFromArguments(MidSideMerge.getDefaults(),arguments)),this.name="MidSideMerge",this.mid=new Gain$1({context:this.context}),this.side=new Gain$1({context:this.context}),this._left=new Add({context:this.context}),this._leftMult=new Multiply({context:this.context,value:Math.SQRT1_2}),this._right=new Subtract({context:this.context}),this._rightMult=new Multiply({context:this.context,value:Math.SQRT1_2}),this._merge=this.output=new Merge({context:this.context}),this.mid.fan(this._left),this.side.connect(this._left.addend),this.mid.connect(this._right),this.side.connect(this._right.subtrahend),this._left.connect(this._leftMult),this._right.connect(this._rightMult),this._leftMult.connect(this._merge,0,0),this._rightMult.connect(this._merge,0,1)}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._leftMult.dispose(),this._rightMult.dispose(),this._left.dispose(),this._right.dispose(),this}}class MidSideEffect extends Effect{constructor(e){super(e),this.name="MidSideEffect",this._midSideMerge=new MidSideMerge({context:this.context}),this._midSideSplit=new MidSideSplit({context:this.context}),this._midSend=this._midSideSplit.mid,this._sideSend=this._midSideSplit.side,this._midReturn=this._midSideMerge.mid,this._sideReturn=this._midSideMerge.side,this.effectSend.connect(this._midSideSplit),this._midSideMerge.connect(this.effectReturn)}connectEffectMid(...e){this._midSend.chain(...e,this._midReturn)}connectEffectSide(...e){this._sideSend.chain(...e,this._sideReturn)}dispose(){return super.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this._midSend.dispose(),this._sideSend.dispose(),this._midReturn.dispose(),this._sideReturn.dispose(),this}}class StereoWidener extends MidSideEffect{constructor(){super(optionsFromArguments(StereoWidener.getDefaults(),arguments,["width"])),this.name="StereoWidener";const e=optionsFromArguments(StereoWidener.getDefaults(),arguments,["width"]);this.width=new Signal({context:this.context,value:e.width,units:"normalRange"}),readOnly$1(this,["width"]),this._twoTimesWidthMid=new Multiply({context:this.context,value:2}),this._twoTimesWidthSide=new Multiply({context:this.context,value:2}),this._midMult=new Multiply({context:this.context}),this._twoTimesWidthMid.connect(this._midMult.factor),this.connectEffectMid(this._midMult),this._oneMinusWidth=new Subtract({context:this.context}),this._oneMinusWidth.connect(this._twoTimesWidthMid),connect(this.context.getConstant(1),this._oneMinusWidth),this.width.connect(this._oneMinusWidth.subtrahend),this._sideMult=new Multiply({context:this.context}),this.width.connect(this._twoTimesWidthSide),this._twoTimesWidthSide.connect(this._sideMult.factor),this.connectEffectSide(this._sideMult)}static getDefaults(){return Object.assign(MidSideEffect.getDefaults(),{width:.5})}dispose(){return super.dispose(),this.width.dispose(),this._midMult.dispose(),this._sideMult.dispose(),this._twoTimesWidthMid.dispose(),this._twoTimesWidthSide.dispose(),this._oneMinusWidth.dispose(),this}}class Tremolo extends StereoEffect{constructor(){super(optionsFromArguments(Tremolo.getDefaults(),arguments,["frequency","depth"])),this.name="Tremolo";const e=optionsFromArguments(Tremolo.getDefaults(),arguments,["frequency","depth"]);this._lfoL=new LFO({context:this.context,type:e.type,min:1,max:0}),this._lfoR=new LFO({context:this.context,type:e.type,min:1,max:0}),this._amplitudeL=new Gain$1({context:this.context}),this._amplitudeR=new Gain$1({context:this.context}),this.frequency=new Signal({context:this.context,value:e.frequency,units:"frequency"}),this.depth=new Signal({context:this.context,value:e.depth,units:"normalRange"}),readOnly$1(this,["frequency","depth"]),this.connectEffectLeft(this._amplitudeL),this.connectEffectRight(this._amplitudeR),this._lfoL.connect(this._amplitudeL.gain),this._lfoR.connect(this._amplitudeR.gain),this.frequency.fan(this._lfoL.frequency,this._lfoR.frequency),this.depth.fan(this._lfoR.amplitude,this._lfoL.amplitude),this.spread=e.spread}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{frequency:10,type:"sine",depth:.5,spread:180})}start(e){return this._lfoL.start(e),this._lfoR.start(e),this}stop(e){return this._lfoL.stop(e),this._lfoR.stop(e),this}sync(){return this._lfoL.sync(),this._lfoR.sync(),this.context.transport.syncSignal(this.frequency),this}unsync(){return this._lfoL.unsync(),this._lfoR.unsync(),this.context.transport.unsyncSignal(this.frequency),this}get type(){return this._lfoL.type}set type(e){this._lfoL.type=e,this._lfoR.type=e}get spread(){return this._lfoR.phase-this._lfoL.phase}set spread(e){this._lfoL.phase=90-e/2,this._lfoR.phase=e/2+90}dispose(){return super.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._amplitudeL.dispose(),this._amplitudeR.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class Vibrato extends Effect{constructor(){super(optionsFromArguments(Vibrato.getDefaults(),arguments,["frequency","depth"])),this.name="Vibrato";const e=optionsFromArguments(Vibrato.getDefaults(),arguments,["frequency","depth"]);this._delayNode=new Delay({context:this.context,delayTime:0,maxDelay:e.maxDelay}),this._lfo=new LFO({context:this.context,type:e.type,min:0,max:e.maxDelay,frequency:e.frequency,phase:-90}).start().connect(this._delayNode.delayTime),this.frequency=this._lfo.frequency,this.depth=this._lfo.amplitude,this.depth.value=e.depth,readOnly$1(this,["frequency","depth"]),this.effectSend.chain(this._delayNode,this.effectReturn)}static getDefaults(){return Object.assign(Effect.getDefaults(),{maxDelay:.005,frequency:5,depth:.1,type:"sine"})}get type(){return this._lfo.type}set type(e){this._lfo.type=e}dispose(){return super.dispose(),this._delayNode.dispose(),this._lfo.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class Analyser extends ToneAudioNode{constructor(){super(optionsFromArguments(Analyser.getDefaults(),arguments,["type","size"])),this.name="Analyser",this._analysers=[],this._buffers=[];const e=optionsFromArguments(Analyser.getDefaults(),arguments,["type","size"]);this.input=this.output=this._gain=new Gain$1({context:this.context}),this._split=new Split({context:this.context,channels:e.channels}),this.input.connect(this._split),assertRange(e.channels,1);for(let s=0;s{const a=this._buffers[s];this._type==="fft"?e.getFloatFrequencyData(a):this._type==="waveform"&&e.getFloatTimeDomainData(a)}),this.channels===1?this._buffers[0]:this._buffers}get size(){return this._analysers[0].frequencyBinCount}set size(e){this._analysers.forEach((s,a)=>{s.fftSize=e*2,this._buffers[a]=new Float32Array(e)})}get channels(){return this._analysers.length}get type(){return this._type}set type(e){assert(e==="waveform"||e==="fft",`Analyser: invalid type: ${e}`),this._type=e}get smoothing(){return this._analysers[0].smoothingTimeConstant}set smoothing(e){this._analysers.forEach(s=>s.smoothingTimeConstant=e)}dispose(){return super.dispose(),this._analysers.forEach(e=>e.disconnect()),this._split.dispose(),this._gain.dispose(),this}}class MeterBase extends ToneAudioNode{constructor(){super(optionsFromArguments(MeterBase.getDefaults(),arguments)),this.name="MeterBase",this.input=this.output=this._analyser=new Analyser({context:this.context,size:256,type:"waveform"})}dispose(){return super.dispose(),this._analyser.dispose(),this}}class Meter extends MeterBase{constructor(){super(optionsFromArguments(Meter.getDefaults(),arguments,["smoothing"])),this.name="Meter",this._rms=0;const e=optionsFromArguments(Meter.getDefaults(),arguments,["smoothing"]);this.input=this.output=this._analyser=new Analyser({context:this.context,size:256,type:"waveform",channels:e.channels}),this.smoothing=e.smoothing,this.normalRange=e.normalRange}static getDefaults(){return Object.assign(MeterBase.getDefaults(),{smoothing:.8,normalRange:!1,channels:1})}getLevel(){return warn("'getLevel' has been changed to 'getValue'"),this.getValue()}getValue(){const e=this._analyser.getValue(),a=(this.channels===1?[e]:e).map(c=>{const d=c.reduce((b,k)=>b+k*k,0),_=Math.sqrt(d/c.length);return this._rms=Math.max(_,this._rms*this.smoothing),this.normalRange?this._rms:gainToDb(this._rms)});return this.channels===1?a[0]:a}get channels(){return this._analyser.channels}dispose(){return super.dispose(),this._analyser.dispose(),this}}class FFT extends MeterBase{constructor(){super(optionsFromArguments(FFT.getDefaults(),arguments,["size"])),this.name="FFT";const e=optionsFromArguments(FFT.getDefaults(),arguments,["size"]);this.normalRange=e.normalRange,this._analyser.type="fft",this.size=e.size}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{normalRange:!1,size:1024,smoothing:.8})}getValue(){return this._analyser.getValue().map(s=>this.normalRange?dbToGain(s):s)}get size(){return this._analyser.size}set size(e){this._analyser.size=e}get smoothing(){return this._analyser.smoothing}set smoothing(e){this._analyser.smoothing=e}getFrequencyOfIndex(e){return assert(0<=e&&es._updateSolo())}get muted(){return this.input.gain.value===0}_addSolo(){Solo._soloed.has(this.context)||Solo._soloed.set(this.context,new Set),Solo._soloed.get(this.context).add(this)}_removeSolo(){Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).delete(this)}_isSoloed(){return Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).has(this)}_noSolos(){return!Solo._soloed.has(this.context)||Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).size===0}_updateSolo(){this._isSoloed()?this.input.gain.value=1:this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),Solo._allSolos.get(this.context).delete(this),this._removeSolo(),this}}Solo._allSolos=new Map;Solo._soloed=new Map;class PanVol extends ToneAudioNode{constructor(){super(optionsFromArguments(PanVol.getDefaults(),arguments,["pan","volume"])),this.name="PanVol";const e=optionsFromArguments(PanVol.getDefaults(),arguments,["pan","volume"]);this._panner=this.input=new Panner({context:this.context,pan:e.pan,channelCount:e.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Volume({context:this.context,volume:e.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=e.mute,readOnly$1(this,["pan","volume"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}}class Channel extends ToneAudioNode{constructor(){super(optionsFromArguments(Channel.getDefaults(),arguments,["volume","pan"])),this.name="Channel";const e=optionsFromArguments(Channel.getDefaults(),arguments,["volume","pan"]);this._solo=this.input=new Solo({solo:e.solo,context:this.context}),this._panVol=this.output=new PanVol({context:this.context,pan:e.pan,volume:e.volume,mute:e.mute,channelCount:e.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),readOnly$1(this,["pan","volume"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(e){this._solo.solo=e}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(e){this._panVol.mute=e}_getBus(e){return Channel.buses.has(e)||Channel.buses.set(e,new Gain$1({context:this.context})),Channel.buses.get(e)}send(e,s=0){const a=this._getBus(e),c=new Gain$1({context:this.context,units:"decibels",gain:s});return this.connect(c),c.connect(a),c}receive(e){return this._getBus(e).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}}Channel.buses=new Map;class Mono extends ToneAudioNode{constructor(){super(optionsFromArguments(Mono.getDefaults(),arguments)),this.name="Mono",this.input=new Gain$1({context:this.context}),this._merge=this.output=new Merge({channels:2,context:this.context}),this.input.connect(this._merge,0,0),this.input.connect(this._merge,0,1)}dispose(){return super.dispose(),this._merge.dispose(),this.input.dispose(),this}}class MultibandSplit extends ToneAudioNode{constructor(){super(optionsFromArguments(MultibandSplit.getDefaults(),arguments,["lowFrequency","highFrequency"])),this.name="MultibandSplit",this.input=new Gain$1({context:this.context}),this.output=void 0,this.low=new Filter$1({context:this.context,frequency:0,type:"lowpass"}),this._lowMidFilter=new Filter$1({context:this.context,frequency:0,type:"highpass"}),this.mid=new Filter$1({context:this.context,frequency:0,type:"lowpass"}),this.high=new Filter$1({context:this.context,frequency:0,type:"highpass"}),this._internalChannels=[this.low,this.mid,this.high];const e=optionsFromArguments(MultibandSplit.getDefaults(),arguments,["lowFrequency","highFrequency"]);this.lowFrequency=new Signal({context:this.context,units:"frequency",value:e.lowFrequency}),this.highFrequency=new Signal({context:this.context,units:"frequency",value:e.highFrequency}),this.Q=new Signal({context:this.context,units:"positive",value:e.Q}),this.input.fan(this.low,this.high),this.input.chain(this._lowMidFilter,this.mid),this.lowFrequency.fan(this.low.frequency,this._lowMidFilter.frequency),this.highFrequency.fan(this.mid.frequency,this.high.frequency),this.Q.connect(this.low.Q),this.Q.connect(this._lowMidFilter.Q),this.Q.connect(this.mid.Q),this.Q.connect(this.high.Q),readOnly$1(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{Q:1,highFrequency:2500,lowFrequency:400})}dispose(){return super.dispose(),writable(this,["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this._lowMidFilter.dispose(),this.mid.dispose(),this.high.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this.Q.dispose(),this}}class Listener$1 extends ToneAudioNode{constructor(){super(...arguments),this.name="Listener",this.positionX=new Param({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new Param({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new Param({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new Param({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new Param({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new Param({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new Param({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new Param({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new Param({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}}onContextInit(o=>{o.listener=new Listener$1({context:o})});onContextClose(o=>{o.listener.dispose()});class Panner3D extends ToneAudioNode{constructor(){super(optionsFromArguments(Panner3D.getDefaults(),arguments,["positionX","positionY","positionZ"])),this.name="Panner3D";const e=optionsFromArguments(Panner3D.getDefaults(),arguments,["positionX","positionY","positionZ"]);this._panner=this.input=this.output=this.context.createPanner(),this.panningModel=e.panningModel,this.maxDistance=e.maxDistance,this.distanceModel=e.distanceModel,this.coneOuterGain=e.coneOuterGain,this.coneOuterAngle=e.coneOuterAngle,this.coneInnerAngle=e.coneInnerAngle,this.refDistance=e.refDistance,this.rolloffFactor=e.rolloffFactor,this.positionX=new Param({context:this.context,param:this._panner.positionX,value:e.positionX}),this.positionY=new Param({context:this.context,param:this._panner.positionY,value:e.positionY}),this.positionZ=new Param({context:this.context,param:this._panner.positionZ,value:e.positionZ}),this.orientationX=new Param({context:this.context,param:this._panner.orientationX,value:e.orientationX}),this.orientationY=new Param({context:this.context,param:this._panner.orientationY,value:e.orientationY}),this.orientationZ=new Param({context:this.context,param:this._panner.orientationZ,value:e.orientationZ})}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:0,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1})}setPosition(e,s,a){return this.positionX.value=e,this.positionY.value=s,this.positionZ.value=a,this}setOrientation(e,s,a){return this.orientationX.value=e,this.orientationY.value=s,this.orientationZ.value=a,this}get panningModel(){return this._panner.panningModel}set panningModel(e){this._panner.panningModel=e}get refDistance(){return this._panner.refDistance}set refDistance(e){this._panner.refDistance=e}get rolloffFactor(){return this._panner.rolloffFactor}set rolloffFactor(e){this._panner.rolloffFactor=e}get distanceModel(){return this._panner.distanceModel}set distanceModel(e){this._panner.distanceModel=e}get coneInnerAngle(){return this._panner.coneInnerAngle}set coneInnerAngle(e){this._panner.coneInnerAngle=e}get coneOuterAngle(){return this._panner.coneOuterAngle}set coneOuterAngle(e){this._panner.coneOuterAngle=e}get coneOuterGain(){return this._panner.coneOuterGain}set coneOuterGain(e){this._panner.coneOuterGain=e}get maxDistance(){return this._panner.maxDistance}set maxDistance(e){this._panner.maxDistance=e}dispose(){return super.dispose(),this._panner.disconnect(),this.orientationX.dispose(),this.orientationY.dispose(),this.orientationZ.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this}}class Recorder extends ToneAudioNode{constructor(){super(optionsFromArguments(Recorder.getDefaults(),arguments)),this.name="Recorder";const e=optionsFromArguments(Recorder.getDefaults(),arguments);this.input=new Gain$1({context:this.context}),assert(Recorder.supported,"Media Recorder API is not available"),this._stream=this.context.createMediaStreamDestination(),this.input.connect(this._stream),this._recorder=new MediaRecorder(this._stream.stream,{mimeType:e.mimeType})}static getDefaults(){return ToneAudioNode.getDefaults()}get mimeType(){return this._recorder.mimeType}static get supported(){return theWindow!==null&&Reflect.has(theWindow,"MediaRecorder")}get state(){return this._recorder.state==="inactive"?"stopped":this._recorder.state==="paused"?"paused":"started"}start(){return __awaiter$4(this,void 0,void 0,function*(){assert(this.state!=="started","Recorder is already started");const e=new Promise(s=>{const a=()=>{this._recorder.removeEventListener("start",a,!1),s()};this._recorder.addEventListener("start",a,!1)});return this._recorder.start(),yield e})}stop(){return __awaiter$4(this,void 0,void 0,function*(){assert(this.state!=="stopped","Recorder is not started");const e=new Promise(s=>{const a=c=>{this._recorder.removeEventListener("dataavailable",a,!1),s(c.data)};this._recorder.addEventListener("dataavailable",a,!1)});return this._recorder.stop(),yield e})}pause(){return assert(this.state==="started","Recorder must be started"),this._recorder.pause(),this}dispose(){return super.dispose(),this.input.dispose(),this._stream.disconnect(),this}}class Compressor extends ToneAudioNode{constructor(){super(optionsFromArguments(Compressor.getDefaults(),arguments,["threshold","ratio"])),this.name="Compressor",this._compressor=this.context.createDynamicsCompressor(),this.input=this._compressor,this.output=this._compressor;const e=optionsFromArguments(Compressor.getDefaults(),arguments,["threshold","ratio"]);this.threshold=new Param({minValue:this._compressor.threshold.minValue,maxValue:this._compressor.threshold.maxValue,context:this.context,convert:!1,param:this._compressor.threshold,units:"decibels",value:e.threshold}),this.attack=new Param({minValue:this._compressor.attack.minValue,maxValue:this._compressor.attack.maxValue,context:this.context,param:this._compressor.attack,units:"time",value:e.attack}),this.release=new Param({minValue:this._compressor.release.minValue,maxValue:this._compressor.release.maxValue,context:this.context,param:this._compressor.release,units:"time",value:e.release}),this.knee=new Param({minValue:this._compressor.knee.minValue,maxValue:this._compressor.knee.maxValue,context:this.context,convert:!1,param:this._compressor.knee,units:"decibels",value:e.knee}),this.ratio=new Param({minValue:this._compressor.ratio.minValue,maxValue:this._compressor.ratio.maxValue,context:this.context,convert:!1,param:this._compressor.ratio,units:"positive",value:e.ratio}),readOnly$1(this,["knee","release","attack","ratio","threshold"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{attack:.003,knee:30,ratio:12,release:.25,threshold:-24})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.disconnect(),this.attack.dispose(),this.release.dispose(),this.threshold.dispose(),this.ratio.dispose(),this.knee.dispose(),this}}class Gate extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(Gate.getDefaults(),arguments,["threshold","smoothing"]))),this.name="Gate";const e=optionsFromArguments(Gate.getDefaults(),arguments,["threshold","smoothing"]);this._follower=new Follower({context:this.context,smoothing:e.smoothing}),this._gt=new GreaterThan({context:this.context,value:dbToGain(e.threshold)}),this.input=new Gain$1({context:this.context}),this._gate=this.output=new Gain$1({context:this.context}),this.input.connect(this._gate),this.input.chain(this._follower,this._gt,this._gate.gain)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{smoothing:.1,threshold:-40})}get threshold(){return gainToDb(this._gt.value)}set threshold(e){this._gt.value=dbToGain(e)}get smoothing(){return this._follower.smoothing}set smoothing(e){this._follower.smoothing=e}dispose(){return super.dispose(),this.input.dispose(),this._follower.dispose(),this._gt.dispose(),this._gate.dispose(),this}}class Limiter extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(Limiter.getDefaults(),arguments,["threshold"]))),this.name="Limiter";const e=optionsFromArguments(Limiter.getDefaults(),arguments,["threshold"]);this._compressor=this.input=this.output=new Compressor({context:this.context,ratio:20,attack:.003,release:.01,threshold:e.threshold}),this.threshold=this._compressor.threshold,readOnly$1(this,"threshold")}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{threshold:-12})}get reduction(){return this._compressor.reduction}dispose(){return super.dispose(),this._compressor.dispose(),this.threshold.dispose(),this}}class MidSideCompressor extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(MidSideCompressor.getDefaults(),arguments))),this.name="MidSideCompressor";const e=optionsFromArguments(MidSideCompressor.getDefaults(),arguments);this._midSideSplit=this.input=new MidSideSplit({context:this.context}),this._midSideMerge=this.output=new MidSideMerge({context:this.context}),this.mid=new Compressor(Object.assign(e.mid,{context:this.context})),this.side=new Compressor(Object.assign(e.side,{context:this.context})),this._midSideSplit.mid.chain(this.mid,this._midSideMerge.mid),this._midSideSplit.side.chain(this.side,this._midSideMerge.side),readOnly$1(this,["mid","side"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},side:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10}})}dispose(){return super.dispose(),this.mid.dispose(),this.side.dispose(),this._midSideSplit.dispose(),this._midSideMerge.dispose(),this}}class MultibandCompressor extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(MultibandCompressor.getDefaults(),arguments))),this.name="MultibandCompressor";const e=optionsFromArguments(MultibandCompressor.getDefaults(),arguments);this._splitter=this.input=new MultibandSplit({context:this.context,lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this.lowFrequency=this._splitter.lowFrequency,this.highFrequency=this._splitter.highFrequency,this.output=new Gain$1({context:this.context}),this.low=new Compressor(Object.assign(e.low,{context:this.context})),this.mid=new Compressor(Object.assign(e.mid,{context:this.context})),this.high=new Compressor(Object.assign(e.high,{context:this.context})),this._splitter.low.chain(this.low,this.output),this._splitter.mid.chain(this.mid,this.output),this._splitter.high.chain(this.high,this.output),readOnly$1(this,["high","mid","low","highFrequency","lowFrequency"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{lowFrequency:250,highFrequency:2e3,low:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10},mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},high:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16}})}dispose(){return super.dispose(),this._splitter.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.output.dispose(),this}}class EQ3 extends ToneAudioNode{constructor(){super(optionsFromArguments(EQ3.getDefaults(),arguments,["low","mid","high"])),this.name="EQ3",this.output=new Gain$1({context:this.context}),this._internalChannels=[];const e=optionsFromArguments(EQ3.getDefaults(),arguments,["low","mid","high"]);this.input=this._multibandSplit=new MultibandSplit({context:this.context,highFrequency:e.highFrequency,lowFrequency:e.lowFrequency}),this._lowGain=new Gain$1({context:this.context,gain:e.low,units:"decibels"}),this._midGain=new Gain$1({context:this.context,gain:e.mid,units:"decibels"}),this._highGain=new Gain$1({context:this.context,gain:e.high,units:"decibels"}),this.low=this._lowGain.gain,this.mid=this._midGain.gain,this.high=this._highGain.gain,this.Q=this._multibandSplit.Q,this.lowFrequency=this._multibandSplit.lowFrequency,this.highFrequency=this._multibandSplit.highFrequency,this._multibandSplit.low.chain(this._lowGain,this.output),this._multibandSplit.mid.chain(this._midGain,this.output),this._multibandSplit.high.chain(this._highGain,this.output),readOnly$1(this,["low","mid","high","lowFrequency","highFrequency"]),this._internalChannels=[this._multibandSplit]}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{high:0,highFrequency:2500,low:0,lowFrequency:400,mid:0})}dispose(){return super.dispose(),writable(this,["low","mid","high","lowFrequency","highFrequency"]),this._multibandSplit.dispose(),this.lowFrequency.dispose(),this.highFrequency.dispose(),this._lowGain.dispose(),this._midGain.dispose(),this._highGain.dispose(),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this.Q.dispose(),this}}class Convolver extends ToneAudioNode{constructor(){super(optionsFromArguments(Convolver.getDefaults(),arguments,["url","onload"])),this.name="Convolver",this._convolver=this.context.createConvolver();const e=optionsFromArguments(Convolver.getDefaults(),arguments,["url","onload"]);this._buffer=new ToneAudioBuffer(e.url,s=>{this.buffer=s,e.onload()}),this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this._buffer.loaded&&(this.buffer=this._buffer),this.normalize=e.normalize,this.input.chain(this._convolver,this.output)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{normalize:!0,onload:noOp})}load(e){return __awaiter$4(this,void 0,void 0,function*(){this.buffer=yield this._buffer.load(e)})}get buffer(){return this._buffer.length?this._buffer:null}set buffer(e){e&&this._buffer.set(e),this._convolver.buffer&&(this.input.disconnect(),this._convolver.disconnect(),this._convolver=this.context.createConvolver(),this.input.chain(this._convolver,this.output));const s=this._buffer.get();this._convolver.buffer=s||null}get normalize(){return this._convolver.normalize}set normalize(e){this._convolver.normalize=e}dispose(){return super.dispose(),this._buffer.dispose(),this._convolver.disconnect(),this}}function now(){return getContext().now()}function immediate(){return getContext().immediate()}const Transport=getContext().transport;function getTransport(){return getContext().transport}const Destination$1=getContext().destination,Master=getContext().destination;function getDestination$1(){return getContext().destination}const Listener=getContext().listener;function getListener(){return getContext().listener}const Draw=getContext().draw;function getDraw(){return getContext().draw}const context=getContext();function loaded(){return ToneAudioBuffer.loaded()}const Buffer=ToneAudioBuffer,Buffers=ToneAudioBuffers,BufferSource=ToneBufferSource;var _Tone=Object.freeze(Object.defineProperty({__proto__:null,now,immediate,Transport,getTransport,Destination:Destination$1,Master,getDestination:getDestination$1,Listener,getListener,Draw,getDraw,context,loaded,Buffer,Buffers,BufferSource,getContext,setContext,start,supported:isSupported,dbToGain,gainToDb,intervalToFrequencyRatio,ftom,mtof,optionsFromArguments,defaultArg,Clock,Context,BaseContext,Delay,Gain:Gain$1,Offline,OfflineContext,Param,ToneAudioBuffer,ToneAudioBuffers,ToneAudioNode,connectSeries,connect,disconnect,FrequencyClass,Frequency,MidiClass,Midi,TimeClass,Time,TicksClass,Ticks,TransportTimeClass,TransportTime,Emitter,IntervalTimeline,StateTimeline,Timeline,isUndef,isDefined,isFunction,isNumber,isObject,isBoolean,isArray,isString,isNote:isNote$2,Unit:Units,debug:Debug,Noise,UserMedia,Oscillator,AMOscillator,FMOscillator,PulseOscillator,FatOscillator,PWMOscillator,OmniOscillator,ToneOscillatorNode,LFO,ToneBufferSource,Player,Players:Players$1,GrainPlayer,Add,Abs,AudioToGain,GainToAudio,GreaterThan,GreaterThanZero,Multiply,Negate,Pow,Signal,connectSignal,Scale,ScaleExp,Subtract,SyncedSignal,WaveShaper,Zero,AMSynth:AMSynth$1,DuoSynth:DuoSynth$1,FMSynth:FMSynth$1,MetalSynth:MetalSynth$1,MembraneSynth:MembraneSynth$1,MonoSynth:MonoSynth$1,NoiseSynth:NoiseSynth$1,PluckSynth:PluckSynth$1,PolySynth:PolySynth$1,Sampler:Sampler$1,Synth:Synth$1,Loop,Part,Pattern:Pattern$4,Sequence,ToneEvent,AutoFilter:AutoFilter$1,AutoPanner,AutoWah,BitCrusher,Chebyshev,Chorus,Distortion,FeedbackDelay,FrequencyShifter,Freeverb,JCReverb,PingPongDelay,PitchShift,Phaser,Reverb,StereoWidener,Tremolo,Vibrato,Analyser,Meter,FFT,DCMeter,Waveform,Follower,Channel,CrossFade,Merge,MidSideMerge,MidSideSplit,Mono,MultibandSplit,Panner,Panner3D,PanVol,Recorder,Solo,Split,Volume,Compressor,Gate,Limiter,MidSideCompressor,MultibandCompressor,AmplitudeEnvelope,Envelope,FrequencyEnvelope,EQ3,Filter:Filter$1,OnePoleFilter,FeedbackCombFilter,LowpassCombFilter,Convolver,BiquadFilter,version},Symbol.toStringTag,{value:"Module"})),__awaiter$3=globalThis&&globalThis.__awaiter||function(o,e,s,a){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(a.next(j))}catch(_e){_(_e)}}function k(j){try{$(a.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((a=a.apply(o,e||[])).next())})};class PianoComponent extends ToneAudioNode{constructor(e){super(e),this.name="PianoComponent",this.input=void 0,this.output=new Volume({context:this.context}),this._enabled=!1,this.volume=this.output.volume,this._loaded=!1,this.volume.value=e.volume,this._enabled=e.enabled,this.samples=e.samples}get loaded(){return this._loaded}load(){return __awaiter$3(this,void 0,void 0,function*(){if(this._enabled)yield this._internalLoad(),this._loaded=!0;else return Promise.resolve()})}}function midiToNote(o){return Frequency(o,"midi").toNote()}function randomBetween(o,e){return Math.random()*(e-o)+o}function getReleasesUrl(o){return`rel${o-20}.[mp3|ogg]`}function getHarmonicsUrl(o){return`harmS${midiToNote(o).replace("#","s")}.[mp3|ogg]`}function getNotesUrl(o,e){return`${midiToNote(o).replace("#","s")}v${e}.[mp3|ogg]`}const velocitiesMap={1:[8],2:[6,12],3:[1,7,15],4:[1,5,10,15],5:[1,4,8,12,16],6:[1,3,7,10,13,16],7:[1,3,6,9,11,13,16],8:[1,3,5,7,9,11,13,16],9:[1,3,5,7,9,11,13,15,16],10:[1,2,3,5,7,9,11,13,15,16],11:[1,2,3,5,7,9,11,13,14,15,16],12:[1,2,3,4,5,7,9,11,13,14,15,16],13:[1,2,3,4,5,7,9,11,12,13,14,15,16],14:[1,2,3,4,5,6,7,9,11,12,13,14,15,16],15:[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16],16:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]},allNotes=[21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108];function getNotesInRange(o,e){return allNotes.filter(s=>o<=s&&s<=e)}const harmonics=[21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87];function getHarmonicsInRange(o,e){return harmonics.filter(s=>o<=s&&s<=e)}function inHarmonicsRange(o){return harmonics[0]<=o&&o<=harmonics[harmonics.length-1]}class Harmonics extends PianoComponent{constructor(e){super(e),this._urls={};const s=getHarmonicsInRange(e.minNote,e.maxNote);for(const a of s)this._urls[a]=getHarmonicsUrl(a)}triggerAttack(e,s,a){this._enabled&&inHarmonicsRange(e)&&this._sampler.triggerAttack(Midi(e).toNote(),s,a*randomBetween(.5,1))}_internalLoad(){return new Promise(e=>{this._sampler=new Sampler$1({baseUrl:this.samples,onload:e,urls:this._urls}).connect(this.output)})}}class Keybed extends PianoComponent{constructor(e){super(e),this._urls={};for(let s=e.minNote;s<=e.maxNote;s++)this._urls[s]=getReleasesUrl(s)}_internalLoad(){return new Promise(e=>{this._buffers=new ToneAudioBuffers(this._urls,e,this.samples)})}start(e,s,a){this._enabled&&this._buffers.has(e)&&new ToneBufferSource({url:this._buffers.get(e),context:this.context}).connect(this.output).start(s,0,void 0,.015*a*randomBetween(.5,1))}}class Pedal extends PianoComponent{constructor(e){super(e),this._downTime=1/0,this._currentSound=null,this._downTime=1/0}_internalLoad(){return new Promise(e=>{this._buffers=new ToneAudioBuffers({down1:"pedalD1.mp3",down2:"pedalD2.mp3",up1:"pedalU1.mp3",up2:"pedalU2.mp3"},e,this.samples)})}_squash(e){this._currentSound&&this._currentSound.state!=="stopped"&&this._currentSound.stop(e),this._currentSound=null}_playSample(e,s){this._enabled&&(this._currentSound=new ToneBufferSource({url:this._buffers.get(`${s}${Math.random()>.5?1:2}`),context:this.context,curve:"exponential",fadeIn:.05,fadeOut:.1}).connect(this.output),this._currentSound.start(e,randomBetween(0,.01),void 0,.1*randomBetween(.5,1)))}down(e){this._squash(e),this._downTime=e,this._playSample(e,"down")}up(e){this._squash(e),this._downTime=1/0,this._playSample(e,"up")}isDown(e){return e>this._downTime}}class PianoString extends ToneAudioNode{constructor(e){super(e),this.name="PianoString",this._urls={},e.notes.forEach(s=>this._urls[s]=getNotesUrl(s,e.velocity)),this.samples=e.samples}load(){return new Promise(e=>{this._sampler=this.output=new Sampler$1({attack:0,baseUrl:this.samples,curve:"exponential",onload:e,release:.4,urls:this._urls,volume:3})})}triggerAttack(e,s,a){this._sampler.triggerAttack(e,s,a)}triggerRelease(e,s){this._sampler.triggerRelease(e,s)}}var __awaiter$2=globalThis&&globalThis.__awaiter||function(o,e,s,a){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(a.next(j))}catch(_e){_(_e)}}function k(j){try{$(a.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((a=a.apply(o,e||[])).next())})};class PianoStrings extends PianoComponent{constructor(e){super(e);const s=getNotesInRange(e.minNote,e.maxNote),a=velocitiesMap[e.velocities].slice();this._strings=a.map(c=>new PianoString(Object.assign(e,{notes:s,velocity:c}))),this._activeNotes=new Map}scale(e,s,a,c,d){return(e-s)/(a-s)*(d-c)+c}triggerAttack(e,s,a){const c=this.scale(a,0,1,-.5,this._strings.length-.51),d=Math.max(Math.round(c),0);let _=1+c-d;this._strings.length===1&&(_=a);const b=this._strings[d];this._activeNotes.has(e)&&this.triggerRelease(e,s),this._activeNotes.set(e,b),b.triggerAttack(Midi(e).toNote(),s,_)}triggerRelease(e,s){this._activeNotes.has(e)&&(this._activeNotes.get(e).triggerRelease(Midi(e).toNote(),s),this._activeNotes.delete(e))}_internalLoad(){return __awaiter$2(this,void 0,void 0,function*(){yield Promise.all(this._strings.map(e=>__awaiter$2(this,void 0,void 0,function*(){yield e.load(),e.connect(this.output)})))})}}var __awaiter$1=globalThis&&globalThis.__awaiter||function(o,e,s,a){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(a.next(j))}catch(_e){_(_e)}}function k(j){try{$(a.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((a=a.apply(o,e||[])).next())})};class Piano$1 extends ToneAudioNode{constructor(){super(optionsFromArguments(Piano$1.getDefaults(),arguments)),this.name="Piano",this.input=void 0,this.output=new Gain$1({context:this.context}),this._heldNotes=new Map,this._loaded=!1;const e=optionsFromArguments(Piano$1.getDefaults(),arguments);e.url.endsWith("/")||(e.url+="/"),this.maxPolyphony=e.maxPolyphony,this._heldNotes=new Map,this._sustainedNotes=new Map,this._strings=new PianoStrings(Object.assign({},e,{enabled:!0,samples:e.url,volume:e.volume.strings})).connect(this.output),this.strings=this._strings.volume,this._pedal=new Pedal(Object.assign({},e,{enabled:e.pedal,samples:e.url,volume:e.volume.pedal})).connect(this.output),this.pedal=this._pedal.volume,this._keybed=new Keybed(Object.assign({},e,{enabled:e.release,samples:e.url,volume:e.volume.keybed})).connect(this.output),this.keybed=this._keybed.volume,this._harmonics=new Harmonics(Object.assign({},e,{enabled:e.release,samples:e.url,volume:e.volume.harmonics})).connect(this.output),this.harmonics=this._harmonics.volume}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{maxNote:108,minNote:21,pedal:!0,release:!1,url:"https://tambien.github.io/Piano/audio/",velocities:1,maxPolyphony:32,volume:{harmonics:0,keybed:0,pedal:0,strings:0}})}load(){return __awaiter$1(this,void 0,void 0,function*(){yield Promise.all([this._strings.load(),this._pedal.load(),this._keybed.load(),this._harmonics.load()]),this._loaded=!0})}get loaded(){return this._loaded}pedalDown({time:e=this.immediate()}={}){return this.loaded&&(e=this.toSeconds(e),this._pedal.isDown(e)||this._pedal.down(e)),this}pedalUp({time:e=this.immediate()}={}){if(this.loaded){const s=this.toSeconds(e);this._pedal.isDown(s)&&(this._pedal.up(s),this._sustainedNotes.forEach((a,c)=>{this._heldNotes.has(c)||this._strings.triggerRelease(c,s)}),this._sustainedNotes.clear())}return this}keyDown({note:e,midi:s,time:a=this.immediate(),velocity:c=.8}){return this.loaded&&this.maxPolyphony>this._heldNotes.size+this._sustainedNotes.size?(a=this.toSeconds(a),isString(e)&&(s=Math.round(Midi(e).toMidi())),this._heldNotes.has(s)||(this._heldNotes.set(s,{time:a,velocity:c}),this._strings.triggerAttack(s,a,c))):console.warn("samples not loaded"),this}keyUp({note:e,midi:s,time:a=this.immediate(),velocity:c=.8}){if(this.loaded&&(a=this.toSeconds(a),isString(e)&&(s=Math.round(Midi(e).toMidi())),this._heldNotes.has(s))){const d=this._heldNotes.get(s);this._heldNotes.delete(s);const _=Math.pow(Math.max(a-d.time,.1),.7),b=d.velocity;let k=3/_*b*c;k=Math.max(k,.4),k=Math.min(k,4),this._pedal.isDown(a)?this._sustainedNotes.has(s)||this._sustainedNotes.set(s,a):(this._strings.triggerRelease(s,a),this._harmonics.triggerAttack(s,a,k)),this._keybed.start(s,a,c)}return this}stopAll(){return this.pedalUp(),this._heldNotes.forEach((e,s)=>{this.keyUp({midi:s})}),this}}var events={exports:{}},R=typeof Reflect=="object"?Reflect:null,ReflectApply=R&&typeof R.apply=="function"?R.apply:function o(e,s,a){return Function.prototype.apply.call(e,s,a)},ReflectOwnKeys;R&&typeof R.ownKeys=="function"?ReflectOwnKeys=R.ownKeys:Object.getOwnPropertySymbols?ReflectOwnKeys=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:ReflectOwnKeys=function(e){return Object.getOwnPropertyNames(e)};function ProcessEmitWarning(o){console&&console.warn&&console.warn(o)}var NumberIsNaN=Number.isNaN||function o(e){return e!==e};function EventEmitter(){EventEmitter.init.call(this)}events.exports=EventEmitter;events.exports.once=once;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=void 0;EventEmitter.prototype._eventsCount=0;EventEmitter.prototype._maxListeners=void 0;var defaultMaxListeners=10;function checkListener(o){if(typeof o!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof o)}Object.defineProperty(EventEmitter,"defaultMaxListeners",{enumerable:!0,get:function(){return defaultMaxListeners},set:function(o){if(typeof o!="number"||o<0||NumberIsNaN(o))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+o+".");defaultMaxListeners=o}});EventEmitter.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};EventEmitter.prototype.setMaxListeners=function o(e){if(typeof e!="number"||e<0||NumberIsNaN(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function _getMaxListeners(o){return o._maxListeners===void 0?EventEmitter.defaultMaxListeners:o._maxListeners}EventEmitter.prototype.getMaxListeners=function o(){return _getMaxListeners(this)};EventEmitter.prototype.emit=function o(e){for(var s=[],a=1;a0&&(_=s[0]),_ instanceof Error)throw _;var b=new Error("Unhandled error."+(_?" ("+_.message+")":""));throw b.context=_,b}var k=d[e];if(k===void 0)return!1;if(typeof k=="function")ReflectApply(k,this,s);else for(var $=k.length,j=arrayClone(k,$),a=0;a<$;++a)ReflectApply(j[a],this,s);return!0};function _addListener(o,e,s,a){var c,d,_;if(checkListener(s),d=o._events,d===void 0?(d=o._events=Object.create(null),o._eventsCount=0):(d.newListener!==void 0&&(o.emit("newListener",e,s.listener?s.listener:s),d=o._events),_=d[e]),_===void 0)_=d[e]=s,++o._eventsCount;else if(typeof _=="function"?_=d[e]=a?[s,_]:[_,s]:a?_.unshift(s):_.push(s),c=_getMaxListeners(o),c>0&&_.length>c&&!_.warned){_.warned=!0;var b=new Error("Possible EventEmitter memory leak detected. "+_.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");b.name="MaxListenersExceededWarning",b.emitter=o,b.type=e,b.count=_.length,ProcessEmitWarning(b)}return o}EventEmitter.prototype.addListener=function o(e,s){return _addListener(this,e,s,!1)};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function o(e,s){return _addListener(this,e,s,!0)};function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(o,e,s){var a={fired:!1,wrapFn:void 0,target:o,type:e,listener:s},c=onceWrapper.bind(a);return c.listener=s,a.wrapFn=c,c}EventEmitter.prototype.once=function o(e,s){return checkListener(s),this.on(e,_onceWrap(this,e,s)),this};EventEmitter.prototype.prependOnceListener=function o(e,s){return checkListener(s),this.prependListener(e,_onceWrap(this,e,s)),this};EventEmitter.prototype.removeListener=function o(e,s){var a,c,d,_,b;if(checkListener(s),c=this._events,c===void 0)return this;if(a=c[e],a===void 0)return this;if(a===s||a.listener===s)--this._eventsCount===0?this._events=Object.create(null):(delete c[e],c.removeListener&&this.emit("removeListener",e,a.listener||s));else if(typeof a!="function"){for(d=-1,_=a.length-1;_>=0;_--)if(a[_]===s||a[_].listener===s){b=a[_].listener,d=_;break}if(d<0)return this;d===0?a.shift():spliceOne(a,d),a.length===1&&(c[e]=a[0]),c.removeListener!==void 0&&this.emit("removeListener",e,b||s)}return this};EventEmitter.prototype.off=EventEmitter.prototype.removeListener;EventEmitter.prototype.removeAllListeners=function o(e){var s,a,c;if(a=this._events,a===void 0)return this;if(a.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):a[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete a[e]),this;if(arguments.length===0){var d=Object.keys(a),_;for(c=0;c=0;c--)this.removeListener(e,s[c]);return this};function _listeners(o,e,s){var a=o._events;if(a===void 0)return[];var c=a[e];return c===void 0?[]:typeof c=="function"?s?[c.listener||c]:[c]:s?unwrapListeners(c):arrayClone(c,c.length)}EventEmitter.prototype.listeners=function o(e){return _listeners(this,e,!0)};EventEmitter.prototype.rawListeners=function o(e){return _listeners(this,e,!1)};EventEmitter.listenerCount=function(o,e){return typeof o.listenerCount=="function"?o.listenerCount(e):listenerCount.call(o,e)};EventEmitter.prototype.listenerCount=listenerCount;function listenerCount(o){var e=this._events;if(e!==void 0){var s=e[o];if(typeof s=="function")return 1;if(s!==void 0)return s.length}return 0}EventEmitter.prototype.eventNames=function o(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};function arrayClone(o,e){for(var s=new Array(e),a=0;a>4,j=15&_.data[0],_e=1+j;if(1<_.data.length&&(b=_.data[1],k=2<_.data.length?_.data[2]:void 0),a.nrpnEventsEnabled&&$===a.MIDI_CHANNEL_MESSAGES.controlchange&&(b>=a.MIDI_NRPN_MESSAGES.increment&&b<=a.MIDI_NRPN_MESSAGES.parammsb||b===a.MIDI_NRPN_MESSAGES.entrymsb||b===a.MIDI_NRPN_MESSAGES.entrylsb)){var et={target:this,type:"controlchange",data:_.data,timestamp:_.timeStamp,channel:_e,controller:{number:b,name:this.getCcNameByNumber(b)},value:k};if(et.controller.number===a.MIDI_NRPN_MESSAGES.parammsb&&et.value!=a.MIDI_NRPN_MESSAGES.nullactiveparameter)a._nrpnBuffer[j]=[],a._nrpnBuffer[j][0]=et;else if(a._nrpnBuffer[j].length===1&&et.controller.number===a.MIDI_NRPN_MESSAGES.paramlsb)a._nrpnBuffer[j].push(et);else if(a._nrpnBuffer[j].length!==2||et.controller.number!==a.MIDI_NRPN_MESSAGES.increment&&et.controller.number!==a.MIDI_NRPN_MESSAGES.decrement&&et.controller.number!==a.MIDI_NRPN_MESSAGES.entrymsb)if(a._nrpnBuffer[j].length===3&&a._nrpnBuffer[j][2].number===a.MIDI_NRPN_MESSAGES.entrymsb&&et.controller.number===a.MIDI_NRPN_MESSAGES.entrylsb)a._nrpnBuffer[j].push(et);else if(3<=a._nrpnBuffer[j].length&&a._nrpnBuffer[j].length<=4&&et.controller.number===a.MIDI_NRPN_MESSAGES.parammsb&&et.value===a.MIDI_NRPN_MESSAGES.nullactiveparameter)a._nrpnBuffer[j].push(et);else if(4<=a._nrpnBuffer[j].length&&a._nrpnBuffer[j].length<=5&&et.controller.number===a.MIDI_NRPN_MESSAGES.paramlsb&&et.value===a.MIDI_NRPN_MESSAGES.nullactiveparameter){a._nrpnBuffer[j].push(et);var tt=[];a._nrpnBuffer[j].forEach(function(at){tt.push(at.data)});var nt=a._nrpnBuffer[j][0].value<<7|a._nrpnBuffer[j][1].value,st=a._nrpnBuffer[j][2].value;a._nrpnBuffer[j].length===6&&(st=a._nrpnBuffer[j][2].value<<7|a._nrpnBuffer[j][3].value);var rt="";switch(a._nrpnBuffer[j][2].controller.number){case a.MIDI_NRPN_MESSAGES.entrymsb:rt=a._nrpnTypes[0];break;case a.MIDI_NRPN_MESSAGES.increment:rt=a._nrpnTypes[1];break;case a.MIDI_NRPN_MESSAGES.decrement:rt=a._nrpnTypes[2];break;default:throw new Error("The NPRN type was unidentifiable.")}var it={timestamp:et.timestamp,channel:et.channel,type:"nrpn",data:tt,controller:{number:nt,type:rt,name:"Non-Registered Parameter "+nt},value:st};a._nrpnBuffer[j]=[],this._userHandlers.channel[it.type]&&this._userHandlers.channel[it.type][it.channel]&&this._userHandlers.channel[it.type][it.channel].forEach(function(at){at(it)})}else a._nrpnBuffer[j]=[];else a._nrpnBuffer[j].push(et)}},c.prototype._parseChannelEvent=function(_){var b,k,$=_.data[0]>>4,j=1+(15&_.data[0]);1<_.data.length&&(b=_.data[1],k=2<_.data.length?_.data[2]:void 0);var _e={target:this,data:_.data,timestamp:_.timeStamp,channel:j};$===a.MIDI_CHANNEL_MESSAGES.noteoff||$===a.MIDI_CHANNEL_MESSAGES.noteon&&k===0?(_e.type="noteoff",_e.note={number:b,name:a._notes[b%12],octave:a.getOctave(b)},_e.velocity=k/127,_e.rawVelocity=k):$===a.MIDI_CHANNEL_MESSAGES.noteon?(_e.type="noteon",_e.note={number:b,name:a._notes[b%12],octave:a.getOctave(b)},_e.velocity=k/127,_e.rawVelocity=k):$===a.MIDI_CHANNEL_MESSAGES.keyaftertouch?(_e.type="keyaftertouch",_e.note={number:b,name:a._notes[b%12],octave:a.getOctave(b)},_e.value=k/127):$===a.MIDI_CHANNEL_MESSAGES.controlchange&&0<=b&&b<=119?(_e.type="controlchange",_e.controller={number:b,name:this.getCcNameByNumber(b)},_e.value=k):$===a.MIDI_CHANNEL_MESSAGES.channelmode&&120<=b&&b<=127?(_e.type="channelmode",_e.controller={number:b,name:this.getChannelModeByNumber(b)},_e.value=k):$===a.MIDI_CHANNEL_MESSAGES.programchange?(_e.type="programchange",_e.value=b):$===a.MIDI_CHANNEL_MESSAGES.channelaftertouch?(_e.type="channelaftertouch",_e.value=b/127):$===a.MIDI_CHANNEL_MESSAGES.pitchbend?(_e.type="pitchbend",_e.value=((k<<7)+b-8192)/8192):_e.type="unknownchannelmessage",this._userHandlers.channel[_e.type]&&this._userHandlers.channel[_e.type][j]&&this._userHandlers.channel[_e.type][j].forEach(function(et){et(_e)})},c.prototype.getCcNameByNumber=function(_){if(!(0<=(_=Math.floor(_))&&_<=119))throw new RangeError("The control change number must be between 0 and 119.");for(var b in a.MIDI_CONTROL_CHANGE_MESSAGES)if(Object.prototype.hasOwnProperty.call(a.MIDI_CONTROL_CHANGE_MESSAGES,b)&&_===a.MIDI_CONTROL_CHANGE_MESSAGES[b])return b},c.prototype.getChannelModeByNumber=function(_){if(!(120<=(_=Math.floor(_))&&status<=127))throw new RangeError("The control change number must be between 120 and 127.");for(var b in a.MIDI_CHANNEL_MODE_MESSAGES)if(Object.prototype.hasOwnProperty.call(a.MIDI_CHANNEL_MODE_MESSAGES,b)&&_===a.MIDI_CHANNEL_MODE_MESSAGES[b])return b},c.prototype._parseSystemEvent=function(_){var b=_.data[0],k={target:this,data:_.data,timestamp:_.timeStamp};b===a.MIDI_SYSTEM_MESSAGES.sysex?k.type="sysex":b===a.MIDI_SYSTEM_MESSAGES.timecode?k.type="timecode":b===a.MIDI_SYSTEM_MESSAGES.songposition?k.type="songposition":b===a.MIDI_SYSTEM_MESSAGES.songselect?(k.type="songselect",k.song=_.data[1]):b===a.MIDI_SYSTEM_MESSAGES.tuningrequest?k.type="tuningrequest":b===a.MIDI_SYSTEM_MESSAGES.clock?k.type="clock":b===a.MIDI_SYSTEM_MESSAGES.start?k.type="start":b===a.MIDI_SYSTEM_MESSAGES.continue?k.type="continue":b===a.MIDI_SYSTEM_MESSAGES.stop?k.type="stop":b===a.MIDI_SYSTEM_MESSAGES.activesensing?k.type="activesensing":b===a.MIDI_SYSTEM_MESSAGES.reset?k.type="reset":k.type="unknownsystemmessage",this._userHandlers.system[k.type]&&this._userHandlers.system[k.type].forEach(function($){$(k)})},d.prototype.send=function(_,b,k){if(!(128<=_&&_<=255))throw new RangeError("The status byte must be an integer between 128 (0x80) and 255 (0xFF).");b===void 0&&(b=[]),Array.isArray(b)||(b=[b]);var $=[];return b.forEach(function(j){var _e=Math.floor(j);if(!(0<=_e&&_e<=255))throw new RangeError("Data bytes must be integers between 0 (0x00) and 255 (0xFF).");$.push(_e)}),this._midiOutput.send([_].concat($),parseFloat(k)||0),this},d.prototype.sendSysex=function(_,b,k){if(!a.sysexEnabled)throw new Error("Sysex message support must first be activated.");return k=k||{},_=[].concat(_),b.forEach(function($){if($<0||127<$)throw new RangeError("The data bytes of a sysex message must be integers between 0 (0x00) and 127 (0x7F).")}),b=_.concat(b,a.MIDI_SYSTEM_MESSAGES.sysexend),this.send(a.MIDI_SYSTEM_MESSAGES.sysex,b,this._parseTimeParameter(k.time)),this},d.prototype.sendTimecodeQuarterFrame=function(_,b){return b=b||{},this.send(a.MIDI_SYSTEM_MESSAGES.timecode,_,this._parseTimeParameter(b.time)),this},d.prototype.sendSongPosition=function(_,b){b=b||{};var k=(_=Math.floor(_)||0)>>7&127,$=127&_;return this.send(a.MIDI_SYSTEM_MESSAGES.songposition,[k,$],this._parseTimeParameter(b.time)),this},d.prototype.sendSongSelect=function(_,b){if(b=b||{},!(0<=(_=Math.floor(_))&&_<=127))throw new RangeError("The song number must be between 0 and 127.");return this.send(a.MIDI_SYSTEM_MESSAGES.songselect,[_],this._parseTimeParameter(b.time)),this},d.prototype.sendTuningRequest=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.tuningrequest,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendClock=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.clock,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendStart=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.start,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendContinue=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.continue,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendStop=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.stop,void 0,this._parseTimeParameter(_.time)),this},d.prototype.sendActiveSensing=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.activesensing,[],this._parseTimeParameter(_.time)),this},d.prototype.sendReset=function(_){return _=_||{},this.send(a.MIDI_SYSTEM_MESSAGES.reset,void 0,this._parseTimeParameter(_.time)),this},d.prototype.stopNote=function(_,b,k){if(_==="all")return this.sendChannelMode("allnotesoff",0,b,k);var $=64;return(k=k||{}).rawVelocity?!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=127&&($=k.velocity):!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=1&&($=127*k.velocity),this._convertNoteToArray(_).forEach(function(j){a.toMIDIChannels(b).forEach(function(_e){this.send((a.MIDI_CHANNEL_MESSAGES.noteoff<<4)+(_e-1),[j,Math.round($)],this._parseTimeParameter(k.time))}.bind(this))}.bind(this)),this},d.prototype.playNote=function(_,b,k){var $,j=64;if((k=k||{}).rawVelocity?!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=127&&(j=k.velocity):!isNaN(k.velocity)&&0<=k.velocity&&k.velocity<=1&&(j=127*k.velocity),$=this._parseTimeParameter(k.time),this._convertNoteToArray(_).forEach(function(et){a.toMIDIChannels(b).forEach(function(tt){this.send((a.MIDI_CHANNEL_MESSAGES.noteon<<4)+(tt-1),[et,Math.round(j)],$)}.bind(this))}.bind(this)),!isNaN(k.duration)){k.duration<=0&&(k.duration=0);var _e=64;k.rawVelocity?!isNaN(k.release)&&0<=k.release&&k.release<=127&&(_e=k.release):!isNaN(k.release)&&0<=k.release&&k.release<=1&&(_e=127*k.release),this._convertNoteToArray(_).forEach(function(et){a.toMIDIChannels(b).forEach(function(tt){this.send((a.MIDI_CHANNEL_MESSAGES.noteoff<<4)+(tt-1),[et,Math.round(_e)],($||a.time)+k.duration)}.bind(this))}.bind(this))}return this},d.prototype.sendKeyAftertouch=function(_,b,k,$){var j=this;if($=$||{},b<1||16>7&127,tt=127&_e;return a.toMIDIChannels(b).forEach(function(){$.setRegisteredParameter("channelcoarsetuning",j,b,{time:k.time}),$.setRegisteredParameter("channelfinetuning",[et,tt],b,{time:k.time})}),this},d.prototype.setTuningProgram=function(_,b,k){var $=this;if(k=k||{},!(0<=(_=Math.floor(_))&&_<=127))throw new RangeError("The program value must be between 0 and 127");return a.toMIDIChannels(b).forEach(function(){$.setRegisteredParameter("tuningprogram",_,b,{time:k.time})}),this},d.prototype.setTuningBank=function(_,b,k){var $=this;if(k=k||{},!(0<=(_=Math.floor(_)||0)&&_<=127))throw new RangeError("The bank value must be between 0 and 127");return a.toMIDIChannels(b).forEach(function(){$.setRegisteredParameter("tuningbank",_,b,{time:k.time})}),this},d.prototype.sendChannelMode=function(_,b,k,$){if($=$||{},typeof _=="string"){if(!(_=a.MIDI_CHANNEL_MODE_MESSAGES[_]))throw new TypeError("Invalid channel mode message name.")}else if(!(120<=(_=Math.floor(_))&&_<=127))throw new RangeError("Channel mode numerical identifiers must be between 120 and 127.");if((b=Math.floor(b)||0)<0||127>7&127,et=127&j;return a.toMIDIChannels(b).forEach(function(tt){$.send((a.MIDI_CHANNEL_MESSAGES.pitchbend<<4)+(tt-1),[et,_e],$._parseTimeParameter(k.time))}),this},d.prototype._parseTimeParameter=function(_){var b,k=parseFloat(_);return typeof _=="string"&&_.substring(0,1)==="+"?k&&0a.time&&(b=k),b},d.prototype._convertNoteToArray=function(_){var b=[];return Array.isArray(_)||(_=[_]),_.forEach(function(k){b.push(a.guessNoteNumber(k))}),b},o.exports?o.exports=a:e.WebMidi||(e.WebMidi=a)})(commonjsGlobal)})(webmidi_min);var _WebMidi=webmidi_min.exports,__awaiter=globalThis&&globalThis.__awaiter||function(o,e,s,a){function c(d){return d instanceof s?d:new s(function(_){_(d)})}return new(s||(s=Promise))(function(d,_){function b(j){try{$(a.next(j))}catch(_e){_(_e)}}function k(j){try{$(a.throw(j))}catch(_e){_(_e)}}function $(j){j.done?d(j.value):c(j.value).then(b,k)}$((a=a.apply(o,e||[])).next())})};class MidiInput extends events.exports.EventEmitter{constructor(e="all"){super(),this.deviceId=e,MidiInput.enabled().then(()=>{_WebMidi.addListener("connected",s=>{s.port.type==="input"&&this._addListeners(s.port)}),_WebMidi.addListener("disconnected",s=>{this._removeListeners(s.port)}),_WebMidi.inputs.forEach(s=>this._addListeners(s))})}_addListeners(e){MidiInput.connectedDevices.has(e.id)||(MidiInput.connectedDevices.set(e.id,e),this.emit("connect",this._inputToDevice(e)),e.addListener("noteon","all",s=>{(this.deviceId==="all"||this.deviceId===e.id)&&this.emit("keyDown",{note:`${s.note.name}${s.note.octave}`,midi:s.note.number,velocity:s.velocity,device:this._inputToDevice(e)})}),e.addListener("noteoff","all",s=>{(this.deviceId==="all"||this.deviceId===e.id)&&this.emit("keyUp",{note:`${s.note.name}${s.note.octave}`,midi:s.note.number,velocity:s.velocity,device:this._inputToDevice(e)})}),e.addListener("controlchange","all",s=>{(this.deviceId==="all"||this.deviceId===e.id)&&s.controller.name==="holdpedal"&&this.emit(s.value?"pedalDown":"pedalUp",{device:this._inputToDevice(e)})}))}_inputToDevice(e){return{name:e.name,id:e.id,manufacturer:e.manufacturer}}_removeListeners(e){if(MidiInput.connectedDevices.has(e.id)){const s=MidiInput.connectedDevices.get(e.id);this.emit("disconnect",this._inputToDevice(s)),MidiInput.connectedDevices.delete(e.id),s.removeListener("noteon"),s.removeListener("noteoff"),s.removeListener("controlchange")}}emit(e,s){return super.emit(e,s)}on(e,s){return super.on(e,s),this}once(e,s){return super.once(e,s),this}off(e,s){return super.off(e,s),this}static enabled(){return __awaiter(this,void 0,void 0,function*(){MidiInput._isEnabled||(yield new Promise((e,s)=>{_WebMidi.enable(a=>{a?s(a):(MidiInput._isEnabled=!0,e())})}))})}static getDevices(){return __awaiter(this,void 0,void 0,function*(){return yield MidiInput.enabled(),_WebMidi.inputs})}}MidiInput.connectedDevices=new Map;MidiInput._isEnabled=!1;var tonePiano=Object.freeze(Object.defineProperty({__proto__:null,Piano:Piano$1,MidiInput},Symbol.toStringTag,{value:"Module"}));const Tone=_Tone,{AutoFilter,Destination,Filter,Gain,isNote:isNote$1,Synth,PolySynth,MembraneSynth,MetalSynth,MonoSynth,AMSynth,DuoSynth,FMSynth,NoiseSynth,PluckSynth,Sampler,getDestination,Players}=Tone,{Piano}=tonePiano,getDefaultSynth=()=>{const o=new PolySynth().chain(new Gain(.5),getDestination());return o.set({oscillator:{type:"triangle"},envelope:{release:.01}}),o};Pattern$5.prototype.tone=function(o){return this._withHap(e=>{const s=(a,c)=>{var b,k;let d,_=(k=(b=c.context)==null?void 0:b.velocity)!=null?k:.75;if(o instanceof PluckSynth)d=getPlayableNoteValue(c),o.triggerAttack(d,a);else if(o instanceof NoiseSynth)o.triggerAttackRelease(c.duration.valueOf(),a);else if(o instanceof Piano)d=getPlayableNoteValue(c),o.keyDown({note:d,time:a,velocity:_}),o.keyUp({note:d,time:a+c.duration.valueOf(),velocity:_});else if(o instanceof Sampler)d=getPlayableNoteValue(c),o.triggerAttackRelease(d,c.duration.valueOf(),a,_);else if(o instanceof Players){if(!o.has(c.value))throw new Error(`name "${c.value}" not defined for players`);const $=o.player(c.value);$.start(a),$.stop(a+c.duration.valueOf())}else d=getPlayableNoteValue(c),o.triggerAttackRelease(d,c.duration.valueOf(),a,_)};return e.setContext(wt(_t({},e.context),{instrument:o,onTrigger:s}))})};Pattern$5.prototype.define("tone",(o,e)=>e.tone(o),{composable:!0,patternified:!1});const amsynth=o=>new AMSynth(o),duosynth=o=>new DuoSynth(o),fmsynth=o=>new FMSynth(o),membrane=o=>new MembraneSynth(o),metal=o=>new MetalSynth(o),monosynth=o=>new MonoSynth(o),noise=o=>new NoiseSynth(o),pluck=o=>new PluckSynth(o),polysynth=o=>new PolySynth(o),sampler=(o,e)=>new Promise(s=>{const a=new Sampler(o,()=>s(a),e)}),players=(o,e="")=>(o=e?Object.fromEntries(Object.entries(o).map(([s,a])=>[s,e+a])):o,new Promise(s=>{const a=new Players(o,()=>s(a))})),synth=o=>new Synth(o),piano=async(o={velocities:1})=>{const e=new Piano(o);return await e.load(),e},vol=o=>new Gain(o),lowpass=o=>new Filter(o,"lowpass"),highpass=o=>new Filter(o,"highpass"),adsr=(o,e=.1,s=.4,a=.01)=>({envelope:{attack:o,decay:e,sustain:s,release:a}}),osc=o=>({oscillator:{type:o}}),out=()=>getDestination(),getDrawContext$1=(o="test-canvas")=>{let e=document.querySelector("#"+o);return e||(e=document.createElement("canvas"),e.id=o,e.width=window.innerWidth,e.height=window.innerHeight,e.style="pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0;z-index:5",document.body.prepend(e)),e.getContext("2d")};Pattern$5.prototype.draw=function(o,{from:e,to:s,onQuery:a}){window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation);const c=getDrawContext$1();let d,_=[];const b=k=>{const $=Tone.getTransport().seconds;if(e!==void 0&&s!==void 0){const j=Math.floor($);if(d!==j){d=j;const _e=j+e,et=j+s;setTimeout(()=>{_=this.query(new State(new TimeSpan(_e,et))).filter(Boolean).filter(tt=>tt.part.begin.equals(tt.whole.begin)),a==null||a(_)},0)}}o(c,_,$,k),window.strudelAnimation=requestAnimationFrame(b)};return requestAnimationFrame(b),this};const cleanupDraw=()=>{getDrawContext$1().clearRect(0,0,window.innerWidth,window.innerHeight),window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation),window.strudelScheduler&&clearInterval(window.strudelScheduler)};var dist$7={},tokenizer={},utils$1={},unicode$2={};Object.defineProperty(unicode$2,"__esModule",{value:!0});unicode$2.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];unicode$2.whitespaceBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!0,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1];unicode$2.idStartLargeRegex=/^[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]$/;unicode$2.idStartBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];unicode$2.idContinueLargeRegex=/^[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]$/;unicode$2.idContinueBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];Object.defineProperty(utils$1,"__esModule",{value:!0});utils$1.isStrictModeReservedWord=isStrictModeReservedWord;utils$1.isWhiteSpace=isWhiteSpace;utils$1.isLineTerminator=isLineTerminator;utils$1.isIdentifierStart=isIdentifierStart$1;utils$1.isIdentifierPart=isIdentifierPart$1;utils$1.isDecimalDigit=isDecimalDigit;utils$1.getHexValue=getHexValue;var _unicode$2=unicode$2,strictReservedWords=["null","true","false","implements","interface","package","private","protected","public","static","let","if","in","do","var","for","new","try","this","else","case","void","with","enum","while","break","catch","throw","const","yield","class","super","return","typeof","delete","switch","export","import","default","finally","extends","function","continue","debugger","instanceof"];function isStrictModeReservedWord(o){return strictReservedWords.indexOf(o)!==-1}function isWhiteSpace(o){return o<128?_unicode$2.whitespaceBool[o]:o===160||o>5759&&_unicode$2.whitespaceArray.indexOf(o)!==-1}function isLineTerminator(o){return o===10||o===13||o===8232||o===8233}function isIdentifierStart$1(o){return o<128?_unicode$2.idStartBool[o]:_unicode$2.idStartLargeRegex.test(String.fromCodePoint(o))}function isIdentifierPart$1(o){return o<128?_unicode$2.idContinueBool[o]:_unicode$2.idContinueLargeRegex.test(String.fromCodePoint(o))}function isDecimalDigit(o){return o>=48&&o<=57}function getHexValue(o){return o>="0"&&o<="9"?o.charCodeAt(0)-48:o>="a"&&o<="f"?o.charCodeAt(0)-87:o>="A"&&o<="F"?o.charCodeAt(0)-55:-1}var errors={};Object.defineProperty(errors,"__esModule",{value:!0});errors.ErrorMessages={UNEXPECTED_TOKEN:function o(e){return"Unexpected token "+JSON.stringify(e)},UNEXPECTED_ILLEGAL_TOKEN:function o(e){return"Unexpected "+JSON.stringify(e)},UNEXPECTED_ESCAPED_KEYWORD:"Unexpected escaped keyword",UNEXPECTED_NUMBER:"Unexpected number",UNEXPECTED_STRING:"Unexpected string",UNEXPECTED_IDENTIFIER:"Unexpected identifier",UNEXPECTED_RESERVED_WORD:"Unexpected reserved word",UNEXPECTED_TEMPLATE:"Unexpected template",UNEXPECTED_EOS:"Unexpected end of input",UNEXPECTED_LINE_TERMINATOR:"Unexpected line terminator",UNEXPECTED_COMMA_AFTER_REST:"Unexpected comma after rest",UNEXPECTED_REST_PARAMETERS_INITIALIZATION:"Rest parameter may not have a default initializer",NEWLINE_AFTER_THROW:"Illegal newline after throw",UNTERMINATED_REGEXP:"Invalid regular expression: missing /",INVALID_LAST_REST_PARAMETER:"Rest parameter must be last formal parameter",INVALID_REST_PARAMETERS_INITIALIZATION:"Rest parameter may not have a default initializer",INVALID_REGEXP_FLAGS:"Invalid regular expression flags",INVALID_REGEX:"Invalid regular expression",INVALID_LHS_IN_ASSIGNMENT:"Invalid left-hand side in assignment",INVALID_LHS_IN_BINDING:"Invalid left-hand side in binding",INVALID_LHS_IN_FOR_IN:"Invalid left-hand side in for-in",INVALID_LHS_IN_FOR_OF:"Invalid left-hand side in for-of",INVALID_LHS_IN_FOR_AWAIT:"Invalid left-hand side in for-await",INVALID_UPDATE_OPERAND:"Increment/decrement target must be an identifier or member expression",INVALID_EXPONENTIATION_LHS:"Unary expressions as the left operand of an exponentation expression must be disambiguated with parentheses",MULTIPLE_DEFAULTS_IN_SWITCH:"More than one default clause in switch statement",NO_CATCH_OR_FINALLY:"Missing catch or finally after try",ILLEGAL_RETURN:"Illegal return statement",ILLEGAL_ARROW_FUNCTION_PARAMS:"Illegal arrow function parameter list",INVALID_ASYNC_PARAMS:"Async function parameters must not contain await expressions",INVALID_VAR_INIT_FOR_IN:"Invalid variable declaration in for-in statement",INVALID_VAR_INIT_FOR_OF:"Invalid variable declaration in for-of statement",INVALID_VAR_INIT_FOR_AWAIT:"Invalid variable declaration in for-await statement",UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT:"Binding pattern appears without initializer in for statement init",ILLEGAL_PROPERTY:"Illegal property initializer",INVALID_ID_BINDING_STRICT_MODE:function o(e){return"The identifier "+JSON.stringify(e)+" must not be in binding position in strict mode"},INVALID_ID_IN_LABEL_STRICT_MODE:function o(e){return"The identifier "+JSON.stringify(e)+" must not be in label position in strict mode"},INVALID_ID_IN_EXPRESSION_STRICT_MODE:function o(e){return"The identifier "+JSON.stringify(e)+" must not be in expression position in strict mode"},INVALID_CALL_TO_SUPER:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',INVALID_DELETE_STRICT_MODE:"Identifier expressions must not be deleted in strict mode",DUPLICATE_BINDING:function o(e){return"Duplicate binding "+JSON.stringify(e)},ILLEGAL_ID_IN_LEXICAL_DECLARATION:function o(e){return"Lexical declarations must not have a binding named "+JSON.stringify(e)},UNITIALIZED_CONST:"Constant lexical declarations must have an initialiser",ILLEGAL_LABEL_IN_BODY:function o(e){return"The body of a "+e+" statement must not be a labeled function declaration"},ILLEGEAL_LABEL_IN_IF:"The consequent of an if statement must not be a labeled function declaration",ILLEGAL_LABEL_IN_ELSE:"The alternate of an if statement must not be a labeled function declaration",ILLEGAL_CONTINUE_WITHOUT_ITERATION_WITH_ID:function o(e){return"Continue statement must be nested within an iteration statement with label "+JSON.stringify(e)},ILLEGAL_CONTINUE_WITHOUT_ITERATION:"Continue statement must be nested within an iteration statement",ILLEGAL_BREAK_WITHOUT_ITERATION_OR_SWITCH:"Break statement must be nested within an iteration statement or a switch statement",ILLEGAL_WITH_STRICT_MODE:"Strict mode code must not include a with statement",ILLEGAL_ACCESS_SUPER_MEMBER:"Member access on super must be in a method",ILLEGAL_SUPER_CALL:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',DUPLICATE_LABEL_DECLARATION:function o(e){return"Label "+JSON.stringify(e)+" has already been declared"},ILLEGAL_BREAK_WITHIN_LABEL:function o(e){return"Break statement must be nested within a statement with label "+JSON.stringify(e)},ILLEGAL_YIELD_EXPRESSIONS:function o(e){return e+" parameters must not contain yield expressions"},ILLEGAL_YIELD_IDENTIFIER:'"yield" may not be used as an identifier in this context',ILLEGAL_AWAIT_IDENTIFIER:'"await" may not be used as an identifier in this context',DUPLICATE_CONSTRUCTOR:"Duplicate constructor method in class",ILLEGAL_CONSTRUCTORS:"Constructors cannot be async, generators, getters or setters",ILLEGAL_STATIC_CLASS_NAME:'Static class methods cannot be named "prototype"',NEW_TARGET_ERROR:"new.target must be within function (but not arrow expression) code",DUPLICATE_EXPORT:function o(e){return"Duplicate export "+JSON.stringify(e)},UNDECLARED_BINDING:function o(e){return"Exported binding "+JSON.stringify(e)+" is not declared"},DUPLICATE_PROPTO_PROP:"Duplicate __proto__ property in object literal not allowed",ILLEGAL_LABEL_FUNC_DECLARATION:"Labeled FunctionDeclarations are disallowed in strict mode",ILLEGAL_FUNC_DECL_IF:"FunctionDeclarations in IfStatements are disallowed in strict mode",ILLEGAL_USE_STRICT:'Functions with non-simple parameter lists may not contain a "use strict" directive',ILLEGAL_EXPORTED_NAME:"Names of variables used in an export specifier from the current module must be identifiers",NO_OCTALS_IN_TEMPLATES:"Template literals may not contain octal escape sequences",NO_AWAIT_IN_ASYNC_PARAMS:'Async arrow parameters may not contain "await"'};Object.defineProperty(tokenizer,"__esModule",{value:!0});tokenizer.JsError=tokenizer.TokenType=tokenizer.TokenClass=void 0;var _slicedToArray=function(){function o(e,s){var a=[],c=!0,d=!1,_=void 0;try{for(var b=e[Symbol.iterator](),k;!(c=(k=b.next()).done)&&(a.push(k.value),!(s&&a.length===s));c=!0);}catch($){d=!0,_=$}finally{try{!c&&b.return&&b.return()}finally{if(d)throw _}}return a}return function(e,s){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return o(e,s);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass$e=function(){function o(e,s){for(var a=0;a"},Ident:{name:"Identifier",isIdentifierName:!0},Keyword:{name:"Keyword",isIdentifierName:!0},NumericLiteral:{name:"Numeric"},TemplateElement:{name:"Template"},Punctuator:{name:"Punctuator"},StringLiteral:{name:"String"},RegularExpression:{name:"RegularExpression"},Illegal:{name:"Illegal"}},TokenType=tokenizer.TokenType={EOS:{klass:TokenClass.Eof,name:"EOS"},LPAREN:{klass:TokenClass.Punctuator,name:"("},RPAREN:{klass:TokenClass.Punctuator,name:")"},LBRACK:{klass:TokenClass.Punctuator,name:"["},RBRACK:{klass:TokenClass.Punctuator,name:"]"},LBRACE:{klass:TokenClass.Punctuator,name:"{"},RBRACE:{klass:TokenClass.Punctuator,name:"}"},COLON:{klass:TokenClass.Punctuator,name:":"},SEMICOLON:{klass:TokenClass.Punctuator,name:";"},PERIOD:{klass:TokenClass.Punctuator,name:"."},ELLIPSIS:{klass:TokenClass.Punctuator,name:"..."},ARROW:{klass:TokenClass.Punctuator,name:"=>"},CONDITIONAL:{klass:TokenClass.Punctuator,name:"?"},INC:{klass:TokenClass.Punctuator,name:"++"},DEC:{klass:TokenClass.Punctuator,name:"--"},ASSIGN:{klass:TokenClass.Punctuator,name:"="},ASSIGN_BIT_OR:{klass:TokenClass.Punctuator,name:"|="},ASSIGN_BIT_XOR:{klass:TokenClass.Punctuator,name:"^="},ASSIGN_BIT_AND:{klass:TokenClass.Punctuator,name:"&="},ASSIGN_SHL:{klass:TokenClass.Punctuator,name:"<<="},ASSIGN_SHR:{klass:TokenClass.Punctuator,name:">>="},ASSIGN_SHR_UNSIGNED:{klass:TokenClass.Punctuator,name:">>>="},ASSIGN_ADD:{klass:TokenClass.Punctuator,name:"+="},ASSIGN_SUB:{klass:TokenClass.Punctuator,name:"-="},ASSIGN_MUL:{klass:TokenClass.Punctuator,name:"*="},ASSIGN_DIV:{klass:TokenClass.Punctuator,name:"/="},ASSIGN_MOD:{klass:TokenClass.Punctuator,name:"%="},ASSIGN_EXP:{klass:TokenClass.Punctuator,name:"**="},COMMA:{klass:TokenClass.Punctuator,name:","},OR:{klass:TokenClass.Punctuator,name:"||"},AND:{klass:TokenClass.Punctuator,name:"&&"},BIT_OR:{klass:TokenClass.Punctuator,name:"|"},BIT_XOR:{klass:TokenClass.Punctuator,name:"^"},BIT_AND:{klass:TokenClass.Punctuator,name:"&"},SHL:{klass:TokenClass.Punctuator,name:"<<"},SHR:{klass:TokenClass.Punctuator,name:">>"},SHR_UNSIGNED:{klass:TokenClass.Punctuator,name:">>>"},ADD:{klass:TokenClass.Punctuator,name:"+"},SUB:{klass:TokenClass.Punctuator,name:"-"},MUL:{klass:TokenClass.Punctuator,name:"*"},DIV:{klass:TokenClass.Punctuator,name:"/"},MOD:{klass:TokenClass.Punctuator,name:"%"},EXP:{klass:TokenClass.Punctuator,name:"**"},EQ:{klass:TokenClass.Punctuator,name:"=="},NE:{klass:TokenClass.Punctuator,name:"!="},EQ_STRICT:{klass:TokenClass.Punctuator,name:"==="},NE_STRICT:{klass:TokenClass.Punctuator,name:"!=="},LT:{klass:TokenClass.Punctuator,name:"<"},GT:{klass:TokenClass.Punctuator,name:">"},LTE:{klass:TokenClass.Punctuator,name:"<="},GTE:{klass:TokenClass.Punctuator,name:">="},INSTANCEOF:{klass:TokenClass.Keyword,name:"instanceof"},IN:{klass:TokenClass.Keyword,name:"in"},NOT:{klass:TokenClass.Punctuator,name:"!"},BIT_NOT:{klass:TokenClass.Punctuator,name:"~"},ASYNC:{klass:TokenClass.Keyword,name:"async"},AWAIT:{klass:TokenClass.Keyword,name:"await"},ENUM:{klass:TokenClass.Keyword,name:"enum"},DELETE:{klass:TokenClass.Keyword,name:"delete"},TYPEOF:{klass:TokenClass.Keyword,name:"typeof"},VOID:{klass:TokenClass.Keyword,name:"void"},BREAK:{klass:TokenClass.Keyword,name:"break"},CASE:{klass:TokenClass.Keyword,name:"case"},CATCH:{klass:TokenClass.Keyword,name:"catch"},CLASS:{klass:TokenClass.Keyword,name:"class"},CONTINUE:{klass:TokenClass.Keyword,name:"continue"},DEBUGGER:{klass:TokenClass.Keyword,name:"debugger"},DEFAULT:{klass:TokenClass.Keyword,name:"default"},DO:{klass:TokenClass.Keyword,name:"do"},ELSE:{klass:TokenClass.Keyword,name:"else"},EXPORT:{klass:TokenClass.Keyword,name:"export"},EXTENDS:{klass:TokenClass.Keyword,name:"extends"},FINALLY:{klass:TokenClass.Keyword,name:"finally"},FOR:{klass:TokenClass.Keyword,name:"for"},FUNCTION:{klass:TokenClass.Keyword,name:"function"},IF:{klass:TokenClass.Keyword,name:"if"},IMPORT:{klass:TokenClass.Keyword,name:"import"},LET:{klass:TokenClass.Keyword,name:"let"},NEW:{klass:TokenClass.Keyword,name:"new"},RETURN:{klass:TokenClass.Keyword,name:"return"},SUPER:{klass:TokenClass.Keyword,name:"super"},SWITCH:{klass:TokenClass.Keyword,name:"switch"},THIS:{klass:TokenClass.Keyword,name:"this"},THROW:{klass:TokenClass.Keyword,name:"throw"},TRY:{klass:TokenClass.Keyword,name:"try"},VAR:{klass:TokenClass.Keyword,name:"var"},WHILE:{klass:TokenClass.Keyword,name:"while"},WITH:{klass:TokenClass.Keyword,name:"with"},NULL:{klass:TokenClass.Keyword,name:"null"},TRUE:{klass:TokenClass.Keyword,name:"true"},FALSE:{klass:TokenClass.Keyword,name:"false"},YIELD:{klass:TokenClass.Keyword,name:"yield"},NUMBER:{klass:TokenClass.NumericLiteral,name:""},STRING:{klass:TokenClass.StringLiteral,name:""},REGEXP:{klass:TokenClass.RegularExpression,name:""},IDENTIFIER:{klass:TokenClass.Ident,name:""},CONST:{klass:TokenClass.Keyword,name:"const"},TEMPLATE:{klass:TokenClass.TemplateElement,name:""},ESCAPED_KEYWORD:{klass:TokenClass.Keyword,name:""},ILLEGAL:{klass:TokenClass.Illegal,name:""}},TT=TokenType,I=TT.ILLEGAL,F=!1,T=!0,ONE_CHAR_PUNCTUATOR=[I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.NOT,I,I,I,TT.MOD,TT.BIT_AND,I,TT.LPAREN,TT.RPAREN,TT.MUL,TT.ADD,TT.COMMA,TT.SUB,TT.PERIOD,TT.DIV,I,I,I,I,I,I,I,I,I,I,TT.COLON,TT.SEMICOLON,TT.LT,TT.ASSIGN,TT.GT,TT.CONDITIONAL,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.LBRACK,I,TT.RBRACK,TT.BIT_XOR,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.LBRACE,TT.BIT_OR,TT.RBRACE,TT.BIT_NOT],PUNCTUATOR_START=[F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,F,F,F,T,T,F,T,T,T,T,T,T,F,T,F,F,F,F,F,F,F,F,F,F,T,T,T,T,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,F,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,T,T,T,F],JsError=tokenizer.JsError=function(o){_inherits$8(e,o);function e(s,a,c,d){_classCallCheck$i(this,e);var _=_possibleConstructorReturn$8(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,d));_.index=s;try{_.line=a,_.column=c}catch{}return _.parseErrorLine=a,_.parseErrorColumn=c,_.description=d,_.message="["+a+":"+c+"]: "+d,_}return e}(Error);function fromCodePoint$1(o){if(o<=65535)return String.fromCharCode(o);var e=String.fromCharCode(Math.floor((o-65536)/1024)+55296),s=String.fromCharCode((o-65536)%1024+56320);return e+s}function decodeUtf16(o,e){return(o-55296)*1024+(e-56320)+65536}var Tokenizer=function(){function o(e){_classCallCheck$i(this,o),this.source=e,this.index=0,this.line=0,this.lineStart=0,this.startIndex=0,this.startLine=0,this.startLineStart=0,this.lastIndex=0,this.lastLine=0,this.lastLineStart=0,this.hasLineTerminatorBeforeNext=!1,this.tokenIndex=0}return _createClass$e(o,[{key:"saveLexerState",value:function(){return{source:this.source,index:this.index,line:this.line,lineStart:this.lineStart,startIndex:this.startIndex,startLine:this.startLine,startLineStart:this.startLineStart,lastIndex:this.lastIndex,lastLine:this.lastLine,lastLineStart:this.lastLineStart,lookahead:this.lookahead,hasLineTerminatorBeforeNext:this.hasLineTerminatorBeforeNext,tokenIndex:this.tokenIndex}}},{key:"restoreLexerState",value:function(s){this.source=s.source,this.index=s.index,this.line=s.line,this.lineStart=s.lineStart,this.startIndex=s.startIndex,this.startLine=s.startLine,this.startLineStart=s.startLineStart,this.lastIndex=s.lastIndex,this.lastLine=s.lastLine,this.lastLineStart=s.lastLineStart,this.lookahead=s.lookahead,this.hasLineTerminatorBeforeNext=s.hasLineTerminatorBeforeNext,this.tokenIndex=s.tokenIndex}},{key:"createILLEGAL",value:function(){return this.startIndex=this.index,this.startLine=this.line,this.startLineStart=this.lineStart,this.index1?c-1:0),_=1;_10)return TokenType.IDENTIFIER;switch(s.length){case 2:switch(s.charAt(0)){case"i":switch(s.charAt(1)){case"f":return TokenType.IF;case"n":return TokenType.IN}break;case"d":if(s.charAt(1)==="o")return TokenType.DO;break}break;case 3:switch(s.charAt(0)){case"v":if(o.cse2(s,"a","r"))return TokenType.VAR;break;case"f":if(o.cse2(s,"o","r"))return TokenType.FOR;break;case"n":if(o.cse2(s,"e","w"))return TokenType.NEW;break;case"t":if(o.cse2(s,"r","y"))return TokenType.TRY;break;case"l":if(o.cse2(s,"e","t"))return TokenType.LET;break}break;case 4:switch(s.charAt(0)){case"t":if(o.cse3(s,"h","i","s"))return TokenType.THIS;if(o.cse3(s,"r","u","e"))return TokenType.TRUE;break;case"n":if(o.cse3(s,"u","l","l"))return TokenType.NULL;break;case"e":if(o.cse3(s,"l","s","e"))return TokenType.ELSE;if(o.cse3(s,"n","u","m"))return TokenType.ENUM;break;case"c":if(o.cse3(s,"a","s","e"))return TokenType.CASE;break;case"v":if(o.cse3(s,"o","i","d"))return TokenType.VOID;break;case"w":if(o.cse3(s,"i","t","h"))return TokenType.WITH;break}break;case 5:switch(s.charAt(0)){case"a":if(o.cse4(s,"s","y","n","c"))return TokenType.ASYNC;if(o.cse4(s,"w","a","i","t"))return TokenType.AWAIT;break;case"w":if(o.cse4(s,"h","i","l","e"))return TokenType.WHILE;break;case"b":if(o.cse4(s,"r","e","a","k"))return TokenType.BREAK;break;case"f":if(o.cse4(s,"a","l","s","e"))return TokenType.FALSE;break;case"c":if(o.cse4(s,"a","t","c","h"))return TokenType.CATCH;if(o.cse4(s,"o","n","s","t"))return TokenType.CONST;if(o.cse4(s,"l","a","s","s"))return TokenType.CLASS;break;case"t":if(o.cse4(s,"h","r","o","w"))return TokenType.THROW;break;case"y":if(o.cse4(s,"i","e","l","d"))return TokenType.YIELD;break;case"s":if(o.cse4(s,"u","p","e","r"))return TokenType.SUPER;break}break;case 6:switch(s.charAt(0)){case"r":if(o.cse5(s,"e","t","u","r","n"))return TokenType.RETURN;break;case"t":if(o.cse5(s,"y","p","e","o","f"))return TokenType.TYPEOF;break;case"d":if(o.cse5(s,"e","l","e","t","e"))return TokenType.DELETE;break;case"s":if(o.cse5(s,"w","i","t","c","h"))return TokenType.SWITCH;break;case"e":if(o.cse5(s,"x","p","o","r","t"))return TokenType.EXPORT;break;case"i":if(o.cse5(s,"m","p","o","r","t"))return TokenType.IMPORT;break}break;case 7:switch(s.charAt(0)){case"d":if(o.cse6(s,"e","f","a","u","l","t"))return TokenType.DEFAULT;break;case"f":if(o.cse6(s,"i","n","a","l","l","y"))return TokenType.FINALLY;break;case"e":if(o.cse6(s,"x","t","e","n","d","s"))return TokenType.EXTENDS;break}break;case 8:switch(s.charAt(0)){case"f":if(o.cse7(s,"u","n","c","t","i","o","n"))return TokenType.FUNCTION;break;case"c":if(o.cse7(s,"o","n","t","i","n","u","e"))return TokenType.CONTINUE;break;case"d":if(o.cse7(s,"e","b","u","g","g","e","r"))return TokenType.DEBUGGER;break}break;case 10:if(s==="instanceof")return TokenType.INSTANCEOF;break}return TokenType.IDENTIFIER}},{key:"skipSingleLineComment",value:function(s){for(this.index+=s;this.index=a)break;if(c=this.source.charCodeAt(this.index+1),c===47)this.skipSingleLineComment(2),s=!0;else if(c===42)s=this.skipMultiLineComment()||s;else break}else if(!this.moduleIsTheGoalSymbol&&s&&c===45){if(this.index+2>=a)break;if(this.source.charAt(this.index+1)==="-"&&this.source.charAt(this.index+2)===">")this.skipSingleLineComment(3);else break}else if(!this.moduleIsTheGoalSymbol&&c===60)if(this.source.slice(this.index+1,this.index+4)==="!--")this.skipSingleLineComment(4),s=!0;else break;else break}}},{key:"scanHexEscape2",value:function(){if(this.index+2>this.source.length)return-1;var s=(0,_utils$1.getHexValue)(this.source.charAt(this.index));if(s===-1)return-1;var a=(0,_utils$1.getHexValue)(this.source.charAt(this.index+1));return a===-1?-1:(this.index+=2,s<<4|a)}},{key:"scanUnicode",value:function(){if(this.source.charAt(this.index)==="{"){for(var s=this.index+1,a=0,c=void 0;s1114111)throw this.createILLEGAL();s++}if(c!=="}")throw this.createILLEGAL();if(s===this.index+1)throw++this.index,this.createILLEGAL();return this.index=s+1,a}if(this.index+4>this.source.length)return-1;var _=(0,_utils$1.getHexValue)(this.source.charAt(this.index));if(_===-1)return-1;var b=(0,_utils$1.getHexValue)(this.source.charAt(this.index+1));if(b===-1)return-1;var k=(0,_utils$1.getHexValue)(this.source.charAt(this.index+2));if(k===-1)return-1;var $=(0,_utils$1.getHexValue)(this.source.charAt(this.index+3));return $===-1?-1:(this.index+=4,_<<12|b<<8|k<<4|$)}},{key:"getEscapedIdentifier",value:function(){for(var s="",a=_utils$1.isIdentifierStart;this.index=this.source.length)throw this.createILLEGAL();if(this.source.charAt(this.index)!=="u")throw this.createILLEGAL();if(++this.index,d=this.scanUnicode(),d<0)throw this.createILLEGAL();c=fromCodePoint$1(d)}else if(d>=55296&&d<=56319){if(this.index>=this.source.length)throw this.createILLEGAL();var b=this.source.charCodeAt(this.index);if(++this.index,!(b>=56320&&b<=57343))throw this.createILLEGAL();d=decodeUtf16(d,b),c=fromCodePoint$1(d)}if(!a(d)){if(s.length<1)throw this.createILLEGAL();return this.index=_,s}a=_utils$1.isIdentifierPart,s+=c}return s}},{key:"getIdentifier",value:function(){for(var s=this.index,a=this.source.length,c=this.index,d=_utils$1.isIdentifierStart;c=55296&&b<=56319)return this.index=s,this.getEscapedIdentifier();if(!d(b))return this.index=c,this.source.slice(s,c);++c,d=_utils$1.isIdentifierPart}return this.index=c,this.source.slice(s,c)}},{key:"scanIdentifier",value:function(){var s=this.getLocation(),a=this.index,c=this.source.charAt(this.index)==="\\"?this.getEscapedIdentifier():this.getIdentifier(),d=this.getSlice(a,s);d.text=c;var _=this.index-a!==c.length,b=this.getKeyword(c);return _&&b!==TokenType.IDENTIFIER&&(b=TokenType.ESCAPED_KEYWORD),{type:b,value:c,slice:d,escaped:_}}},{key:"getLocation",value:function(){return{line:this.startLine+1,column:this.startIndex-this.startLineStart,offset:this.startIndex}}},{key:"getLastTokenEndLocation",value:function(){return{line:this.lastLine+1,column:this.lastIndex-this.lastLineStart,offset:this.lastIndex}}},{key:"getSlice",value:function(s,a){return{text:this.source.slice(s,this.index),start:s,startLocation:a,end:this.index}}},{key:"scanPunctuatorHelper",value:function(){var s=this.source.charAt(this.index);switch(s){case".":{var a=this.source.charAt(this.index+1);if(a!==".")return TokenType.PERIOD;var c=this.source.charAt(this.index+2);return c!=="."?TokenType.PERIOD:TokenType.ELLIPSIS}case"(":return TokenType.LPAREN;case")":case";":case",":return ONE_CHAR_PUNCTUATOR[s.charCodeAt(0)];case"{":return TokenType.LBRACE;case"}":case"[":case"]":case":":case"?":case"~":return ONE_CHAR_PUNCTUATOR[s.charCodeAt(0)];default:if(this.index+1":return TokenType.GTE;case"/":return TokenType.ASSIGN_DIV;case"%":return TokenType.ASSIGN_MOD;case"^":return TokenType.ASSIGN_BIT_XOR;case"&":return TokenType.ASSIGN_BIT_AND}}if(this.index+1"&&_===">")return this.index+3"&&_==="=")return TokenType.ASSIGN_SHR;if(s==="*"&&_==="=")return TokenType.ASSIGN_EXP}switch(s){case"*":return TokenType.EXP;case"+":return TokenType.INC;case"-":return TokenType.DEC;case"<":return TokenType.SHL;case">":return TokenType.SHR;case"&":return TokenType.AND;case"|":return TokenType.OR}}else if(s==="="&&d===">")return TokenType.ARROW}return ONE_CHAR_PUNCTUATOR[s.charCodeAt(0)]}},{key:"scanPunctuator",value:function(){var s=this.getLocation(),a=this.index,c=this.scanPunctuatorHelper();return this.index+=c.name.length,{type:c,value:c.name,slice:this.getSlice(a,s)}}},{key:"scanHexLiteral",value:function(s,a){for(var c=this.index;c="0"&&c<="7")this.index++;else{if((0,_utils$1.isIdentifierPart)(c.charCodeAt(0)))throw this.createILLEGAL();break}}if(this.index-s===2)throw this.createILLEGAL();return{type:TokenType.NUMBER,value:parseInt(this.getSlice(s,a).text.substr(2),8),slice:this.getSlice(s,a),octal:!1,noctal:!1}}},{key:"scanLegacyOctalLiteral",value:function(s,a){for(var c=!0;this.index="0"&&d<="7")this.index++;else if(d==="8"||d==="9")c=!1,this.index++;else{if((0,_utils$1.isIdentifierPart)(d.charCodeAt(0)))throw this.createILLEGAL();break}}var _=this.getSlice(s,a);return c?{type:TokenType.NUMBER,slice:_,value:parseInt(_.text.substr(1),8),octal:!0,noctal:!c}:(this.eatDecimalLiteralSuffix(),{type:TokenType.NUMBER,slice:_,value:+_.text,octal:!0,noctal:!c})}},{key:"scanNumericLiteral",value:function(){var s=this.source.charAt(this.index),a=this.getLocation(),c=this.index;if(s==="0")if(this.index++,this.index="0"&&s<="9")return this.scanLegacyOctalLiteral(c,a)}else{var d=this.getSlice(c,a);return{type:TokenType.NUMBER,value:+d.text,slice:d,octal:!1,noctal:!1}}else if(s!==".")for(s=this.source.charAt(this.index);s>="0"&&s<="9";){if(this.index++,this.index===this.source.length){var _=this.getSlice(c,a);return{type:TokenType.NUMBER,value:+_.text,slice:_,octal:!1,noctal:!1}}s=this.source.charAt(this.index)}if(this.eatDecimalLiteralSuffix(),this.index!==this.source.length&&(0,_utils$1.isIdentifierStart)(this.source.charCodeAt(this.index)))throw this.createILLEGAL();var b=this.getSlice(c,a);return{type:TokenType.NUMBER,value:+b.text,slice:b,octal:!1,noctal:!1}}},{key:"eatDecimalLiteralSuffix",value:function(){var s=this.source.charAt(this.index);if(s==="."){if(this.index++,this.index===this.source.length)return;for(s=this.source.charAt(this.index);s>="0"&&s<="9";){if(this.index++,this.index===this.source.length)return;s=this.source.charAt(this.index)}}if(s==="e"||s==="E"){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();if(s=this.source.charAt(this.index),s==="+"||s==="-"){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();s=this.source.charAt(this.index)}if(s>="0"&&s<="9")for(;s>="0"&&s<="9"&&(this.index++,this.index!==this.source.length);)s=this.source.charAt(this.index);else throw this.createILLEGAL()}}},{key:"scanStringEscape",value:function(s,a){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();var c=this.source.charAt(this.index);if((0,_utils$1.isLineTerminator)(c.charCodeAt(0)))this.index++,c==="\r"&&this.source.charAt(this.index)===` `&&this.index++,this.lineStart=this.index,this.line++;else switch(c){case"n":s+=` `,this.index++;break;case"r":s+="\r",this.index++;break;case"t":s+=" ",this.index++;break;case"u":case"x":{var d=void 0;if(this.index++,this.index>=this.source.length)throw this.createILLEGAL();if(d=c==="u"?this.scanUnicode():this.scanHexEscape2(),d<0)throw this.createILLEGAL();s+=fromCodePoint$1(d);break}case"b":s+="\b",this.index++;break;case"f":s+="\f",this.index++;break;case"v":s+="\v",this.index++;break;default:if(c>="0"&&c<="7"){var _=this.index,b=1;c>="0"&&c<="3"&&(b=0);for(var k=0;b<3&&c>="0"&&c<="7";){if(this.index++,(b>0||c!=="0")&&(a=this.source.slice(_,this.index)),k*=8,k+=c-"0",b++,this.index===this.source.length)throw this.createILLEGAL();c=this.source.charAt(this.index)}k===0&&b===1&&(c==="8"||c==="9")&&(a=this.source.slice(_,this.index+1)),s+=String.fromCharCode(k)}else{if(c==="8"||c==="9")throw this.createILLEGAL();s+=c,this.index++}}return[s,a]}},{key:"scanStringLiteral",value:function(){var s="",a=this.source.charAt(this.index),c=this.getLocation(),d=this.index;this.index++;for(var _=null;this.index=this.source.length)return{type:TokenType.EOS,slice:this.getSlice(this.index,s)};var a=this.source.charCodeAt(this.index);if(a<128){if(PUNCTUATOR_START[a])return this.scanPunctuator();if((0,_utils$1.isIdentifierStart)(a)||a===92)return this.scanIdentifier();if(a===46)return this.index+1=48&&a<=57)return this.scanNumericLiteral();throw this.createILLEGAL()}else{if((0,_utils$1.isIdentifierStart)(a)||a>=55296&&a<=56319)return this.scanIdentifier();throw this.createILLEGAL()}}},{key:"eof",value:function(){return this.lookahead.type===TokenType.EOS}},{key:"lex",value:function(){var s=this.lookahead;return this.lookahead=this.advance(),this.tokenIndex++,s}}],[{key:"cse2",value:function(s,a,c){return s.charAt(1)===a&&s.charAt(2)===c}},{key:"cse3",value:function(s,a,c,d){return s.charAt(1)===a&&s.charAt(2)===c&&s.charAt(3)===d}},{key:"cse4",value:function(s,a,c,d,_){return s.charAt(1)===a&&s.charAt(2)===c&&s.charAt(3)===d&&s.charAt(4)===_}},{key:"cse5",value:function(s,a,c,d,_,b){return s.charAt(1)===a&&s.charAt(2)===c&&s.charAt(3)===d&&s.charAt(4)===_&&s.charAt(5)===b}},{key:"cse6",value:function(s,a,c,d,_,b,k){return s.charAt(1)===a&&s.charAt(2)===c&&s.charAt(3)===d&&s.charAt(4)===_&&s.charAt(5)===b&&s.charAt(6)===k}},{key:"cse7",value:function(s,a,c,d,_,b,k,$){return s.charAt(1)===a&&s.charAt(2)===c&&s.charAt(3)===d&&s.charAt(4)===_&&s.charAt(5)===b&&s.charAt(6)===k&&s.charAt(7)===$}}]),o}();tokenizer.default=Tokenizer;var parser$1={},dist$6={},mappings=new Map([["General_Category",new Map([["C","Other"],["Cc","Control"],["cntrl","Control"],["Cf","Format"],["Cn","Unassigned"],["Co","Private_Use"],["Cs","Surrogate"],["L","Letter"],["LC","Cased_Letter"],["Ll","Lowercase_Letter"],["Lm","Modifier_Letter"],["Lo","Other_Letter"],["Lt","Titlecase_Letter"],["Lu","Uppercase_Letter"],["M","Mark"],["Combining_Mark","Mark"],["Mc","Spacing_Mark"],["Me","Enclosing_Mark"],["Mn","Nonspacing_Mark"],["N","Number"],["Nd","Decimal_Number"],["digit","Decimal_Number"],["Nl","Letter_Number"],["No","Other_Number"],["P","Punctuation"],["punct","Punctuation"],["Pc","Connector_Punctuation"],["Pd","Dash_Punctuation"],["Pe","Close_Punctuation"],["Pf","Final_Punctuation"],["Pi","Initial_Punctuation"],["Po","Other_Punctuation"],["Ps","Open_Punctuation"],["S","Symbol"],["Sc","Currency_Symbol"],["Sk","Modifier_Symbol"],["Sm","Math_Symbol"],["So","Other_Symbol"],["Z","Separator"],["Zl","Line_Separator"],["Zp","Paragraph_Separator"],["Zs","Space_Separator"],["Other","Other"],["Control","Control"],["Format","Format"],["Unassigned","Unassigned"],["Private_Use","Private_Use"],["Surrogate","Surrogate"],["Letter","Letter"],["Cased_Letter","Cased_Letter"],["Lowercase_Letter","Lowercase_Letter"],["Modifier_Letter","Modifier_Letter"],["Other_Letter","Other_Letter"],["Titlecase_Letter","Titlecase_Letter"],["Uppercase_Letter","Uppercase_Letter"],["Mark","Mark"],["Spacing_Mark","Spacing_Mark"],["Enclosing_Mark","Enclosing_Mark"],["Nonspacing_Mark","Nonspacing_Mark"],["Number","Number"],["Decimal_Number","Decimal_Number"],["Letter_Number","Letter_Number"],["Other_Number","Other_Number"],["Punctuation","Punctuation"],["Connector_Punctuation","Connector_Punctuation"],["Dash_Punctuation","Dash_Punctuation"],["Close_Punctuation","Close_Punctuation"],["Final_Punctuation","Final_Punctuation"],["Initial_Punctuation","Initial_Punctuation"],["Other_Punctuation","Other_Punctuation"],["Open_Punctuation","Open_Punctuation"],["Symbol","Symbol"],["Currency_Symbol","Currency_Symbol"],["Modifier_Symbol","Modifier_Symbol"],["Math_Symbol","Math_Symbol"],["Other_Symbol","Other_Symbol"],["Separator","Separator"],["Line_Separator","Line_Separator"],["Paragraph_Separator","Paragraph_Separator"],["Space_Separator","Space_Separator"]])],["Script",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Copt","Coptic"],["Qaac","Coptic"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Ugar","Ugaritic"],["Vaii","Vai"],["Wara","Warang_Citi"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Coptic","Coptic"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Warang_Citi","Warang_Citi"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])],["Script_Extensions",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Copt","Coptic"],["Qaac","Coptic"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Ugar","Ugaritic"],["Vaii","Vai"],["Wara","Warang_Citi"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Coptic","Coptic"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Warang_Citi","Warang_Citi"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])]]);const propertyToValueAliases=mappings,matchPropertyValue=function(o,e){const s=propertyToValueAliases.get(o);if(!s)throw new Error(`Unknown property \`${o}\`.`);const a=s.get(e);if(a)return a;throw new Error(`Unknown value \`${e}\` for property \`${o}\`.`)};var unicodeMatchPropertyValueEcmascript=matchPropertyValue,unicodeCanonicalPropertyNamesEcmascript=new Set(["General_Category","Script","Script_Extensions","Alphabetic","Any","ASCII","ASCII_Hex_Digit","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","ID_Continue","ID_Start","Ideographic","IDS_Binary_Operator","IDS_Trinary_Operator","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"]),unicodePropertyAliasesEcmascript=new Map([["scx","Script_Extensions"],["sc","Script"],["gc","General_Category"],["AHex","ASCII_Hex_Digit"],["Alpha","Alphabetic"],["Bidi_C","Bidi_Control"],["Bidi_M","Bidi_Mirrored"],["Cased","Cased"],["CI","Case_Ignorable"],["CWCF","Changes_When_Casefolded"],["CWCM","Changes_When_Casemapped"],["CWKCF","Changes_When_NFKC_Casefolded"],["CWL","Changes_When_Lowercased"],["CWT","Changes_When_Titlecased"],["CWU","Changes_When_Uppercased"],["Dash","Dash"],["Dep","Deprecated"],["DI","Default_Ignorable_Code_Point"],["Dia","Diacritic"],["Ext","Extender"],["Gr_Base","Grapheme_Base"],["Gr_Ext","Grapheme_Extend"],["Hex","Hex_Digit"],["IDC","ID_Continue"],["Ideo","Ideographic"],["IDS","ID_Start"],["IDSB","IDS_Binary_Operator"],["IDST","IDS_Trinary_Operator"],["Join_C","Join_Control"],["LOE","Logical_Order_Exception"],["Lower","Lowercase"],["Math","Math"],["NChar","Noncharacter_Code_Point"],["Pat_Syn","Pattern_Syntax"],["Pat_WS","Pattern_White_Space"],["QMark","Quotation_Mark"],["Radical","Radical"],["RI","Regional_Indicator"],["SD","Soft_Dotted"],["STerm","Sentence_Terminal"],["Term","Terminal_Punctuation"],["UIdeo","Unified_Ideograph"],["Upper","Uppercase"],["VS","Variation_Selector"],["WSpace","White_Space"],["space","White_Space"],["XIDC","XID_Continue"],["XIDS","XID_Start"]]);const canonicalProperties=unicodeCanonicalPropertyNamesEcmascript,propertyAliases=unicodePropertyAliasesEcmascript,matchProperty=function(o){if(canonicalProperties.has(o))return o;if(propertyAliases.has(o))return propertyAliases.get(o);throw new Error(`Unknown property: ${o}`)};var unicodeMatchPropertyEcmascript=matchProperty,unicode$1={};Object.defineProperty(unicode$1,"__esModule",{value:!0});unicode$1.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];unicode$1.whitespaceBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!0,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1];unicode$1.idStartLargeRegex=/^[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]$/;unicode$1.idStartBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];unicode$1.idContinueLargeRegex=/^[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]$/;unicode$1.idContinueBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];Object.defineProperty(dist$6,"__esModule",{value:!0});var _createClass$d=function(){function o(e,s){for(var a=0;a=this.pattern.length}},{key:"backreference",value:function(s){s>this.largestBackreference&&(this.largestBackreference=s)}},{key:"nextCodePoint",value:function(){return this.empty()?null:this.unicode?String.fromCodePoint(this.pattern.codePointAt(this.index)):this.pattern.charAt(this.index)}},{key:"skipCodePoint",value:function(){this.index+=this.nextCodePoint().length}},{key:"eat",value:function(s){return this.index+s.length>this.pattern.length||this.pattern.slice(this.index,this.index+s.length)!==s?!1:(this.index+=s.length,!0)}},{key:"eatIdentifierCodePoint",value:function(){var s=void 0,a=this.index,c=void 0;if(this.match("\\u")){if(this.skipCodePoint(),s=acceptUnicodeEscape(this),!s.matched)return this.index=a,null;s=s.value,c=String.fromCodePoint(s)}else{if(c=this.nextCodePoint(),c==null)return this.index=a,null;this.index+=c.length,s=c.codePointAt(0)}return{character:c,characterValue:s}}},{key:"eatIdentifierStart",value:function(){var s=this.index,a=this.eatIdentifierCodePoint();return a===null?(this.index=s,null):a.character==="_"||a.character==="$"||isIdentifierStart(a.characterValue)?a.character:(this.index=s,null)}},{key:"eatIdentifierPart",value:function(){var s=this.index,a=this.eatIdentifierCodePoint();return a===null?(this.index=s,null):a.character==="\u200C"||a.character==="\u200D"||a.character==="$"||isIdentifierPart(a.characterValue)?a.character:(this.index=s,null)}},{key:"eatAny",value:function(){for(var s=arguments.length,a=Array(s),c=0;c1&&arguments[1]!==void 0?arguments[1]:{},s=e.unicode,a=s===void 0?!1:s,c=new PatternAcceptorState(o,a),d=acceptDisjunction(c);if(d.matched){if(c.unicode&&c.largestBackreference>c.capturingGroups)return!1;if(c.groupingNames.length>0||c.unicode){var _=!0,b=!1,k=void 0;try{for(var $=c.backreferenceNames[Symbol.iterator](),j;!(_=(j=$.next()).done);_=!0){var _e=j.value;if(c.groupingNames.indexOf(_e)===-1)return!1}}catch(et){b=!0,k=et}finally{try{!_&&$.return&&$.return()}finally{if(b)throw k}}}}return d.matched};var backtrackOnFailure=function o(e){return function(s){var a=s.index,c=s.largestBackreference,d=s.capturingGroups,_=e(s);return _.matched||(s.index=a,s.largestBackreference=c,s.capturingGroups=d),_}},acceptUnicodeEscape=backtrackOnFailure(function(o){if(!o.eat("u"))return{matched:!1};if(o.unicode&&o.eat("{")){for(var e=[];!o.eat("}");){var s=o.eatAny.apply(o,_toConsumableArray$6(hexDigits));if(s===null)return{matched:!1};e.push(s)}var a=parseInt(e.join(""),16);return a>1114111?{matched:!1}:{matched:!0,value:a}}var c=[0,0,0,0].map(function(){return o.eatAny.apply(o,_toConsumableArray$6(hexDigits))});if(c.some(function(b){return b===null}))return{matched:!1};var d=parseInt(c.join(""),16);if(o.unicode&&d>=55296&&d<=56319){var _=backtrackOnFailure(function(b){if(!b.eat("\\u"))return{matched:!1};var k=[0,0,0,0].map(function(){return b.eatAny.apply(b,_toConsumableArray$6(hexDigits))});if(k.some(function(j){return j===null}))return{matched:!1};var $=parseInt(k.join(""),16);return $<56320||$>=57344?{matched:!1}:{matched:!0,value:65536+((d&1023)<<10)+($&1023)}})(o);if(_.matched)return _}return{matched:!0,value:d}}),acceptDisjunction=function o(e,s){do{if(s!==void 0&&e.eat(s))return{matched:!0};if(e.match("|"))continue;if(!acceptAlternative(e,s).matched)return{matched:!1}}while(e.eat("|"));return{matched:s===void 0||!!e.eat(s)}},acceptAlternative=function o(e,s){for(;!e.match("|")&&!e.empty()&&(s===void 0||!e.match(s));)if(!acceptTerm(e).matched)return{matched:!1};return{matched:!0}},anyOf=function o(){for(var e=arguments.length,s=Array(e),a=0;aparseInt(_))return{matched:!1}}return c.eat("}")?(c.eat("?"),{matched:!0}):{matched:!1}})(s);return a.matched?a:{matched:!s.unicode}}else s.eatAny("*","+","?")&&s.eat("?");return{matched:!0}})},acceptCharacterExcept=function o(e){return function(s){var a=s.nextCodePoint();return a===null||e.indexOf(a)!==-1?{matched:!1}:(s.skipCodePoint(),{matched:!0})}},acceptPatternCharacter=acceptCharacterExcept(syntaxCharacters),acceptExtendedPatternCharacter=acceptCharacterExcept(extendedSyntaxCharacters),acceptInvalidBracedQuantifier=function o(e){return backtrackOnFailure(function(s){return{matched:!!(s.eat("{")&&acceptDecimal(s).matched&&(!s.eat(",")||s.match("}")||acceptDecimal(s).matched)&&s.eat("}"))}})(e)},acceptAtom=function o(e){if(e.unicode)return anyOf(acceptPatternCharacter,function(a){return{matched:!!a.eat(".")}},backtrackOnFailure(function(a){return a.eat("\\")?acceptAtomEscape(a):{matched:!1}}),acceptCharacterClass,acceptLabeledGroup(function(a){return a.eat("?:")}),acceptGrouping)(e);var s=anyOf(function(a){return{matched:!!a.eat(".")}},backtrackOnFailure(function(a){return a.eat("\\")?acceptAtomEscape(a):{matched:!1}}),backtrackOnFailure(function(a){return{matched:a.eat("\\")&&a.match("c")}}),acceptCharacterClass,acceptLabeledGroup(function(a){return a.eat("?:")}),acceptGrouping)(e);return!s.matched&&acceptInvalidBracedQuantifier(e).matched?{matched:!1}:s.matched?s:acceptExtendedPatternCharacter(e)},acceptGrouping=backtrackOnFailure(function(o){if(!o.eat("("))return{matched:!1};var e=backtrackOnFailure(function(s){return o.eat("?")?acceptGroupName(s):{matched:!1}})(o);if(!acceptDisjunction(o,")").matched)return{matched:!1};if(e.matched){if(o.groupingNames.indexOf(e.data)!==-1)return{matched:!1};o.groupingNames.push(e.data)}return o.capturingGroups++,{matched:!0}}),acceptDecimalEscape=backtrackOnFailure(function(o){var e=o.eatAny.apply(o,_toConsumableArray$6(decimalDigits));return e===null?{matched:!1}:e==="0"?{matched:!0}:(o.backreference(parseInt(e+(o.eatNaturalNumber()||""))),{matched:!0})}),acceptCharacterClassEscape=function o(e){return e.eatAny("d","D","s","S","w","W")?{matched:!0}:e.unicode?backtrackOnFailure(function(s){return!s.eat("p{")&&!s.eat("P{")?{matched:!1}:acceptUnicodePropertyValueExpression(s).matched?{matched:!!s.eat("}")}:{matched:!1}})(e):{matched:!1}},acceptUnicodePropertyName=function o(e){for(var s=[],a=void 0;a=e.eatAny.apply(e,_toConsumableArray$6(controlCharacters).concat(["_"]));)s.push(a);return{matched:s.length>0,data:s.join("")}},acceptUnicodePropertyValue=function o(e){for(var s=[],a=void 0;a=e.eatAny.apply(e,_toConsumableArray$6(controlCharacters).concat(_toConsumableArray$6(decimalDigits),["_"]));)s.push(a);return{matched:s.length>0,data:s.join("")}},illegalLoneUnicodePropertyNames=["General_Category","Script","Script_Extensions","scx","sc","gc"],generalCategoryValues=_mappings2.default.get("General_Category"),acceptLoneUnicodePropertyNameOrValue=function o(e){var s=acceptUnicodePropertyValue(e);return!s.matched||illegalLoneUnicodePropertyNames.includes(s.data)?{matched:!1}:{matched:catchIsFalse(function(){return(0,_unicodeMatchPropertyEcmascript2.default)(s.data)})||generalCategoryValues.get(s.data)!=null}},acceptUnicodePropertyValueExpression=function o(e){return anyOf(backtrackOnFailure(function(s){var a=acceptUnicodePropertyName(s);if(!a.matched||!s.eat("="))return{matched:!1};var c=acceptUnicodePropertyValue(s);return c.matched?{matched:catchIsFalse(function(){return(0,_unicodeMatchPropertyValueEcmascript2.default)(_unicodePropertyAliasesEcmascript2.default.get(a.data)||a.data,c.data)})}:{matched:!1}}),backtrackOnFailure(acceptLoneUnicodePropertyNameOrValue))(e)},acceptCharacterEscape=anyOf(function(o){var e=o.eatAny.apply(o,_toConsumableArray$6(controlEscapeCharacters));return e===null?{matched:!1}:{matched:!0,value:controlEscapeCharacterValues[e]}},backtrackOnFailure(function(o){if(!o.eat("c"))return{matched:!1};var e=o.eatAny.apply(o,_toConsumableArray$6(controlCharacters));return e===null?{matched:!1}:{matched:!0,value:e.charCodeAt(0)%32}}),backtrackOnFailure(function(o){return!o.eat("0")||o.eatAny.apply(o,_toConsumableArray$6(decimalDigits))?{matched:!1}:{matched:!0,value:0}}),backtrackOnFailure(function(o){if(!o.eat("x"))return{matched:!1};var e=[0,0].map(function(){return o.eatAny.apply(o,_toConsumableArray$6(hexDigits))});return e.some(function(s){return s===null})?{matched:!1}:{matched:!0,value:parseInt(e.join(""),16)}}),acceptUnicodeEscape,backtrackOnFailure(function(o){if(o.unicode)return{matched:!1};var e=o.eatAny.apply(o,_toConsumableArray$6(octalDigits));if(e===null)return{matched:!1};var s=parseInt(e,8);if(octalDigits.indexOf(o.nextCodePoint())===-1)return{matched:!0,value:s};var a=o.eatAny.apply(o,_toConsumableArray$6(octalDigits)),c=parseInt(a,8);if(s<4){if(octalDigits.indexOf(o.nextCodePoint())===-1)return{matched:!0,value:s<<3|c};var d=o.eatAny.apply(o,_toConsumableArray$6(octalDigits)),_=parseInt(d,8);return{matched:!0,value:s<<6|c<<3|_}}return{matched:!0,value:s<<3|c}}),backtrackOnFailure(function(o){if(!o.unicode)return{matched:!1};var e=o.eatAny.apply(o,_toConsumableArray$6(syntaxCharacters));return e===null?{matched:!1}:{matched:!0,value:e.charCodeAt(0)}}),function(o){return!o.unicode||!o.eat("/")?{matched:!1}:{matched:!0,value:"/".charCodeAt(0)}},backtrackOnFailure(function(o){if(o.unicode)return{matched:!1};var e=o.nextCodePoint();return e!==null&&e!=="c"&&e!=="k"?(o.skipCodePoint(),{matched:!0,value:e.codePointAt(0)}):{matched:!1}})),acceptGroupNameBackreference=backtrackOnFailure(function(o){if(!o.eat("k"))return{matched:!1};var e=acceptGroupName(o);return e.matched?(o.backreferenceNames.push(e.data),{matched:!0}):(o.backreferenceNames.push(INVALID_NAMED_BACKREFERENCE_SENTINEL),{matched:!0})}),acceptGroupName=backtrackOnFailure(function(o){if(!o.eat("<"))return{matched:!1};var e=[],s=o.eatIdentifierStart();if(!s)return{matched:!1};e.push(s);for(var a=void 0;a=o.eatIdentifierPart();)e.push(a);return o.eat(">")?{matched:e.length>0,data:e.join("")}:{matched:!1}}),acceptAtomEscape=anyOf(acceptDecimalEscape,acceptCharacterClassEscape,acceptCharacterEscape,acceptGroupNameBackreference),acceptCharacterClass=backtrackOnFailure(function(o){if(!o.eat("["))return{matched:!1};o.eat("^");var e=anyOf(function(k){return{matched:!!k.eat("b"),value:8}},function(k){return{matched:k.unicode&&!!k.eat("-"),value:"-".charCodeAt(0)}},backtrackOnFailure(function(k){if(k.unicode||!k.eat("c"))return{matched:!1};var $=k.eatAny.apply(k,_toConsumableArray$6(decimalDigits).concat(["_"]));return $===null?{matched:!1}:{matched:!0,value:$.charCodeAt(0)%32}}),acceptCharacterClassEscape,acceptCharacterEscape,function(k){return{matched:!k.unicode&&!!k.eat("k"),value:107}}),s=function($){var j=$.nextCodePoint();if(j==="]"||j==="-"||j===null)return{matched:!1};if(j!=="\\")return $.skipCodePoint(),{matched:!0,value:j.codePointAt(0)};$.eat("\\");var _e=e($);return!_e.matched&&$.nextCodePoint()==="c"&&!$.unicode?{matched:!0,value:"\\".charCodeAt(0)}:_e},a=function($){return $.eat("-")?{matched:!0,value:"-".charCodeAt(0)}:s($)},c=function($,j){var _e=function(nt){return nt.value===void 0&&nt.matched};if($.eat("-")){if($.match("]"))return{matched:!0};var et=a($);return et.matched?$.unicode&&(_e(j)||_e(et))?{matched:!1}:!(!$.unicode&&(_e(j)||_e(et)))&&j.value>et.value?{matched:!1}:$.match("]")?{matched:!0}:d($):{matched:!1}}return $.match("]")?{matched:!0}:_($)},d=function($){var j=a($);return j.matched?c($,j):{matched:!1}},_=function($){var j=s($);return j.matched?c($,j):{matched:!1}};if(o.eat("]"))return{matched:!0};var b=d(o);return b.matched&&o.eat("]"),b}),dist$5={};Object.defineProperty(dist$5,"__esModule",{value:!0});function _classCallCheck$g(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}dist$5.ArrayAssignmentTarget=function o(e){var s=e.elements,a=e.rest;_classCallCheck$g(this,o),this.type="ArrayAssignmentTarget",this.elements=s,this.rest=a};dist$5.ArrayBinding=function o(e){var s=e.elements,a=e.rest;_classCallCheck$g(this,o),this.type="ArrayBinding",this.elements=s,this.rest=a};dist$5.ArrayExpression=function o(e){var s=e.elements;_classCallCheck$g(this,o),this.type="ArrayExpression",this.elements=s};dist$5.ArrowExpression=function o(e){var s=e.isAsync,a=e.params,c=e.body;_classCallCheck$g(this,o),this.type="ArrowExpression",this.isAsync=s,this.params=a,this.body=c};dist$5.AssignmentExpression=function o(e){var s=e.binding,a=e.expression;_classCallCheck$g(this,o),this.type="AssignmentExpression",this.binding=s,this.expression=a};dist$5.AssignmentTargetIdentifier=function o(e){var s=e.name;_classCallCheck$g(this,o),this.type="AssignmentTargetIdentifier",this.name=s};dist$5.AssignmentTargetPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="AssignmentTargetPropertyIdentifier",this.binding=s,this.init=a};dist$5.AssignmentTargetPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$g(this,o),this.type="AssignmentTargetPropertyProperty",this.name=s,this.binding=a};dist$5.AssignmentTargetWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="AssignmentTargetWithDefault",this.binding=s,this.init=a};dist$5.AwaitExpression=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="AwaitExpression",this.expression=s};dist$5.BinaryExpression=function o(e){var s=e.left,a=e.operator,c=e.right;_classCallCheck$g(this,o),this.type="BinaryExpression",this.left=s,this.operator=a,this.right=c};dist$5.BindingIdentifier=function o(e){var s=e.name;_classCallCheck$g(this,o),this.type="BindingIdentifier",this.name=s};dist$5.BindingPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="BindingPropertyIdentifier",this.binding=s,this.init=a};dist$5.BindingPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$g(this,o),this.type="BindingPropertyProperty",this.name=s,this.binding=a};dist$5.BindingWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="BindingWithDefault",this.binding=s,this.init=a};dist$5.Block=function o(e){var s=e.statements;_classCallCheck$g(this,o),this.type="Block",this.statements=s};dist$5.BlockStatement=function o(e){var s=e.block;_classCallCheck$g(this,o),this.type="BlockStatement",this.block=s};dist$5.BreakStatement=function o(e){var s=e.label;_classCallCheck$g(this,o),this.type="BreakStatement",this.label=s};dist$5.CallExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$g(this,o),this.type="CallExpression",this.callee=s,this.arguments=a};dist$5.CatchClause=function o(e){var s=e.binding,a=e.body;_classCallCheck$g(this,o),this.type="CatchClause",this.binding=s,this.body=a};dist$5.ClassDeclaration=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$g(this,o),this.type="ClassDeclaration",this.name=s,this.super=a,this.elements=c};dist$5.ClassElement=function o(e){var s=e.isStatic,a=e.method;_classCallCheck$g(this,o),this.type="ClassElement",this.isStatic=s,this.method=a};dist$5.ClassExpression=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$g(this,o),this.type="ClassExpression",this.name=s,this.super=a,this.elements=c};dist$5.CompoundAssignmentExpression=function o(e){var s=e.binding,a=e.operator,c=e.expression;_classCallCheck$g(this,o),this.type="CompoundAssignmentExpression",this.binding=s,this.operator=a,this.expression=c};dist$5.ComputedMemberAssignmentTarget=function o(e){var s=e.object,a=e.expression;_classCallCheck$g(this,o),this.type="ComputedMemberAssignmentTarget",this.object=s,this.expression=a};dist$5.ComputedMemberExpression=function o(e){var s=e.object,a=e.expression;_classCallCheck$g(this,o),this.type="ComputedMemberExpression",this.object=s,this.expression=a};dist$5.ComputedPropertyName=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="ComputedPropertyName",this.expression=s};dist$5.ConditionalExpression=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$g(this,o),this.type="ConditionalExpression",this.test=s,this.consequent=a,this.alternate=c};dist$5.ContinueStatement=function o(e){var s=e.label;_classCallCheck$g(this,o),this.type="ContinueStatement",this.label=s};dist$5.DataProperty=function o(e){var s=e.name,a=e.expression;_classCallCheck$g(this,o),this.type="DataProperty",this.name=s,this.expression=a};dist$5.DebuggerStatement=function o(){_classCallCheck$g(this,o),this.type="DebuggerStatement"};dist$5.Directive=function o(e){var s=e.rawValue;_classCallCheck$g(this,o),this.type="Directive",this.rawValue=s};dist$5.DoWhileStatement=function o(e){var s=e.body,a=e.test;_classCallCheck$g(this,o),this.type="DoWhileStatement",this.body=s,this.test=a};dist$5.EmptyStatement=function o(){_classCallCheck$g(this,o),this.type="EmptyStatement"};dist$5.Export=function o(e){var s=e.declaration;_classCallCheck$g(this,o),this.type="Export",this.declaration=s};dist$5.ExportAllFrom=function o(e){var s=e.moduleSpecifier;_classCallCheck$g(this,o),this.type="ExportAllFrom",this.moduleSpecifier=s};dist$5.ExportDefault=function o(e){var s=e.body;_classCallCheck$g(this,o),this.type="ExportDefault",this.body=s};dist$5.ExportFrom=function o(e){var s=e.namedExports,a=e.moduleSpecifier;_classCallCheck$g(this,o),this.type="ExportFrom",this.namedExports=s,this.moduleSpecifier=a};dist$5.ExportFromSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$g(this,o),this.type="ExportFromSpecifier",this.name=s,this.exportedName=a};dist$5.ExportLocalSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$g(this,o),this.type="ExportLocalSpecifier",this.name=s,this.exportedName=a};dist$5.ExportLocals=function o(e){var s=e.namedExports;_classCallCheck$g(this,o),this.type="ExportLocals",this.namedExports=s};dist$5.ExpressionStatement=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="ExpressionStatement",this.expression=s};dist$5.ForAwaitStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$g(this,o),this.type="ForAwaitStatement",this.left=s,this.right=a,this.body=c};dist$5.ForInStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$g(this,o),this.type="ForInStatement",this.left=s,this.right=a,this.body=c};dist$5.ForOfStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$g(this,o),this.type="ForOfStatement",this.left=s,this.right=a,this.body=c};dist$5.ForStatement=function o(e){var s=e.init,a=e.test,c=e.update,d=e.body;_classCallCheck$g(this,o),this.type="ForStatement",this.init=s,this.test=a,this.update=c,this.body=d};dist$5.FormalParameters=function o(e){var s=e.items,a=e.rest;_classCallCheck$g(this,o),this.type="FormalParameters",this.items=s,this.rest=a};dist$5.FunctionBody=function o(e){var s=e.directives,a=e.statements;_classCallCheck$g(this,o),this.type="FunctionBody",this.directives=s,this.statements=a};dist$5.FunctionDeclaration=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$g(this,o),this.type="FunctionDeclaration",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$5.FunctionExpression=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$g(this,o),this.type="FunctionExpression",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$5.Getter=function o(e){var s=e.name,a=e.body;_classCallCheck$g(this,o),this.type="Getter",this.name=s,this.body=a};dist$5.IdentifierExpression=function o(e){var s=e.name;_classCallCheck$g(this,o),this.type="IdentifierExpression",this.name=s};dist$5.IfStatement=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$g(this,o),this.type="IfStatement",this.test=s,this.consequent=a,this.alternate=c};dist$5.Import=function o(e){var s=e.defaultBinding,a=e.namedImports,c=e.moduleSpecifier;_classCallCheck$g(this,o),this.type="Import",this.defaultBinding=s,this.namedImports=a,this.moduleSpecifier=c};dist$5.ImportNamespace=function o(e){var s=e.defaultBinding,a=e.namespaceBinding,c=e.moduleSpecifier;_classCallCheck$g(this,o),this.type="ImportNamespace",this.defaultBinding=s,this.namespaceBinding=a,this.moduleSpecifier=c};dist$5.ImportSpecifier=function o(e){var s=e.name,a=e.binding;_classCallCheck$g(this,o),this.type="ImportSpecifier",this.name=s,this.binding=a};dist$5.LabeledStatement=function o(e){var s=e.label,a=e.body;_classCallCheck$g(this,o),this.type="LabeledStatement",this.label=s,this.body=a};dist$5.LiteralBooleanExpression=function o(e){var s=e.value;_classCallCheck$g(this,o),this.type="LiteralBooleanExpression",this.value=s};dist$5.LiteralInfinityExpression=function o(){_classCallCheck$g(this,o),this.type="LiteralInfinityExpression"};dist$5.LiteralNullExpression=function o(){_classCallCheck$g(this,o),this.type="LiteralNullExpression"};dist$5.LiteralNumericExpression=function o(e){var s=e.value;_classCallCheck$g(this,o),this.type="LiteralNumericExpression",this.value=s};dist$5.LiteralRegExpExpression=function o(e){var s=e.pattern,a=e.global,c=e.ignoreCase,d=e.multiLine,_=e.dotAll,b=e.unicode,k=e.sticky;_classCallCheck$g(this,o),this.type="LiteralRegExpExpression",this.pattern=s,this.global=a,this.ignoreCase=c,this.multiLine=d,this.dotAll=_,this.unicode=b,this.sticky=k};dist$5.LiteralStringExpression=function o(e){var s=e.value;_classCallCheck$g(this,o),this.type="LiteralStringExpression",this.value=s};dist$5.Method=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$g(this,o),this.type="Method",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$5.Module=function o(e){var s=e.directives,a=e.items;_classCallCheck$g(this,o),this.type="Module",this.directives=s,this.items=a};dist$5.NewExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$g(this,o),this.type="NewExpression",this.callee=s,this.arguments=a};dist$5.NewTargetExpression=function o(){_classCallCheck$g(this,o),this.type="NewTargetExpression"};dist$5.ObjectAssignmentTarget=function o(e){var s=e.properties,a=e.rest;_classCallCheck$g(this,o),this.type="ObjectAssignmentTarget",this.properties=s,this.rest=a};dist$5.ObjectBinding=function o(e){var s=e.properties,a=e.rest;_classCallCheck$g(this,o),this.type="ObjectBinding",this.properties=s,this.rest=a};dist$5.ObjectExpression=function o(e){var s=e.properties;_classCallCheck$g(this,o),this.type="ObjectExpression",this.properties=s};dist$5.ReturnStatement=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="ReturnStatement",this.expression=s};dist$5.Script=function o(e){var s=e.directives,a=e.statements;_classCallCheck$g(this,o),this.type="Script",this.directives=s,this.statements=a};dist$5.Setter=function o(e){var s=e.name,a=e.param,c=e.body;_classCallCheck$g(this,o),this.type="Setter",this.name=s,this.param=a,this.body=c};dist$5.ShorthandProperty=function o(e){var s=e.name;_classCallCheck$g(this,o),this.type="ShorthandProperty",this.name=s};dist$5.SpreadElement=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="SpreadElement",this.expression=s};dist$5.SpreadProperty=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="SpreadProperty",this.expression=s};dist$5.StaticMemberAssignmentTarget=function o(e){var s=e.object,a=e.property;_classCallCheck$g(this,o),this.type="StaticMemberAssignmentTarget",this.object=s,this.property=a};dist$5.StaticMemberExpression=function o(e){var s=e.object,a=e.property;_classCallCheck$g(this,o),this.type="StaticMemberExpression",this.object=s,this.property=a};dist$5.StaticPropertyName=function o(e){var s=e.value;_classCallCheck$g(this,o),this.type="StaticPropertyName",this.value=s};dist$5.Super=function o(){_classCallCheck$g(this,o),this.type="Super"};dist$5.SwitchCase=function o(e){var s=e.test,a=e.consequent;_classCallCheck$g(this,o),this.type="SwitchCase",this.test=s,this.consequent=a};dist$5.SwitchDefault=function o(e){var s=e.consequent;_classCallCheck$g(this,o),this.type="SwitchDefault",this.consequent=s};dist$5.SwitchStatement=function o(e){var s=e.discriminant,a=e.cases;_classCallCheck$g(this,o),this.type="SwitchStatement",this.discriminant=s,this.cases=a};dist$5.SwitchStatementWithDefault=function o(e){var s=e.discriminant,a=e.preDefaultCases,c=e.defaultCase,d=e.postDefaultCases;_classCallCheck$g(this,o),this.type="SwitchStatementWithDefault",this.discriminant=s,this.preDefaultCases=a,this.defaultCase=c,this.postDefaultCases=d};dist$5.TemplateElement=function o(e){var s=e.rawValue;_classCallCheck$g(this,o),this.type="TemplateElement",this.rawValue=s};dist$5.TemplateExpression=function o(e){var s=e.tag,a=e.elements;_classCallCheck$g(this,o),this.type="TemplateExpression",this.tag=s,this.elements=a};dist$5.ThisExpression=function o(){_classCallCheck$g(this,o),this.type="ThisExpression"};dist$5.ThrowStatement=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="ThrowStatement",this.expression=s};dist$5.TryCatchStatement=function o(e){var s=e.body,a=e.catchClause;_classCallCheck$g(this,o),this.type="TryCatchStatement",this.body=s,this.catchClause=a};dist$5.TryFinallyStatement=function o(e){var s=e.body,a=e.catchClause,c=e.finalizer;_classCallCheck$g(this,o),this.type="TryFinallyStatement",this.body=s,this.catchClause=a,this.finalizer=c};dist$5.UnaryExpression=function o(e){var s=e.operator,a=e.operand;_classCallCheck$g(this,o),this.type="UnaryExpression",this.operator=s,this.operand=a};dist$5.UpdateExpression=function o(e){var s=e.isPrefix,a=e.operator,c=e.operand;_classCallCheck$g(this,o),this.type="UpdateExpression",this.isPrefix=s,this.operator=a,this.operand=c};dist$5.VariableDeclaration=function o(e){var s=e.kind,a=e.declarators;_classCallCheck$g(this,o),this.type="VariableDeclaration",this.kind=s,this.declarators=a};dist$5.VariableDeclarationStatement=function o(e){var s=e.declaration;_classCallCheck$g(this,o),this.type="VariableDeclarationStatement",this.declaration=s};dist$5.VariableDeclarator=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="VariableDeclarator",this.binding=s,this.init=a};dist$5.WhileStatement=function o(e){var s=e.test,a=e.body;_classCallCheck$g(this,o),this.type="WhileStatement",this.test=s,this.body=a};dist$5.WithStatement=function o(e){var s=e.object,a=e.body;_classCallCheck$g(this,o),this.type="WithStatement",this.object=s,this.body=a};dist$5.YieldExpression=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="YieldExpression",this.expression=s};dist$5.YieldGeneratorExpression=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="YieldGeneratorExpression",this.expression=s};Object.defineProperty(parser$1,"__esModule",{value:!0});parser$1.GenericParser=void 0;var _createClass$c=function(){function o(e,s){for(var a=0;a":Precedence$1.Relational,"<=":Precedence$1.Relational,">=":Precedence$1.Relational,in:Precedence$1.Relational,instanceof:Precedence$1.Relational,"<<":Precedence$1.BitwiseSHIFT,">>":Precedence$1.BitwiseSHIFT,">>>":Precedence$1.BitwiseSHIFT,"+":Precedence$1.Additive,"-":Precedence$1.Additive,"*":Precedence$1.Multiplicative,"%":Precedence$1.Multiplicative,"/":Precedence$1.Multiplicative};function isValidSimpleAssignmentTarget(o){if(o==null)return!1;switch(o.type){case"IdentifierExpression":case"ComputedMemberExpression":case"StaticMemberExpression":return!0}return!1}function isPrefixOperator(o){switch(o.type){case _tokenizer.TokenType.INC:case _tokenizer.TokenType.DEC:case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.BIT_NOT:case _tokenizer.TokenType.NOT:case _tokenizer.TokenType.DELETE:case _tokenizer.TokenType.VOID:case _tokenizer.TokenType.TYPEOF:return!0}return!1}function isUpdateOperator(o){return o.type===_tokenizer.TokenType.INC||o.type===_tokenizer.TokenType.DEC}parser$1.GenericParser=function(o){_inherits$7(e,o);function e(s){_classCallCheck$f(this,e);var a=_possibleConstructorReturn$7(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,s));return a.allowIn=!0,a.inFunctionBody=!1,a.inParameter=!1,a.allowYieldExpression=!1,a.allowAwaitExpression=!1,a.firstAwaitLocation=null,a.module=!1,a.moduleIsTheGoalSymbol=!1,a.strict=!1,a.isBindingElement=!0,a.isAssignmentTarget=!0,a.firstExprError=null,a}return _createClass$c(e,[{key:"match",value:function(a){return this.lookahead.type===a}},{key:"matchIdentifier",value:function(){switch(this.lookahead.type){case _tokenizer.TokenType.IDENTIFIER:case _tokenizer.TokenType.LET:case _tokenizer.TokenType.YIELD:case _tokenizer.TokenType.ASYNC:return!0;case _tokenizer.TokenType.AWAIT:return this.moduleIsTheGoalSymbol?!1:(this.firstAwaitLocation===null&&(this.firstAwaitLocation=this.getLocation()),!0);case _tokenizer.TokenType.ESCAPED_KEYWORD:return this.lookahead.value==="await"&&!this.moduleIsTheGoalSymbol?(this.firstAwaitLocation===null&&(this.firstAwaitLocation=this.getLocation()),!0):this.lookahead.value==="let"||this.lookahead.value==="yield"||this.lookahead.value==="async"}return!1}},{key:"eat",value:function(a){return this.lookahead.type===a?this.lex():null}},{key:"expect",value:function(a){if(this.lookahead.type===a)return this.lex();throw this.createUnexpected(this.lookahead)}},{key:"matchContextualKeyword",value:function(a){return this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===a}},{key:"expectContextualKeyword",value:function(a){if(this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===a)return this.lex();throw this.createUnexpected(this.lookahead)}},{key:"eatContextualKeyword",value:function(a){return this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===a?this.lex():null}},{key:"consumeSemicolon",value:function(){if(!this.eat(_tokenizer.TokenType.SEMICOLON)&&!this.hasLineTerminatorBeforeNext&&!this.eof()&&!this.match(_tokenizer.TokenType.RBRACE))throw this.createUnexpected(this.lookahead)}},{key:"startNode",value:function(a){return a}},{key:"copyNode",value:function(a,c){return c}},{key:"finishNode",value:function(a){return a}},{key:"parseModule",value:function(){this.moduleIsTheGoalSymbol=this.module=this.strict=!0,this.lookahead=this.advance();var a=this.startNode(),c=this.parseBody(),d=c.directives,_=c.statements;if(!this.match(_tokenizer.TokenType.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new AST.Module({directives:d,items:_}),a)}},{key:"parseScript",value:function(){this.lookahead=this.advance();var a=this.startNode(),c=this.parseBody(),d=c.directives,_=c.statements;if(!this.match(_tokenizer.TokenType.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new AST.Script({directives:d,statements:_}),a)}},{key:"parseFunctionBody",value:function(){var a=this.inFunctionBody,c=this.module,d=this.strict;this.inFunctionBody=!0,this.module=!1;var _=this.startNode();this.expect(_tokenizer.TokenType.LBRACE);var b=new AST.FunctionBody(this.parseBody());return this.expect(_tokenizer.TokenType.RBRACE),b=this.finishNode(b,_),this.inFunctionBody=a,this.module=c,this.strict=d,b}},{key:"parseBody",value:function(){for(var a=[],c=[],d=!0,_=null;!(this.eof()||this.match(_tokenizer.TokenType.RBRACE));){var b=this.lookahead,k=b.slice.text,$=b.type===_tokenizer.TokenType.STRING,j=this.module,_e=this.getLocation(),et=this.startNode(),tt=j?this.parseModuleItem():this.parseStatementListItem();if(d)if($&&tt.type==="ExpressionStatement"&&tt.expression.type==="LiteralStringExpression"){!_&&b.octal&&(_=this.createErrorWithLocation(_e,"Unexpected legacy octal escape sequence: \\"+b.octal));var nt=k.slice(1,-1);nt==="use strict"&&(this.strict=!0),a.push(this.finishNode(new AST.Directive({rawValue:nt}),et))}else{if(d=!1,_&&this.strict)throw _;c.push(tt)}else c.push(tt)}if(_&&this.strict)throw _;return{directives:a,statements:c}}},{key:"parseImportSpecifier",value:function(){var a=this.startNode(),c=void 0;if(this.matchIdentifier()){if(c=this.parseIdentifier(),!this.eatContextualKeyword("as"))return this.finishNode(new AST.ImportSpecifier({name:null,binding:this.finishNode(new AST.BindingIdentifier({name:c}),a)}),a)}else this.lookahead.type.klass.isIdentifierName&&(c=this.parseIdentifierName(),this.expectContextualKeyword("as"));return this.finishNode(new AST.ImportSpecifier({name:c,binding:this.parseBindingIdentifier()}),a)}},{key:"parseNameSpaceBinding",value:function(){return this.expect(_tokenizer.TokenType.MUL),this.expectContextualKeyword("as"),this.parseBindingIdentifier()}},{key:"parseNamedImports",value:function(){var a=[];for(this.expect(_tokenizer.TokenType.LBRACE);!this.eat(_tokenizer.TokenType.RBRACE);)if(a.push(this.parseImportSpecifier()),!this.eat(_tokenizer.TokenType.COMMA)){this.expect(_tokenizer.TokenType.RBRACE);break}return a}},{key:"parseFromClause",value:function(){this.expectContextualKeyword("from");var a=this.expect(_tokenizer.TokenType.STRING).str;return a}},{key:"parseImportDeclaration",value:function(){var a=this.startNode(),c=null,d=void 0;if(this.expect(_tokenizer.TokenType.IMPORT),this.match(_tokenizer.TokenType.STRING))return d=this.lex().str,this.consumeSemicolon(),this.finishNode(new AST.Import({defaultBinding:null,namedImports:[],moduleSpecifier:d}),a);if(this.matchIdentifier()&&(c=this.parseBindingIdentifier(),!this.eat(_tokenizer.TokenType.COMMA))){var _=new AST.Import({defaultBinding:c,namedImports:[],moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(_,a)}if(this.match(_tokenizer.TokenType.MUL)){var b=new AST.ImportNamespace({defaultBinding:c,namespaceBinding:this.parseNameSpaceBinding(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(b,a)}else if(this.match(_tokenizer.TokenType.LBRACE)){var k=new AST.Import({defaultBinding:c,namedImports:this.parseNamedImports(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(k,a)}throw this.createUnexpected(this.lookahead)}},{key:"parseExportSpecifier",value:function(){var a=this.startNode(),c=this.finishNode({type:EXPORT_UNKNOWN_SPECIFIER,isIdentifier:this.matchIdentifier(),value:this.parseIdentifierName()},a);if(this.eatContextualKeyword("as")){var d=this.parseIdentifierName();return this.finishNode({name:c,exportedName:d},a)}return this.finishNode({name:c,exportedName:null},a)}},{key:"parseExportClause",value:function(){this.expect(_tokenizer.TokenType.LBRACE);for(var a=[];!this.eat(_tokenizer.TokenType.RBRACE);)if(a.push(this.parseExportSpecifier()),!this.eat(_tokenizer.TokenType.COMMA)){this.expect(_tokenizer.TokenType.RBRACE);break}return a}},{key:"parseExportDeclaration",value:function(){var a=this,c=this.startNode(),d=void 0;switch(this.expect(_tokenizer.TokenType.EXPORT),this.lookahead.type){case _tokenizer.TokenType.MUL:this.lex(),d=new AST.ExportAllFrom({moduleSpecifier:this.parseFromClause()}),this.consumeSemicolon();break;case _tokenizer.TokenType.LBRACE:{var _=this.parseExportClause(),b=null;this.matchContextualKeyword("from")?(b=this.parseFromClause(),d=new AST.ExportFrom({namedExports:_.map(function(_e){return a.copyNode(_e,new AST.ExportFromSpecifier({name:_e.name.value,exportedName:_e.exportedName}))}),moduleSpecifier:b})):(_.forEach(function(_e){var et=_e.name;if(!et.isIdentifier)throw a.createError(_errors$1.ErrorMessages.ILLEGAL_EXPORTED_NAME)}),d=new AST.ExportLocals({namedExports:_.map(function(_e){return a.copyNode(_e,new AST.ExportLocalSpecifier({name:a.copyNode(_e.name,new AST.IdentifierExpression({name:_e.name.value})),exportedName:_e.exportedName}))})})),this.consumeSemicolon();break}case _tokenizer.TokenType.CLASS:d=new AST.Export({declaration:this.parseClass({isExpr:!1,inDefault:!1})});break;case _tokenizer.TokenType.FUNCTION:d=new AST.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1})});break;case _tokenizer.TokenType.ASYNC:{var k=this.startNode();this.lex(),d=new AST.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:k})});break}case _tokenizer.TokenType.DEFAULT:switch(this.lex(),this.lookahead.type){case _tokenizer.TokenType.FUNCTION:d=new AST.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!0,isAsync:!1})});break;case _tokenizer.TokenType.CLASS:d=new AST.ExportDefault({body:this.parseClass({isExpr:!1,inDefault:!0})});break;case _tokenizer.TokenType.ASYNC:{var $=this.startNode(),j=this.saveLexerState();if(this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION)){d=new AST.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!1,isAsync:!0,startState:$})});break}this.restoreLexerState(j)}default:d=new AST.ExportDefault({body:this.parseAssignmentExpression()}),this.consumeSemicolon();break}break;case _tokenizer.TokenType.VAR:case _tokenizer.TokenType.LET:case _tokenizer.TokenType.CONST:d=new AST.Export({declaration:this.parseVariableDeclaration(!0)}),this.consumeSemicolon();break;default:throw this.createUnexpected(this.lookahead)}return this.finishNode(d,c)}},{key:"parseModuleItem",value:function(){switch(this.lookahead.type){case _tokenizer.TokenType.IMPORT:return this.parseImportDeclaration();case _tokenizer.TokenType.EXPORT:return this.parseExportDeclaration();default:return this.parseStatementListItem()}}},{key:"lookaheadLexicalDeclaration",value:function(){if(this.match(_tokenizer.TokenType.LET)||this.match(_tokenizer.TokenType.CONST)){var a=this.saveLexerState();if(this.lex(),this.matchIdentifier()||this.match(_tokenizer.TokenType.LBRACE)||this.match(_tokenizer.TokenType.LBRACK))return this.restoreLexerState(a),!0;this.restoreLexerState(a)}return!1}},{key:"parseStatementListItem",value:function(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case _tokenizer.TokenType.FUNCTION:return this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1});case _tokenizer.TokenType.CLASS:return this.parseClass({isExpr:!1,inDefault:!1});case _tokenizer.TokenType.ASYNC:{var a=this.getLocation(),c=this.saveLexerState();return this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:a}):(this.restoreLexerState(c),this.parseStatement())}default:if(this.lookaheadLexicalDeclaration()){var d=this.startNode();return this.finishNode(this.parseVariableDeclarationStatement(),d)}return this.parseStatement()}}},{key:"parseStatement",value:function(){var a=this.startNode(),c=this.isolateCoverGrammar(this.parseStatementHelper);return this.finishNode(c,a)}},{key:"parseStatementHelper",value:function(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case _tokenizer.TokenType.SEMICOLON:return this.parseEmptyStatement();case _tokenizer.TokenType.LBRACE:return this.parseBlockStatement();case _tokenizer.TokenType.LPAREN:return this.parseExpressionStatement();case _tokenizer.TokenType.BREAK:return this.parseBreakStatement();case _tokenizer.TokenType.CONTINUE:return this.parseContinueStatement();case _tokenizer.TokenType.DEBUGGER:return this.parseDebuggerStatement();case _tokenizer.TokenType.DO:return this.parseDoWhileStatement();case _tokenizer.TokenType.FOR:return this.parseForStatement();case _tokenizer.TokenType.IF:return this.parseIfStatement();case _tokenizer.TokenType.RETURN:return this.parseReturnStatement();case _tokenizer.TokenType.SWITCH:return this.parseSwitchStatement();case _tokenizer.TokenType.THROW:return this.parseThrowStatement();case _tokenizer.TokenType.TRY:return this.parseTryStatement();case _tokenizer.TokenType.VAR:return this.parseVariableDeclarationStatement();case _tokenizer.TokenType.WHILE:return this.parseWhileStatement();case _tokenizer.TokenType.WITH:return this.parseWithStatement();case _tokenizer.TokenType.FUNCTION:case _tokenizer.TokenType.CLASS:throw this.createUnexpected(this.lookahead);default:{var a=this.saveLexerState();if(this.eat(_tokenizer.TokenType.LET)){if(this.match(_tokenizer.TokenType.LBRACK))throw this.restoreLexerState(a),this.createUnexpected(this.lookahead);this.restoreLexerState(a)}else if(this.eat(_tokenizer.TokenType.ASYNC)){if(!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION))throw this.createUnexpected(this.lookahead);this.restoreLexerState(a)}var c=this.parseExpression();if(c.type==="IdentifierExpression"&&this.eat(_tokenizer.TokenType.COLON)){var d=this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement();return new AST.LabeledStatement({label:c.name,body:d})}return this.consumeSemicolon(),new AST.ExpressionStatement({expression:c})}}}},{key:"parseEmptyStatement",value:function(){return this.lex(),new AST.EmptyStatement}},{key:"parseBlockStatement",value:function(){return new AST.BlockStatement({block:this.parseBlock()})}},{key:"parseExpressionStatement",value:function(){var a=this.parseExpression();return this.consumeSemicolon(),new AST.ExpressionStatement({expression:a})}},{key:"parseBreakStatement",value:function(){if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.BreakStatement({label:null});var a=null;return this.matchIdentifier()&&(a=this.parseIdentifier()),this.consumeSemicolon(),new AST.BreakStatement({label:a})}},{key:"parseContinueStatement",value:function(){if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.ContinueStatement({label:null});var a=null;return this.matchIdentifier()&&(a=this.parseIdentifier()),this.consumeSemicolon(),new AST.ContinueStatement({label:a})}},{key:"parseDebuggerStatement",value:function(){return this.lex(),this.consumeSemicolon(),new AST.DebuggerStatement}},{key:"parseDoWhileStatement",value:function(){this.lex();var a=this.parseStatement();this.expect(_tokenizer.TokenType.WHILE),this.expect(_tokenizer.TokenType.LPAREN);var c=this.parseExpression();return this.expect(_tokenizer.TokenType.RPAREN),this.eat(_tokenizer.TokenType.SEMICOLON),new AST.DoWhileStatement({body:a,test:c})}},{key:"parseForStatement",value:function(){this.lex();var a=this.allowAwaitExpression&&this.eat(_tokenizer.TokenType.AWAIT);this.expect(_tokenizer.TokenType.LPAREN);var c=null,d=null;if(a&&this.match(_tokenizer.TokenType.SEMICOLON))throw this.createUnexpected(this.lookahead);if(this.eat(_tokenizer.TokenType.SEMICOLON))return this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(d=this.parseExpression()),new AST.ForStatement({init:null,test:c,update:d,body:this.getIteratorStatementEpilogue()});var _=this.match(_tokenizer.TokenType.LET),b=this.lookaheadLexicalDeclaration(),k=this.startNode();if(this.match(_tokenizer.TokenType.VAR)||b){var $=this.allowIn;this.allowIn=!1;var j=this.parseVariableDeclaration(!1);if(this.allowIn=$,j.declarators.length===1&&(this.match(_tokenizer.TokenType.IN)||this.matchContextualKeyword("of"))){var _e=void 0,et=j.declarators[0];if(this.match(_tokenizer.TokenType.IN)){if(a)throw this.createUnexpected(this.lookahead);if(et.init!==null&&(this.strict||j.kind!=="var"||et.binding.type!=="BindingIdentifier"))throw this.createError(_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_IN);_e=AST.ForInStatement,this.lex(),d=this.parseExpression()}else{if(et.init!==null)throw this.createError(a?_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_AWAIT:_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_OF);a?_e=AST.ForAwaitStatement:_e=AST.ForOfStatement,this.lex(),d=this.parseAssignmentExpression()}var tt=this.getIteratorStatementEpilogue();return new _e({left:j,right:d,body:tt})}else if(a)throw this.createUnexpected(this.lookahead);if(this.expect(_tokenizer.TokenType.SEMICOLON),j.declarators.some(function(at){return at.binding.type!=="BindingIdentifier"&&at.init===null}))throw this.createError(_errors$1.ErrorMessages.UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT);return this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(d=this.parseExpression()),new AST.ForStatement({init:j,test:c,update:d,body:this.getIteratorStatementEpilogue()})}var nt=this.allowIn;this.allowIn=!1;var it=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget);if(this.allowIn=nt,this.isAssignmentTarget&&it.type!=="AssignmentExpression"&&(this.match(_tokenizer.TokenType.IN)||this.matchContextualKeyword("of"))){if((it.type==="ObjectAssignmentTarget"||it.type==="ArrayAssignmentTarget")&&(this.firstExprError=null),_&&this.matchContextualKeyword("of"))throw this.createError(a?_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_AWAIT:_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_OF);var rt=void 0;if(this.match(_tokenizer.TokenType.IN)){if(a)throw this.createUnexpected(this.lookahead);rt=AST.ForInStatement,this.lex(),d=this.parseExpression()}else a?rt=AST.ForAwaitStatement:rt=AST.ForOfStatement,this.lex(),d=this.parseAssignmentExpression();return new rt({left:this.transformDestructuring(it),right:d,body:this.getIteratorStatementEpilogue()})}else if(a)throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_AWAIT);if(this.firstExprError)throw this.firstExprError;for(;this.eat(_tokenizer.TokenType.COMMA);){var st=this.parseAssignmentExpression();it=this.finishNode(new AST.BinaryExpression({left:it,operator:",",right:st}),k)}if(this.match(_tokenizer.TokenType.IN))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_IN);if(this.matchContextualKeyword("of"))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_OF);return this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(d=this.parseExpression()),new AST.ForStatement({init:it,test:c,update:d,body:this.getIteratorStatementEpilogue()})}},{key:"getIteratorStatementEpilogue",value:function(){this.expect(_tokenizer.TokenType.RPAREN);var a=this.parseStatement();return a}},{key:"parseIfStatementChild",value:function(){return this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement()}},{key:"parseIfStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var a=this.parseExpression();this.expect(_tokenizer.TokenType.RPAREN);var c=this.parseIfStatementChild(),d=null;return this.eat(_tokenizer.TokenType.ELSE)&&(d=this.parseIfStatementChild()),new AST.IfStatement({test:a,consequent:c,alternate:d})}},{key:"parseReturnStatement",value:function(){if(!this.inFunctionBody)throw this.createError(_errors$1.ErrorMessages.ILLEGAL_RETURN);if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.ReturnStatement({expression:null});var a=null;return!this.match(_tokenizer.TokenType.RBRACE)&&!this.eof()&&(a=this.parseExpression()),this.consumeSemicolon(),new AST.ReturnStatement({expression:a})}},{key:"parseSwitchStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var a=this.parseExpression();if(this.expect(_tokenizer.TokenType.RPAREN),this.expect(_tokenizer.TokenType.LBRACE),this.eat(_tokenizer.TokenType.RBRACE))return new AST.SwitchStatement({discriminant:a,cases:[]});var c=this.parseSwitchCases();if(this.match(_tokenizer.TokenType.DEFAULT)){var d=this.parseSwitchDefault(),_=this.parseSwitchCases();if(this.match(_tokenizer.TokenType.DEFAULT))throw this.createError(_errors$1.ErrorMessages.MULTIPLE_DEFAULTS_IN_SWITCH);return this.expect(_tokenizer.TokenType.RBRACE),new AST.SwitchStatementWithDefault({discriminant:a,preDefaultCases:c,defaultCase:d,postDefaultCases:_})}return this.expect(_tokenizer.TokenType.RBRACE),new AST.SwitchStatement({discriminant:a,cases:c})}},{key:"parseSwitchCases",value:function(){for(var a=[];!(this.eof()||this.match(_tokenizer.TokenType.RBRACE)||this.match(_tokenizer.TokenType.DEFAULT));)a.push(this.parseSwitchCase());return a}},{key:"parseSwitchCase",value:function(){var a=this.startNode();return this.expect(_tokenizer.TokenType.CASE),this.finishNode(new AST.SwitchCase({test:this.parseExpression(),consequent:this.parseSwitchCaseBody()}),a)}},{key:"parseSwitchDefault",value:function(){var a=this.startNode();return this.expect(_tokenizer.TokenType.DEFAULT),this.finishNode(new AST.SwitchDefault({consequent:this.parseSwitchCaseBody()}),a)}},{key:"parseSwitchCaseBody",value:function(){return this.expect(_tokenizer.TokenType.COLON),this.parseStatementListInSwitchCaseBody()}},{key:"parseStatementListInSwitchCaseBody",value:function(){for(var a=[];!(this.eof()||this.match(_tokenizer.TokenType.RBRACE)||this.match(_tokenizer.TokenType.DEFAULT)||this.match(_tokenizer.TokenType.CASE));)a.push(this.parseStatementListItem());return a}},{key:"parseThrowStatement",value:function(){var a=this.lex();if(this.hasLineTerminatorBeforeNext)throw this.createErrorWithLocation(a,_errors$1.ErrorMessages.NEWLINE_AFTER_THROW);var c=this.parseExpression();return this.consumeSemicolon(),new AST.ThrowStatement({expression:c})}},{key:"parseTryStatement",value:function(){this.lex();var a=this.parseBlock();if(this.match(_tokenizer.TokenType.CATCH)){var c=this.parseCatchClause();if(this.eat(_tokenizer.TokenType.FINALLY)){var d=this.parseBlock();return new AST.TryFinallyStatement({body:a,catchClause:c,finalizer:d})}return new AST.TryCatchStatement({body:a,catchClause:c})}if(this.eat(_tokenizer.TokenType.FINALLY)){var _=this.parseBlock();return new AST.TryFinallyStatement({body:a,catchClause:null,finalizer:_})}throw this.createError(_errors$1.ErrorMessages.NO_CATCH_OR_FINALLY)}},{key:"parseVariableDeclarationStatement",value:function(){var a=this.parseVariableDeclaration(!0);return this.consumeSemicolon(),new AST.VariableDeclarationStatement({declaration:a})}},{key:"parseWhileStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var a=this.parseExpression(),c=this.getIteratorStatementEpilogue();return new AST.WhileStatement({test:a,body:c})}},{key:"parseWithStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var a=this.parseExpression();this.expect(_tokenizer.TokenType.RPAREN);var c=this.parseStatement();return new AST.WithStatement({object:a,body:c})}},{key:"parseCatchClause",value:function(){var a=this.startNode();if(this.lex(),this.expect(_tokenizer.TokenType.LPAREN),this.match(_tokenizer.TokenType.RPAREN)||this.match(_tokenizer.TokenType.LPAREN))throw this.createUnexpected(this.lookahead);var c=this.parseBindingTarget();this.expect(_tokenizer.TokenType.RPAREN);var d=this.parseBlock();return this.finishNode(new AST.CatchClause({binding:c,body:d}),a)}},{key:"parseBlock",value:function(){var a=this.startNode();this.expect(_tokenizer.TokenType.LBRACE);for(var c=[];!this.match(_tokenizer.TokenType.RBRACE);)c.push(this.parseStatementListItem());return this.expect(_tokenizer.TokenType.RBRACE),this.finishNode(new AST.Block({statements:c}),a)}},{key:"parseVariableDeclaration",value:function(a){var c=this.startNode(),d=this.lex(),_=d.type===_tokenizer.TokenType.VAR?"var":d.type===_tokenizer.TokenType.CONST?"const":"let",b=this.parseVariableDeclaratorList(a);return this.finishNode(new AST.VariableDeclaration({kind:_,declarators:b}),c)}},{key:"parseVariableDeclaratorList",value:function(a){var c=[];do c.push(this.parseVariableDeclarator(a));while(this.eat(_tokenizer.TokenType.COMMA));return c}},{key:"parseVariableDeclarator",value:function(a){var c=this.startNode();if(this.match(_tokenizer.TokenType.LPAREN))throw this.createUnexpected(this.lookahead);var d=this.allowIn;this.allowIn=!0;var _=this.parseBindingTarget();this.allowIn=d,a&&_.type!=="BindingIdentifier"&&!this.match(_tokenizer.TokenType.ASSIGN)&&this.expect(_tokenizer.TokenType.ASSIGN);var b=null;return this.eat(_tokenizer.TokenType.ASSIGN)&&(b=this.parseAssignmentExpression()),this.finishNode(new AST.VariableDeclarator({binding:_,init:b}),c)}},{key:"isolateCoverGrammar",value:function(a){var c=this.isBindingElement,d=this.isAssignmentTarget,_=this.firstExprError,b=void 0;if(this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,b=a.call(this),this.firstExprError!==null)throw this.firstExprError;return this.isBindingElement=c,this.isAssignmentTarget=d,this.firstExprError=_,b}},{key:"inheritCoverGrammar",value:function(a){var c=this.isBindingElement,d=this.isAssignmentTarget,_=this.firstExprError,b=void 0;return this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,b=a.call(this),this.isBindingElement=this.isBindingElement&&c,this.isAssignmentTarget=this.isAssignmentTarget&&d,this.firstExprError=_||this.firstExprError,b}},{key:"parseExpression",value:function(){var a=this.startNode(),c=this.parseAssignmentExpression();if(this.match(_tokenizer.TokenType.COMMA))for(;!this.eof()&&this.match(_tokenizer.TokenType.COMMA);){this.lex();var d=this.parseAssignmentExpression();c=this.finishNode(new AST.BinaryExpression({left:c,operator:",",right:d}),a)}return c}},{key:"finishArrowParams",value:function(a){var c=a.params,d=c===void 0?null:c,_=a.rest,b=_===void 0?null:_;if(a.type!==ARROW_EXPRESSION_PARAMS)if(a.type==="IdentifierExpression")d=[this.targetToBinding(this.transformDestructuring(a))];else throw this.createUnexpected(this.lookahead);return this.copyNode(a,new AST.FormalParameters({items:d,rest:b}))}},{key:"parseArrowExpressionTail",value:function(a,c,d){this.expect(_tokenizer.TokenType.ARROW);var _=this.allowYieldExpression,b=this.allowAwaitExpression,k=this.firstAwaitLocation;this.allowYieldExpression=!1,this.allowAwaitExpression=c,this.firstAwaitLocation=null;var $=void 0;if(this.match(_tokenizer.TokenType.LBRACE)){var j=this.allowIn;this.allowIn=!0,$=this.parseFunctionBody(),this.allowIn=j}else $=this.parseAssignmentExpression();return this.allowYieldExpression=_,this.allowAwaitExpression=b,this.firstAwaitLocation=k,this.finishNode(new AST.ArrowExpression({isAsync:c,params:a,body:$}),d)}},{key:"parseAssignmentExpression",value:function(){return this.isolateCoverGrammar(this.parseAssignmentExpressionOrTarget)}},{key:"parseAssignmentExpressionOrTarget",value:function(){var a=this.startNode();if(this.allowYieldExpression&&this.match(_tokenizer.TokenType.YIELD))return this.isBindingElement=this.isAssignmentTarget=!1,this.parseYieldExpression();var c=this.parseConditionalExpression();if(!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.ARROW)){this.isBindingElement=this.isAssignmentTarget=!1,this.firstExprError=null;var d=c.type===ARROW_EXPRESSION_PARAMS&&c.isAsync;return this.parseArrowExpressionTail(this.finishArrowParams(c),d,a)}var _=!1,b=this.lookahead;switch(b.type){case _tokenizer.TokenType.ASSIGN_BIT_OR:case _tokenizer.TokenType.ASSIGN_BIT_XOR:case _tokenizer.TokenType.ASSIGN_BIT_AND:case _tokenizer.TokenType.ASSIGN_SHL:case _tokenizer.TokenType.ASSIGN_SHR:case _tokenizer.TokenType.ASSIGN_SHR_UNSIGNED:case _tokenizer.TokenType.ASSIGN_ADD:case _tokenizer.TokenType.ASSIGN_SUB:case _tokenizer.TokenType.ASSIGN_MUL:case _tokenizer.TokenType.ASSIGN_DIV:case _tokenizer.TokenType.ASSIGN_MOD:case _tokenizer.TokenType.ASSIGN_EXP:_=!0;break}if(_){if(!this.isAssignmentTarget||!isValidSimpleAssignmentTarget(c))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_ASSIGNMENT);c=this.transformDestructuring(c)}else if(b.type===_tokenizer.TokenType.ASSIGN){if(!this.isAssignmentTarget)throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_ASSIGNMENT);c=this.transformDestructuring(c)}else return c;this.lex();var k=this.parseAssignmentExpression();this.firstExprError=null;var $=void 0;return b.type===_tokenizer.TokenType.ASSIGN?$=new AST.AssignmentExpression({binding:c,expression:k}):($=new AST.CompoundAssignmentExpression({binding:c,operator:b.type.name,expression:k}),this.isBindingElement=this.isAssignmentTarget=!1),this.finishNode($,a)}},{key:"targetToBinding",value:function(a){var c=this;if(a===null)return null;switch(a.type){case"AssignmentTargetIdentifier":return this.copyNode(a,new AST.BindingIdentifier({name:a.name}));case"ArrayAssignmentTarget":return this.copyNode(a,new AST.ArrayBinding({elements:a.elements.map(function(d){return c.targetToBinding(d)}),rest:this.targetToBinding(a.rest)}));case"ObjectAssignmentTarget":return this.copyNode(a,new AST.ObjectBinding({properties:a.properties.map(function(d){return c.targetToBinding(d)}),rest:this.targetToBinding(a.rest)}));case"AssignmentTargetPropertyIdentifier":return this.copyNode(a,new AST.BindingPropertyIdentifier({binding:this.targetToBinding(a.binding),init:a.init}));case"AssignmentTargetPropertyProperty":return this.copyNode(a,new AST.BindingPropertyProperty({name:a.name,binding:this.targetToBinding(a.binding)}));case"AssignmentTargetWithDefault":return this.copyNode(a,new AST.BindingWithDefault({binding:this.targetToBinding(a.binding),init:a.init}))}throw new Error("Not reached")}},{key:"transformDestructuring",value:function(a){var c=this;switch(a.type){case"DataProperty":return this.copyNode(a,new AST.AssignmentTargetPropertyProperty({name:a.name,binding:this.transformDestructuringWithDefault(a.expression)}));case"ShorthandProperty":return this.copyNode(a,new AST.AssignmentTargetPropertyIdentifier({binding:this.copyNode(a,new AST.AssignmentTargetIdentifier({name:a.name.name})),init:null}));case"ObjectExpression":{var d=a.properties.length>0?a.properties[a.properties.length-1]:void 0;return d!=null&&d.type==="SpreadProperty"?this.copyNode(a,new AST.ObjectAssignmentTarget({properties:a.properties.slice(0,-1).map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:this.transformDestructuring(d.expression)})):this.copyNode(a,new AST.ObjectAssignmentTarget({properties:a.properties.map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:null}))}case"ArrayExpression":{var _=a.elements[a.elements.length-1];return _!=null&&_.type==="SpreadElement"?this.copyNode(a,new AST.ArrayAssignmentTarget({elements:a.elements.slice(0,-1).map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:this.copyNode(_.expression,this.transformDestructuring(_.expression))})):this.copyNode(a,new AST.ArrayAssignmentTarget({elements:a.elements.map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:null}))}case"IdentifierExpression":return this.copyNode(a,new AST.AssignmentTargetIdentifier({name:a.name}));case"StaticPropertyName":return this.copyNode(a,new AST.AssignmentTargetIdentifier({name:a.value}));case"ComputedMemberExpression":return this.copyNode(a,new AST.ComputedMemberAssignmentTarget({object:a.object,expression:a.expression}));case"StaticMemberExpression":return this.copyNode(a,new AST.StaticMemberAssignmentTarget({object:a.object,property:a.property}));case"ArrayAssignmentTarget":case"ObjectAssignmentTarget":case"ComputedMemberAssignmentTarget":case"StaticMemberAssignmentTarget":case"AssignmentTargetIdentifier":case"AssignmentTargetPropertyIdentifier":case"AssignmentTargetPropertyProperty":case"AssignmentTargetWithDefault":return a}throw new Error("Not reached")}},{key:"transformDestructuringWithDefault",value:function(a){switch(a.type){case"AssignmentExpression":return this.copyNode(a,new AST.AssignmentTargetWithDefault({binding:this.transformDestructuring(a.binding),init:a.expression}))}return this.transformDestructuring(a)}},{key:"lookaheadAssignmentExpression",value:function(){if(this.matchIdentifier())return!0;switch(this.lookahead.type){case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.ASSIGN_DIV:case _tokenizer.TokenType.BIT_NOT:case _tokenizer.TokenType.CLASS:case _tokenizer.TokenType.DEC:case _tokenizer.TokenType.DELETE:case _tokenizer.TokenType.DIV:case _tokenizer.TokenType.FALSE:case _tokenizer.TokenType.FUNCTION:case _tokenizer.TokenType.INC:case _tokenizer.TokenType.LBRACE:case _tokenizer.TokenType.LBRACK:case _tokenizer.TokenType.LPAREN:case _tokenizer.TokenType.NEW:case _tokenizer.TokenType.NOT:case _tokenizer.TokenType.NULL:case _tokenizer.TokenType.NUMBER:case _tokenizer.TokenType.STRING:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.SUPER:case _tokenizer.TokenType.THIS:case _tokenizer.TokenType.TRUE:case _tokenizer.TokenType.TYPEOF:case _tokenizer.TokenType.VOID:case _tokenizer.TokenType.TEMPLATE:return!0}return!1}},{key:"parseYieldExpression",value:function(){var a=this.startNode();if(this.lex(),this.hasLineTerminatorBeforeNext)return this.finishNode(new AST.YieldExpression({expression:null}),a);var c=!!this.eat(_tokenizer.TokenType.MUL),d=null;(c||this.lookaheadAssignmentExpression())&&(d=this.parseAssignmentExpression());var _=c?AST.YieldGeneratorExpression:AST.YieldExpression;return this.finishNode(new _({expression:d}),a)}},{key:"parseConditionalExpression",value:function(){var a=this.startNode(),c=this.parseBinaryExpression();if(this.firstExprError)return c;if(this.eat(_tokenizer.TokenType.CONDITIONAL)){this.isBindingElement=this.isAssignmentTarget=!1;var d=this.allowIn;this.allowIn=!0;var _=this.isolateCoverGrammar(this.parseAssignmentExpression);this.allowIn=d,this.expect(_tokenizer.TokenType.COLON);var b=this.isolateCoverGrammar(this.parseAssignmentExpression);return this.finishNode(new AST.ConditionalExpression({test:c,consequent:_,alternate:b}),a)}return c}},{key:"isBinaryOperator",value:function(a){switch(a){case _tokenizer.TokenType.OR:case _tokenizer.TokenType.AND:case _tokenizer.TokenType.BIT_OR:case _tokenizer.TokenType.BIT_XOR:case _tokenizer.TokenType.BIT_AND:case _tokenizer.TokenType.EQ:case _tokenizer.TokenType.NE:case _tokenizer.TokenType.EQ_STRICT:case _tokenizer.TokenType.NE_STRICT:case _tokenizer.TokenType.LT:case _tokenizer.TokenType.GT:case _tokenizer.TokenType.LTE:case _tokenizer.TokenType.GTE:case _tokenizer.TokenType.INSTANCEOF:case _tokenizer.TokenType.SHL:case _tokenizer.TokenType.SHR:case _tokenizer.TokenType.SHR_UNSIGNED:case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.MUL:case _tokenizer.TokenType.DIV:case _tokenizer.TokenType.MOD:return!0;case _tokenizer.TokenType.IN:return this.allowIn;default:return!1}}},{key:"parseBinaryExpression",value:function(){var a=this,c=this.startNode(),d=this.parseExponentiationExpression();if(this.firstExprError)return d;var _=this.lookahead.type;if(!this.isBinaryOperator(_))return d;this.isBindingElement=this.isAssignmentTarget=!1,this.lex();var b=[];b.push({startState:c,left:d,operator:_,precedence:BinaryPrecedence$1[_.name]}),c=this.startNode();var k=this.isolateCoverGrammar(this.parseExponentiationExpression);for(_=this.lookahead.type;this.isBinaryOperator(_);){for(var $=BinaryPrecedence$1[_.name];b.length&&$<=b[b.length-1].precedence;){var j=b[b.length-1],_e=j.operator;d=j.left,b.pop(),c=j.startState,k=this.finishNode(new AST.BinaryExpression({left:d,operator:_e.name,right:k}),c)}this.lex(),b.push({startState:c,left:k,operator:_,precedence:$}),c=this.startNode(),k=this.isolateCoverGrammar(this.parseExponentiationExpression),_=this.lookahead.type}return b.reduceRight(function(et,tt){return a.finishNode(new AST.BinaryExpression({left:tt.left,operator:tt.operator.name,right:et}),tt.startState)},k)}},{key:"parseExponentiationExpression",value:function(){var a=this.startNode(),c=this.lookahead.type===_tokenizer.TokenType.LPAREN,d=this.parseUnaryExpression();if(this.lookahead.type!==_tokenizer.TokenType.EXP)return d;if(d.type==="UnaryExpression"&&!c)throw this.createError(_errors$1.ErrorMessages.INVALID_EXPONENTIATION_LHS);this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;var _=this.isolateCoverGrammar(this.parseExponentiationExpression);return this.finishNode(new AST.BinaryExpression({left:d,operator:"**",right:_}),a)}},{key:"parseUnaryExpression",value:function(){if(this.lookahead.type.klass!==_tokenizer.TokenClass.Punctuator&&this.lookahead.type.klass!==_tokenizer.TokenClass.Keyword)return this.parseUpdateExpression();var a=this.startNode();if(this.allowAwaitExpression&&this.eat(_tokenizer.TokenType.AWAIT)){this.isBindingElement=this.isAssignmentTarget=!1;var c=this.isolateCoverGrammar(this.parseUnaryExpression);return this.finishNode(new AST.AwaitExpression({expression:c}),a)}var d=this.lookahead;if(!isPrefixOperator(d))return this.parseUpdateExpression();this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;var _=void 0;if(isUpdateOperator(d)){var b=this.getLocation(),k=this.isolateCoverGrammar(this.parseUnaryExpression);if(!isValidSimpleAssignmentTarget(k))throw this.createErrorWithLocation(b,_errors$1.ErrorMessages.INVALID_UPDATE_OPERAND);k=this.transformDestructuring(k),_=new AST.UpdateExpression({isPrefix:!0,operator:d.value,operand:k})}else{var $=this.isolateCoverGrammar(this.parseUnaryExpression);_=new AST.UnaryExpression({operator:d.value,operand:$})}return this.finishNode(_,a)}},{key:"parseUpdateExpression",value:function(){var a=this.getLocation(),c=this.startNode(),d=this.parseLeftHandSideExpression({allowCall:!0});if(this.firstExprError||this.hasLineTerminatorBeforeNext)return d;var _=this.lookahead;if(!isUpdateOperator(_))return d;if(this.lex(),this.isBindingElement=this.isAssignmentTarget=!1,!isValidSimpleAssignmentTarget(d))throw this.createErrorWithLocation(a,_errors$1.ErrorMessages.INVALID_UPDATE_OPERAND);return d=this.transformDestructuring(d),this.finishNode(new AST.UpdateExpression({isPrefix:!1,operator:_.value,operand:d}),c)}},{key:"parseLeftHandSideExpression",value:function(a){var c=this,d=a.allowCall,_=this.startNode(),b=this.allowIn;this.allowIn=!0;var k=void 0,$=this.lookahead;if(this.eat(_tokenizer.TokenType.SUPER))if(this.isBindingElement=!1,this.isAssignmentTarget=!1,k=this.finishNode(new AST.Super,_),this.match(_tokenizer.TokenType.LPAREN))if(d)k=this.finishNode(new AST.CallExpression({callee:k,arguments:this.parseArgumentList().args}),_);else throw this.createUnexpected($);else if(this.match(_tokenizer.TokenType.LBRACK))k=this.finishNode(new AST.ComputedMemberExpression({object:k,expression:this.parseComputedMember()}),_),this.isAssignmentTarget=!0;else if(this.match(_tokenizer.TokenType.PERIOD))k=this.finishNode(new AST.StaticMemberExpression({object:k,property:this.parseStaticMember()}),_),this.isAssignmentTarget=!0;else throw this.createUnexpected($);else if(this.match(_tokenizer.TokenType.NEW))this.isBindingElement=this.isAssignmentTarget=!1,k=this.parseNewExpression();else if(this.match(_tokenizer.TokenType.ASYNC)){if(k=this.parsePrimaryExpression(),k.type==="IdentifierExpression"&&d&&!this.hasLineTerminatorBeforeNext){if(this.matchIdentifier()){var j=this.startNode(),_e=this.allowAwaitExpression;this.allowAwaitExpression=!0;var et=this.parseBindingIdentifier();return this.allowAwaitExpression=_e,this.ensureArrow(),this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:[et],rest:null,isAsync:!0},j)}if(this.match(_tokenizer.TokenType.LPAREN)){var tt=this.startNode(),nt=this.firstAwaitLocation;this.firstAwaitLocation=null;var it=this.parseArgumentList(),rt=it.args,st=it.locationFollowingFirstSpread;if(this.isBindingElement&&!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.ARROW)){if(st!==null)throw this.createErrorWithLocation(st,_errors$1.ErrorMessages.UNEXPECTED_TOKEN(","));if(this.firstAwaitLocation!==null)throw this.createErrorWithLocation(this.firstAwaitLocation,_errors$1.ErrorMessages.NO_AWAIT_IN_ASYNC_PARAMS);var at=null;if(rt.length>0&&rt[rt.length-1].type==="SpreadElement"){if(at=this.targetToBinding(this.transformDestructuringWithDefault(rt[rt.length-1].expression)),at.init!=null)throw this.createError(_errors$1.ErrorMessages.UNEXPECTED_REST_PARAMETERS_INITIALIZATION);rt=rt.slice(0,-1)}var ot=rt.map(function(ht){return c.targetToBinding(c.transformDestructuringWithDefault(ht))});return this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:ot,rest:at,isAsync:!0},tt)}this.firstAwaitLocation=nt||this.firstAwaitLocation,this.isBindingElement=this.isAssignmentTarget=!1,k=this.finishNode(new AST.CallExpression({callee:k,arguments:rt}),_)}}}else if(k=this.parsePrimaryExpression(),this.firstExprError)return k;for(;;)if(d&&this.match(_tokenizer.TokenType.LPAREN))this.isBindingElement=this.isAssignmentTarget=!1,k=this.finishNode(new AST.CallExpression({callee:k,arguments:this.parseArgumentList().args}),_);else if(this.match(_tokenizer.TokenType.LBRACK))this.isBindingElement=!1,this.isAssignmentTarget=!0,k=this.finishNode(new AST.ComputedMemberExpression({object:k,expression:this.parseComputedMember()}),_);else if(this.match(_tokenizer.TokenType.PERIOD))this.isBindingElement=!1,this.isAssignmentTarget=!0,k=this.finishNode(new AST.StaticMemberExpression({object:k,property:this.parseStaticMember()}),_);else if(this.match(_tokenizer.TokenType.TEMPLATE))this.isBindingElement=this.isAssignmentTarget=!1,k=this.finishNode(new AST.TemplateExpression({tag:k,elements:this.parseTemplateElements()}),_);else break;return this.allowIn=b,k}},{key:"parseTemplateElements",value:function(){var a=this.startNode(),c=this.lookahead;if(c.tail)return this.lex(),[this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-1)}),a)];for(var d=[this.finishNode(new AST.TemplateElement({rawValue:this.lex().slice.text.slice(1,-2)}),a)];;){if(d.push(this.parseExpression()),!this.match(_tokenizer.TokenType.RBRACE))throw this.createILLEGAL();if(this.index=this.startIndex,this.line=this.startLine,this.lineStart=this.startLineStart,this.lookahead=this.scanTemplateElement(),a=this.startNode(),c=this.lex(),c.tail)return d.push(this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-1)}),a)),d;d.push(this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-2)}),a))}}},{key:"parseStaticMember",value:function(){if(this.lex(),this.lookahead.type.klass.isIdentifierName)return this.lex().value;throw this.createUnexpected(this.lookahead)}},{key:"parseComputedMember",value:function(){this.lex();var a=this.parseExpression();return this.expect(_tokenizer.TokenType.RBRACK),a}},{key:"parseNewExpression",value:function(){var a=this,c=this.startNode();if(this.lex(),this.eat(_tokenizer.TokenType.PERIOD))return this.expectContextualKeyword("target"),this.finishNode(new AST.NewTargetExpression,c);var d=this.isolateCoverGrammar(function(){return a.parseLeftHandSideExpression({allowCall:!1})});return this.finishNode(new AST.NewExpression({callee:d,arguments:this.match(_tokenizer.TokenType.LPAREN)?this.parseArgumentList().args:[]}),c)}},{key:"parseRegexFlags",value:function(a){for(var c=!1,d=!1,_=!1,b=!1,k=!1,$=!1,j=0;j1?e-1:0),a=1;a1&&c.slice(1).forEach(function(d){a.addError(s(d))})}),this}},{key:"enforceConflictingLexicallyDeclaredNames",value:function(s,a){var c=this;return this.lexicallyDeclaredNames.forEachEntry(function(d,_){s.has(_)&&d.forEach(function(b){c.addError(a(b))})}),this}},{key:"observeFunctionDeclaration",value:function(){return this.observeVarBoundary(),addEach(this.functionDeclarationNames,this.boundNames),this.boundNames=new _multimap2.default,this}},{key:"functionDeclarationNamesAreLexical",value:function(){return addEach(this.lexicallyDeclaredNames,this.functionDeclarationNames),this.functionDeclarationNames=new _multimap2.default,this}},{key:"observeVarDeclaration",value:function(){return addEach(this.varDeclaredNames,this.boundNames),this.boundNames=new _multimap2.default,this}},{key:"recordForOfVars",value:function(){var s=this;return this.varDeclaredNames.forEach(function(a){s.forOfVarDeclaredNames.push(a)}),this}},{key:"observeVarBoundary",value:function(){return this.lexicallyDeclaredNames=new _multimap2.default,this.functionDeclarationNames=new _multimap2.default,this.varDeclaredNames=new _multimap2.default,this.forOfVarDeclaredNames=[],this}},{key:"exportName",value:function(s,a){return this.exportedNames.set(s,a),this}},{key:"exportDeclaredNames",value:function(){return addEach(this.exportedNames,this.lexicallyDeclaredNames,this.varDeclaredNames),addEach(this.exportedBindings,this.lexicallyDeclaredNames,this.varDeclaredNames),this}},{key:"exportBinding",value:function(s,a){return this.exportedBindings.set(s,a),this}},{key:"clearExportedBindings",value:function(){return this.exportedBindings=new _multimap2.default,this}},{key:"observeYieldExpression",value:function(s){return this.yieldExpressions.push(s),this}},{key:"clearYieldExpressions",value:function(){return this.yieldExpressions=[],this}},{key:"observeAwaitExpression",value:function(s){return this.awaitExpressions.push(s),this}},{key:"clearAwaitExpressions",value:function(){return this.awaitExpressions=[],this}},{key:"addError",value:function(s){return this.errors.push(s),this}},{key:"addStrictError",value:function(s){return this.strictErrors.push(s),this}},{key:"enforceStrictErrors",value:function(){return[].push.apply(this.errors,this.strictErrors),this.strictErrors=[],this}},{key:"concat",value:function(s){return this===identity?s:s===identity?this:([].push.apply(this.errors,s.errors),[].push.apply(this.strictErrors,s.strictErrors),[].push.apply(this.usedLabelNames,s.usedLabelNames),[].push.apply(this.freeBreakStatements,s.freeBreakStatements),[].push.apply(this.freeContinueStatements,s.freeContinueStatements),[].push.apply(this.freeLabeledBreakStatements,s.freeLabeledBreakStatements),[].push.apply(this.freeLabeledContinueStatements,s.freeLabeledContinueStatements),[].push.apply(this.newTargetExpressions,s.newTargetExpressions),addEach(this.boundNames,s.boundNames),addEach(this.lexicallyDeclaredNames,s.lexicallyDeclaredNames),addEach(this.functionDeclarationNames,s.functionDeclarationNames),addEach(this.varDeclaredNames,s.varDeclaredNames),[].push.apply(this.forOfVarDeclaredNames,s.forOfVarDeclaredNames),addEach(this.exportedNames,s.exportedNames),addEach(this.exportedBindings,s.exportedBindings),[].push.apply(this.superCallExpressions,s.superCallExpressions),[].push.apply(this.superCallExpressionsInConstructorMethod,s.superCallExpressionsInConstructorMethod),[].push.apply(this.superPropertyExpressions,s.superPropertyExpressions),[].push.apply(this.yieldExpressions,s.yieldExpressions),[].push.apply(this.awaitExpressions,s.awaitExpressions),this)}}],[{key:"empty",value:function(){return identity}}]),o}();identity=new EarlyErrorState;Object.getOwnPropertyNames(EarlyErrorState.prototype).forEach(function(o){o!=="constructor"&&Object.defineProperty(identity,o,{value:function(){return EarlyErrorState.prototype[o].apply(new EarlyErrorState,arguments)},enumerable:!1,writable:!0,configurable:!0})});earlyErrorState.EarlyError=function(o){_inherits$4(e,o);function e(s,a){_classCallCheck$7(this,e);var c=_possibleConstructorReturn$4(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,a));return c.node=s,c.message=a,c}return e}(Error);Object.defineProperty(earlyErrors,"__esModule",{value:!0});earlyErrors.EarlyErrorChecker=void 0;var _createClass$5=function(){function o(e,s){for(var a=0;a1&&s.slice(1).forEach(function(a){e=e.addError(new _earlyErrorState.EarlyError(a,"Duplicate constructor method in class"))}),e}var SUPERCALL_ERROR=function o(e){return new _earlyErrorState.EarlyError(e,_errors.ErrorMessages.ILLEGAL_SUPER_CALL)},SUPERPROPERTY_ERROR=function o(e){return new _earlyErrorState.EarlyError(e,"Member access on super must be in a method")},DUPLICATE_BINDING=function o(e){return new _earlyErrorState.EarlyError(e,"Duplicate binding "+JSON.stringify(e.name))},FREE_CONTINUE=function o(e){return new _earlyErrorState.EarlyError(e,"Continue statement must be nested within an iteration statement")},UNBOUND_CONTINUE=function o(e){return new _earlyErrorState.EarlyError(e,"Continue statement must be nested within an iteration statement with label "+JSON.stringify(e.label))},FREE_BREAK=function o(e){return new _earlyErrorState.EarlyError(e,"Break statement must be nested within an iteration statement or a switch statement")},UNBOUND_BREAK=function o(e){return new _earlyErrorState.EarlyError(e,"Break statement must be nested within a statement with label "+JSON.stringify(e.label))};earlyErrors.EarlyErrorChecker=function(o){_inherits$3(e,o);function e(){return _classCallCheck$6(this,e),_possibleConstructorReturn$3(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,_earlyErrorState.EarlyErrorState))}return _createClass$5(e,[{key:"reduceAssignmentExpression",value:function(){return _get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceAssignmentExpression",this).apply(this,arguments).clearBoundNames()}},{key:"reduceAssignmentTargetIdentifier",value:function(a){var c=this.identity;return(a.name==="eval"||a.name==="arguments"||(0,_utils.isStrictModeReservedWord)(a.name))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"The identifier "+JSON.stringify(a.name)+" must not be in binding position in strict mode"))),c}},{key:"reduceArrowExpression",value:function(a,c){var d=c.params,_=c.body,b=a.params.rest==null&&a.params.items.every(function($){return $.type==="BindingIdentifier"});d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),a.body.type==="FunctionBody"&&(_=_.enforceConflictingLexicallyDeclaredNames(d.lexicallyDeclaredNames,DUPLICATE_BINDING),isStrictFunctionBody(a.body)&&(d=d.enforceStrictErrors(),_=_.enforceStrictErrors())),d.yieldExpressions.forEach(function($){d=d.addError(new _earlyErrorState.EarlyError($,"Arrow parameters must not contain yield expressions"))}),d.awaitExpressions.forEach(function($){d=d.addError(new _earlyErrorState.EarlyError($,"Arrow parameters must not contain await expressions"))});var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceArrowExpression",this).call(this,a,{params:d,body:_});return!b&&a.body.type==="FunctionBody"&&isStrictFunctionBody(a.body)&&(k=k.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),k=k.clearYieldExpressions(),k=k.clearAwaitExpressions(),k=k.observeVarBoundary(),k}},{key:"reduceAwaitExpression",value:function(a,c){var d=c.expression;return d.observeAwaitExpression(a)}},{key:"reduceBindingIdentifier",value:function(a){var c=this.identity;return(a.name==="eval"||a.name==="arguments"||(0,_utils.isStrictModeReservedWord)(a.name))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"The identifier "+JSON.stringify(a.name)+" must not be in binding position in strict mode"))),c=c.bindName(a.name,a),c}},{key:"reduceBlock",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceBlock",this).apply(this,arguments);return a=a.functionDeclarationNamesAreLexical(),a=a.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),a=a.enforceConflictingLexicallyDeclaredNames(a.varDeclaredNames,DUPLICATE_BINDING),a=a.observeLexicalBoundary(),a}},{key:"reduceBreakStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceBreakStatement",this).apply(this,arguments);return c=a.label==null?c.addFreeBreakStatement(a):c.addFreeLabeledBreakStatement(a),c}},{key:"reduceCallExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCallExpression",this).apply(this,arguments);return a.callee.type==="Super"&&(c=c.observeSuperCallExpression(a)),c}},{key:"reduceCatchClause",value:function(a,c){var d=c.binding,_=c.body;d=d.observeLexicalDeclaration(),d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(_.previousLexicallyDeclaredNames,DUPLICATE_BINDING),d.lexicallyDeclaredNames.forEachEntry(function(k,$){_.varDeclaredNames.has($)&&_.varDeclaredNames.get($).forEach(function(j){_.forOfVarDeclaredNames.indexOf(j)>=0&&(d=d.addError(DUPLICATE_BINDING(j)))})});var b=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCatchClause",this).call(this,a,{binding:d,body:_});return b=b.observeLexicalBoundary(),b}},{key:"reduceClassDeclaration",value:function(a,c){var d=c.name,_=c.super,b=c.elements,k=d.enforceStrictErrors(),$=this.append.apply(this,_toConsumableArray$3(b));return $=$.enforceStrictErrors(),a.super!=null&&(_=_.enforceStrictErrors(),k=this.append(k,_),$=$.clearSuperCallExpressionsInConstructorMethod()),k=this.append(k,$),k=enforceDuplicateConstructorMethods(a,k),k=k.observeLexicalDeclaration(),k}},{key:"reduceClassElement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceClassElement",this).apply(this,arguments);return!a.isStatic&&isSpecialMethod(a.method)&&(c=c.addError(new _earlyErrorState.EarlyError(a,_errors.ErrorMessages.ILLEGAL_CONSTRUCTORS))),a.isStatic&&a.method.name.type==="StaticPropertyName"&&a.method.name.value==="prototype"&&(c=c.addError(new _earlyErrorState.EarlyError(a,'Static class methods cannot be named "prototype"'))),c}},{key:"reduceClassExpression",value:function(a,c){var d=c.name,_=c.super,b=c.elements,k=a.name==null?this.identity:d.enforceStrictErrors(),$=this.append.apply(this,_toConsumableArray$3(b));return $=$.enforceStrictErrors(),a.super!=null&&(_=_.enforceStrictErrors(),k=this.append(k,_),$=$.clearSuperCallExpressionsInConstructorMethod()),k=this.append(k,$),k=enforceDuplicateConstructorMethods(a,k),k=k.clearBoundNames(),k}},{key:"reduceCompoundAssignmentExpression",value:function(){return _get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCompoundAssignmentExpression",this).apply(this,arguments).clearBoundNames()}},{key:"reduceComputedMemberExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceComputedMemberExpression",this).apply(this,arguments);return a.object.type==="Super"&&(c=c.observeSuperPropertyExpression(a)),c}},{key:"reduceContinueStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceContinueStatement",this).apply(this,arguments);return c=a.label==null?c.addFreeContinueStatement(a):c.addFreeLabeledContinueStatement(a),c}},{key:"reduceDoWhileStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceDoWhileStatement",this).apply(this,arguments);return isLabelledFunction(a.body)&&(c=c.addError(new _earlyErrorState.EarlyError(a.body,"The body of a do-while statement must not be a labeled function declaration"))),c=c.clearFreeContinueStatements(),c=c.clearFreeBreakStatements(),c}},{key:"reduceExport",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExport",this).apply(this,arguments);return a=a.functionDeclarationNamesAreLexical(),a=a.exportDeclaredNames(),a}},{key:"reduceExportFrom",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportFrom",this).apply(this,arguments);return a=a.clearExportedBindings(),a}},{key:"reduceExportFromSpecifier",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportFromSpecifier",this).apply(this,arguments);return c=c.exportName(a.exportedName||a.name,a),c=c.exportBinding(a.name,a),c}},{key:"reduceExportLocalSpecifier",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportLocalSpecifier",this).apply(this,arguments);return c=c.exportName(a.exportedName||a.name.name,a),c=c.exportBinding(a.name.name,a),c}},{key:"reduceExportDefault",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportDefault",this).apply(this,arguments);return c=c.functionDeclarationNamesAreLexical(),c=c.exportName("default",a),c}},{key:"reduceFormalParameters",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFormalParameters",this).apply(this,arguments);return a=a.observeLexicalDeclaration(),a}},{key:"reduceForStatement",value:function(a,c){var d=c.init,_=c.test,b=c.update,k=c.body;d!=null&&(d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(k.varDeclaredNames,DUPLICATE_BINDING));var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForStatement",this).call(this,a,{init:d,test:_,update:b,body:k});return a.init!=null&&a.init.type==="VariableDeclaration"&&a.init.kind==="const"&&a.init.declarators.forEach(function(j){j.init==null&&($=$.addError(new _earlyErrorState.EarlyError(j,"Constant lexical declarations must have an initialiser")))}),isLabelledFunction(a.body)&&($=$.addError(new _earlyErrorState.EarlyError(a.body,"The body of a for statement must not be a labeled function declaration"))),$=$.clearFreeContinueStatements(),$=$.clearFreeBreakStatements(),$=$.observeLexicalBoundary(),$}},{key:"reduceForInStatement",value:function(a,c){var d=c.left,_=c.right,b=c.body;d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING);var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForInStatement",this).call(this,a,{left:d,right:_,body:b});return isLabelledFunction(a.body)&&(k=k.addError(new _earlyErrorState.EarlyError(a.body,"The body of a for-in statement must not be a labeled function declaration"))),k=k.clearFreeContinueStatements(),k=k.clearFreeBreakStatements(),k=k.observeLexicalBoundary(),k}},{key:"reduceForOfStatement",value:function(a,c){var d=c.left,_=c.right,b=c.body;d=d.recordForOfVars(),d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING);var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForOfStatement",this).call(this,a,{left:d,right:_,body:b});return isLabelledFunction(a.body)&&(k=k.addError(new _earlyErrorState.EarlyError(a.body,"The body of a for-of statement must not be a labeled function declaration"))),k=k.clearFreeContinueStatements(),k=k.clearFreeBreakStatements(),k=k.observeLexicalBoundary(),k}},{key:"reduceForAwaitStatement",value:function(a,c){var d=c.left,_=c.right,b=c.body;d=d.recordForOfVars(),d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING);var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForOfStatement",this).call(this,a,{left:d,right:_,body:b});return isLabelledFunction(a.body)&&(k=k.addError(new _earlyErrorState.EarlyError(a.body,"The body of a for-await statement must not be a labeled function declaration"))),k=k.clearFreeContinueStatements(),k=k.clearFreeBreakStatements(),k=k.observeLexicalBoundary(),k}},{key:"reduceFunctionBody",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionBody",this).apply(this,arguments);return c=c.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),c=c.enforceConflictingLexicallyDeclaredNames(c.varDeclaredNames,DUPLICATE_BINDING),c=c.enforceFreeContinueStatementErrors(FREE_CONTINUE),c=c.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),c=c.enforceFreeBreakStatementErrors(FREE_BREAK),c=c.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),c=c.clearUsedLabelNames(),c=c.clearYieldExpressions(),c=c.clearAwaitExpressions(),isStrictFunctionBody(a)&&(c=c.enforceStrictErrors()),c}},{key:"reduceFunctionDeclaration",value:function(a,c){var d=c.name,_=c.params,b=c.body,k=a.params.rest==null&&a.params.items.every(function(_e){return _e.type==="BindingIdentifier"}),$=!k||a.isGenerator?"addError":"addStrictError";_.lexicallyDeclaredNames.forEachEntry(function(_e){_e.length>1&&_e.slice(1).forEach(function(et){_=_[$](DUPLICATE_BINDING(et))})}),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),b=b.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),a.isGenerator&&_.yieldExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Generator parameters must not contain yield expressions"))}),a.isAsync&&_.awaitExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Async function parameters must not contain await expressions"))}),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var j=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionDeclaration",this).call(this,a,{name:d,params:_,body:b});return!k&&isStrictFunctionBody(a.body)&&(j=j.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),j=j.clearYieldExpressions(),j=j.clearAwaitExpressions(),j=j.observeFunctionDeclaration(),j}},{key:"reduceFunctionExpression",value:function(a,c){var d=c.name,_=c.params,b=c.body,k=a.params.rest==null&&a.params.items.every(function(_e){return _e.type==="BindingIdentifier"}),$=!k||a.isGenerator?"addError":"addStrictError";_.lexicallyDeclaredNames.forEachEntry(function(_e,et){_e.length>1&&_e.slice(1).forEach(function(tt){_=_[$](new _earlyErrorState.EarlyError(tt,"Duplicate binding "+JSON.stringify(et)))})}),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),b=b.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),a.isGenerator&&_.yieldExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Generator parameters must not contain yield expressions"))}),a.isAsync&&_.awaitExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Async function parameters must not contain await expressions"))}),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var j=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionExpression",this).call(this,a,{name:d,params:_,body:b});return!k&&isStrictFunctionBody(a.body)&&(j=j.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),j=j.clearBoundNames(),j=j.clearYieldExpressions(),j=j.clearAwaitExpressions(),j=j.observeVarBoundary(),j}},{key:"reduceGetter",value:function(a,c){var d=c.name,_=c.body;_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.clearSuperPropertyExpressions(),_=_.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(_=_.enforceStrictErrors());var b=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceGetter",this).call(this,a,{name:d,body:_});return b=b.observeVarBoundary(),b}},{key:"reduceIdentifierExpression",value:function(a){var c=this.identity;return(0,_utils.isStrictModeReservedWord)(a.name)&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"The identifier "+JSON.stringify(a.name)+" must not be in expression position in strict mode"))),c}},{key:"reduceIfStatement",value:function(a,c){var d=c.test,_=c.consequent,b=c.alternate;return isLabelledFunction(a.consequent)&&(_=_.addError(new _earlyErrorState.EarlyError(a.consequent,"The consequent of an if statement must not be a labeled function declaration"))),a.alternate!=null&&isLabelledFunction(a.alternate)&&(b=b.addError(new _earlyErrorState.EarlyError(a.alternate,"The alternate of an if statement must not be a labeled function declaration"))),a.consequent.type==="FunctionDeclaration"&&(_=_.addStrictError(new _earlyErrorState.EarlyError(a.consequent,"FunctionDeclarations in IfStatements are disallowed in strict mode")),_=_.observeLexicalBoundary()),a.alternate!=null&&a.alternate.type==="FunctionDeclaration"&&(b=b.addStrictError(new _earlyErrorState.EarlyError(a.alternate,"FunctionDeclarations in IfStatements are disallowed in strict mode")),b=b.observeLexicalBoundary()),_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceIfStatement",this).call(this,a,{test:d,consequent:_,alternate:b})}},{key:"reduceImport",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceImport",this).apply(this,arguments);return a=a.observeLexicalDeclaration(),a}},{key:"reduceImportNamespace",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceImportNamespace",this).apply(this,arguments);return a=a.observeLexicalDeclaration(),a}},{key:"reduceLabeledStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceLabeledStatement",this).apply(this,arguments);return(a.label==="yield"||(0,_utils.isStrictModeReservedWord)(a.label))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"The identifier "+JSON.stringify(a.label)+" must not be in label position in strict mode"))),c.usedLabelNames.indexOf(a.label)>=0&&(c=c.addError(new _earlyErrorState.EarlyError(a,"Label "+JSON.stringify(a.label)+" has already been declared"))),a.body.type==="FunctionDeclaration"&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"Labeled FunctionDeclarations are disallowed in strict mode"))),c=isIterationStatement(a.body)?c.observeIterationLabel(a.label):c.observeNonIterationLabel(a.label),c}},{key:"reduceLiteralRegExpExpression",value:function(){var a=this.identity;return a}},{key:"reduceMethod",value:function(a,c){var d=c.name,_=c.params,b=c.body,k=a.params.rest==null&&a.params.items.every(function(j){return j.type==="BindingIdentifier"});_=_.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),a.name.type==="StaticPropertyName"&&a.name.value==="constructor"?(b=b.observeConstructorMethod(),_=_.observeConstructorMethod()):(b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR)),a.isGenerator&&_.yieldExpressions.forEach(function(j){_=_.addError(new _earlyErrorState.EarlyError(j,"Generator parameters must not contain yield expressions"))}),a.isAsync&&_.awaitExpressions.forEach(function(j){_=_.addError(new _earlyErrorState.EarlyError(j,"Async function parameters must not contain await expressions"))}),b=b.clearSuperPropertyExpressions(),_=_.clearSuperPropertyExpressions(),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceMethod",this).call(this,a,{name:d,params:_,body:b});return!k&&isStrictFunctionBody(a.body)&&($=$.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),$=$.clearYieldExpressions(),$=$.clearAwaitExpressions(),$=$.observeVarBoundary(),$}},{key:"reduceModule",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceModule",this).apply(this,arguments);return a=a.functionDeclarationNamesAreLexical(),a=a.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),a=a.enforceConflictingLexicallyDeclaredNames(a.varDeclaredNames,DUPLICATE_BINDING),a.exportedNames.forEachEntry(function(c,d){c.length>1&&c.slice(1).forEach(function(_){a=a.addError(new _earlyErrorState.EarlyError(_,"Duplicate export "+JSON.stringify(d)))})}),a.exportedBindings.forEachEntry(function(c,d){!a.lexicallyDeclaredNames.has(d)&&!a.varDeclaredNames.has(d)&&c.forEach(function(_){a=a.addError(new _earlyErrorState.EarlyError(_,"Exported binding "+JSON.stringify(d)+" is not declared"))})}),a.newTargetExpressions.forEach(function(c){a=a.addError(new _earlyErrorState.EarlyError(c,"new.target must be within function (but not arrow expression) code"))}),a=a.enforceFreeContinueStatementErrors(FREE_CONTINUE),a=a.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),a=a.enforceFreeBreakStatementErrors(FREE_BREAK),a=a.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),a=a.enforceSuperCallExpressions(SUPERCALL_ERROR),a=a.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),a=a.enforceStrictErrors(),a}},{key:"reduceNewTargetExpression",value:function(a){return this.identity.observeNewTargetExpression(a)}},{key:"reduceObjectExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceObjectExpression",this).apply(this,arguments);c=c.enforceSuperCallExpressionsInConstructorMethod(SUPERCALL_ERROR);var d=a.properties.filter(function(_){return _.type==="DataProperty"&&_.name.type==="StaticPropertyName"&&_.name.value==="__proto__"});return d.slice(1).forEach(function(_){c=c.addError(new _earlyErrorState.EarlyError(_,"Duplicate __proto__ property in object literal not allowed"))}),c}},{key:"reduceUpdateExpression",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceUpdateExpression",this).apply(this,arguments);return a=a.clearBoundNames(),a}},{key:"reduceUnaryExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceUnaryExpression",this).apply(this,arguments);return a.operator==="delete"&&a.operand.type==="IdentifierExpression"&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"Identifier expressions must not be deleted in strict mode"))),c}},{key:"reduceScript",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceScript",this).apply(this,arguments);return c=c.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),c=c.enforceConflictingLexicallyDeclaredNames(c.varDeclaredNames,DUPLICATE_BINDING),c.newTargetExpressions.forEach(function(d){c=c.addError(new _earlyErrorState.EarlyError(d,"new.target must be within function (but not arrow expression) code"))}),c=c.enforceFreeContinueStatementErrors(FREE_CONTINUE),c=c.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),c=c.enforceFreeBreakStatementErrors(FREE_BREAK),c=c.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),c=c.enforceSuperCallExpressions(SUPERCALL_ERROR),c=c.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),isStrictFunctionBody(a)&&(c=c.enforceStrictErrors()),c}},{key:"reduceSetter",value:function(a,c){var d=c.name,_=c.param,b=c.body,k=a.param.type==="BindingIdentifier";_=_.observeLexicalDeclaration(),_=_.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.clearSuperPropertyExpressions(),b=b.clearSuperPropertyExpressions(),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceSetter",this).call(this,a,{name:d,param:_,body:b});return!k&&isStrictFunctionBody(a.body)&&($=$.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),$=$.observeVarBoundary(),$}},{key:"reduceStaticMemberExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceStaticMemberExpression",this).apply(this,arguments);return a.object.type==="Super"&&(c=c.observeSuperPropertyExpression(a)),c}},{key:"reduceSwitchStatement",value:function(a,c){var d=c.discriminant,_=c.cases,b=this.append.apply(this,_toConsumableArray$3(_));b=b.functionDeclarationNamesAreLexical(),b=b.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),b=b.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING),b=b.observeLexicalBoundary();var k=this.append(d,b);return k=k.clearFreeBreakStatements(),k}},{key:"reduceSwitchStatementWithDefault",value:function(a,c){var d=c.discriminant,_=c.preDefaultCases,b=c.defaultCase,k=c.postDefaultCases,$=this.append.apply(this,[b].concat(_toConsumableArray$3(_),_toConsumableArray$3(k)));$=$.functionDeclarationNamesAreLexical(),$=$.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),$=$.enforceConflictingLexicallyDeclaredNames($.varDeclaredNames,DUPLICATE_BINDING),$=$.observeLexicalBoundary();var j=this.append(d,$);return j=j.clearFreeBreakStatements(),j}},{key:"reduceVariableDeclaration",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceVariableDeclaration",this).apply(this,arguments);switch(a.kind){case"const":case"let":{c=c.observeLexicalDeclaration(),c.lexicallyDeclaredNames.has("let")&&c.lexicallyDeclaredNames.get("let").forEach(function(d){c=c.addError(new _earlyErrorState.EarlyError(d,'Lexical declarations must not have a binding named "let"'))});break}case"var":c=c.observeVarDeclaration();break}return c}},{key:"reduceVariableDeclarationStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceVariableDeclarationStatement",this).apply(this,arguments);return a.declaration.kind==="const"&&a.declaration.declarators.forEach(function(d){d.init==null&&(c=c.addError(new _earlyErrorState.EarlyError(d,"Constant lexical declarations must have an initialiser")))}),c}},{key:"reduceWhileStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceWhileStatement",this).apply(this,arguments);return isLabelledFunction(a.body)&&(c=c.addError(new _earlyErrorState.EarlyError(a.body,"The body of a while statement must not be a labeled function declaration"))),c=c.clearFreeContinueStatements().clearFreeBreakStatements(),c}},{key:"reduceWithStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceWithStatement",this).apply(this,arguments);return isLabelledFunction(a.body)&&(c=c.addError(new _earlyErrorState.EarlyError(a.body,"The body of a with statement must not be a labeled function declaration"))),c=c.addStrictError(new _earlyErrorState.EarlyError(a,"Strict mode code must not include a with statement")),c}},{key:"reduceYieldExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceYieldExpression",this).apply(this,arguments);return c=c.observeYieldExpression(a),c}},{key:"reduceYieldGeneratorExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceYieldGeneratorExpression",this).apply(this,arguments);return c=c.observeYieldExpression(a),c}}],[{key:"check",value:function(a){return(0,_shiftReducer2.default)(new e,a).errors}}]),e}(_shiftReducer$1.MonoidalReducer);(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.TokenType=o.TokenClass=o.Tokenizer=o.ParserWithLocation=o.GenericParser=o.EarlyErrorChecker=o.parseScriptWithLocation=o.parseModuleWithLocation=o.parseScript=o.parseModule=void 0;var e=function(){function it(rt,st){for(var at=0;at1&&arguments[1]!==void 0?arguments[1]:{},ot=at.earlyErrors,ht=ot===void 0?!0:ot,ct=new c.GenericParser(st),ut=ct[it]();if(ht){var lt=d.EarlyErrorChecker.check(ut);if(lt.length>0)throw new a.JsError(0,1,0,lt[0].message)}return ut}}function tt(it){return function(st){var at=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ot=at.earlyErrors,ht=ot===void 0?!0:ot,ct=new _e(st),ut=ct[it]();if(ht){var lt=d.EarlyErrorChecker.check(ut);if(lt.length>0){var pt=lt[0],dt=pt.node,gt=pt.message,Et=ct.locations.get(dt).start,ft=Et.offset,yt=Et.line,mt=Et.column;throw new a.JsError(ft,yt,mt,gt)}}return{tree:ut,locations:ct.locations,comments:ct.comments}}}o.parseModule=et("parseModule");var nt=o.parseScript=et("parseScript");o.parseModuleWithLocation=tt("parseModule"),o.parseScriptWithLocation=tt("parseScript"),o.default=nt,o.EarlyErrorChecker=d.EarlyErrorChecker,o.GenericParser=c.GenericParser,o.ParserWithLocation=_e})(dist$7);var dist$2={};Object.defineProperty(dist$2,"__esModule",{value:!0});var _default=dist$2.default=function(){var o={},e={typeName:"Boolean"},s={typeName:"Number"},a={typeName:"String"};function c(dn){return{typeName:"Maybe",argument:dn}}function d(dn){return{typeName:"List",argument:dn}}function _(dn){return{typeName:"Const",argument:dn}}function b(){return{typeName:"Union",arguments:[].slice.call(arguments,0)}}var k={typeName:"Enum",values:["ArrayAssignmentTarget","ArrayBinding","ArrayExpression","ArrowExpression","AssignmentExpression","AssignmentTargetIdentifier","AssignmentTargetPropertyIdentifier","AssignmentTargetPropertyProperty","AssignmentTargetWithDefault","AwaitExpression","BinaryExpression","BindingIdentifier","BindingPropertyIdentifier","BindingPropertyProperty","BindingWithDefault","Block","BlockStatement","BreakStatement","CallExpression","CatchClause","ClassDeclaration","ClassElement","ClassExpression","CompoundAssignmentExpression","ComputedMemberAssignmentTarget","ComputedMemberExpression","ComputedPropertyName","ConditionalExpression","ContinueStatement","DataProperty","DebuggerStatement","Directive","DoWhileStatement","EmptyStatement","Export","ExportAllFrom","ExportDefault","ExportFrom","ExportFromSpecifier","ExportLocalSpecifier","ExportLocals","ExpressionStatement","ForAwaitStatement","ForInStatement","ForOfStatement","ForStatement","FormalParameters","FunctionBody","FunctionDeclaration","FunctionExpression","Getter","IdentifierExpression","IfStatement","Import","ImportNamespace","ImportSpecifier","LabeledStatement","LiteralBooleanExpression","LiteralInfinityExpression","LiteralNullExpression","LiteralNumericExpression","LiteralRegExpExpression","LiteralStringExpression","Method","Module","NewExpression","NewTargetExpression","ObjectAssignmentTarget","ObjectBinding","ObjectExpression","ReturnStatement","Script","Setter","ShorthandProperty","SpreadElement","SpreadProperty","StaticMemberAssignmentTarget","StaticMemberExpression","StaticPropertyName","Super","SwitchCase","SwitchDefault","SwitchStatement","SwitchStatementWithDefault","TemplateElement","TemplateExpression","ThisExpression","ThrowStatement","TryCatchStatement","TryFinallyStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarationStatement","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","YieldGeneratorExpression"]},$={typeName:"Enum",values:["==","!=","===","!==","<","<=",">",">=","in","instanceof","<<",">>",">>>","+","-","*","/","%","**",",","||","&&","|","^","&"]},j={typeName:"Enum",values:["+=","-=","*=","/=","%=","**=","<<=",">>=",">>>=","|=","^=","&="]},_e={typeName:"Enum",values:["+","-","!","~","typeof","void","delete"]},et={typeName:"Enum",values:["++","--"]},tt={typeName:"Enum",values:["var","let","const"]},nt=o.ArrayAssignmentTarget={},it=o.ArrayBinding={},rt=o.ArrayExpression={},st=o.ArrowExpression={},at=o.AssignmentExpression={},ot=o.AssignmentTargetIdentifier={},ht=o.AssignmentTargetPropertyIdentifier={},ct=o.AssignmentTargetPropertyProperty={},ut=o.AssignmentTargetWithDefault={},lt=o.AwaitExpression={},pt=o.BinaryExpression={},dt=o.BindingIdentifier={},gt=o.BindingPropertyIdentifier={},Et=o.BindingPropertyProperty={},ft=o.BindingWithDefault={},yt=o.Block={},mt=o.BlockStatement={},St=o.BreakStatement={},At=o.CallExpression={},Ot=o.CatchClause={},Ct=o.ClassDeclaration={},Dt=o.ClassElement={},Tt=o.ClassExpression={},vt=o.CompoundAssignmentExpression={},bt=o.ComputedMemberAssignmentTarget={},xt=o.ComputedMemberExpression={},Rt=o.ComputedPropertyName={},Mt=o.ConditionalExpression={},It=o.ContinueStatement={},Ft=o.DataProperty={},qt=o.DebuggerStatement={},jt=o.Directive={},Nt=o.DoWhileStatement={},Kt=o.EmptyStatement={},Jt=o.Export={},en=o.ExportAllFrom={},tn=o.ExportDefault={},kt=o.ExportFrom={},Bt=o.ExportFromSpecifier={},Qt=o.ExportLocalSpecifier={},Lt=o.ExportLocals={},$t=o.ExpressionStatement={},Wt=o.ForAwaitStatement={},Gt=o.ForInStatement={},zt=o.ForOfStatement={},nn=o.ForStatement={},Xt=o.FormalParameters={},Zt=o.FunctionBody={},sn=o.FunctionDeclaration={},fn=o.FunctionExpression={},An=o.Getter={},cn=o.IdentifierExpression={},vn=o.IfStatement={},_n=o.Import={},On=o.ImportNamespace={},mn=o.ImportSpecifier={},Cn=o.LabeledStatement={},Dn=o.LiteralBooleanExpression={},bn=o.LiteralInfinityExpression={},xn=o.LiteralNullExpression={},Tn=o.LiteralNumericExpression={},kn=o.LiteralRegExpExpression={},wn=o.LiteralStringExpression={},Fn=o.Method={},Nn=o.Module={},Pn=o.NewExpression={},Bn=o.NewTargetExpression={},Yt=o.ObjectAssignmentTarget={},Ut=o.ObjectBinding={},Rn=o.ObjectExpression={},In=o.ReturnStatement={},Mn=o.Script={},$n=o.Setter={},Ln=o.ShorthandProperty={},hn=o.SpreadElement={},Wn=o.SpreadProperty={},Qn=o.StaticMemberAssignmentTarget={},jn=o.StaticMemberExpression={},qn=o.StaticPropertyName={},an=o.Super={},pn=o.SwitchCase={},gn=o.SwitchDefault={},Vn=o.SwitchStatement={},Gn=o.SwitchStatementWithDefault={},yn=o.TemplateElement={},Un=o.TemplateExpression={},zn=o.ThisExpression={},Yn=o.ThrowStatement={},Hn=o.TryCatchStatement={},Xn=o.TryFinallyStatement={},Zn=o.UnaryExpression={},Kn=o.UpdateExpression={},rn=o.VariableDeclaration={},Jn=o.VariableDeclarationStatement={},En=o.VariableDeclarator={},er=o.WhileStatement={},tr=o.WithStatement={},nr=o.YieldExpression={},rr=o.YieldGeneratorExpression={},yr=b(xt,jn),sr=b(ht,ct);b(Ct,Tt);var ar=b(Jt,en,tn,kt,Lt),un=b(Rt,qn);b(sn,fn);var or=b(_n,On),Er=b(Nt,Wt,Gt,zt,nn,er),Ht=b(bt,Qn),ur=b(gt,Et),lr=b(An,Fn,$n),Sr=b(Nn,Mn),Ar=b(ot,dt,cn),vr=b(Ft,lr),Pt=b(rt,st,at,lt,pt,At,Tt,vt,Mt,fn,cn,Dn,bn,xn,Tn,kn,wn,yr,Pn,Bn,Rn,Un,zn,Zn,Kn,nr,rr),Vt=b(mt,St,Ct,It,qt,Kt,$t,sn,vn,Er,Cn,In,Vn,Gn,Yn,Hn,Xn,Jn,tr),cr=b(vr,Ln,Wn);return b(nt,it,sr,ut,ur,ft,yt,Ot,Dt,jt,ar,Bt,Qt,Pt,Xt,Zt,or,mn,Ht,Yt,Ut,cr,Sr,un,hn,Vt,an,pn,gn,yn,rn,En,Ar),nt.typeName="ArrayAssignmentTarget",nt.fields=[{name:"type",type:_(k),value:"ArrayAssignmentTarget"},{name:"elements",type:d(c(b(ut,b(b(nt,Yt),b(ot,Ht)))))},{name:"rest",type:c(b(b(nt,Yt),b(ot,Ht)))}],it.typeName="ArrayBinding",it.fields=[{name:"type",type:_(k),value:"ArrayBinding"},{name:"elements",type:d(c(b(ft,b(dt,b(it,Ut)))))},{name:"rest",type:c(b(dt,b(it,Ut)))}],rt.typeName="ArrayExpression",rt.fields=[{name:"type",type:_(k),value:"ArrayExpression"},{name:"elements",type:d(c(b(Pt,hn)))}],st.typeName="ArrowExpression",st.fields=[{name:"type",type:_(k),value:"ArrowExpression"},{name:"isAsync",type:e},{name:"params",type:Xt},{name:"body",type:b(Pt,Zt)}],at.typeName="AssignmentExpression",at.fields=[{name:"type",type:_(k),value:"AssignmentExpression"},{name:"binding",type:b(b(nt,Yt),b(ot,Ht))},{name:"expression",type:Pt}],ot.typeName="AssignmentTargetIdentifier",ot.fields=[{name:"type",type:_(k),value:"AssignmentTargetIdentifier"},{name:"name",type:a}],ht.typeName="AssignmentTargetPropertyIdentifier",ht.fields=[{name:"type",type:_(k),value:"AssignmentTargetPropertyIdentifier"},{name:"binding",type:ot},{name:"init",type:c(Pt)}],ct.typeName="AssignmentTargetPropertyProperty",ct.fields=[{name:"type",type:_(k),value:"AssignmentTargetPropertyProperty"},{name:"name",type:un},{name:"binding",type:b(ut,b(b(nt,Yt),b(ot,Ht)))}],ut.typeName="AssignmentTargetWithDefault",ut.fields=[{name:"type",type:_(k),value:"AssignmentTargetWithDefault"},{name:"binding",type:b(b(nt,Yt),b(ot,Ht))},{name:"init",type:Pt}],lt.typeName="AwaitExpression",lt.fields=[{name:"type",type:_(k),value:"AwaitExpression"},{name:"expression",type:Pt}],pt.typeName="BinaryExpression",pt.fields=[{name:"type",type:_(k),value:"BinaryExpression"},{name:"left",type:Pt},{name:"operator",type:$},{name:"right",type:Pt}],dt.typeName="BindingIdentifier",dt.fields=[{name:"type",type:_(k),value:"BindingIdentifier"},{name:"name",type:a}],gt.typeName="BindingPropertyIdentifier",gt.fields=[{name:"type",type:_(k),value:"BindingPropertyIdentifier"},{name:"binding",type:dt},{name:"init",type:c(Pt)}],Et.typeName="BindingPropertyProperty",Et.fields=[{name:"type",type:_(k),value:"BindingPropertyProperty"},{name:"name",type:un},{name:"binding",type:b(ft,b(dt,b(it,Ut)))}],ft.typeName="BindingWithDefault",ft.fields=[{name:"type",type:_(k),value:"BindingWithDefault"},{name:"binding",type:b(dt,b(it,Ut))},{name:"init",type:Pt}],yt.typeName="Block",yt.fields=[{name:"type",type:_(k),value:"Block"},{name:"statements",type:d(Vt)}],mt.typeName="BlockStatement",mt.fields=[{name:"type",type:_(k),value:"BlockStatement"},{name:"block",type:yt}],St.typeName="BreakStatement",St.fields=[{name:"type",type:_(k),value:"BreakStatement"},{name:"label",type:c(a)}],At.typeName="CallExpression",At.fields=[{name:"type",type:_(k),value:"CallExpression"},{name:"callee",type:b(Pt,an)},{name:"arguments",type:d(b(Pt,hn))}],Ot.typeName="CatchClause",Ot.fields=[{name:"type",type:_(k),value:"CatchClause"},{name:"binding",type:b(dt,b(it,Ut))},{name:"body",type:yt}],Ct.typeName="ClassDeclaration",Ct.fields=[{name:"type",type:_(k),value:"ClassDeclaration"},{name:"name",type:dt},{name:"super",type:c(Pt)},{name:"elements",type:d(Dt)}],Dt.typeName="ClassElement",Dt.fields=[{name:"type",type:_(k),value:"ClassElement"},{name:"isStatic",type:e},{name:"method",type:lr}],Tt.typeName="ClassExpression",Tt.fields=[{name:"type",type:_(k),value:"ClassExpression"},{name:"name",type:c(dt)},{name:"super",type:c(Pt)},{name:"elements",type:d(Dt)}],vt.typeName="CompoundAssignmentExpression",vt.fields=[{name:"type",type:_(k),value:"CompoundAssignmentExpression"},{name:"binding",type:b(ot,Ht)},{name:"operator",type:j},{name:"expression",type:Pt}],bt.typeName="ComputedMemberAssignmentTarget",bt.fields=[{name:"type",type:_(k),value:"ComputedMemberAssignmentTarget"},{name:"object",type:b(Pt,an)},{name:"expression",type:Pt}],xt.typeName="ComputedMemberExpression",xt.fields=[{name:"type",type:_(k),value:"ComputedMemberExpression"},{name:"object",type:b(Pt,an)},{name:"expression",type:Pt}],Rt.typeName="ComputedPropertyName",Rt.fields=[{name:"type",type:_(k),value:"ComputedPropertyName"},{name:"expression",type:Pt}],Mt.typeName="ConditionalExpression",Mt.fields=[{name:"type",type:_(k),value:"ConditionalExpression"},{name:"test",type:Pt},{name:"consequent",type:Pt},{name:"alternate",type:Pt}],It.typeName="ContinueStatement",It.fields=[{name:"type",type:_(k),value:"ContinueStatement"},{name:"label",type:c(a)}],Ft.typeName="DataProperty",Ft.fields=[{name:"type",type:_(k),value:"DataProperty"},{name:"name",type:un},{name:"expression",type:Pt}],qt.typeName="DebuggerStatement",qt.fields=[{name:"type",type:_(k),value:"DebuggerStatement"}],jt.typeName="Directive",jt.fields=[{name:"type",type:_(k),value:"Directive"},{name:"rawValue",type:a}],Nt.typeName="DoWhileStatement",Nt.fields=[{name:"type",type:_(k),value:"DoWhileStatement"},{name:"body",type:Vt},{name:"test",type:Pt}],Kt.typeName="EmptyStatement",Kt.fields=[{name:"type",type:_(k),value:"EmptyStatement"}],Jt.typeName="Export",Jt.fields=[{name:"type",type:_(k),value:"Export"},{name:"declaration",type:b(Ct,sn,rn)}],en.typeName="ExportAllFrom",en.fields=[{name:"type",type:_(k),value:"ExportAllFrom"},{name:"moduleSpecifier",type:a}],tn.typeName="ExportDefault",tn.fields=[{name:"type",type:_(k),value:"ExportDefault"},{name:"body",type:b(Ct,Pt,sn)}],kt.typeName="ExportFrom",kt.fields=[{name:"type",type:_(k),value:"ExportFrom"},{name:"namedExports",type:d(Bt)},{name:"moduleSpecifier",type:a}],Bt.typeName="ExportFromSpecifier",Bt.fields=[{name:"type",type:_(k),value:"ExportFromSpecifier"},{name:"name",type:a},{name:"exportedName",type:c(a)}],Qt.typeName="ExportLocalSpecifier",Qt.fields=[{name:"type",type:_(k),value:"ExportLocalSpecifier"},{name:"name",type:cn},{name:"exportedName",type:c(a)}],Lt.typeName="ExportLocals",Lt.fields=[{name:"type",type:_(k),value:"ExportLocals"},{name:"namedExports",type:d(Qt)}],$t.typeName="ExpressionStatement",$t.fields=[{name:"type",type:_(k),value:"ExpressionStatement"},{name:"expression",type:Pt}],Wt.typeName="ForAwaitStatement",Wt.fields=[{name:"type",type:_(k),value:"ForAwaitStatement"},{name:"left",type:b(b(b(nt,Yt),b(ot,Ht)),rn)},{name:"right",type:Pt},{name:"body",type:Vt}],Gt.typeName="ForInStatement",Gt.fields=[{name:"type",type:_(k),value:"ForInStatement"},{name:"left",type:b(b(b(nt,Yt),b(ot,Ht)),rn)},{name:"right",type:Pt},{name:"body",type:Vt}],zt.typeName="ForOfStatement",zt.fields=[{name:"type",type:_(k),value:"ForOfStatement"},{name:"left",type:b(b(b(nt,Yt),b(ot,Ht)),rn)},{name:"right",type:Pt},{name:"body",type:Vt}],nn.typeName="ForStatement",nn.fields=[{name:"type",type:_(k),value:"ForStatement"},{name:"init",type:c(b(Pt,rn))},{name:"test",type:c(Pt)},{name:"update",type:c(Pt)},{name:"body",type:Vt}],Xt.typeName="FormalParameters",Xt.fields=[{name:"type",type:_(k),value:"FormalParameters"},{name:"items",type:d(b(ft,b(dt,b(it,Ut))))},{name:"rest",type:c(b(dt,b(it,Ut)))}],Zt.typeName="FunctionBody",Zt.fields=[{name:"type",type:_(k),value:"FunctionBody"},{name:"directives",type:d(jt)},{name:"statements",type:d(Vt)}],sn.typeName="FunctionDeclaration",sn.fields=[{name:"type",type:_(k),value:"FunctionDeclaration"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:dt},{name:"params",type:Xt},{name:"body",type:Zt}],fn.typeName="FunctionExpression",fn.fields=[{name:"type",type:_(k),value:"FunctionExpression"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:c(dt)},{name:"params",type:Xt},{name:"body",type:Zt}],An.typeName="Getter",An.fields=[{name:"type",type:_(k),value:"Getter"},{name:"name",type:un},{name:"body",type:Zt}],cn.typeName="IdentifierExpression",cn.fields=[{name:"type",type:_(k),value:"IdentifierExpression"},{name:"name",type:a}],vn.typeName="IfStatement",vn.fields=[{name:"type",type:_(k),value:"IfStatement"},{name:"test",type:Pt},{name:"consequent",type:Vt},{name:"alternate",type:c(Vt)}],_n.typeName="Import",_n.fields=[{name:"type",type:_(k),value:"Import"},{name:"defaultBinding",type:c(dt)},{name:"namedImports",type:d(mn)},{name:"moduleSpecifier",type:a}],On.typeName="ImportNamespace",On.fields=[{name:"type",type:_(k),value:"ImportNamespace"},{name:"defaultBinding",type:c(dt)},{name:"namespaceBinding",type:dt},{name:"moduleSpecifier",type:a}],mn.typeName="ImportSpecifier",mn.fields=[{name:"type",type:_(k),value:"ImportSpecifier"},{name:"name",type:c(a)},{name:"binding",type:dt}],Cn.typeName="LabeledStatement",Cn.fields=[{name:"type",type:_(k),value:"LabeledStatement"},{name:"label",type:a},{name:"body",type:Vt}],Dn.typeName="LiteralBooleanExpression",Dn.fields=[{name:"type",type:_(k),value:"LiteralBooleanExpression"},{name:"value",type:e}],bn.typeName="LiteralInfinityExpression",bn.fields=[{name:"type",type:_(k),value:"LiteralInfinityExpression"}],xn.typeName="LiteralNullExpression",xn.fields=[{name:"type",type:_(k),value:"LiteralNullExpression"}],Tn.typeName="LiteralNumericExpression",Tn.fields=[{name:"type",type:_(k),value:"LiteralNumericExpression"},{name:"value",type:s}],kn.typeName="LiteralRegExpExpression",kn.fields=[{name:"type",type:_(k),value:"LiteralRegExpExpression"},{name:"pattern",type:a},{name:"global",type:e},{name:"ignoreCase",type:e},{name:"multiLine",type:e},{name:"dotAll",type:e},{name:"unicode",type:e},{name:"sticky",type:e}],wn.typeName="LiteralStringExpression",wn.fields=[{name:"type",type:_(k),value:"LiteralStringExpression"},{name:"value",type:a}],Fn.typeName="Method",Fn.fields=[{name:"type",type:_(k),value:"Method"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:un},{name:"params",type:Xt},{name:"body",type:Zt}],Nn.typeName="Module",Nn.fields=[{name:"type",type:_(k),value:"Module"},{name:"directives",type:d(jt)},{name:"items",type:d(b(ar,or,Vt))}],Pn.typeName="NewExpression",Pn.fields=[{name:"type",type:_(k),value:"NewExpression"},{name:"callee",type:Pt},{name:"arguments",type:d(b(Pt,hn))}],Bn.typeName="NewTargetExpression",Bn.fields=[{name:"type",type:_(k),value:"NewTargetExpression"}],Yt.typeName="ObjectAssignmentTarget",Yt.fields=[{name:"type",type:_(k),value:"ObjectAssignmentTarget"},{name:"properties",type:d(sr)},{name:"rest",type:c(b(b(nt,Yt),b(ot,Ht)))}],Ut.typeName="ObjectBinding",Ut.fields=[{name:"type",type:_(k),value:"ObjectBinding"},{name:"properties",type:d(ur)},{name:"rest",type:c(b(dt,b(it,Ut)))}],Rn.typeName="ObjectExpression",Rn.fields=[{name:"type",type:_(k),value:"ObjectExpression"},{name:"properties",type:d(cr)}],In.typeName="ReturnStatement",In.fields=[{name:"type",type:_(k),value:"ReturnStatement"},{name:"expression",type:c(Pt)}],Mn.typeName="Script",Mn.fields=[{name:"type",type:_(k),value:"Script"},{name:"directives",type:d(jt)},{name:"statements",type:d(Vt)}],$n.typeName="Setter",$n.fields=[{name:"type",type:_(k),value:"Setter"},{name:"name",type:un},{name:"param",type:b(ft,b(dt,b(it,Ut)))},{name:"body",type:Zt}],Ln.typeName="ShorthandProperty",Ln.fields=[{name:"type",type:_(k),value:"ShorthandProperty"},{name:"name",type:cn}],hn.typeName="SpreadElement",hn.fields=[{name:"type",type:_(k),value:"SpreadElement"},{name:"expression",type:Pt}],Wn.typeName="SpreadProperty",Wn.fields=[{name:"type",type:_(k),value:"SpreadProperty"},{name:"expression",type:Pt}],Qn.typeName="StaticMemberAssignmentTarget",Qn.fields=[{name:"type",type:_(k),value:"StaticMemberAssignmentTarget"},{name:"object",type:b(Pt,an)},{name:"property",type:a}],jn.typeName="StaticMemberExpression",jn.fields=[{name:"type",type:_(k),value:"StaticMemberExpression"},{name:"object",type:b(Pt,an)},{name:"property",type:a}],qn.typeName="StaticPropertyName",qn.fields=[{name:"type",type:_(k),value:"StaticPropertyName"},{name:"value",type:a}],an.typeName="Super",an.fields=[{name:"type",type:_(k),value:"Super"}],pn.typeName="SwitchCase",pn.fields=[{name:"type",type:_(k),value:"SwitchCase"},{name:"test",type:Pt},{name:"consequent",type:d(Vt)}],gn.typeName="SwitchDefault",gn.fields=[{name:"type",type:_(k),value:"SwitchDefault"},{name:"consequent",type:d(Vt)}],Vn.typeName="SwitchStatement",Vn.fields=[{name:"type",type:_(k),value:"SwitchStatement"},{name:"discriminant",type:Pt},{name:"cases",type:d(pn)}],Gn.typeName="SwitchStatementWithDefault",Gn.fields=[{name:"type",type:_(k),value:"SwitchStatementWithDefault"},{name:"discriminant",type:Pt},{name:"preDefaultCases",type:d(pn)},{name:"defaultCase",type:gn},{name:"postDefaultCases",type:d(pn)}],yn.typeName="TemplateElement",yn.fields=[{name:"type",type:_(k),value:"TemplateElement"},{name:"rawValue",type:a}],Un.typeName="TemplateExpression",Un.fields=[{name:"type",type:_(k),value:"TemplateExpression"},{name:"tag",type:c(Pt)},{name:"elements",type:d(b(Pt,yn))}],zn.typeName="ThisExpression",zn.fields=[{name:"type",type:_(k),value:"ThisExpression"}],Yn.typeName="ThrowStatement",Yn.fields=[{name:"type",type:_(k),value:"ThrowStatement"},{name:"expression",type:Pt}],Hn.typeName="TryCatchStatement",Hn.fields=[{name:"type",type:_(k),value:"TryCatchStatement"},{name:"body",type:yt},{name:"catchClause",type:Ot}],Xn.typeName="TryFinallyStatement",Xn.fields=[{name:"type",type:_(k),value:"TryFinallyStatement"},{name:"body",type:yt},{name:"catchClause",type:c(Ot)},{name:"finalizer",type:yt}],Zn.typeName="UnaryExpression",Zn.fields=[{name:"type",type:_(k),value:"UnaryExpression"},{name:"operator",type:_e},{name:"operand",type:Pt}],Kn.typeName="UpdateExpression",Kn.fields=[{name:"type",type:_(k),value:"UpdateExpression"},{name:"isPrefix",type:e},{name:"operator",type:et},{name:"operand",type:b(ot,Ht)}],rn.typeName="VariableDeclaration",rn.fields=[{name:"type",type:_(k),value:"VariableDeclaration"},{name:"kind",type:tt},{name:"declarators",type:d(En)}],Jn.typeName="VariableDeclarationStatement",Jn.fields=[{name:"type",type:_(k),value:"VariableDeclarationStatement"},{name:"declaration",type:rn}],En.typeName="VariableDeclarator",En.fields=[{name:"type",type:_(k),value:"VariableDeclarator"},{name:"binding",type:b(dt,b(it,Ut))},{name:"init",type:c(Pt)}],er.typeName="WhileStatement",er.fields=[{name:"type",type:_(k),value:"WhileStatement"},{name:"test",type:Pt},{name:"body",type:Vt}],tr.typeName="WithStatement",tr.fields=[{name:"type",type:_(k),value:"WithStatement"},{name:"object",type:Pt},{name:"body",type:Vt}],nr.typeName="YieldExpression",nr.fields=[{name:"type",type:_(k),value:"YieldExpression"},{name:"expression",type:c(Pt)}],rr.typeName="YieldGeneratorExpression",rr.fields=[{name:"type",type:_(k),value:"YieldGeneratorExpression"},{name:"expression",type:Pt}],o}(),estraverse$1={};(function(o){(function e(s){var a,c,d,_,b,k;function $(ct){var ut={},lt,pt;for(lt in ct)ct.hasOwnProperty(lt)&&(pt=ct[lt],typeof pt=="object"&&pt!==null?ut[lt]=$(pt):ut[lt]=pt);return ut}function j(ct,ut){var lt,pt,dt,gt;for(pt=ct.length,dt=0;pt;)lt=pt>>>1,gt=dt+lt,ut(ct[gt])?pt=lt:(dt=gt+1,pt-=lt+1);return dt}a={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",PrivateIdentifier:"PrivateIdentifier",Program:"Program",Property:"Property",PropertyDefinition:"PropertyDefinition",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},d={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},_={},b={},k={},c={Break:_,Skip:b,Remove:k};function _e(ct,ut){this.parent=ct,this.key=ut}_e.prototype.replace=function(ut){this.parent[this.key]=ut},_e.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)};function et(ct,ut,lt,pt){this.node=ct,this.path=ut,this.wrap=lt,this.ref=pt}function tt(){}tt.prototype.path=function(){var ut,lt,pt,dt,gt,Et;function ft(yt,mt){if(Array.isArray(mt))for(pt=0,dt=mt.length;pt=0;--lt)if(ct[lt].node===ut)return!0;return!1}tt.prototype.traverse=function(ut,lt){var pt,dt,gt,Et,ft,yt,mt,St,At,Ot,Ct,Dt;for(this.__initialize(ut,lt),Dt={},pt=this.__worklist,dt=this.__leavelist,pt.push(new et(ut,null,null,null)),dt.push(new et(null,null,null,null));pt.length;){if(gt=pt.pop(),gt===Dt){if(gt=dt.pop(),yt=this.__execute(lt.leave,gt),this.__state===_||yt===_)return;continue}if(gt.node){if(yt=this.__execute(lt.enter,gt),this.__state===_||yt===_)return;if(pt.push(Dt),dt.push(gt),this.__state===b||yt===b)continue;if(Et=gt.node,ft=Et.type||gt.wrap,Ot=this.__keys[ft],!Ot)if(this.__fallback)Ot=this.__fallback(Et);else throw new Error("Unknown node type "+ft+".");for(St=Ot.length;(St-=1)>=0;)if(mt=Ot[St],Ct=Et[mt],!!Ct){if(Array.isArray(Ct)){for(At=Ct.length;(At-=1)>=0;)if(!!Ct[At]&&!rt(dt,Ct[At])){if(it(ft,Ot[St]))gt=new et(Ct[At],[mt,At],"Property",null);else if(nt(Ct[At]))gt=new et(Ct[At],[mt,At],null,null);else continue;pt.push(gt)}}else if(nt(Ct)){if(rt(dt,Ct))continue;pt.push(new et(Ct,mt,null,null))}}}}},tt.prototype.replace=function(ut,lt){var pt,dt,gt,Et,ft,yt,mt,St,At,Ot,Ct,Dt,Tt;function vt(bt){var xt,Rt,Mt,It;if(bt.ref.remove()){for(Rt=bt.ref.key,It=bt.ref.parent,xt=pt.length;xt--;)if(Mt=pt[xt],Mt.ref&&Mt.ref.parent===It){if(Mt.ref.key=0;)if(Tt=At[mt],Ot=gt[Tt],!!Ot)if(Array.isArray(Ot)){for(St=Ot.length;(St-=1)>=0;)if(!!Ot[St]){if(it(Et,At[mt]))yt=new et(Ot[St],[Tt,St],"Property",new _e(Ot,St));else if(nt(Ot[St]))yt=new et(Ot[St],[Tt,St],null,new _e(Ot,St));else continue;pt.push(yt)}}else nt(Ot)&&pt.push(new et(Ot,Tt,null,new _e(gt,Tt)))}}return Dt.root};function st(ct,ut){var lt=new tt;return lt.traverse(ct,ut)}function at(ct,ut){var lt=new tt;return lt.replace(ct,ut)}function ot(ct,ut){var lt;return lt=j(ut,function(dt){return dt.range[0]>ct.range[0]}),ct.extendedRange=[ct.range[0],ct.range[1]],lt!==ut.length&&(ct.extendedRange[1]=ut[lt].range[0]),lt-=1,lt>=0&&(ct.extendedRange[0]=ut[lt].range[1]),ct}function ht(ct,ut,lt){var pt=[],dt,gt,Et,ft;if(!ct.range)throw new Error("attachComments needs range information");if(!lt.length){if(ut.length){for(Et=0,gt=ut.length;Etyt.range[0]));)mt.extendedRange[1]===yt.range[0]?(yt.leadingComments||(yt.leadingComments=[]),yt.leadingComments.push(mt),pt.splice(ft,1)):ft+=1;if(ft===pt.length)return c.Break;if(pt[ft].extendedRange[0]>yt.range[1])return c.Skip}}),ft=0,st(ct,{leave:function(yt){for(var mt;ftyt.range[1])return c.Skip}}),ct}return s.Syntax=a,s.traverse=st,s.replace=at,s.attachComments=ht,s.VisitorKeys=d,s.VisitorOption=c,s.Controller=tt,s.cloneEnvironment=function(){return e({})},s})(o)})(estraverse$1);const Spec=_default.default||_default,estraverse=estraverse$1.cloneEnvironment();Object.keys(estraverse.Syntax).filter(o=>o!=="Property").forEach(o=>{delete estraverse.Syntax[o],delete estraverse.VisitorKeys[o]});Object.assign(estraverse.Syntax,Object.keys(Spec).reduce((o,e)=>(o[e]=e,o),{}));Object.assign(estraverse.VisitorKeys,Object.keys(Spec).reduce((o,e)=>(o[e]=Spec[e].fields.map(s=>s.name),o),{}));var dist$1={},StaticMemberExpression_1,ReturnStatement_1,LiteralStringExpression_1,LiteralNumericExpression_1,IdentifierExpression_1,CallExpression_1,ArrayExpression_1;Object.defineProperty(dist$1,"__esModule",{value:!0});function _classCallCheck$5(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}dist$1.ArrayAssignmentTarget=function o(e){var s=e.elements,a=e.rest;_classCallCheck$5(this,o),this.type="ArrayAssignmentTarget",this.elements=s,this.rest=a};dist$1.ArrayBinding=function o(e){var s=e.elements,a=e.rest;_classCallCheck$5(this,o),this.type="ArrayBinding",this.elements=s,this.rest=a};ArrayExpression_1=dist$1.ArrayExpression=function o(e){var s=e.elements;_classCallCheck$5(this,o),this.type="ArrayExpression",this.elements=s};dist$1.ArrowExpression=function o(e){var s=e.isAsync,a=e.params,c=e.body;_classCallCheck$5(this,o),this.type="ArrowExpression",this.isAsync=s,this.params=a,this.body=c};dist$1.AssignmentExpression=function o(e){var s=e.binding,a=e.expression;_classCallCheck$5(this,o),this.type="AssignmentExpression",this.binding=s,this.expression=a};dist$1.AssignmentTargetIdentifier=function o(e){var s=e.name;_classCallCheck$5(this,o),this.type="AssignmentTargetIdentifier",this.name=s};dist$1.AssignmentTargetPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="AssignmentTargetPropertyIdentifier",this.binding=s,this.init=a};dist$1.AssignmentTargetPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$5(this,o),this.type="AssignmentTargetPropertyProperty",this.name=s,this.binding=a};dist$1.AssignmentTargetWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="AssignmentTargetWithDefault",this.binding=s,this.init=a};dist$1.AwaitExpression=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="AwaitExpression",this.expression=s};dist$1.BinaryExpression=function o(e){var s=e.left,a=e.operator,c=e.right;_classCallCheck$5(this,o),this.type="BinaryExpression",this.left=s,this.operator=a,this.right=c};dist$1.BindingIdentifier=function o(e){var s=e.name;_classCallCheck$5(this,o),this.type="BindingIdentifier",this.name=s};dist$1.BindingPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="BindingPropertyIdentifier",this.binding=s,this.init=a};dist$1.BindingPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$5(this,o),this.type="BindingPropertyProperty",this.name=s,this.binding=a};dist$1.BindingWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="BindingWithDefault",this.binding=s,this.init=a};dist$1.Block=function o(e){var s=e.statements;_classCallCheck$5(this,o),this.type="Block",this.statements=s};dist$1.BlockStatement=function o(e){var s=e.block;_classCallCheck$5(this,o),this.type="BlockStatement",this.block=s};dist$1.BreakStatement=function o(e){var s=e.label;_classCallCheck$5(this,o),this.type="BreakStatement",this.label=s};CallExpression_1=dist$1.CallExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$5(this,o),this.type="CallExpression",this.callee=s,this.arguments=a};dist$1.CatchClause=function o(e){var s=e.binding,a=e.body;_classCallCheck$5(this,o),this.type="CatchClause",this.binding=s,this.body=a};dist$1.ClassDeclaration=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$5(this,o),this.type="ClassDeclaration",this.name=s,this.super=a,this.elements=c};dist$1.ClassElement=function o(e){var s=e.isStatic,a=e.method;_classCallCheck$5(this,o),this.type="ClassElement",this.isStatic=s,this.method=a};dist$1.ClassExpression=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$5(this,o),this.type="ClassExpression",this.name=s,this.super=a,this.elements=c};dist$1.CompoundAssignmentExpression=function o(e){var s=e.binding,a=e.operator,c=e.expression;_classCallCheck$5(this,o),this.type="CompoundAssignmentExpression",this.binding=s,this.operator=a,this.expression=c};dist$1.ComputedMemberAssignmentTarget=function o(e){var s=e.object,a=e.expression;_classCallCheck$5(this,o),this.type="ComputedMemberAssignmentTarget",this.object=s,this.expression=a};dist$1.ComputedMemberExpression=function o(e){var s=e.object,a=e.expression;_classCallCheck$5(this,o),this.type="ComputedMemberExpression",this.object=s,this.expression=a};dist$1.ComputedPropertyName=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="ComputedPropertyName",this.expression=s};dist$1.ConditionalExpression=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$5(this,o),this.type="ConditionalExpression",this.test=s,this.consequent=a,this.alternate=c};dist$1.ContinueStatement=function o(e){var s=e.label;_classCallCheck$5(this,o),this.type="ContinueStatement",this.label=s};dist$1.DataProperty=function o(e){var s=e.name,a=e.expression;_classCallCheck$5(this,o),this.type="DataProperty",this.name=s,this.expression=a};dist$1.DebuggerStatement=function o(){_classCallCheck$5(this,o),this.type="DebuggerStatement"};dist$1.Directive=function o(e){var s=e.rawValue;_classCallCheck$5(this,o),this.type="Directive",this.rawValue=s};dist$1.DoWhileStatement=function o(e){var s=e.body,a=e.test;_classCallCheck$5(this,o),this.type="DoWhileStatement",this.body=s,this.test=a};dist$1.EmptyStatement=function o(){_classCallCheck$5(this,o),this.type="EmptyStatement"};dist$1.Export=function o(e){var s=e.declaration;_classCallCheck$5(this,o),this.type="Export",this.declaration=s};dist$1.ExportAllFrom=function o(e){var s=e.moduleSpecifier;_classCallCheck$5(this,o),this.type="ExportAllFrom",this.moduleSpecifier=s};dist$1.ExportDefault=function o(e){var s=e.body;_classCallCheck$5(this,o),this.type="ExportDefault",this.body=s};dist$1.ExportFrom=function o(e){var s=e.namedExports,a=e.moduleSpecifier;_classCallCheck$5(this,o),this.type="ExportFrom",this.namedExports=s,this.moduleSpecifier=a};dist$1.ExportFromSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$5(this,o),this.type="ExportFromSpecifier",this.name=s,this.exportedName=a};dist$1.ExportLocalSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$5(this,o),this.type="ExportLocalSpecifier",this.name=s,this.exportedName=a};dist$1.ExportLocals=function o(e){var s=e.namedExports;_classCallCheck$5(this,o),this.type="ExportLocals",this.namedExports=s};dist$1.ExpressionStatement=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="ExpressionStatement",this.expression=s};dist$1.ForAwaitStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$5(this,o),this.type="ForAwaitStatement",this.left=s,this.right=a,this.body=c};dist$1.ForInStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$5(this,o),this.type="ForInStatement",this.left=s,this.right=a,this.body=c};dist$1.ForOfStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$5(this,o),this.type="ForOfStatement",this.left=s,this.right=a,this.body=c};dist$1.ForStatement=function o(e){var s=e.init,a=e.test,c=e.update,d=e.body;_classCallCheck$5(this,o),this.type="ForStatement",this.init=s,this.test=a,this.update=c,this.body=d};dist$1.FormalParameters=function o(e){var s=e.items,a=e.rest;_classCallCheck$5(this,o),this.type="FormalParameters",this.items=s,this.rest=a};dist$1.FunctionBody=function o(e){var s=e.directives,a=e.statements;_classCallCheck$5(this,o),this.type="FunctionBody",this.directives=s,this.statements=a};dist$1.FunctionDeclaration=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$5(this,o),this.type="FunctionDeclaration",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$1.FunctionExpression=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$5(this,o),this.type="FunctionExpression",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$1.Getter=function o(e){var s=e.name,a=e.body;_classCallCheck$5(this,o),this.type="Getter",this.name=s,this.body=a};IdentifierExpression_1=dist$1.IdentifierExpression=function o(e){var s=e.name;_classCallCheck$5(this,o),this.type="IdentifierExpression",this.name=s};dist$1.IfStatement=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$5(this,o),this.type="IfStatement",this.test=s,this.consequent=a,this.alternate=c};dist$1.Import=function o(e){var s=e.defaultBinding,a=e.namedImports,c=e.moduleSpecifier;_classCallCheck$5(this,o),this.type="Import",this.defaultBinding=s,this.namedImports=a,this.moduleSpecifier=c};dist$1.ImportNamespace=function o(e){var s=e.defaultBinding,a=e.namespaceBinding,c=e.moduleSpecifier;_classCallCheck$5(this,o),this.type="ImportNamespace",this.defaultBinding=s,this.namespaceBinding=a,this.moduleSpecifier=c};dist$1.ImportSpecifier=function o(e){var s=e.name,a=e.binding;_classCallCheck$5(this,o),this.type="ImportSpecifier",this.name=s,this.binding=a};dist$1.LabeledStatement=function o(e){var s=e.label,a=e.body;_classCallCheck$5(this,o),this.type="LabeledStatement",this.label=s,this.body=a};dist$1.LiteralBooleanExpression=function o(e){var s=e.value;_classCallCheck$5(this,o),this.type="LiteralBooleanExpression",this.value=s};dist$1.LiteralInfinityExpression=function o(){_classCallCheck$5(this,o),this.type="LiteralInfinityExpression"};dist$1.LiteralNullExpression=function o(){_classCallCheck$5(this,o),this.type="LiteralNullExpression"};LiteralNumericExpression_1=dist$1.LiteralNumericExpression=function o(e){var s=e.value;_classCallCheck$5(this,o),this.type="LiteralNumericExpression",this.value=s};dist$1.LiteralRegExpExpression=function o(e){var s=e.pattern,a=e.global,c=e.ignoreCase,d=e.multiLine,_=e.dotAll,b=e.unicode,k=e.sticky;_classCallCheck$5(this,o),this.type="LiteralRegExpExpression",this.pattern=s,this.global=a,this.ignoreCase=c,this.multiLine=d,this.dotAll=_,this.unicode=b,this.sticky=k};LiteralStringExpression_1=dist$1.LiteralStringExpression=function o(e){var s=e.value;_classCallCheck$5(this,o),this.type="LiteralStringExpression",this.value=s};dist$1.Method=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$5(this,o),this.type="Method",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$1.Module=function o(e){var s=e.directives,a=e.items;_classCallCheck$5(this,o),this.type="Module",this.directives=s,this.items=a};dist$1.NewExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$5(this,o),this.type="NewExpression",this.callee=s,this.arguments=a};dist$1.NewTargetExpression=function o(){_classCallCheck$5(this,o),this.type="NewTargetExpression"};dist$1.ObjectAssignmentTarget=function o(e){var s=e.properties,a=e.rest;_classCallCheck$5(this,o),this.type="ObjectAssignmentTarget",this.properties=s,this.rest=a};dist$1.ObjectBinding=function o(e){var s=e.properties,a=e.rest;_classCallCheck$5(this,o),this.type="ObjectBinding",this.properties=s,this.rest=a};dist$1.ObjectExpression=function o(e){var s=e.properties;_classCallCheck$5(this,o),this.type="ObjectExpression",this.properties=s};ReturnStatement_1=dist$1.ReturnStatement=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="ReturnStatement",this.expression=s};dist$1.Script=function o(e){var s=e.directives,a=e.statements;_classCallCheck$5(this,o),this.type="Script",this.directives=s,this.statements=a};dist$1.Setter=function o(e){var s=e.name,a=e.param,c=e.body;_classCallCheck$5(this,o),this.type="Setter",this.name=s,this.param=a,this.body=c};dist$1.ShorthandProperty=function o(e){var s=e.name;_classCallCheck$5(this,o),this.type="ShorthandProperty",this.name=s};dist$1.SpreadElement=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="SpreadElement",this.expression=s};dist$1.SpreadProperty=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="SpreadProperty",this.expression=s};dist$1.StaticMemberAssignmentTarget=function o(e){var s=e.object,a=e.property;_classCallCheck$5(this,o),this.type="StaticMemberAssignmentTarget",this.object=s,this.property=a};StaticMemberExpression_1=dist$1.StaticMemberExpression=function o(e){var s=e.object,a=e.property;_classCallCheck$5(this,o),this.type="StaticMemberExpression",this.object=s,this.property=a};dist$1.StaticPropertyName=function o(e){var s=e.value;_classCallCheck$5(this,o),this.type="StaticPropertyName",this.value=s};dist$1.Super=function o(){_classCallCheck$5(this,o),this.type="Super"};dist$1.SwitchCase=function o(e){var s=e.test,a=e.consequent;_classCallCheck$5(this,o),this.type="SwitchCase",this.test=s,this.consequent=a};dist$1.SwitchDefault=function o(e){var s=e.consequent;_classCallCheck$5(this,o),this.type="SwitchDefault",this.consequent=s};dist$1.SwitchStatement=function o(e){var s=e.discriminant,a=e.cases;_classCallCheck$5(this,o),this.type="SwitchStatement",this.discriminant=s,this.cases=a};dist$1.SwitchStatementWithDefault=function o(e){var s=e.discriminant,a=e.preDefaultCases,c=e.defaultCase,d=e.postDefaultCases;_classCallCheck$5(this,o),this.type="SwitchStatementWithDefault",this.discriminant=s,this.preDefaultCases=a,this.defaultCase=c,this.postDefaultCases=d};dist$1.TemplateElement=function o(e){var s=e.rawValue;_classCallCheck$5(this,o),this.type="TemplateElement",this.rawValue=s};dist$1.TemplateExpression=function o(e){var s=e.tag,a=e.elements;_classCallCheck$5(this,o),this.type="TemplateExpression",this.tag=s,this.elements=a};dist$1.ThisExpression=function o(){_classCallCheck$5(this,o),this.type="ThisExpression"};dist$1.ThrowStatement=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="ThrowStatement",this.expression=s};dist$1.TryCatchStatement=function o(e){var s=e.body,a=e.catchClause;_classCallCheck$5(this,o),this.type="TryCatchStatement",this.body=s,this.catchClause=a};dist$1.TryFinallyStatement=function o(e){var s=e.body,a=e.catchClause,c=e.finalizer;_classCallCheck$5(this,o),this.type="TryFinallyStatement",this.body=s,this.catchClause=a,this.finalizer=c};dist$1.UnaryExpression=function o(e){var s=e.operator,a=e.operand;_classCallCheck$5(this,o),this.type="UnaryExpression",this.operator=s,this.operand=a};dist$1.UpdateExpression=function o(e){var s=e.isPrefix,a=e.operator,c=e.operand;_classCallCheck$5(this,o),this.type="UpdateExpression",this.isPrefix=s,this.operator=a,this.operand=c};dist$1.VariableDeclaration=function o(e){var s=e.kind,a=e.declarators;_classCallCheck$5(this,o),this.type="VariableDeclaration",this.kind=s,this.declarators=a};dist$1.VariableDeclarationStatement=function o(e){var s=e.declaration;_classCallCheck$5(this,o),this.type="VariableDeclarationStatement",this.declaration=s};dist$1.VariableDeclarator=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="VariableDeclarator",this.binding=s,this.init=a};dist$1.WhileStatement=function o(e){var s=e.test,a=e.body;_classCallCheck$5(this,o),this.type="WhileStatement",this.test=s,this.body=a};dist$1.WithStatement=function o(e){var s=e.object,a=e.body;_classCallCheck$5(this,o),this.type="WithStatement",this.object=s,this.body=a};dist$1.YieldExpression=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="YieldExpression",this.expression=s};dist$1.YieldGeneratorExpression=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="YieldGeneratorExpression",this.expression=s};var dist={},minimalCodegen={};/* +`.charCodeAt(0),r:"\r".charCodeAt(0),t:" ".charCodeAt(0),v:"\v".charCodeAt(0)},controlCharacters="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),hexDigits="0123456789abcdefABCDEF".split(""),decimalDigits="0123456789".split(""),octalDigits="01234567".split(""),INVALID_NAMED_BACKREFERENCE_SENTINEL={};function isIdentifierStart(o){return o<128?_unicode$1.idStartBool[o]:_unicode$1.idStartLargeRegex.test(String.fromCodePoint(o))}function isIdentifierPart(o){return o<128?_unicode$1.idContinueBool[o]:_unicode$1.idContinueLargeRegex.test(String.fromCodePoint(o))}var PatternAcceptorState=function(){function o(e,s){_classCallCheck$h(this,o),this.pattern=e,this.unicode=s,this.index=0,this.largestBackreference=0,this.backreferenceNames=[],this.groupingNames=[],this.capturingGroups=0}return _createClass$d(o,[{key:"empty",value:function(){return this.index>=this.pattern.length}},{key:"backreference",value:function(s){s>this.largestBackreference&&(this.largestBackreference=s)}},{key:"nextCodePoint",value:function(){return this.empty()?null:this.unicode?String.fromCodePoint(this.pattern.codePointAt(this.index)):this.pattern.charAt(this.index)}},{key:"skipCodePoint",value:function(){this.index+=this.nextCodePoint().length}},{key:"eat",value:function(s){return this.index+s.length>this.pattern.length||this.pattern.slice(this.index,this.index+s.length)!==s?!1:(this.index+=s.length,!0)}},{key:"eatIdentifierCodePoint",value:function(){var s=void 0,a=this.index,c=void 0;if(this.match("\\u")){if(this.skipCodePoint(),s=acceptUnicodeEscape(this),!s.matched)return this.index=a,null;s=s.value,c=String.fromCodePoint(s)}else{if(c=this.nextCodePoint(),c==null)return this.index=a,null;this.index+=c.length,s=c.codePointAt(0)}return{character:c,characterValue:s}}},{key:"eatIdentifierStart",value:function(){var s=this.index,a=this.eatIdentifierCodePoint();return a===null?(this.index=s,null):a.character==="_"||a.character==="$"||isIdentifierStart(a.characterValue)?a.character:(this.index=s,null)}},{key:"eatIdentifierPart",value:function(){var s=this.index,a=this.eatIdentifierCodePoint();return a===null?(this.index=s,null):a.character==="\u200C"||a.character==="\u200D"||a.character==="$"||isIdentifierPart(a.characterValue)?a.character:(this.index=s,null)}},{key:"eatAny",value:function(){for(var s=arguments.length,a=Array(s),c=0;c1&&arguments[1]!==void 0?arguments[1]:{},s=e.unicode,a=s===void 0?!1:s,c=new PatternAcceptorState(o,a),d=acceptDisjunction(c);if(d.matched){if(c.unicode&&c.largestBackreference>c.capturingGroups)return!1;if(c.groupingNames.length>0||c.unicode){var _=!0,b=!1,k=void 0;try{for(var $=c.backreferenceNames[Symbol.iterator](),j;!(_=(j=$.next()).done);_=!0){var _e=j.value;if(c.groupingNames.indexOf(_e)===-1)return!1}}catch(et){b=!0,k=et}finally{try{!_&&$.return&&$.return()}finally{if(b)throw k}}}}return d.matched};var backtrackOnFailure=function o(e){return function(s){var a=s.index,c=s.largestBackreference,d=s.capturingGroups,_=e(s);return _.matched||(s.index=a,s.largestBackreference=c,s.capturingGroups=d),_}},acceptUnicodeEscape=backtrackOnFailure(function(o){if(!o.eat("u"))return{matched:!1};if(o.unicode&&o.eat("{")){for(var e=[];!o.eat("}");){var s=o.eatAny.apply(o,_toConsumableArray$6(hexDigits));if(s===null)return{matched:!1};e.push(s)}var a=parseInt(e.join(""),16);return a>1114111?{matched:!1}:{matched:!0,value:a}}var c=[0,0,0,0].map(function(){return o.eatAny.apply(o,_toConsumableArray$6(hexDigits))});if(c.some(function(b){return b===null}))return{matched:!1};var d=parseInt(c.join(""),16);if(o.unicode&&d>=55296&&d<=56319){var _=backtrackOnFailure(function(b){if(!b.eat("\\u"))return{matched:!1};var k=[0,0,0,0].map(function(){return b.eatAny.apply(b,_toConsumableArray$6(hexDigits))});if(k.some(function(j){return j===null}))return{matched:!1};var $=parseInt(k.join(""),16);return $<56320||$>=57344?{matched:!1}:{matched:!0,value:65536+((d&1023)<<10)+($&1023)}})(o);if(_.matched)return _}return{matched:!0,value:d}}),acceptDisjunction=function o(e,s){do{if(s!==void 0&&e.eat(s))return{matched:!0};if(e.match("|"))continue;if(!acceptAlternative(e,s).matched)return{matched:!1}}while(e.eat("|"));return{matched:s===void 0||!!e.eat(s)}},acceptAlternative=function o(e,s){for(;!e.match("|")&&!e.empty()&&(s===void 0||!e.match(s));)if(!acceptTerm(e).matched)return{matched:!1};return{matched:!0}},anyOf=function o(){for(var e=arguments.length,s=Array(e),a=0;aparseInt(_))return{matched:!1}}return c.eat("}")?(c.eat("?"),{matched:!0}):{matched:!1}})(s);return a.matched?a:{matched:!s.unicode}}else s.eatAny("*","+","?")&&s.eat("?");return{matched:!0}})},acceptCharacterExcept=function o(e){return function(s){var a=s.nextCodePoint();return a===null||e.indexOf(a)!==-1?{matched:!1}:(s.skipCodePoint(),{matched:!0})}},acceptPatternCharacter=acceptCharacterExcept(syntaxCharacters),acceptExtendedPatternCharacter=acceptCharacterExcept(extendedSyntaxCharacters),acceptInvalidBracedQuantifier=function o(e){return backtrackOnFailure(function(s){return{matched:!!(s.eat("{")&&acceptDecimal(s).matched&&(!s.eat(",")||s.match("}")||acceptDecimal(s).matched)&&s.eat("}"))}})(e)},acceptAtom=function o(e){if(e.unicode)return anyOf(acceptPatternCharacter,function(a){return{matched:!!a.eat(".")}},backtrackOnFailure(function(a){return a.eat("\\")?acceptAtomEscape(a):{matched:!1}}),acceptCharacterClass,acceptLabeledGroup(function(a){return a.eat("?:")}),acceptGrouping)(e);var s=anyOf(function(a){return{matched:!!a.eat(".")}},backtrackOnFailure(function(a){return a.eat("\\")?acceptAtomEscape(a):{matched:!1}}),backtrackOnFailure(function(a){return{matched:a.eat("\\")&&a.match("c")}}),acceptCharacterClass,acceptLabeledGroup(function(a){return a.eat("?:")}),acceptGrouping)(e);return!s.matched&&acceptInvalidBracedQuantifier(e).matched?{matched:!1}:s.matched?s:acceptExtendedPatternCharacter(e)},acceptGrouping=backtrackOnFailure(function(o){if(!o.eat("("))return{matched:!1};var e=backtrackOnFailure(function(s){return o.eat("?")?acceptGroupName(s):{matched:!1}})(o);if(!acceptDisjunction(o,")").matched)return{matched:!1};if(e.matched){if(o.groupingNames.indexOf(e.data)!==-1)return{matched:!1};o.groupingNames.push(e.data)}return o.capturingGroups++,{matched:!0}}),acceptDecimalEscape=backtrackOnFailure(function(o){var e=o.eatAny.apply(o,_toConsumableArray$6(decimalDigits));return e===null?{matched:!1}:e==="0"?{matched:!0}:(o.backreference(parseInt(e+(o.eatNaturalNumber()||""))),{matched:!0})}),acceptCharacterClassEscape=function o(e){return e.eatAny("d","D","s","S","w","W")?{matched:!0}:e.unicode?backtrackOnFailure(function(s){return!s.eat("p{")&&!s.eat("P{")?{matched:!1}:acceptUnicodePropertyValueExpression(s).matched?{matched:!!s.eat("}")}:{matched:!1}})(e):{matched:!1}},acceptUnicodePropertyName=function o(e){for(var s=[],a=void 0;a=e.eatAny.apply(e,_toConsumableArray$6(controlCharacters).concat(["_"]));)s.push(a);return{matched:s.length>0,data:s.join("")}},acceptUnicodePropertyValue=function o(e){for(var s=[],a=void 0;a=e.eatAny.apply(e,_toConsumableArray$6(controlCharacters).concat(_toConsumableArray$6(decimalDigits),["_"]));)s.push(a);return{matched:s.length>0,data:s.join("")}},illegalLoneUnicodePropertyNames=["General_Category","Script","Script_Extensions","scx","sc","gc"],generalCategoryValues=_mappings2.default.get("General_Category"),acceptLoneUnicodePropertyNameOrValue=function o(e){var s=acceptUnicodePropertyValue(e);return!s.matched||illegalLoneUnicodePropertyNames.includes(s.data)?{matched:!1}:{matched:catchIsFalse(function(){return(0,_unicodeMatchPropertyEcmascript2.default)(s.data)})||generalCategoryValues.get(s.data)!=null}},acceptUnicodePropertyValueExpression=function o(e){return anyOf(backtrackOnFailure(function(s){var a=acceptUnicodePropertyName(s);if(!a.matched||!s.eat("="))return{matched:!1};var c=acceptUnicodePropertyValue(s);return c.matched?{matched:catchIsFalse(function(){return(0,_unicodeMatchPropertyValueEcmascript2.default)(_unicodePropertyAliasesEcmascript2.default.get(a.data)||a.data,c.data)})}:{matched:!1}}),backtrackOnFailure(acceptLoneUnicodePropertyNameOrValue))(e)},acceptCharacterEscape=anyOf(function(o){var e=o.eatAny.apply(o,_toConsumableArray$6(controlEscapeCharacters));return e===null?{matched:!1}:{matched:!0,value:controlEscapeCharacterValues[e]}},backtrackOnFailure(function(o){if(!o.eat("c"))return{matched:!1};var e=o.eatAny.apply(o,_toConsumableArray$6(controlCharacters));return e===null?{matched:!1}:{matched:!0,value:e.charCodeAt(0)%32}}),backtrackOnFailure(function(o){return!o.eat("0")||o.eatAny.apply(o,_toConsumableArray$6(decimalDigits))?{matched:!1}:{matched:!0,value:0}}),backtrackOnFailure(function(o){if(!o.eat("x"))return{matched:!1};var e=[0,0].map(function(){return o.eatAny.apply(o,_toConsumableArray$6(hexDigits))});return e.some(function(s){return s===null})?{matched:!1}:{matched:!0,value:parseInt(e.join(""),16)}}),acceptUnicodeEscape,backtrackOnFailure(function(o){if(o.unicode)return{matched:!1};var e=o.eatAny.apply(o,_toConsumableArray$6(octalDigits));if(e===null)return{matched:!1};var s=parseInt(e,8);if(octalDigits.indexOf(o.nextCodePoint())===-1)return{matched:!0,value:s};var a=o.eatAny.apply(o,_toConsumableArray$6(octalDigits)),c=parseInt(a,8);if(s<4){if(octalDigits.indexOf(o.nextCodePoint())===-1)return{matched:!0,value:s<<3|c};var d=o.eatAny.apply(o,_toConsumableArray$6(octalDigits)),_=parseInt(d,8);return{matched:!0,value:s<<6|c<<3|_}}return{matched:!0,value:s<<3|c}}),backtrackOnFailure(function(o){if(!o.unicode)return{matched:!1};var e=o.eatAny.apply(o,_toConsumableArray$6(syntaxCharacters));return e===null?{matched:!1}:{matched:!0,value:e.charCodeAt(0)}}),function(o){return!o.unicode||!o.eat("/")?{matched:!1}:{matched:!0,value:"/".charCodeAt(0)}},backtrackOnFailure(function(o){if(o.unicode)return{matched:!1};var e=o.nextCodePoint();return e!==null&&e!=="c"&&e!=="k"?(o.skipCodePoint(),{matched:!0,value:e.codePointAt(0)}):{matched:!1}})),acceptGroupNameBackreference=backtrackOnFailure(function(o){if(!o.eat("k"))return{matched:!1};var e=acceptGroupName(o);return e.matched?(o.backreferenceNames.push(e.data),{matched:!0}):(o.backreferenceNames.push(INVALID_NAMED_BACKREFERENCE_SENTINEL),{matched:!0})}),acceptGroupName=backtrackOnFailure(function(o){if(!o.eat("<"))return{matched:!1};var e=[],s=o.eatIdentifierStart();if(!s)return{matched:!1};e.push(s);for(var a=void 0;a=o.eatIdentifierPart();)e.push(a);return o.eat(">")?{matched:e.length>0,data:e.join("")}:{matched:!1}}),acceptAtomEscape=anyOf(acceptDecimalEscape,acceptCharacterClassEscape,acceptCharacterEscape,acceptGroupNameBackreference),acceptCharacterClass=backtrackOnFailure(function(o){if(!o.eat("["))return{matched:!1};o.eat("^");var e=anyOf(function(k){return{matched:!!k.eat("b"),value:8}},function(k){return{matched:k.unicode&&!!k.eat("-"),value:"-".charCodeAt(0)}},backtrackOnFailure(function(k){if(k.unicode||!k.eat("c"))return{matched:!1};var $=k.eatAny.apply(k,_toConsumableArray$6(decimalDigits).concat(["_"]));return $===null?{matched:!1}:{matched:!0,value:$.charCodeAt(0)%32}}),acceptCharacterClassEscape,acceptCharacterEscape,function(k){return{matched:!k.unicode&&!!k.eat("k"),value:107}}),s=function($){var j=$.nextCodePoint();if(j==="]"||j==="-"||j===null)return{matched:!1};if(j!=="\\")return $.skipCodePoint(),{matched:!0,value:j.codePointAt(0)};$.eat("\\");var _e=e($);return!_e.matched&&$.nextCodePoint()==="c"&&!$.unicode?{matched:!0,value:"\\".charCodeAt(0)}:_e},a=function($){return $.eat("-")?{matched:!0,value:"-".charCodeAt(0)}:s($)},c=function($,j){var _e=function(nt){return nt.value===void 0&&nt.matched};if($.eat("-")){if($.match("]"))return{matched:!0};var et=a($);return et.matched?$.unicode&&(_e(j)||_e(et))?{matched:!1}:!(!$.unicode&&(_e(j)||_e(et)))&&j.value>et.value?{matched:!1}:$.match("]")?{matched:!0}:d($):{matched:!1}}return $.match("]")?{matched:!0}:_($)},d=function($){var j=a($);return j.matched?c($,j):{matched:!1}},_=function($){var j=s($);return j.matched?c($,j):{matched:!1}};if(o.eat("]"))return{matched:!0};var b=d(o);return b.matched&&o.eat("]"),b}),dist$5={};Object.defineProperty(dist$5,"__esModule",{value:!0});function _classCallCheck$g(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}dist$5.ArrayAssignmentTarget=function o(e){var s=e.elements,a=e.rest;_classCallCheck$g(this,o),this.type="ArrayAssignmentTarget",this.elements=s,this.rest=a};dist$5.ArrayBinding=function o(e){var s=e.elements,a=e.rest;_classCallCheck$g(this,o),this.type="ArrayBinding",this.elements=s,this.rest=a};dist$5.ArrayExpression=function o(e){var s=e.elements;_classCallCheck$g(this,o),this.type="ArrayExpression",this.elements=s};dist$5.ArrowExpression=function o(e){var s=e.isAsync,a=e.params,c=e.body;_classCallCheck$g(this,o),this.type="ArrowExpression",this.isAsync=s,this.params=a,this.body=c};dist$5.AssignmentExpression=function o(e){var s=e.binding,a=e.expression;_classCallCheck$g(this,o),this.type="AssignmentExpression",this.binding=s,this.expression=a};dist$5.AssignmentTargetIdentifier=function o(e){var s=e.name;_classCallCheck$g(this,o),this.type="AssignmentTargetIdentifier",this.name=s};dist$5.AssignmentTargetPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="AssignmentTargetPropertyIdentifier",this.binding=s,this.init=a};dist$5.AssignmentTargetPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$g(this,o),this.type="AssignmentTargetPropertyProperty",this.name=s,this.binding=a};dist$5.AssignmentTargetWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="AssignmentTargetWithDefault",this.binding=s,this.init=a};dist$5.AwaitExpression=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="AwaitExpression",this.expression=s};dist$5.BinaryExpression=function o(e){var s=e.left,a=e.operator,c=e.right;_classCallCheck$g(this,o),this.type="BinaryExpression",this.left=s,this.operator=a,this.right=c};dist$5.BindingIdentifier=function o(e){var s=e.name;_classCallCheck$g(this,o),this.type="BindingIdentifier",this.name=s};dist$5.BindingPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="BindingPropertyIdentifier",this.binding=s,this.init=a};dist$5.BindingPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$g(this,o),this.type="BindingPropertyProperty",this.name=s,this.binding=a};dist$5.BindingWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="BindingWithDefault",this.binding=s,this.init=a};dist$5.Block=function o(e){var s=e.statements;_classCallCheck$g(this,o),this.type="Block",this.statements=s};dist$5.BlockStatement=function o(e){var s=e.block;_classCallCheck$g(this,o),this.type="BlockStatement",this.block=s};dist$5.BreakStatement=function o(e){var s=e.label;_classCallCheck$g(this,o),this.type="BreakStatement",this.label=s};dist$5.CallExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$g(this,o),this.type="CallExpression",this.callee=s,this.arguments=a};dist$5.CatchClause=function o(e){var s=e.binding,a=e.body;_classCallCheck$g(this,o),this.type="CatchClause",this.binding=s,this.body=a};dist$5.ClassDeclaration=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$g(this,o),this.type="ClassDeclaration",this.name=s,this.super=a,this.elements=c};dist$5.ClassElement=function o(e){var s=e.isStatic,a=e.method;_classCallCheck$g(this,o),this.type="ClassElement",this.isStatic=s,this.method=a};dist$5.ClassExpression=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$g(this,o),this.type="ClassExpression",this.name=s,this.super=a,this.elements=c};dist$5.CompoundAssignmentExpression=function o(e){var s=e.binding,a=e.operator,c=e.expression;_classCallCheck$g(this,o),this.type="CompoundAssignmentExpression",this.binding=s,this.operator=a,this.expression=c};dist$5.ComputedMemberAssignmentTarget=function o(e){var s=e.object,a=e.expression;_classCallCheck$g(this,o),this.type="ComputedMemberAssignmentTarget",this.object=s,this.expression=a};dist$5.ComputedMemberExpression=function o(e){var s=e.object,a=e.expression;_classCallCheck$g(this,o),this.type="ComputedMemberExpression",this.object=s,this.expression=a};dist$5.ComputedPropertyName=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="ComputedPropertyName",this.expression=s};dist$5.ConditionalExpression=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$g(this,o),this.type="ConditionalExpression",this.test=s,this.consequent=a,this.alternate=c};dist$5.ContinueStatement=function o(e){var s=e.label;_classCallCheck$g(this,o),this.type="ContinueStatement",this.label=s};dist$5.DataProperty=function o(e){var s=e.name,a=e.expression;_classCallCheck$g(this,o),this.type="DataProperty",this.name=s,this.expression=a};dist$5.DebuggerStatement=function o(){_classCallCheck$g(this,o),this.type="DebuggerStatement"};dist$5.Directive=function o(e){var s=e.rawValue;_classCallCheck$g(this,o),this.type="Directive",this.rawValue=s};dist$5.DoWhileStatement=function o(e){var s=e.body,a=e.test;_classCallCheck$g(this,o),this.type="DoWhileStatement",this.body=s,this.test=a};dist$5.EmptyStatement=function o(){_classCallCheck$g(this,o),this.type="EmptyStatement"};dist$5.Export=function o(e){var s=e.declaration;_classCallCheck$g(this,o),this.type="Export",this.declaration=s};dist$5.ExportAllFrom=function o(e){var s=e.moduleSpecifier;_classCallCheck$g(this,o),this.type="ExportAllFrom",this.moduleSpecifier=s};dist$5.ExportDefault=function o(e){var s=e.body;_classCallCheck$g(this,o),this.type="ExportDefault",this.body=s};dist$5.ExportFrom=function o(e){var s=e.namedExports,a=e.moduleSpecifier;_classCallCheck$g(this,o),this.type="ExportFrom",this.namedExports=s,this.moduleSpecifier=a};dist$5.ExportFromSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$g(this,o),this.type="ExportFromSpecifier",this.name=s,this.exportedName=a};dist$5.ExportLocalSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$g(this,o),this.type="ExportLocalSpecifier",this.name=s,this.exportedName=a};dist$5.ExportLocals=function o(e){var s=e.namedExports;_classCallCheck$g(this,o),this.type="ExportLocals",this.namedExports=s};dist$5.ExpressionStatement=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="ExpressionStatement",this.expression=s};dist$5.ForAwaitStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$g(this,o),this.type="ForAwaitStatement",this.left=s,this.right=a,this.body=c};dist$5.ForInStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$g(this,o),this.type="ForInStatement",this.left=s,this.right=a,this.body=c};dist$5.ForOfStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$g(this,o),this.type="ForOfStatement",this.left=s,this.right=a,this.body=c};dist$5.ForStatement=function o(e){var s=e.init,a=e.test,c=e.update,d=e.body;_classCallCheck$g(this,o),this.type="ForStatement",this.init=s,this.test=a,this.update=c,this.body=d};dist$5.FormalParameters=function o(e){var s=e.items,a=e.rest;_classCallCheck$g(this,o),this.type="FormalParameters",this.items=s,this.rest=a};dist$5.FunctionBody=function o(e){var s=e.directives,a=e.statements;_classCallCheck$g(this,o),this.type="FunctionBody",this.directives=s,this.statements=a};dist$5.FunctionDeclaration=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$g(this,o),this.type="FunctionDeclaration",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$5.FunctionExpression=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$g(this,o),this.type="FunctionExpression",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$5.Getter=function o(e){var s=e.name,a=e.body;_classCallCheck$g(this,o),this.type="Getter",this.name=s,this.body=a};dist$5.IdentifierExpression=function o(e){var s=e.name;_classCallCheck$g(this,o),this.type="IdentifierExpression",this.name=s};dist$5.IfStatement=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$g(this,o),this.type="IfStatement",this.test=s,this.consequent=a,this.alternate=c};dist$5.Import=function o(e){var s=e.defaultBinding,a=e.namedImports,c=e.moduleSpecifier;_classCallCheck$g(this,o),this.type="Import",this.defaultBinding=s,this.namedImports=a,this.moduleSpecifier=c};dist$5.ImportNamespace=function o(e){var s=e.defaultBinding,a=e.namespaceBinding,c=e.moduleSpecifier;_classCallCheck$g(this,o),this.type="ImportNamespace",this.defaultBinding=s,this.namespaceBinding=a,this.moduleSpecifier=c};dist$5.ImportSpecifier=function o(e){var s=e.name,a=e.binding;_classCallCheck$g(this,o),this.type="ImportSpecifier",this.name=s,this.binding=a};dist$5.LabeledStatement=function o(e){var s=e.label,a=e.body;_classCallCheck$g(this,o),this.type="LabeledStatement",this.label=s,this.body=a};dist$5.LiteralBooleanExpression=function o(e){var s=e.value;_classCallCheck$g(this,o),this.type="LiteralBooleanExpression",this.value=s};dist$5.LiteralInfinityExpression=function o(){_classCallCheck$g(this,o),this.type="LiteralInfinityExpression"};dist$5.LiteralNullExpression=function o(){_classCallCheck$g(this,o),this.type="LiteralNullExpression"};dist$5.LiteralNumericExpression=function o(e){var s=e.value;_classCallCheck$g(this,o),this.type="LiteralNumericExpression",this.value=s};dist$5.LiteralRegExpExpression=function o(e){var s=e.pattern,a=e.global,c=e.ignoreCase,d=e.multiLine,_=e.dotAll,b=e.unicode,k=e.sticky;_classCallCheck$g(this,o),this.type="LiteralRegExpExpression",this.pattern=s,this.global=a,this.ignoreCase=c,this.multiLine=d,this.dotAll=_,this.unicode=b,this.sticky=k};dist$5.LiteralStringExpression=function o(e){var s=e.value;_classCallCheck$g(this,o),this.type="LiteralStringExpression",this.value=s};dist$5.Method=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$g(this,o),this.type="Method",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$5.Module=function o(e){var s=e.directives,a=e.items;_classCallCheck$g(this,o),this.type="Module",this.directives=s,this.items=a};dist$5.NewExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$g(this,o),this.type="NewExpression",this.callee=s,this.arguments=a};dist$5.NewTargetExpression=function o(){_classCallCheck$g(this,o),this.type="NewTargetExpression"};dist$5.ObjectAssignmentTarget=function o(e){var s=e.properties,a=e.rest;_classCallCheck$g(this,o),this.type="ObjectAssignmentTarget",this.properties=s,this.rest=a};dist$5.ObjectBinding=function o(e){var s=e.properties,a=e.rest;_classCallCheck$g(this,o),this.type="ObjectBinding",this.properties=s,this.rest=a};dist$5.ObjectExpression=function o(e){var s=e.properties;_classCallCheck$g(this,o),this.type="ObjectExpression",this.properties=s};dist$5.ReturnStatement=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="ReturnStatement",this.expression=s};dist$5.Script=function o(e){var s=e.directives,a=e.statements;_classCallCheck$g(this,o),this.type="Script",this.directives=s,this.statements=a};dist$5.Setter=function o(e){var s=e.name,a=e.param,c=e.body;_classCallCheck$g(this,o),this.type="Setter",this.name=s,this.param=a,this.body=c};dist$5.ShorthandProperty=function o(e){var s=e.name;_classCallCheck$g(this,o),this.type="ShorthandProperty",this.name=s};dist$5.SpreadElement=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="SpreadElement",this.expression=s};dist$5.SpreadProperty=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="SpreadProperty",this.expression=s};dist$5.StaticMemberAssignmentTarget=function o(e){var s=e.object,a=e.property;_classCallCheck$g(this,o),this.type="StaticMemberAssignmentTarget",this.object=s,this.property=a};dist$5.StaticMemberExpression=function o(e){var s=e.object,a=e.property;_classCallCheck$g(this,o),this.type="StaticMemberExpression",this.object=s,this.property=a};dist$5.StaticPropertyName=function o(e){var s=e.value;_classCallCheck$g(this,o),this.type="StaticPropertyName",this.value=s};dist$5.Super=function o(){_classCallCheck$g(this,o),this.type="Super"};dist$5.SwitchCase=function o(e){var s=e.test,a=e.consequent;_classCallCheck$g(this,o),this.type="SwitchCase",this.test=s,this.consequent=a};dist$5.SwitchDefault=function o(e){var s=e.consequent;_classCallCheck$g(this,o),this.type="SwitchDefault",this.consequent=s};dist$5.SwitchStatement=function o(e){var s=e.discriminant,a=e.cases;_classCallCheck$g(this,o),this.type="SwitchStatement",this.discriminant=s,this.cases=a};dist$5.SwitchStatementWithDefault=function o(e){var s=e.discriminant,a=e.preDefaultCases,c=e.defaultCase,d=e.postDefaultCases;_classCallCheck$g(this,o),this.type="SwitchStatementWithDefault",this.discriminant=s,this.preDefaultCases=a,this.defaultCase=c,this.postDefaultCases=d};dist$5.TemplateElement=function o(e){var s=e.rawValue;_classCallCheck$g(this,o),this.type="TemplateElement",this.rawValue=s};dist$5.TemplateExpression=function o(e){var s=e.tag,a=e.elements;_classCallCheck$g(this,o),this.type="TemplateExpression",this.tag=s,this.elements=a};dist$5.ThisExpression=function o(){_classCallCheck$g(this,o),this.type="ThisExpression"};dist$5.ThrowStatement=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="ThrowStatement",this.expression=s};dist$5.TryCatchStatement=function o(e){var s=e.body,a=e.catchClause;_classCallCheck$g(this,o),this.type="TryCatchStatement",this.body=s,this.catchClause=a};dist$5.TryFinallyStatement=function o(e){var s=e.body,a=e.catchClause,c=e.finalizer;_classCallCheck$g(this,o),this.type="TryFinallyStatement",this.body=s,this.catchClause=a,this.finalizer=c};dist$5.UnaryExpression=function o(e){var s=e.operator,a=e.operand;_classCallCheck$g(this,o),this.type="UnaryExpression",this.operator=s,this.operand=a};dist$5.UpdateExpression=function o(e){var s=e.isPrefix,a=e.operator,c=e.operand;_classCallCheck$g(this,o),this.type="UpdateExpression",this.isPrefix=s,this.operator=a,this.operand=c};dist$5.VariableDeclaration=function o(e){var s=e.kind,a=e.declarators;_classCallCheck$g(this,o),this.type="VariableDeclaration",this.kind=s,this.declarators=a};dist$5.VariableDeclarationStatement=function o(e){var s=e.declaration;_classCallCheck$g(this,o),this.type="VariableDeclarationStatement",this.declaration=s};dist$5.VariableDeclarator=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="VariableDeclarator",this.binding=s,this.init=a};dist$5.WhileStatement=function o(e){var s=e.test,a=e.body;_classCallCheck$g(this,o),this.type="WhileStatement",this.test=s,this.body=a};dist$5.WithStatement=function o(e){var s=e.object,a=e.body;_classCallCheck$g(this,o),this.type="WithStatement",this.object=s,this.body=a};dist$5.YieldExpression=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="YieldExpression",this.expression=s};dist$5.YieldGeneratorExpression=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="YieldGeneratorExpression",this.expression=s};Object.defineProperty(parser$1,"__esModule",{value:!0});parser$1.GenericParser=void 0;var _createClass$c=function(){function o(e,s){for(var a=0;a":Precedence$1.Relational,"<=":Precedence$1.Relational,">=":Precedence$1.Relational,in:Precedence$1.Relational,instanceof:Precedence$1.Relational,"<<":Precedence$1.BitwiseSHIFT,">>":Precedence$1.BitwiseSHIFT,">>>":Precedence$1.BitwiseSHIFT,"+":Precedence$1.Additive,"-":Precedence$1.Additive,"*":Precedence$1.Multiplicative,"%":Precedence$1.Multiplicative,"/":Precedence$1.Multiplicative};function isValidSimpleAssignmentTarget(o){if(o==null)return!1;switch(o.type){case"IdentifierExpression":case"ComputedMemberExpression":case"StaticMemberExpression":return!0}return!1}function isPrefixOperator(o){switch(o.type){case _tokenizer.TokenType.INC:case _tokenizer.TokenType.DEC:case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.BIT_NOT:case _tokenizer.TokenType.NOT:case _tokenizer.TokenType.DELETE:case _tokenizer.TokenType.VOID:case _tokenizer.TokenType.TYPEOF:return!0}return!1}function isUpdateOperator(o){return o.type===_tokenizer.TokenType.INC||o.type===_tokenizer.TokenType.DEC}parser$1.GenericParser=function(o){_inherits$7(e,o);function e(s){_classCallCheck$f(this,e);var a=_possibleConstructorReturn$7(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,s));return a.allowIn=!0,a.inFunctionBody=!1,a.inParameter=!1,a.allowYieldExpression=!1,a.allowAwaitExpression=!1,a.firstAwaitLocation=null,a.module=!1,a.moduleIsTheGoalSymbol=!1,a.strict=!1,a.isBindingElement=!0,a.isAssignmentTarget=!0,a.firstExprError=null,a}return _createClass$c(e,[{key:"match",value:function(a){return this.lookahead.type===a}},{key:"matchIdentifier",value:function(){switch(this.lookahead.type){case _tokenizer.TokenType.IDENTIFIER:case _tokenizer.TokenType.LET:case _tokenizer.TokenType.YIELD:case _tokenizer.TokenType.ASYNC:return!0;case _tokenizer.TokenType.AWAIT:return this.moduleIsTheGoalSymbol?!1:(this.firstAwaitLocation===null&&(this.firstAwaitLocation=this.getLocation()),!0);case _tokenizer.TokenType.ESCAPED_KEYWORD:return this.lookahead.value==="await"&&!this.moduleIsTheGoalSymbol?(this.firstAwaitLocation===null&&(this.firstAwaitLocation=this.getLocation()),!0):this.lookahead.value==="let"||this.lookahead.value==="yield"||this.lookahead.value==="async"}return!1}},{key:"eat",value:function(a){return this.lookahead.type===a?this.lex():null}},{key:"expect",value:function(a){if(this.lookahead.type===a)return this.lex();throw this.createUnexpected(this.lookahead)}},{key:"matchContextualKeyword",value:function(a){return this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===a}},{key:"expectContextualKeyword",value:function(a){if(this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===a)return this.lex();throw this.createUnexpected(this.lookahead)}},{key:"eatContextualKeyword",value:function(a){return this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===a?this.lex():null}},{key:"consumeSemicolon",value:function(){if(!this.eat(_tokenizer.TokenType.SEMICOLON)&&!this.hasLineTerminatorBeforeNext&&!this.eof()&&!this.match(_tokenizer.TokenType.RBRACE))throw this.createUnexpected(this.lookahead)}},{key:"startNode",value:function(a){return a}},{key:"copyNode",value:function(a,c){return c}},{key:"finishNode",value:function(a){return a}},{key:"parseModule",value:function(){this.moduleIsTheGoalSymbol=this.module=this.strict=!0,this.lookahead=this.advance();var a=this.startNode(),c=this.parseBody(),d=c.directives,_=c.statements;if(!this.match(_tokenizer.TokenType.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new AST.Module({directives:d,items:_}),a)}},{key:"parseScript",value:function(){this.lookahead=this.advance();var a=this.startNode(),c=this.parseBody(),d=c.directives,_=c.statements;if(!this.match(_tokenizer.TokenType.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new AST.Script({directives:d,statements:_}),a)}},{key:"parseFunctionBody",value:function(){var a=this.inFunctionBody,c=this.module,d=this.strict;this.inFunctionBody=!0,this.module=!1;var _=this.startNode();this.expect(_tokenizer.TokenType.LBRACE);var b=new AST.FunctionBody(this.parseBody());return this.expect(_tokenizer.TokenType.RBRACE),b=this.finishNode(b,_),this.inFunctionBody=a,this.module=c,this.strict=d,b}},{key:"parseBody",value:function(){for(var a=[],c=[],d=!0,_=null;!(this.eof()||this.match(_tokenizer.TokenType.RBRACE));){var b=this.lookahead,k=b.slice.text,$=b.type===_tokenizer.TokenType.STRING,j=this.module,_e=this.getLocation(),et=this.startNode(),tt=j?this.parseModuleItem():this.parseStatementListItem();if(d)if($&&tt.type==="ExpressionStatement"&&tt.expression.type==="LiteralStringExpression"){!_&&b.octal&&(_=this.createErrorWithLocation(_e,"Unexpected legacy octal escape sequence: \\"+b.octal));var nt=k.slice(1,-1);nt==="use strict"&&(this.strict=!0),a.push(this.finishNode(new AST.Directive({rawValue:nt}),et))}else{if(d=!1,_&&this.strict)throw _;c.push(tt)}else c.push(tt)}if(_&&this.strict)throw _;return{directives:a,statements:c}}},{key:"parseImportSpecifier",value:function(){var a=this.startNode(),c=void 0;if(this.matchIdentifier()){if(c=this.parseIdentifier(),!this.eatContextualKeyword("as"))return this.finishNode(new AST.ImportSpecifier({name:null,binding:this.finishNode(new AST.BindingIdentifier({name:c}),a)}),a)}else this.lookahead.type.klass.isIdentifierName&&(c=this.parseIdentifierName(),this.expectContextualKeyword("as"));return this.finishNode(new AST.ImportSpecifier({name:c,binding:this.parseBindingIdentifier()}),a)}},{key:"parseNameSpaceBinding",value:function(){return this.expect(_tokenizer.TokenType.MUL),this.expectContextualKeyword("as"),this.parseBindingIdentifier()}},{key:"parseNamedImports",value:function(){var a=[];for(this.expect(_tokenizer.TokenType.LBRACE);!this.eat(_tokenizer.TokenType.RBRACE);)if(a.push(this.parseImportSpecifier()),!this.eat(_tokenizer.TokenType.COMMA)){this.expect(_tokenizer.TokenType.RBRACE);break}return a}},{key:"parseFromClause",value:function(){this.expectContextualKeyword("from");var a=this.expect(_tokenizer.TokenType.STRING).str;return a}},{key:"parseImportDeclaration",value:function(){var a=this.startNode(),c=null,d=void 0;if(this.expect(_tokenizer.TokenType.IMPORT),this.match(_tokenizer.TokenType.STRING))return d=this.lex().str,this.consumeSemicolon(),this.finishNode(new AST.Import({defaultBinding:null,namedImports:[],moduleSpecifier:d}),a);if(this.matchIdentifier()&&(c=this.parseBindingIdentifier(),!this.eat(_tokenizer.TokenType.COMMA))){var _=new AST.Import({defaultBinding:c,namedImports:[],moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(_,a)}if(this.match(_tokenizer.TokenType.MUL)){var b=new AST.ImportNamespace({defaultBinding:c,namespaceBinding:this.parseNameSpaceBinding(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(b,a)}else if(this.match(_tokenizer.TokenType.LBRACE)){var k=new AST.Import({defaultBinding:c,namedImports:this.parseNamedImports(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(k,a)}throw this.createUnexpected(this.lookahead)}},{key:"parseExportSpecifier",value:function(){var a=this.startNode(),c=this.finishNode({type:EXPORT_UNKNOWN_SPECIFIER,isIdentifier:this.matchIdentifier(),value:this.parseIdentifierName()},a);if(this.eatContextualKeyword("as")){var d=this.parseIdentifierName();return this.finishNode({name:c,exportedName:d},a)}return this.finishNode({name:c,exportedName:null},a)}},{key:"parseExportClause",value:function(){this.expect(_tokenizer.TokenType.LBRACE);for(var a=[];!this.eat(_tokenizer.TokenType.RBRACE);)if(a.push(this.parseExportSpecifier()),!this.eat(_tokenizer.TokenType.COMMA)){this.expect(_tokenizer.TokenType.RBRACE);break}return a}},{key:"parseExportDeclaration",value:function(){var a=this,c=this.startNode(),d=void 0;switch(this.expect(_tokenizer.TokenType.EXPORT),this.lookahead.type){case _tokenizer.TokenType.MUL:this.lex(),d=new AST.ExportAllFrom({moduleSpecifier:this.parseFromClause()}),this.consumeSemicolon();break;case _tokenizer.TokenType.LBRACE:{var _=this.parseExportClause(),b=null;this.matchContextualKeyword("from")?(b=this.parseFromClause(),d=new AST.ExportFrom({namedExports:_.map(function(_e){return a.copyNode(_e,new AST.ExportFromSpecifier({name:_e.name.value,exportedName:_e.exportedName}))}),moduleSpecifier:b})):(_.forEach(function(_e){var et=_e.name;if(!et.isIdentifier)throw a.createError(_errors$1.ErrorMessages.ILLEGAL_EXPORTED_NAME)}),d=new AST.ExportLocals({namedExports:_.map(function(_e){return a.copyNode(_e,new AST.ExportLocalSpecifier({name:a.copyNode(_e.name,new AST.IdentifierExpression({name:_e.name.value})),exportedName:_e.exportedName}))})})),this.consumeSemicolon();break}case _tokenizer.TokenType.CLASS:d=new AST.Export({declaration:this.parseClass({isExpr:!1,inDefault:!1})});break;case _tokenizer.TokenType.FUNCTION:d=new AST.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1})});break;case _tokenizer.TokenType.ASYNC:{var k=this.startNode();this.lex(),d=new AST.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:k})});break}case _tokenizer.TokenType.DEFAULT:switch(this.lex(),this.lookahead.type){case _tokenizer.TokenType.FUNCTION:d=new AST.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!0,isAsync:!1})});break;case _tokenizer.TokenType.CLASS:d=new AST.ExportDefault({body:this.parseClass({isExpr:!1,inDefault:!0})});break;case _tokenizer.TokenType.ASYNC:{var $=this.startNode(),j=this.saveLexerState();if(this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION)){d=new AST.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!1,isAsync:!0,startState:$})});break}this.restoreLexerState(j)}default:d=new AST.ExportDefault({body:this.parseAssignmentExpression()}),this.consumeSemicolon();break}break;case _tokenizer.TokenType.VAR:case _tokenizer.TokenType.LET:case _tokenizer.TokenType.CONST:d=new AST.Export({declaration:this.parseVariableDeclaration(!0)}),this.consumeSemicolon();break;default:throw this.createUnexpected(this.lookahead)}return this.finishNode(d,c)}},{key:"parseModuleItem",value:function(){switch(this.lookahead.type){case _tokenizer.TokenType.IMPORT:return this.parseImportDeclaration();case _tokenizer.TokenType.EXPORT:return this.parseExportDeclaration();default:return this.parseStatementListItem()}}},{key:"lookaheadLexicalDeclaration",value:function(){if(this.match(_tokenizer.TokenType.LET)||this.match(_tokenizer.TokenType.CONST)){var a=this.saveLexerState();if(this.lex(),this.matchIdentifier()||this.match(_tokenizer.TokenType.LBRACE)||this.match(_tokenizer.TokenType.LBRACK))return this.restoreLexerState(a),!0;this.restoreLexerState(a)}return!1}},{key:"parseStatementListItem",value:function(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case _tokenizer.TokenType.FUNCTION:return this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1});case _tokenizer.TokenType.CLASS:return this.parseClass({isExpr:!1,inDefault:!1});case _tokenizer.TokenType.ASYNC:{var a=this.getLocation(),c=this.saveLexerState();return this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:a}):(this.restoreLexerState(c),this.parseStatement())}default:if(this.lookaheadLexicalDeclaration()){var d=this.startNode();return this.finishNode(this.parseVariableDeclarationStatement(),d)}return this.parseStatement()}}},{key:"parseStatement",value:function(){var a=this.startNode(),c=this.isolateCoverGrammar(this.parseStatementHelper);return this.finishNode(c,a)}},{key:"parseStatementHelper",value:function(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case _tokenizer.TokenType.SEMICOLON:return this.parseEmptyStatement();case _tokenizer.TokenType.LBRACE:return this.parseBlockStatement();case _tokenizer.TokenType.LPAREN:return this.parseExpressionStatement();case _tokenizer.TokenType.BREAK:return this.parseBreakStatement();case _tokenizer.TokenType.CONTINUE:return this.parseContinueStatement();case _tokenizer.TokenType.DEBUGGER:return this.parseDebuggerStatement();case _tokenizer.TokenType.DO:return this.parseDoWhileStatement();case _tokenizer.TokenType.FOR:return this.parseForStatement();case _tokenizer.TokenType.IF:return this.parseIfStatement();case _tokenizer.TokenType.RETURN:return this.parseReturnStatement();case _tokenizer.TokenType.SWITCH:return this.parseSwitchStatement();case _tokenizer.TokenType.THROW:return this.parseThrowStatement();case _tokenizer.TokenType.TRY:return this.parseTryStatement();case _tokenizer.TokenType.VAR:return this.parseVariableDeclarationStatement();case _tokenizer.TokenType.WHILE:return this.parseWhileStatement();case _tokenizer.TokenType.WITH:return this.parseWithStatement();case _tokenizer.TokenType.FUNCTION:case _tokenizer.TokenType.CLASS:throw this.createUnexpected(this.lookahead);default:{var a=this.saveLexerState();if(this.eat(_tokenizer.TokenType.LET)){if(this.match(_tokenizer.TokenType.LBRACK))throw this.restoreLexerState(a),this.createUnexpected(this.lookahead);this.restoreLexerState(a)}else if(this.eat(_tokenizer.TokenType.ASYNC)){if(!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION))throw this.createUnexpected(this.lookahead);this.restoreLexerState(a)}var c=this.parseExpression();if(c.type==="IdentifierExpression"&&this.eat(_tokenizer.TokenType.COLON)){var d=this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement();return new AST.LabeledStatement({label:c.name,body:d})}return this.consumeSemicolon(),new AST.ExpressionStatement({expression:c})}}}},{key:"parseEmptyStatement",value:function(){return this.lex(),new AST.EmptyStatement}},{key:"parseBlockStatement",value:function(){return new AST.BlockStatement({block:this.parseBlock()})}},{key:"parseExpressionStatement",value:function(){var a=this.parseExpression();return this.consumeSemicolon(),new AST.ExpressionStatement({expression:a})}},{key:"parseBreakStatement",value:function(){if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.BreakStatement({label:null});var a=null;return this.matchIdentifier()&&(a=this.parseIdentifier()),this.consumeSemicolon(),new AST.BreakStatement({label:a})}},{key:"parseContinueStatement",value:function(){if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.ContinueStatement({label:null});var a=null;return this.matchIdentifier()&&(a=this.parseIdentifier()),this.consumeSemicolon(),new AST.ContinueStatement({label:a})}},{key:"parseDebuggerStatement",value:function(){return this.lex(),this.consumeSemicolon(),new AST.DebuggerStatement}},{key:"parseDoWhileStatement",value:function(){this.lex();var a=this.parseStatement();this.expect(_tokenizer.TokenType.WHILE),this.expect(_tokenizer.TokenType.LPAREN);var c=this.parseExpression();return this.expect(_tokenizer.TokenType.RPAREN),this.eat(_tokenizer.TokenType.SEMICOLON),new AST.DoWhileStatement({body:a,test:c})}},{key:"parseForStatement",value:function(){this.lex();var a=this.allowAwaitExpression&&this.eat(_tokenizer.TokenType.AWAIT);this.expect(_tokenizer.TokenType.LPAREN);var c=null,d=null;if(a&&this.match(_tokenizer.TokenType.SEMICOLON))throw this.createUnexpected(this.lookahead);if(this.eat(_tokenizer.TokenType.SEMICOLON))return this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(d=this.parseExpression()),new AST.ForStatement({init:null,test:c,update:d,body:this.getIteratorStatementEpilogue()});var _=this.match(_tokenizer.TokenType.LET),b=this.lookaheadLexicalDeclaration(),k=this.startNode();if(this.match(_tokenizer.TokenType.VAR)||b){var $=this.allowIn;this.allowIn=!1;var j=this.parseVariableDeclaration(!1);if(this.allowIn=$,j.declarators.length===1&&(this.match(_tokenizer.TokenType.IN)||this.matchContextualKeyword("of"))){var _e=void 0,et=j.declarators[0];if(this.match(_tokenizer.TokenType.IN)){if(a)throw this.createUnexpected(this.lookahead);if(et.init!==null&&(this.strict||j.kind!=="var"||et.binding.type!=="BindingIdentifier"))throw this.createError(_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_IN);_e=AST.ForInStatement,this.lex(),d=this.parseExpression()}else{if(et.init!==null)throw this.createError(a?_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_AWAIT:_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_OF);a?_e=AST.ForAwaitStatement:_e=AST.ForOfStatement,this.lex(),d=this.parseAssignmentExpression()}var tt=this.getIteratorStatementEpilogue();return new _e({left:j,right:d,body:tt})}else if(a)throw this.createUnexpected(this.lookahead);if(this.expect(_tokenizer.TokenType.SEMICOLON),j.declarators.some(function(at){return at.binding.type!=="BindingIdentifier"&&at.init===null}))throw this.createError(_errors$1.ErrorMessages.UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT);return this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(d=this.parseExpression()),new AST.ForStatement({init:j,test:c,update:d,body:this.getIteratorStatementEpilogue()})}var nt=this.allowIn;this.allowIn=!1;var st=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget);if(this.allowIn=nt,this.isAssignmentTarget&&st.type!=="AssignmentExpression"&&(this.match(_tokenizer.TokenType.IN)||this.matchContextualKeyword("of"))){if((st.type==="ObjectAssignmentTarget"||st.type==="ArrayAssignmentTarget")&&(this.firstExprError=null),_&&this.matchContextualKeyword("of"))throw this.createError(a?_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_AWAIT:_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_OF);var rt=void 0;if(this.match(_tokenizer.TokenType.IN)){if(a)throw this.createUnexpected(this.lookahead);rt=AST.ForInStatement,this.lex(),d=this.parseExpression()}else a?rt=AST.ForAwaitStatement:rt=AST.ForOfStatement,this.lex(),d=this.parseAssignmentExpression();return new rt({left:this.transformDestructuring(st),right:d,body:this.getIteratorStatementEpilogue()})}else if(a)throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_AWAIT);if(this.firstExprError)throw this.firstExprError;for(;this.eat(_tokenizer.TokenType.COMMA);){var it=this.parseAssignmentExpression();st=this.finishNode(new AST.BinaryExpression({left:st,operator:",",right:it}),k)}if(this.match(_tokenizer.TokenType.IN))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_IN);if(this.matchContextualKeyword("of"))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_OF);return this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(d=this.parseExpression()),new AST.ForStatement({init:st,test:c,update:d,body:this.getIteratorStatementEpilogue()})}},{key:"getIteratorStatementEpilogue",value:function(){this.expect(_tokenizer.TokenType.RPAREN);var a=this.parseStatement();return a}},{key:"parseIfStatementChild",value:function(){return this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement()}},{key:"parseIfStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var a=this.parseExpression();this.expect(_tokenizer.TokenType.RPAREN);var c=this.parseIfStatementChild(),d=null;return this.eat(_tokenizer.TokenType.ELSE)&&(d=this.parseIfStatementChild()),new AST.IfStatement({test:a,consequent:c,alternate:d})}},{key:"parseReturnStatement",value:function(){if(!this.inFunctionBody)throw this.createError(_errors$1.ErrorMessages.ILLEGAL_RETURN);if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.ReturnStatement({expression:null});var a=null;return!this.match(_tokenizer.TokenType.RBRACE)&&!this.eof()&&(a=this.parseExpression()),this.consumeSemicolon(),new AST.ReturnStatement({expression:a})}},{key:"parseSwitchStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var a=this.parseExpression();if(this.expect(_tokenizer.TokenType.RPAREN),this.expect(_tokenizer.TokenType.LBRACE),this.eat(_tokenizer.TokenType.RBRACE))return new AST.SwitchStatement({discriminant:a,cases:[]});var c=this.parseSwitchCases();if(this.match(_tokenizer.TokenType.DEFAULT)){var d=this.parseSwitchDefault(),_=this.parseSwitchCases();if(this.match(_tokenizer.TokenType.DEFAULT))throw this.createError(_errors$1.ErrorMessages.MULTIPLE_DEFAULTS_IN_SWITCH);return this.expect(_tokenizer.TokenType.RBRACE),new AST.SwitchStatementWithDefault({discriminant:a,preDefaultCases:c,defaultCase:d,postDefaultCases:_})}return this.expect(_tokenizer.TokenType.RBRACE),new AST.SwitchStatement({discriminant:a,cases:c})}},{key:"parseSwitchCases",value:function(){for(var a=[];!(this.eof()||this.match(_tokenizer.TokenType.RBRACE)||this.match(_tokenizer.TokenType.DEFAULT));)a.push(this.parseSwitchCase());return a}},{key:"parseSwitchCase",value:function(){var a=this.startNode();return this.expect(_tokenizer.TokenType.CASE),this.finishNode(new AST.SwitchCase({test:this.parseExpression(),consequent:this.parseSwitchCaseBody()}),a)}},{key:"parseSwitchDefault",value:function(){var a=this.startNode();return this.expect(_tokenizer.TokenType.DEFAULT),this.finishNode(new AST.SwitchDefault({consequent:this.parseSwitchCaseBody()}),a)}},{key:"parseSwitchCaseBody",value:function(){return this.expect(_tokenizer.TokenType.COLON),this.parseStatementListInSwitchCaseBody()}},{key:"parseStatementListInSwitchCaseBody",value:function(){for(var a=[];!(this.eof()||this.match(_tokenizer.TokenType.RBRACE)||this.match(_tokenizer.TokenType.DEFAULT)||this.match(_tokenizer.TokenType.CASE));)a.push(this.parseStatementListItem());return a}},{key:"parseThrowStatement",value:function(){var a=this.lex();if(this.hasLineTerminatorBeforeNext)throw this.createErrorWithLocation(a,_errors$1.ErrorMessages.NEWLINE_AFTER_THROW);var c=this.parseExpression();return this.consumeSemicolon(),new AST.ThrowStatement({expression:c})}},{key:"parseTryStatement",value:function(){this.lex();var a=this.parseBlock();if(this.match(_tokenizer.TokenType.CATCH)){var c=this.parseCatchClause();if(this.eat(_tokenizer.TokenType.FINALLY)){var d=this.parseBlock();return new AST.TryFinallyStatement({body:a,catchClause:c,finalizer:d})}return new AST.TryCatchStatement({body:a,catchClause:c})}if(this.eat(_tokenizer.TokenType.FINALLY)){var _=this.parseBlock();return new AST.TryFinallyStatement({body:a,catchClause:null,finalizer:_})}throw this.createError(_errors$1.ErrorMessages.NO_CATCH_OR_FINALLY)}},{key:"parseVariableDeclarationStatement",value:function(){var a=this.parseVariableDeclaration(!0);return this.consumeSemicolon(),new AST.VariableDeclarationStatement({declaration:a})}},{key:"parseWhileStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var a=this.parseExpression(),c=this.getIteratorStatementEpilogue();return new AST.WhileStatement({test:a,body:c})}},{key:"parseWithStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var a=this.parseExpression();this.expect(_tokenizer.TokenType.RPAREN);var c=this.parseStatement();return new AST.WithStatement({object:a,body:c})}},{key:"parseCatchClause",value:function(){var a=this.startNode();if(this.lex(),this.expect(_tokenizer.TokenType.LPAREN),this.match(_tokenizer.TokenType.RPAREN)||this.match(_tokenizer.TokenType.LPAREN))throw this.createUnexpected(this.lookahead);var c=this.parseBindingTarget();this.expect(_tokenizer.TokenType.RPAREN);var d=this.parseBlock();return this.finishNode(new AST.CatchClause({binding:c,body:d}),a)}},{key:"parseBlock",value:function(){var a=this.startNode();this.expect(_tokenizer.TokenType.LBRACE);for(var c=[];!this.match(_tokenizer.TokenType.RBRACE);)c.push(this.parseStatementListItem());return this.expect(_tokenizer.TokenType.RBRACE),this.finishNode(new AST.Block({statements:c}),a)}},{key:"parseVariableDeclaration",value:function(a){var c=this.startNode(),d=this.lex(),_=d.type===_tokenizer.TokenType.VAR?"var":d.type===_tokenizer.TokenType.CONST?"const":"let",b=this.parseVariableDeclaratorList(a);return this.finishNode(new AST.VariableDeclaration({kind:_,declarators:b}),c)}},{key:"parseVariableDeclaratorList",value:function(a){var c=[];do c.push(this.parseVariableDeclarator(a));while(this.eat(_tokenizer.TokenType.COMMA));return c}},{key:"parseVariableDeclarator",value:function(a){var c=this.startNode();if(this.match(_tokenizer.TokenType.LPAREN))throw this.createUnexpected(this.lookahead);var d=this.allowIn;this.allowIn=!0;var _=this.parseBindingTarget();this.allowIn=d,a&&_.type!=="BindingIdentifier"&&!this.match(_tokenizer.TokenType.ASSIGN)&&this.expect(_tokenizer.TokenType.ASSIGN);var b=null;return this.eat(_tokenizer.TokenType.ASSIGN)&&(b=this.parseAssignmentExpression()),this.finishNode(new AST.VariableDeclarator({binding:_,init:b}),c)}},{key:"isolateCoverGrammar",value:function(a){var c=this.isBindingElement,d=this.isAssignmentTarget,_=this.firstExprError,b=void 0;if(this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,b=a.call(this),this.firstExprError!==null)throw this.firstExprError;return this.isBindingElement=c,this.isAssignmentTarget=d,this.firstExprError=_,b}},{key:"inheritCoverGrammar",value:function(a){var c=this.isBindingElement,d=this.isAssignmentTarget,_=this.firstExprError,b=void 0;return this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,b=a.call(this),this.isBindingElement=this.isBindingElement&&c,this.isAssignmentTarget=this.isAssignmentTarget&&d,this.firstExprError=_||this.firstExprError,b}},{key:"parseExpression",value:function(){var a=this.startNode(),c=this.parseAssignmentExpression();if(this.match(_tokenizer.TokenType.COMMA))for(;!this.eof()&&this.match(_tokenizer.TokenType.COMMA);){this.lex();var d=this.parseAssignmentExpression();c=this.finishNode(new AST.BinaryExpression({left:c,operator:",",right:d}),a)}return c}},{key:"finishArrowParams",value:function(a){var c=a.params,d=c===void 0?null:c,_=a.rest,b=_===void 0?null:_;if(a.type!==ARROW_EXPRESSION_PARAMS)if(a.type==="IdentifierExpression")d=[this.targetToBinding(this.transformDestructuring(a))];else throw this.createUnexpected(this.lookahead);return this.copyNode(a,new AST.FormalParameters({items:d,rest:b}))}},{key:"parseArrowExpressionTail",value:function(a,c,d){this.expect(_tokenizer.TokenType.ARROW);var _=this.allowYieldExpression,b=this.allowAwaitExpression,k=this.firstAwaitLocation;this.allowYieldExpression=!1,this.allowAwaitExpression=c,this.firstAwaitLocation=null;var $=void 0;if(this.match(_tokenizer.TokenType.LBRACE)){var j=this.allowIn;this.allowIn=!0,$=this.parseFunctionBody(),this.allowIn=j}else $=this.parseAssignmentExpression();return this.allowYieldExpression=_,this.allowAwaitExpression=b,this.firstAwaitLocation=k,this.finishNode(new AST.ArrowExpression({isAsync:c,params:a,body:$}),d)}},{key:"parseAssignmentExpression",value:function(){return this.isolateCoverGrammar(this.parseAssignmentExpressionOrTarget)}},{key:"parseAssignmentExpressionOrTarget",value:function(){var a=this.startNode();if(this.allowYieldExpression&&this.match(_tokenizer.TokenType.YIELD))return this.isBindingElement=this.isAssignmentTarget=!1,this.parseYieldExpression();var c=this.parseConditionalExpression();if(!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.ARROW)){this.isBindingElement=this.isAssignmentTarget=!1,this.firstExprError=null;var d=c.type===ARROW_EXPRESSION_PARAMS&&c.isAsync;return this.parseArrowExpressionTail(this.finishArrowParams(c),d,a)}var _=!1,b=this.lookahead;switch(b.type){case _tokenizer.TokenType.ASSIGN_BIT_OR:case _tokenizer.TokenType.ASSIGN_BIT_XOR:case _tokenizer.TokenType.ASSIGN_BIT_AND:case _tokenizer.TokenType.ASSIGN_SHL:case _tokenizer.TokenType.ASSIGN_SHR:case _tokenizer.TokenType.ASSIGN_SHR_UNSIGNED:case _tokenizer.TokenType.ASSIGN_ADD:case _tokenizer.TokenType.ASSIGN_SUB:case _tokenizer.TokenType.ASSIGN_MUL:case _tokenizer.TokenType.ASSIGN_DIV:case _tokenizer.TokenType.ASSIGN_MOD:case _tokenizer.TokenType.ASSIGN_EXP:_=!0;break}if(_){if(!this.isAssignmentTarget||!isValidSimpleAssignmentTarget(c))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_ASSIGNMENT);c=this.transformDestructuring(c)}else if(b.type===_tokenizer.TokenType.ASSIGN){if(!this.isAssignmentTarget)throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_ASSIGNMENT);c=this.transformDestructuring(c)}else return c;this.lex();var k=this.parseAssignmentExpression();this.firstExprError=null;var $=void 0;return b.type===_tokenizer.TokenType.ASSIGN?$=new AST.AssignmentExpression({binding:c,expression:k}):($=new AST.CompoundAssignmentExpression({binding:c,operator:b.type.name,expression:k}),this.isBindingElement=this.isAssignmentTarget=!1),this.finishNode($,a)}},{key:"targetToBinding",value:function(a){var c=this;if(a===null)return null;switch(a.type){case"AssignmentTargetIdentifier":return this.copyNode(a,new AST.BindingIdentifier({name:a.name}));case"ArrayAssignmentTarget":return this.copyNode(a,new AST.ArrayBinding({elements:a.elements.map(function(d){return c.targetToBinding(d)}),rest:this.targetToBinding(a.rest)}));case"ObjectAssignmentTarget":return this.copyNode(a,new AST.ObjectBinding({properties:a.properties.map(function(d){return c.targetToBinding(d)}),rest:this.targetToBinding(a.rest)}));case"AssignmentTargetPropertyIdentifier":return this.copyNode(a,new AST.BindingPropertyIdentifier({binding:this.targetToBinding(a.binding),init:a.init}));case"AssignmentTargetPropertyProperty":return this.copyNode(a,new AST.BindingPropertyProperty({name:a.name,binding:this.targetToBinding(a.binding)}));case"AssignmentTargetWithDefault":return this.copyNode(a,new AST.BindingWithDefault({binding:this.targetToBinding(a.binding),init:a.init}))}throw new Error("Not reached")}},{key:"transformDestructuring",value:function(a){var c=this;switch(a.type){case"DataProperty":return this.copyNode(a,new AST.AssignmentTargetPropertyProperty({name:a.name,binding:this.transformDestructuringWithDefault(a.expression)}));case"ShorthandProperty":return this.copyNode(a,new AST.AssignmentTargetPropertyIdentifier({binding:this.copyNode(a,new AST.AssignmentTargetIdentifier({name:a.name.name})),init:null}));case"ObjectExpression":{var d=a.properties.length>0?a.properties[a.properties.length-1]:void 0;return d!=null&&d.type==="SpreadProperty"?this.copyNode(a,new AST.ObjectAssignmentTarget({properties:a.properties.slice(0,-1).map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:this.transformDestructuring(d.expression)})):this.copyNode(a,new AST.ObjectAssignmentTarget({properties:a.properties.map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:null}))}case"ArrayExpression":{var _=a.elements[a.elements.length-1];return _!=null&&_.type==="SpreadElement"?this.copyNode(a,new AST.ArrayAssignmentTarget({elements:a.elements.slice(0,-1).map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:this.copyNode(_.expression,this.transformDestructuring(_.expression))})):this.copyNode(a,new AST.ArrayAssignmentTarget({elements:a.elements.map(function(b){return b&&c.transformDestructuringWithDefault(b)}),rest:null}))}case"IdentifierExpression":return this.copyNode(a,new AST.AssignmentTargetIdentifier({name:a.name}));case"StaticPropertyName":return this.copyNode(a,new AST.AssignmentTargetIdentifier({name:a.value}));case"ComputedMemberExpression":return this.copyNode(a,new AST.ComputedMemberAssignmentTarget({object:a.object,expression:a.expression}));case"StaticMemberExpression":return this.copyNode(a,new AST.StaticMemberAssignmentTarget({object:a.object,property:a.property}));case"ArrayAssignmentTarget":case"ObjectAssignmentTarget":case"ComputedMemberAssignmentTarget":case"StaticMemberAssignmentTarget":case"AssignmentTargetIdentifier":case"AssignmentTargetPropertyIdentifier":case"AssignmentTargetPropertyProperty":case"AssignmentTargetWithDefault":return a}throw new Error("Not reached")}},{key:"transformDestructuringWithDefault",value:function(a){switch(a.type){case"AssignmentExpression":return this.copyNode(a,new AST.AssignmentTargetWithDefault({binding:this.transformDestructuring(a.binding),init:a.expression}))}return this.transformDestructuring(a)}},{key:"lookaheadAssignmentExpression",value:function(){if(this.matchIdentifier())return!0;switch(this.lookahead.type){case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.ASSIGN_DIV:case _tokenizer.TokenType.BIT_NOT:case _tokenizer.TokenType.CLASS:case _tokenizer.TokenType.DEC:case _tokenizer.TokenType.DELETE:case _tokenizer.TokenType.DIV:case _tokenizer.TokenType.FALSE:case _tokenizer.TokenType.FUNCTION:case _tokenizer.TokenType.INC:case _tokenizer.TokenType.LBRACE:case _tokenizer.TokenType.LBRACK:case _tokenizer.TokenType.LPAREN:case _tokenizer.TokenType.NEW:case _tokenizer.TokenType.NOT:case _tokenizer.TokenType.NULL:case _tokenizer.TokenType.NUMBER:case _tokenizer.TokenType.STRING:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.SUPER:case _tokenizer.TokenType.THIS:case _tokenizer.TokenType.TRUE:case _tokenizer.TokenType.TYPEOF:case _tokenizer.TokenType.VOID:case _tokenizer.TokenType.TEMPLATE:return!0}return!1}},{key:"parseYieldExpression",value:function(){var a=this.startNode();if(this.lex(),this.hasLineTerminatorBeforeNext)return this.finishNode(new AST.YieldExpression({expression:null}),a);var c=!!this.eat(_tokenizer.TokenType.MUL),d=null;(c||this.lookaheadAssignmentExpression())&&(d=this.parseAssignmentExpression());var _=c?AST.YieldGeneratorExpression:AST.YieldExpression;return this.finishNode(new _({expression:d}),a)}},{key:"parseConditionalExpression",value:function(){var a=this.startNode(),c=this.parseBinaryExpression();if(this.firstExprError)return c;if(this.eat(_tokenizer.TokenType.CONDITIONAL)){this.isBindingElement=this.isAssignmentTarget=!1;var d=this.allowIn;this.allowIn=!0;var _=this.isolateCoverGrammar(this.parseAssignmentExpression);this.allowIn=d,this.expect(_tokenizer.TokenType.COLON);var b=this.isolateCoverGrammar(this.parseAssignmentExpression);return this.finishNode(new AST.ConditionalExpression({test:c,consequent:_,alternate:b}),a)}return c}},{key:"isBinaryOperator",value:function(a){switch(a){case _tokenizer.TokenType.OR:case _tokenizer.TokenType.AND:case _tokenizer.TokenType.BIT_OR:case _tokenizer.TokenType.BIT_XOR:case _tokenizer.TokenType.BIT_AND:case _tokenizer.TokenType.EQ:case _tokenizer.TokenType.NE:case _tokenizer.TokenType.EQ_STRICT:case _tokenizer.TokenType.NE_STRICT:case _tokenizer.TokenType.LT:case _tokenizer.TokenType.GT:case _tokenizer.TokenType.LTE:case _tokenizer.TokenType.GTE:case _tokenizer.TokenType.INSTANCEOF:case _tokenizer.TokenType.SHL:case _tokenizer.TokenType.SHR:case _tokenizer.TokenType.SHR_UNSIGNED:case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.MUL:case _tokenizer.TokenType.DIV:case _tokenizer.TokenType.MOD:return!0;case _tokenizer.TokenType.IN:return this.allowIn;default:return!1}}},{key:"parseBinaryExpression",value:function(){var a=this,c=this.startNode(),d=this.parseExponentiationExpression();if(this.firstExprError)return d;var _=this.lookahead.type;if(!this.isBinaryOperator(_))return d;this.isBindingElement=this.isAssignmentTarget=!1,this.lex();var b=[];b.push({startState:c,left:d,operator:_,precedence:BinaryPrecedence$1[_.name]}),c=this.startNode();var k=this.isolateCoverGrammar(this.parseExponentiationExpression);for(_=this.lookahead.type;this.isBinaryOperator(_);){for(var $=BinaryPrecedence$1[_.name];b.length&&$<=b[b.length-1].precedence;){var j=b[b.length-1],_e=j.operator;d=j.left,b.pop(),c=j.startState,k=this.finishNode(new AST.BinaryExpression({left:d,operator:_e.name,right:k}),c)}this.lex(),b.push({startState:c,left:k,operator:_,precedence:$}),c=this.startNode(),k=this.isolateCoverGrammar(this.parseExponentiationExpression),_=this.lookahead.type}return b.reduceRight(function(et,tt){return a.finishNode(new AST.BinaryExpression({left:tt.left,operator:tt.operator.name,right:et}),tt.startState)},k)}},{key:"parseExponentiationExpression",value:function(){var a=this.startNode(),c=this.lookahead.type===_tokenizer.TokenType.LPAREN,d=this.parseUnaryExpression();if(this.lookahead.type!==_tokenizer.TokenType.EXP)return d;if(d.type==="UnaryExpression"&&!c)throw this.createError(_errors$1.ErrorMessages.INVALID_EXPONENTIATION_LHS);this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;var _=this.isolateCoverGrammar(this.parseExponentiationExpression);return this.finishNode(new AST.BinaryExpression({left:d,operator:"**",right:_}),a)}},{key:"parseUnaryExpression",value:function(){if(this.lookahead.type.klass!==_tokenizer.TokenClass.Punctuator&&this.lookahead.type.klass!==_tokenizer.TokenClass.Keyword)return this.parseUpdateExpression();var a=this.startNode();if(this.allowAwaitExpression&&this.eat(_tokenizer.TokenType.AWAIT)){this.isBindingElement=this.isAssignmentTarget=!1;var c=this.isolateCoverGrammar(this.parseUnaryExpression);return this.finishNode(new AST.AwaitExpression({expression:c}),a)}var d=this.lookahead;if(!isPrefixOperator(d))return this.parseUpdateExpression();this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;var _=void 0;if(isUpdateOperator(d)){var b=this.getLocation(),k=this.isolateCoverGrammar(this.parseUnaryExpression);if(!isValidSimpleAssignmentTarget(k))throw this.createErrorWithLocation(b,_errors$1.ErrorMessages.INVALID_UPDATE_OPERAND);k=this.transformDestructuring(k),_=new AST.UpdateExpression({isPrefix:!0,operator:d.value,operand:k})}else{var $=this.isolateCoverGrammar(this.parseUnaryExpression);_=new AST.UnaryExpression({operator:d.value,operand:$})}return this.finishNode(_,a)}},{key:"parseUpdateExpression",value:function(){var a=this.getLocation(),c=this.startNode(),d=this.parseLeftHandSideExpression({allowCall:!0});if(this.firstExprError||this.hasLineTerminatorBeforeNext)return d;var _=this.lookahead;if(!isUpdateOperator(_))return d;if(this.lex(),this.isBindingElement=this.isAssignmentTarget=!1,!isValidSimpleAssignmentTarget(d))throw this.createErrorWithLocation(a,_errors$1.ErrorMessages.INVALID_UPDATE_OPERAND);return d=this.transformDestructuring(d),this.finishNode(new AST.UpdateExpression({isPrefix:!1,operator:_.value,operand:d}),c)}},{key:"parseLeftHandSideExpression",value:function(a){var c=this,d=a.allowCall,_=this.startNode(),b=this.allowIn;this.allowIn=!0;var k=void 0,$=this.lookahead;if(this.eat(_tokenizer.TokenType.SUPER))if(this.isBindingElement=!1,this.isAssignmentTarget=!1,k=this.finishNode(new AST.Super,_),this.match(_tokenizer.TokenType.LPAREN))if(d)k=this.finishNode(new AST.CallExpression({callee:k,arguments:this.parseArgumentList().args}),_);else throw this.createUnexpected($);else if(this.match(_tokenizer.TokenType.LBRACK))k=this.finishNode(new AST.ComputedMemberExpression({object:k,expression:this.parseComputedMember()}),_),this.isAssignmentTarget=!0;else if(this.match(_tokenizer.TokenType.PERIOD))k=this.finishNode(new AST.StaticMemberExpression({object:k,property:this.parseStaticMember()}),_),this.isAssignmentTarget=!0;else throw this.createUnexpected($);else if(this.match(_tokenizer.TokenType.NEW))this.isBindingElement=this.isAssignmentTarget=!1,k=this.parseNewExpression();else if(this.match(_tokenizer.TokenType.ASYNC)){if(k=this.parsePrimaryExpression(),k.type==="IdentifierExpression"&&d&&!this.hasLineTerminatorBeforeNext){if(this.matchIdentifier()){var j=this.startNode(),_e=this.allowAwaitExpression;this.allowAwaitExpression=!0;var et=this.parseBindingIdentifier();return this.allowAwaitExpression=_e,this.ensureArrow(),this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:[et],rest:null,isAsync:!0},j)}if(this.match(_tokenizer.TokenType.LPAREN)){var tt=this.startNode(),nt=this.firstAwaitLocation;this.firstAwaitLocation=null;var st=this.parseArgumentList(),rt=st.args,it=st.locationFollowingFirstSpread;if(this.isBindingElement&&!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.ARROW)){if(it!==null)throw this.createErrorWithLocation(it,_errors$1.ErrorMessages.UNEXPECTED_TOKEN(","));if(this.firstAwaitLocation!==null)throw this.createErrorWithLocation(this.firstAwaitLocation,_errors$1.ErrorMessages.NO_AWAIT_IN_ASYNC_PARAMS);var at=null;if(rt.length>0&&rt[rt.length-1].type==="SpreadElement"){if(at=this.targetToBinding(this.transformDestructuringWithDefault(rt[rt.length-1].expression)),at.init!=null)throw this.createError(_errors$1.ErrorMessages.UNEXPECTED_REST_PARAMETERS_INITIALIZATION);rt=rt.slice(0,-1)}var ot=rt.map(function(ht){return c.targetToBinding(c.transformDestructuringWithDefault(ht))});return this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:ot,rest:at,isAsync:!0},tt)}this.firstAwaitLocation=nt||this.firstAwaitLocation,this.isBindingElement=this.isAssignmentTarget=!1,k=this.finishNode(new AST.CallExpression({callee:k,arguments:rt}),_)}}}else if(k=this.parsePrimaryExpression(),this.firstExprError)return k;for(;;)if(d&&this.match(_tokenizer.TokenType.LPAREN))this.isBindingElement=this.isAssignmentTarget=!1,k=this.finishNode(new AST.CallExpression({callee:k,arguments:this.parseArgumentList().args}),_);else if(this.match(_tokenizer.TokenType.LBRACK))this.isBindingElement=!1,this.isAssignmentTarget=!0,k=this.finishNode(new AST.ComputedMemberExpression({object:k,expression:this.parseComputedMember()}),_);else if(this.match(_tokenizer.TokenType.PERIOD))this.isBindingElement=!1,this.isAssignmentTarget=!0,k=this.finishNode(new AST.StaticMemberExpression({object:k,property:this.parseStaticMember()}),_);else if(this.match(_tokenizer.TokenType.TEMPLATE))this.isBindingElement=this.isAssignmentTarget=!1,k=this.finishNode(new AST.TemplateExpression({tag:k,elements:this.parseTemplateElements()}),_);else break;return this.allowIn=b,k}},{key:"parseTemplateElements",value:function(){var a=this.startNode(),c=this.lookahead;if(c.tail)return this.lex(),[this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-1)}),a)];for(var d=[this.finishNode(new AST.TemplateElement({rawValue:this.lex().slice.text.slice(1,-2)}),a)];;){if(d.push(this.parseExpression()),!this.match(_tokenizer.TokenType.RBRACE))throw this.createILLEGAL();if(this.index=this.startIndex,this.line=this.startLine,this.lineStart=this.startLineStart,this.lookahead=this.scanTemplateElement(),a=this.startNode(),c=this.lex(),c.tail)return d.push(this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-1)}),a)),d;d.push(this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-2)}),a))}}},{key:"parseStaticMember",value:function(){if(this.lex(),this.lookahead.type.klass.isIdentifierName)return this.lex().value;throw this.createUnexpected(this.lookahead)}},{key:"parseComputedMember",value:function(){this.lex();var a=this.parseExpression();return this.expect(_tokenizer.TokenType.RBRACK),a}},{key:"parseNewExpression",value:function(){var a=this,c=this.startNode();if(this.lex(),this.eat(_tokenizer.TokenType.PERIOD))return this.expectContextualKeyword("target"),this.finishNode(new AST.NewTargetExpression,c);var d=this.isolateCoverGrammar(function(){return a.parseLeftHandSideExpression({allowCall:!1})});return this.finishNode(new AST.NewExpression({callee:d,arguments:this.match(_tokenizer.TokenType.LPAREN)?this.parseArgumentList().args:[]}),c)}},{key:"parseRegexFlags",value:function(a){for(var c=!1,d=!1,_=!1,b=!1,k=!1,$=!1,j=0;j1?e-1:0),a=1;a1&&c.slice(1).forEach(function(d){a.addError(s(d))})}),this}},{key:"enforceConflictingLexicallyDeclaredNames",value:function(s,a){var c=this;return this.lexicallyDeclaredNames.forEachEntry(function(d,_){s.has(_)&&d.forEach(function(b){c.addError(a(b))})}),this}},{key:"observeFunctionDeclaration",value:function(){return this.observeVarBoundary(),addEach(this.functionDeclarationNames,this.boundNames),this.boundNames=new _multimap2.default,this}},{key:"functionDeclarationNamesAreLexical",value:function(){return addEach(this.lexicallyDeclaredNames,this.functionDeclarationNames),this.functionDeclarationNames=new _multimap2.default,this}},{key:"observeVarDeclaration",value:function(){return addEach(this.varDeclaredNames,this.boundNames),this.boundNames=new _multimap2.default,this}},{key:"recordForOfVars",value:function(){var s=this;return this.varDeclaredNames.forEach(function(a){s.forOfVarDeclaredNames.push(a)}),this}},{key:"observeVarBoundary",value:function(){return this.lexicallyDeclaredNames=new _multimap2.default,this.functionDeclarationNames=new _multimap2.default,this.varDeclaredNames=new _multimap2.default,this.forOfVarDeclaredNames=[],this}},{key:"exportName",value:function(s,a){return this.exportedNames.set(s,a),this}},{key:"exportDeclaredNames",value:function(){return addEach(this.exportedNames,this.lexicallyDeclaredNames,this.varDeclaredNames),addEach(this.exportedBindings,this.lexicallyDeclaredNames,this.varDeclaredNames),this}},{key:"exportBinding",value:function(s,a){return this.exportedBindings.set(s,a),this}},{key:"clearExportedBindings",value:function(){return this.exportedBindings=new _multimap2.default,this}},{key:"observeYieldExpression",value:function(s){return this.yieldExpressions.push(s),this}},{key:"clearYieldExpressions",value:function(){return this.yieldExpressions=[],this}},{key:"observeAwaitExpression",value:function(s){return this.awaitExpressions.push(s),this}},{key:"clearAwaitExpressions",value:function(){return this.awaitExpressions=[],this}},{key:"addError",value:function(s){return this.errors.push(s),this}},{key:"addStrictError",value:function(s){return this.strictErrors.push(s),this}},{key:"enforceStrictErrors",value:function(){return[].push.apply(this.errors,this.strictErrors),this.strictErrors=[],this}},{key:"concat",value:function(s){return this===identity?s:s===identity?this:([].push.apply(this.errors,s.errors),[].push.apply(this.strictErrors,s.strictErrors),[].push.apply(this.usedLabelNames,s.usedLabelNames),[].push.apply(this.freeBreakStatements,s.freeBreakStatements),[].push.apply(this.freeContinueStatements,s.freeContinueStatements),[].push.apply(this.freeLabeledBreakStatements,s.freeLabeledBreakStatements),[].push.apply(this.freeLabeledContinueStatements,s.freeLabeledContinueStatements),[].push.apply(this.newTargetExpressions,s.newTargetExpressions),addEach(this.boundNames,s.boundNames),addEach(this.lexicallyDeclaredNames,s.lexicallyDeclaredNames),addEach(this.functionDeclarationNames,s.functionDeclarationNames),addEach(this.varDeclaredNames,s.varDeclaredNames),[].push.apply(this.forOfVarDeclaredNames,s.forOfVarDeclaredNames),addEach(this.exportedNames,s.exportedNames),addEach(this.exportedBindings,s.exportedBindings),[].push.apply(this.superCallExpressions,s.superCallExpressions),[].push.apply(this.superCallExpressionsInConstructorMethod,s.superCallExpressionsInConstructorMethod),[].push.apply(this.superPropertyExpressions,s.superPropertyExpressions),[].push.apply(this.yieldExpressions,s.yieldExpressions),[].push.apply(this.awaitExpressions,s.awaitExpressions),this)}}],[{key:"empty",value:function(){return identity}}]),o}();identity=new EarlyErrorState;Object.getOwnPropertyNames(EarlyErrorState.prototype).forEach(function(o){o!=="constructor"&&Object.defineProperty(identity,o,{value:function(){return EarlyErrorState.prototype[o].apply(new EarlyErrorState,arguments)},enumerable:!1,writable:!0,configurable:!0})});earlyErrorState.EarlyError=function(o){_inherits$4(e,o);function e(s,a){_classCallCheck$7(this,e);var c=_possibleConstructorReturn$4(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,a));return c.node=s,c.message=a,c}return e}(Error);Object.defineProperty(earlyErrors,"__esModule",{value:!0});earlyErrors.EarlyErrorChecker=void 0;var _createClass$5=function(){function o(e,s){for(var a=0;a1&&s.slice(1).forEach(function(a){e=e.addError(new _earlyErrorState.EarlyError(a,"Duplicate constructor method in class"))}),e}var SUPERCALL_ERROR=function o(e){return new _earlyErrorState.EarlyError(e,_errors.ErrorMessages.ILLEGAL_SUPER_CALL)},SUPERPROPERTY_ERROR=function o(e){return new _earlyErrorState.EarlyError(e,"Member access on super must be in a method")},DUPLICATE_BINDING=function o(e){return new _earlyErrorState.EarlyError(e,"Duplicate binding "+JSON.stringify(e.name))},FREE_CONTINUE=function o(e){return new _earlyErrorState.EarlyError(e,"Continue statement must be nested within an iteration statement")},UNBOUND_CONTINUE=function o(e){return new _earlyErrorState.EarlyError(e,"Continue statement must be nested within an iteration statement with label "+JSON.stringify(e.label))},FREE_BREAK=function o(e){return new _earlyErrorState.EarlyError(e,"Break statement must be nested within an iteration statement or a switch statement")},UNBOUND_BREAK=function o(e){return new _earlyErrorState.EarlyError(e,"Break statement must be nested within a statement with label "+JSON.stringify(e.label))};earlyErrors.EarlyErrorChecker=function(o){_inherits$3(e,o);function e(){return _classCallCheck$6(this,e),_possibleConstructorReturn$3(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,_earlyErrorState.EarlyErrorState))}return _createClass$5(e,[{key:"reduceAssignmentExpression",value:function(){return _get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceAssignmentExpression",this).apply(this,arguments).clearBoundNames()}},{key:"reduceAssignmentTargetIdentifier",value:function(a){var c=this.identity;return(a.name==="eval"||a.name==="arguments"||(0,_utils.isStrictModeReservedWord)(a.name))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"The identifier "+JSON.stringify(a.name)+" must not be in binding position in strict mode"))),c}},{key:"reduceArrowExpression",value:function(a,c){var d=c.params,_=c.body,b=a.params.rest==null&&a.params.items.every(function($){return $.type==="BindingIdentifier"});d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),a.body.type==="FunctionBody"&&(_=_.enforceConflictingLexicallyDeclaredNames(d.lexicallyDeclaredNames,DUPLICATE_BINDING),isStrictFunctionBody(a.body)&&(d=d.enforceStrictErrors(),_=_.enforceStrictErrors())),d.yieldExpressions.forEach(function($){d=d.addError(new _earlyErrorState.EarlyError($,"Arrow parameters must not contain yield expressions"))}),d.awaitExpressions.forEach(function($){d=d.addError(new _earlyErrorState.EarlyError($,"Arrow parameters must not contain await expressions"))});var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceArrowExpression",this).call(this,a,{params:d,body:_});return!b&&a.body.type==="FunctionBody"&&isStrictFunctionBody(a.body)&&(k=k.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),k=k.clearYieldExpressions(),k=k.clearAwaitExpressions(),k=k.observeVarBoundary(),k}},{key:"reduceAwaitExpression",value:function(a,c){var d=c.expression;return d.observeAwaitExpression(a)}},{key:"reduceBindingIdentifier",value:function(a){var c=this.identity;return(a.name==="eval"||a.name==="arguments"||(0,_utils.isStrictModeReservedWord)(a.name))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"The identifier "+JSON.stringify(a.name)+" must not be in binding position in strict mode"))),c=c.bindName(a.name,a),c}},{key:"reduceBlock",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceBlock",this).apply(this,arguments);return a=a.functionDeclarationNamesAreLexical(),a=a.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),a=a.enforceConflictingLexicallyDeclaredNames(a.varDeclaredNames,DUPLICATE_BINDING),a=a.observeLexicalBoundary(),a}},{key:"reduceBreakStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceBreakStatement",this).apply(this,arguments);return c=a.label==null?c.addFreeBreakStatement(a):c.addFreeLabeledBreakStatement(a),c}},{key:"reduceCallExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCallExpression",this).apply(this,arguments);return a.callee.type==="Super"&&(c=c.observeSuperCallExpression(a)),c}},{key:"reduceCatchClause",value:function(a,c){var d=c.binding,_=c.body;d=d.observeLexicalDeclaration(),d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(_.previousLexicallyDeclaredNames,DUPLICATE_BINDING),d.lexicallyDeclaredNames.forEachEntry(function(k,$){_.varDeclaredNames.has($)&&_.varDeclaredNames.get($).forEach(function(j){_.forOfVarDeclaredNames.indexOf(j)>=0&&(d=d.addError(DUPLICATE_BINDING(j)))})});var b=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCatchClause",this).call(this,a,{binding:d,body:_});return b=b.observeLexicalBoundary(),b}},{key:"reduceClassDeclaration",value:function(a,c){var d=c.name,_=c.super,b=c.elements,k=d.enforceStrictErrors(),$=this.append.apply(this,_toConsumableArray$3(b));return $=$.enforceStrictErrors(),a.super!=null&&(_=_.enforceStrictErrors(),k=this.append(k,_),$=$.clearSuperCallExpressionsInConstructorMethod()),k=this.append(k,$),k=enforceDuplicateConstructorMethods(a,k),k=k.observeLexicalDeclaration(),k}},{key:"reduceClassElement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceClassElement",this).apply(this,arguments);return!a.isStatic&&isSpecialMethod(a.method)&&(c=c.addError(new _earlyErrorState.EarlyError(a,_errors.ErrorMessages.ILLEGAL_CONSTRUCTORS))),a.isStatic&&a.method.name.type==="StaticPropertyName"&&a.method.name.value==="prototype"&&(c=c.addError(new _earlyErrorState.EarlyError(a,'Static class methods cannot be named "prototype"'))),c}},{key:"reduceClassExpression",value:function(a,c){var d=c.name,_=c.super,b=c.elements,k=a.name==null?this.identity:d.enforceStrictErrors(),$=this.append.apply(this,_toConsumableArray$3(b));return $=$.enforceStrictErrors(),a.super!=null&&(_=_.enforceStrictErrors(),k=this.append(k,_),$=$.clearSuperCallExpressionsInConstructorMethod()),k=this.append(k,$),k=enforceDuplicateConstructorMethods(a,k),k=k.clearBoundNames(),k}},{key:"reduceCompoundAssignmentExpression",value:function(){return _get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCompoundAssignmentExpression",this).apply(this,arguments).clearBoundNames()}},{key:"reduceComputedMemberExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceComputedMemberExpression",this).apply(this,arguments);return a.object.type==="Super"&&(c=c.observeSuperPropertyExpression(a)),c}},{key:"reduceContinueStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceContinueStatement",this).apply(this,arguments);return c=a.label==null?c.addFreeContinueStatement(a):c.addFreeLabeledContinueStatement(a),c}},{key:"reduceDoWhileStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceDoWhileStatement",this).apply(this,arguments);return isLabelledFunction(a.body)&&(c=c.addError(new _earlyErrorState.EarlyError(a.body,"The body of a do-while statement must not be a labeled function declaration"))),c=c.clearFreeContinueStatements(),c=c.clearFreeBreakStatements(),c}},{key:"reduceExport",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExport",this).apply(this,arguments);return a=a.functionDeclarationNamesAreLexical(),a=a.exportDeclaredNames(),a}},{key:"reduceExportFrom",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportFrom",this).apply(this,arguments);return a=a.clearExportedBindings(),a}},{key:"reduceExportFromSpecifier",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportFromSpecifier",this).apply(this,arguments);return c=c.exportName(a.exportedName||a.name,a),c=c.exportBinding(a.name,a),c}},{key:"reduceExportLocalSpecifier",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportLocalSpecifier",this).apply(this,arguments);return c=c.exportName(a.exportedName||a.name.name,a),c=c.exportBinding(a.name.name,a),c}},{key:"reduceExportDefault",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportDefault",this).apply(this,arguments);return c=c.functionDeclarationNamesAreLexical(),c=c.exportName("default",a),c}},{key:"reduceFormalParameters",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFormalParameters",this).apply(this,arguments);return a=a.observeLexicalDeclaration(),a}},{key:"reduceForStatement",value:function(a,c){var d=c.init,_=c.test,b=c.update,k=c.body;d!=null&&(d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(k.varDeclaredNames,DUPLICATE_BINDING));var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForStatement",this).call(this,a,{init:d,test:_,update:b,body:k});return a.init!=null&&a.init.type==="VariableDeclaration"&&a.init.kind==="const"&&a.init.declarators.forEach(function(j){j.init==null&&($=$.addError(new _earlyErrorState.EarlyError(j,"Constant lexical declarations must have an initialiser")))}),isLabelledFunction(a.body)&&($=$.addError(new _earlyErrorState.EarlyError(a.body,"The body of a for statement must not be a labeled function declaration"))),$=$.clearFreeContinueStatements(),$=$.clearFreeBreakStatements(),$=$.observeLexicalBoundary(),$}},{key:"reduceForInStatement",value:function(a,c){var d=c.left,_=c.right,b=c.body;d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING);var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForInStatement",this).call(this,a,{left:d,right:_,body:b});return isLabelledFunction(a.body)&&(k=k.addError(new _earlyErrorState.EarlyError(a.body,"The body of a for-in statement must not be a labeled function declaration"))),k=k.clearFreeContinueStatements(),k=k.clearFreeBreakStatements(),k=k.observeLexicalBoundary(),k}},{key:"reduceForOfStatement",value:function(a,c){var d=c.left,_=c.right,b=c.body;d=d.recordForOfVars(),d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING);var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForOfStatement",this).call(this,a,{left:d,right:_,body:b});return isLabelledFunction(a.body)&&(k=k.addError(new _earlyErrorState.EarlyError(a.body,"The body of a for-of statement must not be a labeled function declaration"))),k=k.clearFreeContinueStatements(),k=k.clearFreeBreakStatements(),k=k.observeLexicalBoundary(),k}},{key:"reduceForAwaitStatement",value:function(a,c){var d=c.left,_=c.right,b=c.body;d=d.recordForOfVars(),d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),d=d.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING);var k=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForOfStatement",this).call(this,a,{left:d,right:_,body:b});return isLabelledFunction(a.body)&&(k=k.addError(new _earlyErrorState.EarlyError(a.body,"The body of a for-await statement must not be a labeled function declaration"))),k=k.clearFreeContinueStatements(),k=k.clearFreeBreakStatements(),k=k.observeLexicalBoundary(),k}},{key:"reduceFunctionBody",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionBody",this).apply(this,arguments);return c=c.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),c=c.enforceConflictingLexicallyDeclaredNames(c.varDeclaredNames,DUPLICATE_BINDING),c=c.enforceFreeContinueStatementErrors(FREE_CONTINUE),c=c.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),c=c.enforceFreeBreakStatementErrors(FREE_BREAK),c=c.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),c=c.clearUsedLabelNames(),c=c.clearYieldExpressions(),c=c.clearAwaitExpressions(),isStrictFunctionBody(a)&&(c=c.enforceStrictErrors()),c}},{key:"reduceFunctionDeclaration",value:function(a,c){var d=c.name,_=c.params,b=c.body,k=a.params.rest==null&&a.params.items.every(function(_e){return _e.type==="BindingIdentifier"}),$=!k||a.isGenerator?"addError":"addStrictError";_.lexicallyDeclaredNames.forEachEntry(function(_e){_e.length>1&&_e.slice(1).forEach(function(et){_=_[$](DUPLICATE_BINDING(et))})}),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),b=b.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),a.isGenerator&&_.yieldExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Generator parameters must not contain yield expressions"))}),a.isAsync&&_.awaitExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Async function parameters must not contain await expressions"))}),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var j=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionDeclaration",this).call(this,a,{name:d,params:_,body:b});return!k&&isStrictFunctionBody(a.body)&&(j=j.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),j=j.clearYieldExpressions(),j=j.clearAwaitExpressions(),j=j.observeFunctionDeclaration(),j}},{key:"reduceFunctionExpression",value:function(a,c){var d=c.name,_=c.params,b=c.body,k=a.params.rest==null&&a.params.items.every(function(_e){return _e.type==="BindingIdentifier"}),$=!k||a.isGenerator?"addError":"addStrictError";_.lexicallyDeclaredNames.forEachEntry(function(_e,et){_e.length>1&&_e.slice(1).forEach(function(tt){_=_[$](new _earlyErrorState.EarlyError(tt,"Duplicate binding "+JSON.stringify(et)))})}),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),b=b.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),a.isGenerator&&_.yieldExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Generator parameters must not contain yield expressions"))}),a.isAsync&&_.awaitExpressions.forEach(function(_e){_=_.addError(new _earlyErrorState.EarlyError(_e,"Async function parameters must not contain await expressions"))}),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var j=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionExpression",this).call(this,a,{name:d,params:_,body:b});return!k&&isStrictFunctionBody(a.body)&&(j=j.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),j=j.clearBoundNames(),j=j.clearYieldExpressions(),j=j.clearAwaitExpressions(),j=j.observeVarBoundary(),j}},{key:"reduceGetter",value:function(a,c){var d=c.name,_=c.body;_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.clearSuperPropertyExpressions(),_=_.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(_=_.enforceStrictErrors());var b=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceGetter",this).call(this,a,{name:d,body:_});return b=b.observeVarBoundary(),b}},{key:"reduceIdentifierExpression",value:function(a){var c=this.identity;return(0,_utils.isStrictModeReservedWord)(a.name)&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"The identifier "+JSON.stringify(a.name)+" must not be in expression position in strict mode"))),c}},{key:"reduceIfStatement",value:function(a,c){var d=c.test,_=c.consequent,b=c.alternate;return isLabelledFunction(a.consequent)&&(_=_.addError(new _earlyErrorState.EarlyError(a.consequent,"The consequent of an if statement must not be a labeled function declaration"))),a.alternate!=null&&isLabelledFunction(a.alternate)&&(b=b.addError(new _earlyErrorState.EarlyError(a.alternate,"The alternate of an if statement must not be a labeled function declaration"))),a.consequent.type==="FunctionDeclaration"&&(_=_.addStrictError(new _earlyErrorState.EarlyError(a.consequent,"FunctionDeclarations in IfStatements are disallowed in strict mode")),_=_.observeLexicalBoundary()),a.alternate!=null&&a.alternate.type==="FunctionDeclaration"&&(b=b.addStrictError(new _earlyErrorState.EarlyError(a.alternate,"FunctionDeclarations in IfStatements are disallowed in strict mode")),b=b.observeLexicalBoundary()),_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceIfStatement",this).call(this,a,{test:d,consequent:_,alternate:b})}},{key:"reduceImport",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceImport",this).apply(this,arguments);return a=a.observeLexicalDeclaration(),a}},{key:"reduceImportNamespace",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceImportNamespace",this).apply(this,arguments);return a=a.observeLexicalDeclaration(),a}},{key:"reduceLabeledStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceLabeledStatement",this).apply(this,arguments);return(a.label==="yield"||(0,_utils.isStrictModeReservedWord)(a.label))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"The identifier "+JSON.stringify(a.label)+" must not be in label position in strict mode"))),c.usedLabelNames.indexOf(a.label)>=0&&(c=c.addError(new _earlyErrorState.EarlyError(a,"Label "+JSON.stringify(a.label)+" has already been declared"))),a.body.type==="FunctionDeclaration"&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"Labeled FunctionDeclarations are disallowed in strict mode"))),c=isIterationStatement(a.body)?c.observeIterationLabel(a.label):c.observeNonIterationLabel(a.label),c}},{key:"reduceLiteralRegExpExpression",value:function(){var a=this.identity;return a}},{key:"reduceMethod",value:function(a,c){var d=c.name,_=c.params,b=c.body,k=a.params.rest==null&&a.params.items.every(function(j){return j.type==="BindingIdentifier"});_=_.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),a.name.type==="StaticPropertyName"&&a.name.value==="constructor"?(b=b.observeConstructorMethod(),_=_.observeConstructorMethod()):(b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR)),a.isGenerator&&_.yieldExpressions.forEach(function(j){_=_.addError(new _earlyErrorState.EarlyError(j,"Generator parameters must not contain yield expressions"))}),a.isAsync&&_.awaitExpressions.forEach(function(j){_=_.addError(new _earlyErrorState.EarlyError(j,"Async function parameters must not contain await expressions"))}),b=b.clearSuperPropertyExpressions(),_=_.clearSuperPropertyExpressions(),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceMethod",this).call(this,a,{name:d,params:_,body:b});return!k&&isStrictFunctionBody(a.body)&&($=$.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),$=$.clearYieldExpressions(),$=$.clearAwaitExpressions(),$=$.observeVarBoundary(),$}},{key:"reduceModule",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceModule",this).apply(this,arguments);return a=a.functionDeclarationNamesAreLexical(),a=a.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),a=a.enforceConflictingLexicallyDeclaredNames(a.varDeclaredNames,DUPLICATE_BINDING),a.exportedNames.forEachEntry(function(c,d){c.length>1&&c.slice(1).forEach(function(_){a=a.addError(new _earlyErrorState.EarlyError(_,"Duplicate export "+JSON.stringify(d)))})}),a.exportedBindings.forEachEntry(function(c,d){!a.lexicallyDeclaredNames.has(d)&&!a.varDeclaredNames.has(d)&&c.forEach(function(_){a=a.addError(new _earlyErrorState.EarlyError(_,"Exported binding "+JSON.stringify(d)+" is not declared"))})}),a.newTargetExpressions.forEach(function(c){a=a.addError(new _earlyErrorState.EarlyError(c,"new.target must be within function (but not arrow expression) code"))}),a=a.enforceFreeContinueStatementErrors(FREE_CONTINUE),a=a.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),a=a.enforceFreeBreakStatementErrors(FREE_BREAK),a=a.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),a=a.enforceSuperCallExpressions(SUPERCALL_ERROR),a=a.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),a=a.enforceStrictErrors(),a}},{key:"reduceNewTargetExpression",value:function(a){return this.identity.observeNewTargetExpression(a)}},{key:"reduceObjectExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceObjectExpression",this).apply(this,arguments);c=c.enforceSuperCallExpressionsInConstructorMethod(SUPERCALL_ERROR);var d=a.properties.filter(function(_){return _.type==="DataProperty"&&_.name.type==="StaticPropertyName"&&_.name.value==="__proto__"});return d.slice(1).forEach(function(_){c=c.addError(new _earlyErrorState.EarlyError(_,"Duplicate __proto__ property in object literal not allowed"))}),c}},{key:"reduceUpdateExpression",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceUpdateExpression",this).apply(this,arguments);return a=a.clearBoundNames(),a}},{key:"reduceUnaryExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceUnaryExpression",this).apply(this,arguments);return a.operator==="delete"&&a.operand.type==="IdentifierExpression"&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"Identifier expressions must not be deleted in strict mode"))),c}},{key:"reduceScript",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceScript",this).apply(this,arguments);return c=c.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),c=c.enforceConflictingLexicallyDeclaredNames(c.varDeclaredNames,DUPLICATE_BINDING),c.newTargetExpressions.forEach(function(d){c=c.addError(new _earlyErrorState.EarlyError(d,"new.target must be within function (but not arrow expression) code"))}),c=c.enforceFreeContinueStatementErrors(FREE_CONTINUE),c=c.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),c=c.enforceFreeBreakStatementErrors(FREE_BREAK),c=c.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),c=c.enforceSuperCallExpressions(SUPERCALL_ERROR),c=c.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),isStrictFunctionBody(a)&&(c=c.enforceStrictErrors()),c}},{key:"reduceSetter",value:function(a,c){var d=c.name,_=c.param,b=c.body,k=a.param.type==="BindingIdentifier";_=_.observeLexicalDeclaration(),_=_.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),b=b.enforceConflictingLexicallyDeclaredNames(_.lexicallyDeclaredNames,DUPLICATE_BINDING),_=_.enforceSuperCallExpressions(SUPERCALL_ERROR),b=b.enforceSuperCallExpressions(SUPERCALL_ERROR),_=_.clearSuperPropertyExpressions(),b=b.clearSuperPropertyExpressions(),_=_.clearNewTargetExpressions(),b=b.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(_=_.enforceStrictErrors(),b=b.enforceStrictErrors());var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceSetter",this).call(this,a,{name:d,param:_,body:b});return!k&&isStrictFunctionBody(a.body)&&($=$.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),$=$.observeVarBoundary(),$}},{key:"reduceStaticMemberExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceStaticMemberExpression",this).apply(this,arguments);return a.object.type==="Super"&&(c=c.observeSuperPropertyExpression(a)),c}},{key:"reduceSwitchStatement",value:function(a,c){var d=c.discriminant,_=c.cases,b=this.append.apply(this,_toConsumableArray$3(_));b=b.functionDeclarationNamesAreLexical(),b=b.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),b=b.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING),b=b.observeLexicalBoundary();var k=this.append(d,b);return k=k.clearFreeBreakStatements(),k}},{key:"reduceSwitchStatementWithDefault",value:function(a,c){var d=c.discriminant,_=c.preDefaultCases,b=c.defaultCase,k=c.postDefaultCases,$=this.append.apply(this,[b].concat(_toConsumableArray$3(_),_toConsumableArray$3(k)));$=$.functionDeclarationNamesAreLexical(),$=$.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),$=$.enforceConflictingLexicallyDeclaredNames($.varDeclaredNames,DUPLICATE_BINDING),$=$.observeLexicalBoundary();var j=this.append(d,$);return j=j.clearFreeBreakStatements(),j}},{key:"reduceVariableDeclaration",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceVariableDeclaration",this).apply(this,arguments);switch(a.kind){case"const":case"let":{c=c.observeLexicalDeclaration(),c.lexicallyDeclaredNames.has("let")&&c.lexicallyDeclaredNames.get("let").forEach(function(d){c=c.addError(new _earlyErrorState.EarlyError(d,'Lexical declarations must not have a binding named "let"'))});break}case"var":c=c.observeVarDeclaration();break}return c}},{key:"reduceVariableDeclarationStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceVariableDeclarationStatement",this).apply(this,arguments);return a.declaration.kind==="const"&&a.declaration.declarators.forEach(function(d){d.init==null&&(c=c.addError(new _earlyErrorState.EarlyError(d,"Constant lexical declarations must have an initialiser")))}),c}},{key:"reduceWhileStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceWhileStatement",this).apply(this,arguments);return isLabelledFunction(a.body)&&(c=c.addError(new _earlyErrorState.EarlyError(a.body,"The body of a while statement must not be a labeled function declaration"))),c=c.clearFreeContinueStatements().clearFreeBreakStatements(),c}},{key:"reduceWithStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceWithStatement",this).apply(this,arguments);return isLabelledFunction(a.body)&&(c=c.addError(new _earlyErrorState.EarlyError(a.body,"The body of a with statement must not be a labeled function declaration"))),c=c.addStrictError(new _earlyErrorState.EarlyError(a,"Strict mode code must not include a with statement")),c}},{key:"reduceYieldExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceYieldExpression",this).apply(this,arguments);return c=c.observeYieldExpression(a),c}},{key:"reduceYieldGeneratorExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceYieldGeneratorExpression",this).apply(this,arguments);return c=c.observeYieldExpression(a),c}}],[{key:"check",value:function(a){return(0,_shiftReducer2.default)(new e,a).errors}}]),e}(_shiftReducer$1.MonoidalReducer);(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.TokenType=o.TokenClass=o.Tokenizer=o.ParserWithLocation=o.GenericParser=o.EarlyErrorChecker=o.parseScriptWithLocation=o.parseModuleWithLocation=o.parseScript=o.parseModule=void 0;var e=function(){function st(rt,it){for(var at=0;at1&&arguments[1]!==void 0?arguments[1]:{},ot=at.earlyErrors,ht=ot===void 0?!0:ot,ct=new c.GenericParser(it),ut=ct[st]();if(ht){var lt=d.EarlyErrorChecker.check(ut);if(lt.length>0)throw new a.JsError(0,1,0,lt[0].message)}return ut}}function tt(st){return function(it){var at=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ot=at.earlyErrors,ht=ot===void 0?!0:ot,ct=new _e(it),ut=ct[st]();if(ht){var lt=d.EarlyErrorChecker.check(ut);if(lt.length>0){var pt=lt[0],dt=pt.node,gt=pt.message,yt=ct.locations.get(dt).start,ft=yt.offset,Et=yt.line,mt=yt.column;throw new a.JsError(ft,Et,mt,gt)}}return{tree:ut,locations:ct.locations,comments:ct.comments}}}o.parseModule=et("parseModule");var nt=o.parseScript=et("parseScript");o.parseModuleWithLocation=tt("parseModule"),o.parseScriptWithLocation=tt("parseScript"),o.default=nt,o.EarlyErrorChecker=d.EarlyErrorChecker,o.GenericParser=c.GenericParser,o.ParserWithLocation=_e})(dist$7);var dist$2={};Object.defineProperty(dist$2,"__esModule",{value:!0});var _default=dist$2.default=function(){var o={},e={typeName:"Boolean"},s={typeName:"Number"},a={typeName:"String"};function c(dn){return{typeName:"Maybe",argument:dn}}function d(dn){return{typeName:"List",argument:dn}}function _(dn){return{typeName:"Const",argument:dn}}function b(){return{typeName:"Union",arguments:[].slice.call(arguments,0)}}var k={typeName:"Enum",values:["ArrayAssignmentTarget","ArrayBinding","ArrayExpression","ArrowExpression","AssignmentExpression","AssignmentTargetIdentifier","AssignmentTargetPropertyIdentifier","AssignmentTargetPropertyProperty","AssignmentTargetWithDefault","AwaitExpression","BinaryExpression","BindingIdentifier","BindingPropertyIdentifier","BindingPropertyProperty","BindingWithDefault","Block","BlockStatement","BreakStatement","CallExpression","CatchClause","ClassDeclaration","ClassElement","ClassExpression","CompoundAssignmentExpression","ComputedMemberAssignmentTarget","ComputedMemberExpression","ComputedPropertyName","ConditionalExpression","ContinueStatement","DataProperty","DebuggerStatement","Directive","DoWhileStatement","EmptyStatement","Export","ExportAllFrom","ExportDefault","ExportFrom","ExportFromSpecifier","ExportLocalSpecifier","ExportLocals","ExpressionStatement","ForAwaitStatement","ForInStatement","ForOfStatement","ForStatement","FormalParameters","FunctionBody","FunctionDeclaration","FunctionExpression","Getter","IdentifierExpression","IfStatement","Import","ImportNamespace","ImportSpecifier","LabeledStatement","LiteralBooleanExpression","LiteralInfinityExpression","LiteralNullExpression","LiteralNumericExpression","LiteralRegExpExpression","LiteralStringExpression","Method","Module","NewExpression","NewTargetExpression","ObjectAssignmentTarget","ObjectBinding","ObjectExpression","ReturnStatement","Script","Setter","ShorthandProperty","SpreadElement","SpreadProperty","StaticMemberAssignmentTarget","StaticMemberExpression","StaticPropertyName","Super","SwitchCase","SwitchDefault","SwitchStatement","SwitchStatementWithDefault","TemplateElement","TemplateExpression","ThisExpression","ThrowStatement","TryCatchStatement","TryFinallyStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarationStatement","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","YieldGeneratorExpression"]},$={typeName:"Enum",values:["==","!=","===","!==","<","<=",">",">=","in","instanceof","<<",">>",">>>","+","-","*","/","%","**",",","||","&&","|","^","&"]},j={typeName:"Enum",values:["+=","-=","*=","/=","%=","**=","<<=",">>=",">>>=","|=","^=","&="]},_e={typeName:"Enum",values:["+","-","!","~","typeof","void","delete"]},et={typeName:"Enum",values:["++","--"]},tt={typeName:"Enum",values:["var","let","const"]},nt=o.ArrayAssignmentTarget={},st=o.ArrayBinding={},rt=o.ArrayExpression={},it=o.ArrowExpression={},at=o.AssignmentExpression={},ot=o.AssignmentTargetIdentifier={},ht=o.AssignmentTargetPropertyIdentifier={},ct=o.AssignmentTargetPropertyProperty={},ut=o.AssignmentTargetWithDefault={},lt=o.AwaitExpression={},pt=o.BinaryExpression={},dt=o.BindingIdentifier={},gt=o.BindingPropertyIdentifier={},yt=o.BindingPropertyProperty={},ft=o.BindingWithDefault={},Et=o.Block={},mt=o.BlockStatement={},St=o.BreakStatement={},At=o.CallExpression={},Ot=o.CatchClause={},Ct=o.ClassDeclaration={},Dt=o.ClassElement={},Tt=o.ClassExpression={},vt=o.CompoundAssignmentExpression={},bt=o.ComputedMemberAssignmentTarget={},xt=o.ComputedMemberExpression={},Rt=o.ComputedPropertyName={},Mt=o.ConditionalExpression={},It=o.ContinueStatement={},Ft=o.DataProperty={},qt=o.DebuggerStatement={},Qt=o.Directive={},Nt=o.DoWhileStatement={},Kt=o.EmptyStatement={},Jt=o.Export={},en=o.ExportAllFrom={},tn=o.ExportDefault={},kt=o.ExportFrom={},Bt=o.ExportFromSpecifier={},jt=o.ExportLocalSpecifier={},Lt=o.ExportLocals={},$t=o.ExpressionStatement={},Wt=o.ForAwaitStatement={},Gt=o.ForInStatement={},Ut=o.ForOfStatement={},nn=o.ForStatement={},Zt=o.FormalParameters={},Yt=o.FunctionBody={},sn=o.FunctionDeclaration={},fn=o.FunctionExpression={},An=o.Getter={},cn=o.IdentifierExpression={},vn=o.IfStatement={},On=o.Import={},Cn=o.ImportNamespace={},mn=o.ImportSpecifier={},_n=o.LabeledStatement={},Dn=o.LiteralBooleanExpression={},bn=o.LiteralInfinityExpression={},xn=o.LiteralNullExpression={},Tn=o.LiteralNumericExpression={},kn=o.LiteralRegExpExpression={},wn=o.LiteralStringExpression={},Fn=o.Method={},Nn=o.Module={},Pn=o.NewExpression={},Bn=o.NewTargetExpression={},Ht=o.ObjectAssignmentTarget={},zt=o.ObjectBinding={},Rn=o.ObjectExpression={},In=o.ReturnStatement={},Mn=o.Script={},$n=o.Setter={},Ln=o.ShorthandProperty={},hn=o.SpreadElement={},Wn=o.SpreadProperty={},jn=o.StaticMemberAssignmentTarget={},Qn=o.StaticMemberExpression={},qn=o.StaticPropertyName={},an=o.Super={},pn=o.SwitchCase={},gn=o.SwitchDefault={},Vn=o.SwitchStatement={},Gn=o.SwitchStatementWithDefault={},yn=o.TemplateElement={},zn=o.TemplateExpression={},Un=o.ThisExpression={},Hn=o.ThrowStatement={},Xn=o.TryCatchStatement={},Zn=o.TryFinallyStatement={},Yn=o.UnaryExpression={},Kn=o.UpdateExpression={},rn=o.VariableDeclaration={},Jn=o.VariableDeclarationStatement={},En=o.VariableDeclarator={},er=o.WhileStatement={},tr=o.WithStatement={},nr=o.YieldExpression={},rr=o.YieldGeneratorExpression={},yr=b(xt,Qn),sr=b(ht,ct);b(Ct,Tt);var ar=b(Jt,en,tn,kt,Lt),un=b(Rt,qn);b(sn,fn);var or=b(On,Cn),Er=b(Nt,Wt,Gt,Ut,nn,er),Xt=b(bt,jn),ur=b(gt,yt),lr=b(An,Fn,$n),Sr=b(Nn,Mn),Ar=b(ot,dt,cn),vr=b(Ft,lr),Pt=b(rt,it,at,lt,pt,At,Tt,vt,Mt,fn,cn,Dn,bn,xn,Tn,kn,wn,yr,Pn,Bn,Rn,zn,Un,Yn,Kn,nr,rr),Vt=b(mt,St,Ct,It,qt,Kt,$t,sn,vn,Er,_n,In,Vn,Gn,Hn,Xn,Zn,Jn,tr),cr=b(vr,Ln,Wn);return b(nt,st,sr,ut,ur,ft,Et,Ot,Dt,Qt,ar,Bt,jt,Pt,Zt,Yt,or,mn,Xt,Ht,zt,cr,Sr,un,hn,Vt,an,pn,gn,yn,rn,En,Ar),nt.typeName="ArrayAssignmentTarget",nt.fields=[{name:"type",type:_(k),value:"ArrayAssignmentTarget"},{name:"elements",type:d(c(b(ut,b(b(nt,Ht),b(ot,Xt)))))},{name:"rest",type:c(b(b(nt,Ht),b(ot,Xt)))}],st.typeName="ArrayBinding",st.fields=[{name:"type",type:_(k),value:"ArrayBinding"},{name:"elements",type:d(c(b(ft,b(dt,b(st,zt)))))},{name:"rest",type:c(b(dt,b(st,zt)))}],rt.typeName="ArrayExpression",rt.fields=[{name:"type",type:_(k),value:"ArrayExpression"},{name:"elements",type:d(c(b(Pt,hn)))}],it.typeName="ArrowExpression",it.fields=[{name:"type",type:_(k),value:"ArrowExpression"},{name:"isAsync",type:e},{name:"params",type:Zt},{name:"body",type:b(Pt,Yt)}],at.typeName="AssignmentExpression",at.fields=[{name:"type",type:_(k),value:"AssignmentExpression"},{name:"binding",type:b(b(nt,Ht),b(ot,Xt))},{name:"expression",type:Pt}],ot.typeName="AssignmentTargetIdentifier",ot.fields=[{name:"type",type:_(k),value:"AssignmentTargetIdentifier"},{name:"name",type:a}],ht.typeName="AssignmentTargetPropertyIdentifier",ht.fields=[{name:"type",type:_(k),value:"AssignmentTargetPropertyIdentifier"},{name:"binding",type:ot},{name:"init",type:c(Pt)}],ct.typeName="AssignmentTargetPropertyProperty",ct.fields=[{name:"type",type:_(k),value:"AssignmentTargetPropertyProperty"},{name:"name",type:un},{name:"binding",type:b(ut,b(b(nt,Ht),b(ot,Xt)))}],ut.typeName="AssignmentTargetWithDefault",ut.fields=[{name:"type",type:_(k),value:"AssignmentTargetWithDefault"},{name:"binding",type:b(b(nt,Ht),b(ot,Xt))},{name:"init",type:Pt}],lt.typeName="AwaitExpression",lt.fields=[{name:"type",type:_(k),value:"AwaitExpression"},{name:"expression",type:Pt}],pt.typeName="BinaryExpression",pt.fields=[{name:"type",type:_(k),value:"BinaryExpression"},{name:"left",type:Pt},{name:"operator",type:$},{name:"right",type:Pt}],dt.typeName="BindingIdentifier",dt.fields=[{name:"type",type:_(k),value:"BindingIdentifier"},{name:"name",type:a}],gt.typeName="BindingPropertyIdentifier",gt.fields=[{name:"type",type:_(k),value:"BindingPropertyIdentifier"},{name:"binding",type:dt},{name:"init",type:c(Pt)}],yt.typeName="BindingPropertyProperty",yt.fields=[{name:"type",type:_(k),value:"BindingPropertyProperty"},{name:"name",type:un},{name:"binding",type:b(ft,b(dt,b(st,zt)))}],ft.typeName="BindingWithDefault",ft.fields=[{name:"type",type:_(k),value:"BindingWithDefault"},{name:"binding",type:b(dt,b(st,zt))},{name:"init",type:Pt}],Et.typeName="Block",Et.fields=[{name:"type",type:_(k),value:"Block"},{name:"statements",type:d(Vt)}],mt.typeName="BlockStatement",mt.fields=[{name:"type",type:_(k),value:"BlockStatement"},{name:"block",type:Et}],St.typeName="BreakStatement",St.fields=[{name:"type",type:_(k),value:"BreakStatement"},{name:"label",type:c(a)}],At.typeName="CallExpression",At.fields=[{name:"type",type:_(k),value:"CallExpression"},{name:"callee",type:b(Pt,an)},{name:"arguments",type:d(b(Pt,hn))}],Ot.typeName="CatchClause",Ot.fields=[{name:"type",type:_(k),value:"CatchClause"},{name:"binding",type:b(dt,b(st,zt))},{name:"body",type:Et}],Ct.typeName="ClassDeclaration",Ct.fields=[{name:"type",type:_(k),value:"ClassDeclaration"},{name:"name",type:dt},{name:"super",type:c(Pt)},{name:"elements",type:d(Dt)}],Dt.typeName="ClassElement",Dt.fields=[{name:"type",type:_(k),value:"ClassElement"},{name:"isStatic",type:e},{name:"method",type:lr}],Tt.typeName="ClassExpression",Tt.fields=[{name:"type",type:_(k),value:"ClassExpression"},{name:"name",type:c(dt)},{name:"super",type:c(Pt)},{name:"elements",type:d(Dt)}],vt.typeName="CompoundAssignmentExpression",vt.fields=[{name:"type",type:_(k),value:"CompoundAssignmentExpression"},{name:"binding",type:b(ot,Xt)},{name:"operator",type:j},{name:"expression",type:Pt}],bt.typeName="ComputedMemberAssignmentTarget",bt.fields=[{name:"type",type:_(k),value:"ComputedMemberAssignmentTarget"},{name:"object",type:b(Pt,an)},{name:"expression",type:Pt}],xt.typeName="ComputedMemberExpression",xt.fields=[{name:"type",type:_(k),value:"ComputedMemberExpression"},{name:"object",type:b(Pt,an)},{name:"expression",type:Pt}],Rt.typeName="ComputedPropertyName",Rt.fields=[{name:"type",type:_(k),value:"ComputedPropertyName"},{name:"expression",type:Pt}],Mt.typeName="ConditionalExpression",Mt.fields=[{name:"type",type:_(k),value:"ConditionalExpression"},{name:"test",type:Pt},{name:"consequent",type:Pt},{name:"alternate",type:Pt}],It.typeName="ContinueStatement",It.fields=[{name:"type",type:_(k),value:"ContinueStatement"},{name:"label",type:c(a)}],Ft.typeName="DataProperty",Ft.fields=[{name:"type",type:_(k),value:"DataProperty"},{name:"name",type:un},{name:"expression",type:Pt}],qt.typeName="DebuggerStatement",qt.fields=[{name:"type",type:_(k),value:"DebuggerStatement"}],Qt.typeName="Directive",Qt.fields=[{name:"type",type:_(k),value:"Directive"},{name:"rawValue",type:a}],Nt.typeName="DoWhileStatement",Nt.fields=[{name:"type",type:_(k),value:"DoWhileStatement"},{name:"body",type:Vt},{name:"test",type:Pt}],Kt.typeName="EmptyStatement",Kt.fields=[{name:"type",type:_(k),value:"EmptyStatement"}],Jt.typeName="Export",Jt.fields=[{name:"type",type:_(k),value:"Export"},{name:"declaration",type:b(Ct,sn,rn)}],en.typeName="ExportAllFrom",en.fields=[{name:"type",type:_(k),value:"ExportAllFrom"},{name:"moduleSpecifier",type:a}],tn.typeName="ExportDefault",tn.fields=[{name:"type",type:_(k),value:"ExportDefault"},{name:"body",type:b(Ct,Pt,sn)}],kt.typeName="ExportFrom",kt.fields=[{name:"type",type:_(k),value:"ExportFrom"},{name:"namedExports",type:d(Bt)},{name:"moduleSpecifier",type:a}],Bt.typeName="ExportFromSpecifier",Bt.fields=[{name:"type",type:_(k),value:"ExportFromSpecifier"},{name:"name",type:a},{name:"exportedName",type:c(a)}],jt.typeName="ExportLocalSpecifier",jt.fields=[{name:"type",type:_(k),value:"ExportLocalSpecifier"},{name:"name",type:cn},{name:"exportedName",type:c(a)}],Lt.typeName="ExportLocals",Lt.fields=[{name:"type",type:_(k),value:"ExportLocals"},{name:"namedExports",type:d(jt)}],$t.typeName="ExpressionStatement",$t.fields=[{name:"type",type:_(k),value:"ExpressionStatement"},{name:"expression",type:Pt}],Wt.typeName="ForAwaitStatement",Wt.fields=[{name:"type",type:_(k),value:"ForAwaitStatement"},{name:"left",type:b(b(b(nt,Ht),b(ot,Xt)),rn)},{name:"right",type:Pt},{name:"body",type:Vt}],Gt.typeName="ForInStatement",Gt.fields=[{name:"type",type:_(k),value:"ForInStatement"},{name:"left",type:b(b(b(nt,Ht),b(ot,Xt)),rn)},{name:"right",type:Pt},{name:"body",type:Vt}],Ut.typeName="ForOfStatement",Ut.fields=[{name:"type",type:_(k),value:"ForOfStatement"},{name:"left",type:b(b(b(nt,Ht),b(ot,Xt)),rn)},{name:"right",type:Pt},{name:"body",type:Vt}],nn.typeName="ForStatement",nn.fields=[{name:"type",type:_(k),value:"ForStatement"},{name:"init",type:c(b(Pt,rn))},{name:"test",type:c(Pt)},{name:"update",type:c(Pt)},{name:"body",type:Vt}],Zt.typeName="FormalParameters",Zt.fields=[{name:"type",type:_(k),value:"FormalParameters"},{name:"items",type:d(b(ft,b(dt,b(st,zt))))},{name:"rest",type:c(b(dt,b(st,zt)))}],Yt.typeName="FunctionBody",Yt.fields=[{name:"type",type:_(k),value:"FunctionBody"},{name:"directives",type:d(Qt)},{name:"statements",type:d(Vt)}],sn.typeName="FunctionDeclaration",sn.fields=[{name:"type",type:_(k),value:"FunctionDeclaration"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:dt},{name:"params",type:Zt},{name:"body",type:Yt}],fn.typeName="FunctionExpression",fn.fields=[{name:"type",type:_(k),value:"FunctionExpression"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:c(dt)},{name:"params",type:Zt},{name:"body",type:Yt}],An.typeName="Getter",An.fields=[{name:"type",type:_(k),value:"Getter"},{name:"name",type:un},{name:"body",type:Yt}],cn.typeName="IdentifierExpression",cn.fields=[{name:"type",type:_(k),value:"IdentifierExpression"},{name:"name",type:a}],vn.typeName="IfStatement",vn.fields=[{name:"type",type:_(k),value:"IfStatement"},{name:"test",type:Pt},{name:"consequent",type:Vt},{name:"alternate",type:c(Vt)}],On.typeName="Import",On.fields=[{name:"type",type:_(k),value:"Import"},{name:"defaultBinding",type:c(dt)},{name:"namedImports",type:d(mn)},{name:"moduleSpecifier",type:a}],Cn.typeName="ImportNamespace",Cn.fields=[{name:"type",type:_(k),value:"ImportNamespace"},{name:"defaultBinding",type:c(dt)},{name:"namespaceBinding",type:dt},{name:"moduleSpecifier",type:a}],mn.typeName="ImportSpecifier",mn.fields=[{name:"type",type:_(k),value:"ImportSpecifier"},{name:"name",type:c(a)},{name:"binding",type:dt}],_n.typeName="LabeledStatement",_n.fields=[{name:"type",type:_(k),value:"LabeledStatement"},{name:"label",type:a},{name:"body",type:Vt}],Dn.typeName="LiteralBooleanExpression",Dn.fields=[{name:"type",type:_(k),value:"LiteralBooleanExpression"},{name:"value",type:e}],bn.typeName="LiteralInfinityExpression",bn.fields=[{name:"type",type:_(k),value:"LiteralInfinityExpression"}],xn.typeName="LiteralNullExpression",xn.fields=[{name:"type",type:_(k),value:"LiteralNullExpression"}],Tn.typeName="LiteralNumericExpression",Tn.fields=[{name:"type",type:_(k),value:"LiteralNumericExpression"},{name:"value",type:s}],kn.typeName="LiteralRegExpExpression",kn.fields=[{name:"type",type:_(k),value:"LiteralRegExpExpression"},{name:"pattern",type:a},{name:"global",type:e},{name:"ignoreCase",type:e},{name:"multiLine",type:e},{name:"dotAll",type:e},{name:"unicode",type:e},{name:"sticky",type:e}],wn.typeName="LiteralStringExpression",wn.fields=[{name:"type",type:_(k),value:"LiteralStringExpression"},{name:"value",type:a}],Fn.typeName="Method",Fn.fields=[{name:"type",type:_(k),value:"Method"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:un},{name:"params",type:Zt},{name:"body",type:Yt}],Nn.typeName="Module",Nn.fields=[{name:"type",type:_(k),value:"Module"},{name:"directives",type:d(Qt)},{name:"items",type:d(b(ar,or,Vt))}],Pn.typeName="NewExpression",Pn.fields=[{name:"type",type:_(k),value:"NewExpression"},{name:"callee",type:Pt},{name:"arguments",type:d(b(Pt,hn))}],Bn.typeName="NewTargetExpression",Bn.fields=[{name:"type",type:_(k),value:"NewTargetExpression"}],Ht.typeName="ObjectAssignmentTarget",Ht.fields=[{name:"type",type:_(k),value:"ObjectAssignmentTarget"},{name:"properties",type:d(sr)},{name:"rest",type:c(b(b(nt,Ht),b(ot,Xt)))}],zt.typeName="ObjectBinding",zt.fields=[{name:"type",type:_(k),value:"ObjectBinding"},{name:"properties",type:d(ur)},{name:"rest",type:c(b(dt,b(st,zt)))}],Rn.typeName="ObjectExpression",Rn.fields=[{name:"type",type:_(k),value:"ObjectExpression"},{name:"properties",type:d(cr)}],In.typeName="ReturnStatement",In.fields=[{name:"type",type:_(k),value:"ReturnStatement"},{name:"expression",type:c(Pt)}],Mn.typeName="Script",Mn.fields=[{name:"type",type:_(k),value:"Script"},{name:"directives",type:d(Qt)},{name:"statements",type:d(Vt)}],$n.typeName="Setter",$n.fields=[{name:"type",type:_(k),value:"Setter"},{name:"name",type:un},{name:"param",type:b(ft,b(dt,b(st,zt)))},{name:"body",type:Yt}],Ln.typeName="ShorthandProperty",Ln.fields=[{name:"type",type:_(k),value:"ShorthandProperty"},{name:"name",type:cn}],hn.typeName="SpreadElement",hn.fields=[{name:"type",type:_(k),value:"SpreadElement"},{name:"expression",type:Pt}],Wn.typeName="SpreadProperty",Wn.fields=[{name:"type",type:_(k),value:"SpreadProperty"},{name:"expression",type:Pt}],jn.typeName="StaticMemberAssignmentTarget",jn.fields=[{name:"type",type:_(k),value:"StaticMemberAssignmentTarget"},{name:"object",type:b(Pt,an)},{name:"property",type:a}],Qn.typeName="StaticMemberExpression",Qn.fields=[{name:"type",type:_(k),value:"StaticMemberExpression"},{name:"object",type:b(Pt,an)},{name:"property",type:a}],qn.typeName="StaticPropertyName",qn.fields=[{name:"type",type:_(k),value:"StaticPropertyName"},{name:"value",type:a}],an.typeName="Super",an.fields=[{name:"type",type:_(k),value:"Super"}],pn.typeName="SwitchCase",pn.fields=[{name:"type",type:_(k),value:"SwitchCase"},{name:"test",type:Pt},{name:"consequent",type:d(Vt)}],gn.typeName="SwitchDefault",gn.fields=[{name:"type",type:_(k),value:"SwitchDefault"},{name:"consequent",type:d(Vt)}],Vn.typeName="SwitchStatement",Vn.fields=[{name:"type",type:_(k),value:"SwitchStatement"},{name:"discriminant",type:Pt},{name:"cases",type:d(pn)}],Gn.typeName="SwitchStatementWithDefault",Gn.fields=[{name:"type",type:_(k),value:"SwitchStatementWithDefault"},{name:"discriminant",type:Pt},{name:"preDefaultCases",type:d(pn)},{name:"defaultCase",type:gn},{name:"postDefaultCases",type:d(pn)}],yn.typeName="TemplateElement",yn.fields=[{name:"type",type:_(k),value:"TemplateElement"},{name:"rawValue",type:a}],zn.typeName="TemplateExpression",zn.fields=[{name:"type",type:_(k),value:"TemplateExpression"},{name:"tag",type:c(Pt)},{name:"elements",type:d(b(Pt,yn))}],Un.typeName="ThisExpression",Un.fields=[{name:"type",type:_(k),value:"ThisExpression"}],Hn.typeName="ThrowStatement",Hn.fields=[{name:"type",type:_(k),value:"ThrowStatement"},{name:"expression",type:Pt}],Xn.typeName="TryCatchStatement",Xn.fields=[{name:"type",type:_(k),value:"TryCatchStatement"},{name:"body",type:Et},{name:"catchClause",type:Ot}],Zn.typeName="TryFinallyStatement",Zn.fields=[{name:"type",type:_(k),value:"TryFinallyStatement"},{name:"body",type:Et},{name:"catchClause",type:c(Ot)},{name:"finalizer",type:Et}],Yn.typeName="UnaryExpression",Yn.fields=[{name:"type",type:_(k),value:"UnaryExpression"},{name:"operator",type:_e},{name:"operand",type:Pt}],Kn.typeName="UpdateExpression",Kn.fields=[{name:"type",type:_(k),value:"UpdateExpression"},{name:"isPrefix",type:e},{name:"operator",type:et},{name:"operand",type:b(ot,Xt)}],rn.typeName="VariableDeclaration",rn.fields=[{name:"type",type:_(k),value:"VariableDeclaration"},{name:"kind",type:tt},{name:"declarators",type:d(En)}],Jn.typeName="VariableDeclarationStatement",Jn.fields=[{name:"type",type:_(k),value:"VariableDeclarationStatement"},{name:"declaration",type:rn}],En.typeName="VariableDeclarator",En.fields=[{name:"type",type:_(k),value:"VariableDeclarator"},{name:"binding",type:b(dt,b(st,zt))},{name:"init",type:c(Pt)}],er.typeName="WhileStatement",er.fields=[{name:"type",type:_(k),value:"WhileStatement"},{name:"test",type:Pt},{name:"body",type:Vt}],tr.typeName="WithStatement",tr.fields=[{name:"type",type:_(k),value:"WithStatement"},{name:"object",type:Pt},{name:"body",type:Vt}],nr.typeName="YieldExpression",nr.fields=[{name:"type",type:_(k),value:"YieldExpression"},{name:"expression",type:c(Pt)}],rr.typeName="YieldGeneratorExpression",rr.fields=[{name:"type",type:_(k),value:"YieldGeneratorExpression"},{name:"expression",type:Pt}],o}(),estraverse$1={};(function(o){(function e(s){var a,c,d,_,b,k;function $(ct){var ut={},lt,pt;for(lt in ct)ct.hasOwnProperty(lt)&&(pt=ct[lt],typeof pt=="object"&&pt!==null?ut[lt]=$(pt):ut[lt]=pt);return ut}function j(ct,ut){var lt,pt,dt,gt;for(pt=ct.length,dt=0;pt;)lt=pt>>>1,gt=dt+lt,ut(ct[gt])?pt=lt:(dt=gt+1,pt-=lt+1);return dt}a={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",PrivateIdentifier:"PrivateIdentifier",Program:"Program",Property:"Property",PropertyDefinition:"PropertyDefinition",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},d={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},_={},b={},k={},c={Break:_,Skip:b,Remove:k};function _e(ct,ut){this.parent=ct,this.key=ut}_e.prototype.replace=function(ut){this.parent[this.key]=ut},_e.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)};function et(ct,ut,lt,pt){this.node=ct,this.path=ut,this.wrap=lt,this.ref=pt}function tt(){}tt.prototype.path=function(){var ut,lt,pt,dt,gt,yt;function ft(Et,mt){if(Array.isArray(mt))for(pt=0,dt=mt.length;pt=0;--lt)if(ct[lt].node===ut)return!0;return!1}tt.prototype.traverse=function(ut,lt){var pt,dt,gt,yt,ft,Et,mt,St,At,Ot,Ct,Dt;for(this.__initialize(ut,lt),Dt={},pt=this.__worklist,dt=this.__leavelist,pt.push(new et(ut,null,null,null)),dt.push(new et(null,null,null,null));pt.length;){if(gt=pt.pop(),gt===Dt){if(gt=dt.pop(),Et=this.__execute(lt.leave,gt),this.__state===_||Et===_)return;continue}if(gt.node){if(Et=this.__execute(lt.enter,gt),this.__state===_||Et===_)return;if(pt.push(Dt),dt.push(gt),this.__state===b||Et===b)continue;if(yt=gt.node,ft=yt.type||gt.wrap,Ot=this.__keys[ft],!Ot)if(this.__fallback)Ot=this.__fallback(yt);else throw new Error("Unknown node type "+ft+".");for(St=Ot.length;(St-=1)>=0;)if(mt=Ot[St],Ct=yt[mt],!!Ct){if(Array.isArray(Ct)){for(At=Ct.length;(At-=1)>=0;)if(!!Ct[At]&&!rt(dt,Ct[At])){if(st(ft,Ot[St]))gt=new et(Ct[At],[mt,At],"Property",null);else if(nt(Ct[At]))gt=new et(Ct[At],[mt,At],null,null);else continue;pt.push(gt)}}else if(nt(Ct)){if(rt(dt,Ct))continue;pt.push(new et(Ct,mt,null,null))}}}}},tt.prototype.replace=function(ut,lt){var pt,dt,gt,yt,ft,Et,mt,St,At,Ot,Ct,Dt,Tt;function vt(bt){var xt,Rt,Mt,It;if(bt.ref.remove()){for(Rt=bt.ref.key,It=bt.ref.parent,xt=pt.length;xt--;)if(Mt=pt[xt],Mt.ref&&Mt.ref.parent===It){if(Mt.ref.key=0;)if(Tt=At[mt],Ot=gt[Tt],!!Ot)if(Array.isArray(Ot)){for(St=Ot.length;(St-=1)>=0;)if(!!Ot[St]){if(st(yt,At[mt]))Et=new et(Ot[St],[Tt,St],"Property",new _e(Ot,St));else if(nt(Ot[St]))Et=new et(Ot[St],[Tt,St],null,new _e(Ot,St));else continue;pt.push(Et)}}else nt(Ot)&&pt.push(new et(Ot,Tt,null,new _e(gt,Tt)))}}return Dt.root};function it(ct,ut){var lt=new tt;return lt.traverse(ct,ut)}function at(ct,ut){var lt=new tt;return lt.replace(ct,ut)}function ot(ct,ut){var lt;return lt=j(ut,function(dt){return dt.range[0]>ct.range[0]}),ct.extendedRange=[ct.range[0],ct.range[1]],lt!==ut.length&&(ct.extendedRange[1]=ut[lt].range[0]),lt-=1,lt>=0&&(ct.extendedRange[0]=ut[lt].range[1]),ct}function ht(ct,ut,lt){var pt=[],dt,gt,yt,ft;if(!ct.range)throw new Error("attachComments needs range information");if(!lt.length){if(ut.length){for(yt=0,gt=ut.length;ytEt.range[0]));)mt.extendedRange[1]===Et.range[0]?(Et.leadingComments||(Et.leadingComments=[]),Et.leadingComments.push(mt),pt.splice(ft,1)):ft+=1;if(ft===pt.length)return c.Break;if(pt[ft].extendedRange[0]>Et.range[1])return c.Skip}}),ft=0,it(ct,{leave:function(Et){for(var mt;ftEt.range[1])return c.Skip}}),ct}return s.Syntax=a,s.traverse=it,s.replace=at,s.attachComments=ht,s.VisitorKeys=d,s.VisitorOption=c,s.Controller=tt,s.cloneEnvironment=function(){return e({})},s})(o)})(estraverse$1);const Spec=_default.default||_default,estraverse=estraverse$1.cloneEnvironment();Object.keys(estraverse.Syntax).filter(o=>o!=="Property").forEach(o=>{delete estraverse.Syntax[o],delete estraverse.VisitorKeys[o]});Object.assign(estraverse.Syntax,Object.keys(Spec).reduce((o,e)=>(o[e]=e,o),{}));Object.assign(estraverse.VisitorKeys,Object.keys(Spec).reduce((o,e)=>(o[e]=Spec[e].fields.map(s=>s.name),o),{}));var dist$1={},StaticMemberExpression_1,ReturnStatement_1,LiteralStringExpression_1,LiteralNumericExpression_1,IdentifierExpression_1,CallExpression_1,ArrayExpression_1;Object.defineProperty(dist$1,"__esModule",{value:!0});function _classCallCheck$5(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}dist$1.ArrayAssignmentTarget=function o(e){var s=e.elements,a=e.rest;_classCallCheck$5(this,o),this.type="ArrayAssignmentTarget",this.elements=s,this.rest=a};dist$1.ArrayBinding=function o(e){var s=e.elements,a=e.rest;_classCallCheck$5(this,o),this.type="ArrayBinding",this.elements=s,this.rest=a};ArrayExpression_1=dist$1.ArrayExpression=function o(e){var s=e.elements;_classCallCheck$5(this,o),this.type="ArrayExpression",this.elements=s};dist$1.ArrowExpression=function o(e){var s=e.isAsync,a=e.params,c=e.body;_classCallCheck$5(this,o),this.type="ArrowExpression",this.isAsync=s,this.params=a,this.body=c};dist$1.AssignmentExpression=function o(e){var s=e.binding,a=e.expression;_classCallCheck$5(this,o),this.type="AssignmentExpression",this.binding=s,this.expression=a};dist$1.AssignmentTargetIdentifier=function o(e){var s=e.name;_classCallCheck$5(this,o),this.type="AssignmentTargetIdentifier",this.name=s};dist$1.AssignmentTargetPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="AssignmentTargetPropertyIdentifier",this.binding=s,this.init=a};dist$1.AssignmentTargetPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$5(this,o),this.type="AssignmentTargetPropertyProperty",this.name=s,this.binding=a};dist$1.AssignmentTargetWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="AssignmentTargetWithDefault",this.binding=s,this.init=a};dist$1.AwaitExpression=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="AwaitExpression",this.expression=s};dist$1.BinaryExpression=function o(e){var s=e.left,a=e.operator,c=e.right;_classCallCheck$5(this,o),this.type="BinaryExpression",this.left=s,this.operator=a,this.right=c};dist$1.BindingIdentifier=function o(e){var s=e.name;_classCallCheck$5(this,o),this.type="BindingIdentifier",this.name=s};dist$1.BindingPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="BindingPropertyIdentifier",this.binding=s,this.init=a};dist$1.BindingPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$5(this,o),this.type="BindingPropertyProperty",this.name=s,this.binding=a};dist$1.BindingWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="BindingWithDefault",this.binding=s,this.init=a};dist$1.Block=function o(e){var s=e.statements;_classCallCheck$5(this,o),this.type="Block",this.statements=s};dist$1.BlockStatement=function o(e){var s=e.block;_classCallCheck$5(this,o),this.type="BlockStatement",this.block=s};dist$1.BreakStatement=function o(e){var s=e.label;_classCallCheck$5(this,o),this.type="BreakStatement",this.label=s};CallExpression_1=dist$1.CallExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$5(this,o),this.type="CallExpression",this.callee=s,this.arguments=a};dist$1.CatchClause=function o(e){var s=e.binding,a=e.body;_classCallCheck$5(this,o),this.type="CatchClause",this.binding=s,this.body=a};dist$1.ClassDeclaration=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$5(this,o),this.type="ClassDeclaration",this.name=s,this.super=a,this.elements=c};dist$1.ClassElement=function o(e){var s=e.isStatic,a=e.method;_classCallCheck$5(this,o),this.type="ClassElement",this.isStatic=s,this.method=a};dist$1.ClassExpression=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$5(this,o),this.type="ClassExpression",this.name=s,this.super=a,this.elements=c};dist$1.CompoundAssignmentExpression=function o(e){var s=e.binding,a=e.operator,c=e.expression;_classCallCheck$5(this,o),this.type="CompoundAssignmentExpression",this.binding=s,this.operator=a,this.expression=c};dist$1.ComputedMemberAssignmentTarget=function o(e){var s=e.object,a=e.expression;_classCallCheck$5(this,o),this.type="ComputedMemberAssignmentTarget",this.object=s,this.expression=a};dist$1.ComputedMemberExpression=function o(e){var s=e.object,a=e.expression;_classCallCheck$5(this,o),this.type="ComputedMemberExpression",this.object=s,this.expression=a};dist$1.ComputedPropertyName=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="ComputedPropertyName",this.expression=s};dist$1.ConditionalExpression=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$5(this,o),this.type="ConditionalExpression",this.test=s,this.consequent=a,this.alternate=c};dist$1.ContinueStatement=function o(e){var s=e.label;_classCallCheck$5(this,o),this.type="ContinueStatement",this.label=s};dist$1.DataProperty=function o(e){var s=e.name,a=e.expression;_classCallCheck$5(this,o),this.type="DataProperty",this.name=s,this.expression=a};dist$1.DebuggerStatement=function o(){_classCallCheck$5(this,o),this.type="DebuggerStatement"};dist$1.Directive=function o(e){var s=e.rawValue;_classCallCheck$5(this,o),this.type="Directive",this.rawValue=s};dist$1.DoWhileStatement=function o(e){var s=e.body,a=e.test;_classCallCheck$5(this,o),this.type="DoWhileStatement",this.body=s,this.test=a};dist$1.EmptyStatement=function o(){_classCallCheck$5(this,o),this.type="EmptyStatement"};dist$1.Export=function o(e){var s=e.declaration;_classCallCheck$5(this,o),this.type="Export",this.declaration=s};dist$1.ExportAllFrom=function o(e){var s=e.moduleSpecifier;_classCallCheck$5(this,o),this.type="ExportAllFrom",this.moduleSpecifier=s};dist$1.ExportDefault=function o(e){var s=e.body;_classCallCheck$5(this,o),this.type="ExportDefault",this.body=s};dist$1.ExportFrom=function o(e){var s=e.namedExports,a=e.moduleSpecifier;_classCallCheck$5(this,o),this.type="ExportFrom",this.namedExports=s,this.moduleSpecifier=a};dist$1.ExportFromSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$5(this,o),this.type="ExportFromSpecifier",this.name=s,this.exportedName=a};dist$1.ExportLocalSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$5(this,o),this.type="ExportLocalSpecifier",this.name=s,this.exportedName=a};dist$1.ExportLocals=function o(e){var s=e.namedExports;_classCallCheck$5(this,o),this.type="ExportLocals",this.namedExports=s};dist$1.ExpressionStatement=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="ExpressionStatement",this.expression=s};dist$1.ForAwaitStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$5(this,o),this.type="ForAwaitStatement",this.left=s,this.right=a,this.body=c};dist$1.ForInStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$5(this,o),this.type="ForInStatement",this.left=s,this.right=a,this.body=c};dist$1.ForOfStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$5(this,o),this.type="ForOfStatement",this.left=s,this.right=a,this.body=c};dist$1.ForStatement=function o(e){var s=e.init,a=e.test,c=e.update,d=e.body;_classCallCheck$5(this,o),this.type="ForStatement",this.init=s,this.test=a,this.update=c,this.body=d};dist$1.FormalParameters=function o(e){var s=e.items,a=e.rest;_classCallCheck$5(this,o),this.type="FormalParameters",this.items=s,this.rest=a};dist$1.FunctionBody=function o(e){var s=e.directives,a=e.statements;_classCallCheck$5(this,o),this.type="FunctionBody",this.directives=s,this.statements=a};dist$1.FunctionDeclaration=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$5(this,o),this.type="FunctionDeclaration",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$1.FunctionExpression=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$5(this,o),this.type="FunctionExpression",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$1.Getter=function o(e){var s=e.name,a=e.body;_classCallCheck$5(this,o),this.type="Getter",this.name=s,this.body=a};IdentifierExpression_1=dist$1.IdentifierExpression=function o(e){var s=e.name;_classCallCheck$5(this,o),this.type="IdentifierExpression",this.name=s};dist$1.IfStatement=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$5(this,o),this.type="IfStatement",this.test=s,this.consequent=a,this.alternate=c};dist$1.Import=function o(e){var s=e.defaultBinding,a=e.namedImports,c=e.moduleSpecifier;_classCallCheck$5(this,o),this.type="Import",this.defaultBinding=s,this.namedImports=a,this.moduleSpecifier=c};dist$1.ImportNamespace=function o(e){var s=e.defaultBinding,a=e.namespaceBinding,c=e.moduleSpecifier;_classCallCheck$5(this,o),this.type="ImportNamespace",this.defaultBinding=s,this.namespaceBinding=a,this.moduleSpecifier=c};dist$1.ImportSpecifier=function o(e){var s=e.name,a=e.binding;_classCallCheck$5(this,o),this.type="ImportSpecifier",this.name=s,this.binding=a};dist$1.LabeledStatement=function o(e){var s=e.label,a=e.body;_classCallCheck$5(this,o),this.type="LabeledStatement",this.label=s,this.body=a};dist$1.LiteralBooleanExpression=function o(e){var s=e.value;_classCallCheck$5(this,o),this.type="LiteralBooleanExpression",this.value=s};dist$1.LiteralInfinityExpression=function o(){_classCallCheck$5(this,o),this.type="LiteralInfinityExpression"};dist$1.LiteralNullExpression=function o(){_classCallCheck$5(this,o),this.type="LiteralNullExpression"};LiteralNumericExpression_1=dist$1.LiteralNumericExpression=function o(e){var s=e.value;_classCallCheck$5(this,o),this.type="LiteralNumericExpression",this.value=s};dist$1.LiteralRegExpExpression=function o(e){var s=e.pattern,a=e.global,c=e.ignoreCase,d=e.multiLine,_=e.dotAll,b=e.unicode,k=e.sticky;_classCallCheck$5(this,o),this.type="LiteralRegExpExpression",this.pattern=s,this.global=a,this.ignoreCase=c,this.multiLine=d,this.dotAll=_,this.unicode=b,this.sticky=k};LiteralStringExpression_1=dist$1.LiteralStringExpression=function o(e){var s=e.value;_classCallCheck$5(this,o),this.type="LiteralStringExpression",this.value=s};dist$1.Method=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$5(this,o),this.type="Method",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$1.Module=function o(e){var s=e.directives,a=e.items;_classCallCheck$5(this,o),this.type="Module",this.directives=s,this.items=a};dist$1.NewExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$5(this,o),this.type="NewExpression",this.callee=s,this.arguments=a};dist$1.NewTargetExpression=function o(){_classCallCheck$5(this,o),this.type="NewTargetExpression"};dist$1.ObjectAssignmentTarget=function o(e){var s=e.properties,a=e.rest;_classCallCheck$5(this,o),this.type="ObjectAssignmentTarget",this.properties=s,this.rest=a};dist$1.ObjectBinding=function o(e){var s=e.properties,a=e.rest;_classCallCheck$5(this,o),this.type="ObjectBinding",this.properties=s,this.rest=a};dist$1.ObjectExpression=function o(e){var s=e.properties;_classCallCheck$5(this,o),this.type="ObjectExpression",this.properties=s};ReturnStatement_1=dist$1.ReturnStatement=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="ReturnStatement",this.expression=s};dist$1.Script=function o(e){var s=e.directives,a=e.statements;_classCallCheck$5(this,o),this.type="Script",this.directives=s,this.statements=a};dist$1.Setter=function o(e){var s=e.name,a=e.param,c=e.body;_classCallCheck$5(this,o),this.type="Setter",this.name=s,this.param=a,this.body=c};dist$1.ShorthandProperty=function o(e){var s=e.name;_classCallCheck$5(this,o),this.type="ShorthandProperty",this.name=s};dist$1.SpreadElement=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="SpreadElement",this.expression=s};dist$1.SpreadProperty=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="SpreadProperty",this.expression=s};dist$1.StaticMemberAssignmentTarget=function o(e){var s=e.object,a=e.property;_classCallCheck$5(this,o),this.type="StaticMemberAssignmentTarget",this.object=s,this.property=a};StaticMemberExpression_1=dist$1.StaticMemberExpression=function o(e){var s=e.object,a=e.property;_classCallCheck$5(this,o),this.type="StaticMemberExpression",this.object=s,this.property=a};dist$1.StaticPropertyName=function o(e){var s=e.value;_classCallCheck$5(this,o),this.type="StaticPropertyName",this.value=s};dist$1.Super=function o(){_classCallCheck$5(this,o),this.type="Super"};dist$1.SwitchCase=function o(e){var s=e.test,a=e.consequent;_classCallCheck$5(this,o),this.type="SwitchCase",this.test=s,this.consequent=a};dist$1.SwitchDefault=function o(e){var s=e.consequent;_classCallCheck$5(this,o),this.type="SwitchDefault",this.consequent=s};dist$1.SwitchStatement=function o(e){var s=e.discriminant,a=e.cases;_classCallCheck$5(this,o),this.type="SwitchStatement",this.discriminant=s,this.cases=a};dist$1.SwitchStatementWithDefault=function o(e){var s=e.discriminant,a=e.preDefaultCases,c=e.defaultCase,d=e.postDefaultCases;_classCallCheck$5(this,o),this.type="SwitchStatementWithDefault",this.discriminant=s,this.preDefaultCases=a,this.defaultCase=c,this.postDefaultCases=d};dist$1.TemplateElement=function o(e){var s=e.rawValue;_classCallCheck$5(this,o),this.type="TemplateElement",this.rawValue=s};dist$1.TemplateExpression=function o(e){var s=e.tag,a=e.elements;_classCallCheck$5(this,o),this.type="TemplateExpression",this.tag=s,this.elements=a};dist$1.ThisExpression=function o(){_classCallCheck$5(this,o),this.type="ThisExpression"};dist$1.ThrowStatement=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="ThrowStatement",this.expression=s};dist$1.TryCatchStatement=function o(e){var s=e.body,a=e.catchClause;_classCallCheck$5(this,o),this.type="TryCatchStatement",this.body=s,this.catchClause=a};dist$1.TryFinallyStatement=function o(e){var s=e.body,a=e.catchClause,c=e.finalizer;_classCallCheck$5(this,o),this.type="TryFinallyStatement",this.body=s,this.catchClause=a,this.finalizer=c};dist$1.UnaryExpression=function o(e){var s=e.operator,a=e.operand;_classCallCheck$5(this,o),this.type="UnaryExpression",this.operator=s,this.operand=a};dist$1.UpdateExpression=function o(e){var s=e.isPrefix,a=e.operator,c=e.operand;_classCallCheck$5(this,o),this.type="UpdateExpression",this.isPrefix=s,this.operator=a,this.operand=c};dist$1.VariableDeclaration=function o(e){var s=e.kind,a=e.declarators;_classCallCheck$5(this,o),this.type="VariableDeclaration",this.kind=s,this.declarators=a};dist$1.VariableDeclarationStatement=function o(e){var s=e.declaration;_classCallCheck$5(this,o),this.type="VariableDeclarationStatement",this.declaration=s};dist$1.VariableDeclarator=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="VariableDeclarator",this.binding=s,this.init=a};dist$1.WhileStatement=function o(e){var s=e.test,a=e.body;_classCallCheck$5(this,o),this.type="WhileStatement",this.test=s,this.body=a};dist$1.WithStatement=function o(e){var s=e.object,a=e.body;_classCallCheck$5(this,o),this.type="WithStatement",this.object=s,this.body=a};dist$1.YieldExpression=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="YieldExpression",this.expression=s};dist$1.YieldGeneratorExpression=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="YieldGeneratorExpression",this.expression=s};var dist={},minimalCodegen={};/* object-assign (c) Sindre Sorhus @license MIT -*/var getOwnPropertySymbols=Object.getOwnPropertySymbols,hasOwnProperty$1=Object.prototype.hasOwnProperty,propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(o){if(o==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(o)}function shouldUseNative(){try{if(!Object.assign)return!1;var o=new String("abc");if(o[5]="de",Object.getOwnPropertyNames(o)[0]==="5")return!1;for(var e={},s=0;s<10;s++)e["_"+String.fromCharCode(s)]=s;var a=Object.getOwnPropertyNames(e).map(function(d){return e[d]});if(a.join("")!=="0123456789")return!1;var c={};return"abcdefghijklmnopqrst".split("").forEach(function(d){c[d]=d}),Object.keys(Object.assign({},c)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}var objectAssign=shouldUseNative()?Object.assign:function(o,e){for(var s,a=toObject(o),c,d=1;d=48&&rt<=55}s=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];function $(rt){return rt===32||rt===9||rt===11||rt===12||rt===160||rt>=5760&&s.indexOf(rt)>=0}function j(rt){return rt===10||rt===13||rt===8232||rt===8233}function _e(rt){if(rt<=65535)return String.fromCharCode(rt);var st=String.fromCharCode(Math.floor((rt-65536)/1024)+55296),at=String.fromCharCode((rt-65536)%1024+56320);return st+at}for(a=new Array(128),d=0;d<128;++d)a[d]=d>=97&&d<=122||d>=65&&d<=90||d===36||d===95;for(c=new Array(128),d=0;d<128;++d)c[d]=d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===36||d===95;function et(rt){return rt<128?a[rt]:e.NonAsciiIdentifierStart.test(_e(rt))}function tt(rt){return rt<128?c[rt]:e.NonAsciiIdentifierPart.test(_e(rt))}function nt(rt){return rt<128?a[rt]:o.NonAsciiIdentifierStart.test(_e(rt))}function it(rt){return rt<128?c[rt]:o.NonAsciiIdentifierPart.test(_e(rt))}code$1.exports={isDecimalDigit:_,isHexDigit:b,isOctalDigit:k,isWhiteSpace:$,isLineTerminator:j,isIdentifierStartES5:et,isIdentifierPartES5:tt,isIdentifierStartES6:nt,isIdentifierPartES6:it}})();var keyword$1={exports:{}};(function(){var o=code$1.exports;function e(et){switch(et){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}function s(et,tt){return!tt&&et==="yield"?!1:a(et,tt)}function a(et,tt){if(tt&&e(et))return!0;switch(et.length){case 2:return et==="if"||et==="in"||et==="do";case 3:return et==="var"||et==="for"||et==="new"||et==="try";case 4:return et==="this"||et==="else"||et==="case"||et==="void"||et==="with"||et==="enum";case 5:return et==="while"||et==="break"||et==="catch"||et==="throw"||et==="const"||et==="yield"||et==="class"||et==="super";case 6:return et==="return"||et==="typeof"||et==="delete"||et==="switch"||et==="export"||et==="import";case 7:return et==="default"||et==="finally"||et==="extends";case 8:return et==="function"||et==="continue"||et==="debugger";case 10:return et==="instanceof";default:return!1}}function c(et,tt){return et==="null"||et==="true"||et==="false"||s(et,tt)}function d(et,tt){return et==="null"||et==="true"||et==="false"||a(et,tt)}function _(et){return et==="eval"||et==="arguments"}function b(et){var tt,nt,it;if(et.length===0||(it=et.charCodeAt(0),!o.isIdentifierStartES5(it)))return!1;for(tt=1,nt=et.length;tt=nt||(rt=et.charCodeAt(tt),!(56320<=rt&&rt<=57343)))return!1;it=k(it,rt)}if(!st(it))return!1;st=o.isIdentifierPartES6}return!0}function j(et,tt){return b(et)&&!c(et,tt)}function _e(et,tt){return $(et)&&!d(et,tt)}keyword$1.exports={isKeywordES5:s,isKeywordES6:a,isReservedWordES5:c,isReservedWordES6:d,isRestrictedWord:_,isIdentifierNameES5:b,isIdentifierNameES6:$,isIdentifierES5:j,isIdentifierES6:_e}})();(function(){utils.ast=ast.exports,utils.code=code$1.exports,utils.keyword=keyword$1.exports})();var coderep={};Object.defineProperty(coderep,"__esModule",{value:!0});var _createClass$4=function(){function o(e,s){for(var a=0;a":Precedence.Relational,"<=":Precedence.Relational,">=":Precedence.Relational,in:Precedence.Relational,instanceof:Precedence.Relational,"<<":Precedence.BitwiseSHIFT,">>":Precedence.BitwiseSHIFT,">>>":Precedence.BitwiseSHIFT,"+":Precedence.Additive,"-":Precedence.Additive,"*":Precedence.Multiplicative,"%":Precedence.Multiplicative,"/":Precedence.Multiplicative,"**":Precedence.Exponential};function getPrecedence(o){switch(o.type){case"ArrayExpression":case"FunctionExpression":case"ClassExpression":case"IdentifierExpression":case"AssignmentTargetIdentifier":case"NewTargetExpression":case"Super":case"LiteralBooleanExpression":case"LiteralNullExpression":case"LiteralNumericExpression":case"LiteralInfinityExpression":case"LiteralRegExpExpression":case"LiteralStringExpression":case"ObjectExpression":case"ThisExpression":case"SpreadElement":case"FunctionBody":return Precedence.Primary;case"ArrowExpression":case"AssignmentExpression":case"CompoundAssignmentExpression":case"YieldExpression":case"YieldGeneratorExpression":return Precedence.Assignment;case"ConditionalExpression":return Precedence.Conditional;case"ComputedMemberExpression":case"StaticMemberExpression":case"ComputedMemberAssignmentTarget":case"StaticMemberAssignmentTarget":switch(o.object.type){case"CallExpression":case"ComputedMemberExpression":case"StaticMemberExpression":case"TemplateExpression":return getPrecedence(o.object);default:return Precedence.Member}case"TemplateExpression":if(o.tag==null)return Precedence.Member;switch(o.tag.type){case"CallExpression":case"ComputedMemberExpression":case"StaticMemberExpression":case"TemplateExpression":return getPrecedence(o.tag);default:return Precedence.Member}case"BinaryExpression":return BinaryPrecedence[o.operator];case"CallExpression":return Precedence.Call;case"NewExpression":return o.arguments.length===0?Precedence.New:Precedence.Member;case"UpdateExpression":return o.isPrefix?Precedence.Prefix:Precedence.Postfix;case"AwaitExpression":case"UnaryExpression":return Precedence.Prefix;default:throw new Error("unreachable: "+o.type)}}function escapeStringLiteral(o){for(var e="",s=0,a=0,c=0,d=o.length;cs?"'":'"';e+=b;for(var k=0;k=48&&rt<=55}s=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];function $(rt){return rt===32||rt===9||rt===11||rt===12||rt===160||rt>=5760&&s.indexOf(rt)>=0}function j(rt){return rt===10||rt===13||rt===8232||rt===8233}function _e(rt){if(rt<=65535)return String.fromCharCode(rt);var it=String.fromCharCode(Math.floor((rt-65536)/1024)+55296),at=String.fromCharCode((rt-65536)%1024+56320);return it+at}for(a=new Array(128),d=0;d<128;++d)a[d]=d>=97&&d<=122||d>=65&&d<=90||d===36||d===95;for(c=new Array(128),d=0;d<128;++d)c[d]=d>=97&&d<=122||d>=65&&d<=90||d>=48&&d<=57||d===36||d===95;function et(rt){return rt<128?a[rt]:e.NonAsciiIdentifierStart.test(_e(rt))}function tt(rt){return rt<128?c[rt]:e.NonAsciiIdentifierPart.test(_e(rt))}function nt(rt){return rt<128?a[rt]:o.NonAsciiIdentifierStart.test(_e(rt))}function st(rt){return rt<128?c[rt]:o.NonAsciiIdentifierPart.test(_e(rt))}code$1.exports={isDecimalDigit:_,isHexDigit:b,isOctalDigit:k,isWhiteSpace:$,isLineTerminator:j,isIdentifierStartES5:et,isIdentifierPartES5:tt,isIdentifierStartES6:nt,isIdentifierPartES6:st}})();var keyword$1={exports:{}};(function(){var o=code$1.exports;function e(et){switch(et){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}function s(et,tt){return!tt&&et==="yield"?!1:a(et,tt)}function a(et,tt){if(tt&&e(et))return!0;switch(et.length){case 2:return et==="if"||et==="in"||et==="do";case 3:return et==="var"||et==="for"||et==="new"||et==="try";case 4:return et==="this"||et==="else"||et==="case"||et==="void"||et==="with"||et==="enum";case 5:return et==="while"||et==="break"||et==="catch"||et==="throw"||et==="const"||et==="yield"||et==="class"||et==="super";case 6:return et==="return"||et==="typeof"||et==="delete"||et==="switch"||et==="export"||et==="import";case 7:return et==="default"||et==="finally"||et==="extends";case 8:return et==="function"||et==="continue"||et==="debugger";case 10:return et==="instanceof";default:return!1}}function c(et,tt){return et==="null"||et==="true"||et==="false"||s(et,tt)}function d(et,tt){return et==="null"||et==="true"||et==="false"||a(et,tt)}function _(et){return et==="eval"||et==="arguments"}function b(et){var tt,nt,st;if(et.length===0||(st=et.charCodeAt(0),!o.isIdentifierStartES5(st)))return!1;for(tt=1,nt=et.length;tt=nt||(rt=et.charCodeAt(tt),!(56320<=rt&&rt<=57343)))return!1;st=k(st,rt)}if(!it(st))return!1;it=o.isIdentifierPartES6}return!0}function j(et,tt){return b(et)&&!c(et,tt)}function _e(et,tt){return $(et)&&!d(et,tt)}keyword$1.exports={isKeywordES5:s,isKeywordES6:a,isReservedWordES5:c,isReservedWordES6:d,isRestrictedWord:_,isIdentifierNameES5:b,isIdentifierNameES6:$,isIdentifierES5:j,isIdentifierES6:_e}})();(function(){utils.ast=ast.exports,utils.code=code$1.exports,utils.keyword=keyword$1.exports})();var coderep={};Object.defineProperty(coderep,"__esModule",{value:!0});var _createClass$4=function(){function o(e,s){for(var a=0;a":Precedence.Relational,"<=":Precedence.Relational,">=":Precedence.Relational,in:Precedence.Relational,instanceof:Precedence.Relational,"<<":Precedence.BitwiseSHIFT,">>":Precedence.BitwiseSHIFT,">>>":Precedence.BitwiseSHIFT,"+":Precedence.Additive,"-":Precedence.Additive,"*":Precedence.Multiplicative,"%":Precedence.Multiplicative,"/":Precedence.Multiplicative,"**":Precedence.Exponential};function getPrecedence(o){switch(o.type){case"ArrayExpression":case"FunctionExpression":case"ClassExpression":case"IdentifierExpression":case"AssignmentTargetIdentifier":case"NewTargetExpression":case"Super":case"LiteralBooleanExpression":case"LiteralNullExpression":case"LiteralNumericExpression":case"LiteralInfinityExpression":case"LiteralRegExpExpression":case"LiteralStringExpression":case"ObjectExpression":case"ThisExpression":case"SpreadElement":case"FunctionBody":return Precedence.Primary;case"ArrowExpression":case"AssignmentExpression":case"CompoundAssignmentExpression":case"YieldExpression":case"YieldGeneratorExpression":return Precedence.Assignment;case"ConditionalExpression":return Precedence.Conditional;case"ComputedMemberExpression":case"StaticMemberExpression":case"ComputedMemberAssignmentTarget":case"StaticMemberAssignmentTarget":switch(o.object.type){case"CallExpression":case"ComputedMemberExpression":case"StaticMemberExpression":case"TemplateExpression":return getPrecedence(o.object);default:return Precedence.Member}case"TemplateExpression":if(o.tag==null)return Precedence.Member;switch(o.tag.type){case"CallExpression":case"ComputedMemberExpression":case"StaticMemberExpression":case"TemplateExpression":return getPrecedence(o.tag);default:return Precedence.Member}case"BinaryExpression":return BinaryPrecedence[o.operator];case"CallExpression":return Precedence.Call;case"NewExpression":return o.arguments.length===0?Precedence.New:Precedence.Member;case"UpdateExpression":return o.isPrefix?Precedence.Prefix:Precedence.Postfix;case"AwaitExpression":case"UnaryExpression":return Precedence.Prefix;default:throw new Error("unreachable: "+o.type)}}function escapeStringLiteral(o){for(var e="",s=0,a=0,c=0,d=o.length;cs?"'":'"';e+=b;for(var k=0;k1&&arguments[1]!==void 0?arguments[1]:!1;_classCallCheck$4(this,e);var c=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return c.token=s,c.isRegExp=a,c}return _createClass$4(e,[{key:"emit",value:function(a){a.put(this.token,this.isRegExp)}}]),e}(CodeRep);coderep.RawToken=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.token=s,a}return _createClass$4(e,[{key:"emit",value:function(a){a.putRaw(this.token)}}]),e}(CodeRep);coderep.NumberCodeRep=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.number=s,a}return _createClass$4(e,[{key:"emit",value:function(a){a.putNumber(this.number)}}]),e}(CodeRep);coderep.Paren=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.expr=s,a}return _createClass$4(e,[{key:"emit",value:function(a){a.put("("),this.expr.emit(a,!1),a.put(")")}},{key:"forEach",value:function(a){a(this),this.expr.forEach(a)}}]),e}(CodeRep);coderep.Bracket=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.expr=s,a}return _createClass$4(e,[{key:"emit",value:function(a){a.put("["),this.expr.emit(a,!1),a.put("]")}},{key:"forEach",value:function(a){a(this),this.expr.forEach(a)}}]),e}(CodeRep);coderep.Brace=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.expr=s,a}return _createClass$4(e,[{key:"emit",value:function(a){a.put("{"),this.expr.emit(a,!1),a.put("}")}},{key:"forEach",value:function(a){a(this),this.expr.forEach(a)}}]),e}(CodeRep);coderep.NoIn=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.expr=s,a}return _createClass$4(e,[{key:"emit",value:function(a){this.expr.emit(a,!0)}},{key:"forEach",value:function(a){a(this),this.expr.forEach(a)}}]),e}(CodeRep);coderep.ContainsIn=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.expr=s,a}return _createClass$4(e,[{key:"emit",value:function(a,c){c?(a.put("("),this.expr.emit(a,!1),a.put(")")):this.expr.emit(a,!1)}},{key:"forEach",value:function(a){a(this),this.expr.forEach(a)}}]),e}(CodeRep);coderep.Seq=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.children=s,a}return _createClass$4(e,[{key:"emit",value:function(a,c){this.children.forEach(function(d){return d.emit(a,c)})}},{key:"forEach",value:function(a){a(this),this.children.forEach(function(c){return c.forEach(a)})}}]),e}(CodeRep);coderep.Semi=function(o){_inherits$2(e,o);function e(){return _classCallCheck$4(this,e),_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,";"))}return e}(Token);coderep.CommaSep=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.children=s,a}return _createClass$4(e,[{key:"emit",value:function(a,c){var d=!0;this.children.forEach(function(_){d?d=!1:a.put(","),_.emit(a,c)})}},{key:"forEach",value:function(a){a(this),this.children.forEach(function(c){return c.forEach(a)})}}]),e}(CodeRep);coderep.SemiOp=function(o){_inherits$2(e,o);function e(){return _classCallCheck$4(this,e),_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this))}return _createClass$4(e,[{key:"emit",value:function(a){a.putOptionalSemi()}}]),e}(CodeRep);Object.defineProperty(minimalCodegen,"__esModule",{value:!0});var _createClass$3=function(){function o(e,s){for(var a=0;a1&&arguments[1]!==void 0?arguments[1]:!1;return new _coderep$1.Token(o,e)}function paren(o){return new _coderep$1.Paren(o)}function brace(o){return new _coderep$1.Brace(o)}function bracket$1(o){return new _coderep$1.Bracket(o)}function noIn$1(o){return new _coderep$1.NoIn(o)}function markContainsIn$1(o){return o.containsIn?new _coderep$1.ContainsIn(o):o}function seq$1(){for(var o=arguments.length,e=Array(o),s=0;s0&&c[c.length-1]==null&&(d=seq$1(d,t$1(","))),bracket$1(d)}},{key:"reduceAwaitExpression",value:function(s,a){var c=a.expression;return seq$1(t$1("await"),p$1(s.expression,(0,_coderep$1.getPrecedence)(s),c))}},{key:"reduceSpreadElement",value:function(s,a){var c=a.expression;return seq$1(t$1("..."),p$1(s.expression,_coderep$1.Precedence.Assignment,c))}},{key:"reduceSpreadProperty",value:function(s,a){var c=a.expression;return seq$1(t$1("..."),getAssignmentExpr(c))}},{key:"reduceAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression,_=c,b=d,k=d.containsIn,$=c.startsWithCurly,j=c.startsWithLetSquareBracket,_e=c.startsWithFunctionOrClass;return(0,_coderep$1.getPrecedence)(s.expression)<(0,_coderep$1.getPrecedence)(s)&&(b=paren(b),k=!1),(0,_objectAssign2$1.default)(seq$1(_,t$1("="),b),{containsIn:k,startsWithCurly:$,startsWithLetSquareBracket:j,startsWithFunctionOrClass:_e})}},{key:"reduceAssignmentTargetIdentifier",value:function(s){var a=t$1(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceAssignmentTargetWithDefault",value:function(s,a){var c=a.binding,d=a.init;return seq$1(c,t$1("="),p$1(s.init,_coderep$1.Precedence.Assignment,d))}},{key:"reduceCompoundAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression,_=c,b=d,k=d.containsIn,$=c.startsWithCurly,j=c.startsWithLetSquareBracket,_e=c.startsWithFunctionOrClass;return(0,_coderep$1.getPrecedence)(s.expression)<(0,_coderep$1.getPrecedence)(s)&&(b=paren(b),k=!1),(0,_objectAssign2$1.default)(seq$1(_,t$1(s.operator),b),{containsIn:k,startsWithCurly:$,startsWithLetSquareBracket:j,startsWithFunctionOrClass:_e})}},{key:"reduceBinaryExpression",value:function(s,a){var c=a.left,d=a.right,_=c,b=c.startsWithCurly,k=c.startsWithLetSquareBracket,$=c.startsWithFunctionOrClass,j=c.containsIn,_e=s.operator==="**";((0,_coderep$1.getPrecedence)(s.left)<(0,_coderep$1.getPrecedence)(s)||_e&&((0,_coderep$1.getPrecedence)(s.left)===(0,_coderep$1.getPrecedence)(s)||s.left.type==="UnaryExpression"))&&(_=paren(_),b=!1,k=!1,$=!1,j=!1);var et=d,tt=d.containsIn;return((0,_coderep$1.getPrecedence)(s.right)<(0,_coderep$1.getPrecedence)(s)||!_e&&(0,_coderep$1.getPrecedence)(s.right)===(0,_coderep$1.getPrecedence)(s))&&(et=paren(et),tt=!1),(0,_objectAssign2$1.default)(seq$1(_,t$1(s.operator),et),{containsIn:j||tt||s.operator==="in",containsGroup:s.operator===",",startsWithCurly:b,startsWithLetSquareBracket:k,startsWithFunctionOrClass:$})}},{key:"reduceBindingWithDefault",value:function(s,a){var c=a.binding,d=a.init;return seq$1(c,t$1("="),p$1(s.init,_coderep$1.Precedence.Assignment,d))}},{key:"reduceBindingIdentifier",value:function(s){var a=t$1(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceArrayAssignmentTarget",value:function(s,a){var c=a.elements,d=a.rest,_=void 0;return c.length===0?_=d==null?empty$2():seq$1(t$1("..."),d):(c=c.concat(d==null?[]:[seq$1(t$1("..."),d)]),_=commaSep(c.map(getAssignmentExpr)),c.length>0&&c[c.length-1]==null&&(_=seq$1(_,t$1(",")))),bracket$1(_)}},{key:"reduceArrayBinding",value:function(s,a){var c=a.elements,d=a.rest,_=void 0;return c.length===0?_=d==null?empty$2():seq$1(t$1("..."),d):(c=c.concat(d==null?[]:[seq$1(t$1("..."),d)]),_=commaSep(c.map(getAssignmentExpr)),c.length>0&&c[c.length-1]==null&&(_=seq$1(_,t$1(",")))),bracket$1(_)}},{key:"reduceObjectAssignmentTarget",value:function(s,a){var c=a.properties,d=a.rest,_=commaSep(c);c.length===0?_=d==null?empty$2():seq$1(t$1("..."),d):_=d==null?_:seq$1(_,t$1(","),t$1("..."),d);var b=brace(_);return b.startsWithCurly=!0,b}},{key:"reduceObjectBinding",value:function(s,a){var c=a.properties,d=a.rest,_=commaSep(c);c.length===0?_=d==null?empty$2():seq$1(t$1("..."),d):_=d==null?_:seq$1(_,t$1(","),t$1("..."),d);var b=brace(_);return b.startsWithCurly=!0,b}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(s,a){var c=a.binding,d=a.init;return s.init==null?c:seq$1(c,t$1("="),p$1(s.init,_coderep$1.Precedence.Assignment,d))}},{key:"reduceAssignmentTargetPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return seq$1(c,t$1(":"),d)}},{key:"reduceBindingPropertyIdentifier",value:function(s,a){var c=a.binding,d=a.init;return s.init==null?c:seq$1(c,t$1("="),p$1(s.init,_coderep$1.Precedence.Assignment,d))}},{key:"reduceBindingPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return seq$1(c,t$1(":"),d)}},{key:"reduceBlock",value:function(s,a){var c=a.statements;return brace(seq$1.apply(void 0,_toConsumableArray$2(c)))}},{key:"reduceBlockStatement",value:function(s,a){var c=a.block;return c}},{key:"reduceBreakStatement",value:function(s){return seq$1(t$1("break"),s.label?t$1(s.label):empty$2(),semiOp())}},{key:"reduceCallExpression",value:function(s,a){var c=a.callee,d=a.arguments,_=d.map(function(b,k){return p$1(s.arguments[k],_coderep$1.Precedence.Assignment,b)});return(0,_objectAssign2$1.default)(seq$1(p$1(s.callee,(0,_coderep$1.getPrecedence)(s),c),paren(commaSep(_))),{startsWithCurly:c.startsWithCurly,startsWithLet:c.startsWithLet,startsWithLetSquareBracket:c.startsWithLetSquareBracket,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceCatchClause",value:function(s,a){var c=a.binding,d=a.body;return seq$1(t$1("catch"),paren(c),d)}},{key:"reduceClassDeclaration",value:function(s,a){var c=a.name,d=a.super,_=a.elements,b=seq$1(t$1("class"),s.name.name==="*default*"?empty$2():c);return d!=null&&(b=seq$1(b,t$1("extends"),p$1(s.super,_coderep$1.Precedence.New,d))),b=seq$1.apply(void 0,[b,t$1("{")].concat(_toConsumableArray$2(_),[t$1("}")])),b}},{key:"reduceClassExpression",value:function(s,a){var c=a.name,d=a.super,_=a.elements,b=t$1("class");return c!=null&&(b=seq$1(b,c)),d!=null&&(b=seq$1(b,t$1("extends"),p$1(s.super,_coderep$1.Precedence.New,d))),b=seq$1.apply(void 0,[b,t$1("{")].concat(_toConsumableArray$2(_),[t$1("}")])),b.startsWithFunctionOrClass=!0,b}},{key:"reduceClassElement",value:function(s,a){var c=a.method;return s.isStatic?seq$1(t$1("static"),c):c}},{key:"reduceComputedMemberAssignmentTarget",value:function(s,a){var c=a.object,d=a.expression,_=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2$1.default)(seq$1(p$1(s.object,(0,_coderep$1.getPrecedence)(s),c),bracket$1(d)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:_,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedMemberExpression",value:function(s,a){var c=a.object,d=a.expression,_=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2$1.default)(seq$1(p$1(s.object,(0,_coderep$1.getPrecedence)(s),c),bracket$1(d)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:_,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedPropertyName",value:function(s,a){var c=a.expression;return bracket$1(p$1(s.expression,_coderep$1.Precedence.Assignment,c))}},{key:"reduceConditionalExpression",value:function(s,a){var c=a.test,d=a.consequent,_=a.alternate,b=c.containsIn||_.containsIn,k=c.startsWithCurly,$=c.startsWithLetSquareBracket,j=c.startsWithFunctionOrClass;return(0,_objectAssign2$1.default)(seq$1(p$1(s.test,_coderep$1.Precedence.LogicalOR,c),t$1("?"),p$1(s.consequent,_coderep$1.Precedence.Assignment,d),t$1(":"),p$1(s.alternate,_coderep$1.Precedence.Assignment,_)),{containsIn:b,startsWithCurly:k,startsWithLetSquareBracket:$,startsWithFunctionOrClass:j})}},{key:"reduceContinueStatement",value:function(s){return seq$1(t$1("continue"),s.label?t$1(s.label):empty$2(),semiOp())}},{key:"reduceDataProperty",value:function(s,a){var c=a.name,d=a.expression;return seq$1(c,t$1(":"),getAssignmentExpr(d))}},{key:"reduceDebuggerStatement",value:function(){return seq$1(t$1("debugger"),semiOp())}},{key:"reduceDoWhileStatement",value:function(s,a){var c=a.body,d=a.test;return seq$1(t$1("do"),c,t$1("while"),paren(d),semiOp())}},{key:"reduceEmptyStatement",value:function(){return semi()}},{key:"reduceExpressionStatement",value:function(s,a){var c=a.expression,d=c.startsWithCurly||c.startsWithLetSquareBracket||c.startsWithFunctionOrClass;return seq$1(d?paren(c):c,semiOp())}},{key:"reduceForInStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return c=s.left.type==="VariableDeclaration"?noIn$1(markContainsIn$1(c)):c,(0,_objectAssign2$1.default)(seq$1(t$1("for"),paren(seq$1(c.startsWithLet?paren(c):c,t$1("in"),d)),_),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceForOfStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return c=s.left.type==="VariableDeclaration"?noIn$1(markContainsIn$1(c)):c,(0,_objectAssign2$1.default)(seq$1(t$1("for"),paren(seq$1(c.startsWithLet?paren(c):c,t$1("of"),p$1(s.right,_coderep$1.Precedence.Assignment,d))),_),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceForStatement",value:function(s,a){var c=a.init,d=a.test,_=a.update,b=a.body;return c&&(c.startsWithLetSquareBracket&&(c=paren(c)),c=noIn$1(markContainsIn$1(c))),(0,_objectAssign2$1.default)(seq$1(t$1("for"),paren(seq$1(c||empty$2(),semi(),d||empty$2(),semi(),_||empty$2())),b),{endsWithMissingElse:b.endsWithMissingElse})}},{key:"reduceForAwaitStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return c=s.left.type==="VariableDeclaration"?noIn$1(markContainsIn$1(c)):c,(0,_objectAssign2$1.default)(seq$1(t$1("for"),t$1("await"),paren(seq$1(c.startsWithLet?paren(c):c,t$1("of"),p$1(s.right,_coderep$1.Precedence.Assignment,d))),_),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceFunctionBody",value:function(s,a){var c=a.directives,d=a.statements;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.statements[0],d[0])),brace(seq$1.apply(void 0,_toConsumableArray$2(c).concat(_toConsumableArray$2(d))))}},{key:"reduceFunctionDeclaration",value:function(s,a){var c=a.name,d=a.params,_=a.body;return seq$1(s.isAsync?t$1("async"):empty$2(),t$1("function"),s.isGenerator?t$1("*"):empty$2(),s.name.name==="*default*"?empty$2():c,d,_)}},{key:"reduceFunctionExpression",value:function(s,a){var c=a.name,d=a.params,_=a.body,b=seq$1(s.isAsync?t$1("async"):empty$2(),t$1("function"),s.isGenerator?t$1("*"):empty$2(),c||empty$2(),d,_);return b.startsWithFunctionOrClass=!0,b}},{key:"reduceFormalParameters",value:function(s,a){var c=a.items,d=a.rest;return paren(commaSep(c.concat(d==null?[]:[seq$1(t$1("..."),d)])))}},{key:"reduceArrowExpression",value:function(s,a){var c=a.params,d=a.body;c=this.regenerateArrowParams(s.params,c);var _=!1;return s.body.type!=="FunctionBody"&&(d.startsWithCurly?d=paren(d):d.containsIn&&(_=!0)),(0,_objectAssign2$1.default)(seq$1(s.isAsync?t$1("async"):empty$2(),c,t$1("=>"),p$1(s.body,_coderep$1.Precedence.Assignment,d)),{containsIn:_})}},{key:"reduceGetter",value:function(s,a){var c=a.name,d=a.body;return seq$1(t$1("get"),c,paren(empty$2()),d)}},{key:"reduceIdentifierExpression",value:function(s){var a=t$1(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceIfStatement",value:function(s,a){var c=a.test,d=a.consequent,_=a.alternate;return _&&d.endsWithMissingElse&&(d=brace(d)),(0,_objectAssign2$1.default)(seq$1(t$1("if"),paren(c),d,_?seq$1(t$1("else"),_):empty$2()),{endsWithMissingElse:_?_.endsWithMissingElse:!0})}},{key:"reduceImport",value:function(s,a){var c=a.defaultBinding,d=a.namedImports,_=[];return c!=null&&_.push(c),d.length>0&&_.push(brace(commaSep(d))),_.length===0?seq$1(t$1("import"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp()):seq$1(t$1("import"),commaSep(_),t$1("from"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp())}},{key:"reduceImportNamespace",value:function(s,a){var c=a.defaultBinding,d=a.namespaceBinding;return seq$1(t$1("import"),c==null?empty$2():seq$1(c,t$1(",")),t$1("*"),t$1("as"),d,t$1("from"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp())}},{key:"reduceImportSpecifier",value:function(s,a){var c=a.binding;return s.name==null?c:seq$1(t$1(s.name),t$1("as"),c)}},{key:"reduceExportAllFrom",value:function(s){return seq$1(t$1("export"),t$1("*"),t$1("from"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp())}},{key:"reduceExportFrom",value:function(s,a){var c=a.namedExports;return seq$1(t$1("export"),brace(commaSep(c)),t$1("from"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp())}},{key:"reduceExportLocals",value:function(s,a){var c=a.namedExports;return seq$1(t$1("export"),brace(commaSep(c)),semiOp())}},{key:"reduceExport",value:function(s,a){var c=a.declaration;switch(s.declaration.type){case"FunctionDeclaration":case"ClassDeclaration":break;default:c=seq$1(c,semiOp())}return seq$1(t$1("export"),c)}},{key:"reduceExportDefault",value:function(s,a){var c=a.body;switch(c=c.startsWithFunctionOrClass?paren(c):c,s.body.type){case"FunctionDeclaration":case"ClassDeclaration":return seq$1(t$1("export default"),c);default:return seq$1(t$1("export default"),p$1(s.body,_coderep$1.Precedence.Assignment,c),semiOp())}}},{key:"reduceExportFromSpecifier",value:function(s){return s.exportedName==null?t$1(s.name):seq$1(t$1(s.name),t$1("as"),t$1(s.exportedName))}},{key:"reduceExportLocalSpecifier",value:function(s,a){var c=a.name;return s.exportedName==null?c:seq$1(c,t$1("as"),t$1(s.exportedName))}},{key:"reduceLabeledStatement",value:function(s,a){var c=a.body;return(0,_objectAssign2$1.default)(seq$1(t$1(s.label+":"),c),{endsWithMissingElse:c.endsWithMissingElse})}},{key:"reduceLiteralBooleanExpression",value:function(s){return t$1(s.value.toString())}},{key:"reduceLiteralNullExpression",value:function(){return t$1("null")}},{key:"reduceLiteralInfinityExpression",value:function(){return t$1("2e308")}},{key:"reduceLiteralNumericExpression",value:function(s){return new _coderep$1.NumberCodeRep(s.value)}},{key:"reduceLiteralRegExpExpression",value:function(s){return t$1("/"+s.pattern+"/"+(s.global?"g":"")+(s.ignoreCase?"i":"")+(s.multiLine?"m":"")+(s.dotAll?"s":"")+(s.unicode?"u":"")+(s.sticky?"y":""),!0)}},{key:"reduceLiteralStringExpression",value:function(s){return t$1((0,_coderep$1.escapeStringLiteral)(s.value))}},{key:"reduceMethod",value:function(s,a){var c=a.name,d=a.params,_=a.body;return seq$1(s.isAsync?t$1("async"):empty$2(),s.isGenerator?t$1("*"):empty$2(),c,d,_)}},{key:"reduceModule",value:function(s,a){var c=a.directives,d=a.items;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.items[0],d[0])),seq$1.apply(void 0,_toConsumableArray$2(c).concat(_toConsumableArray$2(d)))}},{key:"reduceNewExpression",value:function(s,a){var c=a.callee,d=a.arguments,_=d.map(function(k,$){return p$1(s.arguments[$],_coderep$1.Precedence.Assignment,k)}),b=(0,_coderep$1.getPrecedence)(s.callee)===_coderep$1.Precedence.Call?paren(c):p$1(s.callee,(0,_coderep$1.getPrecedence)(s),c);return seq$1(t$1("new"),b,d.length===0?empty$2():paren(commaSep(_)))}},{key:"reduceNewTargetExpression",value:function(){return t$1("new.target")}},{key:"reduceObjectExpression",value:function(s,a){var c=a.properties,d=brace(commaSep(c));return d.startsWithCurly=!0,d}},{key:"reduceUpdateExpression",value:function(s,a){var c=a.operand;return s.isPrefix?this.reduceUnaryExpression.apply(this,arguments):(0,_objectAssign2$1.default)(seq$1(p$1(s.operand,_coderep$1.Precedence.New,c),t$1(s.operator)),{startsWithCurly:c.startsWithCurly,startsWithLetSquareBracket:c.startsWithLetSquareBracket,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceUnaryExpression",value:function(s,a){var c=a.operand;return seq$1(t$1(s.operator),p$1(s.operand,(0,_coderep$1.getPrecedence)(s),c))}},{key:"reduceReturnStatement",value:function(s,a){var c=a.expression;return seq$1(t$1("return"),c||empty$2(),semiOp())}},{key:"reduceScript",value:function(s,a){var c=a.directives,d=a.statements;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.statements[0],d[0])),seq$1.apply(void 0,_toConsumableArray$2(c).concat(_toConsumableArray$2(d)))}},{key:"reduceSetter",value:function(s,a){var c=a.name,d=a.param,_=a.body;return seq$1(t$1("set"),c,paren(d),_)}},{key:"reduceShorthandProperty",value:function(s,a){var c=a.name;return c}},{key:"reduceStaticMemberAssignmentTarget",value:function(s,a){var c=a.object,d=seq$1(p$1(s.object,(0,_coderep$1.getPrecedence)(s),c),t$1("."),t$1(s.property));return d.startsWithLet=c.startsWithLet,d.startsWithCurly=c.startsWithCurly,d.startsWithLetSquareBracket=c.startsWithLetSquareBracket,d.startsWithFunctionOrClass=c.startsWithFunctionOrClass,d}},{key:"reduceStaticMemberExpression",value:function(s,a){var c=a.object,d=seq$1(p$1(s.object,(0,_coderep$1.getPrecedence)(s),c),t$1("."),t$1(s.property));return d.startsWithLet=c.startsWithLet,d.startsWithCurly=c.startsWithCurly,d.startsWithLetSquareBracket=c.startsWithLetSquareBracket,d.startsWithFunctionOrClass=c.startsWithFunctionOrClass,d}},{key:"reduceStaticPropertyName",value:function(s){if(_esutils$1.keyword.isIdentifierNameES6(s.value))return t$1(s.value);var a=parseFloat(s.value);return a>=0&&a.toString()===s.value?new _coderep$1.NumberCodeRep(a):t$1((0,_coderep$1.escapeStringLiteral)(s.value))}},{key:"reduceSuper",value:function(){return t$1("super")}},{key:"reduceSwitchCase",value:function(s,a){var c=a.test,d=a.consequent;return seq$1(t$1("case"),c,t$1(":"),seq$1.apply(void 0,_toConsumableArray$2(d)))}},{key:"reduceSwitchDefault",value:function(s,a){var c=a.consequent;return seq$1(t$1("default:"),seq$1.apply(void 0,_toConsumableArray$2(c)))}},{key:"reduceSwitchStatement",value:function(s,a){var c=a.discriminant,d=a.cases;return seq$1(t$1("switch"),paren(c),brace(seq$1.apply(void 0,_toConsumableArray$2(d))))}},{key:"reduceSwitchStatementWithDefault",value:function(s,a){var c=a.discriminant,d=a.preDefaultCases,_=a.defaultCase,b=a.postDefaultCases;return seq$1(t$1("switch"),paren(c),brace(seq$1.apply(void 0,_toConsumableArray$2(d).concat([_],_toConsumableArray$2(b)))))}},{key:"reduceTemplateExpression",value:function(s,a){var c=a.tag,d=a.elements,_=s.tag==null?empty$2():p$1(s.tag,(0,_coderep$1.getPrecedence)(s),c);_=seq$1(_,t$1("`"));for(var b=0,k=s.elements.length;b0?t$1("}"):empty$2(),d[b],b1&&arguments[1]!==void 0?arguments[1]:!1;return new _coderep.Token(s,a)}},{key:"p",value:function(s,a,c){return(0,_coderep.getPrecedence)(s)0&&d[d.length-1]==null&&(_=seq(_,this.sep(Sep.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep.ARRAY_AFTER_COMMA))),this.bracket(_,Sep.ARRAY_INITIAL,Sep.ARRAY_FINAL)}},{key:"reduceAwaitExpression",value:function(s,a){var c=a.expression;return seq(this.t("await"),this.sep(Sep.AWAIT),this.p(s.expression,(0,_coderep.getPrecedence)(s),c))}},{key:"reduceSpreadElement",value:function(s,a){var c=a.expression;return seq(this.t("..."),this.sep(Sep.SPREAD),this.p(s.expression,_coderep.Precedence.Assignment,c))}},{key:"reduceSpreadProperty",value:function(s,a){var c=a.expression;return seq(this.t("..."),this.sep(Sep.SPREAD),this.getAssignmentExpr(c))}},{key:"reduceAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression,_=c,b=d,k=d.containsIn,$=c.startsWithCurly,j=c.startsWithLetSquareBracket,_e=c.startsWithFunctionOrClass;return(0,_coderep.getPrecedence)(s.expression)<(0,_coderep.getPrecedence)(s)&&(b=this.paren(b,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),k=!1),(0,_objectAssign2.default)(seq(_,this.sep(Sep.BEFORE_ASSIGN_OP("=")),this.t("="),this.sep(Sep.AFTER_ASSIGN_OP("=")),b),{containsIn:k,startsWithCurly:$,startsWithLetSquareBracket:j,startsWithFunctionOrClass:_e})}},{key:"reduceAssignmentTargetIdentifier",value:function(s){var a=this.t(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceAssignmentTargetWithDefault",value:function(s,a){var c=a.binding,d=a.init;return seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,d))}},{key:"reduceCompoundAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression,_=c,b=d,k=d.containsIn,$=c.startsWithCurly,j=c.startsWithLetSquareBracket,_e=c.startsWithFunctionOrClass;return(0,_coderep.getPrecedence)(s.expression)<(0,_coderep.getPrecedence)(s)&&(b=this.paren(b,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),k=!1),(0,_objectAssign2.default)(seq(_,this.sep(Sep.BEFORE_ASSIGN_OP(s.operator)),this.t(s.operator),this.sep(Sep.AFTER_ASSIGN_OP(s.operator)),b),{containsIn:k,startsWithCurly:$,startsWithLetSquareBracket:j,startsWithFunctionOrClass:_e})}},{key:"reduceBinaryExpression",value:function(s,a){var c=a.left,d=a.right,_=c,b=c.startsWithCurly,k=c.startsWithLetSquareBracket,$=c.startsWithFunctionOrClass,j=c.containsIn,_e=s.operator==="**";((0,_coderep.getPrecedence)(s.left)<(0,_coderep.getPrecedence)(s)||_e&&((0,_coderep.getPrecedence)(s.left)===(0,_coderep.getPrecedence)(s)||s.left.type==="UnaryExpression"))&&(_=this.paren(_,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),b=!1,k=!1,$=!1,j=!1);var et=d,tt=d.containsIn;return((0,_coderep.getPrecedence)(s.right)<(0,_coderep.getPrecedence)(s)||!_e&&(0,_coderep.getPrecedence)(s.right)===(0,_coderep.getPrecedence)(s))&&(et=this.paren(et,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),tt=!1),(0,_objectAssign2.default)(seq(_,this.sep(Sep.BEFORE_BINOP(s.operator)),this.t(s.operator),this.sep(Sep.AFTER_BINOP(s.operator)),et),{containsIn:j||tt||s.operator==="in",containsGroup:s.operator===",",startsWithCurly:b,startsWithLetSquareBracket:k,startsWithFunctionOrClass:$})}},{key:"reduceBindingWithDefault",value:function(s,a){var c=a.binding,d=a.init;return seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,d))}},{key:"reduceBindingIdentifier",value:function(s){var a=this.t(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceArrayAssignmentTarget",value:function(s,a){var c=this,d=a.elements,_=a.rest,b=void 0;return d.length===0?b=_==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),_):(d=d.concat(_==null?[]:[seq(this.t("..."),this.sep(Sep.REST),_)]),b=this.commaSep(d.map(function(k){return c.getAssignmentExpr(k)}),Sep.ARRAY_BEFORE_COMMA,Sep.ARRAY_AFTER_COMMA),d.length>0&&d[d.length-1]==null&&(b=seq(b,this.sep(Sep.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep.ARRAY_AFTER_COMMA)))),this.bracket(b,Sep.ARRAY_INITIAL,Sep.ARRAY_FINAL,Sep.ARRAY_EMPTY)}},{key:"reduceArrayBinding",value:function(s,a){var c=this,d=a.elements,_=a.rest,b=void 0;return d.length===0?b=_==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),_):(d=d.concat(_==null?[]:[seq(this.t("..."),this.sep(Sep.REST),_)]),b=this.commaSep(d.map(function(k){return c.getAssignmentExpr(k)}),Sep.ARRAY_BEFORE_COMMA,Sep.ARRAY_AFTER_COMMA),d.length>0&&d[d.length-1]==null&&(b=seq(b,this.sep(Sep.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep.ARRAY_AFTER_COMMA)))),this.bracket(b,Sep.ARRAY_INITIAL,Sep.ARRAY_FINAL,Sep.ARRAY_EMPTY)}},{key:"reduceObjectAssignmentTarget",value:function(s,a){var c=a.properties,d=a.rest,_=void 0;c.length===0?_=d==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),d):(_=this.commaSep(c,Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA),_=d==null?_:this.commaSep([_,seq(this.t("..."),this.sep(Sep.REST),d)],Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA));var b=this.brace(_,s,Sep.OBJECT_BRACE_INITIAL,Sep.OBJECT_BRACE_FINAL,Sep.OBJECT_EMPTY);return b.startsWithCurly=!0,b}},{key:"reduceObjectBinding",value:function(s,a){var c=a.properties,d=a.rest,_=void 0;c.length===0?_=d==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),d):(_=this.commaSep(c,Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA),_=d==null?_:this.commaSep([_,seq(this.t("..."),this.sep(Sep.REST),d)],Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA));var b=this.brace(_,s,Sep.OBJECT_BRACE_INITIAL,Sep.OBJECT_BRACE_FINAL,Sep.OBJECT_EMPTY);return b.startsWithCurly=!0,b}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(s,a){var c=a.binding,d=a.init;return s.init==null?c:seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,d))}},{key:"reduceAssignmentTargetPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return seq(c,this.sep(Sep.BEFORE_PROP),this.t(":"),this.sep(Sep.AFTER_PROP),d)}},{key:"reduceBindingPropertyIdentifier",value:function(s,a){var c=a.binding,d=a.init;return s.init==null?c:seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,d))}},{key:"reduceBindingPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return seq(c,this.sep(Sep.BEFORE_PROP),this.t(":"),this.sep(Sep.AFTER_PROP),d)}},{key:"reduceBlock",value:function(s,a){var c=a.statements;return this.brace(seq.apply(void 0,_toConsumableArray$1(c)),s,Sep.BLOCK_BRACE_INITIAL,Sep.BLOCK_BRACE_FINAL,Sep.BLOCK_EMPTY)}},{key:"reduceBlockStatement",value:function(s,a){var c=a.block;return seq(c,this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceBreakStatement",value:function(s){return seq(this.t("break"),s.label?seq(this.sep(Sep.BEFORE_JUMP_LABEL),this.t(s.label)):empty$1(),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceCallExpression",value:function(s,a){var c=this,d=a.callee,_=a.arguments,b=_.map(function(k,$){return c.p(s.arguments[$],_coderep.Precedence.Assignment,k)});return(0,_objectAssign2.default)(seq(this.p(s.callee,(0,_coderep.getPrecedence)(s),d),this.sep(Sep.CALL),this.paren(this.commaSep(b,Sep.ARGS_BEFORE_COMMA,Sep.ARGS_AFTER_COMMA),Sep.CALL_PAREN_BEFORE,Sep.CALL_PAREN_AFTER,Sep.CALL_PAREN_EMPTY)),{startsWithCurly:d.startsWithCurly,startsWithLet:d.startsWithLet,startsWithLetSquareBracket:d.startsWithLetSquareBracket,startsWithFunctionOrClass:d.startsWithFunctionOrClass})}},{key:"reduceCatchClause",value:function(s,a){var c=a.binding,d=a.body;return seq(this.t("catch"),this.sep(Sep.BEFORE_CATCH_BINDING),this.paren(c,Sep.CATCH_PAREN_BEFORE,Sep.CATCH_PAREN_AFTER),this.sep(Sep.AFTER_CATCH_BINDING),d)}},{key:"reduceClassDeclaration",value:function(s,a){var c=a.name,d=a.super,_=a.elements,b=seq(this.t("class"),s.name.name==="*default*"?empty$1():seq(this.sep(Sep.BEFORE_CLASS_NAME),c));return d!=null&&(b=seq(b,this.sep(Sep.BEFORE_EXTENDS),this.t("extends"),this.sep(Sep.AFTER_EXTENDS),this.p(s.super,_coderep.Precedence.New,d))),b=seq(b,this.sep(Sep.BEFORE_CLASS_DECLARATION_ELEMENTS),this.brace(seq.apply(void 0,_toConsumableArray$1(_)),s,Sep.CLASS_BRACE_INITIAL,Sep.CLASS_BRACE_FINAL,Sep.CLASS_EMPTY),this.sep(Sep.AFTER_STATEMENT(s))),b}},{key:"reduceClassExpression",value:function(s,a){var c=a.name,d=a.super,_=a.elements,b=this.t("class");return c!=null&&(b=seq(b,this.sep(Sep.BEFORE_CLASS_NAME),c)),d!=null&&(b=seq(b,this.sep(Sep.BEFORE_EXTENDS),this.t("extends"),this.sep(Sep.AFTER_EXTENDS),this.p(s.super,_coderep.Precedence.New,d))),b=seq(b,this.sep(Sep.BEFORE_CLASS_EXPRESSION_ELEMENTS),this.brace(seq.apply(void 0,_toConsumableArray$1(_)),s,Sep.CLASS_EXPRESSION_BRACE_INITIAL,Sep.CLASS_EXPRESSION_BRACE_FINAL,Sep.CLASS_EXPRESSION_BRACE_EMPTY)),b.startsWithFunctionOrClass=!0,b}},{key:"reduceClassElement",value:function(s,a){var c=a.method;return c=seq(this.sep(Sep.BEFORE_CLASS_ELEMENT),c,this.sep(Sep.AFTER_CLASS_ELEMENT)),s.isStatic?seq(this.t("static"),this.sep(Sep.AFTER_STATIC),c):c}},{key:"reduceComputedMemberAssignmentTarget",value:function(s,a){var c=a.object,d=a.expression,_=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2.default)(seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.COMPUTED_MEMBER_ASSIGNMENT_TARGET),this.bracket(d,Sep.COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_INTIAL,Sep.COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_FINAL)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:_,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedMemberExpression",value:function(s,a){var c=a.object,d=a.expression,_=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2.default)(seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.COMPUTED_MEMBER_EXPRESSION),this.bracket(d,Sep.COMPUTED_MEMBER_BRACKET_INTIAL,Sep.COMPUTED_MEMBER_BRACKET_FINAL)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:_,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedPropertyName",value:function(s,a){var c=a.expression;return this.bracket(this.p(s.expression,_coderep.Precedence.Assignment,c),Sep.COMPUTED_PROPERTY_BRACKET_INTIAL,Sep.COMPUTED_PROPERTY_BRACKET_FINAL)}},{key:"reduceConditionalExpression",value:function(s,a){var c=a.test,d=a.consequent,_=a.alternate,b=c.containsIn||_.containsIn,k=c.startsWithCurly,$=c.startsWithLetSquareBracket,j=c.startsWithFunctionOrClass;return(0,_objectAssign2.default)(seq(this.p(s.test,_coderep.Precedence.LogicalOR,c),this.sep(Sep.BEFORE_TERNARY_QUESTION),this.t("?"),this.sep(Sep.AFTER_TERNARY_QUESTION),this.p(s.consequent,_coderep.Precedence.Assignment,d),this.sep(Sep.BEFORE_TERNARY_COLON),this.t(":"),this.sep(Sep.AFTER_TERNARY_COLON),this.p(s.alternate,_coderep.Precedence.Assignment,_)),{containsIn:b,startsWithCurly:k,startsWithLetSquareBracket:$,startsWithFunctionOrClass:j})}},{key:"reduceContinueStatement",value:function(s){return seq(this.t("continue"),s.label?seq(this.sep(Sep.BEFORE_JUMP_LABEL),this.t(s.label)):empty$1(),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceDataProperty",value:function(s,a){var c=a.name,d=a.expression;return seq(c,this.sep(Sep.BEFORE_PROP),this.t(":"),this.sep(Sep.AFTER_PROP),this.getAssignmentExpr(d))}},{key:"reduceDebuggerStatement",value:function(s){return seq(this.t("debugger"),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceDoWhileStatement",value:function(s,a){var c=a.body,d=a.test;return seq(this.t("do"),this.sep(Sep.AFTER_DO),c,this.sep(Sep.BEFORE_DOWHILE_WHILE),this.t("while"),this.sep(Sep.AFTER_DOWHILE_WHILE),this.paren(d,Sep.DO_WHILE_TEST_PAREN_BEFORE,Sep.DO_WHILE_TEST_PAREN_AFTER),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceEmptyStatement",value:function(s){return seq(this.t(";"),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExpressionStatement",value:function(s,a){var c=a.expression,d=c.startsWithCurly||c.startsWithLetSquareBracket||c.startsWithFunctionOrClass;return seq(d?this.paren(c,Sep.EXPRESSION_STATEMENT_PAREN_BEFORE,Sep.EXPRESSION_STATEMENT_PAREN_AFTER):c,this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceForInStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return c=s.left.type==="VariableDeclaration"?noIn(markContainsIn(c)):c,(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FORIN_FOR),this.paren(seq(c.startsWithLet?this.paren(c,Sep.FOR_IN_LET_PAREN_BEFORE,Sep.FOR_IN_LET_PAREN_AFTER):c,this.sep(Sep.BEFORE_FORIN_IN),this.t("in"),this.sep(Sep.AFTER_FORIN_FOR),d),Sep.FOR_IN_PAREN_BEFORE,Sep.FOR_IN_PAREN_AFTER),this.sep(Sep.BEFORE_FORIN_BODY),_,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceForOfStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return c=s.left.type==="VariableDeclaration"?noIn(markContainsIn(c)):c,(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FOROF_FOR),this.paren(seq(c.startsWithLet?this.paren(c,Sep.FOR_OF_LET_PAREN_BEFORE,Sep.FOR_OF_LET_PAREN_AFTER):c,this.sep(Sep.BEFORE_FOROF_OF),this.t("of"),this.sep(Sep.AFTER_FOROF_FOR),this.p(s.right,_coderep.Precedence.Assignment,d)),Sep.FOR_OF_PAREN_BEFORE,Sep.FOR_OF_PAREN_AFTER),this.sep(Sep.BEFORE_FOROF_BODY),_,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceForStatement",value:function(s,a){var c=a.init,d=a.test,_=a.update,b=a.body;return c&&(c.startsWithLetSquareBracket&&(c=this.paren(c,Sep.FOR_LET_PAREN_BEFORE,Sep.FOR_LET_PAREN_AFTER)),c=noIn(markContainsIn(c))),(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FOR_FOR),this.paren(seq(c?seq(this.sep(Sep.BEFORE_FOR_INIT),c,this.sep(Sep.AFTER_FOR_INIT)):this.sep(Sep.EMPTY_FOR_INIT),this.t(";"),d?seq(this.sep(Sep.BEFORE_FOR_TEST),d,this.sep(Sep.AFTER_FOR_TEST)):this.sep(Sep.EMPTY_FOR_TEST),this.t(";"),_?seq(this.sep(Sep.BEFORE_FOR_UPDATE),_,this.sep(Sep.AFTER_FOR_UPDATE)):this.sep(Sep.EMPTY_FOR_UPDATE))),this.sep(Sep.BEFORE_FOR_BODY),b,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:b.endsWithMissingElse})}},{key:"reduceForAwaitStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return c=s.left.type==="VariableDeclaration"?noIn(markContainsIn(c)):c,(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FOROF_FOR),this.t("await"),this.sep(Sep.AFTER_FORAWAIT_AWAIT),this.paren(seq(c.startsWithLet?this.paren(c,Sep.FOR_OF_LET_PAREN_BEFORE,Sep.FOR_OF_LET_PAREN_AFTER):c,this.sep(Sep.BEFORE_FOROF_OF),this.t("of"),this.sep(Sep.AFTER_FOROF_FOR),this.p(s.right,_coderep.Precedence.Assignment,d)),Sep.FOR_OF_PAREN_BEFORE,Sep.FOR_OF_PAREN_AFTER),this.sep(Sep.BEFORE_FOROF_BODY),_,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceFunctionBody",value:function(s,a){var c=a.directives,d=a.statements;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.statements[0],d[0])),seq.apply(void 0,_toConsumableArray$1(c).concat([c.length?this.sep(Sep.AFTER_FUNCTION_DIRECTIVES):empty$1()],_toConsumableArray$1(d)))}},{key:"reduceFunctionDeclaration",value:function(s,a){var c=a.name,d=a.params,_=a.body;return seq(s.isAsync?this.t("async"):empty$1(),this.t("function"),s.isGenerator?seq(this.sep(Sep.BEFORE_GENERATOR_STAR),this.t("*"),this.sep(Sep.AFTER_GENERATOR_STAR)):empty$1(),this.sep(Sep.BEFORE_FUNCTION_NAME(s)),s.name.name==="*default*"?empty$1():c,this.sep(Sep.BEFORE_FUNCTION_PARAMS),this.paren(d,Sep.PARAMETERS_PAREN_BEFORE,Sep.PARAMETERS_PAREN_AFTER,Sep.PARAMETERS_PAREN_EMPTY),this.sep(Sep.BEFORE_FUNCTION_DECLARATION_BODY),this.brace(_,s,Sep.FUNCTION_BRACE_INITIAL,Sep.FUNCTION_BRACE_FINAL,Sep.FUNCTION_EMPTY),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceFunctionExpression",value:function(s,a){var c=a.name,d=a.params,_=a.body,b=seq(s.isAsync?this.t("async"):empty$1(),this.t("function"),s.isGenerator?seq(this.sep(Sep.BEFORE_GENERATOR_STAR),this.t("*"),this.sep(Sep.AFTER_GENERATOR_STAR)):empty$1(),this.sep(Sep.BEFORE_FUNCTION_NAME(s)),c||empty$1(),this.sep(Sep.BEFORE_FUNCTION_PARAMS),this.paren(d,Sep.PARAMETERS_PAREN_BEFORE,Sep.PARAMETERS_PAREN_AFTER,Sep.PARAMETERS_PAREN_EMPTY),this.sep(Sep.BEFORE_FUNCTION_EXPRESSION_BODY),this.brace(_,s,Sep.FUNCTION_EXPRESSION_BRACE_INITIAL,Sep.FUNCTION_EXPRESSION_BRACE_FINAL,Sep.FUNCTION_EXPRESSION_EMPTY));return b.startsWithFunctionOrClass=!0,b}},{key:"reduceFormalParameters",value:function(s,a){var c=a.items,d=a.rest;return this.commaSep(c.concat(d==null?[]:[seq(this.t("..."),this.sep(Sep.REST),d)]),Sep.PARAMETER_BEFORE_COMMA,Sep.PARAMETER_AFTER_COMMA)}},{key:"reduceArrowExpression",value:function(s,a){var c=a.params,d=a.body;(s.params.rest!=null||s.params.items.length!==1||s.params.items[0].type!=="BindingIdentifier")&&(c=this.paren(c,Sep.ARROW_PARAMETERS_PAREN_BEFORE,Sep.ARROW_PARAMETERS_PAREN_AFTER,Sep.ARROW_PARAMETERS_PAREN_EMPTY));var _=!1;return s.body.type==="FunctionBody"?d=this.brace(d,s,Sep.ARROW_BRACE_INITIAL,Sep.ARROW_BRACE_FINAL,Sep.ARROW_BRACE_EMPTY):d.startsWithCurly?d=this.paren(d,Sep.ARROW_BODY_PAREN_BEFORE,Sep.ARROW_BODY_PAREN_AFTER):d.containsIn&&(_=!0),(0,_objectAssign2.default)(seq(s.isAsync?seq(this.t("async"),this.sep(Sep.BEFORE_ARROW_ASYNC_PARAMS)):empty$1(),c,this.sep(Sep.BEFORE_ARROW),this.t("=>"),this.sep(Sep.AFTER_ARROW),this.p(s.body,_coderep.Precedence.Assignment,d)),{containsIn:_})}},{key:"reduceGetter",value:function(s,a){var c=a.name,d=a.body;return seq(this.t("get"),this.sep(Sep.AFTER_GET),c,this.sep(Sep.BEFORE_GET_PARAMS),this.paren(empty$1(),null,null,Sep.GETTER_PARAMS),this.sep(Sep.BEFORE_GET_BODY),this.brace(d,s,Sep.GET_BRACE_INTIAL,Sep.GET_BRACE_FINAL,Sep.GET_BRACE_EMPTY))}},{key:"reduceIdentifierExpression",value:function(s){var a=this.t(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceIfStatement",value:function(s,a){var c=a.test,d=a.consequent,_=a.alternate;return _&&d.endsWithMissingElse&&(d=this.brace(d,s,Sep.MISSING_ELSE_INTIIAL,Sep.MISSING_ELSE_FINAL,Sep.MISSING_ELSE_EMPTY)),(0,_objectAssign2.default)(seq(this.t("if"),this.sep(Sep.AFTER_IF),this.paren(c,Sep.IF_PAREN_BEFORE,Sep.IF_PAREN_AFTER),this.sep(Sep.AFTER_IF_TEST),d,_?seq(this.sep(Sep.BEFORE_ELSE),this.t("else"),this.sep(Sep.AFTER_ELSE),_):empty$1(),this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:_?_.endsWithMissingElse:!0})}},{key:"reduceImport",value:function(s,a){var c=a.defaultBinding,d=a.namedImports,_=[];return c!=null&&_.push(c),d.length>0&&_.push(this.brace(this.commaSep(d,Sep.NAMED_IMPORT_BEFORE_COMMA,Sep.NAMED_IMPORT_AFTER_COMMA),s,Sep.IMPORT_BRACE_INTIAL,Sep.IMPORT_BRACE_FINAL,Sep.IMPORT_BRACE_EMPTY)),_.length===0?seq(this.t("import"),this.sep(Sep.BEFORE_IMPORT_MODULE),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s))):seq(this.t("import"),this.sep(Sep.BEFORE_IMPORT_BINDINGS),this.commaSep(_,Sep.IMPORT_BEFORE_COMMA,Sep.IMPORT_AFTER_COMMA),this.sep(Sep.AFTER_IMPORT_BINDINGS),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceImportNamespace",value:function(s,a){var c=a.defaultBinding,d=a.namespaceBinding;return seq(this.t("import"),this.sep(Sep.BEFORE_IMPORT_NAMESPACE),c==null?empty$1():seq(c,this.sep(Sep.IMPORT_BEFORE_COMMA),this.t(","),this.sep(Sep.IMPORT_AFTER_COMMA)),this.sep(Sep.BEFORE_IMPORT_STAR),this.t("*"),this.sep(Sep.AFTER_IMPORT_STAR),this.t("as"),this.sep(Sep.AFTER_IMPORT_AS),d,this.sep(Sep.AFTER_NAMESPACE_BINDING),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceImportSpecifier",value:function(s,a){var c=a.binding;return s.name==null?c:seq(this.t(s.name),this.sep(Sep.BEFORE_IMPORT_AS),this.t("as"),this.sep(Sep.AFTER_IMPORT_AS),c)}},{key:"reduceExportAllFrom",value:function(s){return seq(this.t("export"),this.sep(Sep.BEFORE_EXPORT_STAR),this.t("*"),this.sep(Sep.AFTER_EXPORT_STAR),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExportFrom",value:function(s,a){var c=a.namedExports;return seq(this.t("export"),this.sep(Sep.BEFORE_EXPORT_BINDINGS),this.brace(this.commaSep(c,Sep.EXPORTS_BEFORE_COMMA,Sep.EXPORTS_AFTER_COMMA),s,Sep.EXPORT_BRACE_INITIAL,Sep.EXPORT_BRACE_FINAL,Sep.EXPORT_BRACE_EMPTY),this.sep(Sep.AFTER_EXPORT_FROM_BINDINGS),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExportLocals",value:function(s,a){var c=a.namedExports;return seq(this.t("export"),this.sep(Sep.BEFORE_EXPORT_BINDINGS),this.brace(this.commaSep(c,Sep.EXPORTS_BEFORE_COMMA,Sep.EXPORTS_AFTER_COMMA),s,Sep.EXPORT_BRACE_INITIAL,Sep.EXPORT_BRACE_FINAL,Sep.EXPORT_BRACE_EMPTY),this.sep(Sep.AFTER_EXPORT_LOCAL_BINDINGS),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExport",value:function(s,a){var c=a.declaration;switch(s.declaration.type){case"FunctionDeclaration":case"ClassDeclaration":break;default:c=seq(c,this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}return seq(this.t("export"),this.sep(Sep.AFTER_EXPORT),c)}},{key:"reduceExportDefault",value:function(s,a){var c=a.body;switch(c=c.startsWithFunctionOrClass?this.paren(c,Sep.EXPORT_PAREN_BEFORE,Sep.EXPORT_PAREN_AFTER):c,s.body.type){case"FunctionDeclaration":case"ClassDeclaration":return seq(this.t("export"),this.sep(Sep.EXPORT_DEFAULT),this.t("default"),this.sep(Sep.AFTER_EXPORT_DEFAULT),c);default:return seq(this.t("export"),this.sep(Sep.EXPORT_DEFAULT),this.t("default"),this.sep(Sep.AFTER_EXPORT_DEFAULT),this.p(s.body,_coderep.Precedence.Assignment,c),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}}},{key:"reduceExportFromSpecifier",value:function(s){return s.exportedName==null?this.t(s.name):seq(this.t(s.name),this.sep(Sep.BEFORE_EXPORT_AS),this.t("as"),this.sep(Sep.AFTER_EXPORT_AS),this.t(s.exportedName))}},{key:"reduceExportLocalSpecifier",value:function(s,a){var c=a.name;return s.exportedName==null?c:seq(c,this.sep(Sep.BEFORE_EXPORT_AS),this.t("as"),this.sep(Sep.AFTER_EXPORT_AS),this.t(s.exportedName))}},{key:"reduceLabeledStatement",value:function(s,a){var c=a.body;return(0,_objectAssign2.default)(seq(this.t(s.label),this.sep(Sep.BEFORE_LABEL_COLON),this.t(":"),this.sep(Sep.AFTER_LABEL_COLON),c),{endsWithMissingElse:c.endsWithMissingElse})}},{key:"reduceLiteralBooleanExpression",value:function(s){return this.t(s.value.toString())}},{key:"reduceLiteralNullExpression",value:function(){return this.t("null")}},{key:"reduceLiteralInfinityExpression",value:function(){return this.t("2e308")}},{key:"reduceLiteralNumericExpression",value:function(s){return new _coderep.NumberCodeRep(s.value)}},{key:"reduceLiteralRegExpExpression",value:function(s){return this.t("/"+s.pattern+"/"+(s.global?"g":"")+(s.ignoreCase?"i":"")+(s.multiLine?"m":"")+(s.dotAll?"s":"")+(s.unicode?"u":"")+(s.sticky?"y":""),!0)}},{key:"reduceLiteralStringExpression",value:function(s){return this.t((0,_coderep.escapeStringLiteral)(s.value))}},{key:"reduceMethod",value:function(s,a){var c=a.name,d=a.params,_=a.body;return seq(s.isAsync?seq(this.t("async"),this.sep(Sep.AFTER_METHOD_ASYNC)):empty$1(),s.isGenerator?seq(this.t("*"),this.sep(Sep.AFTER_METHOD_GENERATOR_STAR)):empty$1(),c,this.sep(Sep.AFTER_METHOD_NAME),this.paren(d,Sep.PARAMETERS_PAREN_BEFORE,Sep.PARAMETERS_PAREN_AFTER,Sep.PARAMETERS_PAREN_EMPTY),this.sep(Sep.BEFORE_METHOD_BODY),this.brace(_,s,Sep.METHOD_BRACE_INTIAL,Sep.METHOD_BRACE_FINAL,Sep.METHOD_BRACE_EMPTY))}},{key:"reduceModule",value:function(s,a){var c=a.directives,d=a.items;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.items[0],d[0])),seq.apply(void 0,_toConsumableArray$1(c).concat([c.length?this.sep(Sep.AFTER_MODULE_DIRECTIVES):empty$1()],_toConsumableArray$1(d)))}},{key:"reduceNewExpression",value:function(s,a){var c=this,d=a.callee,_=a.arguments,b=_.map(function($,j){return c.p(s.arguments[j],_coderep.Precedence.Assignment,$)}),k=(0,_coderep.getPrecedence)(s.callee)===_coderep.Precedence.Call?this.paren(d,Sep.NEW_CALLEE_PAREN_BEFORE,Sep.NEW_CALLEE_PAREN_AFTER):this.p(s.callee,(0,_coderep.getPrecedence)(s),d);return seq(this.t("new"),this.sep(Sep.AFTER_NEW),k,_.length===0?this.sep(Sep.EMPTY_NEW_CALL):seq(this.sep(Sep.BEFORE_NEW_ARGS),this.paren(this.commaSep(b,Sep.ARGS_BEFORE_COMMA,Sep.ARGS_AFTER_COMMA),Sep.NEW_PAREN_BEFORE,Sep.NEW_PAREN_AFTER,Sep.NEW_PAREN_EMPTY)))}},{key:"reduceNewTargetExpression",value:function(){return seq(this.t("new"),this.sep(Sep.NEW_TARGET_BEFORE_DOT),this.t("."),this.sep(Sep.NEW_TARGET_AFTER_DOT),this.t("target"))}},{key:"reduceObjectExpression",value:function(s,a){var c=a.properties,d=this.brace(this.commaSep(c,Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA),s,Sep.OBJECT_BRACE_INITIAL,Sep.OBJECT_BRACE_FINAL,Sep.OBJECT_EMPTY);return d.startsWithCurly=!0,d}},{key:"reduceUpdateExpression",value:function(s,a){var c=a.operand;return s.isPrefix?this.reduceUnaryExpression.apply(this,arguments):(0,_objectAssign2.default)(seq(this.p(s.operand,_coderep.Precedence.New,c),this.sep(Sep.BEFORE_POSTFIX(s.operator)),this.t(s.operator)),{startsWithCurly:c.startsWithCurly,startsWithLetSquareBracket:c.startsWithLetSquareBracket,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceUnaryExpression",value:function(s,a){var c=a.operand;return seq(this.t(s.operator),this.sep(Sep.UNARY(s.operator)),this.p(s.operand,(0,_coderep.getPrecedence)(s),c))}},{key:"reduceReturnStatement",value:function(s,a){var c=a.expression;return seq(this.t("return"),c?seq(this.sep(Sep.RETURN),c):empty$1(),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceScript",value:function(s,a){var c=a.directives,d=a.statements;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.statements[0],d[0])),seq.apply(void 0,_toConsumableArray$1(c).concat([c.length?this.sep(Sep.AFTER_SCRIPT_DIRECTIVES):empty$1()],_toConsumableArray$1(d)))}},{key:"reduceSetter",value:function(s,a){var c=a.name,d=a.param,_=a.body;return seq(this.t("set"),this.sep(Sep.AFTER_SET),c,this.sep(Sep.BEFORE_SET_PARAMS),this.paren(d,Sep.SETTER_PARAM_BEFORE,Sep.SETTER_PARAM_AFTER),this.sep(Sep.BEFORE_SET_BODY),this.brace(_,s,Sep.SET_BRACE_INTIIAL,Sep.SET_BRACE_FINAL,Sep.SET_BRACE_EMPTY))}},{key:"reduceShorthandProperty",value:function(s,a){var c=a.name;return c}},{key:"reduceStaticMemberAssignmentTarget",value:function(s,a){var c=a.object,d=seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.BEFORE_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT),this.t("."),this.sep(Sep.AFTER_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT),this.t(s.property));return d.startsWithLet=c.startsWithLet,d.startsWithCurly=c.startsWithCurly,d.startsWithLetSquareBracket=c.startsWithLetSquareBracket,d.startsWithFunctionOrClass=c.startsWithFunctionOrClass,d}},{key:"reduceStaticMemberExpression",value:function(s,a){var c=a.object,d=seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.BEFORE_STATIC_MEMBER_DOT),this.t("."),this.sep(Sep.AFTER_STATIC_MEMBER_DOT),this.t(s.property));return d.startsWithLet=c.startsWithLet,d.startsWithCurly=c.startsWithCurly,d.startsWithLetSquareBracket=c.startsWithLetSquareBracket,d.startsWithFunctionOrClass=c.startsWithFunctionOrClass,d}},{key:"reduceStaticPropertyName",value:function(s){if(_esutils.keyword.isIdentifierNameES6(s.value))return this.t(s.value);var a=parseFloat(s.value);return a>=0&&a.toString()===s.value?new _coderep.NumberCodeRep(a):this.t((0,_coderep.escapeStringLiteral)(s.value))}},{key:"reduceSuper",value:function(){return this.t("super")}},{key:"reduceSwitchCase",value:function(s,a){var c=a.test,d=a.consequent;return seq(this.t("case"),this.sep(Sep.BEFORE_CASE_TEST),c,this.sep(Sep.AFTER_CASE_TEST),this.t(":"),this.sep(Sep.BEFORE_CASE_BODY),seq.apply(void 0,_toConsumableArray$1(d)),this.sep(Sep.AFTER_CASE_BODY))}},{key:"reduceSwitchDefault",value:function(s,a){var c=a.consequent;return seq(this.t("default"),this.sep(Sep.DEFAULT),this.t(":"),this.sep(Sep.BEFORE_CASE_BODY),seq.apply(void 0,_toConsumableArray$1(c)),this.sep(Sep.AFTER_DEFAULT_BODY))}},{key:"reduceSwitchStatement",value:function(s,a){var c=a.discriminant,d=a.cases;return seq(this.t("switch"),this.sep(Sep.BEFORE_SWITCH_DISCRIM),this.paren(c,Sep.SWITCH_DISCRIM_PAREN_BEFORE,Sep.SWITCH_DISCRIM_PAREN_AFTER),this.sep(Sep.BEFORE_SWITCH_BODY),this.brace(seq.apply(void 0,_toConsumableArray$1(d)),s,Sep.SWITCH_BRACE_INTIAL,Sep.SWITCH_BRACE_FINAL,Sep.SWITCH_BRACE_EMPTY),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceSwitchStatementWithDefault",value:function(s,a){var c=a.discriminant,d=a.preDefaultCases,_=a.defaultCase,b=a.postDefaultCases;return seq(this.t("switch"),this.sep(Sep.BEFORE_SWITCH_DISCRIM),this.paren(c,Sep.SWITCH_DISCRIM_PAREN_BEFORE,Sep.SWITCH_DISCRIM_PAREN_AFTER),this.sep(Sep.BEFORE_SWITCH_BODY),this.brace(seq.apply(void 0,_toConsumableArray$1(d).concat([_],_toConsumableArray$1(b))),s,Sep.SWITCH_BRACE_INTIAL,Sep.SWITCH_BRACE_FINAL,Sep.SWITCH_BRACE_EMPTY),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceTemplateExpression",value:function(s,a){var c=a.tag,d=a.elements,_=s.tag==null?empty$1():seq(this.p(s.tag,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.TEMPLATE_TAG));_=seq(_,this.t("`"));for(var b=0,k=s.elements.length;b0&&($+="}"),$+=s.elements[b].rawValue,b=1e3&&o%10===0?(e=o.toString(10),/[eE]/.test(e)?e.replace(/[eE]\+/,"e"):o.toString(10).replace(/0{3,}$/,function(s){return"e"+s.length})):o%1===0?o>1e15&&o<1e20?"0x"+o.toString(16).toUpperCase():o.toString(10).replace(/[eE]\+/,"e"):o.toString(10).replace(/^0\./,".").replace(/[eE]\+/,"e")}tokenStream.TokenStream=function(){function o(){_classCallCheck$1(this,o),this.result="",this.lastNumber=null,this.lastCodePoint=null,this.lastTokenStr="",this.optionalSemi=!1,this.previousWasRegExp=!1,this.partialHtmlComment=!1}return _createClass$1(o,[{key:"putNumber",value:function(s){var a=renderNumber(s);this.put(a),this.lastNumber=a}},{key:"putOptionalSemi",value:function(){this.optionalSemi=!0}},{key:"putRaw",value:function(s){this.result+=s,this.lastTokenStr=s}},{key:"put",value:function(s,a){if(this.optionalSemi&&(this.optionalSemi=!1,s!=="}"&&(this.result+=";",this.lastCodePoint=";",this.previousWasRegExp=!1)),this.lastNumber!==null&&s.length===1&&s==="."){this.result+=needsDoubleDot(this.lastNumber)?"..":".",this.lastNumber=null,this.lastCodePoint=".";return}var c=[].concat(_toConsumableArray(s)).length;if(c>0){this.lastNumber=null;var d=String.fromCodePoint(s.codePointAt(0)),_=this.lastCodePoint;this.lastCodePoint=String.fromCodePoint(s.codePointAt(c-1));var b=this.previousWasRegExp;this.previousWasRegExp=a,_&&((_==="+"||_==="-")&&_===d||isIdentifierPartES6(_)&&isIdentifierPartES6(d)||_==="/"&&d==="/"||b&&d==="i"||this.partialHtmlComment&&s.startsWith("--"))&&(this.result+=" ")}this.partialHtmlComment=this.lastTokenStr.endsWith("<")&&s==="!",this.result+=s,this.lastTokenStr=s}}]),o}();Object.defineProperty(withLocation,"__esModule",{value:!0});var _createClass=function(){function o(e,s){for(var a=0;a1?c-1:0),_=1;_1?c-1:0),_=1;_1?c-1:0),_=1;_1&&arguments[1]!==void 0?arguments[1]:new _minimalCodegen2.default,s=new TokenStreamWithLocation,a=(0,_shiftReducer.reduce)(addLocationToReducer(e),o);return a.emit(s),{source:s.result,locations:s.locations}}(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.codeGenWithLocation=o.SemiOp=o.CommaSep=o.Semi=o.Seq=o.ContainsIn=o.NoIn=o.Brace=o.Bracket=o.Paren=o.NumberCodeRep=o.Token=o.Empty=o.CodeRep=o.escapeStringLiteral=o.getPrecedence=o.Precedence=o.Sep=o.FormattedCodeGen=o.ExtensibleCodeGen=o.MinimalCodeGen=void 0,o.default=j;var e=minimalCodegen;Object.defineProperty(o,"MinimalCodeGen",{enumerable:!0,get:function(){return $(e).default}});var s=formattedCodegen;Object.defineProperty(o,"ExtensibleCodeGen",{enumerable:!0,get:function(){return s.ExtensibleCodeGen}}),Object.defineProperty(o,"FormattedCodeGen",{enumerable:!0,get:function(){return s.FormattedCodeGen}}),Object.defineProperty(o,"Sep",{enumerable:!0,get:function(){return s.Sep}});var a=coderep;Object.defineProperty(o,"Precedence",{enumerable:!0,get:function(){return a.Precedence}}),Object.defineProperty(o,"getPrecedence",{enumerable:!0,get:function(){return a.getPrecedence}}),Object.defineProperty(o,"escapeStringLiteral",{enumerable:!0,get:function(){return a.escapeStringLiteral}}),Object.defineProperty(o,"CodeRep",{enumerable:!0,get:function(){return a.CodeRep}}),Object.defineProperty(o,"Empty",{enumerable:!0,get:function(){return a.Empty}}),Object.defineProperty(o,"Token",{enumerable:!0,get:function(){return a.Token}}),Object.defineProperty(o,"NumberCodeRep",{enumerable:!0,get:function(){return a.NumberCodeRep}}),Object.defineProperty(o,"Paren",{enumerable:!0,get:function(){return a.Paren}}),Object.defineProperty(o,"Bracket",{enumerable:!0,get:function(){return a.Bracket}}),Object.defineProperty(o,"Brace",{enumerable:!0,get:function(){return a.Brace}}),Object.defineProperty(o,"NoIn",{enumerable:!0,get:function(){return a.NoIn}}),Object.defineProperty(o,"ContainsIn",{enumerable:!0,get:function(){return a.ContainsIn}}),Object.defineProperty(o,"Seq",{enumerable:!0,get:function(){return a.Seq}}),Object.defineProperty(o,"Semi",{enumerable:!0,get:function(){return a.Semi}}),Object.defineProperty(o,"CommaSep",{enumerable:!0,get:function(){return a.CommaSep}}),Object.defineProperty(o,"SemiOp",{enumerable:!0,get:function(){return a.SemiOp}});var c=withLocation;Object.defineProperty(o,"codeGenWithLocation",{enumerable:!0,get:function(){return $(c).default}});var d=dist$4,_=$(d),b=tokenStream,k=$(e);function $(_e){return _e&&_e.__esModule?_e:{default:_e}}function j(_e){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new k.default,tt=new b.TokenStream,nt=(0,_.default)(et,_e);return nt.emit(tt),tt.result}})(dist);var shiftCodegen=getDefaultExportFromCjs(dist);const{replace}=estraverse,codegen=shiftCodegen.default||shiftCodegen,{Pattern:Pattern$3}=strudel,isNote=o=>/^[a-gC-G][bs]?[0-9]$/.test(o);var shapeshifter=o=>{const{code:e,addReturn:s}=wrapAsync(o),a=dist$7.parseScriptWithLocation(e),c=[],d=[],_=replace(a.tree,{enter(k,$){var tt,nt,it;if(d.push($),d.some(rt=>c.includes(rt)))return k;if(isBackTickString(k))return minifyWithLocation(k,k,a.locations,c);if(((tt=k.directives)==null?void 0:tt.length)===1&&!((nt=k.statements)!=null&&nt.length)){const rt=new LiteralStringExpression_1({value:k.directives[0].rawValue}),st=minifyWithLocation(rt,k.directives[0],a.locations,c);return wt(_t({},k),{directives:[],statements:[st]})}if(isStringWithDoubleQuotes(k,a.locations,e))return minifyWithLocation(k,k,a.locations,c);const _e={"*":"fast","/":"slow","&":"stack","&&":"append"};if(k.type==="BinaryExpression"&&_e[k.operator]&&["LiteralNumericExpression","LiteralStringExpression","IdentifierExpression"].includes((it=k.right)==null?void 0:it.type)&&canBeOverloaded(k.left)){let rt=k.left;return k.left.type==="IdentifierExpression"&&(rt=wrapFunction("reify",k.left)),new CallExpression_1({callee:new StaticMemberExpression_1({property:_e[k.operator],object:wrapFunction("reify",rt)}),arguments:[k.right]})}const et=isPatternArg(d)||hasModifierCall($);if(k.type==="CallExpression"&&k.callee.name==="pure"){const rt=k.arguments[0];return reifyWithLocation(rt,k.arguments[0],a.locations,c)}if(k.type==="IdentifierExpression"){if(isNote(k.name)){const rt=k.name[1]==="s"?k.name.replace("s","#"):k.name;return et?reifyWithLocation(new LiteralStringExpression_1({value:rt}),k,a.locations,c):new LiteralStringExpression_1({value:rt})}if(k.name==="r")return new IdentifierExpression_1({name:"silence"})}return["LiteralStringExpression"].includes(k.type)&&et?reifyWithLocation(k,k,a.locations,c):addMiniNotationLocations(k,a.locations,c)},leave(){d.pop()}});return s(_),codegen(_)};function wrapAsync(o){return o=`(async () => { +`);for(var c=0;c1&&arguments[1]!==void 0?arguments[1]:!1;return new _coderep.Token(s,a)}},{key:"p",value:function(s,a,c){return(0,_coderep.getPrecedence)(s)0&&d[d.length-1]==null&&(_=seq(_,this.sep(Sep.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep.ARRAY_AFTER_COMMA))),this.bracket(_,Sep.ARRAY_INITIAL,Sep.ARRAY_FINAL)}},{key:"reduceAwaitExpression",value:function(s,a){var c=a.expression;return seq(this.t("await"),this.sep(Sep.AWAIT),this.p(s.expression,(0,_coderep.getPrecedence)(s),c))}},{key:"reduceSpreadElement",value:function(s,a){var c=a.expression;return seq(this.t("..."),this.sep(Sep.SPREAD),this.p(s.expression,_coderep.Precedence.Assignment,c))}},{key:"reduceSpreadProperty",value:function(s,a){var c=a.expression;return seq(this.t("..."),this.sep(Sep.SPREAD),this.getAssignmentExpr(c))}},{key:"reduceAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression,_=c,b=d,k=d.containsIn,$=c.startsWithCurly,j=c.startsWithLetSquareBracket,_e=c.startsWithFunctionOrClass;return(0,_coderep.getPrecedence)(s.expression)<(0,_coderep.getPrecedence)(s)&&(b=this.paren(b,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),k=!1),(0,_objectAssign2.default)(seq(_,this.sep(Sep.BEFORE_ASSIGN_OP("=")),this.t("="),this.sep(Sep.AFTER_ASSIGN_OP("=")),b),{containsIn:k,startsWithCurly:$,startsWithLetSquareBracket:j,startsWithFunctionOrClass:_e})}},{key:"reduceAssignmentTargetIdentifier",value:function(s){var a=this.t(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceAssignmentTargetWithDefault",value:function(s,a){var c=a.binding,d=a.init;return seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,d))}},{key:"reduceCompoundAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression,_=c,b=d,k=d.containsIn,$=c.startsWithCurly,j=c.startsWithLetSquareBracket,_e=c.startsWithFunctionOrClass;return(0,_coderep.getPrecedence)(s.expression)<(0,_coderep.getPrecedence)(s)&&(b=this.paren(b,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),k=!1),(0,_objectAssign2.default)(seq(_,this.sep(Sep.BEFORE_ASSIGN_OP(s.operator)),this.t(s.operator),this.sep(Sep.AFTER_ASSIGN_OP(s.operator)),b),{containsIn:k,startsWithCurly:$,startsWithLetSquareBracket:j,startsWithFunctionOrClass:_e})}},{key:"reduceBinaryExpression",value:function(s,a){var c=a.left,d=a.right,_=c,b=c.startsWithCurly,k=c.startsWithLetSquareBracket,$=c.startsWithFunctionOrClass,j=c.containsIn,_e=s.operator==="**";((0,_coderep.getPrecedence)(s.left)<(0,_coderep.getPrecedence)(s)||_e&&((0,_coderep.getPrecedence)(s.left)===(0,_coderep.getPrecedence)(s)||s.left.type==="UnaryExpression"))&&(_=this.paren(_,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),b=!1,k=!1,$=!1,j=!1);var et=d,tt=d.containsIn;return((0,_coderep.getPrecedence)(s.right)<(0,_coderep.getPrecedence)(s)||!_e&&(0,_coderep.getPrecedence)(s.right)===(0,_coderep.getPrecedence)(s))&&(et=this.paren(et,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),tt=!1),(0,_objectAssign2.default)(seq(_,this.sep(Sep.BEFORE_BINOP(s.operator)),this.t(s.operator),this.sep(Sep.AFTER_BINOP(s.operator)),et),{containsIn:j||tt||s.operator==="in",containsGroup:s.operator===",",startsWithCurly:b,startsWithLetSquareBracket:k,startsWithFunctionOrClass:$})}},{key:"reduceBindingWithDefault",value:function(s,a){var c=a.binding,d=a.init;return seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,d))}},{key:"reduceBindingIdentifier",value:function(s){var a=this.t(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceArrayAssignmentTarget",value:function(s,a){var c=this,d=a.elements,_=a.rest,b=void 0;return d.length===0?b=_==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),_):(d=d.concat(_==null?[]:[seq(this.t("..."),this.sep(Sep.REST),_)]),b=this.commaSep(d.map(function(k){return c.getAssignmentExpr(k)}),Sep.ARRAY_BEFORE_COMMA,Sep.ARRAY_AFTER_COMMA),d.length>0&&d[d.length-1]==null&&(b=seq(b,this.sep(Sep.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep.ARRAY_AFTER_COMMA)))),this.bracket(b,Sep.ARRAY_INITIAL,Sep.ARRAY_FINAL,Sep.ARRAY_EMPTY)}},{key:"reduceArrayBinding",value:function(s,a){var c=this,d=a.elements,_=a.rest,b=void 0;return d.length===0?b=_==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),_):(d=d.concat(_==null?[]:[seq(this.t("..."),this.sep(Sep.REST),_)]),b=this.commaSep(d.map(function(k){return c.getAssignmentExpr(k)}),Sep.ARRAY_BEFORE_COMMA,Sep.ARRAY_AFTER_COMMA),d.length>0&&d[d.length-1]==null&&(b=seq(b,this.sep(Sep.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep.ARRAY_AFTER_COMMA)))),this.bracket(b,Sep.ARRAY_INITIAL,Sep.ARRAY_FINAL,Sep.ARRAY_EMPTY)}},{key:"reduceObjectAssignmentTarget",value:function(s,a){var c=a.properties,d=a.rest,_=void 0;c.length===0?_=d==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),d):(_=this.commaSep(c,Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA),_=d==null?_:this.commaSep([_,seq(this.t("..."),this.sep(Sep.REST),d)],Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA));var b=this.brace(_,s,Sep.OBJECT_BRACE_INITIAL,Sep.OBJECT_BRACE_FINAL,Sep.OBJECT_EMPTY);return b.startsWithCurly=!0,b}},{key:"reduceObjectBinding",value:function(s,a){var c=a.properties,d=a.rest,_=void 0;c.length===0?_=d==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),d):(_=this.commaSep(c,Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA),_=d==null?_:this.commaSep([_,seq(this.t("..."),this.sep(Sep.REST),d)],Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA));var b=this.brace(_,s,Sep.OBJECT_BRACE_INITIAL,Sep.OBJECT_BRACE_FINAL,Sep.OBJECT_EMPTY);return b.startsWithCurly=!0,b}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(s,a){var c=a.binding,d=a.init;return s.init==null?c:seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,d))}},{key:"reduceAssignmentTargetPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return seq(c,this.sep(Sep.BEFORE_PROP),this.t(":"),this.sep(Sep.AFTER_PROP),d)}},{key:"reduceBindingPropertyIdentifier",value:function(s,a){var c=a.binding,d=a.init;return s.init==null?c:seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,d))}},{key:"reduceBindingPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return seq(c,this.sep(Sep.BEFORE_PROP),this.t(":"),this.sep(Sep.AFTER_PROP),d)}},{key:"reduceBlock",value:function(s,a){var c=a.statements;return this.brace(seq.apply(void 0,_toConsumableArray$1(c)),s,Sep.BLOCK_BRACE_INITIAL,Sep.BLOCK_BRACE_FINAL,Sep.BLOCK_EMPTY)}},{key:"reduceBlockStatement",value:function(s,a){var c=a.block;return seq(c,this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceBreakStatement",value:function(s){return seq(this.t("break"),s.label?seq(this.sep(Sep.BEFORE_JUMP_LABEL),this.t(s.label)):empty$1(),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceCallExpression",value:function(s,a){var c=this,d=a.callee,_=a.arguments,b=_.map(function(k,$){return c.p(s.arguments[$],_coderep.Precedence.Assignment,k)});return(0,_objectAssign2.default)(seq(this.p(s.callee,(0,_coderep.getPrecedence)(s),d),this.sep(Sep.CALL),this.paren(this.commaSep(b,Sep.ARGS_BEFORE_COMMA,Sep.ARGS_AFTER_COMMA),Sep.CALL_PAREN_BEFORE,Sep.CALL_PAREN_AFTER,Sep.CALL_PAREN_EMPTY)),{startsWithCurly:d.startsWithCurly,startsWithLet:d.startsWithLet,startsWithLetSquareBracket:d.startsWithLetSquareBracket,startsWithFunctionOrClass:d.startsWithFunctionOrClass})}},{key:"reduceCatchClause",value:function(s,a){var c=a.binding,d=a.body;return seq(this.t("catch"),this.sep(Sep.BEFORE_CATCH_BINDING),this.paren(c,Sep.CATCH_PAREN_BEFORE,Sep.CATCH_PAREN_AFTER),this.sep(Sep.AFTER_CATCH_BINDING),d)}},{key:"reduceClassDeclaration",value:function(s,a){var c=a.name,d=a.super,_=a.elements,b=seq(this.t("class"),s.name.name==="*default*"?empty$1():seq(this.sep(Sep.BEFORE_CLASS_NAME),c));return d!=null&&(b=seq(b,this.sep(Sep.BEFORE_EXTENDS),this.t("extends"),this.sep(Sep.AFTER_EXTENDS),this.p(s.super,_coderep.Precedence.New,d))),b=seq(b,this.sep(Sep.BEFORE_CLASS_DECLARATION_ELEMENTS),this.brace(seq.apply(void 0,_toConsumableArray$1(_)),s,Sep.CLASS_BRACE_INITIAL,Sep.CLASS_BRACE_FINAL,Sep.CLASS_EMPTY),this.sep(Sep.AFTER_STATEMENT(s))),b}},{key:"reduceClassExpression",value:function(s,a){var c=a.name,d=a.super,_=a.elements,b=this.t("class");return c!=null&&(b=seq(b,this.sep(Sep.BEFORE_CLASS_NAME),c)),d!=null&&(b=seq(b,this.sep(Sep.BEFORE_EXTENDS),this.t("extends"),this.sep(Sep.AFTER_EXTENDS),this.p(s.super,_coderep.Precedence.New,d))),b=seq(b,this.sep(Sep.BEFORE_CLASS_EXPRESSION_ELEMENTS),this.brace(seq.apply(void 0,_toConsumableArray$1(_)),s,Sep.CLASS_EXPRESSION_BRACE_INITIAL,Sep.CLASS_EXPRESSION_BRACE_FINAL,Sep.CLASS_EXPRESSION_BRACE_EMPTY)),b.startsWithFunctionOrClass=!0,b}},{key:"reduceClassElement",value:function(s,a){var c=a.method;return c=seq(this.sep(Sep.BEFORE_CLASS_ELEMENT),c,this.sep(Sep.AFTER_CLASS_ELEMENT)),s.isStatic?seq(this.t("static"),this.sep(Sep.AFTER_STATIC),c):c}},{key:"reduceComputedMemberAssignmentTarget",value:function(s,a){var c=a.object,d=a.expression,_=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2.default)(seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.COMPUTED_MEMBER_ASSIGNMENT_TARGET),this.bracket(d,Sep.COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_INTIAL,Sep.COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_FINAL)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:_,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedMemberExpression",value:function(s,a){var c=a.object,d=a.expression,_=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2.default)(seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.COMPUTED_MEMBER_EXPRESSION),this.bracket(d,Sep.COMPUTED_MEMBER_BRACKET_INTIAL,Sep.COMPUTED_MEMBER_BRACKET_FINAL)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:_,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedPropertyName",value:function(s,a){var c=a.expression;return this.bracket(this.p(s.expression,_coderep.Precedence.Assignment,c),Sep.COMPUTED_PROPERTY_BRACKET_INTIAL,Sep.COMPUTED_PROPERTY_BRACKET_FINAL)}},{key:"reduceConditionalExpression",value:function(s,a){var c=a.test,d=a.consequent,_=a.alternate,b=c.containsIn||_.containsIn,k=c.startsWithCurly,$=c.startsWithLetSquareBracket,j=c.startsWithFunctionOrClass;return(0,_objectAssign2.default)(seq(this.p(s.test,_coderep.Precedence.LogicalOR,c),this.sep(Sep.BEFORE_TERNARY_QUESTION),this.t("?"),this.sep(Sep.AFTER_TERNARY_QUESTION),this.p(s.consequent,_coderep.Precedence.Assignment,d),this.sep(Sep.BEFORE_TERNARY_COLON),this.t(":"),this.sep(Sep.AFTER_TERNARY_COLON),this.p(s.alternate,_coderep.Precedence.Assignment,_)),{containsIn:b,startsWithCurly:k,startsWithLetSquareBracket:$,startsWithFunctionOrClass:j})}},{key:"reduceContinueStatement",value:function(s){return seq(this.t("continue"),s.label?seq(this.sep(Sep.BEFORE_JUMP_LABEL),this.t(s.label)):empty$1(),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceDataProperty",value:function(s,a){var c=a.name,d=a.expression;return seq(c,this.sep(Sep.BEFORE_PROP),this.t(":"),this.sep(Sep.AFTER_PROP),this.getAssignmentExpr(d))}},{key:"reduceDebuggerStatement",value:function(s){return seq(this.t("debugger"),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceDoWhileStatement",value:function(s,a){var c=a.body,d=a.test;return seq(this.t("do"),this.sep(Sep.AFTER_DO),c,this.sep(Sep.BEFORE_DOWHILE_WHILE),this.t("while"),this.sep(Sep.AFTER_DOWHILE_WHILE),this.paren(d,Sep.DO_WHILE_TEST_PAREN_BEFORE,Sep.DO_WHILE_TEST_PAREN_AFTER),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceEmptyStatement",value:function(s){return seq(this.t(";"),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExpressionStatement",value:function(s,a){var c=a.expression,d=c.startsWithCurly||c.startsWithLetSquareBracket||c.startsWithFunctionOrClass;return seq(d?this.paren(c,Sep.EXPRESSION_STATEMENT_PAREN_BEFORE,Sep.EXPRESSION_STATEMENT_PAREN_AFTER):c,this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceForInStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return c=s.left.type==="VariableDeclaration"?noIn(markContainsIn(c)):c,(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FORIN_FOR),this.paren(seq(c.startsWithLet?this.paren(c,Sep.FOR_IN_LET_PAREN_BEFORE,Sep.FOR_IN_LET_PAREN_AFTER):c,this.sep(Sep.BEFORE_FORIN_IN),this.t("in"),this.sep(Sep.AFTER_FORIN_FOR),d),Sep.FOR_IN_PAREN_BEFORE,Sep.FOR_IN_PAREN_AFTER),this.sep(Sep.BEFORE_FORIN_BODY),_,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceForOfStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return c=s.left.type==="VariableDeclaration"?noIn(markContainsIn(c)):c,(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FOROF_FOR),this.paren(seq(c.startsWithLet?this.paren(c,Sep.FOR_OF_LET_PAREN_BEFORE,Sep.FOR_OF_LET_PAREN_AFTER):c,this.sep(Sep.BEFORE_FOROF_OF),this.t("of"),this.sep(Sep.AFTER_FOROF_FOR),this.p(s.right,_coderep.Precedence.Assignment,d)),Sep.FOR_OF_PAREN_BEFORE,Sep.FOR_OF_PAREN_AFTER),this.sep(Sep.BEFORE_FOROF_BODY),_,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceForStatement",value:function(s,a){var c=a.init,d=a.test,_=a.update,b=a.body;return c&&(c.startsWithLetSquareBracket&&(c=this.paren(c,Sep.FOR_LET_PAREN_BEFORE,Sep.FOR_LET_PAREN_AFTER)),c=noIn(markContainsIn(c))),(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FOR_FOR),this.paren(seq(c?seq(this.sep(Sep.BEFORE_FOR_INIT),c,this.sep(Sep.AFTER_FOR_INIT)):this.sep(Sep.EMPTY_FOR_INIT),this.t(";"),d?seq(this.sep(Sep.BEFORE_FOR_TEST),d,this.sep(Sep.AFTER_FOR_TEST)):this.sep(Sep.EMPTY_FOR_TEST),this.t(";"),_?seq(this.sep(Sep.BEFORE_FOR_UPDATE),_,this.sep(Sep.AFTER_FOR_UPDATE)):this.sep(Sep.EMPTY_FOR_UPDATE))),this.sep(Sep.BEFORE_FOR_BODY),b,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:b.endsWithMissingElse})}},{key:"reduceForAwaitStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return c=s.left.type==="VariableDeclaration"?noIn(markContainsIn(c)):c,(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FOROF_FOR),this.t("await"),this.sep(Sep.AFTER_FORAWAIT_AWAIT),this.paren(seq(c.startsWithLet?this.paren(c,Sep.FOR_OF_LET_PAREN_BEFORE,Sep.FOR_OF_LET_PAREN_AFTER):c,this.sep(Sep.BEFORE_FOROF_OF),this.t("of"),this.sep(Sep.AFTER_FOROF_FOR),this.p(s.right,_coderep.Precedence.Assignment,d)),Sep.FOR_OF_PAREN_BEFORE,Sep.FOR_OF_PAREN_AFTER),this.sep(Sep.BEFORE_FOROF_BODY),_,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:_.endsWithMissingElse})}},{key:"reduceFunctionBody",value:function(s,a){var c=a.directives,d=a.statements;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.statements[0],d[0])),seq.apply(void 0,_toConsumableArray$1(c).concat([c.length?this.sep(Sep.AFTER_FUNCTION_DIRECTIVES):empty$1()],_toConsumableArray$1(d)))}},{key:"reduceFunctionDeclaration",value:function(s,a){var c=a.name,d=a.params,_=a.body;return seq(s.isAsync?this.t("async"):empty$1(),this.t("function"),s.isGenerator?seq(this.sep(Sep.BEFORE_GENERATOR_STAR),this.t("*"),this.sep(Sep.AFTER_GENERATOR_STAR)):empty$1(),this.sep(Sep.BEFORE_FUNCTION_NAME(s)),s.name.name==="*default*"?empty$1():c,this.sep(Sep.BEFORE_FUNCTION_PARAMS),this.paren(d,Sep.PARAMETERS_PAREN_BEFORE,Sep.PARAMETERS_PAREN_AFTER,Sep.PARAMETERS_PAREN_EMPTY),this.sep(Sep.BEFORE_FUNCTION_DECLARATION_BODY),this.brace(_,s,Sep.FUNCTION_BRACE_INITIAL,Sep.FUNCTION_BRACE_FINAL,Sep.FUNCTION_EMPTY),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceFunctionExpression",value:function(s,a){var c=a.name,d=a.params,_=a.body,b=seq(s.isAsync?this.t("async"):empty$1(),this.t("function"),s.isGenerator?seq(this.sep(Sep.BEFORE_GENERATOR_STAR),this.t("*"),this.sep(Sep.AFTER_GENERATOR_STAR)):empty$1(),this.sep(Sep.BEFORE_FUNCTION_NAME(s)),c||empty$1(),this.sep(Sep.BEFORE_FUNCTION_PARAMS),this.paren(d,Sep.PARAMETERS_PAREN_BEFORE,Sep.PARAMETERS_PAREN_AFTER,Sep.PARAMETERS_PAREN_EMPTY),this.sep(Sep.BEFORE_FUNCTION_EXPRESSION_BODY),this.brace(_,s,Sep.FUNCTION_EXPRESSION_BRACE_INITIAL,Sep.FUNCTION_EXPRESSION_BRACE_FINAL,Sep.FUNCTION_EXPRESSION_EMPTY));return b.startsWithFunctionOrClass=!0,b}},{key:"reduceFormalParameters",value:function(s,a){var c=a.items,d=a.rest;return this.commaSep(c.concat(d==null?[]:[seq(this.t("..."),this.sep(Sep.REST),d)]),Sep.PARAMETER_BEFORE_COMMA,Sep.PARAMETER_AFTER_COMMA)}},{key:"reduceArrowExpression",value:function(s,a){var c=a.params,d=a.body;(s.params.rest!=null||s.params.items.length!==1||s.params.items[0].type!=="BindingIdentifier")&&(c=this.paren(c,Sep.ARROW_PARAMETERS_PAREN_BEFORE,Sep.ARROW_PARAMETERS_PAREN_AFTER,Sep.ARROW_PARAMETERS_PAREN_EMPTY));var _=!1;return s.body.type==="FunctionBody"?d=this.brace(d,s,Sep.ARROW_BRACE_INITIAL,Sep.ARROW_BRACE_FINAL,Sep.ARROW_BRACE_EMPTY):d.startsWithCurly?d=this.paren(d,Sep.ARROW_BODY_PAREN_BEFORE,Sep.ARROW_BODY_PAREN_AFTER):d.containsIn&&(_=!0),(0,_objectAssign2.default)(seq(s.isAsync?seq(this.t("async"),this.sep(Sep.BEFORE_ARROW_ASYNC_PARAMS)):empty$1(),c,this.sep(Sep.BEFORE_ARROW),this.t("=>"),this.sep(Sep.AFTER_ARROW),this.p(s.body,_coderep.Precedence.Assignment,d)),{containsIn:_})}},{key:"reduceGetter",value:function(s,a){var c=a.name,d=a.body;return seq(this.t("get"),this.sep(Sep.AFTER_GET),c,this.sep(Sep.BEFORE_GET_PARAMS),this.paren(empty$1(),null,null,Sep.GETTER_PARAMS),this.sep(Sep.BEFORE_GET_BODY),this.brace(d,s,Sep.GET_BRACE_INTIAL,Sep.GET_BRACE_FINAL,Sep.GET_BRACE_EMPTY))}},{key:"reduceIdentifierExpression",value:function(s){var a=this.t(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceIfStatement",value:function(s,a){var c=a.test,d=a.consequent,_=a.alternate;return _&&d.endsWithMissingElse&&(d=this.brace(d,s,Sep.MISSING_ELSE_INTIIAL,Sep.MISSING_ELSE_FINAL,Sep.MISSING_ELSE_EMPTY)),(0,_objectAssign2.default)(seq(this.t("if"),this.sep(Sep.AFTER_IF),this.paren(c,Sep.IF_PAREN_BEFORE,Sep.IF_PAREN_AFTER),this.sep(Sep.AFTER_IF_TEST),d,_?seq(this.sep(Sep.BEFORE_ELSE),this.t("else"),this.sep(Sep.AFTER_ELSE),_):empty$1(),this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:_?_.endsWithMissingElse:!0})}},{key:"reduceImport",value:function(s,a){var c=a.defaultBinding,d=a.namedImports,_=[];return c!=null&&_.push(c),d.length>0&&_.push(this.brace(this.commaSep(d,Sep.NAMED_IMPORT_BEFORE_COMMA,Sep.NAMED_IMPORT_AFTER_COMMA),s,Sep.IMPORT_BRACE_INTIAL,Sep.IMPORT_BRACE_FINAL,Sep.IMPORT_BRACE_EMPTY)),_.length===0?seq(this.t("import"),this.sep(Sep.BEFORE_IMPORT_MODULE),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s))):seq(this.t("import"),this.sep(Sep.BEFORE_IMPORT_BINDINGS),this.commaSep(_,Sep.IMPORT_BEFORE_COMMA,Sep.IMPORT_AFTER_COMMA),this.sep(Sep.AFTER_IMPORT_BINDINGS),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceImportNamespace",value:function(s,a){var c=a.defaultBinding,d=a.namespaceBinding;return seq(this.t("import"),this.sep(Sep.BEFORE_IMPORT_NAMESPACE),c==null?empty$1():seq(c,this.sep(Sep.IMPORT_BEFORE_COMMA),this.t(","),this.sep(Sep.IMPORT_AFTER_COMMA)),this.sep(Sep.BEFORE_IMPORT_STAR),this.t("*"),this.sep(Sep.AFTER_IMPORT_STAR),this.t("as"),this.sep(Sep.AFTER_IMPORT_AS),d,this.sep(Sep.AFTER_NAMESPACE_BINDING),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceImportSpecifier",value:function(s,a){var c=a.binding;return s.name==null?c:seq(this.t(s.name),this.sep(Sep.BEFORE_IMPORT_AS),this.t("as"),this.sep(Sep.AFTER_IMPORT_AS),c)}},{key:"reduceExportAllFrom",value:function(s){return seq(this.t("export"),this.sep(Sep.BEFORE_EXPORT_STAR),this.t("*"),this.sep(Sep.AFTER_EXPORT_STAR),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExportFrom",value:function(s,a){var c=a.namedExports;return seq(this.t("export"),this.sep(Sep.BEFORE_EXPORT_BINDINGS),this.brace(this.commaSep(c,Sep.EXPORTS_BEFORE_COMMA,Sep.EXPORTS_AFTER_COMMA),s,Sep.EXPORT_BRACE_INITIAL,Sep.EXPORT_BRACE_FINAL,Sep.EXPORT_BRACE_EMPTY),this.sep(Sep.AFTER_EXPORT_FROM_BINDINGS),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExportLocals",value:function(s,a){var c=a.namedExports;return seq(this.t("export"),this.sep(Sep.BEFORE_EXPORT_BINDINGS),this.brace(this.commaSep(c,Sep.EXPORTS_BEFORE_COMMA,Sep.EXPORTS_AFTER_COMMA),s,Sep.EXPORT_BRACE_INITIAL,Sep.EXPORT_BRACE_FINAL,Sep.EXPORT_BRACE_EMPTY),this.sep(Sep.AFTER_EXPORT_LOCAL_BINDINGS),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExport",value:function(s,a){var c=a.declaration;switch(s.declaration.type){case"FunctionDeclaration":case"ClassDeclaration":break;default:c=seq(c,this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}return seq(this.t("export"),this.sep(Sep.AFTER_EXPORT),c)}},{key:"reduceExportDefault",value:function(s,a){var c=a.body;switch(c=c.startsWithFunctionOrClass?this.paren(c,Sep.EXPORT_PAREN_BEFORE,Sep.EXPORT_PAREN_AFTER):c,s.body.type){case"FunctionDeclaration":case"ClassDeclaration":return seq(this.t("export"),this.sep(Sep.EXPORT_DEFAULT),this.t("default"),this.sep(Sep.AFTER_EXPORT_DEFAULT),c);default:return seq(this.t("export"),this.sep(Sep.EXPORT_DEFAULT),this.t("default"),this.sep(Sep.AFTER_EXPORT_DEFAULT),this.p(s.body,_coderep.Precedence.Assignment,c),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}}},{key:"reduceExportFromSpecifier",value:function(s){return s.exportedName==null?this.t(s.name):seq(this.t(s.name),this.sep(Sep.BEFORE_EXPORT_AS),this.t("as"),this.sep(Sep.AFTER_EXPORT_AS),this.t(s.exportedName))}},{key:"reduceExportLocalSpecifier",value:function(s,a){var c=a.name;return s.exportedName==null?c:seq(c,this.sep(Sep.BEFORE_EXPORT_AS),this.t("as"),this.sep(Sep.AFTER_EXPORT_AS),this.t(s.exportedName))}},{key:"reduceLabeledStatement",value:function(s,a){var c=a.body;return(0,_objectAssign2.default)(seq(this.t(s.label),this.sep(Sep.BEFORE_LABEL_COLON),this.t(":"),this.sep(Sep.AFTER_LABEL_COLON),c),{endsWithMissingElse:c.endsWithMissingElse})}},{key:"reduceLiteralBooleanExpression",value:function(s){return this.t(s.value.toString())}},{key:"reduceLiteralNullExpression",value:function(){return this.t("null")}},{key:"reduceLiteralInfinityExpression",value:function(){return this.t("2e308")}},{key:"reduceLiteralNumericExpression",value:function(s){return new _coderep.NumberCodeRep(s.value)}},{key:"reduceLiteralRegExpExpression",value:function(s){return this.t("/"+s.pattern+"/"+(s.global?"g":"")+(s.ignoreCase?"i":"")+(s.multiLine?"m":"")+(s.dotAll?"s":"")+(s.unicode?"u":"")+(s.sticky?"y":""),!0)}},{key:"reduceLiteralStringExpression",value:function(s){return this.t((0,_coderep.escapeStringLiteral)(s.value))}},{key:"reduceMethod",value:function(s,a){var c=a.name,d=a.params,_=a.body;return seq(s.isAsync?seq(this.t("async"),this.sep(Sep.AFTER_METHOD_ASYNC)):empty$1(),s.isGenerator?seq(this.t("*"),this.sep(Sep.AFTER_METHOD_GENERATOR_STAR)):empty$1(),c,this.sep(Sep.AFTER_METHOD_NAME),this.paren(d,Sep.PARAMETERS_PAREN_BEFORE,Sep.PARAMETERS_PAREN_AFTER,Sep.PARAMETERS_PAREN_EMPTY),this.sep(Sep.BEFORE_METHOD_BODY),this.brace(_,s,Sep.METHOD_BRACE_INTIAL,Sep.METHOD_BRACE_FINAL,Sep.METHOD_BRACE_EMPTY))}},{key:"reduceModule",value:function(s,a){var c=a.directives,d=a.items;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.items[0],d[0])),seq.apply(void 0,_toConsumableArray$1(c).concat([c.length?this.sep(Sep.AFTER_MODULE_DIRECTIVES):empty$1()],_toConsumableArray$1(d)))}},{key:"reduceNewExpression",value:function(s,a){var c=this,d=a.callee,_=a.arguments,b=_.map(function($,j){return c.p(s.arguments[j],_coderep.Precedence.Assignment,$)}),k=(0,_coderep.getPrecedence)(s.callee)===_coderep.Precedence.Call?this.paren(d,Sep.NEW_CALLEE_PAREN_BEFORE,Sep.NEW_CALLEE_PAREN_AFTER):this.p(s.callee,(0,_coderep.getPrecedence)(s),d);return seq(this.t("new"),this.sep(Sep.AFTER_NEW),k,_.length===0?this.sep(Sep.EMPTY_NEW_CALL):seq(this.sep(Sep.BEFORE_NEW_ARGS),this.paren(this.commaSep(b,Sep.ARGS_BEFORE_COMMA,Sep.ARGS_AFTER_COMMA),Sep.NEW_PAREN_BEFORE,Sep.NEW_PAREN_AFTER,Sep.NEW_PAREN_EMPTY)))}},{key:"reduceNewTargetExpression",value:function(){return seq(this.t("new"),this.sep(Sep.NEW_TARGET_BEFORE_DOT),this.t("."),this.sep(Sep.NEW_TARGET_AFTER_DOT),this.t("target"))}},{key:"reduceObjectExpression",value:function(s,a){var c=a.properties,d=this.brace(this.commaSep(c,Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA),s,Sep.OBJECT_BRACE_INITIAL,Sep.OBJECT_BRACE_FINAL,Sep.OBJECT_EMPTY);return d.startsWithCurly=!0,d}},{key:"reduceUpdateExpression",value:function(s,a){var c=a.operand;return s.isPrefix?this.reduceUnaryExpression.apply(this,arguments):(0,_objectAssign2.default)(seq(this.p(s.operand,_coderep.Precedence.New,c),this.sep(Sep.BEFORE_POSTFIX(s.operator)),this.t(s.operator)),{startsWithCurly:c.startsWithCurly,startsWithLetSquareBracket:c.startsWithLetSquareBracket,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceUnaryExpression",value:function(s,a){var c=a.operand;return seq(this.t(s.operator),this.sep(Sep.UNARY(s.operator)),this.p(s.operand,(0,_coderep.getPrecedence)(s),c))}},{key:"reduceReturnStatement",value:function(s,a){var c=a.expression;return seq(this.t("return"),c?seq(this.sep(Sep.RETURN),c):empty$1(),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceScript",value:function(s,a){var c=a.directives,d=a.statements;return d.length&&(d[0]=this.parenToAvoidBeingDirective(s.statements[0],d[0])),seq.apply(void 0,_toConsumableArray$1(c).concat([c.length?this.sep(Sep.AFTER_SCRIPT_DIRECTIVES):empty$1()],_toConsumableArray$1(d)))}},{key:"reduceSetter",value:function(s,a){var c=a.name,d=a.param,_=a.body;return seq(this.t("set"),this.sep(Sep.AFTER_SET),c,this.sep(Sep.BEFORE_SET_PARAMS),this.paren(d,Sep.SETTER_PARAM_BEFORE,Sep.SETTER_PARAM_AFTER),this.sep(Sep.BEFORE_SET_BODY),this.brace(_,s,Sep.SET_BRACE_INTIIAL,Sep.SET_BRACE_FINAL,Sep.SET_BRACE_EMPTY))}},{key:"reduceShorthandProperty",value:function(s,a){var c=a.name;return c}},{key:"reduceStaticMemberAssignmentTarget",value:function(s,a){var c=a.object,d=seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.BEFORE_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT),this.t("."),this.sep(Sep.AFTER_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT),this.t(s.property));return d.startsWithLet=c.startsWithLet,d.startsWithCurly=c.startsWithCurly,d.startsWithLetSquareBracket=c.startsWithLetSquareBracket,d.startsWithFunctionOrClass=c.startsWithFunctionOrClass,d}},{key:"reduceStaticMemberExpression",value:function(s,a){var c=a.object,d=seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.BEFORE_STATIC_MEMBER_DOT),this.t("."),this.sep(Sep.AFTER_STATIC_MEMBER_DOT),this.t(s.property));return d.startsWithLet=c.startsWithLet,d.startsWithCurly=c.startsWithCurly,d.startsWithLetSquareBracket=c.startsWithLetSquareBracket,d.startsWithFunctionOrClass=c.startsWithFunctionOrClass,d}},{key:"reduceStaticPropertyName",value:function(s){if(_esutils.keyword.isIdentifierNameES6(s.value))return this.t(s.value);var a=parseFloat(s.value);return a>=0&&a.toString()===s.value?new _coderep.NumberCodeRep(a):this.t((0,_coderep.escapeStringLiteral)(s.value))}},{key:"reduceSuper",value:function(){return this.t("super")}},{key:"reduceSwitchCase",value:function(s,a){var c=a.test,d=a.consequent;return seq(this.t("case"),this.sep(Sep.BEFORE_CASE_TEST),c,this.sep(Sep.AFTER_CASE_TEST),this.t(":"),this.sep(Sep.BEFORE_CASE_BODY),seq.apply(void 0,_toConsumableArray$1(d)),this.sep(Sep.AFTER_CASE_BODY))}},{key:"reduceSwitchDefault",value:function(s,a){var c=a.consequent;return seq(this.t("default"),this.sep(Sep.DEFAULT),this.t(":"),this.sep(Sep.BEFORE_CASE_BODY),seq.apply(void 0,_toConsumableArray$1(c)),this.sep(Sep.AFTER_DEFAULT_BODY))}},{key:"reduceSwitchStatement",value:function(s,a){var c=a.discriminant,d=a.cases;return seq(this.t("switch"),this.sep(Sep.BEFORE_SWITCH_DISCRIM),this.paren(c,Sep.SWITCH_DISCRIM_PAREN_BEFORE,Sep.SWITCH_DISCRIM_PAREN_AFTER),this.sep(Sep.BEFORE_SWITCH_BODY),this.brace(seq.apply(void 0,_toConsumableArray$1(d)),s,Sep.SWITCH_BRACE_INTIAL,Sep.SWITCH_BRACE_FINAL,Sep.SWITCH_BRACE_EMPTY),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceSwitchStatementWithDefault",value:function(s,a){var c=a.discriminant,d=a.preDefaultCases,_=a.defaultCase,b=a.postDefaultCases;return seq(this.t("switch"),this.sep(Sep.BEFORE_SWITCH_DISCRIM),this.paren(c,Sep.SWITCH_DISCRIM_PAREN_BEFORE,Sep.SWITCH_DISCRIM_PAREN_AFTER),this.sep(Sep.BEFORE_SWITCH_BODY),this.brace(seq.apply(void 0,_toConsumableArray$1(d).concat([_],_toConsumableArray$1(b))),s,Sep.SWITCH_BRACE_INTIAL,Sep.SWITCH_BRACE_FINAL,Sep.SWITCH_BRACE_EMPTY),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceTemplateExpression",value:function(s,a){var c=a.tag,d=a.elements,_=s.tag==null?empty$1():seq(this.p(s.tag,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.TEMPLATE_TAG));_=seq(_,this.t("`"));for(var b=0,k=s.elements.length;b0&&($+="}"),$+=s.elements[b].rawValue,b=1e3&&o%10===0?(e=o.toString(10),/[eE]/.test(e)?e.replace(/[eE]\+/,"e"):o.toString(10).replace(/0{3,}$/,function(s){return"e"+s.length})):o%1===0?o>1e15&&o<1e20?"0x"+o.toString(16).toUpperCase():o.toString(10).replace(/[eE]\+/,"e"):o.toString(10).replace(/^0\./,".").replace(/[eE]\+/,"e")}tokenStream.TokenStream=function(){function o(){_classCallCheck$1(this,o),this.result="",this.lastNumber=null,this.lastCodePoint=null,this.lastTokenStr="",this.optionalSemi=!1,this.previousWasRegExp=!1,this.partialHtmlComment=!1}return _createClass$1(o,[{key:"putNumber",value:function(s){var a=renderNumber(s);this.put(a),this.lastNumber=a}},{key:"putOptionalSemi",value:function(){this.optionalSemi=!0}},{key:"putRaw",value:function(s){this.result+=s,this.lastTokenStr=s}},{key:"put",value:function(s,a){if(this.optionalSemi&&(this.optionalSemi=!1,s!=="}"&&(this.result+=";",this.lastCodePoint=";",this.previousWasRegExp=!1)),this.lastNumber!==null&&s.length===1&&s==="."){this.result+=needsDoubleDot(this.lastNumber)?"..":".",this.lastNumber=null,this.lastCodePoint=".";return}var c=[].concat(_toConsumableArray(s)).length;if(c>0){this.lastNumber=null;var d=String.fromCodePoint(s.codePointAt(0)),_=this.lastCodePoint;this.lastCodePoint=String.fromCodePoint(s.codePointAt(c-1));var b=this.previousWasRegExp;this.previousWasRegExp=a,_&&((_==="+"||_==="-")&&_===d||isIdentifierPartES6(_)&&isIdentifierPartES6(d)||_==="/"&&d==="/"||b&&d==="i"||this.partialHtmlComment&&s.startsWith("--"))&&(this.result+=" ")}this.partialHtmlComment=this.lastTokenStr.endsWith("<")&&s==="!",this.result+=s,this.lastTokenStr=s}}]),o}();Object.defineProperty(withLocation,"__esModule",{value:!0});var _createClass=function(){function o(e,s){for(var a=0;a1?c-1:0),_=1;_1?c-1:0),_=1;_1?c-1:0),_=1;_1&&arguments[1]!==void 0?arguments[1]:new _minimalCodegen2.default,s=new TokenStreamWithLocation,a=(0,_shiftReducer.reduce)(addLocationToReducer(e),o);return a.emit(s),{source:s.result,locations:s.locations}}(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.codeGenWithLocation=o.SemiOp=o.CommaSep=o.Semi=o.Seq=o.ContainsIn=o.NoIn=o.Brace=o.Bracket=o.Paren=o.NumberCodeRep=o.Token=o.Empty=o.CodeRep=o.escapeStringLiteral=o.getPrecedence=o.Precedence=o.Sep=o.FormattedCodeGen=o.ExtensibleCodeGen=o.MinimalCodeGen=void 0,o.default=j;var e=minimalCodegen;Object.defineProperty(o,"MinimalCodeGen",{enumerable:!0,get:function(){return $(e).default}});var s=formattedCodegen;Object.defineProperty(o,"ExtensibleCodeGen",{enumerable:!0,get:function(){return s.ExtensibleCodeGen}}),Object.defineProperty(o,"FormattedCodeGen",{enumerable:!0,get:function(){return s.FormattedCodeGen}}),Object.defineProperty(o,"Sep",{enumerable:!0,get:function(){return s.Sep}});var a=coderep;Object.defineProperty(o,"Precedence",{enumerable:!0,get:function(){return a.Precedence}}),Object.defineProperty(o,"getPrecedence",{enumerable:!0,get:function(){return a.getPrecedence}}),Object.defineProperty(o,"escapeStringLiteral",{enumerable:!0,get:function(){return a.escapeStringLiteral}}),Object.defineProperty(o,"CodeRep",{enumerable:!0,get:function(){return a.CodeRep}}),Object.defineProperty(o,"Empty",{enumerable:!0,get:function(){return a.Empty}}),Object.defineProperty(o,"Token",{enumerable:!0,get:function(){return a.Token}}),Object.defineProperty(o,"NumberCodeRep",{enumerable:!0,get:function(){return a.NumberCodeRep}}),Object.defineProperty(o,"Paren",{enumerable:!0,get:function(){return a.Paren}}),Object.defineProperty(o,"Bracket",{enumerable:!0,get:function(){return a.Bracket}}),Object.defineProperty(o,"Brace",{enumerable:!0,get:function(){return a.Brace}}),Object.defineProperty(o,"NoIn",{enumerable:!0,get:function(){return a.NoIn}}),Object.defineProperty(o,"ContainsIn",{enumerable:!0,get:function(){return a.ContainsIn}}),Object.defineProperty(o,"Seq",{enumerable:!0,get:function(){return a.Seq}}),Object.defineProperty(o,"Semi",{enumerable:!0,get:function(){return a.Semi}}),Object.defineProperty(o,"CommaSep",{enumerable:!0,get:function(){return a.CommaSep}}),Object.defineProperty(o,"SemiOp",{enumerable:!0,get:function(){return a.SemiOp}});var c=withLocation;Object.defineProperty(o,"codeGenWithLocation",{enumerable:!0,get:function(){return $(c).default}});var d=dist$4,_=$(d),b=tokenStream,k=$(e);function $(_e){return _e&&_e.__esModule?_e:{default:_e}}function j(_e){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new k.default,tt=new b.TokenStream,nt=(0,_.default)(et,_e);return nt.emit(tt),tt.result}})(dist);var shiftCodegen=getDefaultExportFromCjs(dist);const{replace}=estraverse,codegen=shiftCodegen.default||shiftCodegen,{Pattern:Pattern$3}=strudel,isNote=o=>/^[a-gC-G][bs]?[0-9]$/.test(o);var shapeshifter=o=>{const{code:e,addReturn:s}=wrapAsync(o),a=dist$7.parseScriptWithLocation(disguiseImports(e)),c=[],d=[],_=replace(a.tree,{enter(k,$){var tt,nt,st;if(d.push($),d.some(rt=>c.includes(rt)))return k;if(isBackTickString(k))return minifyWithLocation(k,k,a.locations,c);if(((tt=k.directives)==null?void 0:tt.length)===1&&!((nt=k.statements)!=null&&nt.length)){const rt=new LiteralStringExpression_1({value:k.directives[0].rawValue}),it=minifyWithLocation(rt,k.directives[0],a.locations,c);return wt(_t({},k),{directives:[],statements:[it]})}if(isStringWithDoubleQuotes(k,a.locations,e))return minifyWithLocation(k,k,a.locations,c);const _e={"*":"fast","/":"slow","&":"stack","&&":"append"};if(k.type==="BinaryExpression"&&_e[k.operator]&&["LiteralNumericExpression","LiteralStringExpression","IdentifierExpression"].includes((st=k.right)==null?void 0:st.type)&&canBeOverloaded(k.left)){let rt=k.left;return k.left.type==="IdentifierExpression"&&(rt=wrapFunction("reify",k.left)),new CallExpression_1({callee:new StaticMemberExpression_1({property:_e[k.operator],object:wrapFunction("reify",rt)}),arguments:[k.right]})}const et=isPatternArg(d)||hasModifierCall($);if(k.type==="CallExpression"&&k.callee.name==="pure"){const rt=k.arguments[0];return reifyWithLocation(rt,k.arguments[0],a.locations,c)}if(k.type==="IdentifierExpression"){if(isNote(k.name)){const rt=k.name[1]==="s"?k.name.replace("s","#"):k.name;return et?reifyWithLocation(new LiteralStringExpression_1({value:rt}),k,a.locations,c):new LiteralStringExpression_1({value:rt})}if(k.name==="r")return new IdentifierExpression_1({name:"silence"})}return["LiteralStringExpression"].includes(k.type)&&et?reifyWithLocation(k,k,a.locations,c):addMiniNotationLocations(k,a.locations,c)},leave(){d.pop()}});return s(_),undisguiseImports(codegen(_))};function disguiseImports(o){return o.replaceAll("import","_mport")}function undisguiseImports(o){return o.replaceAll("_mport","import")}function wrapAsync(o){return o=`(async () => { ${o} -})()`,{code:o,addReturn:s=>{const a=s.statements[0].expression.callee.body;a.statements=a.statements.slice(0,-1).concat([new ReturnStatement_1({expression:a.statements.slice(-1)[0]})])}}}function addMiniNotationLocations(o,e,s){const a=["mini","m"];if(o.type==="CallExpression"&&a.includes(o.callee.name)){if(o.arguments.length>1)return console.warn("multi arg mini locations not supported yet..."),o;const c=o.arguments[0];return minifyWithLocation(c,c,e,s)}return o.type==="StaticMemberExpression"&&a.includes(o.property)?minifyWithLocation(o.object,o,e,s):o}function wrapFunction(o,...e){return new CallExpression_1({callee:new IdentifierExpression_1({name:o}),arguments:e})}function isBackTickString(o){return o.type==="TemplateExpression"&&o.elements.length===1}function isStringWithDoubleQuotes(o,e,s){if(o.type!=="LiteralStringExpression")return!1;const a=e.get(o);return s.slice(a.start.offset,a.end.offset)[0]==='"'}function isPatternArg(o){if(!o.length)return!1;const e=o.slice(0,-1),s=o[o.length-1];return isPatternFactory(s)?!0:(s==null?void 0:s.type)==="ArrayExpression"?isPatternArg(e):!1}function hasModifierCall(o){return(o==null?void 0:o.type)==="StaticMemberExpression"&&Object.keys(Pattern$3.prototype.composable).includes(o.property)}const factories=Object.keys(Pattern$3.prototype.factories).concat(["mini"]);function isPatternFactory(o){return(o==null?void 0:o.type)==="CallExpression"&&factories.includes(o.callee.name)}function canBeOverloaded(o){return o.type==="IdentifierExpression"&&isNote(o.name)||isPatternFactory(o)}function reifyWithLocation(o,e,s,a){const c=getLocationArguments(e,s),d=new CallExpression_1({callee:new StaticMemberExpression_1({object:wrapFunction("reify",o),property:"withLocation"}),arguments:c});return a.push(d),d}function minifyWithLocation(o,e,s,a){const c=getLocationArguments(e,s),d=wrapFunction("mini",o),_=new CallExpression_1({callee:new StaticMemberExpression_1({object:d,property:"withMiniLocation"}),arguments:c});return a.push(_),_}function getLocationArguments(o,e){const s=e.get(o),a=-1;return[new ArrayExpression_1({elements:[new LiteralNumericExpression_1({value:s.start.line+a}),new LiteralNumericExpression_1({value:s.start.column}),new LiteralNumericExpression_1({value:s.start.offset})]}),new ArrayExpression_1({elements:[new LiteralNumericExpression_1({value:s.end.line+a}),new LiteralNumericExpression_1({value:s.end.column}),new LiteralNumericExpression_1({value:s.end.offset})]})]}const{isPattern,Pattern:Pattern$2}=strudel;let scoped=!1;const evalScope=async(...o)=>{scoped&&console.warn("@strudel.cycles/eval evalScope was called more than once."),scoped=!0;const e=await Promise.allSettled(o),s=e.filter(a=>a.status==="fulfilled").map(a=>a.value);e.forEach((a,c)=>{a.status==="rejected"&&console.warn(`evalScope: module with index ${c} could not be loaded:`,a.reason)}),Object.assign(globalThis,...s,Pattern$2.prototype.bootstrap())};function safeEval(o){return Function('"use strict";return ('+o+")")()}const evaluate=async o=>{scoped||await evalScope();const e=shapeshifter(o);let s=await safeEval(e);if(!isPattern(s)){console.log("evaluated",s);const a=`got "${typeof s}" instead of pattern`;throw new Error(a+(typeof s=="function"?", did you forget to call a function?":"."))}return{mode:"javascript",pattern:s}};let extend="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(o=>o?parseInt(o,36):1);for(let o=1;oo)return extend[e-1]<=o;return!1}function isRegionalIndicator(o){return o>=127462&&o<=127487}const ZWJ=8205;function findClusterBreak(o,e,s=!0,a=!0){return(s?nextClusterBreak:prevClusterBreak)(o,e,a)}function nextClusterBreak(o,e,s){if(e==o.length)return e;e&&surrogateLow(o.charCodeAt(e))&&surrogateHigh(o.charCodeAt(e-1))&&e--;let a=codePointAt(o,e);for(e+=codePointSize(a);e=0&&isRegionalIndicator(codePointAt(o,_));)d++,_-=2;if(d%2==0)break;e+=2}else break}return e}function prevClusterBreak(o,e,s){for(;e>0;){let a=nextClusterBreak(o,e-2,s);if(a=56320&&o<57344}function surrogateHigh(o){return o>=55296&&o<56320}function codePointAt(o,e){let s=o.charCodeAt(e);if(!surrogateHigh(s)||e+1==o.length)return s;let a=o.charCodeAt(e+1);return surrogateLow(a)?(s-55296<<10)+(a-56320)+65536:s}function fromCodePoint(o){return o<=65535?String.fromCharCode(o):(o-=65536,String.fromCharCode((o>>10)+55296,(o&1023)+56320))}function codePointSize(o){return o<65536?1:2}function countColumn(o,e,s=o.length){let a=0;for(let c=0;c=e)return c;if(c==o.length)break;d+=o.charCodeAt(c)==9?s-d%s:1,c=findClusterBreak(o,c)}return a===!0?-1:o.length}class Text{constructor(){}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,s,a){let c=[];return this.decompose(0,e,c,2),a.length&&a.decompose(0,a.length,c,3),this.decompose(s,this.length,c,1),TextNode.from(c,this.length-(s-e)+a.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,s=this.length){let a=[];return this.decompose(e,s,a,0),TextNode.from(a,s-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let s=this.scanIdentical(e,1),a=this.length-this.scanIdentical(e,-1),c=new RawTextCursor(this),d=new RawTextCursor(e);for(let _=s,b=s;;){if(c.next(_),d.next(_),_=0,c.lineBreak!=d.lineBreak||c.done!=d.done||c.value!=d.value)return!1;if(b+=c.value.length,c.done||b>=a)return!0}}iter(e=1){return new RawTextCursor(this,e)}iterRange(e,s=this.length){return new PartialTextCursor(this,e,s)}iterLines(e,s){let a;if(e==null)a=this.iter();else{s==null&&(s=this.lines+1);let c=this.line(e).from;a=this.iterRange(c,Math.max(c,s==this.lines+1?this.length:s<=1?0:this.line(s-1).to))}return new LineCursor(a)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?Text.empty:e.length<=32?new TextLeaf(e):TextNode.from(TextLeaf.split(e,[]))}}class TextLeaf extends Text{constructor(e,s=textLength(e)){super(),this.text=e,this.length=s}get lines(){return this.text.length}get children(){return null}lineInner(e,s,a,c){for(let d=0;;d++){let _=this.text[d],b=c+_.length;if((s?a:b)>=e)return new Line(c,b,a,_);c=b+1,a++}}decompose(e,s,a,c){let d=e<=0&&s>=this.length?this:new TextLeaf(sliceText(this.text,e,s),Math.min(s,this.length)-Math.max(0,e));if(c&1){let _=a.pop(),b=appendText(d.text,_.text.slice(),0,d.length);if(b.length<=32)a.push(new TextLeaf(b,_.length+d.length));else{let k=b.length>>1;a.push(new TextLeaf(b.slice(0,k)),new TextLeaf(b.slice(k)))}}else a.push(d)}replace(e,s,a){if(!(a instanceof TextLeaf))return super.replace(e,s,a);let c=appendText(this.text,appendText(a.text,sliceText(this.text,0,e)),s),d=this.length+a.length-(s-e);return c.length<=32?new TextLeaf(c,d):TextNode.from(TextLeaf.split(c,[]),d)}sliceString(e,s=this.length,a=` +})()`,{code:o,addReturn:s=>{const a=s.statements[0].expression.callee.body;a.statements=a.statements.slice(0,-1).concat([new ReturnStatement_1({expression:a.statements.slice(-1)[0]})])}}}function addMiniNotationLocations(o,e,s){const a=["mini","m"];if(o.type==="CallExpression"&&a.includes(o.callee.name)){if(o.arguments.length>1)return console.warn("multi arg mini locations not supported yet..."),o;const c=o.arguments[0];return minifyWithLocation(c,c,e,s)}return o.type==="StaticMemberExpression"&&a.includes(o.property)?minifyWithLocation(o.object,o,e,s):o}function wrapFunction(o,...e){return new CallExpression_1({callee:new IdentifierExpression_1({name:o}),arguments:e})}function isBackTickString(o){return o.type==="TemplateExpression"&&o.elements.length===1}function isStringWithDoubleQuotes(o,e,s){if(o.type!=="LiteralStringExpression")return!1;const a=e.get(o);return s.slice(a.start.offset,a.end.offset)[0]==='"'}function isPatternArg(o){if(!o.length)return!1;const e=o.slice(0,-1),s=o[o.length-1];return isPatternFactory(s)?!0:(s==null?void 0:s.type)==="ArrayExpression"?isPatternArg(e):!1}function hasModifierCall(o){return(o==null?void 0:o.type)==="StaticMemberExpression"&&Object.keys(Pattern$3.prototype.composable).includes(o.property)}const factories=Object.keys(Pattern$3.prototype.factories).concat(["mini"]);function isPatternFactory(o){return(o==null?void 0:o.type)==="CallExpression"&&factories.includes(o.callee.name)}function canBeOverloaded(o){return o.type==="IdentifierExpression"&&isNote(o.name)||isPatternFactory(o)}function reifyWithLocation(o,e,s,a){const c=getLocationArguments(e,s),d=new CallExpression_1({callee:new StaticMemberExpression_1({object:wrapFunction("reify",o),property:"withLocation"}),arguments:c});return a.push(d),d}function minifyWithLocation(o,e,s,a){const c=getLocationArguments(e,s),d=wrapFunction("mini",o),_=new CallExpression_1({callee:new StaticMemberExpression_1({object:d,property:"withMiniLocation"}),arguments:c});return a.push(_),_}function getLocationArguments(o,e){const s=e.get(o),a=-1;return[new ArrayExpression_1({elements:[new LiteralNumericExpression_1({value:s.start.line+a}),new LiteralNumericExpression_1({value:s.start.column}),new LiteralNumericExpression_1({value:s.start.offset})]}),new ArrayExpression_1({elements:[new LiteralNumericExpression_1({value:s.end.line+a}),new LiteralNumericExpression_1({value:s.end.column}),new LiteralNumericExpression_1({value:s.end.offset})]})]}const{isPattern,Pattern:Pattern$2}=strudel;let scoped=!1;const evalScope=async(...o)=>{scoped&&console.warn("@strudel.cycles/eval evalScope was called more than once."),scoped=!0;const e=await Promise.allSettled(o),s=e.filter(a=>a.status==="fulfilled").map(a=>a.value);e.forEach((a,c)=>{a.status==="rejected"&&console.warn(`evalScope: module with index ${c} could not be loaded:`,a.reason)}),Object.assign(globalThis,...s,Pattern$2.prototype.bootstrap())};function safeEval(o){return Function('"use strict";return ('+o+")")()}const evaluate=async o=>{scoped||await evalScope();const e=shapeshifter(o);let s=await safeEval(e);if(!isPattern(s)){console.log("evaluated",s);const a=`got "${typeof s}" instead of pattern`;throw new Error(a+(typeof s=="function"?", did you forget to call a function?":"."))}return{mode:"javascript",pattern:s}};function _extends(){return _extends=Object.assign?Object.assign.bind():function(o){for(var e=1;e=0)&&(s[c]=o[c]);return s}class Text{constructor(){}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,s,a){let c=[];return this.decompose(0,e,c,2),a.length&&a.decompose(0,a.length,c,3),this.decompose(s,this.length,c,1),TextNode.from(c,this.length-(s-e)+a.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,s=this.length){let a=[];return this.decompose(e,s,a,0),TextNode.from(a,s-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let s=this.scanIdentical(e,1),a=this.length-this.scanIdentical(e,-1),c=new RawTextCursor(this),d=new RawTextCursor(e);for(let _=s,b=s;;){if(c.next(_),d.next(_),_=0,c.lineBreak!=d.lineBreak||c.done!=d.done||c.value!=d.value)return!1;if(b+=c.value.length,c.done||b>=a)return!0}}iter(e=1){return new RawTextCursor(this,e)}iterRange(e,s=this.length){return new PartialTextCursor(this,e,s)}iterLines(e,s){let a;if(e==null)a=this.iter();else{s==null&&(s=this.lines+1);let c=this.line(e).from;a=this.iterRange(c,Math.max(c,s==this.lines+1?this.length:s<=1?0:this.line(s-1).to))}return new LineCursor(a)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?Text.empty:e.length<=32?new TextLeaf(e):TextNode.from(TextLeaf.split(e,[]))}}class TextLeaf extends Text{constructor(e,s=textLength(e)){super(),this.text=e,this.length=s}get lines(){return this.text.length}get children(){return null}lineInner(e,s,a,c){for(let d=0;;d++){let _=this.text[d],b=c+_.length;if((s?a:b)>=e)return new Line(c,b,a,_);c=b+1,a++}}decompose(e,s,a,c){let d=e<=0&&s>=this.length?this:new TextLeaf(sliceText(this.text,e,s),Math.min(s,this.length)-Math.max(0,e));if(c&1){let _=a.pop(),b=appendText(d.text,_.text.slice(),0,d.length);if(b.length<=32)a.push(new TextLeaf(b,_.length+d.length));else{let k=b.length>>1;a.push(new TextLeaf(b.slice(0,k)),new TextLeaf(b.slice(k)))}}else a.push(d)}replace(e,s,a){if(!(a instanceof TextLeaf))return super.replace(e,s,a);let c=appendText(this.text,appendText(a.text,sliceText(this.text,0,e)),s),d=this.length+a.length-(s-e);return c.length<=32?new TextLeaf(c,d):TextNode.from(TextLeaf.split(c,[]),d)}sliceString(e,s=this.length,a=` `){let c="";for(let d=0,_=0;d<=s&&_e&&_&&(c+=a),ed&&(c+=b.slice(Math.max(0,e-d),s-d)),d=k+1}return c}flatten(e){for(let s of this.text)e.push(s)}scanIdentical(){return 0}static split(e,s){let a=[],c=-1;for(let d of e)a.push(d),c+=d.length+1,a.length==32&&(s.push(new TextLeaf(a,c)),a=[],c=-1);return c>-1&&s.push(new TextLeaf(a,c)),s}}class TextNode extends Text{constructor(e,s){super(),this.children=e,this.length=s,this.lines=0;for(let a of e)this.lines+=a.lines}lineInner(e,s,a,c){for(let d=0;;d++){let _=this.children[d],b=c+_.length,k=a+_.lines-1;if((s?k:b)>=e)return _.lineInner(e,s,a,c);c=b+1,a=k+1}}decompose(e,s,a,c){for(let d=0,_=0;_<=s&&d=_){let $=c&((_<=e?1:0)|(k>=s?2:0));_>=e&&k<=s&&!$?a.push(b):b.decompose(e-_,s-_,a,$)}_=k+1}}replace(e,s,a){if(a.lines=d&&s<=b){let k=_.replace(e-d,s-d,a),$=this.lines-_.lines+k.lines;if(k.lines<$>>5-1&&k.lines>$>>5+1){let j=this.children.slice();return j[c]=k,new TextNode(j,this.length-(s-e)+a.length)}return super.replace(d,b,k)}d=b+1}return super.replace(e,s,a)}sliceString(e,s=this.length,a=` -`){let c="";for(let d=0,_=0;de&&d&&(c+=a),e_&&(c+=b.sliceString(e-_,s-_,a)),_=k+1}return c}flatten(e){for(let s of this.children)s.flatten(e)}scanIdentical(e,s){if(!(e instanceof TextNode))return 0;let a=0,[c,d,_,b]=s>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;c+=s,d+=s){if(c==_||d==b)return a;let k=this.children[c],$=e.children[d];if(k!=$)return a+k.scanIdentical($,s);a+=k.length+1}}static from(e,s=e.reduce((a,c)=>a+c.length+1,-1)){let a=0;for(let tt of e)a+=tt.lines;if(a<32){let tt=[];for(let nt of e)nt.flatten(tt);return new TextLeaf(tt,s)}let c=Math.max(32,a>>5),d=c<<1,_=c>>1,b=[],k=0,$=-1,j=[];function _e(tt){let nt;if(tt.lines>d&&tt instanceof TextNode)for(let it of tt.children)_e(it);else tt.lines>_&&(k>_||!k)?(et(),b.push(tt)):tt instanceof TextLeaf&&k&&(nt=j[j.length-1])instanceof TextLeaf&&tt.lines+nt.lines<=32?(k+=tt.lines,$+=tt.length+1,j[j.length-1]=new TextLeaf(nt.text.concat(tt.text),nt.length+1+tt.length)):(k+tt.lines>c&&et(),k+=tt.lines,$+=tt.length+1,j.push(tt))}function et(){k!=0&&(b.push(j.length==1?j[0]:TextNode.from(j,$)),$=-1,k=j.length=0)}for(let tt of e)_e(tt);return et(),b.length==1?b[0]:new TextNode(b,s)}}Text.empty=new TextLeaf([""],0);function textLength(o){let e=-1;for(let s of o)e+=s.length+1;return e}function appendText(o,e,s=0,a=1e9){for(let c=0,d=0,_=!0;d=s&&(k>a&&(b=b.slice(0,a-c)),c0?1:(e instanceof TextLeaf?e.text.length:e.children.length)<<1]}nextInner(e,s){for(this.done=this.lineBreak=!1;;){let a=this.nodes.length-1,c=this.nodes[a],d=this.offsets[a],_=d>>1,b=c instanceof TextLeaf?c.text.length:c.children.length;if(_==(s>0?b:0)){if(a==0)return this.done=!0,this.value="",this;s>0&&this.offsets[a-1]++,this.nodes.pop(),this.offsets.pop()}else if((d&1)==(s>0?0:1)){if(this.offsets[a]+=s,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(c instanceof TextLeaf){let k=c.text[_+(s<0?-1:0)];if(this.offsets[a]+=s,k.length>Math.max(0,e))return this.value=e==0?k:s>0?k.slice(e):k.slice(0,k.length-e),this;e-=k.length}else{let k=c.children[_+(s<0?-1:0)];e>k.length?(e-=k.length,this.offsets[a]+=s):(s<0&&this.offsets[a]--,this.nodes.push(k),this.offsets.push(s>0?1:(k instanceof TextLeaf?k.text.length:k.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class PartialTextCursor{constructor(e,s,a){this.value="",this.done=!1,this.cursor=new RawTextCursor(e,s>a?-1:1),this.pos=s>a?e.length:0,this.from=Math.min(s,a),this.to=Math.max(s,a)}nextInner(e,s){if(s<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,s<0?this.pos-this.to:this.from-this.pos);let a=s<0?this.pos-this.from:this.to-this.pos;e>a&&(e=a),a-=e;let{value:c}=this.cursor.next(e);return this.pos+=(c.length+e)*s,this.value=c.length<=a?c:s<0?c.slice(c.length-a):c.slice(0,a),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class LineCursor{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:s,lineBreak:a,value:c}=this.inner.next(e);return s?(this.done=!0,this.value=""):a?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=c,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol!="undefined"&&(Text.prototype[Symbol.iterator]=function(){return this.iter()},RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this});class Line{constructor(e,s,a,c){this.from=e,this.to=s,this.number=a,this.text=c}get length(){return this.to-this.from}}const DefaultSplit=/\r\n?|\n/;var MapMode=function(o){return o[o.Simple=0]="Simple",o[o.TrackDel=1]="TrackDel",o[o.TrackBefore=2]="TrackBefore",o[o.TrackAfter=3]="TrackAfter",o}(MapMode||(MapMode={}));class ChangeDesc{constructor(e){this.sections=e}get length(){let e=0;for(let s=0;se)return d+(e-c);d+=b}else{if(a!=MapMode.Simple&&$>=e&&(a==MapMode.TrackDel&&ce||a==MapMode.TrackBefore&&ce))return null;if($>e||$==e&&s<0&&!b)return e==c||s<0?d:d+k;d+=k}c=$}if(e>c)throw new RangeError(`Position ${e} is out of range for changeset of length ${c}`);return d}touchesRange(e,s=e){for(let a=0,c=0;a=0&&c<=s&&b>=e)return cs?"cover":!0;c=b}return!1}toString(){let e="";for(let s=0;s=0?":"+c:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(s=>typeof s!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(e)}}class ChangeSet extends ChangeDesc{constructor(e,s){super(e),this.inserted=s}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return iterChanges(this,(s,a,c,d,_)=>e=e.replace(c,c+(a-s),_),!1),e}mapDesc(e,s=!1){return mapSet(this,e,s,!0)}invert(e){let s=this.sections.slice(),a=[];for(let c=0,d=0;c=0){s[c]=b,s[c+1]=_;let k=c>>1;for(;a.length0&&addInsert(a,s,d.text),d.forward(j),b+=j}let $=e[_++];for(;b<$;){if(d.done)break e;let j=Math.min(d.len,$-b);addSection(s,j,-1),addSection(c,j,d.ins==-1?-1:d.off==0?d.ins:0),d.forward(j),b+=j}}return{changes:new ChangeSet(s,a),filtered:new ChangeDesc(c)}}toJSON(){let e=[];for(let s=0;s>1].toJSON()))}return e}static of(e,s,a){let c=[],d=[],_=0,b=null;function k(j=!1){if(!j&&!c.length)return;_et||_e<0||et>s)throw new RangeError(`Invalid change range ${_e} to ${et} (in doc of length ${s})`);let nt=tt?typeof tt=="string"?Text.of(tt.split(a||DefaultSplit)):tt:Text.empty,it=nt.length;if(_e==et&&it==0)return;_e<_&&k(),_e>_&&addSection(c,_e-_,-1),addSection(c,et-_e,it),addInsert(d,c,nt),_=et}}return $(e),k(!b),b}static empty(e){return new ChangeSet(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let s=[],a=[];for(let c=0;cb&&typeof _!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(d.length==1)s.push(d[0],0);else{for(;a.length=0&&s<=0&&s==o[c+1]?o[c]+=e:e==0&&o[c]==0?o[c+1]+=s:a?(o[c]+=e,o[c+1]+=s):o.push(e,s)}function addInsert(o,e,s){if(s.length==0)return;let a=e.length-2>>1;if(a>1])),!(s||_==o.sections.length||o.sections[_+1]<0);)b=o.sections[_++],k=o.sections[_++];e(c,$,d,j,_e),c=$,d=j}}}function mapSet(o,e,s,a=!1){let c=[],d=a?[]:null,_=new SectionIter(o),b=new SectionIter(e);for(let k=0,$=0;;)if(_.ins==-1)k+=_.len,_.next();else if(b.ins==-1&&$=0&&(_.done||$$&&!_.done&&k+_.len<$+b.len;)k+=_.len,_.next();$+=b.len,b.next()}else if(_.ins>=0){let j=0,_e=k+_.len;for(;;)if(b.ins>=0&&$>k&&$+b.len<_e)j+=b.ins,$+=b.len,b.next();else if(b.ins==-1&&$<_e){let et=Math.min(b.len,_e-$);j+=et,b.forward(et),$+=et}else break;addSection(c,j,_.ins),d&&addInsert(d,c,_.text),k=_e,_.next()}else{if(_.done&&b.done)return d?new ChangeSet(c,d):new ChangeDesc(c);throw new Error("Mismatched change set lengths")}}function composeSets(o,e,s=!1){let a=[],c=s?[]:null,d=new SectionIter(o),_=new SectionIter(e);for(let b=!1;;){if(d.done&&_.done)return c?new ChangeSet(a,c):new ChangeDesc(a);if(d.ins==0)addSection(a,d.len,0,b),d.next();else if(_.len==0&&!_.done)addSection(a,0,_.ins,b),c&&addInsert(c,a,_.text),_.next();else{if(d.done||_.done)throw new Error("Mismatched change set lengths");{let k=Math.min(d.len2,_.len),$=a.length;if(d.ins==-1){let j=_.ins==-1?-1:_.off?0:_.ins;addSection(a,k,j,b),c&&j&&addInsert(c,a,_.text)}else _.ins==-1?(addSection(a,d.off?0:d.len,k,b),c&&addInsert(c,a,d.textBit(k))):(addSection(a,d.off?0:d.len,_.off?0:_.ins,b),c&&!_.off&&addInsert(c,a,_.text));b=(d.ins>k||_.ins>=0&&_.len>k)&&(b||a.length>$),d.forward2(k),_.forward(k)}}}}class SectionIter{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return s>=e.length?Text.empty:e[s]}textBit(e){let{inserted:s}=this.set,a=this.i-2>>1;return a>=s.length&&!e?Text.empty:s[a].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class SelectionRange{constructor(e,s,a){this.from=e,this.to=s,this.flags=a}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let e=this.flags&3;return e==3?null:e}get goalColumn(){let e=this.flags>>5;return e==33554431?void 0:e}map(e,s=-1){let a,c;return this.empty?a=c=e.mapPos(this.from,s):(a=e.mapPos(this.from,1),c=e.mapPos(this.to,-1)),a==this.from&&c==this.to?this:new SelectionRange(a,c,this.flags)}extend(e,s=e){if(e<=this.anchor&&s>=this.anchor)return EditorSelection.range(e,s);let a=Math.abs(e-this.anchor)>Math.abs(s-this.anchor)?e:s;return EditorSelection.range(this.anchor,a)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return EditorSelection.range(e.anchor,e.head)}}class EditorSelection{constructor(e,s=0){this.ranges=e,this.mainIndex=s}map(e,s=-1){return e.empty?this:EditorSelection.create(this.ranges.map(a=>a.map(e,s)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let s=0;se.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new EditorSelection(e.ranges.map(s=>SelectionRange.fromJSON(s)),e.main)}static single(e,s=e){return new EditorSelection([EditorSelection.range(e,s)],0)}static create(e,s=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let a=0,c=0;ce?4:0))}}function normalized(o,e=0){let s=o[e];o.sort((a,c)=>a.from-c.from),e=o.indexOf(s);for(let a=1;ac.head?EditorSelection.range(b,_):EditorSelection.range(_,b))}}return new EditorSelection(o,e)}function checkSelection(o,e){for(let s of o.ranges)if(s.to>e)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(e,s,a,c,d){this.combine=e,this.compareInput=s,this.compare=a,this.isStatic=c,this.extensions=d,this.id=nextID++,this.default=e([])}static define(e={}){return new Facet(e.combine||(s=>s),e.compareInput||((s,a)=>s===a),e.compare||(e.combine?(s,a)=>s===a:sameArray$1),!!e.static,e.enables)}of(e){return new FacetProvider([],this,0,e)}compute(e,s){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,1,s)}computeN(e,s){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,2,s)}from(e,s){return s||(s=a=>a),this.compute([e],a=>s(a.field(e)))}}function sameArray$1(o,e){return o==e||o.length==e.length&&o.every((s,a)=>s===e[a])}class FacetProvider{constructor(e,s,a,c){this.dependencies=e,this.facet=s,this.type=a,this.value=c,this.id=nextID++}dynamicSlot(e){var s;let a=this.value,c=this.facet.compareInput,d=this.id,_=e[d]>>1,b=this.type==2,k=!1,$=!1,j=[];for(let _e of this.dependencies)_e=="doc"?k=!0:_e=="selection"?$=!0:(((s=e[_e.id])!==null&&s!==void 0?s:1)&1)==0&&j.push(e[_e.id]);return{create(_e){return _e.values[_]=a(_e),1},update(_e,et){if(k&&et.docChanged||$&&(et.docChanged||et.selection)||j.some(tt=>(ensureAddr(_e,tt)&1)>0)){let tt=a(_e);if(b?!compareArray(tt,_e.values[_],c):!c(tt,_e.values[_]))return _e.values[_]=tt,1}return 0},reconfigure(_e,et){let tt=a(_e),nt=et.config.address[d];if(nt!=null){let it=getAddr(et,nt);if(b?compareArray(tt,it,c):c(tt,it))return _e.values[_]=it,0}return _e.values[_]=tt,1}}}}function compareArray(o,e,s){if(o.length!=e.length)return!1;for(let a=0;ao[k.id]),c=s.map(k=>k.type),d=a.filter(k=>!(k&1)),_=o[e.id]>>1;function b(k){let $=[];for(let j=0;jensureAddr(k,_e)&1))return 0;let j=b(k);return e.compare(j,k.values[_])?0:(k.values[_]=j,1)},reconfigure(k,$){let j=a.some(nt=>ensureAddr(k,nt)&1),_e=$.config.facets[e.id],et=$.facet(e);if(_e&&!j&&sameArray$1(s,_e))return k.values[_]=et,0;let tt=b(k);return e.compare(tt,et)?(k.values[_]=et,0):(k.values[_]=tt,1)}}}const initField=Facet.define({static:!0});class StateField{constructor(e,s,a,c,d){this.id=e,this.createF=s,this.updateF=a,this.compareF=c,this.spec=d,this.provides=void 0}static define(e){let s=new StateField(nextID++,e.create,e.update,e.compare||((a,c)=>a===c),e);return e.provide&&(s.provides=e.provide(s)),s}create(e){let s=e.facet(initField).find(a=>a.field==this);return((s==null?void 0:s.create)||this.createF)(e)}slot(e){let s=e[this.id]>>1;return{create:a=>(a.values[s]=this.create(a),1),update:(a,c)=>{let d=a.values[s],_=this.updateF(d,c);return this.compareF(d,_)?0:(a.values[s]=_,1)},reconfigure:(a,c)=>c.config.address[this.id]!=null?(a.values[s]=c.field(this),0):(a.values[s]=this.create(a),1)}}init(e){return[this,initField.of({field:this,create:e})]}get extension(){return this}}const Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(o){return e=>new PrecExtension(e,o)}const Prec={lowest:prec(Prec_.lowest),low:prec(Prec_.low),default:prec(Prec_.default),high:prec(Prec_.high),highest:prec(Prec_.highest),fallback:prec(Prec_.lowest),extend:prec(Prec_.high),override:prec(Prec_.highest)};class PrecExtension{constructor(e,s){this.inner=e,this.prec=s}}class Compartment{of(e){return new CompartmentInstance(this,e)}reconfigure(e){return Compartment.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class CompartmentInstance{constructor(e,s){this.compartment=e,this.inner=s}}class Configuration{constructor(e,s,a,c,d,_){for(this.base=e,this.compartments=s,this.dynamicSlots=a,this.address=c,this.staticValues=d,this.facets=_,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,s,a){let c=[],d=Object.create(null),_=new Map;for(let et of flatten(e,s,_))et instanceof StateField?c.push(et):(d[et.facet.id]||(d[et.facet.id]=[])).push(et);let b=Object.create(null),k=[],$=[];for(let et of c)b[et.id]=$.length<<1,$.push(tt=>et.slot(tt));let j=a==null?void 0:a.config.facets;for(let et in d){let tt=d[et],nt=tt[0].facet,it=j&&j[et]||[];if(tt.every(rt=>rt.type==0))if(b[nt.id]=k.length<<1|1,sameArray$1(it,tt))k.push(a.facet(nt));else{let rt=nt.combine(tt.map(st=>st.value));k.push(a&&nt.compare(rt,a.facet(nt))?a.facet(nt):rt)}else{for(let rt of tt)rt.type==0?(b[rt.id]=k.length<<1|1,k.push(rt.value)):(b[rt.id]=$.length<<1,$.push(st=>rt.dynamicSlot(st)));b[nt.id]=$.length<<1,$.push(rt=>dynamicFacetSlot(rt,nt,tt))}}let _e=$.map(et=>et(b));return new Configuration(e,_,_e,b,k,d)}}function flatten(o,e,s){let a=[[],[],[],[],[]],c=new Map;function d(_,b){let k=c.get(_);if(k!=null){if(k>=b)return;let $=a[k].indexOf(_);$>-1&&a[k].splice($,1),_ instanceof CompartmentInstance&&s.delete(_.compartment)}if(c.set(_,b),Array.isArray(_))for(let $ of _)d($,b);else if(_ instanceof CompartmentInstance){if(s.has(_.compartment))throw new RangeError("Duplicate use of compartment in extensions");let $=e.get(_.compartment)||_.inner;s.set(_.compartment,$),d($,b)}else if(_ instanceof PrecExtension)d(_.inner,_.prec);else if(_ instanceof StateField)a[b].push(_),_.provides&&d(_.provides,b);else if(_ instanceof FacetProvider)a[b].push(_),_.facet.extensions&&d(_.facet.extensions,b);else{let $=_.extension;if(!$)throw new Error(`Unrecognized extension value in extension set (${_}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);d($,b)}}return d(o,Prec_.default),a.reduce((_,b)=>_.concat(b))}function ensureAddr(o,e){if(e&1)return 2;let s=e>>1,a=o.status[s];if(a==4)throw new Error("Cyclic dependency between fields and/or facets");if(a&2)return a;o.status[s]=4;let c=o.computeSlot(o,o.config.dynamicSlots[s]);return o.status[s]=2|c}function getAddr(o,e){return e&1?o.config.staticValues[e>>1]:o.values[e>>1]}const languageData=Facet.define(),allowMultipleSelections=Facet.define({combine:o=>o.some(e=>e),static:!0}),lineSeparator=Facet.define({combine:o=>o.length?o[0]:void 0,static:!0}),changeFilter=Facet.define(),transactionFilter=Facet.define(),transactionExtender=Facet.define(),readOnly=Facet.define({combine:o=>o.length?o[0]:!1});class Annotation{constructor(e,s){this.type=e,this.value=s}static define(){return new AnnotationType}}class AnnotationType{of(e){return new Annotation(this,e)}}class StateEffectType{constructor(e){this.map=e}of(e){return new StateEffect(this,e)}}class StateEffect{constructor(e,s){this.type=e,this.value=s}map(e){let s=this.type.map(this.value,e);return s===void 0?void 0:s==this.value?this:new StateEffect(this.type,s)}is(e){return this.type==e}static define(e={}){return new StateEffectType(e.map||(s=>s))}static mapEffects(e,s){if(!e.length)return e;let a=[];for(let c of e){let d=c.map(s);d&&a.push(d)}return a}}StateEffect.reconfigure=StateEffect.define();StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(e,s,a,c,d,_){this.startState=e,this.changes=s,this.selection=a,this.effects=c,this.annotations=d,this.scrollIntoView=_,this._doc=null,this._state=null,a&&checkSelection(a,s.newLength),d.some(b=>b.type==Transaction.time)||(this.annotations=d.concat(Transaction.time.of(Date.now())))}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let s of this.annotations)if(s.type==e)return s.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let s=this.annotation(Transaction.userEvent);return!!(s&&(s==e||s.length>e.length&&s.slice(0,e.length)==e&&s[e.length]=="."))}}Transaction.time=Annotation.define();Transaction.userEvent=Annotation.define();Transaction.addToHistory=Annotation.define();Transaction.remote=Annotation.define();function joinRanges(o,e){let s=[];for(let a=0,c=0;;){let d,_;if(a=o[a]))d=o[a++],_=o[a++];else if(c=0;c--){let d=a[c](o);d instanceof Transaction?o=d:Array.isArray(d)&&d.length==1&&d[0]instanceof Transaction?o=d[0]:o=resolveTransaction(e,asArray$1(d),!1)}return o}function extendTransaction(o){let e=o.startState,s=e.facet(transactionExtender),a=o;for(let c=s.length-1;c>=0;c--){let d=s[c](o);d&&Object.keys(d).length&&(a=mergeTransaction(o,resolveTransactionInner(e,d,o.changes.newLength),!0))}return a==o?o:new Transaction(e,o.changes,o.selection,a.effects,a.annotations,a.scrollIntoView)}const none$3=[];function asArray$1(o){return o==null?none$3:Array.isArray(o)?o:[o]}var CharCategory=function(o){return o[o.Word=0]="Word",o[o.Space=1]="Space",o[o.Other=2]="Other",o}(CharCategory||(CharCategory={}));const nonASCIISingleCaseWordChar=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let wordChar;try{wordChar=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(o){}function hasWordChar(o){if(wordChar)return wordChar.test(o);for(let e=0;e"\x80"&&(s.toUpperCase()!=s.toLowerCase()||nonASCIISingleCaseWordChar.test(s)))return!0}return!1}function makeCategorizer(o){return e=>{if(!/\S/.test(e))return CharCategory.Space;if(hasWordChar(e))return CharCategory.Word;for(let s=0;s-1)return CharCategory.Word;return CharCategory.Other}}class EditorState{constructor(e,s,a,c,d,_){this.config=e,this.doc=s,this.selection=a,this.values=c,this.status=e.statusTemplate.slice(),this.computeSlot=d,_&&(_._state=this);for(let b=0;bc.set(k,b)),s=null),c.set(_.value.compartment,_.value.extension)):_.is(StateEffect.reconfigure)?(s=null,a=_.value):_.is(StateEffect.appendConfig)&&(s=null,a=asArray$1(a).concat(_.value));let d;s?d=e.startState.values.slice():(s=Configuration.resolve(a,c,this),d=new EditorState(s,this.doc,this.selection,s.dynamicSlots.map(()=>null),(b,k)=>k.reconfigure(b,this),null).values),new EditorState(s,e.newDoc,e.newSelection,d,(_,b)=>b.update(_,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(s=>({changes:{from:s.from,to:s.to,insert:e},range:EditorSelection.cursor(s.from+e.length)}))}changeByRange(e){let s=this.selection,a=e(s.ranges[0]),c=this.changes(a.changes),d=[a.range],_=asArray$1(a.effects);for(let b=1;b_.spec.fromJSON(b,k)))}return EditorState.create({doc:e.doc,selection:EditorSelection.fromJSON(e.selection),extensions:s.extensions?c.concat([s.extensions]):c})}static create(e={}){let s=Configuration.resolve(e.extensions||[],new Map),a=e.doc instanceof Text?e.doc:Text.of((e.doc||"").split(s.staticFacet(EditorState.lineSeparator)||DefaultSplit)),c=e.selection?e.selection instanceof EditorSelection?e.selection:EditorSelection.single(e.selection.anchor,e.selection.head):EditorSelection.single(0);return checkSelection(c,a.length),s.staticFacet(allowMultipleSelections)||(c=c.asSingle()),new EditorState(s,a,c,s.dynamicSlots.map(()=>null),(d,_)=>_.create(d),null)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||` -`}get readOnly(){return this.facet(readOnly)}phrase(e){for(let s of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(s,e))return s[e];return e}languageDataAt(e,s,a=-1){let c=[];for(let d of this.facet(languageData))for(let _ of d(this,s,a))Object.prototype.hasOwnProperty.call(_,e)&&c.push(_[e]);return c}charCategorizer(e){return makeCategorizer(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:s,from:a,length:c}=this.doc.lineAt(e),d=this.charCategorizer(e),_=e-a,b=e-a;for(;_>0;){let k=findClusterBreak(s,_,!1);if(d(s.slice(k,_))!=CharCategory.Word)break;_=k}for(;bo.length?o[0]:4});EditorState.lineSeparator=lineSeparator;EditorState.readOnly=readOnly;EditorState.phrases=Facet.define();EditorState.languageData=languageData;EditorState.changeFilter=changeFilter;EditorState.transactionFilter=transactionFilter;EditorState.transactionExtender=transactionExtender;Compartment.reconfigure=StateEffect.define();function combineConfig(o,e,s={}){let a={};for(let c of o)for(let d of Object.keys(c)){let _=c[d],b=a[d];if(b===void 0)a[d]=_;else if(!(b===_||_===void 0))if(Object.hasOwnProperty.call(s,d))a[d]=s[d](b,_);else throw new Error("Config merge conflict for field "+d)}for(let c in e)a[c]===void 0&&(a[c]=e[c]);return a}const C="\u037C",COUNT=typeof Symbol=="undefined"?"__"+C:Symbol.for(C),SET=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),top=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{};class StyleModule{constructor(e,s){this.rules=[];let{finish:a}=s||{};function c(_){return/^@/.test(_)?[_]:_.split(/,\s*/)}function d(_,b,k,$){let j=[],_e=/^@(\w+)\b/.exec(_[0]),et=_e&&_e[1]=="keyframes";if(_e&&b==null)return k.push(_[0]+";");for(let tt in b){let nt=b[tt];if(/&/.test(tt))d(tt.split(/,\s*/).map(it=>_.map(rt=>it.replace(/&/,rt))).reduce((it,rt)=>it.concat(rt)),nt,k);else if(nt&&typeof nt=="object"){if(!_e)throw new RangeError("The value of a property ("+tt+") should be a primitive value.");d(c(tt),nt,j,et)}else nt!=null&&j.push(tt.replace(/_.*/,"").replace(/[A-Z]/g,it=>"-"+it.toLowerCase())+": "+nt+";")}(j.length||et)&&k.push((a&&!_e&&!$?_.map(a):_).join(", ")+" {"+j.join(" ")+"}")}for(let _ in e)d(c(_),e[_],this.rules)}getRules(){return this.rules.join(` +`){let c="";for(let d=0,_=0;de&&d&&(c+=a),e_&&(c+=b.sliceString(e-_,s-_,a)),_=k+1}return c}flatten(e){for(let s of this.children)s.flatten(e)}scanIdentical(e,s){if(!(e instanceof TextNode))return 0;let a=0,[c,d,_,b]=s>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;c+=s,d+=s){if(c==_||d==b)return a;let k=this.children[c],$=e.children[d];if(k!=$)return a+k.scanIdentical($,s);a+=k.length+1}}static from(e,s=e.reduce((a,c)=>a+c.length+1,-1)){let a=0;for(let tt of e)a+=tt.lines;if(a<32){let tt=[];for(let nt of e)nt.flatten(tt);return new TextLeaf(tt,s)}let c=Math.max(32,a>>5),d=c<<1,_=c>>1,b=[],k=0,$=-1,j=[];function _e(tt){let nt;if(tt.lines>d&&tt instanceof TextNode)for(let st of tt.children)_e(st);else tt.lines>_&&(k>_||!k)?(et(),b.push(tt)):tt instanceof TextLeaf&&k&&(nt=j[j.length-1])instanceof TextLeaf&&tt.lines+nt.lines<=32?(k+=tt.lines,$+=tt.length+1,j[j.length-1]=new TextLeaf(nt.text.concat(tt.text),nt.length+1+tt.length)):(k+tt.lines>c&&et(),k+=tt.lines,$+=tt.length+1,j.push(tt))}function et(){k!=0&&(b.push(j.length==1?j[0]:TextNode.from(j,$)),$=-1,k=j.length=0)}for(let tt of e)_e(tt);return et(),b.length==1?b[0]:new TextNode(b,s)}}Text.empty=new TextLeaf([""],0);function textLength(o){let e=-1;for(let s of o)e+=s.length+1;return e}function appendText(o,e,s=0,a=1e9){for(let c=0,d=0,_=!0;d=s&&(k>a&&(b=b.slice(0,a-c)),c0?1:(e instanceof TextLeaf?e.text.length:e.children.length)<<1]}nextInner(e,s){for(this.done=this.lineBreak=!1;;){let a=this.nodes.length-1,c=this.nodes[a],d=this.offsets[a],_=d>>1,b=c instanceof TextLeaf?c.text.length:c.children.length;if(_==(s>0?b:0)){if(a==0)return this.done=!0,this.value="",this;s>0&&this.offsets[a-1]++,this.nodes.pop(),this.offsets.pop()}else if((d&1)==(s>0?0:1)){if(this.offsets[a]+=s,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(c instanceof TextLeaf){let k=c.text[_+(s<0?-1:0)];if(this.offsets[a]+=s,k.length>Math.max(0,e))return this.value=e==0?k:s>0?k.slice(e):k.slice(0,k.length-e),this;e-=k.length}else{let k=c.children[_+(s<0?-1:0)];e>k.length?(e-=k.length,this.offsets[a]+=s):(s<0&&this.offsets[a]--,this.nodes.push(k),this.offsets.push(s>0?1:(k instanceof TextLeaf?k.text.length:k.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class PartialTextCursor{constructor(e,s,a){this.value="",this.done=!1,this.cursor=new RawTextCursor(e,s>a?-1:1),this.pos=s>a?e.length:0,this.from=Math.min(s,a),this.to=Math.max(s,a)}nextInner(e,s){if(s<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,s<0?this.pos-this.to:this.from-this.pos);let a=s<0?this.pos-this.from:this.to-this.pos;e>a&&(e=a),a-=e;let{value:c}=this.cursor.next(e);return this.pos+=(c.length+e)*s,this.value=c.length<=a?c:s<0?c.slice(c.length-a):c.slice(0,a),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class LineCursor{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:s,lineBreak:a,value:c}=this.inner.next(e);return s?(this.done=!0,this.value=""):a?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=c,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol!="undefined"&&(Text.prototype[Symbol.iterator]=function(){return this.iter()},RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this});class Line{constructor(e,s,a,c){this.from=e,this.to=s,this.number=a,this.text=c}get length(){return this.to-this.from}}let extend="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(o=>o?parseInt(o,36):1);for(let o=1;oo)return extend[e-1]<=o;return!1}function isRegionalIndicator(o){return o>=127462&&o<=127487}const ZWJ=8205;function findClusterBreak(o,e,s=!0,a=!0){return(s?nextClusterBreak:prevClusterBreak)(o,e,a)}function nextClusterBreak(o,e,s){if(e==o.length)return e;e&&surrogateLow(o.charCodeAt(e))&&surrogateHigh(o.charCodeAt(e-1))&&e--;let a=codePointAt(o,e);for(e+=codePointSize(a);e=0&&isRegionalIndicator(codePointAt(o,_));)d++,_-=2;if(d%2==0)break;e+=2}else break}return e}function prevClusterBreak(o,e,s){for(;e>0;){let a=nextClusterBreak(o,e-2,s);if(a=56320&&o<57344}function surrogateHigh(o){return o>=55296&&o<56320}function codePointAt(o,e){let s=o.charCodeAt(e);if(!surrogateHigh(s)||e+1==o.length)return s;let a=o.charCodeAt(e+1);return surrogateLow(a)?(s-55296<<10)+(a-56320)+65536:s}function fromCodePoint(o){return o<=65535?String.fromCharCode(o):(o-=65536,String.fromCharCode((o>>10)+55296,(o&1023)+56320))}function codePointSize(o){return o<65536?1:2}const DefaultSplit=/\r\n?|\n/;var MapMode=function(o){return o[o.Simple=0]="Simple",o[o.TrackDel=1]="TrackDel",o[o.TrackBefore=2]="TrackBefore",o[o.TrackAfter=3]="TrackAfter",o}(MapMode||(MapMode={}));class ChangeDesc{constructor(e){this.sections=e}get length(){let e=0;for(let s=0;se)return d+(e-c);d+=b}else{if(a!=MapMode.Simple&&$>=e&&(a==MapMode.TrackDel&&ce||a==MapMode.TrackBefore&&ce))return null;if($>e||$==e&&s<0&&!b)return e==c||s<0?d:d+k;d+=k}c=$}if(e>c)throw new RangeError(`Position ${e} is out of range for changeset of length ${c}`);return d}touchesRange(e,s=e){for(let a=0,c=0;a=0&&c<=s&&b>=e)return cs?"cover":!0;c=b}return!1}toString(){let e="";for(let s=0;s=0?":"+c:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(s=>typeof s!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(e)}static create(e){return new ChangeDesc(e)}}class ChangeSet extends ChangeDesc{constructor(e,s){super(e),this.inserted=s}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return iterChanges(this,(s,a,c,d,_)=>e=e.replace(c,c+(a-s),_),!1),e}mapDesc(e,s=!1){return mapSet(this,e,s,!0)}invert(e){let s=this.sections.slice(),a=[];for(let c=0,d=0;c=0){s[c]=b,s[c+1]=_;let k=c>>1;for(;a.length0&&addInsert(a,s,d.text),d.forward(j),b+=j}let $=e[_++];for(;b<$;){if(d.done)break e;let j=Math.min(d.len,$-b);addSection(s,j,-1),addSection(c,j,d.ins==-1?-1:d.off==0?d.ins:0),d.forward(j),b+=j}}return{changes:new ChangeSet(s,a),filtered:ChangeDesc.create(c)}}toJSON(){let e=[];for(let s=0;s>1].toJSON()))}return e}static of(e,s,a){let c=[],d=[],_=0,b=null;function k(j=!1){if(!j&&!c.length)return;_et||_e<0||et>s)throw new RangeError(`Invalid change range ${_e} to ${et} (in doc of length ${s})`);let nt=tt?typeof tt=="string"?Text.of(tt.split(a||DefaultSplit)):tt:Text.empty,st=nt.length;if(_e==et&&st==0)return;_e<_&&k(),_e>_&&addSection(c,_e-_,-1),addSection(c,et-_e,st),addInsert(d,c,nt),_=et}}return $(e),k(!b),b}static empty(e){return new ChangeSet(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let s=[],a=[];for(let c=0;cb&&typeof _!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(d.length==1)s.push(d[0],0);else{for(;a.length=0&&s<=0&&s==o[c+1]?o[c]+=e:e==0&&o[c]==0?o[c+1]+=s:a?(o[c]+=e,o[c+1]+=s):o.push(e,s)}function addInsert(o,e,s){if(s.length==0)return;let a=e.length-2>>1;if(a>1])),!(s||_==o.sections.length||o.sections[_+1]<0);)b=o.sections[_++],k=o.sections[_++];e(c,$,d,j,_e),c=$,d=j}}}function mapSet(o,e,s,a=!1){let c=[],d=a?[]:null,_=new SectionIter(o),b=new SectionIter(e);for(let k=-1;;)if(_.ins==-1&&b.ins==-1){let $=Math.min(_.len,b.len);addSection(c,$,-1),_.forward($),b.forward($)}else if(b.ins>=0&&(_.ins<0||k==_.i||_.off==0&&(b.len<_.len||b.len==_.len&&!s))){let $=b.len;for(addSection(c,b.ins,-1);$;){let j=Math.min(_.len,$);_.ins>=0&&k<_.i&&_.len<=j&&(addSection(c,0,_.ins),d&&addInsert(d,c,_.text),k=_.i),_.forward(j),$-=j}b.next()}else if(_.ins>=0){let $=0,j=_.len;for(;j;)if(b.ins==-1){let _e=Math.min(j,b.len);$+=_e,j-=_e,b.forward(_e)}else if(b.ins==0&&b.lenk||_.ins>=0&&_.len>k)&&(b||a.length>$),d.forward2(k),_.forward(k)}}}}class SectionIter{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return s>=e.length?Text.empty:e[s]}textBit(e){let{inserted:s}=this.set,a=this.i-2>>1;return a>=s.length&&!e?Text.empty:s[a].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class SelectionRange{constructor(e,s,a){this.from=e,this.to=s,this.flags=a}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let e=this.flags&3;return e==3?null:e}get goalColumn(){let e=this.flags>>5;return e==33554431?void 0:e}map(e,s=-1){let a,c;return this.empty?a=c=e.mapPos(this.from,s):(a=e.mapPos(this.from,1),c=e.mapPos(this.to,-1)),a==this.from&&c==this.to?this:new SelectionRange(a,c,this.flags)}extend(e,s=e){if(e<=this.anchor&&s>=this.anchor)return EditorSelection.range(e,s);let a=Math.abs(e-this.anchor)>Math.abs(s-this.anchor)?e:s;return EditorSelection.range(this.anchor,a)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return EditorSelection.range(e.anchor,e.head)}static create(e,s,a){return new SelectionRange(e,s,a)}}class EditorSelection{constructor(e,s){this.ranges=e,this.mainIndex=s}map(e,s=-1){return e.empty?this:EditorSelection.create(this.ranges.map(a=>a.map(e,s)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let s=0;se.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new EditorSelection(e.ranges.map(s=>SelectionRange.fromJSON(s)),e.main)}static single(e,s=e){return new EditorSelection([EditorSelection.range(e,s)],0)}static create(e,s=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let a=0,c=0;ce?4:0))}static normalized(e,s=0){let a=e[s];e.sort((c,d)=>c.from-d.from),s=e.indexOf(a);for(let c=1;cd.head?EditorSelection.range(k,b):EditorSelection.range(b,k))}}return new EditorSelection(e,s)}}function checkSelection(o,e){for(let s of o.ranges)if(s.to>e)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(e,s,a,c,d){this.combine=e,this.compareInput=s,this.compare=a,this.isStatic=c,this.id=nextID++,this.default=e([]),this.extensions=typeof d=="function"?d(this):d}static define(e={}){return new Facet(e.combine||(s=>s),e.compareInput||((s,a)=>s===a),e.compare||(e.combine?(s,a)=>s===a:sameArray$1),!!e.static,e.enables)}of(e){return new FacetProvider([],this,0,e)}compute(e,s){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,1,s)}computeN(e,s){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,2,s)}from(e,s){return s||(s=a=>a),this.compute([e],a=>s(a.field(e)))}}function sameArray$1(o,e){return o==e||o.length==e.length&&o.every((s,a)=>s===e[a])}class FacetProvider{constructor(e,s,a,c){this.dependencies=e,this.facet=s,this.type=a,this.value=c,this.id=nextID++}dynamicSlot(e){var s;let a=this.value,c=this.facet.compareInput,d=this.id,_=e[d]>>1,b=this.type==2,k=!1,$=!1,j=[];for(let _e of this.dependencies)_e=="doc"?k=!0:_e=="selection"?$=!0:(((s=e[_e.id])!==null&&s!==void 0?s:1)&1)==0&&j.push(e[_e.id]);return{create(_e){return _e.values[_]=a(_e),1},update(_e,et){if(k&&et.docChanged||$&&(et.docChanged||et.selection)||ensureAll(_e,j)){let tt=a(_e);if(b?!compareArray(tt,_e.values[_],c):!c(tt,_e.values[_]))return _e.values[_]=tt,1}return 0},reconfigure:(_e,et)=>{let tt=a(_e),nt=et.config.address[d];if(nt!=null){let st=getAddr(et,nt);if(this.dependencies.every(rt=>rt instanceof Facet?et.facet(rt)===_e.facet(rt):rt instanceof StateField?et.field(rt,!1)==_e.field(rt,!1):!0)||(b?compareArray(tt,st,c):c(tt,st)))return _e.values[_]=st,0}return _e.values[_]=tt,1}}}}function compareArray(o,e,s){if(o.length!=e.length)return!1;for(let a=0;ao[k.id]),c=s.map(k=>k.type),d=a.filter(k=>!(k&1)),_=o[e.id]>>1;function b(k){let $=[];for(let j=0;ja===c),e);return e.provide&&(s.provides=e.provide(s)),s}create(e){let s=e.facet(initField).find(a=>a.field==this);return((s==null?void 0:s.create)||this.createF)(e)}slot(e){let s=e[this.id]>>1;return{create:a=>(a.values[s]=this.create(a),1),update:(a,c)=>{let d=a.values[s],_=this.updateF(d,c);return this.compareF(d,_)?0:(a.values[s]=_,1)},reconfigure:(a,c)=>c.config.address[this.id]!=null?(a.values[s]=c.field(this),0):(a.values[s]=this.create(a),1)}}init(e){return[this,initField.of({field:this,create:e})]}get extension(){return this}}const Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(o){return e=>new PrecExtension(e,o)}const Prec={highest:prec(Prec_.highest),high:prec(Prec_.high),default:prec(Prec_.default),low:prec(Prec_.low),lowest:prec(Prec_.lowest)};class PrecExtension{constructor(e,s){this.inner=e,this.prec=s}}class Compartment{of(e){return new CompartmentInstance(this,e)}reconfigure(e){return Compartment.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class CompartmentInstance{constructor(e,s){this.compartment=e,this.inner=s}}class Configuration{constructor(e,s,a,c,d,_){for(this.base=e,this.compartments=s,this.dynamicSlots=a,this.address=c,this.staticValues=d,this.facets=_,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,s,a){let c=[],d=Object.create(null),_=new Map;for(let et of flatten(e,s,_))et instanceof StateField?c.push(et):(d[et.facet.id]||(d[et.facet.id]=[])).push(et);let b=Object.create(null),k=[],$=[];for(let et of c)b[et.id]=$.length<<1,$.push(tt=>et.slot(tt));let j=a==null?void 0:a.config.facets;for(let et in d){let tt=d[et],nt=tt[0].facet,st=j&&j[et]||[];if(tt.every(rt=>rt.type==0))if(b[nt.id]=k.length<<1|1,sameArray$1(st,tt))k.push(a.facet(nt));else{let rt=nt.combine(tt.map(it=>it.value));k.push(a&&nt.compare(rt,a.facet(nt))?a.facet(nt):rt)}else{for(let rt of tt)rt.type==0?(b[rt.id]=k.length<<1|1,k.push(rt.value)):(b[rt.id]=$.length<<1,$.push(it=>rt.dynamicSlot(it)));b[nt.id]=$.length<<1,$.push(rt=>dynamicFacetSlot(rt,nt,tt))}}let _e=$.map(et=>et(b));return new Configuration(e,_,_e,b,k,d)}}function flatten(o,e,s){let a=[[],[],[],[],[]],c=new Map;function d(_,b){let k=c.get(_);if(k!=null){if(k<=b)return;let $=a[k].indexOf(_);$>-1&&a[k].splice($,1),_ instanceof CompartmentInstance&&s.delete(_.compartment)}if(c.set(_,b),Array.isArray(_))for(let $ of _)d($,b);else if(_ instanceof CompartmentInstance){if(s.has(_.compartment))throw new RangeError("Duplicate use of compartment in extensions");let $=e.get(_.compartment)||_.inner;s.set(_.compartment,$),d($,b)}else if(_ instanceof PrecExtension)d(_.inner,_.prec);else if(_ instanceof StateField)a[b].push(_),_.provides&&d(_.provides,b);else if(_ instanceof FacetProvider)a[b].push(_),_.facet.extensions&&d(_.facet.extensions,Prec_.default);else{let $=_.extension;if(!$)throw new Error(`Unrecognized extension value in extension set (${_}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);d($,b)}}return d(o,Prec_.default),a.reduce((_,b)=>_.concat(b))}function ensureAddr(o,e){if(e&1)return 2;let s=e>>1,a=o.status[s];if(a==4)throw new Error("Cyclic dependency between fields and/or facets");if(a&2)return a;o.status[s]=4;let c=o.computeSlot(o,o.config.dynamicSlots[s]);return o.status[s]=2|c}function getAddr(o,e){return e&1?o.config.staticValues[e>>1]:o.values[e>>1]}const languageData=Facet.define(),allowMultipleSelections=Facet.define({combine:o=>o.some(e=>e),static:!0}),lineSeparator=Facet.define({combine:o=>o.length?o[0]:void 0,static:!0}),changeFilter=Facet.define(),transactionFilter=Facet.define(),transactionExtender=Facet.define(),readOnly=Facet.define({combine:o=>o.length?o[0]:!1});class Annotation{constructor(e,s){this.type=e,this.value=s}static define(){return new AnnotationType}}class AnnotationType{of(e){return new Annotation(this,e)}}class StateEffectType{constructor(e){this.map=e}of(e){return new StateEffect(this,e)}}class StateEffect{constructor(e,s){this.type=e,this.value=s}map(e){let s=this.type.map(this.value,e);return s===void 0?void 0:s==this.value?this:new StateEffect(this.type,s)}is(e){return this.type==e}static define(e={}){return new StateEffectType(e.map||(s=>s))}static mapEffects(e,s){if(!e.length)return e;let a=[];for(let c of e){let d=c.map(s);d&&a.push(d)}return a}}StateEffect.reconfigure=StateEffect.define();StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(e,s,a,c,d,_){this.startState=e,this.changes=s,this.selection=a,this.effects=c,this.annotations=d,this.scrollIntoView=_,this._doc=null,this._state=null,a&&checkSelection(a,s.newLength),d.some(b=>b.type==Transaction.time)||(this.annotations=d.concat(Transaction.time.of(Date.now())))}static create(e,s,a,c,d,_){return new Transaction(e,s,a,c,d,_)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let s of this.annotations)if(s.type==e)return s.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let s=this.annotation(Transaction.userEvent);return!!(s&&(s==e||s.length>e.length&&s.slice(0,e.length)==e&&s[e.length]=="."))}}Transaction.time=Annotation.define();Transaction.userEvent=Annotation.define();Transaction.addToHistory=Annotation.define();Transaction.remote=Annotation.define();function joinRanges(o,e){let s=[];for(let a=0,c=0;;){let d,_;if(a=o[a]))d=o[a++],_=o[a++];else if(c=0;c--){let d=a[c](o);d instanceof Transaction?o=d:Array.isArray(d)&&d.length==1&&d[0]instanceof Transaction?o=d[0]:o=resolveTransaction(e,asArray$1(d),!1)}return o}function extendTransaction(o){let e=o.startState,s=e.facet(transactionExtender),a=o;for(let c=s.length-1;c>=0;c--){let d=s[c](o);d&&Object.keys(d).length&&(a=mergeTransaction(o,resolveTransactionInner(e,d,o.changes.newLength),!0))}return a==o?o:Transaction.create(e,o.changes,o.selection,a.effects,a.annotations,a.scrollIntoView)}const none$2=[];function asArray$1(o){return o==null?none$2:Array.isArray(o)?o:[o]}var CharCategory=function(o){return o[o.Word=0]="Word",o[o.Space=1]="Space",o[o.Other=2]="Other",o}(CharCategory||(CharCategory={}));const nonASCIISingleCaseWordChar=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let wordChar;try{wordChar=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(o){}function hasWordChar(o){if(wordChar)return wordChar.test(o);for(let e=0;e"\x80"&&(s.toUpperCase()!=s.toLowerCase()||nonASCIISingleCaseWordChar.test(s)))return!0}return!1}function makeCategorizer(o){return e=>{if(!/\S/.test(e))return CharCategory.Space;if(hasWordChar(e))return CharCategory.Word;for(let s=0;s-1)return CharCategory.Word;return CharCategory.Other}}class EditorState{constructor(e,s,a,c,d,_){this.config=e,this.doc=s,this.selection=a,this.values=c,this.status=e.statusTemplate.slice(),this.computeSlot=d,_&&(_._state=this);for(let b=0;bc.set(k,b)),s=null),c.set(_.value.compartment,_.value.extension)):_.is(StateEffect.reconfigure)?(s=null,a=_.value):_.is(StateEffect.appendConfig)&&(s=null,a=asArray$1(a).concat(_.value));let d;s?d=e.startState.values.slice():(s=Configuration.resolve(a,c,this),d=new EditorState(s,this.doc,this.selection,s.dynamicSlots.map(()=>null),(b,k)=>k.reconfigure(b,this),null).values),new EditorState(s,e.newDoc,e.newSelection,d,(_,b)=>b.update(_,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(s=>({changes:{from:s.from,to:s.to,insert:e},range:EditorSelection.cursor(s.from+e.length)}))}changeByRange(e){let s=this.selection,a=e(s.ranges[0]),c=this.changes(a.changes),d=[a.range],_=asArray$1(a.effects);for(let b=1;b_.spec.fromJSON(b,k)))}}return EditorState.create({doc:e.doc,selection:EditorSelection.fromJSON(e.selection),extensions:s.extensions?c.concat([s.extensions]):c})}static create(e={}){let s=Configuration.resolve(e.extensions||[],new Map),a=e.doc instanceof Text?e.doc:Text.of((e.doc||"").split(s.staticFacet(EditorState.lineSeparator)||DefaultSplit)),c=e.selection?e.selection instanceof EditorSelection?e.selection:EditorSelection.single(e.selection.anchor,e.selection.head):EditorSelection.single(0);return checkSelection(c,a.length),s.staticFacet(allowMultipleSelections)||(c=c.asSingle()),new EditorState(s,a,c,s.dynamicSlots.map(()=>null),(d,_)=>_.create(d),null)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||` +`}get readOnly(){return this.facet(readOnly)}phrase(e,...s){for(let a of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(a,e)){e=a[e];break}return s.length&&(e=e.replace(/\$(\$|\d*)/g,(a,c)=>{if(c=="$")return"$";let d=+(c||1);return!d||d>s.length?a:s[d-1]})),e}languageDataAt(e,s,a=-1){let c=[];for(let d of this.facet(languageData))for(let _ of d(this,s,a))Object.prototype.hasOwnProperty.call(_,e)&&c.push(_[e]);return c}charCategorizer(e){return makeCategorizer(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:s,from:a,length:c}=this.doc.lineAt(e),d=this.charCategorizer(e),_=e-a,b=e-a;for(;_>0;){let k=findClusterBreak(s,_,!1);if(d(s.slice(k,_))!=CharCategory.Word)break;_=k}for(;bo.length?o[0]:4});EditorState.lineSeparator=lineSeparator;EditorState.readOnly=readOnly;EditorState.phrases=Facet.define({compare(o,e){let s=Object.keys(o),a=Object.keys(e);return s.length==a.length&&s.every(c=>o[c]==e[c])}});EditorState.languageData=languageData;EditorState.changeFilter=changeFilter;EditorState.transactionFilter=transactionFilter;EditorState.transactionExtender=transactionExtender;Compartment.reconfigure=StateEffect.define();function combineConfig(o,e,s={}){let a={};for(let c of o)for(let d of Object.keys(c)){let _=c[d],b=a[d];if(b===void 0)a[d]=_;else if(!(b===_||_===void 0))if(Object.hasOwnProperty.call(s,d))a[d]=s[d](b,_);else throw new Error("Config merge conflict for field "+d)}for(let c in e)a[c]===void 0&&(a[c]=e[c]);return a}class RangeValue{eq(e){return this==e}range(e,s=e){return Range$1.create(e,s,this)}}RangeValue.prototype.startSide=RangeValue.prototype.endSide=0;RangeValue.prototype.point=!1;RangeValue.prototype.mapMode=MapMode.TrackDel;class Range$1{constructor(e,s,a){this.from=e,this.to=s,this.value=a}static create(e,s,a){return new Range$1(e,s,a)}}function cmpRange(o,e){return o.from-e.from||o.value.startSide-e.value.startSide}class Chunk{constructor(e,s,a,c){this.from=e,this.to=s,this.value=a,this.maxPoint=c}get length(){return this.to[this.to.length-1]}findIndex(e,s,a,c=0){let d=a?this.to:this.from;for(let _=c,b=d.length;;){if(_==b)return _;let k=_+b>>1,$=d[k]-e||(a?this.value[k].endSide:this.value[k].startSide)-s;if(k==_)return $>=0?_:b;$>=0?b=k:_=k+1}}between(e,s,a,c){for(let d=this.findIndex(s,-1e9,!0),_=this.findIndex(a,1e9,!1,d);d<_;d++)if(c(this.from[d]+e,this.to[d]+e,this.value[d])===!1)return!1}map(e,s){let a=[],c=[],d=[],_=-1,b=-1;for(let k=0;ktt||et==tt&&$.startSide>0&&$.endSide<=0)continue;(tt-et||$.endSide-$.startSide)<0||(_<0&&(_=et),$.point&&(b=Math.max(b,tt-et)),a.push($),c.push(et-_),d.push(tt-_))}return{mapped:a.length?new Chunk(c,d,a,b):null,pos:_}}}class RangeSet{constructor(e,s,a,c){this.chunkPos=e,this.chunk=s,this.nextLayer=a,this.maxPoint=c}static create(e,s,a,c){return new RangeSet(e,s,a,c)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let s of this.chunk)e+=s.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:s=[],sort:a=!1,filterFrom:c=0,filterTo:d=this.length}=e,_=e.filter;if(s.length==0&&!_)return this;if(a&&(s=s.slice().sort(cmpRange)),this.isEmpty)return s.length?RangeSet.of(s):this;let b=new LayerCursor(this,null,-1).goto(0),k=0,$=[],j=new RangeSetBuilder;for(;b.value||k=0){let _e=s[k++];j.addInner(_e.from,_e.to,_e.value)||$.push(_e)}else b.rangeIndex==1&&b.chunkIndexthis.chunkEnd(b.chunkIndex)||db.to||d=d&&e<=d+_.length&&_.between(d,e-d,s-d,a)===!1)return}this.nextLayer.between(e,s,a)}}iter(e=0){return HeapCursor.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,s=0){return HeapCursor.from(e).goto(s)}static compare(e,s,a,c,d=-1){let _=e.filter(_e=>_e.maxPoint>0||!_e.isEmpty&&_e.maxPoint>=d),b=s.filter(_e=>_e.maxPoint>0||!_e.isEmpty&&_e.maxPoint>=d),k=findSharedChunks(_,b,a),$=new SpanCursor(_,k,d),j=new SpanCursor(b,k,d);a.iterGaps((_e,et,tt)=>compare($,_e,j,et,tt,c)),a.empty&&a.length==0&&compare($,0,j,0,0,c)}static eq(e,s,a=0,c){c==null&&(c=1e9);let d=e.filter(j=>!j.isEmpty&&s.indexOf(j)<0),_=s.filter(j=>!j.isEmpty&&e.indexOf(j)<0);if(d.length!=_.length)return!1;if(!d.length)return!0;let b=findSharedChunks(d,_),k=new SpanCursor(d,b,0).goto(a),$=new SpanCursor(_,b,0).goto(a);for(;;){if(k.to!=$.to||!sameValues(k.active,$.active)||k.point&&(!$.point||!k.point.eq($.point)))return!1;if(k.to>c)return!0;k.next(),$.next()}}static spans(e,s,a,c,d=-1){let _=new SpanCursor(e,null,d).goto(s),b=s,k=_.openStart;for(;;){let $=Math.min(_.to,a);if(_.point?(c.point(b,$,_.point,_.activeForPoint(_.to),k,_.pointRank),k=_.openEnd($)+(_.to>$?1:0)):$>b&&(c.span(b,$,_.active,k),k=_.openEnd($)),_.to>a)break;b=_.to,_.next()}return k}static of(e,s=!1){let a=new RangeSetBuilder;for(let c of e instanceof Range$1?[e]:s?lazySort(e):e)a.add(c.from,c.to,c.value);return a.finish()}}RangeSet.empty=new RangeSet([],[],null,-1);function lazySort(o){if(o.length>1)for(let e=o[0],s=1;s0)return o.slice().sort(cmpRange);e=a}return o}RangeSet.empty.nextLayer=RangeSet.empty;class RangeSetBuilder{constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}finishChunk(e){this.chunks.push(new Chunk(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}add(e,s,a){this.addInner(e,s,a)||(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(e,s,a)}addInner(e,s,a){let c=e-this.lastTo||a.startSide-this.last.endSide;if(c<=0&&(e-this.lastFrom||a.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return c<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(s-this.chunkStart),this.last=a,this.lastFrom=e,this.lastTo=s,this.value.push(a),a.point&&(this.maxPoint=Math.max(this.maxPoint,s-e)),!0)}addChunk(e,s){if((e-this.lastTo||s.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,s.maxPoint),this.chunks.push(s),this.chunkPos.push(e);let a=s.value.length-1;return this.last=s.value[a],this.lastFrom=s.from[a]+e,this.lastTo=s.to[a]+e,!0}finish(){return this.finishInner(RangeSet.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let s=RangeSet.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,s}}function findSharedChunks(o,e,s){let a=new Map;for(let d of o)for(let _=0;_=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=a&&c.push(new LayerCursor(_,s,a,d));return c.length==1?c[0]:new HeapCursor(c)}get startSide(){return this.value?this.value.startSide:0}goto(e,s=-1e9){for(let a of this.heap)a.goto(e,s);for(let a=this.heap.length>>1;a>=0;a--)heapBubble(this.heap,a);return this.next(),this}forward(e,s){for(let a of this.heap)a.forward(e,s);for(let a=this.heap.length>>1;a>=0;a--)heapBubble(this.heap,a);(this.to-e||this.value.endSide-s)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),heapBubble(this.heap,0)}}}function heapBubble(o,e){for(let s=o[e];;){let a=(e<<1)+1;if(a>=o.length)break;let c=o[a];if(a+1=0&&(c=o[a+1],a++),s.compare(c)<0)break;o[a]=s,o[e]=c,e=a}}class SpanCursor{constructor(e,s,a){this.minPoint=a,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=HeapCursor.from(e,s,a)}goto(e,s=-1e9){return this.cursor.goto(e,s),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=s,this.openStart=-1,this.next(),this}forward(e,s){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-s)<0;)this.removeActive(this.minActive);this.cursor.forward(e,s)}removeActive(e){remove(this.active,e),remove(this.activeTo,e),remove(this.activeRank,e),this.minActive=findMinIndex(this.active,this.activeTo)}addActive(e){let s=0,{value:a,to:c,rank:d}=this.cursor;for(;s-1&&(this.activeTo[d]-this.cursor.from||this.active[d].endSide-this.cursor.startSide)<0){if(this.activeTo[d]>e){this.to=this.activeTo[d],this.endSide=this.active[d].endSide;break}this.removeActive(d),a&&remove(a,d)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let _=this.cursor.value;if(!_.point)this.addActive(a),this.cursor.frome&&c++,this.cursor.next();else if(s&&this.cursor.to==this.to&&this.cursor.from=0&&!(this.activeRank[a]e||this.activeTo[a]==e&&this.active[a].endSide>=this.point.endSide)&&s.push(this.active[a]);return s.reverse()}openEnd(e){let s=0;for(let a=this.activeTo.length-1;a>=0&&this.activeTo[a]>e;a--)s++;return s}}function compare(o,e,s,a,c,d){o.goto(e),s.goto(a);let _=a+c,b=a,k=a-e;for(;;){let $=o.to+k-s.to||o.endSide-s.endSide,j=$<0?o.to+k:s.to,_e=Math.min(j,_);if(o.point||s.point?o.point&&s.point&&(o.point==s.point||o.point.eq(s.point))&&sameValues(o.activeForPoint(o.to+k),s.activeForPoint(s.to))||d.comparePoint(b,_e,o.point,s.point):_e>b&&!sameValues(o.active,s.active)&&d.compareRange(b,_e,o.active,s.active),j>_)break;b=j,$<=0&&o.next(),$>=0&&s.next()}}function sameValues(o,e){if(o.length!=e.length)return!1;for(let s=0;s=e;a--)o[a+1]=o[a];o[e]=s}function findMinIndex(o,e){let s=-1,a=1e9;for(let c=0;c=e)return c;if(c==o.length)break;d+=o.charCodeAt(c)==9?s-d%s:1,c=findClusterBreak(o,c)}return a===!0?-1:o.length}const C="\u037C",COUNT=typeof Symbol=="undefined"?"__"+C:Symbol.for(C),SET=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),top=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{};class StyleModule{constructor(e,s){this.rules=[];let{finish:a}=s||{};function c(_){return/^@/.test(_)?[_]:_.split(/,\s*/)}function d(_,b,k,$){let j=[],_e=/^@(\w+)\b/.exec(_[0]),et=_e&&_e[1]=="keyframes";if(_e&&b==null)return k.push(_[0]+";");for(let tt in b){let nt=b[tt];if(/&/.test(tt))d(tt.split(/,\s*/).map(st=>_.map(rt=>st.replace(/&/,rt))).reduce((st,rt)=>st.concat(rt)),nt,k);else if(nt&&typeof nt=="object"){if(!_e)throw new RangeError("The value of a property ("+tt+") should be a primitive value.");d(c(tt),nt,j,et)}else nt!=null&&j.push(tt.replace(/_.*/,"").replace(/[A-Z]/g,st=>"-"+st.toLowerCase())+": "+nt+";")}(j.length||et)&&k.push((a&&!_e&&!$?_.map(a):_).join(", ")+" {"+j.join(" ")+"}")}for(let _ in e)d(c(_),e[_],this.rules)}getRules(){return this.rules.join(` `)}static newName(){let e=top[COUNT]||1;return top[COUNT]=e+1,C+e.toString(36)}static mount(e,s){(e[SET]||new StyleSet(e)).mount(Array.isArray(s)?s:[s])}}let adoptedSet=null;class StyleSet{constructor(e){if(!e.head&&e.adoptedStyleSheets&&typeof CSSStyleSheet!="undefined"){if(adoptedSet)return e.adoptedStyleSheets=[adoptedSet.sheet].concat(e.adoptedStyleSheets),e[SET]=adoptedSet;this.sheet=new CSSStyleSheet,e.adoptedStyleSheets=[this.sheet].concat(e.adoptedStyleSheets),adoptedSet=this}else{this.styleTag=(e.ownerDocument||e).createElement("style");let s=e.head||e;s.insertBefore(this.styleTag,s.firstChild)}this.modules=[],e[SET]=this}mount(e){let s=this.sheet,a=0,c=0;for(let d=0;d-1&&(this.modules.splice(b,1),c--,b=-1),b==-1){if(this.modules.splice(c++,0,_),s)for(let k=0;k<_.rules.length;k++)s.insertRule(_.rules[k],a++)}else{for(;c>1,$=d[k]-e||(a?this.value[k].endSide:this.value[k].startSide)-s;if(k==_)return $>=0?_:b;$>=0?b=k:_=k+1}}between(e,s,a,c){for(let d=this.findIndex(s,-1e9,!0),_=this.findIndex(a,1e9,!1,d);d<_;d++)if(c(this.from[d]+e,this.to[d]+e,this.value[d])===!1)return!1}map(e,s){let a=[],c=[],d=[],_=-1,b=-1;for(let k=0;ktt||et==tt&&$.startSide>0&&$.endSide<=0)continue;(tt-et||$.endSide-$.startSide)<0||(_<0&&(_=et),$.point&&(b=Math.max(b,tt-et)),a.push($),c.push(et-_),d.push(tt-_))}return{mapped:a.length?new Chunk(c,d,a,b):null,pos:_}}}class RangeSet{constructor(e,s,a=RangeSet.empty,c){this.chunkPos=e,this.chunk=s,this.nextLayer=a,this.maxPoint=c}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let s of this.chunk)e+=s.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:s=[],sort:a=!1,filterFrom:c=0,filterTo:d=this.length}=e,_=e.filter;if(s.length==0&&!_)return this;if(a&&(s=s.slice().sort(cmpRange)),this.isEmpty)return s.length?RangeSet.of(s):this;let b=new LayerCursor(this,null,-1).goto(0),k=0,$=[],j=new RangeSetBuilder;for(;b.value||k=0){let _e=s[k++];j.addInner(_e.from,_e.to,_e.value)||$.push(_e)}else b.rangeIndex==1&&b.chunkIndexthis.chunkEnd(b.chunkIndex)||db.to||d=d&&e<=d+_.length&&_.between(d,e-d,s-d,a)===!1)return}this.nextLayer.between(e,s,a)}}iter(e=0){return HeapCursor.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,s=0){return HeapCursor.from(e).goto(s)}static compare(e,s,a,c,d=-1){let _=e.filter(_e=>_e.maxPoint>0||!_e.isEmpty&&_e.maxPoint>=d),b=s.filter(_e=>_e.maxPoint>0||!_e.isEmpty&&_e.maxPoint>=d),k=findSharedChunks(_,b,a),$=new SpanCursor(_,k,d),j=new SpanCursor(b,k,d);a.iterGaps((_e,et,tt)=>compare($,_e,j,et,tt,c)),a.empty&&a.length==0&&compare($,0,j,0,0,c)}static eq(e,s,a=0,c){c==null&&(c=1e9);let d=e.filter(j=>!j.isEmpty&&s.indexOf(j)<0),_=s.filter(j=>!j.isEmpty&&e.indexOf(j)<0);if(d.length!=_.length)return!1;if(!d.length)return!0;let b=findSharedChunks(d,_),k=new SpanCursor(d,b,0).goto(a),$=new SpanCursor(_,b,0).goto(a);for(;;){if(k.to!=$.to||!sameValues(k.active,$.active)||k.point&&(!$.point||!k.point.eq($.point)))return!1;if(k.to>c)return!0;k.next(),$.next()}}static spans(e,s,a,c,d=-1){var _;let b=new SpanCursor(e,null,d,(_=c.filterPoint)===null||_===void 0?void 0:_.bind(c)).goto(s),k=s,$=b.openStart;for(;;){let j=Math.min(b.to,a);if(b.point?(c.point(k,j,b.point,b.activeForPoint(b.to),$),$=b.openEnd(j)+(b.to>j?1:0)):j>k&&(c.span(k,j,b.active,$),$=b.openEnd(j)),b.to>a)break;k=b.to,b.next()}return $}static of(e,s=!1){let a=new RangeSetBuilder;for(let c of e instanceof Range$1?[e]:s?lazySort(e):e)a.add(c.from,c.to,c.value);return a.finish()}}RangeSet.empty=new RangeSet([],[],null,-1);function lazySort(o){if(o.length>1)for(let e=o[0],s=1;s0)return o.slice().sort(cmpRange);e=a}return o}RangeSet.empty.nextLayer=RangeSet.empty;class RangeSetBuilder{constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}finishChunk(e){this.chunks.push(new Chunk(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}add(e,s,a){this.addInner(e,s,a)||(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(e,s,a)}addInner(e,s,a){let c=e-this.lastTo||a.startSide-this.last.endSide;if(c<=0&&(e-this.lastFrom||a.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return c<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(s-this.chunkStart),this.last=a,this.lastFrom=e,this.lastTo=s,this.value.push(a),a.point&&(this.maxPoint=Math.max(this.maxPoint,s-e)),!0)}addChunk(e,s){if((e-this.lastTo||s.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,s.maxPoint),this.chunks.push(s),this.chunkPos.push(e);let a=s.value.length-1;return this.last=s.value[a],this.lastFrom=s.from[a]+e,this.lastTo=s.to[a]+e,!0}finish(){return this.finishInner(RangeSet.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let s=new RangeSet(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,s}}function findSharedChunks(o,e,s){let a=new Map;for(let d of o)for(let _=0;_=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=a&&c.push(new LayerCursor(_,s,a,d));return c.length==1?c[0]:new HeapCursor(c)}get startSide(){return this.value?this.value.startSide:0}goto(e,s=-1e9){for(let a of this.heap)a.goto(e,s);for(let a=this.heap.length>>1;a>=0;a--)heapBubble(this.heap,a);return this.next(),this}forward(e,s){for(let a of this.heap)a.forward(e,s);for(let a=this.heap.length>>1;a>=0;a--)heapBubble(this.heap,a);(this.to-e||this.value.endSide-s)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),heapBubble(this.heap,0)}}}function heapBubble(o,e){for(let s=o[e];;){let a=(e<<1)+1;if(a>=o.length)break;let c=o[a];if(a+1=0&&(c=o[a+1],a++),s.compare(c)<0)break;o[a]=s,o[e]=c,e=a}}class SpanCursor{constructor(e,s,a,c=()=>!0){this.minPoint=a,this.filterPoint=c,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=HeapCursor.from(e,s,a)}goto(e,s=-1e9){return this.cursor.goto(e,s),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=s,this.openStart=-1,this.next(),this}forward(e,s){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-s)<0;)this.removeActive(this.minActive);this.cursor.forward(e,s)}removeActive(e){remove(this.active,e),remove(this.activeTo,e),remove(this.activeRank,e),this.minActive=findMinIndex(this.active,this.activeTo)}addActive(e){let s=0,{value:a,to:c,rank:d}=this.cursor;for(;s-1&&(this.activeTo[d]-this.cursor.from||this.active[d].endSide-this.cursor.startSide)<0){if(this.activeTo[d]>e){this.to=this.activeTo[d],this.endSide=this.active[d].endSide;break}this.removeActive(d),a&&remove(a,d)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let _=this.cursor.value;if(!_.point)this.addActive(a),this.cursor.next();else if(s&&this.cursor.to==this.to&&this.cursor.from=0&&!(this.activeRank[a]e||this.activeTo[a]==e&&this.active[a].endSide>=this.point.endSide)&&s.push(this.active[a]);return s.reverse()}openEnd(e){let s=0;for(let a=this.activeTo.length-1;a>=0&&this.activeTo[a]>e;a--)s++;return s}}function compare(o,e,s,a,c,d){o.goto(e),s.goto(a);let _=a+c,b=a,k=a-e;for(;;){let $=o.to+k-s.to||o.endSide-s.endSide,j=$<0?o.to+k:s.to,_e=Math.min(j,_);if(o.point||s.point?o.point&&s.point&&(o.point==s.point||o.point.eq(s.point))&&sameValues(o.activeForPoint(o.to+k),s.activeForPoint(s.to))||d.comparePoint(b,_e,o.point,s.point):_e>b&&!sameValues(o.active,s.active)&&d.compareRange(b,_e,o.active,s.active),j>_)break;b=j,$<=0&&o.next(),$>=0&&s.next()}}function sameValues(o,e){if(o.length!=e.length)return!1;for(let s=0;s=e;a--)o[a+1]=o[a];o[e]=s}function findMinIndex(o,e){let s=-1,a=1e9;for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"',229:"Q"},chrome$1=typeof navigator!="undefined"&&/Chrome\/(\d+)/.exec(navigator.userAgent),safari$1=typeof navigator!="undefined"&&/Apple Computer/.test(navigator.vendor),gecko$1=typeof navigator!="undefined"&&/Gecko\/\d+/.test(navigator.userAgent),mac=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),ie$1=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),brokenModifierNames=chrome$1&&(mac||+chrome$1[1]<57)||gecko$1&&mac;for(var i=0;i<10;i++)base[48+i]=base[96+i]=String(i);for(var i=1;i<=24;i++)base[i+111]="F"+i;for(var i=65;i<=90;i++)base[i]=String.fromCharCode(i+32),shift[i]=String.fromCharCode(i);for(var code in base)shift.hasOwnProperty(code)||(shift[code]=base[code]);function keyName(o){var e=brokenModifierNames&&(o.ctrlKey||o.altKey||o.metaKey)||(safari$1||ie$1)&&o.shiftKey&&o.key&&o.key.length==1,s=!e&&o.key||(o.shiftKey?shift:base)[o.keyCode]||o.key||"Unidentified";return s=="Esc"&&(s="Escape"),s=="Del"&&(s="Delete"),s=="Left"&&(s="ArrowLeft"),s=="Up"&&(s="ArrowUp"),s=="Right"&&(s="ArrowRight"),s=="Down"&&(s="ArrowDown"),s}function getSelection(o){let e;return o.nodeType==11?e=o.getSelection?o:o.ownerDocument:e=o,e.getSelection()}function contains(o,e){return e?o==e||o.contains(e.nodeType!=1?e.parentNode:e):!1}function deepActiveElement(){let o=document.activeElement;for(;o&&o.shadowRoot;)o=o.shadowRoot.activeElement;return o}function hasSelection(o,e){if(!e.anchorNode)return!1;try{return contains(o,e.anchorNode)}catch{return!1}}function clientRectsFor(o){return o.nodeType==3?textRange(o,0,o.nodeValue.length).getClientRects():o.nodeType==1?o.getClientRects():[]}function isEquivalentPosition(o,e,s,a){return s?scanFor(o,e,s,a,-1)||scanFor(o,e,s,a,1):!1}function domIndex(o){for(var e=0;;e++)if(o=o.previousSibling,!o)return e}function scanFor(o,e,s,a,c){for(;;){if(o==s&&e==a)return!0;if(e==(c<0?0:maxOffset(o))){if(o.nodeName=="DIV")return!1;let d=o.parentNode;if(!d||d.nodeType!=1)return!1;e=domIndex(o)+(c<0?0:1),o=d}else if(o.nodeType==1){if(o=o.childNodes[e+(c<0?-1:0)],o.nodeType==1&&o.contentEditable=="false")return!1;e=c<0?maxOffset(o):0}else return!1}}function maxOffset(o){return o.nodeType==3?o.nodeValue.length:o.childNodes.length}const Rect0={left:0,right:0,top:0,bottom:0};function flattenRect(o,e){let s=e?o.left:o.right;return{left:s,right:s,top:o.top,bottom:o.bottom}}function windowRect(o){return{left:0,right:o.innerWidth,top:0,bottom:o.innerHeight}}function scrollRectIntoView(o,e,s,a,c,d,_,b){let k=o.ownerDocument,$=k.defaultView;for(let j=o;j;)if(j.nodeType==1){let _e,et=j==k.body;if(et)_e=windowRect($);else{if(j.scrollHeight<=j.clientHeight&&j.scrollWidth<=j.clientWidth){j=j.parentNode;continue}let it=j.getBoundingClientRect();_e={left:it.left,right:it.left+j.clientWidth,top:it.top,bottom:it.top+j.clientHeight}}let tt=0,nt=0;if(c=="nearest")e.top<_e.top?(nt=-(_e.top-e.top+_),s>0&&e.bottom>_e.bottom+nt&&(nt=e.bottom-_e.bottom+nt+_)):e.bottom>_e.bottom&&(nt=e.bottom-_e.bottom+_,s<0&&e.top-nt<_e.top&&(nt=-(_e.top+nt-e.top+_)));else{let it=e.bottom-e.top,rt=_e.bottom-_e.top;nt=(c=="center"&&it<=rt?e.top+it/2-rt/2:c=="start"||c=="center"&&s<0?e.top-_:e.bottom-rt+_)-_e.top}if(a=="nearest"?e.left<_e.left?(tt=-(_e.left-e.left+d),s>0&&e.right>_e.right+tt&&(tt=e.right-_e.right+tt+d)):e.right>_e.right&&(tt=e.right-_e.right+d,s<0&&e.left<_e.left+tt&&(tt=-(_e.left+tt-e.left+d))):tt=(a=="center"?e.left+(e.right-e.left)/2-(_e.right-_e.left)/2:a=="start"==b?e.left-d:e.right-(_e.right-_e.left)+d)-_e.left,tt||nt)if(et)$.scrollBy(tt,nt);else{if(nt){let it=j.scrollTop;j.scrollTop+=nt,nt=j.scrollTop-it}if(tt){let it=j.scrollLeft;j.scrollLeft+=tt,tt=j.scrollLeft-it}e={left:e.left-tt,top:e.top-nt,right:e.right-tt,bottom:e.bottom-nt}}if(et)break;j=j.assignedSlot||j.parentNode,a=c="nearest"}else if(j.nodeType==11)j=j.host;else break}class DOMSelectionState{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){this.set(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)}set(e,s,a,c){this.anchorNode=e,this.anchorOffset=s,this.focusNode=a,this.focusOffset=c}}let preventScrollSupported=null;function focusPreventScroll(o){if(o.setActive)return o.setActive();if(preventScrollSupported)return o.focus(preventScrollSupported);let e=[];for(let s=o;s&&(e.push(s,s.scrollTop,s.scrollLeft),s!=s.ownerDocument);s=s.parentNode);if(o.focus(preventScrollSupported==null?{get preventScroll(){return preventScrollSupported={preventScroll:!0},!0}}:void 0),!preventScrollSupported){preventScrollSupported=!1;for(let s=0;ss)return _e.domBoundsAround(e,s,$);if(et>=e&&c==-1&&(c=k,d=$),$>s&&_e.dom.parentNode==this.dom){_=k,b=j;break}j=et,$=et+_e.breakAfter}return{from:d,to:b<0?a+this.length:b,startDOM:(c?this.children[c-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:_=0?this.children[_].dom:null}}markDirty(e=!1){this.dirty|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let s=this.parent;s;s=s.parent){if(e&&(s.dirty|=2),s.dirty&1)return;s.dirty|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let s=e.parent;if(!s)return e;e=s}}replaceChildren(e,s,a=noChildren){this.markDirty();for(let c=e;cthis.pos||e==this.pos&&(s>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let a=this.children[--this.i];this.pos-=a.length+a.breakAfter}}}function replaceRange(o,e,s,a,c,d,_,b,k){let{children:$}=o,j=$.length?$[e]:null,_e=d.length?d[d.length-1]:null,et=_e?_e.breakAfter:_;if(!(e==a&&j&&!_&&!et&&d.length<2&&j.merge(s,c,d.length?_e:null,s==0,b,k))){if(a<$.length){let tt=$[a];tt&&c0&&(!_&&d.length&&j.merge(s,j.length,d[0],!1,b,0)?j.breakAfter=d.shift().breakAfter:(s2);var browser={mac:ios$1||/Mac/.test(nav.platform),windows:/Win/.test(nav.platform),linux:/Linux|X11/.test(nav.platform),ie,ie_version:ie_upto10?doc.documentMode||6:ie_11up?+ie_11up[1]:ie_edge?+ie_edge[1]:0,gecko,gecko_version:gecko?+(/Firefox\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,chrome:!!chrome,chrome_version:chrome?+chrome[1]:0,ios:ios$1,android:/Android\b/.test(nav.userAgent),webkit,safari,webkit_version:webkit?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:doc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const MaxJoinLen=256;class TextView extends ContentView{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,s,a){return a&&(!(a instanceof TextView)||this.length-(s-e)+a.length>MaxJoinLen)?!1:(this.text=this.text.slice(0,e)+(a?a.text:"")+this.text.slice(s),this.markDirty(),!0)}split(e){let s=new TextView(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),s}localPosFromDOM(e,s){return e==this.dom?s:s?this.text.length:0}domAtPos(e){return new DOMPos(this.dom,e)}domBoundsAround(e,s,a){return{from:a,to:a+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,s){return textCoords(this.dom,e,s)}}class MarkView extends ContentView{constructor(e,s=[],a=0){super(),this.mark=e,this.children=s,this.length=a;for(let c of s)c.setParent(this)}setAttrs(e){if(clearAttributes(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let s in this.mark.attrs)e.setAttribute(s,this.mark.attrs[s]);return e}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.dirty|=6)}sync(e){this.dom?this.dirty&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e)}merge(e,s,a,c,d,_){return a&&(!(a instanceof MarkView&&a.mark.eq(this.mark))||e&&d<=0||se&&s.push(a=e&&(c=d),a=k,d++}let _=this.length-e;return this.length=e,c>-1&&(this.children.length=c,this.markDirty()),new MarkView(this.mark,s,_)}domAtPos(e){return inlineDOMAtPos(this.dom,this.children,e)}coordsAt(e,s){return coordsInChildren(this,e,s)}}function textCoords(o,e,s){let a=o.nodeValue.length;e>a&&(e=a);let c=e,d=e,_=0;e==0&&s<0||e==a&&s>=0?browser.chrome||browser.gecko||(e?(c--,_=1):(d++,_=-1)):s<0?c--:d++;let b=textRange(o,c,d).getClientRects();if(!b.length)return Rect0;let k=b[(_?_<0:s>=0)?0:b.length-1];return browser.safari&&!_&&k.width==0&&(k=Array.prototype.find.call(b,$=>$.width)||k),_?flattenRect(k,_<0):k||null}class WidgetView extends ContentView{constructor(e,s,a){super(),this.widget=e,this.length=s,this.side=a,this.prevWidget=null}static create(e,s,a){return new(e.customView||WidgetView)(e,s,a)}split(e){let s=WidgetView.create(this.widget,this.length-e,this.side);return this.length-=e,s}sync(){(!this.dom||!this.widget.updateDOM(this.dom))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,s,a,c,d,_){return a&&(!(a instanceof WidgetView)||!this.widget.compare(a.widget)||e>0&&d<=0||s0?a.length-1:0;c=a[d],!(e>0?d==0:d==a.length-1||c.top0?-1:1);return e==0&&s>0||e==this.length&&s<=0?c:flattenRect(c,e==0)}get isEditable(){return!1}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class CompositionView extends WidgetView{domAtPos(e){let{topView:s,text:a}=this.widget;return s?scanCompositionTree(e,0,s,a,(c,d)=>c.domAtPos(d),c=>new DOMPos(a,Math.min(c,a.nodeValue.length))):new DOMPos(a,Math.min(e,a.nodeValue.length))}sync(){this.setDOM(this.widget.toDOM())}localPosFromDOM(e,s){let{topView:a,text:c}=this.widget;return a?posFromDOMInCompositionTree(e,s,a,c):Math.min(s,this.length)}ignoreMutation(){return!1}get overrideDOMText(){return null}coordsAt(e,s){let{topView:a,text:c}=this.widget;return a?scanCompositionTree(e,s,a,c,(d,_,b)=>d.coordsAt(_,b),(d,_)=>textCoords(c,d,_)):textCoords(c,e,s)}destroy(){var e;super.destroy(),(e=this.widget.topView)===null||e===void 0||e.destroy()}get isEditable(){return!0}}function scanCompositionTree(o,e,s,a,c,d){if(s instanceof MarkView){for(let _ of s.children){let b=contains(_.dom,a),k=b?a.nodeValue.length:_.length;if(o0?-1:1);return a&&a.tops.top?{left:s.left,right:s.right,top:a.top,bottom:a.bottom}:s}get overrideDOMText(){return Text.empty}}TextView.prototype.children=WidgetView.prototype.children=WidgetBufferView.prototype.children=noChildren;function inlineSiblingRect(o,e){let s=o.parent,a=s?s.children.indexOf(o):-1;for(;s&&a>=0;)if(e<0?a>0:ac&&s<_&&d.dom.parentNode==o)return d.domAtPos(s-c);if(s<=c)break;c=_}}for(;a>0;a--){let c=e[a-1].dom;if(c.parentNode==o)return DOMPos.after(c)}return new DOMPos(o,0)}function joinInlineInto(o,e,s){let a,{children:c}=o;s>0&&e instanceof MarkView&&c.length&&(a=c[c.length-1])instanceof MarkView&&a.mark.eq(e.mark)?joinInlineInto(a,e.children[0],s-1):(c.push(e),e.setParent(o)),o.length+=e.length}function coordsInChildren(o,e,s){for(let d=0,_=0;_0?k>=e:k>e)&&(e0)){let j=0;if(k==d){if(b.getSide()<=0)continue;j=s=-b.getSide()}let _e=b.coordsAt(Math.max(0,e-d),s);return j&&_e?flattenRect(_e,s<0):_e}d=k}let a=o.dom.lastChild;if(!a)return o.dom.getBoundingClientRect();let c=clientRectsFor(a);return c[c.length-1]||null}function combineAttrs(o,e){for(let s in o)s=="class"&&e.class?e.class+=" "+o.class:s=="style"&&e.style?e.style+=";"+o.style:e[s]=o[s];return e}function attrsEq(o,e){if(o==e)return!0;if(!o||!e)return!1;let s=Object.keys(o),a=Object.keys(e);if(s.length!=a.length)return!1;for(let c of s)if(a.indexOf(c)==-1||o[c]!==e[c])return!1;return!0}function updateAttrs(o,e,s){if(e)for(let a in e)s&&a in s||o.removeAttribute(a);if(s)for(let a in s)e&&e[a]==s[a]||o.setAttribute(a,s[a])}class WidgetType{eq(e){return!1}updateDOM(e){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}ignoreEvent(e){return!0}get customView(){return null}destroy(e){}}var BlockType=function(o){return o[o.Text=0]="Text",o[o.WidgetBefore=1]="WidgetBefore",o[o.WidgetAfter=2]="WidgetAfter",o[o.WidgetRange=3]="WidgetRange",o}(BlockType||(BlockType={}));class Decoration extends RangeValue{constructor(e,s,a,c){super(),this.startSide=e,this.endSide=s,this.widget=a,this.spec=c}get heightRelevant(){return!1}static mark(e){return new MarkDecoration(e)}static widget(e){let s=e.side||0,a=!!e.block;return s+=a?s>0?3e8:-4e8:s>0?1e8:-1e8,new PointDecoration(e,s,s,a,e.widget||null,!1)}static replace(e){let s=!!e.block,a,c;if(e.isBlockGap)a=-5e8,c=4e8;else{let{start:d,end:_}=getInclusive(e,s);a=(d?s?-3e8:-1:5e8)-1,c=(_?s?2e8:1:-6e8)+1}return new PointDecoration(e,a,c,s,e.widget||null,!0)}static line(e){return new LineDecoration(e)}static set(e,s=!1){return RangeSet.of(e,s)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Decoration.none=RangeSet.empty;class MarkDecoration extends Decoration{constructor(e){let{start:s,end:a}=getInclusive(e);super(s?-1:5e8,a?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){return this==e||e instanceof MarkDecoration&&this.tagName==e.tagName&&this.class==e.class&&attrsEq(this.attrs,e.attrs)}range(e,s=e){if(e>=s)throw new RangeError("Mark decorations may not be empty");return super.range(e,s)}}MarkDecoration.prototype.point=!1;class LineDecoration extends Decoration{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof LineDecoration&&attrsEq(this.spec.attributes,e.spec.attributes)}range(e,s=e){if(s!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,s)}}LineDecoration.prototype.mapMode=MapMode.TrackBefore;LineDecoration.prototype.point=!0;class PointDecoration extends Decoration{constructor(e,s,a,c,d,_){super(s,a,d,e),this.block=c,this.isReplace=_,this.mapMode=c?s<=0?MapMode.TrackBefore:MapMode.TrackAfter:MapMode.TrackDel}get type(){return this.startSide=5}eq(e){return e instanceof PointDecoration&&widgetsEq(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,s=e){if(this.isReplace&&(e>s||e==s&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&s!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,s)}}PointDecoration.prototype.point=!0;function getInclusive(o,e=!1){let{inclusiveStart:s,inclusiveEnd:a}=o;return s==null&&(s=o.inclusive),a==null&&(a=o.inclusive),{start:s!=null?s:e,end:a!=null?a:e}}function widgetsEq(o,e){return o==e||!!(o&&e&&o.compare(e))}function addRange(o,e,s,a=0){let c=s.length-1;c>=0&&s[c]+a>=o?s[c]=Math.max(s[c],e):s.push(o,e)}class LineView extends ContentView{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,s,a,c,d,_){if(a){if(!(a instanceof LineView))return!1;this.dom||a.transferDOM(this)}return c&&this.setDeco(a?a.attrs:null),mergeChildrenInto(this,e,s,a?a.children:[],d,_),!0}split(e){let s=new LineView;if(s.breakAfter=this.breakAfter,this.length==0)return s;let{i:a,off:c}=this.childPos(e);c&&(s.append(this.children[a].split(c),0),this.children[a].merge(c,this.children[a].length,null,!1,0,0),a++);for(let d=a;d0&&this.children[a-1].length==0;)this.children[--a].destroy();return this.children.length=a,this.markDirty(),this.length=e,s}transferDOM(e){!this.dom||(e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){attrsEq(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,s){joinInlineInto(this,e,s)}addLineDeco(e){let s=e.spec.attributes,a=e.spec.class;s&&(this.attrs=combineAttrs(s,this.attrs||{})),a&&(this.attrs=combineAttrs({class:a},this.attrs||{}))}domAtPos(e){return inlineDOMAtPos(this.dom,this.children,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.dirty|=6)}sync(e){var s;this.dom?this.dirty&4&&(clearAttributes(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(updateAttrs(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e);let a=this.dom.lastChild;for(;a&&ContentView.get(a)instanceof MarkView;)a=a.lastChild;if(!a||!this.length||a.nodeName!="BR"&&((s=ContentView.get(a))===null||s===void 0?void 0:s.isEditable)==!1&&(!browser.ios||!this.children.some(c=>c instanceof TextView))){let c=document.createElement("BR");c.cmIgnore=!0,this.dom.appendChild(c)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0;for(let s of this.children){if(!(s instanceof TextView))return null;let a=clientRectsFor(s.dom);if(a.length!=1)return null;e+=a[0].width}return{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length}}coordsAt(e,s){return coordsInChildren(this,e,s)}become(e){return!1}get type(){return BlockType.Text}static find(e,s){for(let a=0,c=0;a=s){if(d instanceof LineView)return d;if(_>s)break}c=_+d.breakAfter}return null}}class BlockWidgetView extends ContentView{constructor(e,s,a){super(),this.widget=e,this.length=s,this.type=a,this.breakAfter=0,this.prevWidget=null}merge(e,s,a,c,d,_){return a&&(!(a instanceof BlockWidgetView)||!this.widget.compare(a.widget)||e>0&&d<=0||s0;){if(this.textOff==this.text.length){let{value:d,lineBreak:_,done:b}=this.cursor.next(this.skip);if(this.skip=0,b)throw new Error("Ran out of text content when drawing inline views");if(_){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer([]),this.curLine=null,e--;continue}else this.text=d,this.textOff=0}let c=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(s.slice(0,a)),this.getLine().append(wrapMarks(new TextView(this.text.slice(this.textOff,this.textOff+c)),s),a),this.atCursorPos=!0,this.textOff+=c,e-=c,a=0}}span(e,s,a,c){this.buildText(s-e,a,c),this.pos=s,this.openStart<0&&(this.openStart=c)}point(e,s,a,c,d){let _=s-e;if(a instanceof PointDecoration)if(a.block){let{type:b}=a;b==BlockType.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new BlockWidgetView(a.widget||new NullWidget("div"),_,b))}else{let b=WidgetView.create(a.widget||new NullWidget("span"),_,a.startSide),k=this.atCursorPos&&!b.isEditable&&d<=c.length&&(e0),$=!b.isEditable&&(ethis.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}return!0}static build(e,s,a,c,d){let _=new ContentBuilder(e,s,a,d);return _.openEnd=RangeSet.spans(c,s,a,_),_.openStart<0&&(_.openStart=_.openEnd),_.finish(_.openEnd),_}}function wrapMarks(o,e){for(let s of e)o=new MarkView(s,[o],o.length);return o}class NullWidget extends WidgetType{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}}const none$2=[],clickAddsSelectionRange=Facet.define(),dragMovesSelection$1=Facet.define(),mouseSelectionStyle=Facet.define(),exceptionSink=Facet.define(),updateListener=Facet.define(),inputHandler$1=Facet.define(),scrollTo=StateEffect.define({map:(o,e)=>o.map(e)}),centerOn=StateEffect.define({map:(o,e)=>o.map(e)});class ScrollTarget{constructor(e,s="nearest",a="nearest",c=5,d=5){this.range=e,this.y=s,this.x=a,this.yMargin=c,this.xMargin=d}map(e){return e.empty?this:new ScrollTarget(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}}const scrollIntoView$1=StateEffect.define({map:(o,e)=>o.map(e)});function logException(o,e,s){let a=o.facet(exceptionSink);a.length?a[0](e):window.onerror?window.onerror(String(e),s,void 0,void 0,e):s?console.error(s+":",e):console.error(e)}const editable=Facet.define({combine:o=>o.length?o[0]:!0});class PluginFieldProvider{constructor(e,s){this.field=e,this.get=s}}class PluginField{from(e){return new PluginFieldProvider(this,e)}static define(){return new PluginField}}PluginField.decorations=PluginField.define();PluginField.atomicRanges=PluginField.define();PluginField.scrollMargins=PluginField.define();let nextPluginID=0;const viewPlugin=Facet.define();class ViewPlugin{constructor(e,s,a){this.id=e,this.create=s,this.fields=a,this.extension=viewPlugin.of(this)}static define(e,s){let{eventHandlers:a,provide:c,decorations:d}=s||{},_=[];if(c)for(let b of Array.isArray(c)?c:[c])_.push(b);return a&&_.push(domEventHandlers.from(b=>({plugin:b,handlers:a}))),d&&_.push(PluginField.decorations.from(d)),new ViewPlugin(nextPluginID++,e,_)}static fromClass(e,s){return ViewPlugin.define(a=>new e(a),s)}}const domEventHandlers=PluginField.define();class PluginInstance{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}takeField(e,s){if(this.spec)for(let{field:a,get:c}of this.spec.fields)a==e&&s.push(c(this.value))}update(e){if(this.value){if(this.mustUpdate){let s=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(s)}catch(a){if(logException(s.state,a,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(s){logException(e.state,s,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var s;if(!((s=this.value)===null||s===void 0)&&s.destroy)try{this.value.destroy()}catch(a){logException(e.state,a,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const editorAttributes=Facet.define(),contentAttributes=Facet.define(),decorations=Facet.define(),styleModule=Facet.define();class ChangedRange{constructor(e,s,a,c){this.fromA=e,this.toA=s,this.fromB=a,this.toB=c}join(e){return new ChangedRange(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let s=e.length,a=this;for(;s>0;s--){let c=e[s-1];if(!(c.fromA>a.toA)){if(c.toAj)break;d+=2}if(!k)return a;new ChangedRange(k.fromA,k.toA,k.fromB,k.toB).addToSet(a),_=k.toA,b=k.toB}}}class ViewUpdate{constructor(e,s,a=none$2){this.view=e,this.state=s,this.transactions=a,this.flags=0,this.startState=e.state,this.changes=ChangeSet.empty(this.startState.doc.length);for(let _ of a)this.changes=this.changes.compose(_.changes);let c=[];this.changes.iterChangedRanges((_,b,k,$)=>c.push(new ChangedRange(_,b,k,$))),this.changedRanges=c;let d=e.hasFocus;d!=e.inputState.notifiedFocused&&(e.inputState.notifiedFocused=d,this.flags|=1)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}var Direction=function(o){return o[o.LTR=0]="LTR",o[o.RTL=1]="RTL",o}(Direction||(Direction={}));const LTR=Direction.LTR,RTL=Direction.RTL;function dec(o){let e=[];for(let s=0;s=s){if(b.level==a)return _;(d<0||(c!=0?c<0?b.froms:e[d].level>b.level))&&(d=_)}}if(d<0)throw new RangeError("Index out of range");return d}}const types=[];function computeOrder(o,e){let s=o.length,a=e==LTR?1:2,c=e==LTR?2:1;if(!o||a==1&&!BidiRE.test(o))return trivialOrder(s);for(let _=0,b=a,k=a;_=0;et-=3)if(BracketStack[et+1]==-j){let tt=BracketStack[et+2],nt=tt&2?a:tt&4?tt&1?c:a:0;nt&&(types[_]=types[BracketStack[et]]=nt),b=et;break}}else{if(BracketStack.length==189)break;BracketStack[b++]=_,BracketStack[b++]=$,BracketStack[b++]=k}else if((_e=types[_])==2||_e==1){let et=_e==a;k=et?0:1;for(let tt=b-3;tt>=0;tt-=3){let nt=BracketStack[tt+2];if(nt&2)break;if(et)BracketStack[tt+2]|=2;else{if(nt&4)break;BracketStack[tt+2]|=4}}}for(let _=0;_b;){let j=$,_e=types[--$]!=2;for(;$>b&&_e==(types[$-1]!=2);)$--;d.push(new BidiSpan($,j,_e?2:1))}else d.push(new BidiSpan(b,_,0))}else for(let _=0;_1)for(let k of this.points)k.node==e&&k.pos>this.text.length&&(k.pos-=_-1);a=d+_}}readNode(e){if(e.cmIgnore)return;let s=ContentView.get(e),a=s&&s.overrideDOMText;if(a!=null){this.findPointInside(e,a.length);for(let c=a.iter();!c.next().done;)c.lineBreak?this.lineBreak():this.append(c.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,s){for(let a of this.points)a.node==e&&e.childNodes[a.offset]==s&&(a.pos=this.text.length)}findPointInside(e,s){for(let a of this.points)(e.nodeType==3?a.node==e:e.contains(a.node))&&(a.pos=this.text.length+Math.min(s,a.offset))}}function isBlockElement(o){return o.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(o.nodeName)}class DOMPoint{constructor(e,s){this.node=e,this.offset=s,this.pos=-1}}class DocView extends ContentView{constructor(e){super(),this.view=e,this.compositionDeco=Decoration.none,this.decorations=[],this.pluginDecorationLength=0,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new LineView],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new ChangedRange(0,0,0,e.state.doc.length)],0)}get root(){return this.view.root}get editorView(){return this.view}get length(){return this.view.state.doc.length}update(e){let s=e.changedRanges;this.minWidth>0&&s.length&&(s.every(({fromA:_,toA:b})=>bthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.view.inputState.composing<0?this.compositionDeco=Decoration.none:(e.transactions.length||this.dirty)&&(this.compositionDeco=computeCompositionDeco(this.view,e.changes)),(browser.ie||browser.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let a=this.decorations,c=this.updateDeco(),d=findChangedDeco(a,c,e.changes);return s=ChangedRange.extendWithRanges(s,d),this.dirty==0&&s.length==0?!1:(this.updateInner(s,e.startState.doc.length),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,s){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,s);let{observer:a}=this.view;a.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.minWidth=this.minWidth?this.minWidth+"px":"";let d=browser.chrome||browser.ios?{node:a.selectionRange.focusNode,written:!1}:void 0;this.sync(d),this.dirty=0,d&&(d.written||a.selectionRange.focusNode!=d.node)&&(this.forceSelection=!0),this.dom.style.height=""});let c=[];if(this.view.viewport.from||this.view.viewport.to=0?e[c]:null;if(!d)break;let{fromA:_,toA:b,fromB:k,toB:$}=d,{content:j,breakAtStart:_e,openStart:et,openEnd:tt}=ContentBuilder.build(this.view.state.doc,k,$,this.decorations,this.pluginDecorationLength),{i:nt,off:it}=a.findPos(b,1),{i:rt,off:st}=a.findPos(_,-1);replaceRange(this,rt,st,nt,it,j,_e,et,tt)}}updateSelection(e=!1,s=!1){if(e&&this.view.observer.readSelectionRange(),!(s||this.mayControlSelection())||browser.ios&&this.view.inputState.rapidCompositionStart)return;let a=this.forceSelection;this.forceSelection=!1;let c=this.view.state.selection.main,d=this.domAtPos(c.anchor),_=c.empty?d:this.domAtPos(c.head);if(browser.gecko&&c.empty&&betweenUneditable(d)){let k=document.createTextNode("");this.view.observer.ignore(()=>d.node.insertBefore(k,d.node.childNodes[d.offset]||null)),d=_=new DOMPos(k,0),a=!0}let b=this.view.observer.selectionRange;(a||!b.focusNode||!isEquivalentPosition(d.node,d.offset,b.anchorNode,b.anchorOffset)||!isEquivalentPosition(_.node,_.offset,b.focusNode,b.focusOffset))&&(this.view.observer.ignore(()=>{browser.android&&browser.chrome&&this.dom.contains(b.focusNode)&&inUneditable(b.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let k=getSelection(this.root);if(c.empty){if(browser.gecko){let $=nextToUneditable(d.node,d.offset);if($&&$!=3){let j=nearbyTextNode(d.node,d.offset,$==1?1:-1);j&&(d=new DOMPos(j,$==1?0:j.nodeValue.length))}}k.collapse(d.node,d.offset),c.bidiLevel!=null&&b.cursorBidiLevel!=null&&(b.cursorBidiLevel=c.bidiLevel)}else if(k.extend)k.collapse(d.node,d.offset),k.extend(_.node,_.offset);else{let $=document.createRange();c.anchor>c.head&&([d,_]=[_,d]),$.setEnd(_.node,_.offset),$.setStart(d.node,d.offset),k.removeAllRanges(),k.addRange($)}}),this.view.observer.setSelectionRange(d,_)),this.impreciseAnchor=d.precise?null:new DOMPos(b.anchorNode,b.anchorOffset),this.impreciseHead=_.precise?null:new DOMPos(b.focusNode,b.focusOffset)}enforceCursorAssoc(){if(this.compositionDeco.size)return;let e=this.view.state.selection.main,s=getSelection(this.root);if(!e.empty||!e.assoc||!s.modify)return;let a=LineView.find(this,e.head);if(!a)return;let c=a.posAtStart;if(e.head==c||e.head==c+a.length)return;let d=this.coordsAt(e.head,-1),_=this.coordsAt(e.head,1);if(!d||!_||d.bottom>_.top)return;let b=this.domAtPos(e.head+e.assoc);s.collapse(b.node,b.offset),s.modify("move",e.assoc<0?"forward":"backward","lineboundary")}mayControlSelection(){return this.view.state.facet(editable)?this.root.activeElement==this.dom:hasSelection(this.dom,this.view.observer.selectionRange)}nearest(e){for(let s=e;s;){let a=ContentView.get(s);if(a&&a.rootView==this)return a;s=s.parentNode}return null}posFromDOM(e,s){let a=this.nearest(e);if(!a)throw new RangeError("Trying to find position for a DOM position outside of the document");return a.localPosFromDOM(e,s)+a.posAtStart}domAtPos(e){let{i:s,off:a}=this.childCursor().findPos(e,-1);for(;s_||e==_&&d.type!=BlockType.WidgetBefore&&d.type!=BlockType.WidgetAfter&&(!c||s==2||this.children[c-1].breakAfter||this.children[c-1].type==BlockType.WidgetBefore&&s>-2))return d.coordsAt(e-_,s);a=_}}measureVisibleLineHeights(){let e=[],{from:s,to:a}=this.view.viewState.viewport,c=this.view.contentDOM.clientWidth,d=c>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,_=-1;for(let b=0,k=0;ka)break;if(b>=s){let _e=$.dom.getBoundingClientRect();if(e.push(_e.height),d){let et=$.dom.lastChild,tt=et?clientRectsFor(et):[];if(tt.length){let nt=tt[tt.length-1],it=this.view.textDirection==Direction.LTR?nt.right-_e.left:_e.right-nt.left;it>_&&(_=it,this.minWidth=c,this.minWidthFrom=b,this.minWidthTo=j)}}}b=j+$.breakAfter}return e}measureTextSize(){for(let c of this.children)if(c instanceof LineView){let d=c.measureTextSize();if(d)return d}let e=document.createElement("div"),s,a;return e.className="cm-line",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let c=clientRectsFor(e.firstChild)[0];s=e.getBoundingClientRect().height,a=c?c.width/27:7,e.remove()}),{lineHeight:s,charWidth:a}}childCursor(e=this.length){let s=this.children.length;return s&&(e-=this.children[--s].length),new ChildCursor(this.children,e,s)}computeBlockGapDeco(){let e=[],s=this.view.viewState;for(let a=0,c=0;;c++){let d=c==s.viewports.length?null:s.viewports[c],_=d?d.from-1:this.length;if(_>a){let b=s.lineBlockAt(_).bottom-s.lineBlockAt(a).top;e.push(Decoration.replace({widget:new BlockGapWidget(b),block:!0,inclusive:!0,isBlockGap:!0}).range(a,_))}if(!d)break;a=d.to+1}return Decoration.set(e)}updateDeco(){let e=this.view.pluginField(PluginField.decorations);return this.pluginDecorationLength=e.length,this.decorations=[...e,...this.view.state.facet(decorations),this.compositionDeco,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco]}scrollIntoView(e){let{range:s}=e,a=this.coordsAt(s.head,s.empty?s.assoc:s.head>s.anchor?-1:1),c;if(!a)return;!s.empty&&(c=this.coordsAt(s.anchor,s.anchor>s.head?-1:1))&&(a={left:Math.min(a.left,c.left),top:Math.min(a.top,c.top),right:Math.max(a.right,c.right),bottom:Math.max(a.bottom,c.bottom)});let d=0,_=0,b=0,k=0;for(let j of this.view.pluginField(PluginField.scrollMargins))if(j){let{left:_e,right:et,top:tt,bottom:nt}=j;_e!=null&&(d=Math.max(d,_e)),et!=null&&(_=Math.max(_,et)),tt!=null&&(b=Math.max(b,tt)),nt!=null&&(k=Math.max(k,nt))}let $={left:a.left-d,top:a.top-b,right:a.right+_,bottom:a.bottom+k};scrollRectIntoView(this.view.scrollDOM,$,s.head0&&s<=0)o=o.childNodes[e-1],e=maxOffset(o);else if(o.nodeType==1&&e=0)o=o.childNodes[e],e=0;else return null}}function nextToUneditable(o,e){return o.nodeType!=1?0:(e&&o.childNodes[e-1].contentEditable=="false"?1:0)|(e0;){let $=findClusterBreak(c.text,_,!1);if(a(c.text.slice($,_))!=k)break;_=$}for(;bo?e.left-o:Math.max(0,o-e.right)}function getdy(o,e){return e.top>o?e.top-o:Math.max(0,o-e.bottom)}function yOverlap(o,e){return o.tope.top+1}function upTop(o,e){return eo.bottom?{top:o.top,left:o.left,right:o.right,bottom:e}:o}function domPosAtCoords(o,e,s){let a,c,d,_,b,k,$,j;for(let tt=o.firstChild;tt;tt=tt.nextSibling){let nt=clientRectsFor(tt);for(let it=0;itat||_==at&&d>st)&&(a=tt,c=rt,d=st,_=at),st==0?s>rt.bottom&&(!$||$.bottomrt.top)&&(k=tt,j=rt):$&&yOverlap($,rt)?$=upBot($,rt.bottom):j&&yOverlap(j,rt)&&(j=upTop(j,rt.top))}}if($&&$.bottom>=s?(a=b,c=$):j&&j.top<=s&&(a=k,c=j),!a)return{node:o,offset:0};let _e=Math.max(c.left,Math.min(c.right,e));if(a.nodeType==3)return domPosInText(a,_e,s);if(!d&&a.contentEditable=="true")return domPosAtCoords(a,_e,s);let et=Array.prototype.indexOf.call(o.childNodes,a)+(e>=(c.left+c.right)/2?1:0);return{node:o,offset:et}}function domPosInText(o,e,s){let a=o.nodeValue.length,c=-1,d=1e9,_=0;for(let b=0;bs?j.top-s:s-j.bottom)-1;if(j.left-1<=e&&j.right+1>=e&&_e=(j.left+j.right)/2,tt=et;if((browser.chrome||browser.gecko)&&textRange(o,b).getBoundingClientRect().left==j.right&&(tt=!et),_e<=0)return{node:o,offset:b+(tt?1:0)};c=b+(tt?1:0),d=_e}}}return{node:o,offset:c>-1?c:_>0?o.nodeValue.length:0}}function posAtCoords(o,{x:e,y:s},a,c=-1){var d;let _=o.contentDOM.getBoundingClientRect(),b=_.top+o.viewState.paddingTop,k,{docHeight:$}=o.viewState,j=s-b;if(j<0)return 0;if(j>$)return o.state.doc.length;for(let st=o.defaultLineHeight/2,at=!1;k=o.elementAtHeight(j),k.type!=BlockType.Text;)for(;j=c>0?k.bottom+st:k.top-st,!(j>=0&&j<=$);){if(at)return a?null:0;at=!0,c=-c}s=b+j;let _e=k.from;if(_eo.viewport.to)return o.viewport.to==o.state.doc.length?o.state.doc.length:a?null:posAtCoordsImprecise(o,_,k,e,s);let et=o.dom.ownerDocument,tt=o.root.elementFromPoint?o.root:et,nt=tt.elementFromPoint(e,s);nt&&!o.contentDOM.contains(nt)&&(nt=null),nt||(e=Math.max(_.left+1,Math.min(_.right-1,e)),nt=tt.elementFromPoint(e,s),nt&&!o.contentDOM.contains(nt)&&(nt=null));let it,rt=-1;if(nt&&((d=o.docView.nearest(nt))===null||d===void 0?void 0:d.isEditable)!=!1){if(et.caretPositionFromPoint){let st=et.caretPositionFromPoint(e,s);st&&({offsetNode:it,offset:rt}=st)}else if(et.caretRangeFromPoint){let st=et.caretRangeFromPoint(e,s);st&&({startContainer:it,startOffset:rt}=st,browser.safari&&isSuspiciousCaretResult(it,rt,e)&&(it=void 0))}}if(!it||!o.docView.dom.contains(it)){let st=LineView.find(o.docView,_e);if(!st)return j>k.top+k.height/2?k.to:k.from;({node:it,offset:rt}=domPosAtCoords(st.dom,e,s))}return o.docView.posFromDOM(it,rt)}function posAtCoordsImprecise(o,e,s,a,c){let d=Math.round((a-e.left)*o.defaultCharacterWidth);o.lineWrapping&&s.height>o.defaultLineHeight*1.5&&(d+=Math.floor((c-s.top)/o.defaultLineHeight)*o.viewState.heightOracle.lineLength);let _=o.state.sliceDoc(s.from,s.to);return s.from+findColumn(_,d,o.state.tabSize)}function isSuspiciousCaretResult(o,e,s){let a;if(o.nodeType!=3||e!=(a=o.nodeValue.length))return!1;for(let c=o.nextSibling;c;c=c.nextSibling)if(c.nodeType!=1||c.nodeName!="BR")return!1;return textRange(o,a-1,a).getBoundingClientRect().left>s}function moveToLineBoundary(o,e,s,a){let c=o.state.doc.lineAt(e.head),d=!a||!o.lineWrapping?null:o.coordsAtPos(e.assoc<0&&e.head>c.from?e.head-1:e.head);if(d){let k=o.dom.getBoundingClientRect(),$=o.posAtCoords({x:s==(o.textDirection==Direction.LTR)?k.right-1:k.left+1,y:(d.top+d.bottom)/2});if($!=null)return EditorSelection.cursor($,s?-1:1)}let _=LineView.find(o.docView,e.head),b=_?s?_.posAtEnd:_.posAtStart:s?c.to:c.from;return EditorSelection.cursor(b,s?-1:1)}function moveByChar(o,e,s,a){let c=o.state.doc.lineAt(e.head),d=o.bidiSpans(c);for(let _=e,b=null;;){let k=moveVisually(c,d,o.textDirection,_,s),$=movedOver;if(!k){if(c.number==(s?o.state.doc.lines:1))return _;$=` -`,c=o.state.doc.line(c.number+(s?1:-1)),d=o.bidiSpans(c),k=EditorSelection.cursor(s?c.from:c.to)}if(b){if(!b($))return _}else{if(!a)return k;b=a($)}_=k}}function byGroup(o,e,s){let a=o.state.charCategorizer(e),c=a(s);return d=>{let _=a(d);return c==CharCategory.Space&&(c=_),c==_}}function moveVertically(o,e,s,a){let c=e.head,d=s?1:-1;if(c==(s?o.state.doc.length:0))return EditorSelection.cursor(c,e.assoc);let _=e.goalColumn,b,k=o.contentDOM.getBoundingClientRect(),$=o.coordsAtPos(c),j=o.documentTop;if($)_==null&&(_=$.left-k.left),b=d<0?$.top:$.bottom;else{let tt=o.viewState.lineBlockAt(c-j);_==null&&(_=Math.min(k.right-k.left,o.defaultCharacterWidth*(c-tt.from))),b=(d<0?tt.top:tt.bottom)+j}let _e=k.left+_,et=a!=null?a:o.defaultLineHeight>>1;for(let tt=0;;tt+=10){let nt=b+(et+tt)*d,it=posAtCoords(o,{x:_e,y:nt},!1,d);if(ntk.bottom||(d<0?itc))return EditorSelection.cursor(it,e.assoc,void 0,_)}}function skipAtoms(o,e,s){let a=o.pluginField(PluginField.atomicRanges);for(;;){let c=!1;for(let d of a)d.between(s.from-1,s.from+1,(_,b,k)=>{s.from>_&&s.froms.from?EditorSelection.cursor(_,1):EditorSelection.cursor(b,-1),c=!0)});if(!c)return s}}class InputState{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.rapidCompositionStart=!1,this.mouseSelection=null;for(let s in handlers){let a=handlers[s];e.contentDOM.addEventListener(s,c=>{!eventBelongsToEditor(e,c)||this.ignoreDuringComposition(c)||s=="keydown"&&this.keydown(e,c)||(this.mustFlushObserver(c)&&e.observer.forceFlush(),this.runCustomHandlers(s,e,c)?c.preventDefault():a(e,c))}),this.registeredEvents.push(s)}this.notifiedFocused=e.hasFocus,this.ensureHandlers(e),browser.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e){let s=this.customHandlers=e.pluginField(domEventHandlers);for(let a of s)for(let c in a.handlers)this.registeredEvents.indexOf(c)<0&&c!="scroll"&&(this.registeredEvents.push(c),e.contentDOM.addEventListener(c,d=>{!eventBelongsToEditor(e,d)||this.runCustomHandlers(c,e,d)&&d.preventDefault()}))}runCustomHandlers(e,s,a){for(let c of this.customHandlers){let d=c.handlers[e];if(d)try{if(d.call(c.plugin,a,s)||a.defaultPrevented)return!0}catch(_){logException(s.state,_)}}return!1}runScrollHandlers(e,s){for(let a of this.customHandlers){let c=a.handlers.scroll;if(c)try{c.call(a.plugin,s,e)}catch(d){logException(e.state,d)}}}keydown(e,s){if(this.lastKeyCode=s.keyCode,this.lastKeyTime=Date.now(),s.keyCode==9&&Date.now()c.keyCode==s.keyCode))&&!(s.ctrlKey||s.altKey||s.metaKey)&&!s.synthetic?(this.pendingIOSKey=a,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let s=this.pendingIOSKey;return s?(this.pendingIOSKey=void 0,dispatchKey(e.contentDOM,s.key,s.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:browser.safari&&Date.now()-this.compositionEndedAt<500?(this.compositionEndedAt=0,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229||e.type=="compositionend"&&!browser.ios}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const PendingKeys=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],modifierCodes=[16,17,18,20,91,92,224,225];class MouseSelection{constructor(e,s,a,c){this.view=e,this.style=a,this.mustSelect=c,this.lastEvent=s;let d=e.contentDOM.ownerDocument;d.addEventListener("mousemove",this.move=this.move.bind(this)),d.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=s.shiftKey,this.multiple=e.state.facet(EditorState.allowMultipleSelections)&&addsSelectionRange(e,s),this.dragMove=dragMovesSelection(e,s),this.dragging=isInPrimarySelection(e,s)&&getClickType(s)==1?null:!1,this.dragging===!1&&(s.preventDefault(),this.select(s))}move(e){if(e.buttons==0)return this.destroy();this.dragging===!1&&this.select(this.lastEvent=e)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}select(e){let s=this.style.get(e,this.extend,this.multiple);(this.mustSelect||!s.eq(this.view.state.selection)||s.main.assoc!=this.view.state.selection.main.assoc)&&this.view.dispatch({selection:s,userEvent:"select.pointer",scrollIntoView:!0}),this.mustSelect=!1}update(e){e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function addsSelectionRange(o,e){let s=o.state.facet(clickAddsSelectionRange);return s.length?s[0](e):browser.mac?e.metaKey:e.ctrlKey}function dragMovesSelection(o,e){let s=o.state.facet(dragMovesSelection$1);return s.length?s[0](e):browser.mac?!e.altKey:!e.ctrlKey}function isInPrimarySelection(o,e){let{main:s}=o.state.selection;if(s.empty)return!1;let a=getSelection(o.root);if(a.rangeCount==0)return!0;let c=a.getRangeAt(0).getClientRects();for(let d=0;d=e.clientX&&_.top<=e.clientY&&_.bottom>=e.clientY)return!0}return!1}function eventBelongsToEditor(o,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let s=e.target,a;s!=o.contentDOM;s=s.parentNode)if(!s||s.nodeType==11||(a=ContentView.get(s))&&a.ignoreEvent(e))return!1;return!0}const handlers=Object.create(null),brokenClipboardAPI=browser.ie&&browser.ie_version<15||browser.ios&&browser.webkit_version<604;function capturePaste(o){let e=o.dom.parentNode;if(!e)return;let s=e.appendChild(document.createElement("textarea"));s.style.cssText="position: fixed; left: -10000px; top: 10px",s.focus(),setTimeout(()=>{o.focus(),s.remove(),doPaste(o,s.value)},50)}function doPaste(o,e){let{state:s}=o,a,c=1,d=s.toText(e),_=d.lines==s.selection.ranges.length;if(lastLinewiseCopy!=null&&s.selection.ranges.every(k=>k.empty)&&lastLinewiseCopy==d.toString()){let k=-1;a=s.changeByRange($=>{let j=s.doc.lineAt($.from);if(j.from==k)return{range:$};k=j.from;let _e=s.toText((_?d.line(c++).text:e)+s.lineBreak);return{changes:{from:j.from,insert:_e},range:EditorSelection.cursor($.from+_e.length)}})}else _?a=s.changeByRange(k=>{let $=d.line(c++);return{changes:{from:k.from,to:k.to,insert:$.text},range:EditorSelection.cursor(k.from+$.length)}}):a=s.replaceSelection(d);o.dispatch(a,{userEvent:"input.paste",scrollIntoView:!0})}handlers.keydown=(o,e)=>{o.inputState.setSelectionOrigin("select"),e.keyCode==27?o.inputState.lastEscPress=Date.now():modifierCodes.indexOf(e.keyCode)<0&&(o.inputState.lastEscPress=0)};let lastTouch=0;handlers.touchstart=(o,e)=>{lastTouch=Date.now(),o.inputState.setSelectionOrigin("select.pointer")};handlers.touchmove=o=>{o.inputState.setSelectionOrigin("select.pointer")};handlers.mousedown=(o,e)=>{if(o.observer.flush(),lastTouch>Date.now()-2e3&&getClickType(e)==1)return;let s=null;for(let a of o.state.facet(mouseSelectionStyle))if(s=a(o,e),s)break;if(!s&&e.button==0&&(s=basicMouseSelection(o,e)),s){let a=o.root.activeElement!=o.contentDOM;a&&o.observer.ignore(()=>focusPreventScroll(o.contentDOM)),o.inputState.startMouseSelection(new MouseSelection(o,e,s,a))}};function rangeForClick(o,e,s,a){if(a==1)return EditorSelection.cursor(e,s);if(a==2)return groupAt(o.state,e,s);{let c=LineView.find(o.docView,e),d=o.state.doc.lineAt(c?c.posAtEnd:e),_=c?c.posAtStart:d.from,b=c?c.posAtEnd:d.to;return bo>=e.top&&o<=e.bottom,inside=(o,e,s)=>insideY(e,s)&&o>=s.left&&o<=s.right;function findPositionSide(o,e,s,a){let c=LineView.find(o.docView,e);if(!c)return 1;let d=e-c.posAtStart;if(d==0)return 1;if(d==c.length)return-1;let _=c.coordsAt(d,-1);if(_&&inside(s,a,_))return-1;let b=c.coordsAt(d,1);return b&&inside(s,a,b)?1:_&&insideY(a,_)?-1:1}function queryPos(o,e){let s=o.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:s,bias:findPositionSide(o,s,e.clientX,e.clientY)}}const BadMouseDetail=browser.ie&&browser.ie_version<=11;let lastMouseDown=null,lastMouseDownCount=0,lastMouseDownTime=0;function getClickType(o){if(!BadMouseDetail)return o.detail;let e=lastMouseDown,s=lastMouseDownTime;return lastMouseDown=o,lastMouseDownTime=Date.now(),lastMouseDownCount=!e||s>Date.now()-400&&Math.abs(e.clientX-o.clientX)<2&&Math.abs(e.clientY-o.clientY)<2?(lastMouseDownCount+1)%3:1}function basicMouseSelection(o,e){let s=queryPos(o,e),a=getClickType(e),c=o.state.selection,d=s,_=e;return{update(b){b.docChanged&&(s&&(s.pos=b.changes.mapPos(s.pos)),c=c.map(b.changes),_=null)},get(b,k,$){let j;if(_&&b.clientX==_.clientX&&b.clientY==_.clientY?j=d:(j=d=queryPos(o,b),_=b),!j||!s)return c;let _e=rangeForClick(o,j.pos,j.bias,a);if(s.pos!=j.pos&&!k){let et=rangeForClick(o,s.pos,s.bias,a),tt=Math.min(et.from,_e.from),nt=Math.max(et.to,_e.to);_e=tt<_e.from?EditorSelection.range(tt,nt):EditorSelection.range(nt,tt)}return k?c.replaceRange(c.main.extend(_e.from,_e.to)):$?c.addRange(_e):EditorSelection.create([_e])}}}handlers.dragstart=(o,e)=>{let{selection:{main:s}}=o.state,{mouseSelection:a}=o.inputState;a&&(a.dragging=s),e.dataTransfer&&(e.dataTransfer.setData("Text",o.state.sliceDoc(s.from,s.to)),e.dataTransfer.effectAllowed="copyMove")};function dropText(o,e,s,a){if(!s)return;let c=o.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:d}=o.inputState,_=a&&d&&d.dragging&&d.dragMove?{from:d.dragging.from,to:d.dragging.to}:null,b={from:c,insert:s},k=o.state.changes(_?[_,b]:b);o.focus(),o.dispatch({changes:k,selection:{anchor:k.mapPos(c,-1),head:k.mapPos(c,1)},userEvent:_?"move.drop":"input.drop"})}handlers.drop=(o,e)=>{if(!e.dataTransfer)return;if(o.state.readOnly)return e.preventDefault();let s=e.dataTransfer.files;if(s&&s.length){e.preventDefault();let a=Array(s.length),c=0,d=()=>{++c==s.length&&dropText(o,e,a.filter(_=>_!=null).join(o.state.lineBreak),!1)};for(let _=0;_{/[\x00-\x08\x0e-\x1f]{2}/.test(b.result)||(a[_]=b.result),d()},b.readAsText(s[_])}}else dropText(o,e,e.dataTransfer.getData("Text"),!0)};handlers.paste=(o,e)=>{if(o.state.readOnly)return e.preventDefault();o.observer.flush();let s=brokenClipboardAPI?null:e.clipboardData;s?(doPaste(o,s.getData("text/plain")),e.preventDefault()):capturePaste(o)};function captureCopy(o,e){let s=o.dom.parentNode;if(!s)return;let a=s.appendChild(document.createElement("textarea"));a.style.cssText="position: fixed; left: -10000px; top: 10px",a.value=e,a.focus(),a.selectionEnd=e.length,a.selectionStart=0,setTimeout(()=>{a.remove(),o.focus()},50)}function copiedRange(o){let e=[],s=[],a=!1;for(let c of o.selection.ranges)c.empty||(e.push(o.sliceDoc(c.from,c.to)),s.push(c));if(!e.length){let c=-1;for(let{from:d}of o.selection.ranges){let _=o.doc.lineAt(d);_.number>c&&(e.push(_.text),s.push({from:_.from,to:Math.min(o.doc.length,_.to+1)})),c=_.number}a=!0}return{text:e.join(o.lineBreak),ranges:s,linewise:a}}let lastLinewiseCopy=null;handlers.copy=handlers.cut=(o,e)=>{let{text:s,ranges:a,linewise:c}=copiedRange(o.state);if(!s&&!c)return;lastLinewiseCopy=c?s:null;let d=brokenClipboardAPI?null:e.clipboardData;d?(e.preventDefault(),d.clearData(),d.setData("text/plain",s)):captureCopy(o,s),e.type=="cut"&&!o.state.readOnly&&o.dispatch({changes:a,scrollIntoView:!0,userEvent:"delete.cut"})};handlers.focus=handlers.blur=o=>{setTimeout(()=>{o.hasFocus!=o.inputState.notifiedFocused&&o.update([])},10)};function forceClearComposition(o,e){if(o.docView.compositionDeco.size){o.inputState.rapidCompositionStart=e;try{o.update([])}finally{o.inputState.rapidCompositionStart=!1}}}handlers.compositionstart=handlers.compositionupdate=o=>{o.inputState.compositionFirstChange==null&&(o.inputState.compositionFirstChange=!0),o.inputState.composing<0&&(o.inputState.composing=0,o.docView.compositionDeco.size&&(o.observer.flush(),forceClearComposition(o,!0)))};handlers.compositionend=o=>{o.inputState.composing=-1,o.inputState.compositionEndedAt=Date.now(),o.inputState.compositionFirstChange=null,setTimeout(()=>{o.inputState.composing<0&&forceClearComposition(o,!1)},50)};handlers.contextmenu=o=>{o.inputState.lastContextMenu=Date.now()};handlers.beforeinput=(o,e)=>{var s;let a;if(browser.chrome&&browser.android&&(a=PendingKeys.find(c=>c.inputType==e.inputType))&&(o.observer.delayAndroidKey(a.key,a.keyCode),a.key=="Backspace"||a.key=="Delete")){let c=((s=window.visualViewport)===null||s===void 0?void 0:s.height)||0;setTimeout(()=>{var d;(((d=window.visualViewport)===null||d===void 0?void 0:d.height)||0)>c+10&&o.hasFocus&&(o.contentDOM.blur(),o.focus())},100)}};const wrappingWhiteSpace=["pre-wrap","normal","pre-line","break-spaces"];class HeightOracle{constructor(){this.doc=Text.empty,this.lineWrapping=!1,this.direction=Direction.LTR,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}heightForGap(e,s){let a=this.doc.lineAt(s).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(a+=Math.ceil((s-e-a*this.lineLength*.5)/this.lineLength)),this.lineHeight*a}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForStyle(e,s){return wrappingWhiteSpace.indexOf(e)>-1!=this.lineWrapping||this.direction!=s}mustRefreshForHeights(e){let s=!1;for(let a=0;a-1,k=Math.round(a)!=Math.round(this.lineHeight)||this.lineWrapping!=b||this.direction!=s;if(this.lineWrapping=b,this.direction=s,this.lineHeight=a,this.charWidth=c,this.lineLength=d,k){this.heightSamples={};for(let $=0;$<_.length;$++){let j=_[$];j<0?$++:this.heightSamples[Math.floor(j*10)]=!0}}return k}}class MeasuredHeights{constructor(e,s){this.from=e,this.heights=s,this.index=0}get more(){return this.indexs.moveY(e)):this.type):this}}var QueryType$1=function(o){return o[o.ByPos=0]="ByPos",o[o.ByHeight=1]="ByHeight",o[o.ByPosNoHeight=2]="ByPosNoHeight",o}(QueryType$1||(QueryType$1={}));const Epsilon=.001;class HeightMap{constructor(e,s,a=2){this.length=e,this.height=s,this.flags=a}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,s){this.height!=s&&(Math.abs(this.height-s)>Epsilon&&(e.heightChanged=!0),this.height=s)}replace(e,s,a){return HeightMap.of(a)}decomposeLeft(e,s){s.push(this)}decomposeRight(e,s){s.push(this)}applyChanges(e,s,a,c){let d=this;for(let _=c.length-1;_>=0;_--){let{fromA:b,toA:k,fromB:$,toB:j}=c[_],_e=d.lineAt(b,QueryType$1.ByPosNoHeight,s,0,0),et=_e.to>=k?_e:d.lineAt(k,QueryType$1.ByPosNoHeight,s,0,0);for(j+=et.to-k,k=et.to;_>0&&_e.from<=c[_-1].toA;)b=c[_-1].fromA,$=c[_-1].fromB,_--,b<_e.from&&(_e=d.lineAt(b,QueryType$1.ByPosNoHeight,s,0,0));$+=_e.from-b,b=_e.from;let tt=NodeBuilder.build(a,e,$,j);d=d.replace(b,k,tt)}return d.updateHeight(a,0)}static empty(){return new HeightMapText(0,0)}static of(e){if(e.length==1)return e[0];let s=0,a=e.length,c=0,d=0;for(;;)if(s==a)if(c>d*2){let b=e[s-1];b.break?e.splice(--s,1,b.left,null,b.right):e.splice(--s,1,b.left,b.right),a+=1+b.break,c-=b.size}else if(d>c*2){let b=e[a];b.break?e.splice(a,1,b.left,null,b.right):e.splice(a,1,b.left,b.right),a+=2+b.break,d-=b.size}else break;else if(c0){let d=a[a.length-1];d instanceof HeightMapGap?a[a.length-1]=new HeightMapGap(d.length+c):a.push(null,new HeightMapGap(c-1))}if(e>0){let d=a[0];d instanceof HeightMapGap?a[0]=new HeightMapGap(e+d.length):a.unshift(new HeightMapGap(e-1),null)}return HeightMap.of(a)}decomposeLeft(e,s){s.push(new HeightMapGap(e-1),null)}decomposeRight(e,s){s.push(null,new HeightMapGap(this.length-e-1))}updateHeight(e,s=0,a=!1,c){let d=s+this.length;if(c&&c.from<=s+this.length&&c.more){let _=[],b=Math.max(s,c.from),k=-1,$=e.heightChanged;for(c.from>s&&_.push(new HeightMapGap(c.from-s-1).updateHeight(e,s));b<=d&&c.more;){let _e=e.doc.lineAt(b).length;_.length&&_.push(null);let et=c.heights[c.index++];k==-1?k=et:Math.abs(et-k)>=Epsilon&&(k=-2);let tt=new HeightMapText(_e,et);tt.outdated=!1,_.push(tt),b+=_e+1}b<=d&&_.push(null,new HeightMapGap(d-b).updateHeight(e,b));let j=HeightMap.of(_);return e.heightChanged=$||k<0||Math.abs(j.height-this.height)>=Epsilon||Math.abs(k-this.lines(e.doc,s).lineHeight)>=Epsilon,j}else(a||this.outdated)&&(this.setHeight(e,e.heightForGap(s,s+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class HeightMapBranch extends HeightMap{constructor(e,s,a){super(e.length+s+a.length,e.height+a.height,s|(e.outdated||a.outdated?2:0)),this.left=e,this.right=a,this.size=e.size+a.size}get break(){return this.flags&1}blockAt(e,s,a,c){let d=a+this.left.height;return eb))return $;let j=s==QueryType$1.ByPosNoHeight?QueryType$1.ByPosNoHeight:QueryType$1.ByPos;return k?$.join(this.right.lineAt(b,j,a,_,b)):this.left.lineAt(b,j,a,c,d).join($)}forEachLine(e,s,a,c,d,_){let b=c+this.left.height,k=d+this.left.length+this.break;if(this.break)e=k&&this.right.forEachLine(e,s,a,b,k,_);else{let $=this.lineAt(k,QueryType$1.ByPos,a,c,d);e<$.from&&this.left.forEachLine(e,$.from-1,a,c,d,_),$.to>=e&&$.from<=s&&_($),s>$.to&&this.right.forEachLine($.to+1,s,a,b,k,_)}}replace(e,s,a){let c=this.left.length+this.break;if(sthis.left.length)return this.balanced(this.left,this.right.replace(e-c,s-c,a));let d=[];e>0&&this.decomposeLeft(e,d);let _=d.length;for(let b of a)d.push(b);if(e>0&&mergeGaps(d,_-1),s=a&&s.push(null)),e>a&&this.right.decomposeLeft(e-a,s)}decomposeRight(e,s){let a=this.left.length,c=a+this.break;if(e>=c)return this.right.decomposeRight(e-c,s);e2*s.size||s.size>2*e.size?HeightMap.of(this.break?[e,null,s]:[e,s]):(this.left=e,this.right=s,this.height=e.height+s.height,this.outdated=e.outdated||s.outdated,this.size=e.size+s.size,this.length=e.length+this.break+s.length,this)}updateHeight(e,s=0,a=!1,c){let{left:d,right:_}=this,b=s+d.length+this.break,k=null;return c&&c.from<=s+d.length&&c.more?k=d=d.updateHeight(e,s,a,c):d.updateHeight(e,s,a),c&&c.from<=b+_.length&&c.more?k=_=_.updateHeight(e,b,a,c):_.updateHeight(e,b,a),k?this.balanced(d,_):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function mergeGaps(o,e){let s,a;o[e]==null&&(s=o[e-1])instanceof HeightMapGap&&(a=o[e+1])instanceof HeightMapGap&&o.splice(e-1,3,new HeightMapGap(s.length+1+a.length))}const relevantWidgetHeight=5;class NodeBuilder{constructor(e,s){this.pos=e,this.oracle=s,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,s){if(this.lineStart>-1){let a=Math.min(s,this.lineEnd),c=this.nodes[this.nodes.length-1];c instanceof HeightMapText?c.length+=a-this.pos:(a>this.pos||!this.isCovered)&&this.nodes.push(new HeightMapText(a-this.pos,-1)),this.writtenTo=a,s>a&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=s}point(e,s,a){if(e=relevantWidgetHeight)&&this.addLineDeco(c,d)}else s>e&&this.span(e,s);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:s}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=s,this.writtenToe&&this.nodes.push(new HeightMapText(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,s){let a=new HeightMapGap(s-e);return this.oracle.doc.lineAt(e).to==s&&(a.flags|=4),a}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof HeightMapText)return e;let s=new HeightMapText(0,-1);return this.nodes.push(s),s}addBlock(e){this.enterLine(),e.type==BlockType.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=BlockType.WidgetBefore&&(this.covering=e)}addLineDeco(e,s){let a=this.ensureLine();a.length+=s,a.collapsed+=s,a.widgetHeight=Math.max(a.widgetHeight,e),this.writtenTo=this.pos=this.pos+s}finish(e){let s=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(s instanceof HeightMapText)&&!this.isCovered?this.nodes.push(new HeightMapText(0,-1)):(this.writtenTo$.clientHeight||$.scrollWidth>$.clientWidth)&&j.overflow!="visible"){let _e=$.getBoundingClientRect();a=Math.max(a,_e.left),c=Math.min(c,_e.right),d=Math.max(d,_e.top),_=Math.min(_,_e.bottom)}k=j.position=="absolute"||j.position=="fixed"?$.offsetParent:$.parentNode}else if(k.nodeType==11)k=k.host;else break;return{left:a-s.left,right:Math.max(a,c)-s.left,top:d-(s.top+e),bottom:Math.max(d,_)-(s.top+e)}}function fullPixelRange(o,e){let s=o.getBoundingClientRect();return{left:0,right:s.right-s.left,top:e,bottom:s.bottom-(s.top+e)}}class LineGap{constructor(e,s,a){this.from=e,this.to=s,this.size=a}static same(e,s){if(e.length!=s.length)return!1;for(let a=0;as.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:s}=this.state.selection;for(let a=0;a<=1;a++){let c=a?s.head:s.anchor;if(!e.some(({from:d,to:_})=>c>=d&&c<=_)){let{from:d,to:_}=this.lineBlockAt(c);e.push(new Viewport(d,_))}}this.viewports=e.sort((a,c)=>a.from-c.from),this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle.doc,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.state.doc,0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:scaleBlock(e,this.scaler))})}update(e,s=null){let a=this.state;this.state=e.state;let c=this.state.facet(decorations),d=e.changedRanges,_=ChangedRange.extendWithRanges(d,heightRelevantDecoChanges(e.startState.facet(decorations),c,e?e.changes:ChangeSet.empty(this.state.doc.length))),b=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(c,a.doc,this.heightOracle.setDoc(this.state.doc),_),this.heightMap.height!=b&&(e.flags|=2);let k=_.length?this.mapViewport(this.viewport,e.changes):this.viewport;(s&&(s.range.headk.to)||!this.viewportIsAppropriate(k))&&(k=this.getViewport(0,s));let $=!e.changes.empty||e.flags&2||k.from!=this.viewport.from||k.to!=this.viewport.to;this.viewport=k,this.updateForViewport(),$&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),s&&(this.scrollTarget=s),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&(this.mustEnforceCursorAssoc=!0)}measure(e){let s=e.contentDOM,a=window.getComputedStyle(s),c=this.heightOracle,d=a.whiteSpace,_=a.direction=="rtl"?Direction.RTL:Direction.LTR,b=this.heightOracle.mustRefreshForStyle(d,_),k=b||this.mustMeasureContent||this.contentDOMHeight!=s.clientHeight,$=0,j=0;if(this.editorWidth!=e.scrollDOM.clientWidth&&(c.lineWrapping&&(k=!0),this.editorWidth=e.scrollDOM.clientWidth,$|=8),k){this.mustMeasureContent=!1,this.contentDOMHeight=s.clientHeight;let st=parseInt(a.paddingTop)||0,at=parseInt(a.paddingBottom)||0;(this.paddingTop!=st||this.paddingBottom!=at)&&($|=8,this.paddingTop=st,this.paddingBottom=at)}let _e=(this.printing?fullPixelRange:visiblePixelRange)(s,this.paddingTop),et=_e.top-this.pixelViewport.top,tt=_e.bottom-this.pixelViewport.bottom;this.pixelViewport=_e;let nt=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(nt!=this.inView&&(this.inView=nt,nt&&(k=!0)),!this.inView)return 0;let it=s.clientWidth;if((this.contentDOMWidth!=it||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=it,this.editorHeight=e.scrollDOM.clientHeight,$|=8),k){let st=e.docView.measureVisibleLineHeights();if(c.mustRefreshForHeights(st)&&(b=!0),b||c.lineWrapping&&Math.abs(it-this.contentDOMWidth)>c.charWidth){let{lineHeight:at,charWidth:ot}=e.docView.measureTextSize();b=c.refresh(d,_,at,ot,it/ot,st),b&&(e.docView.minWidth=0,$|=8)}et>0&&tt>0?j=Math.max(et,tt):et<0&&tt<0&&(j=Math.min(et,tt)),c.heightChanged=!1,this.heightMap=this.heightMap.updateHeight(c,0,b,new MeasuredHeights(this.viewport.from,st)),c.heightChanged&&($|=2)}let rt=!this.viewportIsAppropriate(this.viewport,j)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return rt&&(this.viewport=this.getViewport(j,this.scrollTarget)),this.updateForViewport(),($&2||rt)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(b?[]:this.lineGaps)),$|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),$}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,s){let a=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),c=this.heightMap,d=this.state.doc,{visibleTop:_,visibleBottom:b}=this,k=new Viewport(c.lineAt(_-a*1e3,QueryType$1.ByHeight,d,0,0).from,c.lineAt(b+(1-a)*1e3,QueryType$1.ByHeight,d,0,0).to);if(s){let{head:$}=s.range;if($k.to){let j=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),_e=c.lineAt($,QueryType$1.ByPos,d,0,0),et;s.y=="center"?et=(_e.top+_e.bottom)/2-j/2:s.y=="start"||s.y=="nearest"&&$=b+Math.max(10,Math.min(a,250)))&&c>_-2*1e3&&da.from&&b.push({from:a.from,to:d}),_=a.from&&k.from<=a.to&&cutRange(b,k.from-10,k.from+10),!k.empty&&k.to>=a.from&&k.to<=a.to&&cutRange(b,k.to-10,k.to+10);for(let{from:$,to:j}of b)j-$>1e3&&s.push(find(e,_e=>_e.from>=a.from&&_e.to<=a.to&&Math.abs(_e.from-$)<1e3&&Math.abs(_e.to-j)<1e3)||new LineGap($,j,this.gapSize(a,$,j,c)))}return s}gapSize(e,s,a,c){let d=findFraction(c,a)-findFraction(c,s);return this.heightOracle.lineWrapping?e.height*d:c.total*this.heightOracle.charWidth*d}updateLineGaps(e){LineGap.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=Decoration.set(e.map(s=>s.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.state.facet(decorations);this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let s=[];RangeSet.spans(e,this.viewport.from,this.viewport.to,{span(c,d){s.push({from:c,to:d})},point(){}},20);let a=s.length!=this.visibleRanges.length||this.visibleRanges.some((c,d)=>c.from!=s[d].from||c.to!=s[d].to);return this.visibleRanges=s,a?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(s=>s.from<=e&&s.to>=e)||scaleBlock(this.heightMap.lineAt(e,QueryType$1.ByPos,this.state.doc,0,0),this.scaler)}lineBlockAtHeight(e){return scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(e),QueryType$1.ByHeight,this.state.doc,0,0),this.scaler)}elementAtHeight(e){return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(e),this.state.doc,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Viewport{constructor(e,s){this.from=e,this.to=s}}function lineStructure(o,e,s){let a=[],c=o,d=0;return RangeSet.spans(s.facet(decorations),o,e,{span(){},point(_,b){_>c&&(a.push({from:c,to:_}),d+=_-c),c=b}},20),c=1)return e[e.length-1].to;let a=Math.floor(o*s);for(let c=0;;c++){let{from:d,to:_}=e[c],b=_-d;if(a<=b)return d+a;a-=b}}function findFraction(o,e){let s=0;for(let{from:a,to:c}of o.ranges){if(e<=c){s+=e-a;break}s+=c-a}return s/o.total}function cutRange(o,e,s){for(let a=0;ae){let d=[];c.froms&&d.push({from:s,to:c.to}),o.splice(a,1,...d),a+=d.length-1}}}function find(o,e){for(let s of o)if(e(s))return s}const IdScaler={toDOM(o){return o},fromDOM(o){return o},scale:1};class BigScaler{constructor(e,s,a){let c=0,d=0,_=0;this.viewports=a.map(({from:b,to:k})=>{let $=s.lineAt(b,QueryType$1.ByPos,e,0,0).top,j=s.lineAt(k,QueryType$1.ByPos,e,0,0).bottom;return c+=j-$,{from:b,to:k,top:$,bottom:j,domTop:0,domBottom:0}}),this.scale=(7e6-c)/(s.height-c);for(let b of this.viewports)b.domTop=_+(b.top-d)*this.scale,_=b.domBottom=b.domTop+(b.bottom-b.top),d=b.bottom}toDOM(e){for(let s=0,a=0,c=0;;s++){let d=sscaleBlock(c,e)):o.type)}const theme=Facet.define({combine:o=>o.join(" ")}),darkTheme=Facet.define({combine:o=>o.indexOf(!0)>-1}),baseThemeID=StyleModule.newName(),baseLightID=StyleModule.newName(),baseDarkID=StyleModule.newName(),lightDarkIDs={"&light":"."+baseLightID,"&dark":"."+baseDarkID};function buildTheme(o,e,s){return new StyleModule(e,{finish(a){return/&/.test(a)?a.replace(/&\w*/,c=>{if(c=="&")return o;if(!s||!s[c])throw new RangeError(`Unsupported selector: ${c}`);return s[c]}):o+" "+a}})}const baseTheme$8=buildTheme("."+baseThemeID,{"&.cm-editor":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,minHeight:"100%",display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere"},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 4px"},".cm-selectionLayer":{zIndex:-1,contain:"size style"},".cm-selectionBackground":{position:"absolute"},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{zIndex:100,contain:"size style",pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},".cm-cursor, .cm-dropCursor":{position:"absolute",borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#f3f9ff"},"&dark .cm-activeLine":{backgroundColor:"#223039"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},lightDarkIDs),observeOptions={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},useCharData=browser.ie&&browser.ie_version<=11;class DOMObserver{constructor(e,s,a){this.view=e,this.onChange=s,this.onScrollChanged=a,this.active=!1,this.selectionRange=new DOMSelectionState,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.scrollTargets=[],this.intersection=null,this.resize=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(c=>{for(let d of c)this.queue.push(d);(browser.ie&&browser.ie_version<=11||browser.ios&&e.composing)&&c.some(d=>d.type=="childList"&&d.removedNodes.length||d.type=="characterData"&&d.oldValue.length>d.target.nodeValue.length)?this.flushSoon():this.flush()}),useCharData&&(this.onCharData=c=>{this.queue.push({target:c.target,type:"characterData",oldValue:c.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),window.addEventListener("resize",this.onResize=this.onResize.bind(this)),typeof ResizeObserver=="function"&&(this.resize=new ResizeObserver(()=>{this.view.docView.lastUpdate{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),c.length>0&&c[c.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(c=>{c.length>0&&c[c.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange(),this.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((s,a)=>s!=e[a]))){this.gapIntersection.disconnect();for(let s of e)this.gapIntersection.observe(s);this.gaps=e}}onSelectionChange(e){if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:s}=this,a=this.selectionRange;if(s.state.facet(editable)?s.root.activeElement!=this.dom:!hasSelection(s.dom,a))return;let c=a.anchorNode&&s.docView.nearest(a.anchorNode);c&&c.ignoreEvent(e)||((browser.ie&&browser.ie_version<=11||browser.android&&browser.chrome)&&!s.state.selection.main.empty&&a.focusNode&&isEquivalentPosition(a.focusNode,a.focusOffset,a.anchorNode,a.anchorOffset)?this.flushSoon():this.flush(!1))}readSelectionRange(){let{root:e}=this.view,s=getSelection(e),a=browser.safari&&e.nodeType==11&&deepActiveElement()==this.view.contentDOM&&safariSelectionRangeHack(this.view)||s;return this.selectionRange.eq(a)?!1:(this.selectionRange.setRange(a),this.selectionChanged=!0)}setSelectionRange(e,s){this.selectionRange.set(e.node,e.offset,s.node,s.offset),this.selectionChanged=!1}listenForScroll(){this.parentCheck=-1;let e=0,s=null;for(let a=this.dom;a;)if(a.nodeType==1)!s&&e{let a=this.delayedAndroidKey;this.delayedAndroidKey=null;let c=this.view.state;dispatchKey(this.view.contentDOM,a.key,a.keyCode)?this.processRecords():this.flush(),this.view.state==c&&this.view.update([])}),(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:s})}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=window.setTimeout(()=>{this.delayedFlush=-1,this.flush()},20))}forceFlush(){this.delayedFlush>=0&&(window.clearTimeout(this.delayedFlush),this.delayedFlush=-1,this.flush())}processRecords(){let e=this.queue;for(let d of this.observer.takeRecords())e.push(d);e.length&&(this.queue=[]);let s=-1,a=-1,c=!1;for(let d of e){let _=this.readMutation(d);!_||(_.typeOver&&(c=!0),s==-1?{from:s,to:a}=_:(s=Math.min(_.from,s),a=Math.max(_.to,a)))}return{from:s,to:a,typeOver:c}}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return;e&&this.readSelectionRange();let{from:s,to:a,typeOver:c}=this.processRecords(),d=this.selectionChanged&&hasSelection(this.dom,this.selectionRange);if(s<0&&!d)return;this.selectionChanged=!1;let _=this.view.state;this.onChange(s,a,c),this.view.state==_&&this.view.update([])}readMutation(e){let s=this.view.docView.nearest(e.target);if(!s||s.ignoreMutation(e))return null;if(s.markDirty(e.type=="attributes"),e.type=="attributes"&&(s.dirty|=4),e.type=="childList"){let a=findChild(s,e.previousSibling||e.target.previousSibling,-1),c=findChild(s,e.nextSibling||e.target.nextSibling,1);return{from:a?s.posAfter(a):s.posAtStart,to:c?s.posBefore(c):s.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:s.posAtStart,to:s.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}destroy(){var e,s,a;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(s=this.gapIntersection)===null||s===void 0||s.disconnect(),(a=this.resize)===null||a===void 0||a.disconnect();for(let c of this.scrollTargets)c.removeEventListener("scroll",this.onScroll);window.removeEventListener("scroll",this.onScroll),window.removeEventListener("resize",this.onResize),window.removeEventListener("beforeprint",this.onPrint),this.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout)}}function findChild(o,e,s){for(;e;){let a=ContentView.get(e);if(a&&a.parent==o)return a;let c=e.parentNode;e=c!=o.dom?c:s>0?e.nextSibling:e.previousSibling}return null}function safariSelectionRangeHack(o){let e=null;function s(k){k.preventDefault(),k.stopImmediatePropagation(),e=k.getTargetRanges()[0]}if(o.contentDOM.addEventListener("beforeinput",s,!0),document.execCommand("indent"),o.contentDOM.removeEventListener("beforeinput",s,!0),!e)return null;let a=e.startContainer,c=e.startOffset,d=e.endContainer,_=e.endOffset,b=o.docView.domAtPos(o.state.selection.main.anchor);return isEquivalentPosition(b.node,b.offset,d,_)&&([a,c,d,_]=[d,_,a,c]),{anchorNode:a,anchorOffset:c,focusNode:d,focusOffset:_}}function applyDOMChange(o,e,s,a){let c,d,_=o.state.selection.main;if(e>-1){let b=o.docView.domBoundsAround(e,s,0);if(!b||o.state.readOnly)return;let{from:k,to:$}=b,j=o.docView.impreciseHead||o.docView.impreciseAnchor?[]:selectionPoints(o),_e=new DOMReader(j,o.state);_e.readRange(b.startDOM,b.endDOM);let et=_.from,tt=null;(o.inputState.lastKeyCode===8&&o.inputState.lastKeyTime>Date.now()-100||browser.android&&_e.text.length<$-k)&&(et=_.to,tt="end");let nt=findDiff(o.state.doc.sliceString(k,$,LineBreakPlaceholder),_e.text,et-k,tt);nt&&(browser.chrome&&o.inputState.lastKeyCode==13&&nt.toB==nt.from+2&&_e.text.slice(nt.from,nt.toB)==LineBreakPlaceholder+LineBreakPlaceholder&&nt.toB--,c={from:k+nt.from,to:k+nt.toA,insert:Text.of(_e.text.slice(nt.from,nt.toB).split(LineBreakPlaceholder))}),d=selectionFromPoints(j,k)}else if(o.hasFocus||!o.state.facet(editable)){let b=o.observer.selectionRange,{impreciseHead:k,impreciseAnchor:$}=o.docView,j=k&&k.node==b.focusNode&&k.offset==b.focusOffset||!contains(o.contentDOM,b.focusNode)?o.state.selection.main.head:o.docView.posFromDOM(b.focusNode,b.focusOffset),_e=$&&$.node==b.anchorNode&&$.offset==b.anchorOffset||!contains(o.contentDOM,b.anchorNode)?o.state.selection.main.anchor:o.docView.posFromDOM(b.anchorNode,b.anchorOffset);(j!=_.head||_e!=_.anchor)&&(d=EditorSelection.single(_e,j))}if(!(!c&&!d)){if(!c&&a&&!_.empty&&d&&d.main.empty?c={from:_.from,to:_.to,insert:o.state.doc.slice(_.from,_.to)}:c&&c.from>=_.from&&c.to<=_.to&&(c.from!=_.from||c.to!=_.to)&&_.to-_.from-(c.to-c.from)<=4&&(c={from:_.from,to:_.to,insert:o.state.doc.slice(_.from,c.from).append(c.insert).append(o.state.doc.slice(c.to,_.to))}),c){let b=o.state;if(browser.ios&&o.inputState.flushIOSKey(o)||browser.android&&(c.from==_.from&&c.to==_.to&&c.insert.length==1&&c.insert.lines==2&&dispatchKey(o.contentDOM,"Enter",13)||c.from==_.from-1&&c.to==_.to&&c.insert.length==0&&dispatchKey(o.contentDOM,"Backspace",8)||c.from==_.from&&c.to==_.to+1&&c.insert.length==0&&dispatchKey(o.contentDOM,"Delete",46)))return;let k=c.insert.toString();if(o.state.facet(inputHandler$1).some(_e=>_e(o,c.from,c.to,k)))return;o.inputState.composing>=0&&o.inputState.composing++;let $;if(c.from>=_.from&&c.to<=_.to&&c.to-c.from>=(_.to-_.from)/3&&(!d||d.main.empty&&d.main.from==c.from+c.insert.length)&&o.inputState.composing<0){let _e=_.fromc.to?b.sliceDoc(c.to,_.to):"";$=b.replaceSelection(o.state.toText(_e+c.insert.sliceString(0,void 0,o.state.lineBreak)+et))}else{let _e=b.changes(c),et=d&&!b.selection.main.eq(d.main)&&d.main.to<=_e.newLength?d.main:void 0;if(b.selection.ranges.length>1&&o.inputState.composing>=0&&c.to<=_.to&&c.to>=_.to-10){let tt=o.state.sliceDoc(c.from,c.to),nt=compositionSurroundingNode(o)||o.state.doc.lineAt(_.head),it=_.to-c.to,rt=_.to-_.from;$=b.changeByRange(st=>{if(st.from==_.from&&st.to==_.to)return{changes:_e,range:et||st.map(_e)};let at=st.to-it,ot=at-tt.length;if(st.to-st.from!=rt||o.state.sliceDoc(ot,at)!=tt||nt&&st.to>=nt.from&&st.from<=nt.to)return{range:st};let ht=b.changes({from:ot,to:at,insert:c.insert}),ct=st.to-_.to;return{changes:ht,range:et?EditorSelection.range(Math.max(0,et.anchor+ct),Math.max(0,et.head+ct)):st.map(ht)}})}else $={changes:_e,selection:et&&b.selection.replaceRange(et)}}let j="input.type";o.composing&&(j+=".compose",o.inputState.compositionFirstChange&&(j+=".start",o.inputState.compositionFirstChange=!1)),o.dispatch($,{scrollIntoView:!0,userEvent:j})}else if(d&&!d.main.eq(_)){let b=!1,k="select";o.inputState.lastSelectionTime>Date.now()-50&&(o.inputState.lastSelectionOrigin=="select"&&(b=!0),k=o.inputState.lastSelectionOrigin),o.dispatch({selection:d,scrollIntoView:b,userEvent:k})}}}function findDiff(o,e,s,a){let c=Math.min(o.length,e.length),d=0;for(;d0&&b>0&&o.charCodeAt(_-1)==e.charCodeAt(b-1);)_--,b--;if(a=="end"){let k=Math.max(0,d-Math.min(_,b));s-=_+k-d}return _=_?d-s:0,b=d+(b-_),_=d):b=b?d-s:0,_=d+(_-b),b=d),{from:d,toA:_,toB:b}}function selectionPoints(o){let e=[];if(o.root.activeElement!=o.contentDOM)return e;let{anchorNode:s,anchorOffset:a,focusNode:c,focusOffset:d}=o.observer.selectionRange;return s&&(e.push(new DOMPoint(s,a)),(c!=s||d!=a)&&e.push(new DOMPoint(c,d))),e}function selectionFromPoints(o,e){if(o.length==0)return null;let s=o[0].pos,a=o.length==2?o[1].pos:s;return s>-1&&a>-1?EditorSelection.single(s+e,a+e):null}class EditorView{constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: absolute; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(s=>this.update([s])),this.dispatch=this.dispatch.bind(this),this.root=e.root||getRoot(e.parent)||document,this.viewState=new ViewState(e.state||EditorState.create()),this.plugins=this.state.facet(viewPlugin).map(s=>new PluginInstance(s));for(let s of this.plugins)s.update(this);this.observer=new DOMObserver(this,(s,a,c)=>{applyDOMChange(this,s,a,c)},s=>{this.inputState.runScrollHandlers(this,s),this.observer.intersecting&&this.measure()}),this.inputState=new InputState(this),this.docView=new DocView(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}dispatch(...e){this._dispatch(e.length==1&&e[0]instanceof Transaction?e[0]:this.state.update(...e))}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let s=!1,a,c=this.state;for(let _ of e){if(_.startState!=c)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");c=_.state}if(this.destroyed){this.viewState.state=c;return}if(c.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(c);a=new ViewUpdate(this,c,e);let d=this.viewState.scrollTarget;try{this.updateState=2;for(let _ of e){if(d&&(d=d.map(_.changes)),_.scrollIntoView){let{main:b}=_.state.selection;d=new ScrollTarget(b.empty?b:EditorSelection.cursor(b.head,b.head>b.anchor?-1:1))}for(let b of _.effects)b.is(scrollTo)?d=new ScrollTarget(b.value):b.is(centerOn)?d=new ScrollTarget(b.value,"center"):b.is(scrollIntoView$1)&&(d=b.value)}this.viewState.update(a,d),this.bidiCache=CachedOrder.update(this.bidiCache,a.changes),a.empty||(this.updatePlugins(a),this.inputState.update(a)),s=this.docView.update(a),this.state.facet(styleModule)!=this.styleModules&&this.mountStyles(),this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(s,e.some(_=>_.isUserEvent("select.pointer")))}finally{this.updateState=0}if(a.startState.facet(theme)!=a.state.facet(theme)&&(this.viewState.mustMeasureContent=!0),(s||d||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!a.empty)for(let _ of this.state.facet(updateListener))_(a)}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let s=this.hasFocus;try{for(let a of this.plugins)a.destroy(this);this.viewState=new ViewState(e),this.plugins=e.facet(viewPlugin).map(a=>new PluginInstance(a)),this.pluginMap.clear();for(let a of this.plugins)a.update(this);this.docView=new DocView(this),this.inputState.ensureHandlers(this),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}s&&this.focus(),this.requestMeasure()}updatePlugins(e){let s=e.startState.facet(viewPlugin),a=e.state.facet(viewPlugin);if(s!=a){let c=[];for(let d of a){let _=s.indexOf(d);if(_<0)c.push(new PluginInstance(d));else{let b=this.plugins[_];b.mustUpdate=e,c.push(b)}}for(let d of this.plugins)d.mustUpdate!=e&&d.destroy(this);this.plugins=c,this.pluginMap.clear(),this.inputState.ensureHandlers(this)}else for(let c of this.plugins)c.mustUpdate=e;for(let c=0;c-1&&cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.flush();let s=null;try{for(let a=0;;a++){this.updateState=1;let c=this.viewport,d=this.viewState.measure(this);if(!d&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let _=[];d&4||([this.measureRequests,_]=[_,this.measureRequests]);let b=_.map(_e=>{try{return _e.read(this)}catch(et){return logException(this.state,et),BadMeasure}}),k=new ViewUpdate(this,this.state),$=!1,j=!1;k.flags|=d,s?s.flags|=d:s=k,this.updateState=2,k.empty||(this.updatePlugins(k),this.inputState.update(k),this.updateAttrs(),$=this.docView.update(k));for(let _e=0;_e<_.length;_e++)if(b[_e]!=BadMeasure)try{let et=_[_e];et.write&&et.write(b[_e],this)}catch(et){logException(this.state,et)}if(this.viewState.scrollTarget&&(this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,j=!0),$&&this.docView.updateSelection(!0),this.viewport.from==c.from&&this.viewport.to==c.to&&!j&&this.measureRequests.length==0)break}}finally{this.updateState=0,this.measureScheduled=-1}if(s&&!s.empty)for(let a of this.state.facet(updateListener))a(s)}get themeClasses(){return baseThemeID+" "+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+" "+this.state.facet(theme)}updateAttrs(){let e=attrsFromFacet(this,editorAttributes,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),s={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(editable)?"true":"false",class:"cm-content",style:`${browser.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(s["aria-readonly"]="true"),attrsFromFacet(this,contentAttributes,s),this.observer.ignore(()=>{updateAttrs(this.contentDOM,this.contentAttrs,s),updateAttrs(this.dom,this.editorAttrs,e)}),this.editorAttrs=e,this.contentAttrs=s}showAnnouncements(e){let s=!0;for(let a of e)for(let c of a.effects)if(c.is(EditorView.announce)){s&&(this.announceDOM.textContent=""),s=!1;let d=this.announceDOM.appendChild(document.createElement("div"));d.textContent=c.value}}mountStyles(){this.styleModules=this.state.facet(styleModule),StyleModule.mount(this.root,this.styleModules.concat(baseTheme$8).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=requestAnimationFrame(()=>this.measure())),e){if(e.key!=null){for(let s=0;sa.spec==e)||null),s&&s.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}blockAtHeight(e,s){let a=ensureTop(s,this);return this.elementAtHeight(e-a).moveY(a)}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}visualLineAtHeight(e,s){let a=ensureTop(s,this);return this.lineBlockAtHeight(e-a).moveY(a)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}viewportLines(e,s){let a=ensureTop(s,this);for(let c of this.viewportLineBlocks)e(c.moveY(a))}get viewportLineBlocks(){return this.viewState.viewportLines}visualLineAt(e,s=0){return this.lineBlockAt(e).moveY(s+this.viewState.paddingTop)}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,s,a){return skipAtoms(this,e,moveByChar(this,e,s,a))}moveByGroup(e,s){return skipAtoms(this,e,moveByChar(this,e,s,a=>byGroup(this,e.head,a)))}moveToLineBoundary(e,s,a=!0){return moveToLineBoundary(this,e,s,a)}moveVertically(e,s,a){return skipAtoms(this,e,moveVertically(this,e,s,a))}scrollPosIntoView(e){this.dispatch({effects:scrollTo.of(EditorSelection.cursor(e))})}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,s=0){return this.docView.posFromDOM(e,s)}posAtCoords(e,s=!0){return this.readMeasured(),posAtCoords(this,e,s)}coordsAtPos(e,s=1){this.readMeasured();let a=this.docView.coordsAt(e,s);if(!a||a.left==a.right)return a;let c=this.state.doc.lineAt(e),d=this.bidiSpans(c),_=d[BidiSpan.find(d,e-c.from,-1,s)];return flattenRect(a,_.dir==Direction.LTR==s>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.heightOracle.direction}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>MaxBidiLine)return trivialOrder(e.length);let s=this.textDirection;for(let c of this.bidiCache)if(c.from==e.from&&c.dir==s)return c.order;let a=computeOrder(e.text,this.textDirection);return this.bidiCache.push(new CachedOrder(e.from,e.to,s,a)),a}get hasFocus(){var e;return(document.hasFocus()||browser.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM),this.docView.updateSelection()})}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,s={}){return scrollIntoView$1.of(new ScrollTarget(typeof e=="number"?EditorSelection.cursor(e):e,s.y,s.x,s.yMargin,s.xMargin))}static domEventHandlers(e){return ViewPlugin.define(()=>({}),{eventHandlers:e})}static theme(e,s){let a=StyleModule.newName(),c=[theme.of(a),styleModule.of(buildTheme(`.${a}`,e))];return s&&s.dark&&c.push(darkTheme.of(!0)),c}static baseTheme(e){return Prec.lowest(styleModule.of(buildTheme("."+baseThemeID,e,lightDarkIDs)))}}EditorView.scrollTo=scrollTo;EditorView.centerOn=centerOn;EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler$1;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.darkTheme=darkTheme;EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"});EditorView.announce=StateEffect.define();const MaxBidiLine=4096;function ensureTop(o,e){return(o==null?e.contentDOM.getBoundingClientRect().top:o)+e.viewState.paddingTop}const BadMeasure={};class CachedOrder{constructor(e,s,a,c){this.from=e,this.to=s,this.dir=a,this.order=c}static update(e,s){if(s.empty)return e;let a=[],c=e.length?e[e.length-1].dir:Direction.LTR;for(let d=Math.max(0,e.length-10);d=0;c--){let d=a[c],_=typeof d=="function"?d(o):d;_&&combineAttrs(_,s)}return s}const currentPlatform=browser.mac?"mac":browser.windows?"win":browser.linux?"linux":"key";function normalizeKeyName(o,e){const s=o.split(/-(?!$)/);let a=s[s.length-1];a=="Space"&&(a=" ");let c,d,_,b;for(let k=0;ka.concat(c),[]))),s}function runScopeHandlers(o,e,s){return runHandlers(getKeymap(o.state),e,o,s)}let storedPrefix=null;const PrefixTimeout=4e3;function buildKeymap(o,e=currentPlatform){let s=Object.create(null),a=Object.create(null),c=(_,b)=>{let k=a[_];if(k==null)a[_]=b;else if(k!=b)throw new Error("Key binding "+_+" is used both as a regular binding and as a multi-stroke prefix")},d=(_,b,k,$)=>{let j=s[_]||(s[_]=Object.create(null)),_e=b.split(/ (?!$)/).map(nt=>normalizeKeyName(nt,e));for(let nt=1;nt<_e.length;nt++){let it=_e.slice(0,nt).join(" ");c(it,!0),j[it]||(j[it]={preventDefault:!0,commands:[rt=>{let st=storedPrefix={view:rt,prefix:it,scope:_};return setTimeout(()=>{storedPrefix==st&&(storedPrefix=null)},PrefixTimeout),!0}]})}let et=_e.join(" ");c(et,!1);let tt=j[et]||(j[et]={preventDefault:!1,commands:[]});tt.commands.push(k),$&&(tt.preventDefault=!0)};for(let _ of o){let b=_[e]||_.key;if(!!b)for(let k of _.scope?_.scope.split(" "):["editor"])d(k,b,_.run,_.preventDefault),_.shift&&d(k,"Shift-"+b,_.shift,_.preventDefault)}return s}function runHandlers(o,e,s,a){let c=keyName(e),d=c.length==1&&c!=" ",_="",b=!1;storedPrefix&&storedPrefix.view==s&&storedPrefix.scope==a&&(_=storedPrefix.prefix+" ",(b=modifierCodes.indexOf(e.keyCode)<0)&&(storedPrefix=null));let k=_e=>{if(_e){for(let et of _e.commands)if(et(s))return!0;_e.preventDefault&&(b=!0)}return!1},$=o[a],j;if($){if(k($[_+modifiers(c,e,!d)]))return!0;if(d&&(e.shiftKey||e.altKey||e.metaKey)&&(j=base[e.keyCode])&&j!=c){if(k($[_+modifiers(j,e,!0)]))return!0}else if(d&&e.shiftKey&&k($[_+modifiers(c,e,!0)]))return!0}return b}const CanHidePrimary=!browser.ios,selectionConfig=Facet.define({combine(o){return combineConfig(o,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,s)=>Math.min(e,s),drawRangeCursor:(e,s)=>e||s})}});function drawSelection(o={}){return[selectionConfig.of(o),drawSelectionPlugin,hideNativeSelection]}class Piece{constructor(e,s,a,c,d){this.left=e,this.top=s,this.width=a,this.height=c,this.className=d}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width>=0&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}}const drawSelectionPlugin=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.rangePieces=[],this.cursors=[],this.measureReq={read:this.readPos.bind(this),write:this.drawSel.bind(this)},this.selectionLayer=o.scrollDOM.appendChild(document.createElement("div")),this.selectionLayer.className="cm-selectionLayer",this.selectionLayer.setAttribute("aria-hidden","true"),this.cursorLayer=o.scrollDOM.appendChild(document.createElement("div")),this.cursorLayer.className="cm-cursorLayer",this.cursorLayer.setAttribute("aria-hidden","true"),o.requestMeasure(this.measureReq),this.setBlinkRate()}setBlinkRate(){this.cursorLayer.style.animationDuration=this.view.state.facet(selectionConfig).cursorBlinkRate+"ms"}update(o){let e=o.startState.facet(selectionConfig)!=o.state.facet(selectionConfig);(e||o.selectionSet||o.geometryChanged||o.viewportChanged)&&this.view.requestMeasure(this.measureReq),o.transactions.some(s=>s.scrollIntoView)&&(this.cursorLayer.style.animationName=this.cursorLayer.style.animationName=="cm-blink"?"cm-blink2":"cm-blink"),e&&this.setBlinkRate()}readPos(){let{state:o}=this.view,e=o.facet(selectionConfig),s=o.selection.ranges.map(c=>c.empty?[]:measureRange(this.view,c)).reduce((c,d)=>c.concat(d)),a=[];for(let c of o.selection.ranges){let d=c==o.selection.main;if(c.empty?!d||CanHidePrimary:e.drawRangeCursor){let _=measureCursor(this.view,c,d);_&&a.push(_)}}return{rangePieces:s,cursors:a}}drawSel({rangePieces:o,cursors:e}){if(o.length!=this.rangePieces.length||o.some((s,a)=>!s.eq(this.rangePieces[a]))){this.selectionLayer.textContent="";for(let s of o)this.selectionLayer.appendChild(s.draw());this.rangePieces=o}if(e.length!=this.cursors.length||e.some((s,a)=>!s.eq(this.cursors[a]))){let s=this.cursorLayer.children;if(s.length!==e.length){this.cursorLayer.textContent="";for(const a of e)this.cursorLayer.appendChild(a.draw())}else e.forEach((a,c)=>a.adjust(s[c]));this.cursors=e}}destroy(){this.selectionLayer.remove(),this.cursorLayer.remove()}}),themeSpec={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};CanHidePrimary&&(themeSpec[".cm-line"].caretColor="transparent !important");const hideNativeSelection=Prec.highest(EditorView.theme(themeSpec));function getBase(o){let e=o.scrollDOM.getBoundingClientRect();return{left:(o.textDirection==Direction.LTR?e.left:e.right-o.scrollDOM.clientWidth)-o.scrollDOM.scrollLeft,top:e.top-o.scrollDOM.scrollTop}}function wrappedLine(o,e,s){let a=EditorSelection.cursor(e);return{from:Math.max(s.from,o.moveToLineBoundary(a,!1,!0).from),to:Math.min(s.to,o.moveToLineBoundary(a,!0,!0).from),type:BlockType.Text}}function blockAt(o,e){let s=o.lineBlockAt(e);if(Array.isArray(s.type)){for(let a of s.type)if(a.to>e||a.to==e&&(a.to==s.to||a.type==BlockType.Text))return a}return s}function measureRange(o,e){if(e.to<=o.viewport.from||e.from>=o.viewport.to)return[];let s=Math.max(e.from,o.viewport.from),a=Math.min(e.to,o.viewport.to),c=o.textDirection==Direction.LTR,d=o.contentDOM,_=d.getBoundingClientRect(),b=getBase(o),k=window.getComputedStyle(d.firstChild),$=_.left+parseInt(k.paddingLeft)+Math.min(0,parseInt(k.textIndent)),j=_.right-parseInt(k.paddingRight),_e=blockAt(o,s),et=blockAt(o,a),tt=_e.type==BlockType.Text?_e:null,nt=et.type==BlockType.Text?et:null;if(o.lineWrapping&&(tt&&(tt=wrappedLine(o,s,tt)),nt&&(nt=wrappedLine(o,a,nt))),tt&&nt&&tt.from==nt.from)return rt(st(e.from,e.to,tt));{let ot=tt?st(e.from,null,tt):at(_e,!1),ht=nt?st(null,e.to,nt):at(et,!0),ct=[];return(tt||_e).to<(nt||et).from-1?ct.push(it($,ot.bottom,j,ht.top)):ot.bottomgt&&ft.from=mt)break;Ct>yt&&dt(Math.max(Ot,yt),ot==null&&Ot<=gt,Math.min(Ct,mt),ht==null&&Ct>=Et,At.dir)}if(yt=St.to+1,yt>=mt)break}return pt.length==0&&dt(gt,ot==null,Et,ht==null,o.textDirection),{top:ut,bottom:lt,horizontal:pt}}function at(ot,ht){let ct=_.top+(ht?ot.top:ot.bottom);return{top:ct,bottom:ct,horizontal:[]}}}function measureCursor(o,e,s){let a=o.coordsAtPos(e.head,e.assoc||1);if(!a)return null;let c=getBase(o);return new Piece(a.left-c.left,a.top-c.top,-1,a.bottom-a.top,s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary")}function iterMatches(o,e,s,a,c){e.lastIndex=0;for(let d=o.iterRange(s,a),_=s,b;!d.next().done;_+=d.value.length)if(!d.lineBreak)for(;b=e.exec(d.value);)c(_+b.index,_+b.index+b[0].length,b)}function matchRanges(o,e){let s=o.visibleRanges;if(s.length==1&&s[0].from==o.viewport.from&&s[0].to==o.viewport.to)return s;let a=[];for(let{from:c,to:d}of s)c=Math.max(o.state.doc.lineAt(c).from,c-e),d=Math.min(o.state.doc.lineAt(d).to,d+e),a.length&&a[a.length-1].to>=c?a[a.length-1].to=d:a.push({from:c,to:d});return a}class MatchDecorator{constructor(e){let{regexp:s,decoration:a,boundary:c,maxLength:d=1e3}=e;if(!s.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");this.regexp=s,this.getDeco=typeof a=="function"?a:()=>a,this.boundary=c,this.maxLength=d}createDeco(e){let s=new RangeSetBuilder;for(let{from:a,to:c}of matchRanges(e,this.maxLength))iterMatches(e.state.doc,this.regexp,a,c,(d,_,b)=>s.add(d,_,this.getDeco(b,e,d)));return s.finish()}updateDeco(e,s){let a=1e9,c=-1;return e.docChanged&&e.changes.iterChanges((d,_,b,k)=>{k>e.view.viewport.from&&b1e3?this.createDeco(e.view):c>-1?this.updateRange(e.view,s.map(e.changes),a,c):s}updateRange(e,s,a,c){for(let d of e.visibleRanges){let _=Math.max(d.from,a),b=Math.min(d.to,c);if(b>_){let k=e.state.doc.lineAt(_),$=k.tok.from;_--)if(this.boundary.test(k.text[_-1-k.from])){j=_;break}for(;b<$.to;b++)if(this.boundary.test($.text[b-$.from])){_e=b;break}}let et=[],tt;if(k==$)for(this.regexp.lastIndex=j-k.from;(tt=this.regexp.exec(k.text))&&tt.index<_e-k.from;){let nt=tt.index+k.from;et.push(this.getDeco(tt,e,nt).range(nt,nt+tt[0].length))}else iterMatches(e.state.doc,this.regexp,j,_e,(nt,it,rt)=>et.push(this.getDeco(rt,e,nt).range(nt,it)));s=s.update({filterFrom:j,filterTo:_e,filter:(nt,it)=>nt_e,add:et})}}return s}}const UnicodeRegexpSupport=/x/.unicode!=null?"gu":"g",Specials=new RegExp(`[\0-\b --\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\uFEFF\uFFF9-\uFFFC]`,UnicodeRegexpSupport),Names={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let _supportsTabSize=null;function supportsTabSize(){var o;if(_supportsTabSize==null&&typeof document!="undefined"&&document.body){let e=document.body.style;_supportsTabSize=((o=e.tabSize)!==null&&o!==void 0?o:e.MozTabSize)!=null}return _supportsTabSize||!1}const specialCharConfig=Facet.define({combine(o){let e=combineConfig(o,{render:null,specialChars:Specials,addSpecialChars:null});return(e.replaceTabs=!supportsTabSize())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,UnicodeRegexpSupport)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,UnicodeRegexpSupport)),e}});function highlightSpecialChars(o={}){return[specialCharConfig.of(o),specialCharPlugin()]}let _plugin=null;function specialCharPlugin(){return _plugin||(_plugin=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.decorations=Decoration.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(o.state.facet(specialCharConfig)),this.decorations=this.decorator.createDeco(o)}makeDecorator(o){return new MatchDecorator({regexp:o.specialChars,decoration:(e,s,a)=>{let{doc:c}=s.state,d=codePointAt(e[0],0);if(d==9){let _=c.lineAt(a),b=s.state.tabSize,k=countColumn(_.text,b,a-_.from);return Decoration.replace({widget:new TabWidget((b-k%b)*this.view.defaultCharacterWidth)})}return this.decorationCache[d]||(this.decorationCache[d]=Decoration.replace({widget:new SpecialCharWidget(o,d)}))},boundary:o.replaceTabs?void 0:/[^]/})}update(o){let e=o.state.facet(specialCharConfig);o.startState.facet(specialCharConfig)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(o.view)):this.decorations=this.decorator.updateDeco(o,this.decorations)}},{decorations:o=>o.decorations}))}const DefaultPlaceholder="\u2022";function placeholder$1(o){return o>=32?DefaultPlaceholder:o==10?"\u2424":String.fromCharCode(9216+o)}class SpecialCharWidget extends WidgetType{constructor(e,s){super(),this.options=e,this.code=s}eq(e){return e.code==this.code}toDOM(e){let s=placeholder$1(this.code),a=e.state.phrase("Control character")+" "+(Names[this.code]||"0x"+this.code.toString(16)),c=this.options.render&&this.options.render(this.code,a,s);if(c)return c;let d=document.createElement("span");return d.textContent=s,d.title=a,d.setAttribute("aria-label",a),d.className="cm-specialChar",d}ignoreEvent(){return!1}}class TabWidget extends WidgetType{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function highlightActiveLine(){return activeLineHighlighter}const lineDeco=Decoration.line({class:"cm-activeLine"}),activeLineHighlighter=ViewPlugin.fromClass(class{constructor(o){this.decorations=this.getDeco(o)}update(o){(o.docChanged||o.selectionSet)&&(this.decorations=this.getDeco(o.view))}getDeco(o){let e=-1,s=[];for(let a of o.state.selection.ranges){if(!a.empty)return Decoration.none;let c=o.lineBlockAt(a.head);c.from>e&&(s.push(lineDeco.range(c.from)),e=c.from)}return Decoration.set(s)}},{decorations:o=>o.decorations}),fromHistory=Annotation.define(),isolateHistory=Annotation.define(),invertedEffects=Facet.define(),historyConfig=Facet.define({combine(o){return combineConfig(o,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}});function changeEnd(o){let e=0;return o.iterChangedRanges((s,a)=>e=a),e}const historyField_=StateField.define({create(){return HistoryState.empty},update(o,e){let s=e.state.facet(historyConfig),a=e.annotation(fromHistory);if(a){let k=e.docChanged?EditorSelection.single(changeEnd(e.changes)):void 0,$=HistEvent.fromTransaction(e,k),j=a.side,_e=j==0?o.undone:o.done;return $?_e=updateBranch(_e,_e.length,s.minDepth,$):_e=addSelection(_e,e.startState.selection),new HistoryState(j==0?a.rest:_e,j==0?_e:a.rest)}let c=e.annotation(isolateHistory);if((c=="full"||c=="before")&&(o=o.isolate()),e.annotation(Transaction.addToHistory)===!1)return e.changes.empty?o:o.addMapping(e.changes.desc);let d=HistEvent.fromTransaction(e),_=e.annotation(Transaction.time),b=e.annotation(Transaction.userEvent);return d?o=o.addChanges(d,_,b,s.newGroupDelay,s.minDepth):e.selection&&(o=o.addSelection(e.startState.selection,_,b,s.newGroupDelay)),(c=="full"||c=="after")&&(o=o.isolate()),o},toJSON(o){return{done:o.done.map(e=>e.toJSON()),undone:o.undone.map(e=>e.toJSON())}},fromJSON(o){return new HistoryState(o.done.map(HistEvent.fromJSON),o.undone.map(HistEvent.fromJSON))}});function history(o={}){return[historyField_,historyConfig.of(o),EditorView.domEventHandlers({beforeinput(e,s){let a=e.inputType=="historyUndo"?undo:e.inputType=="historyRedo"?redo:null;return a?(e.preventDefault(),a(s)):!1}})]}function cmd(o,e){return function({state:s,dispatch:a}){if(!e&&s.readOnly)return!1;let c=s.field(historyField_,!1);if(!c)return!1;let d=c.pop(o,s,e);return d?(a(d),!0):!1}}const undo=cmd(0,!1),redo=cmd(1,!1),undoSelection=cmd(0,!0),redoSelection=cmd(1,!0);class HistEvent{constructor(e,s,a,c,d){this.changes=e,this.effects=s,this.mapped=a,this.startSelection=c,this.selectionsAfter=d}setSelAfter(e){return new HistEvent(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,s,a;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(s=this.mapped)===null||s===void 0?void 0:s.toJSON(),startSelection:(a=this.startSelection)===null||a===void 0?void 0:a.toJSON(),selectionsAfter:this.selectionsAfter.map(c=>c.toJSON())}}static fromJSON(e){return new HistEvent(e.changes&&ChangeSet.fromJSON(e.changes),[],e.mapped&&ChangeDesc.fromJSON(e.mapped),e.startSelection&&EditorSelection.fromJSON(e.startSelection),e.selectionsAfter.map(EditorSelection.fromJSON))}static fromTransaction(e,s){let a=none$1;for(let c of e.startState.facet(invertedEffects)){let d=c(e);d.length&&(a=a.concat(d))}return!a.length&&e.changes.empty?null:new HistEvent(e.changes.invert(e.startState.doc),a,void 0,s||e.startState.selection,none$1)}static selection(e){return new HistEvent(void 0,none$1,void 0,void 0,e)}}function updateBranch(o,e,s,a){let c=e+1>s+20?e-s-1:0,d=o.slice(c,e);return d.push(a),d}function isAdjacent(o,e){let s=[],a=!1;return o.iterChangedRanges((c,d)=>s.push(c,d)),e.iterChangedRanges((c,d,_,b)=>{for(let k=0;k=$&&_<=j&&(a=!0)}}),a}function eqSelectionShape(o,e){return o.ranges.length==e.ranges.length&&o.ranges.filter((s,a)=>s.empty!=e.ranges[a].empty).length===0}function conc(o,e){return o.length?e.length?o.concat(e):o:e}const none$1=[],MaxSelectionsPerEvent=200;function addSelection(o,e){if(o.length){let s=o[o.length-1],a=s.selectionsAfter.slice(Math.max(0,s.selectionsAfter.length-MaxSelectionsPerEvent));return a.length&&a[a.length-1].eq(e)?o:(a.push(e),updateBranch(o,o.length-1,1e9,s.setSelAfter(a)))}else return[HistEvent.selection([e])]}function popSelection(o){let e=o[o.length-1],s=o.slice();return s[o.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),s}function addMappingToBranch(o,e){if(!o.length)return o;let s=o.length,a=none$1;for(;s;){let c=mapEvent(o[s-1],e,a);if(c.changes&&!c.changes.empty||c.effects.length){let d=o.slice(0,s);return d[s-1]=c,d}else e=c.mapped,s--,a=c.selectionsAfter}return a.length?[HistEvent.selection(a)]:none$1}function mapEvent(o,e,s){let a=conc(o.selectionsAfter.length?o.selectionsAfter.map(b=>b.map(e)):none$1,s);if(!o.changes)return HistEvent.selection(a);let c=o.changes.map(e),d=e.mapDesc(o.changes,!0),_=o.mapped?o.mapped.composeDesc(d):d;return new HistEvent(c,StateEffect.mapEffects(o.effects,e),_,o.startSelection.map(d),a)}const joinableUserEvent=/^(input\.type|delete)($|\.)/;class HistoryState{constructor(e,s,a=0,c=void 0){this.done=e,this.undone=s,this.prevTime=a,this.prevUserEvent=c}isolate(){return this.prevTime?new HistoryState(this.done,this.undone):this}addChanges(e,s,a,c,d){let _=this.done,b=_[_.length-1];return b&&b.changes&&!b.changes.empty&&e.changes&&(!a||joinableUserEvent.test(a))&&(!b.selectionsAfter.length&&s-this.prevTime0&&s-this.prevTime{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=NodeType.match(e)),s=>{let a=e(s);return a===void 0?null:[this,a]}}}NodeProp.closedBy=new NodeProp({deserialize:o=>o.split(" ")});NodeProp.openedBy=new NodeProp({deserialize:o=>o.split(" ")});NodeProp.group=new NodeProp({deserialize:o=>o.split(" ")});NodeProp.contextHash=new NodeProp({perNode:!0});NodeProp.lookAhead=new NodeProp({perNode:!0});NodeProp.mounted=new NodeProp({perNode:!0});const noProps=Object.create(null);class NodeType{constructor(e,s,a,c=0){this.name=e,this.props=s,this.id=a,this.flags=c}static define(e){let s=e.props&&e.props.length?Object.create(null):noProps,a=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),c=new NodeType(e.name||"",s,e.id,a);if(e.props){for(let d of e.props)if(Array.isArray(d)||(d=d(c)),d){if(d[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");s[d[0].id]=d[1]}}return c}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let s=this.prop(NodeProp.group);return s?s.indexOf(e)>-1:!1}return this.id==e}static match(e){let s=Object.create(null);for(let a in e)for(let c of a.split(" "))s[c]=e[a];return a=>{for(let c=a.prop(NodeProp.group),d=-1;d<(c?c.length:0);d++){let _=s[d<0?a.name:c[d]];if(_)return _}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(e){this.types=e;for(let s=0;s_.node;;){let k=!1;if(_.from<=d&&_.to>=c&&(_.type.isAnonymous||s(_.type,_.from,_.to,b)!==!1)){if(_.firstChild())continue;_.type.isAnonymous||(k=!0)}for(;k&&a&&a(_.type,_.from,_.to,b),k=_.type.isAnonymous,!_.nextSibling();){if(!_.parent())return;k=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let s in this.props)e.push([+s,this.props[s]]);return e}balance(e={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(s,a,c)=>new Tree(this.type,s,a,c,this.propValues),e.makeTree||((s,a,c)=>new Tree(NodeType.none,s,a,c)))}static build(e){return buildTree(e)}}Tree.empty=new Tree(NodeType.none,[],[],0);class FlatBufferCursor{constructor(e,s){this.buffer=e,this.index=s}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new FlatBufferCursor(this.buffer,this.index)}}class TreeBuffer{constructor(e,s,a){this.buffer=e,this.length=s,this.set=a}get type(){return NodeType.none}toString(){let e=[];for(let s=0;s0));k=_[k+3]);return b}slice(e,s,a,c){let d=this.buffer,_=new Uint16Array(s-e);for(let b=e,k=0;b=e&&se;case 1:return s<=e&&a>e;case 2:return a>e;case 4:return!0}}function enterUnfinishedNodesBefore(o,e){let s=o.childBefore(e);for(;s;){let a=s.lastChild;if(!a||a.to!=s.to)break;a.type.isError&&a.from==a.to?(o=s,s=a.prevSibling):s=a}return o}function resolveNode(o,e,s,a){for(var c;o.from==o.to||(s<1?o.from>=e:o.from>e)||(s>-1?o.to<=e:o.to0?b.length:-1;e!=$;e+=s){let j=b[e],_e=k[e]+_._from;if(!!checkSide(c,a,_e,_e+j.length)){if(j instanceof TreeBuffer){if(d&2)continue;let et=j.findChild(0,j.buffer.length,s,a-_e,c);if(et>-1)return new BufferNode(new BufferContext(_,j,e,_e),null,et)}else if(d&1||!j.type.isAnonymous||hasChild(j)){let et;if(!(d&1)&&j.props&&(et=j.prop(NodeProp.mounted))&&!et.overlay)return new TreeNode(et.tree,_e,e,_);let tt=new TreeNode(j,_e,e,_);return d&1||!tt.type.isAnonymous?tt:tt.nextChild(s<0?j.children.length-1:0,s,a,c)}}}if(d&1||!_.type.isAnonymous||(_.index>=0?e=_.index+s:e=s<0?-1:_._parent.node.children.length,_=_._parent,!_))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this.node.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this.node.children.length-1,-1,e,-2)}enter(e,s,a=!0,c=!0){let d;if(a&&(d=this.node.prop(NodeProp.mounted))&&d.overlay){let _=e-this.from;for(let{from:b,to:k}of d.overlay)if((s>0?b<=_:b<_)&&(s<0?k>=_:k>_))return new TreeNode(d.tree,d.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,s,c?0:2)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get cursor(){return new TreeCursor(this)}get tree(){return this.node}toTree(){return this.node}resolve(e,s=0){return resolveNode(this,e,s,!1)}resolveInner(e,s=0){return resolveNode(this,e,s,!0)}enterUnfinishedNodesBefore(e){return enterUnfinishedNodesBefore(this,e)}getChild(e,s=null,a=null){let c=getChildren(this,e,s,a);return c.length?c[0]:null}getChildren(e,s=null,a=null){return getChildren(this,e,s,a)}toString(){return this.node.toString()}}function getChildren(o,e,s,a){let c=o.cursor,d=[];if(!c.firstChild())return d;if(s!=null){for(;!c.type.is(s);)if(!c.nextSibling())return d}for(;;){if(a!=null&&c.type.is(a))return d;if(c.type.is(e)&&d.push(c.node),!c.nextSibling())return a==null?d:[]}}class BufferContext{constructor(e,s,a,c){this.parent=e,this.buffer=s,this.index=a,this.start=c}}class BufferNode{constructor(e,s,a){this.context=e,this._parent=s,this.index=a,this.type=e.buffer.set.types[e.buffer.buffer[a]]}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}child(e,s,a){let{buffer:c}=this.context,d=c.findChild(this.index+4,c.buffer[this.index+3],e,s-this.context.start,a);return d<0?null:new BufferNode(this.context,this,d)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,s,a,c=!0){if(!c)return null;let{buffer:d}=this.context,_=d.findChild(this.index+4,d.buffer[this.index+3],s>0?1:-1,e-this.context.start,s);return _<0?null:new BufferNode(this.context,this,_)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,s=e.buffer[this.index+3];return s<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new BufferNode(this.context,this._parent,s):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,s=this._parent?this._parent.index+4:0;return this.index==s?this.externalSibling(-1):new BufferNode(this.context,this._parent,e.findChild(s,this.index,-1,0,4))}get cursor(){return new TreeCursor(this)}get tree(){return null}toTree(){let e=[],s=[],{buffer:a}=this.context,c=this.index+4,d=a.buffer[this.index+3];if(d>c){let _=a.buffer[this.index+1],b=a.buffer[this.index+2];e.push(a.slice(c,d,_,b)),s.push(0)}return new Tree(this.type,e,s,this.to-this.from)}resolve(e,s=0){return resolveNode(this,e,s,!1)}resolveInner(e,s=0){return resolveNode(this,e,s,!0)}enterUnfinishedNodesBefore(e){return enterUnfinishedNodesBefore(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,s=null,a=null){let c=getChildren(this,e,s,a);return c.length?c[0]:null}getChildren(e,s=null,a=null){return getChildren(this,e,s,a)}}class TreeCursor{constructor(e,s=0){if(this.mode=s,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof TreeNode)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let a=e._parent;a;a=a._parent)this.stack.unshift(a.index);this.bufferNode=e,this.yieldBuf(e.index)}}get name(){return this.type.name}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,s){this.index=e;let{start:a,buffer:c}=this.buffer;return this.type=s||c.set.types[c.buffer[e]],this.from=a+c.buffer[e+1],this.to=a+c.buffer[e+2],!0}yield(e){return e?e instanceof TreeNode?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,s,a){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree.node.children.length-1:0,e,s,a,this.mode));let{buffer:c}=this.buffer,d=c.findChild(this.index+4,c.buffer[this.index+3],e,s-this.buffer.start,a);return d<0?!1:(this.stack.push(this.index),this.yieldBuf(d))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,s,a=!0,c=!0){return this.buffer?c?this.enterChild(1,e,s):!1:this.yield(this._tree.enter(e,s,a&&!(this.mode&1),c))}parent(){if(!this.buffer)return this.yieldNode(this.mode&1?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&1?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:s}=this.buffer,a=this.stack.length-1;if(e<0){let c=a<0?0:this.stack[a]+4;if(this.index!=c)return this.yieldBuf(s.findChild(c,this.index,-1,0,4))}else{let c=s.buffer[this.index+3];if(c<(a<0?s.buffer.length:s.buffer[this.stack[a]+3]))return this.yieldBuf(c)}return a<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let s,a,{buffer:c}=this;if(c){if(e>0){if(this.index-1)for(let d=s+e,_=e<0?-1:a.node.children.length;d!=_;d+=e){let b=a.node.children[d];if(this.mode&1||b instanceof TreeBuffer||!b.type.isAnonymous||hasChild(b))return!1}return!0}move(e,s){if(s&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,s=0){for(;(this.from==this.to||(s<1?this.from>=e:this.from>e)||(s>-1?this.to<=e:this.to=0;){for(let _=e;_;_=_._parent)if(_.index==c){if(c==this.index)return _;s=_,a=d+1;break e}c=this.stack[--d]}}for(let c=a;ce instanceof TreeBuffer||!e.type.isAnonymous||hasChild(e))}function buildTree(o){var e;let{buffer:s,nodeSet:a,maxBufferLength:c=DefaultBufferLength,reused:d=[],minRepeatType:_=a.types.length}=o,b=Array.isArray(s)?new FlatBufferCursor(s,s.length):s,k=a.types,$=0,j=0;function _e(ht,ct,ut,lt,pt){let{id:dt,start:gt,end:Et,size:ft}=b,yt=j;for(;ft<0;)if(b.next(),ft==-1){let Ct=d[dt];ut.push(Ct),lt.push(gt-ht);return}else if(ft==-3){$=dt;return}else if(ft==-4){j=dt;return}else throw new RangeError(`Unrecognized record size: ${ft}`);let mt=k[dt],St,At,Ot=gt-ht;if(Et-gt<=c&&(At=it(b.pos-ct,pt))){let Ct=new Uint16Array(At.size-At.skip),Dt=b.pos-At.size,Tt=Ct.length;for(;b.pos>Dt;)Tt=rt(At.start,Ct,Tt);St=new TreeBuffer(Ct,Et-At.start,a),Ot=At.start-ht}else{let Ct=b.pos-ft;b.next();let Dt=[],Tt=[],vt=dt>=_?dt:-1,bt=0,xt=Et;for(;b.pos>Ct;)vt>=0&&b.id==vt&&b.size>=0?(b.end<=xt-c&&(tt(Dt,Tt,gt,bt,b.end,xt,vt,yt),bt=Dt.length,xt=b.end),b.next()):_e(gt,Ct,Dt,Tt,vt);if(vt>=0&&bt>0&&bt-1&&bt>0){let Rt=et(mt);St=balanceRange(mt,Dt,Tt,0,Dt.length,0,Et-gt,Rt,Rt)}else St=nt(mt,Dt,Tt,Et-gt,yt-Et)}ut.push(St),lt.push(Ot)}function et(ht){return(ct,ut,lt)=>{let pt=0,dt=ct.length-1,gt,Et;if(dt>=0&&(gt=ct[dt])instanceof Tree){if(!dt&>.type==ht&>.length==lt)return gt;(Et=gt.prop(NodeProp.lookAhead))&&(pt=ut[dt]+gt.length+Et)}return nt(ht,ct,ut,lt,pt)}}function tt(ht,ct,ut,lt,pt,dt,gt,Et){let ft=[],yt=[];for(;ht.length>lt;)ft.push(ht.pop()),yt.push(ct.pop()+ut-pt);ht.push(nt(a.types[gt],ft,yt,dt-pt,Et-dt)),ct.push(pt-ut)}function nt(ht,ct,ut,lt,pt=0,dt){if($){let gt=[NodeProp.contextHash,$];dt=dt?[gt].concat(dt):[gt]}if(pt>25){let gt=[NodeProp.lookAhead,pt];dt=dt?[gt].concat(dt):[gt]}return new Tree(ht,ct,ut,lt,dt)}function it(ht,ct){let ut=b.fork(),lt=0,pt=0,dt=0,gt=ut.end-c,Et={size:0,start:0,skip:0};e:for(let ft=ut.pos-ht;ut.pos>ft;){let yt=ut.size;if(ut.id==ct&&yt>=0){Et.size=lt,Et.start=pt,Et.skip=dt,dt+=4,lt+=4,ut.next();continue}let mt=ut.pos-yt;if(yt<0||mt=_?4:0,At=ut.start;for(ut.next();ut.pos>mt;){if(ut.size<0)if(ut.size==-3)St+=4;else break e;else ut.id>=_&&(St+=4);ut.next()}pt=At,lt+=yt,dt+=St}return(ct<0||lt==ht)&&(Et.size=lt,Et.start=pt,Et.skip=dt),Et.size>4?Et:void 0}function rt(ht,ct,ut){let{id:lt,start:pt,end:dt,size:gt}=b;if(b.next(),gt>=0&<<_){let Et=ut;if(gt>4){let ft=b.pos-(gt-4);for(;b.pos>ft;)ut=rt(ht,ct,ut)}ct[--ut]=Et,ct[--ut]=dt-ht,ct[--ut]=pt-ht,ct[--ut]=lt}else gt==-3?$=lt:gt==-4&&(j=lt);return ut}let st=[],at=[];for(;b.pos>0;)_e(o.start||0,o.bufferStart||0,st,at,-1);let ot=(e=o.length)!==null&&e!==void 0?e:st.length?at[0]+st[0].length:0;return new Tree(k[o.topID],st.reverse(),at.reverse(),ot)}const nodeSizeCache=new WeakMap;function nodeSize(o,e){if(!o.isAnonymous||e instanceof TreeBuffer||e.type!=o)return 1;let s=nodeSizeCache.get(e);if(s==null){s=1;for(let a of e.children){if(a.type!=o||!(a instanceof Tree)){s=1;break}s+=nodeSize(o,a)}nodeSizeCache.set(e,s)}return s}function balanceRange(o,e,s,a,c,d,_,b,k){let $=0;for(let nt=a;nt=j)break;ut+=lt}if(ot==ht+1){if(ut>j){let lt=nt[ht];tt(lt.children,lt.positions,0,lt.children.length,it[ht]+at);continue}_e.push(nt[ht])}else{let lt=it[ot-1]+nt[ot-1].length-ct;_e.push(balanceRange(o,nt,it,ht,ot,ct,lt,null,k))}et.push(ct+at-d)}}return tt(e,s,a,c,0),(b||k)(_e,et,_)}class TreeFragment{constructor(e,s,a,c,d=!1,_=!1){this.from=e,this.to=s,this.tree=a,this.offset=c,this.open=(d?1:0)|(_?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,s=[],a=!1){let c=[new TreeFragment(0,e.length,e,0,!1,a)];for(let d of s)d.to>e.length&&c.push(d);return c}static applyChanges(e,s,a=128){if(!s.length)return e;let c=[],d=1,_=e.length?e[0]:null;for(let b=0,k=0,$=0;;b++){let j=b=a)for(;_&&_.from<_e;){let et=_;if(k>=et.from||_e<=et.to||$){let tt=Math.max(et.from,k)-$,nt=Math.min(et.to,_e)-$;et=tt>=nt?null:new TreeFragment(tt,nt,et.tree,et.offset+$,b>0,!!j)}if(et&&c.push(et),_.to>_e)break;_=dnew Range(c.from,c.to)):[new Range(0,0)]:[new Range(0,e.length)],this.createParse(e,s||[],a)}parse(e,s,a){let c=this.startParse(e,s,a);for(;;){let d=c.advance();if(d)return d}}}class StringInput{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,s){return this.string.slice(e,s)}}new NodeProp({perNode:!0});var _a;const languageDataProp=new NodeProp;function defineLanguageFacet(o){return Facet.define({combine:o?e=>e.concat(o):void 0})}class Language{constructor(e,s,a,c=[]){this.data=e,this.topNode=a,EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}}),this.parser=s,this.extension=[language.of(this),EditorState.languageData.of((d,_,b)=>d.facet(languageDataFacetAt(d,_,b)))].concat(c)}isActiveAt(e,s,a=-1){return languageDataFacetAt(e,s,a)==this.data}findRegions(e){let s=e.facet(language);if((s==null?void 0:s.data)==this.data)return[{from:0,to:e.doc.length}];if(!s||!s.allowsNesting)return[];let a=[],c=(d,_)=>{if(d.prop(languageDataProp)==this.data){a.push({from:_,to:_+d.length});return}let b=d.prop(NodeProp.mounted);if(b){if(b.tree.prop(languageDataProp)==this.data){if(b.overlay)for(let k of b.overlay)a.push({from:k.from+_,to:k.to+_});else a.push({from:_,to:_+d.length});return}else if(b.overlay){let k=a.length;if(c(b.tree,b.overlay[0].from+_),a.length>k)return}}for(let k=0;ka.isTop?s:void 0)]}))}configure(e){return new LRLanguage(this.data,this.parser.configure(e))}get allowsNesting(){return this.parser.wrappers.length>0}}function syntaxTree(o){let e=o.field(Language.state,!1);return e?e.tree:Tree.empty}class DocInput{constructor(e,s=e.length){this.doc=e,this.length=s,this.cursorPos=0,this.string="",this.cursor=e.iter()}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,s){let a=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,s):this.string.slice(e-a,s-a)}}let currentContext=null;class ParseContext{constructor(e,s,a=[],c,d,_,b,k){this.parser=e,this.state=s,this.fragments=a,this.tree=c,this.treeLen=d,this.viewport=_,this.skipped=b,this.scheduleOn=k,this.parse=null,this.tempSkipped=[]}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments)}work(e,s){return s!=null&&s>=this.state.doc.length&&(s=void 0),this.tree!=Tree.empty&&this.isDone(s!=null?s:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var a;if(typeof e=="number"){let c=Date.now()+e;e=()=>Date.now()>c}for(this.parse||(this.parse=this.startParse()),s!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>s)&&s=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(s=this.parse.advance()););}),this.treeLen=e,this.tree=s,this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let s=currentContext;currentContext=this;try{return e()}finally{currentContext=s}}withoutTempSkipped(e){for(let s;s=this.tempSkipped.pop();)e=cutFragments(e,s.from,s.to);return e}changes(e,s){let{fragments:a,tree:c,treeLen:d,viewport:_,skipped:b}=this;if(this.takeTree(),!e.empty){let k=[];if(e.iterChangedRanges(($,j,_e,et)=>k.push({fromA:$,toA:j,fromB:_e,toB:et})),a=TreeFragment.applyChanges(a,k),c=Tree.empty,d=0,_={from:e.mapPos(_.from,-1),to:e.mapPos(_.to,1)},this.skipped.length){b=[];for(let $ of this.skipped){let j=e.mapPos($.from,1),_e=e.mapPos($.to,-1);j<_e&&b.push({from:j,to:_e})}}}return new ParseContext(this.parser,s,a,c,d,_,b,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let s=this.skipped.length;for(let a=0;ae.from&&(this.fragments=cutFragments(this.fragments,c,d),this.skipped.splice(a--,1))}return this.skipped.length>=s?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,s){this.skipped.push({from:e,to:s})}static getSkippingParser(e){return new class extends Parser{createParse(s,a,c){let d=c[0].from,_=c[c.length-1].to;return{parsedPos:d,advance(){let k=currentContext;if(k){for(let $ of c)k.tempSkipped.push($);e&&(k.scheduleOn=k.scheduleOn?Promise.all([k.scheduleOn,e]):e)}return this.parsedPos=_,new Tree(NodeType.none,[],[],_-d)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let s=this.fragments;return this.treeLen>=e&&s.length&&s[0].from==0&&s[0].to>=e}static get(){return currentContext}}function cutFragments(o,e,s){return TreeFragment.applyChanges(o,[{fromA:e,toA:s,fromB:e,toB:s}])}class LanguageState{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let s=this.context.changes(e.changes,e.state),a=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),s.viewport.to);return s.work(20,a)||s.takeTree(),new LanguageState(s)}static init(e){let s=Math.min(3e3,e.doc.length),a=new ParseContext(e.facet(language).parser,e,[],Tree.empty,0,{from:0,to:s},[],null);return a.work(20,s)||a.takeTree(),new LanguageState(a)}}Language.state=StateField.define({create:LanguageState.init,update(o,e){for(let s of e.effects)if(s.is(Language.setState))return s.value;return e.startState.facet(language)!=e.state.facet(language)?LanguageState.init(e.state):o.apply(e)}});let requestIdle=o=>{let e=setTimeout(()=>o(),500);return()=>clearTimeout(e)};typeof requestIdleCallback!="undefined"&&(requestIdle=o=>{let e=-1,s=setTimeout(()=>{e=requestIdleCallback(o,{timeout:500-100})},100);return()=>e<0?clearTimeout(s):cancelIdleCallback(e)});const isInputPending=typeof navigator!="undefined"&&((_a=navigator.scheduling)===null||_a===void 0?void 0:_a.isInputPending)?()=>navigator.scheduling.isInputPending():null,parseWorker=ViewPlugin.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let s=this.view.state.field(Language.state).context;(s.updateViewport(e.view.viewport)||this.view.viewport.to>s.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(s)}scheduleWork(){if(this.working)return;let{state:e}=this.view,s=e.field(Language.state);(s.tree!=s.context.tree||!s.context.isDone(e.doc.length))&&(this.working=requestIdle(this.work))}work(e){this.working=null;let s=Date.now();if(this.chunkEndc+1e3,k=d.context.work(()=>isInputPending&&isInputPending()||Date.now()>_,c+(b?0:1e5));this.chunkBudget-=Date.now()-s,(k||this.chunkBudget<=0)&&(d.context.takeTree(),this.view.dispatch({effects:Language.setState.of(new LanguageState(d.context))})),this.chunkBudget>0&&!(k&&!b)&&this.scheduleWork(),this.checkAsyncSchedule(d.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(s=>logException(this.view.state,s)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),language=Facet.define({combine(o){return o.length?o[0]:null},enables:[Language.state,parseWorker]});class LanguageSupport{constructor(e,s=[]){this.language=e,this.support=s,this.extension=[e,s]}}const indentService=Facet.define(),indentUnit=Facet.define({combine:o=>{if(!o.length)return" ";if(!/^(?: +|\t+)$/.test(o[0]))throw new Error("Invalid indent unit: "+JSON.stringify(o[0]));return o[0]}});function getIndentUnit(o){let e=o.facet(indentUnit);return e.charCodeAt(0)==9?o.tabSize*e.length:e.length}function indentString(o,e){let s="",a=o.tabSize;if(o.facet(indentUnit).charCodeAt(0)==9)for(;e>=a;)s+=" ",e-=a;for(let c=0;c=a.from&&c<=a.to?d&&c==e?{text:"",from:e}:(s<0?c-1&&(d+=_-this.countColumn(a,a.search(/\S|$/))),d}countColumn(e,s=e.length){return countColumn(e,this.state.tabSize,s)}lineIndent(e,s=1){let{text:a,from:c}=this.lineAt(e,s),d=this.options.overrideIndentation;if(d){let _=d(c);if(_>-1)return _}return this.countColumn(a,a.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const indentNodeProp=new NodeProp;function syntaxIndentation(o,e,s){return indentFrom(e.resolveInner(s).enterUnfinishedNodesBefore(s),s,o)}function ignoreClosed(o){return o.pos==o.options.simulateBreak&&o.options.simulateDoubleBreak}function indentStrategy(o){let e=o.type.prop(indentNodeProp);if(e)return e;let s=o.firstChild,a;if(s&&(a=s.type.prop(NodeProp.closedBy))){let c=o.lastChild,d=c&&a.indexOf(c.name)>-1;return _=>delimitedStrategy(_,!0,1,void 0,d&&!ignoreClosed(_)?c.from:void 0)}return o.parent==null?topIndent:null}function indentFrom(o,e,s){for(;o;o=o.parent){let a=indentStrategy(o);if(a)return a(new TreeIndentContext(s,e,o))}return null}function topIndent(){return 0}class TreeIndentContext extends IndentContext{constructor(e,s,a){super(e.state,e.options),this.base=e,this.pos=s,this.node=a}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let e=this.state.doc.lineAt(this.node.from);for(;;){let s=this.node.resolve(e.from);for(;s.parent&&s.parent.from==s.from;)s=s.parent;if(isParent(s,this.node))break;e=this.state.doc.lineAt(s.from)}return this.lineIndent(e.from)}continue(){let e=this.node.parent;return e?indentFrom(e,this.pos,this.base):0}}function isParent(o,e){for(let s=e;s;s=s.parent)if(o==s)return!0;return!1}function bracketedAligned(o){let e=o.node,s=e.childAfter(e.from),a=e.lastChild;if(!s)return null;let c=o.options.simulateBreak,d=o.state.doc.lineAt(s.from),_=c==null||c<=d.from?d.to:Math.min(d.to,c);for(let b=s.to;;){let k=e.childAfter(b);if(!k||k==a)return null;if(!k.type.isSkipped)return k.from<_?s:null;b=k.to}}function delimitedIndent({closing:o,align:e=!0,units:s=1}){return a=>delimitedStrategy(a,e,s,o)}function delimitedStrategy(o,e,s,a,c){let d=o.textAfter,_=d.match(/^\s*/)[0].length,b=a&&d.slice(_,_+a.length)==a||c==o.pos+_,k=e?bracketedAligned(o):null;return k?b?o.column(k.from):o.column(k.to):o.baseIndent+(b?0:o.unit*s)}const flatIndent=o=>o.baseIndent;function continuedIndent({except:o,units:e=1}={}){return s=>{let a=o&&o.test(s.textAfter);return s.baseIndent+(a?0:e*s.unit)}}const DontIndentBeyond=200;function indentOnInput(){return EditorState.transactionFilter.of(o=>{if(!o.docChanged||!o.isUserEvent("input.type")&&!o.isUserEvent("input.complete"))return o;let e=o.startState.languageDataAt("indentOnInput",o.startState.selection.main.head);if(!e.length)return o;let s=o.newDoc,{head:a}=o.newSelection.main,c=s.lineAt(a);if(a>c.from+DontIndentBeyond)return o;let d=s.sliceString(c.from,a);if(!e.some($=>$.test(d)))return o;let{state:_}=o,b=-1,k=[];for(let{head:$}of _.selection.ranges){let j=_.doc.lineAt($);if(j.from==b)continue;b=j.from;let _e=getIndentation(_,j.from);if(_e==null)continue;let et=/^\s*/.exec(j.text)[0],tt=indentString(_,_e);et!=tt&&k.push({from:j.from,to:j.from+et.length,insert:tt})}return k.length?[o,{changes:k,sequential:!0}]:o})}const foldService=Facet.define(),foldNodeProp=new NodeProp;function foldInside$1(o){let e=o.firstChild,s=o.lastChild;return e&&e.tos)continue;if(d&&_.from=e&&k.to>s&&(d=k)}}return d}function isUnfinished(o){let e=o.lastChild;return e&&e.to==o.to&&e.type.isError}function foldable(o,e,s){for(let a of o.facet(foldService)){let c=a(o,e,s);if(c)return c}return syntaxFolding(o,e,s)}class GutterMarker extends RangeValue{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}GutterMarker.prototype.elementClass="";GutterMarker.prototype.toDOM=void 0;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=!0;const gutterLineClass=Facet.define(),defaults$1={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>RangeSet.empty,lineMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},activeGutters=Facet.define();function gutter(o){return[gutters(),activeGutters.of(Object.assign(Object.assign({},defaults$1),o))]}const baseTheme$7=EditorView.baseTheme({".cm-gutters":{display:"flex",height:"100%",boxSizing:"border-box",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#999",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"}}),unfixGutters=Facet.define({combine:o=>o.some(e=>e)});function gutters(o){let e=[gutterView,baseTheme$7];return o&&o.fixed===!1&&e.push(unfixGutters.of(!0)),e}const gutterView=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.prevViewport=o.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight+"px",this.gutters=o.state.facet(activeGutters).map(e=>new SingleGutterView(o,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!o.state.facet(unfixGutters),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),o.scrollDOM.insertBefore(this.dom,o.contentDOM)}update(o){if(this.updateGutters(o)){let e=this.prevViewport,s=o.view.viewport,a=Math.min(e.to,s.to)-Math.max(e.from,s.from);this.syncGutters(a<(s.to-s.from)*.8)}o.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(unfixGutters)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=o.view.viewport}syncGutters(o){let e=this.dom.nextSibling;o&&this.dom.remove();let s=RangeSet.iter(this.view.state.facet(gutterLineClass),this.view.viewport.from),a=[],c=this.gutters.map(d=>new UpdateContext(d,this.view.viewport,-this.view.documentPadding.top));for(let d of this.view.viewportLineBlocks){let _;if(Array.isArray(d.type)){for(let b of d.type)if(b.type==BlockType.Text){_=b;break}}else _=d.type==BlockType.Text?d:void 0;if(!!_){a.length&&(a=[]),advanceCursor(s,a,d.from);for(let b of c)b.line(this.view,_,a)}}for(let d of c)d.finish();o&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(o){let e=o.startState.facet(activeGutters),s=o.state.facet(activeGutters),a=o.docChanged||o.heightChanged||o.viewportChanged||!RangeSet.eq(o.startState.facet(gutterLineClass),o.state.facet(gutterLineClass),o.view.viewport.from,o.view.viewport.to);if(e==s)for(let c of this.gutters)c.update(o)&&(a=!0);else{a=!0;let c=[];for(let d of s){let _=e.indexOf(d);_<0?c.push(new SingleGutterView(this.view,d)):(this.gutters[_].update(o),c.push(this.gutters[_]))}for(let d of this.gutters)d.dom.remove(),c.indexOf(d)<0&&d.destroy();for(let d of c)this.dom.appendChild(d.dom);this.gutters=c}return a}destroy(){for(let o of this.gutters)o.destroy();this.dom.remove()}},{provide:PluginField.scrollMargins.from(o=>o.gutters.length==0||!o.fixed?null:o.view.textDirection==Direction.LTR?{left:o.dom.offsetWidth}:{right:o.dom.offsetWidth})});function asArray(o){return Array.isArray(o)?o:[o]}function advanceCursor(o,e,s){for(;o.value&&o.from<=s;)o.from==s&&e.push(o.value),o.next()}class UpdateContext{constructor(e,s,a){this.gutter=e,this.height=a,this.localMarkers=[],this.i=0,this.cursor=RangeSet.iter(e.markers,s.from)}line(e,s,a){this.localMarkers.length&&(this.localMarkers=[]),advanceCursor(this.cursor,this.localMarkers,s.from);let c=a.length?this.localMarkers.concat(a):this.localMarkers,d=this.gutter.config.lineMarker(e,s,c);d&&c.unshift(d);let _=this.gutter;if(c.length==0&&!_.config.renderEmptyElements)return;let b=s.top-this.height;if(this.i==_.elements.length){let k=new GutterElement(e,s.height,b,c);_.elements.push(k),_.dom.appendChild(k.dom)}else _.elements[this.i].update(e,s.height,b,c);this.height=s.bottom,this.i++}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let s=e.elements.pop();e.dom.removeChild(s.dom),s.destroy()}}}class SingleGutterView{constructor(e,s){this.view=e,this.config=s,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let a in s.domEventHandlers)this.dom.addEventListener(a,c=>{let d=e.lineBlockAtHeight(c.clientY-e.documentTop);s.domEventHandlers[a](e,d,c)&&c.preventDefault()});this.markers=asArray(s.markers(e)),s.initialSpacer&&(this.spacer=new GutterElement(e,0,0,[s.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let s=this.markers;if(this.markers=asArray(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let c=this.config.updateSpacer(this.spacer.markers[0],e);c!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[c])}let a=e.view.viewport;return!RangeSet.eq(this.markers,s,a.from,a.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class GutterElement{constructor(e,s,a,c){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.update(e,s,a,c)}update(e,s,a,c){this.height!=s&&(this.dom.style.height=(this.height=s)+"px"),this.above!=a&&(this.dom.style.marginTop=(this.above=a)?a+"px":""),sameMarkers(this.markers,c)||this.setMarkers(e,c)}setMarkers(e,s){let a="cm-gutterElement",c=this.dom.firstChild;for(let d=0,_=0;;){let b=_,k=dd(b,k,$)||_(b,k,$):_}return a}})}});class NumberMarker extends GutterMarker{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function formatNumber(o,e){return o.state.facet(lineNumberConfig).formatNumber(e,o.state)}const lineNumberGutter=activeGutters.compute([lineNumberConfig],o=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(lineNumberMarkers)},lineMarker(e,s,a){return a.some(c=>c.toDOM)?null:new NumberMarker(formatNumber(e,e.state.doc.lineAt(s.from).number))},lineMarkerChange:e=>e.startState.facet(lineNumberConfig)!=e.state.facet(lineNumberConfig),initialSpacer(e){return new NumberMarker(formatNumber(e,maxLineNumber(e.state.doc.lines)))},updateSpacer(e,s){let a=formatNumber(s.view,maxLineNumber(s.view.state.doc.lines));return a==e.number?e:new NumberMarker(a)},domEventHandlers:o.facet(lineNumberConfig).domEventHandlers}));function lineNumbers(o={}){return[lineNumberConfig.of(o),gutters(),lineNumberGutter]}function maxLineNumber(o){let e=9;for(;e{let e=[],s=-1;for(let a of o.selection.ranges)if(a.empty){let c=o.doc.lineAt(a.head).from;c>s&&(s=c,e.push(activeLineGutterMarker.range(c)))}return RangeSet.of(e)});function highlightActiveLineGutter(){return activeLineGutterHighlighter}function mapRange(o,e){let s=e.mapPos(o.from,1),a=e.mapPos(o.to,-1);return s>=a?void 0:{from:s,to:a}}const foldEffect=StateEffect.define({map:mapRange}),unfoldEffect=StateEffect.define({map:mapRange});function selectedLines(o){let e=[];for(let{head:s}of o.state.selection.ranges)e.some(a=>a.from<=s&&a.to>=s)||e.push(o.lineBlockAt(s));return e}const foldState=StateField.define({create(){return Decoration.none},update(o,e){o=o.map(e.changes);for(let s of e.effects)s.is(foldEffect)&&!foldExists(o,s.value.from,s.value.to)?o=o.update({add:[foldWidget.range(s.value.from,s.value.to)]}):s.is(unfoldEffect)&&(o=o.update({filter:(a,c)=>s.value.from!=a||s.value.to!=c,filterFrom:s.value.from,filterTo:s.value.to}));if(e.selection){let s=!1,{head:a}=e.selection.main;o.between(a,a,(c,d)=>{ca&&(s=!0)}),s&&(o=o.update({filterFrom:a,filterTo:a,filter:(c,d)=>d<=a||c>=a}))}return o},provide:o=>EditorView.decorations.from(o)});function foldInside(o,e,s){var a;let c=null;return(a=o.field(foldState,!1))===null||a===void 0||a.between(e,s,(d,_)=>{(!c||c.from>d)&&(c={from:d,to:_})}),c}function foldExists(o,e,s){let a=!1;return o.between(e,e,(c,d)=>{c==e&&d==s&&(a=!0)}),a}function maybeEnable(o,e){return o.field(foldState,!1)?e:e.concat(StateEffect.appendConfig.of(codeFolding()))}const foldCode=o=>{for(let e of selectedLines(o)){let s=foldable(o.state,e.from,e.to);if(s)return o.dispatch({effects:maybeEnable(o.state,[foldEffect.of(s),announceFold(o,s)])}),!0}return!1},unfoldCode=o=>{if(!o.state.field(foldState,!1))return!1;let e=[];for(let s of selectedLines(o)){let a=foldInside(o.state,s.from,s.to);a&&e.push(unfoldEffect.of(a),announceFold(o,a,!1))}return e.length&&o.dispatch({effects:e}),e.length>0};function announceFold(o,e,s=!0){let a=o.state.doc.lineAt(e.from).number,c=o.state.doc.lineAt(e.to).number;return EditorView.announce.of(`${o.state.phrase(s?"Folded lines":"Unfolded lines")} ${a} ${o.state.phrase("to")} ${c}.`)}const foldAll=o=>{let{state:e}=o,s=[];for(let a=0;a{let e=o.state.field(foldState,!1);if(!e||!e.size)return!1;let s=[];return e.between(0,o.state.doc.length,(a,c)=>{s.push(unfoldEffect.of({from:a,to:c}))}),o.dispatch({effects:s}),!0},foldKeymap=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:foldCode},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:unfoldCode},{key:"Ctrl-Alt-[",run:foldAll},{key:"Ctrl-Alt-]",run:unfoldAll}],defaultConfig={placeholderDOM:null,placeholderText:"\u2026"},foldConfig=Facet.define({combine(o){return combineConfig(o,defaultConfig)}});function codeFolding(o){let e=[foldState,baseTheme$6];return o&&e.push(foldConfig.of(o)),e}const foldWidget=Decoration.replace({widget:new class extends WidgetType{toDOM(o){let{state:e}=o,s=e.facet(foldConfig),a=d=>{let _=o.lineBlockAt(o.posAtDOM(d.target)),b=foldInside(o.state,_.from,_.to);b&&o.dispatch({effects:unfoldEffect.of(b)}),d.preventDefault()};if(s.placeholderDOM)return s.placeholderDOM(o,a);let c=document.createElement("span");return c.textContent=s.placeholderText,c.setAttribute("aria-label",e.phrase("folded code")),c.title=e.phrase("unfold"),c.className="cm-foldPlaceholder",c.onclick=a,c}}}),foldGutterDefaults={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{}};class FoldMarker extends GutterMarker{constructor(e,s){super(),this.config=e,this.open=s}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let s=document.createElement("span");return s.textContent=this.open?this.config.openText:this.config.closedText,s.title=e.state.phrase(this.open?"Fold line":"Unfold line"),s}}function foldGutter(o={}){let e=Object.assign(Object.assign({},foldGutterDefaults),o),s=new FoldMarker(e,!0),a=new FoldMarker(e,!1),c=ViewPlugin.fromClass(class{constructor(_){this.from=_.viewport.from,this.markers=this.buildMarkers(_)}update(_){(_.docChanged||_.viewportChanged||_.startState.facet(language)!=_.state.facet(language)||_.startState.field(foldState,!1)!=_.state.field(foldState,!1)||syntaxTree(_.startState)!=syntaxTree(_.state))&&(this.markers=this.buildMarkers(_.view))}buildMarkers(_){let b=new RangeSetBuilder;for(let k of _.viewportLineBlocks){let $=foldInside(_.state,k.from,k.to)?a:foldable(_.state,k.from,k.to)?s:null;$&&b.add(k.from,k.from,$)}return b.finish()}}),{domEventHandlers:d}=e;return[c,gutter({class:"cm-foldGutter",markers(_){var b;return((b=_.plugin(c))===null||b===void 0?void 0:b.markers)||RangeSet.empty},initialSpacer(){return new FoldMarker(e,!1)},domEventHandlers:Object.assign(Object.assign({},d),{click:(_,b,k)=>{if(d.click&&d.click(_,b,k))return!0;let $=foldInside(_.state,b.from,b.to);if($)return _.dispatch({effects:unfoldEffect.of($)}),!0;let j=foldable(_.state,b.from,b.to);return j?(_.dispatch({effects:foldEffect.of(j)}),!0):!1}})}),codeFolding()]}const baseTheme$6=EditorView.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),baseTheme$5=EditorView.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),DefaultScanDist=1e4,DefaultBrackets="()[]{}",bracketMatchingConfig=Facet.define({combine(o){return combineConfig(o,{afterCursor:!0,brackets:DefaultBrackets,maxScanDistance:DefaultScanDist})}}),matchingMark=Decoration.mark({class:"cm-matchingBracket"}),nonmatchingMark=Decoration.mark({class:"cm-nonmatchingBracket"}),bracketMatchingState=StateField.define({create(){return Decoration.none},update(o,e){if(!e.docChanged&&!e.selection)return o;let s=[],a=e.state.facet(bracketMatchingConfig);for(let c of e.state.selection.ranges){if(!c.empty)continue;let d=matchBrackets(e.state,c.head,-1,a)||c.head>0&&matchBrackets(e.state,c.head-1,1,a)||a.afterCursor&&(matchBrackets(e.state,c.head,1,a)||c.headEditorView.decorations.from(o)}),bracketMatchingUnique=[bracketMatchingState,baseTheme$5];function bracketMatching(o={}){return[bracketMatchingConfig.of(o),bracketMatchingUnique]}function matchingNodes(o,e,s){let a=o.prop(e<0?NodeProp.openedBy:NodeProp.closedBy);if(a)return a;if(o.name.length==1){let c=s.indexOf(o.name);if(c>-1&&c%2==(e<0?1:0))return[s[c+e]]}return null}function matchBrackets(o,e,s,a={}){let c=a.maxScanDistance||DefaultScanDist,d=a.brackets||DefaultBrackets,_=syntaxTree(o),b=_.resolveInner(e,s);for(let k=b;k;k=k.parent){let $=matchingNodes(k.type,s,d);if($&&k.from=a.to){if(k==0&&c.indexOf($.type.name)>-1&&$.from<$.to)return{start:b,end:{from:$.from,to:$.to},matched:!0};if(matchingNodes($.type,s,d))k++;else if(matchingNodes($.type,-s,d)&&(k--,k==0))return{start:b,end:$.from==$.to?void 0:{from:$.from,to:$.to},matched:!1}}while(s<0?$.prevSibling():$.nextSibling());return{start:b,matched:!1}}function matchPlainBrackets(o,e,s,a,c,d,_){let b=s<0?o.sliceDoc(e-1,e):o.sliceDoc(e,e+1),k=_.indexOf(b);if(k<0||k%2==0!=s>0)return null;let $={from:s<0?e-1:e,to:s>0?e+1:e},j=o.doc.iterRange(e,s>0?o.doc.length:0),_e=0;for(let et=0;!j.next().done&&et<=d;){let tt=j.value;s<0&&(et+=tt.length);let nt=e+et*s;for(let it=s>0?0:tt.length-1,rt=s>0?tt.length:-1;it!=rt;it+=s){let st=_.indexOf(tt[it]);if(!(st<0||a.resolve(nt+it,1).type!=c))if(st%2==0==s>0)_e++;else{if(_e==1)return{start:$,end:{from:nt+it,to:nt+it+1},matched:st>>1==k>>1};_e--}}s>0&&(et+=tt.length)}return j.done?{start:$,matched:!1}:null}function updateSel(o,e){return EditorSelection.create(o.ranges.map(e),o.mainIndex)}function setSel(o,e){return o.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function moveSel({state:o,dispatch:e},s){let a=updateSel(o.selection,s);return a.eq(o.selection)?!1:(e(setSel(o,a)),!0)}function rangeEnd(o,e){return EditorSelection.cursor(e?o.to:o.from)}function cursorByChar(o,e){return moveSel(o,s=>s.empty?o.moveByChar(s,e):rangeEnd(s,e))}const cursorCharLeft=o=>cursorByChar(o,o.textDirection!=Direction.LTR),cursorCharRight=o=>cursorByChar(o,o.textDirection==Direction.LTR);function cursorByGroup(o,e){return moveSel(o,s=>s.empty?o.moveByGroup(s,e):rangeEnd(s,e))}const cursorGroupLeft=o=>cursorByGroup(o,o.textDirection!=Direction.LTR),cursorGroupRight=o=>cursorByGroup(o,o.textDirection==Direction.LTR);function interestingNode(o,e,s){if(e.type.prop(s))return!0;let a=e.to-e.from;return a&&(a>2||/[^\s,.;:]/.test(o.sliceDoc(e.from,e.to)))||e.firstChild}function moveBySyntax(o,e,s){let a=syntaxTree(o).resolveInner(e.head),c=s?NodeProp.closedBy:NodeProp.openedBy;for(let k=e.head;;){let $=s?a.childAfter(k):a.childBefore(k);if(!$)break;interestingNode(o,$,c)?a=$:k=s?$.to:$.from}let d=a.type.prop(c),_,b;return d&&(_=s?matchBrackets(o,a.from,1):matchBrackets(o,a.to,-1))&&_.matched?b=s?_.end.to:_.end.from:b=s?a.to:a.from,EditorSelection.cursor(b,s?-1:1)}const cursorSyntaxLeft=o=>moveSel(o,e=>moveBySyntax(o.state,e,o.textDirection!=Direction.LTR)),cursorSyntaxRight=o=>moveSel(o,e=>moveBySyntax(o.state,e,o.textDirection==Direction.LTR));function cursorByLine(o,e){return moveSel(o,s=>{if(!s.empty)return rangeEnd(s,e);let a=o.moveVertically(s,e);return a.head!=s.head?a:o.moveToLineBoundary(s,e)})}const cursorLineUp=o=>cursorByLine(o,!1),cursorLineDown=o=>cursorByLine(o,!0);function cursorByPage(o,e){let{state:s}=o,a=updateSel(s.selection,_=>_.empty?o.moveVertically(_,e,o.dom.clientHeight):rangeEnd(_,e));if(a.eq(s.selection))return!1;let c=o.coordsAtPos(s.selection.main.head),d=o.scrollDOM.getBoundingClientRect();return o.dispatch(setSel(s,a),{effects:c&&c.top>d.top&&c.bottomcursorByPage(o,!1),cursorPageDown=o=>cursorByPage(o,!0);function moveByLineBoundary(o,e,s){let a=o.lineBlockAt(e.head),c=o.moveToLineBoundary(e,s);if(c.head==e.head&&c.head!=(s?a.to:a.from)&&(c=o.moveToLineBoundary(e,s,!1)),!s&&c.head==a.from&&a.length){let d=/^\s*/.exec(o.state.sliceDoc(a.from,Math.min(a.from+100,a.to)))[0].length;d&&e.head!=a.from+d&&(c=EditorSelection.cursor(a.from+d))}return c}const cursorLineBoundaryForward=o=>moveSel(o,e=>moveByLineBoundary(o,e,!0)),cursorLineBoundaryBackward=o=>moveSel(o,e=>moveByLineBoundary(o,e,!1)),cursorLineStart=o=>moveSel(o,e=>EditorSelection.cursor(o.lineBlockAt(e.head).from,1)),cursorLineEnd=o=>moveSel(o,e=>EditorSelection.cursor(o.lineBlockAt(e.head).to,-1));function toMatchingBracket(o,e,s){let a=!1,c=updateSel(o.selection,d=>{let _=matchBrackets(o,d.head,-1)||matchBrackets(o,d.head,1)||d.head>0&&matchBrackets(o,d.head-1,1)||d.headtoMatchingBracket(o,e,!1);function extendSel(o,e){let s=updateSel(o.state.selection,a=>{let c=e(a);return EditorSelection.range(a.anchor,c.head,c.goalColumn)});return s.eq(o.state.selection)?!1:(o.dispatch(setSel(o.state,s)),!0)}function selectByChar(o,e){return extendSel(o,s=>o.moveByChar(s,e))}const selectCharLeft=o=>selectByChar(o,o.textDirection!=Direction.LTR),selectCharRight=o=>selectByChar(o,o.textDirection==Direction.LTR);function selectByGroup(o,e){return extendSel(o,s=>o.moveByGroup(s,e))}const selectGroupLeft=o=>selectByGroup(o,o.textDirection!=Direction.LTR),selectGroupRight=o=>selectByGroup(o,o.textDirection==Direction.LTR),selectSyntaxLeft=o=>extendSel(o,e=>moveBySyntax(o.state,e,o.textDirection!=Direction.LTR)),selectSyntaxRight=o=>extendSel(o,e=>moveBySyntax(o.state,e,o.textDirection==Direction.LTR));function selectByLine(o,e){return extendSel(o,s=>o.moveVertically(s,e))}const selectLineUp=o=>selectByLine(o,!1),selectLineDown=o=>selectByLine(o,!0);function selectByPage(o,e){return extendSel(o,s=>o.moveVertically(s,e,o.dom.clientHeight))}const selectPageUp=o=>selectByPage(o,!1),selectPageDown=o=>selectByPage(o,!0),selectLineBoundaryForward=o=>extendSel(o,e=>moveByLineBoundary(o,e,!0)),selectLineBoundaryBackward=o=>extendSel(o,e=>moveByLineBoundary(o,e,!1)),selectLineStart=o=>extendSel(o,e=>EditorSelection.cursor(o.lineBlockAt(e.head).from)),selectLineEnd=o=>extendSel(o,e=>EditorSelection.cursor(o.lineBlockAt(e.head).to)),cursorDocStart=({state:o,dispatch:e})=>(e(setSel(o,{anchor:0})),!0),cursorDocEnd=({state:o,dispatch:e})=>(e(setSel(o,{anchor:o.doc.length})),!0),selectDocStart=({state:o,dispatch:e})=>(e(setSel(o,{anchor:o.selection.main.anchor,head:0})),!0),selectDocEnd=({state:o,dispatch:e})=>(e(setSel(o,{anchor:o.selection.main.anchor,head:o.doc.length})),!0),selectAll=({state:o,dispatch:e})=>(e(o.update({selection:{anchor:0,head:o.doc.length},userEvent:"select"})),!0),selectLine=({state:o,dispatch:e})=>{let s=selectedLineBlocks(o).map(({from:a,to:c})=>EditorSelection.range(a,Math.min(c+1,o.doc.length)));return e(o.update({selection:EditorSelection.create(s),userEvent:"select"})),!0},selectParentSyntax=({state:o,dispatch:e})=>{let s=updateSel(o.selection,a=>{var c;let d=syntaxTree(o).resolveInner(a.head,1);for(;!(d.from=a.to||d.to>a.to&&d.from<=a.from||!(!((c=d.parent)===null||c===void 0)&&c.parent));)d=d.parent;return EditorSelection.range(d.to,d.from)});return e(setSel(o,s)),!0},simplifySelection=({state:o,dispatch:e})=>{let s=o.selection,a=null;return s.ranges.length>1?a=EditorSelection.create([s.main]):s.main.empty||(a=EditorSelection.create([EditorSelection.cursor(s.main.head)])),a?(e(setSel(o,a)),!0):!1};function deleteBy({state:o,dispatch:e},s){if(o.readOnly)return!1;let a="delete.selection",c=o.changeByRange(d=>{let{from:_,to:b}=d;if(_==b){let k=s(_);k<_?a="delete.backward":k>_&&(a="delete.forward"),_=Math.min(_,k),b=Math.max(b,k)}return _==b?{range:d}:{changes:{from:_,to:b},range:EditorSelection.cursor(_)}});return c.changes.empty?!1:(e(o.update(c,{scrollIntoView:!0,userEvent:a})),!0)}function skipAtomic(o,e,s){if(o instanceof EditorView)for(let a of o.pluginField(PluginField.atomicRanges))a.between(e,e,(c,d)=>{ce&&(e=s?d:c)});return e}const deleteByChar=(o,e)=>deleteBy(o,s=>{let{state:a}=o,c=a.doc.lineAt(s),d,_;if(!e&&s>c.from&&sdeleteByChar(o,!1),deleteCharForward=o=>deleteByChar(o,!0),deleteByGroup=(o,e)=>deleteBy(o,s=>{let a=s,{state:c}=o,d=c.doc.lineAt(a),_=c.charCategorizer(a);for(let b=null;;){if(a==(e?d.to:d.from)){a==s&&d.number!=(e?c.doc.lines:1)&&(a+=e?1:-1);break}let k=findClusterBreak(d.text,a-d.from,e)+d.from,$=d.text.slice(Math.min(a,k)-d.from,Math.max(a,k)-d.from),j=_($);if(b!=null&&j!=b)break;($!=" "||a!=s)&&(b=j),a=k}return skipAtomic(o,a,e)}),deleteGroupBackward=o=>deleteByGroup(o,!1),deleteGroupForward=o=>deleteByGroup(o,!0),deleteToLineEnd=o=>deleteBy(o,e=>{let s=o.lineBlockAt(e).to;return skipAtomic(o,edeleteBy(o,e=>{let s=o.lineBlockAt(e).from;return skipAtomic(o,e>s?s:Math.max(0,e-1),!1)}),splitLine=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let s=o.changeByRange(a=>({changes:{from:a.from,to:a.to,insert:Text.of(["",""])},range:EditorSelection.cursor(a.from)}));return e(o.update(s,{scrollIntoView:!0,userEvent:"input"})),!0},transposeChars=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let s=o.changeByRange(a=>{if(!a.empty||a.from==0||a.from==o.doc.length)return{range:a};let c=a.from,d=o.doc.lineAt(c),_=c==d.from?c-1:findClusterBreak(d.text,c-d.from,!1)+d.from,b=c==d.to?c+1:findClusterBreak(d.text,c-d.from,!0)+d.from;return{changes:{from:_,to:b,insert:o.doc.slice(c,b).append(o.doc.slice(_,c))},range:EditorSelection.cursor(b)}});return s.changes.empty?!1:(e(o.update(s,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function selectedLineBlocks(o){let e=[],s=-1;for(let a of o.selection.ranges){let c=o.doc.lineAt(a.from),d=o.doc.lineAt(a.to);if(!a.empty&&a.to==d.from&&(d=o.doc.lineAt(a.to-1)),s>=c.number){let _=e[e.length-1];_.to=d.to,_.ranges.push(a)}else e.push({from:c.from,to:d.to,ranges:[a]});s=d.number+1}return e}function moveLine(o,e,s){if(o.readOnly)return!1;let a=[],c=[];for(let d of selectedLineBlocks(o)){if(s?d.to==o.doc.length:d.from==0)continue;let _=o.doc.lineAt(s?d.to+1:d.from-1),b=_.length+1;if(s){a.push({from:d.to,to:_.to},{from:d.from,insert:_.text+o.lineBreak});for(let k of d.ranges)c.push(EditorSelection.range(Math.min(o.doc.length,k.anchor+b),Math.min(o.doc.length,k.head+b)))}else{a.push({from:_.from,to:d.from},{from:d.to,insert:o.lineBreak+_.text});for(let k of d.ranges)c.push(EditorSelection.range(k.anchor-b,k.head-b))}}return a.length?(e(o.update({changes:a,scrollIntoView:!0,selection:EditorSelection.create(c,o.selection.mainIndex),userEvent:"move.line"})),!0):!1}const moveLineUp=({state:o,dispatch:e})=>moveLine(o,e,!1),moveLineDown=({state:o,dispatch:e})=>moveLine(o,e,!0);function copyLine(o,e,s){if(o.readOnly)return!1;let a=[];for(let c of selectedLineBlocks(o))s?a.push({from:c.from,insert:o.doc.slice(c.from,c.to)+o.lineBreak}):a.push({from:c.to,insert:o.lineBreak+o.doc.slice(c.from,c.to)});return e(o.update({changes:a,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const copyLineUp=({state:o,dispatch:e})=>copyLine(o,e,!1),copyLineDown=({state:o,dispatch:e})=>copyLine(o,e,!0),deleteLine=o=>{if(o.state.readOnly)return!1;let{state:e}=o,s=e.changes(selectedLineBlocks(e).map(({from:c,to:d})=>(c>0?c--:do.moveVertically(c,!0)).map(s);return o.dispatch({changes:s,selection:a,scrollIntoView:!0,userEvent:"delete.line"}),!0};function isBetweenBrackets(o,e){if(/\(\)|\[\]|\{\}/.test(o.sliceDoc(e-1,e+1)))return{from:e,to:e};let s=syntaxTree(o).resolveInner(e),a=s.childBefore(e),c=s.childAfter(e),d;return a&&c&&a.to<=e&&c.from>=e&&(d=a.type.prop(NodeProp.closedBy))&&d.indexOf(c.name)>-1&&o.doc.lineAt(a.to).from==o.doc.lineAt(c.from).from?{from:a.to,to:c.from}:null}const insertNewlineAndIndent=newlineAndIndent(!1),insertBlankLine=newlineAndIndent(!0);function newlineAndIndent(o){return({state:e,dispatch:s})=>{if(e.readOnly)return!1;let a=e.changeByRange(c=>{let{from:d,to:_}=c,b=e.doc.lineAt(d),k=!o&&d==_&&isBetweenBrackets(e,d);o&&(d=_=(_<=b.to?b:e.doc.lineAt(_)).to);let $=new IndentContext(e,{simulateBreak:d,simulateDoubleBreak:!!k}),j=getIndentation($,d);for(j==null&&(j=/^\s*/.exec(e.doc.lineAt(d).text)[0].length);_b.from&&d{let c=[];for(let _=a.from;_<=a.to;){let b=o.doc.lineAt(_);b.number>s&&(a.empty||a.to>b.from)&&(e(b,c,a),s=b.number),_=b.to+1}let d=o.changes(c);return{changes:c,range:EditorSelection.range(d.mapPos(a.anchor,1),d.mapPos(a.head,1))}})}const indentSelection=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let s=Object.create(null),a=new IndentContext(o,{overrideIndentation:d=>{let _=s[d];return _==null?-1:_}}),c=changeBySelectedLine(o,(d,_,b)=>{let k=getIndentation(a,d.from);if(k==null)return;/\S/.test(d.text)||(k=0);let $=/^\s*/.exec(d.text)[0],j=indentString(o,k);($!=j||b.fromo.readOnly?!1:(e(o.update(changeBySelectedLine(o,(s,a)=>{a.push({from:s.from,insert:o.facet(indentUnit)})}),{userEvent:"input.indent"})),!0),indentLess=({state:o,dispatch:e})=>o.readOnly?!1:(e(o.update(changeBySelectedLine(o,(s,a)=>{let c=/^\s*/.exec(s.text)[0];if(!c)return;let d=countColumn(c,o.tabSize),_=0,b=indentString(o,Math.max(0,d-getIndentUnit(o)));for(;_({mac:o.key,run:o.run,shift:o.shift}))),defaultKeymap=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:cursorSyntaxLeft,shift:selectSyntaxLeft},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cursorSyntaxRight,shift:selectSyntaxRight},{key:"Alt-ArrowUp",run:moveLineUp},{key:"Shift-Alt-ArrowUp",run:copyLineUp},{key:"Alt-ArrowDown",run:moveLineDown},{key:"Shift-Alt-ArrowDown",run:copyLineDown},{key:"Escape",run:simplifySelection},{key:"Mod-Enter",run:insertBlankLine},{key:"Alt-l",mac:"Ctrl-l",run:selectLine},{key:"Mod-i",run:selectParentSyntax,preventDefault:!0},{key:"Mod-[",run:indentLess},{key:"Mod-]",run:indentMore},{key:"Mod-Alt-\\",run:indentSelection},{key:"Shift-Mod-k",run:deleteLine},{key:"Shift-Mod-\\",run:cursorMatchingBracket}].concat(standardKeymap),defaults={brackets:["(","[","{","'",'"'],before:")]}:;>"},closeBracketEffect=StateEffect.define({map(o,e){let s=e.mapPos(o,-1,MapMode.TrackAfter);return s==null?void 0:s}}),skipBracketEffect=StateEffect.define({map(o,e){return e.mapPos(o)}}),closedBracket=new class extends RangeValue{};closedBracket.startSide=1;closedBracket.endSide=-1;const bracketState=StateField.define({create(){return RangeSet.empty},update(o,e){if(e.selection){let s=e.state.doc.lineAt(e.selection.main.head).from,a=e.startState.doc.lineAt(e.startState.selection.main.head).from;s!=e.changes.mapPos(a,-1)&&(o=RangeSet.empty)}o=o.map(e.changes);for(let s of e.effects)s.is(closeBracketEffect)?o=o.update({add:[closedBracket.range(s.value,s.value+1)]}):s.is(skipBracketEffect)&&(o=o.update({filter:a=>a!=s.value}));return o}});function closeBrackets(){return[inputHandler,bracketState]}const definedClosing="()[]{}<>";function closing(o){for(let e=0;e{if((android?o.composing:o.compositionStarted)||o.state.readOnly)return!1;let c=o.state.selection.main;if(a.length>2||a.length==2&&codePointSize(codePointAt(a,0))==1||e!=c.from||s!=c.to)return!1;let d=insertBracket(o.state,a);return d?(o.dispatch(d),!0):!1}),deleteBracketPair=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let a=config(o,o.selection.main.head).brackets||defaults.brackets,c=null,d=o.changeByRange(_=>{if(_.empty){let b=prevChar(o.doc,_.head);for(let k of a)if(k==b&&nextChar(o.doc,_.head)==closing(codePointAt(k,0)))return{changes:{from:_.head-k.length,to:_.head+k.length},range:EditorSelection.cursor(_.head-k.length),userEvent:"delete.backward"}}return{range:c=_}});return c||e(o.update(d,{scrollIntoView:!0})),!c},closeBracketsKeymap=[{key:"Backspace",run:deleteBracketPair}];function insertBracket(o,e){let s=config(o,o.selection.main.head),a=s.brackets||defaults.brackets;for(let c of a){let d=closing(codePointAt(c,0));if(e==c)return d==c?handleSame(o,c,a.indexOf(c+c+c)>-1):handleOpen(o,c,d,s.before||defaults.before);if(e==d&&closedBracketAt(o,o.selection.main.from))return handleClose(o,c,d)}return null}function closedBracketAt(o,e){let s=!1;return o.field(bracketState).between(0,o.doc.length,a=>{a==e&&(s=!0)}),s}function nextChar(o,e){let s=o.sliceString(e,e+2);return s.slice(0,codePointSize(codePointAt(s,0)))}function prevChar(o,e){let s=o.sliceString(e-2,e);return codePointSize(codePointAt(s,0))==s.length?s:s.slice(1)}function handleOpen(o,e,s,a){let c=null,d=o.changeByRange(_=>{if(!_.empty)return{changes:[{insert:e,from:_.from},{insert:s,from:_.to}],effects:closeBracketEffect.of(_.to+e.length),range:EditorSelection.range(_.anchor+e.length,_.head+e.length)};let b=nextChar(o.doc,_.head);return!b||/\s/.test(b)||a.indexOf(b)>-1?{changes:{insert:e+s,from:_.head},effects:closeBracketEffect.of(_.head+e.length),range:EditorSelection.cursor(_.head+e.length)}:{range:c=_}});return c?null:o.update(d,{scrollIntoView:!0,userEvent:"input.type"})}function handleClose(o,e,s){let a=null,c=o.selection.ranges.map(d=>d.empty&&nextChar(o.doc,d.head)==s?EditorSelection.cursor(d.head+s.length):a=d);return a?null:o.update({selection:EditorSelection.create(c,o.selection.mainIndex),scrollIntoView:!0,effects:o.selection.ranges.map(({from:d})=>skipBracketEffect.of(d))})}function handleSame(o,e,s){let a=null,c=o.changeByRange(d=>{if(!d.empty)return{changes:[{insert:e,from:d.from},{insert:e,from:d.to}],effects:closeBracketEffect.of(d.to+e.length),range:EditorSelection.range(d.anchor+e.length,d.head+e.length)};let _=d.head,b=nextChar(o.doc,_);if(b==e){if(nodeStart(o,_))return{changes:{insert:e+e,from:_},effects:closeBracketEffect.of(_+e.length),range:EditorSelection.cursor(_+e.length)};if(closedBracketAt(o,_)){let k=s&&o.sliceDoc(_,_+e.length*3)==e+e+e;return{range:EditorSelection.cursor(_+e.length*(k?3:1)),effects:skipBracketEffect.of(_)}}}else{if(s&&o.sliceDoc(_-2*e.length,_)==e+e&&nodeStart(o,_-2*e.length))return{changes:{insert:e+e+e+e,from:_},effects:closeBracketEffect.of(_+e.length),range:EditorSelection.cursor(_+e.length)};if(o.charCategorizer(_)(b)!=CharCategory.Word){let k=o.sliceDoc(_-1,_);if(k!=e&&o.charCategorizer(_)(k)!=CharCategory.Word&&!probablyInString(o,_,e))return{changes:{insert:e+e,from:_},effects:closeBracketEffect.of(_+e.length),range:EditorSelection.cursor(_+e.length)}}}return{range:a=d}});return a?null:o.update(c,{scrollIntoView:!0,userEvent:"input.type"})}function nodeStart(o,e){let s=syntaxTree(o).resolveInner(e+1);return s.parent&&s.from==e}function probablyInString(o,e,s){let a=syntaxTree(o).resolveInner(e,-1);for(let c=0;c<5;c++){if(o.sliceDoc(a.from,a.from+s.length)==s)return!0;let d=a.to==e&&a.parent;if(!d)break;a=d}return!1}const panelConfig=Facet.define({combine(o){let e,s;for(let a of o)e=e||a.topContainer,s=s||a.bottomContainer;return{topContainer:e,bottomContainer:s}}});function getPanel(o,e){let s=o.plugin(panelPlugin),a=s?s.specs.indexOf(e):-1;return a>-1?s.panels[a]:null}const panelPlugin=ViewPlugin.fromClass(class{constructor(o){this.input=o.state.facet(showPanel),this.specs=this.input.filter(s=>s),this.panels=this.specs.map(s=>s(o));let e=o.state.facet(panelConfig);this.top=new PanelGroup(o,!0,e.topContainer),this.bottom=new PanelGroup(o,!1,e.bottomContainer),this.top.sync(this.panels.filter(s=>s.top)),this.bottom.sync(this.panels.filter(s=>!s.top));for(let s of this.panels)s.dom.classList.add("cm-panel"),s.mount&&s.mount()}update(o){let e=o.state.facet(panelConfig);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new PanelGroup(o.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new PanelGroup(o.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let s=o.state.facet(showPanel);if(s!=this.input){let a=s.filter(k=>k),c=[],d=[],_=[],b=[];for(let k of a){let $=this.specs.indexOf(k),j;$<0?(j=k(o.view),b.push(j)):(j=this.panels[$],j.update&&j.update(o)),c.push(j),(j.top?d:_).push(j)}this.specs=a,this.panels=c,this.top.sync(d),this.bottom.sync(_);for(let k of b)k.dom.classList.add("cm-panel"),k.mount&&k.mount()}else for(let a of this.panels)a.update&&a.update(o)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:PluginField.scrollMargins.from(o=>({top:o.top.scrollMargin(),bottom:o.bottom.scrollMargin()}))});class PanelGroup{constructor(e,s,a){this.view=e,this.top=s,this.container=a,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let s of this.panels)s.destroy&&e.indexOf(s)<0&&s.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let s=this.container||this.view.dom;s.insertBefore(this.dom,this.top?s.firstChild:null)}let e=this.dom.firstChild;for(let s of this.panels)if(s.dom.parentNode==this.dom){for(;e!=s.dom;)e=rm(e);e=e.nextSibling}else this.dom.insertBefore(s.dom,e);for(;e;)e=rm(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function rm(o){let e=o.nextSibling;return o.remove(),e}const baseTheme$4=EditorView.baseTheme({".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"}}),showPanel=Facet.define({enables:[panelPlugin,baseTheme$4]});function crelt(){var o=arguments[0];typeof o=="string"&&(o=document.createElement(o));var e=1,s=arguments[1];if(s&&typeof s=="object"&&s.nodeType==null&&!Array.isArray(s)){for(var a in s)if(Object.prototype.hasOwnProperty.call(s,a)){var c=s[a];typeof c=="string"?o.setAttribute(a,c):c!=null&&(o[a]=c)}e++}for(;eo.normalize("NFKD"):o=>o;class SearchCursor{constructor(e,s,a=0,c=e.length,d){this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(a,c),this.bufferStart=a,this.normalize=d?_=>d(basicNormalize(_)):basicNormalize,this.query=this.normalize(s)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return codePointAt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let s=fromCodePoint(e),a=this.bufferStart+this.bufferPos;this.bufferPos+=codePointSize(e);let c=this.normalize(s);for(let d=0,_=a;;d++){let b=c.charCodeAt(d),k=this.match(b,_);if(k)return this.value=k,this;if(d==c.length-1)break;_==a&&dthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let s=this.matchPos<=this.to&&this.re.exec(this.curLine);if(s){let a=this.curLineStart+s.index,c=a+s[0].length;if(this.matchPos=c+(a==c?1:0),a==this.curLine.length&&this.nextLine(),athis.value.to)return this.value={from:a,to:c,match:s},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=a||c.to<=s){let b=new FlattenedDoc(s,e.sliceString(s,a));return flattened.set(e,b),b}if(c.from==s&&c.to==a)return c;let{text:d,from:_}=c;return _>s&&(d=e.sliceString(s,_)+d,_=s),c.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,s=this.re.exec(this.flat.text);if(s&&!s[0]&&s.index==e&&(this.re.lastIndex=e+1,s=this.re.exec(this.flat.text)),s&&this.flat.tothis.flat.text.length-10&&(s=null),s){let a=this.flat.from+s.index,c=a+s[0].length;return this.value={from:a,to:c,match:s},this.matchPos=c+(a==c?1:0),this}else{if(this.flat.to==this.to)return this.done=!0,this;this.flat=FlattenedDoc.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}}typeof Symbol!="undefined"&&(RegExpCursor.prototype[Symbol.iterator]=MultilineRegExpCursor.prototype[Symbol.iterator]=function(){return this});function validRegExp(o){try{return new RegExp(o,baseFlags),!0}catch{return!1}}function createLineDialog(o){let e=crelt("input",{class:"cm-textfield",name:"line"}),s=crelt("form",{class:"cm-gotoLine",onkeydown:c=>{c.keyCode==27?(c.preventDefault(),o.dispatch({effects:dialogEffect.of(!1)}),o.focus()):c.keyCode==13&&(c.preventDefault(),a())},onsubmit:c=>{c.preventDefault(),a()}},crelt("label",o.state.phrase("Go to line"),": ",e)," ",crelt("button",{class:"cm-button",type:"submit"},o.state.phrase("go")));function a(){let c=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!c)return;let{state:d}=o,_=d.doc.lineAt(d.selection.main.head),[,b,k,$,j]=c,_e=$?+$.slice(1):0,et=k?+k:_.number;if(k&&j){let nt=et/100;b&&(nt=nt*(b=="-"?-1:1)+_.number/d.doc.lines),et=Math.round(d.doc.lines*nt)}else k&&b&&(et=et*(b=="-"?-1:1)+_.number);let tt=d.doc.line(Math.max(1,Math.min(d.doc.lines,et)));o.dispatch({effects:dialogEffect.of(!1),selection:EditorSelection.cursor(tt.from+Math.max(0,Math.min(_e,tt.length))),scrollIntoView:!0}),o.focus()}return{dom:s,pos:-10}}const dialogEffect=StateEffect.define(),dialogField=StateField.define({create(){return!0},update(o,e){for(let s of e.effects)s.is(dialogEffect)&&(o=s.value);return o},provide:o=>showPanel.from(o,e=>e?createLineDialog:null)}),gotoLine=o=>{let e=getPanel(o,createLineDialog);if(!e){let s=[dialogEffect.of(!0)];o.state.field(dialogField,!1)==null&&s.push(StateEffect.appendConfig.of([dialogField,baseTheme$1$1])),o.dispatch({effects:s}),e=getPanel(o,createLineDialog)}return e&&e.dom.querySelector("input").focus(),!0},baseTheme$1$1=EditorView.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),defaultHighlightOptions={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!0},highlightConfig=Facet.define({combine(o){return combineConfig(o,defaultHighlightOptions,{highlightWordAroundCursor:(e,s)=>e||s,minSelectionLength:Math.min,maxMatches:Math.min})}});function highlightSelectionMatches(o){let e=[defaultTheme,matchHighlighter];return o&&e.push(highlightConfig.of(o)),e}const matchDeco=Decoration.mark({class:"cm-selectionMatch"}),mainMatchDeco=Decoration.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function insideWordBoundaries(o,e,s,a){return(s==0||o(e.sliceDoc(s-1,s))!=CharCategory.Word)&&(a==e.doc.length||o(e.sliceDoc(a,a+1))!=CharCategory.Word)}function insideWord(o,e,s,a){return o(e.sliceDoc(s,s+1))==CharCategory.Word&&o(e.sliceDoc(a-1,a))==CharCategory.Word}const matchHighlighter=ViewPlugin.fromClass(class{constructor(o){this.decorations=this.getDeco(o)}update(o){(o.selectionSet||o.docChanged||o.viewportChanged)&&(this.decorations=this.getDeco(o.view))}getDeco(o){let e=o.state.facet(highlightConfig),{state:s}=o,a=s.selection;if(a.ranges.length>1)return Decoration.none;let c=a.main,d,_=null;if(c.empty){if(!e.highlightWordAroundCursor)return Decoration.none;let k=s.wordAt(c.head);if(!k)return Decoration.none;_=s.charCategorizer(c.head),d=s.sliceDoc(k.from,k.to)}else{let k=c.to-c.from;if(k200)return Decoration.none;if(e.wholeWords){if(d=s.sliceDoc(c.from,c.to),_=s.charCategorizer(c.head),!(insideWordBoundaries(_,s,c.from,c.to)&&insideWord(_,s,c.from,c.to)))return Decoration.none}else if(d=s.sliceDoc(c.from,c.to).trim(),!d)return Decoration.none}let b=[];for(let k of o.visibleRanges){let $=new SearchCursor(s.doc,d,k.from,k.to);for(;!$.next().done;){let{from:j,to:_e}=$.value;if((!_||insideWordBoundaries(_,s,j,_e))&&(c.empty&&j<=c.from&&_e>=c.to?b.push(mainMatchDeco.range(j,_e)):(j>=c.to||_e<=c.from)&&b.push(matchDeco.range(j,_e)),b.length>e.maxMatches))return Decoration.none}}return Decoration.set(b)}},{decorations:o=>o.decorations}),defaultTheme=EditorView.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),selectWord=({state:o,dispatch:e})=>{let{selection:s}=o,a=EditorSelection.create(s.ranges.map(c=>o.wordAt(c.head)||EditorSelection.cursor(c.head)),s.mainIndex);return a.eq(s)?!1:(e(o.update({selection:a})),!0)};function findNextOccurrence(o,e){let{main:s,ranges:a}=o.selection,c=o.wordAt(s.head),d=c&&c.from==s.from&&c.to==s.to;for(let _=!1,b=new SearchCursor(o.doc,e,a[a.length-1].to);;)if(b.next(),b.done){if(_)return null;b=new SearchCursor(o.doc,e,0,Math.max(0,a[a.length-1].from-1)),_=!0}else{if(_&&a.some(k=>k.from==b.value.from))continue;if(d){let k=o.wordAt(b.value.from);if(!k||k.from!=b.value.from||k.to!=b.value.to)continue}return b.value}}const selectNextOccurrence=({state:o,dispatch:e})=>{let{ranges:s}=o.selection;if(s.some(d=>d.from===d.to))return selectWord({state:o,dispatch:e});let a=o.sliceDoc(s[0].from,s[0].to);if(o.selection.ranges.some(d=>o.sliceDoc(d.from,d.to)!=a))return!1;let c=findNextOccurrence(o,a);return c?(e(o.update({selection:o.selection.addRange(EditorSelection.range(c.from,c.to),!1),effects:EditorView.scrollIntoView(c.to)})),!0):!1},searchConfigFacet=Facet.define({combine(o){var e;return{top:o.reduce((s,a)=>s!=null?s:a.top,void 0)||!1,caseSensitive:o.reduce((s,a)=>s!=null?s:a.caseSensitive||a.matchCase,void 0)||!1,createPanel:((e=o.find(s=>s.createPanel))===null||e===void 0?void 0:e.createPanel)||(s=>new SearchPanel(s))}}});class SearchQuery{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||validRegExp(this.search)),this.unquoted=this.search.replace(/\\([nrt\\])/g,(s,a)=>a=="n"?` -`:a=="r"?"\r":a=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp}create(){return this.regexp?new RegExpQuery(this):new StringQuery(this)}getCursor(e,s=0,a=e.length){return this.regexp?regexpCursor(this,e,s,a):stringCursor(this,e,s,a)}}class QueryType{constructor(e){this.spec=e}}function stringCursor(o,e,s,a){return new SearchCursor(e,o.unquoted,s,a,o.caseSensitive?void 0:c=>c.toLowerCase())}class StringQuery extends QueryType{constructor(e){super(e)}nextMatch(e,s,a){let c=stringCursor(this.spec,e,a,e.length).nextOverlapping();return c.done&&(c=stringCursor(this.spec,e,0,s).nextOverlapping()),c.done?null:c.value}prevMatchInRange(e,s,a){for(let c=a;;){let d=Math.max(s,c-1e4-this.spec.unquoted.length),_=stringCursor(this.spec,e,d,c),b=null;for(;!_.nextOverlapping().done;)b=_.value;if(b)return b;if(d==s)return null;c-=1e4}}prevMatch(e,s,a){return this.prevMatchInRange(e,0,s)||this.prevMatchInRange(e,a,e.length)}getReplacement(e){return this.spec.replace}matchAll(e,s){let a=stringCursor(this.spec,e,0,e.length),c=[];for(;!a.next().done;){if(c.length>=s)return null;c.push(a.value)}return c}highlight(e,s,a,c){let d=stringCursor(this.spec,e,Math.max(0,s-this.spec.unquoted.length),Math.min(a+this.spec.unquoted.length,e.length));for(;!d.next().done;)c(d.value.from,d.value.to)}}function regexpCursor(o,e,s,a){return new RegExpCursor(e,o.search,o.caseSensitive?void 0:{ignoreCase:!0},s,a)}class RegExpQuery extends QueryType{nextMatch(e,s,a){let c=regexpCursor(this.spec,e,a,e.length).next();return c.done&&(c=regexpCursor(this.spec,e,0,s).next()),c.done?null:c.value}prevMatchInRange(e,s,a){for(let c=1;;c++){let d=Math.max(s,a-c*1e4),_=regexpCursor(this.spec,e,d,a),b=null;for(;!_.next().done;)b=_.value;if(b&&(d==s||b.from>d+10))return b;if(d==s)return null}}prevMatch(e,s,a){return this.prevMatchInRange(e,0,s)||this.prevMatchInRange(e,a,e.length)}getReplacement(e){return this.spec.replace.replace(/\$([$&\d+])/g,(s,a)=>a=="$"?"$":a=="&"?e.match[0]:a!="0"&&+a=s)return null;c.push(a.value)}return c}highlight(e,s,a,c){let d=regexpCursor(this.spec,e,Math.max(0,s-250),Math.min(a+250,e.length));for(;!d.next().done;)c(d.value.from,d.value.to)}}const setSearchQuery=StateEffect.define(),togglePanel$1=StateEffect.define(),searchState=StateField.define({create(o){return new SearchState(defaultQuery(o).create(),null)},update(o,e){for(let s of e.effects)s.is(setSearchQuery)?o=new SearchState(s.value.create(),o.panel):s.is(togglePanel$1)&&(o=new SearchState(o.query,s.value?createSearchPanel:null));return o},provide:o=>showPanel.from(o,e=>e.panel)});class SearchState{constructor(e,s){this.query=e,this.panel=s}}const matchMark=Decoration.mark({class:"cm-searchMatch"}),selectedMatchMark=Decoration.mark({class:"cm-searchMatch cm-searchMatch-selected"}),searchHighlighter=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.decorations=this.highlight(o.state.field(searchState))}update(o){let e=o.state.field(searchState);(e!=o.startState.field(searchState)||o.docChanged||o.selectionSet||o.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:o,panel:e}){if(!e||!o.spec.valid)return Decoration.none;let{view:s}=this,a=new RangeSetBuilder;for(let c=0,d=s.visibleRanges,_=d.length;c<_;c++){let{from:b,to:k}=d[c];for(;c<_-1&&k>d[c+1].from-2*250;)k=d[++c].to;o.highlight(s.state.doc,b,k,($,j)=>{let _e=s.state.selection.ranges.some(et=>et.from==$&&et.to==j);a.add($,j,_e?selectedMatchMark:matchMark)})}return a.finish()}},{decorations:o=>o.decorations});function searchCommand(o){return e=>{let s=e.state.field(searchState,!1);return s&&s.query.spec.valid?o(e,s):openSearchPanel(e)}}const findNext=searchCommand((o,{query:e})=>{let{from:s,to:a}=o.state.selection.main,c=e.nextMatch(o.state.doc,s,a);return!c||c.from==s&&c.to==a?!1:(o.dispatch({selection:{anchor:c.from,head:c.to},scrollIntoView:!0,effects:announceMatch(o,c),userEvent:"select.search"}),!0)}),findPrevious=searchCommand((o,{query:e})=>{let{state:s}=o,{from:a,to:c}=s.selection.main,d=e.prevMatch(s.doc,a,c);return d?(o.dispatch({selection:{anchor:d.from,head:d.to},scrollIntoView:!0,effects:announceMatch(o,d),userEvent:"select.search"}),!0):!1}),selectMatches=searchCommand((o,{query:e})=>{let s=e.matchAll(o.state.doc,1e3);return!s||!s.length?!1:(o.dispatch({selection:EditorSelection.create(s.map(a=>EditorSelection.range(a.from,a.to))),userEvent:"select.search.matches"}),!0)}),selectSelectionMatches=({state:o,dispatch:e})=>{let s=o.selection;if(s.ranges.length>1||s.main.empty)return!1;let{from:a,to:c}=s.main,d=[],_=0;for(let b=new SearchCursor(o.doc,o.sliceDoc(a,c));!b.next().done;){if(d.length>1e3)return!1;b.value.from==a&&(_=d.length),d.push(EditorSelection.range(b.value.from,b.value.to))}return e(o.update({selection:EditorSelection.create(d,_),userEvent:"select.search.matches"})),!0},replaceNext=searchCommand((o,{query:e})=>{let{state:s}=o,{from:a,to:c}=s.selection.main;if(s.readOnly)return!1;let d=e.nextMatch(s.doc,a,a);if(!d)return!1;let _=[],b,k;if(d.from==a&&d.to==c&&(k=s.toText(e.getReplacement(d)),_.push({from:d.from,to:d.to,insert:k}),d=e.nextMatch(s.doc,d.from,d.to)),d){let $=_.length==0||_[0].from>=d.to?0:d.to-d.from-k.length;b={anchor:d.from-$,head:d.to-$}}return o.dispatch({changes:_,selection:b,scrollIntoView:!!b,effects:d?announceMatch(o,d):void 0,userEvent:"input.replace"}),!0}),replaceAll=searchCommand((o,{query:e})=>{if(o.state.readOnly)return!1;let s=e.matchAll(o.state.doc,1e9).map(a=>{let{from:c,to:d}=a;return{from:c,to:d,insert:e.getReplacement(a)}});return s.length?(o.dispatch({changes:s,userEvent:"input.replace.all"}),!0):!1});function createSearchPanel(o){return o.state.facet(searchConfigFacet).createPanel(o)}function defaultQuery(o,e){var s;let a=o.selection.main,c=a.empty||a.to>a.from+100?"":o.sliceDoc(a.from,a.to),d=(s=e==null?void 0:e.caseSensitive)!==null&&s!==void 0?s:o.facet(searchConfigFacet).caseSensitive;return e&&!c?e:new SearchQuery({search:c.replace(/\n/g,"\\n"),caseSensitive:d})}const openSearchPanel=o=>{let e=o.state.field(searchState,!1);if(e&&e.panel){let s=getPanel(o,createSearchPanel);if(!s)return!1;let a=s.dom.querySelector("[name=search]");if(a!=o.root.activeElement){let c=defaultQuery(o.state,e.query.spec);c.valid&&o.dispatch({effects:setSearchQuery.of(c)}),a.focus(),a.select()}}else o.dispatch({effects:[togglePanel$1.of(!0),e?setSearchQuery.of(defaultQuery(o.state,e.query.spec)):StateEffect.appendConfig.of(searchExtensions)]});return!0},closeSearchPanel=o=>{let e=o.state.field(searchState,!1);if(!e||!e.panel)return!1;let s=getPanel(o,createSearchPanel);return s&&s.dom.contains(o.root.activeElement)&&o.focus(),o.dispatch({effects:togglePanel$1.of(!1)}),!0},searchKeymap=[{key:"Mod-f",run:openSearchPanel,scope:"editor search-panel"},{key:"F3",run:findNext,shift:findPrevious,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:findNext,shift:findPrevious,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:closeSearchPanel,scope:"editor search-panel"},{key:"Mod-Shift-l",run:selectSelectionMatches},{key:"Alt-g",run:gotoLine},{key:"Mod-d",run:selectNextOccurrence,preventDefault:!0}];class SearchPanel{constructor(e){this.view=e;let s=this.query=e.state.field(searchState).query.spec;this.commit=this.commit.bind(this),this.searchField=crelt("input",{value:s.search,placeholder:phrase(e,"Find"),"aria-label":phrase(e,"Find"),class:"cm-textfield",name:"search",onchange:this.commit,onkeyup:this.commit}),this.replaceField=crelt("input",{value:s.replace,placeholder:phrase(e,"Replace"),"aria-label":phrase(e,"Replace"),class:"cm-textfield",name:"replace",onchange:this.commit,onkeyup:this.commit}),this.caseField=crelt("input",{type:"checkbox",name:"case",checked:s.caseSensitive,onchange:this.commit}),this.reField=crelt("input",{type:"checkbox",name:"re",checked:s.regexp,onchange:this.commit});function a(c,d,_){return crelt("button",{class:"cm-button",name:c,onclick:d,type:"button"},_)}this.dom=crelt("div",{onkeydown:c=>this.keydown(c),class:"cm-search"},[this.searchField,a("next",()=>findNext(e),[phrase(e,"next")]),a("prev",()=>findPrevious(e),[phrase(e,"previous")]),a("select",()=>selectMatches(e),[phrase(e,"all")]),crelt("label",null,[this.caseField,phrase(e,"match case")]),crelt("label",null,[this.reField,phrase(e,"regexp")]),...e.state.readOnly?[]:[crelt("br"),this.replaceField,a("replace",()=>replaceNext(e),[phrase(e,"replace")]),a("replaceAll",()=>replaceAll(e),[phrase(e,"replace all")]),crelt("button",{name:"close",onclick:()=>closeSearchPanel(e),"aria-label":phrase(e,"close"),type:"button"},["\xD7"])]])}commit(){let e=new SearchQuery({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:setSearchQuery.of(e)}))}keydown(e){runScopeHandlers(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?findPrevious:findNext)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),replaceNext(this.view))}update(e){for(let s of e.transactions)for(let a of s.effects)a.is(setSearchQuery)&&!a.value.eq(this.query)&&this.setQuery(a.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(searchConfigFacet).top}}function phrase(o,e){return o.state.phrase(e)}const AnnounceMargin=30,Break=/[\s\.,:;?!]/;function announceMatch(o,{from:e,to:s}){let a=o.state.doc.lineAt(e).from,c=o.state.doc.lineAt(s).to,d=Math.max(a,e-AnnounceMargin),_=Math.min(c,s+AnnounceMargin),b=o.state.sliceDoc(d,_);if(d!=a){for(let k=0;kb.length-AnnounceMargin;k--)if(!Break.test(b[k-1])&&Break.test(b[k])){b=b.slice(0,k);break}}return EditorView.announce.of(`${o.state.phrase("current match")}. ${b} ${o.state.phrase("on line")} ${o.state.doc.lineAt(e).number}`)}const baseTheme$3=EditorView.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),searchExtensions=[searchState,Prec.lowest(searchHighlighter),baseTheme$3],ios=typeof navigator!="undefined"&&!/Edge\/(\d+)/.exec(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor)&&(/Mobile\/\w+/.test(navigator.userAgent)||navigator.maxTouchPoints>2),Outside="-10000px";class TooltipViewManager{constructor(e,s,a){this.facet=s,this.createTooltipView=a,this.input=e.state.facet(s),this.tooltips=this.input.filter(c=>c),this.tooltipViews=this.tooltips.map(a)}update(e){let s=e.state.facet(this.facet),a=s.filter(d=>d);if(s===this.input){for(let d of this.tooltipViews)d.update&&d.update(e);return!1}let c=[];for(let d=0;d{var e,s,a;return{position:ios?"absolute":((e=o.find(c=>c.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((s=o.find(c=>c.parent))===null||s===void 0?void 0:s.parent)||null,tooltipSpace:((a=o.find(c=>c.tooltipSpace))===null||a===void 0?void 0:a.tooltipSpace)||windowSpace}}}),tooltipPlugin=ViewPlugin.fromClass(class{constructor(o){var e;this.view=o,this.inView=!0,this.lastTransaction=0,this.measureTimeout=-1;let s=o.state.facet(tooltipConfig);this.position=s.position,this.parent=s.parent,this.classes=o.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new TooltipViewManager(o,showTooltip,a=>this.createTooltip(a)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(a=>{Date.now()>this.lastTransaction-50&&a.length>0&&a[a.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),(e=o.dom.ownerDocument.defaultView)===null||e===void 0||e.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let o of this.manager.tooltipViews)this.intersectionObserver.observe(o.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(o){o.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(o);e&&this.observeIntersection();let s=e||o.geometryChanged,a=o.state.facet(tooltipConfig);if(a.position!=this.position){this.position=a.position;for(let c of this.manager.tooltipViews)c.dom.style.position=this.position;s=!0}if(a.parent!=this.parent){this.parent&&this.container.remove(),this.parent=a.parent,this.createContainer();for(let c of this.manager.tooltipViews)this.container.appendChild(c.dom);s=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);s&&this.maybeMeasure()}createTooltip(o){let e=o.create(this.view);if(e.dom.classList.add("cm-tooltip"),o.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",e.dom.appendChild(s)}return e.dom.style.position=this.position,e.dom.style.top=Outside,this.container.appendChild(e.dom),e.mount&&e.mount(this.view),e}destroy(){var o,e;(o=this.view.dom.ownerDocument.defaultView)===null||o===void 0||o.removeEventListener("resize",this.measureSoon);for(let{dom:s}of this.manager.tooltipViews)s.remove();(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let o=this.view.dom.getBoundingClientRect();return{editor:o,parent:this.parent?this.container.getBoundingClientRect():o,pos:this.manager.tooltips.map((e,s)=>{let a=this.manager.tooltipViews[s];return a.getCoords?a.getCoords(e.pos):this.view.coordsAtPos(e.pos)}),size:this.manager.tooltipViews.map(({dom:e})=>e.getBoundingClientRect()),space:this.view.state.facet(tooltipConfig).tooltipSpace(this.view)}}writeMeasure(o){let{editor:e,space:s}=o,a=[];for(let c=0;c=Math.min(e.bottom,s.bottom)||k.rightMath.min(e.right,s.right)+.1){b.style.top=Outside;continue}let j=d.arrow?_.dom.querySelector(".cm-tooltip-arrow"):null,_e=j?7:0,et=$.right-$.left,tt=$.bottom-$.top,nt=_.offset||noOffset,it=this.view.textDirection==Direction.LTR,rt=$.width>s.right-s.left?it?s.left:s.right-$.width:it?Math.min(k.left-(j?14:0)+nt.x,s.right-et):Math.max(s.left,k.left-et+(j?14:0)-nt.x),st=!!d.above;!d.strictSide&&(st?k.top-($.bottom-$.top)-nt.ys.bottom)&&st==s.bottom-k.bottom>k.top-s.top&&(st=!st);let at=st?k.top-tt-_e-nt.y:k.bottom+_e+nt.y,ot=rt+et;if(_.overlap!==!0)for(let ht of a)ht.leftrt&&ht.topat&&(at=st?ht.top-tt-2-_e:ht.bottom+_e+2);this.position=="absolute"?(b.style.top=at-o.parent.top+"px",b.style.left=rt-o.parent.left+"px"):(b.style.top=at+"px",b.style.left=rt+"px"),j&&(j.style.left=`${k.left+(it?nt.x:-nt.x)-(rt+14-7)}px`),_.overlap!==!0&&a.push({left:rt,top:at,right:ot,bottom:at+tt}),b.classList.toggle("cm-tooltip-above",st),b.classList.toggle("cm-tooltip-below",!st),_.positioned&&_.positioned()}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let o of this.manager.tooltipViews)o.dom.style.top=Outside}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),baseTheme$2=EditorView.baseTheme({".cm-tooltip":{zIndex:100},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:`${7}px`,width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},".cm-tooltip-above &":{bottom:`-${7}px`,"&:before":{borderTop:`${7}px solid #bbb`},"&:after":{borderTop:`${7}px solid #f5f5f5`,bottom:"1px"}},".cm-tooltip-below &":{top:`-${7}px`,"&:before":{borderBottom:`${7}px solid #bbb`},"&:after":{borderBottom:`${7}px solid #f5f5f5`,top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),noOffset={x:0,y:0},showTooltip=Facet.define({enables:[tooltipPlugin,baseTheme$2]}),showHoverTooltip=Facet.define();class HoverTooltipHost{constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new TooltipViewManager(e,showHoverTooltip,s=>this.createHostedView(s))}static create(e){return new HoverTooltipHost(e)}createHostedView(e){let s=e.create(this.view);return s.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(s.dom),this.mounted&&s.mount&&s.mount(this.view),s}mount(e){for(let s of this.manager.tooltipViews)s.mount&&s.mount(e);this.mounted=!0}positioned(){for(let e of this.manager.tooltipViews)e.positioned&&e.positioned()}update(e){this.manager.update(e)}}const showHoverTooltipHost=showTooltip.compute([showHoverTooltip],o=>{let e=o.facet(showHoverTooltip).filter(s=>s);return e.length===0?null:{pos:Math.min(...e.map(s=>s.pos)),end:Math.max(...e.filter(s=>s.end!=null).map(s=>s.end)),create:HoverTooltipHost.create,above:e[0].above,arrow:e.some(s=>s.arrow)}});class HoverPlugin{constructor(e,s,a,c,d){this.view=e,this.source=s,this.field=a,this.setHover=c,this.hoverTime=d,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active)return;let e=Date.now()-this.lastMove.time;ec.bottom||s.xc.right+this.view.defaultCharacterWidth)return;let d=this.view.bidiSpans(this.view.state.doc.lineAt(a)).find(k=>k.from<=a&&k.to>=a),_=d&&d.dir==Direction.RTL?-1:1,b=this.source(this.view,a,s.x{this.pending==k&&(this.pending=null,$&&this.view.dispatch({effects:this.setHover.of($)}))},$=>logException(this.view.state,$,"hover tooltip"))}else b&&this.view.dispatch({effects:this.setHover.of(b)})}mousemove(e){var s;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let a=this.active;if(a&&!isInTooltip(this.lastMove.target)||this.pending){let{pos:c}=a||this.pending,d=(s=a==null?void 0:a.end)!==null&&s!==void 0?s:c;(c==d?this.view.posAtCoords(this.lastMove)!=c:!isOverRange(this.view,c,d,e.clientX,e.clientY,6))&&(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&this.view.dispatch({effects:this.setHover.of(null)})}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}function isInTooltip(o){for(let e=o;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains("cm-tooltip"))return!0;return!1}function isOverRange(o,e,s,a,c,d){let _=document.createRange(),b=o.domAtPos(e),k=o.domAtPos(s);_.setEnd(k.node,k.offset),_.setStart(b.node,b.offset);let $=_.getClientRects();_.detach();for(let j=0;j<$.length;j++){let _e=$[j];if(Math.max(_e.top-c,c-_e.bottom,_e.left-a,a-_e.right)<=d)return!0}return!1}function hoverTooltip(o,e={}){let s=StateEffect.define(),a=StateField.define({create(){return null},update(c,d){if(c&&e.hideOnChange&&(d.docChanged||d.selection))return null;for(let _ of d.effects){if(_.is(s))return _.value;if(_.is(closeHoverTooltipEffect))return null}if(c&&d.docChanged){let _=d.changes.mapPos(c.pos,-1,MapMode.TrackDel);if(_==null)return null;let b=Object.assign(Object.create(null),c);return b.pos=_,c.end!=null&&(b.end=d.changes.mapPos(c.end)),b}return c},provide:c=>showHoverTooltip.from(c)});return[a,ViewPlugin.define(c=>new HoverPlugin(c,o,a,s,e.hoverTime||300)),showHoverTooltipHost]}function getTooltip(o,e){let s=o.plugin(tooltipPlugin);if(!s)return null;let a=s.manager.tooltips.indexOf(e);return a<0?null:s.manager.tooltipViews[a]}const closeHoverTooltipEffect=StateEffect.define();class CompletionContext{constructor(e,s,a){this.state=e,this.pos=s,this.explicit=a,this.abortListeners=[]}tokenBefore(e){let s=syntaxTree(this.state).resolveInner(this.pos,-1);for(;s&&e.indexOf(s.name)<0;)s=s.parent;return s?{from:s.from,to:this.pos,text:this.state.sliceDoc(s.from,this.pos),type:s.type}:null}matchBefore(e){let s=this.state.doc.lineAt(this.pos),a=Math.max(s.from,this.pos-250),c=s.text.slice(a-s.from,this.pos-s.from),d=c.search(ensureAnchor(e,!1));return d<0?null:{from:a+d,to:this.pos,text:c.slice(d)}}get aborted(){return this.abortListeners==null}addEventListener(e,s){e=="abort"&&this.abortListeners&&this.abortListeners.push(s)}}function toSet(o){let e=Object.keys(o).join(""),s=/\w/.test(e);return s&&(e=e.replace(/\w/g,"")),`[${s?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function prefixMatch(o){let e=Object.create(null),s=Object.create(null);for(let{label:c}of o){e[c[0]]=!0;for(let d=1;dtypeof c=="string"?{label:c}:c),[s,a]=e.every(c=>/^\w+$/.test(c.label))?[/\w*$/,/\w+$/]:prefixMatch(e);return c=>{let d=c.matchBefore(a);return d||c.explicit?{from:d?d.from:c.pos,options:e,span:s}:null}}function ifNotIn(o,e){return s=>{for(let a=syntaxTree(s.state).resolveInner(s.pos,-1);a;a=a.parent)if(o.indexOf(a.name)>-1)return null;return e(s)}}class Option{constructor(e,s,a){this.completion=e,this.source=s,this.match=a}}function cur(o){return o.selection.main.head}function ensureAnchor(o,e){var s;let{source:a}=o,c=e&&a[0]!="^",d=a[a.length-1]!="$";return!c&&!d?o:new RegExp(`${c?"^":""}(?:${a})${d?"$":""}`,(s=o.flags)!==null&&s!==void 0?s:o.ignoreCase?"i":"")}const pickedCompletion=Annotation.define();function applyCompletion(o,e){let s=e.completion.apply||e.completion.label,a=e.source;typeof s=="string"?o.dispatch({changes:{from:a.from,to:a.to,insert:s},selection:{anchor:a.from+s.length},userEvent:"input.complete",annotations:pickedCompletion.of(e.completion)}):s(o,e.completion,a.from,a.to)}const SourceCache=new WeakMap;function asSource(o){if(!Array.isArray(o))return o;let e=SourceCache.get(o);return e||SourceCache.set(o,e=completeFromList(o)),e}class FuzzyMatcher{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let s=0;s=48&&ct<=57||ct>=97&&ct<=122?2:ct>=65&&ct<=90?1:0:(ut=fromCodePoint(ct))!=ut.toLowerCase()?1:ut!=ut.toUpperCase()?2:0;(!at||lt==1&&rt||ht==0&<!=0)&&(s[_e]==ct||a[_e]==ct&&(et=!0)?_[_e++]=at:_.length&&(st=!1)),ht=lt,at+=codePointSize(ct)}return _e==k&&_[0]==0&&st?this.result(-100+(et?-200:0),_,e):tt==k&&nt==0?[-200-e.length,0,it]:b>-1?[-700-e.length,b,b+this.pattern.length]:tt==k?[-200+-700-e.length,nt,it]:_e==k?this.result(-100+(et?-200:0)+-700+(st?0:-1100),_,e):s.length==2?null:this.result((c[0]?-700:0)+-200+-1100,c,e)}result(e,s,a){let c=[e-a.length],d=1;for(let _ of s){let b=_+(this.astral?codePointSize(codePointAt(a,_)):1);d>1&&c[d-1]==_?c[d-1]=b:(c[d++]=_,c[d++]=b)}return c}}const completionConfig=Facet.define({combine(o){return combineConfig(o,{activateOnTyping:!0,override:null,maxRenderedOptions:100,defaultKeymap:!0,optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[]},{defaultKeymap:(e,s)=>e&&s,icons:(e,s)=>e&&s,optionClass:(e,s)=>a=>joinClass(e(a),s(a)),addToOptions:(e,s)=>e.concat(s)})}});function joinClass(o,e){return o?e?o+" "+e:o:e}function optionContent(o){let e=o.addToOptions.slice();return o.icons&&e.push({render(s){let a=document.createElement("div");return a.classList.add("cm-completionIcon"),s.type&&a.classList.add(...s.type.split(/\s+/g).map(c=>"cm-completionIcon-"+c)),a.setAttribute("aria-hidden","true"),a},position:20}),e.push({render(s,a,c){let d=document.createElement("span");d.className="cm-completionLabel";let{label:_}=s,b=0;for(let k=1;kb&&d.appendChild(document.createTextNode(_.slice(b,$)));let _e=d.appendChild(document.createElement("span"));_e.appendChild(document.createTextNode(_.slice($,j))),_e.className="cm-completionMatchedText",b=j}return b<_.length&&d.appendChild(document.createTextNode(_.slice(b))),d},position:50},{render(s){if(!s.detail)return null;let a=document.createElement("span");return a.className="cm-completionDetail",a.textContent=s.detail,a},position:80}),e.sort((s,a)=>s.position-a.position).map(s=>s.render)}function rangeAroundSelected(o,e,s){if(o<=s)return{from:0,to:o};if(e<=o>>1){let c=Math.floor(e/s);return{from:c*s,to:(c+1)*s}}let a=Math.floor((o-e)/s);return{from:o-(a+1)*s,to:o-a*s}}class CompletionTooltip{constructor(e,s){this.view=e,this.stateField=s,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:b=>this.positionInfo(b),key:this};let a=e.state.field(s),{options:c,selected:d}=a.open,_=e.state.facet(completionConfig);this.optionContent=optionContent(_),this.optionClass=_.optionClass,this.range=rangeAroundSelected(c.length,d,_.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.dom.addEventListener("mousedown",b=>{for(let k=b.target,$;k&&k!=this.dom;k=k.parentNode)if(k.nodeName=="LI"&&($=/-(\d+)$/.exec(k.id))&&+$[1]{this.info&&this.view.requestMeasure(this.placeInfo)})}mount(){this.updateSel()}update(e){e.state.field(this.stateField)!=e.startState.field(this.stateField)&&this.updateSel()}positioned(){this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let e=this.view.state.field(this.stateField),s=e.open;if((s.selected=this.range.to)&&(this.range=rangeAroundSelected(s.options.length,s.selected,this.view.state.facet(completionConfig).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(s.options,e.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})),this.updateSelectedOption(s.selected)){this.info&&(this.info.remove(),this.info=null);let{completion:a}=s.options[s.selected],{info:c}=a;if(!c)return;let d=typeof c=="string"?document.createTextNode(c):c(a);if(!d)return;"then"in d?d.then(_=>{_&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(_)}).catch(_=>logException(this.view.state,_,"completion info")):this.addInfoPane(d)}}addInfoPane(e){let s=this.info=document.createElement("div");s.className="cm-tooltip cm-completionInfo",s.appendChild(e),this.dom.appendChild(s),this.view.requestMeasure(this.placeInfo)}updateSelectedOption(e){let s=null;for(let a=this.list.firstChild,c=this.range.from;a;a=a.nextSibling,c++)c==e?a.hasAttribute("aria-selected")||(a.setAttribute("aria-selected","true"),s=a):a.hasAttribute("aria-selected")&&a.removeAttribute("aria-selected");return s&&scrollIntoView(this.list,s),s}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let s=this.dom.getBoundingClientRect(),a=this.info.getBoundingClientRect(),c=e.getBoundingClientRect();if(c.top>Math.min(innerHeight,s.bottom)-10||c.bottomnew CompletionTooltip(e,o)}function scrollIntoView(o,e){let s=o.getBoundingClientRect(),a=e.getBoundingClientRect();a.tops.bottom&&(o.scrollTop+=a.bottom-s.bottom)}const MaxOptions=300;function score(o){return(o.boost||0)*100+(o.apply?10:0)+(o.info?5:0)+(o.type?1:0)}function sortOptions(o,e){let s=[],a=0;for(let _ of o)if(_.hasResult())if(_.result.filter===!1)for(let b of _.result.options)s.push(new Option(b,_,[1e9-a++]));else{let b=new FuzzyMatcher(e.sliceDoc(_.from,_.to)),k;for(let $ of _.result.options)(k=b.match($.label))&&($.boost!=null&&(k[0]+=$.boost),s.push(new Option($,_,k)))}let c=[],d=null;for(let _ of s.sort(cmpOption)){if(c.length==MaxOptions)break;!d||d.label!=_.completion.label||d.detail!=_.completion.detail||d.type!=_.completion.type||d.apply!=_.completion.apply?c.push(_):score(_.completion)>score(d)&&(c[c.length-1]=_),d=_.completion}return c}class CompletionDialog{constructor(e,s,a,c,d){this.options=e,this.attrs=s,this.tooltip=a,this.timestamp=c,this.selected=d}setSelected(e,s){return e==this.selected||e>=this.options.length?this:new CompletionDialog(this.options,makeAttrs(s,e),this.tooltip,this.timestamp,e)}static build(e,s,a,c,d){let _=sortOptions(e,s);if(!_.length)return null;let b=0;if(c&&c.selected){let k=c.options[c.selected].completion;for(let $=0;$<_.length;$++)if(_[$].completion==k){b=$;break}}return new CompletionDialog(_,makeAttrs(a,b),{pos:e.reduce((k,$)=>$.hasResult()?Math.min(k,$.from):k,1e8),create:completionTooltip(completionState),above:d.aboveCursor},c?c.timestamp:Date.now(),b)}map(e){return new CompletionDialog(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected)}}class CompletionState{constructor(e,s,a){this.active=e,this.id=s,this.open=a}static start(){return new CompletionState(none,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:s}=e,a=s.facet(completionConfig),d=(a.override||s.languageDataAt("autocomplete",cur(s)).map(asSource)).map(b=>(this.active.find($=>$.source==b)||new ActiveSource(b,this.active.some($=>$.state!=0)?1:0)).update(e,a));d.length==this.active.length&&d.every((b,k)=>b==this.active[k])&&(d=this.active);let _=e.selection||d.some(b=>b.hasResult()&&e.changes.touchesRange(b.from,b.to))||!sameResults(d,this.active)?CompletionDialog.build(d,s,this.id,this.open,a):this.open&&e.docChanged?this.open.map(e.changes):this.open;!_&&d.every(b=>b.state!=1)&&d.some(b=>b.hasResult())&&(d=d.map(b=>b.hasResult()?new ActiveSource(b.source,0):b));for(let b of e.effects)b.is(setSelectedEffect)&&(_=_&&_.setSelected(b.value,this.id));return d==this.active&&_==this.open?this:new CompletionState(d,this.id,_)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:baseAttrs}}function sameResults(o,e){if(o==e)return!0;for(let s=0,a=0;;){for(;sd||s=="delete"&&cur(e.startState)==this.from)return new ActiveSource(this.source,s=="input"&&a.activateOnTyping?1:0);let b=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos);return this.span&&(c==d||this.span.test(e.state.sliceDoc(c,d)))?new ActiveResult(this.source,b,this.result,c,d,this.span):new ActiveSource(this.source,1,b)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new ActiveSource(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new ActiveResult(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1),this.span)}}const startCompletionEffect=StateEffect.define(),closeCompletionEffect=StateEffect.define(),setActiveEffect=StateEffect.define({map(o,e){return o.map(s=>s.map(e))}}),setSelectedEffect=StateEffect.define(),completionState=StateField.define({create(){return CompletionState.start()},update(o,e){return o.update(e)},provide:o=>[showTooltip.from(o,e=>e.tooltip),EditorView.contentAttributes.from(o,e=>e.attrs)]}),CompletionInteractMargin=75;function moveCompletionSelection(o,e="option"){return s=>{let a=s.state.field(completionState,!1);if(!a||!a.open||Date.now()-a.open.timestamp=b&&(_=e=="page"?b-1:0),s.dispatch({effects:setSelectedEffect.of(_)}),!0}}const acceptCompletion=o=>{let e=o.state.field(completionState,!1);return o.state.readOnly||!e||!e.open||Date.now()-e.open.timestampo.state.field(completionState,!1)?(o.dispatch({effects:startCompletionEffect.of(!0)}),!0):!1,closeCompletion=o=>{let e=o.state.field(completionState,!1);return!e||!e.active.some(s=>s.state!=0)?!1:(o.dispatch({effects:closeCompletionEffect.of(null)}),!0)};class RunningQuery{constructor(e,s){this.active=e,this.context=s,this.time=Date.now(),this.updates=[],this.done=void 0}}const DebounceTime=50,MaxUpdateCount=50,MinAbortTime=1e3,completionPlugin=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let e of o.state.field(completionState).active)e.state==1&&this.startQuery(e)}update(o){let e=o.state.field(completionState);if(!o.selectionSet&&!o.docChanged&&o.startState.field(completionState)==e)return;let s=o.transactions.some(a=>(a.selection||a.docChanged)&&!getUserEvent(a));for(let a=0;aMaxUpdateCount&&Date.now()-c.time>MinAbortTime){for(let d of c.context.abortListeners)try{d()}catch(_){logException(this.view.state,_)}c.context.abortListeners=null,this.running.splice(a--,1)}else c.updates.push(...o.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=e.active.some(a=>a.state==1&&!this.running.some(c=>c.active.source==a.source))?setTimeout(()=>this.startUpdate(),DebounceTime):-1,this.composing!=0)for(let a of o.transactions)getUserEvent(a)=="input"?this.composing=2:this.composing==2&&a.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:o}=this.view,e=o.field(completionState);for(let s of e.active)s.state==1&&!this.running.some(a=>a.active.source==s.source)&&this.startQuery(s)}startQuery(o){let{state:e}=this.view,s=cur(e),a=new CompletionContext(e,s,o.explicitPos==s),c=new RunningQuery(o,a);this.running.push(c),Promise.resolve(o.source(a)).then(d=>{c.context.aborted||(c.done=d||null,this.scheduleAccept())},d=>{this.view.dispatch({effects:closeCompletionEffect.of(null)}),logException(this.view.state,d)})}scheduleAccept(){this.running.every(o=>o.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),DebounceTime))}accept(){var o;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],s=this.view.state.facet(completionConfig);for(let a=0;a_.source==c.active.source);if(d&&d.state==1)if(c.done==null){let _=new ActiveSource(c.active.source,0);for(let b of c.updates)_=_.update(b,s);_.state!=1&&e.push(_)}else this.startQuery(d)}e.length&&this.view.dispatch({effects:setActiveEffect.of(e)})}},{eventHandlers:{compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:startCompletionEffect.of(!1)}),20),this.composing=0}}}),baseTheme$1=EditorView.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",listStyle:"none",margin:0,padding:0,"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"300px"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class FieldPos{constructor(e,s,a,c){this.field=e,this.line=s,this.from=a,this.to=c}}class FieldRange{constructor(e,s,a){this.field=e,this.from=s,this.to=a}map(e){let s=e.mapPos(this.from,-1,MapMode.TrackDel),a=e.mapPos(this.to,1,MapMode.TrackDel);return s==null||a==null?null:new FieldRange(this.field,s,a)}}class Snippet{constructor(e,s){this.lines=e,this.fieldPositions=s}instantiate(e,s){let a=[],c=[s],d=e.doc.lineAt(s),_=/^\s*/.exec(d.text)[0];for(let k of this.lines){if(a.length){let $=_,j=/^\t*/.exec(k)[0].length;for(let _e=0;_enew FieldRange(k.field,c[k.line]+k.from,c[k.line]+k.to));return{text:a,ranges:b}}static parse(e){let s=[],a=[],c=[],d;for(let _ of e.split(/\r\n?|\n/)){for(;d=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(_);){let b=d[1]?+d[1]:null,k=d[2]||d[3]||"",$=-1;for(let j=0;j=$&&_e.field++}c.push(new FieldPos($,a.length,d.index,d.index+k.length)),_=_.slice(0,d.index)+k+_.slice(d.index+d[0].length)}a.push(_)}return new Snippet(a,c)}}let fieldMarker=Decoration.widget({widget:new class extends WidgetType{toDOM(){let o=document.createElement("span");return o.className="cm-snippetFieldPosition",o}ignoreEvent(){return!1}}}),fieldRange=Decoration.mark({class:"cm-snippetField"});class ActiveSnippet{constructor(e,s){this.ranges=e,this.active=s,this.deco=Decoration.set(e.map(a=>(a.from==a.to?fieldMarker:fieldRange).range(a.from,a.to)))}map(e){let s=[];for(let a of this.ranges){let c=a.map(e);if(!c)return null;s.push(c)}return new ActiveSnippet(s,this.active)}selectionInsideField(e){return e.ranges.every(s=>this.ranges.some(a=>a.field==this.active&&a.from<=s.from&&a.to>=s.to))}}const setActive=StateEffect.define({map(o,e){return o&&o.map(e)}}),moveToField=StateEffect.define(),snippetState=StateField.define({create(){return null},update(o,e){for(let s of e.effects){if(s.is(setActive))return s.value;if(s.is(moveToField)&&o)return new ActiveSnippet(o.ranges,s.value)}return o&&e.docChanged&&(o=o.map(e.changes)),o&&e.selection&&!o.selectionInsideField(e.selection)&&(o=null),o},provide:o=>EditorView.decorations.from(o,e=>e?e.deco:Decoration.none)});function fieldSelection(o,e){return EditorSelection.create(o.filter(s=>s.field==e).map(s=>EditorSelection.range(s.from,s.to)))}function snippet(o){let e=Snippet.parse(o);return(s,a,c,d)=>{let{text:_,ranges:b}=e.instantiate(s.state,c),k={changes:{from:c,to:d,insert:Text.of(_)}};if(b.length&&(k.selection=fieldSelection(b,0)),b.length>1){let $=new ActiveSnippet(b,0),j=k.effects=[setActive.of($)];s.state.field(snippetState,!1)===void 0&&j.push(StateEffect.appendConfig.of([snippetState,addSnippetKeymap,snippetPointerHandler,baseTheme$1]))}s.dispatch(s.state.update(k))}}function moveField(o){return({state:e,dispatch:s})=>{let a=e.field(snippetState,!1);if(!a||o<0&&a.active==0)return!1;let c=a.active+o,d=o>0&&!a.ranges.some(_=>_.field==c+o);return s(e.update({selection:fieldSelection(a.ranges,c),effects:setActive.of(d?null:new ActiveSnippet(a.ranges,c))})),!0}}const clearSnippet=({state:o,dispatch:e})=>o.field(snippetState,!1)?(e(o.update({effects:setActive.of(null)})),!0):!1,nextSnippetField=moveField(1),prevSnippetField=moveField(-1),defaultSnippetKeymap=[{key:"Tab",run:nextSnippetField,shift:prevSnippetField},{key:"Escape",run:clearSnippet}],snippetKeymap=Facet.define({combine(o){return o.length?o[0]:defaultSnippetKeymap}}),addSnippetKeymap=Prec.highest(keymap.compute([snippetKeymap],o=>o.facet(snippetKeymap)));function snippetCompletion(o,e){return Object.assign(Object.assign({},e),{apply:snippet(o)})}const snippetPointerHandler=EditorView.domEventHandlers({mousedown(o,e){let s=e.state.field(snippetState,!1),a;if(!s||(a=e.posAtCoords({x:o.clientX,y:o.clientY}))==null)return!1;let c=s.ranges.find(d=>d.from<=a&&d.to>=a);return!c||c.field==s.active?!1:(e.dispatch({selection:fieldSelection(s.ranges,c.field),effects:setActive.of(s.ranges.some(d=>d.field>c.field)?new ActiveSnippet(s.ranges,c.field):null)}),!0)}});function autocompletion(o={}){return[completionState,completionConfig.of(o),completionPlugin,completionKeymapExt,baseTheme$1]}const completionKeymap=[{key:"Ctrl-Space",run:startCompletion},{key:"Escape",run:closeCompletion},{key:"ArrowDown",run:moveCompletionSelection(!0)},{key:"ArrowUp",run:moveCompletionSelection(!1)},{key:"PageDown",run:moveCompletionSelection(!0,"page")},{key:"PageUp",run:moveCompletionSelection(!1,"page")},{key:"Enter",run:acceptCompletion}],completionKeymapExt=Prec.highest(keymap.computeN([completionConfig],o=>o.facet(completionConfig).defaultKeymap?[completionKeymap]:[])),toggleComment=o=>{let e=getConfig(o.state);return e.line?toggleLineComment(o):e.block?toggleBlockCommentByLine(o):!1};function command(o,e){return({state:s,dispatch:a})=>{if(s.readOnly)return!1;let c=o(e,s);return c?(a(s.update(c)),!0):!1}}const toggleLineComment=command(changeLineComment,0),toggleBlockComment=command(changeBlockComment,0),toggleBlockCommentByLine=command((o,e)=>changeBlockComment(o,e,selectedLineRanges(e)),0),commentKeymap=[{key:"Mod-/",run:toggleComment},{key:"Alt-A",run:toggleBlockComment}];function getConfig(o,e=o.selection.main.head){let s=o.languageDataAt("commentTokens",e);return s.length?s[0]:{}}const SearchMargin=50;function findBlockComment(o,{open:e,close:s},a,c){let d=o.sliceDoc(a-SearchMargin,a),_=o.sliceDoc(c,c+SearchMargin),b=/\s*$/.exec(d)[0].length,k=/^\s*/.exec(_)[0].length,$=d.length-b;if(d.slice($-e.length,$)==e&&_.slice(k,k+s.length)==s)return{open:{pos:a-b,margin:b&&1},close:{pos:c+k,margin:k&&1}};let j,_e;c-a<=2*SearchMargin?j=_e=o.sliceDoc(a,c):(j=o.sliceDoc(a,a+SearchMargin),_e=o.sliceDoc(c-SearchMargin,c));let et=/^\s*/.exec(j)[0].length,tt=/\s*$/.exec(_e)[0].length,nt=_e.length-tt-s.length;return j.slice(et,et+e.length)==e&&_e.slice(nt,nt+s.length)==s?{open:{pos:a+et+e.length,margin:/\s/.test(j.charAt(et+e.length))?1:0},close:{pos:c-tt-s.length,margin:/\s/.test(_e.charAt(nt-1))?1:0}}:null}function selectedLineRanges(o){let e=[];for(let s of o.selection.ranges){let a=o.doc.lineAt(s.from),c=s.to<=a.to?a:o.doc.lineAt(s.to),d=e.length-1;d>=0&&e[d].to>a.from?e[d].to=c.to:e.push({from:a.from,to:c.to})}return e}function changeBlockComment(o,e,s=e.selection.ranges){let a=s.map(d=>getConfig(e,d.from).block);if(!a.every(d=>d))return null;let c=s.map((d,_)=>findBlockComment(e,a[_],d.from,d.to));if(o!=2&&!c.every(d=>d))return{changes:e.changes(s.map((d,_)=>c[_]?[]:[{from:d.from,insert:a[_].open+" "},{from:d.to,insert:" "+a[_].close}]))};if(o!=1&&c.some(d=>d)){let d=[];for(let _=0,b;_c&&(d==_||_>j.from)){c=j.from;let _e=getConfig(e,$).line;if(!_e)continue;let et=/^\s*/.exec(j.text)[0].length,tt=et==j.length,nt=j.text.slice(et,et+_e.length)==_e?et:-1;etd.comment<0&&(!d.empty||d.single))){let d=[];for(let{line:b,token:k,indent:$,empty:j,single:_e}of a)(_e||!j)&&d.push({from:b.from+$,insert:k+" "});let _=e.changes(d);return{changes:_,selection:e.selection.map(_,1)}}else if(o!=1&&a.some(d=>d.comment>=0)){let d=[];for(let{line:_,comment:b,token:k}of a)if(b>=0){let $=_.from+b,j=$+k.length;_.text[j-_.from]==" "&&j++,d.push({from:$,to:j})}return{changes:d}}return null}const MaxOff=2e3;function rectangleFor(o,e,s){let a=Math.min(e.line,s.line),c=Math.max(e.line,s.line),d=[];if(e.off>MaxOff||s.off>MaxOff||e.col<0||s.col<0){let _=Math.min(e.off,s.off),b=Math.max(e.off,s.off);for(let k=a;k<=c;k++){let $=o.doc.line(k);$.length<=b&&d.push(EditorSelection.range($.from+_,$.to+b))}}else{let _=Math.min(e.col,s.col),b=Math.max(e.col,s.col);for(let k=a;k<=c;k++){let $=o.doc.line(k),j=findColumn($.text,_,o.tabSize,!0);if(j>-1){let _e=findColumn($.text,b,o.tabSize);d.push(EditorSelection.range($.from+j,$.from+_e))}}}return d}function absoluteColumn(o,e){let s=o.coordsAtPos(o.viewport.from);return s?Math.round(Math.abs((s.left-e)/o.defaultCharacterWidth)):-1}function getPos(o,e){let s=o.posAtCoords({x:e.clientX,y:e.clientY},!1),a=o.state.doc.lineAt(s),c=s-a.from,d=c>MaxOff?-1:c==a.length?absoluteColumn(o,e.clientX):countColumn(a.text,o.state.tabSize,s-a.from);return{line:a.number,col:d,off:c}}function rectangleSelectionStyle(o,e){let s=getPos(o,e),a=o.state.selection;return s?{update(c){if(c.docChanged){let d=c.changes.mapPos(c.startState.doc.line(s.line).from),_=c.state.doc.lineAt(d);s={line:_.number,col:s.col,off:Math.min(s.off,_.length)},a=a.map(c.changes)}},get(c,d,_){let b=getPos(o,c);if(!b)return a;let k=rectangleFor(o.state,s,b);return k.length?_?EditorSelection.create(k.concat(a.ranges)):EditorSelection.create(k):a}}:null}function rectangularSelection(o){let e=(o==null?void 0:o.eventFilter)||(s=>s.altKey&&s.button==0);return EditorView.mouseSelectionStyle.of((s,a)=>e(a)?rectangleSelectionStyle(s,a):null)}let nextTagID=0;class Tag{constructor(e,s,a){this.set=e,this.base=s,this.modified=a,this.id=nextTagID++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let s=new Tag([],null,[]);if(s.set.push(s),e)for(let a of e.set)s.set.push(a);return s}static defineModifier(){let e=new Modifier;return s=>s.modified.indexOf(e)>-1?s:Modifier.get(s.base||s,s.modified.concat(e).sort((a,c)=>a.id-c.id))}}let nextModifierID=0;class Modifier{constructor(){this.instances=[],this.id=nextModifierID++}static get(e,s){if(!s.length)return e;let a=s[0].instances.find(b=>b.base==e&&sameArray(s,b.modified));if(a)return a;let c=[],d=new Tag(c,e,s);for(let b of s)b.instances.push(d);let _=permute(s);for(let b of e.set)for(let k of _)c.push(Modifier.get(b,k));return d}}function sameArray(o,e){return o.length==e.length&&o.every((s,a)=>s==e[a])}function permute(o){let e=[o];for(let s=0;s0&&_e+3==c.length){_=1;break}let et=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(b);if(!et)throw new RangeError("Invalid path: "+c);if(d.push(et[0]=="*"?null:et[0][0]=='"'?JSON.parse(et[0]):et[0]),_e+=et[0].length,_e==c.length)break;let tt=c[_e++];if(_e==c.length&&tt=="!"){_=0;break}if(tt!="/")throw new RangeError("Invalid path: "+c);b=c.slice(_e)}let k=d.length-1,$=d[k];if(!$)throw new RangeError("Invalid path: "+c);let j=new Rule(a,_,k>0?d.slice(0,k):null);e[$]=j.sort(e[$])}}return ruleNodeProp.add(e)}const ruleNodeProp=new NodeProp,highlightStyle=Facet.define({combine(o){return o.length?HighlightStyle.combinedMatch(o):null}}),fallbackHighlightStyle=Facet.define({combine(o){return o.length?o[0].match:null}});function getHighlightStyle(o){return o.facet(highlightStyle)||o.facet(fallbackHighlightStyle)}class Rule{constructor(e,s,a,c){this.tags=e,this.mode=s,this.context=a,this.next=c}sort(e){return!e||e.depth_.facet(EditorView.darkTheme)==(s.themeType=="dark")?[this]:[])),this.fallback=d.concat(fallbackHighlightStyle.of(this))}match(e,s){if(this.scope&&s!=this.scope)return null;for(let a of e.set){let c=this.map[a.id];if(c!==void 0)return a!=e&&(this.map[e.id]=c),c}return this.map[e.id]=this.all}static combinedMatch(e){if(e.length==1)return e[0].match;let s=e.some(a=>a.scope)?void 0:Object.create(null);return(a,c)=>{let d=s&&s[a.id];if(d!==void 0)return d;let _=null;for(let b of e){let k=b.match(a,c);k&&(_=_?_+" "+k:k)}return s&&(s[a.id]=_),_}}static define(e,s){return new HighlightStyle(e,s||{})}static get(e,s,a){let c=getHighlightStyle(e);return c&&c(s,a||NodeType.none)}}class TreeHighlighter{constructor(e){this.markCache=Object.create(null),this.tree=syntaxTree(e.state),this.decorations=this.buildDeco(e,getHighlightStyle(e.state))}update(e){let s=syntaxTree(e.state),a=getHighlightStyle(e.state),c=a!=e.startState.facet(highlightStyle);s.length{a.add(_,b,this.markCache[k]||(this.markCache[k]=Decoration.mark({class:k})))});return a.finish()}}const treeHighlighter=Prec.high(ViewPlugin.fromClass(TreeHighlighter,{decorations:o=>o.decorations})),nodeStack=[""];class HighlightBuilder{constructor(e,s,a){this.at=e,this.style=s,this.span=a,this.class=""}startSpan(e,s){s!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=s)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,s,a,c,d,_){let{type:b,from:k,to:$}=e;if(k>=a||$<=s)return;nodeStack[d]=b.name,b.isTop&&(_=b);let j=c,_e=b.prop(ruleNodeProp),et=!1;for(;_e;){if(!_e.context||matchContext(_e.context,nodeStack,d)){for(let nt of _e.tags){let it=this.style(nt,_);it&&(j&&(j+=" "),j+=it,_e.mode==1?c+=(c?" ":"")+it:_e.mode==0&&(et=!0))}break}_e=_e.next}if(this.startSpan(e.from,j),et)return;let tt=e.tree&&e.tree.prop(NodeProp.mounted);if(tt&&tt.overlay){let nt=e.node.enter(tt.overlay[0].from+k,1),it=e.firstChild();for(let rt=0,st=k;;rt++){let at=rt=ot||!e.nextSibling())););if(!at||ot>a)break;st=at.to+k,st>s&&(this.highlightRange(nt.cursor,Math.max(s,at.from+k),Math.min(a,st),c,d,tt.tree.type),this.startSpan(st,j))}it&&e.parent()}else if(e.firstChild()){do if(!(e.to<=s)){if(e.from>=a)break;this.highlightRange(e,s,a,c,d+1,_),this.startSpan(Math.min(a,e.to),j)}while(e.nextSibling());e.parent()}}}function highlightTreeRange(o,e,s,a,c){let d=new HighlightBuilder(e,a,c);d.highlightRange(o.cursor(),e,s,"",0,o.type),d.flush(s)}function matchContext(o,e,s){if(o.length>s-1)return!1;for(let a=s-1,c=o.length-1;c>=0;c--,a--){let d=o[c];if(d&&d!=e[a])return!1}return!0}const t=Tag.define,comment=t(),name=t(),typeName=t(name),propertyName=t(name),literal=t(),string=t(literal),number=t(literal),content=t(),heading=t(content),keyword=t(),operator=t(),punctuation=t(),bracket=t(punctuation),meta=t(),tags={comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name,variableName:t(name),typeName,tagName:t(typeName),propertyName,attributeName:t(propertyName),className:t(name),labelName:t(name),namespace:t(name),macroName:t(name),literal,string,docString:t(string),character:t(string),attributeValue:t(string),number,integer:t(number),float:t(number),bool:t(literal),regexp:t(literal),escape:t(literal),color:t(literal),url:t(literal),keyword,self:t(keyword),null:t(keyword),atom:t(keyword),unit:t(keyword),modifier:t(keyword),operatorKeyword:t(keyword),controlKeyword:t(keyword),definitionKeyword:t(keyword),moduleKeyword:t(keyword),operator,derefOperator:t(operator),arithmeticOperator:t(operator),logicOperator:t(operator),bitwiseOperator:t(operator),compareOperator:t(operator),updateOperator:t(operator),definitionOperator:t(operator),typeOperator:t(operator),controlOperator:t(operator),punctuation,separator:t(punctuation),bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content,heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content),list:t(content),quote:t(content),emphasis:t(content),strong:t(content),link:t(content),monospace:t(content),strikethrough:t(content),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier(),constant:Tag.defineModifier(),function:Tag.defineModifier(),standard:Tag.defineModifier(),local:Tag.defineModifier(),special:Tag.defineModifier()},defaultHighlightStyle=HighlightStyle.define([{tag:tags.link,textDecoration:"underline"},{tag:tags.heading,textDecoration:"underline",fontWeight:"bold"},{tag:tags.emphasis,fontStyle:"italic"},{tag:tags.strong,fontWeight:"bold"},{tag:tags.strikethrough,textDecoration:"line-through"},{tag:tags.keyword,color:"#708"},{tag:[tags.atom,tags.bool,tags.url,tags.contentSeparator,tags.labelName],color:"#219"},{tag:[tags.literal,tags.inserted],color:"#164"},{tag:[tags.string,tags.deleted],color:"#a11"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],color:"#e40"},{tag:tags.definition(tags.variableName),color:"#00f"},{tag:tags.local(tags.variableName),color:"#30a"},{tag:[tags.typeName,tags.namespace],color:"#085"},{tag:tags.className,color:"#167"},{tag:[tags.special(tags.variableName),tags.macroName],color:"#256"},{tag:tags.definition(tags.propertyName),color:"#00c"},{tag:tags.comment,color:"#940"},{tag:tags.meta,color:"#7a757a"},{tag:tags.invalid,color:"#f00"}]);tags.link,tags.heading,tags.emphasis,tags.strong,tags.keyword,tags.atom,tags.bool,tags.url,tags.labelName,tags.inserted,tags.deleted,tags.literal,tags.string,tags.number,tags.regexp,tags.escape,tags.string,tags.variableName,tags.variableName,tags.variableName,tags.variableName,tags.propertyName,tags.typeName,tags.namespace,tags.className,tags.macroName,tags.propertyName,tags.operator,tags.comment,tags.meta,tags.invalid,tags.punctuation;class SelectedDiagnostic{constructor(e,s,a){this.from=e,this.to=s,this.diagnostic=a}}class LintState{constructor(e,s,a){this.diagnostics=e,this.panel=s,this.selected=a}static init(e,s,a){let c=Decoration.set(e.map(d=>d.from==d.to||d.from==d.to-1&&a.doc.lineAt(d.from).to==d.from?Decoration.widget({widget:new DiagnosticWidget(d),diagnostic:d}).range(d.from):Decoration.mark({attributes:{class:"cm-lintRange cm-lintRange-"+d.severity},diagnostic:d}).range(d.from,d.to)),!0);return new LintState(c,s,findDiagnostic(c))}}function findDiagnostic(o,e=null,s=0){let a=null;return o.between(s,1e9,(c,d,{spec:_})=>{if(!(e&&_.diagnostic!=e))return a=new SelectedDiagnostic(c,d,_.diagnostic),!1}),a}function maybeEnableLint(o,e){return o.field(lintState,!1)?e:e.concat(StateEffect.appendConfig.of([lintState,EditorView.decorations.compute([lintState],s=>{let{selected:a,panel:c}=s.field(lintState);return!a||!c||a.from==a.to?Decoration.none:Decoration.set([activeMark.range(a.from,a.to)])}),hoverTooltip(lintTooltip),baseTheme]))}const setDiagnosticsEffect=StateEffect.define(),togglePanel=StateEffect.define(),movePanelSelection=StateEffect.define(),lintState=StateField.define({create(){return new LintState(Decoration.none,null,null)},update(o,e){if(e.docChanged){let s=o.diagnostics.map(e.changes),a=null;if(o.selected){let c=e.changes.mapPos(o.selected.from,1);a=findDiagnostic(s,o.selected.diagnostic,c)||findDiagnostic(s,null,c)}o=new LintState(s,o.panel,a)}for(let s of e.effects)s.is(setDiagnosticsEffect)?o=LintState.init(s.value,o.panel,e.state):s.is(togglePanel)?o=new LintState(o.diagnostics,s.value?LintPanel.open:null,o.selected):s.is(movePanelSelection)&&(o=new LintState(o.diagnostics,o.panel,s.value));return o},provide:o=>[showPanel.from(o,e=>e.panel),EditorView.decorations.from(o,e=>e.diagnostics)]}),activeMark=Decoration.mark({class:"cm-lintRange cm-lintRange-active"});function lintTooltip(o,e,s){let{diagnostics:a}=o.state.field(lintState),c=[],d=2e8,_=0;return a.between(e-(s<0?1:0),e+(s>0?1:0),(b,k,{spec:$})=>{e>=b&&e<=k&&(b==k||(e>b||s>0)&&(erenderDiagnostic(o,s,!1)))}const openLintPanel=o=>{let e=o.state.field(lintState,!1);(!e||!e.panel)&&o.dispatch({effects:maybeEnableLint(o.state,[togglePanel.of(!0)])});let s=getPanel(o,LintPanel.open);return s&&s.dom.querySelector(".cm-panel-lint ul").focus(),!0},closeLintPanel=o=>{let e=o.state.field(lintState,!1);return!e||!e.panel?!1:(o.dispatch({effects:togglePanel.of(!1)}),!0)},nextDiagnostic=o=>{let e=o.state.field(lintState,!1);if(!e)return!1;let s=o.state.selection.main,a=e.diagnostics.iter(s.to+1);return!a.value&&(a=e.diagnostics.iter(0),!a.value||a.from==s.from&&a.to==s.to)?!1:(o.dispatch({selection:{anchor:a.from,head:a.to},scrollIntoView:!0}),!0)},lintKeymap=[{key:"Mod-Shift-m",run:openLintPanel},{key:"F8",run:nextDiagnostic}];function assignKeys(o){let e=[];if(o)e:for(let{name:s}of o){for(let a=0;ad.toLowerCase()==c.toLowerCase())){e.push(c);continue e}}e.push("")}return e}function renderDiagnostic(o,e,s){var a;let c=s?assignKeys(e.actions):[];return crelt("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},crelt("span",{class:"cm-diagnosticText"},e.message),(a=e.actions)===null||a===void 0?void 0:a.map((d,_)=>{let b=_e=>{_e.preventDefault();let et=findDiagnostic(o.state.field(lintState).diagnostics,e);et&&d.apply(o,et.from,et.to)},{name:k}=d,$=c[_]?k.indexOf(c[_]):-1,j=$<0?k:[k.slice(0,$),crelt("u",k.slice($,$+1)),k.slice($+1)];return crelt("button",{type:"button",class:"cm-diagnosticAction",onclick:b,onmousedown:b,"aria-label":` Action: ${k}${$<0?"":` (access key "${c[_]})"`}.`},j)}),e.source&&crelt("div",{class:"cm-diagnosticSource"},e.source))}class DiagnosticWidget extends WidgetType{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return crelt("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class PanelItem{constructor(e,s){this.diagnostic=s,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=renderDiagnostic(e,s,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class LintPanel{constructor(e){this.view=e,this.items=[];let s=c=>{if(c.keyCode==27)closeLintPanel(this.view),this.view.focus();else if(c.keyCode==38||c.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(c.keyCode==40||c.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(c.keyCode==36)this.moveSelection(0);else if(c.keyCode==35)this.moveSelection(this.items.length-1);else if(c.keyCode==13)this.view.focus();else if(c.keyCode>=65&&c.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:d}=this.items[this.selectedIndex],_=assignKeys(d.actions);for(let b=0;b<_.length;b++)if(_[b].toUpperCase().charCodeAt(0)==c.keyCode){let k=findDiagnostic(this.view.state.field(lintState).diagnostics,d);k&&d.actions[b].apply(e,k.from,k.to)}}else return;c.preventDefault()},a=c=>{for(let d=0;dcloseLintPanel(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(lintState).selected;if(!e)return-1;for(let s=0;s{let $=-1,j;for(let _e=a;_ea&&(this.items.splice(a,$-a),c=!0)),s&&j.diagnostic==s.diagnostic?j.dom.hasAttribute("aria-selected")||(j.dom.setAttribute("aria-selected","true"),d=j):j.dom.hasAttribute("aria-selected")&&j.dom.removeAttribute("aria-selected"),a++});a({sel:d.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:_,panel:b})=>{_.topb.bottom&&(this.list.scrollTop+=_.bottom-b.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),c&&this.sync()}sync(){let e=this.list.firstChild;function s(){let a=e;e=a.nextSibling,a.remove()}for(let a of this.items)if(a.dom.parentNode==this.list){for(;e!=a.dom;)s();e=a.dom.nextSibling}else this.list.insertBefore(a.dom,e);for(;e;)s()}moveSelection(e){if(this.selectedIndex<0)return;let s=this.view.state.field(lintState),a=findDiagnostic(s.diagnostics,this.items[e].diagnostic);!a||this.view.dispatch({selection:{anchor:a.from,head:a.to},scrollIntoView:!0,effects:movePanelSelection.of(a)})}static open(e){return new LintPanel(e)}}function svg(o,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(o)}')`}function underline(o){return svg(``,'width="6" height="3"')}const baseTheme=EditorView.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:underline("#d11")},".cm-lintRange-warning":{backgroundImage:underline("orange")},".cm-lintRange-info":{backgroundImage:underline("#999")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});var jsxRuntime={exports:{}},reactJsxRuntime_production_min={};/** @license React v17.0.2 +`;this.styleTag.textContent=d}}}var base={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",229:"q"},shift={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"',229:"Q"},chrome$1=typeof navigator!="undefined"&&/Chrome\/(\d+)/.exec(navigator.userAgent),safari$1=typeof navigator!="undefined"&&/Apple Computer/.test(navigator.vendor),gecko$1=typeof navigator!="undefined"&&/Gecko\/\d+/.test(navigator.userAgent),mac=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),ie$1=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),brokenModifierNames=chrome$1&&(mac||+chrome$1[1]<57)||gecko$1&&mac;for(var i=0;i<10;i++)base[48+i]=base[96+i]=String(i);for(var i=1;i<=24;i++)base[i+111]="F"+i;for(var i=65;i<=90;i++)base[i]=String.fromCharCode(i+32),shift[i]=String.fromCharCode(i);for(var code in base)shift.hasOwnProperty(code)||(shift[code]=base[code]);function keyName(o){var e=brokenModifierNames&&(o.ctrlKey||o.altKey||o.metaKey)||(safari$1||ie$1)&&o.shiftKey&&o.key&&o.key.length==1,s=!e&&o.key||(o.shiftKey?shift:base)[o.keyCode]||o.key||"Unidentified";return s=="Esc"&&(s="Escape"),s=="Del"&&(s="Delete"),s=="Left"&&(s="ArrowLeft"),s=="Up"&&(s="ArrowUp"),s=="Right"&&(s="ArrowRight"),s=="Down"&&(s="ArrowDown"),s}function getSelection(o){let e;return o.nodeType==11?e=o.getSelection?o:o.ownerDocument:e=o,e.getSelection()}function contains(o,e){return e?o==e||o.contains(e.nodeType!=1?e.parentNode:e):!1}function deepActiveElement(){let o=document.activeElement;for(;o&&o.shadowRoot;)o=o.shadowRoot.activeElement;return o}function hasSelection(o,e){if(!e.anchorNode)return!1;try{return contains(o,e.anchorNode)}catch{return!1}}function clientRectsFor(o){return o.nodeType==3?textRange(o,0,o.nodeValue.length).getClientRects():o.nodeType==1?o.getClientRects():[]}function isEquivalentPosition(o,e,s,a){return s?scanFor(o,e,s,a,-1)||scanFor(o,e,s,a,1):!1}function domIndex(o){for(var e=0;;e++)if(o=o.previousSibling,!o)return e}function scanFor(o,e,s,a,c){for(;;){if(o==s&&e==a)return!0;if(e==(c<0?0:maxOffset(o))){if(o.nodeName=="DIV")return!1;let d=o.parentNode;if(!d||d.nodeType!=1)return!1;e=domIndex(o)+(c<0?0:1),o=d}else if(o.nodeType==1){if(o=o.childNodes[e+(c<0?-1:0)],o.nodeType==1&&o.contentEditable=="false")return!1;e=c<0?maxOffset(o):0}else return!1}}function maxOffset(o){return o.nodeType==3?o.nodeValue.length:o.childNodes.length}const Rect0={left:0,right:0,top:0,bottom:0};function flattenRect(o,e){let s=e?o.left:o.right;return{left:s,right:s,top:o.top,bottom:o.bottom}}function windowRect(o){return{left:0,right:o.innerWidth,top:0,bottom:o.innerHeight}}function scrollRectIntoView(o,e,s,a,c,d,_,b){let k=o.ownerDocument,$=k.defaultView;for(let j=o;j;)if(j.nodeType==1){let _e,et=j==k.body;if(et)_e=windowRect($);else{if(j.scrollHeight<=j.clientHeight&&j.scrollWidth<=j.clientWidth){j=j.parentNode;continue}let st=j.getBoundingClientRect();_e={left:st.left,right:st.left+j.clientWidth,top:st.top,bottom:st.top+j.clientHeight}}let tt=0,nt=0;if(c=="nearest")e.top<_e.top?(nt=-(_e.top-e.top+_),s>0&&e.bottom>_e.bottom+nt&&(nt=e.bottom-_e.bottom+nt+_)):e.bottom>_e.bottom&&(nt=e.bottom-_e.bottom+_,s<0&&e.top-nt<_e.top&&(nt=-(_e.top+nt-e.top+_)));else{let st=e.bottom-e.top,rt=_e.bottom-_e.top;nt=(c=="center"&&st<=rt?e.top+st/2-rt/2:c=="start"||c=="center"&&s<0?e.top-_:e.bottom-rt+_)-_e.top}if(a=="nearest"?e.left<_e.left?(tt=-(_e.left-e.left+d),s>0&&e.right>_e.right+tt&&(tt=e.right-_e.right+tt+d)):e.right>_e.right&&(tt=e.right-_e.right+d,s<0&&e.left<_e.left+tt&&(tt=-(_e.left+tt-e.left+d))):tt=(a=="center"?e.left+(e.right-e.left)/2-(_e.right-_e.left)/2:a=="start"==b?e.left-d:e.right-(_e.right-_e.left)+d)-_e.left,tt||nt)if(et)$.scrollBy(tt,nt);else{if(nt){let st=j.scrollTop;j.scrollTop+=nt,nt=j.scrollTop-st}if(tt){let st=j.scrollLeft;j.scrollLeft+=tt,tt=j.scrollLeft-st}e={left:e.left-tt,top:e.top-nt,right:e.right-tt,bottom:e.bottom-nt}}if(et)break;j=j.assignedSlot||j.parentNode,a=c="nearest"}else if(j.nodeType==11)j=j.host;else break}class DOMSelectionState{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){this.set(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)}set(e,s,a,c){this.anchorNode=e,this.anchorOffset=s,this.focusNode=a,this.focusOffset=c}}let preventScrollSupported=null;function focusPreventScroll(o){if(o.setActive)return o.setActive();if(preventScrollSupported)return o.focus(preventScrollSupported);let e=[];for(let s=o;s&&(e.push(s,s.scrollTop,s.scrollLeft),s!=s.ownerDocument);s=s.parentNode);if(o.focus(preventScrollSupported==null?{get preventScroll(){return preventScrollSupported={preventScroll:!0},!0}}:void 0),!preventScrollSupported){preventScrollSupported=!1;for(let s=0;ss)return _e.domBoundsAround(e,s,$);if(et>=e&&c==-1&&(c=k,d=$),$>s&&_e.dom.parentNode==this.dom){_=k,b=j;break}j=et,$=et+_e.breakAfter}return{from:d,to:b<0?a+this.length:b,startDOM:(c?this.children[c-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:_=0?this.children[_].dom:null}}markDirty(e=!1){this.dirty|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let s=this.parent;s;s=s.parent){if(e&&(s.dirty|=2),s.dirty&1)return;s.dirty|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let s=e.parent;if(!s)return e;e=s}}replaceChildren(e,s,a=noChildren){this.markDirty();for(let c=e;cthis.pos||e==this.pos&&(s>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let a=this.children[--this.i];this.pos-=a.length+a.breakAfter}}}function replaceRange(o,e,s,a,c,d,_,b,k){let{children:$}=o,j=$.length?$[e]:null,_e=d.length?d[d.length-1]:null,et=_e?_e.breakAfter:_;if(!(e==a&&j&&!_&&!et&&d.length<2&&j.merge(s,c,d.length?_e:null,s==0,b,k))){if(a<$.length){let tt=$[a];tt&&c0&&(!_&&d.length&&j.merge(s,j.length,d[0],!1,b,0)?j.breakAfter=d.shift().breakAfter:(s2);var browser={mac:ios||/Mac/.test(nav.platform),windows:/Win/.test(nav.platform),linux:/Linux|X11/.test(nav.platform),ie,ie_version:ie_upto10?doc.documentMode||6:ie_11up?+ie_11up[1]:ie_edge?+ie_edge[1]:0,gecko,gecko_version:gecko?+(/Firefox\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,chrome:!!chrome,chrome_version:chrome?+chrome[1]:0,ios,android:/Android\b/.test(nav.userAgent),webkit,safari,webkit_version:webkit?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:doc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const MaxJoinLen=256;class TextView extends ContentView{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,s,a){return a&&(!(a instanceof TextView)||this.length-(s-e)+a.length>MaxJoinLen)?!1:(this.text=this.text.slice(0,e)+(a?a.text:"")+this.text.slice(s),this.markDirty(),!0)}split(e){let s=new TextView(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),s}localPosFromDOM(e,s){return e==this.dom?s:s?this.text.length:0}domAtPos(e){return new DOMPos(this.dom,e)}domBoundsAround(e,s,a){return{from:a,to:a+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,s){return textCoords(this.dom,e,s)}}class MarkView extends ContentView{constructor(e,s=[],a=0){super(),this.mark=e,this.children=s,this.length=a;for(let c of s)c.setParent(this)}setAttrs(e){if(clearAttributes(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let s in this.mark.attrs)e.setAttribute(s,this.mark.attrs[s]);return e}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.dirty|=6)}sync(e){this.dom?this.dirty&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e)}merge(e,s,a,c,d,_){return a&&(!(a instanceof MarkView&&a.mark.eq(this.mark))||e&&d<=0||se&&s.push(a=e&&(c=d),a=k,d++}let _=this.length-e;return this.length=e,c>-1&&(this.children.length=c,this.markDirty()),new MarkView(this.mark,s,_)}domAtPos(e){return inlineDOMAtPos(this.dom,this.children,e)}coordsAt(e,s){return coordsInChildren(this,e,s)}}function textCoords(o,e,s){let a=o.nodeValue.length;e>a&&(e=a);let c=e,d=e,_=0;e==0&&s<0||e==a&&s>=0?browser.chrome||browser.gecko||(e?(c--,_=1):d=0)?0:b.length-1];return browser.safari&&!_&&k.width==0&&(k=Array.prototype.find.call(b,$=>$.width)||k),_?flattenRect(k,_<0):k||null}class WidgetView extends ContentView{constructor(e,s,a){super(),this.widget=e,this.length=s,this.side=a,this.prevWidget=null}static create(e,s,a){return new(e.customView||WidgetView)(e,s,a)}split(e){let s=WidgetView.create(this.widget,this.length-e,this.side);return this.length-=e,s}sync(){(!this.dom||!this.widget.updateDOM(this.dom))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,s,a,c,d,_){return a&&(!(a instanceof WidgetView)||!this.widget.compare(a.widget)||e>0&&d<=0||s0?a.length-1:0;c=a[d],!(e>0?d==0:d==a.length-1||c.top0?-1:1);return e==0&&s>0||e==this.length&&s<=0?c:flattenRect(c,e==0)}get isEditable(){return!1}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class CompositionView extends WidgetView{domAtPos(e){let{topView:s,text:a}=this.widget;return s?scanCompositionTree(e,0,s,a,(c,d)=>c.domAtPos(d),c=>new DOMPos(a,Math.min(c,a.nodeValue.length))):new DOMPos(a,Math.min(e,a.nodeValue.length))}sync(){this.setDOM(this.widget.toDOM())}localPosFromDOM(e,s){let{topView:a,text:c}=this.widget;return a?posFromDOMInCompositionTree(e,s,a,c):Math.min(s,this.length)}ignoreMutation(){return!1}get overrideDOMText(){return null}coordsAt(e,s){let{topView:a,text:c}=this.widget;return a?scanCompositionTree(e,s,a,c,(d,_,b)=>d.coordsAt(_,b),(d,_)=>textCoords(c,d,_)):textCoords(c,e,s)}destroy(){var e;super.destroy(),(e=this.widget.topView)===null||e===void 0||e.destroy()}get isEditable(){return!0}}function scanCompositionTree(o,e,s,a,c,d){if(s instanceof MarkView){for(let _ of s.children){let b=contains(_.dom,a),k=b?a.nodeValue.length:_.length;if(o0?-1:1);return a&&a.tops.top?{left:s.left,right:s.right,top:a.top,bottom:a.bottom}:s}get overrideDOMText(){return Text.empty}}TextView.prototype.children=WidgetView.prototype.children=WidgetBufferView.prototype.children=noChildren;function inlineSiblingRect(o,e){let s=o.parent,a=s?s.children.indexOf(o):-1;for(;s&&a>=0;)if(e<0?a>0:ac&&s<_&&d.dom.parentNode==o)return d.domAtPos(s-c);if(s<=c)break;c=_}}for(;a>0;a--){let c=e[a-1].dom;if(c.parentNode==o)return DOMPos.after(c)}return new DOMPos(o,0)}function joinInlineInto(o,e,s){let a,{children:c}=o;s>0&&e instanceof MarkView&&c.length&&(a=c[c.length-1])instanceof MarkView&&a.mark.eq(e.mark)?joinInlineInto(a,e.children[0],s-1):(c.push(e),e.setParent(o)),o.length+=e.length}function coordsInChildren(o,e,s){for(let d=0,_=0;_0?k>=e:k>e)&&(e0)){let j=0;if(k==d){if(b.getSide()<=0)continue;j=s=-b.getSide()}let _e=b.coordsAt(Math.max(0,e-d),s);return j&&_e?flattenRect(_e,s<0):_e}d=k}let a=o.dom.lastChild;if(!a)return o.dom.getBoundingClientRect();let c=clientRectsFor(a);return c[c.length-1]||null}function combineAttrs(o,e){for(let s in o)s=="class"&&e.class?e.class+=" "+o.class:s=="style"&&e.style?e.style+=";"+o.style:e[s]=o[s];return e}function attrsEq(o,e){if(o==e)return!0;if(!o||!e)return!1;let s=Object.keys(o),a=Object.keys(e);if(s.length!=a.length)return!1;for(let c of s)if(a.indexOf(c)==-1||o[c]!==e[c])return!1;return!0}function updateAttrs(o,e,s){let a=null;if(e)for(let c in e)s&&c in s||o.removeAttribute(a=c);if(s)for(let c in s)e&&e[c]==s[c]||o.setAttribute(a=c,s[c]);return!!a}class WidgetType{eq(e){return!1}updateDOM(e){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}ignoreEvent(e){return!0}get customView(){return null}destroy(e){}}var BlockType=function(o){return o[o.Text=0]="Text",o[o.WidgetBefore=1]="WidgetBefore",o[o.WidgetAfter=2]="WidgetAfter",o[o.WidgetRange=3]="WidgetRange",o}(BlockType||(BlockType={}));class Decoration extends RangeValue{constructor(e,s,a,c){super(),this.startSide=e,this.endSide=s,this.widget=a,this.spec=c}get heightRelevant(){return!1}static mark(e){return new MarkDecoration(e)}static widget(e){let s=e.side||0,a=!!e.block;return s+=a?s>0?3e8:-4e8:s>0?1e8:-1e8,new PointDecoration(e,s,s,a,e.widget||null,!1)}static replace(e){let s=!!e.block,a,c;if(e.isBlockGap)a=-5e8,c=4e8;else{let{start:d,end:_}=getInclusive(e,s);a=(d?s?-3e8:-1:5e8)-1,c=(_?s?2e8:1:-6e8)+1}return new PointDecoration(e,a,c,s,e.widget||null,!0)}static line(e){return new LineDecoration(e)}static set(e,s=!1){return RangeSet.of(e,s)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Decoration.none=RangeSet.empty;class MarkDecoration extends Decoration{constructor(e){let{start:s,end:a}=getInclusive(e);super(s?-1:5e8,a?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){return this==e||e instanceof MarkDecoration&&this.tagName==e.tagName&&this.class==e.class&&attrsEq(this.attrs,e.attrs)}range(e,s=e){if(e>=s)throw new RangeError("Mark decorations may not be empty");return super.range(e,s)}}MarkDecoration.prototype.point=!1;class LineDecoration extends Decoration{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof LineDecoration&&attrsEq(this.spec.attributes,e.spec.attributes)}range(e,s=e){if(s!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,s)}}LineDecoration.prototype.mapMode=MapMode.TrackBefore;LineDecoration.prototype.point=!0;class PointDecoration extends Decoration{constructor(e,s,a,c,d,_){super(s,a,d,e),this.block=c,this.isReplace=_,this.mapMode=c?s<=0?MapMode.TrackBefore:MapMode.TrackAfter:MapMode.TrackDel}get type(){return this.startSide=5}eq(e){return e instanceof PointDecoration&&widgetsEq(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,s=e){if(this.isReplace&&(e>s||e==s&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&s!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,s)}}PointDecoration.prototype.point=!0;function getInclusive(o,e=!1){let{inclusiveStart:s,inclusiveEnd:a}=o;return s==null&&(s=o.inclusive),a==null&&(a=o.inclusive),{start:s!=null?s:e,end:a!=null?a:e}}function widgetsEq(o,e){return o==e||!!(o&&e&&o.compare(e))}function addRange(o,e,s,a=0){let c=s.length-1;c>=0&&s[c]+a>=o?s[c]=Math.max(s[c],e):s.push(o,e)}class LineView extends ContentView{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,s,a,c,d,_){if(a){if(!(a instanceof LineView))return!1;this.dom||a.transferDOM(this)}return c&&this.setDeco(a?a.attrs:null),mergeChildrenInto(this,e,s,a?a.children:[],d,_),!0}split(e){let s=new LineView;if(s.breakAfter=this.breakAfter,this.length==0)return s;let{i:a,off:c}=this.childPos(e);c&&(s.append(this.children[a].split(c),0),this.children[a].merge(c,this.children[a].length,null,!1,0,0),a++);for(let d=a;d0&&this.children[a-1].length==0;)this.children[--a].destroy();return this.children.length=a,this.markDirty(),this.length=e,s}transferDOM(e){!this.dom||(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){attrsEq(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,s){joinInlineInto(this,e,s)}addLineDeco(e){let s=e.spec.attributes,a=e.spec.class;s&&(this.attrs=combineAttrs(s,this.attrs||{})),a&&(this.attrs=combineAttrs({class:a},this.attrs||{}))}domAtPos(e){return inlineDOMAtPos(this.dom,this.children,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.dirty|=6)}sync(e){var s;this.dom?this.dirty&4&&(clearAttributes(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(updateAttrs(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e);let a=this.dom.lastChild;for(;a&&ContentView.get(a)instanceof MarkView;)a=a.lastChild;if(!a||!this.length||a.nodeName!="BR"&&((s=ContentView.get(a))===null||s===void 0?void 0:s.isEditable)==!1&&(!browser.ios||!this.children.some(c=>c instanceof TextView))){let c=document.createElement("BR");c.cmIgnore=!0,this.dom.appendChild(c)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0;for(let s of this.children){if(!(s instanceof TextView)||/[^ -~]/.test(s.text))return null;let a=clientRectsFor(s.dom);if(a.length!=1)return null;e+=a[0].width}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length}:null}coordsAt(e,s){return coordsInChildren(this,e,s)}become(e){return!1}get type(){return BlockType.Text}static find(e,s){for(let a=0,c=0;a=s){if(d instanceof LineView)return d;if(_>s)break}c=_+d.breakAfter}return null}}class BlockWidgetView extends ContentView{constructor(e,s,a){super(),this.widget=e,this.length=s,this.type=a,this.breakAfter=0,this.prevWidget=null}merge(e,s,a,c,d,_){return a&&(!(a instanceof BlockWidgetView)||!this.widget.compare(a.widget)||e>0&&d<=0||s0;){if(this.textOff==this.text.length){let{value:d,lineBreak:_,done:b}=this.cursor.next(this.skip);if(this.skip=0,b)throw new Error("Ran out of text content when drawing inline views");if(_){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer([]),this.curLine=null,e--;continue}else this.text=d,this.textOff=0}let c=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(s.slice(0,a)),this.getLine().append(wrapMarks(new TextView(this.text.slice(this.textOff,this.textOff+c)),s),a),this.atCursorPos=!0,this.textOff+=c,e-=c,a=0}}span(e,s,a,c){this.buildText(s-e,a,c),this.pos=s,this.openStart<0&&(this.openStart=c)}point(e,s,a,c,d,_){if(this.disallowBlockEffectsFor[_]&&a instanceof PointDecoration){if(a.block)throw new RangeError("Block decorations may not be specified via plugins");if(s>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let b=s-e;if(a instanceof PointDecoration)if(a.block){let{type:k}=a;k==BlockType.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new BlockWidgetView(a.widget||new NullWidget("div"),b,k))}else{let k=WidgetView.create(a.widget||new NullWidget("span"),b,a.startSide),$=this.atCursorPos&&!k.isEditable&&d<=c.length&&(e0),j=!k.isEditable&&(eo.some(e=>e)});class ScrollTarget{constructor(e,s="nearest",a="nearest",c=5,d=5){this.range=e,this.y=s,this.x=a,this.yMargin=c,this.xMargin=d}map(e){return e.empty?this:new ScrollTarget(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}}const scrollIntoView$1=StateEffect.define({map:(o,e)=>o.map(e)});function logException(o,e,s){let a=o.facet(exceptionSink);a.length?a[0](e):window.onerror?window.onerror(String(e),s,void 0,void 0,e):s?console.error(s+":",e):console.error(e)}const editable=Facet.define({combine:o=>o.length?o[0]:!0});let nextPluginID=0;const viewPlugin=Facet.define();class ViewPlugin{constructor(e,s,a,c){this.id=e,this.create=s,this.domEventHandlers=a,this.extension=c(this)}static define(e,s){const{eventHandlers:a,provide:c,decorations:d}=s||{};return new ViewPlugin(nextPluginID++,e,a,_=>{let b=[viewPlugin.of(_)];return d&&b.push(decorations.of(k=>{let $=k.plugin(_);return $?d($):Decoration.none})),c&&b.push(c(_)),b})}static fromClass(e,s){return ViewPlugin.define(a=>new e(a),s)}}class PluginInstance{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let s=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(s)}catch(a){if(logException(s.state,a,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(s){logException(e.state,s,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var s;if(!((s=this.value)===null||s===void 0)&&s.destroy)try{this.value.destroy()}catch(a){logException(e.state,a,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const editorAttributes=Facet.define(),contentAttributes=Facet.define(),decorations=Facet.define(),atomicRanges=Facet.define(),scrollMargins=Facet.define(),styleModule=Facet.define();class ChangedRange{constructor(e,s,a,c){this.fromA=e,this.toA=s,this.fromB=a,this.toB=c}join(e){return new ChangedRange(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let s=e.length,a=this;for(;s>0;s--){let c=e[s-1];if(!(c.fromA>a.toA)){if(c.toAj)break;d+=2}if(!k)return a;new ChangedRange(k.fromA,k.toA,k.fromB,k.toB).addToSet(a),_=k.toA,b=k.toB}}}class ViewUpdate{constructor(e,s,a){this.view=e,this.state=s,this.transactions=a,this.flags=0,this.startState=e.state,this.changes=ChangeSet.empty(this.startState.doc.length);for(let _ of a)this.changes=this.changes.compose(_.changes);let c=[];this.changes.iterChangedRanges((_,b,k,$)=>c.push(new ChangedRange(_,b,k,$))),this.changedRanges=c;let d=e.hasFocus;d!=e.inputState.notifiedFocused&&(e.inputState.notifiedFocused=d,this.flags|=1)}static create(e,s,a){return new ViewUpdate(e,s,a)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}var Direction=function(o){return o[o.LTR=0]="LTR",o[o.RTL=1]="RTL",o}(Direction||(Direction={}));const LTR=Direction.LTR,RTL=Direction.RTL;function dec(o){let e=[];for(let s=0;s=s){if(b.level==a)return _;(d<0||(c!=0?c<0?b.froms:e[d].level>b.level))&&(d=_)}}if(d<0)throw new RangeError("Index out of range");return d}}const types=[];function computeOrder(o,e){let s=o.length,a=e==LTR?1:2,c=e==LTR?2:1;if(!o||a==1&&!BidiRE.test(o))return trivialOrder(s);for(let _=0,b=a,k=a;_=0;et-=3)if(BracketStack[et+1]==-j){let tt=BracketStack[et+2],nt=tt&2?a:tt&4?tt&1?c:a:0;nt&&(types[_]=types[BracketStack[et]]=nt),b=et;break}}else{if(BracketStack.length==189)break;BracketStack[b++]=_,BracketStack[b++]=$,BracketStack[b++]=k}else if((_e=types[_])==2||_e==1){let et=_e==a;k=et?0:1;for(let tt=b-3;tt>=0;tt-=3){let nt=BracketStack[tt+2];if(nt&2)break;if(et)BracketStack[tt+2]|=2;else{if(nt&4)break;BracketStack[tt+2]|=4}}}for(let _=0;_b;){let j=$,_e=types[--$]!=2;for(;$>b&&_e==(types[$-1]!=2);)$--;d.push(new BidiSpan($,j,_e?2:1))}else d.push(new BidiSpan(b,_,0))}else for(let _=0;_1)for(let k of this.points)k.node==e&&k.pos>this.text.length&&(k.pos-=_-1);a=d+_}}readNode(e){if(e.cmIgnore)return;let s=ContentView.get(e),a=s&&s.overrideDOMText;if(a!=null){this.findPointInside(e,a.length);for(let c=a.iter();!c.next().done;)c.lineBreak?this.lineBreak():this.append(c.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,s){for(let a of this.points)a.node==e&&e.childNodes[a.offset]==s&&(a.pos=this.text.length)}findPointInside(e,s){for(let a of this.points)(e.nodeType==3?a.node==e:e.contains(a.node))&&(a.pos=this.text.length+Math.min(s,a.offset))}}function isBlockElement(o){return o.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(o.nodeName)}class DOMPoint{constructor(e,s){this.node=e,this.offset=s,this.pos=-1}}class DocView extends ContentView{constructor(e){super(),this.view=e,this.compositionDeco=Decoration.none,this.decorations=[],this.dynamicDecorationMap=[],this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new LineView],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new ChangedRange(0,0,0,e.state.doc.length)],0)}get editorView(){return this.view}get length(){return this.view.state.doc.length}update(e){let s=e.changedRanges;this.minWidth>0&&s.length&&(s.every(({fromA:_,toA:b})=>bthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.view.inputState.composing<0?this.compositionDeco=Decoration.none:(e.transactions.length||this.dirty)&&(this.compositionDeco=computeCompositionDeco(this.view,e.changes)),(browser.ie||browser.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let a=this.decorations,c=this.updateDeco(),d=findChangedDeco(a,c,e.changes);return s=ChangedRange.extendWithRanges(s,d),this.dirty==0&&s.length==0?!1:(this.updateInner(s,e.startState.doc.length),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,s){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,s);let{observer:a}=this.view;a.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let d=browser.chrome||browser.ios?{node:a.selectionRange.focusNode,written:!1}:void 0;this.sync(d),this.dirty=0,d&&(d.written||a.selectionRange.focusNode!=d.node)&&(this.forceSelection=!0),this.dom.style.height=""});let c=[];if(this.view.viewport.from||this.view.viewport.to=0?e[c]:null;if(!d)break;let{fromA:_,toA:b,fromB:k,toB:$}=d,{content:j,breakAtStart:_e,openStart:et,openEnd:tt}=ContentBuilder.build(this.view.state.doc,k,$,this.decorations,this.dynamicDecorationMap),{i:nt,off:st}=a.findPos(b,1),{i:rt,off:it}=a.findPos(_,-1);replaceRange(this,rt,it,nt,st,j,_e,et,tt)}}updateSelection(e=!1,s=!1){if((e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange(),!(s||this.mayControlSelection())||browser.ios&&this.view.inputState.rapidCompositionStart)return;let a=this.forceSelection;this.forceSelection=!1;let c=this.view.state.selection.main,d=this.domAtPos(c.anchor),_=c.empty?d:this.domAtPos(c.head);if(browser.gecko&&c.empty&&betweenUneditable(d)){let k=document.createTextNode("");this.view.observer.ignore(()=>d.node.insertBefore(k,d.node.childNodes[d.offset]||null)),d=_=new DOMPos(k,0),a=!0}let b=this.view.observer.selectionRange;(a||!b.focusNode||!isEquivalentPosition(d.node,d.offset,b.anchorNode,b.anchorOffset)||!isEquivalentPosition(_.node,_.offset,b.focusNode,b.focusOffset))&&(this.view.observer.ignore(()=>{browser.android&&browser.chrome&&this.dom.contains(b.focusNode)&&inUneditable(b.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let k=getSelection(this.view.root);if(k)if(c.empty){if(browser.gecko){let $=nextToUneditable(d.node,d.offset);if($&&$!=3){let j=nearbyTextNode(d.node,d.offset,$==1?1:-1);j&&(d=new DOMPos(j,$==1?0:j.nodeValue.length))}}k.collapse(d.node,d.offset),c.bidiLevel!=null&&b.cursorBidiLevel!=null&&(b.cursorBidiLevel=c.bidiLevel)}else if(k.extend)k.collapse(d.node,d.offset),k.extend(_.node,_.offset);else{let $=document.createRange();c.anchor>c.head&&([d,_]=[_,d]),$.setEnd(_.node,_.offset),$.setStart(d.node,d.offset),k.removeAllRanges(),k.addRange($)}}),this.view.observer.setSelectionRange(d,_)),this.impreciseAnchor=d.precise?null:new DOMPos(b.anchorNode,b.anchorOffset),this.impreciseHead=_.precise?null:new DOMPos(b.focusNode,b.focusOffset)}enforceCursorAssoc(){if(this.compositionDeco.size)return;let e=this.view.state.selection.main,s=getSelection(this.view.root);if(!s||!e.empty||!e.assoc||!s.modify)return;let a=LineView.find(this,e.head);if(!a)return;let c=a.posAtStart;if(e.head==c||e.head==c+a.length)return;let d=this.coordsAt(e.head,-1),_=this.coordsAt(e.head,1);if(!d||!_||d.bottom>_.top)return;let b=this.domAtPos(e.head+e.assoc);s.collapse(b.node,b.offset),s.modify("move",e.assoc<0?"forward":"backward","lineboundary")}mayControlSelection(){let e=this.view.root.activeElement;return e==this.dom||hasSelection(this.dom,this.view.observer.selectionRange)&&!(e&&this.dom.contains(e))}nearest(e){for(let s=e;s;){let a=ContentView.get(s);if(a&&a.rootView==this)return a;s=s.parentNode}return null}posFromDOM(e,s){let a=this.nearest(e);if(!a)throw new RangeError("Trying to find position for a DOM position outside of the document");return a.localPosFromDOM(e,s)+a.posAtStart}domAtPos(e){let{i:s,off:a}=this.childCursor().findPos(e,-1);for(;s_||e==_&&d.type!=BlockType.WidgetBefore&&d.type!=BlockType.WidgetAfter&&(!c||s==2||this.children[c-1].breakAfter||this.children[c-1].type==BlockType.WidgetBefore&&s>-2))return d.coordsAt(e-_,s);a=_}}measureVisibleLineHeights(e){let s=[],{from:a,to:c}=e,d=this.view.contentDOM.clientWidth,_=d>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,b=-1,k=this.view.textDirection==Direction.LTR;for(let $=0,j=0;jc)break;if($>=a){let tt=_e.dom.getBoundingClientRect();if(s.push(tt.height),_){let nt=_e.dom.lastChild,st=nt?clientRectsFor(nt):[];if(st.length){let rt=st[st.length-1],it=k?rt.right-tt.left:tt.right-rt.left;it>b&&(b=it,this.minWidth=d,this.minWidthFrom=$,this.minWidthTo=et)}}}$=et+_e.breakAfter}return s}textDirectionAt(e){let{i:s}=this.childPos(e,1);return getComputedStyle(this.children[s].dom).direction=="rtl"?Direction.RTL:Direction.LTR}measureTextSize(){for(let c of this.children)if(c instanceof LineView){let d=c.measureTextSize();if(d)return d}let e=document.createElement("div"),s,a;return e.className="cm-line",e.style.width="99999px",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let c=clientRectsFor(e.firstChild)[0];s=e.getBoundingClientRect().height,a=c?c.width/27:7,e.remove()}),{lineHeight:s,charWidth:a}}childCursor(e=this.length){let s=this.children.length;return s&&(e-=this.children[--s].length),new ChildCursor(this.children,e,s)}computeBlockGapDeco(){let e=[],s=this.view.viewState;for(let a=0,c=0;;c++){let d=c==s.viewports.length?null:s.viewports[c],_=d?d.from-1:this.length;if(_>a){let b=s.lineBlockAt(_).bottom-s.lineBlockAt(a).top;e.push(Decoration.replace({widget:new BlockGapWidget(b),block:!0,inclusive:!0,isBlockGap:!0}).range(a,_))}if(!d)break;a=d.to+1}return Decoration.set(e)}updateDeco(){let e=this.view.state.facet(decorations).map((s,a)=>(this.dynamicDecorationMap[a]=typeof s=="function")?s(this.view):s);for(let s=e.length;ss.anchor?-1:1),c;if(!a)return;!s.empty&&(c=this.coordsAt(s.anchor,s.anchor>s.head?-1:1))&&(a={left:Math.min(a.left,c.left),top:Math.min(a.top,c.top),right:Math.max(a.right,c.right),bottom:Math.max(a.bottom,c.bottom)});let d=0,_=0,b=0,k=0;for(let j of this.view.state.facet(scrollMargins).map(_e=>_e(this.view)))if(j){let{left:_e,right:et,top:tt,bottom:nt}=j;_e!=null&&(d=Math.max(d,_e)),et!=null&&(_=Math.max(_,et)),tt!=null&&(b=Math.max(b,tt)),nt!=null&&(k=Math.max(k,nt))}let $={left:a.left-d,top:a.top-b,right:a.right+_,bottom:a.bottom+k};scrollRectIntoView(this.view.scrollDOM,$,s.head0&&s<=0)o=o.childNodes[e-1],e=maxOffset(o);else if(o.nodeType==1&&e=0)o=o.childNodes[e],e=0;else return null}}function nextToUneditable(o,e){return o.nodeType!=1?0:(e&&o.childNodes[e-1].contentEditable=="false"?1:0)|(e0;){let $=findClusterBreak(c.text,_,!1);if(a(c.text.slice($,_))!=k)break;_=$}for(;bo?e.left-o:Math.max(0,o-e.right)}function getdy(o,e){return e.top>o?e.top-o:Math.max(0,o-e.bottom)}function yOverlap(o,e){return o.tope.top+1}function upTop(o,e){return eo.bottom?{top:o.top,left:o.left,right:o.right,bottom:e}:o}function domPosAtCoords(o,e,s){let a,c,d,_,b=!1,k,$,j,_e;for(let nt=o.firstChild;nt;nt=nt.nextSibling){let st=clientRectsFor(nt);for(let rt=0;rtot||_==ot&&d>at)&&(a=nt,c=it,d=at,_=ot,b=!at||(at>0?rt0)),at==0?s>it.bottom&&(!j||j.bottomit.top)&&($=nt,_e=it):j&&yOverlap(j,it)?j=upBot(j,it.bottom):_e&&yOverlap(_e,it)&&(_e=upTop(_e,it.top))}}if(j&&j.bottom>=s?(a=k,c=j):_e&&_e.top<=s&&(a=$,c=_e),!a)return{node:o,offset:0};let et=Math.max(c.left,Math.min(c.right,e));if(a.nodeType==3)return domPosInText(a,et,s);if(b&&a.contentEditable!="false")return domPosAtCoords(a,et,s);let tt=Array.prototype.indexOf.call(o.childNodes,a)+(e>=(c.left+c.right)/2?1:0);return{node:o,offset:tt}}function domPosInText(o,e,s){let a=o.nodeValue.length,c=-1,d=1e9,_=0;for(let b=0;bs?j.top-s:s-j.bottom)-1;if(j.left-1<=e&&j.right+1>=e&&_e=(j.left+j.right)/2,tt=et;if((browser.chrome||browser.gecko)&&textRange(o,b).getBoundingClientRect().left==j.right&&(tt=!et),_e<=0)return{node:o,offset:b+(tt?1:0)};c=b+(tt?1:0),d=_e}}}return{node:o,offset:c>-1?c:_>0?o.nodeValue.length:0}}function posAtCoords(o,{x:e,y:s},a,c=-1){var d;let _=o.contentDOM.getBoundingClientRect(),b=_.top+o.viewState.paddingTop,k,{docHeight:$}=o.viewState,j=s-b;if(j<0)return 0;if(j>$)return o.state.doc.length;for(let it=o.defaultLineHeight/2,at=!1;k=o.elementAtHeight(j),k.type!=BlockType.Text;)for(;j=c>0?k.bottom+it:k.top-it,!(j>=0&&j<=$);){if(at)return a?null:0;at=!0,c=-c}s=b+j;let _e=k.from;if(_eo.viewport.to)return o.viewport.to==o.state.doc.length?o.state.doc.length:a?null:posAtCoordsImprecise(o,_,k,e,s);let et=o.dom.ownerDocument,tt=o.root.elementFromPoint?o.root:et,nt=tt.elementFromPoint(e,s);nt&&!o.contentDOM.contains(nt)&&(nt=null),nt||(e=Math.max(_.left+1,Math.min(_.right-1,e)),nt=tt.elementFromPoint(e,s),nt&&!o.contentDOM.contains(nt)&&(nt=null));let st,rt=-1;if(nt&&((d=o.docView.nearest(nt))===null||d===void 0?void 0:d.isEditable)!=!1){if(et.caretPositionFromPoint){let it=et.caretPositionFromPoint(e,s);it&&({offsetNode:st,offset:rt}=it)}else if(et.caretRangeFromPoint){let it=et.caretRangeFromPoint(e,s);it&&({startContainer:st,startOffset:rt}=it,(!o.contentDOM.contains(st)||browser.safari&&isSuspiciousSafariCaretResult(st,rt,e)||browser.chrome&&isSuspiciousChromeCaretResult(st,rt,e))&&(st=void 0))}}if(!st||!o.docView.dom.contains(st)){let it=LineView.find(o.docView,_e);if(!it)return j>k.top+k.height/2?k.to:k.from;({node:st,offset:rt}=domPosAtCoords(it.dom,e,s))}return o.docView.posFromDOM(st,rt)}function posAtCoordsImprecise(o,e,s,a,c){let d=Math.round((a-e.left)*o.defaultCharacterWidth);o.lineWrapping&&s.height>o.defaultLineHeight*1.5&&(d+=Math.floor((c-s.top)/o.defaultLineHeight)*o.viewState.heightOracle.lineLength);let _=o.state.sliceDoc(s.from,s.to);return s.from+findColumn(_,d,o.state.tabSize)}function isSuspiciousSafariCaretResult(o,e,s){let a;if(o.nodeType!=3||e!=(a=o.nodeValue.length))return!1;for(let c=o.nextSibling;c;c=c.nextSibling)if(c.nodeType!=1||c.nodeName!="BR")return!1;return textRange(o,a-1,a).getBoundingClientRect().left>s}function isSuspiciousChromeCaretResult(o,e,s){if(e!=0)return!1;for(let c=o;;){let d=c.parentNode;if(!d||d.nodeType!=1||d.firstChild!=c)return!1;if(d.classList.contains("cm-line"))break;c=d}let a=o.nodeType==1?o.getBoundingClientRect():textRange(o,0,Math.max(o.nodeValue.length,1)).getBoundingClientRect();return s-a.left>5}function moveToLineBoundary(o,e,s,a){let c=o.state.doc.lineAt(e.head),d=!a||!o.lineWrapping?null:o.coordsAtPos(e.assoc<0&&e.head>c.from?e.head-1:e.head);if(d){let k=o.dom.getBoundingClientRect(),$=o.textDirectionAt(c.from),j=o.posAtCoords({x:s==($==Direction.LTR)?k.right-1:k.left+1,y:(d.top+d.bottom)/2});if(j!=null)return EditorSelection.cursor(j,s?-1:1)}let _=LineView.find(o.docView,e.head),b=_?s?_.posAtEnd:_.posAtStart:s?c.to:c.from;return EditorSelection.cursor(b,s?-1:1)}function moveByChar(o,e,s,a){let c=o.state.doc.lineAt(e.head),d=o.bidiSpans(c),_=o.textDirectionAt(c.from);for(let b=e,k=null;;){let $=moveVisually(c,d,_,b,s),j=movedOver;if(!$){if(c.number==(s?o.state.doc.lines:1))return b;j=` +`,c=o.state.doc.line(c.number+(s?1:-1)),d=o.bidiSpans(c),$=EditorSelection.cursor(s?c.from:c.to)}if(k){if(!k(j))return b}else{if(!a)return $;k=a(j)}b=$}}function byGroup(o,e,s){let a=o.state.charCategorizer(e),c=a(s);return d=>{let _=a(d);return c==CharCategory.Space&&(c=_),c==_}}function moveVertically(o,e,s,a){let c=e.head,d=s?1:-1;if(c==(s?o.state.doc.length:0))return EditorSelection.cursor(c,e.assoc);let _=e.goalColumn,b,k=o.contentDOM.getBoundingClientRect(),$=o.coordsAtPos(c),j=o.documentTop;if($)_==null&&(_=$.left-k.left),b=d<0?$.top:$.bottom;else{let tt=o.viewState.lineBlockAt(c);_==null&&(_=Math.min(k.right-k.left,o.defaultCharacterWidth*(c-tt.from))),b=(d<0?tt.top:tt.bottom)+j}let _e=k.left+_,et=a!=null?a:o.defaultLineHeight>>1;for(let tt=0;;tt+=10){let nt=b+(et+tt)*d,st=posAtCoords(o,{x:_e,y:nt},!1,d);if(ntk.bottom||(d<0?stc))return EditorSelection.cursor(st,e.assoc,void 0,_)}}function skipAtoms(o,e,s){let a=o.state.facet(atomicRanges).map(c=>c(o));for(;;){let c=!1;for(let d of a)d.between(s.from-1,s.from+1,(_,b,k)=>{s.from>_&&s.froms.from?EditorSelection.cursor(_,1):EditorSelection.cursor(b,-1),c=!0)});if(!c)return s}}class InputState{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.rapidCompositionStart=!1,this.mouseSelection=null;for(let s in handlers){let a=handlers[s];e.contentDOM.addEventListener(s,c=>{!eventBelongsToEditor(e,c)||this.ignoreDuringComposition(c)||s=="keydown"&&this.keydown(e,c)||(this.mustFlushObserver(c)&&e.observer.forceFlush(),this.runCustomHandlers(s,e,c)?c.preventDefault():a(e,c))},handlerOptions[s]),this.registeredEvents.push(s)}browser.chrome&&browser.chrome_version==102&&e.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?e.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,e.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=e.hasFocus,browser.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e,s){var a;let c;this.customHandlers=[];for(let d of s)if(c=(a=d.update(e).spec)===null||a===void 0?void 0:a.domEventHandlers){this.customHandlers.push({plugin:d.value,handlers:c});for(let _ in c)this.registeredEvents.indexOf(_)<0&&_!="scroll"&&(this.registeredEvents.push(_),e.contentDOM.addEventListener(_,b=>{!eventBelongsToEditor(e,b)||this.runCustomHandlers(_,e,b)&&b.preventDefault()}))}}runCustomHandlers(e,s,a){for(let c of this.customHandlers){let d=c.handlers[e];if(d)try{if(d.call(c.plugin,a,s)||a.defaultPrevented)return!0}catch(_){logException(s.state,_)}}return!1}runScrollHandlers(e,s){this.lastScrollTop=e.scrollDOM.scrollTop,this.lastScrollLeft=e.scrollDOM.scrollLeft;for(let a of this.customHandlers){let c=a.handlers.scroll;if(c)try{c.call(a.plugin,s,e)}catch(d){logException(e.state,d)}}}keydown(e,s){if(this.lastKeyCode=s.keyCode,this.lastKeyTime=Date.now(),s.keyCode==9&&Date.now()c.keyCode==s.keyCode))&&!(s.ctrlKey||s.altKey||s.metaKey)&&!s.synthetic?(this.pendingIOSKey=a,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let s=this.pendingIOSKey;return s?(this.pendingIOSKey=void 0,dispatchKey(e.contentDOM,s.key,s.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:browser.safari&&!browser.ios&&Date.now()-this.compositionEndedAt<100?(this.compositionEndedAt=0,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229||e.type=="compositionend"&&!browser.ios}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const PendingKeys=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],modifierCodes=[16,17,18,20,91,92,224,225];class MouseSelection{constructor(e,s,a,c){this.view=e,this.style=a,this.mustSelect=c,this.lastEvent=s;let d=e.contentDOM.ownerDocument;d.addEventListener("mousemove",this.move=this.move.bind(this)),d.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=s.shiftKey,this.multiple=e.state.facet(EditorState.allowMultipleSelections)&&addsSelectionRange(e,s),this.dragMove=dragMovesSelection(e,s),this.dragging=isInPrimarySelection(e,s)&&getClickType(s)==1?null:!1,this.dragging===!1&&(s.preventDefault(),this.select(s))}move(e){if(e.buttons==0)return this.destroy();this.dragging===!1&&this.select(this.lastEvent=e)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}select(e){let s=this.style.get(e,this.extend,this.multiple);(this.mustSelect||!s.eq(this.view.state.selection)||s.main.assoc!=this.view.state.selection.main.assoc)&&this.view.dispatch({selection:s,userEvent:"select.pointer",scrollIntoView:!0}),this.mustSelect=!1}update(e){e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function addsSelectionRange(o,e){let s=o.state.facet(clickAddsSelectionRange);return s.length?s[0](e):browser.mac?e.metaKey:e.ctrlKey}function dragMovesSelection(o,e){let s=o.state.facet(dragMovesSelection$1);return s.length?s[0](e):browser.mac?!e.altKey:!e.ctrlKey}function isInPrimarySelection(o,e){let{main:s}=o.state.selection;if(s.empty)return!1;let a=getSelection(o.root);if(!a||a.rangeCount==0)return!0;let c=a.getRangeAt(0).getClientRects();for(let d=0;d=e.clientX&&_.top<=e.clientY&&_.bottom>=e.clientY)return!0}return!1}function eventBelongsToEditor(o,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let s=e.target,a;s!=o.contentDOM;s=s.parentNode)if(!s||s.nodeType==11||(a=ContentView.get(s))&&a.ignoreEvent(e))return!1;return!0}const handlers=Object.create(null),handlerOptions=Object.create(null),brokenClipboardAPI=browser.ie&&browser.ie_version<15||browser.ios&&browser.webkit_version<604;function capturePaste(o){let e=o.dom.parentNode;if(!e)return;let s=e.appendChild(document.createElement("textarea"));s.style.cssText="position: fixed; left: -10000px; top: 10px",s.focus(),setTimeout(()=>{o.focus(),s.remove(),doPaste(o,s.value)},50)}function doPaste(o,e){let{state:s}=o,a,c=1,d=s.toText(e),_=d.lines==s.selection.ranges.length;if(lastLinewiseCopy!=null&&s.selection.ranges.every(k=>k.empty)&&lastLinewiseCopy==d.toString()){let k=-1;a=s.changeByRange($=>{let j=s.doc.lineAt($.from);if(j.from==k)return{range:$};k=j.from;let _e=s.toText((_?d.line(c++).text:e)+s.lineBreak);return{changes:{from:j.from,insert:_e},range:EditorSelection.cursor($.from+_e.length)}})}else _?a=s.changeByRange(k=>{let $=d.line(c++);return{changes:{from:k.from,to:k.to,insert:$.text},range:EditorSelection.cursor(k.from+$.length)}}):a=s.replaceSelection(d);o.dispatch(a,{userEvent:"input.paste",scrollIntoView:!0})}handlers.keydown=(o,e)=>{o.inputState.setSelectionOrigin("select"),e.keyCode==27?o.inputState.lastEscPress=Date.now():modifierCodes.indexOf(e.keyCode)<0&&(o.inputState.lastEscPress=0)};handlers.touchstart=(o,e)=>{o.inputState.lastTouchTime=Date.now(),o.inputState.setSelectionOrigin("select.pointer")};handlers.touchmove=o=>{o.inputState.setSelectionOrigin("select.pointer")};handlerOptions.touchstart=handlerOptions.touchmove={passive:!0};handlers.mousedown=(o,e)=>{if(o.observer.flush(),o.inputState.lastTouchTime>Date.now()-2e3&&getClickType(e)==1)return;let s=null;for(let a of o.state.facet(mouseSelectionStyle))if(s=a(o,e),s)break;if(!s&&e.button==0&&(s=basicMouseSelection(o,e)),s){let a=o.root.activeElement!=o.contentDOM;a&&o.observer.ignore(()=>focusPreventScroll(o.contentDOM)),o.inputState.startMouseSelection(new MouseSelection(o,e,s,a))}};function rangeForClick(o,e,s,a){if(a==1)return EditorSelection.cursor(e,s);if(a==2)return groupAt(o.state,e,s);{let c=LineView.find(o.docView,e),d=o.state.doc.lineAt(c?c.posAtEnd:e),_=c?c.posAtStart:d.from,b=c?c.posAtEnd:d.to;return bo>=e.top&&o<=e.bottom,inside=(o,e,s)=>insideY(e,s)&&o>=s.left&&o<=s.right;function findPositionSide(o,e,s,a){let c=LineView.find(o.docView,e);if(!c)return 1;let d=e-c.posAtStart;if(d==0)return 1;if(d==c.length)return-1;let _=c.coordsAt(d,-1);if(_&&inside(s,a,_))return-1;let b=c.coordsAt(d,1);return b&&inside(s,a,b)?1:_&&insideY(a,_)?-1:1}function queryPos(o,e){let s=o.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:s,bias:findPositionSide(o,s,e.clientX,e.clientY)}}const BadMouseDetail=browser.ie&&browser.ie_version<=11;let lastMouseDown=null,lastMouseDownCount=0,lastMouseDownTime=0;function getClickType(o){if(!BadMouseDetail)return o.detail;let e=lastMouseDown,s=lastMouseDownTime;return lastMouseDown=o,lastMouseDownTime=Date.now(),lastMouseDownCount=!e||s>Date.now()-400&&Math.abs(e.clientX-o.clientX)<2&&Math.abs(e.clientY-o.clientY)<2?(lastMouseDownCount+1)%3:1}function basicMouseSelection(o,e){let s=queryPos(o,e),a=getClickType(e),c=o.state.selection,d=s,_=e;return{update(b){b.docChanged&&(s&&(s.pos=b.changes.mapPos(s.pos)),c=c.map(b.changes),_=null)},get(b,k,$){let j;if(_&&b.clientX==_.clientX&&b.clientY==_.clientY?j=d:(j=d=queryPos(o,b),_=b),!j||!s)return c;let _e=rangeForClick(o,j.pos,j.bias,a);if(s.pos!=j.pos&&!k){let et=rangeForClick(o,s.pos,s.bias,a),tt=Math.min(et.from,_e.from),nt=Math.max(et.to,_e.to);_e=tt<_e.from?EditorSelection.range(tt,nt):EditorSelection.range(nt,tt)}return k?c.replaceRange(c.main.extend(_e.from,_e.to)):$&&c.ranges.length>1&&c.ranges.some(et=>et.eq(_e))?removeRange(c,_e):$?c.addRange(_e):EditorSelection.create([_e])}}}function removeRange(o,e){for(let s=0;;s++)if(o.ranges[s].eq(e))return EditorSelection.create(o.ranges.slice(0,s).concat(o.ranges.slice(s+1)),o.mainIndex==s?0:o.mainIndex-(o.mainIndex>s?1:0))}handlers.dragstart=(o,e)=>{let{selection:{main:s}}=o.state,{mouseSelection:a}=o.inputState;a&&(a.dragging=s),e.dataTransfer&&(e.dataTransfer.setData("Text",o.state.sliceDoc(s.from,s.to)),e.dataTransfer.effectAllowed="copyMove")};function dropText(o,e,s,a){if(!s)return;let c=o.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:d}=o.inputState,_=a&&d&&d.dragging&&d.dragMove?{from:d.dragging.from,to:d.dragging.to}:null,b={from:c,insert:s},k=o.state.changes(_?[_,b]:b);o.focus(),o.dispatch({changes:k,selection:{anchor:k.mapPos(c,-1),head:k.mapPos(c,1)},userEvent:_?"move.drop":"input.drop"})}handlers.drop=(o,e)=>{if(!e.dataTransfer)return;if(o.state.readOnly)return e.preventDefault();let s=e.dataTransfer.files;if(s&&s.length){e.preventDefault();let a=Array(s.length),c=0,d=()=>{++c==s.length&&dropText(o,e,a.filter(_=>_!=null).join(o.state.lineBreak),!1)};for(let _=0;_{/[\x00-\x08\x0e-\x1f]{2}/.test(b.result)||(a[_]=b.result),d()},b.readAsText(s[_])}}else dropText(o,e,e.dataTransfer.getData("Text"),!0)};handlers.paste=(o,e)=>{if(o.state.readOnly)return e.preventDefault();o.observer.flush();let s=brokenClipboardAPI?null:e.clipboardData;s?(doPaste(o,s.getData("text/plain")),e.preventDefault()):capturePaste(o)};function captureCopy(o,e){let s=o.dom.parentNode;if(!s)return;let a=s.appendChild(document.createElement("textarea"));a.style.cssText="position: fixed; left: -10000px; top: 10px",a.value=e,a.focus(),a.selectionEnd=e.length,a.selectionStart=0,setTimeout(()=>{a.remove(),o.focus()},50)}function copiedRange(o){let e=[],s=[],a=!1;for(let c of o.selection.ranges)c.empty||(e.push(o.sliceDoc(c.from,c.to)),s.push(c));if(!e.length){let c=-1;for(let{from:d}of o.selection.ranges){let _=o.doc.lineAt(d);_.number>c&&(e.push(_.text),s.push({from:_.from,to:Math.min(o.doc.length,_.to+1)})),c=_.number}a=!0}return{text:e.join(o.lineBreak),ranges:s,linewise:a}}let lastLinewiseCopy=null;handlers.copy=handlers.cut=(o,e)=>{let{text:s,ranges:a,linewise:c}=copiedRange(o.state);if(!s&&!c)return;lastLinewiseCopy=c?s:null;let d=brokenClipboardAPI?null:e.clipboardData;d?(e.preventDefault(),d.clearData(),d.setData("text/plain",s)):captureCopy(o,s),e.type=="cut"&&!o.state.readOnly&&o.dispatch({changes:a,scrollIntoView:!0,userEvent:"delete.cut"})};function updateForFocusChange(o){setTimeout(()=>{o.hasFocus!=o.inputState.notifiedFocused&&o.update([])},10)}handlers.focus=o=>{o.inputState.lastFocusTime=Date.now(),!o.scrollDOM.scrollTop&&(o.inputState.lastScrollTop||o.inputState.lastScrollLeft)&&(o.scrollDOM.scrollTop=o.inputState.lastScrollTop,o.scrollDOM.scrollLeft=o.inputState.lastScrollLeft),updateForFocusChange(o)};handlers.blur=o=>{o.observer.clearSelectionRange(),updateForFocusChange(o)};function forceClearComposition(o,e){if(o.docView.compositionDeco.size){o.inputState.rapidCompositionStart=e;try{o.update([])}finally{o.inputState.rapidCompositionStart=!1}}}handlers.compositionstart=handlers.compositionupdate=o=>{o.inputState.compositionFirstChange==null&&(o.inputState.compositionFirstChange=!0),o.inputState.composing<0&&(o.inputState.composing=0,o.docView.compositionDeco.size&&(o.observer.flush(),forceClearComposition(o,!0)))};handlers.compositionend=o=>{o.inputState.composing=-1,o.inputState.compositionEndedAt=Date.now(),o.inputState.compositionFirstChange=null,setTimeout(()=>{o.inputState.composing<0&&forceClearComposition(o,!1)},50)};handlers.contextmenu=o=>{o.inputState.lastContextMenu=Date.now()};handlers.beforeinput=(o,e)=>{var s;let a;if(browser.chrome&&browser.android&&(a=PendingKeys.find(c=>c.inputType==e.inputType))&&(o.observer.delayAndroidKey(a.key,a.keyCode),a.key=="Backspace"||a.key=="Delete")){let c=((s=window.visualViewport)===null||s===void 0?void 0:s.height)||0;setTimeout(()=>{var d;(((d=window.visualViewport)===null||d===void 0?void 0:d.height)||0)>c+10&&o.hasFocus&&(o.contentDOM.blur(),o.focus())},100)}};const wrappingWhiteSpace=["pre-wrap","normal","pre-line","break-spaces"];class HeightOracle{constructor(){this.doc=Text.empty,this.lineWrapping=!1,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}heightForGap(e,s){let a=this.doc.lineAt(s).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(a+=Math.ceil((s-e-a*this.lineLength*.5)/this.lineLength)),this.lineHeight*a}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return wrappingWhiteSpace.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let s=!1;for(let a=0;a-1,b=Math.round(s)!=Math.round(this.lineHeight)||this.lineWrapping!=_;if(this.lineWrapping=_,this.lineHeight=s,this.charWidth=a,this.lineLength=c,b){this.heightSamples={};for(let k=0;k0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,s){this.height!=s&&(Math.abs(this.height-s)>Epsilon&&(e.heightChanged=!0),this.height=s)}replace(e,s,a){return HeightMap.of(a)}decomposeLeft(e,s){s.push(this)}decomposeRight(e,s){s.push(this)}applyChanges(e,s,a,c){let d=this;for(let _=c.length-1;_>=0;_--){let{fromA:b,toA:k,fromB:$,toB:j}=c[_],_e=d.lineAt(b,QueryType$1.ByPosNoHeight,s,0,0),et=_e.to>=k?_e:d.lineAt(k,QueryType$1.ByPosNoHeight,s,0,0);for(j+=et.to-k,k=et.to;_>0&&_e.from<=c[_-1].toA;)b=c[_-1].fromA,$=c[_-1].fromB,_--,b<_e.from&&(_e=d.lineAt(b,QueryType$1.ByPosNoHeight,s,0,0));$+=_e.from-b,b=_e.from;let tt=NodeBuilder.build(a,e,$,j);d=d.replace(b,k,tt)}return d.updateHeight(a,0)}static empty(){return new HeightMapText(0,0)}static of(e){if(e.length==1)return e[0];let s=0,a=e.length,c=0,d=0;for(;;)if(s==a)if(c>d*2){let b=e[s-1];b.break?e.splice(--s,1,b.left,null,b.right):e.splice(--s,1,b.left,b.right),a+=1+b.break,c-=b.size}else if(d>c*2){let b=e[a];b.break?e.splice(a,1,b.left,null,b.right):e.splice(a,1,b.left,b.right),a+=2+b.break,d-=b.size}else break;else if(c=d&&_(this.blockAt(0,a,c,d))}updateHeight(e,s=0,a=!1,c){return c&&c.from<=s&&c.more&&this.setHeight(e,c.heights[c.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class HeightMapText extends HeightMapBlock{constructor(e,s){super(e,s,BlockType.Text),this.collapsed=0,this.widgetHeight=0}replace(e,s,a){let c=a[0];return a.length==1&&(c instanceof HeightMapText||c instanceof HeightMapGap&&c.flags&4)&&Math.abs(this.length-c.length)<10?(c instanceof HeightMapGap?c=new HeightMapText(c.length,this.height):c.height=this.height,this.outdated||(c.outdated=!1),c):HeightMap.of(a)}updateHeight(e,s=0,a=!1,c){return c&&c.from<=s&&c.more?this.setHeight(e,c.heights[c.index++]):(a||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class HeightMapGap extends HeightMap{constructor(e){super(e,0)}lines(e,s){let a=e.lineAt(s).number,c=e.lineAt(s+this.length).number;return{firstLine:a,lastLine:c,lineHeight:this.height/(c-a+1)}}blockAt(e,s,a,c){let{firstLine:d,lastLine:_,lineHeight:b}=this.lines(s,c),k=Math.max(0,Math.min(_-d,Math.floor((e-a)/b))),{from:$,length:j}=s.line(d+k);return new BlockInfo($,j,a+b*k,b,BlockType.Text)}lineAt(e,s,a,c,d){if(s==QueryType$1.ByHeight)return this.blockAt(e,a,c,d);if(s==QueryType$1.ByPosNoHeight){let{from:_e,to:et}=a.lineAt(e);return new BlockInfo(_e,et-_e,0,0,BlockType.Text)}let{firstLine:_,lineHeight:b}=this.lines(a,d),{from:k,length:$,number:j}=a.lineAt(e);return new BlockInfo(k,$,c+b*(j-_),b,BlockType.Text)}forEachLine(e,s,a,c,d,_){let{firstLine:b,lineHeight:k}=this.lines(a,d);for(let $=Math.max(e,d),j=Math.min(d+this.length,s);$<=j;){let _e=a.lineAt($);$==e&&(c+=k*(_e.number-b)),_(new BlockInfo(_e.from,_e.length,c,k,BlockType.Text)),c+=k,$=_e.to+1}}replace(e,s,a){let c=this.length-s;if(c>0){let d=a[a.length-1];d instanceof HeightMapGap?a[a.length-1]=new HeightMapGap(d.length+c):a.push(null,new HeightMapGap(c-1))}if(e>0){let d=a[0];d instanceof HeightMapGap?a[0]=new HeightMapGap(e+d.length):a.unshift(new HeightMapGap(e-1),null)}return HeightMap.of(a)}decomposeLeft(e,s){s.push(new HeightMapGap(e-1),null)}decomposeRight(e,s){s.push(null,new HeightMapGap(this.length-e-1))}updateHeight(e,s=0,a=!1,c){let d=s+this.length;if(c&&c.from<=s+this.length&&c.more){let _=[],b=Math.max(s,c.from),k=-1,$=e.heightChanged;for(c.from>s&&_.push(new HeightMapGap(c.from-s-1).updateHeight(e,s));b<=d&&c.more;){let _e=e.doc.lineAt(b).length;_.length&&_.push(null);let et=c.heights[c.index++];k==-1?k=et:Math.abs(et-k)>=Epsilon&&(k=-2);let tt=new HeightMapText(_e,et);tt.outdated=!1,_.push(tt),b+=_e+1}b<=d&&_.push(null,new HeightMapGap(d-b).updateHeight(e,b));let j=HeightMap.of(_);return e.heightChanged=$||k<0||Math.abs(j.height-this.height)>=Epsilon||Math.abs(k-this.lines(e.doc,s).lineHeight)>=Epsilon,j}else(a||this.outdated)&&(this.setHeight(e,e.heightForGap(s,s+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class HeightMapBranch extends HeightMap{constructor(e,s,a){super(e.length+s+a.length,e.height+a.height,s|(e.outdated||a.outdated?2:0)),this.left=e,this.right=a,this.size=e.size+a.size}get break(){return this.flags&1}blockAt(e,s,a,c){let d=a+this.left.height;return eb))return $;let j=s==QueryType$1.ByPosNoHeight?QueryType$1.ByPosNoHeight:QueryType$1.ByPos;return k?$.join(this.right.lineAt(b,j,a,_,b)):this.left.lineAt(b,j,a,c,d).join($)}forEachLine(e,s,a,c,d,_){let b=c+this.left.height,k=d+this.left.length+this.break;if(this.break)e=k&&this.right.forEachLine(e,s,a,b,k,_);else{let $=this.lineAt(k,QueryType$1.ByPos,a,c,d);e<$.from&&this.left.forEachLine(e,$.from-1,a,c,d,_),$.to>=e&&$.from<=s&&_($),s>$.to&&this.right.forEachLine($.to+1,s,a,b,k,_)}}replace(e,s,a){let c=this.left.length+this.break;if(sthis.left.length)return this.balanced(this.left,this.right.replace(e-c,s-c,a));let d=[];e>0&&this.decomposeLeft(e,d);let _=d.length;for(let b of a)d.push(b);if(e>0&&mergeGaps(d,_-1),s=a&&s.push(null)),e>a&&this.right.decomposeLeft(e-a,s)}decomposeRight(e,s){let a=this.left.length,c=a+this.break;if(e>=c)return this.right.decomposeRight(e-c,s);e2*s.size||s.size>2*e.size?HeightMap.of(this.break?[e,null,s]:[e,s]):(this.left=e,this.right=s,this.height=e.height+s.height,this.outdated=e.outdated||s.outdated,this.size=e.size+s.size,this.length=e.length+this.break+s.length,this)}updateHeight(e,s=0,a=!1,c){let{left:d,right:_}=this,b=s+d.length+this.break,k=null;return c&&c.from<=s+d.length&&c.more?k=d=d.updateHeight(e,s,a,c):d.updateHeight(e,s,a),c&&c.from<=b+_.length&&c.more?k=_=_.updateHeight(e,b,a,c):_.updateHeight(e,b,a),k?this.balanced(d,_):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function mergeGaps(o,e){let s,a;o[e]==null&&(s=o[e-1])instanceof HeightMapGap&&(a=o[e+1])instanceof HeightMapGap&&o.splice(e-1,3,new HeightMapGap(s.length+1+a.length))}const relevantWidgetHeight=5;class NodeBuilder{constructor(e,s){this.pos=e,this.oracle=s,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,s){if(this.lineStart>-1){let a=Math.min(s,this.lineEnd),c=this.nodes[this.nodes.length-1];c instanceof HeightMapText?c.length+=a-this.pos:(a>this.pos||!this.isCovered)&&this.nodes.push(new HeightMapText(a-this.pos,-1)),this.writtenTo=a,s>a&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=s}point(e,s,a){if(e=relevantWidgetHeight)&&this.addLineDeco(c,d)}else s>e&&this.span(e,s);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:s}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=s,this.writtenToe&&this.nodes.push(new HeightMapText(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,s){let a=new HeightMapGap(s-e);return this.oracle.doc.lineAt(e).to==s&&(a.flags|=4),a}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof HeightMapText)return e;let s=new HeightMapText(0,-1);return this.nodes.push(s),s}addBlock(e){this.enterLine(),e.type==BlockType.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=BlockType.WidgetBefore&&(this.covering=e)}addLineDeco(e,s){let a=this.ensureLine();a.length+=s,a.collapsed+=s,a.widgetHeight=Math.max(a.widgetHeight,e),this.writtenTo=this.pos=this.pos+s}finish(e){let s=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(s instanceof HeightMapText)&&!this.isCovered?this.nodes.push(new HeightMapText(0,-1)):(this.writtenTo$.clientHeight||$.scrollWidth>$.clientWidth)&&j.overflow!="visible"){let _e=$.getBoundingClientRect();a=Math.max(a,_e.left),c=Math.min(c,_e.right),d=Math.max(d,_e.top),_=k==o.parentNode?_e.bottom:Math.min(_,_e.bottom)}k=j.position=="absolute"||j.position=="fixed"?$.offsetParent:$.parentNode}else if(k.nodeType==11)k=k.host;else break;return{left:a-s.left,right:Math.max(a,c)-s.left,top:d-(s.top+e),bottom:Math.max(d,_)-(s.top+e)}}function fullPixelRange(o,e){let s=o.getBoundingClientRect();return{left:0,right:s.right-s.left,top:e,bottom:s.bottom-(s.top+e)}}class LineGap{constructor(e,s,a){this.from=e,this.to=s,this.size=a}static same(e,s){if(e.length!=s.length)return!1;for(let a=0;atypeof s!="function"),this.heightMap=HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle.setDoc(e.doc),[new ChangedRange(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Decoration.set(this.lineGaps.map(s=>s.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:s}=this.state.selection;for(let a=0;a<=1;a++){let c=a?s.head:s.anchor;if(!e.some(({from:d,to:_})=>c>=d&&c<=_)){let{from:d,to:_}=this.lineBlockAt(c);e.push(new Viewport(d,_))}}this.viewports=e.sort((a,c)=>a.from-c.from),this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle.doc,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.state.doc,0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:scaleBlock(e,this.scaler))})}update(e,s=null){this.state=e.state;let a=this.stateDeco;this.stateDeco=this.state.facet(decorations).filter($=>typeof $!="function");let c=e.changedRanges,d=ChangedRange.extendWithRanges(c,heightRelevantDecoChanges(a,this.stateDeco,e?e.changes:ChangeSet.empty(this.state.doc.length))),_=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),d),this.heightMap.height!=_&&(e.flags|=2);let b=d.length?this.mapViewport(this.viewport,e.changes):this.viewport;(s&&(s.range.headb.to)||!this.viewportIsAppropriate(b))&&(b=this.getViewport(0,s));let k=!e.changes.empty||e.flags&2||b.from!=this.viewport.from||b.to!=this.viewport.to;this.viewport=b,this.updateForViewport(),k&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),s&&(this.scrollTarget=s),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&(this.mustEnforceCursorAssoc=!0)}measure(e){let s=e.contentDOM,a=window.getComputedStyle(s),c=this.heightOracle,d=a.whiteSpace;this.defaultTextDirection=a.direction=="rtl"?Direction.RTL:Direction.LTR;let _=this.heightOracle.mustRefreshForWrapping(d),b=_||this.mustMeasureContent||this.contentDOMHeight!=s.clientHeight;this.contentDOMHeight=s.clientHeight,this.mustMeasureContent=!1;let k=0,$=0,j=parseInt(a.paddingTop)||0,_e=parseInt(a.paddingBottom)||0;(this.paddingTop!=j||this.paddingBottom!=_e)&&(this.paddingTop=j,this.paddingBottom=_e,k|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(c.lineWrapping&&(b=!0),this.editorWidth=e.scrollDOM.clientWidth,k|=8);let et=(this.printing?fullPixelRange:visiblePixelRange)(s,this.paddingTop),tt=et.top-this.pixelViewport.top,nt=et.bottom-this.pixelViewport.bottom;this.pixelViewport=et;let st=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(st!=this.inView&&(this.inView=st,st&&(b=!0)),!this.inView)return 0;let rt=s.clientWidth;if((this.contentDOMWidth!=rt||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=rt,this.editorHeight=e.scrollDOM.clientHeight,k|=8),b){let at=e.docView.measureVisibleLineHeights(this.viewport);if(c.mustRefreshForHeights(at)&&(_=!0),_||c.lineWrapping&&Math.abs(rt-this.contentDOMWidth)>c.charWidth){let{lineHeight:ot,charWidth:ht}=e.docView.measureTextSize();_=c.refresh(d,ot,ht,rt/ht,at),_&&(e.docView.minWidth=0,k|=8)}tt>0&&nt>0?$=Math.max(tt,nt):tt<0&&nt<0&&($=Math.min(tt,nt)),c.heightChanged=!1;for(let ot of this.viewports){let ht=ot.from==this.viewport.from?at:e.docView.measureVisibleLineHeights(ot);this.heightMap=this.heightMap.updateHeight(c,0,_,new MeasuredHeights(ot.from,ht))}c.heightChanged&&(k|=2)}let it=!this.viewportIsAppropriate(this.viewport,$)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return it&&(this.viewport=this.getViewport($,this.scrollTarget)),this.updateForViewport(),(k&2||it)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(_?[]:this.lineGaps)),k|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),k}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,s){let a=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),c=this.heightMap,d=this.state.doc,{visibleTop:_,visibleBottom:b}=this,k=new Viewport(c.lineAt(_-a*1e3,QueryType$1.ByHeight,d,0,0).from,c.lineAt(b+(1-a)*1e3,QueryType$1.ByHeight,d,0,0).to);if(s){let{head:$}=s.range;if($k.to){let j=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),_e=c.lineAt($,QueryType$1.ByPos,d,0,0),et;s.y=="center"?et=(_e.top+_e.bottom)/2-j/2:s.y=="start"||s.y=="nearest"&&$=b+Math.max(10,Math.min(a,250)))&&c>_-2*1e3&&da.from&&b.push({from:a.from,to:d}),_=a.from&&k.from<=a.to&&cutRange(b,k.from-10,k.from+10),!k.empty&&k.to>=a.from&&k.to<=a.to&&cutRange(b,k.to-10,k.to+10);for(let{from:$,to:j}of b)j-$>1e3&&s.push(find(e,_e=>_e.from>=a.from&&_e.to<=a.to&&Math.abs(_e.from-$)<1e3&&Math.abs(_e.to-j)<1e3)||new LineGap($,j,this.gapSize(a,$,j,c)))}return s}gapSize(e,s,a,c){let d=findFraction(c,a)-findFraction(c,s);return this.heightOracle.lineWrapping?e.height*d:c.total*this.heightOracle.charWidth*d}updateLineGaps(e){LineGap.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=Decoration.set(e.map(s=>s.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let s=[];RangeSet.spans(e,this.viewport.from,this.viewport.to,{span(c,d){s.push({from:c,to:d})},point(){}},20);let a=s.length!=this.visibleRanges.length||this.visibleRanges.some((c,d)=>c.from!=s[d].from||c.to!=s[d].to);return this.visibleRanges=s,a?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(s=>s.from<=e&&s.to>=e)||scaleBlock(this.heightMap.lineAt(e,QueryType$1.ByPos,this.state.doc,0,0),this.scaler)}lineBlockAtHeight(e){return scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(e),QueryType$1.ByHeight,this.state.doc,0,0),this.scaler)}elementAtHeight(e){return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(e),this.state.doc,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Viewport{constructor(e,s){this.from=e,this.to=s}}function lineStructure(o,e,s){let a=[],c=o,d=0;return RangeSet.spans(s,o,e,{span(){},point(_,b){_>c&&(a.push({from:c,to:_}),d+=_-c),c=b}},20),c=1)return e[e.length-1].to;let a=Math.floor(o*s);for(let c=0;;c++){let{from:d,to:_}=e[c],b=_-d;if(a<=b)return d+a;a-=b}}function findFraction(o,e){let s=0;for(let{from:a,to:c}of o.ranges){if(e<=c){s+=e-a;break}s+=c-a}return s/o.total}function cutRange(o,e,s){for(let a=0;ae){let d=[];c.froms&&d.push({from:s,to:c.to}),o.splice(a,1,...d),a+=d.length-1}}}function find(o,e){for(let s of o)if(e(s))return s}const IdScaler={toDOM(o){return o},fromDOM(o){return o},scale:1};class BigScaler{constructor(e,s,a){let c=0,d=0,_=0;this.viewports=a.map(({from:b,to:k})=>{let $=s.lineAt(b,QueryType$1.ByPos,e,0,0).top,j=s.lineAt(k,QueryType$1.ByPos,e,0,0).bottom;return c+=j-$,{from:b,to:k,top:$,bottom:j,domTop:0,domBottom:0}}),this.scale=(7e6-c)/(s.height-c);for(let b of this.viewports)b.domTop=_+(b.top-d)*this.scale,_=b.domBottom=b.domTop+(b.bottom-b.top),d=b.bottom}toDOM(e){for(let s=0,a=0,c=0;;s++){let d=sscaleBlock(c,e)):o.type)}const theme=Facet.define({combine:o=>o.join(" ")}),darkTheme=Facet.define({combine:o=>o.indexOf(!0)>-1}),baseThemeID=StyleModule.newName(),baseLightID=StyleModule.newName(),baseDarkID=StyleModule.newName(),lightDarkIDs={"&light":"."+baseLightID,"&dark":"."+baseDarkID};function buildTheme(o,e,s){return new StyleModule(e,{finish(a){return/&/.test(a)?a.replace(/&\w*/,c=>{if(c=="&")return o;if(!s||!s[c])throw new RangeError(`Unsupported selector: ${c}`);return s[c]}):o+" "+a}})}const baseTheme$1$3=buildTheme("."+baseThemeID,{"&.cm-editor":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,minHeight:"100%",display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 4px"},".cm-selectionLayer":{zIndex:-1,contain:"size style"},".cm-selectionBackground":{position:"absolute"},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{zIndex:100,contain:"size style",pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{position:"absolute",borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#f3f9ff"},"&dark .cm-activeLine":{backgroundColor:"#223039"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},lightDarkIDs),observeOptions={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},useCharData=browser.ie&&browser.ie_version<=11;class DOMObserver{constructor(e,s,a){this.view=e,this.onChange=s,this.onScrollChanged=a,this.active=!1,this.selectionRange=new DOMSelectionState,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.scrollTargets=[],this.intersection=null,this.resize=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(c=>{for(let d of c)this.queue.push(d);(browser.ie&&browser.ie_version<=11||browser.ios&&e.composing)&&c.some(d=>d.type=="childList"&&d.removedNodes.length||d.type=="characterData"&&d.oldValue.length>d.target.nodeValue.length)?this.flushSoon():this.flush()}),useCharData&&(this.onCharData=c=>{this.queue.push({target:c.target,type:"characterData",oldValue:c.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resize=new ResizeObserver(()=>{this.view.docView.lastUpdate{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),c.length>0&&c[c.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(c=>{c.length>0&&c[c.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((s,a)=>s!=e[a]))){this.gapIntersection.disconnect();for(let s of e)this.gapIntersection.observe(s);this.gaps=e}}onSelectionChange(e){if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:s}=this,a=this.selectionRange;if(s.state.facet(editable)?s.root.activeElement!=this.dom:!hasSelection(s.dom,a))return;let c=a.anchorNode&&s.docView.nearest(a.anchorNode);c&&c.ignoreEvent(e)||((browser.ie&&browser.ie_version<=11||browser.android&&browser.chrome)&&!s.state.selection.main.empty&&a.focusNode&&isEquivalentPosition(a.focusNode,a.focusOffset,a.anchorNode,a.anchorOffset)?this.flushSoon():this.flush(!1))}readSelectionRange(){let{view:e}=this,s=browser.safari&&e.root.nodeType==11&&deepActiveElement()==this.dom&&safariSelectionRangeHack(this.view)||getSelection(e.root);if(!s||this.selectionRange.eq(s))return!1;let a=hasSelection(this.dom,s);return a&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let a=this.delayedAndroidKey;this.delayedAndroidKey=null,this.delayedFlush=-1,this.flush()||dispatchKey(this.dom,a.key,a.keyCode)}),(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:s})}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=window.setTimeout(()=>{this.delayedFlush=-1,this.flush()},20))}forceFlush(){this.delayedFlush>=0&&(window.clearTimeout(this.delayedFlush),this.delayedFlush=-1),this.flush()}processRecords(){let e=this.queue;for(let d of this.observer.takeRecords())e.push(d);e.length&&(this.queue=[]);let s=-1,a=-1,c=!1;for(let d of e){let _=this.readMutation(d);!_||(_.typeOver&&(c=!0),s==-1?{from:s,to:a}=_:(s=Math.min(_.from,s),a=Math.max(_.to,a)))}return{from:s,to:a,typeOver:c}}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return;e&&this.readSelectionRange();let{from:s,to:a,typeOver:c}=this.processRecords(),d=this.selectionChanged&&hasSelection(this.dom,this.selectionRange);if(s<0&&!d)return;this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let _=this.view.state,b=this.onChange(s,a,c);return this.view.state==_&&this.view.update([]),b}readMutation(e){let s=this.view.docView.nearest(e.target);if(!s||s.ignoreMutation(e))return null;if(s.markDirty(e.type=="attributes"),e.type=="attributes"&&(s.dirty|=4),e.type=="childList"){let a=findChild(s,e.previousSibling||e.target.previousSibling,-1),c=findChild(s,e.nextSibling||e.target.nextSibling,1);return{from:a?s.posAfter(a):s.posAtStart,to:c?s.posBefore(c):s.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:s.posAtStart,to:s.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,s,a;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(s=this.gapIntersection)===null||s===void 0||s.disconnect(),(a=this.resize)===null||a===void 0||a.disconnect();for(let c of this.scrollTargets)c.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout)}}function findChild(o,e,s){for(;e;){let a=ContentView.get(e);if(a&&a.parent==o)return a;let c=e.parentNode;e=c!=o.dom?c:s>0?e.nextSibling:e.previousSibling}return null}function safariSelectionRangeHack(o){let e=null;function s(k){k.preventDefault(),k.stopImmediatePropagation(),e=k.getTargetRanges()[0]}if(o.contentDOM.addEventListener("beforeinput",s,!0),document.execCommand("indent"),o.contentDOM.removeEventListener("beforeinput",s,!0),!e)return null;let a=e.startContainer,c=e.startOffset,d=e.endContainer,_=e.endOffset,b=o.docView.domAtPos(o.state.selection.main.anchor);return isEquivalentPosition(b.node,b.offset,d,_)&&([a,c,d,_]=[d,_,a,c]),{anchorNode:a,anchorOffset:c,focusNode:d,focusOffset:_}}function applyDOMChange(o,e,s,a){let c,d,_=o.state.selection.main;if(e>-1){let b=o.docView.domBoundsAround(e,s,0);if(!b||o.state.readOnly)return!1;let{from:k,to:$}=b,j=o.docView.impreciseHead||o.docView.impreciseAnchor?[]:selectionPoints(o),_e=new DOMReader(j,o.state);_e.readRange(b.startDOM,b.endDOM);let et=_.from,tt=null;(o.inputState.lastKeyCode===8&&o.inputState.lastKeyTime>Date.now()-100||browser.android&&_e.text.length<$-k)&&(et=_.to,tt="end");let nt=findDiff(o.state.doc.sliceString(k,$,LineBreakPlaceholder),_e.text,et-k,tt);nt&&(browser.chrome&&o.inputState.lastKeyCode==13&&nt.toB==nt.from+2&&_e.text.slice(nt.from,nt.toB)==LineBreakPlaceholder+LineBreakPlaceholder&&nt.toB--,c={from:k+nt.from,to:k+nt.toA,insert:Text.of(_e.text.slice(nt.from,nt.toB).split(LineBreakPlaceholder))}),d=selectionFromPoints(j,k)}else if(o.hasFocus||!o.state.facet(editable)){let b=o.observer.selectionRange,{impreciseHead:k,impreciseAnchor:$}=o.docView,j=k&&k.node==b.focusNode&&k.offset==b.focusOffset||!contains(o.contentDOM,b.focusNode)?o.state.selection.main.head:o.docView.posFromDOM(b.focusNode,b.focusOffset),_e=$&&$.node==b.anchorNode&&$.offset==b.anchorOffset||!contains(o.contentDOM,b.anchorNode)?o.state.selection.main.anchor:o.docView.posFromDOM(b.anchorNode,b.anchorOffset);(j!=_.head||_e!=_.anchor)&&(d=EditorSelection.single(_e,j))}if(!c&&!d)return!1;if(!c&&a&&!_.empty&&d&&d.main.empty?c={from:_.from,to:_.to,insert:o.state.doc.slice(_.from,_.to)}:c&&c.from>=_.from&&c.to<=_.to&&(c.from!=_.from||c.to!=_.to)&&_.to-_.from-(c.to-c.from)<=4?c={from:_.from,to:_.to,insert:o.state.doc.slice(_.from,c.from).append(c.insert).append(o.state.doc.slice(c.to,_.to))}:(browser.mac||browser.android)&&c&&c.from==c.to&&c.from==_.head-1&&c.insert.toString()=="."&&(c={from:_.from,to:_.to,insert:Text.of([" "])}),c){let b=o.state;if(browser.ios&&o.inputState.flushIOSKey(o)||browser.android&&(c.from==_.from&&c.to==_.to&&c.insert.length==1&&c.insert.lines==2&&dispatchKey(o.contentDOM,"Enter",13)||c.from==_.from-1&&c.to==_.to&&c.insert.length==0&&dispatchKey(o.contentDOM,"Backspace",8)||c.from==_.from&&c.to==_.to+1&&c.insert.length==0&&dispatchKey(o.contentDOM,"Delete",46)))return!0;let k=c.insert.toString();if(o.state.facet(inputHandler$1).some(_e=>_e(o,c.from,c.to,k)))return!0;o.inputState.composing>=0&&o.inputState.composing++;let $;if(c.from>=_.from&&c.to<=_.to&&c.to-c.from>=(_.to-_.from)/3&&(!d||d.main.empty&&d.main.from==c.from+c.insert.length)&&o.inputState.composing<0){let _e=_.fromc.to?b.sliceDoc(c.to,_.to):"";$=b.replaceSelection(o.state.toText(_e+c.insert.sliceString(0,void 0,o.state.lineBreak)+et))}else{let _e=b.changes(c),et=d&&!b.selection.main.eq(d.main)&&d.main.to<=_e.newLength?d.main:void 0;if(b.selection.ranges.length>1&&o.inputState.composing>=0&&c.to<=_.to&&c.to>=_.to-10){let tt=o.state.sliceDoc(c.from,c.to),nt=compositionSurroundingNode(o)||o.state.doc.lineAt(_.head),st=_.to-c.to,rt=_.to-_.from;$=b.changeByRange(it=>{if(it.from==_.from&&it.to==_.to)return{changes:_e,range:et||it.map(_e)};let at=it.to-st,ot=at-tt.length;if(it.to-it.from!=rt||o.state.sliceDoc(ot,at)!=tt||nt&&it.to>=nt.from&&it.from<=nt.to)return{range:it};let ht=b.changes({from:ot,to:at,insert:c.insert}),ct=it.to-_.to;return{changes:ht,range:et?EditorSelection.range(Math.max(0,et.anchor+ct),Math.max(0,et.head+ct)):it.map(ht)}})}else $={changes:_e,selection:et&&b.selection.replaceRange(et)}}let j="input.type";return o.composing&&(j+=".compose",o.inputState.compositionFirstChange&&(j+=".start",o.inputState.compositionFirstChange=!1)),o.dispatch($,{scrollIntoView:!0,userEvent:j}),!0}else if(d&&!d.main.eq(_)){let b=!1,k="select";return o.inputState.lastSelectionTime>Date.now()-50&&(o.inputState.lastSelectionOrigin=="select"&&(b=!0),k=o.inputState.lastSelectionOrigin),o.dispatch({selection:d,scrollIntoView:b,userEvent:k}),!0}else return!1}function findDiff(o,e,s,a){let c=Math.min(o.length,e.length),d=0;for(;d0&&b>0&&o.charCodeAt(_-1)==e.charCodeAt(b-1);)_--,b--;if(a=="end"){let k=Math.max(0,d-Math.min(_,b));s-=_+k-d}return _=_?d-s:0,b=d+(b-_),_=d):b=b?d-s:0,_=d+(_-b),b=d),{from:d,toA:_,toB:b}}function selectionPoints(o){let e=[];if(o.root.activeElement!=o.contentDOM)return e;let{anchorNode:s,anchorOffset:a,focusNode:c,focusOffset:d}=o.observer.selectionRange;return s&&(e.push(new DOMPoint(s,a)),(c!=s||d!=a)&&e.push(new DOMPoint(c,d))),e}function selectionFromPoints(o,e){if(o.length==0)return null;let s=o[0].pos,a=o.length==2?o[1].pos:s;return s>-1&&a>-1?EditorSelection.single(s+e,a+e):null}class EditorView{constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: absolute; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(s=>this.update([s])),this.dispatch=this.dispatch.bind(this),this._root=e.root||getRoot(e.parent)||document,this.viewState=new ViewState(e.state||EditorState.create(e)),this.plugins=this.state.facet(viewPlugin).map(s=>new PluginInstance(s));for(let s of this.plugins)s.update(this);this.observer=new DOMObserver(this,(s,a,c)=>applyDOMChange(this,s,a,c),s=>{this.inputState.runScrollHandlers(this,s),this.observer.intersecting&&this.measure()}),this.inputState=new InputState(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new DocView(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}dispatch(...e){this._dispatch(e.length==1&&e[0]instanceof Transaction?e[0]:this.state.update(...e))}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let s=!1,a=!1,c,d=this.state;for(let b of e){if(b.startState!=d)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");d=b.state}if(this.destroyed){this.viewState.state=d;return}if(this.observer.clear(),d.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(d);c=ViewUpdate.create(this,d,e);let _=this.viewState.scrollTarget;try{this.updateState=2;for(let b of e){if(_&&(_=_.map(b.changes)),b.scrollIntoView){let{main:k}=b.state.selection;_=new ScrollTarget(k.empty?k:EditorSelection.cursor(k.head,k.head>k.anchor?-1:1))}for(let k of b.effects)k.is(scrollIntoView$1)&&(_=k.value)}this.viewState.update(c,_),this.bidiCache=CachedOrder.update(this.bidiCache,c.changes),c.empty||(this.updatePlugins(c),this.inputState.update(c)),s=this.docView.update(c),this.state.facet(styleModule)!=this.styleModules&&this.mountStyles(),a=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(s,e.some(b=>b.isUserEvent("select.pointer")))}finally{this.updateState=0}if(c.startState.facet(theme)!=c.state.facet(theme)&&(this.viewState.mustMeasureContent=!0),(s||a||_||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!c.empty)for(let b of this.state.facet(updateListener))b(c)}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let s=this.hasFocus;try{for(let a of this.plugins)a.destroy(this);this.viewState=new ViewState(e),this.plugins=e.facet(viewPlugin).map(a=>new PluginInstance(a)),this.pluginMap.clear();for(let a of this.plugins)a.update(this);this.docView=new DocView(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}s&&this.focus(),this.requestMeasure()}updatePlugins(e){let s=e.startState.facet(viewPlugin),a=e.state.facet(viewPlugin);if(s!=a){let c=[];for(let d of a){let _=s.indexOf(d);if(_<0)c.push(new PluginInstance(d));else{let b=this.plugins[_];b.mustUpdate=e,c.push(b)}}for(let d of this.plugins)d.mustUpdate!=e&&d.destroy(this);this.plugins=c,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let c of this.plugins)c.mustUpdate=e;for(let c=0;c-1&&cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.forceFlush();let s=null,{scrollHeight:a,scrollTop:c,clientHeight:d}=this.scrollDOM,_=c>a-d-4?a:c;try{for(let b=0;;b++){this.updateState=1;let k=this.viewport,$=this.viewState.lineBlockAtHeight(_),j=this.viewState.measure(this);if(!j&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(b>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let _e=[];j&4||([this.measureRequests,_e]=[_e,this.measureRequests]);let et=_e.map(rt=>{try{return rt.read(this)}catch(it){return logException(this.state,it),BadMeasure}}),tt=ViewUpdate.create(this,this.state,[]),nt=!1,st=!1;tt.flags|=j,s?s.flags|=j:s=tt,this.updateState=2,tt.empty||(this.updatePlugins(tt),this.inputState.update(tt),this.updateAttrs(),nt=this.docView.update(tt));for(let rt=0;rt<_e.length;rt++)if(et[rt]!=BadMeasure)try{let it=_e[rt];it.write&&it.write(et[rt],this)}catch(it){logException(this.state,it)}if(this.viewState.scrollTarget)this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,st=!0;else{let rt=this.viewState.lineBlockAt($.from).top-$.top;(rt>1||rt<-1)&&(this.scrollDOM.scrollTop+=rt,st=!0)}if(nt&&this.docView.updateSelection(!0),this.viewport.from==k.from&&this.viewport.to==k.to&&!st&&this.measureRequests.length==0)break}}finally{this.updateState=0,this.measureScheduled=-1}if(s&&!s.empty)for(let b of this.state.facet(updateListener))b(s)}get themeClasses(){return baseThemeID+" "+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+" "+this.state.facet(theme)}updateAttrs(){let e=attrsFromFacet(this,editorAttributes,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),s={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(editable)?"true":"false",class:"cm-content",style:`${browser.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(s["aria-readonly"]="true"),attrsFromFacet(this,contentAttributes,s);let a=this.observer.ignore(()=>{let c=updateAttrs(this.contentDOM,this.contentAttrs,s),d=updateAttrs(this.dom,this.editorAttrs,e);return c||d});return this.editorAttrs=e,this.contentAttrs=s,a}showAnnouncements(e){let s=!0;for(let a of e)for(let c of a.effects)if(c.is(EditorView.announce)){s&&(this.announceDOM.textContent=""),s=!1;let d=this.announceDOM.appendChild(document.createElement("div"));d.textContent=c.value}}mountStyles(){this.styleModules=this.state.facet(styleModule),StyleModule.mount(this.root,this.styleModules.concat(baseTheme$1$3).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=requestAnimationFrame(()=>this.measure())),e){if(e.key!=null){for(let s=0;sa.spec==e)||null),s&&s.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,s,a){return skipAtoms(this,e,moveByChar(this,e,s,a))}moveByGroup(e,s){return skipAtoms(this,e,moveByChar(this,e,s,a=>byGroup(this,e.head,a)))}moveToLineBoundary(e,s,a=!0){return moveToLineBoundary(this,e,s,a)}moveVertically(e,s,a){return skipAtoms(this,e,moveVertically(this,e,s,a))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,s=0){return this.docView.posFromDOM(e,s)}posAtCoords(e,s=!0){return this.readMeasured(),posAtCoords(this,e,s)}coordsAtPos(e,s=1){this.readMeasured();let a=this.docView.coordsAt(e,s);if(!a||a.left==a.right)return a;let c=this.state.doc.lineAt(e),d=this.bidiSpans(c),_=d[BidiSpan.find(d,e-c.from,-1,s)];return flattenRect(a,_.dir==Direction.LTR==s>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(perLineTextDirection)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>MaxBidiLine)return trivialOrder(e.length);let s=this.textDirectionAt(e.from);for(let c of this.bidiCache)if(c.from==e.from&&c.dir==s)return c.order;let a=computeOrder(e.text,s);return this.bidiCache.push(new CachedOrder(e.from,e.to,s,a)),a}get hasFocus(){var e;return(document.hasFocus()||browser.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,s={}){return scrollIntoView$1.of(new ScrollTarget(typeof e=="number"?EditorSelection.cursor(e):e,s.y,s.x,s.yMargin,s.xMargin))}static domEventHandlers(e){return ViewPlugin.define(()=>({}),{eventHandlers:e})}static theme(e,s){let a=StyleModule.newName(),c=[theme.of(a),styleModule.of(buildTheme(`.${a}`,e))];return s&&s.dark&&c.push(darkTheme.of(!0)),c}static baseTheme(e){return Prec.lowest(styleModule.of(buildTheme("."+baseThemeID,e,lightDarkIDs)))}static findFromDOM(e){var s;let a=e.querySelector(".cm-content"),c=a&&ContentView.get(a)||ContentView.get(e);return((s=c==null?void 0:c.rootView)===null||s===void 0?void 0:s.view)||null}}EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler$1;EditorView.perLineTextDirection=perLineTextDirection;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.atomicRanges=atomicRanges;EditorView.scrollMargins=scrollMargins;EditorView.darkTheme=darkTheme;EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"});EditorView.announce=StateEffect.define();const MaxBidiLine=4096,BadMeasure={};class CachedOrder{constructor(e,s,a,c){this.from=e,this.to=s,this.dir=a,this.order=c}static update(e,s){if(s.empty)return e;let a=[],c=e.length?e[e.length-1].dir:Direction.LTR;for(let d=Math.max(0,e.length-10);d=0;c--){let d=a[c],_=typeof d=="function"?d(o):d;_&&combineAttrs(_,s)}return s}const currentPlatform=browser.mac?"mac":browser.windows?"win":browser.linux?"linux":"key";function normalizeKeyName(o,e){const s=o.split(/-(?!$)/);let a=s[s.length-1];a=="Space"&&(a=" ");let c,d,_,b;for(let k=0;ka.concat(c),[]))),s}function runScopeHandlers(o,e,s){return runHandlers(getKeymap(o.state),e,o,s)}let storedPrefix=null;const PrefixTimeout=4e3;function buildKeymap(o,e=currentPlatform){let s=Object.create(null),a=Object.create(null),c=(_,b)=>{let k=a[_];if(k==null)a[_]=b;else if(k!=b)throw new Error("Key binding "+_+" is used both as a regular binding and as a multi-stroke prefix")},d=(_,b,k,$)=>{let j=s[_]||(s[_]=Object.create(null)),_e=b.split(/ (?!$)/).map(nt=>normalizeKeyName(nt,e));for(let nt=1;nt<_e.length;nt++){let st=_e.slice(0,nt).join(" ");c(st,!0),j[st]||(j[st]={preventDefault:!0,commands:[rt=>{let it=storedPrefix={view:rt,prefix:st,scope:_};return setTimeout(()=>{storedPrefix==it&&(storedPrefix=null)},PrefixTimeout),!0}]})}let et=_e.join(" ");c(et,!1);let tt=j[et]||(j[et]={preventDefault:!1,commands:[]});tt.commands.push(k),$&&(tt.preventDefault=!0)};for(let _ of o){let b=_[e]||_.key;if(!!b)for(let k of _.scope?_.scope.split(" "):["editor"])d(k,b,_.run,_.preventDefault),_.shift&&d(k,"Shift-"+b,_.shift,_.preventDefault)}return s}function runHandlers(o,e,s,a){let c=keyName(e),d=codePointAt(c,0),_=codePointSize(d)==c.length&&c!=" ",b="",k=!1;storedPrefix&&storedPrefix.view==s&&storedPrefix.scope==a&&(b=storedPrefix.prefix+" ",(k=modifierCodes.indexOf(e.keyCode)<0)&&(storedPrefix=null));let $=et=>{if(et){for(let tt of et.commands)if(tt(s))return!0;et.preventDefault&&(k=!0)}return!1},j=o[a],_e;if(j){if($(j[b+modifiers(c,e,!_)]))return!0;if(_&&(e.shiftKey||e.altKey||e.metaKey||d>127)&&(_e=base[e.keyCode])&&_e!=c){if($(j[b+modifiers(_e,e,!0)]))return!0;if(e.shiftKey&&shift[e.keyCode]!=_e&&$(j[b+modifiers(shift[e.keyCode],e,!1)]))return!0}else if(_&&e.shiftKey&&$(j[b+modifiers(c,e,!0)]))return!0}return k}const CanHidePrimary=!browser.ios,selectionConfig=Facet.define({combine(o){return combineConfig(o,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,s)=>Math.min(e,s),drawRangeCursor:(e,s)=>e||s})}});function drawSelection(o={}){return[selectionConfig.of(o),drawSelectionPlugin,hideNativeSelection]}class Piece{constructor(e,s,a,c,d){this.left=e,this.top=s,this.width=a,this.height=c,this.className=d}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width>=0&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}}const drawSelectionPlugin=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.rangePieces=[],this.cursors=[],this.measureReq={read:this.readPos.bind(this),write:this.drawSel.bind(this)},this.selectionLayer=o.scrollDOM.appendChild(document.createElement("div")),this.selectionLayer.className="cm-selectionLayer",this.selectionLayer.setAttribute("aria-hidden","true"),this.cursorLayer=o.scrollDOM.appendChild(document.createElement("div")),this.cursorLayer.className="cm-cursorLayer",this.cursorLayer.setAttribute("aria-hidden","true"),o.requestMeasure(this.measureReq),this.setBlinkRate()}setBlinkRate(){this.cursorLayer.style.animationDuration=this.view.state.facet(selectionConfig).cursorBlinkRate+"ms"}update(o){let e=o.startState.facet(selectionConfig)!=o.state.facet(selectionConfig);(e||o.selectionSet||o.geometryChanged||o.viewportChanged)&&this.view.requestMeasure(this.measureReq),o.transactions.some(s=>s.scrollIntoView)&&(this.cursorLayer.style.animationName=this.cursorLayer.style.animationName=="cm-blink"?"cm-blink2":"cm-blink"),e&&this.setBlinkRate()}readPos(){let{state:o}=this.view,e=o.facet(selectionConfig),s=o.selection.ranges.map(c=>c.empty?[]:measureRange(this.view,c)).reduce((c,d)=>c.concat(d)),a=[];for(let c of o.selection.ranges){let d=c==o.selection.main;if(c.empty?!d||CanHidePrimary:e.drawRangeCursor){let _=measureCursor(this.view,c,d);_&&a.push(_)}}return{rangePieces:s,cursors:a}}drawSel({rangePieces:o,cursors:e}){if(o.length!=this.rangePieces.length||o.some((s,a)=>!s.eq(this.rangePieces[a]))){this.selectionLayer.textContent="";for(let s of o)this.selectionLayer.appendChild(s.draw());this.rangePieces=o}if(e.length!=this.cursors.length||e.some((s,a)=>!s.eq(this.cursors[a]))){let s=this.cursorLayer.children;if(s.length!==e.length){this.cursorLayer.textContent="";for(const a of e)this.cursorLayer.appendChild(a.draw())}else e.forEach((a,c)=>a.adjust(s[c]));this.cursors=e}}destroy(){this.selectionLayer.remove(),this.cursorLayer.remove()}}),themeSpec={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};CanHidePrimary&&(themeSpec[".cm-line"].caretColor="transparent !important");const hideNativeSelection=Prec.highest(EditorView.theme(themeSpec));function getBase(o){let e=o.scrollDOM.getBoundingClientRect();return{left:(o.textDirection==Direction.LTR?e.left:e.right-o.scrollDOM.clientWidth)-o.scrollDOM.scrollLeft,top:e.top-o.scrollDOM.scrollTop}}function wrappedLine(o,e,s){let a=EditorSelection.cursor(e);return{from:Math.max(s.from,o.moveToLineBoundary(a,!1,!0).from),to:Math.min(s.to,o.moveToLineBoundary(a,!0,!0).from),type:BlockType.Text}}function blockAt(o,e){let s=o.lineBlockAt(e);if(Array.isArray(s.type)){for(let a of s.type)if(a.to>e||a.to==e&&(a.to==s.to||a.type==BlockType.Text))return a}return s}function measureRange(o,e){if(e.to<=o.viewport.from||e.from>=o.viewport.to)return[];let s=Math.max(e.from,o.viewport.from),a=Math.min(e.to,o.viewport.to),c=o.textDirection==Direction.LTR,d=o.contentDOM,_=d.getBoundingClientRect(),b=getBase(o),k=window.getComputedStyle(d.firstChild),$=_.left+parseInt(k.paddingLeft)+Math.min(0,parseInt(k.textIndent)),j=_.right-parseInt(k.paddingRight),_e=blockAt(o,s),et=blockAt(o,a),tt=_e.type==BlockType.Text?_e:null,nt=et.type==BlockType.Text?et:null;if(o.lineWrapping&&(tt&&(tt=wrappedLine(o,s,tt)),nt&&(nt=wrappedLine(o,a,nt))),tt&&nt&&tt.from==nt.from)return rt(it(e.from,e.to,tt));{let ot=tt?it(e.from,null,tt):at(_e,!1),ht=nt?it(null,e.to,nt):at(et,!0),ct=[];return(tt||_e).to<(nt||et).from-1?ct.push(st($,ot.bottom,j,ht.top)):ot.bottomgt&&ft.from=mt)break;Ct>Et&&dt(Math.max(Ot,Et),ot==null&&Ot<=gt,Math.min(Ct,mt),ht==null&&Ct>=yt,At.dir)}if(Et=St.to+1,Et>=mt)break}return pt.length==0&&dt(gt,ot==null,yt,ht==null,o.textDirection),{top:ut,bottom:lt,horizontal:pt}}function at(ot,ht){let ct=_.top+(ht?ot.top:ot.bottom);return{top:ct,bottom:ct,horizontal:[]}}}function measureCursor(o,e,s){let a=o.coordsAtPos(e.head,e.assoc||1);if(!a)return null;let c=getBase(o);return new Piece(a.left-c.left,a.top-c.top,-1,a.bottom-a.top,s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary")}const setDropCursorPos=StateEffect.define({map(o,e){return o==null?null:e.mapPos(o)}}),dropCursorPos=StateField.define({create(){return null},update(o,e){return o!=null&&(o=e.changes.mapPos(o)),e.effects.reduce((s,a)=>a.is(setDropCursorPos)?a.value:s,o)}}),drawDropCursor=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(o){var e;let s=o.state.field(dropCursorPos);s==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(o.startState.field(dropCursorPos)!=s||o.docChanged||o.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let o=this.view.state.field(dropCursorPos),e=o!=null&&this.view.coordsAtPos(o);if(!e)return null;let s=this.view.scrollDOM.getBoundingClientRect();return{left:e.left-s.left+this.view.scrollDOM.scrollLeft,top:e.top-s.top+this.view.scrollDOM.scrollTop,height:e.bottom-e.top}}drawCursor(o){this.cursor&&(o?(this.cursor.style.left=o.left+"px",this.cursor.style.top=o.top+"px",this.cursor.style.height=o.height+"px"):this.cursor.style.left="-100000px")}destroy(){this.cursor&&this.cursor.remove()}setDropPos(o){this.view.state.field(dropCursorPos)!=o&&this.view.dispatch({effects:setDropCursorPos.of(o)})}},{eventHandlers:{dragover(o){this.setDropPos(this.view.posAtCoords({x:o.clientX,y:o.clientY}))},dragleave(o){(o.target==this.view.contentDOM||!this.view.contentDOM.contains(o.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function dropCursor(){return[dropCursorPos,drawDropCursor]}function iterMatches(o,e,s,a,c){e.lastIndex=0;for(let d=o.iterRange(s,a),_=s,b;!d.next().done;_+=d.value.length)if(!d.lineBreak)for(;b=e.exec(d.value);)c(_+b.index,b)}function matchRanges(o,e){let s=o.visibleRanges;if(s.length==1&&s[0].from==o.viewport.from&&s[0].to==o.viewport.to)return s;let a=[];for(let{from:c,to:d}of s)c=Math.max(o.state.doc.lineAt(c).from,c-e),d=Math.min(o.state.doc.lineAt(d).to,d+e),a.length&&a[a.length-1].to>=c?a[a.length-1].to=d:a.push({from:c,to:d});return a}class MatchDecorator{constructor(e){const{regexp:s,decoration:a,decorate:c,boundary:d,maxLength:_=1e3}=e;if(!s.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=s,c)this.addMatch=(b,k,$,j)=>c(j,$,$+b[0].length,b,k);else if(a){let b=typeof a=="function"?a:()=>a;this.addMatch=(k,$,j,_e)=>_e(j,j+k[0].length,b(k,$,j))}else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=d,this.maxLength=_}createDeco(e){let s=new RangeSetBuilder,a=s.add.bind(s);for(let{from:c,to:d}of matchRanges(e,this.maxLength))iterMatches(e.state.doc,this.regexp,c,d,(_,b)=>this.addMatch(b,e,_,a));return s.finish()}updateDeco(e,s){let a=1e9,c=-1;return e.docChanged&&e.changes.iterChanges((d,_,b,k)=>{k>e.view.viewport.from&&b1e3?this.createDeco(e.view):c>-1?this.updateRange(e.view,s.map(e.changes),a,c):s}updateRange(e,s,a,c){for(let d of e.visibleRanges){let _=Math.max(d.from,a),b=Math.min(d.to,c);if(b>_){let k=e.state.doc.lineAt(_),$=k.tok.from;_--)if(this.boundary.test(k.text[_-1-k.from])){j=_;break}for(;b<$.to;b++)if(this.boundary.test($.text[b-$.from])){_e=b;break}}let et=[],tt,nt=(st,rt,it)=>et.push(it.range(st,rt));if(k==$)for(this.regexp.lastIndex=j-k.from;(tt=this.regexp.exec(k.text))&&tt.index<_e-k.from;)this.addMatch(tt,e,tt.index+k.from,nt);else iterMatches(e.state.doc,this.regexp,j,_e,(st,rt)=>this.addMatch(rt,e,st,nt));s=s.update({filterFrom:j,filterTo:_e,filter:(st,rt)=>st_e,add:et})}}return s}}const UnicodeRegexpSupport=/x/.unicode!=null?"gu":"g",Specials=new RegExp(`[\0-\b +-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,UnicodeRegexpSupport),Names={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let _supportsTabSize=null;function supportsTabSize(){var o;if(_supportsTabSize==null&&typeof document!="undefined"&&document.body){let e=document.body.style;_supportsTabSize=((o=e.tabSize)!==null&&o!==void 0?o:e.MozTabSize)!=null}return _supportsTabSize||!1}const specialCharConfig=Facet.define({combine(o){let e=combineConfig(o,{render:null,specialChars:Specials,addSpecialChars:null});return(e.replaceTabs=!supportsTabSize())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,UnicodeRegexpSupport)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,UnicodeRegexpSupport)),e}});function highlightSpecialChars(o={}){return[specialCharConfig.of(o),specialCharPlugin()]}let _plugin=null;function specialCharPlugin(){return _plugin||(_plugin=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.decorations=Decoration.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(o.state.facet(specialCharConfig)),this.decorations=this.decorator.createDeco(o)}makeDecorator(o){return new MatchDecorator({regexp:o.specialChars,decoration:(e,s,a)=>{let{doc:c}=s.state,d=codePointAt(e[0],0);if(d==9){let _=c.lineAt(a),b=s.state.tabSize,k=countColumn(_.text,b,a-_.from);return Decoration.replace({widget:new TabWidget((b-k%b)*this.view.defaultCharacterWidth)})}return this.decorationCache[d]||(this.decorationCache[d]=Decoration.replace({widget:new SpecialCharWidget(o,d)}))},boundary:o.replaceTabs?void 0:/[^]/})}update(o){let e=o.state.facet(specialCharConfig);o.startState.facet(specialCharConfig)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(o.view)):this.decorations=this.decorator.updateDeco(o,this.decorations)}},{decorations:o=>o.decorations}))}const DefaultPlaceholder="\u2022";function placeholder$1(o){return o>=32?DefaultPlaceholder:o==10?"\u2424":String.fromCharCode(9216+o)}class SpecialCharWidget extends WidgetType{constructor(e,s){super(),this.options=e,this.code=s}eq(e){return e.code==this.code}toDOM(e){let s=placeholder$1(this.code),a=e.state.phrase("Control character")+" "+(Names[this.code]||"0x"+this.code.toString(16)),c=this.options.render&&this.options.render(this.code,a,s);if(c)return c;let d=document.createElement("span");return d.textContent=s,d.title=a,d.setAttribute("aria-label",a),d.className="cm-specialChar",d}ignoreEvent(){return!1}}class TabWidget extends WidgetType{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function highlightActiveLine(){return activeLineHighlighter}const lineDeco=Decoration.line({class:"cm-activeLine"}),activeLineHighlighter=ViewPlugin.fromClass(class{constructor(o){this.decorations=this.getDeco(o)}update(o){(o.docChanged||o.selectionSet)&&(this.decorations=this.getDeco(o.view))}getDeco(o){let e=-1,s=[];for(let a of o.state.selection.ranges){if(!a.empty)return Decoration.none;let c=o.lineBlockAt(a.head);c.from>e&&(s.push(lineDeco.range(c.from)),e=c.from)}return Decoration.set(s)}},{decorations:o=>o.decorations});class Placeholder extends WidgetType{constructor(e){super(),this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):this.content),typeof this.content=="string"?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}ignoreEvent(){return!1}}function placeholder(o){return ViewPlugin.fromClass(class{constructor(e){this.view=e,this.placeholder=Decoration.set([Decoration.widget({widget:new Placeholder(o),side:1}).range(0)])}get decorations(){return this.view.state.doc.length?Decoration.none:this.placeholder}},{decorations:e=>e.decorations})}const MaxOff=2e3;function rectangleFor(o,e,s){let a=Math.min(e.line,s.line),c=Math.max(e.line,s.line),d=[];if(e.off>MaxOff||s.off>MaxOff||e.col<0||s.col<0){let _=Math.min(e.off,s.off),b=Math.max(e.off,s.off);for(let k=a;k<=c;k++){let $=o.doc.line(k);$.length<=b&&d.push(EditorSelection.range($.from+_,$.to+b))}}else{let _=Math.min(e.col,s.col),b=Math.max(e.col,s.col);for(let k=a;k<=c;k++){let $=o.doc.line(k),j=findColumn($.text,_,o.tabSize,!0);if(j>-1){let _e=findColumn($.text,b,o.tabSize);d.push(EditorSelection.range($.from+j,$.from+_e))}}}return d}function absoluteColumn(o,e){let s=o.coordsAtPos(o.viewport.from);return s?Math.round(Math.abs((s.left-e)/o.defaultCharacterWidth)):-1}function getPos(o,e){let s=o.posAtCoords({x:e.clientX,y:e.clientY},!1),a=o.state.doc.lineAt(s),c=s-a.from,d=c>MaxOff?-1:c==a.length?absoluteColumn(o,e.clientX):countColumn(a.text,o.state.tabSize,s-a.from);return{line:a.number,col:d,off:c}}function rectangleSelectionStyle(o,e){let s=getPos(o,e),a=o.state.selection;return s?{update(c){if(c.docChanged){let d=c.changes.mapPos(c.startState.doc.line(s.line).from),_=c.state.doc.lineAt(d);s={line:_.number,col:s.col,off:Math.min(s.off,_.length)},a=a.map(c.changes)}},get(c,d,_){let b=getPos(o,c);if(!b)return a;let k=rectangleFor(o.state,s,b);return k.length?_?EditorSelection.create(k.concat(a.ranges)):EditorSelection.create(k):a}}:null}function rectangularSelection(o){let e=(o==null?void 0:o.eventFilter)||(s=>s.altKey&&s.button==0);return EditorView.mouseSelectionStyle.of((s,a)=>e(a)?rectangleSelectionStyle(s,a):null)}const keys={Alt:[18,o=>o.altKey],Control:[17,o=>o.ctrlKey],Shift:[16,o=>o.shiftKey],Meta:[91,o=>o.metaKey]},showCrosshair={style:"cursor: crosshair"};function crosshairCursor(o={}){let[e,s]=keys[o.key||"Alt"],a=ViewPlugin.fromClass(class{constructor(c){this.view=c,this.isDown=!1}set(c){this.isDown!=c&&(this.isDown=c,this.view.update([]))}},{eventHandlers:{keydown(c){this.set(c.keyCode==e||s(c))},keyup(c){(c.keyCode==e||!s(c))&&this.set(!1)}}});return[a,EditorView.contentAttributes.of(c=>{var d;return!((d=c.plugin(a))===null||d===void 0)&&d.isDown?showCrosshair:null})]}const Outside="-10000px";class TooltipViewManager{constructor(e,s,a){this.facet=s,this.createTooltipView=a,this.input=e.state.facet(s),this.tooltips=this.input.filter(c=>c),this.tooltipViews=this.tooltips.map(a)}update(e){let s=e.state.facet(this.facet),a=s.filter(d=>d);if(s===this.input){for(let d of this.tooltipViews)d.update&&d.update(e);return!1}let c=[];for(let d=0;d{var e,s,a;return{position:browser.ios?"absolute":((e=o.find(c=>c.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((s=o.find(c=>c.parent))===null||s===void 0?void 0:s.parent)||null,tooltipSpace:((a=o.find(c=>c.tooltipSpace))===null||a===void 0?void 0:a.tooltipSpace)||windowSpace}}}),tooltipPlugin=ViewPlugin.fromClass(class{constructor(o){var e;this.view=o,this.inView=!0,this.lastTransaction=0,this.measureTimeout=-1;let s=o.state.facet(tooltipConfig);this.position=s.position,this.parent=s.parent,this.classes=o.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new TooltipViewManager(o,showTooltip,a=>this.createTooltip(a)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(a=>{Date.now()>this.lastTransaction-50&&a.length>0&&a[a.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),(e=o.dom.ownerDocument.defaultView)===null||e===void 0||e.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let o of this.manager.tooltipViews)this.intersectionObserver.observe(o.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(o){o.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(o);e&&this.observeIntersection();let s=e||o.geometryChanged,a=o.state.facet(tooltipConfig);if(a.position!=this.position){this.position=a.position;for(let c of this.manager.tooltipViews)c.dom.style.position=this.position;s=!0}if(a.parent!=this.parent){this.parent&&this.container.remove(),this.parent=a.parent,this.createContainer();for(let c of this.manager.tooltipViews)this.container.appendChild(c.dom);s=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);s&&this.maybeMeasure()}createTooltip(o){let e=o.create(this.view);if(e.dom.classList.add("cm-tooltip"),o.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",e.dom.appendChild(s)}return e.dom.style.position=this.position,e.dom.style.top=Outside,this.container.appendChild(e.dom),e.mount&&e.mount(this.view),e}destroy(){var o,e;(o=this.view.dom.ownerDocument.defaultView)===null||o===void 0||o.removeEventListener("resize",this.measureSoon);for(let{dom:s}of this.manager.tooltipViews)s.remove();(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let o=this.view.dom.getBoundingClientRect();return{editor:o,parent:this.parent?this.container.getBoundingClientRect():o,pos:this.manager.tooltips.map((e,s)=>{let a=this.manager.tooltipViews[s];return a.getCoords?a.getCoords(e.pos):this.view.coordsAtPos(e.pos)}),size:this.manager.tooltipViews.map(({dom:e})=>e.getBoundingClientRect()),space:this.view.state.facet(tooltipConfig).tooltipSpace(this.view)}}writeMeasure(o){let{editor:e,space:s}=o,a=[];for(let c=0;c=Math.min(e.bottom,s.bottom)||k.rightMath.min(e.right,s.right)+.1){b.style.top=Outside;continue}let j=d.arrow?_.dom.querySelector(".cm-tooltip-arrow"):null,_e=j?7:0,et=$.right-$.left,tt=$.bottom-$.top,nt=_.offset||noOffset,st=this.view.textDirection==Direction.LTR,rt=$.width>s.right-s.left?st?s.left:s.right-$.width:st?Math.min(k.left-(j?14:0)+nt.x,s.right-et):Math.max(s.left,k.left-et+(j?14:0)-nt.x),it=!!d.above;!d.strictSide&&(it?k.top-($.bottom-$.top)-nt.ys.bottom)&&it==s.bottom-k.bottom>k.top-s.top&&(it=!it);let at=it?k.top-tt-_e-nt.y:k.bottom+_e+nt.y,ot=rt+et;if(_.overlap!==!0)for(let ht of a)ht.leftrt&&ht.topat&&(at=it?ht.top-tt-2-_e:ht.bottom+_e+2);this.position=="absolute"?(b.style.top=at-o.parent.top+"px",b.style.left=rt-o.parent.left+"px"):(b.style.top=at+"px",b.style.left=rt+"px"),j&&(j.style.left=`${k.left+(st?nt.x:-nt.x)-(rt+14-7)}px`),_.overlap!==!0&&a.push({left:rt,top:at,right:ot,bottom:at+tt}),b.classList.toggle("cm-tooltip-above",it),b.classList.toggle("cm-tooltip-below",!it),_.positioned&&_.positioned()}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let o of this.manager.tooltipViews)o.dom.style.top=Outside}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),baseTheme$4=EditorView.baseTheme({".cm-tooltip":{zIndex:100},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:`${7}px`,width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},".cm-tooltip-above &":{bottom:`-${7}px`,"&:before":{borderTop:`${7}px solid #bbb`},"&:after":{borderTop:`${7}px solid #f5f5f5`,bottom:"1px"}},".cm-tooltip-below &":{top:`-${7}px`,"&:before":{borderBottom:`${7}px solid #bbb`},"&:after":{borderBottom:`${7}px solid #f5f5f5`,top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),noOffset={x:0,y:0},showTooltip=Facet.define({enables:[tooltipPlugin,baseTheme$4]}),showHoverTooltip=Facet.define();class HoverTooltipHost{constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new TooltipViewManager(e,showHoverTooltip,s=>this.createHostedView(s))}static create(e){return new HoverTooltipHost(e)}createHostedView(e){let s=e.create(this.view);return s.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(s.dom),this.mounted&&s.mount&&s.mount(this.view),s}mount(e){for(let s of this.manager.tooltipViews)s.mount&&s.mount(e);this.mounted=!0}positioned(){for(let e of this.manager.tooltipViews)e.positioned&&e.positioned()}update(e){this.manager.update(e)}}const showHoverTooltipHost=showTooltip.compute([showHoverTooltip],o=>{let e=o.facet(showHoverTooltip).filter(s=>s);return e.length===0?null:{pos:Math.min(...e.map(s=>s.pos)),end:Math.max(...e.filter(s=>s.end!=null).map(s=>s.end)),create:HoverTooltipHost.create,above:e[0].above,arrow:e.some(s=>s.arrow)}});class HoverPlugin{constructor(e,s,a,c,d){this.view=e,this.source=s,this.field=a,this.setHover=c,this.hoverTime=d,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active)return;let e=Date.now()-this.lastMove.time;ea.bottom||e.xa.right+this.view.defaultCharacterWidth)return;let c=this.view.bidiSpans(this.view.state.doc.lineAt(s)).find(b=>b.from<=s&&b.to>=s),d=c&&c.dir==Direction.RTL?-1:1,_=this.source(this.view,s,e.x{this.pending==b&&(this.pending=null,k&&this.view.dispatch({effects:this.setHover.of(k)}))},k=>logException(this.view.state,k,"hover tooltip"))}else _&&this.view.dispatch({effects:this.setHover.of(_)})}mousemove(e){var s;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let a=this.active;if(a&&!isInTooltip(this.lastMove.target)||this.pending){let{pos:c}=a||this.pending,d=(s=a==null?void 0:a.end)!==null&&s!==void 0?s:c;(c==d?this.view.posAtCoords(this.lastMove)!=c:!isOverRange(this.view,c,d,e.clientX,e.clientY,6))&&(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&this.view.dispatch({effects:this.setHover.of(null)})}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}function isInTooltip(o){for(let e=o;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains("cm-tooltip"))return!0;return!1}function isOverRange(o,e,s,a,c,d){let _=document.createRange(),b=o.domAtPos(e),k=o.domAtPos(s);_.setEnd(k.node,k.offset),_.setStart(b.node,b.offset);let $=_.getClientRects();_.detach();for(let j=0;j<$.length;j++){let _e=$[j];if(Math.max(_e.top-c,c-_e.bottom,_e.left-a,a-_e.right)<=d)return!0}return!1}function hoverTooltip(o,e={}){let s=StateEffect.define(),a=StateField.define({create(){return null},update(c,d){if(c&&(e.hideOnChange&&(d.docChanged||d.selection)||e.hideOn&&e.hideOn(d,c)))return null;if(c&&d.docChanged){let _=d.changes.mapPos(c.pos,-1,MapMode.TrackDel);if(_==null)return null;let b=Object.assign(Object.create(null),c);b.pos=_,c.end!=null&&(b.end=d.changes.mapPos(c.end)),c=b}for(let _ of d.effects)_.is(s)&&(c=_.value),_.is(closeHoverTooltipEffect)&&(c=null);return c},provide:c=>showHoverTooltip.from(c)});return[a,ViewPlugin.define(c=>new HoverPlugin(c,o,a,s,e.hoverTime||300)),showHoverTooltipHost]}function getTooltip(o,e){let s=o.plugin(tooltipPlugin);if(!s)return null;let a=s.manager.tooltips.indexOf(e);return a<0?null:s.manager.tooltipViews[a]}const closeHoverTooltipEffect=StateEffect.define(),panelConfig=Facet.define({combine(o){let e,s;for(let a of o)e=e||a.topContainer,s=s||a.bottomContainer;return{topContainer:e,bottomContainer:s}}});function getPanel(o,e){let s=o.plugin(panelPlugin),a=s?s.specs.indexOf(e):-1;return a>-1?s.panels[a]:null}const panelPlugin=ViewPlugin.fromClass(class{constructor(o){this.input=o.state.facet(showPanel),this.specs=this.input.filter(s=>s),this.panels=this.specs.map(s=>s(o));let e=o.state.facet(panelConfig);this.top=new PanelGroup(o,!0,e.topContainer),this.bottom=new PanelGroup(o,!1,e.bottomContainer),this.top.sync(this.panels.filter(s=>s.top)),this.bottom.sync(this.panels.filter(s=>!s.top));for(let s of this.panels)s.dom.classList.add("cm-panel"),s.mount&&s.mount()}update(o){let e=o.state.facet(panelConfig);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new PanelGroup(o.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new PanelGroup(o.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let s=o.state.facet(showPanel);if(s!=this.input){let a=s.filter(k=>k),c=[],d=[],_=[],b=[];for(let k of a){let $=this.specs.indexOf(k),j;$<0?(j=k(o.view),b.push(j)):(j=this.panels[$],j.update&&j.update(o)),c.push(j),(j.top?d:_).push(j)}this.specs=a,this.panels=c,this.top.sync(d),this.bottom.sync(_);for(let k of b)k.dom.classList.add("cm-panel"),k.mount&&k.mount()}else for(let a of this.panels)a.update&&a.update(o)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:o=>EditorView.scrollMargins.of(e=>{let s=e.plugin(o);return s&&{top:s.top.scrollMargin(),bottom:s.bottom.scrollMargin()}})});class PanelGroup{constructor(e,s,a){this.view=e,this.top=s,this.container=a,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let s of this.panels)s.destroy&&e.indexOf(s)<0&&s.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let s=this.container||this.view.dom;s.insertBefore(this.dom,this.top?s.firstChild:null)}let e=this.dom.firstChild;for(let s of this.panels)if(s.dom.parentNode==this.dom){for(;e!=s.dom;)e=rm(e);e=e.nextSibling}else this.dom.insertBefore(s.dom,e);for(;e;)e=rm(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function rm(o){let e=o.nextSibling;return o.remove(),e}const showPanel=Facet.define({enables:panelPlugin});class GutterMarker extends RangeValue{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}GutterMarker.prototype.elementClass="";GutterMarker.prototype.toDOM=void 0;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=!0;const gutterLineClass=Facet.define(),defaults$1={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>RangeSet.empty,lineMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},activeGutters=Facet.define();function gutter(o){return[gutters(),activeGutters.of(Object.assign(Object.assign({},defaults$1),o))]}const unfixGutters=Facet.define({combine:o=>o.some(e=>e)});function gutters(o){let e=[gutterView];return o&&o.fixed===!1&&e.push(unfixGutters.of(!0)),e}const gutterView=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.prevViewport=o.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight+"px",this.gutters=o.state.facet(activeGutters).map(e=>new SingleGutterView(o,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!o.state.facet(unfixGutters),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),o.scrollDOM.insertBefore(this.dom,o.contentDOM)}update(o){if(this.updateGutters(o)){let e=this.prevViewport,s=o.view.viewport,a=Math.min(e.to,s.to)-Math.max(e.from,s.from);this.syncGutters(a<(s.to-s.from)*.8)}o.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(unfixGutters)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=o.view.viewport}syncGutters(o){let e=this.dom.nextSibling;o&&this.dom.remove();let s=RangeSet.iter(this.view.state.facet(gutterLineClass),this.view.viewport.from),a=[],c=this.gutters.map(d=>new UpdateContext(d,this.view.viewport,-this.view.documentPadding.top));for(let d of this.view.viewportLineBlocks){let _;if(Array.isArray(d.type)){for(let b of d.type)if(b.type==BlockType.Text){_=b;break}}else _=d.type==BlockType.Text?d:void 0;if(!!_){a.length&&(a=[]),advanceCursor(s,a,d.from);for(let b of c)b.line(this.view,_,a)}}for(let d of c)d.finish();o&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(o){let e=o.startState.facet(activeGutters),s=o.state.facet(activeGutters),a=o.docChanged||o.heightChanged||o.viewportChanged||!RangeSet.eq(o.startState.facet(gutterLineClass),o.state.facet(gutterLineClass),o.view.viewport.from,o.view.viewport.to);if(e==s)for(let c of this.gutters)c.update(o)&&(a=!0);else{a=!0;let c=[];for(let d of s){let _=e.indexOf(d);_<0?c.push(new SingleGutterView(this.view,d)):(this.gutters[_].update(o),c.push(this.gutters[_]))}for(let d of this.gutters)d.dom.remove(),c.indexOf(d)<0&&d.destroy();for(let d of c)this.dom.appendChild(d.dom);this.gutters=c}return a}destroy(){for(let o of this.gutters)o.destroy();this.dom.remove()}},{provide:o=>EditorView.scrollMargins.of(e=>{let s=e.plugin(o);return!s||s.gutters.length==0||!s.fixed?null:e.textDirection==Direction.LTR?{left:s.dom.offsetWidth}:{right:s.dom.offsetWidth}})});function asArray(o){return Array.isArray(o)?o:[o]}function advanceCursor(o,e,s){for(;o.value&&o.from<=s;)o.from==s&&e.push(o.value),o.next()}class UpdateContext{constructor(e,s,a){this.gutter=e,this.height=a,this.localMarkers=[],this.i=0,this.cursor=RangeSet.iter(e.markers,s.from)}line(e,s,a){this.localMarkers.length&&(this.localMarkers=[]),advanceCursor(this.cursor,this.localMarkers,s.from);let c=a.length?this.localMarkers.concat(a):this.localMarkers,d=this.gutter.config.lineMarker(e,s,c);d&&c.unshift(d);let _=this.gutter;if(c.length==0&&!_.config.renderEmptyElements)return;let b=s.top-this.height;if(this.i==_.elements.length){let k=new GutterElement(e,s.height,b,c);_.elements.push(k),_.dom.appendChild(k.dom)}else _.elements[this.i].update(e,s.height,b,c);this.height=s.bottom,this.i++}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let s=e.elements.pop();e.dom.removeChild(s.dom),s.destroy()}}}class SingleGutterView{constructor(e,s){this.view=e,this.config=s,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let a in s.domEventHandlers)this.dom.addEventListener(a,c=>{let d=e.lineBlockAtHeight(c.clientY-e.documentTop);s.domEventHandlers[a](e,d,c)&&c.preventDefault()});this.markers=asArray(s.markers(e)),s.initialSpacer&&(this.spacer=new GutterElement(e,0,0,[s.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let s=this.markers;if(this.markers=asArray(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let c=this.config.updateSpacer(this.spacer.markers[0],e);c!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[c])}let a=e.view.viewport;return!RangeSet.eq(this.markers,s,a.from,a.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class GutterElement{constructor(e,s,a,c){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,s,a,c)}update(e,s,a,c){this.height!=s&&(this.dom.style.height=(this.height=s)+"px"),this.above!=a&&(this.dom.style.marginTop=(this.above=a)?a+"px":""),sameMarkers(this.markers,c)||this.setMarkers(e,c)}setMarkers(e,s){let a="cm-gutterElement",c=this.dom.firstChild;for(let d=0,_=0;;){let b=_,k=dd(b,k,$)||_(b,k,$):_}return a}})}});class NumberMarker extends GutterMarker{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function formatNumber(o,e){return o.state.facet(lineNumberConfig).formatNumber(e,o.state)}const lineNumberGutter=activeGutters.compute([lineNumberConfig],o=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(lineNumberMarkers)},lineMarker(e,s,a){return a.some(c=>c.toDOM)?null:new NumberMarker(formatNumber(e,e.state.doc.lineAt(s.from).number))},lineMarkerChange:e=>e.startState.facet(lineNumberConfig)!=e.state.facet(lineNumberConfig),initialSpacer(e){return new NumberMarker(formatNumber(e,maxLineNumber(e.state.doc.lines)))},updateSpacer(e,s){let a=formatNumber(s.view,maxLineNumber(s.view.state.doc.lines));return a==e.number?e:new NumberMarker(a)},domEventHandlers:o.facet(lineNumberConfig).domEventHandlers}));function lineNumbers(o={}){return[lineNumberConfig.of(o),gutters(),lineNumberGutter]}function maxLineNumber(o){let e=9;for(;e{let e=[],s=-1;for(let a of o.selection.ranges)if(a.empty){let c=o.doc.lineAt(a.head).from;c>s&&(s=c,e.push(activeLineGutterMarker.range(c)))}return RangeSet.of(e)});function highlightActiveLineGutter(){return activeLineGutterHighlighter}const DefaultBufferLength=1024;let nextPropID=0;class Range{constructor(e,s){this.from=e,this.to=s}}class NodeProp{constructor(e={}){this.id=nextPropID++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=NodeType.match(e)),s=>{let a=e(s);return a===void 0?null:[this,a]}}}NodeProp.closedBy=new NodeProp({deserialize:o=>o.split(" ")});NodeProp.openedBy=new NodeProp({deserialize:o=>o.split(" ")});NodeProp.group=new NodeProp({deserialize:o=>o.split(" ")});NodeProp.contextHash=new NodeProp({perNode:!0});NodeProp.lookAhead=new NodeProp({perNode:!0});NodeProp.mounted=new NodeProp({perNode:!0});const noProps=Object.create(null);class NodeType{constructor(e,s,a,c=0){this.name=e,this.props=s,this.id=a,this.flags=c}static define(e){let s=e.props&&e.props.length?Object.create(null):noProps,a=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),c=new NodeType(e.name||"",s,e.id,a);if(e.props){for(let d of e.props)if(Array.isArray(d)||(d=d(c)),d){if(d[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");s[d[0].id]=d[1]}}return c}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let s=this.prop(NodeProp.group);return s?s.indexOf(e)>-1:!1}return this.id==e}static match(e){let s=Object.create(null);for(let a in e)for(let c of a.split(" "))s[c]=e[a];return a=>{for(let c=a.prop(NodeProp.group),d=-1;d<(c?c.length:0);d++){let _=s[d<0?a.name:c[d]];if(_)return _}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(e){this.types=e;for(let s=0;s=c&&(_.type.isAnonymous||s(_)!==!1)){if(_.firstChild())continue;b=!0}for(;b&&a&&!_.type.isAnonymous&&a(_),!_.nextSibling();){if(!_.parent())return;b=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let s in this.props)e.push([+s,this.props[s]]);return e}balance(e={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(s,a,c)=>new Tree(this.type,s,a,c,this.propValues),e.makeTree||((s,a,c)=>new Tree(NodeType.none,s,a,c)))}static build(e){return buildTree(e)}}Tree.empty=new Tree(NodeType.none,[],[],0);class FlatBufferCursor{constructor(e,s){this.buffer=e,this.index=s}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new FlatBufferCursor(this.buffer,this.index)}}class TreeBuffer{constructor(e,s,a){this.buffer=e,this.length=s,this.set=a}get type(){return NodeType.none}toString(){let e=[];for(let s=0;s0));k=_[k+3]);return b}slice(e,s,a,c){let d=this.buffer,_=new Uint16Array(s-e);for(let b=e,k=0;b=e&&se;case 1:return s<=e&&a>e;case 2:return a>e;case 4:return!0}}function enterUnfinishedNodesBefore(o,e){let s=o.childBefore(e);for(;s;){let a=s.lastChild;if(!a||a.to!=s.to)break;a.type.isError&&a.from==a.to?(o=s,s=a.prevSibling):s=a}return o}function resolveNode(o,e,s,a){for(var c;o.from==o.to||(s<1?o.from>=e:o.from>e)||(s>-1?o.to<=e:o.to0?b.length:-1;e!=$;e+=s){let j=b[e],_e=k[e]+_.from;if(!!checkSide(c,a,_e,_e+j.length)){if(j instanceof TreeBuffer){if(d&IterMode.ExcludeBuffers)continue;let et=j.findChild(0,j.buffer.length,s,a-_e,c);if(et>-1)return new BufferNode(new BufferContext(_,j,e,_e),null,et)}else if(d&IterMode.IncludeAnonymous||!j.type.isAnonymous||hasChild(j)){let et;if(!(d&IterMode.IgnoreMounts)&&j.props&&(et=j.prop(NodeProp.mounted))&&!et.overlay)return new TreeNode(et.tree,_e,e,_);let tt=new TreeNode(j,_e,e,_);return d&IterMode.IncludeAnonymous||!tt.type.isAnonymous?tt:tt.nextChild(s<0?j.children.length-1:0,s,a,c)}}}if(d&IterMode.IncludeAnonymous||!_.type.isAnonymous||(_.index>=0?e=_.index+s:e=s<0?-1:_._parent._tree.children.length,_=_._parent,!_))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,s,a=0){let c;if(!(a&IterMode.IgnoreOverlays)&&(c=this._tree.prop(NodeProp.mounted))&&c.overlay){let d=e-this.from;for(let{from:_,to:b}of c.overlay)if((s>0?_<=d:_=d:b>d))return new TreeNode(c.tree,c.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,s,a)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new TreeCursor(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,s=0){return resolveNode(this,e,s,!1)}resolveInner(e,s=0){return resolveNode(this,e,s,!0)}enterUnfinishedNodesBefore(e){return enterUnfinishedNodesBefore(this,e)}getChild(e,s=null,a=null){let c=getChildren(this,e,s,a);return c.length?c[0]:null}getChildren(e,s=null,a=null){return getChildren(this,e,s,a)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return matchNodeContext(this,e)}}function getChildren(o,e,s,a){let c=o.cursor(),d=[];if(!c.firstChild())return d;if(s!=null){for(;!c.type.is(s);)if(!c.nextSibling())return d}for(;;){if(a!=null&&c.type.is(a))return d;if(c.type.is(e)&&d.push(c.node),!c.nextSibling())return a==null?d:[]}}function matchNodeContext(o,e,s=e.length-1){for(let a=o.parent;s>=0;a=a.parent){if(!a)return!1;if(!a.type.isAnonymous){if(e[s]&&e[s]!=a.name)return!1;s--}}return!0}class BufferContext{constructor(e,s,a,c){this.parent=e,this.buffer=s,this.index=a,this.start=c}}class BufferNode{constructor(e,s,a){this.context=e,this._parent=s,this.index=a,this.type=e.buffer.set.types[e.buffer.buffer[a]]}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}child(e,s,a){let{buffer:c}=this.context,d=c.findChild(this.index+4,c.buffer[this.index+3],e,s-this.context.start,a);return d<0?null:new BufferNode(this.context,this,d)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,s,a=0){if(a&IterMode.ExcludeBuffers)return null;let{buffer:c}=this.context,d=c.findChild(this.index+4,c.buffer[this.index+3],s>0?1:-1,e-this.context.start,s);return d<0?null:new BufferNode(this.context,this,d)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,s=e.buffer[this.index+3];return s<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new BufferNode(this.context,this._parent,s):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,s=this._parent?this._parent.index+4:0;return this.index==s?this.externalSibling(-1):new BufferNode(this.context,this._parent,e.findChild(s,this.index,-1,0,4))}cursor(e=0){return new TreeCursor(this,e)}get tree(){return null}toTree(){let e=[],s=[],{buffer:a}=this.context,c=this.index+4,d=a.buffer[this.index+3];if(d>c){let _=a.buffer[this.index+1],b=a.buffer[this.index+2];e.push(a.slice(c,d,_,b)),s.push(0)}return new Tree(this.type,e,s,this.to-this.from)}resolve(e,s=0){return resolveNode(this,e,s,!1)}resolveInner(e,s=0){return resolveNode(this,e,s,!0)}enterUnfinishedNodesBefore(e){return enterUnfinishedNodesBefore(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,s=null,a=null){let c=getChildren(this,e,s,a);return c.length?c[0]:null}getChildren(e,s=null,a=null){return getChildren(this,e,s,a)}get node(){return this}matchContext(e){return matchNodeContext(this,e)}}class TreeCursor{constructor(e,s=0){if(this.mode=s,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof TreeNode)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let a=e._parent;a;a=a._parent)this.stack.unshift(a.index);this.bufferNode=e,this.yieldBuf(e.index)}}get name(){return this.type.name}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,s){this.index=e;let{start:a,buffer:c}=this.buffer;return this.type=s||c.set.types[c.buffer[e]],this.from=a+c.buffer[e+1],this.to=a+c.buffer[e+2],!0}yield(e){return e?e instanceof TreeNode?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,s,a){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,s,a,this.mode));let{buffer:c}=this.buffer,d=c.findChild(this.index+4,c.buffer[this.index+3],e,s-this.buffer.start,a);return d<0?!1:(this.stack.push(this.index),this.yieldBuf(d))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,s,a=this.mode){return this.buffer?a&IterMode.ExcludeBuffers?!1:this.enterChild(1,e,s):this.yield(this._tree.enter(e,s,a))}parent(){if(!this.buffer)return this.yieldNode(this.mode&IterMode.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&IterMode.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:s}=this.buffer,a=this.stack.length-1;if(e<0){let c=a<0?0:this.stack[a]+4;if(this.index!=c)return this.yieldBuf(s.findChild(c,this.index,-1,0,4))}else{let c=s.buffer[this.index+3];if(c<(a<0?s.buffer.length:s.buffer[this.stack[a]+3]))return this.yieldBuf(c)}return a<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let s,a,{buffer:c}=this;if(c){if(e>0){if(this.index-1)for(let d=s+e,_=e<0?-1:a._tree.children.length;d!=_;d+=e){let b=a._tree.children[d];if(this.mode&IterMode.IncludeAnonymous||b instanceof TreeBuffer||!b.type.isAnonymous||hasChild(b))return!1}return!0}move(e,s){if(s&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,s=0){for(;(this.from==this.to||(s<1?this.from>=e:this.from>e)||(s>-1?this.to<=e:this.to=0;){for(let _=e;_;_=_._parent)if(_.index==c){if(c==this.index)return _;s=_,a=d+1;break e}c=this.stack[--d]}}for(let c=a;c=0;d--){if(d<0)return matchNodeContext(this.node,e,c);let _=a[s.buffer[this.stack[d]]];if(!_.isAnonymous){if(e[c]&&e[c]!=_.name)return!1;c--}}return!0}}function hasChild(o){return o.children.some(e=>e instanceof TreeBuffer||!e.type.isAnonymous||hasChild(e))}function buildTree(o){var e;let{buffer:s,nodeSet:a,maxBufferLength:c=DefaultBufferLength,reused:d=[],minRepeatType:_=a.types.length}=o,b=Array.isArray(s)?new FlatBufferCursor(s,s.length):s,k=a.types,$=0,j=0;function _e(ht,ct,ut,lt,pt){let{id:dt,start:gt,end:yt,size:ft}=b,Et=j;for(;ft<0;)if(b.next(),ft==-1){let Ct=d[dt];ut.push(Ct),lt.push(gt-ht);return}else if(ft==-3){$=dt;return}else if(ft==-4){j=dt;return}else throw new RangeError(`Unrecognized record size: ${ft}`);let mt=k[dt],St,At,Ot=gt-ht;if(yt-gt<=c&&(At=st(b.pos-ct,pt))){let Ct=new Uint16Array(At.size-At.skip),Dt=b.pos-At.size,Tt=Ct.length;for(;b.pos>Dt;)Tt=rt(At.start,Ct,Tt);St=new TreeBuffer(Ct,yt-At.start,a),Ot=At.start-ht}else{let Ct=b.pos-ft;b.next();let Dt=[],Tt=[],vt=dt>=_?dt:-1,bt=0,xt=yt;for(;b.pos>Ct;)vt>=0&&b.id==vt&&b.size>=0?(b.end<=xt-c&&(tt(Dt,Tt,gt,bt,b.end,xt,vt,Et),bt=Dt.length,xt=b.end),b.next()):_e(gt,Ct,Dt,Tt,vt);if(vt>=0&&bt>0&&bt-1&&bt>0){let Rt=et(mt);St=balanceRange(mt,Dt,Tt,0,Dt.length,0,yt-gt,Rt,Rt)}else St=nt(mt,Dt,Tt,yt-gt,Et-yt)}ut.push(St),lt.push(Ot)}function et(ht){return(ct,ut,lt)=>{let pt=0,dt=ct.length-1,gt,yt;if(dt>=0&&(gt=ct[dt])instanceof Tree){if(!dt&>.type==ht&>.length==lt)return gt;(yt=gt.prop(NodeProp.lookAhead))&&(pt=ut[dt]+gt.length+yt)}return nt(ht,ct,ut,lt,pt)}}function tt(ht,ct,ut,lt,pt,dt,gt,yt){let ft=[],Et=[];for(;ht.length>lt;)ft.push(ht.pop()),Et.push(ct.pop()+ut-pt);ht.push(nt(a.types[gt],ft,Et,dt-pt,yt-dt)),ct.push(pt-ut)}function nt(ht,ct,ut,lt,pt=0,dt){if($){let gt=[NodeProp.contextHash,$];dt=dt?[gt].concat(dt):[gt]}if(pt>25){let gt=[NodeProp.lookAhead,pt];dt=dt?[gt].concat(dt):[gt]}return new Tree(ht,ct,ut,lt,dt)}function st(ht,ct){let ut=b.fork(),lt=0,pt=0,dt=0,gt=ut.end-c,yt={size:0,start:0,skip:0};e:for(let ft=ut.pos-ht;ut.pos>ft;){let Et=ut.size;if(ut.id==ct&&Et>=0){yt.size=lt,yt.start=pt,yt.skip=dt,dt+=4,lt+=4,ut.next();continue}let mt=ut.pos-Et;if(Et<0||mt=_?4:0,At=ut.start;for(ut.next();ut.pos>mt;){if(ut.size<0)if(ut.size==-3)St+=4;else break e;else ut.id>=_&&(St+=4);ut.next()}pt=At,lt+=Et,dt+=St}return(ct<0||lt==ht)&&(yt.size=lt,yt.start=pt,yt.skip=dt),yt.size>4?yt:void 0}function rt(ht,ct,ut){let{id:lt,start:pt,end:dt,size:gt}=b;if(b.next(),gt>=0&<<_){let yt=ut;if(gt>4){let ft=b.pos-(gt-4);for(;b.pos>ft;)ut=rt(ht,ct,ut)}ct[--ut]=yt,ct[--ut]=dt-ht,ct[--ut]=pt-ht,ct[--ut]=lt}else gt==-3?$=lt:gt==-4&&(j=lt);return ut}let it=[],at=[];for(;b.pos>0;)_e(o.start||0,o.bufferStart||0,it,at,-1);let ot=(e=o.length)!==null&&e!==void 0?e:it.length?at[0]+it[0].length:0;return new Tree(k[o.topID],it.reverse(),at.reverse(),ot)}const nodeSizeCache=new WeakMap;function nodeSize(o,e){if(!o.isAnonymous||e instanceof TreeBuffer||e.type!=o)return 1;let s=nodeSizeCache.get(e);if(s==null){s=1;for(let a of e.children){if(a.type!=o||!(a instanceof Tree)){s=1;break}s+=nodeSize(o,a)}nodeSizeCache.set(e,s)}return s}function balanceRange(o,e,s,a,c,d,_,b,k){let $=0;for(let nt=a;nt=j)break;ut+=lt}if(ot==ht+1){if(ut>j){let lt=nt[ht];tt(lt.children,lt.positions,0,lt.children.length,st[ht]+at);continue}_e.push(nt[ht])}else{let lt=st[ot-1]+nt[ot-1].length-ct;_e.push(balanceRange(o,nt,st,ht,ot,ct,lt,null,k))}et.push(ct+at-d)}}return tt(e,s,a,c,0),(b||k)(_e,et,_)}class NodeWeakMap{constructor(){this.map=new WeakMap}setBuffer(e,s,a){let c=this.map.get(e);c||this.map.set(e,c=new Map),c.set(s,a)}getBuffer(e,s){let a=this.map.get(e);return a&&a.get(s)}set(e,s){e instanceof BufferNode?this.setBuffer(e.context.buffer,e.index,s):e instanceof TreeNode&&this.map.set(e.tree,s)}get(e){return e instanceof BufferNode?this.getBuffer(e.context.buffer,e.index):e instanceof TreeNode?this.map.get(e.tree):void 0}cursorSet(e,s){e.buffer?this.setBuffer(e.buffer.buffer,e.index,s):this.map.set(e.tree,s)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class TreeFragment{constructor(e,s,a,c,d=!1,_=!1){this.from=e,this.to=s,this.tree=a,this.offset=c,this.open=(d?1:0)|(_?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,s=[],a=!1){let c=[new TreeFragment(0,e.length,e,0,!1,a)];for(let d of s)d.to>e.length&&c.push(d);return c}static applyChanges(e,s,a=128){if(!s.length)return e;let c=[],d=1,_=e.length?e[0]:null;for(let b=0,k=0,$=0;;b++){let j=b=a)for(;_&&_.from<_e;){let et=_;if(k>=et.from||_e<=et.to||$){let tt=Math.max(et.from,k)-$,nt=Math.min(et.to,_e)-$;et=tt>=nt?null:new TreeFragment(tt,nt,et.tree,et.offset+$,b>0,!!j)}if(et&&c.push(et),_.to>_e)break;_=dnew Range(c.from,c.to)):[new Range(0,0)]:[new Range(0,e.length)],this.createParse(e,s||[],a)}parse(e,s,a){let c=this.startParse(e,s,a);for(;;){let d=c.advance();if(d)return d}}}class StringInput{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,s){return this.string.slice(e,s)}}new NodeProp({perNode:!0});let nextTagID=0;class Tag{constructor(e,s,a){this.set=e,this.base=s,this.modified=a,this.id=nextTagID++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let s=new Tag([],null,[]);if(s.set.push(s),e)for(let a of e.set)s.set.push(a);return s}static defineModifier(){let e=new Modifier;return s=>s.modified.indexOf(e)>-1?s:Modifier.get(s.base||s,s.modified.concat(e).sort((a,c)=>a.id-c.id))}}let nextModifierID=0;class Modifier{constructor(){this.instances=[],this.id=nextModifierID++}static get(e,s){if(!s.length)return e;let a=s[0].instances.find(b=>b.base==e&&sameArray(s,b.modified));if(a)return a;let c=[],d=new Tag(c,e,s);for(let b of s)b.instances.push(d);let _=permute(s);for(let b of e.set)for(let k of _)c.push(Modifier.get(b,k));return d}}function sameArray(o,e){return o.length==e.length&&o.every((s,a)=>s==e[a])}function permute(o){let e=[o];for(let s=0;s0&&_e+3==c.length){_=1;break}let et=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(b);if(!et)throw new RangeError("Invalid path: "+c);if(d.push(et[0]=="*"?"":et[0][0]=='"'?JSON.parse(et[0]):et[0]),_e+=et[0].length,_e==c.length)break;let tt=c[_e++];if(_e==c.length&&tt=="!"){_=0;break}if(tt!="/")throw new RangeError("Invalid path: "+c);b=c.slice(_e)}let k=d.length-1,$=d[k];if(!$)throw new RangeError("Invalid path: "+c);let j=new Rule(a,_,k>0?d.slice(0,k):null);e[$]=j.sort(e[$])}}return ruleNodeProp.add(e)}const ruleNodeProp=new NodeProp;class Rule{constructor(e,s,a,c){this.tags=e,this.mode=s,this.context=a,this.next=c}sort(e){return!e||e.depth{let _=c;for(let b of d)for(let k of b.set){let $=s[k.id];if($){_=_?_+" "+$:$;break}}return _},scope:a}}function highlightTags(o,e){let s=null;for(let a of o){let c=a.style(e);c&&(s=s?s+" "+c:c)}return s}function highlightTree(o,e,s,a=0,c=o.length){let d=new HighlightBuilder(a,Array.isArray(e)?e:[e],s);d.highlightRange(o.cursor(),a,c,"",d.highlighters),d.flush(c)}class HighlightBuilder{constructor(e,s,a){this.at=e,this.highlighters=s,this.span=a,this.class=""}startSpan(e,s){s!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=s)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,s,a,c,d){let{type:_,from:b,to:k}=e;if(b>=a||k<=s)return;_.isTop&&(d=this.highlighters.filter(tt=>!tt.scope||tt.scope(_)));let $=c,j=_.prop(ruleNodeProp),_e=!1;for(;j;){if(!j.context||e.matchContext(j.context)){let tt=highlightTags(d,j.tags);tt&&($&&($+=" "),$+=tt,j.mode==1?c+=(c?" ":"")+tt:j.mode==0&&(_e=!0));break}j=j.next}if(this.startSpan(e.from,$),_e)return;let et=e.tree&&e.tree.prop(NodeProp.mounted);if(et&&et.overlay){let tt=e.node.enter(et.overlay[0].from+b,1),nt=this.highlighters.filter(rt=>!rt.scope||rt.scope(et.tree.type)),st=e.firstChild();for(let rt=0,it=b;;rt++){let at=rt=ot||!e.nextSibling())););if(!at||ot>a)break;it=at.to+b,it>s&&(this.highlightRange(tt.cursor(),Math.max(s,at.from+b),Math.min(a,it),c,nt),this.startSpan(it,$))}st&&e.parent()}else if(e.firstChild()){do if(!(e.to<=s)){if(e.from>=a)break;this.highlightRange(e,s,a,c,d),this.startSpan(Math.min(a,e.to),$)}while(e.nextSibling());e.parent()}}}const t=Tag.define,comment=t(),name=t(),typeName=t(name),propertyName=t(name),literal=t(),string=t(literal),number=t(literal),content=t(),heading=t(content),keyword=t(),operator=t(),punctuation=t(),bracket=t(punctuation),meta=t(),tags={comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name,variableName:t(name),typeName,tagName:t(typeName),propertyName,attributeName:t(propertyName),className:t(name),labelName:t(name),namespace:t(name),macroName:t(name),literal,string,docString:t(string),character:t(string),attributeValue:t(string),number,integer:t(number),float:t(number),bool:t(literal),regexp:t(literal),escape:t(literal),color:t(literal),url:t(literal),keyword,self:t(keyword),null:t(keyword),atom:t(keyword),unit:t(keyword),modifier:t(keyword),operatorKeyword:t(keyword),controlKeyword:t(keyword),definitionKeyword:t(keyword),moduleKeyword:t(keyword),operator,derefOperator:t(operator),arithmeticOperator:t(operator),logicOperator:t(operator),bitwiseOperator:t(operator),compareOperator:t(operator),updateOperator:t(operator),definitionOperator:t(operator),typeOperator:t(operator),controlOperator:t(operator),punctuation,separator:t(punctuation),bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content,heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content),list:t(content),quote:t(content),emphasis:t(content),strong:t(content),link:t(content),monospace:t(content),strikethrough:t(content),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier(),constant:Tag.defineModifier(),function:Tag.defineModifier(),standard:Tag.defineModifier(),local:Tag.defineModifier(),special:Tag.defineModifier()};tagHighlighter([{tag:tags.link,class:"tok-link"},{tag:tags.heading,class:"tok-heading"},{tag:tags.emphasis,class:"tok-emphasis"},{tag:tags.strong,class:"tok-strong"},{tag:tags.keyword,class:"tok-keyword"},{tag:tags.atom,class:"tok-atom"},{tag:tags.bool,class:"tok-bool"},{tag:tags.url,class:"tok-url"},{tag:tags.labelName,class:"tok-labelName"},{tag:tags.inserted,class:"tok-inserted"},{tag:tags.deleted,class:"tok-deleted"},{tag:tags.literal,class:"tok-literal"},{tag:tags.string,class:"tok-string"},{tag:tags.number,class:"tok-number"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],class:"tok-string2"},{tag:tags.variableName,class:"tok-variableName"},{tag:tags.local(tags.variableName),class:"tok-variableName tok-local"},{tag:tags.definition(tags.variableName),class:"tok-variableName tok-definition"},{tag:tags.special(tags.variableName),class:"tok-variableName2"},{tag:tags.definition(tags.propertyName),class:"tok-propertyName tok-definition"},{tag:tags.typeName,class:"tok-typeName"},{tag:tags.namespace,class:"tok-namespace"},{tag:tags.className,class:"tok-className"},{tag:tags.macroName,class:"tok-macroName"},{tag:tags.propertyName,class:"tok-propertyName"},{tag:tags.operator,class:"tok-operator"},{tag:tags.comment,class:"tok-comment"},{tag:tags.meta,class:"tok-meta"},{tag:tags.invalid,class:"tok-invalid"},{tag:tags.punctuation,class:"tok-punctuation"}]);var _a;const languageDataProp=new NodeProp;function defineLanguageFacet(o){return Facet.define({combine:o?e=>e.concat(o):void 0})}class Language{constructor(e,s,a=[]){this.data=e,EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}}),this.parser=s,this.extension=[language.of(this),EditorState.languageData.of((c,d,_)=>c.facet(languageDataFacetAt(c,d,_)))].concat(a)}isActiveAt(e,s,a=-1){return languageDataFacetAt(e,s,a)==this.data}findRegions(e){let s=e.facet(language);if((s==null?void 0:s.data)==this.data)return[{from:0,to:e.doc.length}];if(!s||!s.allowsNesting)return[];let a=[],c=(d,_)=>{if(d.prop(languageDataProp)==this.data){a.push({from:_,to:_+d.length});return}let b=d.prop(NodeProp.mounted);if(b){if(b.tree.prop(languageDataProp)==this.data){if(b.overlay)for(let k of b.overlay)a.push({from:k.from+_,to:k.to+_});else a.push({from:_,to:_+d.length});return}else if(b.overlay){let k=a.length;if(c(b.tree,b.overlay[0].from+_),a.length>k)return}}for(let k=0;ka.isTop?s:void 0)]}))}configure(e){return new LRLanguage(this.data,this.parser.configure(e))}get allowsNesting(){return this.parser.hasWrappers()}}function syntaxTree(o){let e=o.field(Language.state,!1);return e?e.tree:Tree.empty}class DocInput{constructor(e,s=e.length){this.doc=e,this.length=s,this.cursorPos=0,this.string="",this.cursor=e.iter()}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,s){let a=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,s):this.string.slice(e-a,s-a)}}let currentContext=null;class ParseContext{constructor(e,s,a=[],c,d,_,b,k){this.parser=e,this.state=s,this.fragments=a,this.tree=c,this.treeLen=d,this.viewport=_,this.skipped=b,this.scheduleOn=k,this.parse=null,this.tempSkipped=[]}static create(e,s,a){return new ParseContext(e,s,[],Tree.empty,0,a,[],null)}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments)}work(e,s){return s!=null&&s>=this.state.doc.length&&(s=void 0),this.tree!=Tree.empty&&this.isDone(s!=null?s:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var a;if(typeof e=="number"){let c=Date.now()+e;e=()=>Date.now()>c}for(this.parse||(this.parse=this.startParse()),s!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>s)&&s=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(s=this.parse.advance()););}),this.treeLen=e,this.tree=s,this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let s=currentContext;currentContext=this;try{return e()}finally{currentContext=s}}withoutTempSkipped(e){for(let s;s=this.tempSkipped.pop();)e=cutFragments(e,s.from,s.to);return e}changes(e,s){let{fragments:a,tree:c,treeLen:d,viewport:_,skipped:b}=this;if(this.takeTree(),!e.empty){let k=[];if(e.iterChangedRanges(($,j,_e,et)=>k.push({fromA:$,toA:j,fromB:_e,toB:et})),a=TreeFragment.applyChanges(a,k),c=Tree.empty,d=0,_={from:e.mapPos(_.from,-1),to:e.mapPos(_.to,1)},this.skipped.length){b=[];for(let $ of this.skipped){let j=e.mapPos($.from,1),_e=e.mapPos($.to,-1);j<_e&&b.push({from:j,to:_e})}}}return new ParseContext(this.parser,s,a,c,d,_,b,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let s=this.skipped.length;for(let a=0;ae.from&&(this.fragments=cutFragments(this.fragments,c,d),this.skipped.splice(a--,1))}return this.skipped.length>=s?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,s){this.skipped.push({from:e,to:s})}static getSkippingParser(e){return new class extends Parser{createParse(s,a,c){let d=c[0].from,_=c[c.length-1].to;return{parsedPos:d,advance(){let k=currentContext;if(k){for(let $ of c)k.tempSkipped.push($);e&&(k.scheduleOn=k.scheduleOn?Promise.all([k.scheduleOn,e]):e)}return this.parsedPos=_,new Tree(NodeType.none,[],[],_-d)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let s=this.fragments;return this.treeLen>=e&&s.length&&s[0].from==0&&s[0].to>=e}static get(){return currentContext}}function cutFragments(o,e,s){return TreeFragment.applyChanges(o,[{fromA:e,toA:s,fromB:e,toB:s}])}class LanguageState{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let s=this.context.changes(e.changes,e.state),a=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),s.viewport.to);return s.work(20,a)||s.takeTree(),new LanguageState(s)}static init(e){let s=Math.min(3e3,e.doc.length),a=ParseContext.create(e.facet(language).parser,e,{from:0,to:s});return a.work(20,s)||a.takeTree(),new LanguageState(a)}}Language.state=StateField.define({create:LanguageState.init,update(o,e){for(let s of e.effects)if(s.is(Language.setState))return s.value;return e.startState.facet(language)!=e.state.facet(language)?LanguageState.init(e.state):o.apply(e)}});let requestIdle=o=>{let e=setTimeout(()=>o(),500);return()=>clearTimeout(e)};typeof requestIdleCallback!="undefined"&&(requestIdle=o=>{let e=-1,s=setTimeout(()=>{e=requestIdleCallback(o,{timeout:500-100})},100);return()=>e<0?clearTimeout(s):cancelIdleCallback(e)});const isInputPending=typeof navigator!="undefined"&&((_a=navigator.scheduling)===null||_a===void 0?void 0:_a.isInputPending)?()=>navigator.scheduling.isInputPending():null,parseWorker=ViewPlugin.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let s=this.view.state.field(Language.state).context;(s.updateViewport(e.view.viewport)||this.view.viewport.to>s.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(s)}scheduleWork(){if(this.working)return;let{state:e}=this.view,s=e.field(Language.state);(s.tree!=s.context.tree||!s.context.isDone(e.doc.length))&&(this.working=requestIdle(this.work))}work(e){this.working=null;let s=Date.now();if(this.chunkEndc+1e3,k=d.context.work(()=>isInputPending&&isInputPending()||Date.now()>_,c+(b?0:1e5));this.chunkBudget-=Date.now()-s,(k||this.chunkBudget<=0)&&(d.context.takeTree(),this.view.dispatch({effects:Language.setState.of(new LanguageState(d.context))})),this.chunkBudget>0&&!(k&&!b)&&this.scheduleWork(),this.checkAsyncSchedule(d.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(s=>logException(this.view.state,s)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),language=Facet.define({combine(o){return o.length?o[0]:null},enables:[Language.state,parseWorker]});class LanguageSupport{constructor(e,s=[]){this.language=e,this.support=s,this.extension=[e,s]}}const indentService=Facet.define(),indentUnit=Facet.define({combine:o=>{if(!o.length)return" ";if(!/^(?: +|\t+)$/.test(o[0]))throw new Error("Invalid indent unit: "+JSON.stringify(o[0]));return o[0]}});function getIndentUnit(o){let e=o.facet(indentUnit);return e.charCodeAt(0)==9?o.tabSize*e.length:e.length}function indentString(o,e){let s="",a=o.tabSize;if(o.facet(indentUnit).charCodeAt(0)==9)for(;e>=a;)s+=" ",e-=a;for(let c=0;c=a.from&&c<=a.to?d&&c==e?{text:"",from:e}:(s<0?c-1&&(d+=_-this.countColumn(a,a.search(/\S|$/))),d}countColumn(e,s=e.length){return countColumn(e,this.state.tabSize,s)}lineIndent(e,s=1){let{text:a,from:c}=this.lineAt(e,s),d=this.options.overrideIndentation;if(d){let _=d(c);if(_>-1)return _}return this.countColumn(a,a.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const indentNodeProp=new NodeProp;function syntaxIndentation(o,e,s){return indentFrom(e.resolveInner(s).enterUnfinishedNodesBefore(s),s,o)}function ignoreClosed(o){return o.pos==o.options.simulateBreak&&o.options.simulateDoubleBreak}function indentStrategy(o){let e=o.type.prop(indentNodeProp);if(e)return e;let s=o.firstChild,a;if(s&&(a=s.type.prop(NodeProp.closedBy))){let c=o.lastChild,d=c&&a.indexOf(c.name)>-1;return _=>delimitedStrategy(_,!0,1,void 0,d&&!ignoreClosed(_)?c.from:void 0)}return o.parent==null?topIndent:null}function indentFrom(o,e,s){for(;o;o=o.parent){let a=indentStrategy(o);if(a)return a(TreeIndentContext.create(s,e,o))}return null}function topIndent(){return 0}class TreeIndentContext extends IndentContext{constructor(e,s,a){super(e.state,e.options),this.base=e,this.pos=s,this.node=a}static create(e,s,a){return new TreeIndentContext(e,s,a)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let e=this.state.doc.lineAt(this.node.from);for(;;){let s=this.node.resolve(e.from);for(;s.parent&&s.parent.from==s.from;)s=s.parent;if(isParent(s,this.node))break;e=this.state.doc.lineAt(s.from)}return this.lineIndent(e.from)}continue(){let e=this.node.parent;return e?indentFrom(e,this.pos,this.base):0}}function isParent(o,e){for(let s=e;s;s=s.parent)if(o==s)return!0;return!1}function bracketedAligned(o){let e=o.node,s=e.childAfter(e.from),a=e.lastChild;if(!s)return null;let c=o.options.simulateBreak,d=o.state.doc.lineAt(s.from),_=c==null||c<=d.from?d.to:Math.min(d.to,c);for(let b=s.to;;){let k=e.childAfter(b);if(!k||k==a)return null;if(!k.type.isSkipped)return k.from<_?s:null;b=k.to}}function delimitedIndent({closing:o,align:e=!0,units:s=1}){return a=>delimitedStrategy(a,e,s,o)}function delimitedStrategy(o,e,s,a,c){let d=o.textAfter,_=d.match(/^\s*/)[0].length,b=a&&d.slice(_,_+a.length)==a||c==o.pos+_,k=e?bracketedAligned(o):null;return k?b?o.column(k.from):o.column(k.to):o.baseIndent+(b?0:o.unit*s)}const flatIndent=o=>o.baseIndent;function continuedIndent({except:o,units:e=1}={}){return s=>{let a=o&&o.test(s.textAfter);return s.baseIndent+(a?0:e*s.unit)}}const DontIndentBeyond=200;function indentOnInput(){return EditorState.transactionFilter.of(o=>{if(!o.docChanged||!o.isUserEvent("input.type")&&!o.isUserEvent("input.complete"))return o;let e=o.startState.languageDataAt("indentOnInput",o.startState.selection.main.head);if(!e.length)return o;let s=o.newDoc,{head:a}=o.newSelection.main,c=s.lineAt(a);if(a>c.from+DontIndentBeyond)return o;let d=s.sliceString(c.from,a);if(!e.some($=>$.test(d)))return o;let{state:_}=o,b=-1,k=[];for(let{head:$}of _.selection.ranges){let j=_.doc.lineAt($);if(j.from==b)continue;b=j.from;let _e=getIndentation(_,j.from);if(_e==null)continue;let et=/^\s*/.exec(j.text)[0],tt=indentString(_,_e);et!=tt&&k.push({from:j.from,to:j.from+et.length,insert:tt})}return k.length?[o,{changes:k,sequential:!0}]:o})}const foldService=Facet.define(),foldNodeProp=new NodeProp;function foldInside(o){let e=o.firstChild,s=o.lastChild;return e&&e.tos)continue;if(d&&_.from=e&&k.to>s&&(d=k)}}return d}function isUnfinished(o){let e=o.lastChild;return e&&e.to==o.to&&e.type.isError}function foldable(o,e,s){for(let a of o.facet(foldService)){let c=a(o,e,s);if(c)return c}return syntaxFolding(o,e,s)}function mapRange(o,e){let s=e.mapPos(o.from,1),a=e.mapPos(o.to,-1);return s>=a?void 0:{from:s,to:a}}const foldEffect=StateEffect.define({map:mapRange}),unfoldEffect=StateEffect.define({map:mapRange});function selectedLines(o){let e=[];for(let{head:s}of o.state.selection.ranges)e.some(a=>a.from<=s&&a.to>=s)||e.push(o.lineBlockAt(s));return e}const foldState=StateField.define({create(){return Decoration.none},update(o,e){o=o.map(e.changes);for(let s of e.effects)s.is(foldEffect)&&!foldExists(o,s.value.from,s.value.to)?o=o.update({add:[foldWidget.range(s.value.from,s.value.to)]}):s.is(unfoldEffect)&&(o=o.update({filter:(a,c)=>s.value.from!=a||s.value.to!=c,filterFrom:s.value.from,filterTo:s.value.to}));if(e.selection){let s=!1,{head:a}=e.selection.main;o.between(a,a,(c,d)=>{ca&&(s=!0)}),s&&(o=o.update({filterFrom:a,filterTo:a,filter:(c,d)=>d<=a||c>=a}))}return o},provide:o=>EditorView.decorations.from(o),toJSON(o,e){let s=[];return o.between(0,e.doc.length,(a,c)=>{s.push(a,c)}),s},fromJSON(o){if(!Array.isArray(o)||o.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let s=0;s{(!c||c.from>d)&&(c={from:d,to:_})}),c}function foldExists(o,e,s){let a=!1;return o.between(e,e,(c,d)=>{c==e&&d==s&&(a=!0)}),a}function maybeEnable(o,e){return o.field(foldState,!1)?e:e.concat(StateEffect.appendConfig.of(codeFolding()))}const foldCode=o=>{for(let e of selectedLines(o)){let s=foldable(o.state,e.from,e.to);if(s)return o.dispatch({effects:maybeEnable(o.state,[foldEffect.of(s),announceFold(o,s)])}),!0}return!1},unfoldCode=o=>{if(!o.state.field(foldState,!1))return!1;let e=[];for(let s of selectedLines(o)){let a=findFold(o.state,s.from,s.to);a&&e.push(unfoldEffect.of(a),announceFold(o,a,!1))}return e.length&&o.dispatch({effects:e}),e.length>0};function announceFold(o,e,s=!0){let a=o.state.doc.lineAt(e.from).number,c=o.state.doc.lineAt(e.to).number;return EditorView.announce.of(`${o.state.phrase(s?"Folded lines":"Unfolded lines")} ${a} ${o.state.phrase("to")} ${c}.`)}const foldAll=o=>{let{state:e}=o,s=[];for(let a=0;a{let e=o.state.field(foldState,!1);if(!e||!e.size)return!1;let s=[];return e.between(0,o.state.doc.length,(a,c)=>{s.push(unfoldEffect.of({from:a,to:c}))}),o.dispatch({effects:s}),!0},foldKeymap=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:foldCode},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:unfoldCode},{key:"Ctrl-Alt-[",run:foldAll},{key:"Ctrl-Alt-]",run:unfoldAll}],defaultConfig={placeholderDOM:null,placeholderText:"\u2026"},foldConfig=Facet.define({combine(o){return combineConfig(o,defaultConfig)}});function codeFolding(o){let e=[foldState,baseTheme$1$2];return o&&e.push(foldConfig.of(o)),e}const foldWidget=Decoration.replace({widget:new class extends WidgetType{toDOM(o){let{state:e}=o,s=e.facet(foldConfig),a=d=>{let _=o.lineBlockAt(o.posAtDOM(d.target)),b=findFold(o.state,_.from,_.to);b&&o.dispatch({effects:unfoldEffect.of(b)}),d.preventDefault()};if(s.placeholderDOM)return s.placeholderDOM(o,a);let c=document.createElement("span");return c.textContent=s.placeholderText,c.setAttribute("aria-label",e.phrase("folded code")),c.title=e.phrase("unfold"),c.className="cm-foldPlaceholder",c.onclick=a,c}}}),foldGutterDefaults={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class FoldMarker extends GutterMarker{constructor(e,s){super(),this.config=e,this.open=s}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let s=document.createElement("span");return s.textContent=this.open?this.config.openText:this.config.closedText,s.title=e.state.phrase(this.open?"Fold line":"Unfold line"),s}}function foldGutter(o={}){let e=Object.assign(Object.assign({},foldGutterDefaults),o),s=new FoldMarker(e,!0),a=new FoldMarker(e,!1),c=ViewPlugin.fromClass(class{constructor(_){this.from=_.viewport.from,this.markers=this.buildMarkers(_)}update(_){(_.docChanged||_.viewportChanged||_.startState.facet(language)!=_.state.facet(language)||_.startState.field(foldState,!1)!=_.state.field(foldState,!1)||syntaxTree(_.startState)!=syntaxTree(_.state)||e.foldingChanged(_))&&(this.markers=this.buildMarkers(_.view))}buildMarkers(_){let b=new RangeSetBuilder;for(let k of _.viewportLineBlocks){let $=findFold(_.state,k.from,k.to)?a:foldable(_.state,k.from,k.to)?s:null;$&&b.add(k.from,k.from,$)}return b.finish()}}),{domEventHandlers:d}=e;return[c,gutter({class:"cm-foldGutter",markers(_){var b;return((b=_.plugin(c))===null||b===void 0?void 0:b.markers)||RangeSet.empty},initialSpacer(){return new FoldMarker(e,!1)},domEventHandlers:Object.assign(Object.assign({},d),{click:(_,b,k)=>{if(d.click&&d.click(_,b,k))return!0;let $=findFold(_.state,b.from,b.to);if($)return _.dispatch({effects:unfoldEffect.of($)}),!0;let j=foldable(_.state,b.from,b.to);return j?(_.dispatch({effects:foldEffect.of(j)}),!0):!1}})}),codeFolding()]}const baseTheme$1$2=EditorView.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class HighlightStyle{constructor(e,s){let a;function c(b){let k=StyleModule.newName();return(a||(a=Object.create(null)))["."+k]=b,k}const d=typeof s.all=="string"?s.all:s.all?c(s.all):void 0,_=s.scope;this.scope=_ instanceof Language?b=>b.prop(languageDataProp)==_.data:_?b=>b==_:void 0,this.style=tagHighlighter(e.map(b=>({tag:b.tag,class:b.class||c(Object.assign({},b,{tag:null}))})),{all:d}).style,this.module=a?new StyleModule(a):null,this.themeType=s.themeType}static define(e,s){return new HighlightStyle(e,s||{})}}const highlighterFacet=Facet.define(),fallbackHighlighter=Facet.define({combine(o){return o.length?[o[0]]:null}});function getHighlighters(o){let e=o.facet(highlighterFacet);return e.length?e:o.facet(fallbackHighlighter)}function syntaxHighlighting(o,e){let s=[treeHighlighter],a;return o instanceof HighlightStyle&&(o.module&&s.push(EditorView.styleModule.of(o.module)),a=o.themeType),e!=null&&e.fallback?s.push(fallbackHighlighter.of(o)):a?s.push(highlighterFacet.computeN([EditorView.darkTheme],c=>c.facet(EditorView.darkTheme)==(a=="dark")?[o]:[])):s.push(highlighterFacet.of(o)),s}class TreeHighlighter{constructor(e){this.markCache=Object.create(null),this.tree=syntaxTree(e.state),this.decorations=this.buildDeco(e,getHighlighters(e.state))}update(e){let s=syntaxTree(e.state),a=getHighlighters(e.state),c=a!=getHighlighters(e.startState);s.length{a.add(_,b,this.markCache[k]||(this.markCache[k]=Decoration.mark({class:k})))},c,d);return a.finish()}}const treeHighlighter=Prec.high(ViewPlugin.fromClass(TreeHighlighter,{decorations:o=>o.decorations})),defaultHighlightStyle=HighlightStyle.define([{tag:tags.meta,color:"#7a757a"},{tag:tags.link,textDecoration:"underline"},{tag:tags.heading,textDecoration:"underline",fontWeight:"bold"},{tag:tags.emphasis,fontStyle:"italic"},{tag:tags.strong,fontWeight:"bold"},{tag:tags.strikethrough,textDecoration:"line-through"},{tag:tags.keyword,color:"#708"},{tag:[tags.atom,tags.bool,tags.url,tags.contentSeparator,tags.labelName],color:"#219"},{tag:[tags.literal,tags.inserted],color:"#164"},{tag:[tags.string,tags.deleted],color:"#a11"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],color:"#e40"},{tag:tags.definition(tags.variableName),color:"#00f"},{tag:tags.local(tags.variableName),color:"#30a"},{tag:[tags.typeName,tags.namespace],color:"#085"},{tag:tags.className,color:"#167"},{tag:[tags.special(tags.variableName),tags.macroName],color:"#256"},{tag:tags.definition(tags.propertyName),color:"#00c"},{tag:tags.comment,color:"#940"},{tag:tags.invalid,color:"#f00"}]),baseTheme$3=EditorView.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),DefaultScanDist=1e4,DefaultBrackets="()[]{}",bracketMatchingConfig=Facet.define({combine(o){return combineConfig(o,{afterCursor:!0,brackets:DefaultBrackets,maxScanDistance:DefaultScanDist,renderMatch:defaultRenderMatch})}}),matchingMark=Decoration.mark({class:"cm-matchingBracket"}),nonmatchingMark=Decoration.mark({class:"cm-nonmatchingBracket"});function defaultRenderMatch(o){let e=[],s=o.matched?matchingMark:nonmatchingMark;return e.push(s.range(o.start.from,o.start.to)),o.end&&e.push(s.range(o.end.from,o.end.to)),e}const bracketMatchingState=StateField.define({create(){return Decoration.none},update(o,e){if(!e.docChanged&&!e.selection)return o;let s=[],a=e.state.facet(bracketMatchingConfig);for(let c of e.state.selection.ranges){if(!c.empty)continue;let d=matchBrackets(e.state,c.head,-1,a)||c.head>0&&matchBrackets(e.state,c.head-1,1,a)||a.afterCursor&&(matchBrackets(e.state,c.head,1,a)||c.headEditorView.decorations.from(o)}),bracketMatchingUnique=[bracketMatchingState,baseTheme$3];function bracketMatching(o={}){return[bracketMatchingConfig.of(o),bracketMatchingUnique]}function matchingNodes(o,e,s){let a=o.prop(e<0?NodeProp.openedBy:NodeProp.closedBy);if(a)return a;if(o.name.length==1){let c=s.indexOf(o.name);if(c>-1&&c%2==(e<0?1:0))return[s[c+e]]}return null}function matchBrackets(o,e,s,a={}){let c=a.maxScanDistance||DefaultScanDist,d=a.brackets||DefaultBrackets,_=syntaxTree(o),b=_.resolveInner(e,s);for(let k=b;k;k=k.parent){let $=matchingNodes(k.type,s,d);if($&&k.from=a.to){if(k==0&&c.indexOf($.type.name)>-1&&$.from<$.to)return{start:b,end:{from:$.from,to:$.to},matched:!0};if(matchingNodes($.type,s,d))k++;else if(matchingNodes($.type,-s,d)){if(k==0)return{start:b,end:$.from==$.to?void 0:{from:$.from,to:$.to},matched:!1};k--}}while(s<0?$.prevSibling():$.nextSibling());return{start:b,matched:!1}}function matchPlainBrackets(o,e,s,a,c,d,_){let b=s<0?o.sliceDoc(e-1,e):o.sliceDoc(e,e+1),k=_.indexOf(b);if(k<0||k%2==0!=s>0)return null;let $={from:s<0?e-1:e,to:s>0?e+1:e},j=o.doc.iterRange(e,s>0?o.doc.length:0),_e=0;for(let et=0;!j.next().done&&et<=d;){let tt=j.value;s<0&&(et+=tt.length);let nt=e+et*s;for(let st=s>0?0:tt.length-1,rt=s>0?tt.length:-1;st!=rt;st+=s){let it=_.indexOf(tt[st]);if(!(it<0||a.resolveInner(nt+st,1).type!=c))if(it%2==0==s>0)_e++;else{if(_e==1)return{start:$,end:{from:nt+st,to:nt+st+1},matched:it>>1==k>>1};_e--}}s>0&&(et+=tt.length)}return j.done?{start:$,matched:!1}:null}const noTokens=Object.create(null),typeArray=[NodeType.none],warned=[],defaultTable=Object.create(null);for(let[o,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])defaultTable[o]=createTokenType(noTokens,e);function warnForPart(o,e){warned.indexOf(o)>-1||(warned.push(o),console.warn(e))}function createTokenType(o,e){let s=null;for(let d of e.split(".")){let _=o[d]||tags[d];_?typeof _=="function"?s?s=_(s):warnForPart(d,`Modifier ${d} used at start of tag`):s?warnForPart(d,`Tag ${d} used as modifier`):s=_:warnForPart(d,`Unknown highlighting tag ${d}`)}if(!s)return 0;let a=e.replace(/ /g,"_"),c=NodeType.define({id:typeArray.length,name:a,props:[styleTags({[a]:s})]});return typeArray.push(c),c.id}const toggleComment=o=>{let e=getConfig(o.state);return e.line?toggleLineComment(o):e.block?toggleBlockCommentByLine(o):!1};function command(o,e){return({state:s,dispatch:a})=>{if(s.readOnly)return!1;let c=o(e,s);return c?(a(s.update(c)),!0):!1}}const toggleLineComment=command(changeLineComment,0),toggleBlockComment=command(changeBlockComment,0),toggleBlockCommentByLine=command((o,e)=>changeBlockComment(o,e,selectedLineRanges(e)),0);function getConfig(o,e=o.selection.main.head){let s=o.languageDataAt("commentTokens",e);return s.length?s[0]:{}}const SearchMargin=50;function findBlockComment(o,{open:e,close:s},a,c){let d=o.sliceDoc(a-SearchMargin,a),_=o.sliceDoc(c,c+SearchMargin),b=/\s*$/.exec(d)[0].length,k=/^\s*/.exec(_)[0].length,$=d.length-b;if(d.slice($-e.length,$)==e&&_.slice(k,k+s.length)==s)return{open:{pos:a-b,margin:b&&1},close:{pos:c+k,margin:k&&1}};let j,_e;c-a<=2*SearchMargin?j=_e=o.sliceDoc(a,c):(j=o.sliceDoc(a,a+SearchMargin),_e=o.sliceDoc(c-SearchMargin,c));let et=/^\s*/.exec(j)[0].length,tt=/\s*$/.exec(_e)[0].length,nt=_e.length-tt-s.length;return j.slice(et,et+e.length)==e&&_e.slice(nt,nt+s.length)==s?{open:{pos:a+et+e.length,margin:/\s/.test(j.charAt(et+e.length))?1:0},close:{pos:c-tt-s.length,margin:/\s/.test(_e.charAt(nt-1))?1:0}}:null}function selectedLineRanges(o){let e=[];for(let s of o.selection.ranges){let a=o.doc.lineAt(s.from),c=s.to<=a.to?a:o.doc.lineAt(s.to),d=e.length-1;d>=0&&e[d].to>a.from?e[d].to=c.to:e.push({from:a.from,to:c.to})}return e}function changeBlockComment(o,e,s=e.selection.ranges){let a=s.map(d=>getConfig(e,d.from).block);if(!a.every(d=>d))return null;let c=s.map((d,_)=>findBlockComment(e,a[_],d.from,d.to));if(o!=2&&!c.every(d=>d))return{changes:e.changes(s.map((d,_)=>c[_]?[]:[{from:d.from,insert:a[_].open+" "},{from:d.to,insert:" "+a[_].close}]))};if(o!=1&&c.some(d=>d)){let d=[];for(let _=0,b;_c&&(d==_||_>j.from)){c=j.from;let _e=getConfig(e,$).line;if(!_e)continue;let et=/^\s*/.exec(j.text)[0].length,tt=et==j.length,nt=j.text.slice(et,et+_e.length)==_e?et:-1;etd.comment<0&&(!d.empty||d.single))){let d=[];for(let{line:b,token:k,indent:$,empty:j,single:_e}of a)(_e||!j)&&d.push({from:b.from+$,insert:k+" "});let _=e.changes(d);return{changes:_,selection:e.selection.map(_,1)}}else if(o!=1&&a.some(d=>d.comment>=0)){let d=[];for(let{line:_,comment:b,token:k}of a)if(b>=0){let $=_.from+b,j=$+k.length;_.text[j-_.from]==" "&&j++,d.push({from:$,to:j})}return{changes:d}}return null}const fromHistory=Annotation.define(),isolateHistory=Annotation.define(),invertedEffects=Facet.define(),historyConfig=Facet.define({combine(o){return combineConfig(o,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}});function changeEnd(o){let e=0;return o.iterChangedRanges((s,a)=>e=a),e}const historyField_=StateField.define({create(){return HistoryState.empty},update(o,e){let s=e.state.facet(historyConfig),a=e.annotation(fromHistory);if(a){let k=e.docChanged?EditorSelection.single(changeEnd(e.changes)):void 0,$=HistEvent.fromTransaction(e,k),j=a.side,_e=j==0?o.undone:o.done;return $?_e=updateBranch(_e,_e.length,s.minDepth,$):_e=addSelection(_e,e.startState.selection),new HistoryState(j==0?a.rest:_e,j==0?_e:a.rest)}let c=e.annotation(isolateHistory);if((c=="full"||c=="before")&&(o=o.isolate()),e.annotation(Transaction.addToHistory)===!1)return e.changes.empty?o:o.addMapping(e.changes.desc);let d=HistEvent.fromTransaction(e),_=e.annotation(Transaction.time),b=e.annotation(Transaction.userEvent);return d?o=o.addChanges(d,_,b,s.newGroupDelay,s.minDepth):e.selection&&(o=o.addSelection(e.startState.selection,_,b,s.newGroupDelay)),(c=="full"||c=="after")&&(o=o.isolate()),o},toJSON(o){return{done:o.done.map(e=>e.toJSON()),undone:o.undone.map(e=>e.toJSON())}},fromJSON(o){return new HistoryState(o.done.map(HistEvent.fromJSON),o.undone.map(HistEvent.fromJSON))}});function history(o={}){return[historyField_,historyConfig.of(o),EditorView.domEventHandlers({beforeinput(e,s){let a=e.inputType=="historyUndo"?undo:e.inputType=="historyRedo"?redo:null;return a?(e.preventDefault(),a(s)):!1}})]}function cmd(o,e){return function({state:s,dispatch:a}){if(!e&&s.readOnly)return!1;let c=s.field(historyField_,!1);if(!c)return!1;let d=c.pop(o,s,e);return d?(a(d),!0):!1}}const undo=cmd(0,!1),redo=cmd(1,!1),undoSelection=cmd(0,!0),redoSelection=cmd(1,!0);class HistEvent{constructor(e,s,a,c,d){this.changes=e,this.effects=s,this.mapped=a,this.startSelection=c,this.selectionsAfter=d}setSelAfter(e){return new HistEvent(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,s,a;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(s=this.mapped)===null||s===void 0?void 0:s.toJSON(),startSelection:(a=this.startSelection)===null||a===void 0?void 0:a.toJSON(),selectionsAfter:this.selectionsAfter.map(c=>c.toJSON())}}static fromJSON(e){return new HistEvent(e.changes&&ChangeSet.fromJSON(e.changes),[],e.mapped&&ChangeDesc.fromJSON(e.mapped),e.startSelection&&EditorSelection.fromJSON(e.startSelection),e.selectionsAfter.map(EditorSelection.fromJSON))}static fromTransaction(e,s){let a=none$1;for(let c of e.startState.facet(invertedEffects)){let d=c(e);d.length&&(a=a.concat(d))}return!a.length&&e.changes.empty?null:new HistEvent(e.changes.invert(e.startState.doc),a,void 0,s||e.startState.selection,none$1)}static selection(e){return new HistEvent(void 0,none$1,void 0,void 0,e)}}function updateBranch(o,e,s,a){let c=e+1>s+20?e-s-1:0,d=o.slice(c,e);return d.push(a),d}function isAdjacent(o,e){let s=[],a=!1;return o.iterChangedRanges((c,d)=>s.push(c,d)),e.iterChangedRanges((c,d,_,b)=>{for(let k=0;k=$&&_<=j&&(a=!0)}}),a}function eqSelectionShape(o,e){return o.ranges.length==e.ranges.length&&o.ranges.filter((s,a)=>s.empty!=e.ranges[a].empty).length===0}function conc(o,e){return o.length?e.length?o.concat(e):o:e}const none$1=[],MaxSelectionsPerEvent=200;function addSelection(o,e){if(o.length){let s=o[o.length-1],a=s.selectionsAfter.slice(Math.max(0,s.selectionsAfter.length-MaxSelectionsPerEvent));return a.length&&a[a.length-1].eq(e)?o:(a.push(e),updateBranch(o,o.length-1,1e9,s.setSelAfter(a)))}else return[HistEvent.selection([e])]}function popSelection(o){let e=o[o.length-1],s=o.slice();return s[o.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),s}function addMappingToBranch(o,e){if(!o.length)return o;let s=o.length,a=none$1;for(;s;){let c=mapEvent(o[s-1],e,a);if(c.changes&&!c.changes.empty||c.effects.length){let d=o.slice(0,s);return d[s-1]=c,d}else e=c.mapped,s--,a=c.selectionsAfter}return a.length?[HistEvent.selection(a)]:none$1}function mapEvent(o,e,s){let a=conc(o.selectionsAfter.length?o.selectionsAfter.map(b=>b.map(e)):none$1,s);if(!o.changes)return HistEvent.selection(a);let c=o.changes.map(e),d=e.mapDesc(o.changes,!0),_=o.mapped?o.mapped.composeDesc(d):d;return new HistEvent(c,StateEffect.mapEffects(o.effects,e),_,o.startSelection.map(d),a)}const joinableUserEvent=/^(input\.type|delete)($|\.)/;class HistoryState{constructor(e,s,a=0,c=void 0){this.done=e,this.undone=s,this.prevTime=a,this.prevUserEvent=c}isolate(){return this.prevTime?new HistoryState(this.done,this.undone):this}addChanges(e,s,a,c,d){let _=this.done,b=_[_.length-1];return b&&b.changes&&!b.changes.empty&&e.changes&&(!a||joinableUserEvent.test(a))&&(!b.selectionsAfter.length&&s-this.prevTime0&&s-this.prevTimes.empty?o.moveByChar(s,e):rangeEnd(s,e))}function ltrAtCursor(o){return o.textDirectionAt(o.state.selection.main.head)==Direction.LTR}const cursorCharLeft=o=>cursorByChar(o,!ltrAtCursor(o)),cursorCharRight=o=>cursorByChar(o,ltrAtCursor(o));function cursorByGroup(o,e){return moveSel(o,s=>s.empty?o.moveByGroup(s,e):rangeEnd(s,e))}const cursorGroupLeft=o=>cursorByGroup(o,!ltrAtCursor(o)),cursorGroupRight=o=>cursorByGroup(o,ltrAtCursor(o));function interestingNode(o,e,s){if(e.type.prop(s))return!0;let a=e.to-e.from;return a&&(a>2||/[^\s,.;:]/.test(o.sliceDoc(e.from,e.to)))||e.firstChild}function moveBySyntax(o,e,s){let a=syntaxTree(o).resolveInner(e.head),c=s?NodeProp.closedBy:NodeProp.openedBy;for(let k=e.head;;){let $=s?a.childAfter(k):a.childBefore(k);if(!$)break;interestingNode(o,$,c)?a=$:k=s?$.to:$.from}let d=a.type.prop(c),_,b;return d&&(_=s?matchBrackets(o,a.from,1):matchBrackets(o,a.to,-1))&&_.matched?b=s?_.end.to:_.end.from:b=s?a.to:a.from,EditorSelection.cursor(b,s?-1:1)}const cursorSyntaxLeft=o=>moveSel(o,e=>moveBySyntax(o.state,e,!ltrAtCursor(o))),cursorSyntaxRight=o=>moveSel(o,e=>moveBySyntax(o.state,e,ltrAtCursor(o)));function cursorByLine(o,e){return moveSel(o,s=>{if(!s.empty)return rangeEnd(s,e);let a=o.moveVertically(s,e);return a.head!=s.head?a:o.moveToLineBoundary(s,e)})}const cursorLineUp=o=>cursorByLine(o,!1),cursorLineDown=o=>cursorByLine(o,!0);function pageHeight(o){return Math.max(o.defaultLineHeight,Math.min(o.dom.clientHeight,innerHeight)-5)}function cursorByPage(o,e){let{state:s}=o,a=updateSel(s.selection,b=>b.empty?o.moveVertically(b,e,pageHeight(o)):rangeEnd(b,e));if(a.eq(s.selection))return!1;let c=o.coordsAtPos(s.selection.main.head),d=o.scrollDOM.getBoundingClientRect(),_;return c&&c.top>d.top&&c.bottomcursorByPage(o,!1),cursorPageDown=o=>cursorByPage(o,!0);function moveByLineBoundary(o,e,s){let a=o.lineBlockAt(e.head),c=o.moveToLineBoundary(e,s);if(c.head==e.head&&c.head!=(s?a.to:a.from)&&(c=o.moveToLineBoundary(e,s,!1)),!s&&c.head==a.from&&a.length){let d=/^\s*/.exec(o.state.sliceDoc(a.from,Math.min(a.from+100,a.to)))[0].length;d&&e.head!=a.from+d&&(c=EditorSelection.cursor(a.from+d))}return c}const cursorLineBoundaryForward=o=>moveSel(o,e=>moveByLineBoundary(o,e,!0)),cursorLineBoundaryBackward=o=>moveSel(o,e=>moveByLineBoundary(o,e,!1)),cursorLineStart=o=>moveSel(o,e=>EditorSelection.cursor(o.lineBlockAt(e.head).from,1)),cursorLineEnd=o=>moveSel(o,e=>EditorSelection.cursor(o.lineBlockAt(e.head).to,-1));function toMatchingBracket(o,e,s){let a=!1,c=updateSel(o.selection,d=>{let _=matchBrackets(o,d.head,-1)||matchBrackets(o,d.head,1)||d.head>0&&matchBrackets(o,d.head-1,1)||d.headtoMatchingBracket(o,e,!1);function extendSel(o,e){let s=updateSel(o.state.selection,a=>{let c=e(a);return EditorSelection.range(a.anchor,c.head,c.goalColumn)});return s.eq(o.state.selection)?!1:(o.dispatch(setSel(o.state,s)),!0)}function selectByChar(o,e){return extendSel(o,s=>o.moveByChar(s,e))}const selectCharLeft=o=>selectByChar(o,!ltrAtCursor(o)),selectCharRight=o=>selectByChar(o,ltrAtCursor(o));function selectByGroup(o,e){return extendSel(o,s=>o.moveByGroup(s,e))}const selectGroupLeft=o=>selectByGroup(o,!ltrAtCursor(o)),selectGroupRight=o=>selectByGroup(o,ltrAtCursor(o)),selectSyntaxLeft=o=>extendSel(o,e=>moveBySyntax(o.state,e,!ltrAtCursor(o))),selectSyntaxRight=o=>extendSel(o,e=>moveBySyntax(o.state,e,ltrAtCursor(o)));function selectByLine(o,e){return extendSel(o,s=>o.moveVertically(s,e))}const selectLineUp=o=>selectByLine(o,!1),selectLineDown=o=>selectByLine(o,!0);function selectByPage(o,e){return extendSel(o,s=>o.moveVertically(s,e,pageHeight(o)))}const selectPageUp=o=>selectByPage(o,!1),selectPageDown=o=>selectByPage(o,!0),selectLineBoundaryForward=o=>extendSel(o,e=>moveByLineBoundary(o,e,!0)),selectLineBoundaryBackward=o=>extendSel(o,e=>moveByLineBoundary(o,e,!1)),selectLineStart=o=>extendSel(o,e=>EditorSelection.cursor(o.lineBlockAt(e.head).from)),selectLineEnd=o=>extendSel(o,e=>EditorSelection.cursor(o.lineBlockAt(e.head).to)),cursorDocStart=({state:o,dispatch:e})=>(e(setSel(o,{anchor:0})),!0),cursorDocEnd=({state:o,dispatch:e})=>(e(setSel(o,{anchor:o.doc.length})),!0),selectDocStart=({state:o,dispatch:e})=>(e(setSel(o,{anchor:o.selection.main.anchor,head:0})),!0),selectDocEnd=({state:o,dispatch:e})=>(e(setSel(o,{anchor:o.selection.main.anchor,head:o.doc.length})),!0),selectAll=({state:o,dispatch:e})=>(e(o.update({selection:{anchor:0,head:o.doc.length},userEvent:"select"})),!0),selectLine=({state:o,dispatch:e})=>{let s=selectedLineBlocks(o).map(({from:a,to:c})=>EditorSelection.range(a,Math.min(c+1,o.doc.length)));return e(o.update({selection:EditorSelection.create(s),userEvent:"select"})),!0},selectParentSyntax=({state:o,dispatch:e})=>{let s=updateSel(o.selection,a=>{var c;let d=syntaxTree(o).resolveInner(a.head,1);for(;!(d.from=a.to||d.to>a.to&&d.from<=a.from||!(!((c=d.parent)===null||c===void 0)&&c.parent));)d=d.parent;return EditorSelection.range(d.to,d.from)});return e(setSel(o,s)),!0},simplifySelection=({state:o,dispatch:e})=>{let s=o.selection,a=null;return s.ranges.length>1?a=EditorSelection.create([s.main]):s.main.empty||(a=EditorSelection.create([EditorSelection.cursor(s.main.head)])),a?(e(setSel(o,a)),!0):!1};function deleteBy({state:o,dispatch:e},s){if(o.readOnly)return!1;let a="delete.selection",c=o.changeByRange(d=>{let{from:_,to:b}=d;if(_==b){let k=s(_);k<_?a="delete.backward":k>_&&(a="delete.forward"),_=Math.min(_,k),b=Math.max(b,k)}return _==b?{range:d}:{changes:{from:_,to:b},range:EditorSelection.cursor(_)}});return c.changes.empty?!1:(e(o.update(c,{scrollIntoView:!0,userEvent:a,effects:a=="delete.selection"?EditorView.announce.of(o.phrase("Selection deleted")):void 0})),!0)}function skipAtomic(o,e,s){if(o instanceof EditorView)for(let a of o.state.facet(EditorView.atomicRanges).map(c=>c(o)))a.between(e,e,(c,d)=>{ce&&(e=s?d:c)});return e}const deleteByChar=(o,e)=>deleteBy(o,s=>{let{state:a}=o,c=a.doc.lineAt(s),d,_;if(!e&&s>c.from&&sdeleteByChar(o,!1),deleteCharForward=o=>deleteByChar(o,!0),deleteByGroup=(o,e)=>deleteBy(o,s=>{let a=s,{state:c}=o,d=c.doc.lineAt(a),_=c.charCategorizer(a);for(let b=null;;){if(a==(e?d.to:d.from)){a==s&&d.number!=(e?c.doc.lines:1)&&(a+=e?1:-1);break}let k=findClusterBreak(d.text,a-d.from,e)+d.from,$=d.text.slice(Math.min(a,k)-d.from,Math.max(a,k)-d.from),j=_($);if(b!=null&&j!=b)break;($!=" "||a!=s)&&(b=j),a=k}return skipAtomic(o,a,e)}),deleteGroupBackward=o=>deleteByGroup(o,!1),deleteGroupForward=o=>deleteByGroup(o,!0),deleteToLineEnd=o=>deleteBy(o,e=>{let s=o.lineBlockAt(e).to;return skipAtomic(o,edeleteBy(o,e=>{let s=o.lineBlockAt(e).from;return skipAtomic(o,e>s?s:Math.max(0,e-1),!1)}),splitLine=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let s=o.changeByRange(a=>({changes:{from:a.from,to:a.to,insert:Text.of(["",""])},range:EditorSelection.cursor(a.from)}));return e(o.update(s,{scrollIntoView:!0,userEvent:"input"})),!0},transposeChars=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let s=o.changeByRange(a=>{if(!a.empty||a.from==0||a.from==o.doc.length)return{range:a};let c=a.from,d=o.doc.lineAt(c),_=c==d.from?c-1:findClusterBreak(d.text,c-d.from,!1)+d.from,b=c==d.to?c+1:findClusterBreak(d.text,c-d.from,!0)+d.from;return{changes:{from:_,to:b,insert:o.doc.slice(c,b).append(o.doc.slice(_,c))},range:EditorSelection.cursor(b)}});return s.changes.empty?!1:(e(o.update(s,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function selectedLineBlocks(o){let e=[],s=-1;for(let a of o.selection.ranges){let c=o.doc.lineAt(a.from),d=o.doc.lineAt(a.to);if(!a.empty&&a.to==d.from&&(d=o.doc.lineAt(a.to-1)),s>=c.number){let _=e[e.length-1];_.to=d.to,_.ranges.push(a)}else e.push({from:c.from,to:d.to,ranges:[a]});s=d.number+1}return e}function moveLine(o,e,s){if(o.readOnly)return!1;let a=[],c=[];for(let d of selectedLineBlocks(o)){if(s?d.to==o.doc.length:d.from==0)continue;let _=o.doc.lineAt(s?d.to+1:d.from-1),b=_.length+1;if(s){a.push({from:d.to,to:_.to},{from:d.from,insert:_.text+o.lineBreak});for(let k of d.ranges)c.push(EditorSelection.range(Math.min(o.doc.length,k.anchor+b),Math.min(o.doc.length,k.head+b)))}else{a.push({from:_.from,to:d.from},{from:d.to,insert:o.lineBreak+_.text});for(let k of d.ranges)c.push(EditorSelection.range(k.anchor-b,k.head-b))}}return a.length?(e(o.update({changes:a,scrollIntoView:!0,selection:EditorSelection.create(c,o.selection.mainIndex),userEvent:"move.line"})),!0):!1}const moveLineUp=({state:o,dispatch:e})=>moveLine(o,e,!1),moveLineDown=({state:o,dispatch:e})=>moveLine(o,e,!0);function copyLine(o,e,s){if(o.readOnly)return!1;let a=[];for(let c of selectedLineBlocks(o))s?a.push({from:c.from,insert:o.doc.slice(c.from,c.to)+o.lineBreak}):a.push({from:c.to,insert:o.lineBreak+o.doc.slice(c.from,c.to)});return e(o.update({changes:a,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const copyLineUp=({state:o,dispatch:e})=>copyLine(o,e,!1),copyLineDown=({state:o,dispatch:e})=>copyLine(o,e,!0),deleteLine=o=>{if(o.state.readOnly)return!1;let{state:e}=o,s=e.changes(selectedLineBlocks(e).map(({from:c,to:d})=>(c>0?c--:do.moveVertically(c,!0)).map(s);return o.dispatch({changes:s,selection:a,scrollIntoView:!0,userEvent:"delete.line"}),!0};function isBetweenBrackets(o,e){if(/\(\)|\[\]|\{\}/.test(o.sliceDoc(e-1,e+1)))return{from:e,to:e};let s=syntaxTree(o).resolveInner(e),a=s.childBefore(e),c=s.childAfter(e),d;return a&&c&&a.to<=e&&c.from>=e&&(d=a.type.prop(NodeProp.closedBy))&&d.indexOf(c.name)>-1&&o.doc.lineAt(a.to).from==o.doc.lineAt(c.from).from?{from:a.to,to:c.from}:null}const insertNewlineAndIndent=newlineAndIndent(!1),insertBlankLine=newlineAndIndent(!0);function newlineAndIndent(o){return({state:e,dispatch:s})=>{if(e.readOnly)return!1;let a=e.changeByRange(c=>{let{from:d,to:_}=c,b=e.doc.lineAt(d),k=!o&&d==_&&isBetweenBrackets(e,d);o&&(d=_=(_<=b.to?b:e.doc.lineAt(_)).to);let $=new IndentContext(e,{simulateBreak:d,simulateDoubleBreak:!!k}),j=getIndentation($,d);for(j==null&&(j=/^\s*/.exec(e.doc.lineAt(d).text)[0].length);_b.from&&d{let c=[];for(let _=a.from;_<=a.to;){let b=o.doc.lineAt(_);b.number>s&&(a.empty||a.to>b.from)&&(e(b,c,a),s=b.number),_=b.to+1}let d=o.changes(c);return{changes:c,range:EditorSelection.range(d.mapPos(a.anchor,1),d.mapPos(a.head,1))}})}const indentSelection=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let s=Object.create(null),a=new IndentContext(o,{overrideIndentation:d=>{let _=s[d];return _==null?-1:_}}),c=changeBySelectedLine(o,(d,_,b)=>{let k=getIndentation(a,d.from);if(k==null)return;/\S/.test(d.text)||(k=0);let $=/^\s*/.exec(d.text)[0],j=indentString(o,k);($!=j||b.fromo.readOnly?!1:(e(o.update(changeBySelectedLine(o,(s,a)=>{a.push({from:s.from,insert:o.facet(indentUnit)})}),{userEvent:"input.indent"})),!0),indentLess=({state:o,dispatch:e})=>o.readOnly?!1:(e(o.update(changeBySelectedLine(o,(s,a)=>{let c=/^\s*/.exec(s.text)[0];if(!c)return;let d=countColumn(c,o.tabSize),_=0,b=indentString(o,Math.max(0,d-getIndentUnit(o)));for(;_({mac:o.key,run:o.run,shift:o.shift}))),defaultKeymap=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:cursorSyntaxLeft,shift:selectSyntaxLeft},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cursorSyntaxRight,shift:selectSyntaxRight},{key:"Alt-ArrowUp",run:moveLineUp},{key:"Shift-Alt-ArrowUp",run:copyLineUp},{key:"Alt-ArrowDown",run:moveLineDown},{key:"Shift-Alt-ArrowDown",run:copyLineDown},{key:"Escape",run:simplifySelection},{key:"Mod-Enter",run:insertBlankLine},{key:"Alt-l",mac:"Ctrl-l",run:selectLine},{key:"Mod-i",run:selectParentSyntax,preventDefault:!0},{key:"Mod-[",run:indentLess},{key:"Mod-]",run:indentMore},{key:"Mod-Alt-\\",run:indentSelection},{key:"Shift-Mod-k",run:deleteLine},{key:"Shift-Mod-\\",run:cursorMatchingBracket},{key:"Mod-/",run:toggleComment},{key:"Alt-A",run:toggleBlockComment}].concat(standardKeymap),indentWithTab={key:"Tab",run:indentMore,shift:indentLess};function crelt(){var o=arguments[0];typeof o=="string"&&(o=document.createElement(o));var e=1,s=arguments[1];if(s&&typeof s=="object"&&s.nodeType==null&&!Array.isArray(s)){for(var a in s)if(Object.prototype.hasOwnProperty.call(s,a)){var c=s[a];typeof c=="string"?o.setAttribute(a,c):c!=null&&(o[a]=c)}e++}for(;eo.normalize("NFKD"):o=>o;class SearchCursor{constructor(e,s,a=0,c=e.length,d){this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(a,c),this.bufferStart=a,this.normalize=d?_=>d(basicNormalize(_)):basicNormalize,this.query=this.normalize(s)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return codePointAt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let s=fromCodePoint(e),a=this.bufferStart+this.bufferPos;this.bufferPos+=codePointSize(e);let c=this.normalize(s);for(let d=0,_=a;;d++){let b=c.charCodeAt(d),k=this.match(b,_);if(k)return this.value=k,this;if(d==c.length-1)break;_==a&&dthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let s=this.matchPos<=this.to&&this.re.exec(this.curLine);if(s){let a=this.curLineStart+s.index,c=a+s[0].length;if(this.matchPos=c+(a==c?1:0),a==this.curLine.length&&this.nextLine(),athis.value.to)return this.value={from:a,to:c,match:s},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=a||c.to<=s){let b=new FlattenedDoc(s,e.sliceString(s,a));return flattened.set(e,b),b}if(c.from==s&&c.to==a)return c;let{text:d,from:_}=c;return _>s&&(d=e.sliceString(s,_)+d,_=s),c.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,s=this.re.exec(this.flat.text);if(s&&!s[0]&&s.index==e&&(this.re.lastIndex=e+1,s=this.re.exec(this.flat.text)),s&&this.flat.tothis.flat.text.length-10&&(s=null),s){let a=this.flat.from+s.index,c=a+s[0].length;return this.value={from:a,to:c,match:s},this.matchPos=c+(a==c?1:0),this}else{if(this.flat.to==this.to)return this.done=!0,this;this.flat=FlattenedDoc.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}}typeof Symbol!="undefined"&&(RegExpCursor.prototype[Symbol.iterator]=MultilineRegExpCursor.prototype[Symbol.iterator]=function(){return this});function validRegExp(o){try{return new RegExp(o,baseFlags),!0}catch{return!1}}function createLineDialog(o){let e=crelt("input",{class:"cm-textfield",name:"line"}),s=crelt("form",{class:"cm-gotoLine",onkeydown:c=>{c.keyCode==27?(c.preventDefault(),o.dispatch({effects:dialogEffect.of(!1)}),o.focus()):c.keyCode==13&&(c.preventDefault(),a())},onsubmit:c=>{c.preventDefault(),a()}},crelt("label",o.state.phrase("Go to line"),": ",e)," ",crelt("button",{class:"cm-button",type:"submit"},o.state.phrase("go")));function a(){let c=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!c)return;let{state:d}=o,_=d.doc.lineAt(d.selection.main.head),[,b,k,$,j]=c,_e=$?+$.slice(1):0,et=k?+k:_.number;if(k&&j){let nt=et/100;b&&(nt=nt*(b=="-"?-1:1)+_.number/d.doc.lines),et=Math.round(d.doc.lines*nt)}else k&&b&&(et=et*(b=="-"?-1:1)+_.number);let tt=d.doc.line(Math.max(1,Math.min(d.doc.lines,et)));o.dispatch({effects:dialogEffect.of(!1),selection:EditorSelection.cursor(tt.from+Math.max(0,Math.min(_e,tt.length))),scrollIntoView:!0}),o.focus()}return{dom:s}}const dialogEffect=StateEffect.define(),dialogField=StateField.define({create(){return!0},update(o,e){for(let s of e.effects)s.is(dialogEffect)&&(o=s.value);return o},provide:o=>showPanel.from(o,e=>e?createLineDialog:null)}),gotoLine=o=>{let e=getPanel(o,createLineDialog);if(!e){let s=[dialogEffect.of(!0)];o.state.field(dialogField,!1)==null&&s.push(StateEffect.appendConfig.of([dialogField,baseTheme$1$1])),o.dispatch({effects:s}),e=getPanel(o,createLineDialog)}return e&&e.dom.querySelector("input").focus(),!0},baseTheme$1$1=EditorView.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),defaultHighlightOptions={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},highlightConfig=Facet.define({combine(o){return combineConfig(o,defaultHighlightOptions,{highlightWordAroundCursor:(e,s)=>e||s,minSelectionLength:Math.min,maxMatches:Math.min})}});function highlightSelectionMatches(o){let e=[defaultTheme,matchHighlighter];return o&&e.push(highlightConfig.of(o)),e}const matchDeco=Decoration.mark({class:"cm-selectionMatch"}),mainMatchDeco=Decoration.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function insideWordBoundaries(o,e,s,a){return(s==0||o(e.sliceDoc(s-1,s))!=CharCategory.Word)&&(a==e.doc.length||o(e.sliceDoc(a,a+1))!=CharCategory.Word)}function insideWord(o,e,s,a){return o(e.sliceDoc(s,s+1))==CharCategory.Word&&o(e.sliceDoc(a-1,a))==CharCategory.Word}const matchHighlighter=ViewPlugin.fromClass(class{constructor(o){this.decorations=this.getDeco(o)}update(o){(o.selectionSet||o.docChanged||o.viewportChanged)&&(this.decorations=this.getDeco(o.view))}getDeco(o){let e=o.state.facet(highlightConfig),{state:s}=o,a=s.selection;if(a.ranges.length>1)return Decoration.none;let c=a.main,d,_=null;if(c.empty){if(!e.highlightWordAroundCursor)return Decoration.none;let k=s.wordAt(c.head);if(!k)return Decoration.none;_=s.charCategorizer(c.head),d=s.sliceDoc(k.from,k.to)}else{let k=c.to-c.from;if(k200)return Decoration.none;if(e.wholeWords){if(d=s.sliceDoc(c.from,c.to),_=s.charCategorizer(c.head),!(insideWordBoundaries(_,s,c.from,c.to)&&insideWord(_,s,c.from,c.to)))return Decoration.none}else if(d=s.sliceDoc(c.from,c.to).trim(),!d)return Decoration.none}let b=[];for(let k of o.visibleRanges){let $=new SearchCursor(s.doc,d,k.from,k.to);for(;!$.next().done;){let{from:j,to:_e}=$.value;if((!_||insideWordBoundaries(_,s,j,_e))&&(c.empty&&j<=c.from&&_e>=c.to?b.push(mainMatchDeco.range(j,_e)):(j>=c.to||_e<=c.from)&&b.push(matchDeco.range(j,_e)),b.length>e.maxMatches))return Decoration.none}}return Decoration.set(b)}},{decorations:o=>o.decorations}),defaultTheme=EditorView.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),selectWord=({state:o,dispatch:e})=>{let{selection:s}=o,a=EditorSelection.create(s.ranges.map(c=>o.wordAt(c.head)||EditorSelection.cursor(c.head)),s.mainIndex);return a.eq(s)?!1:(e(o.update({selection:a})),!0)};function findNextOccurrence(o,e){let{main:s,ranges:a}=o.selection,c=o.wordAt(s.head),d=c&&c.from==s.from&&c.to==s.to;for(let _=!1,b=new SearchCursor(o.doc,e,a[a.length-1].to);;)if(b.next(),b.done){if(_)return null;b=new SearchCursor(o.doc,e,0,Math.max(0,a[a.length-1].from-1)),_=!0}else{if(_&&a.some(k=>k.from==b.value.from))continue;if(d){let k=o.wordAt(b.value.from);if(!k||k.from!=b.value.from||k.to!=b.value.to)continue}return b.value}}const selectNextOccurrence=({state:o,dispatch:e})=>{let{ranges:s}=o.selection;if(s.some(d=>d.from===d.to))return selectWord({state:o,dispatch:e});let a=o.sliceDoc(s[0].from,s[0].to);if(o.selection.ranges.some(d=>o.sliceDoc(d.from,d.to)!=a))return!1;let c=findNextOccurrence(o,a);return c?(e(o.update({selection:o.selection.addRange(EditorSelection.range(c.from,c.to),!1),effects:EditorView.scrollIntoView(c.to)})),!0):!1},searchConfigFacet=Facet.define({combine(o){var e;return{top:o.reduce((s,a)=>s!=null?s:a.top,void 0)||!1,caseSensitive:o.reduce((s,a)=>s!=null?s:a.caseSensitive,void 0)||!1,createPanel:((e=o.find(s=>s.createPanel))===null||e===void 0?void 0:e.createPanel)||(s=>new SearchPanel(s))}}});class SearchQuery{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||validRegExp(this.search)),this.unquoted=e.literal?this.search:this.search.replace(/\\([nrt\\])/g,(s,a)=>a=="n"?` +`:a=="r"?"\r":a=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp}create(){return this.regexp?new RegExpQuery(this):new StringQuery(this)}getCursor(e,s=0,a=e.length){return this.regexp?regexpCursor(this,e,s,a):stringCursor(this,e,s,a)}}class QueryType{constructor(e){this.spec=e}}function stringCursor(o,e,s,a){return new SearchCursor(e,o.unquoted,s,a,o.caseSensitive?void 0:c=>c.toLowerCase())}class StringQuery extends QueryType{constructor(e){super(e)}nextMatch(e,s,a){let c=stringCursor(this.spec,e,a,e.length).nextOverlapping();return c.done&&(c=stringCursor(this.spec,e,0,s).nextOverlapping()),c.done?null:c.value}prevMatchInRange(e,s,a){for(let c=a;;){let d=Math.max(s,c-1e4-this.spec.unquoted.length),_=stringCursor(this.spec,e,d,c),b=null;for(;!_.nextOverlapping().done;)b=_.value;if(b)return b;if(d==s)return null;c-=1e4}}prevMatch(e,s,a){return this.prevMatchInRange(e,0,s)||this.prevMatchInRange(e,a,e.length)}getReplacement(e){return this.spec.replace}matchAll(e,s){let a=stringCursor(this.spec,e,0,e.length),c=[];for(;!a.next().done;){if(c.length>=s)return null;c.push(a.value)}return c}highlight(e,s,a,c){let d=stringCursor(this.spec,e,Math.max(0,s-this.spec.unquoted.length),Math.min(a+this.spec.unquoted.length,e.length));for(;!d.next().done;)c(d.value.from,d.value.to)}}function regexpCursor(o,e,s,a){return new RegExpCursor(e,o.search,o.caseSensitive?void 0:{ignoreCase:!0},s,a)}class RegExpQuery extends QueryType{nextMatch(e,s,a){let c=regexpCursor(this.spec,e,a,e.length).next();return c.done&&(c=regexpCursor(this.spec,e,0,s).next()),c.done?null:c.value}prevMatchInRange(e,s,a){for(let c=1;;c++){let d=Math.max(s,a-c*1e4),_=regexpCursor(this.spec,e,d,a),b=null;for(;!_.next().done;)b=_.value;if(b&&(d==s||b.from>d+10))return b;if(d==s)return null}}prevMatch(e,s,a){return this.prevMatchInRange(e,0,s)||this.prevMatchInRange(e,a,e.length)}getReplacement(e){return this.spec.replace.replace(/\$([$&\d+])/g,(s,a)=>a=="$"?"$":a=="&"?e.match[0]:a!="0"&&+a=s)return null;c.push(a.value)}return c}highlight(e,s,a,c){let d=regexpCursor(this.spec,e,Math.max(0,s-250),Math.min(a+250,e.length));for(;!d.next().done;)c(d.value.from,d.value.to)}}const setSearchQuery=StateEffect.define(),togglePanel$1=StateEffect.define(),searchState=StateField.define({create(o){return new SearchState(defaultQuery(o).create(),null)},update(o,e){for(let s of e.effects)s.is(setSearchQuery)?o=new SearchState(s.value.create(),o.panel):s.is(togglePanel$1)&&(o=new SearchState(o.query,s.value?createSearchPanel:null));return o},provide:o=>showPanel.from(o,e=>e.panel)});class SearchState{constructor(e,s){this.query=e,this.panel=s}}const matchMark=Decoration.mark({class:"cm-searchMatch"}),selectedMatchMark=Decoration.mark({class:"cm-searchMatch cm-searchMatch-selected"}),searchHighlighter=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.decorations=this.highlight(o.state.field(searchState))}update(o){let e=o.state.field(searchState);(e!=o.startState.field(searchState)||o.docChanged||o.selectionSet||o.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:o,panel:e}){if(!e||!o.spec.valid)return Decoration.none;let{view:s}=this,a=new RangeSetBuilder;for(let c=0,d=s.visibleRanges,_=d.length;c<_;c++){let{from:b,to:k}=d[c];for(;c<_-1&&k>d[c+1].from-2*250;)k=d[++c].to;o.highlight(s.state.doc,b,k,($,j)=>{let _e=s.state.selection.ranges.some(et=>et.from==$&&et.to==j);a.add($,j,_e?selectedMatchMark:matchMark)})}return a.finish()}},{decorations:o=>o.decorations});function searchCommand(o){return e=>{let s=e.state.field(searchState,!1);return s&&s.query.spec.valid?o(e,s):openSearchPanel(e)}}const findNext=searchCommand((o,{query:e})=>{let{to:s}=o.state.selection.main,a=e.nextMatch(o.state.doc,s,s);return a?(o.dispatch({selection:{anchor:a.from,head:a.to},scrollIntoView:!0,effects:announceMatch(o,a),userEvent:"select.search"}),!0):!1}),findPrevious=searchCommand((o,{query:e})=>{let{state:s}=o,{from:a}=s.selection.main,c=e.prevMatch(s.doc,a,a);return c?(o.dispatch({selection:{anchor:c.from,head:c.to},scrollIntoView:!0,effects:announceMatch(o,c),userEvent:"select.search"}),!0):!1}),selectMatches=searchCommand((o,{query:e})=>{let s=e.matchAll(o.state.doc,1e3);return!s||!s.length?!1:(o.dispatch({selection:EditorSelection.create(s.map(a=>EditorSelection.range(a.from,a.to))),userEvent:"select.search.matches"}),!0)}),selectSelectionMatches=({state:o,dispatch:e})=>{let s=o.selection;if(s.ranges.length>1||s.main.empty)return!1;let{from:a,to:c}=s.main,d=[],_=0;for(let b=new SearchCursor(o.doc,o.sliceDoc(a,c));!b.next().done;){if(d.length>1e3)return!1;b.value.from==a&&(_=d.length),d.push(EditorSelection.range(b.value.from,b.value.to))}return e(o.update({selection:EditorSelection.create(d,_),userEvent:"select.search.matches"})),!0},replaceNext=searchCommand((o,{query:e})=>{let{state:s}=o,{from:a,to:c}=s.selection.main;if(s.readOnly)return!1;let d=e.nextMatch(s.doc,a,a);if(!d)return!1;let _=[],b,k,$=[];if(d.from==a&&d.to==c&&(k=s.toText(e.getReplacement(d)),_.push({from:d.from,to:d.to,insert:k}),d=e.nextMatch(s.doc,d.from,d.to),$.push(EditorView.announce.of(s.phrase("replaced match on line $",s.doc.lineAt(a).number)+"."))),d){let j=_.length==0||_[0].from>=d.to?0:d.to-d.from-k.length;b={anchor:d.from-j,head:d.to-j},$.push(announceMatch(o,d))}return o.dispatch({changes:_,selection:b,scrollIntoView:!!b,effects:$,userEvent:"input.replace"}),!0}),replaceAll=searchCommand((o,{query:e})=>{if(o.state.readOnly)return!1;let s=e.matchAll(o.state.doc,1e9).map(c=>{let{from:d,to:_}=c;return{from:d,to:_,insert:e.getReplacement(c)}});if(!s.length)return!1;let a=o.state.phrase("replaced $ matches",s.length)+".";return o.dispatch({changes:s,effects:EditorView.announce.of(a),userEvent:"input.replace.all"}),!0});function createSearchPanel(o){return o.state.facet(searchConfigFacet).createPanel(o)}function defaultQuery(o,e){var s;let a=o.selection.main,c=a.empty||a.to>a.from+100?"":o.sliceDoc(a.from,a.to),d=(s=e==null?void 0:e.caseSensitive)!==null&&s!==void 0?s:o.facet(searchConfigFacet).caseSensitive;return e&&!c?e:new SearchQuery({search:c.replace(/\n/g,"\\n"),caseSensitive:d})}const openSearchPanel=o=>{let e=o.state.field(searchState,!1);if(e&&e.panel){let s=getPanel(o,createSearchPanel);if(!s)return!1;let a=s.dom.querySelector("[main-field]");if(a&&a!=o.root.activeElement){let c=defaultQuery(o.state,e.query.spec);c.valid&&o.dispatch({effects:setSearchQuery.of(c)}),a.focus(),a.select()}}else o.dispatch({effects:[togglePanel$1.of(!0),e?setSearchQuery.of(defaultQuery(o.state,e.query.spec)):StateEffect.appendConfig.of(searchExtensions)]});return!0},closeSearchPanel=o=>{let e=o.state.field(searchState,!1);if(!e||!e.panel)return!1;let s=getPanel(o,createSearchPanel);return s&&s.dom.contains(o.root.activeElement)&&o.focus(),o.dispatch({effects:togglePanel$1.of(!1)}),!0},searchKeymap=[{key:"Mod-f",run:openSearchPanel,scope:"editor search-panel"},{key:"F3",run:findNext,shift:findPrevious,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:findNext,shift:findPrevious,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:closeSearchPanel,scope:"editor search-panel"},{key:"Mod-Shift-l",run:selectSelectionMatches},{key:"Alt-g",run:gotoLine},{key:"Mod-d",run:selectNextOccurrence,preventDefault:!0}];class SearchPanel{constructor(e){this.view=e;let s=this.query=e.state.field(searchState).query.spec;this.commit=this.commit.bind(this),this.searchField=crelt("input",{value:s.search,placeholder:phrase(e,"Find"),"aria-label":phrase(e,"Find"),class:"cm-textfield",name:"search","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=crelt("input",{value:s.replace,placeholder:phrase(e,"Replace"),"aria-label":phrase(e,"Replace"),class:"cm-textfield",name:"replace",onchange:this.commit,onkeyup:this.commit}),this.caseField=crelt("input",{type:"checkbox",name:"case",checked:s.caseSensitive,onchange:this.commit}),this.reField=crelt("input",{type:"checkbox",name:"re",checked:s.regexp,onchange:this.commit});function a(c,d,_){return crelt("button",{class:"cm-button",name:c,onclick:d,type:"button"},_)}this.dom=crelt("div",{onkeydown:c=>this.keydown(c),class:"cm-search"},[this.searchField,a("next",()=>findNext(e),[phrase(e,"next")]),a("prev",()=>findPrevious(e),[phrase(e,"previous")]),a("select",()=>selectMatches(e),[phrase(e,"all")]),crelt("label",null,[this.caseField,phrase(e,"match case")]),crelt("label",null,[this.reField,phrase(e,"regexp")]),...e.state.readOnly?[]:[crelt("br"),this.replaceField,a("replace",()=>replaceNext(e),[phrase(e,"replace")]),a("replaceAll",()=>replaceAll(e),[phrase(e,"replace all")]),crelt("button",{name:"close",onclick:()=>closeSearchPanel(e),"aria-label":phrase(e,"close"),type:"button"},["\xD7"])]])}commit(){let e=new SearchQuery({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:setSearchQuery.of(e)}))}keydown(e){runScopeHandlers(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?findPrevious:findNext)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),replaceNext(this.view))}update(e){for(let s of e.transactions)for(let a of s.effects)a.is(setSearchQuery)&&!a.value.eq(this.query)&&this.setQuery(a.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(searchConfigFacet).top}}function phrase(o,e){return o.state.phrase(e)}const AnnounceMargin=30,Break=/[\s\.,:;?!]/;function announceMatch(o,{from:e,to:s}){let a=o.state.doc.lineAt(e),c=o.state.doc.lineAt(s).to,d=Math.max(a.from,e-AnnounceMargin),_=Math.min(c,s+AnnounceMargin),b=o.state.sliceDoc(d,_);if(d!=a.from){for(let k=0;kb.length-AnnounceMargin;k--)if(!Break.test(b[k-1])&&Break.test(b[k])){b=b.slice(0,k);break}}return EditorView.announce.of(`${o.state.phrase("current match")}. ${b} ${o.state.phrase("on line")} ${a.number}.`)}const baseTheme$2=EditorView.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),searchExtensions=[searchState,Prec.lowest(searchHighlighter),baseTheme$2];class CompletionContext{constructor(e,s,a){this.state=e,this.pos=s,this.explicit=a,this.abortListeners=[]}tokenBefore(e){let s=syntaxTree(this.state).resolveInner(this.pos,-1);for(;s&&e.indexOf(s.name)<0;)s=s.parent;return s?{from:s.from,to:this.pos,text:this.state.sliceDoc(s.from,this.pos),type:s.type}:null}matchBefore(e){let s=this.state.doc.lineAt(this.pos),a=Math.max(s.from,this.pos-250),c=s.text.slice(a-s.from,this.pos-s.from),d=c.search(ensureAnchor(e,!1));return d<0?null:{from:a+d,to:this.pos,text:c.slice(d)}}get aborted(){return this.abortListeners==null}addEventListener(e,s){e=="abort"&&this.abortListeners&&this.abortListeners.push(s)}}function toSet(o){let e=Object.keys(o).join(""),s=/\w/.test(e);return s&&(e=e.replace(/\w/g,"")),`[${s?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function prefixMatch(o){let e=Object.create(null),s=Object.create(null);for(let{label:c}of o){e[c[0]]=!0;for(let d=1;dtypeof c=="string"?{label:c}:c),[s,a]=e.every(c=>/^\w+$/.test(c.label))?[/\w*$/,/\w+$/]:prefixMatch(e);return c=>{let d=c.matchBefore(a);return d||c.explicit?{from:d?d.from:c.pos,options:e,validFor:s}:null}}function ifNotIn(o,e){return s=>{for(let a=syntaxTree(s.state).resolveInner(s.pos,-1);a;a=a.parent)if(o.indexOf(a.name)>-1)return null;return e(s)}}class Option{constructor(e,s,a){this.completion=e,this.source=s,this.match=a}}function cur(o){return o.selection.main.head}function ensureAnchor(o,e){var s;let{source:a}=o,c=e&&a[0]!="^",d=a[a.length-1]!="$";return!c&&!d?o:new RegExp(`${c?"^":""}(?:${a})${d?"$":""}`,(s=o.flags)!==null&&s!==void 0?s:o.ignoreCase?"i":"")}function insertCompletionText(o,e,s,a){return Object.assign(Object.assign({},o.changeByRange(c=>{if(c==o.selection.main)return{changes:{from:s,to:a,insert:e},range:EditorSelection.cursor(s+e.length)};let d=a-s;return!c.empty||d&&o.sliceDoc(c.from-d,c.from)!=o.sliceDoc(s,a)?{range:c}:{changes:{from:c.from-d,to:c.from,insert:e},range:EditorSelection.cursor(c.from-d+e.length)}})),{userEvent:"input.complete"})}function applyCompletion(o,e){const s=e.completion.apply||e.completion.label;let a=e.source;typeof s=="string"?o.dispatch(insertCompletionText(o.state,s,a.from,a.to)):s(o,e.completion,a.from,a.to)}const SourceCache=new WeakMap;function asSource(o){if(!Array.isArray(o))return o;let e=SourceCache.get(o);return e||SourceCache.set(o,e=completeFromList(o)),e}class FuzzyMatcher{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let s=0;s=48&&ct<=57||ct>=97&&ct<=122?2:ct>=65&&ct<=90?1:0:(ut=fromCodePoint(ct))!=ut.toLowerCase()?1:ut!=ut.toUpperCase()?2:0;(!at||lt==1&&rt||ht==0&<!=0)&&(s[_e]==ct||a[_e]==ct&&(et=!0)?_[_e++]=at:_.length&&(it=!1)),ht=lt,at+=codePointSize(ct)}return _e==k&&_[0]==0&&it?this.result(-100+(et?-200:0),_,e):tt==k&&nt==0?[-200-e.length,0,st]:b>-1?[-700-e.length,b,b+this.pattern.length]:tt==k?[-200+-700-e.length,nt,st]:_e==k?this.result(-100+(et?-200:0)+-700+(it?0:-1100),_,e):s.length==2?null:this.result((c[0]?-700:0)+-200+-1100,c,e)}result(e,s,a){let c=[e-a.length],d=1;for(let _ of s){let b=_+(this.astral?codePointSize(codePointAt(a,_)):1);d>1&&c[d-1]==_?c[d-1]=b:(c[d++]=_,c[d++]=b)}return c}}const completionConfig=Facet.define({combine(o){return combineConfig(o,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],compareCompletions:(e,s)=>e.label.localeCompare(s.label)},{defaultKeymap:(e,s)=>e&&s,closeOnBlur:(e,s)=>e&&s,icons:(e,s)=>e&&s,optionClass:(e,s)=>a=>joinClass(e(a),s(a)),addToOptions:(e,s)=>e.concat(s)})}});function joinClass(o,e){return o?e?o+" "+e:o:e}function optionContent(o){let e=o.addToOptions.slice();return o.icons&&e.push({render(s){let a=document.createElement("div");return a.classList.add("cm-completionIcon"),s.type&&a.classList.add(...s.type.split(/\s+/g).map(c=>"cm-completionIcon-"+c)),a.setAttribute("aria-hidden","true"),a},position:20}),e.push({render(s,a,c){let d=document.createElement("span");d.className="cm-completionLabel";let{label:_}=s,b=0;for(let k=1;kb&&d.appendChild(document.createTextNode(_.slice(b,$)));let _e=d.appendChild(document.createElement("span"));_e.appendChild(document.createTextNode(_.slice($,j))),_e.className="cm-completionMatchedText",b=j}return b<_.length&&d.appendChild(document.createTextNode(_.slice(b))),d},position:50},{render(s){if(!s.detail)return null;let a=document.createElement("span");return a.className="cm-completionDetail",a.textContent=s.detail,a},position:80}),e.sort((s,a)=>s.position-a.position).map(s=>s.render)}function rangeAroundSelected(o,e,s){if(o<=s)return{from:0,to:o};if(e<0&&(e=0),e<=o>>1){let c=Math.floor(e/s);return{from:c*s,to:(c+1)*s}}let a=Math.floor((o-e)/s);return{from:o-(a+1)*s,to:o-a*s}}class CompletionTooltip{constructor(e,s){this.view=e,this.stateField=s,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:b=>this.positionInfo(b),key:this};let a=e.state.field(s),{options:c,selected:d}=a.open,_=e.state.facet(completionConfig);this.optionContent=optionContent(_),this.optionClass=_.optionClass,this.range=rangeAroundSelected(c.length,d,_.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.dom.addEventListener("mousedown",b=>{for(let k=b.target,$;k&&k!=this.dom;k=k.parentNode)if(k.nodeName=="LI"&&($=/-(\d+)$/.exec(k.id))&&+$[1]{this.info&&this.view.requestMeasure(this.placeInfo)})}mount(){this.updateSel()}update(e){e.state.field(this.stateField)!=e.startState.field(this.stateField)&&this.updateSel()}positioned(){this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let e=this.view.state.field(this.stateField),s=e.open;if((s.selected=this.range.to)&&(this.range=rangeAroundSelected(s.options.length,s.selected,this.view.state.facet(completionConfig).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(s.options,e.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})),this.updateSelectedOption(s.selected)){this.info&&(this.info.remove(),this.info=null);let{completion:a}=s.options[s.selected],{info:c}=a;if(!c)return;let d=typeof c=="string"?document.createTextNode(c):c(a);if(!d)return;"then"in d?d.then(_=>{_&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(_)}).catch(_=>logException(this.view.state,_,"completion info")):this.addInfoPane(d)}}addInfoPane(e){let s=this.info=document.createElement("div");s.className="cm-tooltip cm-completionInfo",s.appendChild(e),this.dom.appendChild(s),this.view.requestMeasure(this.placeInfo)}updateSelectedOption(e){let s=null;for(let a=this.list.firstChild,c=this.range.from;a;a=a.nextSibling,c++)c==e?a.hasAttribute("aria-selected")||(a.setAttribute("aria-selected","true"),s=a):a.hasAttribute("aria-selected")&&a.removeAttribute("aria-selected");return s&&scrollIntoView(this.list,s),s}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let s=this.dom.getBoundingClientRect(),a=this.info.getBoundingClientRect(),c=e.getBoundingClientRect();if(c.top>Math.min(innerHeight,s.bottom)-10||c.bottomnew CompletionTooltip(e,o)}function scrollIntoView(o,e){let s=o.getBoundingClientRect(),a=e.getBoundingClientRect();a.tops.bottom&&(o.scrollTop+=a.bottom-s.bottom)}function score(o){return(o.boost||0)*100+(o.apply?10:0)+(o.info?5:0)+(o.type?1:0)}function sortOptions(o,e){let s=[],a=0;for(let b of o)if(b.hasResult())if(b.result.filter===!1){let k=b.result.getMatch;for(let $ of b.result.options){let j=[1e9-a++];if(k)for(let _e of k($))j.push(_e);s.push(new Option($,b,j))}}else{let k=new FuzzyMatcher(e.sliceDoc(b.from,b.to)),$;for(let j of b.result.options)($=k.match(j.label))&&(j.boost!=null&&($[0]+=j.boost),s.push(new Option(j,b,$)))}let c=[],d=null,_=e.facet(completionConfig).compareCompletions;for(let b of s.sort((k,$)=>$.match[0]-k.match[0]||_(k.completion,$.completion)))!d||d.label!=b.completion.label||d.detail!=b.completion.detail||d.type!=null&&b.completion.type!=null&&d.type!=b.completion.type||d.apply!=b.completion.apply?c.push(b):score(b.completion)>score(d)&&(c[c.length-1]=b),d=b.completion;return c}class CompletionDialog{constructor(e,s,a,c,d){this.options=e,this.attrs=s,this.tooltip=a,this.timestamp=c,this.selected=d}setSelected(e,s){return e==this.selected||e>=this.options.length?this:new CompletionDialog(this.options,makeAttrs(s,e),this.tooltip,this.timestamp,e)}static build(e,s,a,c,d){let _=sortOptions(e,s);if(!_.length)return null;let b=s.facet(completionConfig).selectOnOpen?0:-1;if(c&&c.selected!=b&&c.selected!=-1){let k=c.options[c.selected].completion;for(let $=0;$<_.length;$++)if(_[$].completion==k){b=$;break}}return new CompletionDialog(_,makeAttrs(a,b),{pos:e.reduce((k,$)=>$.hasResult()?Math.min(k,$.from):k,1e8),create:completionTooltip(completionState),above:d.aboveCursor},c?c.timestamp:Date.now(),b)}map(e){return new CompletionDialog(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected)}}class CompletionState{constructor(e,s,a){this.active=e,this.id=s,this.open=a}static start(){return new CompletionState(none,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:s}=e,a=s.facet(completionConfig),d=(a.override||s.languageDataAt("autocomplete",cur(s)).map(asSource)).map(b=>(this.active.find($=>$.source==b)||new ActiveSource(b,this.active.some($=>$.state!=0)?1:0)).update(e,a));d.length==this.active.length&&d.every((b,k)=>b==this.active[k])&&(d=this.active);let _=e.selection||d.some(b=>b.hasResult()&&e.changes.touchesRange(b.from,b.to))||!sameResults(d,this.active)?CompletionDialog.build(d,s,this.id,this.open,a):this.open&&e.docChanged?this.open.map(e.changes):this.open;!_&&d.every(b=>b.state!=1)&&d.some(b=>b.hasResult())&&(d=d.map(b=>b.hasResult()?new ActiveSource(b.source,0):b));for(let b of e.effects)b.is(setSelectedEffect)&&(_=_&&_.setSelected(b.value,this.id));return d==this.active&&_==this.open?this:new CompletionState(d,this.id,_)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:baseAttrs}}function sameResults(o,e){if(o==e)return!0;for(let s=0,a=0;;){for(;s-1&&(s["aria-activedescendant"]=o+"-"+e),s}const none=[];function getUserEvent(o){return o.isUserEvent("input.type")?"input":o.isUserEvent("delete.backward")?"delete":null}class ActiveSource{constructor(e,s,a=-1){this.source=e,this.state=s,this.explicitPos=a}hasResult(){return!1}update(e,s){let a=getUserEvent(e),c=this;a?c=c.handleUserEvent(e,a,s):e.docChanged?c=c.handleChange(e):e.selection&&c.state!=0&&(c=new ActiveSource(c.source,0));for(let d of e.effects)if(d.is(startCompletionEffect))c=new ActiveSource(c.source,1,d.value?cur(e.state):-1);else if(d.is(closeCompletionEffect))c=new ActiveSource(c.source,0);else if(d.is(setActiveEffect))for(let _ of d.value)_.source==c.source&&(c=_);return c}handleUserEvent(e,s,a){return s=="delete"||!a.activateOnTyping?this.map(e.changes):new ActiveSource(this.source,1)}handleChange(e){return e.changes.touchesRange(cur(e.startState))?new ActiveSource(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new ActiveSource(this.source,this.state,e.mapPos(this.explicitPos))}}class ActiveResult extends ActiveSource{constructor(e,s,a,c,d){super(e,2,s),this.result=a,this.from=c,this.to=d}hasResult(){return!0}handleUserEvent(e,s,a){var c;let d=e.changes.mapPos(this.from),_=e.changes.mapPos(this.to,1),b=cur(e.state);if((this.explicitPos<0?b<=d:b_||s=="delete"&&cur(e.startState)==this.from)return new ActiveSource(this.source,s=="input"&&a.activateOnTyping?1:0);let k=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos),$;return checkValid(this.result.validFor,e.state,d,_)?new ActiveResult(this.source,k,this.result,d,_):this.result.update&&($=this.result.update(this.result,d,_,new CompletionContext(e.state,b,k>=0)))?new ActiveResult(this.source,k,$,$.from,(c=$.to)!==null&&c!==void 0?c:cur(e.state)):new ActiveSource(this.source,1,k)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new ActiveSource(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new ActiveResult(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}function checkValid(o,e,s,a){if(!o)return!1;let c=e.sliceDoc(s,a);return typeof o=="function"?o(c,s,a,e):ensureAnchor(o,!0).test(c)}const startCompletionEffect=StateEffect.define(),closeCompletionEffect=StateEffect.define(),setActiveEffect=StateEffect.define({map(o,e){return o.map(s=>s.map(e))}}),setSelectedEffect=StateEffect.define(),completionState=StateField.define({create(){return CompletionState.start()},update(o,e){return o.update(e)},provide:o=>[showTooltip.from(o,e=>e.tooltip),EditorView.contentAttributes.from(o,e=>e.attrs)]}),CompletionInteractMargin=75;function moveCompletionSelection(o,e="option"){return s=>{let a=s.state.field(completionState,!1);if(!a||!a.open||Date.now()-a.open.timestamp-1?a.open.selected+c*(o?1:-1):o?0:_-1;return b<0?b=e=="page"?0:_-1:b>=_&&(b=e=="page"?_-1:0),s.dispatch({effects:setSelectedEffect.of(b)}),!0}}const acceptCompletion=o=>{let e=o.state.field(completionState,!1);return o.state.readOnly||!e||!e.open||Date.now()-e.open.timestampo.state.field(completionState,!1)?(o.dispatch({effects:startCompletionEffect.of(!0)}),!0):!1,closeCompletion=o=>{let e=o.state.field(completionState,!1);return!e||!e.active.some(s=>s.state!=0)?!1:(o.dispatch({effects:closeCompletionEffect.of(null)}),!0)};class RunningQuery{constructor(e,s){this.active=e,this.context=s,this.time=Date.now(),this.updates=[],this.done=void 0}}const DebounceTime=50,MaxUpdateCount=50,MinAbortTime=1e3,completionPlugin=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let e of o.state.field(completionState).active)e.state==1&&this.startQuery(e)}update(o){let e=o.state.field(completionState);if(!o.selectionSet&&!o.docChanged&&o.startState.field(completionState)==e)return;let s=o.transactions.some(a=>(a.selection||a.docChanged)&&!getUserEvent(a));for(let a=0;aMaxUpdateCount&&Date.now()-c.time>MinAbortTime){for(let d of c.context.abortListeners)try{d()}catch(_){logException(this.view.state,_)}c.context.abortListeners=null,this.running.splice(a--,1)}else c.updates.push(...o.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=e.active.some(a=>a.state==1&&!this.running.some(c=>c.active.source==a.source))?setTimeout(()=>this.startUpdate(),DebounceTime):-1,this.composing!=0)for(let a of o.transactions)getUserEvent(a)=="input"?this.composing=2:this.composing==2&&a.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:o}=this.view,e=o.field(completionState);for(let s of e.active)s.state==1&&!this.running.some(a=>a.active.source==s.source)&&this.startQuery(s)}startQuery(o){let{state:e}=this.view,s=cur(e),a=new CompletionContext(e,s,o.explicitPos==s),c=new RunningQuery(o,a);this.running.push(c),Promise.resolve(o.source(a)).then(d=>{c.context.aborted||(c.done=d||null,this.scheduleAccept())},d=>{this.view.dispatch({effects:closeCompletionEffect.of(null)}),logException(this.view.state,d)})}scheduleAccept(){this.running.every(o=>o.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),DebounceTime))}accept(){var o;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],s=this.view.state.facet(completionConfig);for(let a=0;a_.source==c.active.source);if(d&&d.state==1)if(c.done==null){let _=new ActiveSource(c.active.source,0);for(let b of c.updates)_=_.update(b,s);_.state!=1&&e.push(_)}else this.startQuery(d)}e.length&&this.view.dispatch({effects:setActiveEffect.of(e)})}},{eventHandlers:{blur(){let o=this.view.state.field(completionState,!1);o&&o.tooltip&&this.view.state.facet(completionConfig).closeOnBlur&&this.view.dispatch({effects:closeCompletionEffect.of(null)})},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:startCompletionEffect.of(!1)}),20),this.composing=0}}}),baseTheme$1=EditorView.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",listStyle:"none",margin:0,padding:0,"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"300px"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class FieldPos{constructor(e,s,a,c){this.field=e,this.line=s,this.from=a,this.to=c}}class FieldRange{constructor(e,s,a){this.field=e,this.from=s,this.to=a}map(e){let s=e.mapPos(this.from,-1,MapMode.TrackDel),a=e.mapPos(this.to,1,MapMode.TrackDel);return s==null||a==null?null:new FieldRange(this.field,s,a)}}class Snippet{constructor(e,s){this.lines=e,this.fieldPositions=s}instantiate(e,s){let a=[],c=[s],d=e.doc.lineAt(s),_=/^\s*/.exec(d.text)[0];for(let k of this.lines){if(a.length){let $=_,j=/^\t*/.exec(k)[0].length;for(let _e=0;_enew FieldRange(k.field,c[k.line]+k.from,c[k.line]+k.to));return{text:a,ranges:b}}static parse(e){let s=[],a=[],c=[],d;for(let _ of e.split(/\r\n?|\n/)){for(;d=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(_);){let b=d[1]?+d[1]:null,k=d[2]||d[3]||"",$=-1;for(let j=0;j=$&&_e.field++}c.push(new FieldPos($,a.length,d.index,d.index+k.length)),_=_.slice(0,d.index)+k+_.slice(d.index+d[0].length)}for(let b;b=/([$#])\\{/.exec(_);){_=_.slice(0,b.index)+b[1]+"{"+_.slice(b.index+b[0].length);for(let k of c)k.line==a.length&&k.from>b.index&&(k.from--,k.to--)}a.push(_)}return new Snippet(a,c)}}let fieldMarker=Decoration.widget({widget:new class extends WidgetType{toDOM(){let o=document.createElement("span");return o.className="cm-snippetFieldPosition",o}ignoreEvent(){return!1}}}),fieldRange=Decoration.mark({class:"cm-snippetField"});class ActiveSnippet{constructor(e,s){this.ranges=e,this.active=s,this.deco=Decoration.set(e.map(a=>(a.from==a.to?fieldMarker:fieldRange).range(a.from,a.to)))}map(e){let s=[];for(let a of this.ranges){let c=a.map(e);if(!c)return null;s.push(c)}return new ActiveSnippet(s,this.active)}selectionInsideField(e){return e.ranges.every(s=>this.ranges.some(a=>a.field==this.active&&a.from<=s.from&&a.to>=s.to))}}const setActive=StateEffect.define({map(o,e){return o&&o.map(e)}}),moveToField=StateEffect.define(),snippetState=StateField.define({create(){return null},update(o,e){for(let s of e.effects){if(s.is(setActive))return s.value;if(s.is(moveToField)&&o)return new ActiveSnippet(o.ranges,s.value)}return o&&e.docChanged&&(o=o.map(e.changes)),o&&e.selection&&!o.selectionInsideField(e.selection)&&(o=null),o},provide:o=>EditorView.decorations.from(o,e=>e?e.deco:Decoration.none)});function fieldSelection(o,e){return EditorSelection.create(o.filter(s=>s.field==e).map(s=>EditorSelection.range(s.from,s.to)))}function snippet(o){let e=Snippet.parse(o);return(s,a,c,d)=>{let{text:_,ranges:b}=e.instantiate(s.state,c),k={changes:{from:c,to:d,insert:Text.of(_)},scrollIntoView:!0};if(b.length&&(k.selection=fieldSelection(b,0)),b.length>1){let $=new ActiveSnippet(b,0),j=k.effects=[setActive.of($)];s.state.field(snippetState,!1)===void 0&&j.push(StateEffect.appendConfig.of([snippetState,addSnippetKeymap,snippetPointerHandler,baseTheme$1]))}s.dispatch(s.state.update(k))}}function moveField(o){return({state:e,dispatch:s})=>{let a=e.field(snippetState,!1);if(!a||o<0&&a.active==0)return!1;let c=a.active+o,d=o>0&&!a.ranges.some(_=>_.field==c+o);return s(e.update({selection:fieldSelection(a.ranges,c),effects:setActive.of(d?null:new ActiveSnippet(a.ranges,c))})),!0}}const clearSnippet=({state:o,dispatch:e})=>o.field(snippetState,!1)?(e(o.update({effects:setActive.of(null)})),!0):!1,nextSnippetField=moveField(1),prevSnippetField=moveField(-1),defaultSnippetKeymap=[{key:"Tab",run:nextSnippetField,shift:prevSnippetField},{key:"Escape",run:clearSnippet}],snippetKeymap=Facet.define({combine(o){return o.length?o[0]:defaultSnippetKeymap}}),addSnippetKeymap=Prec.highest(keymap.compute([snippetKeymap],o=>o.facet(snippetKeymap)));function snippetCompletion(o,e){return Object.assign(Object.assign({},e),{apply:snippet(o)})}const snippetPointerHandler=EditorView.domEventHandlers({mousedown(o,e){let s=e.state.field(snippetState,!1),a;if(!s||(a=e.posAtCoords({x:o.clientX,y:o.clientY}))==null)return!1;let c=s.ranges.find(d=>d.from<=a&&d.to>=a);return!c||c.field==s.active?!1:(e.dispatch({selection:fieldSelection(s.ranges,c.field),effects:setActive.of(s.ranges.some(d=>d.field>c.field)?new ActiveSnippet(s.ranges,c.field):null)}),!0)}}),defaults={brackets:["(","[","{","'",'"'],before:")]}:;>"},closeBracketEffect=StateEffect.define({map(o,e){let s=e.mapPos(o,-1,MapMode.TrackAfter);return s==null?void 0:s}}),skipBracketEffect=StateEffect.define({map(o,e){return e.mapPos(o)}}),closedBracket=new class extends RangeValue{};closedBracket.startSide=1;closedBracket.endSide=-1;const bracketState=StateField.define({create(){return RangeSet.empty},update(o,e){if(e.selection){let s=e.state.doc.lineAt(e.selection.main.head).from,a=e.startState.doc.lineAt(e.startState.selection.main.head).from;s!=e.changes.mapPos(a,-1)&&(o=RangeSet.empty)}o=o.map(e.changes);for(let s of e.effects)s.is(closeBracketEffect)?o=o.update({add:[closedBracket.range(s.value,s.value+1)]}):s.is(skipBracketEffect)&&(o=o.update({filter:a=>a!=s.value}));return o}});function closeBrackets(){return[inputHandler,bracketState]}const definedClosing="()[]{}<>";function closing(o){for(let e=0;e{if((android$1?o.composing:o.compositionStarted)||o.state.readOnly)return!1;let c=o.state.selection.main;if(a.length>2||a.length==2&&codePointSize(codePointAt(a,0))==1||e!=c.from||s!=c.to)return!1;let d=insertBracket(o.state,a);return d?(o.dispatch(d),!0):!1}),deleteBracketPair=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let a=config(o,o.selection.main.head).brackets||defaults.brackets,c=null,d=o.changeByRange(_=>{if(_.empty){let b=prevChar(o.doc,_.head);for(let k of a)if(k==b&&nextChar(o.doc,_.head)==closing(codePointAt(k,0)))return{changes:{from:_.head-k.length,to:_.head+k.length},range:EditorSelection.cursor(_.head-k.length),userEvent:"delete.backward"}}return{range:c=_}});return c||e(o.update(d,{scrollIntoView:!0})),!c},closeBracketsKeymap=[{key:"Backspace",run:deleteBracketPair}];function insertBracket(o,e){let s=config(o,o.selection.main.head),a=s.brackets||defaults.brackets;for(let c of a){let d=closing(codePointAt(c,0));if(e==c)return d==c?handleSame(o,c,a.indexOf(c+c+c)>-1):handleOpen(o,c,d,s.before||defaults.before);if(e==d&&closedBracketAt(o,o.selection.main.from))return handleClose(o,c,d)}return null}function closedBracketAt(o,e){let s=!1;return o.field(bracketState).between(0,o.doc.length,a=>{a==e&&(s=!0)}),s}function nextChar(o,e){let s=o.sliceString(e,e+2);return s.slice(0,codePointSize(codePointAt(s,0)))}function prevChar(o,e){let s=o.sliceString(e-2,e);return codePointSize(codePointAt(s,0))==s.length?s:s.slice(1)}function handleOpen(o,e,s,a){let c=null,d=o.changeByRange(_=>{if(!_.empty)return{changes:[{insert:e,from:_.from},{insert:s,from:_.to}],effects:closeBracketEffect.of(_.to+e.length),range:EditorSelection.range(_.anchor+e.length,_.head+e.length)};let b=nextChar(o.doc,_.head);return!b||/\s/.test(b)||a.indexOf(b)>-1?{changes:{insert:e+s,from:_.head},effects:closeBracketEffect.of(_.head+e.length),range:EditorSelection.cursor(_.head+e.length)}:{range:c=_}});return c?null:o.update(d,{scrollIntoView:!0,userEvent:"input.type"})}function handleClose(o,e,s){let a=null,c=o.selection.ranges.map(d=>d.empty&&nextChar(o.doc,d.head)==s?EditorSelection.cursor(d.head+s.length):a=d);return a?null:o.update({selection:EditorSelection.create(c,o.selection.mainIndex),scrollIntoView:!0,effects:o.selection.ranges.map(({from:d})=>skipBracketEffect.of(d))})}function handleSame(o,e,s){let a=null,c=o.changeByRange(d=>{if(!d.empty)return{changes:[{insert:e,from:d.from},{insert:e,from:d.to}],effects:closeBracketEffect.of(d.to+e.length),range:EditorSelection.range(d.anchor+e.length,d.head+e.length)};let _=d.head,b=nextChar(o.doc,_);if(b==e){if(nodeStart(o,_))return{changes:{insert:e+e,from:_},effects:closeBracketEffect.of(_+e.length),range:EditorSelection.cursor(_+e.length)};if(closedBracketAt(o,_)){let k=s&&o.sliceDoc(_,_+e.length*3)==e+e+e;return{range:EditorSelection.cursor(_+e.length*(k?3:1)),effects:skipBracketEffect.of(_)}}}else{if(s&&o.sliceDoc(_-2*e.length,_)==e+e&&nodeStart(o,_-2*e.length))return{changes:{insert:e+e+e+e,from:_},effects:closeBracketEffect.of(_+e.length),range:EditorSelection.cursor(_+e.length)};if(o.charCategorizer(_)(b)!=CharCategory.Word){let k=o.sliceDoc(_-1,_);if(k!=e&&o.charCategorizer(_)(k)!=CharCategory.Word&&!probablyInString(o,_,e))return{changes:{insert:e+e,from:_},effects:closeBracketEffect.of(_+e.length),range:EditorSelection.cursor(_+e.length)}}}return{range:a=d}});return a?null:o.update(c,{scrollIntoView:!0,userEvent:"input.type"})}function nodeStart(o,e){let s=syntaxTree(o).resolveInner(e+1);return s.parent&&s.from==e}function probablyInString(o,e,s){let a=syntaxTree(o).resolveInner(e,-1);for(let c=0;c<5;c++){if(o.sliceDoc(a.from,a.from+s.length)==s){let _=a.firstChild;for(;_&&_.from==a.from&&_.to-_.from>s.length;){if(o.sliceDoc(_.to-s.length,_.to)==s)return!1;_=_.firstChild}return!0}let d=a.to==e&&a.parent;if(!d)break;a=d}return!1}function autocompletion(o={}){return[completionState,completionConfig.of(o),completionPlugin,completionKeymapExt,baseTheme$1]}const completionKeymap=[{key:"Ctrl-Space",run:startCompletion},{key:"Escape",run:closeCompletion},{key:"ArrowDown",run:moveCompletionSelection(!0)},{key:"ArrowUp",run:moveCompletionSelection(!1)},{key:"PageDown",run:moveCompletionSelection(!0,"page")},{key:"PageUp",run:moveCompletionSelection(!1,"page")},{key:"Enter",run:acceptCompletion}],completionKeymapExt=Prec.highest(keymap.computeN([completionConfig],o=>o.facet(completionConfig).defaultKeymap?[completionKeymap]:[]));class SelectedDiagnostic{constructor(e,s,a){this.from=e,this.to=s,this.diagnostic=a}}class LintState{constructor(e,s,a){this.diagnostics=e,this.panel=s,this.selected=a}static init(e,s,a){let c=e,d=a.facet(lintConfig).markerFilter;d&&(c=d(c));let _=Decoration.set(c.map(b=>b.from==b.to||b.from==b.to-1&&a.doc.lineAt(b.from).to==b.from?Decoration.widget({widget:new DiagnosticWidget(b),diagnostic:b}).range(b.from):Decoration.mark({attributes:{class:"cm-lintRange cm-lintRange-"+b.severity},diagnostic:b}).range(b.from,b.to)),!0);return new LintState(_,s,findDiagnostic(_))}}function findDiagnostic(o,e=null,s=0){let a=null;return o.between(s,1e9,(c,d,{spec:_})=>{if(!(e&&_.diagnostic!=e))return a=new SelectedDiagnostic(c,d,_.diagnostic),!1}),a}function hideTooltip(o,e){return!!(o.effects.some(s=>s.is(setDiagnosticsEffect))||o.changes.touchesRange(e.pos))}function maybeEnableLint(o,e){return o.field(lintState,!1)?e:e.concat(StateEffect.appendConfig.of([lintState,EditorView.decorations.compute([lintState],s=>{let{selected:a,panel:c}=s.field(lintState);return!a||!c||a.from==a.to?Decoration.none:Decoration.set([activeMark.range(a.from,a.to)])}),hoverTooltip(lintTooltip,{hideOn:hideTooltip}),baseTheme]))}function setDiagnostics(o,e){return{effects:maybeEnableLint(o,[setDiagnosticsEffect.of(e)])}}const setDiagnosticsEffect=StateEffect.define(),togglePanel=StateEffect.define(),movePanelSelection=StateEffect.define(),lintState=StateField.define({create(){return new LintState(Decoration.none,null,null)},update(o,e){if(e.docChanged){let s=o.diagnostics.map(e.changes),a=null;if(o.selected){let c=e.changes.mapPos(o.selected.from,1);a=findDiagnostic(s,o.selected.diagnostic,c)||findDiagnostic(s,null,c)}o=new LintState(s,o.panel,a)}for(let s of e.effects)s.is(setDiagnosticsEffect)?o=LintState.init(s.value,o.panel,e.state):s.is(togglePanel)?o=new LintState(o.diagnostics,s.value?LintPanel.open:null,o.selected):s.is(movePanelSelection)&&(o=new LintState(o.diagnostics,o.panel,s.value));return o},provide:o=>[showPanel.from(o,e=>e.panel),EditorView.decorations.from(o,e=>e.diagnostics)]}),activeMark=Decoration.mark({class:"cm-lintRange cm-lintRange-active"});function lintTooltip(o,e,s){let{diagnostics:a}=o.state.field(lintState),c=[],d=2e8,_=0;a.between(e-(s<0?1:0),e+(s>0?1:0),(k,$,{spec:j})=>{e>=k&&e<=$&&(k==$||(e>k||s>0)&&(e<$||s<0))&&(c.push(j.diagnostic),d=Math.min(k,d),_=Math.max($,_))});let b=o.state.facet(lintConfig).tooltipFilter;return b&&(c=b(c)),c.length?{pos:d,end:_,above:o.state.doc.lineAt(d).to<_,create(){return{dom:diagnosticsTooltip(o,c)}}}:null}function diagnosticsTooltip(o,e){return crelt("ul",{class:"cm-tooltip-lint"},e.map(s=>renderDiagnostic(o,s,!1)))}const openLintPanel=o=>{let e=o.state.field(lintState,!1);(!e||!e.panel)&&o.dispatch({effects:maybeEnableLint(o.state,[togglePanel.of(!0)])});let s=getPanel(o,LintPanel.open);return s&&s.dom.querySelector(".cm-panel-lint ul").focus(),!0},closeLintPanel=o=>{let e=o.state.field(lintState,!1);return!e||!e.panel?!1:(o.dispatch({effects:togglePanel.of(!1)}),!0)},nextDiagnostic=o=>{let e=o.state.field(lintState,!1);if(!e)return!1;let s=o.state.selection.main,a=e.diagnostics.iter(s.to+1);return!a.value&&(a=e.diagnostics.iter(0),!a.value||a.from==s.from&&a.to==s.to)?!1:(o.dispatch({selection:{anchor:a.from,head:a.to},scrollIntoView:!0}),!0)},lintKeymap=[{key:"Mod-Shift-m",run:openLintPanel},{key:"F8",run:nextDiagnostic}],lintPlugin=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.timeout=-1,this.set=!0;let{delay:e}=o.state.facet(lintConfig);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){let o=Date.now();if(oPromise.resolve(a(this.view)))).then(a=>{let c=a.reduce((d,_)=>d.concat(_));this.view.state.doc==e.doc&&this.view.dispatch(setDiagnostics(this.view.state,c))},a=>{logException(this.view.state,a)})}}update(o){let e=o.state.facet(lintConfig);(o.docChanged||e!=o.startState.facet(lintConfig))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}}),lintConfig=Facet.define({combine(o){return Object.assign({sources:o.map(e=>e.source)},combineConfig(o.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null}))},enables:lintPlugin});function assignKeys(o){let e=[];if(o)e:for(let{name:s}of o){for(let a=0;ad.toLowerCase()==c.toLowerCase())){e.push(c);continue e}}e.push("")}return e}function renderDiagnostic(o,e,s){var a;let c=s?assignKeys(e.actions):[];return crelt("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},crelt("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage():e.message),(a=e.actions)===null||a===void 0?void 0:a.map((d,_)=>{let b=_e=>{_e.preventDefault();let et=findDiagnostic(o.state.field(lintState).diagnostics,e);et&&d.apply(o,et.from,et.to)},{name:k}=d,$=c[_]?k.indexOf(c[_]):-1,j=$<0?k:[k.slice(0,$),crelt("u",k.slice($,$+1)),k.slice($+1)];return crelt("button",{type:"button",class:"cm-diagnosticAction",onclick:b,onmousedown:b,"aria-label":` Action: ${k}${$<0?"":` (access key "${c[_]})"`}.`},j)}),e.source&&crelt("div",{class:"cm-diagnosticSource"},e.source))}class DiagnosticWidget extends WidgetType{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return crelt("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class PanelItem{constructor(e,s){this.diagnostic=s,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=renderDiagnostic(e,s,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class LintPanel{constructor(e){this.view=e,this.items=[];let s=c=>{if(c.keyCode==27)closeLintPanel(this.view),this.view.focus();else if(c.keyCode==38||c.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(c.keyCode==40||c.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(c.keyCode==36)this.moveSelection(0);else if(c.keyCode==35)this.moveSelection(this.items.length-1);else if(c.keyCode==13)this.view.focus();else if(c.keyCode>=65&&c.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:d}=this.items[this.selectedIndex],_=assignKeys(d.actions);for(let b=0;b<_.length;b++)if(_[b].toUpperCase().charCodeAt(0)==c.keyCode){let k=findDiagnostic(this.view.state.field(lintState).diagnostics,d);k&&d.actions[b].apply(e,k.from,k.to)}}else return;c.preventDefault()},a=c=>{for(let d=0;dcloseLintPanel(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(lintState).selected;if(!e)return-1;for(let s=0;s{let $=-1,j;for(let _e=a;_ea&&(this.items.splice(a,$-a),c=!0)),s&&j.diagnostic==s.diagnostic?j.dom.hasAttribute("aria-selected")||(j.dom.setAttribute("aria-selected","true"),d=j):j.dom.hasAttribute("aria-selected")&&j.dom.removeAttribute("aria-selected"),a++});a({sel:d.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:_,panel:b})=>{_.topb.bottom&&(this.list.scrollTop+=_.bottom-b.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),c&&this.sync()}sync(){let e=this.list.firstChild;function s(){let a=e;e=a.nextSibling,a.remove()}for(let a of this.items)if(a.dom.parentNode==this.list){for(;e!=a.dom;)s();e=a.dom.nextSibling}else this.list.insertBefore(a.dom,e);for(;e;)s()}moveSelection(e){if(this.selectedIndex<0)return;let s=this.view.state.field(lintState),a=findDiagnostic(s.diagnostics,this.items[e].diagnostic);!a||this.view.dispatch({selection:{anchor:a.from,head:a.to},scrollIntoView:!0,effects:movePanelSelection.of(a)})}static open(e){return new LintPanel(e)}}function svg(o,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(o)}')`}function underline(o){return svg(``,'width="6" height="3"')}const baseTheme=EditorView.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:underline("#d11")},".cm-lintRange-warning":{backgroundImage:underline("orange")},".cm-lintRange-info":{backgroundImage:underline("#999")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});var basicSetup=function o(e){e===void 0&&(e={});var s=[];e.closeBracketsKeymap!==!1&&(s=s.concat(closeBracketsKeymap)),e.defaultKeymap!==!1&&(s=s.concat(defaultKeymap)),e.searchKeymap!==!1&&(s=s.concat(searchKeymap)),e.historyKeymap!==!1&&(s=s.concat(historyKeymap)),e.foldKeymap!==!1&&(s=s.concat(foldKeymap)),e.completionKeymap!==!1&&(s=s.concat(completionKeymap)),e.lintKeymap!==!1&&(s=s.concat(lintKeymap));var a=[];return e.lineNumbers!==!1&&a.push(lineNumbers()),e.highlightActiveLineGutter!==!1&&a.push(highlightActiveLineGutter()),e.highlightSpecialChars!==!1&&a.push(highlightSpecialChars()),e.history!==!1&&a.push(history()),e.foldGutter!==!1&&a.push(foldGutter()),e.drawSelection!==!1&&a.push(drawSelection()),e.dropCursor!==!1&&a.push(dropCursor()),e.allowMultipleSelections!==!1&&a.push(EditorState.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&a.push(indentOnInput()),e.syntaxHighlighting!==!1&&a.push(syntaxHighlighting(defaultHighlightStyle,{fallback:!0})),e.bracketMatching!==!1&&a.push(bracketMatching()),e.closeBrackets!==!1&&a.push(closeBrackets()),e.autocompletion!==!1&&a.push(autocompletion()),e.rectangularSelection!==!1&&a.push(rectangularSelection()),e.crosshairCursor!==!1&&a.push(crosshairCursor()),e.highlightActiveLine!==!1&&a.push(highlightActiveLine()),e.highlightSelectionMatches!==!1&&a.push(highlightSelectionMatches()),a.concat([keymap.of(s.flat())]).filter(Boolean)};const chalky="#e5c07b",coral="#e06c75",cyan="#56b6c2",invalid="#ffffff",ivory="#abb2bf",stone="#7d8799",malibu="#61afef",sage="#98c379",whiskey="#d19a66",violet="#c678dd",darkBackground="#21252b",highlightBackground="#2c313a",background="#282c34",tooltipBackground="#353a42",selection="#3E4451",cursor="#528bff",oneDarkTheme=EditorView.theme({"&":{color:ivory,backgroundColor:background},".cm-content":{caretColor:cursor},".cm-cursor, .cm-dropCursor":{borderLeftColor:cursor},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:selection},".cm-panels":{backgroundColor:darkBackground,color:ivory},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:highlightBackground},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847",outline:"1px solid #515a6b"},".cm-gutters":{backgroundColor:background,color:stone,border:"none"},".cm-activeLineGutter":{backgroundColor:highlightBackground},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:tooltipBackground},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:tooltipBackground,borderBottomColor:tooltipBackground},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:highlightBackground,color:ivory}}},{dark:!0}),oneDarkHighlightStyle=HighlightStyle.define([{tag:tags.keyword,color:violet},{tag:[tags.name,tags.deleted,tags.character,tags.propertyName,tags.macroName],color:coral},{tag:[tags.function(tags.variableName),tags.labelName],color:malibu},{tag:[tags.color,tags.constant(tags.name),tags.standard(tags.name)],color:whiskey},{tag:[tags.definition(tags.name),tags.separator],color:ivory},{tag:[tags.typeName,tags.className,tags.number,tags.changed,tags.annotation,tags.modifier,tags.self,tags.namespace],color:chalky},{tag:[tags.operator,tags.operatorKeyword,tags.url,tags.escape,tags.regexp,tags.link,tags.special(tags.string)],color:cyan},{tag:[tags.meta,tags.comment],color:stone},{tag:tags.strong,fontWeight:"bold"},{tag:tags.emphasis,fontStyle:"italic"},{tag:tags.strikethrough,textDecoration:"line-through"},{tag:tags.link,color:stone,textDecoration:"underline"},{tag:tags.heading,fontWeight:"bold",color:coral},{tag:[tags.atom,tags.bool,tags.special(tags.variableName)],color:whiskey},{tag:[tags.processingInstruction,tags.string,tags.inserted],color:sage},{tag:tags.invalid,color:invalid}]),oneDark=[oneDarkTheme,syntaxHighlighting(oneDarkHighlightStyle)];var getStatistics=o=>({line:o.state.doc.lineAt(o.state.selection.main.from),lineCount:o.state.doc.lines,lineBreak:o.state.lineBreak,length:o.state.doc.length,readOnly:o.state.readOnly,tabSize:o.state.tabSize,selection:o.state.selection,selectionAsSingle:o.state.selection.asSingle().main,ranges:o.state.selection.ranges,selectionCode:o.state.sliceDoc(o.state.selection.main.from,o.state.selection.main.to),selections:o.state.selection.ranges.map(e=>o.state.sliceDoc(e.from,e.to)),selectedText:o.state.selection.ranges.some(e=>!e.empty)});function useCodeMirror(o){var{value:e,selection:s,onChange:a,onStatistics:c,onCreateEditor:d,onUpdate:_,extensions:b=[],autoFocus:k,theme:$="light",height:j="",minHeight:_e="",maxHeight:et="",placeholder:tt="",width:nt="",minWidth:st="",maxWidth:rt="",editable:it=!0,readOnly:at=!1,indentWithTab:ot=!0,basicSetup:ht=!0,root:ct}=o,[ut,lt]=react.exports.useState(),[pt,dt]=react.exports.useState(),[gt,yt]=react.exports.useState(),ft=EditorView.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),Et=EditorView.theme({"&":{height:j,minHeight:_e,maxHeight:et,width:nt,minWidth:st,maxWidth:rt}}),mt=EditorView.updateListener.of(At=>{if(At.docChanged&&typeof a=="function"){var Ot=At.state.doc,Ct=Ot.toString();a(Ct,At)}c&&c(getStatistics(At))}),St=[mt,Et];switch(ot&&St.unshift(keymap.of([indentWithTab])),ht&&(typeof ht=="boolean"?St.unshift(basicSetup()):St.unshift(basicSetup(ht))),tt&&St.unshift(placeholder(tt)),$){case"light":St.push(ft);break;case"dark":St.push(oneDark);break;default:St.push($);break}return it===!1&&St.push(EditorView.editable.of(!1)),at&&St.push(EditorState.readOnly.of(!0)),_&&typeof _=="function"&&St.push(EditorView.updateListener.of(_)),St=St.concat(b),react.exports.useEffect(()=>{if(ut&&!gt){var At=EditorState.create({doc:e,selection:s,extensions:St});if(yt(At),!pt){var Ot=new EditorView({state:At,parent:ut,root:ct});dt(Ot),d&&d(Ot,At)}}return()=>{pt&&(yt(void 0),dt(void 0))}},[ut,gt]),react.exports.useEffect(()=>lt(o.container),[o.container]),react.exports.useEffect(()=>()=>{pt&&(pt.destroy(),dt(void 0))},[pt]),react.exports.useEffect(()=>{k&&pt&&pt.focus()},[k,pt]),react.exports.useEffect(()=>{pt&&pt.dispatch({effects:StateEffect.reconfigure.of(St)})},[$,b,j,_e,et,nt,st,rt,tt,it,at,ot,ht,a,_]),react.exports.useEffect(()=>{var At=pt?pt.state.doc.toString():"";pt&&e!==At&&pt.dispatch({changes:{from:0,to:At.length,insert:e||""}})},[e,pt]),{state:gt,setState:yt,view:pt,setView:dt,container:ut,setContainer:lt}}var jsxRuntime={exports:{}},reactJsxRuntime_production_min={};/** @license React v17.0.2 * react-jsx-runtime.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var f=react.exports,g=60103;reactJsxRuntime_production_min.Fragment=60107;if(typeof Symbol=="function"&&Symbol.for){var h=Symbol.for;g=h("react.element"),reactJsxRuntime_production_min.Fragment=h("react.fragment")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};function q(o,e,s){var a,c={},d=null,_=null;s!==void 0&&(d=""+s),e.key!==void 0&&(d=""+e.key),e.ref!==void 0&&(_=e.ref);for(a in e)n.call(e,a)&&!p.hasOwnProperty(a)&&(c[a]=e[a]);if(o&&o.defaultProps)for(a in e=o.defaultProps,e)c[a]===void 0&&(c[a]=e[a]);return{$$typeof:g,type:o,key:d,ref:_,props:c,_owner:m.current}}reactJsxRuntime_production_min.jsx=q;reactJsxRuntime_production_min.jsxs=q;jsxRuntime.exports=reactJsxRuntime_production_min;const jsx=jsxRuntime.exports.jsx,jsxs=jsxRuntime.exports.jsxs,Fragment=jsxRuntime.exports.Fragment;/*! @license ReactCodeMirror - MIT License - Tom Golden (8162045+tbjgolden@users.noreply.github.com) */var __assign=function(){return __assign=Object.assign||function(e){for(var s,a=1,c=arguments.length;a0)&&!(c=a.next()).done;)d.push(c.value)}catch(b){_={error:b}}finally{try{c&&!c.done&&(s=a.return)&&s.call(a)}finally{if(_)throw _.error}}return d}function __spreadArray(o,e,s){if(s||arguments.length===2)for(var a=0,c=e.length,d;as%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,s,a=0){let c=e.parser.context;return new Stack(e,[],s,a,a,0,[],0,c?new StackContext(c,c.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,s){this.stack.push(this.state,s,this.bufferBase+this.buffer.length),this.state=e}reduce(e){let s=e>>19,a=e&65535,{parser:c}=this.p,d=c.dynamicPrecedence(a);if(d&&(this.score+=d),s==0){this.pushState(c.getGoto(this.state,a,!0),this.reducePos),a_;)this.stack.pop();this.reduceContext(a,b)}storeNode(e,s,a,c=4,d=!1){if(e==0){let _=this,b=this.buffer.length;if(b==0&&_.parent&&(b=_.bufferBase-_.parent.bufferBase,_=_.parent),b>0&&_.buffer[b-4]==0&&_.buffer[b-1]>-1){if(s==a)return;if(_.buffer[b-2]>=s){_.buffer[b-2]=a;return}}}if(!d||this.pos==a)this.buffer.push(e,s,a,c);else{let _=this.buffer.length;if(_>0&&this.buffer[_-4]!=0)for(;_>0&&this.buffer[_-2]>a;)this.buffer[_]=this.buffer[_-4],this.buffer[_+1]=this.buffer[_-3],this.buffer[_+2]=this.buffer[_-2],this.buffer[_+3]=this.buffer[_-1],_-=4,c>4&&(c-=4);this.buffer[_]=e,this.buffer[_+1]=s,this.buffer[_+2]=a,this.buffer[_+3]=c}}shift(e,s,a){let c=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let d=e,{parser:_}=this.p;(a>this.pos||s<=_.maxNode)&&(this.pos=a,_.stateFlag(d,1)||(this.reducePos=a)),this.pushState(d,c),this.shiftContext(s,c),s<=_.maxNode&&this.buffer.push(s,c,a,4)}else this.pos=a,this.shiftContext(s,c),s<=this.p.parser.maxNode&&this.buffer.push(s,c,a,4)}apply(e,s,a){e&65536?this.reduce(e):this.shift(e,s,a)}useNode(e,s){let a=this.p.reused.length-1;(a<0||this.p.reused[a]!=e)&&(this.p.reused.push(e),a++);let c=this.pos;this.reducePos=this.pos=c+e.length,this.pushState(s,c),this.buffer.push(a,c,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,s=e.buffer.length;for(;s>0&&e.buffer[s-2]>e.reducePos;)s-=4;let a=e.buffer.slice(s),c=e.bufferBase+s;for(;e&&c==e.bufferBase;)e=e.parent;return new Stack(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,a,c,this.curContext,this.lookAhead,e)}recoverByDelete(e,s){let a=e<=this.p.parser.maxNode;a&&this.storeNode(e,this.pos,s,4),this.storeNode(0,this.pos,s,a?8:4),this.pos=this.reducePos=s,this.score-=190}canShift(e){for(let s=new SimulatedStack(this);;){let a=this.p.parser.stateSlot(s.state,4)||this.p.parser.hasAction(s.state,e);if((a&65536)==0)return!0;if(a==0)return!1;s.reduce(a)}}recoverByInsert(e){if(this.stack.length>=300)return[];let s=this.p.parser.nextStates(this.state);if(s.length>4<<1||this.stack.length>=120){let c=[];for(let d=0,_;dk&1&&b==_)||c.push(s[d],_)}s=c}let a=[];for(let c=0;c>19,c=e&65535,d=this.stack.length-a*3;if(d<0||s.getGoto(this.stack[d],c,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reduce(e),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let s=0;sthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class StackContext{constructor(e,s){this.tracker=e,this.context=s,this.hash=e.strict?e.hash(s):0}}var Recover;(function(o){o[o.Insert=200]="Insert",o[o.Delete=190]="Delete",o[o.Reduce=100]="Reduce",o[o.MaxNext=4]="MaxNext",o[o.MaxInsertStackDepth=300]="MaxInsertStackDepth",o[o.DampenInsertStackDepth=120]="DampenInsertStackDepth"})(Recover||(Recover={}));class SimulatedStack{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let s=e&65535,a=e>>19;a==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(a-1)*3;let c=this.start.p.parser.getGoto(this.stack[this.base-3],s,!0);this.state=c}}class StackBufferCursor{constructor(e,s,a){this.stack=e,this.pos=s,this.index=a,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,s=e.bufferBase+e.buffer.length){return new StackBufferCursor(e,s,s-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new StackBufferCursor(this.stack,this.pos,this.index)}}class CachedToken{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const nullToken=new CachedToken;class InputStream{constructor(e,s){this.input=e,this.ranges=s,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=nullToken,this.rangeIndex=0,this.pos=this.chunkPos=s[0].from,this.range=s[0],this.end=s[s.length-1].to,this.readNext()}resolveOffset(e,s){let a=this.range,c=this.rangeIndex,d=this.pos+e;for(;da.to:d>=a.to;){if(c==this.ranges.length-1)return null;let _=this.ranges[++c];d+=_.from-a.to,a=_}return d}peek(e){let s=this.chunkOff+e,a,c;if(s>=0&&s=this.chunk2Pos&&ab.to&&(this.chunk2=this.chunk2.slice(0,b.to-a)),c=this.chunk2.charCodeAt(0)}}return a>=this.token.lookAhead&&(this.token.lookAhead=a+1),c}acceptToken(e,s=0){let a=s?this.resolveOffset(s,-1):this.pos;if(a==null||a=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,s){if(s?(this.token=s,s.start=e,s.lookAhead=e+1,s.value=s.extended=-1):this.token=nullToken,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&s<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,s-this.chunkPos);if(e>=this.chunk2Pos&&s<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,s-this.chunk2Pos);if(e>=this.range.from&&s<=this.range.to)return this.input.read(e,s);let a="";for(let c of this.ranges){if(c.from>=s)break;c.to>e&&(a+=this.input.read(Math.max(c.from,e),Math.min(c.to,s)))}return a}}class TokenGroup{constructor(e,s){this.data=e,this.id=s}token(e,s){readToken(this.data,e,s,this.id)}}TokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=!1;class ExternalTokenizer{constructor(e,s={}){this.token=e,this.contextual=!!s.contextual,this.fallback=!!s.fallback,this.extend=!!s.extend}}function readToken(o,e,s,a){let c=0,d=1<0){let j=o[$];if(b.allows(j)&&(e.token.value==-1||e.token.value==j||_.overrides(j,e.token.value))){e.acceptToken(j);break}}for(let $=e.next,j=0,_e=o[c+2];j<_e;){let et=j+_e>>1,tt=k+et+(et<<1),nt=o[tt],it=o[tt+1];if($=it)j=et+1;else{c=o[tt+2],e.advance();continue e}}break}}function decodeArray(o,e=Uint16Array){if(typeof o!="string")return o;let s=null;for(let a=0,c=0;a=92&&_--,_>=34&&_--;let k=_-32;if(k>=46&&(k-=46,b=!0),d+=k,b)break;d*=46}s?s[c++]=d:s=new e(d)}return s}const verbose=typeof process!="undefined"&&/\bparse\b/.test({}.LOG);let stackIDs=null;var Safety;(function(o){o[o.Margin=25]="Margin"})(Safety||(Safety={}));function cutAt(o,e,s){let a=o.fullCursor();for(a.moveTo(e);;)if(!(s<0?a.childBefore(e):a.childAfter(e)))for(;;){if((s<0?a.toe)&&!a.type.isError)return s<0?Math.max(0,Math.min(a.to-1,e-25)):Math.min(o.length,Math.max(a.from+1,e+25));if(s<0?a.prevSibling():a.nextSibling())break;if(!a.parent())return s<0?0:o.length}}class FragmentCursor{constructor(e,s){this.fragments=e,this.nodeSet=s,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?cutAt(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?cutAt(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=_,null;if(d instanceof Tree){if(_==e){if(_=Math.max(this.safeFrom,e)&&(this.trees.push(d),this.start.push(_),this.index.push(0))}else this.index[s]++,this.nextStart=_+d.length}}}class TokenCache{constructor(e,s){this.stream=s,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(a=>new CachedToken)}getActions(e){let s=0,a=null,{parser:c}=e.p,{tokenizers:d}=c,_=c.stateSlot(e.state,3),b=e.curContext?e.curContext.hash:0,k=0;for(let $=0;$_e.end+25&&(k=Math.max(_e.lookAhead,k)),_e.value!=0)){let et=s;if(_e.extended>-1&&(s=this.addActions(e,_e.extended,_e.end,s)),s=this.addActions(e,_e.value,_e.end,s),!j.extend&&(a=_e,s>et))break}}for(;this.actions.length>s;)this.actions.pop();return k&&e.setLookAhead(k),!a&&e.pos==this.stream.end&&(a=new CachedToken,a.value=e.p.parser.eofTerm,a.start=a.end=e.pos,s=this.addActions(e,a.value,a.end,s)),this.mainToken=a,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let s=new CachedToken,{pos:a,p:c}=e;return s.start=a,s.end=Math.min(a+1,c.stream.end),s.value=a==c.stream.end?c.parser.eofTerm:0,s}updateCachedToken(e,s,a){if(s.token(this.stream.reset(a.pos,e),a),e.value>-1){let{parser:c}=a.p;for(let d=0;d=0&&a.p.parser.dialect.allows(_>>1)){(_&1)==0?e.value=_>>1:e.extended=_>>1;break}}}else e.value=0,e.end=Math.min(a.p.stream.end,a.pos+1)}putAction(e,s,a,c){for(let d=0;de.bufferLength*4?new FragmentCursor(a,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,s=this.minStackPos,a=this.stacks=[],c,d;for(let _=0;_s)a.push(b);else{if(this.advanceStack(b,a,e))continue;{c||(c=[],d=[]),c.push(b);let k=this.tokens.getMainToken(b);d.push(k.value,k.end)}}break}}if(!a.length){let _=c&&findFinished(c);if(_)return this.stackToTree(_);if(this.parser.strict)throw verbose&&c&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+s);this.recovering||(this.recovering=5)}if(this.recovering&&c){let _=this.stoppedAt!=null&&c[0].pos>this.stoppedAt?c[0]:this.runRecovery(c,d,a);if(_)return this.stackToTree(_.forceAll())}if(this.recovering){let _=this.recovering==1?1:this.recovering*3;if(a.length>_)for(a.sort((b,k)=>k.score-b.score);a.length>_;)a.pop();a.some(b=>b.reducePos>s)&&this.recovering--}else if(a.length>1){e:for(let _=0;_500&&$.buffer.length>500)if((b.score-$.score||b.buffer.length-$.buffer.length)>0)a.splice(k--,1);else{a.splice(_--,1);continue e}}}}this.minStackPos=a[0].pos;for(let _=1;_ ":"";if(this.stoppedAt!=null&&c>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let $=e.curContext&&e.curContext.tracker.strict,j=$?e.curContext.hash:0;for(let _e=this.fragments.nodeAt(c);_e;){let et=this.parser.nodeSet.types[_e.type.id]==_e.type?d.getGoto(e.state,_e.type.id):-1;if(et>-1&&_e.length&&(!$||(_e.prop(NodeProp.contextHash)||0)==j))return e.useNode(_e,et),verbose&&console.log(_+this.stackID(e)+` (via reuse of ${d.getName(_e.type.id)})`),!0;if(!(_e instanceof Tree)||_e.children.length==0||_e.positions[0]>0)break;let tt=_e.children[0];if(tt instanceof Tree&&_e.positions[0]==0)_e=tt;else break}}let b=d.stateSlot(e.state,4);if(b>0)return e.reduce(b),verbose&&console.log(_+this.stackID(e)+` (via always-reduce ${d.getName(b&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let k=this.tokens.getActions(e);for(let $=0;$c?s.push(nt):a.push(nt)}return!1}advanceFully(e,s){let a=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>a)return pushStackDedup(e,s),!0}}runRecovery(e,s,a){let c=null,d=!1;for(let _=0;_ ":"";if(b.deadEnd&&(d||(d=!0,b.restart(),verbose&&console.log(j+this.stackID(b)+" (restarted)"),this.advanceFully(b,a))))continue;let _e=b.split(),et=j;for(let tt=0;_e.forceReduce()&&tt<10&&(verbose&&console.log(et+this.stackID(_e)+" (via force-reduce)"),!this.advanceFully(_e,a));tt++)verbose&&(et=this.stackID(_e)+" -> ");for(let tt of b.recoverByInsert(k))verbose&&console.log(j+this.stackID(tt)+" (via recover-insert)"),this.advanceFully(tt,a);this.stream.end>b.pos?($==b.pos&&($++,k=0),b.recoverByDelete(k,$),verbose&&console.log(j+this.stackID(b)+` (via recover-delete ${this.parser.getName(k)})`),pushStackDedup(b,a)):(!c||c.scoreo;class ContextTracker{constructor(e){this.start=e.start,this.shift=e.shift||id,this.reduce=e.reduce||id,this.reuse=e.reuse||id,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class LRParser extends Parser{constructor(e){if(super(),this.wrappers=[],e.version!=13)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (${13})`);let s=e.nodeNames.split(" ");this.minRepeatTerm=s.length;for(let b=0;be.topRules[b][1]),c=[];for(let b=0;b=0)d(j,k,b[$++]);else{let _e=b[$+-j];for(let et=-j;et>0;et--)d(b[$++],k,_e);$++}}}this.nodeSet=new NodeSet(s.map((b,k)=>NodeType.define({name:k>=this.minRepeatTerm?void 0:b,id:k,props:c[k],top:a.indexOf(k)>-1,error:k==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(k)>-1}))),this.strict=!1,this.bufferLength=DefaultBufferLength;let _=decodeArray(e.tokenData);if(this.context=e.context,this.specialized=new Uint16Array(e.specialized?e.specialized.length:0),this.specializers=[],e.specialized)for(let b=0;btypeof b=="number"?new TokenGroup(_,b):b),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,s,a){let c=new Parse(this,e,s,a);for(let d of this.wrappers)c=d(c,e,s,a);return c}getGoto(e,s,a=!1){let c=this.goto;if(s>=c[0])return-1;for(let d=c[s+1];;){let _=c[d++],b=_&1,k=c[d++];if(b&&a)return k;for(let $=d+(_>>1);d<$;d++)if(c[d]==e)return k;if(b)return-1}}hasAction(e,s){let a=this.data;for(let c=0;c<2;c++)for(let d=this.stateSlot(e,c?2:1),_;;d+=3){if((_=a[d])==65535)if(a[d+1]==1)_=a[d=pair(a,d+2)];else{if(a[d+1]==2)return pair(a,d+2);break}if(_==s||_==0)return pair(a,d+1)}return 0}stateSlot(e,s){return this.states[e*6+s]}stateFlag(e,s){return(this.stateSlot(e,0)&s)>0}validAction(e,s){if(s==this.stateSlot(e,4))return!0;for(let a=this.stateSlot(e,1);;a+=3){if(this.data[a]==65535)if(this.data[a+1]==1)a=pair(this.data,a+2);else return!1;if(s==pair(this.data,a+1))return!0}}nextStates(e){let s=[];for(let a=this.stateSlot(e,1);;a+=3){if(this.data[a]==65535)if(this.data[a+1]==1)a=pair(this.data,a+2);else break;if((this.data[a+2]&1)==0){let c=this.data[a+1];s.some((d,_)=>_&1&&d==c)||s.push(this.data[a],c)}}return s}overrides(e,s){let a=findOffset(this.data,this.tokenPrecTable,s);return a<0||findOffset(this.data,this.tokenPrecTable,e){let c=e.tokenizers.find(d=>d.from==a);return c?c.to:a})),e.contextTracker&&(s.context=e.contextTracker),e.dialect&&(s.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(s.strict=e.strict),e.wrap&&(s.wrappers=s.wrappers.concat(e.wrap)),e.bufferLength!=null&&(s.bufferLength=e.bufferLength),s}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let s=this.dynamicPrecedences;return s==null?0:s[e]||0}parseDialect(e){let s=Object.keys(this.dialects),a=s.map(()=>!1);if(e)for(let d of e.split(" ")){let _=s.indexOf(d);_>=0&&(a[_]=!0)}let c=null;for(let d=0;da)&&s.p.parser.stateFlag(s.state,2)&&(!e||e.score{let{next:s}=o;(s==braceR||s==-1||e.context)&&e.canShift(insertSemi)&&o.acceptToken(insertSemi)},{contextual:!0,fallback:!0}),noSemicolon=new ExternalTokenizer((o,e)=>{let{next:s}=o,a;space.indexOf(s)>-1||s==slash&&((a=o.peek(1))==slash||a==star)||s!=braceR&&s!=semicolon&&s!=-1&&!e.context&&e.canShift(noSemi)&&o.acceptToken(noSemi)},{contextual:!0}),incdecToken=new ExternalTokenizer((o,e)=>{let{next:s}=o;if((s==plus||s==minus)&&(o.advance(),s==o.next)){o.advance();let a=!e.context&&e.canShift(incdec);o.acceptToken(a?incdec:incdecPrefix)}},{contextual:!0}),template=new ExternalTokenizer(o=>{for(let e=!1,s=0;;s++){let{next:a}=o;if(a<0){s&&o.acceptToken(templateContent);break}else if(a==backtick){s?o.acceptToken(templateContent):o.acceptToken(templateEnd,1);break}else if(a==braceL&&e){s==1?o.acceptToken(InterpolationStart,1):o.acceptToken(templateContent,-1);break}else if(a==10&&s){o.advance(),o.acceptToken(templateContent);break}else a==backslash&&o.advance();e=a==dollar,o.advance()}});function tsExtends(o,e){return o=="extends"&&e.dialectEnabled(Dialect_ts)?TSExtends:-1}const spec_identifier={__proto__:null,export:18,as:23,from:29,default:32,async:37,function:38,this:48,true:56,false:56,void:66,typeof:70,null:86,super:88,new:122,await:139,yield:141,delete:142,class:152,extends:154,public:197,private:197,protected:197,readonly:199,instanceof:220,in:222,const:224,import:256,keyof:307,unique:311,infer:317,is:351,abstract:371,implements:373,type:375,let:378,var:380,interface:387,enum:391,namespace:397,module:399,declare:403,global:407,for:428,of:437,while:440,with:444,do:448,if:452,else:454,switch:458,case:464,try:470,catch:472,finally:474,return:478,throw:482,break:486,continue:490,debugger:494},spec_word={__proto__:null,async:109,get:111,set:113,public:161,private:161,protected:161,static:163,abstract:165,override:167,readonly:173,new:355},spec_LessThan={__proto__:null,"<":129},parser=LRParser.deserialize({version:13,states:"$1jO`QYOOO'QQ!LdO'#ChO'XOSO'#DVO)dQYO'#D]O)tQYO'#DhO){QYO'#DrO-xQYO'#DxOOQO'#E]'#E]O.]QWO'#E[O.bQWO'#E[OOQ!LS'#Ef'#EfO0aQ!LdO'#IrO2wQ!LdO'#IsO3eQWO'#EzO3jQpO'#FaOOQ!LS'#FS'#FSO3rO!bO'#FSO4QQWO'#FhO5_QWO'#FgOOQ!LS'#Is'#IsOOQ!LQ'#Ir'#IrOOQQ'#J['#J[O5dQWO'#HnO5iQ!LYO'#HoOOQQ'#If'#IfOOQQ'#Hp'#HpQ`QYOOO){QYO'#DjO5qQWO'#G[O5vQ#tO'#CmO6UQWO'#EZO6aQWO'#EgO6fQ#tO'#FRO7QQWO'#G[O7VQWO'#G`O7bQWO'#G`O7pQWO'#GcO7pQWO'#GdO7pQWO'#GfO5qQWO'#GiO8aQWO'#GlO9oQWO'#CdO:PQWO'#GyO:XQWO'#HPO:XQWO'#HRO`QYO'#HTO:XQWO'#HVO:XQWO'#HYO:^QWO'#H`O:cQ!LZO'#HdO){QYO'#HfO:nQ!LZO'#HhO:yQ!LZO'#HjO5iQ!LYO'#HlO){QYO'#DWOOOS'#Hr'#HrO;UOSO,59qOOQ!LS,59q,59qO=gQbO'#ChO=qQYO'#HsO>UQWO'#ItO@TQbO'#ItO'dQYO'#ItO@[QWO,59wO@rQ&jO'#DbOAkQWO'#E]OAxQWO'#JPOBTQWO'#JOOBTQWO'#JOOB]QWO,5:yOBbQWO'#I}OBiQWO'#DyO5vQ#tO'#EZOBwQWO'#EZOCSQ`O'#FROOQ!LS,5:S,5:SOC[QYO,5:SOEYQ!LdO,5:^OEvQWO,5:dOFaQ!LYO'#I|O7VQWO'#I{OFhQWO'#I{OFpQWO,5:xOFuQWO'#I{OGTQYO,5:vOITQWO'#EWOJ_QWO,5:vOKnQWO'#DlOKuQYO'#DqOLPQ&jO,5;PO){QYO,5;POOQQ'#Er'#ErOOQQ'#Et'#EtO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;RO){QYO,5;ROOQQ'#Ex'#ExOLXQYO,5;cOOQ!LS,5;h,5;hOOQ!LS,5;i,5;iONXQWO,5;iOOQ!LS,5;j,5;jO){QYO'#H}ON^Q!LYO,5YOOQQ'#Ii'#IiOOQQ,5>Z,5>ZOOQQ-E;n-E;nO!+YQ!LdO,5:UOOQ!LQ'#Cp'#CpO!+yQ#tO,5O,5>OO){QYO,5>OO5iQ!LYO,5>QOOQQ,5>S,5>SO!8VQWO,5>SOOQQ,5>U,5>UO!8VQWO,5>UOOQQ,5>W,5>WO!8[Q`O,59rOOOS-E;p-E;pOOQ!LS1G/]1G/]O!8aQbO,5>_O'dQYO,5>_OOQO,5>d,5>dO!8kQYO'#HsOOQO-E;q-E;qO!8xQWO,5?`O!9QQbO,5?`O!9XQWO,5?jOOQ!LS1G/c1G/cO!9aQpO'#DTOOQO'#Iv'#IvO){QYO'#IvO!:OQpO'#IvO!:mQpO'#DcO!;OQ&jO'#DcO!=ZQYO'#DcO!=bQWO'#IuO!=jQWO,59|O!=oQWO'#EaO!=}QWO'#JQO!>VQWO,5:zO!>mQ&jO'#DcO){QYO,5?kO!>wQWO'#HxOOQO-E;v-E;vO!9XQWO,5?jOOQ!LQ1G0e1G0eO!@TQ&jO'#D|OOQ!LS,5:e,5:eO){QYO,5:eOITQWO,5:eO!@[QWO,5:eO:^QWO,5:uO!,rQpO,5:uO!,zQ#tO,5:uO5vQ#tO,5:uOOQ!LS1G/n1G/nOOQ!LS1G0O1G0OOOQ!LQ'#EV'#EVO){QYO,5?hO!@gQ!LYO,5?hO!@xQ!LYO,5?hO!APQWO,5?gO!AXQWO'#HzO!APQWO,5?gOOQ!LQ1G0d1G0dO7VQWO,5?gOOQ!LS1G0b1G0bO!AsQ!LdO1G0bO!BdQ!LbO,5:rOOQ!LS'#Fq'#FqO!CQQ!LdO'#IoOGTQYO1G0bO!EPQ#tO'#IwO!EZQWO,5:WO!E`QbO'#IxO){QYO'#IxO!EjQWO,5:]OOQ!LS'#DT'#DTOOQ!LS1G0k1G0kO!EoQWO1G0kO!HQQ!LdO1G0mO!HXQ!LdO1G0mO!JlQ!LdO1G0mO!JsQ!LdO1G0mO!LzQ!LdO1G0mO!M_Q!LdO1G0mO#!OQ!LdO1G0mO#!VQ!LdO1G0mO#$jQ!LdO1G0mO#$qQ!LdO1G0mO#&fQ!LdO1G0mO#)`Q7^O'#ChO#+ZQ7^O1G0}O#-UQ7^O'#IsOOQ!LS1G1T1G1TO#-iQ!LdO,5>iOOQ!LQ-E;{-E;{O#.YQ!LdO1G0mOOQ!LS1G0m1G0mO#0[Q!LdO1G1QO#0{QpO,5;sO#1QQpO,5;tO#1VQpO'#F[O#1kQWO'#FZOOQO'#JU'#JUOOQO'#H{'#H{O#1pQpO1G1]OOQ!LS1G1]1G1]OOOO1G1f1G1fO#2OQ7^O'#IrO#2YQWO,5;}OLXQYO,5;}OOOO-E;z-E;zOOQ!LS1G1Y1G1YOOQ!LS,5VQ&jO'#GhOOQQ1G2l1G2lO!&wQ&jO'#IWO!0OQ`O1G2oOOQQ1G2o1G2oOOQQ,5=Y,5=YO#>_Q#tO,5=[O5qQWO,5=[O#5YQWO,5=_O5_QWO,5=_O!,rQpO,5=_O!,zQ#tO,5=_O5vQ#tO,5=_O#>pQWO'#J_O#>{QWO,5=`OOQQ1G.j1G.jO#?QQ!LYO1G.jO#?]QWO1G.jO#?bQWO1G.jO5iQ!LYO1G.jO#?jQbO,5?|O#?tQWO,5?|O#@PQYO,5=gO#@WQWO,5=gO7VQWO,5?|OOQQ1G3P1G3PO`QYO1G3POOQQ1G3V1G3VOOQQ1G3X1G3XO:XQWO1G3ZO#@]QYO1G3]O#DWQYO'#H[OOQQ1G3`1G3`O:^QWO1G3fO#DeQWO1G3fO5iQ!LYO1G3jOOQQ1G3l1G3lOOQ!LQ'#Fx'#FxO5iQ!LYO1G3nO5iQ!LYO1G3pOOOS1G/^1G/^O#DmQ`O,5_O#EPQWO1G4zO#EXQWO1G5UO#EaQWO,5?bOLXQYO,5:{O7VQWO,5:{O:^QWO,59}OLXQYO,59}O!,rQpO,59}O#EfQ7^O,59}OOQO,5:{,5:{O#EpQ&jO'#HtO#FWQWO,5?aOOQ!LS1G/h1G/hO#F`Q&jO'#HyO#FtQWO,5?lOOQ!LQ1G0f1G0fO!;OQ&jO,59}O#F|QbO1G5VO7VQWO,5>dOOQ!LQ'#ES'#ESO#GWQ!LrO'#ETO!?{Q&jO'#D}OOQO'#Hw'#HwO#GrQ&jO,5:hOOQ!LS,5:h,5:hO#GyQ&jO'#D}O#H[Q&jO'#D}O#HcQ&jO'#EYO#HfQ&jO'#ETO#HsQ&jO'#ETO!?{Q&jO'#ETO#IWQWO1G0PO#I]Q`O1G0POOQ!LS1G0P1G0PO){QYO1G0POITQWO1G0POOQ!LS1G0a1G0aO:^QWO1G0aO!,rQpO1G0aO!,zQ#tO1G0aO#IdQ!LdO1G5SO){QYO1G5SO#ItQ!LYO1G5SO#JVQWO1G5RO7VQWO,5>fOOQO,5>f,5>fO#J_QWO,5>fOOQO-E;x-E;xO#JVQWO1G5RO#JmQ!LdO,59jO#LlQ!LdO,5k,5>kO$(]QWO,5>kOOQ!LS1G2P1G2PP$(bQWO'#IPPOQ!LS-E;}-E;}O$)RQ#tO1G2[O$)tQ#tO1G2^O$*OQ#tO1G2`OOQ!LS1G1x1G1xO$*VQWO'#IOO$*eQWO,5?sO$*eQWO,5?sO$*mQWO,5?sO$*xQWO,5?sOOQO1G1z1G1zO$+WQ#tO1G1yO$+hQWO'#IQO$+xQWO,5?tOITQWO,5?tO$,QQ`O,5?tOOQ!LS1G1}1G1}O5iQ!LYO,5n,5>nOOQO-Ev,5>vOOQO-Ep,5>pOOQ!LQ-Er,5>rOOQO-E`,5>`OOQO-E;r-E;rOOQO,5>e,5>eOOQO-E;w-E;wO!,rQpO1G/iO:^QWO,5:iOOQO,5:o,5:oO){QYO,5:oO$9pQ!LYO,5:oO$9{Q!LYO,5:oO!,rQpO,5:iOOQO-E;u-E;uOOQ!LS1G0S1G0SO!?{Q&jO,5:iO$:ZQ&jO,5:iO$:lQ!LrO,5:oO$;WQ&jO,5:iO!?{Q&jO,5:oOOQO,5:t,5:tO$;_Q&jO,5:oO$;lQ!LYO,5:oOOQ!LS7+%k7+%kO#IWQWO7+%kO#I]Q`O7+%kOOQ!LS7+%{7+%{O:^QWO7+%{O!,rQpO7+%{O$lQ!LdO1G2^O$@nQ!LdO1G1yO$BvQ#tO,5>aOOQO-E;s-E;sO$CQQbO,5>bO){QYO,5>bOOQO-E;t-E;tO$C[QWO1G5OO$CdQ7^O1G0bO$EkQ7^O1G0mO$ErQ7^O1G0mO$GsQ7^O1G0mO$GzQ7^O1G0mO$IoQ7^O1G0mO$JSQ7^O1G0mO$LaQ7^O1G0mO$LhQ7^O1G0mO$NiQ7^O1G0mO$NpQ7^O1G0mO%!eQ7^O1G0mO%!xQ!LdO<iOOOO7+'T7+'TOOOS1G/R1G/ROOQ!LS1G4V1G4VOJdQWO7+'zO%'rQWO,5>jO5qQWO,5>jOOQO-E;|-E;|O%(QQWO1G5_O%(QQWO1G5_O%(YQWO1G5_O%(eQ`O,5>lO%(oQWO,5>lOITQWO,5>lOOQO-Eu,5>uO%,RQWO,5>uO%,WQWO,5>uOOQO-EtOOQO-ERQ#tO<cQWO1G4UO%>nQWO1G4UO%>|QWO7+*yO%>|QWO7+*yOITQWO1G4WO%?UQ`O1G4WO%?`QWO7+*zOOQO7+'o7+'oO5iQ!LYO7+'oOOQO7+'n7+'nO$,[QWO7+'pO%?hQ`O7+'pOOQO7+'t7+'tO5iQ!LYO7+'nO$,[QWO7+'oO%?oQWO7+'pOITQWO7+'pO#5TQWO7+'oO%?tQ#tO<oOOQO-EqOOQO-E{AN>{OOQOAN>uAN>uO%0}Q!LdOAN>{O:^QWOAN>uO){QYOAN>{O!,rQpOAN>uO&(PQ!LYOAN>{O&([Q7^O<^O!O&OO~Ox&RO!W&]O!X&UO!Y&UO'[$bO~O]&SOk&SO!Q&VO'e&PO!S'iP!S'tP~P@aO!O'qX!R'qX!]'qX!c'qX'n'qX~O!{'qX#W#PX!S'qX~PAYO!{&^O!O'sX!R'sX~O!R&_O!O'rX~O!O&bO~O!{#eO~PAYOS&fO!T&cO!o&eO'Z$`O~Oc&kO!d$XO'Z$`O~Ou$nO!d$mO~O!S&lO~P`Ou!{Ov!{Ox!|O!b!yO!d!zO'dQOP!faZ!faj!fa!R!fa!a!fa!j!fa#[!fa#]!fa#^!fa#_!fa#`!fa#a!fa#b!fa#c!fa#e!fa#g!fa#i!fa#j!fa'n!fa'u!fa'v!fa~O_!fa'U!fa!O!fa!c!fan!fa!T!fa%Q!fa!]!fa~PCcO!c&mO~O!]!wO!{&oO'n&nO!R'pX_'pX'U'pX~O!c'pX~PE{O!R&sO!c'oX~O!c&uO~Ox$tO!T$uO#V&vO'Z$`O~OPTOQTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!TSO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O'Z9YO'dQO'mYO'zaO~O]#qOh$OOj#rOk#qOl#qOq$POs9lOx#xO!T#yO!_:oO!d#vO#V9rO#t$TO$_9nO$a9pO$d$UO'Z&zO'd#sO~O#W&|O~O]#qOh$OOj#rOk#qOl#qOq$POs$QOx#xO!T#yO!_$VO!d#vO#V$WO#t$TO$_$RO$a$SO$d$UO'Z&zO'd#sO~O'_'kP~PJdO!Q'QO!c'lP~P){O'e'SO'mYO~OP9VOQ9VO]cOb:mOc!jOhcOj9VOkcOlcOq9VOs9VOxRO{cO|cO}cO!T!bO!_9XO!dUO!g9VO!h9VO!i9VO!j9VO!k9VO!n!iO#t!lO#x^O'Z'bO'dQO'mYO'z:kO~O!d!zO~O!R#bO_$]a'U$]a!c$]a!O$]a!T$]a%Q$]a!]$]a~O#d'iO~PITO!]'kO!T'wX#w'wX#z'wX$R'wX~Ou'lO~P! POu'lO!T'wX#w'wX#z'wX$R'wX~O!T'nO#w'rO#z'mO$R'sO~O!Q'vO~PLXO#z#fO$R'yO~Ou$eXx$eX!b$eX'n$eX'u$eX'v$eX~OSfX!RfX!{fX'_fX'_$eX~P!!iOk'{O~OR'|O'S'}O'T(PO~Ou(ROx(SO'n#[O'u(UO'v(WO~O'_(QO~P!#rO'_(ZO~O]#qOh$OOj#rOk#qOl#qOq$POs9lOx#xO!T#yO!_:oO!d#vO#V9rO#t$TO$_9nO$a9pO$d$UO'd#sO~O!Q(_O'Z([O!c'{P~P!$aO#W(aO~O!Q(eO'Z(bO!O'|P~P!$aO_(nOj(sOx(kO!W(qO!X(jO!Y(jO!d(hO!x(rO$w(mO'[$bO'e(gO~O!S(pO~P!&XO!b!yOu'cXx'cX'n'cX'u'cX'v'cX!R'cX!{'cX~O'_'cX#m'cX~P!'TOS(vO!{(uO!R'bX'_'bX~O!R(wO'_'aX~O'Z(yO~O!d)OO~O'Z&zO~O!d(hO~Ox$tO!Q!rO!T$uO#U!uO#V!rO'Z$`O!c'oP~O!]!wO#W)SO~OP#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO#j#ZO'dQO'n#[O'u!}O'v#OO~O_!^a!R!^a'U!^a!O!^a!c!^an!^a!T!^a%Q!^a!]!^a~P!)fOS)[O!T&cO!o)ZO%Q)YO'`$cO~O'Z$zO'_'aP~O!])_O!T'^X_'^X'U'^X~O!d$XO'`$cO~O!d$XO'Z$`O'`$cO~O!]!wO#W&|O~O])jO%R)kO'Z)gO!S(TP~O!R)lO^(SX~O'e'SO~OZ)pO~O^)qO~O!T$kO'Z$`O'[$bO^(SP~Ox$tO!Q)vO!R&_O!T$uO'Z$`O!O'rP~O]&YOk&YO!Q)wO'e'SO!S'tP~O!R)xO_(PX'U(PX~O!{)|O'`$cO~OS*PO!T#yO'`$cO~O!T*RO~Ou*TO!TSO~O!n*YO~Oc*_O~O'Z(yO!S(RP~Oc$iO~O%RtO'Z$zO~P8tOZ*eO^*dO~OPTOQTO]cObnOcmOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!nlO#x^O%PqO'dQO'mYO'zaO~O!T!bO#t!lO'Z9YO~P!1RO^*dO_$[O'U$[O~O_*iO#d*kO%T*kO%U*kO~P){O!d%_O~O%t*pO~O!T*rO~O&U*uO&V*tOP&SaQ&SaX&Sa]&Sa_&Sab&Sac&Sah&Saj&Sak&Sal&Saq&Sas&Sax&Sa{&Sa|&Sa}&Sa!T&Sa!_&Sa!d&Sa!g&Sa!h&Sa!i&Sa!j&Sa!k&Sa!n&Sa#d&Sa#t&Sa#x&Sa%P&Sa%R&Sa%T&Sa%U&Sa%X&Sa%Z&Sa%^&Sa%_&Sa%a&Sa%n&Sa%t&Sa%v&Sa%x&Sa%z&Sa%}&Sa&T&Sa&X&Sa&Z&Sa&]&Sa&_&Sa&a&Sa'Q&Sa'Z&Sa'd&Sa'm&Sa'z&Sa!S&Sa%{&Sa`&Sa&Q&Sa~O'Z*xO~On*{O~O!O&ga!R&ga~P!)fO!Q+PO!O&gX!R&gX~P){O!R%yO!O'ha~O!O'ha~P>^O!R&_O!O'ra~O!RwX!R!ZX!SwX!S!ZX!]wX!]!ZX!d!ZX!{wX'`!ZX~O!]+UO!{+TO!R#TX!R'jX!S#TX!S'jX!]'jX!d'jX'`'jX~O!]+WO!d$XO'`$cO!R!VX!S!VX~O]&QOk&QOx&RO'e(gO~OP9VOQ9VO]cOb:mOc!jOhcOj9VOkcOlcOq9VOs9VOxRO{cO|cO}cO!T!bO!_9XO!dUO!g9VO!h9VO!i9VO!j9VO!k9VO!n!iO#t!lO#x^O'dQO'mYO'z:kO~O'Z9vO~P!;^O!R+[O!S'iX~O!S+^O~O!]+UO!{+TO!R#TX!S#TX~O!R+_O!S'tX~O!S+aO~O]&QOk&QOx&RO'[$bO'e(gO~O!X+bO!Y+bO~P!>[Ox$tO!Q+dO!T$uO'Z$`O!O&lX!R&lX~O_+hO!W+kO!X+gO!Y+gO!r+oO!s+mO!t+nO!u+lO!x+pO'[$bO'e(gO'm+eO~O!S+jO~P!?]OS+uO!T&cO!o+tO~O!{+{O!R'pa!c'pa_'pa'U'pa~O!]!wO~P!@gO!R&sO!c'oa~Ox$tO!Q,OO!T$uO#U,QO#V,OO'Z$`O!R&nX!c&nX~O_#Oi!R#Oi'U#Oi!O#Oi!c#Oin#Oi!T#Oi%Q#Oi!]#Oi~P!)fO#W!za!R!za!c!za!{!za!T!za_!za'U!za!O!za~P!#rO#W'cXP'cXZ'cX_'cXj'cXv'cX!a'cX!d'cX!j'cX#['cX#]'cX#^'cX#_'cX#`'cX#a'cX#b'cX#c'cX#e'cX#g'cX#i'cX#j'cX'U'cX'd'cX!c'cX!O'cX!T'cXn'cX%Q'cX!]'cX~P!'TO!R,ZO'_'kX~P!#rO'_,]O~O!R,^O!c'lX~P!)fO!c,aO~O!O,bO~OP#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'dQOZ#Zi_#Zij#Zi!R#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'U#Zi'n#Zi'u#Zi'v#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O#[#Zi~P!EtO#[#PO~P!EtOP#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO'dQOZ#Zi_#Zi!R#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'U#Zi'n#Zi'u#Zi'v#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~Oj#Zi~P!H`Oj#RO~P!H`OP#^Oj#ROu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO'dQO_#Zi!R#Zi#e#Zi#g#Zi#i#Zi#j#Zi'U#Zi'n#Zi'u#Zi'v#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P!JzOZ#dO!a#TO#a#TO#b#TO#c#TO~P!JzOP#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO'dQO_#Zi!R#Zi#g#Zi#i#Zi#j#Zi'U#Zi'n#Zi'v#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'u#Zi~P!MrO'u!}O~P!MrOP#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO'dQO'u!}O_#Zi!R#Zi#i#Zi#j#Zi'U#Zi'n#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'v#Zi~P#!^O'v#OO~P#!^OP#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO'dQO'u!}O'v#OO~O_#Zi!R#Zi#j#Zi'U#Zi'n#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P#$xOP[XZ[Xj[Xu[Xv[Xx[X!a[X!b[X!d[X!j[X!{[X#WdX#[[X#][X#^[X#_[X#`[X#a[X#b[X#c[X#e[X#g[X#i[X#j[X#o[X'd[X'n[X'u[X'v[X!R[X!S[X~O#m[X~P#']OP#^OZ9jOj9_Ou!{Ov!{Ox!|O!a9aO!b!yO!d!zO!j#^O#[9]O#]9^O#^9^O#_9^O#`9`O#a9aO#b9aO#c9aO#e9bO#g9dO#i9fO#j9gO'dQO'n#[O'u!}O'v#OO~O#m,dO~P#)gOP'gXZ'gXj'gXu'gXv'gXx'gX!a'gX!b'gX!d'gX!j'gX#['gX#]'gX#^'gX#_'gX#`'gX#a'gX#b'gX#e'gX#g'gX#i'gX#j'gX'd'gX'n'gX'u'gX'v'gX!R'gX~O!{9kO#o9kO#c'gX#m'gX!S'gX~P#+bO_&qa!R&qa'U&qa!c&qan&qa!O&qa!T&qa%Q&qa!]&qa~P!)fOP#ZiZ#Zi_#Zij#Ziv#Zi!R#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'U#Zi'd#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P!#rO_#ni!R#ni'U#ni!O#ni!c#nin#ni!T#ni%Q#ni!]#ni~P!)fO#z,fO~O#z,gO~O!]'kO!{,hO!T$OX#w$OX#z$OX$R$OX~O!Q,iO~O!T'nO#w,kO#z'mO$R,lO~O!R9hO!S'fX~P#)gO!S,mO~O$R,oO~OR'|O'S'}O'T,rO~O],uOk,uO!O,vO~O!RdX!]dX!cdX!c$eX'ndX~P!!iO!c,|O~P!#rO!R,}O!]!wO'n&nO!c'{X~O!c-SO~O!O$eX!R$eX!]$lX~P!!iO!R-UO!O'|X~P!#rO!]-WO~O!O-YO~O!Q(_O'Z$`O!c'{P~Oj-^O!]!wO!d$XO'`$cO'n&nO~O!])_O~O!S-dO~P!&XO!X-eO!Y-eO'[$bO'e(gO~Ox-gO'e(gO~O!x-hO~O'Z$zO!R&vX'_&vX~O!R(wO'_'aa~Ou-mOv-mOx-nO'nra'ura'vra!Rra!{ra~O'_ra#mra~P#6fOu(ROx(SO'n$^a'u$^a'v$^a!R$^a!{$^a~O'_$^a#m$^a~P#7[Ou(ROx(SO'n$`a'u$`a'v$`a!R$`a!{$`a~O'_$`a#m$`a~P#7}O]-oO~O#W-pO~O'_$na!R$na#m$na!{$na~P!#rO#W-sO~OS-|O!T&cO!o-{O%Q-zO~O'_-}O~O]#qOj#rOk#qOl#qOq$POs9lOx#xO!T#yO!_:oO!d#vO#V9rO#t$TO$_9nO$a9pO$d$UO'd#sO~Oh.PO'Z.OO~P#9tO!])_O!T'^a_'^a'U'^a~O#W.VO~OZ[X!RdX!SdX~O!R.WO!S(TX~O!S.YO~OZ.ZO~O].]O'Z)gO~O!T$kO'Z$`O^'OX!R'OX~O!R)lO^(Sa~O!c.`O~P!)fO].bO~OZ.cO~O^.dO~OS-|O!T&cO!o-{O%Q-zO'`$cO~O!R)xO_(Pa'U(Pa~O!{.jO~OS.mO!T#yO~O'e'SO!S(QP~OS.wO!T.sO!o.vO%Q.uO'`$cO~OZ/RO!R/PO!S(RX~O!S/SO~O^/UO_$[O'U$[O~O]/VO~O]/WO'Z(yO~O#c/XO%r/YO~P0zO!{#eO#c/XO%r/YO~O_/ZO~P){O_/]O~O%{/aOP%yiQ%yiX%yi]%yi_%yib%yic%yih%yij%yik%yil%yiq%yis%yix%yi{%yi|%yi}%yi!T%yi!_%yi!d%yi!g%yi!h%yi!i%yi!j%yi!k%yi!n%yi#d%yi#t%yi#x%yi%P%yi%R%yi%T%yi%U%yi%X%yi%Z%yi%^%yi%_%yi%a%yi%n%yi%t%yi%v%yi%x%yi%z%yi%}%yi&T%yi&X%yi&Z%yi&]%yi&_%yi&a%yi'Q%yi'Z%yi'd%yi'm%yi'z%yi!S%yi`%yi&Q%yi~O`/gO!S/eO&Q/fO~P`O!TSO!d/jO~O!R#bOn$]a~O!O&gi!R&gi~P!)fO!R%yO!O'hi~O!R&_O!O'ri~O!O/nO~O!R!Va!S!Va~P#)gO]&QOk&QO!Q/tO'e(gO!R&hX!S&hX~P@aO!R+[O!S'ia~O]&YOk&YO!Q)wO'e'SO!R&mX!S&mX~O!R+_O!S'ta~O!O'si!R'si~P!)fO_$[O!]!wO!d$XO!j0OO!{/|O'U$[O'`$cO'n&nO~O!S0RO~P!?]O!X0SO!Y0SO'[$bO'e(gO'm+eO~O!W0TO~P#GyO!TSO!W0TO!u0VO!x0WO~P#GyO!W0TO!s0YO!t0YO!u0VO!x0WO~P#GyO!T&cO~O!T&cO~P!#rO!R'pi!c'pi_'pi'U'pi~P!)fO!{0cO!R'pi!c'pi_'pi'U'pi~O!R&sO!c'oi~Ox$tO!T$uO#V0eO'Z$`O~O#WraPraZra_rajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra'Ura'dra!cra!Ora!Tranra%Qra!]ra~P#6fO#W$^aP$^aZ$^a_$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a'U$^a'd$^a!c$^a!O$^a!T$^an$^a%Q$^a!]$^a~P#7[O#W$`aP$`aZ$`a_$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a'U$`a'd$`a!c$`a!O$`a!T$`an$`a%Q$`a!]$`a~P#7}O#W$naP$naZ$na_$naj$nav$na!R$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na'U$na'd$na!c$na!O$na!T$na!{$nan$na%Q$na!]$na~P!#rO_#Oq!R#Oq'U#Oq!O#Oq!c#Oqn#Oq!T#Oq%Q#Oq!]#Oq~P!)fO!R&iX'_&iX~PJdO!R,ZO'_'ka~O!Q0mO!R&jX!c&jX~P){O!R,^O!c'la~O!R,^O!c'la~P!)fO#m!fa!S!fa~PCcO#m!^a!R!^a!S!^a~P#)gO!T1QO#x^O$P1RO~O!S1VO~On1WO~P!#rO_$Yq!R$Yq'U$Yq!O$Yq!c$Yqn$Yq!T$Yq%Q$Yq!]$Yq~P!)fO!O1XO~O],uOk,uO~Ou(ROx(SO'v(WO'n$xi'u$xi!R$xi!{$xi~O'_$xi#m$xi~P$(jOu(ROx(SO'n$zi'u$zi'v$zi!R$zi!{$zi~O'_$zi#m$zi~P$)]O#m1YO~P!#rO!Q1[O'Z$`O!R&rX!c&rX~O!R,}O!c'{a~O!R,}O!]!wO!c'{a~O!R,}O!]!wO'n&nO!c'{a~O'_$gi!R$gi#m$gi!{$gi~P!#rO!Q1cO'Z(bO!O&tX!R&tX~P!$aO!R-UO!O'|a~O!R-UO!O'|a~P!#rO!]!wO~O!]!wO#c1mO~Oj1qO!]!wO'n&nO~O!R'bi'_'bi~P!#rO!{1tO!R'bi'_'bi~P!#rO!c1wO~O_$Zq!R$Zq'U$Zq!O$Zq!c$Zqn$Zq!T$Zq%Q$Zq!]$Zq~P!)fO!R1{O!T'}X~P!#rO!T&cO%Q2OO~O!T&cO%Q2OO~P!#rO!T$eX$u[X_$eX'U$eX~P!!iO$u2SOugXxgX!TgX'ngX'ugX'vgX_gX'UgX~O$u2SO~O]2YO%R2ZO'Z)gO!R&}X!S&}X~O!R.WO!S(Ta~OZ2_O~O^2`O~O]2cO~OS2eO!T&cO!o2dO%Q2OO~O_$[O'U$[O~P!#rO!T#yO~P!#rO!R2jO!{2lO!S(QX~O!S2mO~Ox(kO!W2vO!X2oO!Y2oO!r2uO!s2tO!t2tO!x2sO'[$bO'e(gO'm+eO~O!S2rO~P$1nOS2}O!T.sO!o2|O%Q2{O~OS2}O!T.sO!o2|O%Q2{O'`$cO~O'Z(yO!R&|X!S&|X~O!R/PO!S(Ra~O]3XO'e3WO~O]3YO~O^3[O~O!c3_O~P){O_3aO~O_3aO~P){O#c3cO%r3dO~PE{O`/gO!S3hO&Q/fO~P`O!]3jO~O&V3kOP&SqQ&SqX&Sq]&Sq_&Sqb&Sqc&Sqh&Sqj&Sqk&Sql&Sqq&Sqs&Sqx&Sq{&Sq|&Sq}&Sq!T&Sq!_&Sq!d&Sq!g&Sq!h&Sq!i&Sq!j&Sq!k&Sq!n&Sq#d&Sq#t&Sq#x&Sq%P&Sq%R&Sq%T&Sq%U&Sq%X&Sq%Z&Sq%^&Sq%_&Sq%a&Sq%n&Sq%t&Sq%v&Sq%x&Sq%z&Sq%}&Sq&T&Sq&X&Sq&Z&Sq&]&Sq&_&Sq&a&Sq'Q&Sq'Z&Sq'd&Sq'm&Sq'z&Sq!S&Sq%{&Sq`&Sq&Q&Sq~O!R#Ti!S#Ti~P#)gO!{3mO!R#Ti!S#Ti~O!R!Vi!S!Vi~P#)gO_$[O!{3tO'U$[O~O_$[O!]!wO!{3tO'U$[O~O!X3xO!Y3xO'[$bO'e(gO'm+eO~O_$[O!]!wO!d$XO!j3yO!{3tO'U$[O'`$cO'n&nO~O!W3zO~P$:ZO!W3zO!u3}O!x4OO~P$:ZO_$[O!]!wO!j3yO!{3tO'U$[O'n&nO~O!R'pq!c'pq_'pq'U'pq~P!)fO!R&sO!c'oq~O#W$xiP$xiZ$xi_$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi'U$xi'd$xi!c$xi!O$xi!T$xin$xi%Q$xi!]$xi~P$(jO#W$ziP$ziZ$zi_$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi'U$zi'd$zi!c$zi!O$zi!T$zin$zi%Q$zi!]$zi~P$)]O#W$giP$giZ$gi_$gij$giv$gi!R$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi'U$gi'd$gi!c$gi!O$gi!T$gi!{$gin$gi%Q$gi!]$gi~P!#rO!R&ia'_&ia~P!#rO!R&ja!c&ja~P!)fO!R,^O!c'li~O#m#Oi!R#Oi!S#Oi~P#)gOP#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'dQOZ#Zij#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'n#Zi'u#Zi'v#Zi!R#Zi!S#Zi~O#[#Zi~P$CqO#[9]O~P$CqOP#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9]O#]9^O#^9^O#_9^O'dQOZ#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'n#Zi'u#Zi'v#Zi!R#Zi!S#Zi~Oj#Zi~P$EyOj9_O~P$EyOP#^Oj9_Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9]O#]9^O#^9^O#_9^O#`9`O'dQO#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'n#Zi'u#Zi'v#Zi!R#Zi!S#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P$HROZ9jO!a9aO#a9aO#b9aO#c9aO~P$HROP#^OZ9jOj9_Ou!{Ov!{Ox!|O!a9aO!b!yO!d!zO!j#^O#[9]O#]9^O#^9^O#_9^O#`9`O#a9aO#b9aO#c9aO#e9bO'dQO#g#Zi#i#Zi#j#Zi#m#Zi'n#Zi'v#Zi!R#Zi!S#Zi~O'u#Zi~P$JgO'u!}O~P$JgOP#^OZ9jOj9_Ou!{Ov!{Ox!|O!a9aO!b!yO!d!zO!j#^O#[9]O#]9^O#^9^O#_9^O#`9`O#a9aO#b9aO#c9aO#e9bO#g9dO'dQO'u!}O#i#Zi#j#Zi#m#Zi'n#Zi!R#Zi!S#Zi~O'v#Zi~P$LoO'v#OO~P$LoOP#^OZ9jOj9_Ou!{Ov!{Ox!|O!a9aO!b!yO!d!zO!j#^O#[9]O#]9^O#^9^O#_9^O#`9`O#a9aO#b9aO#c9aO#e9bO#g9dO#i9fO'dQO'u!}O'v#OO~O#j#Zi#m#Zi'n#Zi!R#Zi!S#Zi~P$NwO_#ky!R#ky'U#ky!O#ky!c#kyn#ky!T#ky%Q#ky!]#ky~P!)fOP#ZiZ#Zij#Ziv#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'd#Zi!R#Zi!S#Zi~P!#rO!b!yOP'cXZ'cXj'cXu'cXv'cXx'cX!a'cX!d'cX!j'cX#['cX#]'cX#^'cX#_'cX#`'cX#a'cX#b'cX#c'cX#e'cX#g'cX#i'cX#j'cX#m'cX'd'cX'n'cX'u'cX'v'cX!R'cX!S'cX~O#m#ni!R#ni!S#ni~P#)gO!S4`O~O!R&qa!S&qa~P#)gO!]!wO'n&nO!R&ra!c&ra~O!R,}O!c'{i~O!R,}O!]!wO!c'{i~O!O&ta!R&ta~P!#rO!]4gO~O!R-UO!O'|i~P!#rO!R-UO!O'|i~O!O4mO~O!]!wO#c4sO~Oj4tO!]!wO'n&nO~O!O4vO~O'_$iq!R$iq#m$iq!{$iq~P!#rO_$Zy!R$Zy'U$Zy!O$Zy!c$Zyn$Zy!T$Zy%Q$Zy!]$Zy~P!)fO!R1{O!T'}a~O!T&cO%Q4{O~O!T&cO%Q4{O~P!#rO_#Oy!R#Oy'U#Oy!O#Oy!c#Oyn#Oy!T#Oy%Q#Oy!]#Oy~P!)fOZ5OO~O]5QO'Z)gO~O!R.WO!S(Ti~O]5TO~O^5UO~O'e'SO!R&yX!S&yX~O!R2jO!S(Qa~O!S5cO~P$1nOx-gO'e(gO'm+eO~O!W5fO!X5eO!Y5eO!x0WO'[$bO'e(gO'm+eO~O!s5gO!t5gO~P%-iO!X5eO!Y5eO'[$bO'e(gO'm+eO~O!T.sO~O!T.sO%Q5iO~O!T.sO%Q5iO~P!#rOS5nO!T.sO!o5mO%Q5iO~OZ5sO!R&|a!S&|a~O!R/PO!S(Ri~O]5vO~O!c5wO~O!c5xO~O!c5yO~O!c5yO~P){O_5{O~O!]6OO~O!c6QO~O!R'si!S'si~P#)gO_$[O'U$[O~P!)fO_$[O!{6VO'U$[O~O_$[O!]!wO!{6VO'U$[O~O!X6[O!Y6[O'[$bO'e(gO'm+eO~O_$[O!]!wO!j6]O!{6VO'U$[O'n&nO~O!d$XO'`$cO~P%2TO!W6^O~P%1rO!R'py!c'py_'py'U'py~P!)fO#W$iqP$iqZ$iq_$iqj$iqv$iq!R$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq'U$iq'd$iq!c$iq!O$iq!T$iq!{$iqn$iq%Q$iq!]$iq~P!#rO!R&ji!c&ji~P!)fO#m#Oq!R#Oq!S#Oq~P#)gOu-mOv-mOx-nOPraZrajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra#mra'dra'nra'ura'vra!Rra!Sra~Ou(ROx(SOP$^aZ$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a#m$^a'd$^a'n$^a'u$^a'v$^a!R$^a!S$^a~Ou(ROx(SOP$`aZ$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a#m$`a'd$`a'n$`a'u$`a'v$`a!R$`a!S$`a~OP$naZ$naj$nav$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na#m$na'd$na!R$na!S$na~P!#rO#m$Yq!R$Yq!S$Yq~P#)gO#m$Zq!R$Zq!S$Zq~P#)gO!S6hO~O'_$|y!R$|y#m$|y!{$|y~P!#rO!]!wO!R&ri!c&ri~O!]!wO'n&nO!R&ri!c&ri~O!R,}O!c'{q~O!O&ti!R&ti~P!#rO!R-UO!O'|q~O!O6oO~P!#rO!O6oO~O!R'by'_'by~P!#rO!R&wa!T&wa~P!#rO!T$tq_$tq'U$tq~P!#rOZ6wO~O!R.WO!S(Tq~O]6zO~O!T&cO%Q6{O~O!T&cO%Q6{O~P!#rO!{6|O!R&ya!S&ya~O!R2jO!S(Qi~P#)gO!X7SO!Y7SO'[$bO'e(gO'm+eO~O!W7UO!x4OO~P%ArO!T.sO%Q7XO~O!T.sO%Q7XO~P!#rO]7`O'e7_O~O!R/PO!S(Rq~O!c7bO~O!c7bO~P){O!c7dO~O!c7eO~O!R#Ty!S#Ty~P#)gO_$[O!{7kO'U$[O~O_$[O!]!wO!{7kO'U$[O~O!X7nO!Y7nO'[$bO'e(gO'm+eO~O_$[O!]!wO!j7oO!{7kO'U$[O'n&nO~O#W$|yP$|yZ$|y_$|yj$|yv$|y!R$|y!a$|y!b$|y!d$|y!j$|y#[$|y#]$|y#^$|y#_$|y#`$|y#a$|y#b$|y#c$|y#e$|y#g$|y#i$|y#j$|y'U$|y'd$|y!c$|y!O$|y!T$|y!{$|yn$|y%Q$|y!]$|y~P!#rO#m#ky!R#ky!S#ky~P#)gOP$giZ$gij$giv$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi#m$gi'd$gi!R$gi!S$gi~P!#rOu(ROx(SO'v(WOP$xiZ$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi#m$xi'd$xi'n$xi'u$xi!R$xi!S$xi~Ou(ROx(SOP$ziZ$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi#m$zi'd$zi'n$zi'u$zi'v$zi!R$zi!S$zi~O#m$Zy!R$Zy!S$Zy~P#)gO#m#Oy!R#Oy!S#Oy~P#)gO!]!wO!R&rq!c&rq~O!R,}O!c'{y~O!O&tq!R&tq~P!#rO!O7uO~P!#rO!R.WO!S(Ty~O!R2jO!S(Qq~O!X8RO!Y8RO'[$bO'e(gO'm+eO~O!T.sO%Q8UO~O!T.sO%Q8UO~P!#rO!c8XO~O&V8YOP&S!ZQ&S!ZX&S!Z]&S!Z_&S!Zb&S!Zc&S!Zh&S!Zj&S!Zk&S!Zl&S!Zq&S!Zs&S!Zx&S!Z{&S!Z|&S!Z}&S!Z!T&S!Z!_&S!Z!d&S!Z!g&S!Z!h&S!Z!i&S!Z!j&S!Z!k&S!Z!n&S!Z#d&S!Z#t&S!Z#x&S!Z%P&S!Z%R&S!Z%T&S!Z%U&S!Z%X&S!Z%Z&S!Z%^&S!Z%_&S!Z%a&S!Z%n&S!Z%t&S!Z%v&S!Z%x&S!Z%z&S!Z%}&S!Z&T&S!Z&X&S!Z&Z&S!Z&]&S!Z&_&S!Z&a&S!Z'Q&S!Z'Z&S!Z'd&S!Z'm&S!Z'z&S!Z!S&S!Z%{&S!Z`&S!Z&Q&S!Z~O_$[O!{8_O'U$[O~O_$[O!]!wO!{8_O'U$[O~OP$iqZ$iqj$iqv$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq#m$iq'd$iq!R$iq!S$iq~P!#rO!R&yq!S&yq~P#)gO_$[O!{8tO'U$[O~OP$|yZ$|yj$|yv$|y!a$|y!b$|y!d$|y!j$|y#[$|y#]$|y#^$|y#_$|y#`$|y#a$|y#b$|y#c$|y#e$|y#g$|y#i$|y#j$|y#m$|y'd$|y!R$|y!S$|y~P!#rOn'fX~P.jOn[X!O[X!c[X%r[X!T[X%Q[X!][X~P$zO!]dX!c[X!cdX'ndX~P;aOP9VOQ9VO]cOb:mOc!jOhcOj9VOkcOlcOq9VOs9VOxRO{cO|cO}cO!TSO!_9XO!dUO!g9VO!h9VO!i9VO!j9VO!k9VO!n!iO#t!lO#x^O'Z'bO'dQO'mYO'z:kO~O!R9hO!S$]a~O]#qOh$OOj#rOk#qOl#qOq$POs9mOx#xO!T#yO!_:pO!d#vO#V9sO#t$TO$_9oO$a9qO$d$UO'Z&zO'd#sO~O#d'iO~P&-UO!S[X!SdX~P;aO#W9[O~O!]!wO#W9[O~O!{9kO~O#c9aO~O!{9tO!R'sX!S'sX~O!{9kO!R'qX!S'qX~O#W9uO~O'_9wO~P!#rO#W9|O~O#W9}O~O!]!wO#W:OO~O!]!wO#W9uO~O#m:PO~P#)gO#W:QO~O#W:RO~O#W:SO~O#W:TO~O#m:UO~P!#rO#m:VO~P!#rO#x~!b!r!t!u#U#V'z$_$a$d$u%P%Q%R%X%Z%^%_%a%c~UT#x'z#]}'W'X#z'W'Z'e~",goto:"#Ed(XPPPPPPPP(YP(jP*^PPPP-uPP.[3n5b5uP5uPPP5uP7c5uP5uP7gPP7lP8Qk|}?O}!O>k!O!P?`!P!QCl!Q!R!0[!R![!1q![!]!7s!]!^!8V!^!_!8g!_!`!9d!`!a!:[!a!b!U#R#S2`#S#T!>i#T#o2`#o#p!>y#p#q!?O#q#r!?f#r#s!?x#s$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$I|2`$I|$I}!Bq$I}$JO!Bq$JO$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`W%YR$UWO!^%T!_#o%T#p~%T,T%jg$UW'W+{OX%TXY%cYZ%TZ[%c[p%Tpq%cq!^%T!_#o%T#p$f%T$f$g%c$g#BY%T#BY#BZ%c#BZ$IS%T$IS$I_%c$I_$JT%T$JT$JU%c$JU$KV%T$KV$KW%c$KW&FU%T&FU&FV%c&FV?HT%T?HT?HU%c?HU~%T,T'YR$UW'X+{O!^%T!_#o%T#p~%T$T'jS$UW!j#{O!^%T!_!`'v!`#o%T#p~%T$O'}S#e#v$UWO!^%T!_!`(Z!`#o%T#p~%T$O(bR#e#v$UWO!^%T!_#o%T#p~%T'u(rZ$UW]!ROY(kYZ)eZr(krs*rs!^(k!^!_+U!_#O(k#O#P-b#P#o(k#o#p+U#p~(k&r)jV$UWOr)ers*Ps!^)e!^!_*a!_#o)e#o#p*a#p~)e&r*WR$P&j$UWO!^%T!_#o%T#p~%T&j*dROr*ars*ms~*a&j*rO$P&j'u*{R$P&j$UW]!RO!^%T!_#o%T#p~%T'm+ZV]!ROY+UYZ*aZr+Urs+ps#O+U#O#P+w#P~+U'm+wO$P&j]!R'm+zROr+Urs,Ts~+U'm,[U$P&j]!ROY,nZr,nrs-Vs#O,n#O#P-[#P~,n!R,sU]!ROY,nZr,nrs-Vs#O,n#O#P-[#P~,n!R-[O]!R!R-_PO~,n'u-gV$UWOr(krs-|s!^(k!^!_+U!_#o(k#o#p+U#p~(k'u.VZ$P&j$UW]!ROY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x!Z/PZ$UW]!ROY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x!Z/yR$UW]!RO!^%T!_#o%T#p~%T!Z0XT$UWO!^.x!^!_,n!_#o.x#o#p,n#p~.xy0mZ$UWOt%Ttu1`u!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`y1g]$UW'mqOt%Ttu1`u!Q%T!Q![1`![!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`&i2k_$UW#zS'Z%k'epOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`[3q_$UW#zSOt%Ttu3ju}%T}!O3j!O!Q%T!Q![3j![!^%T!_!c%T!c!}3j!}#R%T#R#S3j#S#T%T#T#o3j#p$g%T$g~3j$O4wS#^#v$UWO!^%T!_!`5T!`#o%T#p~%T$O5[R$UW#o#vO!^%T!_#o%T#p~%T%r5lU'v%j$UWOv%Tvw6Ow!^%T!_!`5T!`#o%T#p~%T$O6VS$UW#i#vO!^%T!_!`5T!`#o%T#p~%T'u6jZ$UW]!ROY6cYZ7]Zw6cwx*rx!^6c!^!_8T!_#O6c#O#P:T#P#o6c#o#p8T#p~6c&r7bV$UWOw7]wx*Px!^7]!^!_7w!_#o7]#o#p7w#p~7]&j7zROw7wwx*mx~7w'm8YV]!ROY8TYZ7wZw8Twx+px#O8T#O#P8o#P~8T'm8rROw8Twx8{x~8T'm9SU$P&j]!ROY9fZw9fwx-Vx#O9f#O#P9}#P~9f!R9kU]!ROY9fZw9fwx-Vx#O9f#O#P9}#P~9f!R:QPO~9f'u:YV$UWOw6cwx:ox!^6c!^!_8T!_#o6c#o#p8T#p~6c'u:xZ$P&j$UW]!ROY;kYZ%TZw;kwx/rx!^;k!^!_9f!_#O;k#O#PW{!^%T!_!`5T!`#o%T#p~%T$O>_S#[#v$UWO!^%T!_!`5T!`#o%T#p~%T$u>rSj$m$UWO!^%T!_!`5T!`#o%T#p~%T&i?VR!R&a$UWO!^%T!_#o%T#p~%T&i?gVu%n$UWO!O%T!O!P?|!P!Q%T!Q![@r![!^%T!_#o%T#p~%Ty@RT$UWO!O%T!O!P@b!P!^%T!_#o%T#p~%Ty@iR!Qq$UWO!^%T!_#o%T#p~%Ty@yZ$UWkqO!Q%T!Q![@r![!^%T!_!g%T!g!hAl!h#R%T#R#S@r#S#X%T#X#YAl#Y#o%T#p~%TyAqZ$UWO{%T{|Bd|}%T}!OBd!O!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%TyBiV$UWO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%TyCVV$UWkqO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T,TCs`$UW#]#vOYDuYZ%TZzDuz{Jl{!PDu!P!Q!-e!Q!^Du!^!_Fx!_!`!.^!`!a!/]!a!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXD|[$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXEy_$UW}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%TPF}V}POYFxZ!PFx!P!QGd!Q!}Fx!}#OG{#O#PHh#P~FxPGiU}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGdPHOTOYG{Z#OG{#O#PH_#P#QFx#Q~G{PHbQOYG{Z~G{PHkQOYFxZ~FxXHvY$UWOYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~HqXIkV$UWOYHqYZ%TZ!^Hq!^!_G{!_#oHq#o#pG{#p~HqXJVV$UWOYDuYZ%TZ!^Du!^!_Fx!_#oDu#o#pFx#p~Du,TJs^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q!,R!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl,TKtV$UWOzKoz{LZ{!^Ko!^!_M]!_#oKo#o#pM]#p~Ko,TL`X$UWOzKoz{LZ{!PKo!P!QL{!Q!^Ko!^!_M]!_#oKo#o#pM]#p~Ko,TMSR$UWU+{O!^%T!_#o%T#p~%T+{M`ROzM]z{Mi{~M]+{MlTOzM]z{Mi{!PM]!P!QM{!Q~M]+{NQOU+{,TNX^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q! T!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl,T! ^_$UWU+{}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%T+{!!bY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!&x!Q!}!!]!}#O!$`#O#P!&f#P~!!]+{!#VY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!#u!Q!}!!]!}#O!$`#O#P!&f#P~!!]+{!#|UU+{}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGd+{!$cWOY!$`YZM]Zz!$`z{!${{#O!$`#O#P!&S#P#Q!!]#Q~!$`+{!%OYOY!$`YZM]Zz!$`z{!${{!P!$`!P!Q!%n!Q#O!$`#O#P!&S#P#Q!!]#Q~!$`+{!%sTU+{OYG{Z#OG{#O#PH_#P#QFx#Q~G{+{!&VTOY!$`YZM]Zz!$`z{!${{~!$`+{!&iTOY!!]YZM]Zz!!]z{!#Q{~!!]+{!&}_}POzM]z{Mi{#ZM]#Z#[!&x#[#]M]#]#^!&x#^#aM]#a#b!&x#b#gM]#g#h!&x#h#iM]#i#j!&x#j#mM]#m#n!&x#n~M],T!(R[$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|,T!(|^$UWOY!'|YZKoZz!'|z{!(w{!P!'|!P!Q!)x!Q!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|,T!*PY$UWU+{OYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~Hq,T!*tX$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#o!'|#o#p!$`#p~!'|,T!+fX$UWOYJlYZKoZzJlz{NQ{!^Jl!^!_!!]!_#oJl#o#p!!]#p~Jl,T!,Yc$UW}POzKoz{LZ{!^Ko!^!_M]!_#ZKo#Z#[!,R#[#]Ko#]#^!,R#^#aKo#a#b!,R#b#gKo#g#h!,R#h#iKo#i#j!,R#j#mKo#m#n!,R#n#oKo#o#pM]#p~Ko,T!-lV$UWT+{OY!-eYZ%TZ!^!-e!^!_!.R!_#o!-e#o#p!.R#p~!-e+{!.WQT+{OY!.RZ~!.R$P!.g[$UW#o#v}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du]!/f[#wS$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Duy!0cd$UWkqO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#U%T#U#V!3X#V#X%T#X#YAl#Y#b%T#b#c!2w#c#d!4m#d#l%T#l#m!5{#m#o%T#p~%Ty!1x_$UWkqO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#X%T#X#YAl#Y#b%T#b#c!2w#c#o%T#p~%Ty!3OR$UWkqO!^%T!_#o%T#p~%Ty!3^W$UWO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#o%T#p~%Ty!3}Y$UWkqO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#b%T#b#c!2w#c#o%T#p~%Ty!4rV$UWO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#o%T#p~%Ty!5`X$UWkqO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#b%T#b#c!2w#c#o%T#p~%Ty!6QZ$UWO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#o%T#p~%Ty!6z]$UWkqO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#b%T#b#c!2w#c#o%T#p~%T%w!7|R!]V$UW#m%hO!^%T!_#o%T#p~%T!P!8^R_w$UWO!^%T!_#o%T#p~%T+c!8rR'`d!a%Y#x&s'zP!P!Q!8{!^!_!9Q!_!`!9_W!9QO$WW#v!9VP#`#v!_!`!9Y#v!9_O#o#v#v!9dO#a#v%w!9kT!{%o$UWO!^%T!_!`'v!`!a!9z!a#o%T#p~%T$P!:RR#W#w$UWO!^%T!_#o%T#p~%T%w!:gT'_!s#a#v$RS$UWO!^%T!_!`!:v!`!a!;W!a#o%T#p~%T$O!:}R#a#v$UWO!^%T!_#o%T#p~%T$O!;_T#`#v$UWO!^%T!_!`5T!`!a!;n!a#o%T#p~%T$O!;uS#`#v$UWO!^%T!_!`5T!`#o%T#p~%T%w!]S#g#v$UWO!^%T!_!`5T!`#o%T#p~%T$P!>pR$UW'd#wO!^%T!_#o%T#p~%T~!?OO!T~%r!?VT'u%j$UWO!^%T!_!`5T!`#o%T#p#q!=P#q~%T$u!?oR!S$knQ$UWO!^%T!_#o%T#p~%TX!@PR!kP$UWO!^%T!_#o%T#p~%T,T!@gr$UW'W+{#zS'Z%k'epOX%TXY%cYZ%TZ[%c[p%Tpq%cqt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`,T!CO_$UW'X+{#zS'Z%k'epOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`",tokenizers:[noSemicolon,incdecToken,template,0,1,2,3,4,5,6,7,8,insertSemicolon],topRules:{Script:[0,7]},dialects:{jsx:11335,ts:11337},dynamicPrecedences:{"149":1,"176":1},specialized:[{term:287,get:(o,e)=>tsExtends(o,e)<<1},{term:287,get:o=>spec_identifier[o]||-1},{term:297,get:o=>spec_word[o]||-1},{term:63,get:o=>spec_LessThan[o]||-1}],tokenPrec:11358}),snippets=[snippetCompletion("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),snippetCompletion("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),snippetCompletion("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),snippetCompletion(`try { + */var f=react.exports,g=60103;reactJsxRuntime_production_min.Fragment=60107;if(typeof Symbol=="function"&&Symbol.for){var h=Symbol.for;g=h("react.element"),reactJsxRuntime_production_min.Fragment=h("react.fragment")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};function q(o,e,s){var a,c={},d=null,_=null;s!==void 0&&(d=""+s),e.key!==void 0&&(d=""+e.key),e.ref!==void 0&&(_=e.ref);for(a in e)n.call(e,a)&&!p.hasOwnProperty(a)&&(c[a]=e[a]);if(o&&o.defaultProps)for(a in e=o.defaultProps,e)c[a]===void 0&&(c[a]=e[a]);return{$$typeof:g,type:o,key:d,ref:_,props:c,_owner:m.current}}reactJsxRuntime_production_min.jsx=q;reactJsxRuntime_production_min.jsxs=q;jsxRuntime.exports=reactJsxRuntime_production_min;const jsx=jsxRuntime.exports.jsx,jsxs=jsxRuntime.exports.jsxs;var _excluded=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root"],ReactCodeMirror=react.exports.forwardRef((o,e)=>{var{className:s,value:a="",selection:c,extensions:d=[],onChange:_,onStatistics:b,onCreateEditor:k,onUpdate:$,autoFocus:j,theme:_e="light",height:et,minHeight:tt,maxHeight:nt,width:st,minWidth:rt,maxWidth:it,basicSetup:at,placeholder:ot,indentWithTab:ht,editable:ct,readOnly:ut,root:lt}=o,pt=_objectWithoutPropertiesLoose(o,_excluded),dt=react.exports.useRef(null),{state:gt,view:yt,container:ft,setContainer:Et}=useCodeMirror({container:dt.current,root:lt,value:a,autoFocus:j,theme:_e,height:et,minHeight:tt,maxHeight:nt,width:st,minWidth:rt,maxWidth:it,basicSetup:at,placeholder:ot,indentWithTab:ht,editable:ct,readOnly:ut,selection:c,onChange:_,onStatistics:b,onCreateEditor:k,onUpdate:$,extensions:d});if(react.exports.useImperativeHandle(e,()=>({editor:dt.current,state:gt,view:yt}),[dt,ft,gt,yt]),typeof a!="string")throw new Error("value must be typeof string but got "+typeof a);var mt=typeof _e=="string"?"cm-theme-"+_e:"cm-theme";return jsx("div",_extends({ref:dt,className:""+mt+(s?" "+s:"")},pt))});ReactCodeMirror.displayName="CodeMirror";class Stack{constructor(e,s,a,c,d,_,b,k,$,j=0,_e){this.p=e,this.stack=s,this.state=a,this.reducePos=c,this.pos=d,this.score=_,this.buffer=b,this.bufferBase=k,this.curContext=$,this.lookAhead=j,this.parent=_e}toString(){return`[${this.stack.filter((e,s)=>s%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,s,a=0){let c=e.parser.context;return new Stack(e,[],s,a,a,0,[],0,c?new StackContext(c,c.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,s){this.stack.push(this.state,s,this.bufferBase+this.buffer.length),this.state=e}reduce(e){let s=e>>19,a=e&65535,{parser:c}=this.p,d=c.dynamicPrecedence(a);if(d&&(this.score+=d),s==0){this.pushState(c.getGoto(this.state,a,!0),this.reducePos),a_;)this.stack.pop();this.reduceContext(a,b)}storeNode(e,s,a,c=4,d=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&_.buffer[b-4]==0&&_.buffer[b-1]>-1){if(s==a)return;if(_.buffer[b-2]>=s){_.buffer[b-2]=a;return}}}if(!d||this.pos==a)this.buffer.push(e,s,a,c);else{let _=this.buffer.length;if(_>0&&this.buffer[_-4]!=0)for(;_>0&&this.buffer[_-2]>a;)this.buffer[_]=this.buffer[_-4],this.buffer[_+1]=this.buffer[_-3],this.buffer[_+2]=this.buffer[_-2],this.buffer[_+3]=this.buffer[_-1],_-=4,c>4&&(c-=4);this.buffer[_]=e,this.buffer[_+1]=s,this.buffer[_+2]=a,this.buffer[_+3]=c}}shift(e,s,a){let c=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let d=e,{parser:_}=this.p;(a>this.pos||s<=_.maxNode)&&(this.pos=a,_.stateFlag(d,1)||(this.reducePos=a)),this.pushState(d,c),this.shiftContext(s,c),s<=_.maxNode&&this.buffer.push(s,c,a,4)}else this.pos=a,this.shiftContext(s,c),s<=this.p.parser.maxNode&&this.buffer.push(s,c,a,4)}apply(e,s,a){e&65536?this.reduce(e):this.shift(e,s,a)}useNode(e,s){let a=this.p.reused.length-1;(a<0||this.p.reused[a]!=e)&&(this.p.reused.push(e),a++);let c=this.pos;this.reducePos=this.pos=c+e.length,this.pushState(s,c),this.buffer.push(a,c,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,s=e.buffer.length;for(;s>0&&e.buffer[s-2]>e.reducePos;)s-=4;let a=e.buffer.slice(s),c=e.bufferBase+s;for(;e&&c==e.bufferBase;)e=e.parent;return new Stack(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,a,c,this.curContext,this.lookAhead,e)}recoverByDelete(e,s){let a=e<=this.p.parser.maxNode;a&&this.storeNode(e,this.pos,s,4),this.storeNode(0,this.pos,s,a?8:4),this.pos=this.reducePos=s,this.score-=190}canShift(e){for(let s=new SimulatedStack(this);;){let a=this.p.parser.stateSlot(s.state,4)||this.p.parser.hasAction(s.state,e);if((a&65536)==0)return!0;if(a==0)return!1;s.reduce(a)}}recoverByInsert(e){if(this.stack.length>=300)return[];let s=this.p.parser.nextStates(this.state);if(s.length>4<<1||this.stack.length>=120){let c=[];for(let d=0,_;dk&1&&b==_)||c.push(s[d],_)}s=c}let a=[];for(let c=0;c>19,c=e&65535,d=this.stack.length-a*3;if(d<0||s.getGoto(this.stack[d],c,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let s=0;sthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class StackContext{constructor(e,s){this.tracker=e,this.context=s,this.hash=e.strict?e.hash(s):0}}var Recover;(function(o){o[o.Insert=200]="Insert",o[o.Delete=190]="Delete",o[o.Reduce=100]="Reduce",o[o.MaxNext=4]="MaxNext",o[o.MaxInsertStackDepth=300]="MaxInsertStackDepth",o[o.DampenInsertStackDepth=120]="DampenInsertStackDepth"})(Recover||(Recover={}));class SimulatedStack{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let s=e&65535,a=e>>19;a==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(a-1)*3;let c=this.start.p.parser.getGoto(this.stack[this.base-3],s,!0);this.state=c}}class StackBufferCursor{constructor(e,s,a){this.stack=e,this.pos=s,this.index=a,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,s=e.bufferBase+e.buffer.length){return new StackBufferCursor(e,s,s-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new StackBufferCursor(this.stack,this.pos,this.index)}}class CachedToken{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const nullToken=new CachedToken;class InputStream{constructor(e,s){this.input=e,this.ranges=s,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=nullToken,this.rangeIndex=0,this.pos=this.chunkPos=s[0].from,this.range=s[0],this.end=s[s.length-1].to,this.readNext()}resolveOffset(e,s){let a=this.range,c=this.rangeIndex,d=this.pos+e;for(;da.to:d>=a.to;){if(c==this.ranges.length-1)return null;let _=this.ranges[++c];d+=_.from-a.to,a=_}return d}peek(e){let s=this.chunkOff+e,a,c;if(s>=0&&s=this.chunk2Pos&&ab.to&&(this.chunk2=this.chunk2.slice(0,b.to-a)),c=this.chunk2.charCodeAt(0)}}return a>=this.token.lookAhead&&(this.token.lookAhead=a+1),c}acceptToken(e,s=0){let a=s?this.resolveOffset(s,-1):this.pos;if(a==null||a=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,s){if(s?(this.token=s,s.start=e,s.lookAhead=e+1,s.value=s.extended=-1):this.token=nullToken,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&s<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,s-this.chunkPos);if(e>=this.chunk2Pos&&s<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,s-this.chunk2Pos);if(e>=this.range.from&&s<=this.range.to)return this.input.read(e,s);let a="";for(let c of this.ranges){if(c.from>=s)break;c.to>e&&(a+=this.input.read(Math.max(c.from,e),Math.min(c.to,s)))}return a}}class TokenGroup{constructor(e,s){this.data=e,this.id=s}token(e,s){readToken(this.data,e,s,this.id)}}TokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=!1;class ExternalTokenizer{constructor(e,s={}){this.token=e,this.contextual=!!s.contextual,this.fallback=!!s.fallback,this.extend=!!s.extend}}function readToken(o,e,s,a){let c=0,d=1<0){let tt=o[et];if(b.allows(tt)&&(e.token.value==-1||e.token.value==tt||_.overrides(tt,e.token.value))){e.acceptToken(tt);break}}let $=e.next,j=0,_e=o[c+2];if(e.next<0&&_e>j&&o[k+_e*3-3]==65535){c=o[k+_e*3-1];continue e}for(;j<_e;){let et=j+_e>>1,tt=k+et+(et<<1),nt=o[tt],st=o[tt+1];if($=st)j=et+1;else{c=o[tt+2],e.advance();continue e}}break}}function decodeArray(o,e=Uint16Array){if(typeof o!="string")return o;let s=null;for(let a=0,c=0;a=92&&_--,_>=34&&_--;let k=_-32;if(k>=46&&(k-=46,b=!0),d+=k,b)break;d*=46}s?s[c++]=d:s=new e(d)}return s}const verbose=typeof process!="undefined"&&process.env&&/\bparse\b/.test({}.LOG);let stackIDs=null;var Safety;(function(o){o[o.Margin=25]="Margin"})(Safety||(Safety={}));function cutAt(o,e,s){let a=o.cursor(IterMode.IncludeAnonymous);for(a.moveTo(e);;)if(!(s<0?a.childBefore(e):a.childAfter(e)))for(;;){if((s<0?a.toe)&&!a.type.isError)return s<0?Math.max(0,Math.min(a.to-1,e-25)):Math.min(o.length,Math.max(a.from+1,e+25));if(s<0?a.prevSibling():a.nextSibling())break;if(!a.parent())return s<0?0:o.length}}class FragmentCursor{constructor(e,s){this.fragments=e,this.nodeSet=s,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?cutAt(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?cutAt(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=_,null;if(d instanceof Tree){if(_==e){if(_=Math.max(this.safeFrom,e)&&(this.trees.push(d),this.start.push(_),this.index.push(0))}else this.index[s]++,this.nextStart=_+d.length}}}class TokenCache{constructor(e,s){this.stream=s,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(a=>new CachedToken)}getActions(e){let s=0,a=null,{parser:c}=e.p,{tokenizers:d}=c,_=c.stateSlot(e.state,3),b=e.curContext?e.curContext.hash:0,k=0;for(let $=0;$_e.end+25&&(k=Math.max(_e.lookAhead,k)),_e.value!=0)){let et=s;if(_e.extended>-1&&(s=this.addActions(e,_e.extended,_e.end,s)),s=this.addActions(e,_e.value,_e.end,s),!j.extend&&(a=_e,s>et))break}}for(;this.actions.length>s;)this.actions.pop();return k&&e.setLookAhead(k),!a&&e.pos==this.stream.end&&(a=new CachedToken,a.value=e.p.parser.eofTerm,a.start=a.end=e.pos,s=this.addActions(e,a.value,a.end,s)),this.mainToken=a,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let s=new CachedToken,{pos:a,p:c}=e;return s.start=a,s.end=Math.min(a+1,c.stream.end),s.value=a==c.stream.end?c.parser.eofTerm:0,s}updateCachedToken(e,s,a){if(s.token(this.stream.reset(a.pos,e),a),e.value>-1){let{parser:c}=a.p;for(let d=0;d=0&&a.p.parser.dialect.allows(_>>1)){(_&1)==0?e.value=_>>1:e.extended=_>>1;break}}}else e.value=0,e.end=Math.min(a.p.stream.end,a.pos+1)}putAction(e,s,a,c){for(let d=0;de.bufferLength*4?new FragmentCursor(a,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,s=this.minStackPos,a=this.stacks=[],c,d;for(let _=0;_s)a.push(b);else{if(this.advanceStack(b,a,e))continue;{c||(c=[],d=[]),c.push(b);let k=this.tokens.getMainToken(b);d.push(k.value,k.end)}}break}}if(!a.length){let _=c&&findFinished(c);if(_)return this.stackToTree(_);if(this.parser.strict)throw verbose&&c&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+s);this.recovering||(this.recovering=5)}if(this.recovering&&c){let _=this.stoppedAt!=null&&c[0].pos>this.stoppedAt?c[0]:this.runRecovery(c,d,a);if(_)return this.stackToTree(_.forceAll())}if(this.recovering){let _=this.recovering==1?1:this.recovering*3;if(a.length>_)for(a.sort((b,k)=>k.score-b.score);a.length>_;)a.pop();a.some(b=>b.reducePos>s)&&this.recovering--}else if(a.length>1){e:for(let _=0;_500&&$.buffer.length>500)if((b.score-$.score||b.buffer.length-$.buffer.length)>0)a.splice(k--,1);else{a.splice(_--,1);continue e}}}}this.minStackPos=a[0].pos;for(let _=1;_ ":"";if(this.stoppedAt!=null&&c>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let $=e.curContext&&e.curContext.tracker.strict,j=$?e.curContext.hash:0;for(let _e=this.fragments.nodeAt(c);_e;){let et=this.parser.nodeSet.types[_e.type.id]==_e.type?d.getGoto(e.state,_e.type.id):-1;if(et>-1&&_e.length&&(!$||(_e.prop(NodeProp.contextHash)||0)==j))return e.useNode(_e,et),verbose&&console.log(_+this.stackID(e)+` (via reuse of ${d.getName(_e.type.id)})`),!0;if(!(_e instanceof Tree)||_e.children.length==0||_e.positions[0]>0)break;let tt=_e.children[0];if(tt instanceof Tree&&_e.positions[0]==0)_e=tt;else break}}let b=d.stateSlot(e.state,4);if(b>0)return e.reduce(b),verbose&&console.log(_+this.stackID(e)+` (via always-reduce ${d.getName(b&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let k=this.tokens.getActions(e);for(let $=0;$c?s.push(nt):a.push(nt)}return!1}advanceFully(e,s){let a=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>a)return pushStackDedup(e,s),!0}}runRecovery(e,s,a){let c=null,d=!1;for(let _=0;_ ":"";if(b.deadEnd&&(d||(d=!0,b.restart(),verbose&&console.log(j+this.stackID(b)+" (restarted)"),this.advanceFully(b,a))))continue;let _e=b.split(),et=j;for(let tt=0;_e.forceReduce()&&tt<10&&(verbose&&console.log(et+this.stackID(_e)+" (via force-reduce)"),!this.advanceFully(_e,a));tt++)verbose&&(et=this.stackID(_e)+" -> ");for(let tt of b.recoverByInsert(k))verbose&&console.log(j+this.stackID(tt)+" (via recover-insert)"),this.advanceFully(tt,a);this.stream.end>b.pos?($==b.pos&&($++,k=0),b.recoverByDelete(k,$),verbose&&console.log(j+this.stackID(b)+` (via recover-delete ${this.parser.getName(k)})`),pushStackDedup(b,a)):(!c||c.scoreo;class ContextTracker{constructor(e){this.start=e.start,this.shift=e.shift||id,this.reduce=e.reduce||id,this.reuse=e.reuse||id,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class LRParser extends Parser{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (${14})`);let s=e.nodeNames.split(" ");this.minRepeatTerm=s.length;for(let b=0;be.topRules[b][1]),c=[];for(let b=0;b=0)d(j,k,b[$++]);else{let _e=b[$+-j];for(let et=-j;et>0;et--)d(b[$++],k,_e);$++}}}this.nodeSet=new NodeSet(s.map((b,k)=>NodeType.define({name:k>=this.minRepeatTerm?void 0:b,id:k,props:c[k],top:a.indexOf(k)>-1,error:k==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(k)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=DefaultBufferLength;let _=decodeArray(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let b=0;btypeof b=="number"?new TokenGroup(_,b):b),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,s,a){let c=new Parse(this,e,s,a);for(let d of this.wrappers)c=d(c,e,s,a);return c}getGoto(e,s,a=!1){let c=this.goto;if(s>=c[0])return-1;for(let d=c[s+1];;){let _=c[d++],b=_&1,k=c[d++];if(b&&a)return k;for(let $=d+(_>>1);d<$;d++)if(c[d]==e)return k;if(b)return-1}}hasAction(e,s){let a=this.data;for(let c=0;c<2;c++)for(let d=this.stateSlot(e,c?2:1),_;;d+=3){if((_=a[d])==65535)if(a[d+1]==1)_=a[d=pair(a,d+2)];else{if(a[d+1]==2)return pair(a,d+2);break}if(_==s||_==0)return pair(a,d+1)}return 0}stateSlot(e,s){return this.states[e*6+s]}stateFlag(e,s){return(this.stateSlot(e,0)&s)>0}validAction(e,s){if(s==this.stateSlot(e,4))return!0;for(let a=this.stateSlot(e,1);;a+=3){if(this.data[a]==65535)if(this.data[a+1]==1)a=pair(this.data,a+2);else return!1;if(s==pair(this.data,a+1))return!0}}nextStates(e){let s=[];for(let a=this.stateSlot(e,1);;a+=3){if(this.data[a]==65535)if(this.data[a+1]==1)a=pair(this.data,a+2);else break;if((this.data[a+2]&1)==0){let c=this.data[a+1];s.some((d,_)=>_&1&&d==c)||s.push(this.data[a],c)}}return s}overrides(e,s){let a=findOffset(this.data,this.tokenPrecTable,s);return a<0||findOffset(this.data,this.tokenPrecTable,e){let c=e.tokenizers.find(d=>d.from==a);return c?c.to:a})),e.specializers&&(s.specializers=this.specializers.slice(),s.specializerSpecs=this.specializerSpecs.map((a,c)=>{let d=e.specializers.find(b=>b.from==a.external);if(!d)return a;let _=Object.assign(Object.assign({},a),{external:d.to});return s.specializers[c]=getSpecializer(_),_})),e.contextTracker&&(s.context=e.contextTracker),e.dialect&&(s.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(s.strict=e.strict),e.wrap&&(s.wrappers=s.wrappers.concat(e.wrap)),e.bufferLength!=null&&(s.bufferLength=e.bufferLength),s}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let s=this.dynamicPrecedences;return s==null?0:s[e]||0}parseDialect(e){let s=Object.keys(this.dialects),a=s.map(()=>!1);if(e)for(let d of e.split(" ")){let _=s.indexOf(d);_>=0&&(a[_]=!0)}let c=null;for(let d=0;da)&&s.p.parser.stateFlag(s.state,2)&&(!e||e.scoreo.external(s,a)<<1|e}return o.get}const TSExtends=1,noSemi=281,incdec=2,incdecPrefix=3,templateContent=282,InterpolationStart=4,templateEnd=283,insertSemi=284,spaces=286,newline=287,LineComment=5,BlockComment=6,Dialect_ts=1,space=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],braceR=125,braceL=123,semicolon=59,slash=47,star=42,plus=43,minus=45,dollar=36,backtick=96,backslash=92,trackNewline=new ContextTracker({start:!1,shift(o,e){return e==LineComment||e==BlockComment||e==spaces?o:e==newline},strict:!1}),insertSemicolon=new ExternalTokenizer((o,e)=>{let{next:s}=o;(s==braceR||s==-1||e.context)&&e.canShift(insertSemi)&&o.acceptToken(insertSemi)},{contextual:!0,fallback:!0}),noSemicolon=new ExternalTokenizer((o,e)=>{let{next:s}=o,a;space.indexOf(s)>-1||s==slash&&((a=o.peek(1))==slash||a==star)||s!=braceR&&s!=semicolon&&s!=-1&&!e.context&&e.canShift(noSemi)&&o.acceptToken(noSemi)},{contextual:!0}),incdecToken=new ExternalTokenizer((o,e)=>{let{next:s}=o;if((s==plus||s==minus)&&(o.advance(),s==o.next)){o.advance();let a=!e.context&&e.canShift(incdec);o.acceptToken(a?incdec:incdecPrefix)}},{contextual:!0}),template=new ExternalTokenizer(o=>{for(let e=!1,s=0;;s++){let{next:a}=o;if(a<0){s&&o.acceptToken(templateContent);break}else if(a==backtick){s?o.acceptToken(templateContent):o.acceptToken(templateEnd,1);break}else if(a==braceL&&e){s==1?o.acceptToken(InterpolationStart,1):o.acceptToken(templateContent,-1);break}else if(a==10&&s){o.advance(),o.acceptToken(templateContent);break}else a==backslash&&o.advance();e=a==dollar,o.advance()}}),tsExtends=new ExternalTokenizer((o,e)=>{if(!(o.next!=101||!e.dialectEnabled(Dialect_ts))){o.advance();for(let s=0;s<6;s++){if(o.next!="xtends".charCodeAt(s))return;o.advance()}o.next>=57&&o.next<=65||o.next>=48&&o.next<=90||o.next==95||o.next>=97&&o.next<=122||o.next>160||o.acceptToken(TSExtends)}}),jsHighlight=styleTags({"get set async static":tags.modifier,"for while do if else switch try catch finally return throw break continue default case":tags.controlKeyword,"in of await yield void typeof delete instanceof":tags.operatorKeyword,"let var const function class extends":tags.definitionKeyword,"import export from":tags.moduleKeyword,"with debugger as new":tags.keyword,TemplateString:tags.special(tags.string),super:tags.atom,BooleanLiteral:tags.bool,this:tags.self,null:tags.null,Star:tags.modifier,VariableName:tags.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":tags.function(tags.variableName),VariableDefinition:tags.definition(tags.variableName),Label:tags.labelName,PropertyName:tags.propertyName,PrivatePropertyName:tags.special(tags.propertyName),"CallExpression/MemberExpression/PropertyName":tags.function(tags.propertyName),"FunctionDeclaration/VariableDefinition":tags.function(tags.definition(tags.variableName)),"ClassDeclaration/VariableDefinition":tags.definition(tags.className),PropertyDefinition:tags.definition(tags.propertyName),PrivatePropertyDefinition:tags.definition(tags.special(tags.propertyName)),UpdateOp:tags.updateOperator,LineComment:tags.lineComment,BlockComment:tags.blockComment,Number:tags.number,String:tags.string,ArithOp:tags.arithmeticOperator,LogicOp:tags.logicOperator,BitOp:tags.bitwiseOperator,CompareOp:tags.compareOperator,RegExp:tags.regexp,Equals:tags.definitionOperator,Arrow:tags.function(tags.punctuation),": Spread":tags.punctuation,"( )":tags.paren,"[ ]":tags.squareBracket,"{ }":tags.brace,"InterpolationStart InterpolationEnd":tags.special(tags.brace),".":tags.derefOperator,", ;":tags.separator,TypeName:tags.typeName,TypeDefinition:tags.definition(tags.typeName),"type enum interface implements namespace module declare":tags.definitionKeyword,"abstract global Privacy readonly override":tags.modifier,"is keyof unique infer":tags.operatorKeyword,JSXAttributeValue:tags.attributeValue,JSXText:tags.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":tags.angleBracket,"JSXIdentifier JSXNameSpacedName":tags.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":tags.attributeName}),spec_identifier={__proto__:null,export:18,as:23,from:29,default:32,async:37,function:38,this:48,true:56,false:56,void:66,typeof:70,null:86,super:88,new:122,await:139,yield:141,delete:142,class:152,extends:154,public:197,private:197,protected:197,readonly:199,instanceof:220,in:222,const:224,import:256,keyof:307,unique:311,infer:317,is:351,abstract:371,implements:373,type:375,let:378,var:380,interface:387,enum:391,namespace:397,module:399,declare:403,global:407,for:428,of:437,while:440,with:444,do:448,if:452,else:454,switch:458,case:464,try:470,catch:474,finally:478,return:482,throw:486,break:490,continue:494,debugger:498},spec_word={__proto__:null,async:109,get:111,set:113,public:161,private:161,protected:161,static:163,abstract:165,override:167,readonly:173,new:355},spec_LessThan={__proto__:null,"<":129},parser=LRParser.deserialize({version:14,states:"$8SO`QdOOO'QQ(C|O'#ChO'XOWO'#DVO)dQdO'#D]O)tQdO'#DhO){QdO'#DrO-xQdO'#DxOOQO'#E]'#E]O.]Q`O'#E[O.bQ`O'#E[OOQ(C['#Ef'#EfO0aQ(C|O'#ItO2wQ(C|O'#IuO3eQ`O'#EzO3jQ!bO'#FaOOQ(C['#FS'#FSO3rO#tO'#FSO4QQ&jO'#FhO5bQ`O'#FgOOQ(C['#Iu'#IuOOQ(CW'#It'#ItOOQS'#J^'#J^O5gQ`O'#HpO5lQ(ChO'#HqOOQS'#Ih'#IhOOQS'#Hr'#HrQ`QdOOO){QdO'#DjO5tQ`O'#G[O5yQ&jO'#CmO6XQ`O'#EZO6dQ`O'#EgO6iQ,UO'#FRO7TQ`O'#G[O7YQ`O'#G`O7eQ`O'#G`O7sQ`O'#GcO7sQ`O'#GdO7sQ`O'#GfO5tQ`O'#GiO8dQ`O'#GlO9rQ`O'#CdO:SQ`O'#GyO:[Q`O'#HPO:[Q`O'#HRO`QdO'#HTO:[Q`O'#HVO:[Q`O'#HYO:aQ`O'#H`O:fQ(CjO'#HfO){QdO'#HhO:qQ(CjO'#HjO:|Q(CjO'#HlO5lQ(ChO'#HnO){QdO'#DWOOOW'#Ht'#HtO;XOWO,59qOOQ(C[,59q,59qO=jQtO'#ChO=tQdO'#HuO>XQ`O'#IvO@WQtO'#IvO'dQdO'#IvO@_Q`O,59wO@uQ7[O'#DbOAnQ`O'#E]OA{Q`O'#JROBWQ`O'#JQOBWQ`O'#JQOB`Q`O,5:yOBeQ`O'#JPOBlQaO'#DyO5yQ&jO'#EZOBzQ`O'#EZOCVQpO'#FROOQ(C[,5:S,5:SOC_QdO,5:SOE]Q(C|O,5:^OEyQ`O,5:dOFdQ(ChO'#JOO7YQ`O'#I}OFkQ`O'#I}OFsQ`O,5:xOFxQ`O'#I}OGWQdO,5:vOIWQ&jO'#EWOJeQ`O,5:vOKwQ&jO'#DlOLOQdO'#DqOLYQ7[O,5;PO){QdO,5;POOQS'#Er'#ErOOQS'#Et'#EtO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;ROOQS'#Ex'#ExOLbQdO,5;cOOQ(C[,5;h,5;hOOQ(C[,5;i,5;iONbQ`O,5;iOOQ(C[,5;j,5;jO){QdO'#IPONgQ(ChO,5[OOQS'#Ik'#IkOOQS,5>],5>]OOQS-E;p-E;pO!+kQ(C|O,5:UOOQ(CX'#Cp'#CpO!,[Q&kO,5Q,5>QO){QdO,5>QO5lQ(ChO,5>SOOQS,5>U,5>UO!8cQ`O,5>UOOQS,5>W,5>WO!8cQ`O,5>WOOQS,5>Y,5>YO!8hQpO,59rOOOW-E;r-E;rOOQ(C[1G/]1G/]O!8mQtO,5>aO'dQdO,5>aOOQO,5>f,5>fO!8wQdO'#HuOOQO-E;s-E;sO!9UQ`O,5?bO!9^QtO,5?bO!9eQ`O,5?lOOQ(C[1G/c1G/cO!9mQ!bO'#DTOOQO'#Ix'#IxO){QdO'#IxO!:[Q!bO'#IxO!:yQ!bO'#DcO!;[Q7[O'#DcO!=gQdO'#DcO!=nQ`O'#IwO!=vQ`O,59|O!={Q`O'#EaO!>ZQ`O'#JSO!>cQ`O,5:zO!>yQ7[O'#DcO){QdO,5?mO!?TQ`O'#HzOOQO-E;x-E;xO!9eQ`O,5?lOOQ(CW1G0e1G0eO!@aQ7[O'#D|OOQ(C[,5:e,5:eO){QdO,5:eOIWQ&jO,5:eO!@hQaO,5:eO:aQ`O,5:uO!-OQ!bO,5:uO!-WQ&jO,5:uO5yQ&jO,5:uOOQ(C[1G/n1G/nOOQ(C[1G0O1G0OOOQ(CW'#EV'#EVO){QdO,5?jO!@sQ(ChO,5?jO!AUQ(ChO,5?jO!A]Q`O,5?iO!AeQ`O'#H|O!A]Q`O,5?iOOQ(CW1G0d1G0dO7YQ`O,5?iOOQ(C[1G0b1G0bO!BPQ(C|O1G0bO!CRQ(CyO,5:rOOQ(C]'#Fq'#FqO!CoQ(C}O'#IqOGWQdO1G0bO!EqQ,VO'#IyO!E{Q`O,5:WO!FQQtO'#IzO){QdO'#IzO!F[Q`O,5:]OOQ(C]'#DT'#DTOOQ(C[1G0k1G0kO!FaQ`O1G0kO!HrQ(C|O1G0mO!HyQ(C|O1G0mO!K^Q(C|O1G0mO!KeQ(C|O1G0mO!MlQ(C|O1G0mO!NPQ(C|O1G0mO#!pQ(C|O1G0mO#!wQ(C|O1G0mO#%[Q(C|O1G0mO#%cQ(C|O1G0mO#'WQ(C|O1G0mO#*QQMlO'#ChO#+{QMlO1G0}O#-vQMlO'#IuOOQ(C[1G1T1G1TO#.ZQ(C|O,5>kOOQ(CW-E;}-E;}O#.zQ(C}O1G0mOOQ(C[1G0m1G0mO#1PQ(C|O1G1QO#1pQ!bO,5;sO#1uQ!bO,5;tO#1zQ!bO'#F[O#2`Q`O'#FZOOQO'#JW'#JWOOQO'#H}'#H}O#2eQ!bO1G1]OOQ(C[1G1]1G1]OOOO1G1f1G1fO#2sQMlO'#ItO#2}Q`O,5;}OLbQdO,5;}OOOO-E;|-E;|OOQ(C[1G1Y1G1YOOQ(C[,5PQtO1G1VOOQ(C[1G1X1G1XO5tQ`O1G2}O#>WQ`O1G2}O#>]Q`O1G2}O#>bQ`O1G2}OOQS1G2}1G2}O#>gQ&kO1G2bO7YQ`O'#JQO7YQ`O'#EaO7YQ`O'#IWO#>xQ(ChO,5?yOOQS1G2f1G2fO!0VQ`O1G2lOIWQ&jO1G2iO#?TQ`O1G2iOOQS1G2j1G2jOIWQ&jO1G2jO#?YQaO1G2jO#?bQ7[O'#GhOOQS1G2l1G2lO!'VQ7[O'#IYO!0[QpO1G2oOOQS1G2o1G2oOOQS,5=Y,5=YO#?jQ&kO,5=[O5tQ`O,5=[O#6SQ`O,5=_O5bQ`O,5=_O!-OQ!bO,5=_O!-WQ&jO,5=_O5yQ&jO,5=_O#?{Q`O'#JaO#@WQ`O,5=`OOQS1G.j1G.jO#@]Q(ChO1G.jO#@hQ`O1G.jO#@mQ`O1G.jO5lQ(ChO1G.jO#@uQtO,5@OO#APQ`O,5@OO#A[QdO,5=gO#AcQ`O,5=gO7YQ`O,5@OOOQS1G3P1G3PO`QdO1G3POOQS1G3V1G3VOOQS1G3X1G3XO:[Q`O1G3ZO#AhQdO1G3]O#EcQdO'#H[OOQS1G3`1G3`O#EpQ`O'#HbO:aQ`O'#HdOOQS1G3f1G3fO#ExQdO1G3fO5lQ(ChO1G3lOOQS1G3n1G3nOOQ(CW'#Fx'#FxO5lQ(ChO1G3pO5lQ(ChO1G3rOOOW1G/^1G/^O#IvQpO,5aO#JYQ`O1G4|O#JbQ`O1G5WO#JjQ`O,5?dOLbQdO,5:{O7YQ`O,5:{O:aQ`O,59}OLbQdO,59}O!-OQ!bO,59}O#JoQMlO,59}OOQO,5:{,5:{O#JyQ7[O'#HvO#KaQ`O,5?cOOQ(C[1G/h1G/hO#KiQ7[O'#H{O#K}Q`O,5?nOOQ(CW1G0f1G0fO!;[Q7[O,59}O#LVQtO1G5XO7YQ`O,5>fOOQ(CW'#ES'#ESO#LaQ(DjO'#ETO!@XQ7[O'#D}OOQO'#Hy'#HyO#L{Q7[O,5:hOOQ(C[,5:h,5:hO#MSQ7[O'#D}O#MeQ7[O'#D}O#MlQ7[O'#EYO#MoQ7[O'#ETO#M|Q7[O'#ETO!@XQ7[O'#ETO#NaQ`O1G0PO#NfQqO1G0POOQ(C[1G0P1G0PO){QdO1G0POIWQ&jO1G0POOQ(C[1G0a1G0aO:aQ`O1G0aO!-OQ!bO1G0aO!-WQ&jO1G0aO#NmQ(C|O1G5UO){QdO1G5UO#N}Q(ChO1G5UO$ `Q`O1G5TO7YQ`O,5>hOOQO,5>h,5>hO$ hQ`O,5>hOOQO-E;z-E;zO$ `Q`O1G5TO$ vQ(C}O,59jO$#xQ(C}O,5m,5>mO$-rQ`O,5>mOOQ(C]1G2P1G2PP$-wQ`O'#IRPOQ(C]-Eo,5>oOOQO-Ep,5>pOOQO-Ex,5>xOOQO-E<[-E<[OOQ(C[7+&q7+&qO$6OQ`O7+(iO5lQ(ChO7+(iO5tQ`O7+(iO$6TQ`O7+(iO$6YQaO7+'|OOQ(CW,5>r,5>rOOQ(CW-Et,5>tOOQO-EO,5>OOOQS7+)Q7+)QOOQS7+)W7+)WOOQS7+)[7+)[OOQS7+)^7+)^OOQO1G5O1G5OO$:nQMlO1G0gO$:xQ`O1G0gOOQO1G/i1G/iO$;TQMlO1G/iO:aQ`O1G/iOLbQdO'#DcOOQO,5>b,5>bOOQO-E;t-E;tOOQO,5>g,5>gOOQO-E;y-E;yO!-OQ!bO1G/iO:aQ`O,5:iOOQO,5:o,5:oO){QdO,5:oO$;_Q(ChO,5:oO$;jQ(ChO,5:oO!-OQ!bO,5:iOOQO-E;w-E;wOOQ(C[1G0S1G0SO!@XQ7[O,5:iO$;xQ7[O,5:iO$PQ`O7+*oO$>XQ(C}O1G2[O$@^Q(C}O1G2^O$BcQ(C}O1G1yO$DnQ,VO,5>cOOQO-E;u-E;uO$DxQtO,5>dO){QdO,5>dOOQO-E;v-E;vO$ESQ`O1G5QO$E[QMlO1G0bO$GcQMlO1G0mO$GjQMlO1G0mO$IkQMlO1G0mO$IrQMlO1G0mO$KgQMlO1G0mO$KzQMlO1G0mO$NXQMlO1G0mO$N`QMlO1G0mO%!aQMlO1G0mO%!hQMlO1G0mO%$]QMlO1G0mO%$pQ(C|O<kOOOO7+'T7+'TOOOW1G/R1G/ROOQ(C]1G4X1G4XOJjQ&jO7+'zO%*VQ`O,5>lO5tQ`O,5>lOOQO-EnO%+dQ`O,5>nOIWQ&jO,5>nOOQO-Ew,5>wO%.vQ`O,5>wO%.{Q`O,5>wOOQO-EvOOQO-EqOOQO-EsOOQO-E{AN>{OOQOAN>uAN>uO%3rQ(C|OAN>{O:aQ`OAN>uO){QdOAN>{O!-OQ!bOAN>uO&)wQ(ChOAN>{O&*SQ(C}OG26lOOQ(CWG26bG26bOOQS!$( t!$( tOOQO<QQ`O'#E[O&>YQ`O'#EzO&>_Q`O'#EgO&>dQ`O'#JRO&>oQ`O'#JPO&>zQ`O,5:vO&?PQ,VO,5aO!O&PO~Ox&SO!W&^O!X&VO!Y&VO'^$dO~O]&TOk&TO!Q&WO'g&QO!S'kP!S'vP~P@dO!O'sX!R'sX!]'sX!c'sX'p'sX~O!{'sX#W#PX!S'sX~PA]O!{&_O!O'uX!R'uX~O!R&`O!O'tX~O!O&cO~O!{#eO~PA]OP&gO!T&dO!o&fO']$bO~Oc&lO!d$ZO']$bO~Ou$oO!d$nO~O!S&mO~P`Ou!{Ov!{Ox!|O!b!yO!d!zO'fQOQ!faZ!faj!fa!R!fa!a!fa!j!fa#[!fa#]!fa#^!fa#_!fa#`!fa#a!fa#b!fa#c!fa#e!fa#g!fa#i!fa#j!fa'p!fa'w!fa'x!fa~O_!fa'W!fa!O!fa!c!fan!fa!T!fa%Q!fa!]!fa~PCfO!c&nO~O!]!wO!{&pO'p&oO!R'rX_'rX'W'rX~O!c'rX~PFOO!R&tO!c'qX~O!c&vO~Ox$uO!T$vO#V&wO']$bO~OQTORTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!TSO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O']9aO'fQO'oYO'|aO~O]#qOh$QOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO']&{O'b$PO'f#sO~O#W&}O~O]#qOh$QOj#rOk#qOl#qOq$ROs$SOx#yO!T#zO!_$XO!d#vO#V$YO#t$VO$_$TO$a$UO$d$WO']&{O'b$PO'f#sO~O'a'mP~PJjO!Q'RO!c'nP~P){O'g'TO'oYO~OQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!T!bO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O']'cO'fQO'oYO'|;^O~O!d!zO~O!R#bO_$]a'W$]a!c$]a!O$]a!T$]a%Q$]a!]$]a~O#d'jO~PIWO!]'lO!T'yX#w'yX#z'yX$R'yX~Ou'mO~P! YOu'mO!T'yX#w'yX#z'yX$R'yX~O!T'oO#w'sO#z'nO$R'tO~O!Q'wO~PLbO#z#fO$R'zO~OP$eXu$eXx$eX!b$eX'w$eX'x$eX~OPfX!RfX!{fX'afX'a$eX~P!!rOk'|O~OS'}O'U(OO'V(QO~OP(ZOu(SOx(TO'w(VO'x(XO~O'a(RO~P!#{O'a([O~O]#qOh$QOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO'b$PO'f#sO~O!Q(`O'](]O!c'}P~P!$jO#W(bO~O!d(cO~O!Q(hO'](eO!O(OP~P!$jOj(uOx(mO!W(sO!X(lO!Y(lO!d(cO!x(tO$w(oO'^$dO'g(jO~O!S(rO~P!&jO!b!yOP'eXu'eXx'eX'w'eX'x'eX!R'eX!{'eX~O'a'eX#m'eX~P!'cOP(xO!{(wO!R'dX'a'dX~O!R(yO'a'cX~O']${O'a'cP~O'](|O~O!d)RO~O']&{O~Ox$uO!Q!rO!T$vO#U!uO#V!rO']$bO!c'qP~O!]!wO#W)VO~OQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO#j#ZO'fQO'p#[O'w!}O'x#OO~O_!^a!R!^a'W!^a!O!^a!c!^an!^a!T!^a%Q!^a!]!^a~P!)wOP)_O!T&dO!o)^O%Q)]O'b$PO~O!])aO!T'`X_'`X!R'`X'W'`X~O!d$ZO'b$PO~O!d$ZO']$bO'b$PO~O!]!wO#W&}O~O])lO%R)mO'])iO!S(VP~O!R)nO^(UX~O'g'TO~OZ)rO~O^)sO~O!T$lO']$bO'^$dO^(UP~Ox$uO!Q)xO!R&`O!T$vO']$bO!O'tP~O]&ZOk&ZO!Q)yO'g'TO!S'vP~O!R)zO_(RX'W(RX~O!{*OO'b$PO~OP*RO!T#zO'b$PO~O!T*TO~Ou*VO!TSO~O!n*[O~Oc*aO~O'](|O!S(TP~Oc$jO~O%RtO']${O~P8wOZ*gO^*fO~OQTORTO]cObnOcmOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!nlO#x^O%PqO'fQO'oYO'|aO~O!T!bO#t!lO']9aO~P!1_O^*fO_$^O'W$^O~O_*kO#d*mO%T*mO%U*mO~P){O!d%`O~O%t*rO~O!T*tO~O&V*vO&X*wOQ&SaR&SaX&Sa]&Sa_&Sab&Sac&Sah&Saj&Sak&Sal&Saq&Sas&Sax&Sa{&Sa|&Sa}&Sa!T&Sa!_&Sa!d&Sa!g&Sa!h&Sa!i&Sa!j&Sa!k&Sa!n&Sa#d&Sa#t&Sa#x&Sa%P&Sa%R&Sa%T&Sa%U&Sa%X&Sa%Z&Sa%^&Sa%_&Sa%a&Sa%n&Sa%t&Sa%v&Sa%x&Sa%z&Sa%}&Sa&T&Sa&Z&Sa&]&Sa&_&Sa&a&Sa&c&Sa'S&Sa']&Sa'f&Sa'o&Sa'|&Sa!S&Sa%{&Sa`&Sa&Q&Sa~O']*|O~On+PO~O!O&ia!R&ia~P!)wO!Q+TO!O&iX!R&iX~P){O!R%zO!O'ja~O!O'ja~P>aO!R&`O!O'ta~O!RwX!R!ZX!SwX!S!ZX!]wX!]!ZX!d!ZX!{wX'b!ZX~O!]+YO!{+XO!R#TX!R'lX!S#TX!S'lX!]'lX!d'lX'b'lX~O!]+[O!d$ZO'b$PO!R!VX!S!VX~O]&ROk&ROx&SO'g(jO~OQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!T!bO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O'fQO'oYO'|;^O~O']:SO~P!;jO!R+`O!S'kX~O!S+bO~O!]+YO!{+XO!R#TX!S#TX~O!R+cO!S'vX~O!S+eO~O]&ROk&ROx&SO'^$dO'g(jO~O!X+fO!Y+fO~P!>hOx$uO!Q+hO!T$vO']$bO!O&nX!R&nX~O_+lO!W+oO!X+kO!Y+kO!r+sO!s+qO!t+rO!u+pO!x+tO'^$dO'g(jO'o+iO~O!S+nO~P!?iOP+yO!T&dO!o+xO~O!{,PO!R'ra!c'ra_'ra'W'ra~O!]!wO~P!@sO!R&tO!c'qa~Ox$uO!Q,SO!T$vO#U,UO#V,SO']$bO!R&pX!c&pX~O_#Oi!R#Oi'W#Oi!O#Oi!c#Oin#Oi!T#Oi%Q#Oi!]#Oi~P!)wOP;tOu(SOx(TO'w(VO'x(XO~O#W!za!R!za!c!za!{!za!T!za_!za'W!za!O!za~P!BpO#W'eXQ'eXZ'eX_'eXj'eXv'eX!a'eX!d'eX!j'eX#['eX#]'eX#^'eX#_'eX#`'eX#a'eX#b'eX#c'eX#e'eX#g'eX#i'eX#j'eX'W'eX'f'eX'p'eX!c'eX!O'eX!T'eXn'eX%Q'eX!]'eX~P!'cO!R,_O'a'mX~P!#{O'a,aO~O!R,bO!c'nX~P!)wO!c,eO~O!O,fO~OQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'fQOZ#Zi_#Zij#Zi!R#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O#[#Zi~P!FfO#[#PO~P!FfOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO'fQOZ#Zi_#Zi!R#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~Oj#Zi~P!IQOj#RO~P!IQOQ#^Oj#ROu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO'fQO_#Zi!R#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P!KlOZ#dO!a#TO#a#TO#b#TO#c#TO~P!KlOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO'fQO_#Zi!R#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'w#Zi~P!NdO'w!}O~P!NdOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO'fQO'w!}O_#Zi!R#Zi#i#Zi#j#Zi'W#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'x#Zi~P##OO'x#OO~P##OOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO'fQO'w!}O'x#OO~O_#Zi!R#Zi#j#Zi'W#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P#%jOQ[XZ[Xj[Xu[Xv[Xx[X!a[X!b[X!d[X!j[X!{[X#WdX#[[X#][X#^[X#_[X#`[X#a[X#b[X#c[X#e[X#g[X#i[X#j[X#o[X'f[X'p[X'w[X'x[X!R[X!S[X~O#m[X~P#'}OQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO#i9nO#j9oO'fQO'p#[O'w!}O'x#OO~O#m,hO~P#*XOQ'iXZ'iXj'iXu'iXv'iXx'iX!a'iX!b'iX!d'iX!j'iX#['iX#]'iX#^'iX#_'iX#`'iX#a'iX#b'iX#e'iX#g'iX#i'iX#j'iX'f'iX'p'iX'w'iX'x'iX!R'iX~O!{9sO#o9sO#c'iX#m'iX!S'iX~P#,SO_&sa!R&sa'W&sa!c&san&sa!O&sa!T&sa%Q&sa!]&sa~P!)wOQ#ZiZ#Zi_#Zij#Ziv#Zi!R#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'f#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P!BpO_#ni!R#ni'W#ni!O#ni!c#nin#ni!T#ni%Q#ni!]#ni~P!)wO#z,jO~O#z,kO~O!]'lO!{,lO!T$OX#w$OX#z$OX$R$OX~O!Q,mO~O!T'oO#w,oO#z'nO$R,pO~O!R9pO!S'hX~P#*XO!S,qO~O$R,sO~OS'}O'U(OO'V,vO~O],yOk,yO!O,zO~O!RdX!]dX!cdX!c$eX'pdX~P!!rO!c-QO~P!BpO!R-RO!]!wO'p&oO!c'}X~O!c-WO~O!Q(`O']$bO!c'}P~O#W-YO~O!O$eX!R$eX!]$lX~P!!rO!R-ZO!O(OX~P!BpO!]-]O~O!O-_O~Oj-cO!]!wO!d$ZO'b$PO'p&oO~O!])aO~O_$^O!R-hO'W$^O~O!S-jO~P!&jO!X-kO!Y-kO'^$dO'g(jO~Ox-mO'g(jO~O!x-nO~O']${O!R&xX'a&xX~O!R(yO'a'ca~O'a-sO~Ou-tOv-tOx-uOPra'wra'xra!Rra!{ra~O'ara#mra~P#7pOu(SOx(TOP$^a'w$^a'x$^a!R$^a!{$^a~O'a$^a#m$^a~P#8fOu(SOx(TOP$`a'w$`a'x$`a!R$`a!{$`a~O'a$`a#m$`a~P#9XO]-vO~O#W-wO~O'a$na!R$na!{$na#m$na~P!#{O#W-zO~OP.TO!T&dO!o.SO%Q.RO~O]#qOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO'b$PO'f#sO~Oh.VO'].UO~P#:yO!])aO!T'`a_'`a!R'`a'W'`a~O#W.]O~OZ[X!RdX!SdX~O!R.^O!S(VX~O!S.`O~OZ.aO~O].cO'])iO~O!T$lO']$bO^'QX!R'QX~O!R)nO^(Ua~O!c.fO~P!)wO].hO~OZ.iO~O^.jO~OP.TO!T&dO!o.SO%Q.RO'b$PO~O!R)zO_(Ra'W(Ra~O!{.pO~OP.sO!T#zO~O'g'TO!S(SP~OP.}O!T.yO!o.|O%Q.{O'b$PO~OZ/XO!R/VO!S(TX~O!S/YO~O^/[O_$^O'W$^O~O]/]O~O]/^O'](|O~O#c/_O%r/`O~P0zO!{#eO#c/_O%r/`O~O_/aO~P){O_/cO~O%{/gOQ%yiR%yiX%yi]%yi_%yib%yic%yih%yij%yik%yil%yiq%yis%yix%yi{%yi|%yi}%yi!T%yi!_%yi!d%yi!g%yi!h%yi!i%yi!j%yi!k%yi!n%yi#d%yi#t%yi#x%yi%P%yi%R%yi%T%yi%U%yi%X%yi%Z%yi%^%yi%_%yi%a%yi%n%yi%t%yi%v%yi%x%yi%z%yi%}%yi&T%yi&Z%yi&]%yi&_%yi&a%yi&c%yi'S%yi']%yi'f%yi'o%yi'|%yi!S%yi`%yi&Q%yi~O`/mO!S/kO&Q/lO~P`O!TSO!d/oO~O&X*wOQ&SiR&SiX&Si]&Si_&Sib&Sic&Sih&Sij&Sik&Sil&Siq&Sis&Six&Si{&Si|&Si}&Si!T&Si!_&Si!d&Si!g&Si!h&Si!i&Si!j&Si!k&Si!n&Si#d&Si#t&Si#x&Si%P&Si%R&Si%T&Si%U&Si%X&Si%Z&Si%^&Si%_&Si%a&Si%n&Si%t&Si%v&Si%x&Si%z&Si%}&Si&T&Si&Z&Si&]&Si&_&Si&a&Si&c&Si'S&Si']&Si'f&Si'o&Si'|&Si!S&Si%{&Si`&Si&Q&Si~O!R#bOn$]a~O!O&ii!R&ii~P!)wO!R%zO!O'ji~O!R&`O!O'ti~O!O/uO~O!R!Va!S!Va~P#*XO]&ROk&RO!Q/{O'g(jO!R&jX!S&jX~P@dO!R+`O!S'ka~O]&ZOk&ZO!Q)yO'g'TO!R&oX!S&oX~O!R+cO!S'va~O!O'ui!R'ui~P!)wO_$^O!]!wO!d$ZO!j0VO!{0TO'W$^O'b$PO'p&oO~O!S0YO~P!?iO!X0ZO!Y0ZO'^$dO'g(jO'o+iO~O!W0[O~P#MSO!TSO!W0[O!u0^O!x0_O~P#MSO!W0[O!s0aO!t0aO!u0^O!x0_O~P#MSO!T&dO~O!T&dO~P!BpO!R'ri!c'ri_'ri'W'ri~P!)wO!{0jO!R'ri!c'ri_'ri'W'ri~O!R&tO!c'qi~Ox$uO!T$vO#V0lO']$bO~O#WraQraZra_rajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra'Wra'fra'pra!cra!Ora!Tranra%Qra!]ra~P#7pO#W$^aQ$^aZ$^a_$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a'W$^a'f$^a'p$^a!c$^a!O$^a!T$^an$^a%Q$^a!]$^a~P#8fO#W$`aQ$`aZ$`a_$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a'W$`a'f$`a'p$`a!c$`a!O$`a!T$`an$`a%Q$`a!]$`a~P#9XO#W$naQ$naZ$na_$naj$nav$na!R$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na'W$na'f$na'p$na!c$na!O$na!T$na!{$nan$na%Q$na!]$na~P!BpO_#Oq!R#Oq'W#Oq!O#Oq!c#Oqn#Oq!T#Oq%Q#Oq!]#Oq~P!)wO!R&kX'a&kX~PJjO!R,_O'a'ma~O!Q0tO!R&lX!c&lX~P){O!R,bO!c'na~O!R,bO!c'na~P!)wO#m!fa!S!fa~PCfO#m!^a!R!^a!S!^a~P#*XO!T1XO#x^O$P1YO~O!S1^O~On1_O~P!BpO_$Yq!R$Yq'W$Yq!O$Yq!c$Yqn$Yq!T$Yq%Q$Yq!]$Yq~P!)wO!O1`O~O],yOk,yO~Ou(SOx(TO'x(XOP$xi'w$xi!R$xi!{$xi~O'a$xi#m$xi~P$.POu(SOx(TOP$zi'w$zi'x$zi!R$zi!{$zi~O'a$zi#m$zi~P$.rO'p#[O~P!BpO!Q1cO']$bO!R&tX!c&tX~O!R-RO!c'}a~O!R-RO!]!wO!c'}a~O!R-RO!]!wO'p&oO!c'}a~O'a$gi!R$gi!{$gi#m$gi~P!#{O!Q1kO'](eO!O&vX!R&vX~P!$jO!R-ZO!O(Oa~O!R-ZO!O(Oa~P!BpO!]!wO~O!]!wO#c1sO~Oj1vO!]!wO'p&oO~O!R'di'a'di~P!#{O!{1yO!R'di'a'di~P!#{O!c1|O~O_$Zq!R$Zq'W$Zq!O$Zq!c$Zqn$Zq!T$Zq%Q$Zq!]$Zq~P!)wO!R2QO!T(PX~P!BpO!T&dO%Q2TO~O!T&dO%Q2TO~P!BpO!T$eX$u[X_$eX!R$eX'W$eX~P!!rO$u2XOPgXugXxgX!TgX'wgX'xgX_gX!RgX'WgX~O$u2XO~O]2_O%R2`O'])iO!R'PX!S'PX~O!R.^O!S(Va~OZ2dO~O^2eO~O]2hO~OP2jO!T&dO!o2iO%Q2TO~O_$^O'W$^O~P!BpO!T#zO~P!BpO!R2oO!{2qO!S(SX~O!S2rO~Ox;oO!W2{O!X2tO!Y2tO!r2zO!s2yO!t2yO!x2xO'^$dO'g(jO'o+iO~O!S2wO~P$7ZOP3SO!T.yO!o3RO%Q3QO~OP3SO!T.yO!o3RO%Q3QO'b$PO~O'](|O!R'OX!S'OX~O!R/VO!S(Ta~O]3^O'g3]O~O]3_O~O^3aO~O!c3dO~P){O_3fO~O_3fO~P){O#c3hO%r3iO~PFOO`/mO!S3mO&Q/lO~P`O!]3oO~O!R#Ti!S#Ti~P#*XO!{3qO!R#Ti!S#Ti~O!R!Vi!S!Vi~P#*XO_$^O!{3xO'W$^O~O_$^O!]!wO!{3xO'W$^O~O!X3|O!Y3|O'^$dO'g(jO'o+iO~O_$^O!]!wO!d$ZO!j3}O!{3xO'W$^O'b$PO'p&oO~O!W4OO~P$;xO!W4OO!u4RO!x4SO~P$;xO_$^O!]!wO!j3}O!{3xO'W$^O'p&oO~O!R'rq!c'rq_'rq'W'rq~P!)wO!R&tO!c'qq~O#W$xiQ$xiZ$xi_$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi'W$xi'f$xi'p$xi!c$xi!O$xi!T$xin$xi%Q$xi!]$xi~P$.PO#W$ziQ$ziZ$zi_$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi'W$zi'f$zi'p$zi!c$zi!O$zi!T$zin$zi%Q$zi!]$zi~P$.rO#W$giQ$giZ$gi_$gij$giv$gi!R$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi'W$gi'f$gi'p$gi!c$gi!O$gi!T$gi!{$gin$gi%Q$gi!]$gi~P!BpO!R&ka'a&ka~P!#{O!R&la!c&la~P!)wO!R,bO!c'ni~O#m#Oi!R#Oi!S#Oi~P#*XOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'fQOZ#Zij#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~O#[#Zi~P$EiO#[9eO~P$EiOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO'fQOZ#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~Oj#Zi~P$GqOj9gO~P$GqOQ#^Oj9gOu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO'fQO#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P$IyOZ9rO!a9iO#a9iO#b9iO#c9iO~P$IyOQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO'fQO#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'x#Zi!R#Zi!S#Zi~O'w#Zi~P$L_O'w!}O~P$L_OQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO'fQO'w!}O#i#Zi#j#Zi#m#Zi'p#Zi!R#Zi!S#Zi~O'x#Zi~P$NgO'x#OO~P$NgOQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO#i9nO'fQO'w!}O'x#OO~O#j#Zi#m#Zi'p#Zi!R#Zi!S#Zi~P%!oO_#ky!R#ky'W#ky!O#ky!c#kyn#ky!T#ky%Q#ky!]#ky~P!)wOP;vOu(SOx(TO'w(VO'x(XO~OQ#ZiZ#Zij#Ziv#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'f#Zi'p#Zi!R#Zi!S#Zi~P%%aO!b!yOP'eXu'eXx'eX'w'eX'x'eX!S'eX~OQ'eXZ'eXj'eXv'eX!a'eX!d'eX!j'eX#['eX#]'eX#^'eX#_'eX#`'eX#a'eX#b'eX#c'eX#e'eX#g'eX#i'eX#j'eX#m'eX'f'eX'p'eX!R'eX~P%'eO#m#ni!R#ni!S#ni~P#*XO!S4eO~O!R&sa!S&sa~P#*XO!]!wO'p&oO!R&ta!c&ta~O!R-RO!c'}i~O!R-RO!]!wO!c'}i~O'a$gq!R$gq!{$gq#m$gq~P!#{O!O&va!R&va~P!BpO!]4lO~O!R-ZO!O(Oi~P!BpO!R-ZO!O(Oi~O!O4pO~O!]!wO#c4uO~Oj4vO!]!wO'p&oO~O!O4xO~O'a$iq!R$iq!{$iq#m$iq~P!#{O_$Zy!R$Zy'W$Zy!O$Zy!c$Zyn$Zy!T$Zy%Q$Zy!]$Zy~P!)wO!R2QO!T(Pa~O!T&dO%Q4}O~O!T&dO%Q4}O~P!BpO_#Oy!R#Oy'W#Oy!O#Oy!c#Oyn#Oy!T#Oy%Q#Oy!]#Oy~P!)wOZ5QO~O]5SO'])iO~O!R.^O!S(Vi~O]5VO~O^5WO~O'g'TO!R&{X!S&{X~O!R2oO!S(Sa~O!S5eO~P$7ZOx;sO'g(jO'o+iO~O!W5hO!X5gO!Y5gO!x0_O'^$dO'g(jO'o+iO~O!s5iO!t5iO~P%0^O!X5gO!Y5gO'^$dO'g(jO'o+iO~O!T.yO~O!T.yO%Q5kO~O!T.yO%Q5kO~P!BpOP5pO!T.yO!o5oO%Q5kO~OZ5uO!R'Oa!S'Oa~O!R/VO!S(Ti~O]5xO~O!c5yO~O!c5zO~O!c5{O~O!c5{O~P){O_5}O~O!]6QO~O!c6RO~O!R'ui!S'ui~P#*XO_$^O'W$^O~P!)wO_$^O!{6WO'W$^O~O_$^O!]!wO!{6WO'W$^O~O!X6]O!Y6]O'^$dO'g(jO'o+iO~O_$^O!]!wO!j6^O!{6WO'W$^O'p&oO~O!d$ZO'b$PO~P%4xO!W6_O~P%4gO!R'ry!c'ry_'ry'W'ry~P!)wO#W$gqQ$gqZ$gq_$gqj$gqv$gq!R$gq!a$gq!b$gq!d$gq!j$gq#[$gq#]$gq#^$gq#_$gq#`$gq#a$gq#b$gq#c$gq#e$gq#g$gq#i$gq#j$gq'W$gq'f$gq'p$gq!c$gq!O$gq!T$gq!{$gqn$gq%Q$gq!]$gq~P!BpO#W$iqQ$iqZ$iq_$iqj$iqv$iq!R$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq'W$iq'f$iq'p$iq!c$iq!O$iq!T$iq!{$iqn$iq%Q$iq!]$iq~P!BpO!R&li!c&li~P!)wO#m#Oq!R#Oq!S#Oq~P#*XOu-tOv-tOx-uOPra'wra'xra!Sra~OQraZrajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra#mra'fra'pra!Rra~P%;OOu(SOx(TOP$^a'w$^a'x$^a!S$^a~OQ$^aZ$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a#m$^a'f$^a'p$^a!R$^a~P%=SOu(SOx(TOP$`a'w$`a'x$`a!S$`a~OQ$`aZ$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a#m$`a'f$`a'p$`a!R$`a~P%?WOQ$naZ$naj$nav$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na#m$na'f$na'p$na!R$na!S$na~P%%aO#m$Yq!R$Yq!S$Yq~P#*XO#m$Zq!R$Zq!S$Zq~P#*XO!S6hO~O#m6iO~P!#{O!]!wO!R&ti!c&ti~O!]!wO'p&oO!R&ti!c&ti~O!R-RO!c'}q~O!O&vi!R&vi~P!BpO!R-ZO!O(Oq~O!O6oO~P!BpO!O6oO~O!R'dy'a'dy~P!#{O!R&ya!T&ya~P!BpO!T$tq_$tq!R$tq'W$tq~P!BpOZ6vO~O!R.^O!S(Vq~O]6yO~O!T&dO%Q6zO~O!T&dO%Q6zO~P!BpO!{6{O!R&{a!S&{a~O!R2oO!S(Si~P#*XO!X7RO!Y7RO'^$dO'g(jO'o+iO~O!W7TO!x4SO~P%GXO!T.yO%Q7WO~O!T.yO%Q7WO~P!BpO]7_O'g7^O~O!R/VO!S(Tq~O!c7aO~O!c7aO~P){O!c7cO~O!c7dO~O!R#Ty!S#Ty~P#*XO_$^O!{7jO'W$^O~O_$^O!]!wO!{7jO'W$^O~O!X7mO!Y7mO'^$dO'g(jO'o+iO~O_$^O!]!wO!j7nO!{7jO'W$^O'p&oO~O#m#ky!R#ky!S#ky~P#*XOQ$giZ$gij$giv$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi#m$gi'f$gi'p$gi!R$gi!S$gi~P%%aOu(SOx(TO'x(XOP$xi'w$xi!S$xi~OQ$xiZ$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi#m$xi'f$xi'p$xi!R$xi~P%LjOu(SOx(TOP$zi'w$zi'x$zi!S$zi~OQ$ziZ$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi#m$zi'f$zi'p$zi!R$zi~P%NnO#m$Zy!R$Zy!S$Zy~P#*XO#m#Oy!R#Oy!S#Oy~P#*XO!]!wO!R&tq!c&tq~O!R-RO!c'}y~O!O&vq!R&vq~P!BpO!O7tO~P!BpO!R.^O!S(Vy~O!R2oO!S(Sq~O!X8QO!Y8QO'^$dO'g(jO'o+iO~O!T.yO%Q8TO~O!T.yO%Q8TO~P!BpO!c8WO~O_$^O!{8]O'W$^O~O_$^O!]!wO!{8]O'W$^O~OQ$gqZ$gqj$gqv$gq!a$gq!b$gq!d$gq!j$gq#[$gq#]$gq#^$gq#_$gq#`$gq#a$gq#b$gq#c$gq#e$gq#g$gq#i$gq#j$gq#m$gq'f$gq'p$gq!R$gq!S$gq~P%%aOQ$iqZ$iqj$iqv$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq#m$iq'f$iq'p$iq!R$iq!S$iq~P%%aO'a$|!Z!R$|!Z!{$|!Z#m$|!Z~P!#{O!R&{q!S&{q~P#*XO_$^O!{8oO'W$^O~O#W$|!ZQ$|!ZZ$|!Z_$|!Zj$|!Zv$|!Z!R$|!Z!a$|!Z!b$|!Z!d$|!Z!j$|!Z#[$|!Z#]$|!Z#^$|!Z#_$|!Z#`$|!Z#a$|!Z#b$|!Z#c$|!Z#e$|!Z#g$|!Z#i$|!Z#j$|!Z'W$|!Z'f$|!Z'p$|!Z!c$|!Z!O$|!Z!T$|!Z!{$|!Zn$|!Z%Q$|!Z!]$|!Z~P!BpOP;uOu(SOx(TO'w(VO'x(XO~O!S!za!W!za!X!za!Y!za!r!za!s!za!t!za!x!za'^!za'g!za'o!za~P&,_O!W'eX!X'eX!Y'eX!r'eX!s'eX!t'eX!x'eX'^'eX'g'eX'o'eX~P%'eOQ$|!ZZ$|!Zj$|!Zv$|!Z!a$|!Z!b$|!Z!d$|!Z!j$|!Z#[$|!Z#]$|!Z#^$|!Z#_$|!Z#`$|!Z#a$|!Z#b$|!Z#c$|!Z#e$|!Z#g$|!Z#i$|!Z#j$|!Z#m$|!Z'f$|!Z'p$|!Z!R$|!Z!S$|!Z~P%%aO!Wra!Xra!Yra!rra!sra!tra!xra'^ra'gra'ora~P%;OO!W$^a!X$^a!Y$^a!r$^a!s$^a!t$^a!x$^a'^$^a'g$^a'o$^a~P%=SO!W$`a!X$`a!Y$`a!r$`a!s$`a!t$`a!x$`a'^$`a'g$`a'o$`a~P%?WO!S$na!W$na!X$na!Y$na!r$na!s$na!t$na!x$na'^$na'g$na'o$na~P&,_O!W$xi!X$xi!Y$xi!r$xi!s$xi!t$xi!x$xi'^$xi'g$xi'o$xi~P%LjO!W$zi!X$zi!Y$zi!r$zi!s$zi!t$zi!x$zi'^$zi'g$zi'o$zi~P%NnO!S$gi!W$gi!X$gi!Y$gi!r$gi!s$gi!t$gi!x$gi'^$gi'g$gi'o$gi~P&,_O!S$gq!W$gq!X$gq!Y$gq!r$gq!s$gq!t$gq!x$gq'^$gq'g$gq'o$gq~P&,_O!S$iq!W$iq!X$iq!Y$iq!r$iq!s$iq!t$iq!x$iq'^$iq'g$iq'o$iq~P&,_O!S$|!Z!W$|!Z!X$|!Z!Y$|!Z!r$|!Z!s$|!Z!t$|!Z!x$|!Z'^$|!Z'g$|!Z'o$|!Z~P&,_On'hX~P.jOn[X!O[X!c[X%r[X!T[X%Q[X!][X~P$zO!]dX!c[X!cdX'pdX~P;dOQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!TSO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O']'cO'fQO'oYO'|;^O~O]#qOh$QOj#rOk#qOl#qOq$ROs9uOx#yO!T#zO!_;fO!d#vO#V:OO#t$VO$_9xO$a9{O$d$WO']&{O'b$PO'f#sO~O!R9pO!S$]a~O]#qOh$QOj#rOk#qOl#qOq$ROs9vOx#yO!T#zO!_;gO!d#vO#V:PO#t$VO$_9yO$a9|O$d$WO']&{O'b$PO'f#sO~O#d'jO~P&]P!AQ!AY!A^!A^P!>YP!Ab!AbP!DVP!DZ?Z?Z!Da!GT8SP8SP8S8SP!HW8S8S!Jf8S!M_8S# g8S8S#!T#$c#$c#$g#$c#$oP#$cP8S#%k8S#'X8S8S-zPPP#(yPP#)c#)cP#)cP#)x#)cPP#*OP#)uP#)u#*b!!X#)u#+P#+V#+Y([#+]([P#+d#+d#+dP([P([P([P([PP([P#+j#+mP#+m([P#+qP#+tP([P([P([P([P([P([([#+z#,U#,[#,b#,p#,v#,|#-W#-^#-m#-s#.R#.X#._#.m#/S#0z#1Y#1`#1f#1l#1r#1|#2S#2Y#2d#2v#2|PPPPPPPP#3SPP#3v#7OPP#8f#8m#8uPP#>a#@t#Fp#Fs#Fv#GR#GUPP#GX#G]#Gz#Hq#Hu#IZPP#I_#Ie#IiP#Il#Ip#Is#Jc#Jy#KO#KR#KU#K[#K_#Kc#KgmhOSj}!n$]%c%f%g%i*o*t/g/jQ$imQ$ppQ%ZyS&V!b+`Q&k!jS(l#z(qQ)g$jQ)t$rQ*`%TQ+f&^S+k&d+mQ+}&lQ-k(sQ/U*aY0Z+o+p+q+r+sS2t.y2vU3|0[0^0aU5g2y2z2{S6]4O4RS7R5h5iQ7m6_R8Q7T$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!j'e#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ(}$SQ)l$lQ*b%WQ*i%`Q,X9tQ.W)aQ.c)mQ/^*gQ2_.^Q3Z/VQ4^9vQ5S2`R8{9upeOSjy}!n$]%Y%c%f%g%i*o*t/g/jR*d%[&WVOSTjkn}!S!W!k!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%z&S&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;`;a[!cRU!]!`%x&WQ$clQ$hmS$mp$rv$wrs!r!u$Z$u&`&t&w)x)y)z*m+Y+h,S,U/o0lQ%PwQ&h!iQ&j!jS(_#v(cS)f$i$jQ)j$lQ)w$tQ*Z%RQ*_%TS+|&k&lQ-V(`Q.[)gQ.b)mQ.d)nQ.g)rQ/P*[S/T*`*aQ0h+}Q1b-RQ2^.^Q2b.aQ2g.iQ3Y/UQ4i1cQ5R2`Q5U2dQ6u5QR7w6vx#xa!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k!Y$fm!j$h$i$j&U&j&k&l(k)f)g+]+j+|+}-d.[0Q0W0]0h1u3{4Q6Z7k8^Q)`$cQ*P$|Q*S$}Q*^%TQ.k)wQ/O*ZU/S*_*`*aQ3T/PS3X/T/UQ5b2sQ5t3YS7P5c5fS8O7Q7SQ8f8PQ8u8g#[;b!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd;c9d9x9{:O:V:Y:]:b:e:ke;d9r9y9|:P:W:Z:^:c:f:lW#}a$P(y;^S$|t%YQ$}uQ%OvR)}$z%P#|a!w!y#d#v#y$T$U$Y&g'}(W(Y(Z(b(h(w(x)])_)a*O*R+y,_-Y-Z-]-w.R.T.p.s.{.}1a1k1s1y2Q2T2X2j3Q3S4l4u4}5k5p6i6z7W8T9d9r9w9x9y9z9{9|9}:O:P:U:V:W:X:Y:Z:[:]:^:a:b:c:d:e:f:j:k:l;^;i;j;k;l;n;t;u;vT(O#s(PX)O$S9t9u9vU&Z!b$v+cQ'U!{Q)q$oQ.t*TQ1z-tR5^2o&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a$]#aZ!_!o$a%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,i,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|T!XQ!Y&_cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ&X!bR/|+`Y&R!b&V&^+`+fS(k#z(qS+j&d+mS-d(l(sQ-e(mQ-l(tQ.v*VU0W+k+o+pU0]+q+r+sS0b+t2xQ1u-kQ1w-mQ1x-nS2s.y2vU3{0Z0[0^Q4P0_Q4Q0aS5c2t2{S5f2y2zU6Z3|4O4RQ6`4SS7Q5g5hQ7S5iS7k6]6_S8P7R7TQ8^7mQ8g8QQ;h;oR;m;slhOSj}!n$]%c%f%g%i*o*t/g/jQ%k!QS&x!v9cQ)d$gQ*X%PQ*Y%QQ+z&iS,]&}:RS-y)V:_Q.Y)eQ.x*WQ/n*vQ/p*wQ/x+ZQ0`+qQ0f+{S2P-z:gQ2Y.ZS2].]:hQ3r/zQ3u0RQ4U0gQ5P2ZQ6T3tQ6X3zQ6a4VQ7e6RQ7h6YQ8Y7iQ8l8[R8x8n$W#`Z!_!o%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|W(v#{&|1V8qT)Z$a,i$W#_Z!_!o%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|Q'f#`S)Y$a,iR-{)Z&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ%f{Q%g|Q%i!OQ%j!PR/f*rQ&e!iQ)[$cQ+w&hS.Q)`)wS0c+u+vW2S-}.O.P.kS4T0d0eU4|2U2V2WU6s4{5Y5ZQ7v6tR8b7yT+l&d+mS+j&d+mU0W+k+o+pU0]+q+r+sS0b+t2xS2s.y2vU3{0Z0[0^Q4P0_Q4Q0aS5c2t2{S5f2y2zU6Z3|4O4RQ6`4SS7Q5g5hQ7S5iS7k6]6_S8P7R7TQ8^7mR8g8QS+l&d+mT2u.y2vS&r!q/dQ-U(_Q-b(kS0V+j2sQ1g-VS1p-c-lU3}0]0b5fQ4h1bS4s1v1xU6^4P4Q7SQ6k4iQ6r4vR7n6`Q!xXS&q!q/dQ)W$[Q)b$eQ)h$kQ,Q&rQ-T(_Q-a(kQ-f(nQ.X)cQ/Q*]S0U+j2sS1f-U-VS1o-b-lQ1r-eQ1t-gQ3V/RW3y0V0]0b5fQ4g1bQ4k1gS4o1p1xQ4t1wQ5r3WW6[3}4P4Q7SS6j4h4iS6n4p:iQ6p4sQ6}5aQ7[5sS7l6^6`Q7r6kS7s6o:mQ7u6rQ7|7OQ8V7]Q8_7nS8a7t:nQ8d7}Q8s8eQ9Q8tQ9X9RQ:u:pQ;T:zQ;U:{Q;V;hR;[;m$rWORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oS!xn!k!j:o#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR:u;`$rXORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oQ$[b!Y$em!j$h$i$j&U&j&k&l(k)f)g+]+j+|+}-d.[0Q0W0]0h1u3{4Q6Z7k8^S$kn!kQ)c$fQ*]%TW/R*^*_*`*aU3W/S/T/UQ5a2sS5s3X3YU7O5b5c5fQ7]5tU7}7P7Q7SS8e8O8PS8t8f8gQ9R8u!j:p#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ:z;_R:{;`$f]OSTjk}!S!W!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oY!hRU!]!`%xv$wrs!r!u$Z$u&`&t&w)x)y)z*m+Y+h,S,U/o0lQ*j%`!h:q#]#k'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR:t&WS&[!b$vR0O+c$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!j'e#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR*i%`$roORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oQ'U!{!k:r#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a!h#VZ!_$a%w%}&y'Q'_'`'a'b'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_!R9k'd'u+^,i/v/y0w1P1Q1R1S1W1]3s4]4b4c5`6S6b6f6g7z:|!d#XZ!_$a%w%}&y'Q'a'b'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_}9m'd'u+^,i/v/y0w1R1S1W1]3s4]4b4c5`6S6b6f6g7z:|!`#]Z!_$a%w%}&y'Q'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_Q1a-Px;a'd'u+^,i/v/y0w1W1]3s4]4b4c5`6S6b6f6g7z:|Q;i;pQ;j;qR;k;r&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aS#l`#mR1Y,l&e_ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,l,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aS#g^#nT'n#i'rT#h^#nT'p#i'r&e`ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,l,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aT#l`#mQ#o`R'y#m$rbORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!k;_#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a#RdOSUj}!S!W!n!|#k$]%[%_%`%c%e%f%g%i%m&S&f'w)^*k*o*t+x,m-u.S.|/_/`/a/c/g/j/l1X2i3R3f3h3i5o5}x#{a!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k#[&|!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vQ)S$WQ,x(Sd1V9r9y9|:P:W:Z:^:c:f:le8q9d9x9{:O:V:Y:]:b:e:kx#wa!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;kQ(d#xS(n#z(qQ)T$XQ-g(o#[:w!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd:x9d9x9{:O:V:Y:]:b:e:kd:y9r9y9|:P:W:Z:^:c:f:lQ:};bQ;O;cQ;P;dQ;Q;eQ;R;fR;S;gx#{a!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k#[&|!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd1V9r9y9|:P:W:Z:^:c:f:le8q9d9x9{:O:V:Y:]:b:e:klfOSj}!n$]%c%f%g%i*o*t/g/jQ(g#yQ*}%pQ+O%rR1j-Z%O#|a!w!y#d#v#y$T$U$Y&g'}(W(Y(Z(b(h(w(x)])_)a*O*R+y,_-Y-Z-]-w.R.T.p.s.{.}1a1k1s1y2Q2T2X2j3Q3S4l4u4}5k5p6i6z7W8T9d9r9w9x9y9z9{9|9}:O:P:U:V:W:X:Y:Z:[:]:^:a:b:c:d:e:f:j:k:l;^;i;j;k;l;n;t;u;vQ*Q$}Q.r*SQ2m.qR5]2nT(p#z(qS(p#z(qT2u.y2vQ)b$eQ-f(nQ.X)cQ/Q*]Q3V/RQ5r3WQ6}5aQ7[5sQ7|7OQ8V7]Q8d7}Q8s8eQ9Q8tR9X9Rp(W#t'O)U-X-o-p0q1h1}4f4w7q:v;W;X;Y!n:U&z'i(^(f+v,[,t-P-^-|.P.o.q0e0p1i1m2W2l2n3O4Y4Z4m4q4y5O5Z5n6m6q7Y8`;Z;];p;q;r[:V8p9O9V9Y9Z9]]:W1U4a6c7o7p8zr(Y#t'O)U,}-X-o-p0q1h1}4f4w7q:v;W;X;Y!p:X&z'i(^(f+v,[,t-P-^-|.P.o.q0e0n0p1i1m2W2l2n3O4Y4Z4m4q4y5O5Z5n6m6q7Y8`;Z;];p;q;r^:Y8p9O9T9V9Y9Z9]_:Z1U4a6c6d7o7p8zpeOSjy}!n$]%Y%c%f%g%i*o*t/g/jQ%VxR*k%`peOSjy}!n$]%Y%c%f%g%i*o*t/g/jR%VxQ*U%OR.n)}qeOSjy}!n$]%Y%c%f%g%i*o*t/g/jQ.z*ZS3P/O/PW5j2|2}3O3TU7V5l5m5nU8R7U7X7YQ8h8SR8v8iQ%^yR*e%YR3^/XR7_5uS$mp$rR.d)nQ%czR*o%dR*u%jT/h*t/jR*y%kQ*x%kR/q*yQjOQ!nST$`j!nQ(P#sR,u(PQ!YQR%u!YQ!^RU%{!^%|+UQ%|!_R+U%}Q+a&XR/}+aQ,`'OR0r,`Q,c'QS0u,c0vR0v,dQ+m&dR0X+mS!eR$uU&a!e&b+VQ&b!fR+V&OQ+d&[R0P+dQ&u!sQ,R&sU,V&u,R0mR0m,WQ'r#iR,n'rQ#m`R'x#mQ#cZU'h#c+Q9qQ+Q9_R9q'uQ-S(_W1d-S1e4j6lU1e-T-U-VS4j1f1gR6l4k$k(U#t&z'O'i(^(f)P)Q)U+v,Y,Z,[,t,}-O-P-X-^-o-p-|.P.o.q0e0n0o0p0q1U1h1i1m1}2W2l2n3O4Y4Z4_4`4a4f4m4q4w4y5O5Z5n6c6d6e6m6q7Y7o7p7q8`8p8z8|8}9O9T9U9V9Y9Z9]:v;W;X;Y;Z;];p;q;rQ-[(fU1l-[1n4nQ1n-^R4n1mQ(q#zR-i(qQ(z$OR-r(zQ2R-|R4z2RQ){$xR.m){Q2p.tS5_2p6|R6|5`Q*W%PR.w*WQ2v.yR5d2vQ/W*bS3[/W5vR5v3^Q._)jW2a._2c5T6wQ2c.bQ5T2bR6w5UQ)o$mR.e)oQ/j*tR3l/jWiOSj!nQ%h}Q)X$]Q*n%cQ*p%fQ*q%gQ*s%iQ/e*oS/h*t/jR3k/gQ$_gQ%l!RQ%o!TQ%q!UQ%s!VQ)v$sQ)|$yQ*d%^Q*{%nQ-h(pS/Z*e*hQ/r*zQ/s*}Q/t+OS0S+j2sQ2f.hQ2k.oQ3U/QQ3`/]Q3j/fY3w0U0V0]0b5fQ5X2hQ5[2lQ5q3VQ5w3_[6U3v3y3}4P4Q7SQ6x5VQ7Z5rQ7`5xW7f6V6[6^6`Q7x6yQ7{6}Q8U7[U8X7g7l7nQ8c7|Q8j8VS8k8Z8_Q8r8dQ8w8mQ9P8sQ9S8yQ9W9QR9[9XQ$gmQ&i!jU)e$h$i$jQ+Z&UU+{&j&k&lQ-`(kS.Z)f)gQ/z+]Q0R+jS0g+|+}Q1q-dQ2Z.[Q3t0QS3z0W0]Q4V0hQ4r1uS6Y3{4QQ7i6ZQ8[7kR8n8^S#ua;^R({$PU$Oa$P;^R-q(yQ#taS&z!w)aQ'O!yQ'i#dQ(^#vQ(f#yQ)P$TQ)Q$UQ)U$YQ+v&gQ,Y9wQ,Z9zQ,[9}Q,t'}Q,}(WQ-O(YQ-P(ZQ-X(bQ-^(hQ-o(wQ-p(xd-|)].R.{2T3Q4}5k6z7W8TQ.P)_Q.o*OQ.q*RQ0e+yQ0n:UQ0o:XQ0p:[Q0q,_Q1U9rQ1h-YQ1i-ZQ1m-]Q1}-wQ2W.TQ2l.pQ2n.sQ3O.}Q4Y:aQ4Z:dQ4_9yQ4`9|Q4a:PQ4f1aQ4m1kQ4q1sQ4w1yQ4y2QQ5O2XQ5Z2jQ5n3SQ6c:^Q6d:WQ6e:ZQ6m4lQ6q4uQ7Y5pQ7o:cQ7p:fQ7q6iQ8`:jQ8p9dQ8z:lQ8|9xQ8}9{Q9O:OQ9T:VQ9U:YQ9V:]Q9Y:bQ9Z:eQ9]:kQ:v;^Q;W;iQ;X;jQ;Y;kQ;Z;lQ;];nQ;p;tQ;q;uR;r;vlgOSj}!n$]%c%f%g%i*o*t/g/jS!pU%eQ%n!SQ%t!WQ'V!|Q'v#kS*h%[%_Q*l%`Q*z%mQ+W&SQ+u&fQ,r'wQ.O)^Q/b*kQ0d+xQ1[,mQ1{-uQ2V.SQ2}.|Q3b/_Q3c/`Q3e/aQ3g/cQ3n/lQ4d1XQ5Y2iQ5m3RQ5|3fQ6O3hQ6P3iQ7X5oR7b5}!vZOSUj}!S!n!|$]%[%_%`%c%e%f%g%i%m&S&f)^*k*o*t+x-u.S.|/_/`/a/c/g/j/l2i3R3f3h3i5o5}Q!_RQ!oTQ$akS%w!]%zQ%}!`Q&y!vQ'Q!zQ'W#PQ'X#QQ'Y#RQ'Z#SQ'[#TQ']#UQ'^#VQ'_#WQ'`#XQ'a#YQ'b#ZQ'd#]Q'g#bQ'k#eW'u#k'w,m1XQ)p$nS+R%x+TS+^&W/{Q+g&_Q,O&pQ,^&}Q,d'RQ,g9^Q,i9`Q,w(RQ-x)VQ/v+XQ/y+[Q0i,PQ0s,bQ0w9cQ0x9eQ0y9fQ0z9gQ0{9hQ0|9iQ0}9jQ1O9kQ1P9lQ1Q9mQ1R9nQ1S9oQ1T,hQ1W9sQ1]9pQ2O-zQ2[.]Q3s:QQ3v0TQ4W0jQ4[0tQ4]:RQ4b:TQ4c:_Q5`2qQ6S3qQ6V3xQ6b:`Q6f:gQ6g:hQ7g6WQ7z6{Q8Z7jQ8m8]Q8y8oQ9_!WR:|;aR!aRR&Y!bS&U!b+`S+]&V&^R0Q+fR'P!yR'S!zT!tU$ZS!sU$ZU$xrs*mS&s!r!uQ,T&tQ,W&wQ.l)zS0k,S,UR4X0l`!dR!]!`$u%x&`)x+hh!qUrs!r!u$Z&t&w)z,S,U0lQ/d*mQ/w+YQ3p/oT:s&W)yT!gR$uS!fR$uS%y!]&`S&O!`)xS+S%x+hT+_&W)yT&]!b$vQ#i^R'{#nT'q#i'rR1Z,lT(a#v(cR(i#yQ-})]Q2U.RQ2|.{Q4{2TQ5l3QQ6t4}Q7U5kQ7y6zQ8S7WR8i8TlhOSj}!n$]%c%f%g%i*o*t/g/jQ%]yR*d%YV$yrs*mR.u*TR*c%WQ$qpR)u$rR)k$lT%az%dT%bz%dT/i*t/j",nodeNames:"\u26A0 extends ArithOp ArithOp InterpolationStart LineComment BlockComment Script ExportDeclaration export Star as VariableName String from ; default FunctionDeclaration async function VariableDefinition TypeParamList TypeDefinition ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Interpolation null super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression await yield delete LogicOp BitOp ParenthesizedExpression ClassExpression class extends ClassBody MethodDeclaration Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression PrivatePropertyName BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody MethodDeclaration AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement",maxTerm:332,context:trackNewline,nodeProps:[["closedBy",4,"InterpolationEnd",40,"]",51,"}",66,")",132,"JSXSelfCloseEndTag JSXEndTag",146,"JSXEndTag"],["group",-26,8,15,17,58,184,188,191,192,194,197,200,211,213,219,221,223,225,228,234,240,242,244,246,248,250,251,"Statement",-30,12,13,24,27,28,41,43,44,45,47,52,60,68,74,75,91,92,101,103,119,122,124,125,126,127,129,130,148,149,151,"Expression",-22,23,25,29,32,34,152,154,156,157,159,160,161,163,164,165,167,168,169,178,180,182,183,"Type",-3,79,85,90,"ClassItem"],["openedBy",30,"InterpolationStart",46,"[",50,"{",65,"(",131,"JSXStartTag",141,"JSXStartTag JSXStartCloseTag"]],propSources:[jsHighlight],skippedNodes:[0,5,6],repeatNodeCount:28,tokenData:"!C}~R!`OX%TXY%cYZ'RZ[%c[]%T]^'R^p%Tpq%cqr'crs(kst0htu2`uv4pvw5ewx6cxyk|}?O}!O>k!O!P?`!P!QCl!Q!R!0[!R![!1q![!]!7s!]!^!8V!^!_!8g!_!`!9d!`!a!:[!a!b!U#R#S2`#S#T!>i#T#o2`#o#p!>y#p#q!?O#q#r!?f#r#s!?x#s$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$I|2`$I|$I}!Bq$I}$JO!Bq$JO$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`W%YR$UWO!^%T!_#o%T#p~%T7Z%jg$UW'Y7ROX%TXY%cYZ%TZ[%c[p%Tpq%cq!^%T!_#o%T#p$f%T$f$g%c$g#BY%T#BY#BZ%c#BZ$IS%T$IS$I_%c$I_$JT%T$JT$JU%c$JU$KV%T$KV$KW%c$KW&FU%T&FU&FV%c&FV?HT%T?HT?HU%c?HU~%T7Z'YR$UW'Z7RO!^%T!_#o%T#p~%T$T'jS$UW!j#{O!^%T!_!`'v!`#o%T#p~%T$O'}S#e#v$UWO!^%T!_!`(Z!`#o%T#p~%T$O(bR#e#v$UWO!^%T!_#o%T#p~%T)X(rZ$UW]#eOY(kYZ)eZr(krs*rs!^(k!^!_+U!_#O(k#O#P-b#P#o(k#o#p+U#p~(k&r)jV$UWOr)ers*Ps!^)e!^!_*a!_#o)e#o#p*a#p~)e&r*WR$P&j$UWO!^%T!_#o%T#p~%T&j*dROr*ars*ms~*a&j*rO$P&j)X*{R$P&j$UW]#eO!^%T!_#o%T#p~%T)P+ZV]#eOY+UYZ*aZr+Urs+ps#O+U#O#P+w#P~+U)P+wO$P&j]#e)P+zROr+Urs,Ts~+U)P,[U$P&j]#eOY,nZr,nrs-Vs#O,n#O#P-[#P~,n#e,sU]#eOY,nZr,nrs-Vs#O,n#O#P-[#P~,n#e-[O]#e#e-_PO~,n)X-gV$UWOr(krs-|s!^(k!^!_+U!_#o(k#o#p+U#p~(k)X.VZ$P&j$UW]#eOY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x#m/PZ$UW]#eOY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x#m/yR$UW]#eO!^%T!_#o%T#p~%T#m0XT$UWO!^.x!^!_,n!_#o.x#o#p,n#p~.x3]0mZ$UWOt%Ttu1`u!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`3]1g]$UW'o3TOt%Ttu1`u!Q%T!Q![1`![!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`7Z2k_$UW#zS']$y'g3SOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`[3q_$UW#zSOt%Ttu3ju}%T}!O3j!O!Q%T!Q![3j![!^%T!_!c%T!c!}3j!}#R%T#R#S3j#S#T%T#T#o3j#p$g%T$g~3j$O4wS#^#v$UWO!^%T!_!`5T!`#o%T#p~%T$O5[R$UW#o#vO!^%T!_#o%T#p~%T5b5lU'x5Y$UWOv%Tvw6Ow!^%T!_!`5T!`#o%T#p~%T$O6VS$UW#i#vO!^%T!_!`5T!`#o%T#p~%T)X6jZ$UW]#eOY6cYZ7]Zw6cwx*rx!^6c!^!_8T!_#O6c#O#P:T#P#o6c#o#p8T#p~6c&r7bV$UWOw7]wx*Px!^7]!^!_7w!_#o7]#o#p7w#p~7]&j7zROw7wwx*mx~7w)P8YV]#eOY8TYZ7wZw8Twx+px#O8T#O#P8o#P~8T)P8rROw8Twx8{x~8T)P9SU$P&j]#eOY9fZw9fwx-Vx#O9f#O#P9}#P~9f#e9kU]#eOY9fZw9fwx-Vx#O9f#O#P9}#P~9f#e:QPO~9f)X:YV$UWOw6cwx:ox!^6c!^!_8T!_#o6c#o#p8T#p~6c)X:xZ$P&j$UW]#eOY;kYZ%TZw;kwx/rx!^;k!^!_9f!_#O;k#O#PW{!^%T!_!`5T!`#o%T#p~%T$O>_S#[#v$UWO!^%T!_!`5T!`#o%T#p~%T%w>rSj%o$UWO!^%T!_!`5T!`#o%T#p~%T&i?VR!R&a$UWO!^%T!_#o%T#p~%T7Z?gVu5^$UWO!O%T!O!P?|!P!Q%T!Q![@r![!^%T!_#o%T#p~%T!{@RT$UWO!O%T!O!P@b!P!^%T!_#o%T#p~%T!{@iR!Q!s$UWO!^%T!_#o%T#p~%T!{@yZ$UWk!sO!Q%T!Q![@r![!^%T!_!g%T!g!hAl!h#R%T#R#S@r#S#X%T#X#YAl#Y#o%T#p~%T!{AqZ$UWO{%T{|Bd|}%T}!OBd!O!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T!{BiV$UWO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T!{CVV$UWk!sO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T7ZCs`$UW#]#vOYDuYZ%TZzDuz{Jl{!PDu!P!Q!-e!Q!^Du!^!_Fx!_!`!.^!`!a!/]!a!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXD|[$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXEy_$UW}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%TPF}V}POYFxZ!PFx!P!QGd!Q!}Fx!}#OG{#O#PHh#P~FxPGiU}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGdPHOTOYG{Z#OG{#O#PH_#P#QFx#Q~G{PHbQOYG{Z~G{PHkQOYFxZ~FxXHvY$UWOYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~HqXIkV$UWOYHqYZ%TZ!^Hq!^!_G{!_#oHq#o#pG{#p~HqXJVV$UWOYDuYZ%TZ!^Du!^!_Fx!_#oDu#o#pFx#p~Du7ZJs^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q!,R!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl7ZKtV$UWOzKoz{LZ{!^Ko!^!_M]!_#oKo#o#pM]#p~Ko7ZL`X$UWOzKoz{LZ{!PKo!P!QL{!Q!^Ko!^!_M]!_#oKo#o#pM]#p~Ko7ZMSR$UWU7RO!^%T!_#o%T#p~%T7RM`ROzM]z{Mi{~M]7RMlTOzM]z{Mi{!PM]!P!QM{!Q~M]7RNQOU7R7ZNX^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q! T!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl7Z! ^_$UWU7R}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%T7R!!bY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!&x!Q!}!!]!}#O!$`#O#P!&f#P~!!]7R!#VY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!#u!Q!}!!]!}#O!$`#O#P!&f#P~!!]7R!#|UU7R}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGd7R!$cWOY!$`YZM]Zz!$`z{!${{#O!$`#O#P!&S#P#Q!!]#Q~!$`7R!%OYOY!$`YZM]Zz!$`z{!${{!P!$`!P!Q!%n!Q#O!$`#O#P!&S#P#Q!!]#Q~!$`7R!%sTU7ROYG{Z#OG{#O#PH_#P#QFx#Q~G{7R!&VTOY!$`YZM]Zz!$`z{!${{~!$`7R!&iTOY!!]YZM]Zz!!]z{!#Q{~!!]7R!&}_}POzM]z{Mi{#ZM]#Z#[!&x#[#]M]#]#^!&x#^#aM]#a#b!&x#b#gM]#g#h!&x#h#iM]#i#j!&x#j#mM]#m#n!&x#n~M]7Z!(R[$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|7Z!(|^$UWOY!'|YZKoZz!'|z{!(w{!P!'|!P!Q!)x!Q!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|7Z!*PY$UWU7ROYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~Hq7Z!*tX$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#o!'|#o#p!$`#p~!'|7Z!+fX$UWOYJlYZKoZzJlz{NQ{!^Jl!^!_!!]!_#oJl#o#p!!]#p~Jl7Z!,Yc$UW}POzKoz{LZ{!^Ko!^!_M]!_#ZKo#Z#[!,R#[#]Ko#]#^!,R#^#aKo#a#b!,R#b#gKo#g#h!,R#h#iKo#i#j!,R#j#mKo#m#n!,R#n#oKo#o#pM]#p~Ko7Z!-lV$UWT7ROY!-eYZ%TZ!^!-e!^!_!.R!_#o!-e#o#p!.R#p~!-e7R!.WQT7ROY!.RZ~!.R$P!.g[$UW#o#v}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du]!/f[#wS$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du!{!0cd$UWk!sO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#U%T#U#V!3X#V#X%T#X#YAl#Y#b%T#b#c!2w#c#d!4m#d#l%T#l#m!5{#m#o%T#p~%T!{!1x_$UWk!sO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#X%T#X#YAl#Y#b%T#b#c!2w#c#o%T#p~%T!{!3OR$UWk!sO!^%T!_#o%T#p~%T!{!3^W$UWO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#o%T#p~%T!{!3}Y$UWk!sO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#b%T#b#c!2w#c#o%T#p~%T!{!4rV$UWO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#o%T#p~%T!{!5`X$UWk!sO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#b%T#b#c!2w#c#o%T#p~%T!{!6QZ$UWO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#o%T#p~%T!{!6z]$UWk!sO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#b%T#b#c!2w#c#o%T#p~%T$u!7|R!]V$UW#m$fO!^%T!_#o%T#p~%T!q!8^R_!i$UWO!^%T!_#o%T#p~%T5w!8rR'bd!a/n#x&s'|P!P!Q!8{!^!_!9Q!_!`!9_W!9QO$WW#v!9VP#`#v!_!`!9Y#v!9_O#o#v#v!9dO#a#v$u!9kT!{$m$UWO!^%T!_!`'v!`!a!9z!a#o%T#p~%T$P!:RR#W#w$UWO!^%T!_#o%T#p~%T%V!:gT'a!R#a#v$RS$UWO!^%T!_!`!:v!`!a!;W!a#o%T#p~%T$O!:}R#a#v$UWO!^%T!_#o%T#p~%T$O!;_T#`#v$UWO!^%T!_!`5T!`!a!;n!a#o%T#p~%T$O!;uS#`#v$UWO!^%T!_!`5T!`#o%T#p~%T*a!]S#g#v$UWO!^%T!_!`5T!`#o%T#p~%T$a!>pR$UW'f$XO!^%T!_#o%T#p~%T~!?OO!T~5b!?VT'w5Y$UWO!^%T!_!`5T!`#o%T#p#q!=P#q~%T6X!?oR!S5}nQ$UWO!^%T!_#o%T#p~%TX!@PR!kP$UWO!^%T!_#o%T#p~%T7Z!@gr$UW'Y7R#zS']$y'g3SOX%TXY%cYZ%TZ[%c[p%Tpq%cqt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`7Z!CO_$UW'Z7R#zS']$y'g3SOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`",tokenizers:[tsExtends,noSemicolon,incdecToken,template,0,1,2,3,4,5,6,7,8,9,insertSemicolon],topRules:{Script:[0,7]},dialects:{jsx:12107,ts:12109},dynamicPrecedences:{"149":1,"176":1},specialized:[{term:289,get:o=>spec_identifier[o]||-1},{term:299,get:o=>spec_word[o]||-1},{term:63,get:o=>spec_LessThan[o]||-1}],tokenPrec:12130}),snippets=[snippetCompletion("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),snippetCompletion("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),snippetCompletion("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),snippetCompletion("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),snippetCompletion("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),snippetCompletion(`try { \${} } catch (\${error}) { \${} -}`,{label:"try",detail:"block",type:"keyword"}),snippetCompletion(`class \${name} { +}`,{label:"try",detail:"/ catch block",type:"keyword"}),snippetCompletion("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),snippetCompletion(`if (\${}) { + \${} +} else { + \${} +}`,{label:"if",detail:"/ else block",type:"keyword"}),snippetCompletion(`class \${name} { constructor(\${params}) { \${} } -}`,{label:"class",detail:"definition",type:"keyword"}),snippetCompletion('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),snippetCompletion('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],javascriptLanguage=LRLanguage.define({parser:parser.configure({props:[indentNodeProp.add({IfStatement:continuedIndent({except:/^\s*({|else\b)/}),TryStatement:continuedIndent({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:flatIndent,SwitchBody:o=>{let e=o.textAfter,s=/^\s*\}/.test(e),a=/^\s*(case|default)\b/.test(e);return o.baseIndent+(s?0:a?1:2)*o.unit},Block:delimitedIndent({closing:"}"}),ArrowFunction:o=>o.baseIndent+o.unit,"TemplateString BlockComment":()=>-1,"Statement Property":continuedIndent({except:/^{/}),JSXElement(o){let e=/^\s*<\//.test(o.textAfter);return o.lineIndent(o.node.from)+(e?0:o.unit)},JSXEscape(o){let e=/\s*\}/.test(o.textAfter);return o.lineIndent(o.node.from)+(e?0:o.unit)},"JSXOpenTag JSXSelfClosingTag"(o){return o.column(o.node.from)+o.unit}}),foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":foldInside$1,BlockComment(o){return{from:o.from+2,to:o.to-2}}}),styleTags({"get set async static":tags.modifier,"for while do if else switch try catch finally return throw break continue default case":tags.controlKeyword,"in of await yield void typeof delete instanceof":tags.operatorKeyword,"let var const function class extends":tags.definitionKeyword,"import export from":tags.moduleKeyword,"with debugger as new":tags.keyword,TemplateString:tags.special(tags.string),Super:tags.atom,BooleanLiteral:tags.bool,this:tags.self,null:tags.null,Star:tags.modifier,VariableName:tags.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":tags.function(tags.variableName),VariableDefinition:tags.definition(tags.variableName),Label:tags.labelName,PropertyName:tags.propertyName,PrivatePropertyName:tags.special(tags.propertyName),"CallExpression/MemberExpression/PropertyName":tags.function(tags.propertyName),"FunctionDeclaration/VariableDefinition":tags.function(tags.definition(tags.variableName)),"ClassDeclaration/VariableDefinition":tags.definition(tags.className),PropertyDefinition:tags.definition(tags.propertyName),PrivatePropertyDefinition:tags.definition(tags.special(tags.propertyName)),UpdateOp:tags.updateOperator,LineComment:tags.lineComment,BlockComment:tags.blockComment,Number:tags.number,String:tags.string,ArithOp:tags.arithmeticOperator,LogicOp:tags.logicOperator,BitOp:tags.bitwiseOperator,CompareOp:tags.compareOperator,RegExp:tags.regexp,Equals:tags.definitionOperator,"Arrow : Spread":tags.punctuation,"( )":tags.paren,"[ ]":tags.squareBracket,"{ }":tags.brace,"InterpolationStart InterpolationEnd":tags.special(tags.brace),".":tags.derefOperator,", ;":tags.separator,TypeName:tags.typeName,TypeDefinition:tags.definition(tags.typeName),"type enum interface implements namespace module declare":tags.definitionKeyword,"abstract global Privacy readonly override":tags.modifier,"is keyof unique infer":tags.operatorKeyword,JSXAttributeValue:tags.attributeValue,JSXText:tags.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":tags.angleBracket,"JSXIdentifier JSXNameSpacedName":tags.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":tags.attributeName})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),typescriptLanguage=javascriptLanguage.configure({dialect:"ts"}),jsxLanguage=javascriptLanguage.configure({dialect:"jsx"}),tsxLanguage=javascriptLanguage.configure({dialect:"jsx ts"});function javascript(o={}){let e=o.jsx?o.typescript?tsxLanguage:jsxLanguage:o.typescript?typescriptLanguage:javascriptLanguage;return new LanguageSupport(e,javascriptLanguage.data.of({autocomplete:ifNotIn(["LineComment","BlockComment","String"],completeFromList(snippets))}))}const useObserver=(o,{root:e,rootMargin:s,threshold:a}={},c=[])=>{const d=react.exports.useRef(null),_=react.exports.useRef(null);return react.exports.useCallback(k=>{d.current&&_.current&&(_.current.unobserve(d.current),_.current.disconnect(),_.current=null),k&&(_.current=new IntersectionObserver(o,{root:e,rootMargin:s,threshold:a}),_.current.observe(k),d.current=k)},[d,e,s,JSON.stringify(a),...c])},useInView=({root:o,rootMargin:e,threshold:s,unobserveOnEnter:a,target:c,onEnter:d,onLeave:_,defaultInView:b}={},k=[])=>{const[$,j]=react.exports.useState({inView:b||!1,entry:null,observer:null}),_e=react.exports.useCallback(([tt],nt)=>{const rt=nt.thresholds.some(st=>tt.intersectionRatio>=st)&&tt.isIntersecting;j({inView:rt,entry:tt,observer:nt}),rt&&a&&(nt.unobserve(tt.target),nt.disconnect()),rt?d==null||d(tt,nt):_==null||_(tt,nt)},[d,_,a]),et=useObserver(_e,{root:o,rootMargin:e,threshold:s},[a,...k]);return react.exports.useEffect(()=>{c!=null&&c.current&&et(c.current)},[c,et]),[et,$.inView,$.entry,$.observer]},WebMidi=_WebMidi;function enableWebMidi(){return new Promise((o,e)=>{if(WebMidi.enabled){o(WebMidi);return}WebMidi.enable(s=>{s&&e(s),o(WebMidi)})})}const outputByName=o=>WebMidi.getOutputByName(o);Pattern$5.prototype.midi=function(o,e=1){var s,a,c;if(isPattern$1((s=o==null?void 0:o.constructor)==null?void 0:s.name))throw new Error(`.midi does not accept Pattern input. Make sure to pass device name with single quotes. Example: .midi('${((c=(a=WebMidi.outputs)==null?void 0:a[0])==null?void 0:c.name)||"IAC Driver Bus 1"}')`);return this._withHap(d=>{const _=(b,k)=>{var tt,nt;let $=k.value;const j=(nt=(tt=k.context)==null?void 0:tt.velocity)!=null?nt:.9;if(!isNote$2($))throw new Error("not a note: "+$);if(!WebMidi.enabled)throw new Error("\u{1F3B9} WebMidi is not enabled. Supported Browsers: https://caniuse.com/?search=webmidi");if(!WebMidi.outputs.length)throw new Error("\u{1F50C} No MIDI devices found. Connect a device or enable IAC Driver.");let _e;if(typeof o=="number"?_e=WebMidi.outputs[o]:typeof o=="string"?_e=outputByName(o):_e=WebMidi.outputs[0],!_e)throw new Error(`\u{1F50C} MIDI device '${o||""}' not found. Use one of ${WebMidi.outputs.map(it=>`'${it.name}'`).join(" | ")}`);const et=WebMidi.time-Tone.getContext().currentTime*1e3;b=b*1e3+et,_e.playNote($,e,{time:b,duration:k.duration.valueOf()*1e3-5,velocity:j})};return d.setContext(wt(_t({},d.context),{onTrigger:_}))})};const ivory="#abb2bf",stone="#7d8799",invalid="#ffffff",darkBackground="#21252b",highlightBackground="rgba(0, 0, 0, 0.5)",background="transparent",tooltipBackground="#353a42",selection="rgba(128, 203, 196, 0.5)",cursor="#ffcc00",materialPalenightTheme=EditorView.theme({"&":{color:"#ffffff",backgroundColor:background,fontSize:"15px","z-index":11},".cm-content":{caretColor:cursor,lineHeight:"22px"},".cm-line":{background:"transparent"},".cm-line > *":{background:"#00000090"},"&.cm-focused .cm-cursor":{backgroundColor:cursor,width:"3px"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:selection},".cm-panels":{backgroundColor:darkBackground,color:"#ffffff"},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847",outline:"1px solid #515a6b"},".cm-gutters":{background:"transparent",color:"#676e95",border:"none"},".cm-activeLineGutter":{backgroundColor:highlightBackground},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:tooltipBackground},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:tooltipBackground,borderBottomColor:tooltipBackground},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:highlightBackground,color:ivory}}},{dark:!0}),materialPalenightHighlightStyle=HighlightStyle.define([{tag:tags.keyword,color:"#c792ea"},{tag:tags.operator,color:"#89ddff"},{tag:tags.special(tags.variableName),color:"#eeffff"},{tag:tags.typeName,color:"#f07178"},{tag:tags.atom,color:"#f78c6c"},{tag:tags.number,color:"#ff5370"},{tag:tags.definition(tags.variableName),color:"#82aaff"},{tag:tags.string,color:"#c3e88d"},{tag:tags.special(tags.string),color:"#f07178"},{tag:tags.comment,color:stone},{tag:tags.variableName,color:"#f07178"},{tag:tags.tagName,color:"#ff5370"},{tag:tags.bracket,color:"#a2a1a4"},{tag:tags.meta,color:"#ffcb6b"},{tag:tags.attributeName,color:"#c792ea"},{tag:tags.propertyName,color:"#c792ea"},{tag:tags.className,color:"#decb6b"},{tag:tags.invalid,color:invalid}]),materialPalenight=[materialPalenightTheme,materialPalenightHighlightStyle],setFlash=StateEffect.define(),flashField=StateField.define({create(){return Decoration.none},update(o,e){try{for(let s of e.effects)if(s.is(setFlash))if(s.value){const a=Decoration.mark({attributes:{style:"background-color: #FFCA2880"}});o=Decoration.set([a.range(0,e.newDoc.length)])}else o=Decoration.set([]);return o}catch(s){return console.warn("flash error",s),o}},provide:o=>EditorView.decorations.from(o)}),flash=o=>{o.dispatch({effects:setFlash.of(!0)}),setTimeout(()=>{o.dispatch({effects:setFlash.of(!1)})},200)},setHighlights=StateEffect.define(),highlightField=StateField.define({create(){return Decoration.none},update(o,e){try{for(let s of e.effects)s.is(setHighlights)&&(o=Decoration.set(s.value.flatMap(a=>(a.context.locations||[]).map(({start:c,end:d})=>{const _=a.context.color||"#FFCA28";let b=e.newDoc.line(c.line).from+c.column,k=e.newDoc.line(d.line).from+d.column;const $=e.newDoc.length;return b>$||k>$?void 0:Decoration.mark({attributes:{style:`outline: 1.5px solid ${_};`}}).range(b,k)})).filter(Boolean),!0));return o}catch{return o}},provide:o=>EditorView.decorations.from(o)});function CodeMirror({value:o,onChange:e,onViewChanged:s,onCursor:a,options:c,editorDidMount:d}){return jsx(Fragment,{children:jsx(CodeMirror$1,{onViewChange:s,style:{display:"flex",flexDirection:"column",flex:"1 0 auto"},value:o,onChange:e,extensions:[javascript(),materialPalenight,highlightField,flashField]})})}function useCycle(o){const{onEvent:e,onQuery:s,onSchedule:a,ready:c=!0,onDraw:d}=o,[_,b]=react.exports.useState(!1),k=1,$=()=>Math.floor(Tone.getTransport().seconds/k),j=(nt=$())=>{const it=new TimeSpan$1(nt,nt+1),rt=(s==null?void 0:s(new State$1(it)))||[];a==null||a(rt,nt);const st=it.begin.valueOf();Tone.getTransport().cancel(st);const at=(nt+1)*k-.5,ot=Math.max(Tone.getTransport().seconds,at)+.1;Tone.getTransport().schedule(()=>{j(nt+1)},ot),rt==null||rt.filter(ht=>{var ct;return ht.part.begin.equals((ct=ht.whole)==null?void 0:ct.begin)}).forEach(ht=>{Tone.getTransport().schedule(ct=>{e(ct,ht,Tone.getContext().currentTime),Tone.Draw.schedule(()=>{d==null||d(ct,ht)},ct)},ht.part.begin.valueOf())})};react.exports.useEffect(()=>{c&&j()},[e,a,s,d,c]);const _e=async()=>{b(!0),await Tone.start(),Tone.getTransport().start("+0.1")},et=()=>{Tone.getTransport().pause(),b(!1)};return{start:_e,stop:et,onEvent:e,started:_,setStarted:b,toggle:()=>_?et():_e(),query:j,activeCycle:$}}function usePostMessage(o){return react.exports.useEffect(()=>(window.addEventListener("message",o),()=>window.removeEventListener("message",o)),[o]),react.exports.useCallback(e=>window.postMessage(e,"*"),[])}let s4=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);const generateHash=o=>encodeURIComponent(btoa(o));function useRepl({tune:o,defaultSynth:e,autolink:s=!0,onEvent:a,onDraw:c}){const d=react.exports.useMemo(()=>s4(),[]),[_,b]=react.exports.useState(o),[k,$]=react.exports.useState(),[j,_e]=react.exports.useState(""),[et,tt]=react.exports.useState(),[nt,it]=react.exports.useState(!1),[rt,st]=react.exports.useState(""),[at,ot]=react.exports.useState(),ht=react.exports.useMemo(()=>_!==k||et,[_,k,et]),ct=react.exports.useCallback(mt=>_e(St=>St+`${St?` +}`,{label:"class",detail:"definition",type:"keyword"}),snippetCompletion('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),snippetCompletion('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],cache=new NodeWeakMap,ScopeNodes=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function defID(o){return(e,s)=>{let a=e.node.getChild("VariableDefinition");return a&&s(a,o),!0}}const functionContext=["FunctionDeclaration"],gatherCompletions={FunctionDeclaration:defID("function"),ClassDeclaration:defID("class"),ClassExpression:()=>!0,EnumDeclaration:defID("constant"),TypeAliasDeclaration:defID("type"),NamespaceDeclaration:defID("namespace"),VariableDefinition(o,e){o.matchContext(functionContext)||e(o,"variable")},TypeDefinition(o,e){e(o,"type")},__proto__:null};function getScope(o,e){let s=cache.get(e);if(s)return s;let a=[],c=!0;function d(_,b){let k=o.sliceString(_.from,_.to);a.push({label:k,type:b})}return e.cursor(IterMode.IncludeAnonymous).iterate(_=>{if(c)c=!1;else if(_.name){let b=gatherCompletions[_.name];if(b&&b(_,d)||ScopeNodes.has(_.name))return!1}else if(_.to-_.from>8192){for(let b of getScope(o,_.node))a.push(b);return!1}}),cache.set(e,a),a}const Identifier=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,dontComplete=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName"];function localCompletionSource(o){let e=syntaxTree(o.state).resolveInner(o.pos,-1);if(dontComplete.indexOf(e.name)>-1)return null;let s=e.to-e.from<20&&Identifier.test(o.state.sliceDoc(e.from,e.to));if(!s&&!o.explicit)return null;let a=[];for(let c=e;c;c=c.parent)ScopeNodes.has(c.name)&&(a=a.concat(getScope(o.state.doc,c)));return{options:a,from:s?e.from:o.pos,validFor:Identifier}}const javascriptLanguage=LRLanguage.define({parser:parser.configure({props:[indentNodeProp.add({IfStatement:continuedIndent({except:/^\s*({|else\b)/}),TryStatement:continuedIndent({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:flatIndent,SwitchBody:o=>{let e=o.textAfter,s=/^\s*\}/.test(e),a=/^\s*(case|default)\b/.test(e);return o.baseIndent+(s?0:a?1:2)*o.unit},Block:delimitedIndent({closing:"}"}),ArrowFunction:o=>o.baseIndent+o.unit,"TemplateString BlockComment":()=>null,"Statement Property":continuedIndent({except:/^{/}),JSXElement(o){let e=/^\s*<\//.test(o.textAfter);return o.lineIndent(o.node.from)+(e?0:o.unit)},JSXEscape(o){let e=/\s*\}/.test(o.textAfter);return o.lineIndent(o.node.from)+(e?0:o.unit)},"JSXOpenTag JSXSelfClosingTag"(o){return o.column(o.node.from)+o.unit}}),foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":foldInside,BlockComment(o){return{from:o.from+2,to:o.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),typescriptLanguage=javascriptLanguage.configure({dialect:"ts"}),jsxLanguage=javascriptLanguage.configure({dialect:"jsx"}),tsxLanguage=javascriptLanguage.configure({dialect:"jsx ts"}),keywords="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(o=>({label:o,type:"keyword"}));function javascript(o={}){let e=o.jsx?o.typescript?tsxLanguage:jsxLanguage:o.typescript?typescriptLanguage:javascriptLanguage;return new LanguageSupport(e,[javascriptLanguage.data.of({autocomplete:ifNotIn(dontComplete,completeFromList(snippets.concat(keywords)))}),javascriptLanguage.data.of({autocomplete:localCompletionSource}),o.jsx?autoCloseTags:[]])}function elementName(o,e,s=o.length){if(!e)return"";let a=e.getChild("JSXIdentifier");return a?o.sliceString(a.from,Math.min(a.to,s)):""}const android=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),autoCloseTags=EditorView.inputHandler.of((o,e,s,a)=>{if((android?o.composing:o.compositionStarted)||o.state.readOnly||e!=s||a!=">"&&a!="/"||!javascriptLanguage.isActiveAt(o.state,e,-1))return!1;let{state:c}=o,d=c.changeByRange(_=>{var b,k,$;let{head:j}=_,_e=syntaxTree(c).resolveInner(j,-1),et;if(_e.name=="JSXStartTag"&&(_e=_e.parent),a==">"&&_e.name=="JSXFragmentTag")return{range:EditorSelection.cursor(j+1),changes:{from:j,insert:"><>"}};if(a==">"&&_e.name=="JSXIdentifier"){if(((k=(b=_e.parent)===null||b===void 0?void 0:b.lastChild)===null||k===void 0?void 0:k.name)!="JSXEndTag"&&(et=elementName(c.doc,_e.parent,j)))return{range:EditorSelection.cursor(j+1),changes:{from:j,insert:`>`}}}else if(a=="/"&&_e.name=="JSXFragmentTag"){let tt=_e.parent,nt=tt==null?void 0:tt.parent;if(tt.from==j-1&&(($=nt.lastChild)===null||$===void 0?void 0:$.name)!="JSXEndTag"&&(et=elementName(c.doc,nt==null?void 0:nt.firstChild,j))){let st=`/${et}>`;return{range:EditorSelection.cursor(j+st.length),changes:{from:j,insert:st}}}}return{range:_}});return d.changes.empty?!1:(o.dispatch(d,{userEvent:"input.type",scrollIntoView:!0}),!0)});var createTheme=o=>{var{theme:e,settings:s,styles:a}=o,c={"&":{backgroundColor:s.background,color:s.foreground},".cm-gutters":{}};s.gutterBackground&&(c[".cm-gutters"].backgroundColor=s.gutterBackground),s.gutterForeground&&(c[".cm-gutters"].color=s.gutterForeground),s.gutterBorder&&(c[".cm-gutters"].borderRightColor=s.gutterBorder),s.caret&&(c[".cm-content"]={caretColor:s.caret},c[".cm-cursor, .cm-dropCursor"]={borderLeftColor:s.caret}),s.lineHighlight&&(c[".cm-activeLine"]={backgroundColor:s.lineHighlight},c[".cm-activeLineGutter"]={backgroundColor:s.lineHighlight}),s.selection&&(c["&.cm-focused .cm-selectionBackground .cm-selectionBackground, & .cm-selectionLayer .cm-selectionBackground, ::selection"]={backgroundColor:s.selection}),s.selectionMatch&&(c["& .cm-selectionMatch"]={backgroundColor:s.selectionMatch});var d=EditorView.theme(c,{dark:e==="dark"}),_=HighlightStyle.define(a),b=[d,syntaxHighlighting(_)];return b};const useObserver=(o,{root:e,rootMargin:s,threshold:a}={},c=[])=>{const d=react.exports.useRef(null),_=react.exports.useRef(null);return react.exports.useCallback(k=>{d.current&&_.current&&(_.current.unobserve(d.current),_.current.disconnect(),_.current=null),k&&(_.current=new IntersectionObserver(o,{root:e,rootMargin:s,threshold:a}),_.current.observe(k),d.current=k)},[d,e,s,JSON.stringify(a),...c])},useInView=({root:o,rootMargin:e,threshold:s,unobserveOnEnter:a,target:c,onEnter:d,onLeave:_,defaultInView:b}={},k=[])=>{const[$,j]=react.exports.useState({inView:b||!1,entry:null,observer:null}),_e=react.exports.useCallback(([tt],nt)=>{const rt=nt.thresholds.some(it=>tt.intersectionRatio>=it)&&tt.isIntersecting;j({inView:rt,entry:tt,observer:nt}),rt&&a&&(nt.unobserve(tt.target),nt.disconnect()),rt?d==null||d(tt,nt):_==null||_(tt,nt)},[d,_,a]),et=useObserver(_e,{root:o,rootMargin:e,threshold:s},[a,...k]);return react.exports.useEffect(()=>{c!=null&&c.current&&et(c.current)},[c,et]),[et,$.inView,$.entry,$.observer]},WebMidi=_WebMidi;function enableWebMidi(){return new Promise((o,e)=>{if(WebMidi.enabled){o(WebMidi);return}WebMidi.enable(s=>{s&&e(s),o(WebMidi)})})}const outputByName=o=>WebMidi.getOutputByName(o);Pattern$5.prototype.midi=function(o,e=1){var s,a,c;if(isPattern$1((s=o==null?void 0:o.constructor)==null?void 0:s.name))throw new Error(`.midi does not accept Pattern input. Make sure to pass device name with single quotes. Example: .midi('${((c=(a=WebMidi.outputs)==null?void 0:a[0])==null?void 0:c.name)||"IAC Driver Bus 1"}')`);return this._withHap(d=>{const _=(b,k)=>{var tt,nt;let $=k.value;const j=(nt=(tt=k.context)==null?void 0:tt.velocity)!=null?nt:.9;if(!isNote$2($))throw new Error("not a note: "+$);if(!WebMidi.enabled)throw new Error("\u{1F3B9} WebMidi is not enabled. Supported Browsers: https://caniuse.com/?search=webmidi");if(!WebMidi.outputs.length)throw new Error("\u{1F50C} No MIDI devices found. Connect a device or enable IAC Driver.");let _e;if(typeof o=="number"?_e=WebMidi.outputs[o]:typeof o=="string"?_e=outputByName(o):_e=WebMidi.outputs[0],!_e)throw new Error(`\u{1F50C} MIDI device '${o||""}' not found. Use one of ${WebMidi.outputs.map(st=>`'${st.name}'`).join(" | ")}`);const et=WebMidi.time-Tone.getContext().currentTime*1e3;b=b*1e3+et,_e.playNote($,e,{time:b,duration:k.duration.valueOf()*1e3-5,velocity:j})};return d.setContext(wt(_t({},d.context),{onTrigger:_}))})};var strudelTheme=createTheme({theme:"dark",settings:{background:"#222",foreground:"#75baff",caret:"#ffcc00",selection:"rgba(128, 203, 196, 0.5)",selectionMatch:"#036dd626",lineHighlight:"#8a91991a",gutterBackground:"transparent",gutterForeground:"#676e95"},styles:[{tag:tags.keyword,color:"#c792ea"},{tag:tags.operator,color:"#89ddff"},{tag:tags.special(tags.variableName),color:"#eeffff"},{tag:tags.typeName,color:"#f07178"},{tag:tags.atom,color:"#f78c6c"},{tag:tags.number,color:"#ff5370"},{tag:tags.definition(tags.variableName),color:"#82aaff"},{tag:tags.string,color:"#c3e88d"},{tag:tags.special(tags.string),color:"#f07178"},{tag:tags.comment,color:"#7d8799"},{tag:tags.variableName,color:"#f07178"},{tag:tags.tagName,color:"#ff5370"},{tag:tags.bracket,color:"#a2a1a4"},{tag:tags.meta,color:"#ffcb6b"},{tag:tags.attributeName,color:"#c792ea"},{tag:tags.propertyName,color:"#c792ea"},{tag:tags.className,color:"#decb6b"},{tag:tags.invalid,color:"#ffffff"}]});const setFlash=StateEffect.define(),flashField=StateField.define({create(){return Decoration.none},update(o,e){try{for(let s of e.effects)if(s.is(setFlash))if(s.value){const a=Decoration.mark({attributes:{style:"background-color: #FFCA2880"}});o=Decoration.set([a.range(0,e.newDoc.length)])}else o=Decoration.set([]);return o}catch(s){return console.warn("flash error",s),o}},provide:o=>EditorView.decorations.from(o)}),flash=o=>{o.dispatch({effects:setFlash.of(!0)}),setTimeout(()=>{o.dispatch({effects:setFlash.of(!1)})},200)},setHighlights=StateEffect.define(),highlightField=StateField.define({create(){return Decoration.none},update(o,e){try{for(let s of e.effects)if(s.is(setHighlights)){const a=s.value.map(c=>(c.context.locations||[]).map(({start:d,end:_})=>{const b=c.context.color||"#FFCA28";let k=e.newDoc.line(d.line).from+d.column,$=e.newDoc.line(_.line).from+_.column;const j=e.newDoc.length;return k>j||$>j?void 0:Decoration.mark({attributes:{style:`outline: 1.5px solid ${b};`}}).range(k,$)})).flat().filter(Boolean)||[];o=Decoration.set(a,!0)}return o}catch{return Decoration.set([])}},provide:o=>EditorView.decorations.from(o)}),extensions=[javascript(),strudelTheme,highlightField,flashField];function CodeMirror({value:o,onChange:e,onViewChanged:s,onSelectionChange:a,options:c,editorDidMount:d}){const _=react.exports.useCallback($=>{e==null||e($)},[e]),b=react.exports.useCallback($=>{s==null||s($)},[s]),k=react.exports.useCallback($=>{$.selectionSet&&a&&(a==null||a($.state.selection))},[a]);return React.createElement(React.Fragment,null,React.createElement(ReactCodeMirror,{value:o,onChange:_,onCreateEditor:b,onUpdate:k,extensions}))}function useCycle(o){const{onEvent:e,onQuery:s,onSchedule:a,ready:c=!0,onDraw:d}=o,[_,b]=react.exports.useState(!1),k=1,$=()=>Math.floor(Tone.getTransport().seconds/k),j=(nt=$())=>{const st=new TimeSpan$1(nt,nt+1),rt=(s==null?void 0:s(new State$1(st)))||[];a==null||a(rt,nt);const it=st.begin.valueOf();Tone.getTransport().cancel(it);const at=(nt+1)*k-.5,ot=Math.max(Tone.getTransport().seconds,at)+.1;Tone.getTransport().schedule(()=>{j(nt+1)},ot),rt==null||rt.filter(ht=>{var ct;return ht.part.begin.equals((ct=ht.whole)==null?void 0:ct.begin)}).forEach(ht=>{Tone.getTransport().schedule(ct=>{e(ct,ht,Tone.getContext().currentTime),Tone.Draw.schedule(()=>{d==null||d(ct,ht)},ct)},ht.part.begin.valueOf())})};react.exports.useEffect(()=>{c&&j()},[e,a,s,d,c]);const _e=async()=>{b(!0),await Tone.start(),Tone.getTransport().start("+0.1")},et=()=>{Tone.getTransport().pause(),b(!1)};return{start:_e,stop:et,onEvent:e,started:_,setStarted:b,toggle:()=>_?et():_e(),query:j,activeCycle:$}}function usePostMessage(o){return react.exports.useEffect(()=>(window.addEventListener("message",o),()=>window.removeEventListener("message",o)),[o]),react.exports.useCallback(e=>window.postMessage(e,"*"),[])}let s4=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);const generateHash=o=>encodeURIComponent(btoa(o));function useRepl({tune:o,defaultSynth:e,autolink:s=!0,onEvent:a,onDraw:c}){const d=react.exports.useMemo(()=>s4(),[]),[_,b]=react.exports.useState(o),[k,$]=react.exports.useState(),[j,_e]=react.exports.useState(""),[et,tt]=react.exports.useState(),[nt,st]=react.exports.useState(!1),[rt,it]=react.exports.useState(""),[at,ot]=react.exports.useState(),ht=react.exports.useMemo(()=>_!==k||et,[_,k,et]),ct=react.exports.useCallback(mt=>_e(St=>St+`${St?` -`:""}${mt}`),[]),ut=react.exports.useMemo(()=>{if(k&&!k.includes("strudel disable-highlighting"))return(mt,St)=>c==null?void 0:c(mt,St,k)},[k,c]),lt=react.exports.useMemo(()=>k&&k.includes("strudel hide-header"),[k]),pt=react.exports.useMemo(()=>k&&k.includes("strudel hide-console"),[k]),dt=useCycle({onDraw:ut,onEvent:react.exports.useCallback((mt,St,At)=>{var Ot;try{a==null||a(St),(Ot=St.context.logs)!=null&&Ot.length&&St.context.logs.forEach(ct);const{onTrigger:Ct,velocity:Dt}=St.context;if(Ct)Ct(mt,St,At,1);else if(e){const Tt=getPlayableNoteValue(St);e.triggerAttackRelease(Tt,St.duration.valueOf(),mt,Dt)}else throw new Error("no defaultSynth passed to useRepl.")}catch(Ct){console.warn(Ct),Ct.message="unplayable event: "+(Ct==null?void 0:Ct.message),ct(Ct.message)}},[a,ct,e]),onQuery:react.exports.useCallback(mt=>{try{return(at==null?void 0:at.query(mt))||[]}catch(St){return console.warn(St),St.message="query error: "+St.message,tt(St),[]}},[at]),onSchedule:react.exports.useCallback((mt,St)=>ft(mt,St),[]),ready:!!at&&!!k}),gt=usePostMessage(({data:{from:mt,type:St}})=>{St==="start"&&mt!==d&&(dt.setStarted(!1),$(void 0))}),Et=react.exports.useCallback(async(mt=_)=>{if(k&&!ht){tt(void 0),dt.start();return}try{it(!0);const St=await evaluate(mt);dt.start(),gt({type:"start",from:d}),ot(()=>St.pattern),s&&(window.location.hash="#"+encodeURIComponent(btoa(_))),st(generateHash(_)),tt(void 0),$(mt),it(!1)}catch(St){St.message="evaluation error: "+St.message,console.warn(St),tt(St)}},[k,ht,_,dt,s,d,gt]),ft=(mt,St)=>{mt.length};return{hideHeader:lt,hideConsole:pt,pending:nt,code:_,setCode:b,pattern:at,error:et,cycle:dt,setPattern:ot,dirty:ht,log:j,togglePlay:()=>{dt.started?dt.stop():Et()},setActiveCode:$,activateCode:Et,activeCode:k,pushLog:ct,hash:rt}}function cx(...o){return o.filter(Boolean).join(" ")}let highlights=[],lastEnd;function useHighlighting({view:o,pattern:e,active:s}){react.exports.useEffect(()=>{if(o)if(e&&s){let c=function(){try{const d=Tone.getTransport().seconds,b=[Math.max(lastEnd||d,d-1/10),d+1/60];lastEnd=d+1/60,highlights=highlights.filter($=>$.whole.end>d);const k=e.queryArc(...b).filter($=>$.hasOnset());highlights=highlights.concat(k),o.dispatch({effects:setHighlights.of(highlights)})}catch{o.dispatch({effects:setHighlights.of([])})}a=requestAnimationFrame(c)},a=requestAnimationFrame(c);return()=>{cancelAnimationFrame(a)}}else highlights=[],o.dispatch({effects:setHighlights.of([])})},[e,s,o])}const container="_container_xpa19_1",header="_header_xpa19_5",buttons="_buttons_xpa19_9",button="_button_xpa19_9",buttonDisabled="_buttonDisabled_xpa19_17",error="_error_xpa19_21",body="_body_xpa19_25";var styles={container,header,buttons,button,buttonDisabled,error,body};function Icon({type:o}){return jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"sc-h-5 sc-w-5",viewBox:"0 0 20 20",fill:"currentColor",children:{refresh:jsx("path",{fillRule:"evenodd",d:"M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z",clipRule:"evenodd"}),play:jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM9.555 7.168A1 1 0 008 8v4a1 1 0 001.555.832l3-2a1 1 0 000-1.664l-3-2z",clipRule:"evenodd"}),pause:jsx("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zM7 8a1 1 0 012 0v4a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v4a1 1 0 102 0V8a1 1 0 00-1-1z",clipRule:"evenodd"})}[o]})}function MiniRepl$1({tune:o,defaultSynth:e,hideOutsideView:s=!1,theme:a,init:c,onEvent:d,enableKeyboard:_}){const{code:b,setCode:k,pattern:$,activeCode:j,activateCode:_e,evaluateOnly:et,error:tt,cycle:nt,dirty:it,togglePlay:rt,stop:st}=useRepl({tune:o,defaultSynth:e,autolink:!1,onEvent:d});react.exports.useEffect(()=>{c&&et()},[o,c]);const[at,ot]=react.exports.useState(),[ht,ct]=useInView({threshold:.01}),ut=react.exports.useRef(),lt=react.exports.useMemo(()=>((ct||!s)&&(ut.current=!0),ct||ut.current),[ct,s]);return useHighlighting({view:at,pattern:$,active:nt.started&&!(j!=null&&j.includes("strudel disable-highlighting"))}),react.exports.useLayoutEffect(()=>{if(_){const pt=async dt=>{(dt.ctrlKey||dt.altKey)&&(dt.code==="Enter"?(dt.preventDefault(),flash(at),await _e()):dt.code==="Period"&&(nt.stop(),dt.preventDefault()))};return window.addEventListener("keydown",pt,!0),()=>window.removeEventListener("keydown",pt,!0)}},[_,$,b,_e,nt,at]),jsxs("div",{className:styles.container,ref:ht,children:[jsxs("div",{className:styles.header,children:[jsxs("div",{className:styles.buttons,children:[jsx("button",{className:cx(styles.button,nt.started?"sc-animate-pulse":""),onClick:()=>rt(),children:jsx(Icon,{type:nt.started?"pause":"play"})}),jsx("button",{className:cx(it?styles.button:styles.buttonDisabled),onClick:()=>_e(),children:jsx(Icon,{type:"refresh"})})]}),tt&&jsx("div",{className:styles.error,children:tt.message})]}),jsx("div",{className:styles.body,children:lt&&jsx(CodeMirror,{value:b,onChange:k,onViewChanged:ot})})]})}var WebDirtPacked={exports:{}};(function(o,e){(function(s,a){o.exports=a()})(self,()=>(()=>{var s={d:($,j)=>{for(var _e in j)s.o(j,_e)&&!s.o($,_e)&&Object.defineProperty($,_e,{enumerable:!0,get:j[_e]})},o:($,j)=>Object.prototype.hasOwnProperty.call($,j),r:$=>{typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty($,Symbol.toStringTag,{value:"Module"}),Object.defineProperty($,"__esModule",{value:!0})}},a={};function c($,j){if(this.msg=$,this.ac=j.ac,this.sampleBank=j.sampleBank,this.outputNode=j.destination,this.cutGroups=j.cutGroups,this.eventCounter=j.eventCounter,this.audioOutputs=j.audioOutputs,this.workletsAvailable=j.workletsAvailable,typeof $.buffer=="object")this.bufferContainer=$.buffer;else{if(this.sampleBank==null)return void console.log("WebDirt: there is no sample bank, cancelling event");if(typeof this.sampleBank!="object")return void console.log("WebDirt: buffer not provided by calling application + no WebDirt sample bank");if(this.msg.n=parseInt(this.msg.n),isNaN(this.msg.n)&&(this.msg.n=0),!this.sampleBank.sampleNameExists(this.msg.s))return void console.log("WebDirt: no sample named "+this.msg.s+" exists in sample map");if(!this.sampleBank.getBufferMightSucceed(this.msg.s,this.msg.n))return}if(this.when=this.msg.when,isNaN(this.when))console.log("WebDirt: 'when' is null or not a number");else if(this.nudge=parseFloat(this.msg.nudge),isNaN(this.nudge)||(this.when=this.when+this.nudge),isNaN(parseFloat(this.msg.speed))&&(this.msg.speed=1),this.msg.speed!=0)if(isNaN(parseFloat(this.msg.note))&&(this.msg.note=0),this.msg.speed=this.msg.speed*Math.pow(2,this.msg.note/12),this.msg.begin=d(this.msg.begin,0),this.msg.end=d(this.msg.end,1),this.msg.end!=this.msg.begin){if(this.msg.begin>this.msg.end&&(this.msg.speed=-1*this.msg.speed),this.msg.speed<0&&(this.msg.begin=1-this.msg.begin,this.msg.end=1-this.msg.end),this.msg.begin>this.msg.end){let pt=this.msg.begin;this.msg.begin=this.msg.end,this.msg.end=pt}var _e;if(this.source=_e=this.ac.createBufferSource(),this.source.onended=this.disconnectHandler(),this.disconnectOnEnd(this.source),this.source.playbackRate.value=Math.abs(this.msg.speed),this.prepareBuffer(),this.buffer!=null)this.source.buffer=this.buffer,this.start();else{var et=this,tt=1e3*(this.msg.when-this.ac.currentTime-.2);tt<=0&&(tt=1e3*(this.msg.when-this.ac.currentTime-.2)),tt>0&&setTimeout(function(){et.prepareBuffer(),et.buffer!=null?(et.source.buffer=et.buffer,et.start()):(console.log("WebDirt: unable to access sample "+$.s+":"+$.n+" on second attempt"),et.stopAll())},tt)}this.cut(this.msg.cut,this.msg.s),_e=this.shape(_e,this.msg.shape),_e=this.lowPassFilter(_e,this.msg.cutoff,this.msg.resonance),_e=this.highPassFilter(_e,this.msg.hcutoff,this.msg.hresonance),_e=this.bandPassFilter(_e,this.msg.bandf,this.msg.bandq),_e=this.vowel(_e,this.msg.vowel),_e=this.delay(_e,this.msg.delay,this.msg.delaytime,this.msg.delayfeedback),_e=this.loop(_e,this.msg.loop,this.msg.begin,this.msg.end,this.msg.speed),_e=this.crush(_e,this.msg.crush),_e=this.coarse(_e,this.msg.coarse),this.unit(this.msg.unit,this.msg.speed);var nt=parseFloat(this.msg.gain);isNaN(nt)&&(nt=1),nt>2&&(nt=2),nt<0&&(nt=0);var it=parseFloat(this.msg.overgain);isNaN(it)||(nt+=it),nt=Math.pow(nt,4);var rt,st,at,ot=parseFloat($.pan);if(isNaN(ot)&&(ot=.5),this.audioOutputs==2)(ot>1||ot<0)&&(ot-=Math.floor(ot)),rt=ot,st=0,at=1;else{var ht=(ot-=Math.floor(ot))*this.audioOutputs;(at=(st=Math.floor(ht))+1)>=this.audioOutputs&&(at=0),rt=ht-Math.floor(ht)}var ct=this.ac.createGain();this.disconnectOnEnd(ct);var ut=this.ac.createGain();this.disconnectOnEnd(ut),ct.gain.value=Math.cos(rt*Math.PI/2)*nt,ut.gain.value=Math.sin(rt*Math.PI/2)*nt,_e.connect(ct),_e.connect(ut),this.gain1=ct,this.gain2=ut;var lt=this.ac.createChannelMerger(this.audioOutputs);this.disconnectOnEnd(lt),ct.connect(lt,0,st),ut.connect(lt,0,at),lt.connect(this.outputNode)}else this.stopAll()}function d($,j){let _e=parseFloat($);return isNaN(_e)?j:_e>1?1:_e<0?0:_e}s.r(a),s.d(a,{WebDirt:()=>k}),c.prototype.prepareBuffer=function(){typeof this.bufferContainer=="object"?typeof this.bufferContainer.buffer=="object"&&(this.msg.speed>=0?this.buffer=this.bufferContainer.buffer:(typeof this.bufferContainer.reverseBuffer=="object"||(this.bufferContainer.reverseBuffer=this.reverseBuffer(this.ac,this.bufferContainer.buffer)),this.buffer=this.bufferContainer.reverseBuffer)):(this.msg.speed>=0?this.buffer=this.sampleBank.getBuffer(this.msg.s,this.msg.n):this.buffer=this.sampleBank.getReverseBuffer(this.msg.s,this.msg.n),this.buffer=this.accel(this.buffer,this.msg.accelerate,this.msg.speed))},c.prototype.disconnectOnEnd=function($){this.source.disconnectQueue==null&&(this.source.disconnectQueue=new Array),this.source.disconnectQueue.unshift($)},c.prototype.start=function(){let $=Math.abs(this.msg.speed),j=(this.msg.end-this.msg.begin)*this.source.buffer.duration/$,_e=this.msg.begin*this.source.buffer.duration;this.source.start(this.when,_e,j)},c.prototype.stopAll=function(){if(this.source!=null&&this.source.disconnectQueue!=null){for(var $=0;$1&&this.workletsAvailable){var _e=new AudioWorkletNode(this.ac,"coarse-processor");return _e.parameters.get("coarse").value=j,$.connect(_e),this.disconnectOnEnd(_e),_e}return $},c.prototype.crush=function($,j){if(j=parseInt(j),isNaN(j)&&(j=null),j!=null&&j>0&&this.workletsAvailable){var _e=new AudioWorkletNode(this.ac,"crush-processor");return _e.parameters.get("crush").value=j,$.connect(_e),this.disconnectOnEnd(_e),_e}return $},c.prototype.cut=function($,j){if($=parseInt($),!isNaN($)&&$!=0){for(var _e={cutGroup:$,node:this,sampleName:j},et=0;et2e4&&(j=2e4),isNaN(parseFloat(_e))&&(_e=0),_e<0&&(_e=0),_e>1&&(_e=1),_e=1/(_e=1-.999*(_e*=_e));var et=this.ac.createBiquadFilter();return this.disconnectOnEnd(et),et.type="highpass",et.frequency.value=j,et.Q.value=_e,$.connect(et),et},c.prototype.lowPassFilter=function($,j,_e){if(isNaN(parseFloat(j))&&isNaN(parseFloat(_e)))return $;isNaN(parseFloat(j))&&(j=440),j<20&&(j=20),j>2e4&&(j=2e4),isNaN(parseFloat(_e))&&(_e=0),_e<0&&(_e=0),_e>1&&(_e=1),_e=1/(_e=1-.999*(_e*=_e));var et=this.ac.createBiquadFilter();return this.disconnectOnEnd(et),et.type="lowpass",et.frequency.value=j,et.Q.value=_e,$.connect(et),et},c.prototype.bandPassFilter=function($,j,_e){if(isNaN(parseFloat(j))&&isNaN(parseFloat(_e)))return $;isNaN(parseFloat(j))&&(j=440),j<20&&(j=20),j>2e4&&(j=2e4),isNaN(parseFloat(_e))&&(_e=10),_e<1&&(_e=1),_e>100&&(_e=100);var et=this.ac.createBiquadFilter();return this.disconnectOnEnd(et),et.type="bandpass",et.frequency.value=j,et.Q.value=_e,et.gain.value=_e,$.connect(et),et},c.prototype.loop=function($,j){if(isNaN(parseInt(j))||j==0)return $;try{var _e=this.source.buffer.duration-this.msg.begin*this.source.buffer.duration-(1-this.msg.end)*this.source.buffer.duration;return this.source.loop=!0,this.source.loopStart=this.msg.begin*this.source.buffer.duration,this.source.loopEnd=this.msg.end*this.source.buffer.duration,this.source.stop(this.when+_e*j/this.source.playbackRate.value),$}catch{return console.log("WebDirt Warning: buffer data not yet available to calculate loop time - no looping applied"),$}},c.prototype.accelerate=function($,j){if(j=Math.abs(j),isNaN(parseFloat($))&&($=0),$!=0){$=parseFloat($),this.source.playbackRate.setValueAtTime(j,this.when);var _e=Math.abs((this.source.buffer.length*$/this.ac.sampleRate+j)/j),et=j+this.source.buffer.length*$/this.ac.sampleRate;if(et<0)this.source.buffer=this.negativeAccelerateBuffer(this.source.buffer,$,j),this.source.playbackRate.linearRampToValueAtTime(0,this.when+_e),this.source.playbackRate.linearRampToValueAtTime(1,this.when+this.source.buffer.duration);else try{this.source.playbackRate.linearRampToValueAtTime(et,this.when+this.source.buffer.duration)}catch{console.log("WebDirt: Warning, buffer data not loaded, could not apply acclerate effect")}}},c.prototype.negativeAccelerateBuffer=function($,j,_e){var et=$.length,tt=new Float32Array(et),nt=this.ac.createBuffer($.numberOfChannels,$.length,this.ac.sampleRate),it=new Float32Array(et),rt=Math.abs(_e/(_e-j))*et;rt=et*Math.abs((this.source.buffer.length*j/this.ac.sampleRate+_e)/_e)/this.source.buffer.duration,rt=Math.trunc(rt);for(var st=0;st<$.numberOfChannels;st++){$.copyFromChannel(tt,st,0);for(var at=0;at=1&&(j=.999),j>0&&this.workletsAvailable){var _e=new AudioWorkletNode(this.ac,"shape-processor");return _e.parameters.get("shape").value=j,$.connect(_e),this.disconnectOnEnd(_e),_e}return $},c.prototype.stop=function($){this.gain1.gain.setValueAtTime(this.gain1.gain.value,$),this.gain1.gain.linearRampToValueAtTime(0,$+.02),this.gain2.gain.setValueAtTime(this.gain1.gain.value,$),this.gain2.gain.linearRampToValueAtTime(0,$+.02)},c.prototype.unit=function($,j){$=="c"&&(this.source.playbackRate.value=this.source.playbackRate.value*this.source.buffer.duration)},c.prototype.vowel=function($,j){if(typeof j!="string")return $;if((j=j.toLowerCase())=="a"||j=="e"||j=="i"||j=="o"||j=="u"){var _e,et,tt,nt=this.ac.createGain();switch(this.disconnectOnEnd(nt),j){case"a":_e=_.a.freqs,et=_.a.qs,tt=_.a.amps;break;case"e":_e=_.e.freqs,et=_.e.qs,tt=_.e.amps;break;case"i":_e=_.i.freqs,et=_.i.qs,tt=_.i.amps;break;case"o":_e=_.o.freqs,et=_.o.qs,tt=_.o.amps;break;case"u":_e=_.u.freqs,et=_.u.qs,tt=_.u.amps}for(var it=0;it<5;it++){var rt=this.ac.createGain();this.disconnectOnEnd(rt),rt.gain.value=tt[it];var st=this.ac.createBiquadFilter();this.disconnectOnEnd(st),st.type="bandpass",st.Q.value=et[it]/8,st.frequency.value=_e[it],$.connect(st),st.connect(rt),rt.connect(nt)}return nt.gain.value=8,nt}return $},c.prototype.reverseBuffer=function($,j){for(var _e=j.length,et=new Float32Array(_e),tt=$.createBuffer(j.numberOfChannels,j.length,$.sampleRate),nt=new Float32Array(_e),it=0;it{console.log("WebDirt: audio worklets added"),this.workletsAvailable=!0}).catch(j=>{console.log("WebDirt: error loading AudioWorklets.js: "+j),console.log("(WebDirt should still work but shape, coarse, and crush will have no effect)"),this.workletsAvailable=!1}):(console.log("WebDirt: browser does not support audio worklets"),console.log("(WebDirt should still work but shape, coarse, and crush will have no effect)"),this.workletsAvailable=!1),this.tempo={time:this.ac.currentTime,beats:0,bpm:30},this.clockDiff=Date.now()/1e3-this.ac.currentTime,this.sampleBank!=null&&(this.sampleBank.ac=this.ac),this.silentNote=this.ac.createOscillator(),this.silentNote.type="sine",this.silentNote.frequency.value=440,this.silentGain=this.ac.createGain(),this.silentGain.gain.value=0,this.silentNote.connect(this.silentGain),this.silentGain.connect(this.ac.destination),this.silentNote.start();var $=this;setTimeout(function(){$.silentGain.disconnect($.ac.destination),$.silentNote.disconnect($.silentGain),$.silentNote.stop(),$.silentGain=null,$.silentNote=null},500)}console.log("WebDirt: initializeWebAudio finished.")},k.prototype.playSample=function($,j){if(j==null&&(j=this.latency),$.whenPosix!=null&&($.when=$.whenPosix-(new Date().getTime()/1e3-this.ac.currentTime)),$.when==null&&($.when=this.ac.currentTime),$.when=$.when+j,typeof $.maxLateness!="number"&&($.maxLateness=this.maxLateness),this.ac.currentTime-$.when>$.maxLateness)return void console.log("WebDirt warning: dropping msg late by "+(this.ac.currentTime-$.when)+" seconds");let _e=new c($,this);return this.eventCounter++,_e},k.prototype.playScore=function($,j,_e){this.initializeWebAudio(),j==null&&(j=this.latency);for(var et=this.ac.currentTime,tt=0,nt=0;nt<$.length;nt++){var it=$[nt];it.when>tt&&(tt=it.when),it.when=it.when+et,it.s!=null&&(it.sample_name=it.s),it.n!=null&&(it.sample_n=it.n),this.playSample(it,j)}setTimeout(function(){typeof _e=="function"&&_e()},1e3*(tt+j))},k.prototype.playScoreWhenReady=function($,j,_e,et){this.initializeWebAudio(),j==null&&(j=this.latency);for(var tt=$.length,nt=0;nt<$.length;nt++){var it=$[nt],rt=this;it.s!=null&&(it.sample_name=it.s),it.n!=null&&(it.sample_n=it.n),this.sampleBank!=null&&this.sampleBank.load(it.sample_name,it.sample_n,function(){(tt-=1)<=0&&(rt.playScore($,j,et),typeof _e=="function"&&_e())})}},k.prototype.loadAndPlayScore=function($,j,_e,et){this.initializeWebAudio(),j==null&&(j=this.latency);var tt=new XMLHttpRequest;tt.open("GET",$,!0),tt.responseType="json";var nt=this;tt.onload=function(){if(tt.readyState!=4)throw Error("readyState != 4 in callback of loadAndPlayScore");if(tt.status!=200)throw Error("status != 200 in callback of loadAndPlayScore");if(tt.response==null)throw Error("JSON response null in callback of loadAndPlayScore");console.log("playing JSON score from "+$),nt.playScoreWhenReady(tt.response,j,_e,et)},tt.send()},k.prototype.renderAndPlayScore=function($,j,_e,et,tt,nt,it){this.initializeWebAudio(),tt==null&&(tt=this.latency),window.WebSocket=window.WebSocket||window.MozWebSocket,console.log("WebDirt.renderAndPlayScore: attempting websocket connection to "+$);var rt=new WebSocket($);rt.onerror=function(){console.log(" ERROR opening websocket connection to "+$)},rt.onopen=function(){console.log(" websocket connection to "+$+" established");try{var at='{"render":'+JSON.stringify(j)+',"cps":'+_e+',"cycles":'+et+"}";console.log(at),rt.send(at),console.log(" render request sent")}catch{console.log(" EXCEPTION during transmission of render request"),rt.close()}};var st=this;rt.onmessage=function(at){var ot=JSON.parse(at.data);if(!ot instanceof Array)return console.log(" WebDirt warning: rendering socket received non-array message"),console.log(typeof ot),void(globalX=ot);console.log(" received score from "+$),st.playScoreWhenReady(ot,tt,nt,it),console.log(" closing websocket connection to "+$),rt.close()}},k.prototype.subscribeToTidalSocket=function($,j){this.initializeWebAudio(),j==null&&(j=!1),window.WebSocket=window.WebSocket||window.MozWebSocket,console.log("WebDirt: attempting websocket connection to "+$),ws=new WebSocket($),ws.onopen=function(){console.log("websocket connection to tidalSocket opened")},ws.onerror=function(){console.log("ERROR opening websocket connection to tidalSocket")};var _e=this;ws.onmessage=function(et){if(et.data==null)throw Error("null data in tidalSocket onmessage handler");var tt=JSON.parse(et.data);if(tt.address==null)throw Error("received message from tidalSocket with no address: "+et.data);if(tt.address!="/play")throw Error("address of message from tidalSocket wasn't /play: "+et.data);if(tt.args.constructor!==Array)throw Error("ERROR: message from tidalSocket where args doesn't exist or isn't an array: "+et.data);if(tt.args.length!=30&&tt.args.length!=33)throw Error("ERROR: message from tidalSocket with "+tt.args.length+" args instead of 30 or 33: "+et.data);var nt={};nt.when=tt.args[0]+tt.args[1]/1e6+_e.clockDiff,nt.sample_name=tt.args[3],nt.begin=tt.args[5],nt.end=tt.args[6],nt.speed=tt.args[7],nt.pan=tt.args[8],nt.vowel=tt.args[10],nt.cutoff=tt.args[11],nt.resonance=tt.args[12],nt.accelerate=tt.args[13],nt.shape=tt.args[14],nt.gain=tt.args[16],nt.cut=tt.args[17],nt.delay=tt.args[18],nt.delaytime=tt.args[19],nt.delayfeedback=tt.args[20],nt.crush=tt.args[21],nt.coarse=tt.args[22],nt.hcutoff=tt.args[23],nt.hresonance=tt.args[24],nt.bandf=tt.args[25],nt.bandq=tt.args[26],nt.unit_name=tt.args[27],nt.sample_loop=tt.args[28],nt.sample_n=tt.args[29],tt.args.length==33&&(nt.attack=tt.args[30],nt.hold=tt.args[31],nt.release=tt.args[32]),_e.playSample(nt),j&&console.log(tt)}},k.prototype.getCurrentTime=function(){return this.ac.currentTime},k.prototype.syncWithEsp=function($){if(typeof EspClient=="function")if(this.espClient==null){this.espClient=new EspClient($,this.ac);var j=this;this.espClient.tempoCallback=function(_e){j.tempo=_e}}else this.espClient.setUrl($);else console.log("WebDirt ERROR: syncWithEsp called but EspClient does not exist")},k.prototype.setTempo=function($){if(typeof $.time!="number")throw Error("WebDirt: no time in setTempo");if(typeof $.beats!="number")throw Error("WebDirt: no beats in setTempo");if(typeof $.bpm!="number")throw Error("WebDirt: no bpm in setTempo");this.espClient!=null&&this.espClient.sendSetTempo($),this.tempo=$},k.prototype.sampleHint=function($){this.sampleBank!=null&&(console.log("WebDirt received sample hint: "+$),this.sampleBank.loadAllNamed($))},a})())})(WebDirtPacked);const bufferCache={},loadCache={},getCachedBuffer=o=>bufferCache[o],loadBuffer=(o,e)=>(loadCache[o]||(loadCache[o]=fetch(o).then(s=>s.arrayBuffer()).then(async s=>{const a=await e.decodeAudioData(s);return bufferCache[o]=a,a})),loadCache[o]),getLoadedBuffer=o=>bufferCache[o],githubCache={};let sampleCache={current:void 0};const loadGithubSamples=async(o,e)=>{const s="loadGithubSamples "+o,a=localStorage.getItem(s);if(a&&(console.log("[sampler]: loaded sample list from localstorage",o),githubCache[o]=JSON.parse(a)),githubCache[o])return sampleCache.current=githubCache[o],githubCache[o];console.log("[sampler]: fetching sample list from github",o);try{const[c,d,..._]=o.split("/"),b=`https://api.github.com/repos/${c}/${d}/contents`,k=await fetch(`${b}/${_.join("/")}`).then($=>$.json());githubCache[o]=(await Promise.all(k.map(async({name:$,path:j})=>({name:$,content:await fetch(`${b}/${j}`).then(_e=>_e.json()).catch(_e=>{console.error("could not load path",_e)})})))).filter(({content:$})=>!!$).reduce(($,{name:j,content:_e})=>wt(_t({},$),{[(e==null?void 0:e(j))||j]:_e.map(({download_url:et})=>et)}),{})}catch(c){console.error("[sampler]: failed to fetch sample list from github",c);return}return sampleCache.current=githubCache[o],localStorage.setItem(s,JSON.stringify(sampleCache.current)),console.log("[sampler]: loaded samples:",sampleCache.current),githubCache[o]},samples=(o,e=o._base||"")=>{sampleCache.current=_t(_t({},sampleCache.current),Object.fromEntries(Object.entries(o).map(([s,a])=>{if(typeof a=="string"&&(a=[a]),typeof a!="object")throw new Error("wrong sample map format for "+s);e=a._base||e;const c=d=>(e+d).replace("github:","https://raw.githubusercontent.com/");return Array.isArray(a)?[s,a.map(c)]:[s,Object.fromEntries(Object.entries(a).map(([d,_])=>[d,(typeof _=="string"?[_]:_).map(c)]))]})))},resetLoadedSamples=()=>{sampleCache.current=void 0},getLoadedSamples$1=()=>sampleCache.current,{Pattern:Pattern$1}=strudel;let audioContext;const getAudioContext=()=>(audioContext||(audioContext=new AudioContext),audioContext),getFilter=(o,e,s)=>{const a=getAudioContext().createBiquadFilter();return a.type=o,a.frequency.value=e,a.Q.value=s,a},getADSR=(o,e,s,a,c,d,_)=>{const b=getAudioContext().createGain();return b.gain.setValueAtTime(0,d),b.gain.linearRampToValueAtTime(c,d+o),b.gain.linearRampToValueAtTime(s*c,d+o+e),b.gain.setValueAtTime(s*c,_),b.gain.linearRampToValueAtTime(0,_+a),b},getOscillator=({s:o,freq:e,t:s,duration:a,release:c})=>{const d=getAudioContext().createOscillator();return d.type=o||"triangle",d.frequency.value=Number(e),d.start(s),d.stop(s+a+c),d},getSoundfontKey=o=>{var a,c,d,_;if(!globalThis.soundfontList)return!1;if((c=(a=globalThis.soundfontList)==null?void 0:a.instruments)!=null&&c.includes(o))return o;const e=(_=(d=globalThis.soundfontList)==null?void 0:d.instrumentNames)==null?void 0:_.indexOf(o),s=e<10?`00${e}`:e<100?`0${e}`:e;if(e!==-1)return globalThis.soundfontList.instruments.find(b=>b.startsWith(s))},getSampleBufferSource=async(o,e,s)=>{let a=0;s&&(a=toMidi$1(s)-36);const c=getAudioContext(),d=getLoadedSamples();if(!d)throw new Error("no samples loaded");const _=d==null?void 0:d[o];if(!_)throw new Error("sample not found:",o,"try one of "+Object.keys(d));if(typeof _!="object")throw new Error("wrong format for sample bank:",o);let b;if(Array.isArray(_))b=_[e%_.length];else{if(!s)throw new Error("no note(...) set for sound",o);const _e=tt=>toMidi$1(tt)-toMidi$1(s),et=Object.keys(_).filter(tt=>!tt.startsWith("_")).reduce((tt,nt,it)=>!tt||Math.abs(_e(nt)){if(!o.includes(":"))return[o,e];let[s,a]=o.split(":");return isNaN(Number(a))?[o,e]:[s,a]};Pattern$1.prototype.out=function(){return this.onTrigger(async(o,e,s)=>{try{const a=getAudioContext();o=a.currentTime+o-s;let{freq:c,s:d,sf:_,clip:b=0,n:k=0,note:$,gain:j=1,cutoff:_e,resonance:et=1,hcutoff:tt,hresonance:nt=1,bandf:it,bandq:rt=1,pan:st,attack:at=.001,decay:ot=.05,sustain:ht=.5,release:ct=.001,speed:ut=1,begin:lt=0,end:pt=1}=e.value;const{velocity:dt=1}=e.context;j*=dt;const gt=[];if(typeof d=="string"&&([d,k]=splitSN(d,k)),typeof $=="string"&&([$,k]=splitSN($,k)),!d||["sine","square","triangle","sawtooth"].includes(d)){k=$||k,typeof k=="string"&&(k=toMidi$1(k)),!c&&typeof k=="number"&&(c=fromMidi(k));const ft=getOscillator({t:o,s:d,freq:c,duration:e.duration,release:ct});gt.push(ft);const yt=a.createGain();yt.gain.value=.3,gt.push(yt);const mt=getADSR(at,ot,ht,ct,1,o,o+e.duration);gt.push(mt)}else{if(ut===0)return;if(!d){console.warn("no sample specified");return}const ft=getSoundfontKey(d);let yt;try{ft?yt=await globalThis.getFontBufferSource(ft,$||k,a):yt=await getSampleBufferSource(d,k,$)}catch(At){console.warn(At);return}if(a.currentTime>o){console.warn("sample still loading:",d,k);return}if(!yt){console.warn("no buffer source");return}yt.playbackRate.value=Math.abs(ut)*yt.playbackRate.value;let mt=ft||b?e.duration:yt.buffer.duration;const St=lt*mt;if(mt=(pt-lt)*mt/Math.abs(ut),ft||b?yt.start(o,St):yt.start(o,St,mt),gt.push(yt),ft||b){const At=a.createGain(),Ot=.1;At.gain.value=.6,At.gain.setValueAtTime(At.gain.value,o+mt),At.gain.linearRampToValueAtTime(0,o+mt+Ot),gt.push(At),yt.stop(o+mt+Ot)}else yt.stop(o+mt)}const Et=a.createGain();if(Et.gain.value=j,gt.push(Et),_e!==void 0&>.push(getFilter("lowpass",_e,et)),tt!==void 0&>.push(getFilter("highpass",tt,nt)),it!==void 0&>.push(getFilter("bandpass",it,rt)),st!==void 0){const ft=a.createStereoPanner();ft.pan.value=2*st-1,gt.push(ft)}gt.push(a.destination),gt.slice(1).reduce((ft,yt)=>ft.connect(yt),gt[0])}catch(a){console.warn(".out error:",a)}})};const{Pattern}=strudel;let webDirt;function loadWebDirt(o){webDirt=new WebDirtPacked.exports.WebDirt(o),webDirt.initializeWebAudio()}Pattern.prototype.webdirt=function(){return this._withHap(o=>{const e=async(s,a,c)=>{if(!webDirt)throw new Error("WebDirt not initialized!");const d=s-c,j=a.value||{},{s:_,n:b=0}=j,k=ln(j,["s","n"]);_||console.warn('Pattern.webdirt: no "s" was set!');const $=getLoadedSamples$1();if(!($!=null&&$[_])){webDirt.playSample(_t({s:_,n:b},k),d);return}if(!($!=null&&$[_]))console.warn(`Pattern.webdirt: sample "${_}" not found in loaded samples`,$);else{const _e=$[_],et=_e[b%_e.length],tt=getLoadedBuffer(et);if(!tt)console.log(`Pattern.webdirt: load ${_}:${b} from ${et}`),loadBuffer(et,webDirt.ac);else{const nt=_t({buffer:{buffer:tt}},k);webDirt.playSample(nt,d)}}};return o.setContext(wt(_t({},o.context),{onTrigger:e}))})};const defaultSynth=new Tone.PolySynth().chain(new Tone.Gain(.5),Tone.Destination).set({oscillator:{type:"triangle"},envelope:{release:.01}});evalScope(Tone,controls,__vitePreload(()=>Promise.resolve().then(function(){return strudel}),void 0),__vitePreload(()=>import("./index.4d91ae8b.js"),[]),__vitePreload(()=>import("./index.eecad890.js"),[]),__vitePreload(()=>import("./index.2ac97f4b.js"),[]),__vitePreload(()=>import("./index.866dc78c.js"),[]),__vitePreload(()=>import("./index.60173075.js"),[]),__vitePreload(()=>import("./index.fbcc9b19.js"),[]),__vitePreload(()=>import("./osc.97e33e69.js"),[]),__vitePreload(()=>import("./index.c86fa59c.js"),[]));loadWebDirt({sampleMapUrl:"../EmuSP12.json",sampleFolder:"../EmuSP12"});function MiniRepl({tune:o}){return jsx(MiniRepl$1,{tune:o,defaultSynth,hideOutsideView:!0})}const layoutProps={},MDXLayout="wrapper";function MDXContent(s){var a=s,{components:o}=a,e=ln(a,["components"]);return createElement(MDXLayout,wt(_t(_t({},layoutProps),e),{components:o,mdxType:"MDXLayout"}),createElement("h1",{id:"table-of-contents"},createElement("a",{parentName:"h1","aria-hidden":"true",tabIndex:-1,href:"#table-of-contents"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Table of Contents"),createElement("ul",null,createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#what-is-strudel"},"What is Strudel?")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#show-me-a-demo"},"Show me a Demo")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#disclaimer"},"Disclaimer")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#mini-notation"},"Mini Notation")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#notes"},"Notes")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#sequences"},"Sequences")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#division"},"Division")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#angle-brackets"},"Angle Brackets")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#multiplication"},"Multiplication")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#bracket-nesting"},"Bracket Nesting")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#rests"},"Rests")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#parallel"},"Parallel")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#elongation"},"Elongation")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#replication"},"Replication")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#euclidian"},"Euclidian")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#mini-notation-todo"},"Mini Notation TODO")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#core-api"},"Core API")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#notes-1"},"Notes"))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#functions-that-create-patterns"},"Functions that create Patterns"))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#purevalue"},"pure(value)")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#catvalues"},"cat(...values)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#seqvalues"},"seq(...values)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#stackvalues"},"stack(...values)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#nesting-functions"},"Nesting functions")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#timecatweightvalue"},"timeCat(...","weight,value",")")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#polyrhythmvalues"},"polyrhythm(...","...values",")")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#pattern-modifier-functions"},"Pattern modifier functions")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#slowfactor"},"slow(factor)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#fastfactor"},"fast(factor)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#earlycycles"},"early(cycles)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#latecycles"},"late(cycles)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#rev"},"rev()")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#everyn-func"},"every(n, func)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#addn"},"add(n)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#subn"},"sub(n)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#muln"},"mul(n)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#divn"},"div(n)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#round"},"round()")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#structbinary_pat"},"struct(binary_pat)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#whenbinary_pat-func"},"when(binary_pat, func)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#superimposefunc"},"superimpose(...func)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#layerfunc"},"layer(...func)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#applyfunc"},"apply(func)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#offtime-func"},"off(time, func)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#stackpat"},"stack(pat)")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#tone-api"},"Tone API")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#toneinstrument"},"tone(instrument)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#sampler"},"sampler")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#players"},"players")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#out"},"out")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#volvolume"},"vol(volume)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#osctype"},"osc(type)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#lowpasscutoff"},"lowpass(cutoff)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#highpasscutoff"},"highpass(cutoff)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#adsr"},"adsr")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#tonal-api"},"Tonal API")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#transposesemitones"},"transpose(semitones)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#scalename"},"scale(name)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#scaletransposesteps"},"scaleTranspose(steps)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#voicingsrange"},"voicings(range?)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#rootnotesoctave--2"},"rootNotes(octave = 2)")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#microtonal-api"},"Microtonal API"))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#midi-api"},"MIDI API")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#midioutputname"},"midi(outputName?)")))))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#contributing"},"Contributing"))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#api-docs"},"API Docs")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#pattern-factories"},"Pattern Factories")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#pure"},"pure")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#slowcat"},"slowcat")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#fastcat"},"fastcat")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#stack"},"stack")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#timecat"},"timeCat")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#pattern-modifiers"},"Pattern Modifiers")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#patternslow"},"Pattern.slow")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#patternfast"},"Pattern.fast")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#continuous-signals"},"Continuous Signals")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#saw"},"saw")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#sine"},"sine")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#cosine"},"cosine")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#tri"},"tri")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#square"},"square")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#using-samples-with-webdirt"},"Using Samples with Webdirt")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#patternwebdirt"},"Pattern.webdirt")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#using-superdirt-via-osc"},"Using Superdirt via OSC")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#getting-started"},"Getting Started")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#usage"},"Usage")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#patternosc"},"Pattern.osc")))))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#superdirt-params"},"Superdirt Params")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#basic-types"},"Basic Types")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#s"},"s")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#n"},"n")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#freq"},"freq")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#channel"},"channel")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#orbit"},"orbit")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#filters"},"Filters")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#cutoff"},"cutoff")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#resonance"},"resonance")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#hcutoff"},"hcutoff")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#hresonance"},"hresonance")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#bandf"},"bandf")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#bandq"},"bandq")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#djf"},"djf")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#vowel"},"vowel")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#sample-editing"},"Sample Editing")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#cut"},"cut")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#begin"},"begin")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#end"},"end")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#loop"},"loop")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#speed"},"speed")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#unit"},"unit")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#audio-effects"},"Audio Effects")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#gain"},"gain")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#amp"},"amp")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#accelerate"},"accelerate")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#crush"},"crush")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#coarse"},"coarse")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#leslie"},"leslie")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#lrate"},"lrate")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#lsize"},"lsize")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#pan"},"pan")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#room"},"room")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#size"},"size")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#dry"},"dry")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#shape"},"shape")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#squiz"},"squiz")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#synth-effects"},"Synth Effects")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#octave"},"octave")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#detune"},"detune"))))))),createElement("h1",{id:"what-is-strudel"},createElement("a",{parentName:"h1","aria-hidden":"true",tabIndex:-1,href:"#what-is-strudel"},createElement("span",{parentName:"a",className:"icon icon-link"})),"What is Strudel?"),createElement("p",null,`With Strudel, you can expressively write dynamic music pieces. +`:""}${mt}`),[]),ut=react.exports.useMemo(()=>{if(k&&!k.includes("strudel disable-highlighting"))return(mt,St)=>c==null?void 0:c(mt,St,k)},[k,c]),lt=react.exports.useMemo(()=>k&&k.includes("strudel hide-header"),[k]),pt=react.exports.useMemo(()=>k&&k.includes("strudel hide-console"),[k]),dt=useCycle({onDraw:ut,onEvent:react.exports.useCallback((mt,St,At)=>{var Ot;try{a==null||a(St),(Ot=St.context.logs)!=null&&Ot.length&&St.context.logs.forEach(ct);const{onTrigger:Ct,velocity:Dt}=St.context;if(Ct)Ct(mt,St,At,1);else if(e){const Tt=getPlayableNoteValue(St);e.triggerAttackRelease(Tt,St.duration.valueOf(),mt,Dt)}else throw new Error("no defaultSynth passed to useRepl.")}catch(Ct){console.warn(Ct),Ct.message="unplayable event: "+(Ct==null?void 0:Ct.message),ct(Ct.message)}},[a,ct,e]),onQuery:react.exports.useCallback(mt=>{try{return(at==null?void 0:at.query(mt))||[]}catch(St){return console.warn(St),St.message="query error: "+St.message,tt(St),[]}},[at]),onSchedule:react.exports.useCallback((mt,St)=>ft(mt),[]),ready:!!at&&!!k}),gt=usePostMessage(({data:{from:mt,type:St}})=>{St==="start"&&mt!==d&&(dt.setStarted(!1),$(void 0))}),yt=react.exports.useCallback(async(mt=_)=>{if(k&&!ht){tt(void 0),dt.start();return}try{st(!0);const St=await evaluate(mt);dt.start(),gt({type:"start",from:d}),ot(()=>St.pattern),s&&(window.location.hash="#"+encodeURIComponent(btoa(_))),it(generateHash(_)),tt(void 0),$(mt),st(!1)}catch(St){St.message="evaluation error: "+St.message,console.warn(St),tt(St)}},[k,ht,_,dt,s,d,gt]),ft=(mt,St)=>{mt.length};return{hideHeader:lt,hideConsole:pt,pending:nt,code:_,setCode:b,pattern:at,error:et,cycle:dt,setPattern:ot,dirty:ht,log:j,togglePlay:()=>{dt.started?dt.stop():yt()},setActiveCode:$,activateCode:yt,activeCode:k,pushLog:ct,hash:rt}}function cx(...o){return o.filter(Boolean).join(" ")}let highlights=[],lastEnd;function useHighlighting({view:o,pattern:e,active:s}){react.exports.useEffect(()=>{if(o)if(e&&s){let c=function(){try{const d=Tone.getTransport().seconds,b=[Math.max(lastEnd||d,d-1/10),d+1/60];lastEnd=d+1/60,highlights=highlights.filter($=>$.whole.end>d);const k=e.queryArc(...b).filter($=>$.hasOnset());highlights=highlights.concat(k),o.dispatch({effects:setHighlights.of(highlights)})}catch{o.dispatch({effects:setHighlights.of([])})}a=requestAnimationFrame(c)},a=requestAnimationFrame(c);return()=>{cancelAnimationFrame(a)}}else highlights=[],o.dispatch({effects:setHighlights.of([])})},[e,s,o])}const container="_container_3i85k_1",header="_header_3i85k_5",buttons="_buttons_3i85k_9",button="_button_3i85k_9",buttonDisabled="_buttonDisabled_3i85k_17",error="_error_3i85k_21",body="_body_3i85k_25";var styles={container,header,buttons,button,buttonDisabled,error,body};function Icon({type:o}){return jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"sc-h-5 sc-w-5",viewBox:"0 0 20 20",fill:"currentColor",children:{refresh:jsx("path",{fillRule:"evenodd",d:"M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z",clipRule:"evenodd"}),play:jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM9.555 7.168A1 1 0 008 8v4a1 1 0 001.555.832l3-2a1 1 0 000-1.664l-3-2z",clipRule:"evenodd"}),pause:jsx("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zM7 8a1 1 0 012 0v4a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v4a1 1 0 102 0V8a1 1 0 00-1-1z",clipRule:"evenodd"})}[o]})}function MiniRepl$1({tune:o,defaultSynth:e,hideOutsideView:s=!1,theme:a,init:c,onEvent:d,enableKeyboard:_}){const{code:b,setCode:k,pattern:$,activeCode:j,activateCode:_e,evaluateOnly:et,error:tt,cycle:nt,dirty:st,togglePlay:rt,stop:it}=useRepl({tune:o,defaultSynth:e,autolink:!1,onEvent:d});react.exports.useEffect(()=>{c&&et()},[o,c]);const[at,ot]=react.exports.useState(),[ht,ct]=useInView({threshold:.01}),ut=react.exports.useRef(),lt=react.exports.useMemo(()=>((ct||!s)&&(ut.current=!0),ct||ut.current),[ct,s]);return useHighlighting({view:at,pattern:$,active:nt.started&&!(j!=null&&j.includes("strudel disable-highlighting"))}),react.exports.useLayoutEffect(()=>{if(_){const pt=async dt=>{(dt.ctrlKey||dt.altKey)&&(dt.code==="Enter"?(dt.preventDefault(),flash(at),await _e()):dt.code==="Period"&&(nt.stop(),dt.preventDefault()))};return window.addEventListener("keydown",pt,!0),()=>window.removeEventListener("keydown",pt,!0)}},[_,$,b,_e,nt,at]),jsxs("div",{className:styles.container,ref:ht,children:[jsxs("div",{className:styles.header,children:[jsxs("div",{className:styles.buttons,children:[jsx("button",{className:cx(styles.button,nt.started?"sc-animate-pulse":""),onClick:()=>rt(),children:jsx(Icon,{type:nt.started?"pause":"play"})}),jsx("button",{className:cx(st?styles.button:styles.buttonDisabled),onClick:()=>_e(),children:jsx(Icon,{type:"refresh"})})]}),tt&&jsx("div",{className:styles.error,children:tt.message})]}),jsx("div",{className:styles.body,children:lt&&jsx(CodeMirror,{value:b,onChange:k,onViewChanged:ot})})]})}var WebDirtPacked={exports:{}};(function(o,e){(function(s,a){o.exports=a()})(self,()=>(()=>{var s={d:($,j)=>{for(var _e in j)s.o(j,_e)&&!s.o($,_e)&&Object.defineProperty($,_e,{enumerable:!0,get:j[_e]})},o:($,j)=>Object.prototype.hasOwnProperty.call($,j),r:$=>{typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty($,Symbol.toStringTag,{value:"Module"}),Object.defineProperty($,"__esModule",{value:!0})}},a={};function c($,j){if(this.msg=$,this.ac=j.ac,this.sampleBank=j.sampleBank,this.outputNode=j.destination,this.cutGroups=j.cutGroups,this.eventCounter=j.eventCounter,this.audioOutputs=j.audioOutputs,this.workletsAvailable=j.workletsAvailable,typeof $.buffer=="object")this.bufferContainer=$.buffer;else{if(this.sampleBank==null)return void console.log("WebDirt: there is no sample bank, cancelling event");if(typeof this.sampleBank!="object")return void console.log("WebDirt: buffer not provided by calling application + no WebDirt sample bank");if(this.msg.n=parseInt(this.msg.n),isNaN(this.msg.n)&&(this.msg.n=0),!this.sampleBank.sampleNameExists(this.msg.s))return void console.log("WebDirt: no sample named "+this.msg.s+" exists in sample map");if(!this.sampleBank.getBufferMightSucceed(this.msg.s,this.msg.n))return}if(this.when=this.msg.when,isNaN(this.when))console.log("WebDirt: 'when' is null or not a number");else if(this.nudge=parseFloat(this.msg.nudge),isNaN(this.nudge)||(this.when=this.when+this.nudge),isNaN(parseFloat(this.msg.speed))&&(this.msg.speed=1),this.msg.speed!=0)if(isNaN(parseFloat(this.msg.note))&&(this.msg.note=0),this.msg.speed=this.msg.speed*Math.pow(2,this.msg.note/12),this.msg.begin=d(this.msg.begin,0),this.msg.end=d(this.msg.end,1),this.msg.end!=this.msg.begin){if(this.msg.begin>this.msg.end&&(this.msg.speed=-1*this.msg.speed),this.msg.speed<0&&(this.msg.begin=1-this.msg.begin,this.msg.end=1-this.msg.end),this.msg.begin>this.msg.end){let pt=this.msg.begin;this.msg.begin=this.msg.end,this.msg.end=pt}var _e;if(this.source=_e=this.ac.createBufferSource(),this.source.onended=this.disconnectHandler(),this.disconnectOnEnd(this.source),this.source.playbackRate.value=Math.abs(this.msg.speed),this.prepareBuffer(),this.buffer!=null)this.source.buffer=this.buffer,this.start();else{var et=this,tt=1e3*(this.msg.when-this.ac.currentTime-.2);tt<=0&&(tt=1e3*(this.msg.when-this.ac.currentTime-.2)),tt>0&&setTimeout(function(){et.prepareBuffer(),et.buffer!=null?(et.source.buffer=et.buffer,et.start()):(console.log("WebDirt: unable to access sample "+$.s+":"+$.n+" on second attempt"),et.stopAll())},tt)}this.cut(this.msg.cut,this.msg.s),_e=this.shape(_e,this.msg.shape),_e=this.lowPassFilter(_e,this.msg.cutoff,this.msg.resonance),_e=this.highPassFilter(_e,this.msg.hcutoff,this.msg.hresonance),_e=this.bandPassFilter(_e,this.msg.bandf,this.msg.bandq),_e=this.vowel(_e,this.msg.vowel),_e=this.delay(_e,this.msg.delay,this.msg.delaytime,this.msg.delayfeedback),_e=this.loop(_e,this.msg.loop,this.msg.begin,this.msg.end,this.msg.speed),_e=this.crush(_e,this.msg.crush),_e=this.coarse(_e,this.msg.coarse),this.unit(this.msg.unit,this.msg.speed);var nt=parseFloat(this.msg.gain);isNaN(nt)&&(nt=1),nt>2&&(nt=2),nt<0&&(nt=0);var st=parseFloat(this.msg.overgain);isNaN(st)||(nt+=st),nt=Math.pow(nt,4);var rt,it,at,ot=parseFloat($.pan);if(isNaN(ot)&&(ot=.5),this.audioOutputs==2)(ot>1||ot<0)&&(ot-=Math.floor(ot)),rt=ot,it=0,at=1;else{var ht=(ot-=Math.floor(ot))*this.audioOutputs;(at=(it=Math.floor(ht))+1)>=this.audioOutputs&&(at=0),rt=ht-Math.floor(ht)}var ct=this.ac.createGain();this.disconnectOnEnd(ct);var ut=this.ac.createGain();this.disconnectOnEnd(ut),ct.gain.value=Math.cos(rt*Math.PI/2)*nt,ut.gain.value=Math.sin(rt*Math.PI/2)*nt,_e.connect(ct),_e.connect(ut),this.gain1=ct,this.gain2=ut;var lt=this.ac.createChannelMerger(this.audioOutputs);this.disconnectOnEnd(lt),ct.connect(lt,0,it),ut.connect(lt,0,at),lt.connect(this.outputNode)}else this.stopAll()}function d($,j){let _e=parseFloat($);return isNaN(_e)?j:_e>1?1:_e<0?0:_e}s.r(a),s.d(a,{WebDirt:()=>k}),c.prototype.prepareBuffer=function(){typeof this.bufferContainer=="object"?typeof this.bufferContainer.buffer=="object"&&(this.msg.speed>=0?this.buffer=this.bufferContainer.buffer:(typeof this.bufferContainer.reverseBuffer=="object"||(this.bufferContainer.reverseBuffer=this.reverseBuffer(this.ac,this.bufferContainer.buffer)),this.buffer=this.bufferContainer.reverseBuffer)):(this.msg.speed>=0?this.buffer=this.sampleBank.getBuffer(this.msg.s,this.msg.n):this.buffer=this.sampleBank.getReverseBuffer(this.msg.s,this.msg.n),this.buffer=this.accel(this.buffer,this.msg.accelerate,this.msg.speed))},c.prototype.disconnectOnEnd=function($){this.source.disconnectQueue==null&&(this.source.disconnectQueue=new Array),this.source.disconnectQueue.unshift($)},c.prototype.start=function(){let $=Math.abs(this.msg.speed),j=(this.msg.end-this.msg.begin)*this.source.buffer.duration/$,_e=this.msg.begin*this.source.buffer.duration;this.source.start(this.when,_e,j)},c.prototype.stopAll=function(){if(this.source!=null&&this.source.disconnectQueue!=null){for(var $=0;$1&&this.workletsAvailable){var _e=new AudioWorkletNode(this.ac,"coarse-processor");return _e.parameters.get("coarse").value=j,$.connect(_e),this.disconnectOnEnd(_e),_e}return $},c.prototype.crush=function($,j){if(j=parseInt(j),isNaN(j)&&(j=null),j!=null&&j>0&&this.workletsAvailable){var _e=new AudioWorkletNode(this.ac,"crush-processor");return _e.parameters.get("crush").value=j,$.connect(_e),this.disconnectOnEnd(_e),_e}return $},c.prototype.cut=function($,j){if($=parseInt($),!isNaN($)&&$!=0){for(var _e={cutGroup:$,node:this,sampleName:j},et=0;et2e4&&(j=2e4),isNaN(parseFloat(_e))&&(_e=0),_e<0&&(_e=0),_e>1&&(_e=1),_e=1/(_e=1-.999*(_e*=_e));var et=this.ac.createBiquadFilter();return this.disconnectOnEnd(et),et.type="highpass",et.frequency.value=j,et.Q.value=_e,$.connect(et),et},c.prototype.lowPassFilter=function($,j,_e){if(isNaN(parseFloat(j))&&isNaN(parseFloat(_e)))return $;isNaN(parseFloat(j))&&(j=440),j<20&&(j=20),j>2e4&&(j=2e4),isNaN(parseFloat(_e))&&(_e=0),_e<0&&(_e=0),_e>1&&(_e=1),_e=1/(_e=1-.999*(_e*=_e));var et=this.ac.createBiquadFilter();return this.disconnectOnEnd(et),et.type="lowpass",et.frequency.value=j,et.Q.value=_e,$.connect(et),et},c.prototype.bandPassFilter=function($,j,_e){if(isNaN(parseFloat(j))&&isNaN(parseFloat(_e)))return $;isNaN(parseFloat(j))&&(j=440),j<20&&(j=20),j>2e4&&(j=2e4),isNaN(parseFloat(_e))&&(_e=10),_e<1&&(_e=1),_e>100&&(_e=100);var et=this.ac.createBiquadFilter();return this.disconnectOnEnd(et),et.type="bandpass",et.frequency.value=j,et.Q.value=_e,et.gain.value=_e,$.connect(et),et},c.prototype.loop=function($,j){if(isNaN(parseInt(j))||j==0)return $;try{var _e=this.source.buffer.duration-this.msg.begin*this.source.buffer.duration-(1-this.msg.end)*this.source.buffer.duration;return this.source.loop=!0,this.source.loopStart=this.msg.begin*this.source.buffer.duration,this.source.loopEnd=this.msg.end*this.source.buffer.duration,this.source.stop(this.when+_e*j/this.source.playbackRate.value),$}catch{return console.log("WebDirt Warning: buffer data not yet available to calculate loop time - no looping applied"),$}},c.prototype.accelerate=function($,j){if(j=Math.abs(j),isNaN(parseFloat($))&&($=0),$!=0){$=parseFloat($),this.source.playbackRate.setValueAtTime(j,this.when);var _e=Math.abs((this.source.buffer.length*$/this.ac.sampleRate+j)/j),et=j+this.source.buffer.length*$/this.ac.sampleRate;if(et<0)this.source.buffer=this.negativeAccelerateBuffer(this.source.buffer,$,j),this.source.playbackRate.linearRampToValueAtTime(0,this.when+_e),this.source.playbackRate.linearRampToValueAtTime(1,this.when+this.source.buffer.duration);else try{this.source.playbackRate.linearRampToValueAtTime(et,this.when+this.source.buffer.duration)}catch{console.log("WebDirt: Warning, buffer data not loaded, could not apply acclerate effect")}}},c.prototype.negativeAccelerateBuffer=function($,j,_e){var et=$.length,tt=new Float32Array(et),nt=this.ac.createBuffer($.numberOfChannels,$.length,this.ac.sampleRate),st=new Float32Array(et),rt=Math.abs(_e/(_e-j))*et;rt=et*Math.abs((this.source.buffer.length*j/this.ac.sampleRate+_e)/_e)/this.source.buffer.duration,rt=Math.trunc(rt);for(var it=0;it<$.numberOfChannels;it++){$.copyFromChannel(tt,it,0);for(var at=0;at=1&&(j=.999),j>0&&this.workletsAvailable){var _e=new AudioWorkletNode(this.ac,"shape-processor");return _e.parameters.get("shape").value=j,$.connect(_e),this.disconnectOnEnd(_e),_e}return $},c.prototype.stop=function($){this.gain1.gain.setValueAtTime(this.gain1.gain.value,$),this.gain1.gain.linearRampToValueAtTime(0,$+.02),this.gain2.gain.setValueAtTime(this.gain1.gain.value,$),this.gain2.gain.linearRampToValueAtTime(0,$+.02)},c.prototype.unit=function($,j){$=="c"&&(this.source.playbackRate.value=this.source.playbackRate.value*this.source.buffer.duration)},c.prototype.vowel=function($,j){if(typeof j!="string")return $;if((j=j.toLowerCase())=="a"||j=="e"||j=="i"||j=="o"||j=="u"){var _e,et,tt,nt=this.ac.createGain();switch(this.disconnectOnEnd(nt),j){case"a":_e=_.a.freqs,et=_.a.qs,tt=_.a.amps;break;case"e":_e=_.e.freqs,et=_.e.qs,tt=_.e.amps;break;case"i":_e=_.i.freqs,et=_.i.qs,tt=_.i.amps;break;case"o":_e=_.o.freqs,et=_.o.qs,tt=_.o.amps;break;case"u":_e=_.u.freqs,et=_.u.qs,tt=_.u.amps}for(var st=0;st<5;st++){var rt=this.ac.createGain();this.disconnectOnEnd(rt),rt.gain.value=tt[st];var it=this.ac.createBiquadFilter();this.disconnectOnEnd(it),it.type="bandpass",it.Q.value=et[st]/8,it.frequency.value=_e[st],$.connect(it),it.connect(rt),rt.connect(nt)}return nt.gain.value=8,nt}return $},c.prototype.reverseBuffer=function($,j){for(var _e=j.length,et=new Float32Array(_e),tt=$.createBuffer(j.numberOfChannels,j.length,$.sampleRate),nt=new Float32Array(_e),st=0;st{console.log("WebDirt: audio worklets added"),this.workletsAvailable=!0}).catch(j=>{console.log("WebDirt: error loading AudioWorklets.js: "+j),console.log("(WebDirt should still work but shape, coarse, and crush will have no effect)"),this.workletsAvailable=!1}):(console.log("WebDirt: browser does not support audio worklets"),console.log("(WebDirt should still work but shape, coarse, and crush will have no effect)"),this.workletsAvailable=!1),this.tempo={time:this.ac.currentTime,beats:0,bpm:30},this.clockDiff=Date.now()/1e3-this.ac.currentTime,this.sampleBank!=null&&(this.sampleBank.ac=this.ac),this.silentNote=this.ac.createOscillator(),this.silentNote.type="sine",this.silentNote.frequency.value=440,this.silentGain=this.ac.createGain(),this.silentGain.gain.value=0,this.silentNote.connect(this.silentGain),this.silentGain.connect(this.ac.destination),this.silentNote.start();var $=this;setTimeout(function(){$.silentGain.disconnect($.ac.destination),$.silentNote.disconnect($.silentGain),$.silentNote.stop(),$.silentGain=null,$.silentNote=null},500)}console.log("WebDirt: initializeWebAudio finished.")},k.prototype.playSample=function($,j){if(j==null&&(j=this.latency),$.whenPosix!=null&&($.when=$.whenPosix-(new Date().getTime()/1e3-this.ac.currentTime)),$.when==null&&($.when=this.ac.currentTime),$.when=$.when+j,typeof $.maxLateness!="number"&&($.maxLateness=this.maxLateness),this.ac.currentTime-$.when>$.maxLateness)return void console.log("WebDirt warning: dropping msg late by "+(this.ac.currentTime-$.when)+" seconds");let _e=new c($,this);return this.eventCounter++,_e},k.prototype.playScore=function($,j,_e){this.initializeWebAudio(),j==null&&(j=this.latency);for(var et=this.ac.currentTime,tt=0,nt=0;nt<$.length;nt++){var st=$[nt];st.when>tt&&(tt=st.when),st.when=st.when+et,st.s!=null&&(st.sample_name=st.s),st.n!=null&&(st.sample_n=st.n),this.playSample(st,j)}setTimeout(function(){typeof _e=="function"&&_e()},1e3*(tt+j))},k.prototype.playScoreWhenReady=function($,j,_e,et){this.initializeWebAudio(),j==null&&(j=this.latency);for(var tt=$.length,nt=0;nt<$.length;nt++){var st=$[nt],rt=this;st.s!=null&&(st.sample_name=st.s),st.n!=null&&(st.sample_n=st.n),this.sampleBank!=null&&this.sampleBank.load(st.sample_name,st.sample_n,function(){(tt-=1)<=0&&(rt.playScore($,j,et),typeof _e=="function"&&_e())})}},k.prototype.loadAndPlayScore=function($,j,_e,et){this.initializeWebAudio(),j==null&&(j=this.latency);var tt=new XMLHttpRequest;tt.open("GET",$,!0),tt.responseType="json";var nt=this;tt.onload=function(){if(tt.readyState!=4)throw Error("readyState != 4 in callback of loadAndPlayScore");if(tt.status!=200)throw Error("status != 200 in callback of loadAndPlayScore");if(tt.response==null)throw Error("JSON response null in callback of loadAndPlayScore");console.log("playing JSON score from "+$),nt.playScoreWhenReady(tt.response,j,_e,et)},tt.send()},k.prototype.renderAndPlayScore=function($,j,_e,et,tt,nt,st){this.initializeWebAudio(),tt==null&&(tt=this.latency),window.WebSocket=window.WebSocket||window.MozWebSocket,console.log("WebDirt.renderAndPlayScore: attempting websocket connection to "+$);var rt=new WebSocket($);rt.onerror=function(){console.log(" ERROR opening websocket connection to "+$)},rt.onopen=function(){console.log(" websocket connection to "+$+" established");try{var at='{"render":'+JSON.stringify(j)+',"cps":'+_e+',"cycles":'+et+"}";console.log(at),rt.send(at),console.log(" render request sent")}catch{console.log(" EXCEPTION during transmission of render request"),rt.close()}};var it=this;rt.onmessage=function(at){var ot=JSON.parse(at.data);if(!ot instanceof Array)return console.log(" WebDirt warning: rendering socket received non-array message"),console.log(typeof ot),void(globalX=ot);console.log(" received score from "+$),it.playScoreWhenReady(ot,tt,nt,st),console.log(" closing websocket connection to "+$),rt.close()}},k.prototype.subscribeToTidalSocket=function($,j){this.initializeWebAudio(),j==null&&(j=!1),window.WebSocket=window.WebSocket||window.MozWebSocket,console.log("WebDirt: attempting websocket connection to "+$),ws=new WebSocket($),ws.onopen=function(){console.log("websocket connection to tidalSocket opened")},ws.onerror=function(){console.log("ERROR opening websocket connection to tidalSocket")};var _e=this;ws.onmessage=function(et){if(et.data==null)throw Error("null data in tidalSocket onmessage handler");var tt=JSON.parse(et.data);if(tt.address==null)throw Error("received message from tidalSocket with no address: "+et.data);if(tt.address!="/play")throw Error("address of message from tidalSocket wasn't /play: "+et.data);if(tt.args.constructor!==Array)throw Error("ERROR: message from tidalSocket where args doesn't exist or isn't an array: "+et.data);if(tt.args.length!=30&&tt.args.length!=33)throw Error("ERROR: message from tidalSocket with "+tt.args.length+" args instead of 30 or 33: "+et.data);var nt={};nt.when=tt.args[0]+tt.args[1]/1e6+_e.clockDiff,nt.sample_name=tt.args[3],nt.begin=tt.args[5],nt.end=tt.args[6],nt.speed=tt.args[7],nt.pan=tt.args[8],nt.vowel=tt.args[10],nt.cutoff=tt.args[11],nt.resonance=tt.args[12],nt.accelerate=tt.args[13],nt.shape=tt.args[14],nt.gain=tt.args[16],nt.cut=tt.args[17],nt.delay=tt.args[18],nt.delaytime=tt.args[19],nt.delayfeedback=tt.args[20],nt.crush=tt.args[21],nt.coarse=tt.args[22],nt.hcutoff=tt.args[23],nt.hresonance=tt.args[24],nt.bandf=tt.args[25],nt.bandq=tt.args[26],nt.unit_name=tt.args[27],nt.sample_loop=tt.args[28],nt.sample_n=tt.args[29],tt.args.length==33&&(nt.attack=tt.args[30],nt.hold=tt.args[31],nt.release=tt.args[32]),_e.playSample(nt),j&&console.log(tt)}},k.prototype.getCurrentTime=function(){return this.ac.currentTime},k.prototype.syncWithEsp=function($){if(typeof EspClient=="function")if(this.espClient==null){this.espClient=new EspClient($,this.ac);var j=this;this.espClient.tempoCallback=function(_e){j.tempo=_e}}else this.espClient.setUrl($);else console.log("WebDirt ERROR: syncWithEsp called but EspClient does not exist")},k.prototype.setTempo=function($){if(typeof $.time!="number")throw Error("WebDirt: no time in setTempo");if(typeof $.beats!="number")throw Error("WebDirt: no beats in setTempo");if(typeof $.bpm!="number")throw Error("WebDirt: no bpm in setTempo");this.espClient!=null&&this.espClient.sendSetTempo($),this.tempo=$},k.prototype.sampleHint=function($){this.sampleBank!=null&&(console.log("WebDirt received sample hint: "+$),this.sampleBank.loadAllNamed($))},a})())})(WebDirtPacked);const bufferCache={},loadCache={},getCachedBuffer=o=>bufferCache[o],loadBuffer=(o,e)=>(loadCache[o]||(loadCache[o]=fetch(o).then(s=>s.arrayBuffer()).then(async s=>{const a=await e.decodeAudioData(s);return bufferCache[o]=a,a})),loadCache[o]),getLoadedBuffer=o=>bufferCache[o],githubCache={};let sampleCache={current:void 0};const loadGithubSamples=async(o,e)=>{const s="loadGithubSamples "+o,a=localStorage.getItem(s);if(a&&(console.log("[sampler]: loaded sample list from localstorage",o),githubCache[o]=JSON.parse(a)),githubCache[o])return sampleCache.current=githubCache[o],githubCache[o];console.log("[sampler]: fetching sample list from github",o);try{const[c,d,..._]=o.split("/"),b=`https://api.github.com/repos/${c}/${d}/contents`,k=await fetch(`${b}/${_.join("/")}`).then($=>$.json());githubCache[o]=(await Promise.all(k.map(async({name:$,path:j})=>({name:$,content:await fetch(`${b}/${j}`).then(_e=>_e.json()).catch(_e=>{console.error("could not load path",_e)})})))).filter(({content:$})=>!!$).reduce(($,{name:j,content:_e})=>wt(_t({},$),{[(e==null?void 0:e(j))||j]:_e.map(({download_url:et})=>et)}),{})}catch(c){console.error("[sampler]: failed to fetch sample list from github",c);return}return sampleCache.current=githubCache[o],localStorage.setItem(s,JSON.stringify(sampleCache.current)),console.log("[sampler]: loaded samples:",sampleCache.current),githubCache[o]},samples=(o,e=o._base||"")=>{sampleCache.current=_t(_t({},sampleCache.current),Object.fromEntries(Object.entries(o).map(([s,a])=>{if(typeof a=="string"&&(a=[a]),typeof a!="object")throw new Error("wrong sample map format for "+s);e=a._base||e;const c=d=>(e+d).replace("github:","https://raw.githubusercontent.com/");return Array.isArray(a)?[s,a.map(c)]:[s,Object.fromEntries(Object.entries(a).map(([d,_])=>[d,(typeof _=="string"?[_]:_).map(c)]))]})))},resetLoadedSamples=()=>{sampleCache.current=void 0},getLoadedSamples$1=()=>sampleCache.current,{Pattern:Pattern$1}=strudel;let audioContext;const getAudioContext=()=>(audioContext||(audioContext=new AudioContext),audioContext),getFilter=(o,e,s)=>{const a=getAudioContext().createBiquadFilter();return a.type=o,a.frequency.value=e,a.Q.value=s,a},getADSR=(o,e,s,a,c,d,_)=>{const b=getAudioContext().createGain();return b.gain.setValueAtTime(0,d),b.gain.linearRampToValueAtTime(c,d+o),b.gain.linearRampToValueAtTime(s*c,d+o+e),b.gain.setValueAtTime(s*c,_),b.gain.linearRampToValueAtTime(0,_+a),b},getOscillator=({s:o,freq:e,t:s,duration:a,release:c})=>{const d=getAudioContext().createOscillator();return d.type=o||"triangle",d.frequency.value=Number(e),d.start(s),d.stop(s+a+c),d},getSoundfontKey=o=>{var a,c,d,_;if(!globalThis.soundfontList)return!1;if((c=(a=globalThis.soundfontList)==null?void 0:a.instruments)!=null&&c.includes(o))return o;const e=(_=(d=globalThis.soundfontList)==null?void 0:d.instrumentNames)==null?void 0:_.indexOf(o),s=e<10?`00${e}`:e<100?`0${e}`:e;if(e!==-1)return globalThis.soundfontList.instruments.find(b=>b.startsWith(s))},getSampleBufferSource=async(o,e,s)=>{let a=0;s&&(a=toMidi$1(s)-36);const c=getAudioContext(),d=getLoadedSamples();if(!d)throw new Error("no samples loaded");const _=d==null?void 0:d[o];if(!_)throw new Error("sample not found:",o,"try one of "+Object.keys(d));if(typeof _!="object")throw new Error("wrong format for sample bank:",o);let b;if(Array.isArray(_))b=_[e%_.length];else{if(!s)throw new Error("no note(...) set for sound",o);const _e=tt=>toMidi$1(tt)-toMidi$1(s),et=Object.keys(_).filter(tt=>!tt.startsWith("_")).reduce((tt,nt,st)=>!tt||Math.abs(_e(nt)){if(!o.includes(":"))return[o,e];let[s,a]=o.split(":");return isNaN(Number(a))?[o,e]:[s,a]};Pattern$1.prototype.out=function(){return this.onTrigger(async(o,e,s,a)=>{const c=e.duration/a;try{const d=getAudioContext();o=d.currentTime+o-s;let{freq:_,s:b,sf:k,clip:$=0,n:j=0,note:_e,gain:et=1,cutoff:tt,resonance:nt=1,hcutoff:st,hresonance:rt=1,bandf:it,bandq:at=1,pan:ot,attack:ht=.001,decay:ct=.05,sustain:ut=.5,release:lt=.001,speed:pt=1,begin:dt=0,end:gt=1}=e.value;const{velocity:yt=1}=e.context;et*=yt;const ft=[];if(typeof b=="string"&&([b,j]=splitSN(b,j)),typeof _e=="string"&&([_e,j]=splitSN(_e,j)),!b||["sine","square","triangle","sawtooth"].includes(b)){j=_e||j,typeof j=="string"&&(j=toMidi$1(j)),!_&&typeof j=="number"&&(_=fromMidi(j));const mt=getOscillator({t:o,s:b,freq:_,duration:c,release:lt});ft.push(mt);const St=d.createGain();St.gain.value=.3,ft.push(St);const At=getADSR(ht,ct,ut,lt,1,o,o+c);ft.push(At)}else{if(pt===0)return;if(!b){console.warn("no sample specified");return}const mt=getSoundfontKey(b);let St;try{mt?St=await globalThis.getFontBufferSource(mt,_e||j,d):St=await getSampleBufferSource(b,j,_e)}catch(Ct){console.warn(Ct);return}if(d.currentTime>o){console.warn("sample still loading:",b,j);return}if(!St){console.warn("no buffer source");return}St.playbackRate.value=Math.abs(pt)*St.playbackRate.value;let At=mt||$?c:St.buffer.duration;const Ot=dt*At;if(At=(gt-dt)*At/Math.abs(pt),mt||$?St.start(o,Ot):St.start(o,Ot,At),ft.push(St),mt||$){const Ct=d.createGain(),Dt=.1;Ct.gain.value=.6,Ct.gain.setValueAtTime(Ct.gain.value,o+At),Ct.gain.linearRampToValueAtTime(0,o+At+Dt),ft.push(Ct),St.stop(o+At+Dt)}else St.stop(o+At)}const Et=d.createGain();if(Et.gain.value=et,ft.push(Et),tt!==void 0&&ft.push(getFilter("lowpass",tt,nt)),st!==void 0&&ft.push(getFilter("highpass",st,rt)),it!==void 0&&ft.push(getFilter("bandpass",it,at)),ot!==void 0){const mt=d.createStereoPanner();mt.pan.value=2*ot-1,ft.push(mt)}ft.push(d.destination),ft.slice(1).reduce((mt,St)=>mt.connect(St),ft[0])}catch(d){console.warn(".out error:",d)}})};const{Pattern}=strudel;let webDirt;function loadWebDirt(o){webDirt=new WebDirtPacked.exports.WebDirt(o),webDirt.initializeWebAudio()}Pattern.prototype.webdirt=function(){return this._withHap(o=>{const e=async(s,a,c)=>{if(!webDirt)throw new Error("WebDirt not initialized!");const d=s-c,j=a.value||{},{s:_,n:b=0}=j,k=ln(j,["s","n"]);_||console.warn('Pattern.webdirt: no "s" was set!');const $=getLoadedSamples$1();if(!($!=null&&$[_])){webDirt.playSample(_t({s:_,n:b},k),d);return}if(!($!=null&&$[_]))console.warn(`Pattern.webdirt: sample "${_}" not found in loaded samples`,$);else{const _e=$[_],et=_e[b%_e.length],tt=getLoadedBuffer(et);if(!tt)console.log(`Pattern.webdirt: load ${_}:${b} from ${et}`),loadBuffer(et,webDirt.ac);else{const nt=_t({buffer:{buffer:tt}},k);webDirt.playSample(nt,d)}}};return o.setContext(wt(_t({},o.context),{onTrigger:e}))})};const defaultSynth=new Tone.PolySynth().chain(new Tone.Gain(.5),Tone.Destination).set({oscillator:{type:"triangle"},envelope:{release:.01}});evalScope(Tone,controls,__vitePreload(()=>Promise.resolve().then(function(){return strudel}),void 0),__vitePreload(()=>import("./index.d0f2e965.js"),[]),__vitePreload(()=>import("./index.7a89fbc1.js"),[]),__vitePreload(()=>import("./index.4b84cecb.js"),[]),__vitePreload(()=>import("./index.1bcaf8c1.js"),[]),__vitePreload(()=>import("./index.327a2669.js"),[]),__vitePreload(()=>import("./index.572a14d5.js"),[]),__vitePreload(()=>import("./osc.81bf0f44.js"),[]),__vitePreload(()=>import("./index.edd38eca.js"),[]));loadWebDirt({sampleMapUrl:"../EmuSP12.json",sampleFolder:"../EmuSP12"});function MiniRepl({tune:o}){return jsx(MiniRepl$1,{tune:o,defaultSynth,hideOutsideView:!0})}const layoutProps={},MDXLayout="wrapper";function MDXContent(s){var a=s,{components:o}=a,e=ln(a,["components"]);return createElement(MDXLayout,wt(_t(_t({},layoutProps),e),{components:o,mdxType:"MDXLayout"}),createElement("h1",{id:"table-of-contents"},createElement("a",{parentName:"h1","aria-hidden":"true",tabIndex:-1,href:"#table-of-contents"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Table of Contents"),createElement("ul",null,createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#what-is-strudel"},"What is Strudel?")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#show-me-a-demo"},"Show me a Demo")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#disclaimer"},"Disclaimer")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#mini-notation"},"Mini Notation")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#notes"},"Notes")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#sequences"},"Sequences")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#division"},"Division")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#angle-brackets"},"Angle Brackets")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#multiplication"},"Multiplication")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#bracket-nesting"},"Bracket Nesting")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#rests"},"Rests")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#parallel"},"Parallel")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#elongation"},"Elongation")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#replication"},"Replication")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#euclidian"},"Euclidian")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#mini-notation-todo"},"Mini Notation TODO")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#core-api"},"Core API")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#notes-1"},"Notes"))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#functions-that-create-patterns"},"Functions that create Patterns"))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#purevalue"},"pure(value)")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#catvalues"},"cat(...values)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#seqvalues"},"seq(...values)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#stackvalues"},"stack(...values)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#nesting-functions"},"Nesting functions")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#timecatweightvalue"},"timeCat(...","weight,value",")")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#polyrhythmvalues"},"polyrhythm(...","...values",")")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#pattern-modifier-functions"},"Pattern modifier functions")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#slowfactor"},"slow(factor)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#fastfactor"},"fast(factor)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#earlycycles"},"early(cycles)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#latecycles"},"late(cycles)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#rev"},"rev()")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#everyn-func"},"every(n, func)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#addn"},"add(n)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#subn"},"sub(n)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#muln"},"mul(n)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#divn"},"div(n)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#round"},"round()")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#structbinary_pat"},"struct(binary_pat)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#whenbinary_pat-func"},"when(binary_pat, func)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#superimposefunc"},"superimpose(...func)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#layerfunc"},"layer(...func)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#applyfunc"},"apply(func)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#offtime-func"},"off(time, func)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#stackpat"},"stack(pat)")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#tone-api"},"Tone API")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#toneinstrument"},"tone(instrument)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#sampler"},"sampler")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#players"},"players")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#out"},"out")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#volvolume"},"vol(volume)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#osctype"},"osc(type)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#lowpasscutoff"},"lowpass(cutoff)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#highpasscutoff"},"highpass(cutoff)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#adsr"},"adsr")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#tonal-api"},"Tonal API")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#transposesemitones"},"transpose(semitones)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#scalename"},"scale(name)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#scaletransposesteps"},"scaleTranspose(steps)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#voicingsrange"},"voicings(range?)")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#rootnotesoctave--2"},"rootNotes(octave = 2)")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#microtonal-api"},"Microtonal API"))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#midi-api"},"MIDI API")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#midioutputname"},"midi(outputName?)")))))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#contributing"},"Contributing"))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#api-docs"},"API Docs")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#pattern-factories"},"Pattern Factories")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#pure"},"pure")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#slowcat"},"slowcat")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#fastcat"},"fastcat")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#stack"},"stack")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#timecat"},"timeCat")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#pattern-modifiers"},"Pattern Modifiers")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#patternslow"},"Pattern.slow")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#patternfast"},"Pattern.fast")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#continuous-signals"},"Continuous Signals")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#saw"},"saw")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#sine"},"sine")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#cosine"},"cosine")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#tri"},"tri")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#square"},"square")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#using-samples-with-webdirt"},"Using Samples with Webdirt")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#patternwebdirt"},"Pattern.webdirt")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#using-superdirt-via-osc"},"Using Superdirt via OSC")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#getting-started"},"Getting Started")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#usage"},"Usage")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#patternosc"},"Pattern.osc")))))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#superdirt-params"},"Superdirt Params")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#basic-types"},"Basic Types")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#s"},"s")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#n"},"n")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#freq"},"freq")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#channel"},"channel")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#orbit"},"orbit")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#filters"},"Filters")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#cutoff"},"cutoff")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#resonance"},"resonance")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#hcutoff"},"hcutoff")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#hresonance"},"hresonance")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#bandf"},"bandf")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#bandq"},"bandq")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#djf"},"djf")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#vowel"},"vowel")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#sample-editing"},"Sample Editing")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#cut"},"cut")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#begin"},"begin")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#end"},"end")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#loop"},"loop")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#speed"},"speed")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#unit"},"unit")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#audio-effects"},"Audio Effects")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#gain"},"gain")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#amp"},"amp")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#accelerate"},"accelerate")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#crush"},"crush")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#coarse"},"coarse")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#leslie"},"leslie")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#lrate"},"lrate")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#lsize"},"lsize")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#pan"},"pan")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#room"},"room")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#size"},"size")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#dry"},"dry")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#shape"},"shape")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#squiz"},"squiz")))),createElement("li",{parentName:"ul"},createElement("p",{parentName:"li"},createElement("a",{parentName:"p",href:"#synth-effects"},"Synth Effects")),createElement("ul",{parentName:"li"},createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#octave"},"octave")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"#detune"},"detune"))))))),createElement("h1",{id:"what-is-strudel"},createElement("a",{parentName:"h1","aria-hidden":"true",tabIndex:-1,href:"#what-is-strudel"},createElement("span",{parentName:"a",className:"icon icon-link"})),"What is Strudel?"),createElement("p",null,`With Strudel, you can expressively write dynamic music pieces. It aims to be `,createElement("a",{parentName:"p",href:"https://tidalcycles.org/"},"Tidal Cycles")," for JavaScript (started by the same author)."),createElement("p",null,"You don't need to know JavaScript or Tidal Cycles to make music with Strudel."),createElement("p",null,"This interactive tutorial will guide you through the basics of Strudel."),createElement("p",null,"The best place to actually make music with Strudel is the ",createElement("a",{parentName:"p",href:"https://strudel.tidalcycles.org/"},"Strudel REPL"),"."),createElement("h2",{id:"show-me-a-demo"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#show-me-a-demo"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Show me a Demo"),createElement("p",null,"To get a taste of what Strudel can do, check out this track:"),createElement(MiniRepl,{tune:`const delay = new FeedbackDelay(1/8, .4).chain(vol(0.5), out()); const kick = new MembraneSynth().chain(vol(.8), out()); const snare = new NoiseSynth().chain(vol(.8), out()); @@ -364,7 +368,7 @@ The first parameter controls how may beats will be played. The second parameter controls the total amount of segments the beats will be distributed over. The third (optional) parameter controls the starting position for distributing the beats. One popular Euclidian rhythm (going by various names, such as "Pop Clave") is "(3,8,1)" or simply "(3,8)", -resulting in a rhythmical structure of "x ~ ~ x ~ ~ x ~" (3 beats over 8 segments, starting on position 1).`),createElement(MiniRepl,{tune:'"e5(2,8) b4(3,8) d5(2,8) c5(3,8)".slow(4)',mdxType:"MiniRepl"}),createElement("h2",{id:"mini-notation-todo"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#mini-notation-todo"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Mini Notation TODO"),createElement("p",null,"Compared to ",createElement("a",{parentName:"p",href:"https://tidalcycles.org/docs/patternlib/tutorials/mini_notation/"},"tidal mini notation"),", the following mini notation features are missing from Strudel:"),createElement("ul",{className:"contains-task-list"},createElement("li",{parentName:"ul",className:"task-list-item"},createElement("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ",'Tie symbols "',"_",'"'),createElement("li",{parentName:"ul",className:"task-list-item"},createElement("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ",'feet marking "."'),createElement("li",{parentName:"ul",className:"task-list-item"},createElement("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ",'random choice "|"'),createElement("li",{parentName:"ul",className:"task-list-item"},createElement("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ",'Random removal "?"'),createElement("li",{parentName:"ul",className:"task-list-item"},createElement("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ",'Polymetric sequences "{ ... }"'),createElement("li",{parentName:"ul",className:"task-list-item"},createElement("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ",'Fixed steps using "%"')),createElement("br",null),createElement("h1",{id:"core-api"},createElement("a",{parentName:"h1","aria-hidden":"true",tabIndex:-1,href:"#core-api"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Core API"),createElement("p",null,`While the mini notation is powerful on its own, there is much more to discover. +resulting in a rhythmical structure of "x ~ ~ x ~ ~ x ~" (3 beats over 8 segments, starting on position 1).`),createElement(MiniRepl,{tune:'"e5(2,8) b4(3,8) d5(2,8) c5(3,8)".slow(4)',mdxType:"MiniRepl"}),createElement("h2",{id:"mini-notation-todo"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#mini-notation-todo"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Mini Notation TODO"),createElement("p",null,"Compared to ",createElement("a",{parentName:"p",href:"https://tidalcycles.org/docs/patternlib/tutorials/mini_notation/"},"tidal mini notation"),", the following mini notation features are missing from Strudel:"),createElement("ul",{className:"contains-task-list"},createElement("li",{parentName:"ul",className:"task-list-item"},createElement("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ",'Tie symbols "',"_",'"'),createElement("li",{parentName:"ul",className:"task-list-item"},createElement("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ",'feet marking "."'),createElement("li",{parentName:"ul",className:"task-list-item"},createElement("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ",'Polymetric sequences "{ ... }"'),createElement("li",{parentName:"ul",className:"task-list-item"},createElement("input",{parentName:"li",type:"checkbox",checked:!1,disabled:!0})," ",'Fixed steps using "%"')),createElement("br",null),createElement("h1",{id:"core-api"},createElement("a",{parentName:"h1","aria-hidden":"true",tabIndex:-1,href:"#core-api"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Core API"),createElement("p",null,`While the mini notation is powerful on its own, there is much more to discover. Internally, the mini notation will expand to use the actual functional JavaScript API.`),createElement("h2",{id:"notes-1"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#notes-1"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Notes"),createElement("p",null,"Notes are automatically available as variables:"),createElement(MiniRepl,{tune:"seq(d4, fs4, a4)",mdxType:"MiniRepl"}),createElement("p",null,`An important difference to the mini notation: For sharp notes, the letter "s" is used instead of "#", because JavaScript does not support "#" in a variable name.`),createElement("p",null,"The above is the same as:"),createElement(MiniRepl,{tune:"seq('d4', 'f#4', 'a4')",mdxType:"MiniRepl"}),createElement("p",null,'Using strings, you can also use "#".'),createElement("h2",{id:"functions-that-create-patterns"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#functions-that-create-patterns"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Functions that create Patterns"),createElement("p",null,"The following functions will return a pattern. We will see later what that means."),createElement("h2",{id:"purevalue"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#purevalue"},createElement("span",{parentName:"a",className:"icon icon-link"})),"pure(value)"),createElement("p",null,"To create a pattern from a value, you can wrap the value in pure:"),createElement(MiniRepl,{tune:"pure('e4')",mdxType:"MiniRepl"}),createElement("p",null,"Most of the time, you won't need that function as input values of pattern creating functions are purified by default."),createElement("h3",{id:"catvalues"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#catvalues"},createElement("span",{parentName:"a",className:"icon icon-link"})),"cat(...values)"),createElement("p",null,"The given items are con",createElement("strong",{parentName:"p"},"cat"),"enated, where each one takes one cycle:"),createElement(MiniRepl,{tune:"cat(e5, b4, [d5, c5])",mdxType:"MiniRepl"}),createElement("ul",null,createElement("li",{parentName:"ul"},"Square brackets will create a subsequence"),createElement("li",{parentName:"ul"},"The function ",createElement("strong",{parentName:"li"},"slowcat")," does the same as ",createElement("strong",{parentName:"li"},"cat"),".")),createElement("h3",{id:"seqvalues"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#seqvalues"},createElement("span",{parentName:"a",className:"icon icon-link"})),"seq(...values)"),createElement("p",null,"Like ",createElement("strong",{parentName:"p"},"cat"),", but the items are crammed into one cycle:"),createElement(MiniRepl,{tune:"seq(e5, b4, [d5, c5])",mdxType:"MiniRepl"}),createElement("ul",null,createElement("li",{parentName:"ul"},"Synonyms: ",createElement("strong",{parentName:"li"},"fastcat"),", ",createElement("strong",{parentName:"li"},"sequence"))),createElement("h3",{id:"stackvalues"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#stackvalues"},createElement("span",{parentName:"a",className:"icon icon-link"})),"stack(...values)"),createElement("p",null,"The given items are played at the same time at the same length:"),createElement(MiniRepl,{tune:"stack(g3, b3, [e4, d4])",mdxType:"MiniRepl"}),createElement("ul",null,createElement("li",{parentName:"ul"},"Square Brackets will create a subsequence")),createElement("h3",{id:"nesting-functions"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#nesting-functions"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Nesting functions"),createElement("p",null,"You can nest functions inside one another:"),createElement(MiniRepl,{tune:`cat( stack(g3,b3,e4), @@ -430,4 +434,4 @@ All you need is a github account.`),createElement("p",null,"If you want to run t They can provide streams of numbers that can be sampled at discrete points in time.`),createElement("h3",{id:"saw"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#saw"},createElement("span",{parentName:"a",className:"icon icon-link"})),"saw"),createElement("p",null,"A sawtooth signal between 0 and 1."),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'"c3 [eb3,g3] g2 [g3,bb3]".legato(saw.slow(4))',mdxType:"MiniRepl"}),createElement(MiniRepl,{tune:"saw.range(0,8).segment(8).scale('C major').slow(4)",mdxType:"MiniRepl"})),createElement("h3",{id:"sine"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#sine"},createElement("span",{parentName:"a",className:"icon icon-link"})),"sine"),createElement("p",null,"A sine signal between 0 and 1."),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:"sine.segment(16).range(0,15).slow(2).scale('C minor')",mdxType:"MiniRepl"})),createElement("h3",{id:"cosine"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#cosine"},createElement("span",{parentName:"a",className:"icon icon-link"})),"cosine"),createElement("p",null,"A cosine signal between 0 and 1."),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:"stack(sine,cosine).segment(16).range(0,15).slow(2).scale('C minor')",mdxType:"MiniRepl"})),createElement("h3",{id:"tri"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#tri"},createElement("span",{parentName:"a",className:"icon icon-link"})),"tri"),createElement("p",null,"A triangle signal between 0 and 1."),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:"triangle.segment(2).range(0,7).scale('C minor')",mdxType:"MiniRepl"})),createElement("h3",{id:"square"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#square"},createElement("span",{parentName:"a",className:"icon icon-link"})),"square"),createElement("p",null,"A square signal between 0 and 1."),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:"square.segment(2).range(0,7).scale('C minor')",mdxType:"MiniRepl"})),createElement("h2",{id:"using-samples-with-webdirt"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#using-samples-with-webdirt"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Using Samples with Webdirt"),createElement("p",null,"You can use the powerful sampling engine ",createElement("a",{parentName:"p",href:"https://github.com/dktr0/WebDirt"},"Webdirt")," with Strudel."),createElement("h3",{id:"patternwebdirt"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#patternwebdirt"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Pattern.webdirt"),createElement("p",null,"Uses ",createElement("a",{href:"https://github.com/dktr0/WebDirt"},"webdirt")," as output."),createElement("details",null,createElement("summary",null,"show supported Webdirt controls"),createElement("ul",null,createElement("li",null,"s :: String, -- name of sample bank"),createElement("li",null,"n :: Int, -- number of sample within a bank"),createElement("li",null,createElement("a",{href:"#gain"},"gain")," :: Number, -- clamped from 0 to 2; 1 is default and full-scale"),createElement("li",null,"overgain :: Number, -- additional gain added to gain to go past clamp at 2"),createElement("li",null,createElement("a",{href:"#pan"},"pan")," :: Number, -- range: 0 to 1"),createElement("li",null,"nudge :: Number, -- nudge the time of the sample forwards/backwards in seconds"),createElement("li",null,createElement("a",{href:"#speed"},"speed")," :: Number, -- speed / pitch of the sample"),createElement("li",null,createElement("a",{href:"#unit"},"unit")," :: String"),createElement("li",null,"note :: Number, -- pitch offset in semitones"),createElement("li",null,createElement("a",{href:"#begin"},"begin")," :: Number, -- cut from sample start, normalized"),createElement("li",null,createElement("a",{href:"#end"},"end")," :: Number, -- cut from sample end, normalized"),createElement("li",null,createElement("a",{href:"#cut"},"cut")," :: Int, -- samples with same cut number will interupt each other"),createElement("li",null,createElement("a",{href:"#cutoff"},"cutoff")," :: Number, -- lowpass filter frequency"),createElement("li",null,createElement("a",{href:"#resonance"},"resonance")," :: Number, -- lowpass filter resonance"),createElement("li",null,createElement("a",{href:"#hcutoff"},"hcutoff")," :: Number, -- highpass filter frequency"),createElement("li",null,createElement("a",{href:"#hresonance"},"hresonance")," :: Number, -- highpass filter resonance"),createElement("li",null,createElement("a",{href:"#bandf"},"bandf")," :: Number, -- bandpass filter frequency"),createElement("li",null,createElement("a",{href:"#bandq"},"bandq")," :: Number, -- bandpass filter resonance"),createElement("li",null,createElement("a",{href:"#vowel"},"vowel")," :: String, -- name of vowel ('a' | 'e' | 'i' | 'o' | 'u')"),createElement("li",null,"delay :: Number, -- delay wet/dry mix"),createElement("li",null,"delaytime :: Number, -- delay time in seconds"),createElement("li",null,"delayfeedback :: Number, -- delay feedback"),createElement("li",null,createElement("a",{href:"#loop"},"loop")," :: Number, -- loop sample n times (relative to sample length)"),createElement("li",null,createElement("a",{href:"#crush"},"crush")," :: Number, -- bitcrusher (currently not working)"),createElement("li",null,createElement("a",{href:"#coarse"},"coarse")," :: Number, -- coarse effect (currently not working)"),createElement("li",null,createElement("a",{href:"#shape"},"shape")," :: Number, -- (currently not working)"))),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd*2 hh sd hh").n("<0 1>").webdirt()',mdxType:"MiniRepl"})),createElement("h2",{id:"using-superdirt-via-osc"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#using-superdirt-via-osc"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Using Superdirt via OSC"),createElement("p",null,`In mainline tidal, the actual sound is generated via Superdirt, which runs inside Supercollider. Strudel also supports using Superdirt as a backend, although it requires some developer tooling to run.`),createElement("h3",{id:"getting-started"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#getting-started"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Getting Started"),createElement("p",null,"Getting Superdirt to work with Strudel, you need to"),createElement("ol",null,createElement("li",{parentName:"ol"},"install SuperCollider + sc3 plugins, see ",createElement("a",{parentName:"li",href:"https://tidalcycles.org/docs/"},"Tidal Docs")," (Install Tidal) for more info."),createElement("li",{parentName:"ol"},"install ",createElement("a",{parentName:"li",href:"https://nodejs.org/en/"},"node.js")),createElement("li",{parentName:"ol"},"download ",createElement("a",{parentName:"li",href:"https://github.com/tidalcycles/strudel/"},"Strudel Repo")," (or git clone, if you have git installed)"),createElement("li",{parentName:"ol"},"run ",createElement("inlineCode",{parentName:"li"},"npm i")," in the strudel directory"),createElement("li",{parentName:"ol"},"run ",createElement("inlineCode",{parentName:"li"},"npm run osc")," to start the osc server, which forwards OSC messages from Strudel REPL to SuperCollider")),createElement("p",null,"Now you're all set!"),createElement("h3",{id:"usage"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#usage"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Usage"),createElement("ol",null,createElement("li",{parentName:"ol"},"Start SuperCollider, either using SuperCollider IDE or by running ",createElement("inlineCode",{parentName:"li"},"sclang")," in a terminal"),createElement("li",{parentName:"ol"},"Open the ",createElement("a",{parentName:"li",href:"https://strudel.tidalcycles.org/#cygiYmQgc2QiKS5vc2MoKQ%3D%3D"},"Strudel REPL"))),createElement("p",null,"...or test it here:"),createElement(MiniRepl,{tune:'s("bd sd").osc()',mdxType:"MiniRepl"}),createElement("p",null,"If you now hear sound, congratulations! If not, you can get help on the ",createElement("a",{parentName:"p",href:"https://discord.com/invite/HGEdXmRkzT"},"#strudel channel in the TidalCycles discord"),"."),createElement("h3",{id:"patternosc"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#patternosc"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Pattern.osc"),createElement("p",null,"Sends each hap as an OSC message, which can be picked up by SuperCollider or any other OSC-enabled software."),createElement("h1",{id:"superdirt-params"},createElement("a",{parentName:"h1","aria-hidden":"true",tabIndex:-1,href:"#superdirt-params"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Superdirt Params"),createElement("p",null,"The following functions are specific to SuperDirt and won't work with other Strudel outputs."),createElement("h2",{id:"basic-types"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#basic-types"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Basic Types"),createElement("h3",{id:"s"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#s"},createElement("span",{parentName:"a",className:"icon icon-link"})),"s"),createElement("p",null,"Select a sound / sample by name."),createElement("details",null,createElement("summary",null,"show all sounds"),createElement("p",null,"808 (6) 808bd (25) 808cy (25) 808hc (5) 808ht (5) 808lc (5) 808lt (5) 808mc (5) 808mt (5) 808oh (5) 808sd (25) 909 (1) ab (12) ade (10) ades2 (9) ades3 (7) ades4 (6) alex (2) alphabet (26) amencutup (32) armora (7) arp (2) arpy (11) auto (11) baa (7) baa2 (7) bass (4) bass0 (3) bass1 (30) bass2 (5) bass3 (11) bassdm (24) bassfoo (3) battles (2) bd (24) bend (4) bev (2) bin (2) birds (10) birds3 (19) bleep (13) blip (2) blue (2) bottle (13) breaks125 (2) breaks152 (1) breaks157 (1) breaks165 (1) breath (1) bubble (8) can (14) casio (3) cb (1) cc (6) chin (4) circus (3) clak (2) click (4) clubkick (5) co (4) coins (1) control (2) cosmicg (15) cp (2) cr (6) crow (4) d (4) db (13) diphone (38) diphone2 (12) dist (16) dork2 (4) dorkbot (2) dr (42) dr2 (6) dr55 (4) dr_few (8) drum (6) drumtraks (13) e (8) east (9) electro1 (13) em2 (6) erk (1) f (1) feel (7) feelfx (8) fest (1) fire (1) flick (17) fm (17) foo (27) future (17) gab (10) gabba (4) gabbaloud (4) gabbalouder (4) glasstap (3) glitch (8) glitch2 (8) gretsch (24) gtr (3) h (7) hand (17) hardcore (12) hardkick (6) haw (6) hc (6) hh (13) hh27 (13) hit (6) hmm (1) ho (6) hoover (6) house (8) ht (16) if (5) ifdrums (3) incoming (8) industrial (32) insect (3) invaders (18) jazz (8) jungbass (20) jungle (13) juno (12) jvbass (13) kicklinn (1) koy (2) kurt (7) latibro (8) led (1) less (4) lighter (33) linnhats (6) lt (16) made (7) made2 (1) mash (2) mash2 (4) metal (10) miniyeah (4) monsterb (6) moog (7) mouth (15) mp3 (4) msg (9) mt (16) mute (28) newnotes (15) noise (1) noise2 (8) notes (15) numbers (9) oc (4) odx (15) off (1) outdoor (6) pad (3) padlong (1) pebbles (1) perc (6) peri (15) pluck (17) popkick (10) print (11) proc (2) procshort (8) psr (30) rave (8) rave2 (4) ravemono (2) realclaps (4) reverbkick (1) rm (2) rs (1) sax (22) sd (2) seawolf (3) sequential (8) sf (18) sheffield (1) short (5) sid (12) sine (6) sitar (8) sn (52) space (18) speakspell (12) speech (7) speechless (10) speedupdown (9) stab (23) stomp (10) subroc3d (11) sugar (2) sundance (6) tabla (26) tabla2 (46) tablex (3) tacscan (22) tech (13) techno (7) tink (5) tok (4) toys (13) trump (11) ul (10) ulgab (5) uxay (3) v (6) voodoo (5) wind (10) wobble (1) world (3) xmas (1) yeah (31)"),createElement("p",null,createElement("a",{href:"https://tidalcycles.org/docs/configuration/Audio%20Samples/default_library",target:"_blank"},"more info"))),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"sound (string|Pattern): The sound / pattern of sounds to pick")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd hh").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"n"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#n"},createElement("span",{parentName:"a",className:"icon icon-link"})),"n"),createElement("p",null,"The note or sample number to choose for a synth or sampleset Note names currently not working yet, but will hopefully soon. Just stick to numbers for now"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"value (string|number|Pattern): note name, note number or sample number")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:`s('superpiano').n("<0 1 2 3>").osc()`,mdxType:"MiniRepl"}),createElement(MiniRepl,{tune:`s('superpiano').n("").osc()`,mdxType:"MiniRepl"}),createElement(MiniRepl,{tune:`n("0 1 2 3").s('east').osc()`,mdxType:"MiniRepl"})),createElement("h3",{id:"freq"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#freq"},createElement("span",{parentName:"a",className:"icon icon-link"})),"freq"),createElement("p",null,"Set frequency of sound."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"frequency (number|Pattern): in Hz. the audible range is between 20 and 20000 Hz")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'freq("220 110 440 110").s("superzow").osc()',mdxType:"MiniRepl"}),createElement(MiniRepl,{tune:'freq("110".mulOut(".5 1.5 .6 [2 3]")).s("superzow").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"channel"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#channel"},createElement("span",{parentName:"a",className:"icon icon-link"})),"channel"),createElement("p",null,"choose the channel the pattern is sent to in superdirt"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"channel (number|Pattern): channel number")),createElement("h3",{id:"orbit"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#orbit"},createElement("span",{parentName:"a",className:"icon icon-link"})),"orbit"),createElement("p",null,"a pattern of numbers. An ",createElement("code",null,"orbit")," is a global parameter context for patterns. Patterns with the same orbit will share hardware output bus offset and global effects, e.g. reverb and delay. The maximum number of orbits is specified in the superdirt startup, numbers higher than maximum will wrap around."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"number (number|Pattern): undefined")),createElement("h2",{id:"filters"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#filters"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Filters"),createElement("h3",{id:"cutoff"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#cutoff"},createElement("span",{parentName:"a",className:"icon icon-link"})),"cutoff"),createElement("p",null,"Applies the cutoff frequency of the low-pass filter."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"frequency (number|Pattern): audible between 0 and 20000")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd,hh*2,<~ sd>").fast(2).cutoff("<4000 2000 1000 500 200 100>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"resonance"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#resonance"},createElement("span",{parentName:"a",className:"icon icon-link"})),"resonance"),createElement("p",null,"Applies the cutoff frequency of the low-pass filter."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"q (number|Pattern): resonance factor between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd,hh*2,<~ sd>").fast(2).cutoff(2000).resonance("<0 .2 .4 .6>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"hcutoff"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#hcutoff"},createElement("span",{parentName:"a",className:"icon icon-link"})),"hcutoff"),createElement("p",null,"Applies the cutoff frequency of the high-pass filter."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"frequency (number|Pattern): audible between 0 and 20000")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd,hh*2,<~ sd>").fast(2).hcutoff("<4000 2000 1000 500 200 100>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"hresonance"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#hresonance"},createElement("span",{parentName:"a",className:"icon icon-link"})),"hresonance"),createElement("p",null,"Applies the cutoff frequency of the high-pass filter."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"q (number|Pattern): resonance factor between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd,hh*2,<~ sd>").fast(2).hcutoff(2000).hresonance("<0 .2 .4 .6>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"bandf"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#bandf"},createElement("span",{parentName:"a",className:"icon icon-link"})),"bandf"),createElement("p",null,"Sets the center frequency of the band-pass filter."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"frequency (number|Pattern): center frequency")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd sd").bandf("<1000 2000 4000 8000>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"bandq"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#bandq"},createElement("span",{parentName:"a",className:"icon icon-link"})),"bandq"),createElement("p",null,"Sets the q-factor of the band-pass filter"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"q (number|Pattern): q factor")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd sd").bandf(2000).bandq("<.2 .9>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"djf"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#djf"},createElement("span",{parentName:"a",className:"icon icon-link"})),"djf"),createElement("p",null,"Set detune of oscillators. Works only with some synths, see ",createElement("a",{target:"_blank",href:"https://tidalcycles.org/docs/patternlib/tutorials/synthesizers"},"tidal doc")),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"cutoff (number|Pattern): below 0.5 is low pass filter, above is high pass filter")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:`n("0 3 7 [10,24]").s('superzow').octave(3).djf("<.5 .25 .5 .75>").osc()`,mdxType:"MiniRepl"})),createElement("h3",{id:"vowel"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#vowel"},createElement("span",{parentName:"a",className:"icon icon-link"})),"vowel"),createElement("p",null,"Formant filter to make things sound like vowels."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"vowel (string|Pattern): You can use a e i o u. Use a rest (~) to override the effect")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:`vowel("a e i [o u]").slow(2) .n("<[0,7]!4 [2,7]!4>") -.s('supersquare').osc()`,mdxType:"MiniRepl"})),createElement("h2",{id:"sample-editing"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#sample-editing"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Sample Editing"),createElement("h3",{id:"cut"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#cut"},createElement("span",{parentName:"a",className:"icon icon-link"})),"cut"),createElement("p",null,"In the style of classic drum-machines, ",createElement("code",null,"cut")," will stop a playing sample as soon as another samples with in same cutgroup is to be played. An example would be an open hi-hat followed by a closed one, essentially muting the open."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"group (number|Pattern): cut group number")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd sax").cut(1).osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"begin"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#begin"},createElement("span",{parentName:"a",className:"icon icon-link"})),"begin"),createElement("p",null,"a pattern of numbers from 0 to 1. Skips the beginning of each sample, e.g. ",createElement("code",null,"0.25")," to cut off the first quarter from each sample."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"amount (number|Pattern): between 0 and 1, where 1 is the length of the sample")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("rave").begin("<0 .25 .5 .75>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"end"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#end"},createElement("span",{parentName:"a",className:"icon icon-link"})),"end"),createElement("p",null,"The same as ",createElement("a",{href:"#begin"},"begin"),", but cuts off the end off each sample."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"length (number|Pattern): 1 = whole sample, .5 = half sample, .25 = quarter sample etc..")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd*2,ho*4").end("<.1 .2 .5 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"loop"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#loop"},createElement("span",{parentName:"a",className:"icon icon-link"})),"loop"),createElement("p",null,"Loops the sample (from ",createElement("code",null,"begin")," to ",createElement("code",null,"end"),") the specified number of times. Note that the tempo of the loop is not synced with the cycle tempo."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"times (number|Pattern): How often the sample is looped")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd").loop("<1 2 3 4>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"speed"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#speed"},createElement("span",{parentName:"a",className:"icon icon-link"})),"speed"),createElement("p",null,"Changes the speed of sample playback, i.e. a cheap way of changing pitch."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"speed (number|Pattern): inf to inf, negative numbers play the sample backwards.")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd").speed("<1 2 4 1 -2 -4>").osc()',mdxType:"MiniRepl"}),createElement(MiniRepl,{tune:'speed("1 1.5*2 [2 1.1]").s("sax").cut(1).osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"unit"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#unit"},createElement("span",{parentName:"a",className:"icon icon-link"})),"unit"),createElement("p",null,"Used in conjunction with ",createElement("a",{href:"#speed"},"speed"),', accepts values of "r" (rate, default behavior), "c" (cycles), or "s" (seconds). Using ',createElement("code",null,'unit "c"')," means ",createElement("code",null,"speed")," will be interpreted in units of cycles, e.g. ",createElement("code",null,'speed "1"')," means samples will be stretched to fill a cycle. Using ",createElement("code",null,'unit "s"')," means the playback speed will be adjusted so that the duration is the number of seconds specified by ",createElement("code",null,"speed"),"."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"unit (number|string|Pattern): see description above")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'speed("1 2 .5 3").s("bd").unit("c").osc()',mdxType:"MiniRepl"})),createElement("h2",{id:"audio-effects"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#audio-effects"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Audio Effects"),createElement("h3",{id:"gain"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#gain"},createElement("span",{parentName:"a",className:"icon icon-link"})),"gain"),createElement("p",null,"Like ",createElement("a",{href:"#amp"},"amp"),", but exponential."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"amount (number|Pattern): gain.")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd*8").gain(".7*2 1 .7*2 1 .7 1").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"amp"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#amp"},createElement("span",{parentName:"a",className:"icon icon-link"})),"amp"),createElement("p",null,"Like ",createElement("a",{href:"#gain"},"gain"),", but linear."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"amount (number|Pattern): gain.")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd*8").amp(".1*2 .5 .1*2 .5 .1 .5").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"accelerate"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#accelerate"},createElement("span",{parentName:"a",className:"icon icon-link"})),"accelerate"),createElement("p",null,"A pattern of numbers that speed up (or slow down) samples while they play. Currently only supported by osc / superdirt."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"amount (number|Pattern): acceleration.")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("sax").accelerate("<0 1 2 4 8 16>").slow(2).osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"crush"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#crush"},createElement("span",{parentName:"a",className:"icon icon-link"})),"crush"),createElement("p",null,"bit crusher effect."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"depth (number|Pattern): between 1 (for drastic reduction in bit-depth) to 16 (for barely no reduction).")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s(",hh*3,jvbass*2").fast(2).crush("<16 8 7 6 5 4 3 2>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"coarse"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#coarse"},createElement("span",{parentName:"a",className:"icon icon-link"})),"coarse"),createElement("p",null,"fake-resampling for lowering the sample rate"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"factor (number|Pattern): 1 for original 2 for half, 3 for a third and so on.")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("xmas").coarse("<1 4 8 16 32>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"leslie"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#leslie"},createElement("span",{parentName:"a",className:"icon icon-link"})),"leslie"),createElement("p",null,"Emulation of a Leslie speaker: speakers rotating in a wooden amplified cabinet."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"wet (number|Pattern): between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'n("0,4,7").s("supersquare").leslie("<0 .4 .6 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"lrate"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#lrate"},createElement("span",{parentName:"a",className:"icon icon-link"})),"lrate"),createElement("p",null,"Rate of modulation / rotation for leslie effect"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"rate (number|Pattern): 6.7 for fast, 0.7 for slow")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'n("0,4,7").s("supersquare").leslie(1).lrate("<1 2 4 8>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"lsize"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#lsize"},createElement("span",{parentName:"a",className:"icon icon-link"})),"lsize"),createElement("p",null,"Physical size of the cabinet in meters. Be careful, it might be slightly larger than your computer. Affects the Doppler amount (pitch warble)"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"meters (number|Pattern): somewhere between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'n("0,4,7").s("supersquare").leslie(1).lrate(2).lsize("<.1 .5 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"pan"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#pan"},createElement("span",{parentName:"a",className:"icon icon-link"})),"pan"),createElement("p",null,"Sets position in stereo."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"pan (number|Pattern): between 0 and 1, from left to right (assuming stereo), once round a circle (assuming multichannel)")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("[bd hh]*2").pan("<.5 1 .5 0>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"room"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#room"},createElement("span",{parentName:"a",className:"icon icon-link"})),"room"),createElement("p",null,"Sets the level of reverb."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"level (number|Pattern): between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd sd").room("<0 .2 .4 .6 .8 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"size"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#size"},createElement("span",{parentName:"a",className:"icon icon-link"})),"size"),createElement("p",null,"Sets the room size of the reverb, see ",createElement("a",{href:"#room"},"room"),"."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"size (number|Pattern): between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd sd").room(.8).size("<0 .2 .4 .6 .8 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"dry"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#dry"},createElement("span",{parentName:"a",className:"icon icon-link"})),"dry"),createElement("p",null,"Set dryness of reverb. See ",createElement("a",{href:"#room"},"room")," and ",createElement("a",{href:"#size"},"size")," for more information about reverb."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"dry (number|Pattern): 0 = wet, 1 = dry")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'n("[0,3,7](3,8)").s("superpiano").room(.7).dry("<0 .5 .75 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"shape"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#shape"},createElement("span",{parentName:"a",className:"icon icon-link"})),"shape"),createElement("p",null,"Wave shaping distortion. CAUTION: it might get loud"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"distortion (number|Pattern): between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd sd").shape("<0 .2 .4 .6 .8 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"squiz"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#squiz"},createElement("span",{parentName:"a",className:"icon icon-link"})),"squiz"),createElement("p",null,"Made by Calum Gunn. Reminiscent of some weird mixture of filter, ring-modulator and pitch-shifter. The SuperCollider manual defines Squiz as:"),createElement("p",null,`"A simplistic pitch-raising algorithm. It's not meant to sound natural; its sound is reminiscent of some weird mixture of filter, ring-modulator and pitch-shifter, depending on the input. The algorithm works by cutting the signal into fragments (delimited by upwards-going zero-crossings) and squeezing those fragments in the time domain (i.e. simply playing them back faster than they came in), leaving silences inbetween. All the parameters apart from memlen can be modulated."`),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"squiz (number|Pattern): Try passing multiples of 2 to it - 2, 4, 8 etc.")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'squiz("2 4/2 6 [8 16]").s("bd").osc()',mdxType:"MiniRepl"})),createElement("h2",{id:"synth-effects"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#synth-effects"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Synth Effects"),createElement("h3",{id:"octave"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#octave"},createElement("span",{parentName:"a",className:"icon icon-link"})),"octave"),createElement("p",null,"Sets the default octave of a synth."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"octave (number|Pattern): octave number")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:`n("0,4,7").s('supersquare').octave("<3 4 5 6>").osc()`,mdxType:"MiniRepl"})),createElement("h3",{id:"detune"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#detune"},createElement("span",{parentName:"a",className:"icon icon-link"})),"detune"),createElement("p",null,"Set detune of oscillators. Works only with some synths, see ",createElement("a",{target:"_blank",href:"https://tidalcycles.org/docs/patternlib/tutorials/synthesizers"},"tidal doc")),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"amount (number|Pattern): between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:`n("0 3 7").s('superzow').octave(3).detune("<0 .25 .5 1 2>").osc()`,mdxType:"MiniRepl"})))}MDXContent.isMDXComponent=!0;var style$1="",style="";ReactDOM.render(jsx(React.StrictMode,{children:jsxs("div",{className:"min-h-screen",children:[jsx("header",{className:"flex-none flex justify-start sticky top-0 z-[2] w-full h-16 px-2 items-center border-b border-gray-200 bg-white",children:jsxs("div",{className:"p-4 w-full flex justify-between",children:[jsxs("div",{className:"flex items-center space-x-2",children:[jsx("img",{src:"https://tidalcycles.org/img/logo.svg",className:"Tidal-logo w-10 h-10",alt:"logo"}),jsx("h1",{className:"text-xl cursor-pointer",onClick:()=>window.scrollTo(0,0),children:"Strudel Tutorial"})]}),!window.location.href.includes("localhost")&&jsx("div",{className:"flex space-x-4",children:jsx("a",{href:"../",children:"go to REPL"})})]})}),jsx("main",{className:"p-4 pl-6 max-w-3xl prose",children:jsx(MDXContent,{})})]})}),document.getElementById("root"));export{reify$1 as A,stack as B,strudel as C,enableWebMidi as D,TimeSpan$1 as E,getAudioContext as F,getCachedBuffer as G,Hap as H,loadBuffer as I,getLoadedBuffer as J,loadGithubSamples as K,samples as L,resetLoadedSamples as M,getLoadedSamples$1 as N,loadWebDirt as O,Pattern$5 as P,State$1 as S,Tone as T,WebMidi as W,amsynth as a,metal as b,monosynth as c,duosynth as d,polysynth as e,fmsynth as f,getDefaultSynth as g,players as h,synth as i,piano as j,highpass as k,lowpass as l,membrane as m,noise as n,adsr as o,pluck as p,osc as q,out as r,sampler as s,getDrawContext$1 as t,cleanupDraw as u,vol as v,mod as w,getAugmentedNamespace as x,commonjsGlobal as y,getDefaultExportFromCjs as z}; +.s('supersquare').osc()`,mdxType:"MiniRepl"})),createElement("h2",{id:"sample-editing"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#sample-editing"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Sample Editing"),createElement("h3",{id:"cut"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#cut"},createElement("span",{parentName:"a",className:"icon icon-link"})),"cut"),createElement("p",null,"In the style of classic drum-machines, ",createElement("code",null,"cut")," will stop a playing sample as soon as another samples with in same cutgroup is to be played. An example would be an open hi-hat followed by a closed one, essentially muting the open."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"group (number|Pattern): cut group number")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd sax").cut(1).osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"begin"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#begin"},createElement("span",{parentName:"a",className:"icon icon-link"})),"begin"),createElement("p",null,"a pattern of numbers from 0 to 1. Skips the beginning of each sample, e.g. ",createElement("code",null,"0.25")," to cut off the first quarter from each sample."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"amount (number|Pattern): between 0 and 1, where 1 is the length of the sample")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("rave").begin("<0 .25 .5 .75>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"end"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#end"},createElement("span",{parentName:"a",className:"icon icon-link"})),"end"),createElement("p",null,"The same as ",createElement("a",{href:"#begin"},"begin"),", but cuts off the end off each sample."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"length (number|Pattern): 1 = whole sample, .5 = half sample, .25 = quarter sample etc..")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd*2,ho*4").end("<.1 .2 .5 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"loop"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#loop"},createElement("span",{parentName:"a",className:"icon icon-link"})),"loop"),createElement("p",null,"Loops the sample (from ",createElement("code",null,"begin")," to ",createElement("code",null,"end"),") the specified number of times. Note that the tempo of the loop is not synced with the cycle tempo."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"times (number|Pattern): How often the sample is looped")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd").loop("<1 2 3 4>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"speed"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#speed"},createElement("span",{parentName:"a",className:"icon icon-link"})),"speed"),createElement("p",null,"Changes the speed of sample playback, i.e. a cheap way of changing pitch."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"speed (number|Pattern): inf to inf, negative numbers play the sample backwards.")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd").speed("<1 2 4 1 -2 -4>").osc()',mdxType:"MiniRepl"}),createElement(MiniRepl,{tune:'speed("1 1.5*2 [2 1.1]").s("sax").cut(1).osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"unit"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#unit"},createElement("span",{parentName:"a",className:"icon icon-link"})),"unit"),createElement("p",null,"Used in conjunction with ",createElement("a",{href:"#speed"},"speed"),', accepts values of "r" (rate, default behavior), "c" (cycles), or "s" (seconds). Using ',createElement("code",null,'unit "c"')," means ",createElement("code",null,"speed")," will be interpreted in units of cycles, e.g. ",createElement("code",null,'speed "1"')," means samples will be stretched to fill a cycle. Using ",createElement("code",null,'unit "s"')," means the playback speed will be adjusted so that the duration is the number of seconds specified by ",createElement("code",null,"speed"),"."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"unit (number|string|Pattern): see description above")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'speed("1 2 .5 3").s("bd").unit("c").osc()',mdxType:"MiniRepl"})),createElement("h2",{id:"audio-effects"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#audio-effects"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Audio Effects"),createElement("h3",{id:"gain"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#gain"},createElement("span",{parentName:"a",className:"icon icon-link"})),"gain"),createElement("p",null,"Like ",createElement("a",{href:"#amp"},"amp"),", but exponential."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"amount (number|Pattern): gain.")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd*8").gain(".7*2 1 .7*2 1 .7 1").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"amp"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#amp"},createElement("span",{parentName:"a",className:"icon icon-link"})),"amp"),createElement("p",null,"Like ",createElement("a",{href:"#gain"},"gain"),", but linear."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"amount (number|Pattern): gain.")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd*8").amp(".1*2 .5 .1*2 .5 .1 .5").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"accelerate"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#accelerate"},createElement("span",{parentName:"a",className:"icon icon-link"})),"accelerate"),createElement("p",null,"A pattern of numbers that speed up (or slow down) samples while they play. Currently only supported by osc / superdirt."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"amount (number|Pattern): acceleration.")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("sax").accelerate("<0 1 2 4 8 16>").slow(2).osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"crush"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#crush"},createElement("span",{parentName:"a",className:"icon icon-link"})),"crush"),createElement("p",null,"bit crusher effect."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"depth (number|Pattern): between 1 (for drastic reduction in bit-depth) to 16 (for barely no reduction).")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s(",hh*3,jvbass*2").fast(2).crush("<16 8 7 6 5 4 3 2>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"coarse"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#coarse"},createElement("span",{parentName:"a",className:"icon icon-link"})),"coarse"),createElement("p",null,"fake-resampling for lowering the sample rate"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"factor (number|Pattern): 1 for original 2 for half, 3 for a third and so on.")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("xmas").coarse("<1 4 8 16 32>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"leslie"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#leslie"},createElement("span",{parentName:"a",className:"icon icon-link"})),"leslie"),createElement("p",null,"Emulation of a Leslie speaker: speakers rotating in a wooden amplified cabinet."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"wet (number|Pattern): between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'n("0,4,7").s("supersquare").leslie("<0 .4 .6 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"lrate"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#lrate"},createElement("span",{parentName:"a",className:"icon icon-link"})),"lrate"),createElement("p",null,"Rate of modulation / rotation for leslie effect"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"rate (number|Pattern): 6.7 for fast, 0.7 for slow")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'n("0,4,7").s("supersquare").leslie(1).lrate("<1 2 4 8>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"lsize"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#lsize"},createElement("span",{parentName:"a",className:"icon icon-link"})),"lsize"),createElement("p",null,"Physical size of the cabinet in meters. Be careful, it might be slightly larger than your computer. Affects the Doppler amount (pitch warble)"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"meters (number|Pattern): somewhere between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'n("0,4,7").s("supersquare").leslie(1).lrate(2).lsize("<.1 .5 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"pan"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#pan"},createElement("span",{parentName:"a",className:"icon icon-link"})),"pan"),createElement("p",null,"Sets position in stereo."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"pan (number|Pattern): between 0 and 1, from left to right (assuming stereo), once round a circle (assuming multichannel)")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("[bd hh]*2").pan("<.5 1 .5 0>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"room"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#room"},createElement("span",{parentName:"a",className:"icon icon-link"})),"room"),createElement("p",null,"Sets the level of reverb."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"level (number|Pattern): between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd sd").room("<0 .2 .4 .6 .8 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"size"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#size"},createElement("span",{parentName:"a",className:"icon icon-link"})),"size"),createElement("p",null,"Sets the room size of the reverb, see ",createElement("a",{href:"#room"},"room"),"."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"size (number|Pattern): between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd sd").room(.8).size("<0 .2 .4 .6 .8 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"dry"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#dry"},createElement("span",{parentName:"a",className:"icon icon-link"})),"dry"),createElement("p",null,"Set dryness of reverb. See ",createElement("a",{href:"#room"},"room")," and ",createElement("a",{href:"#size"},"size")," for more information about reverb."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"dry (number|Pattern): 0 = wet, 1 = dry")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'n("[0,3,7](3,8)").s("superpiano").room(.7).dry("<0 .5 .75 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"shape"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#shape"},createElement("span",{parentName:"a",className:"icon icon-link"})),"shape"),createElement("p",null,"Wave shaping distortion. CAUTION: it might get loud"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"distortion (number|Pattern): between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'s("bd sd").shape("<0 .2 .4 .6 .8 1>").osc()',mdxType:"MiniRepl"})),createElement("h3",{id:"squiz"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#squiz"},createElement("span",{parentName:"a",className:"icon icon-link"})),"squiz"),createElement("p",null,"Made by Calum Gunn. Reminiscent of some weird mixture of filter, ring-modulator and pitch-shifter. The SuperCollider manual defines Squiz as:"),createElement("p",null,`"A simplistic pitch-raising algorithm. It's not meant to sound natural; its sound is reminiscent of some weird mixture of filter, ring-modulator and pitch-shifter, depending on the input. The algorithm works by cutting the signal into fragments (delimited by upwards-going zero-crossings) and squeezing those fragments in the time domain (i.e. simply playing them back faster than they came in), leaving silences inbetween. All the parameters apart from memlen can be modulated."`),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"squiz (number|Pattern): Try passing multiples of 2 to it - 2, 4, 8 etc.")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:'squiz("2 4/2 6 [8 16]").s("bd").osc()',mdxType:"MiniRepl"})),createElement("h2",{id:"synth-effects"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#synth-effects"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Synth Effects"),createElement("h3",{id:"octave"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#octave"},createElement("span",{parentName:"a",className:"icon icon-link"})),"octave"),createElement("p",null,"Sets the default octave of a synth."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"octave (number|Pattern): octave number")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:`n("0,4,7").s('supersquare').octave("<3 4 5 6>").osc()`,mdxType:"MiniRepl"})),createElement("h3",{id:"detune"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#detune"},createElement("span",{parentName:"a",className:"icon icon-link"})),"detune"),createElement("p",null,"Set detune of oscillators. Works only with some synths, see ",createElement("a",{target:"_blank",href:"https://tidalcycles.org/docs/patternlib/tutorials/synthesizers"},"tidal doc")),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"amount (number|Pattern): between 0 and 1")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:`n("0 3 7").s('superzow').octave(3).detune("<0 .25 .5 1 2>").osc()`,mdxType:"MiniRepl"})))}MDXContent.isMDXComponent=!0;var style$1="",style="";ReactDOM.render(jsx(React.StrictMode,{children:jsxs("div",{className:"min-h-screen",children:[jsx("header",{className:"flex-none flex justify-start sticky top-0 z-[2] w-full h-16 px-2 items-center border-b border-gray-200 bg-white",children:jsxs("div",{className:"p-4 w-full flex justify-between",children:[jsxs("div",{className:"flex items-center space-x-2",children:[jsx("img",{src:"https://tidalcycles.org/img/logo.svg",className:"Tidal-logo w-10 h-10",alt:"logo"}),jsx("h1",{className:"text-xl cursor-pointer",onClick:()=>window.scrollTo(0,0),children:"Strudel Tutorial"})]}),!window.location.href.includes("localhost")&&jsx("div",{className:"flex space-x-4",children:jsx("a",{href:"../",children:"go to REPL"})})]})}),jsx("main",{className:"p-4 pl-6 max-w-3xl prose",children:jsx(MDXContent,{})})]})}),document.getElementById("root"));export{reify$1 as A,stack as B,rand as C,chooseInWith as D,strudel as E,enableWebMidi as F,getAudioContext as G,Hap as H,getCachedBuffer as I,loadBuffer as J,getLoadedBuffer as K,loadGithubSamples as L,samples as M,resetLoadedSamples as N,getLoadedSamples$1 as O,Pattern$5 as P,loadWebDirt as Q,Tone as T,WebMidi as W,amsynth as a,metal as b,monosynth as c,duosynth as d,polysynth as e,fmsynth as f,getDefaultSynth as g,players as h,synth as i,piano as j,highpass as k,lowpass as l,membrane as m,noise as n,adsr as o,pluck as p,osc as q,out as r,sampler as s,getDrawContext$1 as t,cleanupDraw as u,vol as v,mod as w,getAugmentedNamespace as x,commonjsGlobal as y,getDefaultExportFromCjs as z}; diff --git a/tutorial/assets/index.c86fa59c.js b/tutorial/assets/index.c86fa59c.js deleted file mode 100644 index 53d666707..000000000 --- a/tutorial/assets/index.c86fa59c.js +++ /dev/null @@ -1 +0,0 @@ -import{O as a}from"./index.e8a05ade.js";export{a as loadWebDirt}; diff --git a/tutorial/assets/index.4d91ae8b.js b/tutorial/assets/index.d0f2e965.js similarity index 90% rename from tutorial/assets/index.4d91ae8b.js rename to tutorial/assets/index.d0f2e965.js index e1a14d18a..89a26215b 100644 --- a/tutorial/assets/index.4d91ae8b.js +++ b/tutorial/assets/index.d0f2e965.js @@ -1 +1 @@ -import{T as d}from"./index.e8a05ade.js";import{T as A,o as T,a as k,u as E,d as N,f as O,g as I,t as j,k as q,l as x,m as B,b as D,c as F,n as _,q as v,r as C,j as z,h as H,p as S,e as U,s as G,i as J,v as K}from"./index.e8a05ade.js";const f=()=>{document.getElementById("header").style="display:none"};function u(s){window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation);const a=e=>{const o=d.getTransport().seconds;s(e,o),window.strudelAnimation=requestAnimationFrame(a)};requestAnimationFrame(a)}const g=function(s,a={}){const e=document.getElementById("code"),o="background-image:url("+s+");background-size:contain;";e.style=o;const{className:c}=e,i=(t,n)=>{({style:()=>e.style=o+";"+n,className:()=>e.className=n+" "+c})[t]()},r=Object.entries(a).filter(([t,n])=>typeof n=="function");Object.entries(a).filter(([t,n])=>typeof n=="string").forEach(([t,n])=>i(t,n)),r.length!==0&&u((t,n)=>r.forEach(([l,m])=>{i(l,m(n))}))},h=()=>{const s=document.getElementById("code");s&&(s.style="",s.className="grow relative")};export{A as Tone,T as adsr,k as amsynth,g as backgroundImage,E as cleanupDraw,h as cleanupUi,N as duosynth,O as fmsynth,I as getDefaultSynth,j as getDrawContext,f as hideHeader,q as highpass,x as lowpass,B as membrane,D as metal,F as monosynth,_ as noise,v as osc,C as out,z as piano,H as players,S as pluck,U as polysynth,G as sampler,J as synth,K as vol}; +import{T as d}from"./index.91bb3680.js";import{T as A,o as T,a as k,u as E,d as N,f as O,g as I,t as j,k as q,l as x,m as B,b as D,c as F,n as _,q as v,r as C,j as z,h as H,p as S,e as U,s as G,i as J,v as K}from"./index.91bb3680.js";const f=()=>{document.getElementById("header").style="display:none"};function u(s){window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation);const a=e=>{const o=d.getTransport().seconds;s(e,o),window.strudelAnimation=requestAnimationFrame(a)};requestAnimationFrame(a)}const g=function(s,a={}){const e=document.getElementById("code"),o="background-image:url("+s+");background-size:contain;";e.style=o;const{className:c}=e,i=(t,n)=>{({style:()=>e.style=o+";"+n,className:()=>e.className=n+" "+c})[t]()},r=Object.entries(a).filter(([t,n])=>typeof n=="function");Object.entries(a).filter(([t,n])=>typeof n=="string").forEach(([t,n])=>i(t,n)),r.length!==0&&u((t,n)=>r.forEach(([l,m])=>{i(l,m(n))}))},h=()=>{const s=document.getElementById("code");s&&(s.style="",s.className="grow relative")};export{A as Tone,T as adsr,k as amsynth,g as backgroundImage,E as cleanupDraw,h as cleanupUi,N as duosynth,O as fmsynth,I as getDefaultSynth,j as getDrawContext,f as hideHeader,q as highpass,x as lowpass,B as membrane,D as metal,F as monosynth,_ as noise,v as osc,C as out,z as piano,H as players,S as pluck,U as polysynth,G as sampler,J as synth,K as vol}; diff --git a/tutorial/assets/index.edd38eca.js b/tutorial/assets/index.edd38eca.js new file mode 100644 index 000000000..590b5ea38 --- /dev/null +++ b/tutorial/assets/index.edd38eca.js @@ -0,0 +1 @@ +import{Q as a}from"./index.91bb3680.js";export{a as loadWebDirt}; diff --git a/tutorial/assets/index.fbcc9b19.js b/tutorial/assets/index.fbcc9b19.js deleted file mode 100644 index 9f914a396..000000000 --- a/tutorial/assets/index.fbcc9b19.js +++ /dev/null @@ -1 +0,0 @@ -var h=Object.defineProperty;var p=(e,t,s)=>t in e?h(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var l=(e,t,s)=>(p(e,typeof t!="symbol"?t+"":t,s),s);import{S as f,E as u}from"./index.e8a05ade.js";import{F as v,G as L,J as M,N as T,I as B,K as I,M as y,L as F}from"./index.e8a05ade.js";const d=e=>"("+e+")();",g=e=>URL.createObjectURL(new Blob([d(e)],{type:"text/javascript"})),w=e=>new Worker(g(e));class k{constructor(t,s,i=this.interval){l(this,"worker");l(this,"audioContext");l(this,"interval",.2);l(this,"lastEnd",0);this.audioContext=t,this.interval=i,this.worker=w(()=>{let o,a=null;const n=()=>{a&&(clearInterval(a),a=null)},r=()=>{if(n(),!o)throw new Error("no interval set! call worker.postMessage({interval}) before starting.");a=setInterval(()=>postMessage("tick"),o*1e3)};self.onmessage=function(c){c.data=="start"?r():c.data.interval?(o=c.data.interval,a&&r()):c.data=="stop"&&n()}}),this.worker.postMessage({interval:i}),this.worker.onmessage=o=>{if(o.data==="tick"){const a=this.lastEnd||this.audioContext.currentTime,n=this.audioContext.currentTime+this.interval;this.lastEnd=n,s(a,n)}}}start(){console.log("start..."),this.audioContext.resume(),this.worker.postMessage("start")}stop(){console.log("stop..."),this.worker.postMessage("stop")}}class b{constructor({audioContext:t,interval:s=.2,onEvent:i,latency:o=.2}){l(this,"worker");l(this,"pattern");this.worker=new k(t,(a,n)=>{this.pattern.query(new f(new u(a+o,n+o))).forEach(r=>{!r.part.begin.equals(r.whole.begin)||(r.context.onTrigger&&r.context.onTrigger(r.whole.begin,r,t.currentTime,1),i&&(i==null||i(r)))})},s)}start(){if(!this.pattern)throw new Error("Scheduler: no pattern set! call .setPattern first.");this.worker.start()}stop(){this.worker.stop()}setPattern(t){this.pattern=t}}export{k as ClockWorker,b as Scheduler,v as getAudioContext,L as getCachedBuffer,M as getLoadedBuffer,T as getLoadedSamples,B as loadBuffer,I as loadGithubSamples,y as resetLoadedSamples,F as samples}; diff --git a/tutorial/assets/osc.97e33e69.js b/tutorial/assets/osc.81bf0f44.js similarity index 99% rename from tutorial/assets/osc.97e33e69.js rename to tutorial/assets/osc.81bf0f44.js index 222633ad0..2cbc338b5 100644 --- a/tutorial/assets/osc.97e33e69.js +++ b/tutorial/assets/osc.81bf0f44.js @@ -1 +1 @@ -var ot=Object.defineProperty,st=Object.defineProperties;var it=Object.getOwnPropertyDescriptors;var ke=Object.getOwnPropertySymbols;var at=Object.prototype.hasOwnProperty,ut=Object.prototype.propertyIsEnumerable;var be=(g,d,p)=>d in g?ot(g,d,{enumerable:!0,configurable:!0,writable:!0,value:p}):g[d]=p,Se=(g,d)=>{for(var p in d||(d={}))at.call(d,p)&&be(g,p,d[p]);if(ke)for(var p of ke(d))ut.call(d,p)&&be(g,p,d[p]);return g},Oe=(g,d)=>st(g,it(d));import{y as H,P as ct}from"./index.e8a05ade.js";var Ee={exports:{}};(function(g,d){(function(p,u){g.exports=u()})(H,function(){function p(r,e){var n=Object.keys(r);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(r);e&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(r,o).enumerable})),n.push.apply(n,t)}return n}function u(r){for(var e=1;e1&&e[e.length-1]==="/"&&(e=e.slice(0,e.length-1)),e.length>1&&e[0]!=="/"&&(e="/".concat(e)),e;throw new Error("OSC prepareAddress() needs addresses of type array or string")}function ae(r){if(!v(r))throw new Error("OSC prepareRegExPattern() needs strings");return r.replace(/\./g,"\\.").replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/\{/g,"(").replace(/\}/g,")").replace(/,/g,"|").replace(/\[!/g,"[^").replace(/\?/g,".").replace(/\*/g,".*")}var ue=function(){function r(){f(this,r),this.data=[],this.byteLength=0}return l(r,[{key:"add",value:function(e){if(te(e)||ne(e)||oe(e))return this;var n=e.pack();return this.byteLength+=n.byteLength,this.data.push(n),this}},{key:"merge",value:function(){var e=new Uint8Array(this.byteLength),n=0;return this.data.forEach(function(t){e.set(t,n),n+=t.byteLength}),e}}]),r}(),C=function(){function r(e){f(this,r),this.value=e,this.offset=0}return l(r,[{key:"pack",value:function(e,n){if(!e||!n)throw new Error("OSC Atomic cant't be packed without given method or byteLength");var t=new Uint8Array(n),o=new DataView(t.buffer);if(A(this.value))throw new Error("OSC Atomic cant't be encoded with empty value");return o[e](this.offset,this.value,!1),t}},{key:"unpack",value:function(e,n,t){var o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(!(e&&n&&t))throw new Error("OSC Atomic cant't be unpacked without given dataView, method or byteLength");if(!(e instanceof DataView))throw new Error("OSC Atomic expects an instance of type DataView");return this.value=e[n](o,!1),this.offset=o+t,this.offset}}]),r}(),U=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!b(t))throw new Error("OSC AtomicInt32 constructor expects value of type number");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setInt32",4)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getInt32",4,o)}}]),n}(C),ce="utf-8";function De(r){if(se("Buffer"))return Buffer.from(r).toString(ce);if(se("TextDecoder"))return new TextDecoder(ce).decode(new Int8Array(r));for(var e="",n=0;n1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicString expects an instance of type DataView");for(var i,s=o,a=[];s0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(f(this,r),!b(e)||!b(n))throw new Error("OSC Timetag constructor expects values of type integer number");this.seconds=e,this.fractions=n}return l(r,[{key:"timestamp",value:function(e){var n;if(typeof e=="number"){n=e/1e3;var t=Math.floor(n);return this.seconds=t+fe,this.fractions=Math.round(le*(n-t)),e}return 1e3*((n=this.seconds-fe)+Math.round(this.fractions/le))}}]),r}(),B=function(r){k(n,r);var e=y(n);function n(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Date.now();f(this,n);var o=new G;return t instanceof G?o=t:b(t)?o.timestamp(t):Ae(t)&&o.timestamp(t.getTime()),e.call(this,o)}return l(n,[{key:"pack",value:function(){if(A(this.value))throw new Error("OSC AtomicTimetag can not be encoded with empty value");var t=this.value,o=t.seconds,i=t.fractions,s=new Uint8Array(8),a=new DataView(s.buffer);return a.setInt32(0,o,!1),a.setInt32(4,i,!1),s}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicTimetag expects an instance of type DataView");var i=t.getUint32(o,!1),s=t.getUint32(o+4,!1);return this.value=new G(i,s),this.offset=o+8,this.offset}}]),n}(C),he=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!re(t))throw new Error("OSC AtomicBlob constructor expects value of type Uint8Array");return e.call(this,t)}return l(n,[{key:"pack",value:function(){if(A(this.value))throw new Error("OSC AtomicBlob can not be encoded with empty value");var t=V(this.value.byteLength),o=new Uint8Array(t+4);return new DataView(o.buffer).setInt32(0,this.value.byteLength,!1),o.set(this.value,4),o}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicBlob expects an instance of type DataView");var i=t.getInt32(o,!1);return this.value=new Uint8Array(t.buffer,o+4,i),this.offset=V(o+4+i),this.offset}}]),n}(C),pe=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!ee(t))throw new Error("OSC AtomicFloat32 constructor expects value of type float");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setFloat32",4)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getFloat32",4,o)}}]),n}(C),de=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!ee(t))throw new Error("OSC AtomicFloat64 constructor expects value of type float");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setFloat64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getFloat64",8,o)}}]),n}(C),je=BigInt("9223372036854775807"),xe=BigInt("-9223372036854775808"),ge=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&typeof t!="bigint")throw new Error("OSC AtomicInt64 constructor expects value of type BigInt");if(t&&(tje))throw new Error("OSC AtomicInt64 value is out of bounds");var o;return t&&(o=BigInt.asIntN(64,t)),e.call(this,o)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setBigInt64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getBigInt64",8,o)}}]),n}(C),Be=BigInt("18446744073709551615"),ve=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&typeof t!="bigint")throw new Error("OSC AtomicUInt64 constructor expects value of type BigInt");if(t&&(t<0||t>Be))throw new Error("OSC AtomicUInt64 value is out of bounds");var o;return t&&(o=BigInt.asUintN(64,t)),e.call(this,o)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setBigUint64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getBigUint64",8,o)}}]),n}(C),Z=!0,q=!1,J=null,K=1/0,Q=function(){function r(e,n){var t=this;if(f(this,r),this.offset=0,this.address="",this.types="",this.args=[],!A(e)){if(!v(e)&&!D(e))throw new Error("OSC Message constructor first argument (address) must be a string or array");this.address=L(e)}if(!A(n)){if(!D(n))throw new Error("OSC Message constructor second argument (args) must be an array");n.forEach(function(o){return t.add(o.type,o.value)})}}return l(r,[{key:"add",value:function(e,n){if(A(e))throw new Error("OSC Message needs a valid OSC Atomic Data Type");e==="N"?this.args.push(J):e==="T"?this.args.push(Z):e==="F"?this.args.push(q):e==="I"?this.args.push(K):this.args.push(n),this.types+=e}},{key:"pack",value:function(){var e=this;if(this.address.length===0||this.address[0]!=="/")throw new Error("OSC Message has an invalid address");var n=new ue;if(n.add(new S(this.address)),n.add(new S(",".concat(this.types))),this.args.length>0){var t;if(this.args.length>this.types.length)throw new Error("OSC Message argument and type tag mismatch");this.args.forEach(function(o,i){var s=e.types[i];if(s==="i")t=new U(o);else if(s==="h")t=new ge(o);else if(s==="t")t=new ve(o);else if(s==="f")t=new pe(o);else if(s==="d")t=new de(o);else if(s==="s")t=new S(o);else if(s==="b")t=new he(o);else if(s==="T")t=Z;else if(s==="F")t=q;else if(s==="N")t=J;else{if(s!=="I")throw new Error("OSC Message found unknown argument type");t=K}n.add(t)})}return n.merge()}},{key:"unpack",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Message expects an instance of type DataView.");var t=new S;t.unpack(e,n);var o=new S;if(o.unpack(e,t.offset),t.value.length===0||t.value[0]!=="/")throw new Error("OSC Message found malformed or missing address string");if(o.value.length===0&&o.value[0]!==",")throw new Error("OSC Message found malformed or missing type string");for(var i,s,a=o.offset,c=[],w=1;w0&&(o=a.shift()),a.length>0&&a[0]instanceof Array&&(i=a.shift()),t=e.call(this,o,i),a.length>0&&(t.types=a.map(function(w){return ie(w)}).join(""),t.args=a),t}return l(n,[{key:"add",value:function(t){m(h(n.prototype),"add",this).call(this,ie(t),t)}}]),n}(Q),_="#bundle",I=function(){function r(){var e=this;f(this,r),this.offset=0,this.timetag=new B,this.bundleElements=[];for(var n=arguments.length,t=new Array(n),o=0;o0&&(t[0]instanceof Date||b(t[0])?this.timetag=new B(t[0]):D(t[0])?(t[0].forEach(function(i){e.add(i)}),t.length>1&&(t[1]instanceof Date||b(t[1]))&&(this.timetag=new B(t[1]))):t.forEach(function(i){e.add(i)}))}return l(r,[{key:"timestamp",value:function(e){if(!b(e))throw new Error("OSC Bundle needs an integer for setting the timestamp");this.timetag=new B(e)}},{key:"add",value:function(e){if(!(e instanceof E||e instanceof r))throw new Error("OSC Bundle contains only Messages and Bundles");this.bundleElements.push(e)}},{key:"pack",value:function(){var e=new ue;return e.add(new S(_)),this.timetag||(this.timetag=new B),e.add(this.timetag),this.bundleElements.forEach(function(n){e.add(new U(n.pack().byteLength)),e.add(n)}),e.merge()}},{key:"unpack",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Bundle expects an instance of type DataView");var t=new S;if(t.unpack(e,n),t.value!==_)throw new Error("OSC Bundle does not contain a valid #bundle head");var o=new B,i=o.unpack(e,t.offset);for(this.bundleElements=[];i1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Packet expects an instance of type DataView");if(e.byteLength%4!=0)throw new Error("OSC Packet byteLength has to be a multiple of four");var t,o=new S;return o.unpack(e,n),(t=o.value===_?new I:new E).unpack(e,n),this.offset=t.offset,this.value=t,this.offset}}]),r}(),Me={discardLateMessages:!1},He=function(){function r(e){f(this,r),this.options=u(u({},Me),e),this.addressHandlers=[],this.eventHandlers={open:[],error:[],close:[]},this.uuid=0}return l(r,[{key:"dispatch",value:function(e,n){var t=this;if(!(e instanceof M))throw new Error("OSC EventHander dispatch() accepts only arguments of type Packet");if(!e.value)throw new Error("OSC EventHander dispatch() can't read empty Packets");if(e.value instanceof I){var o=e.value;return o.bundleElements.forEach(function(s){if(s instanceof I){if(o.timetag.value.timestamp()1&&(s=n[1]);var a=null;if(n.length>2)if(b(n[2]))a=n[2];else{if(!(n[2]instanceof Date))throw new Error("OSC EventHandler timestamp has to be a number or Date");a=n[2].getTime()}var c=null;if(n.length>=3&&(c=n[3]),a){var w=Date.now();if(w>a&&!this.options.discardLateMessages)return this.call(i,s,c);var P=this;return setTimeout(function(){P.call(i,s,c)},a-w),!0}return this.call(i,s,c)}},{key:"on",value:function(e,n){if(!v(e)&&!D(e))throw new Error("OSC EventHandler accepts only strings or arrays for address patterns");if(!j(n))throw new Error("OSC EventHandler callback has to be a function");this.uuid+=1;var t={id:this.uuid,callback:n};if(v(e)&&e in this.eventHandlers)return this.eventHandlers[e].push(t),this.uuid;var o=L(e);return o in this.addressHandlers||(this.addressHandlers[o]=[]),this.addressHandlers[o].push(t),this.uuid}},{key:"off",value:function(e,n){if(!v(e)&&!D(e))throw new Error("OSC EventHandler accepts only strings or arrays for address patterns");if(!b(n))throw new Error("OSC EventHandler subscription id has to be a number");var t,o;return v(e)&&e in this.eventHandlers?(t=e,o=this.eventHandlers):(t=L(e),o=this.addressHandlers),t in o&&o[t].some(function(i,s){return i.id===n&&(o[t].splice(s,1),!0)})}}]),r}(),Te=0,Le=1,Ne=2,Ve=3,Ue=function(){function r(){throw f(this,r),new Error("DatagramPlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options.open),n),o=t.port,i=t.exclusive;this.socketStatus=Te,this.socket.bind({address:t.host,port:o,exclusive:i},function(){e.socketStatus=Le,e.notify("open")})}},{key:"close",value:function(){var e=this;this.socketStatus=Ne,this.socket.close(function(){e.socketStatus=Ve,e.notify("close")})}},{key:"send",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=u(u({},this.options.send),n),o=t.port,i=t.host;this.socket.send(Buffer.from(e),0,e.byteLength,o,i)}}]),r}();typeof WebSocket!="undefined"?x=WebSocket:typeof MozWebSocket!="undefined"?x=MozWebSocket:typeof H!="undefined"?x=H.WebSocket||H.MozWebSocket:typeof window!="undefined"?x=window.WebSocket||window.MozWebSocket:typeof self!="undefined"&&(x=self.WebSocket||self.MozWebSocket);var X=void 0,we=x,_e=0,We=1,Re=2,Fe=3,W={udpServer:{host:"localhost",port:41234,exclusive:!1},udpClient:{host:"localhost",port:41235},wsServer:{host:"localhost",port:8080},receiver:"ws"};function ye(r,e){return u(u(u(u({},W),r),e),{},{udpServer:u(u(u({},W.udpServer),r.udpServer),e.udpServer),udpClient:u(u(u({},W.udpClient),r.udpClient),e.udpClient),wsServer:u(u(u({},W.wsServer),r.wsServer),e.wsServer)})}var ze=function(){function r(){throw f(this,r),new Error("BridgePlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=ye(this.options,n);this.socketStatus=_e,this.socket.bind({address:t.udpServer.host,port:t.udpServer.port,exclusive:t.udpServer.exclusive},function(){var o={};t.wsServer.server?o.server=t.wsServer.server:o=t.wsServer,e.websocket=new X(o),e.websocket.binaryType="arraybuffer",e.websocket.on("listening",function(){e.socketStatus=We,e.notify("open")}),e.websocket.on("error",function(i){e.notify("error",i)}),e.websocket.on("connection",function(i){i.on("message",function(s,a){e.send(s,{receiver:"udp"}),e.notify(new Uint8Array(s),a)})})})}},{key:"close",value:function(){var e=this;this.socketStatus=Re,this.socket.close(function(){e.websocket.close(function(){e.socketStatus=Fe,e.notify("close")})})}},{key:"send",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=ye(this.options,n),o=t.receiver;if(o==="udp"){var i=e instanceof Buffer?e:Buffer.from(e);this.socket.send(i,0,i.byteLength,t.udpClient.port,t.udpClient.host)}else{if(o!=="ws")throw new Error("BridgePlugin can not send message to unknown receiver");this.websocket.clients.forEach(function(s){s.send(e,{binary:!0})})}}}]),r}(),Ge=-1,Ze=0,qe=1,Je=2,Ke=3,Qe={host:"localhost",port:8080,secure:!1,protocol:[]},me=function(){function r(e){if(f(this,r),!we)throw new Error("WebsocketClientPlugin can't find a WebSocket class");this.options=u(u({},Qe),e),this.socket=null,this.socketStatus=Ge,this.notify=function(){}}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options),n),o=t.port,i=t.host,s=t.secure,a=t.protocol;this.socket&&this.close();var c=s?"wss":"ws",w={address:i,family:c,port:o,size:0};this.socket=new we("".concat(c,"://").concat(i,":").concat(o),a),this.socket.binaryType="arraybuffer",this.socketStatus=Ze,this.socket.onopen=function(){e.socketStatus=qe,e.notify("open")},this.socket.onclose=function(){e.socketStatus=Ke,e.notify("close")},this.socket.onerror=function(P){e.notify("error",P)},this.socket.onmessage=function(P){e.notify(P.data,w)}}},{key:"close",value:function(){this.socketStatus=Je,this.socket.close()}},{key:"send",value:function(e){this.socket.send(e)}}]),r}(),Xe=0,Ye=1,$e=2,et=3,tt=function(){function r(e){throw f(this,r),new Error("WebsocketServerPlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options),n),o=t.port,i=t.host,s={address:i,family:"wsserver",port:o,size:0};this.socket&&this.close(),t.server?this.socket=new X({server:t.server}):this.socket=new X({host:i,port:o}),this.socket.binaryType="arraybuffer",this.socketStatus=Xe,this.socket.on("listening",function(){e.socketStatus=Ye,e.notify("open")}),this.socket.on("error",function(a){e.notify("error",a)}),this.socket.on("connection",function(a){a.on("message",function(c){e.notify(new Uint8Array(c),s)})})}},{key:"close",value:function(){var e=this;this.socketStatus=$e,this.socket.close(function(){e.socketStatus=et,e.notify("close")})}},{key:"send",value:function(e){this.socket.clients.forEach(function(n){n.send(e,{binary:!0})})}}]),r}(),nt={discardLateMessages:!1,plugin:new me},O=function(){function r(e){if(f(this,r),e&&!z(e))throw new Error("OSC options argument has to be an object.");this.options=u(u({},nt),e),this.eventHandler=new He({discardLateMessages:this.options.discardLateMessages});var n=this.eventHandler;this.options.plugin&&this.options.plugin.registerNotify&&this.options.plugin.registerNotify(function(){return n.notify.apply(n,arguments)})}return l(r,[{key:"on",value:function(e,n){if(!v(e)||!j(n))throw new Error("OSC on() needs event- or address string and callback function");return this.eventHandler.on(e,n)}},{key:"off",value:function(e,n){if(!v(e)||!b(n))throw new Error("OSC off() needs string and number (subscriptionId) to unsubscribe");return this.eventHandler.off(e,n)}},{key:"open",value:function(e){if(e&&!z(e))throw new Error("OSC open() options argument needs to be an object");if(!this.options.plugin||!j(this.options.plugin.open))throw new Error("OSC Plugin API #open is not implemented!");return this.options.plugin.open(e)}},{key:"status",value:function(){if(!this.options.plugin||!j(this.options.plugin.status))throw new Error("OSC Plugin API #status is not implemented!");return this.options.plugin.status()}},{key:"close",value:function(){if(!this.options.plugin||!j(this.options.plugin.close))throw new Error("OSC Plugin API #close is not implemented!");return this.options.plugin.close()}},{key:"send",value:function(e,n){if(!this.options.plugin||!j(this.options.plugin.send))throw new Error("OSC Plugin API #send is not implemented!");if(!(e instanceof Q||e instanceof E||e instanceof I||e instanceof M))throw new Error("OSC send() needs Messages, Bundles or Packets");if(n&&!z(n))throw new Error("OSC send() options argument has to be an object");return this.options.plugin.send(e.pack(),n)}}]),r}();return O.STATUS={IS_NOT_INITIALIZED:-1,IS_CONNECTING:0,IS_OPEN:1,IS_CLOSING:2,IS_CLOSED:3},O.Packet=M,O.Bundle=I,O.Message=E,O.TypedMessage=Q,O.DatagramPlugin=Ue,O.WebsocketClientPlugin=me,O.WebsocketServerPlugin=tt,O.BridgePlugin=ze,O})})(Ee);var $=Ee.exports;const Ce=new $;Ce.open();const ft=.1;let Y=-1;ct.prototype.osc=function(){return this._withHap(g=>{const d=(p,u,f,N)=>{const l=u.wholeOrPart().begin.valueOf(),R=u.duration.valueOf();Y<0&&(Y=Date.now()-f*1e3);const k=Object.assign({},{cps:N,cycle:l,delta:R},u.value),h=Object.entries(k).flat(),T=Math.floor(Y+(p+ft)*1e3),F=new $.Message("/dirt/play",...h),y=new $.Bundle([F],T);y.timestamp(T),Ce.send(y)};return g.setContext(Oe(Se({},g.context),{onTrigger:d}))})}; +var ot=Object.defineProperty,st=Object.defineProperties;var it=Object.getOwnPropertyDescriptors;var ke=Object.getOwnPropertySymbols;var at=Object.prototype.hasOwnProperty,ut=Object.prototype.propertyIsEnumerable;var be=(g,d,p)=>d in g?ot(g,d,{enumerable:!0,configurable:!0,writable:!0,value:p}):g[d]=p,Se=(g,d)=>{for(var p in d||(d={}))at.call(d,p)&&be(g,p,d[p]);if(ke)for(var p of ke(d))ut.call(d,p)&&be(g,p,d[p]);return g},Oe=(g,d)=>st(g,it(d));import{y as H,P as ct}from"./index.91bb3680.js";var Ee={exports:{}};(function(g,d){(function(p,u){g.exports=u()})(H,function(){function p(r,e){var n=Object.keys(r);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(r);e&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(r,o).enumerable})),n.push.apply(n,t)}return n}function u(r){for(var e=1;e1&&e[e.length-1]==="/"&&(e=e.slice(0,e.length-1)),e.length>1&&e[0]!=="/"&&(e="/".concat(e)),e;throw new Error("OSC prepareAddress() needs addresses of type array or string")}function ae(r){if(!v(r))throw new Error("OSC prepareRegExPattern() needs strings");return r.replace(/\./g,"\\.").replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/\{/g,"(").replace(/\}/g,")").replace(/,/g,"|").replace(/\[!/g,"[^").replace(/\?/g,".").replace(/\*/g,".*")}var ue=function(){function r(){f(this,r),this.data=[],this.byteLength=0}return l(r,[{key:"add",value:function(e){if(te(e)||ne(e)||oe(e))return this;var n=e.pack();return this.byteLength+=n.byteLength,this.data.push(n),this}},{key:"merge",value:function(){var e=new Uint8Array(this.byteLength),n=0;return this.data.forEach(function(t){e.set(t,n),n+=t.byteLength}),e}}]),r}(),C=function(){function r(e){f(this,r),this.value=e,this.offset=0}return l(r,[{key:"pack",value:function(e,n){if(!e||!n)throw new Error("OSC Atomic cant't be packed without given method or byteLength");var t=new Uint8Array(n),o=new DataView(t.buffer);if(A(this.value))throw new Error("OSC Atomic cant't be encoded with empty value");return o[e](this.offset,this.value,!1),t}},{key:"unpack",value:function(e,n,t){var o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(!(e&&n&&t))throw new Error("OSC Atomic cant't be unpacked without given dataView, method or byteLength");if(!(e instanceof DataView))throw new Error("OSC Atomic expects an instance of type DataView");return this.value=e[n](o,!1),this.offset=o+t,this.offset}}]),r}(),U=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!b(t))throw new Error("OSC AtomicInt32 constructor expects value of type number");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setInt32",4)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getInt32",4,o)}}]),n}(C),ce="utf-8";function De(r){if(se("Buffer"))return Buffer.from(r).toString(ce);if(se("TextDecoder"))return new TextDecoder(ce).decode(new Int8Array(r));for(var e="",n=0;n1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicString expects an instance of type DataView");for(var i,s=o,a=[];s0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(f(this,r),!b(e)||!b(n))throw new Error("OSC Timetag constructor expects values of type integer number");this.seconds=e,this.fractions=n}return l(r,[{key:"timestamp",value:function(e){var n;if(typeof e=="number"){n=e/1e3;var t=Math.floor(n);return this.seconds=t+fe,this.fractions=Math.round(le*(n-t)),e}return 1e3*((n=this.seconds-fe)+Math.round(this.fractions/le))}}]),r}(),B=function(r){k(n,r);var e=y(n);function n(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Date.now();f(this,n);var o=new G;return t instanceof G?o=t:b(t)?o.timestamp(t):Ae(t)&&o.timestamp(t.getTime()),e.call(this,o)}return l(n,[{key:"pack",value:function(){if(A(this.value))throw new Error("OSC AtomicTimetag can not be encoded with empty value");var t=this.value,o=t.seconds,i=t.fractions,s=new Uint8Array(8),a=new DataView(s.buffer);return a.setInt32(0,o,!1),a.setInt32(4,i,!1),s}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicTimetag expects an instance of type DataView");var i=t.getUint32(o,!1),s=t.getUint32(o+4,!1);return this.value=new G(i,s),this.offset=o+8,this.offset}}]),n}(C),he=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!re(t))throw new Error("OSC AtomicBlob constructor expects value of type Uint8Array");return e.call(this,t)}return l(n,[{key:"pack",value:function(){if(A(this.value))throw new Error("OSC AtomicBlob can not be encoded with empty value");var t=V(this.value.byteLength),o=new Uint8Array(t+4);return new DataView(o.buffer).setInt32(0,this.value.byteLength,!1),o.set(this.value,4),o}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicBlob expects an instance of type DataView");var i=t.getInt32(o,!1);return this.value=new Uint8Array(t.buffer,o+4,i),this.offset=V(o+4+i),this.offset}}]),n}(C),pe=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!ee(t))throw new Error("OSC AtomicFloat32 constructor expects value of type float");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setFloat32",4)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getFloat32",4,o)}}]),n}(C),de=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&!ee(t))throw new Error("OSC AtomicFloat64 constructor expects value of type float");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setFloat64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getFloat64",8,o)}}]),n}(C),je=BigInt("9223372036854775807"),xe=BigInt("-9223372036854775808"),ge=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&typeof t!="bigint")throw new Error("OSC AtomicInt64 constructor expects value of type BigInt");if(t&&(tje))throw new Error("OSC AtomicInt64 value is out of bounds");var o;return t&&(o=BigInt.asIntN(64,t)),e.call(this,o)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setBigInt64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getBigInt64",8,o)}}]),n}(C),Be=BigInt("18446744073709551615"),ve=function(r){k(n,r);var e=y(n);function n(t){if(f(this,n),t&&typeof t!="bigint")throw new Error("OSC AtomicUInt64 constructor expects value of type BigInt");if(t&&(t<0||t>Be))throw new Error("OSC AtomicUInt64 value is out of bounds");var o;return t&&(o=BigInt.asUintN(64,t)),e.call(this,o)}return l(n,[{key:"pack",value:function(){return m(h(n.prototype),"pack",this).call(this,"setBigUint64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return m(h(n.prototype),"unpack",this).call(this,t,"getBigUint64",8,o)}}]),n}(C),Z=!0,q=!1,J=null,K=1/0,Q=function(){function r(e,n){var t=this;if(f(this,r),this.offset=0,this.address="",this.types="",this.args=[],!A(e)){if(!v(e)&&!D(e))throw new Error("OSC Message constructor first argument (address) must be a string or array");this.address=L(e)}if(!A(n)){if(!D(n))throw new Error("OSC Message constructor second argument (args) must be an array");n.forEach(function(o){return t.add(o.type,o.value)})}}return l(r,[{key:"add",value:function(e,n){if(A(e))throw new Error("OSC Message needs a valid OSC Atomic Data Type");e==="N"?this.args.push(J):e==="T"?this.args.push(Z):e==="F"?this.args.push(q):e==="I"?this.args.push(K):this.args.push(n),this.types+=e}},{key:"pack",value:function(){var e=this;if(this.address.length===0||this.address[0]!=="/")throw new Error("OSC Message has an invalid address");var n=new ue;if(n.add(new S(this.address)),n.add(new S(",".concat(this.types))),this.args.length>0){var t;if(this.args.length>this.types.length)throw new Error("OSC Message argument and type tag mismatch");this.args.forEach(function(o,i){var s=e.types[i];if(s==="i")t=new U(o);else if(s==="h")t=new ge(o);else if(s==="t")t=new ve(o);else if(s==="f")t=new pe(o);else if(s==="d")t=new de(o);else if(s==="s")t=new S(o);else if(s==="b")t=new he(o);else if(s==="T")t=Z;else if(s==="F")t=q;else if(s==="N")t=J;else{if(s!=="I")throw new Error("OSC Message found unknown argument type");t=K}n.add(t)})}return n.merge()}},{key:"unpack",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Message expects an instance of type DataView.");var t=new S;t.unpack(e,n);var o=new S;if(o.unpack(e,t.offset),t.value.length===0||t.value[0]!=="/")throw new Error("OSC Message found malformed or missing address string");if(o.value.length===0&&o.value[0]!==",")throw new Error("OSC Message found malformed or missing type string");for(var i,s,a=o.offset,c=[],w=1;w0&&(o=a.shift()),a.length>0&&a[0]instanceof Array&&(i=a.shift()),t=e.call(this,o,i),a.length>0&&(t.types=a.map(function(w){return ie(w)}).join(""),t.args=a),t}return l(n,[{key:"add",value:function(t){m(h(n.prototype),"add",this).call(this,ie(t),t)}}]),n}(Q),_="#bundle",I=function(){function r(){var e=this;f(this,r),this.offset=0,this.timetag=new B,this.bundleElements=[];for(var n=arguments.length,t=new Array(n),o=0;o0&&(t[0]instanceof Date||b(t[0])?this.timetag=new B(t[0]):D(t[0])?(t[0].forEach(function(i){e.add(i)}),t.length>1&&(t[1]instanceof Date||b(t[1]))&&(this.timetag=new B(t[1]))):t.forEach(function(i){e.add(i)}))}return l(r,[{key:"timestamp",value:function(e){if(!b(e))throw new Error("OSC Bundle needs an integer for setting the timestamp");this.timetag=new B(e)}},{key:"add",value:function(e){if(!(e instanceof E||e instanceof r))throw new Error("OSC Bundle contains only Messages and Bundles");this.bundleElements.push(e)}},{key:"pack",value:function(){var e=new ue;return e.add(new S(_)),this.timetag||(this.timetag=new B),e.add(this.timetag),this.bundleElements.forEach(function(n){e.add(new U(n.pack().byteLength)),e.add(n)}),e.merge()}},{key:"unpack",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Bundle expects an instance of type DataView");var t=new S;if(t.unpack(e,n),t.value!==_)throw new Error("OSC Bundle does not contain a valid #bundle head");var o=new B,i=o.unpack(e,t.offset);for(this.bundleElements=[];i1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Packet expects an instance of type DataView");if(e.byteLength%4!=0)throw new Error("OSC Packet byteLength has to be a multiple of four");var t,o=new S;return o.unpack(e,n),(t=o.value===_?new I:new E).unpack(e,n),this.offset=t.offset,this.value=t,this.offset}}]),r}(),Me={discardLateMessages:!1},He=function(){function r(e){f(this,r),this.options=u(u({},Me),e),this.addressHandlers=[],this.eventHandlers={open:[],error:[],close:[]},this.uuid=0}return l(r,[{key:"dispatch",value:function(e,n){var t=this;if(!(e instanceof M))throw new Error("OSC EventHander dispatch() accepts only arguments of type Packet");if(!e.value)throw new Error("OSC EventHander dispatch() can't read empty Packets");if(e.value instanceof I){var o=e.value;return o.bundleElements.forEach(function(s){if(s instanceof I){if(o.timetag.value.timestamp()1&&(s=n[1]);var a=null;if(n.length>2)if(b(n[2]))a=n[2];else{if(!(n[2]instanceof Date))throw new Error("OSC EventHandler timestamp has to be a number or Date");a=n[2].getTime()}var c=null;if(n.length>=3&&(c=n[3]),a){var w=Date.now();if(w>a&&!this.options.discardLateMessages)return this.call(i,s,c);var P=this;return setTimeout(function(){P.call(i,s,c)},a-w),!0}return this.call(i,s,c)}},{key:"on",value:function(e,n){if(!v(e)&&!D(e))throw new Error("OSC EventHandler accepts only strings or arrays for address patterns");if(!j(n))throw new Error("OSC EventHandler callback has to be a function");this.uuid+=1;var t={id:this.uuid,callback:n};if(v(e)&&e in this.eventHandlers)return this.eventHandlers[e].push(t),this.uuid;var o=L(e);return o in this.addressHandlers||(this.addressHandlers[o]=[]),this.addressHandlers[o].push(t),this.uuid}},{key:"off",value:function(e,n){if(!v(e)&&!D(e))throw new Error("OSC EventHandler accepts only strings or arrays for address patterns");if(!b(n))throw new Error("OSC EventHandler subscription id has to be a number");var t,o;return v(e)&&e in this.eventHandlers?(t=e,o=this.eventHandlers):(t=L(e),o=this.addressHandlers),t in o&&o[t].some(function(i,s){return i.id===n&&(o[t].splice(s,1),!0)})}}]),r}(),Te=0,Le=1,Ne=2,Ve=3,Ue=function(){function r(){throw f(this,r),new Error("DatagramPlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options.open),n),o=t.port,i=t.exclusive;this.socketStatus=Te,this.socket.bind({address:t.host,port:o,exclusive:i},function(){e.socketStatus=Le,e.notify("open")})}},{key:"close",value:function(){var e=this;this.socketStatus=Ne,this.socket.close(function(){e.socketStatus=Ve,e.notify("close")})}},{key:"send",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=u(u({},this.options.send),n),o=t.port,i=t.host;this.socket.send(Buffer.from(e),0,e.byteLength,o,i)}}]),r}();typeof WebSocket!="undefined"?x=WebSocket:typeof MozWebSocket!="undefined"?x=MozWebSocket:typeof H!="undefined"?x=H.WebSocket||H.MozWebSocket:typeof window!="undefined"?x=window.WebSocket||window.MozWebSocket:typeof self!="undefined"&&(x=self.WebSocket||self.MozWebSocket);var X=void 0,we=x,_e=0,We=1,Re=2,Fe=3,W={udpServer:{host:"localhost",port:41234,exclusive:!1},udpClient:{host:"localhost",port:41235},wsServer:{host:"localhost",port:8080},receiver:"ws"};function ye(r,e){return u(u(u(u({},W),r),e),{},{udpServer:u(u(u({},W.udpServer),r.udpServer),e.udpServer),udpClient:u(u(u({},W.udpClient),r.udpClient),e.udpClient),wsServer:u(u(u({},W.wsServer),r.wsServer),e.wsServer)})}var ze=function(){function r(){throw f(this,r),new Error("BridgePlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=ye(this.options,n);this.socketStatus=_e,this.socket.bind({address:t.udpServer.host,port:t.udpServer.port,exclusive:t.udpServer.exclusive},function(){var o={};t.wsServer.server?o.server=t.wsServer.server:o=t.wsServer,e.websocket=new X(o),e.websocket.binaryType="arraybuffer",e.websocket.on("listening",function(){e.socketStatus=We,e.notify("open")}),e.websocket.on("error",function(i){e.notify("error",i)}),e.websocket.on("connection",function(i){i.on("message",function(s,a){e.send(s,{receiver:"udp"}),e.notify(new Uint8Array(s),a)})})})}},{key:"close",value:function(){var e=this;this.socketStatus=Re,this.socket.close(function(){e.websocket.close(function(){e.socketStatus=Fe,e.notify("close")})})}},{key:"send",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=ye(this.options,n),o=t.receiver;if(o==="udp"){var i=e instanceof Buffer?e:Buffer.from(e);this.socket.send(i,0,i.byteLength,t.udpClient.port,t.udpClient.host)}else{if(o!=="ws")throw new Error("BridgePlugin can not send message to unknown receiver");this.websocket.clients.forEach(function(s){s.send(e,{binary:!0})})}}}]),r}(),Ge=-1,Ze=0,qe=1,Je=2,Ke=3,Qe={host:"localhost",port:8080,secure:!1,protocol:[]},me=function(){function r(e){if(f(this,r),!we)throw new Error("WebsocketClientPlugin can't find a WebSocket class");this.options=u(u({},Qe),e),this.socket=null,this.socketStatus=Ge,this.notify=function(){}}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options),n),o=t.port,i=t.host,s=t.secure,a=t.protocol;this.socket&&this.close();var c=s?"wss":"ws",w={address:i,family:c,port:o,size:0};this.socket=new we("".concat(c,"://").concat(i,":").concat(o),a),this.socket.binaryType="arraybuffer",this.socketStatus=Ze,this.socket.onopen=function(){e.socketStatus=qe,e.notify("open")},this.socket.onclose=function(){e.socketStatus=Ke,e.notify("close")},this.socket.onerror=function(P){e.notify("error",P)},this.socket.onmessage=function(P){e.notify(P.data,w)}}},{key:"close",value:function(){this.socketStatus=Je,this.socket.close()}},{key:"send",value:function(e){this.socket.send(e)}}]),r}(),Xe=0,Ye=1,$e=2,et=3,tt=function(){function r(e){throw f(this,r),new Error("WebsocketServerPlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options),n),o=t.port,i=t.host,s={address:i,family:"wsserver",port:o,size:0};this.socket&&this.close(),t.server?this.socket=new X({server:t.server}):this.socket=new X({host:i,port:o}),this.socket.binaryType="arraybuffer",this.socketStatus=Xe,this.socket.on("listening",function(){e.socketStatus=Ye,e.notify("open")}),this.socket.on("error",function(a){e.notify("error",a)}),this.socket.on("connection",function(a){a.on("message",function(c){e.notify(new Uint8Array(c),s)})})}},{key:"close",value:function(){var e=this;this.socketStatus=$e,this.socket.close(function(){e.socketStatus=et,e.notify("close")})}},{key:"send",value:function(e){this.socket.clients.forEach(function(n){n.send(e,{binary:!0})})}}]),r}(),nt={discardLateMessages:!1,plugin:new me},O=function(){function r(e){if(f(this,r),e&&!z(e))throw new Error("OSC options argument has to be an object.");this.options=u(u({},nt),e),this.eventHandler=new He({discardLateMessages:this.options.discardLateMessages});var n=this.eventHandler;this.options.plugin&&this.options.plugin.registerNotify&&this.options.plugin.registerNotify(function(){return n.notify.apply(n,arguments)})}return l(r,[{key:"on",value:function(e,n){if(!v(e)||!j(n))throw new Error("OSC on() needs event- or address string and callback function");return this.eventHandler.on(e,n)}},{key:"off",value:function(e,n){if(!v(e)||!b(n))throw new Error("OSC off() needs string and number (subscriptionId) to unsubscribe");return this.eventHandler.off(e,n)}},{key:"open",value:function(e){if(e&&!z(e))throw new Error("OSC open() options argument needs to be an object");if(!this.options.plugin||!j(this.options.plugin.open))throw new Error("OSC Plugin API #open is not implemented!");return this.options.plugin.open(e)}},{key:"status",value:function(){if(!this.options.plugin||!j(this.options.plugin.status))throw new Error("OSC Plugin API #status is not implemented!");return this.options.plugin.status()}},{key:"close",value:function(){if(!this.options.plugin||!j(this.options.plugin.close))throw new Error("OSC Plugin API #close is not implemented!");return this.options.plugin.close()}},{key:"send",value:function(e,n){if(!this.options.plugin||!j(this.options.plugin.send))throw new Error("OSC Plugin API #send is not implemented!");if(!(e instanceof Q||e instanceof E||e instanceof I||e instanceof M))throw new Error("OSC send() needs Messages, Bundles or Packets");if(n&&!z(n))throw new Error("OSC send() options argument has to be an object");return this.options.plugin.send(e.pack(),n)}}]),r}();return O.STATUS={IS_NOT_INITIALIZED:-1,IS_CONNECTING:0,IS_OPEN:1,IS_CLOSING:2,IS_CLOSED:3},O.Packet=M,O.Bundle=I,O.Message=E,O.TypedMessage=Q,O.DatagramPlugin=Ue,O.WebsocketClientPlugin=me,O.WebsocketServerPlugin=tt,O.BridgePlugin=ze,O})})(Ee);var $=Ee.exports;const Ce=new $;Ce.open();const ft=.1;let Y=-1;ct.prototype.osc=function(){return this._withHap(g=>{const d=(p,u,f,N)=>{const l=u.wholeOrPart().begin.valueOf(),R=u.duration.valueOf();Y<0&&(Y=Date.now()-f*1e3);const k=Object.assign({},{cps:N,cycle:l,delta:R},u.value),h=Object.entries(k).flat(),T=Math.floor(Y+(p+ft)*1e3),F=new $.Message("/dirt/play",...h),y=new $.Bundle([F],T);y.timestamp(T),Ce.send(y)};return g.setContext(Oe(Se({},g.context),{onTrigger:d}))})}; diff --git a/tutorial/index.html b/tutorial/index.html index 8a94ee806..50f2e1c70 100644 --- a/tutorial/index.html +++ b/tutorial/index.html @@ -9,8 +9,8 @@ Strudel Tutorial - - + +